基于区域色彩迁移的3D 人脸重建质量提升方法

2022-09-02 06:25卓奕炜田泽佳
电子设计工程 2022年16期
关键词:色域人脸色彩

门 豪,刘 宇,卓奕炜,田泽佳

(1.武汉邮电科学研究院,湖北武汉 430070;2.南京烽火天地通信科技有限公司,江苏南京 210019)

在计算机视觉领域不仅仅只有人脸的识别还有一个重要的领域就是人脸的重建,在人脸重建领域内又分别分为两个分支:3D人脸重建和密集对齐。在3D 人脸重建领域的发展中分为三个不同的阶段:第一阶段,基础研究阶段,在这个阶段中人脸的重建仅仅处于理论阶段,并没有很重要的成果出现;第二阶段,高潮发展阶段,在这个阶段中出现了对3D 人脸重建影响深远的两个基础方法,由贝尔胡米尔等提出的FisherFace,首次将线性判别分析(Linear Discriminant Analysis,LDA)纳入了人脸识别中,对图像表观特征进行降维处理。在此基础上文献[1]提出了现代3D人脸重建的基础模型3DMM,3DMM 首次提出了三维可形变模型,使用了PCA 进行降维分解,简化了模型的求解方式,也就是对齐方式,使快速生成3D 人脸成为了可能。文献[2]在2009 年使用激光扫描仪精确扫描了200 个人的人脸数据,得到了Basel Face Model 数据集,这个数据集是首个基于3DMM 的开源数据集;第三阶段,深度学习阶段,2017 年文献[3]中提出的VRNet 将3D 人脸带入了CNN 阶段,首次训练了一个简单的CNN 网络,可以直接由2D 图片回归3D 面部几何体积表示。同时在一些文献[4-7]中开始应用CNNs 来估计3DMM 的参数,以实现密集对齐。2018 年文献[8]中提出的PRNet 实现了真正意义上的端到端生成3D 人脸,输入一个2D 图片,通过UV 位置图实现密集对齐,直接重建出3D 人脸。

但是这些方法都有一个重要的问题,它们都基于3DMM 的原理,即纹理图和位置图的密集对齐,从而生成3D 人脸,在这个过程中如果模型的点云密集程度比较稀疏,就会造成在稀疏区域的3D 人脸生成颜色发生偏移,造成色彩填充的情况,影响3D 人脸生成的质量。

由于点云数据的采集比较繁琐而且成本很高,需要精密的激光仪器对人脸进行扫描处理,为了避免这个问题,该文通过一种新颖的方式采用RGB 色域分割的方法结合色彩迁移算法局部地将生成质量较差的3D 人脸进行校正,从而在不影响整体3D 人脸输出的基础上精确地对出现色彩填充的部分进行迁移纠错。在相同的数据集中对比不同的算法具有良好的效果表现。

1 方法

1.1 区域色彩迁移层

为了解决在低点云质量情况下输出的3D 人脸质量不佳的情况,该文在输出纹理图后添加了一个区域色彩迁移层。该层的作用就是调整输出的纹理图色彩,利用RGB 色域分割的原理确定出边界,在边界内使用色彩迁移算法矫正颜色具有偏差的部分,从而在不需要改变点云数量的基础上提升生成3D 人脸的质量。

1)RGB 色域分割

在处理图片边缘锯齿化问题中提到了一种边缘检测的方法,例如FXAA[9]就使用了这种边缘检测的方式,来确定锯齿化的边缘。在确定边缘的过程中使用了Luma 公式,该公式是由RGB 色彩加权[10]综合得出的,如式(1)所示:

其中,公式中的系数是由RGB 色域参数得到的。在确定边缘的过程中,选定两个像素值,通过公式中L值的大小来确定是否是相近的颜色,如果是相同或者相近的像素点颜色,L值会相等或者成正比,如果像素点颜色不同,那么L值则不同,通过L值的变化即可确定颜色不同的边界情况。算法流程如图1 所示。

图1 Luma公式确定边界

图中,1 表示白色,0 表示黑色,两者值不同则为不同颜色,值相同则为相同颜色。

2)RGB 色域转换lαβ色域

在完成RGB 色域分割之后,确定了需要进行色彩迁移的边界,在边界内需要进行色域的转换,该文使用的色彩迁移算法为reinhard 色彩迁移算法[11],该算法所使用的色域为lαβ色域,使用这个色域的主要原因是该色彩空间的色彩关联性不强,可以有效地将图像的灰度信息和色彩信息分离出来,可以分别对三个颜色通道进行独立的运算,同时不需要更改另外两个通道的信息。在输入图片进行RGB 色域分割后,将分割区域进行色域转换,然后再进行色彩迁移,从RGB 色域转换为lαβ色域[12]需要进行两步转换。

①RGB 色域转CIEXYZ 色域

在色域转换的过程中,首先需要将RGB 色域转换为CIEXYZ 色域,RGB 色彩空间是通过使用标准波长为700 nm(红色)、546.1 nm(绿色)和435.8 nm(蓝色)的三种单色原色获得的[13]。首先将原有的RGB 数据进行归一化处理,如式(2)所示:

