admin管理员组

文章数量:1531278

2023年12月17日发(作者:)

人脸识别系统中人脸检测模块的研究与实现

内容摘要:人脸检测是计算机视觉与模式识别领域非常活跃的研究课题,在身份验证、人机界面、可视通信、虚拟现实、公安档案管理、基于内容的图像检索等很多方面都有着广泛的应用。

作为人脸识别的重要的第一步,人脸检测所做的工作是将人脸从图像背景中检测出来,它是人脸识别、视点跟踪和人脸图像压缩等应用中的重要环节。由于受图像背景、亮度变化及人的头部姿势等因素的影响,使得人脸检测成为一项复杂的、具有挑战性的研究课题。

本文论述了人脸检测技术的基本概念,分析和探讨了多种人脸检测方法的基本理论,对人脸检测方法进行了深入的研究和讨论,实验表明本文研究的人脸检测方法是合理的,具有一定的理论价值与实用价值。本文的研究工作主要包括:

基于AdaBoost学习算法,从一个较大的特征集中选择少量关键的haar-like特征,产生一个高效的强分类器。再用级联方式将单个的强分类器级联成为一个更加复杂的级联分类器。针对AdaBoost算法在训练过程中出现的退化问题及样本权重扭曲的现象,本文对样本权重的更新规则作出了适当的调整,在一定程度上避免了退化现象,提高了分类器的性能。实验结果表明,新的人脸检测器检测效果显著加强。

关键词:人脸检测 AdaBoost算法 Haar特征

Research and implementation of face detection module in face

recognition system

Abstract:Human face recognition and detection are the most active and

chaallenging tasks for computer vision and pattern can be widely

applied to such fields as personal identification,human-computer

interface,visual communication,criminal archive administration,content-based

image retrieval,etc.

As the first step of face recognition,the task of face detection is to detect

human faces from background of r,face detection result is usually

affected by the background,brightness or head posture of image and so on,which

makes the process of detection more complicated.

A great amount of literatures,surveys and research papers concerning

up-to-date techniques of face detection and face recognition are and

hot issues about face detection are discussed in this

experiments indicate that the methods of face detection proposed in this paper

are reasonable,showing a certain degree of theoretical and practical

research work of this paper mainly about:

Using face detection method based on AdaBoost learning algorithm,which

selects few key haar-like features from a large set of features,to build a robust

cascade ng on the disadvantages of classical AdaBoost

algorthm,this paper analyses the issues of overfitting and distortion of sample

weights in training process and come up with a new method to avoid the phenomenon

of experimental results show that the new method will not lead

to overfitting like classical AdaBoost often does,and it will reduce false alarm

rate while holding a high detection rate.

Keywords:

face detection adaboost algorithm haar feature

目 录

前言 ..................................................................... 5

一、人脸检测知识介绍 ..................................................... 5

(一)人脸检测基本概念 .................................................. 5

(二)人脸检测技术的发展背景 ............................................ 6

(三)人脸检测的分类 .................................................... 7

(四)人脸检测方法 ...................................................... 7

1.基于统计模型的方法 ................................................. 7

2.基于范本匹配的方法 ................................................ 10

3.基于特征的方法 .................................................... 11

二、AdaBoost算法相关知识概述 ............................................ 12

(一)Boosting算法简介 ................................................ 12

(二)AdaBoost算法简介 ................................................ 12

三、Haar型特征和积分图像 ................................................ 13

(一)Haar型特征 ...................................................... 13

(二)一种组合式新型特征 ............................................... 15

(三)检测器内特征数计算 ............................................... 17

四、基于AdaBoost算法的人脸检测 ......................................... 20

(一)AdaBoost算法 .................................................... 20

(二)AdaBoost算法举例 ................................................ 21

1.弱分类器 .......................................................... 21

2.强分类器 .......................................................... 22

五、系统的设计与实现 .................................................... 24

(一)VC++环境的安装与配置 ............................................. 24

1.步骤 .............................................................. 24

2.配置 .............................................................. 24

(二)OpenCV的介绍安装和配置 .......................................... 24

1.介绍 ............................................................... 24

2.安装 ............................................................... 25

3.配置 ............................................................... 25

(三)总体设计 ......................................................... 26

1.人脸识别模块的主要功能 ............................................. 26

2.系统体系结构分析 ................................................... 26

(四)训练部分的设计 ................................................... 27

(五)识别部分设计 ..................................................... 29

(六)其他功能模块的设计 ............................................... 29

(七)系统截图 ......................................................... 30

六、结束语 .............................................................. 32

(一)工作总结 ......................................................... 32

(二)展望 ............................................................. 33

七、致谢 ................................................ 错误!未定义书签。

附录 .................................................... 错误!未定义书签。

参考文献 ................................................................ 34

人脸识别系统中人脸检测模块的研究与实现

前言

人脸检测是作为人脸识别的一部分进行研究的,是近些年研究的难点。人脸是一类具有相当复杂的细节变化的自然结构目标,对于这类目标的检测是一个极富挑战性的课题。人脸检测问题的难度在于,主要在于图像或视频中人脸模式的广泛差异性:某些局部特征具有随机性(如眼镜、胡须、发型等),这些都给人脸检测带来难度。来自身份、光照、观察角度等的变化,以及装饰物和部分遮挡等影响,有时使人脸与背景区别不大,给检测带来一定的难度。因此,如果能够找到解决这些问题的方法,成功构造出人脸的检测系统,将会为其它具有类似特征和模式的检测问题提供重要的提示。然而,对于机器来讲,人脸又是一个有其艰巨而又困难的问题。因为人脸检测技术在检测过程中计算量在,算法复杂,即使一台高性能的计算机也往往无法负担一个大规模的人脸库的检测需求,更何况检测后的识别等其它工作了。

经过不断的研究和发展,目前已经实现了很多算法解决了一些计算量问题。迄今为止,人脸检测的方法不断的被提出。大体上可以分为如下几大类:若干统计模型的方法、基于范本匹配的方法、基于器官特征的方法等。但目前最流行的是Viola等提出的基于积分图像的Adaboost算法,它是目前效率最高的一种算法。

目前对人脸检测研究的成果是:不但能对静态图像中的人脸进行单个人脸、多个人脸、人脸的多态检测,而且能够对动态(视频文件或录像)图像的人脸进行检测和跟踪。但对动态检测还是初级阶段,还有很多问题有待解决。本文主要研究静态的人脸检测,若输入图像为动态图像序列,则可以利用与人脸或人脸的器官相对于背景的运动来检测人脸,比如利用眨眼或说话等动作的探测来实现人脸与背景的分离。

