谷歌、马萨诸塞大学安姆斯特分校和麻省理工学院的研究者提出了一种基于卷积神经网络的人脸图像合成方法,可用各种光照、姿势和表情的照片合成中性表情的正脸图像。
论文地址:https://arxiv.org/abs/1701.04851
1.引言
这篇论文提出了一种方法,可根据给定的输入人脸照片合成该人的正面的中性表情图像。这种方法是通过使用人脸识别网络提取出的特征来学习生成人脸特征标识和纹理。
新提出的方法在很大程度上不受原输入图像的光照、姿势和面部表情的影响,因为解码器网络是仅使用正面的中性表情的照片训练的。
输出的图像有很多应用场景,比如分析面部属性、调整曝光和白平衡、创建 3D 头像等。
图注:使用一个人脸识别网络将输入照片(顶行)编码成 1024 维特征向量,然后使用我们的解码器网络将其解码成人脸图像(中行)。编码器网络不受姿势、光照和表情影响的性质能让解码器得到规范化的人脸图像。所得到的图像可以轻松地拟合成 3D 模型(下行)。该方法甚至可以基于黑白照片和人脸画像实现可信的人脸重建。
2 方法
2.1 预处理
假设:训练集是一组正脸的中性表情的训练图像。
使用现成可用的特征点检测工具和 warping 技术将每张图像分解成一种纹理 T 和一组特征标识 L。
2.2 编码器
使用一个参数固定的预训练 FaceNet 来从输入图像 I 中提取 F 维的特征向量 F。这个项目使用了 FaceNet 的最低层的输出,它不会随空间变化,具有 1024 个维度。在这层之上还训练了一个从 1024 到 f 维的全连接层。
2.3 解码器
特征 F 分别与特征标识 L 和纹理 T 进行映射,最后的结果使用 warping 进行渲染。
L 是使用浅的多层感知器,通过将 ReLU 施加于 F 上生成的。T 是使用一个深度 CNN 生成的。解码器通过可微分的 warping 技术将纹理和特征标识结合到一起。
2.4 训练损失
- 第一项惩罚所预测的特征标识和基本真值特征标识之间的均方误差。
- 第二项惩罚所预测的纹理和基本真值纹理之间的平均绝对误差。
- 第三项使用负余弦相似度惩罚输入和输出图像的 FaceNet 嵌入之间的不相似度。
图注:训练计算图:每条虚线都连接了损失函数中作比较的两项。纹理使用平均绝对误差进行比较,特征标识使用均方误差进行比较,FaceNet 嵌入则使用了负余弦相似度。
3 技巧
可微分的图像 warping
首先,使用样条插值根据在参考点定义的稀疏未定点构建一个密集的流场。
然后,使用可微分的双线性插值将该流场应用到 I0(原来的图像)上,进而得到 I1(扭曲后的图像)。
可微分的样条插值
这个项目使用了多调和插值(polyharmonic interpolation)。选择线性插值的原因是其比薄板样条(thin-plate spline)对过调(overshooting)问题更稳健,而且在最后的纹理中线性化的伪影难以检测。
基于变形的数据增强
产生随机人脸变形:给定一张种子人脸 A,研究者首先通过从 A 的 k=200 最近邻中随机选出一个作为目标人脸。给定 A 和随机近邻 B,它们的特征标识和纹理分别独立进行线性插值,其中的插值权重从 [0,1] 区间均匀取出。
梯度域合成:为了使增强后的图像更有真实感,他们使用一种梯度域编辑技术将变形后的人脸粘贴在了原来的背景上。
4 实验和结果
4.1 收集照片
这个项目从 VGG Face 数据集选择了大约 12000 张图像作为训练数据集。这些图像经过了对齐处理,以撤销各种滚动变换,并且还进行了缩放,将双眼之间的距离控制在了 55 个像素,然后这些图像被裁剪成了 224×224 像素大小。每一个人都有多张图像。所以数据集中最终有大约 1000 个不同的人,每个人都有 3 张或更多图像。每个人的所有图像都通过变形进行了平均。某些具有高噪声的背景被以人工的方式移除了。测试数据集来自 Wild 数据集。
4.2 模型稳健性
人脸的形状和肤色在姿势和照明强度不同时是稳定的,但输出图像中会出现不同的发型和发色。
图注:尽管该模型仅使用了自然图像进行训练,但在应用于不清晰的照片和光照不好的照片时,该模型也能稳健地进行处理。第 1 列:输入图像;第 2 列:生成的 2D 图像;第 3 和 4 列:两个不同角度的 3D 重建图像
4.3 应用
3D 模型拟合:这个拟合过程可以得到很好对齐的 3D 人脸网格,可被直接用作 3D 虚拟现实头像或者用作进一步处理的初始步骤,比如用在视频中跟踪人脸几何特征。
自动照片调整:该算法能够平衡人脸,无论其对图像其它区域的影响如何,能够根据同一个人的不同照片得到更加一致性的结果。
5 结论
5.1 优点
- 这个项目使用了卷积神经网络,能够稳健地应对输入中的变化,比如光照、姿势和表情。
- 这个方法能提供各种下平衡的图像和自定义的 3D 头像。
- 神经网络中使用了样条插值作为微分模块,这是一种全新的想法。结果有助于这一技术的进一步应用。
5.2 未来研究
- 生成的图像的整体质量还有进一步提升的空间。
- 噪声伪影仍然很多,尤其是在背景中。该模型可以在更加广泛的图像上进行训练,以全面规避像素层面的损失。
6 分析师简评
这篇论文提出的方法可能在逻辑上是有效的。该方法使用了卷积神经网络以使整个模型能稳健应对光照、姿势和面部细节的变化,这是与之前的正脸化方法之间的关键差异,但同时这也会在输出图像的背景中产生更多噪声。这种方法使用了特征标识和样条插值来使结果更具真实感。但相比于之前的方法,这种方法究竟能为后续任务带来多少改善?这一点还没有得到充分的证明或展现。
这篇论文可能存在的问题:
- 从 FaceNet 特征向量到人脸图像的映射的限定条件太少。研究者认为从特征向量到“规范化”人脸图像的映射在直观上看是一对一的,但这篇论文没有给出数学证明。
- 这个神经网络中有三个损失项。研究者仅比较了“有 FaceNet 损失”和“无 FaceNet 损失”的结果,但没有提及“特征标识损失”的必要性。
- 在评估这个项目所生成的结果上还缺乏一个更客观的指标。这篇论文给出的方法是在这些条件上从视觉上看优于之前的正脸化方法,这个评估方式是主观的。
- 正脸化方法通常用于预处理人脸图像,以使后续的任务(比如 3D 模型拟合)更高效更准确。但这篇论文没有充分提及使用这种方法能为后续任务带来多少提升。