人脸检测的基本原理

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

人脸检测的基本原理
1引言
2人脸检测的基本知识
2.1人脸特征
2.2 预处理技术
3图像处理的基本运算方法
3.1数字图像的表示
3.2区域分割与合并的原理
3.3膨胀与腐蚀
1引言
人脸检测是指给定静止图像或视频序列,不管图像中人脸的位置、大小、方向、姿势、光照等如何变化,找到并定位所有人脸确切位置的技术。

有很多与人脸相关的研究领域与人脸检测技术紧密相关,比如人脸定位(Face Localization),经过简化的、仅针对包含单个人脸图像的检测技术;人脸跟踪(Face Tracking),在连续的视频序列中实时定位并跟踪人脸的位置;面部特征检测(Facial Feature Detection),准确定位人脸区域内的眼睛、眉毛、鼻子、嘴、嘴唇、耳朵等面部器官的位置;人脸识别(Face Recognition),比较输入图像与已经建好的人脸数据库内各图像间的差异,找到差异最小的作为识别结果输出;面部表情识别(Facial Expression Recognition),识别人脸面部的感情状态,比如高兴、沮丧、悲伤等等。

上述这些人脸处理技术的第一步都是要求准确定位好图像中的人脸,因此一个鲁棒、高效的人脸检测算法对这些技术的发展起着关键的作用。

2人脸检测的基本知识
人脸检测从本质上讲是目标检测的一种,也就是将目标(人脸,Target)与干扰(背景,Clutter)区分开来的过程。

2.1人脸特征
人脸图像中包含的特征非常丰富。

人脸检测利用的是人脸的共性特征,大致分为基本特征、肤色特征、变换域特征、统计特征等。

①基本特征
1)灰度特征
人脸区域内具有明显的灰度分布特征。

眉、眼和嘴等区域的灰度值较低,前额、脸颊、鼻梁和下颌等区域的灰度值较高。

利用这些信息,可以建立简单的人脸模板,用于粗检。

例如,多个人脸图像的平均就是一个简单的人脸模板,类似的眼模板和嘴模板也常常使用。

人脸具有明显的灰度梯度分布特征。

在人脸区域进行水平和垂直方向的灰度投影,根据极小点的位置可以得到眉、眼、鼻和嘴等器官所处的大致区域。

光照不均对灰度特征有很大的影响。

但在偏光的情况下,眼和嘴、鼻和嘴、鼻和脸颊等区域灰度的比值会保持一定的比率。

根据这个特点,可采用线性光照拟合和直方图均衡的方法来补偿光照的影响。

Log、Exp和LogAbout等一些非线性变换也可用于光照补偿。

2)边缘和形状特征
人脸及人脸器官具有典型的边缘和形状特征,如人脸轮廓、眼睑轮廓、虹膜轮廓、眉毛边缘、鼻侧线和嘴唇轮廓等均可近似视为椭圆、圆、弧线或线段等简单的几何单元。

可采用Sobel、Laplacian和Canny等算子或小波变换提取这些边缘特征。

噪声的存在会导致边缘的不连续,常采用边缘跟踪器把属于同一轮廓的各段边缘连接起来,并通过约束搜索范围防止边缘跟踪失败。

数学形态学的腐蚀与膨胀运算与Hough变换也常用于提取人脸轮廓特征,并对噪声有较好的适应性。

应用Snakes模型或主动形状模型(ASM,Active Shape Model)能够较好地抽取人脸的边缘特征,但这些模型需要一个较好的初始化位置。

尽管在强光照变化下也会产生一些伪边缘,但相对于灰度特征,边缘特征对光照变化具有一定的鲁棒性。

3)结构特征
结构特征主要表现在人脸的对称性和各个器官的空间位置分布。

人脸在结构上的对称性是十分有用的特征。

正面人脸左右对称,对应位置上的边缘和灰度特征基本一致;同时,各个器官也具有自身的对称性,比如双眼、鼻子、耳朵等。

面部器官如眉毛、眼睛、鼻子、嘴等,是按一定位置关系组织在一起的。

各器官按照从上而下的顺序排列,相对位置保持不变。

各器官间还存在着一些几何关系,比如两眼和嘴中心构成一个三角形、鼻子的中心大致位于这个三角形的中心等。

根据这些结构特征,配合前面介绍的灰度特征和边缘、形状特征,可以建立基本的规则,区分人脸区域与背景。

