学术论文网
人脸检测与识别系统的设计与实现
发布日期:2024-09-14 09:05:02

  2.3 人脸区域分割与定位

  2.3.1 人脸肤色分割流程

从前面介绍的颜色空间和肤色模型中可以看出,选择在空间下结合高斯模型对人脸肤色区域进行分割效果最佳,这也是人脸检测的第二步,最终得出相似度灰度图。其具体的分割算法流程如下:

  读入彩色图像。

  扫描图像,获取该彩色图像每一像素R、G、B颜色分量值。

根据公式,将每一像素转换到空间下,计算Cb、Cr值。

  根据相似度公式,计算各像素与肤色的相似度值。

  进行均值滤波,以消除肤色区域中被误判为非肤色的点或是噪声点。

  得到相似度灰度图,如图2-4所示。

  图2-4 相似度灰度图

  在肤色相似度计算过程中,用每一点像素的肤色相似度值除以最大肤色相似度所得到的值,作为该像素点的灰度值,从而得到肤色相似度图像。肤色相似度图像上某点的灰度值表征了这个像素点属于皮肤的概率。而图中具有较高肤色概率值的像素构成的区域就是潜在的人脸区域。其中相似度计算公式如下:

(2-5)

(2-6)

其中,为样本在颜色空间的值,为均值,为协方差矩阵。

  2.3.2 人脸肤色分割算法

  在得到相似度灰度图之后,图像中的灰度值还是在[0,255]范围内,不能很好地显示人脸肤色区域,因此需要选取合适的阈值,将灰度图像二值化,最终检测出图像的肤色区域。二值化过程中阈值的选取非常关键。目前有很多阈值选取方法,如直方图阈值分割法、最大方差阈值分割法和自适应阈值分割法等。本文采用的是基于区域增长算法的自适应阈值分割。

  2.3.3 人脸区域定位

  基于区域增长的自适应阈值是根据逐步计算的结果得到的,其阈值的变化是与相似度相联系的。逐步减小肤色相似度会得到更多的肤色区域。增长的变化量逐渐减少,直到已检测到的皮肤区域到达100%。当相似度小于一定值时,增长变化将急剧增大,而不是递减,这是因为已将人脸肤色区域外围非肤色包括进来,所以使增长最小的相似度或阈值才是最优结果。得出最佳阈值后,对肤色相似度灰度图处理就可以得到最终的二值化图像。如图2-5所示。

  图2-5 二值化图像

  根据上述所得的二值化图像,再对其进行垂直投影和水平投影,垂直投影得到水平方向图,水平投影得到垂直方向图,这样更能体现出人脸区域的大体范围。同时根据求得的二值化的值和一些先验知识就能确定人脸区域的上下边界,再由边界形成的外接矩形最终确定人脸区域,并将其标识出来。效果如图2-6所示。

  图2-6 人脸区域标识图

  2.4 人脸特征提取

  五官是人脸重要的特征点,五官特征提取是指在图像的给定区域内搜索五官的位置、关键点或轮廓线。五官的特征信息既可以验证人脸检测的结果也可以作为人脸识别的依据。接下来就人脸五官中的眼睛、嘴巴和鼻子特征进行提取,对其原理和方法作介绍。

  2.4.1 眼睛特征的提取与标定

  在提取眼睛特征之前,考虑到颜色空间和眼睛位置两个特征。首先要对检测出来的人脸区域部分进行canny边缘检测,效果如图3-1所示。

  图3-1 边缘检测效果图

  考虑到眉毛与眼睛同属于非肤色部分,而且两者的距离较近,对边缘提取后的图像进行水平方向的投影。因为眉毛正好位于眼睛的上方,因此水平方向的投影,眉毛就不会影响眼睛部分水平区域的确定。由此通过水平方向的投影能够得出眼睛存在的可能区域,计算垂直方向上非肤色点的个数,根据非肤色点个数的多少就能确定眼睛的水平区域,其范围为A和B。最后,在人脸上半部分区域和A、B区域相交区域内分别进行垂直方向的投影,得到的第一个峰值附近的区域为C、D。然后在C与A以及D与B确定的两个矩形区域内,对黑点进行区域膨胀,可以得到眼睛部分大致轮廓和左右眼角,最后取黑点的坐标的平均值作为瞳孔的位置,如图3-2所示。

  图3-2 眼睛特征点的提取

  这样,通过上述原理,就能确定四个眼角和瞳孔中心的位置。本文通过十字标号标记眼睛位置,效果如图3-3所示。

  图3-3 眼睛标识图

  2.4.2 嘴巴特征的提取与标定

  完成眼睛特征确定后,对于嘴巴特征的提取与标定就相对比较简单,主要是将眼睛作为参照标准,根据先验的知识位置和嘴巴的颜色特点,最终将特征信息记录下来。

  人脸图像中另一个重要的、具有明显特征的器官就是嘴巴,考虑了唇色和位置这两个特征信息。由于在人脸部区域内,人脸的唇色与肤色的有较大的差别。因此,在检测完成的人脸区域内,如果某一个像素点满足了如下关系限制条件,如式(3-1),那么这个点极有可能就是嘴唇上的点。