归一化处理之后即可得到色彩空间中每一个点的值,通过光谱位图和RGB 色彩系数的性质可以将式(2)简化为如下方程组:

解这个方程组可以得到三组r、g、b的值,将这三组值代入相应的矩阵中即可得到r、g、b与x、y、z之间的关系矩阵如下:

但这并不是所求的X、Y、Z与RGB 之间的关系,还需要再进行一次矩阵的求逆矩阵过程,并且进行归一化处理即可得到相应的对应关系矩阵如下:

其中,K为系数常量,式(5)即代表了从RGB 色域转为CIEXYZ 色域的色彩空间对应关系,通过该矩阵即可将RGB 色域转换为CIEXYZ 色域。

②CIEXYZ 色域转lαβ色域

通过观察式(5)可以发现在系数矩阵中每一行值的和都接近于1,由于RGB 色彩空间的取值范围为[0,255],如果系数和为1,则X、Y、Z的取值范围应该与RGB 色彩空间的取值范围相同,因此可以通过等比修改系数的方式使其系数和为1,这样就可以使CIEXYZ 色域与RGB 色域在同等范围内映射,即完成了CIEXYZ 色域的规范化,在与RGB 色域点一一对应的基础上将其取值范围规范化为RGB 色域的取值范围,可以用式(6)完成上述转换:

其中,X、Y、Z为CIEXYZ 色域空间中的点,Xn、Yn、Zn为CIEXYZ 色域空间中的点集合。式(6)中的f(t)函数如下:

通过该公式可以将CIEXYZ 空间规范化,使其取值范围规范为[0,255],这个色彩空间即为所求的lαβ色域。

3)色彩迁移

在经过色域转换之后,将输入转化为lαβ色域,就可以进行色彩转移,色彩转移的算法主要是通过一个线性变换使目标图像和源图像具有相同的均值和方差,从而完成色彩迁移操作。

为了实现色彩迁移,首先要获得源图像和目标图像的均值和方差,假设l、a、b是目标图像的lαβ通道数据,ml、ma、mb为目标图像的均值,nl、na、nb为目标图像的标准差,L、A、B为源图像的lαβ通道数据;ml′、ma′、mb′为源图像的均值,nl′、na′、nb′为源图像的标准差。可以得到源图像与目标图像均值与方差之间的关系式方程如下:

通过式(8)可以看出,L、A、B对应的三个式子可以看做是三个线性方程组,斜率为两幅图片标准差的比值,均值为截距。这个线性变换保证了目标图像和源图像在lαβ色域中具有相同的均值和方差,从而实现色彩的迁移。

1.2 PRN算法人脸生成质量优化方法

该文采用上述区域色彩迁移方法,在纹理图生成之后,通过色彩迁移层将影响色彩块迁移为目标色彩块,从而优化人脸生成质量。PRN 使用UV 空间来表示3D 人脸结构,它是一种记录所有面部点云3D 坐标的2D 图像,在每个UV 多边形中都保留了语义信息,如图2 所示(左:输入2D 图片与3D 点云值之间的真实对应,右:第一行从左至右依次为输入2D图片、UV 纹理图、UV 位置图,第二行为UV 位置图对应的x、y、z通道),UV 空间保存的是2D 图片与点云对应的r、g、b色彩信息和真实的x、y、z位置信息。将真实的位置信息记录在位置图中,保留x、y、z通道,将r、g、b通道值替换为对应的x、y、z通道,得到纹理图,两者都是经过同一个点云完成对齐,所以生成的纹理图与位置图可以直接实现密集对齐。

图2 UV位置图

1.2.1 PRN网络结构优化

该文使用的网络结构由编解码模块和区域色彩迁移层组成,由于该文的思路是将输入图片转化为UV 位置图映射,使用编解码结构学习传递函数,从而可以在轻量级的CNN 网络上回归UV 参数。为了解决论文的主要问题,在输出纹理图的后面添加了一个区域色彩迁移层,用来调节由原编解码结构生成纹理图时出现的色彩填充情况。然后将色彩迁移后的图片与网格图进行关键点对齐拟合生成3D 人脸。网络结构图如图3 所示。

图3 网络结构图

1.2.2 损失函数设置

在损失函数设置中,该文使用了权重来构造损失函数。对于人脸中不同的区域给予不同的权重值,其中,人脸的68 个面部关键点中给予的权重值最高,用以保证网络学习关键点的准确位置,颈部等部分在3D 人脸生成的过程中关注度较小,则设置权重值为0,从而减小对网络训练的干扰。

所以损失函数设置表达式如下:

其中,P(x,y)为位置图中的x、y像素坐标,为给定的真实地面坐标位置,W(x,y)为给定的权重值。

具体来说,在设置权重时将面部分为4 个子区域,子区域1 为68 个面部关键点;子区域2 为鼻子、眼睛、嘴区域;子区域3 为脸颊等其他面部区域;子区域4 为颈部。4 个子区域的权重占比为16∶4∶3∶0。面部权重设置如图4 所示。

