CVPR2020 | 反传统的无监督人脸旋转方案:旋转-渲染

本文转载自知乎,已获作者授权转载。

链接:https://zhuanlan.zhihu.com/p/148668978

前言:这篇论文既异于传统、摆脱监督、从全新角度看待人脸旋转问题,又方法极简、模块原始、效果上还有较大提升空间。终究能幸运地受到reviewer和AC的青睐,也肯定了文章的贡献。虽然文章简朴又不完美,但正因此才留下了更多的想象和空间。

论文:Rotate-and-Render: Unsupervised Photorealistic Face Rotationfrom Single-View Images

代码:https://github.com/Hangz-nju-cuhk/Rotate-and-Render

01

核心思想概括

人脸旋转问题的本质是恢复被遮挡部分人脸的结构和纹理,而现有的方法多基于同一人脸的多视角数据训练进行直接的新视角生成,从而导致了各种问题。


本文的核心就是通过单张图像和3D人脸建模,渲染从任意角度旋转到当前角度的带遮挡伪影和瑕疵的人脸,从而和原图构建训练数据对。其构造过程用到了两次人脸纹理获取,三维空间旋转和渲染。

整个工作值得大家引用的亮点在于:

1)无监督(自监督)的人脸旋转框架,摆脱多视角数据。

2)大数据集MegaFace的人脸识别效果提升。

3)一键可跑的开源代码。

02

背景介绍

近年来由于GAN的出现,人脸旋转(转正)任务取得了快速进展,但是现有方法主要依赖对同一人的多视角数据。一个简单的例子就是如图基于GAN的经典人脸转正论文TP-GAN[1]的训练框架,将侧脸的图片作为网络输入并将正脸图像当做生成模型的监督。

传统人脸转正pipeline

这一训练方式的一大障碍是对高质量的多视角配对训练数据的依赖。因此,它们的生成结果受到数据量以及数据分布的限制,从而会造成对特定数据的过拟合(见下图中一些以往方法的结果,会生成Multi-PIE数据蓝色的滤镜和背景)。

和GAN-based方法对比结果

而本文方法的出发点就是摆脱多视角的监督,从而解决由于多视角监督带来的domain泛化能力问题。

在本文中,我们提出一种新颖的无监督框架,利用三维人脸建模,通过反复的旋转和渲染操作构建自监督,并用一个普通的Pix2Pix生成最终图像。该框架不依赖于同一人的多视角图像,就可以生成其他视角的高质量图像,并且框架适用于各个非限定的场景。我们做了大量的实验来验证我们的方法的性能。


此外,我们发现将生成的数据用于人脸识别模型的训练,对于人脸识别的性能也有显著提升。

03

方法

文章提出的无监督框架如下图所示:

整个框架主要包含三个模块,三维人脸重建模块,通过旋转和渲染构建训练数据的Rotate-and-Render模块,以及将渲染图像重建到真实图像分布的Render-to-Image模块。接下来是没有公式的细节介绍。

三维人脸重建模块

三维人脸重建技术在这里只是作为工具使用,任何传统或者深度的三维人脸重建方案都可适用,就不多加阐述。简单来说通过三维重建我们可以获取整个人脸的结构信息,由若干归一化的三维顶点坐标组成的矩阵   和姿态信息    . 然后用如下图(a)所示的简单人脸纹理获取方案,就可以给各个顶点注册一个rgb值。而我们使用的渲染方案如下图(b)所示,就是纹理注册的逆过程。

Rotate-and-Render训练策略

整个训练数据对的构建如下图所示: 

Rotate-and-Render 训练数据构建策略

给定一张二维人脸图片  ,我们通过三维人脸重建模块得到该人脸的三维模型 ,并将输入的纹理注册  到三维模型上。

接下来,我们将该模型  在三维空间旋转并重新渲染为二维图像,得到该人脸在任意角度  的图像  ,这一过程被称为Rotate-and-Render。

然后我们利用  重新对三维模型获取人脸纹理  ,并让  再次通过Rotate-and-Render模块,将  旋转回原角度并渲染到二维平面,得到  。

