一种针对人脸皮肤的偏光检测方法

2018-02-03 14:07易焕银王贵恩潘伟荣
电脑知识与技术 2018年2期
关键词:人脸检测皮肤

易焕银++王贵恩++潘伟荣

摘 要:某些企业迫切需要一种能够自动检测照片中的人脸皮肤是否存在明显偏光的技术,存在明显偏光时需给出光源的方向。提出了一种针对人脸皮肤的偏光检测方法。该方法首先利用OpenCV的人脸检测算法检测人脸,然后进行人脸对齐,得到66个人脸特征点,再以这些特征点的闭包络作为前景掩码送给GrabCut算法对图像进行二分抠图得到完整的脸部皮肤,最后用过脸部中心特征点的水平直线和垂直直线将皮肤分为4个区域,以区域内皮肤像素的平均亮度为标准来判断脸部光照是否偏光以及偏光的方向。本方法应用于某家企业的实际项目中。

关键词:皮肤; 人脸检测; 人脸对齐; 抠图; 偏光检测

中图分类号:TP18 文献标识码:A 文章编号:1009-3044(2018)02-0152-02

An Illumination Uneven Detection Method for Facial Skin

YI Huan-yin, WANG Gui-en, PAN Wei-rong

(Mechanical and Electrical Engineering of GDCP, Guangzhou 510800, China)

Abstract:Some companies urgently need a technique that automatically detects the presence of significant illumination uneven on the face skin in a photo, and gives the direction of the light source when there is a significant illumination uneven. An illumination uneven detection method for human facial skin is proposed. Firstly, face detection is performed by face detection algorithm of OpenCV. Next, face alignment is performed to obtain 66 face feature points. Then, the closed envelope of these feature points is used as the foreground mask given to the GrabCut algorithm, getting the whole face skin from the binary segmentation of the image. Finally, the skin is divided into four regions by using the horizontal and vertical lines passing through the facial center feature point. The average brightness of the skin pixels in these regions is used as a criterion to determine whether the facial illumination is uneven or not and the direction of light. This method is applied to an actual project of some company.

Key words:skin; face detection; face alignment; segmentation; illumination uneven detection

隨着互联网和智能终端(手机、平板电脑等)的飞速发展,普通消费者通过手机等移动终端拍照并将照片通过网络上传到制证公司的后台来制作证件照成为可能。制证公司迫切需要一种能够自动判断图片中人脸皮肤的光照是否存在很明显偏光的技术,如果存在偏光,需给出偏光的方向。文献[1]、文献[2]提出了两种人脸图像光照方向的估计算法。本文提出了一种检测人脸皮肤是否存在显著偏光的方法。算法首先准确地获取脸部皮肤像素,然后测量出人脸皮肤上下、左右两个方向是否存在偏光以及偏光的程度和方向。

1 本文算法

算法由脸部皮肤的获取和判断脸部是否存在显著偏光两部分构成。首先通过人脸检测、人脸对齐和GrabCut抠图得到人脸皮肤,再根据皮肤亮度不会过低的特征,通过阈值分割过滤掉其中的眼睑、瞳孔、眉毛等部分,得到比较准确的人脸皮肤,最后通过比较脸部皮肤上下、左右的平均灰度值来判断脸部皮肤是否存在显著偏光。

本文算法分如下几个步骤(以图2中的原图1为例说明):

Step1:利用OpenCV实现的文献[3]中的人脸检测算法检测到人脸,图3中的蓝色方框即为人脸检测结果。

Step2:根据文献[4]中的方法进行人脸对齐,图3中的绿色点即为对齐后获得的66个特征点,红色数字为特征点编号,图4为特征点部分的放大显示。文献[4]方法源码:https://github.com/kylemcdonald/FaceTracker。

Step3:将人脸检测方框向上下左右4个方向各拓展25%,得到一个新的方框Rect(包含所有脸部皮肤像素);

Step4:根据Step2中的66个特征点,利用OpenCV的fillPoly函数获得一个由这66个点所围成的闭包络区域mask;

Step5:利用OpenCV实现的文献[5]中的算法,以上面的Rect和mask为主要参数调用grabCut函数(迭代2次),抠图获得人脸皮肤,如图5所示;endprint

Step6:将灰度值小于设定值(此处应用设为60,对于证件照来说这个阈值是很保守的,若皮肤灰度值低于60,必定是拍照环境光照太暗,不可能满足制证要求)的像素设为非皮肤像素。此步骤可以有效过滤掉超低亮度的眼睑、瞳孔、眉毛等非皮肤部分,减少对皮肤平均亮度判定的干扰;

