复杂背景下的人脸检测算法研究与实现

2016-06-06 07:42许鹏飞贾银洁朱梦洁刘媛媛
无线电通信技术 2016年3期
关键词:人脸检测图像分割

许鹏飞,贾银洁,朱梦洁,刘媛媛,宋 莹

(1.淮安信息职业技术学院 计算机与通信工程学院,江苏 淮安 223003;2.淮阴工学院 电子信息工程学院,江苏 淮安 223003)



复杂背景下的人脸检测算法研究与实现

许鹏飞1,贾银洁2,朱梦洁2,刘媛媛1,宋 莹1

(1.淮安信息职业技术学院 计算机与通信工程学院,江苏 淮安 223003;2.淮阴工学院 电子信息工程学院,江苏 淮安 223003)

摘要:人脸检测是指能够在一幅图像中找到其中存在的人脸,并能够确定其位置和大小等信息的过程。人脸是一个信息极丰富的模式集合,其是人类互相判别、认识、记忆的主要标志,人脸检测在人脸图像处理和计算机视觉领域占有极为重要的地位。针对复杂背景下的彩色图像,对目前主流的几种人脸检测算法进行了介绍,在系统设计中提出了一种基于肤色和特征融合的人脸检测算法。该算法是一种层次化、由粗到精的检测方法,通过一步步减小检测区域,从而实现多个人脸的检测与定位。

关键词:人脸检测;色彩空间;肤色模型;图像分割

0引言

根据大量资料显示,对于人脸检测技术的研究最初来源于人脸识别技术,而人脸识别技术的研究可以追溯到20世纪60~70年代[1]。在过去,对人脸检测技术的研究只是人脸识别技术的一小部分,其主要目的是能够在图像中找出所有可能的人脸具体位置,将其和单一背景区分开,从而能够提取出人脸图像[2]。由于其主要研究的是人脸识别技术,所以对图像中人脸所处的背景要求很高,一般是单一背景或者无背景,所以对人脸检测技术的要求较低,这就导致当时的人脸检测技术无法精确检测出处于复杂背景下的人脸图像。目前国内外针对复杂背景下人脸检测的算法的研究有很多方向,比如基于肤色特征的方法[3]、基于器官分布特征的方法[4]、基于对称性特征的方法、基于人工神经网络的方法、基于模板匹配的方法[5]。进入20世纪90年代后期以后,许多基于商业性的人脸识别系统开始慢慢进入市场,人脸识别技术的发展也日趋成熟,从而对人脸检测技术的要求也越来越高。人脸检测技术已成为一个备受关注的课题,单一背景下的人脸检测技术已经不能满足现代人的需求,因此人脸检测技术都是基于复杂背景的研究。

1系统设计

由于肤色是人脸的一项非常重要的特征信息,且其不依赖于具体的人脸面部器官、表情变化等影响,在彩色图像中具有较高的稳定性[6],故本系统采用的人脸检测算法是基于肤色模型的人脸检测算法。本系统通过利用肤色在色彩空间中的聚类特性,设计了一个对肤色进行建模从而进行图像分割得到人脸区域的人脸检测算法[7]。如果想得到效果好的基于肤色的人脸检测算法,就需要非常合理谨慎地选取合适的颜色空间,在该空间中对肤色进行建模,并对肤色进行提取,最后对由肤色建模提取出的人脸区域进行筛选并标记。

1.1色彩空间的选取

对于一个针对彩色图像进行人脸检测的算法来说,对色彩空间的选择是非常重要的,这是由于复杂背景中的光照条件不稳定,要想将人脸区域与复杂背景分割开来,就需要建立非常可靠的肤色模型,也就是说,人脸检测算法中的肤色模型的建立与其色彩空间的选择是密切相关的[8]。一般来说,对人脸检测算法的彩色空间的选择标准是:

① 肤色能够在选择的颜色空间中有非常好的聚类特性;② 在该颜色空间建立的肤色模型能够很好地将肤色区域与非肤色区域区分开来。

