摘要

我们提出了一个三维感知生成器FENeRF,它可以生成视图一致的局部可编辑的人像图像。 我们的方法使用两个解耦的潜在代码在空间对齐的具有共享几何的三维体中生成相应的面部语义和纹理。 FENeRF利用这种底层的三维表示方法,可以联合绘制边界对齐图像和语义掩码,并利用语义掩码通过GAN反演对三维体进行编辑。

涉及到的知识点

latent code:例如图像中,企图用小的特征映射来表示原图像。例如,夹在encoder-decoder中的得到的张量C。

反演:GAN反演的任务是使用预先训练的GAN模型将给定的图像反转回潜在代码,将图像编码为latent code然后再解码生成图像。

解耦:降低耦合度。

siren:使用周期函数来做神经网络表征

贡献

利用语义、几何和纹理在空间上对齐的三维表示,提出了第一个局部可编辑且严格视图一致的人像图像生成器。

我们使用成对的单目图像和语义映射来训练生成器,而不需要多视图或三维数据。 这保证了数据的多样性,增强了生成器的表示能力。

在实验中,我们发现联合学习语义体和纹理体可以帮助生成更精细的三维几何。

结构

FENeRF

本文做的是迭代式的3D人脸重建。文章整体结构基于pi-GAN,通过分支结构让NeRF预测每个像素的语意,密度和纹理,从而构建出密集3D对齐的语意图,纹理图和密度图。进而可以通过逆映射(inversion)来编辑人脸(旋转,风格,局部变换)。这个编辑人脸是通过语义信息来进行的。

本文的大体流程是可以看到有三个输入,首先是原图图像输入,还有两个latent code Zt 和 Zs。将两个latent code解耦,经过Mapping网络映射成latent space。之后输入到生成器中。之后NeRF网络的输出有三个分支,分别是语意分支,密度分支,纹理分支,三个分支的输出都是点对点对齐的。最后通过体渲染得到语意图与合成图,进而用两个判别器分别做损失。

图的左边是NeRF生成器:

简单的回顾一下NeRF,输入三维信息和二维观察点,输出颜色信息和密度信息。从这个图中也能清楚的看到,这个密度分支只有三位位置信息有关,而颜色与三维信息和二维观测点有关。该网络结构与经典的NeRF不同的是,输出还有语义信息。

下面是颜色和语义信息的公式,跟NeRF是一模一样的。

细节分析

有两个东西Zt和Zs,这两个是latent code。

latent code一种降维或者说是压缩,旨在用更少的信息去表达数据的本质。上图是一个简单的encoder-decoder架构,如果把整个网络看成一个花瓶,最细的地方则称之为瓶颈。我们知道,压缩一般都是有损的,这里也不例外,但如果损失的是噪声或者是无用信息是我们最喜欢的了(这样就可以达到信息压缩的目的) 通过encoder压缩之后,更重要的是恢复,我们理应认为,能恢复的才算成功压缩了的,那么我们就可以认为这个latent space representation是真的表达出了input image中最关键的信息。潜在空间可以用少量的数据表示某一个(类)信息。

为什么要解耦呢?

为了更好的对数据进行分类或生成,需要对数据的特征进行表示,但是数据有很多特征,这些特征之间相互关联,耦合性较高,导致模型很难弄清楚它们之间的关联,使得学习效率低下,因此需要寻找到这些表面特征之下隐藏的深层次的关系,将这些关系进行解耦,得到的隐藏特征。

我们还利用映射网络将采样码映射到中间潜在空间W,并输出频率γ和相移β,通过特征线性调制控制发生器。这其实就是个解耦的过程。根据生成器MLP的层数,提供给每一层中的FiLM。这一步也是解耦过程。

我们引入了一种可学习的三维特征网格来补偿高频图像细节。 具体来说,为了预测二维视图方向为D的三维点X的颜色,我们通过双三次插值从特征网格中抽取一个局部特征向量ecoord,然后将其作为附加输入输入到颜色分支中。这个三维特证网络是可学习的,我们希望有一些共性的人脸的高频信号保存在grid里面。

回顾一下大致流程:

我输入原始图片,通过优化Ws和Wt来得到最终的人脸图片和人脸语义信息。之后,通过输入编辑后的带有语义信息的图片来优化Ws,获得编辑后的人脸图片和语义信息。

数据来源:

在我们的实验中,我们考虑了两个用于评估的数据集:Celebamask-HQ[23]和FFHQ[21]。 Celebamask-HQ包含30,000张来自Celeba[30]的高分辨率人脸图像,每个图像都有面部属性的分割掩码。 该模型的分辨率为512×512,包括皮肤、眉毛、耳朵、嘴巴、嘴唇等19类。FFHQ包含70,000张高质量的人脸图像,并利用BiseNet[51]对其进行语义分类。

