查看原文
其他

SFFAI分享 | 曾仙芳:通过自监督解耦身份和姿态特征实现人脸再扮演任务【附PPT与视频资料】

曾仙芳 人工智能前沿讲习 2022-05-21


英剧《真相捕捉》(The Capture)描述了一个团队用高科技实时伪造监控录像,陷害他人的悬疑故事。这引发了我们的思考:在人工智能技术突飞猛进的当下,“眼见”还可以为“实”吗?从Deepfakes框架开始,AI换脸这项技术已经开始被大众所熟识,ZAO等软件的出现更是让普通人就可以使用手机生成换脸的视频。《SFFAI64期-图像生成专场》我们邀请到来自浙江大学的曾仙芳同学,为大家分享他在人脸再扮演这项技术上的研究成果。

关注文章公众号

回复"SFFAI64"获取PPT资料

视频资料可点击下方阅读原文在线观看


作者介绍


曾仙芳,浙江大学控制科学与工程学院博士研究生,主要研究方向为图像生成、人脸再扮演。

曾仙芳


很高兴今天有机会来分享我们最近的研究成果,这篇文章发表在AAAI2020, 题目是通过自监督解耦身份和姿态特征实现人脸再扮演任务。
我们首先简单介绍一下什么是人脸再扮演任务,然后回顾一下领域内比较相关的重点工作,紧接着解读我们的探索成果。
论文地址:https://arxiv.org/abs/2003.12957

问题简介

人脸再扮演任务中,通常我们给定一组驱动/目标图片, 以及一张/组源人脸图片, 期望将驱动图片中人脸表情、姿态迁移至源图片,使得源人脸再现驱动人脸中的动作。例如,在图1中,生成的图片既具有目标人物的姿态兼具源人脸的身份特征。
图1
总的来说,人脸再扮演需要解决两个核心问题:
通常我们会选择人脸关键点作为表征,第一个问题从人脸关键点恢复人脸图像,这是再扮演任务的基础,第二是寻找特征的自适应方法或者特征的解耦学习。这是因为在迁移类任务中,我们只想迁移某个特定的属性。

图2
再扮演任务可以用于驱动虚拟人物,比如虚拟主持人,使其产生更拟人的表情,又或者用于人像表情调整,对于拍好的照片,我们对人像的表情进行微调。
图3

重点工作介绍

首先我们回顾下Pix2Pix,它是图像翻译的开山之作,亦是人脸再扮演的基础。它可以给定一个物体边缘图,然后恢复出原来的图片。
图4
我们将它的生成器部分和一个人脸边缘提取模块组合在一起,就可以得到一个人脸再扮演的方法,先用人脸边缘提取模块,从目标人物中提取人脸边缘,然后再用生成器恢复源人脸图像。这种方法的缺点在于,脸型变化不能太大, 否则会有明显的身份差异。
图5
在 ReenactGAN 这篇论文中讨论了身份差异的问题,例如我们从图6人物C中提取人脸边缘,然后将其应用于人物B上,会出现脸型不匹配的结果。
图6
ReenactGAN框架包含三个模块,编码器,转换器和解码器,编码器模块从人脸图像提取人脸边缘图,转换器将两个人物的人脸边缘做一个自适应变换,解码器模块从人脸边缘图中回复人脸图像。
图7
增加了转换器模块之后,可以缓解身份之间的差异。它的问题在于,它是一对一的模型,使得整个框架的扩展性很差。当我们增加一个目标人脸时,我们需要增加一个转换器模块。
图8
这篇文章取得了最好的再扮演效果,它包含嵌入器,生成器和判别器模块三个模块,嵌入器从多个图像帧中学习视频特征(如身份属性),视频特征对于每帧的姿态或者表情是鲁棒的,生成器的输入是人脸边缘及视频特征,得到对应姿态的人脸图像,判别器模块判断生成图片的真实度、姿态是否匹配。
图9
这篇文章真人效果惊艳,可以生成非常真实的细节,比如耳朵、眼镜,也可以用真人图像来驱动油画,让油画运动起来。
图10
相对于ReenactGAN,它可扩展性好,对于多个目标人脸,只训练一个模型就够了,不同的目标人物,我们只需要替换嵌入器的输入。嵌入器训练比较好情况下,生成器的两个输入近似解耦:身份特征编码发型、肤色、五官;关键点编码姿态信息。因为两个特征近似解耦,所以推断过程中直接替换,效果也不错。
图11
上述方法效果很好,但是依赖关键点作为人脸表征,而人脸关键点的标注是很昂贵的,在没有人脸关键点的情况下,如何实现再扮演任务呢?思路是寻找人脸关键点的替代,设计网络自己学习姿态的表征,从图片中解耦学习身份特征和姿态特征,对解耦后的特征交叉融合,实现特征迁移。
图12
比较有启发的文章是这篇Deforming Autoencoders中的观点,这篇文章中将图片视为模板和形变的融合,模板编码了图片的纹理信息而形变编码了图片的位姿信息。
图13

个人探索成果

