
6.2.1 人脸轮廓提取
人脸轮廓的提取主要分为两步:人脸位置的定位和人脸内轮廓的提取。
1.人脸定位
为了进行人脸的定位,首先需要对人脸的位置区域进行初步的确定。原始彩色图像在经过光线补偿、肤色提取、去噪和填充后,由于有时有背景与肤色的相似性以及裸露的四肢、颈部等肤色图像的存在,会严重干扰人脸区域的确定,所以必须采取一定措施将非人脸区域去除。根据以下判断规则来排除非人脸区域和确定人脸区域。
(a)在竖直方向上对人脸区域(白色像素)进行白色像素投影,并计算其最大值,然后用这个值去归一每列人脸区域的像素投影值(相当于求频度);
(b)通过频度确定人脸区域的左边界和右边界。这里,左边界和右边界设定的阈值为0.2,即从频度最大向左寻找频度减小到0.2的那一列作为左边界,而从频度最大向右寻找频度减小到0.2的那一列作为右边界;
(c)同理,在水平方向上对人脸区域进行白色像素投影,并计算其最大值,也用这个值去归一每行人脸区域的像素投影值(相当于求频度);
(d)通过频度确定人脸区域的上边界,上边界的阈值仍设定为0.2,即从频度最大向上寻找频度减少到0.2的那一行作为上边界;
(e)下边界则按如下方式求取:人脸拟合为矩形时,人脸的长宽比值约为1.2,现已知上边界、左边界和右边界,可据此求出人脸的下边界。
本书没有通过肤色去检测人脸下边界,这是因为人穿不同衣服时,外露脖子的长短会有变化。若依靠肤色检测人脸下边界,脖子区域也会被误当成人脸检测出来,影响人脸定位效果。
2.人脸内轮廓提取
为了提高在人脸区域内眼睛、鼻子和嘴的定位精度,本系统在人脸区域内进行轮廓提取,以突显眼睛、鼻子和嘴的位置。
首先将已经定位的彩色人脸图像进行二值化处理,这里所用到的二值化方法不是传统的将图像灰度化后再二值化的方式,而是从彩色图像直接进行二值化处理。其基本原理是计算出每点像素的红(R)、绿(G)值,然后利用下面的公式进行二值化处理,得到图像的灰度值T。

在得到人脸的二值化图像后需进行边缘检测,利用图6-1所示的模板对图像进行卷积计算,得到每个像素点的新的灰度值。

图6-1 边缘检测模板
为了能够利用单像素点描述人脸图像的边缘,做如下处理:生成一个3×3的模板,统计模板中灰度值小于-5和大于5的像素点个数。若每一类像素的个数均大于2,则模板中心点像素灰度值置为0,生成所要提取的内轮廓即人脸内轮廓。