基于SDM及加权均值滤波的人脸美化系统

2020-09-02 14:27卢芳芳林江南
上海电力大学学报 2020年4期
关键词:美化关键点人脸

秦 枫, 卢芳芳, 林江南

(上海电力大学 计算机科学与技术学院, 上海 200090)

数码影像器材使得成像分辨率越来越高,图像可以清晰地显示人脸中的所有细节信息,包括斑点、皱纹等影响美观的因素。人脸美化技术在较完整地保留脸部细节等信息的前提下较好地去除掉人脸皮肤上的不理想因素,达到人脸美化的效果。由于其在电视机、数码相机、摄像机、手机、投影仪以及视频会议等多媒体系统中有潜在的应用价值,使得这一技术的研究受到广泛的关注。ARAKAWA K[1]提出了一种基于ε滤波器进行人脸美化的方法,但ε-滤波器本质上是一种低通滤波器,虽然对某些人脸瑕疵例如皱纹删除效果较好,但是在雀斑、痘痘等方面效果并不显著。LEE C等人[2]基于Viola-Jones方法来定位人像五官,并根据面部结构的先验信息,通过混合高斯模型为基础的贝叶斯分割方法提取皮肤区域,最后通过平滑处理以达到美化的目的。该方法效果一般,尤其是在纹理丰富的区域,会导致皮肤区域分割不准确。韩静亮等人[3]提出了一种基于迭代的中值滤波美化算法,预先使用二值化算法将人像粗分为特征区域和非特征区域,使用非线性滤波对非特征区域做迭代处理。该方法对于斑点去除效果较好,但在平滑皱纹区域时,一定程度上造成图像模糊。

本文根据我国乃至亚洲人民的主流审美准则设计了一套对人像图片进行自动修图的人脸美化系统。该系统首先采用监督下降法(Supervised Descent Method,SDM)[4]来实现人脸关键点定位;其次采用交互式图像变形实现人脸局部变形;最后采用一种加权均值滤波对人像进行表面模糊处理,实现肤质调整。相比传统人脸美化系统,该系统可以通过调整修图的力度来达到瘦脸、美目、去斑等人脸美化的效果。同时,美化后的图片保留了原图的清晰度和细节特征信息。

1 自动人脸美化系统

该自动人脸美化系统包含3个主要功能:人脸关键点定位、五官调整和肤质调整。首先输入一张人像图片,该系统根据用户的选择(五官调整、肤质调整)进行不同功能的自动修图,并输出修图结果。人脸美化系统框图如图1所示。

图1 人脸美化系统框图

2 系统相关功能实现

要实现该系统中的五官调整和关键点位置调整功能,首先要识别图中人脸关键特征位置(如瞳孔、嘴角、鼻尖等),才能针对脸型、五官进行局部美化。

2.1 人脸关键点定位的实现

本文采用SDM算法实现人脸关键点定位。SDM算法分为两部分,第一部分是训练部分,目的是通过大量样本的训练得到从平均形状提取的尺度不变特征变换(Scale-invariant Feature Transform,SIFT)与平均形状到真实形状偏移量的数学关系;第二部分是定位部分,目的是利用训练结果求解测试图片的关键点位置。

2.1.1 训练部分

训练部分包括计算平均脸和用平均脸回归到真实脸两步。具体步骤如下。

步骤1 首先准备一个人脸样本集,样本集可以用手动标定的方式获得,也可以从网络下载标定好的人脸库(LFPW和AFW等)。本文采用手动标定的方式,对每张图片记录关键点坐标,总共标定了240张人脸图片。每张图片取关键点的位置如图2所示。

图2 人脸特征点标定位置

步骤2 取一份样本副本,对该副本的所有人脸图像进行对齐,求出平均脸的位置。对齐采用普氏分析法[5],先根据两幅图片的关键点坐标矩阵,用最小二乘法求出仿射变换矩阵,再用仿射变换把一幅图对齐到另一幅图。以上步骤完成了整个样本的一次粗对齐,反复对齐样本直到收敛,得到较准确的对齐结果。对对齐后的关键点取均值,并用EmguCV中的Haar方法对对齐后的人脸图片计算人脸矩形框,同样取均值,得到平均关键点与平均人脸的相对位置。