本文主要研究基于Haar特征的AdaBoost算法,改进这种算法中的特征来进行人脸检测。

一、人脸检测知识介绍

(一)人脸检测基本概念

人脸检测(Face Detection)是指在输入图像中确定所有人脸(如果存在)的位置、大小和姿态的过程。人脸检测系统输入的是可能包含人脸的图像,输出的是图像中是否存在人脸和人脸数目、位置、尺度等信息的参数化描述。人脸检测其实只是目标检测的一个典型的应用实例。而目标检测的目的是为了目标识别,目标识别的其它应用包括:手写或印刷体文字的分割和、图文表混合信息的分类和识别、在躁声环境中检测和识别特定

说话人的身份、在航海、航空红外照片中进行自动目标的识别。对人脸及其特征检测的研究有益于相似特征提取及目标检测和识别问题的研究。人脸检测任务的完成涉及从复杂的背景中分割、抽取、验证人脸区域和可能乃至的人脸特征(如眼睛、唇色等)。成功的人脸检测系统应能处理实际存在的光线、人脸方向和距离照相机远近变化等各种情况。

(二)人脸检测技术的发展背景

人脸检测没什么近些年发展的如此迅速,主要原因有正面两种:一是人机交互方式的发展,二是生物特征识别的发展。首先,人脸检测技术的提出是人机交互发展的需要。人机交互方式,经过第一代的单一文本形式到第二代的图形用户接口的发展,正在向以人为本的方向发展。人们提出了智能人机接口的概念,希望计算器具有或部分具有人的某些智能内同计算机的交流变得像人与人之间的交流一样轻松自如。

用户是人机界面中的主体,计算机作为一种“智能体”参与了人类的通讯活动。在处理人——机关系时,根据“人为中心”的思想,应当康健老虎人的因素。因此,智能接口系统要解决的首要问题是计算机如何感知使用者的存在,这是人机交互的前提。脸部是人类携带信息最丰富的部位,是人类的重要特征。从认知角度讲,人们在视觉信道层次上感知和识别人的首要信息载体就是人脸。使计算器具有感知到人是否存在的视觉功能,这项技术就是人脸检测。

其次,在生物特征识别技术中,作为人脸自动识别系统的先决条件,人脸检测技术有着十分重要的作用。在现代社会中,传统的身份鉴定方式(例如口令、信用卡、身份卡等),存在携带不便、容易遗失、或者由于使用过多或不当而损坏、不可读和密码易被破解等诸多问题,已不能很好地满足各种安全需要并显得越来越不适应现代科技的发展和社会的进步。因此,人们希望有一种更加可靠的办法来进行身份鉴定;生物特征识别技术给这一切带来可能。生物特征识别技术是通过利用个体我有的生理和行为特征来达到身份识别和个体验证目的的一门科学。尽管人们可能会遗忘或丢失他们卡片或忘记密码,但是却不可能遗忘或丢失他们的生物特征如人脸、指纹、虹膜、掌纹等的特征或声音等。

在生物特征识别技术中,近年来以人脸为特征的识别技术发展十分迅速。相对而言,人脸识别是一种更直接、更方便、更友好、更容易被人们接受的非侵犯性识别方法。作为人脸自动识别系统的第一步,人脸检测技术有着十分重要的作用,它为后续的人脸分类提供了待识别人脸的具体信息。

(三)人脸检测的分类

人脸检测问题所包含的内容十分广泛,从不同的角度可以有多种分类方法如(表1)。

表1 人脸检测的分类

分类依据

图像来源

颜色信息

人脸姿态

人脸个数

图像复杂程度

彩色图像

正面

单人人脸检测

简单背景人脸检测

(四)人脸检测方法

类别

静态图像

动态图像

灰色图像

多姿态

未知人脸个数的检测

复杂背景人脸检测

经过了几十年的研究发展,人们对人脸检测的学习和研究主要形成以下几大类的方法:

1.基于统计模型的方法

总的来说,这种方法遵循一种统一的模式,即首先通过学习,在大量训练样本集的基础上建立一个能对人脸和非人脸样本进行正确识别的分类器,然后对被检测图像进行全局扫描,用分类器检测扫描到的图像窗口中是否包含人脸。若有,则给出人脸所在的位置。

采用这种检测模式的理论依据是:人脸具有统一的结构模式(都是由眉毛,眼睛,鼻子和嘴唇等人脸器官构成),如果把所有的图像集看作一个高维线性空间,那么整个人脸图像集仅对应于其中的某个子空间。于是可以通过检验待测图像窗口是否落在这个子空间中来是否为人脸。因此,可以通过大量的人脸和非人脸样本来建立一个分类器,使它能够正确分辨这两种不同的图像模式,再利用训练好的分类器在未知的图像中检测人脸。采用这种检测策略的关键在于如何选取大量的具有代表性的图像样本 。特别是非人脸图像样本训练分类器。

具体分类器的实现可以采用不同的策略,下面就介绍几种方法:

(1)人工神经网络

MIT(麻省理工大学)的学者首先对人脸样本集和非人脸样本集聚类,以测试样本与人脸样本集和非人脸样本集的子类之间的距离作为识别特征微量,利用多层感知(MLP)网络作为分类器。CMU的研究人员直接以图像作为神经网络的输入,设计了一个具有

独特结构的适用于人脸特征的神经网络分类器,并且通过前馈神经网络对检测结果优化。他们工作的共同之处是都采用了自调整(bootstrap)的学习原理,对分类器一边训练,一边测试,并把在测试过程 中的错误分类结果作为反倒样本加入学习过程,从而减少了样本集的规模,并表叔的提高了神经网络的分类性能。

特别值得一提的是CMU的Rowley等的工作,他们使用了多个ANN检测多姿态的人脸,算法的框架如图1所示。图中显示了两类ANN:一个位姿检测器用于估计输入窗口中人脸的位姿、三个检测器分别检测正面、半侧面和侧面的人脸。使用经过对准和预处理的“人脸”样本以及采用“自举”方法收集分类器错分的样本作为“非人脸”样本训练各个ANN,进一步修正分类器。检测时对输入图像中所有可能位置和尺度的区域首先使用位姿检测器估计人脸位姿,经校准和预处理后送入三个检测器中,最后对检测器的分类结果进行仲裁。

正面人脸检测

窗口提取

位姿估计

预处理

结果仲裁

检测

结果

侧面人脸检测

半侧面人脸检测