由此  就产生了人脸从姿态b旋转回输入姿态,由不可见区域所产生的瑕疵,从而和  形成非常强的自监督,用于训练生成模型。

Render-to-Image生成模块

为了消除在Rotate-and-Render过程中的伪影,我们用Render-to-Image模块来生成符合真实图像分布的图像。整个模块如下图所示:

Render-to-Image网络输入和loss

因为网络结构不是我们的novelty所在,我们对生成器的选择比较随便,直接使用了CycleGAN的ResBlock生成器来生成图像。在训练过程中,我们则直接借用了Pix2PixHD的loss function,采用multi-layer discriminator 和 perceptual loss来训练鉴别器。我们分别采用GAN的loss、feature matching loss、perceptual loss来监督GAN的训练,具体的形式可以参见paper或者code。

04

实验结果

在实验中,我们分别验证了生成图像的质量以及生成图像用于人脸识别的性能的好坏。

生成图像的质量对比

下图是和基于三维重建的方法的对比结果,而和基于GAN的方法对比在开头处。可以看到,无论是对比哪种方法,我们提出的方法生成图像的质量都是更好的,而且身份信息也得到有效保留。

与3D方法的对比结果

生成图像用于人脸识别

这里不同于一般的论文,我们还将生成的图像用于数据增强,训练人脸识别模型。我们在测试数据LFW、IJB-A、Multi-PIE和MegaFace上分别验证了我们方法的性能。值得注意的是,以往的方法局限于多视角图像的获取,只有在特定场景的小数据集上(与训练数据相同domain)才会有比较好的结果,比如Multi-PIE。而我们提出的方法则没有这种限制,可以应用在各种场景中。我们也是第一个在MegaFace这种大数据集上进行人脸旋转的方法。

如下四个表格分别是在LFW、IJB-A、Multi-PIE和MegaFace的性能

可以看到,无论在哪种测试集上,我们的方法都取得了最好的结果。

05

总结

在本篇论文中,我们利用三维人脸先验的优势,结合我们提出的Rotate-and-Render的模块,来进行人脸旋转。方法的关键是,利用Rotate-and-Render将人脸旋转两次回到原始角度,构建自我监督信号。并通过GAN将渲染的图像转换为真实图像。


通过全面的实验,论文方法的以下优势得到验证:

1)不需要多视图或者成对的数据,就可以进行训练,这是大部分现有方法无法实现的。

2)不仅仅可以将人脸旋转到正面,我们的方法可以旋转到任意角度。

3)大量的可视化表明,我们的方法可以生成逼真的旋转图像,保留原有的纹理细节以   及光照等。

4)将生成的图像用于训练人脸识别模型,可以提高人脸识别的性能。

06

文末讨论

这里作者也无保留地介绍本文的缺陷。首先文章依赖于现有的三维人脸建模工具,所以不准确的建模会影响生成人物的ID。同时由于Render-to-Image的网络模型选择随意,无法处理较高分辨率的图像,所以生成结果也许未及本次CVPR的平均水准(笑)。但是因为文章的重点是突出无监督的框架,所以希望把这些可能地改进方向作为整个方向后续可能的未来工作。

更多的细节还请大家参见原文和代码。本文的代码已经开源(https://github.com/Hangz-nju-cuhk/Rotate-and-Render)。

在本次CVPR中的展示网址在 (http://cvpr20.com/)

时间是PDT 周三10 a.m. and 10 p.m.(北京时间周四1a.m. and 1 p.m.)

届时可以在会议网站和我们交流或者后续和作者们邮件沟通。

参考文献

[1] Beyond Face Rotation: Global and Local Perception GAN for Photorealistic and Identity Preserving Frontal View Synthesis. ICCV 2017.

END

备注:人脸

人脸技术交流群

人脸检测、识别、对齐、重建、表情识别、表情迁移等技术,

若已为CV君其他账号好友请直接私信。

我爱计算机视觉

微信号:aicvml

QQ群:805388940

微博知乎:@我爱计算机视觉

投稿:amos@52cv.net

网站:www.52cv.net

在看,让更多人看到  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值