4)纹理特征
人脸具有特定的纹理分布特征,基于灰度共生(SGLD,Space Grey Level Dependency)矩阵建立人脸纹理特征模型,得到表征人脸的一系列纹理特征。

②肤色特征
肤色特征按类别划分应属于人脸基本特征,但其在彩色图像人脸检测中所起到的作用非常重要。

肤色是脸部区别于其他区域的重要特征,不依赖于面部细节特征,不受旋转、姿势、表情等变化的影响,具有相对稳定性并和大多数背景物体颜色相区别,已成为彩色图像人脸检测中的一个非常重要的特征。

尽管不同种族、不同年龄、不同光照条件下,肤色区域呈现不同的颜色,但相关研究证明,不同类的肤色点间的差别更多的在于颜色中的亮度分量,而色度分量在各肤色点间变化不大。

由此,可以在特定的色彩空间中建立肤色模型,描述人脸肤色的特征,有效去除图像中复杂背景的干扰、减小待搜索范围。

常用的色彩空间有RGB、归一化RGB、HSV、YCbCr、YIQ、YES、CIE XYZ、CIE LUV、CIE Lab、CIE DSH、TSL等,常用的肤色模型有直方图模型、高斯模型、混合高斯模型等。

③变换域特征
基于FFT、DCT、小波、K-L等变换,根据能量规则选择一系列系数作为表征人脸图像的特征。

人脸识别中广泛使用的本征脸(Eigen Face)以及最近流行的类Haar特征(Haar-like feature)均属于变换域特征。

目前图像大多以压缩的格式存在,各个图像压缩标准广泛地应用了DCT和小波变换,因此,研究如何有效地提取这些变换域下的人脸特征,具有很强的实际意义,已成为目前一个很受重视的研究方向。

④统计特征
由于人脸图像模式的复杂性,能够用来描述人脸共性特点的显式特征是有限的,而由此建立起的人脸规则的有效性也有很大的局限性。

解决这个问题的办法就是更多地使用人脸图像的统计特征,也可称为隐式特征。

统计特征是指通过统计的方法,从单个图像数据或大量图像数据中获得的特征,如自相关、高阶矩、不变矩、在子空间的投影、空间距离、隶属度、概率分布、熵、互信息,以及神经网络的抽象特征等。

统计特征不如基本特征直观,但描述的往往都是人脸与非人脸的本质区别,在一个更高的层次上描述人脸特征。

在大量统计特征基础上构建起来的基于统计学习的人脸检测算法,具有良好的适应性和鲁棒性,得到了广大研究人员的普遍重视,已成为目前研究的主流。

⑤运动特征
对于视频序列,相邻帧间的运动信息是一个重要的特征。

计算相邻帧图像的差分即可得到运动区域。

为了提高算法对噪声的鲁棒性,可采用空间连通区域、多帧差分、差分图像光滑滤波、时空三维张量等方法。

运动特征也常用于人脸跟踪的研究中,基本方法就是跟踪整个人脸或基于特征器官(如眼、嘴)的跟踪。

2.2 预处理技术
为了提高检测算法的效率,需对输入图像进行一些预处理。

通用的预处理手段主要包括:
1)边缘提取,去除图像中低频的背景区域;
2)直方图均衡,使图像中象素值分布均衡化;
3)光照补偿,克服亮度不均对结果的干扰;
4)肤色分割,将肤色区域与背景分离。

①背景去除
人脸区域内灰度变化较大,在图像中属于高频信息,通过提取边缘、去除边缘很弱的图像区域,可以去除变化平坦的背景区域。

除了这种简单的方法外,Shaick等提出了一种新的针对灰度图像的预处理方法,算法的框图如图1所示。

图1 Shai ck算法框图
首先对输入图像进行直方图均衡,然后利用2D-FFT将其变换到频域。