损失函数

FENeRF: Face Editing in Neural Radiance Fields相关推荐

  1. 【CVPR 2022】Deblur-NeRF: Neural Radiance Fields from Blurry Images

    Deblur-NeRF: Neural Radiance Fields from Blurry Images 论文简介: 论文介绍: 具体实现: 基本概念 实现细节 Deformable Sparse ...

  2. 火爆科研圈的三维重建技术:Neural radiance fields (NeRF)

    如果说最近两年最火的三维重建技术是什么,相信NeRF[1]是一个绝对绕不过去的名字.这项强到逆天的技术,一经提出,就被众多研究者所重视,对该技术进行深入研究并提出改进已经成为一个热点.仅仅过了不到两年 ...

  3. 【CVPR 2021】pixelNeRF: Neural Radiance Fields from One or Few Images

    pixelNeRF: Neural Radiance Fields from One or Few Images 论文简介: 论文介绍: Image-conditioned NeRF: Single- ...

  4. [CVPR2021]pixelNeRF: Neural Radiance Fields from One or Few Images

    标题:pixelNeRF: Neural Radiance Fields from One or Few Images 链接:https://arxiv.org/pdf/2012.02190 本文是针 ...

  5. [非卷积5D中文翻译及学习笔记] 神经辐射场 NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis

    不使用3D建模,使用静态图片进行训练,用(非卷积)深度网络表示场景的5D连续体表示,再通过ray marching进行渲染. 本中文翻译使用"机器学习+人工校准/注解"的方式完成. ...

  6. 一文搞懂 神经辐射场(Neural Radiance Fields,NeRF)

    NeRF 简介 输入输出 优缺点 原理 结构 pytorch实现 第三方库进行 NeRF 的实现 自行实现 相关名词解释 辐射场 多层感知机(MLP) 点的密度 体积渲染 体积纹理 渲染方程 简介 神 ...

  7. 【论文笔记 - NeRFs - ECCV2020】NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis

    NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis 0背景介绍 用神经辐射场来表征场景,用于新视角图像生成任务 ...

  8. NERF++: ANALYZING AND IMPROVING NEURAL RADIANCE FIELDS分析和改进神经辐射场

    目录 NERF++: ANALYZING AND IMPROVING NEURAL RADIANCE FIELDS分析和改进神经辐射场 ABSTRACT 1 INTRODUCTION 2 PRELIM ...

  9. NeRF in the Wild: Neural Radiance Fields for Unconstrained Photo Collections不受约束的照片集

    目录 NeRF in the Wild: Neural Radiance Fields for Unconstrained Photo Collections不受约束的照片集 Abstract 1.I ...

最新文章

  1. 不插电的计算机科学读心术,科学“读心术”,当脑电波扫描图遇到人工智能
  2. 赠书 | 成为一个多模型思考者,从掌握数据跃迁到拥有智慧
  3. Point-to Analysis指针分析(1)
  4. 2、JDBC连接数据库
  5. 程序员小哥面对批评该怎么办?以我为例
  6. 定义函数up(ch),如字符变量ch是小写字母就转换成大写字母并通过up返回,否则字符ch不改变。要求在短小而完全的程序中显示这个程序是怎样被调用的。
  7. 如何在Go中使用切片容量和长度
  8. java vector 多线程_如何使用vector解决多线程问题(java)
  9. Asp.net.Ajax控件学习
  10. 如何对shell脚本进行加密且不影响脚本运行
  11. effective c++ 第六章
  12. 2015年邮件营销机会在哪里?
  13. C 判断 —— switch语句(输入的年份判断是否为闰年,根据输入的月份判断这月有多少天)
  14. 平头哥CH2601开发环境(CDK)搭建
  15. TK1安装Caffe
  16. Pixelmator for Mac(图像编辑器)
  17. 什么?内存不够了?进来教你malloc空间
  18. 付利赚团队分享互联网发展过程那些疯狂的时代
  19. HTML格式化是什么?
  20. android版 点击下载,暴雪游戏手机安全令Android版下载与使用说明

热门文章

  1. 嵌入式软件工程师—成长笔记#01
  2. 如何使用N1盒子实现自动撸豆
  3. linux开放外部端口访问
  4. 物联网第一步: Nginx服务器
  5. 【MySQL】查询优化
  6. 裴蜀定理与扩展欧几里德算法
  7. Galera/mysql 集群 备忘
  8. 氧化锌@聚丙烯腈(ZnO@PAN)静电纺丝纳米纤维膜材料|金属有机框架材料ZIF-8@聚丙烯腈(ZIF-8@PAN)纳米纤维膜材料
  9. 软件设计模式——监听模式
  10. error: ‘uint8_t’,‘uint16_t’ ,‘uint32_t’ does not name a type