在RGB图像中,其每个像素点都是由R、G、B三个分量以不同比例混合而成,所以无论R、G、B三个分量中的哪一个分量发生了变化,其最终结果都会导致该像素点发生不同程度的颜色改变。同一背景在晴朗天气条件下拍摄的图像色彩鲜艳,而在阴雨天气条件下就会色彩平淡,这样就会使相同背景的同一像素点处RGB分量值大不相同,也就是说基于RGB模型下的图像受光照的影响非常大。如果采用RGB色彩空间对肤色进行建模,就会导致由于同一肤色在不同光照条件下而使得检测的结果有所差别,如果光照条件十分恶劣,甚至会无法检测出人脸区域,这样只会使得基于此空间下的人脸检测变得愈发得复杂,所以RGB色彩空间不是十分理想的选择。为了能够利用皮肤颜色在颜色空间中的聚类特性,其选择的颜色空间就必须要能够将颜色信息与亮度信息区分开来,这就需要对RGB图像进行颜色空间上的转换,将其转换到能够使肤色具有很好聚类特性的色彩空间里。目前主流的颜色空间中,HSV颜色空间与YCbCr颜色空间都是不错的选择。

HSV颜色空间不仅能够将一幅图像中的颜色信息与亮度信息区分开来,并且该颜色空间的颜色信息都能够独立表示。代表颜色信息的是单独的H分量,代表亮度信息的是单独的V分量。由此可看出,HSV色彩空间中的颜色信息和亮度信息是完全独立分开的,所以其相对于RGB色彩空间来说,光照变化对HSV色彩空间的影响较小。由于H分量只表示一幅图像中的颜色信息,所以若只选择H分量作为该人脸皮肤颜色统计的参数,将可以减小光照变化对整个系统检测效果的影响。在YCbCr色彩空间中,Cb分量和Cr分量分别代表蓝色和红色分量,有能够将亮度和色度很好地分离的优点。除此之外,肤色在该颜色空间中能够聚集在一个非常小的空间里,具有非常好的聚类特征。总的来说,YCbCr色彩空间不仅可以很好地表达出肤色特征,还可以消除由于不同光照条件所带来的亮度影响,其在很大程度上减少了在色彩空间中计算的复杂度。

综上所述,HSV色彩空间与YCbCr色彩空间都是基于肤色的人脸检测系统非常合适的色彩空间,都是非常不错的选择。但为了整个系统更加严谨,最后的人脸检测效果能够更好,本系统设计决定采用两种色彩空间混合的方式对人脸肤色特征进行提取并分割出人脸肤色区域。

1.2肤色模型的建立

地球的人类种族有黑、白、黄色三类,人脸的肤色不同,每个种族的人脸皮肤颜色分别在一个狭窄的频带内,这就使得建立模型时需要区别对待。中国人属于黄色人种,所以本文主要研究的是黄色人种的人脸检测。由于黄种人皮肤颜色分布范围只集中在某一小区域内,导致其在HSV颜色空间的H分量的取值上也集中在很小的一段范围内,在YCbCr色彩空间中的Cb和Cr两个分量中也集中在一定的范围内。

建立肤色模型其实就是在颜色空间中建立了能够精准描述肤色分布规律的数学模型,本设计采用了基于HSV色彩模型和YCbCr色彩模型的人脸皮肤彩色模型,通过对人脸肤色建模,从而将符合人脸的肤色区域标记下来,通过使用该肤色模型对输入计算机的图像进行人脸检测[9]。建立该模型,首先要将在RGB色彩空间下的图像转换为HSV色彩空间和YCbCr色彩空间下的图像,然后对人脸肤色进行色相统计,得到黄皮肤在颜色空间中分布的区域范围,从而通过对属于该范围内的肤色区域与非肤色区域分别标记白色和黑色来区分,得到二值图像。

1.3肤色的提取

对肤色进行提取之前,首先要将原处于RGB色彩空间下的图像转换到HSV色彩空间和YCbCr色彩空间下,然后对H分量以及CbCr分量进行提取,最后通过添加限制条件来得到的二值图像只有黑与白两种颜色。人脸肤色在H分量以及CbCr分量内都有一定的取值范围,即可通过给定肤色模型的阈值进行判断,即对图像中的每一个像素点扫描,判断它是否在H分量和CbCr分量的取值范围之内,最终提取面部皮肤,得到属于脸部区域的像素点,并区分人脸和非人脸区域。

