基于Candide-3算法的图像中面部替换技术

2018-04-13 08:28黄诚
计算技术与自动化 2018年2期
关键词:图像处理

黄诚

摘要:提出了一种基于CANDIDE-3算法的人脸替换算法,该算法使用CLM作为面部特征点定位算法,将2维的面部特征点和CANDIDE中3维的顶点相对应,建立相应的源人脸算法。根据面部特征点估计出头部姿态和表情相关参数,对源人脸进行方向和角度调整,通过颜色转移算法,将源人脸的色彩转换为目标人脸的色彩,然后利用图像融合算法进行融合。实验结果表明,本文的方法能够在图像和视频中进行有效的进行人脸替换。

关键词:图像处理;人脸替换;面部特征点检测;人脸建模;图像融合

中图分类号:TP317.4

文献标识码:A

0 引言

人脸替换技术研究的是如何使用计算机或手机快速的將一张图像或视频中的人脸(目标人脸)替换成另一张图像或视频的人脸区域(源人脸)[1]。替换的基本需求是使替换后的图像或视频具有逼真自然的视觉效果,其次是表情转移,目标人脸的表情转移使得换脸效果更具有应用意义和使用空间。从2004起,人脸替换技术从基于图像库的人脸替换,至使用3D算法匹配替换[2],国内外一些高校和研究机构已经开展了人脸替换技术方面上的研究[3-5],并取得了一定的成果,此外,也有不少研究团队在人脸替换的基础上加了表情转移[6-7]。

