染发仿真及基于人脸检测的发型配准
2015-05-15张璠璠
张璠璠
(四川大学计算机学院,成都 610065)
染发仿真及基于人脸检测的发型配准
张璠璠
(四川大学计算机学院,成都 610065)
提出将人脸检测用于发型自动配准以及发型染色的算法,通过灰度投影及Susan边缘检测和角点提取获得人脸的特征点,再和发型相对应的特征点匹配以达到发型配准;再通过三段折线式染色算法进行染色,既能使头发的颜色达到预期的目标,又能尽量保持原发型的亮度变化层次,达到有层次感的、自然的、不失真的染色效果。
人脸检测;灰度投影;角点检测;发型配准;染发仿真
0 引言
随着人们对于自身外部美的不断重视,发型合适与否也变得越来越重要,一款合适的发型往往能为自身加分不少。但碍于与理发师的言语交流中缺少实际效果的展示以及宣传画册与实际情况差距较大的原因,往往选择的发型会与初衷有所出入。现阶段的发型设计软件较少,且已有的方法多为人工拖动缩放、移动,不是很便利。因此本文提出了一种基于人脸检测的发型配准方法,可以根据人脸图像的特征自动缩放、旋转、移动发型;还提出了一种染色方法,在保持原发型亮度变化层级的基础上达到效果较好的自然染发效果。
1 发型配准
1.1 图像预处理
由于外部因素的影响,往往使得图像的质量不太理想,如噪声较多、光照不均匀等,因此要先对图像进行一定的预处理。本文采用了图像的灰度变换,灰度变换使得图像的灰度从一个较窄的灰度域扩展到整个的灰度域中,以利于图片的特征识别。
1.2 图像积分投影
目前有大量的人脸检测方法[1~2],本文选择积分投影方法。由于人的头发、眼睛、鼻子、嘴巴等的灰度值与其他区域的灰度值不同,对图像进行积分投影可以确定人脸边界的位置和脸部特征点的大致区域。垂直积分投影反映了图像在水平方向上的灰度变化[3],通过分析找出图像垂直积分投影曲线上的梯度值最大点和梯度值最小点,这两点所在的列就为脸部的左右边界点。在脸部左右边界区域内,再对图像进行水平积分投影,水平积分投影反映了图像在垂直方向上的灰度变化,分析水平积分投影曲线可获得头顶、眼睛、下巴在垂直方向上的坐标点[4]。相比较其他地方,头发的灰度值较低,因此水平积分投影曲线中的第一个极小值点为头顶点。再根据一定的人脸先验知识,划定出眼睛和下颌点在垂直方向上的大致搜索区域,由于眼睛和周边区域的灰度值相差较大且眼部的灰度值低,因此在眼部区域,水平积分投影曲线会有较大的梯度变化。
1.3 眼角点定位
根据获取的人脸的边界及眼部在垂直方向上的坐标点,进一步细分出眼部的检测范围,在眼部区域灰度图的基础上,以满足类间方差与各类方差的比值为最大作为二值化阈值选取的原则,获得眼部区域的二值化图像。在此基础上再利用Susan算子对眼部图像进行边缘检测和角点提取[5],获取眼角点[6]。
Susan算子[7]的原理为:用一个圆形模板在图像上移动,模板半径为r(本文中r取3.4),把模板内的每一个像素与中心点像素进行比较,计算每点处的USAN值:
Susan算子不仅具有很好的边缘检测性能,而且对角点检测也具有很好的效果。通过控制阈值t和g的大小,对于不同质量或者对比度的图像均有较好的检测效果。
1.4 发型与人脸的配准
根据检测得到的眼角点,可计算得到人脸的偏转角度,为和人脸图像相配准,需将发型库中的发型图像标注相对应的特征点,如原发型脸部边界和眼角点等,再根据人脸及发型图像的各自特征点计算出发型图像相对于人脸的缩放比例、旋转角度及移动的距离,再将发型和人脸配准。
图1
2 发型染色算法
发型本身就具有不同的亮度变化层次,在对发型进行染色时,不仅要调整图像整体的亮度值达到或接近目标颜色的亮度,同时还需要保留反映原图环境光照和发质的亮度变化层次,这样才能做到有层次感的、自然而不失真染色效果。本文的染色算法采用的是HSL色彩空间,其中H:Hue/色相,S:Saturation/饱和度,L:Lightness/亮度,因为相对于三原色光模式即RGB模型来说,HSL模型更加直观、更加贴近于人类感知颜色的方式。在HSL色彩空间中,选择一个新的颜色进行染色时,对于这个颜色来说,H、S、L的值是固定的,发型上的不同的明暗效果变化就在于L(亮度)的值的变化。因此如何确定发型上L的变化是染色最重要的问题。此外,染色时也不可单纯地保留原发型的亮度值,而只改变色相和饱和度的值,以黑发情况为例,若不调整图像亮度L,而只调整色相H和饱和度S的话,因为原始图像的亮度较低,就会在视觉效果上导致一种图像未被染色,还是保持原始黑色的感觉。
本文提出一种三段式折线亮度变化法,既能使图像的平均亮度达到预期的目标,又能保留原发型的亮度变化情况,使发型达到一种有层次感的染色效果。此方法具体内容如下:
对于给定的染色值,转换到HSL颜色空间后,其中L值就设为染色后发型图像的平均亮度值,为避免L值过于偏大或偏小,对其进行一定的调整,设调整系数为α,即:wishL=HALFLUMINANCE+α(L-HALFLUMINANCE),wishL为调整后的期望亮度值;HALFLUMINANCE为亮度变化区域的中间点,即为常值120,经过实验测试,本文中α取0.8。以亮度增加的情况为例,在整个亮度范围中(0-MAXL)设定两个点k1和k2,使得增加后的亮度曲线转为三段式,当发型的亮度不发生改变时,此映射线为45度的直线,如图2:
图2 三段式亮度折线图
此时,整个亮度范围就划分为三个区域:[0,k1)、[k1,k2]、(k2,MAXL],其中MAXL为最大亮度值240。不同的区域中,亮度值的变化有不同的计算方法。以区域[0,k1)为例:
其中Δl1是区域[0,k1)上的亮度总变化值;wi为图像中亮度为i的像素点个数在整幅图像像素个数中所占的比例;Δi为亮度在i处变化的亮度值;为k1点变化后的亮度值。由此可推出[k1,k2]、(k2,MAXL]上的亮度变化值Δl2和Δl3,即:
此时dl=Δl1+Δl2+Δl3,即三个区域上亮度差值的总和就为染发后的平均亮度和原发型平均亮度的差值dl。对于给定了k1和k2来说,未知量为,设为Δk1和Δk2。在本文的具体应用中,k2定为原发型图的平均亮度值点,k1的确定方法为:当染色的目标亮度值比原发型图像的平均亮度值高时,k1定为最小亮度值0;反之,k1定为最大亮度值240。
图3 区域[0,k1)亮度变化
①Δk1和Δk2的值呈线性关系:
线性中可得Δk1和Δk2的比例关系,即Δk1/Δk2=(kt-k1)/(kt-k2),其中kt是k1和k2点变化方向上的亮度极值,k0是k1和k2点变化方向反方向上的亮度极值,Δk1是k1点处的亮度变化值,Δk2是k2点处的亮度变化值。由上述dl=Δl1+Δl2+Δl3可得线性情况下Δk1和Δk2的值。
图4 线性比例亮度变化图
②Δk1和Δk2的值呈非线性关系
由线性关系图中可以看出,线性方式会造成某一区域,这里是[0,k1)区域的亮度变化过于剧烈,为了平衡这种现象,现再引入非线性的方式。仍以亮度增加的情况来说明,k2点处能增加的最大值就为(kt-k2),设定一个调整系数x,使得k2点处的亮度变化值为(kt-k2)x, 0≤x≤1,若按照线性方式,此时k1点处的变化值就为(kt-k1)x,为了避免线性情况下此点的变化过于剧烈,设定Δk1=(kt-k1)x2。自然此处可以取为x3或x4等,但此处取值为x2已满足需要。再根据dl=Δl1+Δl2+Δl3可计算出系数x的值,继而求出Δk1和Δk2的值。
图5 线性非线性亮度对比曲线图
如图5,以增加亮度dl为例,三段式折线图是非线性方式下的亮度变化曲线,二段式折线图是线性方式下的亮度变化曲线,在[0,k1)区域中,线性方式的亮度变化会比非线性的方式变化剧烈,但在[k1,k2]区域,线性方式的亮度变化反而比非线性的方式变化平缓。为了平衡两者的影响,本文中取线性、非线性各自占一半的比例以协调两者的关系。由计算获得的最终Δk1和Δk2值以及不同亮度区域内的不一样的亮度计算方法,替换整幅图像中像素点的H、S、L的值,达到染色的最终结果。
图6 染色效果及对应的色块
3 结语
本文将人脸检测与发型匹配相结合,根据检测得到特征点与原发型图的特征点相匹配,实现发型的配准。并提出一种染色算法,既能使图像的平均亮度达到预期的目标,又能保留原发型的亮度变化情况,使发型达到一种有层次感的染色效果,实验证明效果较好。但对于有较大偏转角度的脸部图像,检测和配准的效果会下降,此外背景过于复杂或者有强烈的侧光等因素也会影响到检测结果,这是下一步亟待研究的问题。
[1] 梁路宏,艾海舟,徐光佑.人脸检测研究综述.计算机学报,2002,25(5):449~456
[2] 刘海,朱小平.一种人脸检测方法[J].计算机系统应用,2010年,19(7):210~212
[3] 徐来,周德龙.人眼检测技术的方法研究[J].计算机系统应用,2010(06):226~232
[4] 徐锋,赵怀勋,涂强.基于肤色检测和人眼定位的人脸检测方法[J],计算机系统应用;2010,19(2):177~179
[5] 顾华,苏光大,杜成.人脸识别中的眼角定位和预处理[A].2003年中国智能自动化会议论文集(上册)[C],2003
Dye Hair Simulation and Hairstyle Registration Based on Face Detection
ZHANG Fan-fan
(College of Computer Science,Sichuan University,Chengdu 610065)
Proposes the face detection for the automatic registration of hair and hair dyed algorithm.Facial feature points obtained by the gray-level projection and Susan edge detection and corners match the corresponding feature points of hair to achieve the hairstyle registration. Through the dyeing algorithm of three sections of broken line type,can make the hair color to achieve the desired goal,and tries to keep the brightness of the original hairstyle change level to keep the administrative levels feeling,natural,undistorted dyeing effect.
Face Detection;Gray-Level Projection;Corner Detection;Hair Registration;Dye Hair Simulation
1007-1423(2015)02-0058-04
10.3969/j.issn.1007-1423.2015.02.015
张璠璠(1991-),女,安徽宿州人,硕士研究生,研究方向为图形图像
2014-12-04
2014-12-25