Step7:以29号特征点作为人脸中心,分别进行下面两个子步骤:

n Step7.1:水平分割人脸皮肤,统计并比较上、下两部分皮肤像素的平均灰度值,大的与小的之比大于设定值(此处应用设为1.3),则上下存在显著偏光,并将灰度值大的判断为光源方向;

n Step7.2:垂直分割人脸皮肤,统计并比较左、右两部分皮膚像素的平均灰度值,大的与小的之比大于设定值(此处应用设为1.3),则左右存在显著偏光,并将灰度值大的判断为光源方向;

Step8:若上下、左右都存在显著偏光,将光源方向设为两个亮度大的部分的交集。如:假设Step7.1结果是光源方向为上,Step7.2结果是光源方向为右,则最终判定的光源方向为右上。

2 实验结果

图2所示的原图1实验结果为:down_v/up_v=1.02551,right_v/left_v=1.205。即下、上皮肤亮度的平均值之比和右、左皮肤亮度的平均值之比。由于均小于设定阈值1.3,因此最终判定结果为:不存在显著偏光。

图6所示的原图2实验结果为:down_v/up_v=1.03489,right_v/left_v=1.52473。由于下、上皮肤亮度的平均值之比为1.03489,小于阈值1.3,因此上下方向没有明显偏光。但右、左皮肤亮度的平均值之比为1.52473,大于阈值1.3,存在显著偏光,光源方向为右。因此最终判定结果为:存在显著偏光,光源方向为右边。

3 算法加速

本文算法主要耗时在人脸检测、人脸对齐和GrabCut抠图三块。通过文献[6]的方法,人脸检测速度可以提高十倍以上。通过文献[7]的方法,人脸对齐速度可以提高几十倍。通过文献[8]的方法,抠图速度可以提高十倍以上。这些算法速度都非常快,是将来算法提速非常好的方向。但考虑到这些算法都非常新,出于稳定性的考虑,项目中暂时采用文献[3-5]中的成熟方法。

4 结束语

本文提出了一种针对人脸皮肤的偏光检测方法,能够有效地自动检测人脸皮肤是否存在着明显偏光以及偏光的程度,存在显著偏光时能判定光照的方向。本方法特别适用于对光照要求较高的证件照拍摄场合。

参考文献:

[1] 孙雪梅, 苏菲, 蔡安妮. 基于分叉树和SVM的人脸图像光照方向估计[J]. 中国图象图形学报, 2007, 12(10):1885-1888.

[2] 陈晓钢, 陆玲, 刘向阳. 经典光照模型实现人脸图像光照方向准确估计[J]. 计算机工程与应用, 2009, 45(11):203-205.

[3] P. Viola, M. Jones, Robust real-time face detection[C], in: Proceedings of Eighth International Conference on Computer Vision, Vancouver, Vol. 20(11), 2001, pp. 1254 —1259.

[4] J. Saragih, S. Lucey, and J. Cohn. Deformable model fitting by regularized landmark mean-shift[J]. IJCV, 2011. 2, 3, 6.

[5] C. Rother, V. Kolmogorov, and A. Blake, ““Grabcut”: Interactive foreground extraction using iterated graph cuts[J]” , SIGGRAPH, 2004.

[6] N. Markus, M. Frljak, I. S. Pandzic, J. Ahlberg, and R. Forchheimer, Object detection with pixel intensity comparisons organized in decision trees[J]. arXiv preprint arXiv:1305.4537, 2014.

[7] Ren, S., Cao, X., Wei, Y., Sun, J.: Face Alignment at 3000 FPS via Regressing Local Binary Features[C]. In: Computer Vision and Pattern Recognition (2014).

[8] Cheng, M.-M., Prisacariu, V. A., Zheng, S., Torr, P. H. S., and Rother, C. Densecut: Densely connected crfs for realtime grabcut[J]. Computer Graphics Forum, 34(7), 2015.endprint

猜你喜欢
人脸检测皮肤
第二层皮肤
皮肤“出油”或许就能减肥
春夏之季,请保护好您的皮肤
高频超声在皮肤恶性肿瘤中的应用
水的皮肤
基于人脸特征定位的SNS网站应用组件研究与设计
我爱洗澡,皮肤好好