基于单张图像的三维人脸重建

2018-08-03 03:14董洪伟杜星悦
传感器与微系统 2018年8期
关键词:法线反射率顶点

杨 振, 董洪伟, 杜星悦

(江南大学 物联网工程学院,江苏 无锡 214122)

0 引 言

三维人脸重建一直是计算机图形学一个研究热点,其间接方法是指由一张或多张二维图像重建三维人脸[1],包括基于统计模型的三维人脸重建[2~4]、基于多视几何的三维人脸重建[4]、基于光照立体的三维人脸重建[5~7],以及近年来迅速发展起来的基于机器学习的三维人脸重建[11,12]。本文采用基于光照立体的方法,实现从单幅人脸照片重建三维人脸。

传统的由阴影恢复形状(shape from shading,SFS)需要知道反射率属性和光照以及边界处的深度值,然而这些条件并不容易获得。 为此,Ira K[7]基于不同的人脸模型在尺寸、长宽比,以及鼻子、眼睛等主要特征的位置是相似的,并且假设人脸模型满足朗伯反射,通过引入一个参考人脸模型,将问题转化为求解图像的辐照度方程的问题,利用球谐函数先计算光照强度,再计算每个像素点深度值。

本文的方法与之不同之处是,先将初始模型投影到图像上以获取模型上3D点的颜色信息,进而更新每个顶点的法线,最后利用更新后的法线移动模型的顶点位置。与文献[13~15],不同之处是,本文只使用一张图像。文献[13,14]理论上需要最少4张图像,利用SVD建立与球谐函数的联系。但由于人脸是非刚性的,不同图像中的人脸会有表情上的差异,这会影响SVD的结果,因此需要大量图像消除噪声。

本文使用一张人脸图像重建高质量的三维人脸模型。输入一张人脸图像,采用文献[16]方法检测特征点,采用文献[4]中的形变模型方法拟合一个初始三维人脸模型;使用基于模型的SFS恢复模型上每个顶点的法线;基于法线使模型变形,获得具有细节的三维人脸模型。

1 本文算法概述

本文算法主要包括2部分:基于图像辐照度方程的模型顶点法线恢复和基于法线的模型变形。

首先基于输入的2D人脸图像,用文献[4]中的方法获得模型到图像的相机参数,并旋转参考模型使其与图像对齐。使用形变模型拟合一个初始三维人脸模型。为了计算顶点法线,获取当前视角下的可见点以及每个顶点在图像上投影点的颜色信息,利用基于获得模型到图像的相机参数,旋转参考模型使其与图像对齐,进而获取初始模型中当前视角下的可见顶点以及其在图像上的投影点的颜色信息。图1为本文方法的简要流程。

图1 本文算法简要流程

2 计算法线

首先用文献[4]中的形变模型方法拟合一个初始三维人脸模型,然后利用模型到人脸图像的相机参数旋转模型,并获取当前视角下模型上的可见顶点。 将模型上可见顶点投影到人脸图像上可以为每个顶点得到一个颜色信息。 本文使用球谐函数,基于每个顶点得颜色信息更新它们法线。

(1)

(2)

首先,计算光照系数和每个顶点的反射率。基于文献[9,10]方法,将其修改成适用于三维模型的形式

(3)

基于式(1)~式(3)给出能量函数

(4)

式中t为当前迭代次数。将第一项称为数据项,用于最小化顶点的颜色误差; 第二项和第三项为平滑约束项,其中第二项使得相邻点的反射率不会偏差过大,第三项使得相邻顶点的法线不会偏差太大;β为法线平滑约束的权重;第四项称为规则化项,使得更新后的值不会过于偏离初始值;γ为规则化项的权重。按照以下步骤优化式(4):

1)计算光照系数

首先计算光照系数,第一次迭代时,令顶点的反射率为所有顶点在图像上获得的颜色的平均值,令顶点的法线等于初始模型上的法线,将补偿值d置零。 此时平滑项和规则化项可以省略,式(4)可简化为

(5)

2)计算反射率补偿值

(6)

3)计算顶点法线

(7)

式(7)同样可由线性最小二乘法直接求解。

3 基于法线的模型优化

利用更新后的顶点法线优化初始模型。与文献[17]类似,定义

(8)

式中vu,vw为顶点vi的邻居顶点,构成一个三角形网格,vu,vw构成vi的一个对边。如图2所示。 式(8)约束每个顶点的法线要垂直于顶点的所有对边,即利用更新后的法线改变初始模型中顶点的位置。

图2 顶点和它的对边

简化文献[17]中的第二项约束为

(9)

(10)

式(10)同样是一个过约束的线性最小二乘优化问题,可以直接用线性最小二乘求解。图3给出用本文方法重建的三维人脸模型。

图3 本文方法重建的三维人脸模型

4 实验结果

使用Basel脸模型(Basel face model,BFM)[3]生成初始模型,初始模型有53,490个顶点和160,470个由三角形构成的面。首先将模型上的顶点投影到二维人脸图像,获取所有可见顶点以及这些顶点在彩色图像上的颜色信息。 利用式(3)更新可见顶点得法线。由于处理侧面人脸时,由于鼻子的遮挡,在鼻子附近会有一部分顶点不可见。使用式(4)时并没有更新这些顶点法线。 对于每个被遮挡得顶点,通过插值获取其法线。

实验中,本文的参数设置如下:α=0.2,β=3,γ=10,λ1=1,λ2=1。为了能够更好地与其他算法相比较,使用文献[7,10]所用的图像与本文方法进行对比实验,图4给出了对比结果。

图4 3种方法实验结果对比

5 结束语

本文首先利用SFS获取法线,然后基于法线时模型变形成具有细节的三维人脸模型,实验结果表明,本文方法可以重建高质量的三维人脸模型。 实验发现,初始模型与输入图像的相似度越高、相机参数越精确,SFS计算得到的法线便会越精确。提升初始模型的精度、优化相机参数,可以提高重建的三维人脸模型的质量,将来可以考虑将本文算法扩展到从多张图像重建三位人脸以及基于视频的三维人脸动画重建。

猜你喜欢
法线反射率顶点
影响Mini LED板油墨层反射率的因素
近岸水体异源遥感反射率产品的融合方法研究
基于定位法线的工件自由度判定方法及应用
具有颜色恒常性的光谱反射率重建
过非等腰锐角三角形顶点和垂心的圆的性质及应用(下)
过非等腰锐角三角形顶点和垂心的圆的性质及应用(上)
基于地面边缘反射率网格地图的自动驾驶车辆定位技术
椭圆法线定理的逆定理
双曲螺线的副法线曲面的相关性质研究*
数学问答