Bitouk D等[8]人实现了照片中的自动人脸置换系统。此系统为使用了一个从网络中收集的人脸作为备选库,当输入一张图片时,系统从人脸库中找到面部表情和姿势相似的几个图片,然后调整这些备选的姿势,光照和颜色匹配源人脸,最后通过边界度量法则对这些融合后的人脸进行评分,得分最高的将作为最终结果替换到源图片上。2011年,Nuri Murat Arar等[9]人提出了一种基于AAM的人脸替换方法,使用了改进的Census变换方法(Modified Census Transform,MCD和AAM作为人脸检测和对面部建模的方法。然后使用分段仿射变形方法(piecewise affine warping)对所要替换的人脸进行面部配准,调整姿态和方向。2016年,Thies J等[10]人对于单目摄像头的数据,提出了一种无密集标记的面部捕捉方法,实时的替换视频中的人脸。

本文在考虑了人脸替换效果和实时性的基础上,提出了基于Candide-3算法的图像中人脸替换技术。在获取人脸区域后,通过匹配面部特征点与Candide-3算法建立映射关系后,将源人脸替换到目标人脸上。

1 人脸替换CANDIDE-3算法

1.1 面部特征点定位

面部特征点定位算法是人脸图像处理中的重要研究课题,它可以为后续人脸替换,表情转移提供基础数据,也可以用到表情识别,虚拟现实等场景。由于面部特征点定位算法是基于图像或视频的,所以依旧受到光照条件、遮挡、姿态等因素的影响。

常见的面部特征点定位方法有基于可变形模板(Deformable Template)的定位方法[11]、点分布算法[12](主动表现算法和主动形状算法)、图算法[13]等。本文的人脸特征点提取算法是基于CLM (Con-strained Local Models)算法[14],即有约束的局部算法算法,该算法融合了ASM和AAM两个算法的优点,既有ASM中的约束性,又有AAM的灵活性。CLM也学习拥有形状和纹理的面部算法(类似于AAIVD,但是他的纹理信息是体现在独立的Patch算法中,每个Patch被一些特征点包围。如图l所示,CLM算法可以检测68个面部特征点。

基于CLM的人脸特征点定位可分两个阶段:算法构建阶段和点拟合阶段。算法构建又分为形状算法构建和Patch算法构建,形状算法构建就是通过ASM算法获取的人脸形状建模,描述了形状变化遵循的准则。而Patch算法就是每个特征点的邻域进行建模,即建立一个特征点匹配准则,获得最佳匹配。

1.2 CANDIDE-3算法

CANDIDE算法是一组参数化的面部算法,用于基于算法的人脸编码。因为此算法具有较少的多边形,可以快速的对人脸进行重建。CANDIDE算法自问世以来,经过两次改版,最新一版为2001年的Candide-3算法。Candide-3算法具有113个面部顶点和184个形变三角形区域。

CANDIDE算法含有动作单元(Action Units.Aus)用来处理面部的动作。这些动作单元编码是相对于三个轴的旋转。动作单元控制脸部行为来获得不同的表情行为表达,这些面部行为包括但不限于嘴巴张合、鼻子耸动、眉毛抬起放下、眼睛闭合等。

1.2.1 颜色调整

由于光照和肤色的原因,源人脸区域的颜色通常和目标人脸区域的颜色不太一致,这就带来了一个色彩调整和图像融合的问题。由于在颜色转移的问题上,研究人员普遍选择Reinhard算法[15]因此本文也将采用此方法。此算法Lαβ是基于色彩空间的算法,由于Lαβ色彩空间是拥有亮度分量L,色彩分量α代表绿色到红色的光谱变化,色彩分量β代表蓝色到黄色的光谱变化。

对于两个不同肤色的人脸,首先分别对源人脸图像和目标人脸图像进行颜色转换处理,把RGB模式下的图像数据转换为Lαβ算法中的表达形式。然后分离颜色通道,表达(L,α,β)为类型的向量。然后计算得到每个通道的平均值meanO和方差σ。目标通道的值减去均值作为目标通道值。目标图像的方差和源图像的方差相除,作为变化比例。将新的目标通道值和比例相乘,再叠加上源人脸图像的颜色通道。最终结果,再转换为RGB图像通道的人脸图像,上述过程可以按照以下所示理解

1.2.2 脸型调整

脸型调整用来调整源人脸与目标人脸之间的脸型区别,是基于面部特征点定位的结果来进行形变处理仿射变换得到的结果。要实现对面部形变的替换,将使用仿射变换和经线三角形以及混合型变算法得到替换区域。混合量将由参数α控制。使用以下步骤创建变形:

(1)在变形图像中查找特征点的位置:在变形图像M中,我们可以找到所有特征点(xm,ym)的位置。

(2)计算仿射变换:源图像中有一组特征点,目标图像中有相同数量的特征点,在变形图像中有特征点的第三组。我们也知道这些点定义的三角测量。选择源图像中的三角形和变形图像中的相应三角形,并计算将源图像中的三角形的三个角映射到变形图像中相应三角形的三个角的仿射变换。为每对三角形计算仿射变换。最后,重复目标图像的过程和变形的图像。

(3)经线三角形:对于源图像中的每个三角形,使用上一步中计算的仿射变换将三角形内的所有像素转换为变形图像。对源图像中的所有三角形重复此操作,以获得源图像的翘曲版本。类似地,获取目标图像的翘曲版本。

(4) Alpha混合变形图像:在上一步中,获得了源图像和目标图像的翘曲版本。这两个图像可以使用进行alpha混合,得到最终效果。

大多数基于68个特征点的面部特征非常齐全,对面部区域的扭转变形,可以获得不错的效果。

1.3 头部姿态估计

头部姿态估计主要用于将源人脸和目标人脸的面部朝向和角度进行统一,可以使替换效果更自然。对面部的姿态估计主要通过跟踪特征点区域,通过面部特征点的相对位置判断面部的朝向和旋转角度。如图3所示,头部姿态估计可以通过俯仰角(pitch)、偏航角(yaw)和滚转角(roll)来描述。

(b)(c)偏航角,(d)(e)俯仰角,(f)(g)滚转角

对于表情的估计和传递,本文主要使用的是根据Candide-3算法中的动作单元系数,表情可以通过这些关键表情的组合,使源人臉和目标人脸的表情相匹配。面部对齐算法标记在每个脸上标记了68个特征点。在面部特征中,眉毛和轮廓的特征点是最不明确的,因为在这些区域很难具体的定义特征点。鼻子上的特征点与面部表情最不相关。因此,我们的算法集中在嘴部和眼睑的运动。有两个关于眼睑运动的关键表情:关闭左眼和关闭右眼的表达。眼镜的闭合部分通过上下眼睑之间的距离即可判断闭眼与否,可以根据图像中的动作反映在三维形变算法上。下面重点推导嘴部的动作判断。

1.4 人脸替换

经过上述的人脸建模,表情参数提取,已经得到了源人脸相关数据(基于形变算法的头部算法,调整过光照和颜色的头部纹理,表情系数),目标人脸相关数据(头部算法和姿态),通过已有的部件可以组合完成最后一步人脸替换步骤,即图像融合技术。良好的图像融合技术可以使两个不同的图片自然融合,达到边缘几乎不可见,图像融合效果好的效果。

图像融合,就是把不同的两个图片融合到一起,形成一张新的图像。越能使过渡自然的算法,效果越好。最简单的融合算法就是将两个图像拼接的位置将两张图像进行透明度线性叠加。拉普拉斯变换[16],泊松融合算法[11]都是比较高阶的图像融合算法。本文在这里只选用了最初的版本来进行说明。其主要思想是并非将两幅图像单纯的叠加,而是让目标图像在融合时根据自身的的图像变换梯度(一阶算子或者拉普拉斯算子表示的梯度),将源图像的纹理按照这个变换梯度进行纹理变换。

在泊松融合中,主要要解决的函数是以下公式,其中v是原图区域的梯度向量,g是源图像区域,S表示融合后的结果,其中f代表融合后的图像,f*代表目标图像未改变的区域,Ω表示要融合的区域,Ω表示融合区域的边缘部分:

这个式子是求解一个关系,在目标图像边缘不变的情况下,求融合部分的图像,使融合图像在融合部分的梯度与源图像在融合部分的梯度最为接近。

2 系统架构

将基于CANDIDE算法的视频人脸替换系统框架设计如图4所示。此系统拥有两个输入,含有源人脸的图像和含有目标人脸的视频文件。对于含有源人脸的图像文件,本文使用三维形变算法和源人脸进行基于Candide-3算法的建模,获得一个人脸算法。对于含有目标人脸的视频文件,首先使用人脸跟踪对齐算法,获得人脸位置和运动参数估计,根据人脸特征点的变化,获得表情参数。最后将源人脸的CANDIDE算法和目标人脸的表情和运动姿态合成,重新着色和调整光线后,使用图像融合技术将CANDIDE人脸算法和周围环境融为一体。

在人脸检测方面,本文使用的是MMOD人脸检测法,人脸跟踪方面,使用的是Mean-shift跟踪方法,人脸特征点定位方面,使用的是CLM算法匹配方法。姿态估计部分,使用坐标变换方法获得面部的旋转角度等参数,光照估计部分,使用光照调整算法使得两个人脸光照条件一致。

3 实验结果与分析

3.1 实验平台

本文中涉及到的所有算法都是在VS2015中,使用的开源开发工具为OpenCV3,Dlib,使用C++/Python语言编写实现的。基于CLM算法的面部特征点提取依赖于CLM人脸识别库。实验运行环境为Win lO,lntel (R) Core (TM) i5-4590 CPU@3.3GHz,8G内存,且安装了普通摄像头的计算机上,摄像头分辨率为640px*480px。

3.2 实验效果

基于上述平台和实验环境,本文提出基于图像和基于视频的两个人脸替换实现,图5是基于图像的人脸替换,图6是基于视频的人脸替换,这两种实现均使用了图4所表示的系统架构设计。

由图5可以看出对于基于图像的人脸替换算法具有很好的替换效果,替换后的融合图像具有和目标人脸的色彩范围,并且具有良好的五官替换效果和融合效果。

图6表示的用源人脸替换视频中的效果,左上角为源人脸图像,其他3张为一组的图像依次表示:目标人脸,Candide-3算法,替换效果。在本文的实验环境中,可以做到30FPS的替换速度,并且在此速度的基础上,仍能实现对面部五官进行替换的良好效果。图中可以看出对于不同的肤色、角度、方向、表情,都能出现较自然的替换效果。

然而此算法架构受限于算法提供的细节,导致替换后的效果减少了较多的目标人脸面部纹理细节,使得面部纹理和颈部纹理出现了差异。其次,对于头部旋转角度过大的情况,将出现面部丢失的情况,这也是一个需要继续改进的方向。上述问题将作为本文后续的努力方向进行研究。

4 结论

给出了一种基于Candide-3算法进行人脸替换的算法实现,人脸替换系统的实现主要包括人脸检测、特征点定位、色彩调整、人脸对齐、表情转移、图像融合这几个模块,并且每个模块都单独做了实验和测试。主要内容是将上述模块融合成一个系统,可以自动根据输入图像/视频进行人脸替换以及表情转移功能。从实验效果来看,具有较好的替换效果,可以运行到实际环境中去。若要使替换效果更进一步,保留目标人脸的面部纹理,需要在此方向继续进行研究。

参考文献

[1]林源,桂良琰,王生进,等,基于真实感三维头重建的人脸替换[J].清华大学学报:自然科学版,2012,52 (05):602-606.

[2]吴乐,黄修训,周霁婷,等,即时聊天的视频背景实时替换技术研究[J].电子测量技术,2014,37 (03):66-68+72.

[3]刘锦云,彭宏京,基于表情传输的交互式照片编辑[J].中国图象图形学报,2015,20 (10):1390-1402.

[4]魏瑋,马瑞,王小芳,视频中人脸位置的定量检测[J].计算机应用,2017,37 (03):801-805.

[5]陈晗,胡新荣,万立,复杂背景下人体头部图像替换算法研究[J].通信电源技术,2016,33 (02):130-131.

[6]徐明亮,孙亚西,吕培,等.呈现人脸显著性特征的二维码视觉优化[J].计算机辅助设计与图形学学报,2016,28 (08):1215-1223.

[7]成亚玲,谭爱平,张敏.混合多距离图像的线性判别分析人脸识别算法[J].系统仿真学报,2016,28 (09):2254-2259+2266.

[8] BITOUK D,KUMAR N,DHILLON S,et al.Face swapping:automatically replacing faces in photographs U]. ACM.Transactions on Craphics (TOC), 2008, 27 (3): 39.

[9] ARAR N M, BEKMEZCI N K,GUNEY F,et 81.Real-timeface swapping in video sequences: Magic Mirror [C]//SignalProcessing and Communications Applications (SIU). 2011IEEE 19th Conference on. IEEE, 2011: 825-828.

[10] THIES J,ZOLLHOFER M,SRAMMINCER M,et al.Face2face:Real-time face capture and reenactment of rgb 20 videos ECl//Proceedings of the IEEE Conference on Computer Vision and

Pattem Recognition. 2016: 2387-2395.

[11]宋怀波,齐关锋,钱程.基于YUV颜色空间的脸部区域特征点定位方法[J].吉林大学学报:工学版,2013,43(Sl):39-42.

[12]潘翔,陈敖,周春燕,等,基于视图特征点分布的三维模型检索算法[J].浙江工业大学学报,2013,41(06):641-645.

[13]贾海鹏,张云泉,徐建良.基于OpenCL的图像积分图算法优化研究[J].计算机科学,2013,40 (02):1-7..

[14]束平,桑庆兵,唐晓东.一种复杂环境下鲁棒的精确人脸检测算法[J].电子设计工程,2017,25 (03):5-8+13.

[15]邱晓朴.基于CUDA的Reinhard算法研究[J].山东工业技术,2016,(08):141.

[16]汪玉美,陈代梅,赵根保.基于目标提取与拉普拉斯变换的红外和可见光图像融合算法[J].激光与光电子学进展,2017,54(Ol):104-112.

[17]仪晓斌,陈莹,分段仿射变换下基于泊松融合的正面人脸合成[J].计算机工程与应用,2016,52 (15):172-177.

猜你喜欢
图像处理
视觉系统在发动机涂胶的应用
“课程思政”视域下职业学校《图像处理》课程教学改革实践
构建《Photoshop图像处理》课程思政实践教学路径的探索
基于图像处理与卷积神经网络的零件识别
基于新一代信息技术的Photoshop图像处理课程开发与建设
基于机器视觉的自动浇注机控制系统的研究
Photoshop软件图像处理技巧
基于二元全区间插值法的畸变图像矫正方法
机器视觉技术在烟支钢印检测中的应用