基于肤色检测和人眼定位的人脸检测方法
扫描二维码
随时随地手机看文章
提出了一种基于肤色检测和人眼定位的人脸检测方法。使用基于“基准白色”的色彩平衡方法归一化彩色图像,将图像在HSV 空间进行肤色分割,确定候选人脸,采用形态学滤波器对其降噪。在获得虹膜位置的基础上,使用Susan 算子定位两个眼角点,从而实现眼睛的精确定位。实验证明提出的方法能够很好的检测人脸、定位人眼,尤其对存在人脸旋转和光照异常的人脸图像有很高的精确度和鲁棒性。
1 引言
人脸检测是指处理分析输入的图像,判断其中是否有人脸,如果有则找到人脸的位置,并将人脸从背景中分离出来。近年来出现了大量人脸检测方法,主要分为基于特征的和基于图像的等两种方法。前者以某种特征如肤色、脸型、鼻子和嘴巴等为最小处理单元;后者以图像中的像素为处理单元,把人脸检测看成典型的模式识别问题,使用训练算法区分人脸和非人脸区域。
基于肤色的人脸检测,很容易受光照异常的影响,因此本文首先对图像进行色彩平衡;实验中发现肤色提取后的图像仍然存在许多噪声点,直接影响了检测精确度,因此本文对肤色提取后的图像采用形态学滤波器进行降噪,获得很好的效果。在精确定位人眼上,比较了几种边缘提取的算子,发现Susan 算子更适合提取人眼区域特征,因此本文采用该算子定位眼角点。
2 肤色检测
肤色是人脸最重要的特征之一,不依赖于面部的细节特征,对于旋转、表情等变化情况都适应,具有相对的稳定性并且与大多数背景物体的颜色相区别。
Angelopolou 的研究成果证明在生物和物理上肤色分布的一致性,指出尽管人的肤色因人种的不同而不同,呈现出不同的颜色,但是排除了亮度等对肤色的影响后,皮肤的色调基本一致,这也为利用肤色信息进行皮肤检测的可能性提供了有利的证据。
2.1 色彩空间选择
色彩空间的选择直接影响着肤色检测的结果,用于肤色检测的常用色彩空间有HIS、YIQ、YUV 和YCbCr 等。徐俊等使用YCbCr 色彩空间求出每个像素点属于肤色的隶属度,在复杂背景中获得很好的人脸检测效果。但是在YCbCr 色彩空间中,肤色聚类是呈纺锤形状的,Y 值较大或较小的部分,肤色聚类区域也随之缩减,简单的排除Y 分量是不可行的,必须考虑三个分量,从而增加了工作量。
Zarit 等证明HSV 色彩空间检测肤色像素性能最好。Sobottka 等[4]认为:使用H 和S 就足够将肤色和背景分割开,除了不需要考虑V 外,其对光照和阴影的影响也有较高的稳定性。因此本文使用HSV 色彩空间。图1 为肤色在HSV 色彩空间的分布图。
图1 肤色像素在HSV 色彩空间分布图
从图1 可以看出,图像投影到HSV 空间,肤色区域(红色)色调H 分布在19-240 区间中。设定肤色像素阈值,图像像素H 值在T 内的认定为肤色像素。
2.2 色彩平衡
实验发现,有色光干扰、色温偏高等非正常光照会引起图像色彩按一定的规律变化,使得正常肤色可能检测不到,同时许多非肤色呈现肤色状态,导致肤色检测失效。所以本文使用基于“基准白色”的色彩平衡技术归一化彩色图像。具体步骤如下:
(1) 将图像像素P 按亮度降序排列{Pl1,Pl2 ……Pln },n 为像素个数, li 为像素对应的亮度值, 其中l1》 l2 》 ……》ln;
(2) 选取
作为基准白色,即选取亮度降序集的前5%个;
(3) 计算基准白色R、G、B 分量各自的均值meanR、menaG和meanB;(4) 采用Gray World 假说。计算R、G、B 分量的调整系数。
其中meanI 是图像的平均灰度值;
(5) 调整R、G、B 分量: R’=R*aR,G‘=G*aG ,B’=B*aB;(6) 将R‘ 、G’ 、B‘ 分量值大于255 的调整为255.
图2 色彩平衡前后肤色检测结果。
3 眼睛定位
3.1 形态学图像处理
色彩平衡后,图像中仍然存在一些噪声点(主要在背景中)。噪声的存在显然会使后续的操作更复杂。为了既能把图像中的噪声点去掉又能保留有用的信息,本文使用形态学滤波器对人脸候选区域进行除噪。通过形态学处理不但可以过滤掉由于噪声或者其它原因导致的一些较小的非人脸区域,减少候选区域和提高检测速度,而且可以填补肤色区域内的较小空洞,防止这些空洞被误认为人脸器官。
图3 人脸粗检测。
图3(b)为经过色彩平衡后肤色提取的图像,图3(c)为形态学滤波后的图像,可以很明显的看出,形态学滤波可以有效去除误检为肤色的区域,提高人脸粗检测的准确度。
3.2 人眼精确定位
经过以上步骤,可以在很短的时间内初步确定人脸的位置。在给定范围内搜索眼睛等器官的位置,大大降低了定位的错误率。
首先在人脸区域内寻找虹膜的位置。虹膜轮廓与圆类似,因此可以使用Hough 变换对其进行检测。在获得两瞳孔位置的基础上,以两眼瞳孔为中心划定眼部区域,然后对眼部区域进行处理,定位内外眼角点。
本文采用自适应二值化方法确定门限阈值,获得眼部区域的自动二值化图像,在此基础上对眼部区域图像使用Susan 算子得到眼睛的边缘图像。
Susan 算子的原理是:以像素半径为r(本文实验中取r=5)的圆形区域(面积覆盖π*r 2像素位置)为掩模,考察图像中的每个点在该区域范围内的所有点的像素值与当前点的值的一致程度,如式(1)所示。
其中t 为像素间差异阈值,一般可设为27;代表掩模面积值,面积越小边缘强度越大;g 为几何门限,设定为
经过上述算法获得的眼部区域边缘图像如图4(b),在此基础上对图像中的黑色边缘曲线进行角点提取即可获得准确的两眼内外眼角点位置,如图4(c)所示。根据Susan 算子的特性,它既可以用来检测边缘,又能够提取角点。因此与Sobel、Canny 等边缘检测算子相比较,Susan 算子更适合进行眼部的特征提取,尤其对两个眼角点的自动定位。并且通过适当的调整Susan 算子的参数r 或者阈值t 和g 的大小,对不同质量的人脸图像都可以取得很好的效果。
图4 人眼区域处理图。
5 结论
本文针对人脸检测中的肤色检测和人眼精确定位问题,给出了一种快速准确的方法,有助于提高人脸识别算法的识别率。肤色分割前先对图像进行色彩平衡,采用形态学滤波器对候选人脸进行降噪,这些步骤都大大提高了人脸检测的精确度,而且并没有花费很多时间。在人眼精确定位上,采用更适合提取眼部特征的Susan 算子精确定位眼角点。实验证明该方法可以很好的应用于人脸检测。
4 实验结果
本文使用本实验室建立的人脸库,包括每个人10张(不同表情、光照、旋转角度等)共200 张人脸图像,大小为180?200.
在正面人脸的图像上测试,人眼的内外角点定位准确率达到98.4%,在侧脸小角度(左右旋转以内)人脸图像上测试,准确率达到90.2%.人脸检测平均时间为2s,定位虹膜和内外角点平均时间为10.4s.
图5 人脸、瞳孔及眼角点定位。
图5(a)图为人脸检测结果,图5(b)为瞳孔及眼角顶定位结果,其中红色为瞳孔位置,黄色为右侧眼角点,粉红色为左侧眼角点。实验结果证明本文提出的方法可以很好的检测定位人脸。