Face2face:非深度学习时代如何进行实时的三维人脸重建

本文主要基于开源项目Face2face[1](中间会提及到face3d[2]和eos[3]),对采用传统优化方法从二维图片拟合3DMM的三维人脸重建算法整体流程做一个介绍。由于项目作者没有给出参考文献,笔者是从代码推论出来的整个算法,如有错误,欢迎指正。


一.算法流程

如图一所示,整个算法包含三个步骤,其中人脸关键点检测,用于获取二维图像上人脸的语义点,连同图片本身作为拟合问题的真值,而估计相机变换和估计身份、表情、纹理和光照系数则是拟合问题待求解的参数。

图1.算法流程

二.具体步骤

1.人脸关键点检测

项目中采用了dlibopenpose进行提取。非重点,这里就略过了。

2.估计相机变换参数

根据上述检测到的2D人脸关键点和当前估计的3DMM人脸的3D关键点,采用黄金标准算法来估计相机变换参数,包括旋转、平移和尺度(对应项目代码位于face2face/optimize/camera.py)

当采用射影摄像机时,算法如下(见[4] P123P{123}P123

图2.射影相机模型相机变换矩阵求解

当采用仿射摄像机时,算法如下(见[4] P126P_{126}P126

图3.仿射相机模型相机变换矩阵求解

sfm中估计基础矩阵或者本质矩阵的方法一样,这两种不同的相机模型下求解变换矩阵时也需要进行图像点和空间点归一化(见[4] P122P_{122}P122

图4.二维关键点的归一化

3.估计身份、表情、纹理和光照参数

构建目标函数

采用了投影2d关键点损失ElandE_{land}Eland、像素损失EpixelE_{pixel}Epixel和正则化损失Eid/exp/texregE_{id/exp/tex_{reg}}Eid/exp/texreg

Etotal=w1Eland+w2Epixel+w3Eidreg+w4Eexpreg+w5EtexregE_{total}=w_1E_{land}+w_2E_{pixel}+w_3E_{id_{reg}}+w_4E_{exp_{reg}}+w_5E_{tex_{reg}}Etotal=w1Eland+w2E

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值