《Cascaded Regressor based 3D Face Reconstruction from a Single Arbitrary View Image》论文解读


本文来自四川大学,论文原文:

https://arxiv.org/abs/1509.06161v1

人脸3D重建就是从一张或多张照片中重建出人脸的3D的模型。本文提出了回归框架下的人脸3D重建,这篇文章给我的感觉就是SDM的3D版本,而经典的3DMM和ASM很类似,不知道我的看法是否正确。本文将3D重建建模成为回归问题,这样的话很多回归的方法就可以用在这里了,更进一步,深度学习的方法也是可以用在这里的。

概述

传统的3D重建问题解决方法是模型匹配(model fitting),本文将3D重建问题建模成回归问题,训练样本为3D模型和对应的多角度2D图片,2D人脸图片需要事先标记好特征点位置。2D图片上特征点位置和3D形状相关性比较大,而且对光照比较鲁棒。跟之前的方法相比,本文的算法可以从任意角度图片重建人脸,速度快,精度高。

问题模型

2D的人脸图片可以看做是3D人脸在2D平面上的一个投影。M=(S,T)M=(S,T)表示一个3D人脸,其中S∈{(xi,yi,zi)|i=1,2,...,m}S \in \{(x_i,y_i,z_i)\vert i=1,2,...,m\} 代表人脸的三维坐标形状,M∈{ti|i=1,2,...,m}M \in \{ t_i\vert i=1,2,...,m\}代表纹理信息,下标m代表3D人脸点云上所有点的个数, II代表M的2D投影,I(u,v)I(u,v)代表像素(u,v)(u,v)处的纹理值。3D人脸重建就是从2D图片II中计算出M的估计M^=(S^,T^)\hat M=(\hat S,\hat T)。

模型求解

重建过程

如图所示,本文提出的重建过程是:先选定一个初始的3D形状S0S_0(这里用训练集的平均形状),然后根据2D图片上的特征点使用回归不断调整3D形状,最后使得3D到2D的投影上的特征点和原始图片相符。是不是和SDM的模型很像,先选定初始形状,通过回归不断调整形状,其实训练过程也和SDM类似。

前文说过,训练需要的数据是人脸图片和其中的特征点坐标以及对应的3D模型。P=(u1,v1,...,ul,vl)TP=(u_1,v_1,...,u_l,v_l)^T代表2D图片上的特征点坐标,由于角度原因会有部分的点缺失,这些点被记为0。第k次迭代时的变化量记为ΔSk−1\Delta S_{k-1},第k次的迭代过程就是

Sk=Sk−1+ΔSk−1

S_k=S_{k-1}+\Delta S_{k-1}

如何求ΔSk−1\Delta S_{k-1}呢?

h(Sk−1)h(S_{k-1})代表从3D形状上提取的特征点(本文假设所有3D人脸的特征点在点云上都具有相同的坐标),然后将这个三维点云上的坐标投影到2D平面

P^k−1=F(h(Sk−1))

\hat P_{k-1}=F(h(S_{k-1}))

这里的FF代表从3D到2D的几何变换,包含了3D形状的rigid transform和3D向2D的投影,具体参数是由3D形状的平均值和2D特征点平均值估计而来。

2D平面上特征点和基准的差值为

ΔPk−1=P−P^k−1

\Delta P_{k-1}=P-\hat P_{k-1}

根据这个差值可以使用回归算法就可以得到ΔSk−1\Delta S_{k-1}

ΔSk−1=fk(ΔPk−1)

\Delta S_{k-1}=f_k(\Delta P_{k-1})

其中fkf_k代表回归算法,具体而言本文使用线性回归:

ΔSk−1=Rk⋅ΔPk−1

\Delta S_{k-1}=R_k \cdot \Delta P_{k-1}

分析一下这个式子:Rk∈R3m∗2lR_k \in R^{3m*2l},ΔPk−1∈R2l∗1\Delta P_{k-1}\in R^{2l*1},ΔSk−1∈R3m∗1\Delta S_{k-1}\in R^{3m*1},从2l2l个特征点偏移向3m3m个点云上点回归,这样点云上每个点的坐标都会发生变化。

训练过程

上面讲的是模型的测试过程或者说是重建的过程,在这个过程里面需要训练的就是RkR_k,和SDM的训练一样,回归的目标是从当前形状Sik−1S_{k-1}^i到基准形状SiS^i的变化量,输入的特征就是ΔPk−1\Delta P_{k-1},最小化平方和损失函数

argminRk∑i=1N∥(Si−Sik−1)−RkΔPik−1∥22

arg min _{R_k} \sum_{i=1}^N \Vert (S^i-S_{k-1}^i)-R_k\Delta P_{k-1}^i\Vert_2^2

至此本文的算法部分就讲完了。

结果

本文的算法和之前的方法相比,误差下降了很多,而且不同旋转角度对结果影响不大

作者还分析了特征点标记时候的噪声对结果的影响,发现在训练时候引入适当噪声结果更好

对于数据驱动的问题,结果常常会被数据影响,本文还分析了对新角度和新样本的泛化能力

总结

本文将3D重建问题建模成回归问题,感觉就像SDM的3D版本。个人感觉作者在训练时候使用的特征比较简单,似乎可以改进。这种基于回归框架使得3D重建问题有了很多新的可能性,就像人脸特征点检测一样,自从引入了回归模型以后,error大大降低。而且回归问题也可以引入深度学习,甚至可以实现端到端的重建,输入一张人脸,直接输出3D模型。