图1 Rowley的基于人工神经的人脸检测框架

在上述框架下,Rowley等对正面端正人脸和正面旋转人脸的检测单独进行了研究。对于正面端正的人脸,仅使用了正面人脸检测ANN,是一种三层前向网:输入层对应20*20像素的图像区域;隐层节点分为对应不同人脸区域的若干组,与输入层部分连接;ANN输出1到-1区间的值表示这个区域是否为人脸。Rowley等使用相同的“人脸”样本和不同“自举”过程收集的“非人脸”多个正面人脸检测ANN,对它们的检测结果进行仲裁,以进一步减少错误报警。对于正面旋转人脸的检测使用了旋转角度检测器及正面人脸检测ANN,并使用相似的多ANN仲裁方法降低错误报警。

(2)支持向量机

支持向量机此方法由Boser、Guyon、Vapnik等人在COLT-92上首次提出。作为一种分类算法,广泛应用于模式识别的各个分支。支持向量机方法是建立在统计学习理论的VC(Vapnik Cherovnenkis)维理论和结构风险最小代原理基础上的,根据有限的样本信息在模型的复杂性和学习能力之间寻求最佳斤斤折衷,以期获得最好的推广能力。传统

的使用经验风险最小代的分类训练方法,例如神经网络,人间缺少严密的数学解释。而支持向量机使用结构风险最小代来寻找最优类面,在数学上,证明了这等价于寻找最小真实风险。所以支持向量机在有限样本的条件下的推广能力很好。

支持向量机通过构造风险最小的分类面来解决一个二类问题,这相当于使训练集中的最靠近分类的点距离分类面最远。这些距离分类面最近的点叫做支持向量。

如图2所示这是一个二维线性可分的例子,灰色的区域表示所有可能将数据正确分类的分类面的集合。在图3中最优分类面距离支持向量的距离最远。

图2 图中的灰色区域表示所有可以把数据正确分类的分类面的集合

图3 最优分类面f=0到最近的点的距离最远,这些距离分类面最远的点叫做支持向量

(3)基于隐马乐可夫模型的方法

隐马乐可夫模型是用于描述信号统计我的一组统计模型。HMM使用隐马乐可夫链来模拟信号统计特征的变化,而这种变化又是间接地通过观察序列来描述的,因此,隐马乐可夫过程是一个双重的随机过程。在HMM中,节点表示状态,有向边表示状态之间的转移,一个状态可以具有特征空间中的任意特征,对同一特征,不同状态表现出这一特征的概率不同。由于HMM是一个稀有统计模型,对于同一特征序列,可能会对应于许多序列,特征序列与状态序列之间的对应关系是非确定的。这种模型对于状态序列来说是隐的。外界只能看到各个时刻的输出值,故称为隐马乐科夫模型。

HMM的打分、解碼和训练相应的算法是前向算法、Viterbi算法和前向后向算法。它把人扔模式看作参数化的随过程,把人面部的额头、眼睛、鼻子、嘴巴和下巴等器官所在部位看作随机过程的状态,通过对符合人脸各器官公布的随机过程 的检测来实现对人脸检测。这正好是隐马乐可夫模型容易做到的。

Nefian等采用隐马乐可夫模型检测人脸。检测区域中的每个子区域采用主要的Karhunen-loeve变换系数作为观察适量,通过Baum-Welch算法和Viterbi分割算法获得HMM的模型参数,根据检测区域的观察序列的输出概率进行判决。

2.基于范本匹配的方法

早期的基于范本匹配的方法是这样做的:首先建立一个标准的人脸模板,由包含局部人脸特征的子模板构成,然后对一幅输入图像进行全局搜索,对应不同尺度大小的图像窗口,计算与标准人脸模板中不同部分的相关系数,通过预先设置的阈值来判断该图像窗口中是否包含人脸。Poggio利用基于模板的方法来定位眼睛的位置,他们把标准的眼睛模板调整为5个不同的尺寸,然后在输入图像中找寻眼睛。这种简单范本匹配的方法易于实现,但是也存在着缺点:图像噪声对检测结果影响很大,因此需要对输入图像做适当的预处理;标准模板的大小是人为设定的,因此不能动态检测眼睛的位置。下面是2种范本匹配方法。

(1)固定模板匹配法

根据人脸的先验知识先设计出人脸轮廓模板以及各个器官特征的子模板,然后通过计算样本图像中区域和人脸轮廓模板的相关值来检测出人脸候选区域,最后利用器官特征子模板验证上一步检测出的人脸候选区域是否包含人脸。但由于人脸特征的变化很大,很难得到有效的模板来表示人脸的共性,也不能有效处理尺度、姿态和形状的变化。这种方法目前已不多见,但人们在有的系统中将其作为粗检测或预处理的手段。

(2)变形范本法

该算法主要思想是定义一个可变形的参数模板和一个能量函数来描述特征,通过一个非线性最优化方法求得能使能量函数最小的参数模板,此模板即被认为是所求特征的描述。这种方法充分考虑到人脸是变形体的特点,稳定可靠,而且与姿态和光照无关,但仍然存在能量函数的系数难以适应一般情况和计算量巨大的问题。由于基于模板的方法比较成熟,因此其实现起来比较简单,但是这个方法对于人脸检测来说,效率并不高。

3.基于特征的方法

基于特征的人脸检测方法是通过检测出不同的人脸面部特征的位置,然后根据它们之间的空间几何关系来定位人脸。主要分为基于器官特征的方法和基于颜色纹理的方法。

(1)基于器官特征的方法

这种方法首先提取人脸器官(眼、鼻、唇等)图像特征(包括几何、空间、灰度等各种度量)。然后通过器官的位置和它们之间的几何关系来检测人脸。虽然人脸因人而异,但都遵循一些普遍适用的规则,即五官分布的几何规则。检测图像中是否有人脸,即是否存在满足这些规则的图像块。这种方法一般是先对人脸的器官或器官的组合建立模板,然后检测图像中几个器官可能分布的位置,对这些位置点分别组合,用器官分布的知识规则进行筛选,从而找到可能存在的人脸。

(2)基于颜色纹理的方法

