一种人脸的快速检测方法技术领域
本发明属于模式识别领域。
技术背景
人脸检测是指从可能存在人脸的输入图像中分割、提取并确定所有人脸的位置、
大小的过程。人类可以很轻松的从非常复杂的背景中快速的检测出人脸,但对计算机来说
却相当困难。
人脸的自动检测是一类具有很大挑战性的问题,其主要难点在于:(1)人脸是一类
高度非刚性的目标,存在相貌,表情,肤色等差异。(2)人脸上可能会存在一些附属物,诸如,
眼镜,胡须等。(3)人脸的姿态变化万千,并且可能存在遮挡物。(4)待检测图像性质的差异。
比如:待检图像的分辨率;摄录器材的质量等。(5)光源的种类和角度。不同种类和角度的光
源会对待检测的人脸产生不同性质的反射和不同区域的阴影。
早在70年代人脸检测技术非常简单的,因为人脸检测解决的是像护照上的照片那
样用的都是统一的背景和均匀的光照条件,因此大多数的研究者当时都只把正面人脸作为
他们的研究领域。到了90年代以后人脸检测有了更深入的研究,尤其是Viola-Jones的基于
AdaBoost算法的人脸检测器,在达到较高检测率的同时使得人脸检测速度有了实质性的提
高,为人脸快速检测做出了开创之举,同时也出现了许多研究方法,归结这些方法,可以按
着Yang等的划分,归结为以下四类:基于知识的分析、基于特征的方法、模板匹配法及基于
外观的方法。
比较经典的基于外观的人脸检测方法有:AdaBoost算法、特征脸(Eigenfaces)、神
经网络、支持向量机等。
基于外观的方法。模板匹配中的模板是由专家预定义的,与模板匹配中的方法不
同,基于外观方法中的“模板”是从图像中的样本学习的。通常,基于外观的方法依靠基于外
观的方法依靠统计分析和机器学习技术找到相应的人脸和非人脸图像的特征。学习的特征
由分布模型或判别函数形成,用于人脸检测,同时,由于计算效率和检测有效性的原因通常
需要降维。许多基于外观的方法可以被理解为概率结构。从图像中提取的特征向量可以看
作是一个任意的变量x,此随机变量通过类条件概率密度函数p(x|face)和p(x|non face)
描述人脸和非人脸。可以用Bayesian分类器或最大似然函数将一个候选图像位置分类为人
脸或非人脸。基于外观方法的另一个方法就是找出一个能够判别出人脸与非人脸的判别函
数(如:决策面、分离超平面、阈值函数)。
基于外观的方法和其他方法相比具有很多优势,其一,它使用了功能强大的机器
学习算法;其二,可以检测不同姿势和方向的人脸图像,具有相对的快速和鲁棒性。相对的,
基于外观的方法具有一些不足,比如需要大量的正负样本集并且训练的时间比较长。
人脸检测要走向实际应用,检测速度是亟待解决的关键问题。因此,在检测精度提
高的同时,检测速度也越来越受研究者们的重视。
发明内容
本发明所要解决的技术问题是,提供一种在图像中快速的检测出人脸区域的新方
法。
本发明为解决上述技术问题所采用的技术方案是,一种人脸的快速检测方法,包
括以下步骤:
1)训练步骤:
1-1)采集样本图像并进行标注,生成训练集{(Is,ys)},其中s=1,2,…,S,Is表示
输入的图像区域,ys表示该图像区域对应的标签,ys∈{-1,+1},+1表示人脸区域,-1表示非
人脸区域,S表示总的样本个数;
1-2)用图像集Is及标注ys训练出M棵体积由小到大的集成二叉决策树,每一棵集成
二叉决策树的体积由二叉决策树构成数量K决定;
1-3)将训练得到M棵集成二叉决策树从按构成数量K分别从小到大的顺序堆叠在
一起,得到了基于级联的集成二叉决策树的分类器;M棵集成二叉决策树独立输出分类为人
脸区域的结果,第m棵集成二叉决策树输出的输出分类为非人脸区域的结果作为第m+1棵集
成二叉决策树的输入,m=1,2,…,M-1;
2)检测步骤:对检测图像用滑窗的方式进行遍历提取每一个窗口的像素强度对比
特征,将像素强度对比特征输入基于级联的集成二叉决策树的分类器得到分类结果。
本发明将人脸检测问题建模为一个二分类模型,首先从图像中提取像素强度对比
的特征,然后构建一棵级联的集成二叉决策树作为分类器,最后采用滑窗的方法,将每一个
窗口包含的图像作为分类器的输入,判断该窗口是否为人脸。像素强度对比特征是一种十
分简单有效的判别特征,它计算两个像素之间的显著性差异,计算量非常小。本文构建的级
联的分类器将多个集成的二叉决策树按体积由小到大堆叠到一起,所以每一个层级能够检
测到所有的人脸窗口并且拒绝一部分非人脸窗口,这样得到的结果是大部分的非人脸窗口
在最开始的几个层级就被判定为非人脸,所以只需要很少量的计算时间。
本发明的有益效果是,综合提取的特征和构建的分类器,使得用非常小的计算量
就能够实现在图像中的人脸检测,在保证人脸的检测精度的前提下实现了更快的检测速
度。
附图说明
图1二叉决策树的结构;
图2集成二叉决策树示意图;
图3级联的集成二叉决策树示意图,其中1,2,3分别为一棵集成二叉决策树。
具体实施方式
为了方便描述本发明的内容,首先对一些术语进行定义。
1:像素强度对比特征,其特征提取方法为现有成熟技术。这是一种二值化的特征
fj,它由一行中两个相邻像素之间的强度对比得到:
其中,I为像素的灰度值,di,j和di,j+1表示图像第i行中相邻两个像素的坐标,如果
di,j处像素的灰度值小于di,j+1处像素的灰度值,这说明fj的显著性较弱。
2:二叉决策树,现有分类方法。二叉决策树是一种二叉树形结构,如图1所示,其中
每个内部节点表示一个属性上的测试,每个节点有两个分支,每个分支代表一个测试输出,
每个叶节点代表一种类别。
对于一棵二叉决策树T,本发明使用最小化带权重的均方误差err来作为寻找最优
分割结点的方法,如下式所示。这个最小化err的过程就是选择最优分割结点来训练一棵二
叉决策树的过程,与已有的二叉决策树的训练方法相同。
其中Cf表示人脸样本,Cb表示非人脸样本,ws是样本权重也是分类器的模型参数,g0
和g1表示分别是Cf和Cb的样本标签的带权重的均值,
g是二叉决策树的输出,·表示乘,g=+1或g=-1。
3:集成二叉决策树。如图2所示,这是一种将多棵二叉决策树融合到一起,构成一
个更加健壮的分类器的现有分类方法。整个集成二叉决策树由K棵二叉决策树构成。每一棵
集成二叉决策树的体积由二叉决策树构成数量K决定。
训练方法如下:
首先使用采集的样本生成训练集{(Is,ys)},其中s=1,2,…,S,Is表示输入的图像
区域,ys表示该图像区域对应的标签,ys∈{-1,+1},+1表示人脸区域,-1表示非人脸区域,S
表示总的样本个数。
1)初始化参数:
ws为模型参数,Np表示人脸样本的总数,Nn表示非人脸样本的总数;
2)迭代K次,k=1,2,…,K:
2-1)训练第k棵二叉决策树Tk;
2-2)更新模型参数ws:
ws=ws·exp{-ys·Tk(Is)}
Tk(Is)表示第k棵二叉决策树对于图像Is的输出。
2-3)归一化ws,判断是否k=K,如是,迭代结束,集成二叉决策树分类器的模型参
数为当前归一化后的ws,如否,更新k=k+1,返回2-1)。
K即表示迭代次数,也表示一棵“集成二叉决策树”里面有多少棵“二叉决策树”,它
表示了集成二叉决策树体积的大小。检测的时候K棵二叉决策树对输出结果进行投票,K棵
二叉决策树分别有一个输出yk∈{-1,+1},即会有K个±1,若+1的个数多,那么整个集成二
叉决策树的输出就为+1,反之则为-1。
4:级联的集成二叉决策树,为本发明提出,如图3所示,将多个集成的二叉决策树
按体积由小到大(复杂度由低到高)堆叠到一起,所以每一个层是一棵集成二叉决策树,M棵
集成二叉决策树独立输出分类为人脸区域的结果,第m棵集成二叉决策树输出的输出分类
为非人脸区域的结果作为第m+1棵集成二叉决策树的输入,m=1,2,…,M-1。它能够检测到
所有的人脸窗口并且拒绝一部分非人脸窗口,这样得到的结果是大部分的非人脸窗口在最
开始的几个层级就被判定为非人脸,因此只需要少量的几次判定就可以得到输出结果。由
体积不同且从小到大的等的几个棵集成二叉决策树组成这个级联的集成二叉决策树。
5:滑窗遍历图像。对于一幅图像I,设定一个最小的窗口大小w0×h0、最大窗口大小
w1×h1、窗口滑动的步长d和窗口尺度的缩放因子s,那么每一次从图像I中取出矩形区域
(p1,p2)即为一个窗口。其中p1是矩形区域的左上角顶点坐标,p2是矩形区域的右下角顶点
坐标。窗口大小从w0×h0开始,到w1×h1结束,每次乘以s。窗口的位置从左上角开始向右下
角移动,每次在水平或者竖直方向移动距离d,直至遍历完所有的可能情况。
本发明方法分为训练和检测两个步骤。
训练部分,首先根据人脸数据集的样本和标注提取像素强度对比特征,利用该特
征训练体积从小到大的W棵集成二叉决策树,将这W棵集成二叉决策树组成级联的集成二叉
决策树。
检测部分,对于一幅输入图像,提取像素强度对比特征得到与原图相同大小的特
征图像S,然后用滑窗在特征图像S上得到所有的子窗口,每一个子窗口都作为之前训练阶
段得到的级联的集成二叉决策树的输入,最后得到输出若为-1则表示该窗口不是人脸,若
为+1则表示该窗口是人脸。
本实施例提出了一种级联的集成二叉决策树作为分类人脸和非人脸的分类器,级
联的集成二叉决策树由体积大小分别为3、7、15、31、63的5棵集成二叉决策树组成,步骤如
下:
训练步骤:
1、采集人脸数据集Is,并对人脸进行标注得到ys;s=1,2,…,S,S表示总的样本个
数,ys∈{-1,+1},+1表示人脸区域,-1表示非人脸区域;
2、用图像集Is及标注ys训练出体积由小到大的5棵集成二叉决策树,其中每一棵集
成二叉决策树由K棵二叉决策树构成,K代表了每一棵集成二叉决策树训练时的迭代次数;
3、将得到的5棵集成二叉决策树从K分别为3、7、15、31、63堆叠在一起,就得到了基
于级联的集成二叉决策树的分类器;基于级联的集成二叉决策树对于降低复杂度主要体现
在前一两级能够用体积比较小的集成二叉决策树直接拒绝大多数的非人脸窗口,这些被判
断为非人脸的窗口就不用再接着通过后面的层级,直接被判断为非人脸区域;
检测步骤:
利用训练得到的分类器,对于新输入的一幅图像,利用滑窗的方法遍历每一个可
能的窗口尺度,对每一个窗口,提取像素强度对比特征,将特征作为分类器的输入,得到的
输出{-1,+1},即可判定该窗口是否包含有人脸。
将像素强度对比特征和级联的集成二叉决策树这两种计算复杂度很小的技术结
合在一起,降低了算法的复杂性,实现了快速的人脸检测。