背景技术
近年来,由于反恐、国土安全和社会安全的需要,世界上各个国家对安防领域加大了投入,而身份识别正是安防的一个核心问题。随着计算机视觉和模式识别技术的快速发展,基于生物特征识别的身份识别技术得到了迅猛的发展,在很多领域都有了应用,越来越显示出其巨大的商业价值和社会价值。人脸识别作为用户接受度最高、最自然、最直观的可视化生物识别技术,其技术和应用价值正在突显。随着生物特征电子护照等出入境政府项目广泛采用人脸识别,人脸识别技术在公安、航空等行业出现了大规模的应用。
人脸检测作为人脸识别的第一步,其重要意义就不言自明。此外,人脸检测在表情识别、人口统计、人流量统计、视频触发抓拍及智能视频监控的事件报警分析也有着广泛的应用前景。另外,人脸检测的算法理论和实现方法也可以应用到诸如车辆检测、行人检测、人头检测等目标检测中。
人脸检测的目的是为了确定图像或视频中人脸的位置、大小和数量。由于人脸模式的复杂性(脸部肤色的不同、表情的改变、胡须、化妆及饰物遮挡等等)、人脸的各种姿态(人脸与摄像机角度的变化导致)以及周围环境光照的变化(如强烈的侧光所产生的阴阳脸)使得人脸检测技术是一项富有挑战性的研究工作,特别是复杂场景下的多视角人脸检测。复杂场景是指对于人脸所处环境光线变化恶劣、且背景复杂、干扰很多等情况,而多视角人脸是指检测图像中覆盖一个较大的视角范围的人脸表观模式,一般上是指左右偏转90度所形成的180度范围,而且人脸存在上下俯仰和倾斜。
目前最为常用的人脸检测算法就是基于Boosting学习的人脸检测方法,Boosting学习算法的核心思想就是通过迭代挑选出多个具有不同分类能力的弱分类器进行组合形成强分类器,其中分类能力较强的弱分类器具有更大的决策权。最为典型的就是Viola等人提出的基于Haar特征的离散AdaBoost算法,并用这一算法学习Cascade型级联结构的正面人脸检测器,使得正面人脸检测达到了实用效果。
但是复杂场景下的多视角人脸检测的研究相对薄弱,其难度也大得多,目前提出的算法较少,离实际应用还存在一定距离。总的来说,多视角人脸检测算法主要经历了三个阶段,典型代表有:并行级联结构的检测方法、金字塔结构的检测方法和矢量树结构的检测方法。这些多视角人脸检测方法的本质都是基于Boosting学习框架下的一大类方法,其主要区别在于检测器的结构设计、Boosting学习算法的形式和采用的特征方面。
其中,并行级联结构的检测方法是最为直观、简单初级的多视角人脸检测方法,通过为每一个视角的人脸训练出一个对应的级联结构检测器,然后在检测过程中依次利用每个检测器对图像中的人脸进行判断,从而实现多视角人脸检测的功能。其中每个级联结构检测器的训练是独立的,分类器的训练算法采用连续AdaBoost学习算法,采用的特征为Haar特征。由于算法仅仅是对多个单视角人脸检测器的简单联合,没有考虑到不同视角人脸间的相似性,所以在检测过程中每个检测器都要对所有的子窗口进行遍历,而一般情况下绝大多数子窗口是非脸部区域,这样就会在非人脸区域上进行重复遍历,耗费大量时间,从而降低检测速度。
金字塔结构检测方法采用由粗到精的检测策略,利用了不同目标间的相似性,并且将目标进行从上至下的划分,根据此相似性训练出一个类似金字塔结构的多视角检测器,然后在检测过程中将子窗口依次送到金字塔结构的各层分类器进行检测,直到最后一层检测出目标。其中分类器的训练算法采用Float Boost学习算法,采用的特征同样为Haar特征。相比简单并行级联结构的检测方法,该方法考虑到了不同视角人脸间的相似性,但是该方法却未考虑到同类视角人脸间的差异性,因此被父节点判定为人脸的子窗口都要被送到下一层的各个孩子结点当中,直到该层所有节点分类器将其判定为非人脸子窗口时才判为非人脸子窗口,从而在一定程度浪费了过多的计算代价在非人脸子窗口上,因此降低了检测速度。
矢量树结构的检测算法同样采用由粗到精的检测策略,并同时兼顾不同视角下人脸间的相似性与同种视角下人脸的差异性,训练出一个树状结构的多视角检测器。如图1所示,其中圆圈为节点分类器;然后在检测过程中根据矢量树中的分支节点分类器的输出结果来判断子窗口将送到下一层的哪个子节点中,依次往下直到最后一层。其中矢量树中的各个节点分类器采用VectorBoosting学习算法进行训练,采用的特征为Haar特征和边缘方向直方图EOH特征。由于矢量树检测器能够很好兼顾不同视角下人脸间的相似性与同种视角下人脸的差异性,因此该方法应该是目前最为常用、经典的多视角人脸检测方法之一。但是,本发明的发明人发现,目前的矢量树结构的检测方法仍存在如下几点不足:
1、由于该矢量树中的各个节点分类器为一强分类器,其中包含多个孩子节点的节点分类器为分支节点分类器,如图1中的实线圆圈,由于分支节点分类器承担着去除非人脸子窗口和不同视角人脸子窗口细分类的目的,因此在这些分支节点分类器中往往会非常复杂,包含过多的弱分类器,从而降低检测速度。
2、矢量树中各个节点分类器之间没有联系,独立地进行决策,从而浪费了被测子窗口在其父节点分类器上的分类信息。
3、训练过程中采用的Haar特征和EOH特征的特征池过于庞大,往往包含几万,甚至十几万个特征,而从如此庞大的特征池中挑选出仅有上千个具有强分类能力的特征是项非常耗时的工作。因此该方法训练一个鲁棒的多视角人脸检测器时往往需要耗费几个星期,甚至更长的时间。
发明内容
本发明的目的在于提供一种复杂场景下的多视角人脸检测方法及其装置,在保证检测率的同时提高检测速度。
为解决上述技术问题,本发明的实施方式提供了一种复杂场景下的多视角人脸检测方法,包含以下步骤:
使用包含多个节点分类器的级联矢量树结构检测器对输入的待测子窗口进行检测,该级联矢量树结构检测器中包括至少一个分支节点分类器,并且,在至少一个分支节点分类器之前,有至少一个级联的无分支节点分类器;
其中,如果无分支节点分类器将待测子窗口判定为非人脸子窗口,则停止与该无分支节点分类器级联的分支节点分类器对该待测子窗口的进一步检测;如果无分支节点分类器将待测子窗口判定为人脸子窗口,则将该待测子窗口送到与该无分支节点分类器级联的分支节点分类器继续检测。
本发明的实施方式还提供了一种复杂场景下的多视角人脸检测装置,包含:
检测窗口获取模块,用于根据输入图像获取待测子窗口;
级联矢量树结构检测器训练模块,用于根据训练样本训练得到包含多个节点分类器的级联矢量树结构检测器,级联矢量树结构检测器中包括至少一个分支节点分类器,并且,在至少一个分支节点分类器之前,有至少一个级联的无分支节点分类器;
检测模块,用于使用级联矢量树结构检测器对检测窗口获取模块获取到的待测子窗口进行检测,其中,当级联矢量树结构检测器中的无分支节点分类器将待测子窗口判定为非人脸子窗口时,停止与该无分支节点分类器级联的分支节点分类器对该待测子窗口的进一步检测;当无分支节点分类器将待测子窗口判定为人脸子窗口时,将该待测子窗口送到与该无分支节点分类器级联的分支节点分类器继续检测。
本发明实施方式与现有技术相比,主要区别及其效果在于:
在对待测子窗口进行人脸检测的级联矢量树结构检测器中,在至少一个分支节点分类器之前,有至少一级联的无分支节点分类器。如果无分支节点分类器将待测子窗口判定为非人脸子窗口,则停止与该无分支节点分类器级联的分支节点分类器对该待测子窗口的进一步检测;如果无分支节点分类器将所述待测子窗口判定为人脸子窗口,则将该待测子窗口送到与该无分支节点分类器级联的分支节点分类器继续检测。通过在分支节点分类器之间引入级联分类器,利用级联分类器对各个分支上的非人脸子窗口进行逐级有效的去除,降低了分支节点分类器的复杂度,减少了所含的弱分类器个数,从而在保证检测率的同时提高检测速度。
进一步地,以先根遍历的方式进行递归训练各个节点分类器,在训练每个节点分类器时,计算父节点分类器对于训练样本的分类置信度,用计算的置信度作为特征值训练得到嵌入式弱分类器,将训练得到的嵌入式弱分类器作为第一个弱分类器嵌入到当前的节点分类器当中;当前的节点分类器中其他的普通弱分类器通过根据训练样本计算的特征值训练得到。通过将嵌入式分类器结构引入到矢量树结构检测器中,使得当前的节点分类器能够继承其父节点分类器的分类置信度,从而加快了检测器的收敛,使得训练出的检测器中包含的特征数目更少,进一步提高了检测速度,提升检测性能。
进一步地,根据训练样本计算的特征值为分块局部二值模式特征值,分块局部二值模式特征值为将图像中的一个分块中像素值的和当做一个像素值来计算局部二值模式的特征值。由于分块局部二值模式特征值(即分块LBP特征),具有很好的纹理描述性能以及结构简单、计算快速等优点,更为重要的是分块LBP特征池的数目较少,因此在挑选分块LBP特征时速度很快,大大提高了检测器的训练速度和检测速度。
进一步地,采用至少2个级联矢量树结构检测器对输入的待测子窗口进行检测,其中,至少有一个级联矢量树结构检测器的输入特征为其他级联矢量树结构检测器的输入特征的旋转值。其中,其他级联矢量树结构检测器的输入特征为分块局部二值模式特征值。在检测过程中通过旋转分块局部二值模式特征值,可以将检测器进行扩展,从而在不需要对输入图像进行旋转的情况下达到全视角的人脸检测,扩展了检测器的检测视角,而且,分块局部二值模式特征值的旋转的计算量远小于图的旋转和积分图的计算,因此可有效减少计算量。
进一步地,每个节点分类器在训练之前都要对训练样本进行重采样,以保证训练该节点时所用的正样本都是被其父节点分类器所正确分类的正样本,而所有的负样本是被其父节点分类器错误分类为正样本的负样本,从而使得当前的节点分类器能够集中对被父节点分类器所误分的样本进行分类。
具体实施方式
在以下的叙述中,为了使读者更好地理解本申请而提出了许多技术细节。但是,本领域的普通技术人员可以理解,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请各权利要求所要求保护的技术方案。
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的实施方式作进一步地详细描述。
本发明第一实施方式涉及一种复杂场景下的多视角人脸检测方法,具体流程如图2所示。
在步骤201中,预先根据训练样本,训练出级联矢量树结构检测器。具体地说,首先,根据人脸的姿势按照视角进行从上至下,由粗到细进行划分,构造出一个级联矢量树,级联矢量树中的每个节点即为一个节点分类器,节点分类器分为分支节点分类器(即有多个子节点的节点分类器)和无分支节点分类器(即只有一个子节点的节点分类器),在至少一个分支节点分类器之前,有至少一个级联的无分支节点分类器。
然后利用训练样本采用先根遍历方式依次训练各个节点分类器,每个节点分类器在训练之前都要对训练样本进行重采样,以保证训练该节点时所用的正样本都是被其父节点分类器所正确分类的正样本,而所有的负样本是被其父节点分类器错误分类为正样本的负样本,从而使得当前的节点分类器能够集中对被父节点分类器所误分的样本进行分类。
在本实施方式中,训练出的级联矢量树结构检测器如图3所示,图中的圆圈为节点分类器,其中实线圆圈为分支节点分类器,虚线圆圈为无分支节点分类器,省略点表示一系列无分支节点分类器的缩略。所有的节点分类器的输出为一向量,向量的维数与其孩子节点数目一致。例如图3中,如果第一个分支节点分类器A的输出结果为{1,1,0},则表示该子窗口可能为向左侧偏转的脸或正面脸,不可能是向右侧偏转的脸,然后在下一层中,该子窗口被送到向左侧偏转的脸和正面脸对应的强分类器中;如果分类结果为{0,0,0},则表示该子窗口是非人脸窗口。而对于无分支节点分类器,也就是一般节点分类器,由于其孩子节点数目为1,则其输出向量的维数也为1,向量就退化成一个二分类值的标量,并与后面挂接的一系列无分支节点分类器(图中省略点表示)形成级联分类器,从而降低后续分支节点分类器的复杂度,提高人脸检测的效率,其中级联分类器的层数(即在分支节点分类器之前级联的无分支节点分类器的层数)可以事先设定也可以通过设定检测指标来动态设定。
从图3中可以看出,训练出的级联矢量树结构检测器共包含15个视角,平面外旋转分为5个姿态,依次为左全侧(-90,-54)、左半侧(-54,-18)、准正面(-18,+18)、右半侧(+18,+54)和右全侧(+54,+90)5个视角,每个平面外旋转视角下再细分为3个平面内旋转视角,依次为旋转-30(-45,-15),0度(-15,+15)和30度(+15,+45)。这样该级联矢量树结构检测器的检测能力能够覆盖平面外旋转180度的范围和平面内旋转90度的范围。
在步骤202中,判断是否需要进行多视角的人脸检测,如果需要进行多视角的人脸检测,则进入步骤203。
在步骤203中,遍历待检测的图像,获取到待测子窗口,并将获取到的待测子窗口,输入到在步骤201中训练出的级联矢量树结构检测器中。
接着,在步骤204中,使用在步骤201中训练出的级联矢量树结构检测器对输入的待测子窗口进行检测。
具体地说,对于一个待测子窗口,从根节点开始遍历各个节点分类器对其进行类别属性的判断,如果级联矢量树结构检测器中的某一分支上的节点分类器将该待测子窗口判为非人脸,则停止向下访问其孩子节点,转而向上递归访问其它分支上的节点分类器。如果待测子窗口通过某一分支上所有节点分类器,直到叶子节点,则该子窗口被判为人脸,而且该人脸的视角类别就是该叶子节点所对应的类别,如图4所示。也就是说,包括根节点在内的每一个获得待测子窗口输入的节点分类器按如下方式处理:如果判定为非人脸子窗口,则结束本分支对该待测子窗口的检测(即不再送到孩子节点中检测);否则,如果本节点不是叶子节点,则将该待测子窗口送到该节点的至少一个子节点中进一步检测,如果本节点已经是叶子节点了,则判定该子窗口为人脸,且该人脸的视角类别就是该叶子节点所对应的类别。
接着,在步骤205中,判断是否已处理完待检测图像中的所有待测子窗口,如果没有,则回到步骤203,获取新的待测子窗口进行检测;如果已处理完待检测的图像的所有待测子窗口,则进入步骤206,输出人脸检测结果。
在本实施方式中,复杂场景下的多视角人脸检测方法主要包括级联矢量树结构检测器的训练和利用训练出的检测器进行多视角人脸的检测两部分,如图5所示,图中的虚线上面部分为检测器的训练部分,下面为利用检测器进行检测部分。通过在分支节点分类器之间引入级联分类器,利用级联分类器对各个分支上的非人脸子窗口进行逐级有效的去除,降低了分支节点分类器的复杂度,减少了所含的弱分类器个数,从而在保证检测率的同时提高检测速度。
本发明第二实施方式涉及一种复杂场景下的多视角人脸检测方法。第二实施方式在第一实施方式的基础上进行了改进,主要改进之处在于:在本实施方式中,在训练得到级联矢量树结构检测器时,为了更好的继承父节点分类器已有的分类能力,引入了嵌入式弱分类结构。
具体流程如图6所示,在步骤601中,根据人脸姿态及角度的划分,创建一个矢量树,矢量树中的每个节点为一个节点分类器。
接着,在步骤602至步骤604中,从根节点开始,以先根遍历的方式进行递归训练各个节点分类器。
具体地说,在步骤602中,训练样本重采样,并初始化样本权重。
接着,在步骤603中,训练遍历的当前节点分类器。具体训练流程如图7所示,在训练每个节点分类器时,计算父节点分类器对于训练样本的分类置信度,用计算的置信度作为特征值训练得到嵌入式弱分类器,将训练得到的嵌入式弱分类器作为第一个弱分类器嵌入到当前的节点分类器当中。当前的节点分类器中其他的普通弱分类器通过根据训练样本计算的特征值训练得到。通过将嵌入式分类器结构引入到矢量树结构检测器中,使得当前的节点分类器能够继承其父节点分类器的分类置信度,从而加快了节点分类器的收敛,使得训练出的检测器中包含的特征数目更少,进一步提高了检测速度,提升检测性能。
值得一提的是,在训练普通弱分类器时,根据训练样本计算的特征值为分块局部二值模式特征值,该分块局部二值模式特征值(即分块LBP特征值)为将图像中的一个分块中像素值的和当做一个像素值来计算局部二值模式的特征值。在本实施方式中,通过以下方式计算图像中一个区域的分块局部二值模式特征值:
如图8所示,首先,将一个区域分为9个同等大小的3*3的矩形块。然后,计算各个矩形块内部的像素灰度值总和,然后将中心块的像素灰度值总和,与其8个邻域块的像素灰度值总和进行大小比较。如果邻域块的像素灰度值总和大于中心块的像素灰度值总和,则该邻域块的值设为1。如果邻域块的像素灰度值总和小于或等于中心块的像素灰度值总和,则该邻域块的值设为0。最后,将得到的8个邻域块值连接起来,形成一个8位的二进制串,将该二进制串的十进制值即作为区域的分块局部二值模式特征值。图8中的(a)部分为矩形块灰度分布示意;(b)部分为设置的邻域块的值,根据设置的邻域块的值,得到的分块LBP特征值为01111000=120;(c)部分为分块LBP特征值对于描述示意。由此可见,选用分块LBP特征作为弱分类器的基本特征,能够很好的描述脸部特征纹理,其结构类似于Haar-like特征结构。
由于该矩形窗口的位置、大小是可以改变的,因此在一24*24归一化后的人脸区域内,共有8000多个这样的特征。相比传统的LBP特征,分块LBP特征具有更强的姿态纹理变化适应性;而相比Haar特征,在同样区域的内,其特征数目要明显减少,从而训练速度就会得到大大提升。在训练过程中,以样本的LBP特征值为基数对样本进行划分;然后计算出每个划分上的分类能力,并根据其分类能力对这些划分进行排序;最后利用Gentle AdaBoost对这些排序好的划分进行分类,寻找出最小均方误差错误率下的最优分类及输出置信度。
由于现有技术中使用的LBP特征,对LBP特征计算直方图,得到一个向量。而本实施方式中的分块LBP得到的是一个标量,经实践检验效果优于不分块的。分块LBP特征与传统LBP特征对于检测性能影响的实验结果如下:
对比实验是在CMU_PROFILE_IMG库上测试得到,该库是当前多视角人脸检测算法的通用测试库,该库中共有208张测试图片,里面包含441个人脸,其中每个人脸的姿势都有很大不同。表1就是具体的测试结果,其中的误检个数表示总共误检为人脸目标的个数,表格中的百分比为人脸检测率,只有当误检个数越少,并且检测率越高的情况下,才表明选用的特征性能越好,因此从表1中可以明显看出选用分块LBP特征作为弱分类器的基本特征具有明显的性能优势。
表1对比结果
不难发现,在如图7所示的节点分类器的训练流程中,前半部分是嵌入式弱分类器的训练流程,后半部分是普通弱分类器的训练流程,从图7中可以看出,两者最大的区别在于弱分类器的训练采用了不同的特征值,使用置信度作为特征值时特征值是连续的实数值,而分块LBP特征值是离散的整数值,而特征值的不同也导致使用的分类器有所区别,前者使用基于桩的分类器,而后者使用基于区间的分类器。
节点分类器的输出置信度为:
其中,hnested(Confp(x))为嵌入式弱分类器的输出置信度,ht(x)为普通弱分类器的输出置信度。由于本实施方式采用的基于嵌入式结构的节点分类器中继承了父节点分类器上的置信度,因此相比一般的节点分类器其所包含的弱分类器个数更少,收敛速度更快,从而在检测过程中的检测速度也有明显提高。
在训练得到当前的节点分类器后,进入步骤604,判断是否已经遍历训练完成各个节点分类器,如果是,则训练结束;如果没有,则回到步骤602,继续训练下一节点分类器,直至完成所有节点分类器的训练。
在本实施方式中,在训练得到级联矢量树结构检测器之后的流程,与第一实施方式类似,在此不再赘述。
本发明第三实施方式涉及一种复杂场景下的多视角人脸检测方法。第三实施方式在第二实施方式的基础上进行了改进,主要改进之处在于:采用至少2个级联矢量树结构检测器对输入的待测子窗口进行检测,其中,至少有一个级联矢量树结构检测器的输入特征为其他级联矢量树结构检测器的输入特征的旋转值。其中,其他级联矢量树结构检测器的输入特征为分块LBP特征值。
由于分块LBP特征可以很方便的被镜像或旋转90度,因此在本实施方式中,在多视角人脸检测过程中还引入了特征旋转机制,将分块LBP特征旋转,构造出其它倾斜角度下的检测器,从而将训练出的原先仅具有15个视角的级联矢量树检测器扩展到60个视角的全视角检测器,能够覆盖平面外旋转(-90,+90),平面内旋转360度。即采用旋转特征的方式来扩展矢量树结构检测器的检测视角,利用旋转检测器的基本特征形成一个全视角的并行的级联矢量树结构检测器集,在检测过程中对输入的待测子窗口进行并行检测。
比如说,使用4个级联矢量树结构检测器,因为每个级联矢量树结构检测器的覆盖范围是90度,将分块LBP特征转3次,形成4棵树,分别导入形成一个并行的级联矢量树结构检测器集进行并行多视角人脸检测。由于现有技术中是使用一个矢量树结构检测器,每次将图转90度后导入同一个矢量树结构检测器进行检测。但是,由于图的旋转计算量大,图旋转后还要计算积分图,也有很大的计算量,而分块LBP特征的旋转的计算量远小于图的旋转和积分图的计算。因此,在检测过程中通过旋转分块LBP特征,可以将检测器进行扩展,从而在不需要对输入图像进行旋转的情况下达到全视角的人脸检测,扩展了检测器的检测视角,而且,可有效减少计算量。
本发明的各方法实施方式均可以以软件、硬件、固件等方式实现。不管本发明是以软件、硬件、还是固件方式实现,指令代码都可以存储在任何类型的计算机可访问的存储器中(例如永久的或者可修改的,易失性的或者非易失性的,固态的或者非固态的,固定的或者可更换的介质等等)。同样,存储器可以例如是可编程阵列逻辑(Programmable Array Logic,简称“PAL”)、随机存取存储器(Random Access Memory,简称“RAM”)、可编程只读存储器(Programmable Read Only Memory,简称“PROM”)、只读存储器(Read-Only Memory,简称“ROM”)、电可擦除可编程只读存储器(Electrically Erasable Programmable ROM,简称“EEPROM”)、磁盘、光盘、数字通用光盘(Digital Versatile Disc,简称“DVD”)等等。
本发明第四实施方式涉及一种复杂场景下的多视角人脸检测装置。如图9所示,该复杂场景下的多视角人脸检测装置包含:
检测窗口获取模块,用于根据输入图像获取待测子窗口。
级联矢量树结构检测器训练模块,用于根据训练样本训练得到包含多个节点分类器的级联矢量树结构检测器,级联矢量树结构检测器中包括至少一个分支节点分类器,并且,在至少一个分支节点分类器之前,有至少一个级联的无分支节点分类器。在分支节点分类器之前级联的无分支节点分类器的层数预先设定,或根据多视角人脸的检测指标动态设定。该级联矢量树结构检测器训练模块包含矢量树创建子模块和样本更新子模块。其中,矢量树创建子模块用于根据人脸姿态及角度的划分,创建一个矢量树,矢量树中的每个节点为一个节点分类器。样本更新子模块用于在训练每个节点分类器之前,对训练样本进行重采样。级联矢量树结构检测器训练模块以先根遍历的方式进行递归训练各个节点分类器。
检测模块,用于使用级联矢量树结构检测器对检测窗口获取模块获取到的待测子窗口进行检测,其中,当级联矢量树结构检测器中的无分支节点分类器将待测子窗口判定为非人脸子窗口时,停止与该无分支节点分类器级联的分支节点分类器对该待测子窗口的进一步检测。当无分支节点分类器将待测子窗口判定为人脸子窗口时,将该待测子窗口送到与该无分支节点分类器级联的分支节点分类器继续检测。
具体地说,检测模块将检测窗口获取模块获取的待测子窗口输入到级联矢量树结构检测器的根节点中,从根节点开始遍历所述矢量树结构,如果该矢量树结构中某个节点分类器将待测子窗口判定为非人脸子窗口,则停止向下访问该节点分类器的子节点,转而向上递归访问其它分支上的节点;如果该待测子窗口通过某一分支上所有节点分类器,直到叶子节点,则该待测子窗口被判为人脸,而且该人脸的视角类别就是该叶子节点所对应的类别。
不难发现,第一实施方式是与本实施方式相对应的方法实施方式,本实施方式可与第一实施方式互相配合实施。第一实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一实施方式中。
本发明第五实施方式涉及一种复杂场景下的多视角人脸检测装置。第五实施方式在第四实施方式的基础上进行了改进,主要改进之处在于:级联矢量树结构检测器训练模块还包含以下子模块:
分类置信度计算子模块,用于在训练每个节点分类器时,计算父节点分类器对于训练样本的分类置信度。
嵌入式弱分类器训练子模块,用于将分类置信度计算子模块计算的置信度作为特征值训练得到嵌入式弱分类器,并将训练得到的嵌入式弱分类器作为第一个弱分类器嵌入到当前的节点分类器当中。
普通弱分类器训练子模块,用于通过根据训练样本计算的特征值训练得到当前的节点分类器中其他的普通弱分类器。
其中,据训练样本计算的特征值为分块局部二值模式特征值。该分块局部二值模式特征值为将图像中的一个分块中像素值的和当做一个像素值来计算局部二值模式的特征值。
普通弱分类器训练子模块通过包含以下子单元,计算图像中一个区域的分块局部二值模式特征:
划分子单元,用于将一个区域分为9个同等大小的3*3的矩形块。
像素灰度值总和计算子单元,用于计算各个矩形块内部的像素灰度值总和。
比较子单元,用于将中心块的像素灰度值总和,与其8个邻域块的像素灰度值总和进行大小比较。
设置子单元,用于对于像素灰度值总和大于中心块的像素灰度值总和的邻域块,将该邻域块的值设为1。对于像素灰度值总和小于或等于中心块的像素灰度值总和的邻域块,将该邻域块的值设为0。
连接子单元,用于将得到的8个邻域块值连接起来,形成一个8位的二进制串,将该二进制串的十进制值即作为区域的分块局部二值模式特征。
不难发现,第二实施方式是与本实施方式相对应的方法实施方式,本实施方式可与第二实施方式互相配合实施。第二实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第二实施方式中。
本发明第六实施方式涉及一种复杂场景下的多视角人脸检测装置。第六实施方式在第五实施方式的基础上进行了改进,主要改进之处在于:检测模块采用至少2个级联矢量树结构检测器对输入的待测子窗口进行检测,其中,至少有一个级联矢量树结构检测器的输入特征为其他级联矢量树结构检测器的输入特征的旋转值。其他级联矢量树结构检测器的输入特征为分块局部二值模式特征值。
不难发现,第三实施方式是与本实施方式相对应的方法实施方式,本实施方式可与第三实施方式互相配合实施。第三实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第三实施方式中。
需要说明的是,本发明各设备实施方式中提到的各单元都是逻辑单元,在物理上,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现,这些逻辑单元本身的物理实现方式并不是最重要的,这些逻辑单元所实现的功能的组合是才解决本发明所提出的技术问题的关键。此外,为了突出本发明的创新部分,本发明上述各设备实施方式并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,这并不表明上述设备实施方式并不存在其它的单元。
虽然通过参照本发明的某些优选实施方式,已经对本发明进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。