主要利用人脸皮肤表面颜色和纹理具有一定的稳定特性(不依赖于面部的细节特征,对于旋转、表情等的变化情况都能保持不变)来进行人脸检测。人脸的肤色在颜空间中的分布相对比较集中,况且大多数和背景物体的颜色相区别利用这个特点可以检测人脸。这种方法的最大优点是对姿态变化不敏感。用彩色信息检测人脸的关键是合理选择色度坐标。常用的方案是将彩色的R、G、B分量归一化。目前人们研究更多的是如何提取彩色的色度信息,即将R、G、B彩色空间转化为其它彩色空间,以突出色度信息。其它模型主要有YUV、YIQ,、XYZ、YCbCr等等,其中YCbC是使用最多的一种,YCrCb是YUV模型中的一种,是一个色差模型,利用了人对色度远没有对亮度敏感而建立的,更符合人眼的视觉特点。其中,Y是亮度信号,CrCb是色度或彩度信号。利用肤色特征检测出的人脸区域可能不够准确,但如果在整个系统实现中作为人脸检测的粗定位环节,它具有直观、实现简单、快速等特点,可以为后面进一步进行精确定位创造良好的条件,以达到最优的系统性能。各种方法各有优、缺点,由于在单通道上的可靠性是有限的,研究者们借助多种方法,交叉使用。取得了更好的效果。例如,国内的

清华大学的研究人员对人类肤色进行了较为系统的分析,并提出了基于颜色和特征的自适应人脸检测的方法。他们还提出一种基于多模板匹配的单人脸检测方案,但是检测速度并不适应实时应用。哈尔滨工业大学的研究者实现了一个复杂背景下的多级结构的人脸检测与跟踪系统,其中,采用了模板匹配、特征子脸、彩色信息等人脸检测技术,能够检测平面内多姿态正面人脸,并可以跟踪任意姿态的运动的人脸。研究实践也表明,这种交叉使用能够得到更高的检测效率。

二、AdaBoost算法相关知识概述

(一)Boosting算法简介

Boosting是机器学习(ML)中的一个概念,Boosting方法源于PAC(Probably

Approximately Correct,概率近似正确)学习模型的理论分析。它是由Valiant于1984年首先提出来的。Kearns和Valiant提出了强可学习(strong learning)和弱可学习(weaklearning)的概念。在PAC学习模型中,若存在一个多项式学习算法来识别一组概念,并且识别正确率很高,那么这组概念是强可学习的;而如果学习算法识别一组概念的正确率仅比随机猜测略好,那么这组概念是弱可学习的;Kearns和Valiant提出了弱学习算法与强学习算法的等价性问题,即是否可以将弱学习算法提升成强学习算法。如果两者等价,那么在学习概念时,我们只需要找到一个比随机猜想略好的方法就可以将它提升为强学习算法。1990年,Schapir发表了第一个boosting方法,这种算法可以将弱分类规则转化成强分类规则。Freund随后对其做了改进提出了更鲁棒的方法BBM(boost-by-majority)方法。Boosting方法在训练中先后产生一系列学习机,各个学习机所使用的训练集都是从总训练集提出来的一个子集,各个样本是否出现在该子集中取决于此前产生过的学习机的表现,已有学习机判断出错的样本将以较大的概率出现在新的训练子集中。这使得其后产生的学习机更加专注于处理对已有学习机来说较为困难的样本区分问题。Boosting方法可以增强给定算法的泛化能力,但是还存在两个缺点:该方法需要知道弱学习机学习正确率的下限,而这在实际问题中是很难做到的;其次,这一方法可能导致后来的学习机过分集中于少数特别困难的样本,导致表现不稳定。目前有很多改进版的Boosting方法,下面一节就将介绍AdaBoost算法。

(二)AdaBoost算法简介

AdaBoost算法是一种分类器算法,是由Yoav Freund和Robert ESchapire在1995年提出的其基本思想是利用大量的分类能力一般的简单分类器(weaker classifier)通过一定方法迭加(boost)起来,构成一个分类能力很强的强分类器。理论证明,只要每个简单分类器

分类能力比随机猜测要好,当简单分类器个数趋向于无穷时,强分类器的错误率将趋于零。AdaBoost用于人脸检测时,从人脸中抽取大量的一维简单特征。这些简特征都有一定的人脸和非人脸区分性。最终系统使用数千个一维简单分类器,组合起来达到很好的分类效果。下面用文字形式陈述一下AdaBoost算法。首先,利用样本(大约几百幅样本图片)的Haar特征进行分类器训练,得到一个级联的Boosted分类器。训练样本分为正例样本和反例样本,其中正例样本是指待检人脸样本,反例样本指其它任意片,所有的样本图片都被归一化为同样的尺寸大小(例如20×20,24×24)。分类器训练完以后,就可以应用于输入图像中的感兴趣区域(与训练样本相同的尺寸)的检测。检测到人脸区域分类器输出为1,否则输出为0。为了检测整副图像,可以在图像中移动搜索窗口,检测每一个位置来确定可能的目标。为了搜索不同大小的目标物体,分类器被设计为可以进行尺寸改变,这样比改变待检图像的尺寸大小更为有效。所以,为了在图像中检测未知大小的目标物体,扫描程序通常需要用不同比例大小的搜索窗口对图片进行几次扫描。分类器中的“级联”是指最终的分类器是由几个简单分类器级联组成。在图像检测中,被检窗口依次通过每一级分类器,这样在前面几层的检测中大部分的候选区域就被排除了,全部通过每一级分类器检测的区域即为目标区域。目前支持这种分类器的boosting技术有四种:DiscreteAdaboost,RealAdaboost,GentleAdaboost and Logitboost。"boosted"即指级联分类器的每一层都可以从中选取一个boosting算法(权重投票),并利用基础分类器的自我训练得到。

三、Haar型特征和积分图像

(一)Haar型特征

将矩形作为人脸检测的特征向量,称为矩形特征。在给定有限的数据情况下,基于特征的检测能够编码特定区域的状态,而且基于特征的系统比基于象素的系统要快得多。矩形特征对一些简单的图形结构,比如边缘、线段比较敏感,但是其只能描述特定走向(水平、垂直、对角)的结构。脸部一些特征能够由矩形特征简单地描绘,例如,通常眼睛要比脸颊颜色更深;鼻梁两侧要比鼻梁颜色要深;嘴巴要比周围颜色更深。如图4。

图4 (2)和(3)是(1)与给定矩形特征的匹配

Haar特征是Viola等提出的一种简单矩形特征,因类似于Haar小波而得名。Haar型特征的定义是由两个或多个全等的矩形相邻组合而成,特征模板内有白色和黑色两种矩形(定义左边开始的为白色,紧挨着的为黑色,然后依次交错),并将此特征模板的特征值定义为白色矩形像素和减去黑色矩形像素和。可见,它反映了图像局部的灰度变化。Haar型特征值的计算是通过积分图像实现的。有关积分图像的知识将在下一节的文章中介绍。本文的算法主要利用下面的几种Haar型特征。实验证明:这种特征选取方法的训练速度虽然不快,但是检测效率很高。

