本次我们的分享是三维人脸重建问题,我们将从以下几个方面给大家进行分享:

首先,我们对三维人脸重建做一个通用的介绍,并对它的常见的方进行比较详细的介绍。

其次,我们对当前的三维人脸重建中最常用的一个模型,也就是3DMM模型给大家做个非常详细的介绍。在我们的传统方法和深度学习的方法中,都非常频繁地使用到了这个模型。

然后,我们会对三维人脸重建中面临的一些难点进行阐述。主要包括3D数据的获取以及模型精度的问题。

最后,我们将对三维人脸重建的应用进行展示,主要包括在表情驱动及人脸识别这两个方面。

下面开始正式的分享内容。

什么是三维人脸重建问题呢?我们看下面这张图:

这是一张二维的输入图片。当我们基于这样一张二维输入图片,得到了下边这样的一个三维的模型,也就是从2D的图片到3D的模型的转变,这就是一个所谓的三维人脸重建问题。

三维人脸重建问题,它实现了什么目标呢?

首先,它增加了维度。2D图像只包含二维的XY信息,而3D的人脸模型,它增加了一个深度的信息。实际上,通常使用XYZRGB等多维的向量来表示三维人脸的体像素。当包含了更复杂的光照模型之后,这个多维向量不仅仅包含XYZRGB可能还包含很多其他的一些细数。

其次,三维人脸图像相对于二维人脸图像有一个好处,就是三维人脸图像可以进行任意方向的投影,它投影可以得到任意角度的二维图片,得到这样的二维图片之后,它可以用于非常方便地解决二维图像难以解决的大姿态的人脸识别与关键点定位等问题。

那常见的三维人脸重建的方法主要包含三四个:

1)手工建模,也是最传统的方法。许多学过美工的同学应该知道,3DMAX Maya软件就是用于大型的3D模型的建模,它常用在电影和动漫的制作里面。比如说这下面这个图是咕噜咕噜,是《魔戒》里面的一个形象。

我们当年在看《魔戒》这样一个大场景制作的电影的时候是感觉到非常震撼的。因为在当年CG技术还没有这么发达,大家平常只接触到二维2D的电影的时候,《魔戒》的出现给我们带来了非常大的视觉冲击,它就是利用玛雅来进行咕噜咕噜等一些里面大型场景的制作。

上面这张图是我最喜欢的一部国产动漫《秦时明月》,它也是利用三维的手工建模的方法来对其中的每一个人物形象基于3D的建模,然后进行渲染。

手工建模的技术广泛应用于电影动漫行业,它的特点就是必须要专业人员来操作,所以它的精度非常高,但是它的成本也非常高。

2)基于仪器的技术,主要包括结构光和激光扫描仪。说到这里,大家可能应该就想到了接下来我要说的是什么:iPhoneX。

这就是iPhoneX的结构光的技术。iPhoneX是市面上第一款实现3D人脸识别的产品,它利用的就是结构光的技术来进行三维人脸的重建。有了iPhoneX的三维人脸重建之后,它可以用于三维人脸的识别,以及做一些3D表情的动画。

这门技术它是主动三维测量技术,它就是使用一些消费级的3D传感器,它的成本虽然低,但是入门的门槛非常高。

现在国际上拥有这样一个批量生产有能力的企业屈指可数,国外就包括苹果微软,以及英特尔。国内包含了一个创业公司叫做奥比中光,他已经成功地实现了手机3D摄像头模组的量化量产。

所以在可见的一两年之内,我们应该能看到安卓手机上也开始大量地使用3D人脸识别技术。

3)基于图像的技术。基于图像的技术所使用的方法非常多:

a)最开始使用的是立体视觉的技术。立体视觉适用于模仿人眼的方案。因为人眼包括左右眼,左右眼,通过观察2D图像的视差,从而能够感受到3D的一个深度。

b)Structure from motion方法。Structure from motion是基于视频来进行3D的重建,所以它是利用光流等方法来估计相机的一个运动。

c)Structure from shape。它是一个基于反射光照模型的方法,它可以基于多张图或者单张图来进行三维的重建。

d)3D MM模型。3D MM模型是一个比较低维的3D模型。我们后面会给大家做详细的介绍。

最后还包含一些其他的方法。

总之基于图像的方法,它的特点就是它的成本非常低,精度也是最低的,但是因为它是现在最灵活的一个方案,也是在学术界被研究最广泛的方案。

下面我们给大家介绍着重介绍一下3D MM模型,是一个在三维人脸重建领域里面非常著名的模型。

这个模型基于这样一个思想:它将任何一张脸表示为一些平均脸的信息叠加,他利用199个人建立了一组标准的正交基,每一个标准的正交基就是一个3D的模型,它包含了5万多个点。正交基它分两种:形状正交基和纹理正交基。

上面是我们的形状正交基,可以看到形状正交基,它表征的就是形状,我们可以通过形状的系数来控制脸型。

上面这是纹理正交基,它表征的就是图像的纹理颜色,我们可以利用这样一个纹理系数来进行不同的颜色的渲染。