现在我们整个方法的流程就比较清晰了,我们的框架中包含三个模块:身份编码器、姿态编码器、以及条件生成器,身份编码器从视频中学习身份特征,位姿编码器对视频中的每一帧提取位姿特征,用于替代人脸关键点,条件生成器对提取到的身份特征和脸特征进行生成,得到特定位姿下的人脸图片,整个框架是自监督学习的,无需额外的标注信息。
图14
接下来介绍身份编码器的细节,编码器被设计为从一段视频中学习一个身份特征,对于视频中的每一帧,它预测一个形变场以及一个注意力图,借助形变场对原图进行形变,对每一帧预测身份特征,由于每帧的人脸的角度不同,预测的人脸会有部分缺失,通过注意力图,对多个人脸进行融合,得到该身份的人脸模板。
图15
位姿编码器被设计为编码每一帧的位姿信息,它的输出是一个二维形变场,用以从人脸模板中重建自身,由于人脸模板往往是正面的图像,所以预测的形变场需要正确的编码自身位姿信息,才能重建自身,网络设计有一个小技巧,就是利用残差学习,使得网络只需要预测低分辨率下的形变场。
图16
对两个编码器的结果进行了可视化,可以看到学到的身份特征,确实能保留人物的身份属性,同时位姿编码器输出的形变场确实编码了人脸的位姿。另一个实验是利用学习到的位姿特征做图像检索任务,可以看到检索出来的图像和查询图像具有相似的位姿,而身份属性不一样。结果从侧面印证了学习到的身份特征,确实编码了图像的位姿信息。
图17
实现了身份编码器和位置编码器这两个模块之后,我们就可以完成人脸再扮演。之前的工作x2face就是一个自编码器的框架。它用身份编码器去提取源人脸的人脸模板,同时用位姿编码器去提取目标人脸的位姿特征,利用位姿编码器输出的形变场,对源人脸的人脸模完成二维形变,即可实现表情迁移。
图18
自编码器的框架存在两个主要的问题:一个是生成的图片会损失很多细节,比如说生成的图像中没有耳朵,后者眼睛的瞳孔消失,第二个问题是人物和背景的交界处,会有比较大的形变,这是由于不同身份的人脸模板存在差异,直接利用光流场重建人脸会导致在边缘处存在比较明显的伪影。
图19
因此我们引入第三个模块,一个条件生成器,他将身份编码器学习到的人脸模板作为输入,同时将位姿编码器提取到的位姿特征,通过AdaIN层作为条件送入到生成器中,实现特定姿态下的人脸生成。这样可以避免自编码器类方法的成像模糊问题,也能避免采用光流场重建人脸所引起的边缘伪影问题。
图20
最终的结果展示里,x2face是基于自编码器的方法,倒数第二个是基于关键点的方法,我们的方法优于自编码器的框架,避免了人物边缘处的形变同时细节损失较少。结果近似基于关键点的方法,我们的优势在于不需要依赖关键点的标注。在定量结果中,我们在user study这个指标中取得了最好的结果(之一)。
图21
由于身份编码器和位姿编码器学习后特征是近似解耦的,对于不同身份之间实现表情迁移任务,我们只需要替换条件生成器的人脸模板即可,使得我们的模型具有非常高的可拓展性,可以在不同身份之间灵活的迁移位姿、表情等属性。更多的实现细节以及演示视频,可以搜索我们的论文进一步了解。
图22





SFFAI的介绍

现代科学技术高度社会化,在科学理论与技术方法上更加趋向综合与统一,为了满足人工智能不同领域研究者相互交流、彼此启发的需求,我们发起了人工智能前沿学生论坛SFFAI,邀请一线科研人员分享、讨论人工智能各个领域的前沿思想和最新成果,使专注于各个细分领域的研究者开拓视野、触类旁通。SFFAI目前主要关注机器学习、计算机视觉、自然语言处理等各个人工智能垂直领域及交叉领域的前沿进展,进行学术传播,同时为讲者塑造个人影响力。

SFFAI还在构建人工智能领域的知识森林—AI Knowledge Forest。通过汇总各位参与者贡献的领域知识,沉淀人工智能前沿精华,使AI Knowledge Tree枝繁叶茂,为人工智能社区做出贡献。SFFAI自2018年9月16日举办第一期,每周一期学术分享交流,截止目前已举办65期学术交流活动,共有100+位讲者分享了他们的真知灼见,来自100多家单位的同学参与了现场交流,通过线上推文、网络直播等形式,50000+人次参与了人工智能前沿学生论坛。SFFAI自发起以来,迅速成长壮大,已经成为人工智能学生交流的第一品牌,有志同道合的论坛核心志愿者团队、乐于学术分享的讲者伙伴,还有许多认可活动价值、多次报名参加现场交流的观众,大家通过参与人工智能前沿学生论坛,收获了宝贵的知识和友谊,SFFAI致力于帮助大家解决在学术中遇到的相关问题,拓展学术人脉,为大家营造专业、开放的学术交流环境!

历史文章推荐




点击原文链接,查看录播视频
若您觉得此篇推文不错,麻烦点点在看↓↓

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存