图5 Haar特征的几种主要特征

图5中1的a、b、c、d为边缘特征。2的a、b、c、d为线形正面特征,e、f、g、h为多态特征。3的a、b为圆心环绕特征。4的为特定方向特征。

图5的1和3称做双矩形特征(two-rectangle feature),2和4分别称做三矩形特征(three-rectanglefeature)和四矩形特(four-rectangle feature)。其中双矩形特征定义为图中相邻两个矩形内象素颜色之和的差。三矩形特征定义为两边的两个矩形减去中间的矩形中象素的颜色值之和。

(二)一种组合式新型特征

由于以前的研究都提出的特征中包含人脸苟非吾之所有特征的部分比较少,例如图6中(1)图就只横向描绘人脸的眼睛和鼻子特征,(2)图就只纵向描绘人脸眼睛和鼻子特征。它们包含的人脸基本特征比较少,虽然特征构建比较简单,但这种特征在人脸检测上需要多次检测确认,而且检测率也没有达到人们预计的那么好。为了更好的解决这种特征的不足,这里我提出一种新的特征,这种特征是上面某些特征的组合形式,如下的2种:

图6 提出的新特征

这种特征主要是根据人脸的特征分布,比如人脸的眼睛,鼻子和嘴的特征分布。如下面的人脸图就可以用图7中的(1)进行检测:

图7 特征与图像的匹配

如图7中(1)为待检测人脸图像,(2)为所用到相应的特征图。其中图(2)中1可以看作是图(1)中人的右眼,2可以看作两眼之间的地方,3可以看作人的左眼,4可以看作人的鼻子部分,5可以看作人的嘴。 这样整个特征就和人脸基本特征吻合。也比前人提出的特征更接近人脸特征分布,按照这种划分,我们可以把图7中的(2)看作倾斜时的人脸检测特征。

这种特征中的矩形要比前人提出的特征中的矩形多,计算起来更复杂一些,因为它的形状类似于图形处理中做卷积的3阶矩阵,所以可以考虑一些,因为它的形状类似于图形处理中做卷积3阶矩阵,所以可以考虑把它看做3阶矩阵。不过这是我做了以下修改,就是把下2层矩阵元素分别看做一个整体处理,这样应用在卷积方面的知识也可以拿到这里来用。

由于开始构建这种特征时,就是把前人的两种特征混合使用,所以在计算这种特征的特征值时,就可以先分别求出构建它的两种基本特征的特征值,然后把两个特征值做和,最后得到新特征的特征值。

虽然新特征在组织上要比以前的特征复杂,但是更接近人脸器官特征的分布。对人

脸检测更直观,更直接。

(三)检测器内特征数计算

找出窗口中所有特征,是进行弱分类训练的基础。对于一个nn的检测器而言,其内部的特征矩形数的计算如下:

首先介绍一下条件矩形:

图8 计算nn检测器所有可能的矩形的数量

对于nn窗口,我们只需要确定矩形左上顶点A(x1,y1)和右下顶点B(x2,y2),即可以确定一个矩形;如果这个矩形还满足下面两个条件(称为(s,t)条件,满足(s,t)条件的矩形称为条件矩形):

x方向边长必须能被自然数s 整除(能均等分成s段)

y方向被边长必须能自然数t整除(能均等分成t段)

则这个矩形最小尺寸为st或ts,最大尺寸为[n/s]*s[n/t]*t或[n/t]*t[n/s]*s (其中[]为取整运算)。

接下来我们计算条件矩形的数量,我们通过下面两步就可以定位一个满足条件的矩形:

确定A(x1,y1):

x1{1,2,....ns,ns1}

(1)

y11,2,...nt,nt1

(2)

确定A点后,B点只能在图中阴影内(包括边缘)取值,因此有:

x2X{x1s1,x12s1,......x1(p1)s1,x1ps1}

(3)

y2Y{y1t1,y12t1,......y1(q1)t1,y1qt1}

(4)

其中p[(nx11)s],

q[(ny11)t]。并且Xp,Yq

由上分析可知,在nn子窗口中,满足(s,t)条件的所有矩形的数量为:

m(s,t)ns1nt1pq

x11y11ns1nt1

x11y11[nx11ny11][]

stnx11nt1ny11

[][]

stx11y11nn1s1nn1t1]......[]1}{[][]......[]1}

(5)