在对肤色进行提取的过程中,特别需要注意的是人脸肤色在H分量以及CbCr分量上取值范围的上下界限值。该值对人脸检测最终的检测结果影响较大,所以在处理该值时需要特别严谨,确保能够保证整个系统良好的性能,具有较高的检测率。大量实践表明,发现在YCbCr色彩空间的统计分布的黄种人的皮肤满足145≤Cb≤180,145≤Cr≤165,在HSV色彩空间的统计分布满足0.01≤H≤0.15,本系统设计也将采用经过大量科学实践的上下界限值来对肤色进行提取,最终获得人脸区域被成功划分出来的二值图像。

1.4对人脸区域进行筛选并标记

提取皮肤颜色最后得到的二值图像只提供了与肤色相近的区域,例如颈部、手臂的肤色区域以及其他类似物体等等,这就导致最后得到的区域包含了很多非人脸区域。这就需要对这些区域做进一步的处理以便去除这些干扰因素造成的假脸。

对图像进行形态学处理是去除这些干扰的第一步,其处理手段主要有对图像进行开运算、闭运算、腐蚀、膨胀以及填洞等操作。其中腐蚀和膨胀互为逆运算,腐蚀可以消除无意义的小物体,减少区域,而膨胀则是用来填补对象中的缝隙,能够扩大区域。先腐蚀后膨胀的运算过程称为开运算,开运算的主要作用是将十分狭小的物体消除、平滑较大区域边界使其轮廓变得更加光滑。与其相反,先膨胀后腐蚀的运算过程称为闭运算,其主要作用是能够填充图像中的细小空洞、连接相邻近的物体以及平滑区域边界。利用这些方法可以滤除类肤色物体以及由噪声等原因引入的非人脸区域,减少候选区域的判断,从而可以提高系统的检测效率[10]。

经过形态学方法对图像进行处理之后,图像中大部分细小噪声已被清除,但是很有可能还有一些无法利用形态学方法进行清除的较小或较大的非人脸区域仍留存在图像中,这就需要对图像进行进一步的处理和筛选。人脸的长宽比是在一定范围之内的,可以利用这个特性进一步排除非人脸区域。首先对已经用形态学方法处理后的二值图像进行顺序扫描,标记出图像中各种形状的连通区域。然后计算每个连通区域的长轴和短轴,得出每个区域的外接矩形,计算出每个外接矩形的长宽之比,将不满足人脸长宽比的区域进行舍弃,保留满足条件的区域,并用矩形框在图像中将其标出,标出的区域就是整个系统最终得到的人脸区域。

2系统实现

本系统的最终目的是能够在复杂背景中检测出人脸,有着较高的检测率,保证该系统的高效性和准确性。实现人脸检测系统的核心在于检测算法的设计与实现,本系统主要使用的算法是基于面部肤色的检测算法,主要步骤有获取检测图像、肤色建模、图像的形态学运算、获得各个人脸区域并进行筛选和标记人脸,下面对其中重要的几个步骤进行说明。

2.1肤色建模

获得待检测图像后,将其从RGB色彩空间分别转换到HSV色彩空间以及YCbCr色彩空间,再将H分量和CbCr分量提取出来。因为每个人的肤色有一些细微的差别,所以其在H分量和CbCr分量中有着一定的取值范围,所以可以通过对图片进行扫描并对每个像素点是否在肤色所在的H分量和CbCr分量取值范围之内进行判断,符合该取值范围内的像素点即为皮肤区域,最后通过给皮肤区域以及非皮肤区域分别赋予不同的值,得到二值图像,从而完成肤色建模这一过程,原图和二值图像如图1所示。

图1 模块功能实现效果图

H分量可以通过将RGB色彩空间的图像I由RGB2HSV(I)函数将其转换到HSV色彩空间后直接提取。CbCr分量则需要利用以下2个公式得到:

(1)

(2)

得到H分量和CbCr分量后对图像上的每个像素点进行色相统计,计算出黄皮肤所在的颜色区域,其所在H分量和CbCr分量的范围上文已给出,只需将属于该范围的皮肤区域赋值1,标记为白色,将不属于该范围的非皮肤区域赋值0,标记为黑色,就可以得到上图所示的二值图像。

2.2图像的形态学运算

从上面给出的二值图像可以看出,除了3张人脸皮肤区域被正确标出之外,还有很多细小非人脸区域也被标出,这里就需要对该二值图像做进一步的形态学处理,本系统主要采用的形态学方法是对图像进行开运算,去除较小的连通区域。由于人脸是3D立体的,其轮廓在二维图像中有时会比正面的脸部皮肤暗一些,为了不使最后标记人脸时丢掉人脸最外围的轮廓,本系统在对皮肤区域进行开运算之后,还使用了imdilate函数对图像进行了扩张,即膨胀作用,使人脸周围的区域连通,对图像进行开运算以及膨胀后的效果图如图2所示。

图2 形态学方法处理效果图

从上述效果图可以看出,细小噪声已完全被滤除,形态学方法可以很好地去掉假区域,保留人脸区域,该方法对整个人脸检测系统的完成起到了非常重要的作用。此图像中类肤色物较少,此时已可以对其进行人脸标记,其检测结果图如图3所示。

但如果该图像中存在类肤色物体,如肩膀、手等,其面积稍大,无法用开运算滤除,就会给最后的检测效果带来极大的误差,这些类肤色物体会被误当成人脸而被检测出,其误检测图如图4所示。

该图像除了脸被正常检测出来之外,手臂也被误当做人脸检测出来,所以可以看出一个好的人脸检测系统只单单利用肤色特征和形态学方法是不够的,其检测准确性并不高,所以还需要对人脸区域进行进一步地筛选,以便能够更加准确地得到图片中的人脸。

图3 人脸检测效果图

图4 人脸检测效果图

2.3筛选人脸区域

人脸除了肤色特征这一个非常稳定的特征之外,其脸部长宽比和面积大小也相对较稳定,本系统通过对已得到的肤色区域进行长宽比以及面积大小的比对进行对肤色区域的进一步筛选,最终得到一个良好的检测效果,原来被误当做人脸检测出来的手臂已经成功被滤除,只有人脸被正确地检测出来,可见人脸长宽比及面积大小特征对人脸检测系统是非常重要的人脸特征。根据大量实践,人脸的长宽比大概在0.4~1.8之间,本系统也是采用了这一数值,最后的检测结果也证明了该数据具有一定的科学依据。

本系统首先是使用了bwlabel函数得到一个与该图片大小相同的矩阵L,在该矩阵L中,包含了该图片中得到的每个连通区域的类别标签,它们的值为1、2、3、n(连通区域的个数),并且选用的是八连通寻找区域。然后使用了regionprops来计算矩阵L中每一个代表肤色区域的最小矩形的坐标,其返还值是一个长度为max(L(:))的结构数组,再用struct2cell函数把结构体数组转换为元胞数组,最后用cell2mat函数将由多个矩阵构成的元胞数组转换成一个矩阵,该矩阵里包含了代表每一个肤色区域的连通区域,只需要判断各个连通区域的长宽比及面积是否符合人脸长宽比及面积特征,即可筛选出人脸区域,得到最终的检测结果。

3结束语

本文对复杂背景下的人脸检测算法进行了充分的研究,并以人脸检测算法为核心技术,设计了人脸检测系统,针对肤色的聚类特性,采用了基于肤色的人脸检测算法,实现了对二维图像的人脸检测。系统基本实现了人脸检测系统基本应具备的功能,到达了预想的效果,具有很好的鲁棒性,检测效果良好。除此之外,本系统采用了HSV色彩空间和YCbCr色彩空间来进行肤色建模,解决了因光照变化带来的影响,使人脸检测不再受光照影响,为整个系统减少了不小的挑战与难度。仅仅基于肤色会使最后的系统检测人脸率不是特别理想,所以本文中还提到了利用人脸长宽比及面部大小特征来进一步的筛选出人脸区域,大大提高了最后人脸检测系统的检测效率。但本系统还是不能达到百分百的检测率,人脸检测技术是非常复杂的一门技术,其未来的发展趋势应该仍旧是综合多种分类方法以及统计学习方法相结合的,人脸检测技术永远都需要研究者长期而又耐心地进行大量实验去探究。

