快速人脸检测技术在证件照中的应用与研究
2014-05-12陈史政
陈史政
(福建广播电视大学漳州分校理工系,福建漳州 363000)
随着摄像技术的快速发展,图像获取的途径越来越多、应用越来越普及,对图像进行自动处理的需求也越来越多,其中人脸作为身份识别的主要特征之一,也成为图像处理的一个主要研究对象.要对图像中脸部信息进行分析处理,首先就要解决如何在图像中自动定位并检测出人脸的问题,只有正确实现人脸检测,才能在随后对人脸进行进一步的分析、对比、追踪、识别,因此人脸检测是人脸识别的前提与基础.另外,在视频监控与人物追踪方面也需要应用到人脸检测技术,因此人脸检测研究具有很重要的意义[1].随着各种研究的深入,许多人脸检测算法被提出,已经有了不少研究成果[2-3],如AdaBoost算法、ANN与SVM算法等,不过由于应用范围的不同及于精度与速度两个方面的取舍不同,在不同的实际应用范围中还是存在一些不足之处.
在人脸识别应用中,特别是样本库中,经常会应用到个人证件照.与普通图像不同的是,证件照一般要求为低倾斜度及纯色强对比背景的单人正面照片.有些证件照图像已经接近人脸检测结果要求,有些可能使用半身照,对于这些证件照的人脸检测可以不考虑通常情况下的复杂背景,而且证件照的一些共同特征也能在人脸检测过程中起到很好的辅助判别作用,并不需要进行太过复杂的运算就可以实现检测.由于人的肤色在色彩空间中所处的位置相对集中,而且不会受到人的表情、人脸位置影响,具有较好的稳定性,本文针对证件照图像设计了一种基于肤色分割的快速人脸检测算法,利用证件照的特性取得快速准确的检测结果.
1 颜色空间
颜色是由于光波本身波长的不同,在不同波长光波混合后,经过人的眼睛感受到的色彩,由于每个人的视觉能力与主观差异不同,同一种颜色在不同人眼中接受到时会有一定的差异.在计算机中,要实现颜色处理,首先需要有一种能够表达颜色的方法,已有的常用方法有多种,形成了不同体系的颜色空间.针对不同的颜色空间,用计算机进行数据分析与运算时的处理效果会有明显的差异.
目前常用的颜色空间包括RGB、CMYK、YUV等,通常计算机图像采集时得到的证件照图像属于RGB颜色空间,即通过由红色、绿色、蓝色三个分量的变化和叠加来实现颜色[4].通过研究发现人的肤色不仅对色度信息敏感,亮度信息也会产生很大影响,所以要将图像中的亮度信息与色度信息区分开来.在RGB颜色空间中,亮度信息被混合在三色分量内难以分离,采用RGB方式并不利于处理肤色信息.通过比较,本文选择采用YCbCr颜色空间,这其实是YUV经过缩放和偏移的翻版,通常也被归在YUV一类里面,被广泛应用在图像处理中,例如JPEG就采用了这一颜色表示方法.YCbCr颜色空间采用三个分量来描述,其中Y、Cb、Cr分别表示亮度信息、蓝色色差、红色色差.由于在YCbCr中亮度信息为独立分量,可以在肤色处理时主要分析Cb和Cr分量,减少亮度因素带来的干扰,而且去掉Y分量后,计算复杂度会有较大下降,使算法更简单、提高了运算速度.另外,已有研究发现,在YCbCr颜色空间中,肤色所处位置较集中,更容易被区分检测出来.
由于RGB与YCbCr颜色空间的描述方法不同,要将输入的RGB图像转到YCbCr颜色空间需要使用转换公式:
2 肤色识别
现有研究表明,虽然每个人在不同位置的肤色有差异、不同人之间的肤色也有差异,但是这些肤色在CbCr空间中符合正态分布,可以使用高斯模型描述肤色在CbCr空间中分布情况,并通过这一模型来求取肤色相似度.为了求取肤色相似度,应先求得肤色的数学期望值,在这里使用统计方法求取[5].从证件照图像集合手工提取人脸肤色样本,将其转换为YCbCr格式的图像后先进行低通滤波器滤波,再去掉亮度Y,对给定肤色图形在CbCr空间进行统计处理,求取数学期望值m与协方差C.公式如下:
这里的x为相应点的CbCr值,C为协方差.由于是采用统计学的原理,拟合高斯分布,其实现方法简单、快速,取得数学期望值m后,再通过高斯模型,可以求得图像中任一点位置的肤色相似度,相似度的大小可以由以下的公式计算:
通过对图像中的每个点求取CbCr值的肤色相似度,可以得到一幅相似度图像,设置一个经验阈值T实现肤色判别[6],当肤色相似度大于或等于这个经验阈值时将该点标为肤色点,小于这个经验阈值T时将该点标为非肤色点,这样就实现了对图像肤色判别的二值化变换.
3 肤色分割与人脸检测
因为证件照的基本要求是单人纯色背景,所以在本文中对人脸检测主要是找出图像中一个尽可能小且包含完整人脸的矩形区域.在对证件照图像求取肤色相似度并进行图像肤色判别,取得的肤色二值化图像时,除了人脸肤色区域被找到外,可能还会有其他一些干扰区域被选出,如证件照中人的肩部、手部等皮肤区域或颜色与肤色相近的衣物区域.在证件照图像中的人脸检测可以根据证件照的基本共性进行判别,考虑到证件照的基本要求是单人正面低倾斜度及较强对比的纯色背景,在垂直方向从上到下,第一个被找到的大面积肤色区域Q可以直接判定为人脸区域.肤色区域Q的顶框线即为所求人脸矩形区域顶框线.
为了找到这个人脸肤色区域Q,首先应在被检测出来的肤色区域中过滤面积过小的区域,由于肤色二值化图像是以点阵图形而不是矢量图形式存在,要计算一个肤色区域大小,可以采用连通性区域判别方法进行求和.在肤色二值化图像中按顺序找到第1个未标记肤色点生成一个新的面积为1的肤色区域,对图像点阵中该肤色点周围的8个方向点进行判别,如果是未标记肤色点则加入该区域并标记,面积加1.对每个新加入的肤色点采用之前方法进行递归查找,当区域内所有肤色点都标记完成即可求得一个肤色区域与面积大小,继续查找下一个未标记点直到整张图像搜索完成.通过实验验证,在证件照中的小面积肤色区域不是人脸肤色区域,通常是肩、手、衣服饰物等,采用经验阈值可以将这些小肤色区域过滤掉.
在人脸分布中由于眼睛、眉毛的存在,会在人脸肤色区域Q中形成至少一个明显的孔洞,在垂直方向从上到下逐行扫描到明显孔洞时,可求得额高h,对从上向下3h范围内的人脸主要区域求最大宽度,可取得人脸宽度w.取3h范围内的人脸肤色区域Q的左右框线为所求人脸矩形区域左右框线.已有研究发现人脸高度和宽度存在一个比例范围,对于正常面型的长宽比应该比较协调,符合三停五眼规律,其黄金比例为:
通过对人脸图像数据库内的人脸高度和宽度比例进行统计求得人脸高度和宽度比值在0.8~1.6之间,可以用这个比值来限定人脸区域.由于肤色分割通过阈值实现,人脸肤色区域Q可能会包含人脸以外的区域,特别是衣服与肤色相近时.因此人脸区域矩形区底框线可以先设为人脸肤色区域Q底框线,如果求出的人脸区域高度大于额高与人脸宽度之和,则截掉底下超出部分.
4 算法流程与实验结果分析
对于证件照图像实现人脸检测的具体步骤如下所示:
(1)从证件照图像数据库读取待检测图像M,并做预处理.
(2)将图像M从RGB颜色空间转换至YCbCr颜色空间,取得图像M的CbCr点阵集.
(3)采用公式5对点阵集计算肤色相似度,并通过经验阈值T实现肤色判别的二值化运算.
(4)使用8连通性区域判别求得连通性区域集,并过滤掉小面积连通性区域.
(5)取垂直方向从上到下第一个被找到的大面积肤色区域Q为人脸肤色区域,设置Q的顶框线为人脸矩形区域顶框线.
(6)在区域Q逐行扫描明显孔洞求得额高h,求出从顶向下3h范围内区域Q的最大宽度为人脸宽度w.
(7)取区域Q在3h范围内的左右边界线为人脸矩形区域左右框线.
(8)设区域Q底框线为人脸矩形区域底框线,如果求出的人脸区域高度大于h+w,则截掉底部大于h+w的部分.
从一个实际在用的考试系统中取得考生报考时提交的证件照图像1963幅,从中随机抽取30幅证件照图像,缩放为统一分辨率后进行人脸检测,并人工核对检测结果.经过大量模拟实验,取得检出时间t、人脸检出率S、检测准确率A如表1所示:
表1 人脸检测识别率
通过实验表明,采用这一算法可以快速实现证件照图像的人脸检测,并能够较好地取得检测准确率.
5 结束语
通过研究与实验表明,在对个人证件照图像进行人脸检测时,考虑证件照的一些固有特征可以在人脸检测过程中起到很好的辅助判别作用实现快速检测,并不需要采用较为复杂的算法.本文针对证件照图像设计了一种基于肤色分割的快速人脸检测算法,并通过实验证明,使用该算法能在证件照图像人脸检测时取得快速准确的检测结果.
[1]梁路宏,艾海舟,徐光祐,张钹.人脸检测研究综述[J].计算机学报,2002(5):449-458.
[2]卢春雨,张长水,闻芳,阎平凡.基于区域特征的快速人脸检测法[J].清华大学学报(自然科学版),1999(1):101-105.
[3]Paul A.Viola,Michael J.Jones.Rapid object detection using a boosted cascade of simple features[J].Computer Vision and Pattern Recognition-CVPR,2001(1):511-518.
[4]陈锻生,刘政凯.彩色图像边缘特征及其人脸检测性能评价[J].软件学报,2005(5):727-732.
[5]赵明华,游志胜,穆万军,吕学斌,余静.基于肤色分割、数学形态学和几何方法的人脸检测[J].四川大学学报(自然科学版),2005(3):617-620.
[6]郭耸,顾国昌,蔡则苏,刘海波,沈晶.肤色相似度和动态阈值相结合的肤色分割技术[J].计算机工程与应用,2010(18):1-3.