{[][sssttt

ns1下面根据以上公式计算子窗口的特征矩形数量,实际上,(s,t)条件描述了矩形特征的特征,下面列出了不同矩形特征对应的(s,t)条件:

图9 5种特征模板的(s,t)条件

所以nn窗口中所有5种特征模板的特征总数量n,就是分别满足5个(s,t)条件的矩形特征的数量的总和即:

n(n1,2)(n2,1)(n1,3)(n3,1)(n2,2)

(6)

特别的,如图9所示,由于特征模板1、2、3和4具有旋转对称性,则可以进一步简代为:

n2(n1,2)2(n1,3)(n2,2)

n2(n1,2)2(n1,3)(n2,2)

(7)

对于此新特征,要计算特征矩阵数目就不能用这种方法计算。不过可以把它看作(3,3)这种情形。因为每个新特征矩形数目要比(3,3)特征第矩形数目少4个矩形,所以可以用如下方法计算其特征数目:

n1(n3,3)4n1

n1(n3,3)5

(8)

换个说法,我们把这种形式看作是(3,3)特征中把下面2格的矩形看作是一个整体,而不是把它们分开,这样更容易实现和理解。

图10 计算6种特征的数目

下面列出了在不同子窗口大小内,特征的总数量:

表2 不同子窗口大小内,特征值的数量

3636

3030

窗口大小

816826 395287

特征数量

2424

162898

2020

79022

1616

32946

从表2可以看出窗口大小分的越大,生成的特征数量也就越多,这以去掉某些特征,例如,完全不必考虑用这样的特征计算特征值大值样就会带来耗时的问题。为了解决这个问题,我们可宽度为一个像素的矩形特征,因为显然随机性太,不可能寻找到合适的阈。

四、基于AdaBoost算法的人脸检测

(一)AdaBoost算法

AdaBoost算法训练强分类器的算法描述如下:

1.给定一系列训练样本(x1,y1)(x2,y2)......(xi,yi)......(xn,yn)其中xi表示第i个样本,yi=0时表示其为负样本(非人脸),yi=1时表示其为正样本(人脸)。n为一共的训练样本数量。

2.初始代权重 对于负样本:Dt(i)12m m为负样本个数

对于正样本:Dt(i)12l

Dt(i)为第t次循环中第i个样本的误差权重。

T 3.t1......:

(1) 权重归一化:

qt(i)Dt(i)

(2) 对每个特征f,训练一个弱分类器h(x,f,p,);计算对应所有特征的弱分类器的加权错误率:

tqih(xi,f,p,)yi

(10)

iD(i)

(9)

ti1n

(3) 从2中确定的弱分类器中,找出一个具有最小的错误率t的弱分类器ht;

(4) 对所有样本的权重进行更新:

Dt1(i)Dt(i)t1ei

(11)

其中ei0表示xi被正确地分类,ei1表示xi被错误地分类。

令:tet1et;

(5) 最后的强分类器为:

其中atlog1t

atht(x)12att1t1H(x){10其它rr

(12)

以上训练的物理意义可以表述为:当已经提取的分类器对于某些样本分类正确,那么减小这些样本的权重。当分类错误,增加这些样本的权重。这样,后面训练提取的简单分类器应付更加强化对这些分类错误样本的训练。

(二)AdaBoost算法举例

1.弱分类器

下面举例说明如何用AdaBoost算法将多个弱分类器组合成一个强分类器。对于图11所示的平面上有五个正训练样本,五个负训练样本,弱分类器是水平或垂直的直线,每个样本的概率值(初始值为1/10)大小用图中样本的大小来表示,分类错误的样本画圈表示。

图11 弱分类器

第一次迭代h1代表的直线是最优的弱分类器,此时错误率1=0.3

1=0.85调整后的概率分布为D2,如图12。

图12 直线最优弱分类器

第二次迭代h2代表的直线是最优的弱分类器,此时错误率2=0.21

2=1.32。

第三次迭代h3代表的直线是最优的弱分类器,此时3=0.14

3=1.82。

该弱分类器在经过三次训练后输出强分类。

2.强分类器

本文采用Adaboost算法训练强分类器,训练强分类器就是决定选择哪些弱分类器构成一个强分类器的过程,同时需要决定强分类器的闭值以及检测率和误检率。训练强分类器地算法描述如下:

确定该强分类器的最大误检率:fmax,最小检测率dmin。获取并保存训练样本。P:表示人脸样本集合,叫P集,人脸样本也叫正例。N:表示非人脸样本集合,叫N集,非人脸样本也叫负例。样本表示为((x1,y1),(x2,y2),...(xm,ym)),当yi=1时,xiP;当yi=-1时,

xiN;其中m为样本的总个数。计算每个样本窗口内的所有矩形特征值。对每个样本赋一个权值w。假设人脸样本个数为p,那么人脸样本的初始权值为wi11ip;,2p假设非人脸样本个数为q,那么非人脸的初始值为wj设f为当前分类器的误检率,初始值为1。

1,1jp。其中p+q=m。

2q

while(ffmax)

{

挑选一个矩形特征做为弱分类器h1(x),使得该分类器的分类错误相对于其它矩形特征的分类错误为最小。弱分类器的分类错误计算公式为

iwi[hi(xi)yi]2

(13)

i1m

对于每个人脸样本xi计算PV[i]hk(xi);对于每个非人脸样本xj,计算k1tNV[j]hk(xj)。t表示当前已得到的弱分类器的个数。

k1t对PV数组按从小到大排序:人脸样本的个数为p,那么当前强分类器的阈值tPV[p(1dmin)],即第p(1dmin)个元素作为阈值,保证有pdmin个人脸样本能通过该阈值。

numfalse0

for

j1:q(q为非人脸样本的个数)

lsneumfal1s

e

if

NV[j]t

them

numfaend

fnumfalseq(当前强分类器的误检率)

更新每个样本的权值。对于任意样本xi,ht(xi)ai,那么新的权值为wiwieaiyi,yi{1,1}。

对样本权值进行归一化处理,使得wi1。

i1pqtt1

}

得到一个强分类器,其阈值为t,检测率和误检率满足fmax和dmin。

五、系统的设计与实现

(一)VC++环境的安装与配置

1.步骤

(1) 安装VC++6.0,并升级到SP3以上。

(2) 安装Activeperl。

(3) 安装J2sdk。

(4) 安装Symbian SDK。

2.配置

安装完上述步骤之后,要设置下环境变量,在系统变量里面添加:

EPOC=Symbian7.0sSeries60_v21_C

在path中添加以下几个内容:

Symbian7.0sSeries60_v21_CEpoc32tools;

Symbian7.0sSeries60_v21_CEpoc32gccbin;

//一般perl是自动注册环境变量的,vc在安装过程中也有注册环境变量的选项,勾选就行,不用自己设置,如果过程中没有设置,那还要自己手动设置下vc6的环境变量。

另外,完成最后一步:

Symbian7.0sSeries60_v21_CSeries60Toolsappwizard”目录下的””和””文件拷贝到:”Program FilesMicrosoft Visual

StudioCommonMSDev98Template”目录下,使得VC工程文件中会出现项目向导(跟MFC一样)。

(二)OpenCV的介绍安装和配置

1.介绍

OpenCV是Intel公司支持的开源计算机视觉库。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,实现了图像处理和计算机视觉方面的很多通用算法。

计算机视觉市场巨大而且持续增长,且这方面没有标准API,目前的计算机视觉软件大概有以下三种:

(1) 研究代码(慢,不稳定,独立并与其他库不兼容)。

(2) 耗费很高的商业化工具(比如Halcon, MATLAB+Simulink)。

(3) 依赖硬件的一些特别的解决方案(比如视频监控,制造控制系统,医疗设备)。

这是目前的现状。而标准的API将简化计算机视觉程序和解决方案的开发。OpenCV致力于成为这样的标准API。

2.安装

在安装时选择“将<…>OpenCVbin加入系统变量“(Add<...>OpenCVbin to the

systerm PATH),否则需要在“我的电脑”“属性”“高级”“环境变量”中添加上述变量,如:变量:Path,值:C:OpenCVbin;(<…>为OpenCV的安装根目录,建议将openCV安装在C盘的OpenCV目录下)

3.配置

打开OpenCV安装目录下的_make文件夹,启动其中的工程(如:

C:OpenCV_);在vc中选择build (组建)---batchbuild (批组建) ,所有64位都不选,然後点build(创建)。这样就生成了以後大家经常用到的一些lib及dll,包括release和debug两个版本的。

在生成过程中会出现如下错误:

“fatal error LNK1181: 无法打开输入文件“”

“error C2039: “foreground_regions” : 不是“CvFGDStatModel”的成员”

解决的方法是:在“解决方案管理器”中打开“cvaux“项目的包含文件中(IncludeExternal)的cvaux. h文件,找到上述foreground_regions成员,会发现此成员已被注释掉了,只要将其上一行末尾的“/”改为“*/”使该成员可见,再次启动项目,应该就可以编译通过了。

启动_make目录下的另外一个工程“opencv_” ,使其编译通过;

按照步骤2 中加入库文件及包含文件的方法将下列包含文件加入 :

C:OpenCVcvinclude

C:OpenCVcvauxinclude

C:OpenCVotherlibshighgui

C:OpenCVcxcoreinclude

C:OpenCVotherlibscvcaminclude

(上述文件属于常用文件,如果需要可自行添加另外的包含文件)加入库文件:

C:OpenCVlib

(三)总体设计

1.人脸识别模块的主要功能

人脸识别模块主要完成以下一些功能:

(1)人脸库的添加与删除,包括标准人脸库的导入和从摄像头获取图像自建人脸库。

(2)训练人脸库图像,得到EHMM模型数据,为识别人脸信息提供依据。

(3)识别人脸,识别静态人脸或摄像头中的视频人脸信息。

从用户的角度考虑,画出系统功能用例图如图13所示 。

人脸识别系统人脸识别模块静态图像读取启动摄像头人脸识别选择人脸区域用户人脸训练人脸库<<继承>><<继承>>单人人脸库多人人脸库

图13 人脸识别模块识别图

2.系统体系结构分析

根据系统需要实现的功能要求,人脸识别模块的功能划分框图如图14所示。

人脸识别模块人脸库管理人脸训练人脸识别其他辅助功能单人人脸库多人人脸库人脸图片的添加单人模式下的训练多人模式下的训练训练得到模型静态图片的识别摄像头抓取识别摄像头管理感兴趣区域获得

图14 人脸识别模块功能划分框图

其中训练和识别部分是程序实现的核心部分,下面两节内容将分别介绍训练和识别部分的设计过程。

(四)训练部分的设计

训练部分是指添加人连数据库以后,提取人脸特征,生成每人的HMM模型的过程。我们设定在两种情况下对人脸图像进行训练,在多人模式的人脸库中点击人脸训练按钮,所有没有训练过的人脸图像将被训练,得到所有人的HMMs,在单人模式的人脸库中点击人脸训练按钮,当前人的人脸图像将被训练,得到该人的HMM模型。故程序设计的过程中也将从这两个方面考虑,分四部分实现各功能。

1.主消息函数部分。该部分是程序与用户交互的部分,用户点击界面按钮向程序发出命令,通过此段程序系统辨别是在多人模式还是单人模式下的训练,从而调用相应的函数实现训练功能。

2.单人模式下的训练函数部分。该部分在单人人脸数据库中,实现图片的读取并判断图片是否已经经过了训练,然后调用人脸训练核心函数进行训练。

3.多人模式下的训练函数部分。该部分在多人人脸数据库中,实现图片的读取并判断图片是否已经经过了训练,然后调用人脸训练核心函数进行训练。

4.人脸训练核心函数部分。该部分是人脸训练的核心,实现对人脸图像的训练。

以上第一部分在MFC的CMainFrame框架类中添加消息映射函数实现,后面的两部

分则设定在人脸库类CFaceBace中,人脸训练核心代码则在一个专门的类CPerson中实现。实现人脸训练的程序流程图如图15所示。

开始定义记录观察向量大小的变量创建EHMM模型获取图片数量进行图片缩放初始化计数器定义完成训练标志参数否宽度高度均已调节是计算HMM的初始参数确定感兴趣区域计算图像块大小计算观察向量的似然概率定义存放图像观察向量的数组调整EHMM的参数分配内存空间否对图像进行离散余弦变换似然概率收敛?是提取DCT系数为观察向量保存信息图像均匀分割程序结束

图15 人脸训练程序流程图

(五)识别部分设计

人脸识别程序主要完成对待识别人脸图像与人类库中图像的匹配识别,在程序的设计过程中,识别程序与用户的交互同样通过主消息函数来完成,我们在MFC的框架类CMainFrame中添加消息消息响应函数,用户通过点击界面上的功能按钮启动识别程序,对各变量进行初始化,调用识别核心代码,并将识别出来的人的信息显示出来。

人脸识别的核心代码则通过在人脸库类CFaceBace中添加成员函数实现,并调用OpenCV中的函数提取人脸特征进行识别。

(六)其他功能模块的设计

人脸识别模块应用程序使用Visual C++ 6.0创建一个基于单文档的MFC AppWizard

exe项目,项目名为Zhou。故有由AppWizard 自动生成的CAboutDlg、CZhouApp、CZhouDoc、CZhouView、CMainFrame 五个类构成了应用程序的框架。在这些类中添加消息响应函数调用不同的功能模块,实现人脸的训练和识别。除训练和识别两部分外,程序还有许多辅助功能,也分别使用不同的类来实现。其中CCamera类实现对视频摄像头的控制,包括摄像头的初始化、各种视频参数的设置等;CHMMParams类完成对系统EHMM参数的设置,包括超状态数、嵌入式状态数等EHMM模型的关键参数;

CPersonImage类则是用来管理具体的人脸图像,设定图像的感兴趣区域,从摄像头中获取人脸图像;CMisuParams类,用来设置其他参数如图片的缩放比例等。各功能模块如图16所示。

其他功能模块

摄像头的管理

CCamera类

摄像头的初始化

视频参数的设置

摄像头的暂停与重启

HMM参数设置

CHMMParams类

初始化

超状态数设置

嵌入状态数设置

其他参数设置

CMisuParams类

视图框参数

图片缩放设置

手动划取矩形框设置

获取图片

CPersonImage类

载入图片

保存图片

设定文件名等

图16 人脸识别模块其他功能模块框图

(七)系统截图

图17 人脸库管理

图18 系统界面

图19 人脸提取系统

六、结束语

(一)工作总结

人脸检测与识别技术的研究具有重要的理论价值和现实意义。进入上世纪90年代后,由于计算机技术的突飞猛进和应用需求的驱动,人脸检测与识别技术的研究开始蓬勃发展,许多新理论和方法相继提出。经过大量的工程实践,人们逐渐认识到:研究一种方法完成基本的人脸检测与识别功能是远远不够的。现实的应用环境往往较为复杂,因此一种方法是否具有优良的综合性能是衡量其是否具有实用价值的重要标准。本文的研究内容涵盖了人脸识别技术中的人脸检测和人脸识别。如何提高人脸检测与识别的精度、速度、鲁棒性、实用性是本文的研究目的和研究重点。文中采用了基于肤色信息的人脸检测和基于二维隐马尔可夫模型的人脸识别方法。在人脸检测方面对影响检测精度的每一个环节都展开了细致的讨论,在人脸识别方面重点研究了如何在保证人脸识别速度的前提下,提高人脸建模的精度和人脸识别的鲁棒性。具体研究工作与成果包括如下几方面:

1.采用非线性估计阈值选取方法确定颜色空间转换后肤色区域的分布边界,该方法兼顾了亮度对肤色聚类性的影响,为肤色区域的精确分割奠定了基础。在使用高斯模型对肤色区域建模后,用最佳全局自适应阈值选取方法确定一个平均误差最下意义下的肤色分割阈值,实现了对肤色区域的精确分割。在人脸验证前,先对图像进行预处理,排除了大量非法肤色区域,最后采用人眼区域定位结合几何模板匹配的方法实施人脸验证。实践证明文中方法可以较为精确地分割出人体肤色区域,从而显著地提高人脸检测的准确率。由于背景中类肤色区域的干扰,有时会造成算法对人脸的漏检,因此如何增强人脸验证算法对复杂背景的鲁棒性,还有待进一步研究。

2.采用离散余弦变换对人脸进行特征提取,将DCT系数作为观察向量对二维隐马尔可夫模型进行训练,从而实现了对人脸的精确建模。离散余弦变换在对人脸进行特征提取的同时,有效降低了观察向量的维度,从而提升了人脸模型训练的速度。使用二维隐马尔可夫模型实现了对人脸的精确建模,在达到对各种人脸图像精确识别的同时,也使系统对各类复杂条件下的人脸识别有了较强的鲁棒性。

3.研究并实现了对人脸P2D-HMM模型的自动训练,使得构建任意规模的人脸库均可由计算机自动完成。极大地简化了人脸库的管理和维护。

4.研究了对待检照片进行预处理的方法。通过对待检照片的几何归一化、图像校正、图像复原来改善待检照片质量,在允许宽口径的待检照片输入的同时使用。

(二)展望

人脸识别不仅是模式识别、图像处理领域的一个热门的研究课题,同样也是计算机视觉、人工智能领域内的一个重要课题。人们常说“眼睛是心灵的窗口”,人脸识别的终极目标就是给计算机一双眼睛,为它打开一道可以看到世界的窗口,让它也能记住、区分、辨认不同的人脸,从而为实现计算机与人类交流奠定基础。这一目标尽管遥远,但意义非常重大。设想未来如果计算机具备了像人类一样的视觉,它将代替人们完成更多智能化的工作,极大地减轻人们的负担,提高人们的生活质量,造福于人类。目前对人脸检测与识别的研究尚出于探索阶段。本文在对人脸检测与识别基础理论进行学习研究的基础上,开发了一个原型系统。通过大量的实践加深了对人脸识别技术的体会和理解,同时也感到以下问题应该作为今后研究的重点:

1.如果采用肤色信息进行人脸检测,光照条件和背景类肤色区域始终是影响检测准确率的主要因素,单纯依靠肤色信息存在一定的人脸漏检。能否将基于肤色信息的方法和基于统计的方法结合,降低漏检率是今后探索的方向。

2.基于P2D-HMM的人脸识别方法精度高,但相应计算量也大。能否在保证识别率的前提下精简算法?能否用硬件执行人脸识别算法?能否建立并行分布式计算环境?以及这些措施能在多大程度上进一步提高识别速度都是重要的研究方向。

3.计算机虽然不具有像人一样强大的视觉系统。但计算机识别人脸也由一些独特的优点:首先计算机对人脸细节的辨别能力更强,例如在对双胞胎的识别中,人眼感觉双胞胎的相貌“差不多”,而计算机的判断结果是“差很多”。这说明计算机不会像人类一样受一些视觉心理因素的影响,识别更为精确。另外人类的记忆系统对所记的人脸有优先级之分,当记忆了大量的人脸后,对与自身关系不密切的人往往会产生混淆。而计算机对任意规模的人脸库进行查询都不会因为混淆导致识别错误;而且即使工作了较长的时间,计算机也不会像人一样由于视觉疲劳而导致识别错误。如何充分利用计算机人脸识别的上述优点,构建一些有实用价值的人脸识别系统也是今后重要的研究方向。

参考文献

[1] 邓刚、闫胜业、张洪明:《人脸检测技术报告》,2003年。

[2] 李介谷:《计算机模式识别技术》,上海交通大学出版社,1986年。

[3] 张书真:《人脸检测技术浅析》,中国西部科技(下半月刊),2005年4月。

[4] 武勃艾海舟等:《人脸的性别分类》,计算机研究与发展,2003年11月。

[5] 梁路宏、艾海舟,徐光佑,张钹:《人脸检测研究综述》,2004年。

[6] 徐毅琼、王波等:《基于隐马尔可夫模型的自动人脸识别方法》,计算机应用,2004年12月24日。

[7] 吕琳:《人脸检测方法综述》,电脑知识与技术,2005年10月。

[8] 卢春雨、张长水、闻芳、阎平凡:《基于区域特征的快速人脸检测法》,清华大学学报(自然科学版),1999年。

[9] 黄德双:《神经网络模式识别系统理论》,北京电子工业出版社,1996年。

[10] 邓刚、曹波、苗军、高文、赵德斌:《基于支持向量机眼动模型的活性判别算法计划生物特征识别核心技术与关键问题研究课题项目》,中科院百人计划,2003年。

[11] 应理航:《人脸检测子空间方学硕士论文》,2002年5月。

[12] 梁路宏、艾海舟、徐光佑、张钱:《人脸检测研究综述》,计算机学报,2002年。

[13] Rafael ez、Richard :《数字图像处理》,阮秋琦,阮宇智等译,2004年6月。

[14] 王永卫、李介谷:《基于肤色特征的最短生成树方法进行人脸分割》,上海交通大学学报,1998年。

[15] 何东风、凌捷:《人脸识别技术综述》,微机发展,2003年。

本文标签: 人脸检测特征图像方法