(3-1)

  考虑到与眼睛的位置关系,由先验知识可知,两只眼睛的瞳孔间距为1,嘴唇中心到两只眼睛中心的距离为1.0到1.3左右,在满足这个距离的区域范围内采用类似定位眼睛的方法,进行区域膨胀,最后就能确定左右嘴角和嘴唇中心的位置,并用十字标号标记眼睛位置。效果如图3-4所示。

  图3-4 嘴巴标识图

  2.4.3 鼻子特征的提取与标定

  对鼻子特征的提取,依然是根据与眼睛的位置关系及本身的特性。以两只眼睛瞳孔间距为1来计算,从鼻尖到两只眼睛中心的距离为0.6到1。由于鼻孔在人脸中属于非肤色区域,而且颜色较深,所以在距离两眼中心以下0.6到1的距离邻近处搜索颜色较深的区域,并对该区域进行膨胀处理,就能得到左右两个鼻孔的位置。而通常人的鼻尖比较尖,并且在图像中亮度也比较大。所以在两鼻孔中间位置附近查找亮度最高的点,即为鼻尖所在的位置,并用十字标号标记眼睛位置。效果如图3-5所示。

  图3-5 鼻子标识图

  人脸识别技术

  人脸识别是将静态图像或视频图像中检测出的人脸图像与数据库中的人脸图像进行对比,从中找出与之匹配的人脸的过程,以达到身份识别与鉴定的目的。目前,人脸识别是图像分析与理解的一种最成功的应用,因其在商业、安全、和身份认证等方面应用广泛,以及对人脸识别可行性技术的多年研究,使其越来越受人们重视。

  根据人脸表征方式的不同,常用的识别方法可分为以下三种:基于几何特征的识别方法、基于模板匹配的识别方法和基于统计的识别方法,下面对这几种方法做详细介绍。

  3.1 基于几何特征的识别方法

  几何特征法应用于人脸识别中。常用的几何特征有人脸的五官,如眼睛、嘴巴和鼻子等局部形状特征、脸型特征以及五官分布的几何特征等。在提取特征时主要通过人脸面部拓扑结构的先验知识。在基于几何特征的识别中,识别总是特征矢量之间的匹配,其中基于欧式距离的识别是最常用的方法。人脸由三庭五眼等特征构成,正因为这些特征在形状、大小或结构上的各种差异才使得人与人不同,因此对这些特征的形状和结构关系的几何描述,可以作为人脸识别的重要依据。当采用几何特征进行正面人脸识别时,一般是通过提取眼睛、嘴巴和鼻子等重要特征点的位置和几何形状作为分类依据。

  基于几何特征的识别方法具有存储量小、对光照不敏感、简单且容易的优点。但是几何特征的识别方法对图像的要求较高,而且提取稳定的特征点较为困难,对强烈的表情变化和姿态变化,其鲁棒性较差。

  3.2 基于模板匹配的识别方法

  模板匹配法是一种经典的模式识别方法,充分了利用人的纹理结构和灰度特征。识别方法就是将待识别的人脸图像与数据库中的所有模板进行比较,找出最相近的人脸。

  此方法在匹配时,要求两幅图像上的目标要有相同的尺度、取向和光照条件等,所以预先要进行尺度归一化和灰度归一化。最简单的人脸模板是将人脸看成一个椭圆,检测人脸也就是检测图像中的椭圆。另一种方法是将人脸用一组独立的小模板表示,如眼睛、嘴巴和鼻子等。但这些模板的获取必须利用各个特征的轮廓,而传统的基于边缘提取的方法很难获得较高的连续边缘。即使获得了可靠度高的边缘,也很难从中自动提取所需的特征量。后来改用弹性模板的识别方法。弹性模板是一组根据特征形状的先验知识来设计可调参数的方法。这种参数是由能量函数来决定的,首先利用图像的边缘、峰值、谷值和强度信息以及特征形状的先验知识设计能量函数,然后将参数向能量函数减小的方向调整,当能量函数达到最小时,这组参数所对应的模板形状为最符合的特征性状。基于弹性模板的方法速度较慢,而且要求的内存也大。

  3.3 基于统计的识别方法

  基于统计的人脸自动识别方法,其包括特征脸方法和隐马尔可夫模型方法。

  3.3.1 特征脸方法

  特征脸方法是从主成分分析(PAC)导出的一种人脸识别和描述技术。PCA实质上是K—L展开的递推实现。K—L变换是图像压缩技术中的一种最优正交变换,人们将它用于统计特征提取,从而形成了子空间法模式识别的基础。若将K—L变换用于人脸识别,则需要假设人脸处于低维线性空间,由高维图像空间进行K—L变换后,可得到一组新的正交基,由此可以通过保留部分正交基来获得正交K—L基底。如将子空间对应特征值较大的基底按照图像阵列排列,则可以看出这些正交基呈现出人脸的形状。

  特征脸方法把人脸图像作为一个整体来编码,而不关心眼睛、嘴巴和鼻子等单个特征,从而大大降低了识别的复杂度。此方法的主要缺点是目前还没有一个快速的求解特征值与特征向量的算法,每一张新脸入库,都要重新计算特征值与特征向量,这样费时较多。优点是图像的原始灰度数据可直接用来学习与识别,不需要任何初级或中级处理并且不需要人脸的反射知识。

  3.3.2 隐马尔可夫方法

  隐马尔可夫模型(HMM)是用于描述信号统计特征的一组统计模型。HMM使用马尔可夫链来模拟信号统计特征的变化,而这种变化是间接地通过观察序列来描述的。在HMM中,节点表示状态,有向边表示状态之间的转移,一个状态可以有特征空间中的任意特征,对同一特征,不同状态表现出这一特征的概率不同。

  综合各种因素,该设计采用了基于几何特征的识别方法。因为在特征提取阶段,已经将人脸中的重要特征点眼睛、嘴巴和鼻子的信息记录下来,所以在识别阶段,充分利用记录的特征信息构建关系。根据两只眼睛和嘴巴三个点构成的三角形关系,利用欧式距离分别求出其各个边的长度,指点两人比较时的误差。在分别打开两个图像并依次完成系统中的操作后,就可以进行匹配,判断是否为同一人脸。

  人脸检测与识别系统的实现

  4.1 人脸检测与识别系统的组成

  4.1.1 系统总体结构图

  人脸检测与识别系统主要包括人脸检测与定位模块、人脸特征提取模块、人脸识别模块。系统总体结构图如图4-1所示。

  图4-1 人脸检测与识别系统总体结构图

  人脸检测与定位模块:

  人脸检测与定位模块是整个系统的核心模块,其主要包括相似度计算、二值化处理、垂直投影和水平投影这四个功能。通过对打开的BMP图像进行这些处理之后,最终就可以确定人脸的位置。

  2、人脸特征提取模块:

  人脸特征提取模块主要是对人脸的典型特征,如眼睛、鼻子和嘴巴进行特征提取。其过程是首先通过对两眼之间的距离进行提取来确定两眼的位置,然后由眼睛的位置来确定嘴巴和鼻子的位置,最后对眼睛、嘴巴和鼻子进行标注。

  3、人脸识别模块:

  人脸识别模块主要是将人脸区域中的特征信息记录下来,通过对依次打开的两幅图像的特征信息进行对比,从而检测两幅图像是否为同一人脸。

  4.1.2 系统设计流程图

  对给定的静态图像,首先对其进行相似度灰度图处理,再在灰度图的基础上进行二值化处理,并对二值化图像分别进行水平投影与垂直投影,这样就能在图像中标记出人脸区域。在人脸特征点提取中,分别对人脸区域中得眼睛、嘴巴和鼻子进行特征提取,并且将特征信息记录下来,通过对依次打开的两幅图像的特征信息进行对比,看是否为同一人脸。流程图如4-2所示。

  图4-2 系统流程图

 2/3     1 2 3  
Copyright © 2008-2020 学术论文网 版权所有 粤ICP备16093775号