步骤3 计算平均关键点到真实关键点的回归矩阵。首先,取另一份样本副本,为消除手动标定关键点时未计算方向的影响,先用Haar方法对每幅图片计算双眼的粗略位置,以双眼为参照旋转样本图片使人脸大致摆正。其次,把平均关键点用仿射变换方法放到每幅图片的人脸矩形框中。接着,从平均关键点处提取SIFT特征向量。然后,依次对每个关键点求解回归矩阵。把从同一下标的关键点在每幅图中提取的特征向量串成一个特征矩阵I,计算每个平均关键点到真实关键点之间的坐标偏移量,把每幅图中用同一下标的关键点计算的偏移量串成一个矩阵R。求解特征矩阵I与偏移量矩阵R的线性关系,即求解回归矩阵X,公式为

(1)

该方程表示从平均形状提取的SIFT特征与平均形状到真实形状偏移量的数学关系,可以用最小二乘法公式解出,即

X=(ITI)-1ITR

(2)

用式(2)求出所有关键点的回归矩阵,即得到第一次回归的矩阵集合。使用求得的回归矩阵对每幅图像的平均关键点进行修正,用修正结果取代原来的平均关键点,作为下一次解回归方程的输入数据。训练到一定次数时结束训练。第一次回归结果如图3所示。

图3 第一次回归结果

2.1.2 定位部分

利用训练部分得到的级联回归矩阵集合,对样本图片进行关键点定位。具体步骤为:首先,用Haar方法粗定位出图片中的人脸矩形框,以双眼为参照旋转图片使人脸大致摆正;其次,把平均关键点用仿射变换放置矩形框中;接着计算每个平均关键点处的SIFT特征向量,把特征向量与对应的回归矩阵相乘,得到平均关键点到真实关键点的坐标偏移量。最后把平均关键点与偏移量相加,得到真实关键点的预测坐标。

2.2 用交互式图像扭曲方法实现可修改参数的五官微调

自动人脸美化系统需要具备的五官调整功能(如双眼增大、瘦脸等),可通过图像局部变形技术实现。本文采用交互式图像变形算法[6]。该算法的思想是:给定一个点x的坐标,该点在变形后的像素值是原始图像中的某一点X0经过变形得到的,因此,只要知道了X0与x的函数关系,就能求得点x处的像素值。

局部平移的函数关系为

(3)

式中:x——平移后的点坐标;

u——与x对应的平移前的点坐标;

c,m——交互操作中鼠标按下时的点与放开时的点;

rmax——变形能影响到的最大半径。

局部缩放的函数关系为

(4)

式中:r——变形中心到已知点的距离;

fs(r)——变形中心到已知点对应的原图中的点的距离;

α——缩放参数。

当α=-1时,局部区域被放到最大;当α=1时,局部区域被缩到最小;当α=0时,不产生变形。局部变形算法参数的取值,需根据关键点定位结果来决定。

2.2.1 脸型胖瘦的参数计算

本文提出的改变脸型胖瘦的参数计算过程如图4所示。

图4 脸型胖瘦的参数计算过程

由图4可知,先求变形中心点:连接56号点到4号点,记该线段长度为l,在其延长线上取到4号点距离为l的点O作为变形中心点。再求变形半径:取点O到5号点的距离r作为变形半径。使用局部平移公式对该范围进行计算,再改变变形强度S,实现对脸型胖瘦的调整。

2.2.2 双眼缩放的参数计算

改变双眼大小的参数计算过程如图5所示。

由图5可知,先确定变形中心点:连接30号点与34号点,求出该线段的中点O作为变形中心点。再求变形半径:取眼头到眼尾的半径的两倍作为变形半径,因此30号点到34号点的线段长度即为变形半径,两倍该长度即为变形直径。使用局部缩放公式对该范围进行计算,再改变缩放系数α,实现对双眼大小的调整。