图4 面部权重设置比重图

2 数据和实验细节

2.1 实验使用的数据集

由于该文使用的算法在训练的过程中要求需要有与输入2D 图片相对应并且具有语义信息的3D 点云数据,因此,使用300WLP 作为训练集。300WLP 包含了不同角度的人脸图像,并且对3DMM 进行了注释,可以很便捷的从中恢复点云数据,并通过网络训练得出相应的位置图。

在测试集方面,该文使用了两个不同的数据集作为测试集,分别为ALFW2000-3D、Florence,其中,ALFW2000-3D 数据集中包含了2 000 幅图像,并且对脸部68 个关键点进行了注释,Florence 数据集是一个3D 人脸数据集,其中包含53 个受试者,使用高精度的结构光扫描仪器获得。

2.2 评价标准

在评价标准方面,分为两个方向作为评价细则,分别为3D 人脸生成质量与3D 人脸生成性能。使用不同算法输出的3D人脸图片作为对比,比较生成的3D 人脸质量。使用NME 作为评价指标来比较3D 人脸算法的生成性能。用以证明该文算法可以在不影响3D 人脸生成性能的基础上提高3D 人脸的生成质量。

2.3 实验细节

该文算法的训练平台为Linux 18.04,处理器为Intel Core i7-6700 3.4 GHz,内存24 GB,显卡为Nvdia GTX 1080。

算法使用的框架为Tensorflow,使用1.2 小节中的网络模型进行训练,使用Adam 优化器,学习率从0.000 1 开始,每5 个周期后衰减一半。批量大小设置为16。

3 实验结果

3.1 对比实验

在表1中对比了该文方法(以下简称PRN_RCM)和其他四种3D 人脸重建及密集对齐方法,实验在ALFW2000-3D 数据集中进行。

表1 对比实验结果

由表1 中结果可知,PRN_RCM 与次优方法PRN均有1.2%~5.4%的提升。值得注意的是PRN_RCM与PRN均使用了UV空间中的UV位置图作为3D人脸的表示方法。所以有理由相信,在更高质量的数据集下PRN_RCM 会有更好的表现。

为了检测3D 人脸生成的应用情况,使用了Florence 数据集中的不同偏航角度来测试不同姿态下的重建性能,如表2 所示,在所有的测试算法中,正面的重建效果都有很好的表现,但是在生成随机遮挡的测试下,该文算法PRN_RCM 在遮挡情况下结果增加了0.16 个百分点,但是PRN 两个数据量分别增长了0.87、0.84 个百分点,这说明在随机姿态下的人脸生成应用PRN_RCM 也具有较强的鲁棒性,并且与PRN 相比有一定的提升。

表2 遮挡情况下的对比实验结果

最后,为了对比生成3D 人脸的质量,对比了在ALFW2000-3D 数据集下PRN 生成人脸的质量和该文算法PRN_RCM 生成人脸的质量,在相同数据集下,且具有相同的点云数据下,对比耳部、脸颊部分的生成质量情况。

从图5 和图6 可以看出在相同的数据集和点云质量的情况下,该文算法PRN_RCM 与PRN 的比较提升很大,PRN 在脸颊部分有明显的色彩填充,PRN_RCM则在脸颊部分有完整的生成,并出现无色彩填充的情况。这表明PRN_RCM 可以在保证密集对齐以及3D 人脸生成应用有较小提升的情况下,同时可以提升3D人脸的生成质量,具有重要的参考价值。

图5 PRN生成3D人脸

图6 PRN_RCM生成3D人脸

3.2 消融实验

在消融实验模块设置了是否使用色域分割CGS、是否使用色彩迁移CMN,从这两个方向来验证同时使用两个方式可以得出最优的结果,结果以色彩填充占比为依据,色彩填充占比为脸部色彩填充块的面积与整体人脸面积的比值。比值越低则表示色彩填充越少,如表3 所示。

表3 消融实验对比结果

从表3 中的结论(每个类别中的结果数值越低,效果越好。)可以看出,在同时使用CGS 和CMN 的情况下,输出的结果质量最优。

4 结论

为了解决在点云数据密度较低的情况下出现颜色填充影响3D 人脸生成质量的问题,该文提出了一种使用区域色彩迁移的方法,在不改变点云质量的情况下有效地提高了3D 人脸的生成质量,并且在3D 人脸的密集对齐和3D 人脸的应用性上也没有受到影响,这表明该文算法具有较强的鲁棒性,在各类场景中均有较强的价值。

猜你喜欢
色域人脸色彩
有特点的人脸
一起学画人脸
远不止DCI色域,轻量级机身中更蕴含强悍的亮度表现 光峰(Appptronics)C800
说说DCI-P3色域的那些事
为什么4K广色域投影机会很贵?
浅谈印刷色彩管理的色域映射技术
三国漫——人脸解锁
神奇的色彩(上)
春天的色彩
色彩当道 俘获夏日