参考文献

[1]刘宝宝.复杂背景下的人脸检测研究[D].合肥:安徽工业大学,2011:8-9.

[2]LV Shao-dong,SONG Yong-duan,XU Mei,et al.Face Detection under Complex Background and Illumination[J].Journal of Electronic Science and Technology,2015(1):78-82.

[3]王利娟.基于肤色信息的快速人脸检测算法研究[D].成都:四川大学,2004:11-12.

[4]郭耸.人脸检测若干关键技术研究[D].哈尔滨:哈尔滨工程大学,2011:16-17.

[5]马艳.基于颜色与模板匹配的人脸检测方法[D].大连:大连理工大学,2006:23-24.

[6]吴要领.基于YCrCb色彩空间的人脸检测算法的设计与实现[D].成都:电子科技大学,2013:20-21.

[7]李伟.基于肤色分割的人脸检测算法研究[D].成都:电子科技大学,2006:27-28.

[8]Pouya G,Zahra N,Hassan A.Labeling Algorithm for Face Detection Using Skin and Hair Characteristics[J].Journal of Electronic Science and Technology,2012(2):135-141.

[9]邓加琼.复杂背景下的彩色人脸检测算法与实现[D].成都:电子科技大学,2005:25-26.

[10]毛顺兵.复杂背景彩色图像的人脸检测算法研究[D].重庆:西南师范大学,2002:29-30.

Research and Implementation of Face Detection Algorithm under Complex Background

XU Peng-fei1,JIA Yin-jie2,ZHU Meng-jie2,LIU Yuan-yuan1,SONG Ying1

(1.College of Computer and Communication Engineering,Huaian College of Information Technology,Huai’an Jiangsu 223003,China;2.College of Electronic and Information Engineering,Huaiyin Institution of Technology,Huai’an Jiangsu 223003,China)

Abstract:The face detection is a process that can find the faces in a picture,and determine the information such as location and size.Human face is a collection of information with extremely rich patterns,and it is the prime symbol for the human distinguishing from each other,understanding and memoring.The face detection in the field of human face image processing and computer vision occupies very important position.In view of color images based on complex background,this paper introduces several mainstream face detection algorithms.In the system design,a face detection algorithm based on skin color and feature fusion is proposed.This algorithm is a hierarchical and coarse to precise detection method,and it can reduce the detection area step by step,so as to realize the detection and localization of multiple faces.

Key words:face detection; color space; skin color model; image segmentation

中图分类号:TP391

文献标志码:A

文章编号:1003-3114(2016)03-105-5

作者简介:许鹏飞(1980—),男,硕士,IEEE会员,华为Academy Instructor,工程师,讲师,主要研究方向:多媒体信号处理。贾银洁(1981—),女,硕士,讲师,主要研究方向:多媒体信号处理。

收稿日期:2015-12-16

doi:10.3969/j.issn.1003-3114.2016.03.28

引用格式:许鹏飞,贾银洁,朱梦洁,等.复杂背景下的人脸检测算法研究与实现[J].无线电通信技术,2016,42(3):105-109.

猜你喜欢
人脸检测图像分割
JNI技术在基于OpenCV的人脸与微笑检测中的应用
基于人脸特征定位的SNS网站应用组件研究与设计
计算机定量金相分析系统的软件开发与图像处理方法
基于Android平台的人脸识别系统设计与实现
一种改进的分水岭图像分割算法研究
一种图像超像素的快速生成算法
基于鲁棒性的广义FCM图像分割算法
基于Matlab的人脸检测实验设计
基于JSeg和显著性检测的服装图像分割方法