2. 浙江理工大学 理学院, 杭州 310018
2. School of Science, Zhejiang Sci-Tech University, Hangzhou 310018, China
近年来, 人脸图像纹理合成和三维人脸重建已成为图形图像处理、计算机视觉、人工智能与模式识别等领域的研究热点内容. 基于图像的三维人脸重建[1]由于能提升用户的体验感, 在三维动画、计算机游戏、虚拟服装试衣等领域有着广泛的应用价值.
目前, 基于图像的三维人脸重建可分为基于深度图像的重建[2]、基于多图像序列的重建[3]与基于单图像的重建[4]等方式. 基于单张图像的三维人脸重建因使用人脸照片较少, 操作实现方便, 已成为人脸重建中的热点研究方向. 基于单张图像的重建流程包括人脸图像特征点提取、肤色校正、人脸图像融合、人脸纹理图合成以及三维纹理映射等操作. 现有的重建算法在人脸纹理合成时没有考虑光照不佳, 眉毛遮挡等因素的影响, 使得重建结果不够美观. 因此, 本文重点在肤色校正、人脸无缝融合以及眉毛重建等方面进行优化, 充分利用单张图像上的信息生成具有真实感及美感的人脸纹理图.
在人脸特征点提取上, 主动形状模型(Active Shape Model)[5,6]和主动表观模型(Active Appearance Model)[7]是两个最为经典的方法, 开创了解决此类问题的两类经典架构; 深度学习技术是近年来出现在机器学习领域的一种突出的信息分析建模技术, 该技术基于多层神经网络架构实现对复杂模型的模拟和逼近, 具有突出的揭示数据内在联系和结构的能力, 有效推进了人脸特征点提取技术的发展. 在肤色校正上, 邱佳梁等人[8]提出肤色美白算法, 能够较好地对光照不足的人脸进行提亮, 但该算法无法对肤色偏差实现校正; Reinhard等人[9]提出了经典的颜色转换算法, 该算法对于图像全局的色调改变有一定的效果, 但在局部颜色转换上存在问题; Chen等人[10]使用基于局部线性嵌入算法的编辑传播, 该方法要求用户手动选取需要被转换的区域以及不被转换的区域, 没有实现完全自动化. 在图像无缝融合上, 常用的方法有加权平均法、高斯滤波法、多分辨率法、基于梯度域的融合法等. 其中, 加权平均法简单、计算速度快, 但融合效果差, 很难消除运动目标所形成的模糊阴影; 高斯滤波法利用高斯核函数对图像重叠区域进行平滑处理, 易造成局部模糊; 多分辨率法将图像分解在不同频带, 以实现整个图像的融合过渡, 但需多次滤波, 且计算量大, 易造成信号减弱, 导致图像模糊; 基于梯度域的方法在梯度域实现图像的合成, 利用已知图像的梯度信息引导插值融合, 不会出现模糊现象, 融合效果好. 在轮廓提取上, Li等人[11]提出不需要初始化的水平集模型, 解决了传统的水平集模型重新初始化的问题, 提高了轮廓拟合速度.
本文工作将对一张人脸图像采用基于局部线性嵌入算法的编辑传播来实现肤色的校正, 对于需要转换的肤色区域, 利用ASM算法提取的特征点实现自动选取; 采用泊松编辑方法将人脸五官区域与标准肤色图融合; 同时, 对于眉毛遮挡, 本文提出一种结合Li模型与角点检测的方法重建眉毛轮廓; 最后将生成的人脸纹理图映射到三维人脸模型上.
1 概述及流程图本文提出一个算法框架, 对用户输入的人脸图像结合标准肤色进行美化处理, 生成纹理图, 实现三维人脸重建. 首先, 采用ASM算法提取人脸特征点, 用于区域约束和纹理映射; 其次, 采用基于局部线性嵌入算法的编辑传播来实现对人脸肤色的颜色转换; 随后, 通过泊松融合实现人脸区域与标准肤色图像的无缝融合, 同时, 分情况对遮挡眉毛进行还原重建. 经过这一系列处理, 得到美化后的人脸纹理图, 将其映射到三维人脸模型上, 得到重建人脸. 算法流程图如图1所示.
2 人脸特征点提取本文采用ASM算法提取人脸特征点. ASM算法通过模型训练与模型搜索两个步骤实现特征点提取. 在模型训练阶段, 训练样本集建立主动形状模型与局部灰度模型; 在模型搜索阶段, 将第一步得到的初始形状对目标图像进行匹配, 然后根据局部灰度模型调整参数, 直至收敛. 这样即得到最终的人脸特征点定位, 实验结果如图2所示.
3 颜色转换为实现人脸肤色的美白或修正由光照等外界因素造成的肤色偏差, 我们采用颜色转换将原肤色转换为指定的肤色. 自动颜色转换算法由Reinhard等人首次提出. 该算法统计原图像与目标图像在
$I_r^c = \frac{{dev_t^c}}{{dev_s^c}}\left( {I_s^c - mean_s^c} \right) + mean_t^c$ | (1) |
式中,
该算法对于图像全局的色调改变有一定的效果, 但在局部颜色转换上存在问题, 比如人脸的颜色转换. 本文采用基于局部线性嵌入算法的编辑传播方法实现人脸的颜色转换. 通过颜色转换, 我们便排除了人脸照片拍摄时过亮、过暗等环境造成的不良影响.
(1) 局部线性嵌入(LLE)算法
在颜色转换之时保持五官及皮肤的原有纹理, 即保持数据的流形结构不变. 局部线性嵌入(Locally Linear Embedding)算法在将数据从高维映射到低维的同时, 保持数据流形结构不变, 使得每个样本能够表示为其邻域的线性组合. 我们用向量xi来表示在某个特征空间中一个像素点i. 给定一个数据集
$\sum\limits_{j = 1}^N {{{\left\| {{x_i} - \sum\nolimits_{i \in {N_i}} {{\varpi _{ij}}{x_{ij}}} } \right\|}^2}} $ | (2) |
约束条件
(2) 编辑传播
接下来, 我们将使用编辑传播的方法来实现颜色的转换. 传统的编辑传播思想考虑两个条件: 被传播的像素结果与用户输入(如指定颜色)接近; 相似的像素经传播后具有相似的结果. 基于LLE的编辑传播同样考虑第一点, 不同的是第二点考虑在某个颜色空间中, 由所有像素组成的数据流形结构保持不变.
给定原图像与目标图像, 我们可以通过最小化如下能量函数来传递颜色:
$E = \sum\limits_{i = 1}^N {{{\left( {{s_i} - \sum\nolimits_{{s_j} \in {N_i}} {{\varpi _{ij}}{s_j}} } \right)}^2} + \lambda \sum\nolimits_{i \in R} {{{\left( {{s_i} - {t_i}} \right)}^2}} } $ | (3) |
其中,
该能量函数能够进一步地写成矩阵形式:
$E = {\left[ {\left( {I - W} \right)S} \right]^{\rm{T}}}\left( {I - W} \right)S + {\left( {S - T} \right)^{\rm{T}}}\Lambda \left( {S - T} \right)$ | (4) |
S是第i个元素为
$\left[ {{{\left( {I - W} \right)}^{\rm{T}}}\left( {I - W} \right) + \Lambda } \right]S = \Lambda T$ | (5) |
本文采用三维人脸模型的标准肤色作为输入颜色, 通过颜色转换, 将原图像的肤色色调调整为与三维人脸模型一致. 颜色转换结果如图3所示.
4 人脸无缝融合和眉毛修复处理
本文通过泊松融合对人脸图像和标准肤色图实现无缝融合. 泊松融合又叫泊松图像编辑[12], 实质为在某个梯度向量场的引导下的图像插值, 其基本原理如下:
设图像S上有一个闭合子区域
$\mathop {\min }\limits_f \iint {{{\left| {\nabla f - V} \right|}^2},f{|_{\partial \Omega }} = {f^*}{|_{\partial \Omega }}}$ | (6) |
式中,
本文通过ASM算法检测得到的特征点自动选取出眉毛、眼睛、鼻子、嘴巴构成的区域作为待融合区域, 这样初步排除了头发遮挡的问题. 目标图像为一张标准肤色图, 设定融合中心位于肤色图中心, 使融合的人脸区域处于肤色图中间, 这样得到一张无缝的人脸纹理图, 用于三维人脸重建. 由于标准肤色图的颜色是根据三维模型的颜色选取, 纹理图的脸颊边缘颜色与三维模型的颜色一致, 所以能够有效地解决边缘融合问题.
另外我们考虑眉毛被遮挡的情况, 通过判断眉毛外侧角点邻域内的灰度值, 检测得到眉毛被遮挡的不同情况. 当出现眉毛遮挡时, 泊松融合分两个区域进行, 一部分为眼睛、鼻子、嘴巴组成的区域, 另一部分眉毛区域则单独处理, 可分三种情况:
(1) 若一侧眉毛完整, 另一侧眉毛被完全遮挡, 利用人脸对称性, 将完整的眉毛水平镜像映射到另一侧, 如图5所示.
(2) 当两侧眉毛均被遮挡时, 选取一对眉毛模板, 将其融入两侧眉毛区域, 如图6所示.
(3) 当一侧眉毛完整, 另一侧眉毛仅部分被遮挡时, 我们利用完整眉毛轮廓, 同时结合另一侧未被遮挡的部分眉毛轮廓, 来重建该侧眉毛, 以达到更接近真实眉毛的效果. 我们采用Li模型结合角点检测来修复该种情况的眉毛遮挡. 首先, 我们采用Canny算子检测得到完整一侧的眉毛轮廓, 然后将该轮廓线水平翻转, 作为另一侧被遮挡眉毛的初始轮廓线. 同时在被遮挡眉毛区域寻找中间角点, 这样以角点为分界得到未被遮挡的部分, 以此作为对Li模型演化的约束, 演化得到最终的眉毛轮廓. 如图7所示, 图7(a)是完整眉毛区域, 对其采用Canny算子检测得到轮廓图7(b), 将其水平翻转为图7(c). 然后在有部分遮挡的眉毛区域寻找角点如图7(d), 随后将图7(c)的轮廓以眉毛端点为基准贴合于该区域如图7(e), 最后以角点为分界, 在未被遮挡的眉毛区域通过Li模型演化得到最终的重建眉毛轮廓. 得到重建眉毛轮廓后, 将原图两侧眉毛以角点为分界进行融合. 如图8所示, 图8(a)选取未被遮挡的区域, 图8(b)选取完整眉毛翻转后的外侧区域, 将这两个区域融合得到重建后的眉毛, 见图8(c), 该重建眉毛利用了半遮挡眉毛的部分信息, 更贴近于真实的眉毛.
5 三维人脸重建
最终, 我们将由上述算法得到的人脸纹理图映射到三维模型上. 人脸纹理映射[13]可将二维图像上通过ASM算法提取的特征点坐标与三维模型上对应的特征点坐标对应起来, 最终可归结为一个最小二乘问题进行求解. 本文利用OpenGL提供的函数库来完成三维人脸模型的纹理映射.
6 实验结果该实验选取100幅特定照片作为测试集, 服务器端图像处理算法电脑CPU为Intel酷睿4核4.20 GHz, 内存为16 GB, 在MyEclipse运行环境中, 通过Java程序对待测人脸图像进行特征点提取、颜色转换、泊松融合以及眉毛修复等一系列操作.
为了验证本文算法对环境有较好的抗性, 我们对不同光照背景下的人脸图像进行实验, 可以看到, 对于光线过暗的环境, 算法能够较好地美白肤色, 对于肤色偏差的情况, 也能实现良好的肤色校正效果, 实验结果如图10所示.
为了验证本文算法对眉毛遮挡的修复效果, 我们对不同发型的人脸图像进行了实验, 可以看到, 算法能够较好地还原眉毛, 实验结果如图11所示.
本文还与FaceGen软件、深度学习方法[14]进行了比较, 并记录重建完成所需要的时间(表1), 实验结果表明, 本文算法在时间上具有明显优势, 有利于实时应用推广. 本文结果在保持人脸相似度的同时, 对人脸还进行了美化处理, 并对头发进行了去除, 眉毛进行了重建, 使用户可以更换其他发型. FaceGen在眉毛重建时眉梢会出现拉伸变形, 在刘海去除上未能达到完全去除的效果; 深度学习方法未实现对刘海的去除和眉毛重建. 实验结果如图12所示: 第一列为原图, 第二列为本文方法结果, 第三列为FaceGen结果, 第四列为深度学习方法结果.
7 总结与展望
本文对人脸图像基于标准肤色进行美化处理, 生成人脸纹理图, 将其应用于三维人脸重建, 得到个性化三维人脸模型. 由于现实生活中拍摄的人脸图像可能存在头发遮挡, 光照条件不佳等情况, 对人脸图像的三维重建往往无法得到美观的效果, 为此本文提出一个算法框架, 能够对人脸实现自动检测及美化, 从而得到较好的人脸重建结果. 实验结果表明本文算法能够得到令人满意的重建效果, 包括能够重建被遮挡的眉毛区域, 并且较其他方法具有优越的运算效率, 能够达到实时性.
本文在人脸纹理图生成时, 要求输入图像为正面人脸图像, 如何通过视频获取更多角度的人脸图像信息进行人脸纹理生成, 以及考虑人脸偏转实现姿势矫正等, 达到精度更高的重建效果将是我们今后的工作. 同时, 人脸上的装饰物(如眼镜)会影响纹理图的生成效果, 如何去除装饰物影响也是我们的一项重要工作. 另外, 现有工作是通过标准纹理映射算法将人脸图像映射到三维人脸模型上, 如何构造更加准确的纹理映射算法生成高质量三维重建人脸, 也是今后的主要工作.
[1] |
Stylianou G, Lanitis A. Image based 3D face reconstruction: A survey. International Journal of Image and Graphics, 2009, 9(2): 217-250. DOI:10.1142/S0219467809003411 |
[2] |
Newcombe RA, Izadi S, Hilliges O, et al. KinectFusion: Real-time dense surface mapping and tracking. 2011 10th IEEE International Symposium on Mixed and Augmented Reality. Basel, Switzerland. 2011. 127–136.
|
[3] |
王亚南, 苏剑波. 基于图像合成的多姿态人脸图像识别方法. 模式识别与人工智能, 2015, 28(9): 848-856. |
[4] |
Richardson E, Sela M, Orel R, et al. Learning detailed face reconstruction from a single image. arXiv:1611.05053, 2017.
|
[5] |
Ginneken BV, Frangi AF, Staal JJ, et al. Active shape model segmentation with optimal features. IEEE Transactions on Medical Imaging, 2002, 21(8): 924-933. DOI:10.1109/TMI.2002.803121 |
[6] |
吴证, 周越, 杜春华, 等. 彩色图像人脸特征点定位算法研究. 电子学报, 2008, 36(2): 309-313. DOI:10.3321/j.issn:0372-2112.2008.02.018 |
[7] |
Tzimiropoulos G, Alabort-i-Medina J, Zafeiriou S, et al. Generic active appearance models revisited. Lee KM, Matsushita Y, Rehg JM, et al. Computer Vision-ACCV 2012. ACCV 2012. Berlin: Springer, 2012. 650–663.
|
[8] |
邱佳梁, 戴声奎. 肤色纹理保留实时人脸美化算法. 计算机辅助设计与图形学学报, 2018, 30(2): 336-345. |
[9] |
Reinhard E, Ashikhmin M, Gooch B, et al. Color transfer between images. IEEE Computer Graphics and Applications, 2002, 21(5): 34-41. |
[10] |
Chen XW, Zou DQ, Zhao QP, et al. Manifold preserving edit propagation. ACM Transactions on Graphics, 2012, 31(6): 1-7. |
[11] |
Li CM, Huang R, Ding ZH, et al. A level set method for image segmentation in the presence of intensity inhomogeneities with application to MRI. IEEE Transactions on Image Processing, 2011, 20(7): 2007-2016. DOI:10.1109/TIP.2011.2146190 |
[12] |
Pérez P, Gangnet M, Blake A. Poisson image editing. ACM Transactions on Graphics, 2003, 22(3): 313-318. DOI:10.1145/882262 |
[13] |
Dominitz A, Tannenbaum A. Texture mapping via optimal mass transport. IEEE Transactions on Visualization and Computer Graphics, 2010, 16(3): 419-433. DOI:10.1109/TVCG.2009.64 |
[14] |
Jackson AS, Bulat A, Argyriou V, et al. Large pose 3D face reconstruction from a single image via direct volumetric CNN regression. 2017 IEEE International Conference on Computer Vision (ICCV). IEEE. Venice, Italy. 2017. 1031–1039.
|