有了这两个标准的正交基之后,我们就可以把3D的人脸模型拆分为形状和纹理,分别是平均形状加上正交基的一些组合,以及平均纹理加上纹理正交基的组合。

关于更具体的信息,大家可以去下面这个网站去获取:

https://faces.dmi.unibas.ch/bfm/main.php?nav=1-1-0&id=details
那么3D MM模型,它要解决的核心问题就是如何恢复出我们这里的形状系数和纹理系数。

上面这幅图是一个比较早期的方案。这个方案的特点就是:首先我们建立了一个3D的数据库,就是我们前面所说的199个人建立的一个标准的数据集;然后我们输进了一种二维图像;再利用人脸检测、关键点检测获得它的一些关键点;获得68个关键点之后,因为这些关键点在三维的模型中也有它对应的关键点,所以我们可以从三维往二维图像进行投影;然后计算这个投影与我们获取到的二维关键点的一个误差,用最小二乘误差来求它的投影误差,从而优化我们前面的形状系数和纹理系数。

关于如何迭代的求取形状系数和纹理系数,大家可以去这样一篇文章中进行详细的解读:

Blanz V, Vetter T. A morphable model for the synthesis of 3D faces[C]//Proceedings of the 26th annual conference on Computer graphics and interactive techniques. ACM Press/Addison-Wesley Publishing Co., 1999: 187-194.
前面我们说的是用传统方法来解决这样一个系数问题,它是一个基于优化的方法,他可以获得解析解。

现在我们也可以利用深度学习的方法来直接回归这样的一个系数。上面这张图阐释的是一个深度学习的方案,这个深度学的方案不仅是基于一张图,而是基于多张图。基于这些图,每张图都首先重建一个3D MM模型,然后我们获得3D MM模型系数的一个平均值,获得平均值之后,我们再与它的增值去进行误差的比对,然后再进行反向的传播。

基于深度学习的方案的好处就是直接利用深度学习模型,回归出了相应的系数。在我们使用模型的时候非常方便,不需要去求解复杂的方程。

关于更多的细节,大家可以去相应的文章中进行读取。

三维人脸重建是一个比较困难的问题,它有以下几个难点:

首先,3D MM等模型维度太低导致图像细节难以恢复。我们前面说的3D MM模型是一个利用199个人脸,即199个3D模型构成了一个空间,每一个模型都只包含了5万多个点。实际上这5万多个点仍然是一个比较低维的表示。对于一个三维人脸来说,它的模型仍然非常低,我们在求解系数的时候也会用到PCA降维等方法,所以它天然就有一个缺陷,就是它的图像细节是难以恢复的,它难以恢复人脸中的细节,包括皱纹啊胡子等等。所以现在基于深度学习的最新的方案,已经开始放弃这样一个低维模型。

其次,数据标注成本特别高。因为如果我们要标注这样一个三维人脸,我们必须使用到昂贵的器械,包括一些激光扫描仪、结构光等等,这个数据标注成本比二维图像的数据标注成本要高很多。所以替代的方案是全世界尝试用一些仿真的数据,或者使用inverse rendering这种不需要标注数据的方案。

最后,3D人脸重建也容易受到干扰。这些干扰主要来自于遮挡和光照等等。

下面展示了一个比较有希望的方案。这个方案不需要标注数据,它也是个inverse rendering方法。

我们可以看到,首先利用深度学习,利用一个DEEP Encode来回归出它的系数,

然后我们基于前面的模型回归出一个三维的模型。得到三维模型之后,我们再往二维空间进行投影,最后在二维空间计算出像素的loss。这是一个不需要使用昂贵的标注数据的方案。

最后我们对三维人脸重建的应用做一个简单的展示,主要包含在两个方面:

首先,大姿态的人脸识别和关键点的检测。因为三维人脸重建中,当我们重建出它的模型之后,我们可以对这个三维人脸模型进行旋转等等操作,从而可以得到二维图像中被遮挡的一些区域。所以对于大姿态的人脸识别和关键点检测,三维人脸模型是有它的优势的。

其次,卡通画和表情驱动。这个我们从iPhoneX的卡通表情,就可以看出来它是一个应用的场景。下面我们用动画来进行一个展示。可以看到iPhoneX的一个表情的驱动是非常非常真实的。

下面这是一个大姿态的人脸关键点检测问题的展示。因为目前大致的人的关键点以及有遮挡的人脸关键点,仍然是困扰二维图像的一个非常大的课题。

我们往后期待三维人脸重建问题能够缓解甚至解决这样的一个问题。

感谢您的阅读,更多精彩尽在蜂口小程序~了解一下?
获取免费内容,欢迎V信fengkou-IT勾搭~