2.2.3 用双线性插值计算浮点坐标颜色

双线性插值[7]是一种计算浮点坐标颜色的方法。该方法能让图片在缩放过程中保持平滑过渡。假设4个已知像素值的点的坐标分别为(0,0),(0,1),(1,0),(1,1),使用双线性插值求点(x,y)(其中0

f(x,y)≈f(0,0)(1-x)(1-y)+

f(1,0)x(1-y)+

f(0,1)(1-x)y+f(1,1)xy

(5)

或者用矩阵运算表示为

f(x,y)≈

(6)

2.3 肤质调整功能实现

自动人脸美化系统需要具备的肤质调整功能可以用保边的图像滤波算法实现。本文采用表面模糊算法[8]。该算法的实质是一种加权均值滤波。

首先,输入模糊半径R和阈值Y。

其次,对图像中的单个像素点x实现表面模糊,先根据式(5)计算x点周围半径R区域的所有像素对于x点像素值的权重wi,当wi小于零时,取wi=0。

(7)

式中:xi——第i个邻域点的像素值;

x0——x点的像素值。

接着,根据R范围内所有点的值和权重,计算出x点的新像素值。

(8)

最后,对原图中的所有点计算新像素值,得到表面模糊的结果。

根据上述计算过程可知,对于一幅400×400像素大小的三通道彩色图片,如果模糊半径R的值是12像素,则权重的计算次数为400×400×3×25×25即3×108次。权重计算公式是浮点运算,计算效率低,需对原公式进行优化。本文采用建立权重值查询数组[9-10]、减少取三维数组地址的次数、使用三维交错数组取代三维普通数组、摘除权重公式中的绝对值、用整型计算替代浮点计算等方法,对原公式进行了大幅优化。最终权重计算公式为

(9)

式中:k=2.5Y+256。

3 实验结果与比较

3.1 关键点定位训练测试结果

本系统采用SDM算法实现关键点定位。首先采用SDM训练得到均值关键点和级联回归矩阵组,接着将训练好的均值关键点在待测图像上提取特征向量,再和回归矩阵相乘,得到均值关键点坐标到真实关键点的偏移量,最后把均值关键点与偏移量相加,得到真实关键点的预测坐标。使用训练好的回归矩阵数组对20张不在训练集中的人脸图片进行测试,其中18幅人脸关键点定位准确,2幅人脸关键点定位不太准确。部分图像如图6所示。可见,基于SDM的人脸关键点定位算法适合正面人脸,侧面人脸定位算法的鲁棒性有待提高。

图6 人脸关键点定位图像

3.2 五官调整测试结果

采用交互式图像扭曲,结合已经定位出的关键点,实现五官调整,结果如图7所示。

图7 五官调整前后对比

3.3 肤质调整测试结果

采用表面模糊算法实现皮肤的磨皮功能,再用高反差保留、高斯模糊与线性光混合模式实现细节保留。将韩静亮迭代多级中值滤波处理结果与本文提出的加权均值滤波处理结果进行比较,具体如图8所示。

图8 两种方法的肤质调整结果对比

由图8可知,加权均值滤波的表面模糊算法不仅能够更有效地去除人像斑点、皱纹等瑕疵,而且能够更好地保留图像中的细节。

4 结 语

本文提出的自动人脸美化系统主要包含3个部分,分别是人脸关键点定位算法、人像局部五官调整和平滑皮肤。每个部分均采用时下效果显著的算法以实现功能,并在此基础上进行针对性优化,尤其是在皮肤平滑方面,采用加权中值滤波效果显著。但是在人脸关键点定位部分,存在一定的误差。后续研究将进一步探索新的关键点定位算法,以提升定位精确度。

猜你喜欢
美化关键点人脸
迷彩色在通信基站天线美化中的应用探析
论建筑工程管理关键点
肉兔育肥抓好七个关键点
有特点的人脸
一起学画人脸
建筑设计中的防火技术关键点
美化語についての一考察
基于GPU加速的引导滤波人脸祛斑美化算法
三国漫——人脸解锁
美化生活