APP下载

复杂背景下基于人脸的自适应肤色检测

2016-12-26张雪超

计算机应用与软件 2016年11期
关键词:肤色像素点直方图

万 静 袁 泽 张雪超

1(北京化工大学信息科学与技术学院 北京 100029)2(北京工商大学 北京 100036)



复杂背景下基于人脸的自适应肤色检测

万 静1袁 泽1张雪超2

1(北京化工大学信息科学与技术学院 北京 100029)2(北京工商大学 北京 100036)

针对传统肤色检测在复杂背景下对类肤色像素的抗干扰能力弱,以及光照对肤色颜色特性影响的问题,提出一种自适应的肤色检测方法。通过Adaboost结合Haar的人脸检测,并利用改进后的二值化提取出包含光照信息的皮肤区域。然后利用改进后的直方图反向投影法,结合肤色样本在YCbCr空间中Y亮度分量训练得到的最佳阈值,对整幅图像进行肤色检测。实验结果表明,该方法在复杂背景下以及光照的影响均有良好的鲁棒性,在准确率、召回率方面较传统的肤色检测方法有提高。

肤色检测 局部二值化 自适应阈值 直方图反向投影

0 引 言

肤色检测作为图像处理中一项重要的研究内容,能作用在人脸检测与识别、手势识别、人机交互以及基于内容的不良图像过滤等众多计算机视觉领域。通过肤色检测可以有效排除背景干扰,缩小处理范围,提高工作效率以及结果的准确度。

在对肤色检测研究中,Duan等[1]提出一种基于YUV和YIQ颜色空间结合的参数法,固定颜色分量阈值对肤色像素进行检测。Jure等[2]又进一步发现肤色像素点在其他颜色空间有着更优秀的聚类性,将肤色像素点转换到YCbCr颜色空间后,其Cb和Cr分量在2D平面聚类成一个类似椭圆的形状,于是对肤色像素点在Cb-Cr平面进行拟合,构造出一个椭圆边界模型,对肤色和非肤色进行区分。这种明确固定分界线的方法虽然计算方便,并且能有效地检测出肤色像素,但是对于和肤色颜色相近的背景环境的区分效果十分不理想。

为了解决复杂背景干扰的问题,近年来,学习型的自适应肤色检测方法[3-5]陆续被提出,利用脸部肤色像素点为学习样本,分别采用建立高斯模型和加权平均Mahalanobis(马氏)距离来判别其他像素点是否为肤色点。但是它们对脸部肤色像素提取方案并不理想,文献[4]使用固定阈值的方法提取肤色像素点,文献[5]使用Sobel边缘检测来检测出肤色像素点,这两种方法提取肤色像素时对阴影处理的鲁棒性不好,导致信息不准确。在自适应学习过程中采用训练高斯模型耗时比较高,无法进行实时性应用,并且对于提取出的人脸肤色像素点属于小样本训练,并不太适合在大样本环境下才能表现优秀的高斯模型法。

针对上述问题,本文对自适应肤色检测方法进行了改进。首先利用人脸检测,采用改进后的自适应二值法提取人脸中的肤色像素,改进后的二值化充分考虑了阴影的影响,保证了提取信息的完整性。然后利用YCbCr颜色空间中Cb-Cr分量的直方图反向投影算法并结合Y分量的范围对分割出来的区域进行分类判断。这样做既考虑到了亮度信息,对光照、阴影有良好的鲁棒性,可减小漏检率;又能准确检测出图像中的肤色区域,有效改进类肤色背景干扰这一难题。

1 基于人脸的自适应肤色检测方法

本文提出的自适应肤色检测原理就是利用待测图像本身可以确定的信息对已知肤色检测算法和相关阈值加以更新,利用更新后的结果对原待检图像进行检测,得到更为准确的检测效果。本文算法的框架如图1所示。

图1 自适应肤色检测算法框架

1.1 肤色像素提取

(1) 人脸检测

准确地提取出肤色像素样本点是整个算法的前提,为了适应不同环境的肤色检测,本文针对每一张待测人物图像提取可确认的肤色区域。

人脸检测目的是分割出人物确认的肤色区域以及排除边缘背景和头发的干扰。首先采用adaboost+haar[6]的人脸检测方法检测出人脸的具体大小及方位。然后根据三庭五眼的人脸比例如图2所示,以检测到的人脸圆心O为区域中心,人脸圆的半径r为边长,划出一块正方形的人脸部分,这样做能有效达到预期目的。

图2 人脸检测及截取示意图

(2) 非肤色区域排除