【蜂口 | AI人工智能】三维人脸重建——龙鹏 深度学习与人脸图像应用连载(十)相关推荐

  1. 【蜂口 | AI人工智能】表情识别——龙鹏 深度学习与人脸图像应用连载(七)...

    [文章首发于蜂口知道公众号,内容来源于蜂口小程序,欢迎关注了解~] 作者:龙鹏,前360AI研究员算法工程师,现任陌陌深度学习实验室高级算法工程师. 本次继续给大家 带来的是表情识别这个问题. 我们将 ...

  2. 【蜂口 | AI人工智能】三维人脸重建——龙鹏 深度学习与人脸图像应用连载(十)...

    本次我们的分享是三维人脸重建问题, 我们将从以下几个方面给大家进行分享: 首先,我们对三维人脸重建做一个通用的介绍,并 对它的常见的方进行 比较详细的介绍. 其次,我们对当前的三维人脸重建中最常用的一 ...

  3. 【蜂口 | AI人工智能】人脸美颜——龙鹏 深度学习与人脸图像应用连载(八)

    这次接着给大家带来人脸图像相关的分享.本次我们的分享是为大家所熟悉的人脸美颜算法,内容将从以下三个方面给大家进行分享: 首先,我们会给大家介绍一下人脸美颜到底包含哪些内容?人脸美颜算法包含的内容非常的 ...

  4. 【蜂口 | AI人工智能】人脸颜值——龙鹏 深度学习与人脸图像应用连载(五)

    这次继续给大家带来人脸图像相关的分享.本次的分享主题是人脸的颜值.这次的分享将从三个方面: 首先,我们对人脸的颜值,包括对它的定义和量化标准做一个简单的介绍. 其次,我们对颜值相关的特征,主要是面部的 ...

  5. 【蜂口 | AI人工智能】人脸美颜——龙鹏 深度学习与人脸图像应用连载(八)...

    这次接着给大家带来人脸图像相关的分享. 本次我们的分享是为大家所熟悉的人脸美颜算法, 内容将从以下三个方面给大家进行分享: 首先,我们会给大家介绍一下人 脸美颜 到底包含哪些内容? 人 脸 美颜算法包 ...

  6. 【蜂口 | AI人工智能】人脸颜值——龙鹏 深度学习与人脸图像应用连载(五)...

    这次继续给大家带来人脸图像相关的分享. 本次的分享主题是 人脸 的颜值. 这次的分享将从三个方面: 首先,我们对 人脸 的颜值,包括 对它的定义和量化标准做一个简单的介绍. 其次,我们对 颜值 相关的 ...

  7. 【蜂口 | AI人工智能】性别脸型分类——龙鹏 深度学习与人脸图像应用连载(四)

    本系列文章皆首发于蜂口知道公众号~内容来源:蜂口小程序,欢迎关注了解 大家好,我是龙鹏.这次继续给大家带来人脸图像相关的分享. 这次我们的分享是人脸的性别和脸型分类问题, 我们主要会从两个方面给大家进 ...

  8. 【蜂口 | AI人工智能】性别脸型分类——龙鹏 深度学习与人脸图像应用连载(四)...

    大家好,我是龙鹏.这次继续给大家带来人脸图像相关的分享. 这次我们的分享是人脸的性别和脸型 分类 问题, 我们主要会从两个方面给大家进行介绍: 1)我们会对图像分类这一基本问题给大家做一个比较完整的介 ...

  9. 人工智能AI:TensorFlow Keras PyTorch MXNet PaddlePaddle 深度学习实战 part1

    日萌社 人工智能AI:TensorFlow Keras PyTorch MXNet PaddlePaddle 深度学习实战 part1 人工智能AI:TensorFlow Keras PyTorch ...

最新文章

  1. Hanlp分词实例:Java实现TFIDF算法
  2. linux gcc-9.2.0 源码编译
  3. 【鸿蒙 HarmonyOS】Ability 中使用 XML 布局文件 绘制布局及 UI 组件
  4. Graphpad Prism作相关性分析图
  5. Qt tableWidget导入\导出Excel表格 自用
  6. presto联合查询mysql和ES_presto-mysql/elasticsearch6.0.0安装部署测试,异种数据源关联查询入门实践...
  7. mysql nhibernate_C#连接Mysql数据库NHibernate
  8. git status
  9. 计算机中逻辑运算用什么表示逻辑真,计算机逻辑运算和逻辑部.ppt
  10. 电影推荐系统kaggle
  11. Firefox downloadhelper 视频下载助手
  12. PS 金属质感文字制作
  13. 投注测试软件,手机投注软件怎么进行性能测试
  14. MIDAS:混频数据回归
  15. 美国L1签证和B1,E2签证的区别
  16. 扩展Euclidean算法求乘法逆原理详解与算法实现
  17. 【数据库查询--计算机、电脑系列】--查询价格最高的打印机型号。
  18. Android 使用ADB命令安装、卸载软件
  19. javascript中in用法介绍
  20. vue路由跳转不执行mounted方法

热门文章

  1. 从来不是别人的不幸和痛苦
  2. WebAssembly 初探
  3. Excel如何快速将含小数的数值提取出来
  4. zend_Zend认证工程师
  5. 技术分享 | gh-ost 在线 ddl 变更工具​
  6. Win系统 - 如何添加新用户,怎么添加管理员帐户?
  7. 即拼商城系统模式开发
  8. OBS Studio显示器黑屏
  9. 从 git 的历史记录中彻底删除文件或文件夹
  10. 通过源码分析Mybatis运行原理