点击我爱计算机视觉标星,更快获取CVML新技术


CV君:本文为52CV群友上海科技大学陈安沛同学投稿,介绍了他们ICCV 2019最新人脸3D重建的工作。效果非常赞,代码也已开源,欢迎大家参考~

引言

相比于最近几天刷遍朋友圈的“ZAO-缝脸造戏“和 "DeepFake" ,今天我们提升一个维度,为给大家介绍如何从2D图片,"ZAO"出超逼真的3D人脸 。

这项工作已经被ICCV'19接收为Oral paper。

摘要

如何通过单张图片恢复高质量的三维人脸是计算机视觉和图形学的重要研究领域,高质量的3D人脸通常指准确的几何、完整的纹理和真实的材质。

在本文中,我们使用单张图片恢复带有皱纹细节的人脸几何,我们的算法可以分成proxy estimation(基础参数化模型估计)和details synthesis两个部分。

对于proxy estimation,我们使用表情特征作为先验来应对3DMM参数估计时的ambiguity问题;

对于details synthesis,我们采集了366个高精度三维人脸作为监督学习样本,同时结合基于重渲染误差的无监督学习来恢复人脸细节的displacement map。

相关工作

前人在三维人脸几何估计方面已经做有很多非常出色的工作,大致分为以下三个流派:

  1. 以视频为输入的facial performance capture。这类人脸估计的主要侧重点在于人脸pose和表情的准确性与连续性。

  2. 单张图片估计proxy。这类方法又可分为基于landmark和基于appearance的,这部分研究主要追求脸型与表情的准确性。

  3. 人脸细节的估计。对于高频信息的恢复,传统算法往往是利用Photometric Stereo对人脸多次采样计算法向或使用Shape from Shading计算表面凹凸得到。而对基于深度学习的细节估计方法来说,一大难题在于目前较少有公开的图片(特别是in-the-wild)与高精度模型相对应的样本数据。

这篇文章在对前人proxy估计算法做了一定改进的同时把重点放在人脸细节估计上。对于proxy估计,我们发现目前众多算法估计出来的人脸不能充分表现输入图片中的人脸表情特征。而针对人脸细节估计的研究则相对较少。

算法流程

此项工作的思路是:

  • Proxy生成部分,我们使用emotion和Facial Action Coding System(FACS)表情特征作为先验来辅助基于facial landmark重投影误差的迭代优化。这部分的创新点在于表情特征可以有效捕捉到landmark无法表达的信息(比如法令纹),因此可以更好的约束proxy的估计。为了将表情特征与3DMM表情参数建立映射,如上图(a)所示,我们先用in-the-wild数据训练表情特征网络,然后通过3DMM渲染图片(表情参数已知)输入网络并获得对应的表情特征向量,以此建立feature dictionary。在inference的时候可以直接查找表情特征向量的nearest neighbor。

  • 细节预测部分,我们的网络输入是一些小的patch,输出是这个patch对应的displacement map。训练的过程分为supervised和unsupervised两个部分:supervised部分我们使用采集的366个高精度人脸并提取细节displacement map作为训练样本;unsupervised部分我们使用in-the-wild图片首先离线地估计proxy,albedo和environment lighting,然后训练的时候构造一个re-rendering loss。。

具体的算法,大家可以下载文章来读一下。

实验

实验这一小节我将按训练数据采集,proxy估计和details预测三个部分进行。

1. 数据采集

为了采集数据我们搭建了一套同时结合multi-view和photometric算法的高精度人脸重建系统,我们对122个人采集了他们三个不同的表情下的3D人脸,每一次拍摄我们会采集6张multi-view图片和5张偏振光照下的photometric图片,拍摄过程大概会花费两秒,而重建则需要五分时间。

重建出来的人脸模型是这样的:

2. Proxy

我们将使用比较多的eos人脸proxy估计算法作为baseline,分析对比了有和没有expression prior的效果,同时我们也和最近的一些基于人脸appearance信息估计3DMM的算法进行了对比,如下图:

准确的表情可以很大程度上提升人脸的辨识度和特征化,如上图所示,使用表情先验的几何看上去和原图更像,而without prior的结果更像平均脸。

3. Details 

我们和一些现有的包含有细节的人脸几何估计算法进行视觉效果上的对比,为了让看的更加清楚,结果部分我们使用局部放大图如下,更多整体结果以及量化分析可以到论文以及附加材料里查看。

现有生成细节的算法大多基于shape from shading,这些方法的一个主要缺陷是生成的细节很像一般的物体而不考虑皮肤的spatial distribution。

而上述算法通过结合了光照模型和真实采集的细节数据,生成更接近真实的皮肤的结果。

附加材料里面提供了更多的结果:

Photo-Realistic Facial Details Synthesis from Single Image

https://arxiv.org/abs/1903.10873

这项工作已经在GitHub上开源!

这项工作已经在GitHub上开源!

这项工作已经在GitHub上开源!

https://github.com/apchenstu/Facial_Details_Synthesis

一点想法

做完这篇文章,一个比较深刻的体会是,不管人脸还是人体都很缺乏几何模型和in-the-wild图片的对应关系。

因为获取这样的数据是一个很难的问题,准确的几何往往需要特定的采集环境而没法采集到in-the-wild图片。

比较好的背景是,现在有好多生成非常高质量的人脸图片算法,同时也有很多几何合成算法。

如何在无标注样本情况下建立他们之间的联系(图片到几何和几何到in-the-wile图片)将是一个很有意义的方向。

最后非常感谢导师和队友们时常一起做实验和修改文章到深夜,也感谢大家愿意花时间读到这里。

很是惭愧,就做了一点微小的贡献,希望对大家有所帮助。

更多阅读:

CVPR 2019 论文大盘点-人脸技术篇


人脸技术交流群

关注最新最前沿的人脸检测、识别、对齐、重建技术,欢迎加入专属交流群,扫码添加CV君拉你入群,(如已为CV君好友请直接私信)

(请务必注明:人脸

喜欢在QQ交流的童鞋,可以加52CV官方QQ群:805388940。

(不会时时在线,如果没能及时通过验证还请见谅)


长按关注我爱计算机视觉

ICCV 2019 Oral | 三维ZAO脸,单张图片估计人脸几何,效果堪比真实皮肤相关推荐

  1. 让机器也拥有品味!时尚图像补全网络FiNet| ICCV 2019 Oral

    点击我爱计算机视觉标星,更快获取CVML新技术 本文对ICCV 2019 Oral 论文 FiNet: Compatible and Diverse Fashion Image Inpainting进 ...

  2. ICCV 2019 Oral 端到端任意形状场景文字识别

    点击我爱计算机视觉标星,更快获取CVML新技术 本文简要介绍来自谷歌近期的一篇论文"Towards Unconstrained End-to-End Text Spotting", ...

  3. CVPR 2019 | 基于骨架表达的单张图片三维物体重建方法

    现有的单视角三维物体重建方法通过采用不同的几何形状表达方式取得了不同程度的成功,但它们都难以重建出拓扑复杂的物体形状.为此,华南理工大学,香港中文大学(深圳)以及微软亚研院联合提出一种以骨架(meso ...

  4. ICCV 2019 Oral | 解读北大提出的期望最大化注意力网络EMANet

    点击我爱计算机视觉标星,更快获取CVML新技术 本文经机器之心(微信公众号:almosthuman2014)授权转载,禁止二次转载. 导读:本文作者为52CV分割群里一位技术大佬,论文中将期望最大化机 ...

  5. ICCV 2019 | SPM:单阶段人体姿态估计解决方案

    本文为极市作者Panzer原创,欢迎加小助手微信(cv-mart) 备注:研究方向-姓名-学校/公司-城市(如:目标检测-小极-北大-深圳),即可申请加入目标检测.目标跟踪.人脸.工业检测.医学影像. ...

  6. 单张图片风格人脸卡通化: 试玩JoJoGAN

    人脸卡通化好玩有趣,问题是样本不好找,采用后面链接里的方法来训练至少需要2000张左右的样本才能达到一个比较好玩的效果.基于此有不少few shots或者one shot的方案被提出来,JoJoGAN ...

  7. ICCV 2019 | 基于无标签单目视频序列的单帧三维人体姿态估计算法

    作者丨王璇 学校丨西安交通大学 研究方向丨人体姿态估计 我们都知道,要训练一个准确的三维人体姿态估计深度神经网络,需要大量有三维标签的数据,越多越好.而在现实生活中,我们很难得到很多有标签数据,而无标 ...

  8. ICCV 2019 开源论文 | ShapeMatchingGAN:打造炫酷动态的艺术字

    作者丨杨帅 学校丨北京大学博士生 研究方向丨图像风格化 论文引入 当你制作 PPT 时想要打造与背景图片风格一致的标题,当你设计宣传海报时想要一个引人注意的标题,当你发朋友圈时想要更生动地展示文字所传 ...

  9. DeepGCNs-Can GCNs Go as Deep as CNNs? ICCV 2019

    文章目录 1. 相关介绍 1.1 背景介绍 1.2 contribution 1.3 CNN中的dilated convolutions (膨胀卷积.扩张卷积.空洞卷积) 2. 模型与方法 2.1 图 ...

最新文章

  1. Makefile学习笔记 - 我的CPP之路 - C++博客
  2. python 加注拼音-一个将汉字转换成汉语拼音的python库的代码
  3. live555 源码分析:MediaSever
  4. mysql dump hbase_mysqldump导出全数据库
  5. 对于一颗完全二叉树,要求给所有节点加上一个pNext指针,指向同一层的相邻节点;如果当前节点已经是该层的最后一个节点,则将pNext指针指向NULL;给出程序实现,并分析时间复杂度和空间复杂度。
  6. Python语言学习系列------基础语法(一)
  7. html5技术英文论文参考文献,英文论文的参考文献范例(精选8篇)
  8. 如何把GitHub中的开源项目导入到Eclipse
  9. Spring mvc4 + ActiveMQ 整合
  10. 创建自己的Convers. Routine.
  11. hdu5791(DP)
  12. python 文件复制中出现 Python3之由通用字符名称“\u202A”表示的字符不能在当前代码页中表示出来
  13. DotNetNuke(DNN) 中查询所有管理员的SQL语句
  14. codeforces 812B. Sagheer, the Hausmeister
  15. 面向对象程序设计——基于JML的地铁系统
  16. 计算机软件维护方法,计算机软件维护策略
  17. 百宝云Web网络验证系统防破解设置
  18. 51单片机数码管显示历史键值
  19. python进制转换函数
  20. 20175212童皓桢 《Java程序设计》第六周学习总结

热门文章

  1. 天池-新闻推荐-数据分析
  2. 使用 做签名的post_腾讯IMWeb团队是如何使用 NodeJS 实现 JWT 原理
  3. android 读取sd卡中string.xml,android,从SD卡读取xml文件中的值
  4. python 图片读写_Python各种图像库的图像的基本读写方式
  5. python系统提供构造函数传入参数_python类变量与构造函数的使用
  6. RedHat未注册 无法使用yum的解决办法
  7. 玩客云刷armbian后根目录扩展
  8. java 拟合曲线_如何通过指数曲线拟合数据
  9. web加减乘除法c#_c# 两个数的加减乘除
  10. java实验6 词频统计_java实训一——词频统计