对区域内存在的非肤色像素进行排除,例如眉毛、眼睛以及鼻子阴影。为了保证提取到肤色像素样本的准确性,本文将人脸区域分为三类:眼白和牙齿;眉毛、眼球和鼻子阴影;肤色区域。由经验可知,以上三类在颜色特性上属于三个区间,所以分开进行比较排除。

首先对眼白和牙齿像素进行变换,白色在RGB空间的三个分量数值很接近并都趋近于255,而肤色的R(红色)>G(绿色)>B(蓝色),并且数值接近,所以可以设定一个限制条件来判别像素点P的预属性:

F:|Value(R)-Value(G)|=T1

Value(G)-Value(B)=T2

T1

P∈肤色

其中Value(R)、Value(G)、Value(B)分别为像素在RGB空间三个通道的分量数值。

通过26张人脸图像,对肤色部分进行人工标注得到229 736个肤色像素点。其中9张人脸图像的牙齿、眼白较清晰,共提取546个非肤色像素点。按照上述统计规则进行比较区分,得到阈值t=5时两者区分效果最好。

其次对眼球、眉毛以及鼻子处阴影部分进行排除。采用在HSV空间的V分量上进行处理,其表示的为色彩的明亮程度,范围为0(黑色)~255(白色),并且使用一种改进后的自适应阈值区域二值化的方法来排除非肤色部分的干扰。传统的自适应阈值二值化法为Otsu(最大类间方差法),但是传统的算法对类间方差为单峰的图像效果十分优秀。如果有光影的影响,类间方差呈现双峰或多峰,分割效果不理想如图3所示,右半部分光亮度弱的直接二值化为非肤色,失去了大量有效信息。

图3 传统Otsu算法结果

为了解决这一问题,本文结合局部二值化的原理,在人脸图像上以单个眼睛的大小为模板,也就是三分之一边长为宽度,五分之一边长为高度的窗口将人脸分为15个矩形块。然后在每个矩形块中进行Otsu算法求得最佳阈值t,以该最佳阈值对矩形块进行二值化,具体算法如下:

Step1 将图像image按照宽的1/3,高的1/5分割成15部分:

(1)

其中Simage表示输入图像,Si分割后每部分的图像。

Step2 计算分割后图像Si的灰度直方图,并对直方图进行归一化:

(2)

其中M为所有像素点在总数,nj为灰度级为j的像素点数,Pj为像素点灰度为j时的概率。

Step3 以灰度级t为阈值,可以将灰度级分为两类:C1、C2,对于这两类,每一类出现的概率w0、w1为:

(3)

Step4 根据每一类的概率,可以计算出每一类累积灰度值μ0、μ1为:

(4)

Step5 对于整个0~T(255)灰度级,可以求得累积灰度值μT为:

(5)

Step6 最终计算出类间方差σ为:

σ=(μT×w0-μ0)2/(w0×w1)

(6)

当类间方差σ最大时,表示两类的差距最大,此时对应的阈值t为最佳分割阈值。

(3) 肤色像素提取效果

对图3中的人脸图像进行改进后的二值化后可以得到结果如图4所示。

图4 优化后Otsu算法结果

对于右边亮度较暗的部分有了明显改善,但是图中分割块1、2、7、10、11之前为较平滑的肤色区域,经过局部二值化后,对它们进行了一次错误分割,导致产生了一些信息的丢失。所以为了保证信息的完整性,还应该用局部二值化后的结果与全局二值化的结果进行几何运算,找回丢失的信息,如图5所示。

图5 图像几何运算

1.2 自适应肤色判别

(1) 改进的直方图反向投影算法

为了将肤色区域找出来并成功避开背景的干扰,本文以YCbCr颜色空间中的Cb-Cr分量为参考,进行直方图反向投影算法。文献[8]中的研究如图6所示,肤色像素点在YCbCr颜色空间的聚类性十分优秀,特别是在Cb-Cr平面上投影,而其Y(亮度)分量的几乎贯穿整个Y(亮度)轴,所以在之前的肤色检测研究中,大部分方法都是基于Cb-Cr两个分量。但是从图7(a)显示肤色像素点在Cb-Cr平面的分布一定程度上还是受Y(亮度)分量的影响(亮度高和低的部分Cb-Cr分量的范围相对较小),如果只考虑Cb-Cr分量会使误检率增加,如图7(b)所示。如果使用Y-Cb-Cr全部颜色信息作为反向投影参数,相当于在图像中查找和样本像素点像素值相同的点,会产生大量的漏检,如图7(c)所示。

图6 文献[8]肤色像素分布

图7 检测结果