人脸3D重建:Cascaded Regressor相关推荐

  1. 2DASL:目前最好的开源人脸3D重建与密集对齐算法

    点击我爱计算机视觉标星或置顶,更快获取CVML新技术 之前52CV曾经报道过PRNet:人脸3D重建与密集对齐,其结果非常惊艳,在很多人脸应用中都有用武之地. 最近同样专注于3D人脸重建与密集对齐的算 ...

  2. 腾讯优图|人脸3D重建与渲染技术研究与应用

    编辑丨腾讯优图AI开放平台 6月5日-6日,2021全球人工智能技术大会(GAITC 2021)在杭州成功举办.本次大会,旨在汇聚中国科创智慧与活力的同时,与世界建立互通共享的沟通桥梁,在交流中探索共 ...

  3. 腾讯优图提出LAP无监督多视角人脸3D重建算法,高清还原面部细节

    编辑丨腾讯优图AI开放平台 近日,腾讯优图实验室提出无监督多视角人脸3D重建算法LAP(Learning to Aggregate and Personalize),摆脱人脸3D训练样本真值依赖,高清 ...

  4. FACEGOOD 推出10万点人脸关键点跟踪,重新定义工业级人脸3D重建

    2020-03-17 11:27:05 机器之心发布 作者:FACEGOOD 目前无论是学术界还是工业界对人脸的研究有两个方向,其一民用级,通过技术泛化为用户提供低精的产品,这些技术在工业级高精度上是 ...

  5. PRNet:人脸3D重建与密集对齐

    随着直播视频的兴起,人脸动画贴纸成为一项必备的视频技术,而其后的核心技术人脸对齐和人脸跟踪在学术界也越来越火,本文介绍的PRNet就可以使你快速开发有趣的人脸应用. PRNet来自于论文"J ...

  6. Mobile3DRecon:手机上的实时单眼3D重建

    今天为大家带来的文章是Mobile3DRecon: Real-time Monocular 3D Reconstruction on a Mobile Phone.在手机上实现实时的单眼3D重建. 此 ...

  7. 仅需一部摄像机即可实现基于AI的3D重建

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 Magic Leap研究人员提出了一种基于AI的方法,只需一个RGB相机即可捕获3D场景. 该方法称为 ...

  8. CMU黑科技,手机录视频,实现人脸3D建模的高度逼真

    来源:techxplore 编辑:梦佳 转载自:新智元 [导读]3D人脸建模技术一般成本高昂.而现在,卡内基梅隆大学的研究人员通过在智能手机上录一段视频,就能轻松完成!而且效果逼真又不吓人. 拿手机拍 ...

  9. 3D重建传统算法对比深度学习,SFU谭平:更需要的是二者的融合

    点击我爱计算机视觉标星,更快获取CVML新技术 机器之心原创 作者:一鸣 近年来,深度学习在计算机视觉的重要领域--三维重建中取得了一系列成果.然而,最近有论文指出,深度学习的 3D 重建表现甚至不如 ...

最新文章

  1. ADMT3.2域迁移之Server2003至Server2012系列(八)生成密钥文件及安装密码迁移工具...
  2. axios请求GBK页面中文乱码解决方法
  3. c语言那些细节之a+1和a+1的区别
  4. 前端学习(2786):完成推荐商品结构之头部标签栏
  5. (转)Arcgis for js加载天地图
  6. leetcode题解25-K个一组翻转链表
  7. pandas 索引 —— index、set_index、reset_index
  8. 宝塔Linux面板 5.9专业版破解,付费插件安装免费使用,全网首发!
  9. 软件开发中的EJB是什么?
  10. urb分析,usb_fill_bulk_urb函数理解
  11. Travis CI 持续集成工具 教程
  12. Xcode No certificate for team ‘xxx‘ matching ‘iPhone Developer: xxx (xxx)‘
  13. 制作自定义springboot banner
  14. linux连不上网问题总结
  15. 易优EyouCMS手机端url路径改为/mobile/方案(非自带m.xxx.com二级域名方案)
  16. 【玩转Jetson TX2 NX】(九)TX2 NX 安装onnx-tensorrt工具(详细教程+错误解决)
  17. 今年的目标 --还有两个月 我的21天计划
  18. 基于java的CRM客户关系管理系统的设计和实现
  19. 服务器支持电脑硬盘吗,服务器硬盘和普通硬盘有什么区别?服务器硬盘和普通硬盘区别对比评测...
  20. sqlserver战德臣_数据库系统(上):模型与语言答案

热门文章

  1. 删除u盘插拔记录linux,Linux清除U盘(USB)使用记录
  2. 安信可Combo固件常见应用示例集合,适用RTL8720系列 / Ai-WB2系列模组
  3. 宏碁tc601bios_acer tc-601电脑biso中不存在LAUNCH CSM这个选项,无法将win8改装为win7,怎么办?...
  4. java cucumber,如何在Cucumber Java中的步骤之间传递变量值?
  5. WinPE 安装 2003
  6. 利用MDK软件生成bin文件的简单方法
  7. C语言工资信息管理系统设计
  8. 皖能集团财务部主任朱文静:财务数字化转型为集团改革发展赋能
  9. adb安装apk命令
  10. wps office下载到桌面_WPS Office 2019 下载及安装教程|含Windows和MAC