在频域利用最佳自适应相关器(Optimal Adaptive Correlator, OAC)将输入图像与“平均脸”模板求相关,滤波器输出如式(1)
]),(]/[),(),(2
*y x y x y x f f V f f U f f H ⊗=ω (1)
其中U 、V 分别为“平均脸”模板和输入图像的傅立叶变换,“*”代表二维复共轭,x f 、y f 分别是二维频域内的索引,ω为5×5大小的矩形窗口,⊗代表卷积算子。

将滤波器的输出按照实验得到的阈值分为人脸区域、可能的人脸区域和背景区域三部分。

实际使用中,首先通过训练的方法得到“平均脸”模板,然后在7×9的窗口内对待测图像进行局部灰度均衡(Local Homogenization ),最后使用OAC 滤波器排除背景区域。

经过这样的处理,在MIT Set B 测试集中可以排除图像中99%的待检测区域,而仅仅产生了1.3%(2/153)的漏检,同时其计算复杂度也相对较小,可以在不对算法精度产生太大影响的条件下提高算法的速度。

②肤色模型
肤色是彩色图像中人脸部区别与其他区域的一个非常重要的特征。

利用肤色分割算法不但可以减小待搜索图像的大小,而且还可以有效的控制误检。

因此肤色模型在人脸检测的研究中一直受到很大的重视。

1)彩色空间
各种标准的彩色空间均可用于构建肤色模型,比如YCbCr 、HSV 、归一化rgb 等。

Hsu 等考察了肤色点与背景点在各彩色空间中的实际分布情况,具体的统计结果如图2所示。

图2 不同颜色空间内肤色点的分布
(a) YCbCr 空间,(b)肤色点在CbCr 平面内的投影,(c)rgb 空间(d)HSV 空间
(红点表示肤色点,蓝点表示背景点)
由图2中可以明显看出,与其它空间相比,YCbCr 空间中的肤色点具有更加集中的分布,最为适合肤色分割。

因此目前很多研究工作都是基于YCbCr 彩色空间进行的。

在YCbCr 彩色空间的基础上,进行更深一步的考虑。

YCbCr 三分量与视频中使用的YUV 三分量具有相似的思路,即将原来的RGB 三个色度分量通过一个线性变换,转化为一个亮度和两个色度分量,其中Y 为亮度分量,CbCr 分别为蓝色(Blue )和红色(Red )的色度分量。

通过分析RGB 三个分量在肤色区域的分布,Dios 等提出与YCbCr 空间类似的一个新的颜色空间YCgCr ,使用Cg (代表绿色Green )分量来代替Cb 分量。

依据ITU Rec.BT.601规定的标准,Cg 分量可以由式(2)所示的变换公式得到:
B
G R Cr Cg Y ⋅----+=214.18768.93112915.30112085.81966.24553.128481.65256112812816 (2) 如图3所示,在YCgCr 空间内,肤色点的分布更加集中,更加有利于排除那些近似肤色点的区域。

相关的实验也证明了其可以获得更好的结果。

图3 两个颜色空间肤色分布比较
进一步思考产生这个现象的原因。

人脸的肤色区域接近于黄色,而黄色是由红色和绿色混合而成,因此在肤色区域内,红、绿分量的值更大且基本相同(有很大的相关性),而蓝色分量则明显偏小且与其它两个颜色的分布无关。

这一点可以由图3明显看出,图3(a )的分布没有任何规律,而图3(b )则呈现线性分布。

因此,YCgCr 彩色空间可以更加有效地描述肤色点的分布情况。

2)肤色分布的描述
常用的肤色分布描述方法有阈值法、高斯法、混合高斯法、直方图法等。

阈值法最为简单,根据训练样本中各肤色点的色度分量出现的范围,确定一个阈值范围,如[Cr1,Cr2]及[Cb1,Cb2]。

若待测图像中某个象素点的色度分量(Cr,Cb),满足Cr1≤Cr ≤Cr2并且Cb1≤Cb ≤Cb2,则该点就被认为是肤色点保留;否则认为该点是背景点去除。

直方图法是比阈值法更为准确的一种模型描述方法,通过统计训练图像中各肤色点出现的概率,得到一个关于CrCb 分量的二维统计直方图。

直方图中,z 方向的分量即表示该点(Cr,Cb )为肤色点概率的大小。

通过一个合适的阈值,确定哪些区域的颜色点是肤色点,哪些不是。

高斯以及混合高斯法均是用概率模型来描述各肤色点的分布。

高斯法的思想是假设大量肤色点在彩色空间中的分布符合一个二维高斯分布,将肤色点的分布用一个高斯模型来表示,均值(也就是肤色点分布的中心)和协方差矩阵由统计的方法获得。

通过这个高斯模型可以得到待测图像中各点属于肤色的概率,利用一个阈值作为判决条件,将概率大于这个阈值的点判断为肤色点,而小于这个阈值的点判为背景点。