所以本文在反向投影的基础上添加Y分量的阈值标准,在一定范围内进行查找,这样在不增大漏检率的同时还可降低误检率。具体步骤如下:

Step1 使用已提取的人脸肤色像素点共n个:Pi(Y,Cb,Cr) (i=1,2,…,n),建立Cb-Cr分量的样本直方图模型。

Step2 引入Y分量参数,将直方图每个bin中的m个像素点:Pbin-j(Y,Cb,Cr)(j=1,2,…,m)对应的Y分量求和并求得平均值Ebin-y:

(7)

其中Pbin-j(Y)为直方图每个bin中的像素点Pbin-j(Y,Cb,Cr)中Y分量值。

Step3 同对测试图像的所有像素建立Cb-Cr分量的直方图。

Step4 对测试图像中的像素P(w,h)在其直方图中所在bin的位置,查询该像素在样本直方图模型中相同位置所对应的bin数值,并且将待测像素点的Y分量与其所在bin对应的Ebin-y进行比较,如果满足:|Y-Ebin-y|<β,bin数值不变,否则置为0。

Step5 将查找得到的bin数值代替原图像中的像素P(w,h)的值,也就是反向投影过程。

Step6 对测试图像中的每一个像素都采用上述的反向投影步骤,最后得到的就是测试图像根据肤色样本投影出来的肤色概率结果图。

(2) 改进算法的结果

根据改进后算法以图7(a)为例可以得到检测正确率T与阈值β的关系以及肤色检测效果如图8所示。图中Y轴表示肤色、非肤色判别正确的总和比上待测图像总的像素点,也就是正确检测率TAccuracy:

(8)

图8 检测正确率与阈值β的关系图

可以看到随着β的变化,正确率先增大后减小,符合上一段中提到的规律:β=0时表示Y分量和平均值Ebin-y相等,漏检率较高;β=255时表示不考虑Y分量,误检率较高。所以取阈值β=55时,检测效果最好,其肤色检测效果如图9所示。对于每幅待检图像,Y分量阈值并不相同,所以可采用多幅图像进行拟合训练找到最佳阈值。

图9 改进后算法肤色检测结果

2 实验与结果分析

2.1 实验数据集

本文选择Pratheepan[11]人物肤色数据集进行实验。针对数据集中的32张人物图像,首先选取12张作为参考,训练出1.2节中的最佳Y分量阈值β;然后使用另外20张作为测试集,验证训练结果,并与传统的参数法[1]、学习型的肤色检测法(融合法)[11]以及亮度自适应法[5]的结果进行比较。

2.2 实验步骤与分析

(1) Y分量阈值的训练及验证

用于训练的12张样本共包含2 459 261个像素点并且人工标注好肤色点和非肤色点。首先,使用1.1节中的方法检测出每张图像中的人脸并处理提取肤色像素样本点。然后,使用1.2节中的方法,利用每张图像提取出来的肤色像素点投影出整幅图像中的像素点并与标注结果作比较,得出检测正确率T与阈值β的关系图,如图10所示。从图中可以看出β∈[55,105]时,检测效果最优。

图10 样本检测正确率与阈值的关系

验证训练结果是使用测试集,方法和训练步骤一致,只是判断标准变为:准确率TPrecision、召回率TRecall以及F值。20张测试样本,共3 454 050个像素点,其中肤色像素点793 581个,测试在不同Y分量阈值下的检测结果如图11所示。

(9)

(10)

(11)

图11 不同Y分量阈值下的测试结果

可以从结果中得到:当Y分量的阈值β=105时,判断标准F值最大,也就是召回率和准确率协调平衡的最优结果,而此结果和实验第一步的训练结果相吻合,β∈[55,105]。

(2) 对比实验

使用20幅图像作为测试集,分别使用参数法、融合法、亮度自适应进行实验,并与本文方法结果进行比较,其中Y分量阈值β的训练结果为[55,105]。所以测试过程中取β=80,检测效果图如12所示,各项参数结果如表1所示。

表1 测试集在不同方法下的测试结果

由图12中的检测效果对比可以看出,参数法对背景判断最差,但是表1中其召回率最高说明其检测出来的肤色像素点数量最多,适合大规模的检测,对特定环境的检测效果不好。而本文方法无论是背景环境还是光照影响的处理都有较好表现,而且准确率、召回率对于融合法都有明显的提高。在线亮度自适应法的召回率虽然优于本文方法,但是本文的准确率确更高,最终的综合判断标准F值最高。

图12 检测结果比较

3 结 语

本文通过颜色分量结合亮度分量提出一种自适应的肤色检测,检测到人脸后并不是根据肤色特征提取样本点,而是通过人脸分布以及改进后的局部自适应二值化方法,保证了正样本提取的完整性。然后通过直方图反向投影算法,能有效排除复杂背景下类肤色像素的干扰,在保证正检率的同时还具有较低的误检率,并且在此过程中还考虑了亮度对肤色的影响,进一步提高了正确率。

[1] Duan Lijuan,Cui Guoqin.Adult Image Detection Method Base-on Skin Color Model and Support Vector Machine[C]//The 5th Asian Conference on Computer Vision,2002,1:23-25.

[2] Jure Kovac,Peter Peer.Human Skin Colour Clustering for Face Detection[J].International Conference on Computer as a Tool,2003:144-148.

[3] Simone Bianco,Raimondo Schettini.Adaptive Color Constancy Using Faces[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2014,36(8):1505-1518.

[4] 方晶晶,李振波.人体肤色区域的自适应模型分割方法[J].计算机辅助设计与图形学学报,2013,25(2):229-234.

[5] Fang J J,Li Z.Human Skin Color Region Segmentation Based On Adaptive Model[J].Journal of Computer-Aided Design & Computer Graphics,2013,25(2):229-234.

[6] 王任大,尹勇.基于在线学习的亮度自适应皮肤区域检测方法[J].系统仿真学报,2014,26(9):2121-2125.

[7] Wang R D,Yin Y.Luminance Adaptive Method for Skin Area Detection Based on Online Learning[J].Journal of System Simulation,2014,26(9):2121-2125.

[8] 闫斌,梁岚珍.改进的肤色提取法在人脸检测中的应用[J].计算机仿真,2014,31(10):354-357.

[9] Yan B,Liang L Z.Improved Color Model Used in Face Detection[J].Computer Simulation,2014,31(10):354-357.

[10] Zhu Y.Face Detection Method Based on Multi-feature Fusion in YCbCr Color Space[C]//5thInternational Congress on Image and Signal Processing,Chongqing,China.USA:IEEE,2012:1249-1252.

[11] Hsu R,Abdel-Mottaleb M,Jain A.Face Detection in Color Images[J].IEEE Transactions on Pattern Analysis and Machine Intelligence (S0162-8828),2002(5):696-706.

[12] Chen Z X,Liu C Y.Fast face detection algorithm based on improved skin-color model[J].Arabian Journal for Science and Engineering,2013,38(3):629-635.

[13] Kim C,Choi S I,Turk M.A new biased discriminate analysis using composite vectors for eye detection[J].IEEE Transactions on Systems Man and Cybernetics:Part B-Cybernetics,2012,42(4):1095-1106.

[14] Tan W,Chan C,Yogarajah P.A Fusion Approach for Efficient Human Skin Detection[J].IEEE Transactions on Industrial Informatics,2012,8(1):138-147.

FACE-BASED ADAPTIVE SKIN COLOUR DETECTION IN COMPLEX BACKGROUND

Wan Jing1Yuan Ze1Zhang Xuechao2

1(CollegeofInformationScienceandTechnology,BeijingUniversityofChemicalTechnology,Beijing100029,China)2(BeijingTechnologyandBusinessUniversity,Beijing100036,China)

Traditional skin colour detection has the problems of weak anti-interference capability for similar skin colour pixels in complex background and the influence of illumination on characteristics of skin colour. In light of these, we propose an adaptive skin colour detection approach. First, it extracts the skin area with illumination information by combining Adaboost with Haar face detection and making use of the improved binarisation algorithm. Then, it employs the improved histogram back projection method and combines the Y brightness components of skin colour sample in YCbCr space to find the optimal threshold through training, and makes skin colour detection on entire image. Experimental result shows that our approach is robust in complex background and under the influence of illumination. Compared with tradition skin colour detection approaches, our approach has the improvement in both precision and recall.

Skin colour detection Local binarisation Adaptive threshold Histogram back projection

2015-03-10。中央高校基本科研业务费项目(zz1311)。万静,副教授,主研领域:信息智能系统。袁泽,硕士生。张雪超,副教授。

TP391.4

A

10.3969/j.issn.1000-386x.2016.11.035

猜你喜欢

肤色像素点直方图
符合差分隐私的流数据统计直方图发布
基于局部相似性的特征匹配筛选算法
Conversation in a house
人的肤色为什么不同
为什么人有不同的肤色?
用直方图控制画面影调
基于5×5邻域像素点相关性的划痕修复算法
基于canvas的前端数据加密
基于逐像素点深度卷积网络分割模型的上皮和间质组织分割
中考频数分布直方图题型展示