在实际应用中,人们发现肤色点在彩色空间的真实分布大多具有多峰的性质,单一的高斯模型不能充分地描述。

因此,Yang 等提出了使用高斯混合模型的方法来描述肤色点的分布,具体定义如下:
彩色空间中各肤色点的分布可以看成是混合高斯分布模型G ,由有限多个单一高斯模型G1,…,Gg 以及相应的权重系数π1,…,πg 混合而成,其中
∑==g i i 11π
,并且0≥∑i (3) 待测图像中某点属于肤色点的概率密度函数(p.d.f.)由下式定义:
(4)
其中p(x;θ)i 为模型Gi 的概率密度函数,μi 为Gi 的均值向量,Σi 为Gi 的协方差矩阵,具体的参数值,可通过EM 算法估计得到。

目前最为流行的肤色模型是使用YCbCr 彩色空间并配合直方图描述构建的。

这种模型构建简单,对于大多数图像均可以取得可以接受的结果。

③光照补偿
光照对于检测算法的性能是一个非常大的干扰因素。

特别是对肤色模型,在)()()(exp )2(1),(),(),(1212/12/11
1i i i d g i i g i i i g i i x i x i i x p x p x p μμππθπθπφ--⋅⋅⋅=⋅=⋅=--===∑∑∑∑∑
亮度分量不同的情况下,色度分量的分布是有较大区别的,如图2(a )。

如果忽略光照的影响,则肤色模型的适用性将会受到很大限制,因此光照补偿常常伴随肤色模型一起研究。

对于光照问题有一些通用的方法,比如直方图均衡、对数变换、同态滤波等。

直方图均衡主要针对灰度分布不均的图像,可以增强图像的对比度,提高图像质量;对数变换主要针对偏光图像,使用如式(5)所示的变换公式:
c
b y x f a y x g ln )1),(ln(),(⋅++= (5) 其中f(x,y)、g(x,y)为变换前后的图像,a 、b 、
c 为控制参数。

通过对待测图像灰度分布的分析,可以自适应地确定参数a 、b 、c ,调整变换曲线使变换后的图像中,低灰度区域得到提升,高灰度区域得到抑制,从而实现光照补偿。

除了上述这些通用的光照补偿方法,还有一些专门针对肤色模型的研究值得注意:
目前各种肤色模型都仅考虑了CbCr 平面内肤色点的分布,但是通过图2(a )可以发现,在YCbCr 空间内,对应不同的Y 值,空间的横截面内Cb 、Cr 分量呈现不同的分布。

如果仅使用CbCr 平面内的投影而忽略亮度对色度的干扰,则无法得到理想的肤色模型。

因此,Hsu 等提出了一种颜色空间非线性变换的方法来解决光照不均的问题。

在YCbCr 空间内使用一个非线性变换,将其变换到YCb ’Cr ’空间。

在变换后的YCb ’Cr ’空间内,肤色点的Cb ’、Cr ’分量在不同亮度Y 的情况下,达到一种比较均匀的分布,即呈现一个近似柱体的分布,由此达到补偿光照影响的目的。

除了针对输入图像进行被动的光照补偿处理之外,还可以建立一种主动的反射模型,对不同皮肤、不同光源下的图像进行主动的自适应处理。

Storring 等深入分析了不同种光源对于肤色的影响,综合利用皮肤反射、光源、镜头色温等建立起一个可以适合各种光源的肤色模型。

肤色是由皮肤对不同波长光有不同的反射率而形成的,Storring 等利用二分光反射模型建立起肤色反射模型。

任何一个非光源物体的颜色L 都是由面反射LSurf 和体反射LBody 两部分构成:
Body Soft L L L += (6)
其中,面反射主要来自表皮(epidermis ),而体反射主要来自真皮(dermis ),不同肤色的人脸对各种波长的光线具有不同的反射率,从而形成不同的颜色。

在这方面Anderson 等做了很多深入的研究,得到了肤色区域内对不同光线的反射率曲线ρBody 。

有了这样的反射模型,配合光源的相关色温曲线(Correlated Color Temperature,CCT )和摄像镜头的敏感度曲线,利用整个光谱区域内的积分,就可以得到针对不同肤色、不同光源、不同镜头的肤色分布模型。

(7)
其中E(λ)是光源的色度谱,)(λρSkin 为肤色反射模型,)()()(λλλB G R f f f 为摄像镜头对于各种不同波长光的敏感度曲线。

由此可以通过式(7)在归一化rgb 空间内建立肤色模型,如图4所示。

图4 不同人种在不同光源色温下的肤色分布
图4中,各个符号代表有上述方法建立起的不同人种肤色分布模型的中心,而四边形的外框代表使用训练集得到的真实肤色分布模型,可以看到使用光谱积分可以有效地建立起针对各种不同情况下的肤色模型,具有较强的通用性。

Sorianoa 等延伸了Storring 的工作,提出了一种自适应的肤色模型,在归一化的rgb 空间内,将肤色点分为自然光反射、室内光反射和混合反射3种,在分割时,自适应地利用不同种模型得到有效的分割结果。

λλλρλλλλρλλλλρλλ
λλd f E B d f E G d f E R B Skin G Skin R Skin )()()()()()()()()(⎰⎰⎰===
3图像处理的基本运算方法
3.1数字图像的表示
本设计中我的实验对象是数字图象。

数字图象在计算机中可以被定义为一个二维的函数f(x,y),这里x 和y 是空间坐标,而任意坐标对(x,y )的幅度f 被称为图象在该点的密度。

术语“灰度级”被经常用来描述黑白图象的密度。

而彩色图象由单独的2维图象组合而成。

例如,在RGB 彩色系统中,一幅彩色图象包括三个单独图象元素(红,绿,蓝)。

出于这个原因,通过处理三个单独的分量,许多发源于黑白图象的技术能够被延伸到彩色图象的处理中去。

一幅图象可能在x 和y 坐标以及幅度上都是连续的。

将这样的一幅图象转化为数字图象需要将坐标和幅度都进行数字化。

数字化坐标的过程叫做采样,而数字化幅度的过程叫做量化。

当x ,y 和f 都是有限的、离散的数量时,我们称其为数字图象。

在Matlab 中,一幅图象被存储为如下的矩阵:
),()2,()1,(),2()2,2()
1,2(),1()2,1()
1,1(),(N M f M f M f N f f f N f f f y x f ⋅
⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅
⋅⋅⋅⋅⋅⋅⋅⋅= (8) 3.2 区域分割与合并的原理
让R 表示整个图象区域并选择谓词P 。

一种分割R 的方法是将其不断的分割为越来越小的四个子象限,使得对于任何区域Ri ,P(Ri)=TURE 。

我们从整个区域开始。

如果P(Ri)为假,则将图象分为四个子象限。

如果对于某一子象限其谓词仍为假,则将这一象限继续分为子象限,如此这般下去。

这种特别的切割技术有一个简便的表述即被称为四叉树,即:一个树型结构的每个节点有四个后继节点,
如图所示:
图5 四叉数分解示意图
注意到树的根部对应于整幅图象而每个节点对应于划分为四个子节点。

在这种情形下,只有R4被进一步的分解。

如果仅使用分割,最后的部分通常只含有具有相同特征的相邻区域。

这个缺点可以通过合并来补充。

将满足谓词的相邻的区域象素合并。

即,当且仅当P(Ri⋂Rk)为真,合并两个相邻的区域Ri和Rk。

以上的思路可以总结为如下的规程:
1)对于任何区域Ri如果其谓词P(Ri)为假,则将其分为四个子象限
2)当不能再进一步划分时,对于P(Ri⋂Rk)为真的邻域Ri和Rk,将其合并。

当不能再合并时停止。

3.3膨胀与腐蚀
膨胀(dilation)可以看做是腐蚀的对偶运算,其定义是:把结构元素B平移a后得到Ba,若Ba击中X,我们记下这个a点。

所有满足上述条件的a点组成的集合称做X被B膨胀的结果。

用公式表示为:D(X)={a | Ba↑X}=X B,如图6所示。

图7中X是被处理的对象,B是结构元素,不难知道,对于任意一个在阴影部分的点a,Ba击中X,所以X被B膨胀的结果就是那个阴影部分。

阴影部分包括X的所有范围,就象X膨胀了一圈似的,这就是为什么叫膨胀的原因。

图6 (a)(b)原始函数,(c)膨胀过程示意(d)膨胀结果
把结构元素B平移a后得到Ba,若Ba包含于X,我们记下这个a点,所有满足上述条件的a点组成的集合称做X被B腐蚀(Erosion)的结果。

用公式表示为:E(X)={a| Ba X}=X B。

图7腐蚀结果,过程与膨胀类似。

相关文档
最新文档