一种新的多视角背景下人脸检测方法*

2017-11-16 03:35远,何强,文凯,2
关键词:肤色人脸分类器

尹 远,何 强,文 凯,2

(1.重庆邮电大学 通信新技术应用研究中心, 重庆 400065; 2.重庆信科设计有限公司,重庆 400065;3.中国电信股份有限公司 重庆分公司,重庆 400065)

一种新的多视角背景下人脸检测方法*

尹 远1,2,3,何 强1,文 凯1,2

(1.重庆邮电大学 通信新技术应用研究中心, 重庆 400065; 2.重庆信科设计有限公司,重庆 400065;3.中国电信股份有限公司 重庆分公司,重庆 400065)

针对实际生活中普遍存在的多视角、多人脸检测问题,提出了一种新的分类器训练方法及人脸检测的解决方案;首先采用NPD差分特征对人脸特征进行描述,NPD特征通过判断两个像素值间相对差异对人脸进行描述,其特征值可从二维表直接获取,能大大节省训练时间;同时提出了一种深度二叉特征树结构来训练分类器,可有效结合特征间的关联性,将训练得到分类器与肤色算法相结合来提高检测速度;通过在CMU人脸数据库上对所提出算法进行验证,仿真结果证明在多人脸、多视角检测背景环境下,该算法较AdaBoost算法在检测率提高了8.7%,误检率降低了4.1%,检测速度提高了27.7%。

NPD特征;深度二叉特征树;肤色;Adaboost算法

人脸识别的前提是成功地将人脸样本从背景图片中分离出来,正面人脸检测是目前研究较成熟的一个领域,其中典型成果是Viola和Jones[1]提出的基于Haar-like特征的Adaboost级联分类器,然而在另外一些复杂情况下,检测效果并不理想。Viola和Jones之后又出现大量关于人脸检测方法的研究,其主要区别集中在选取不同类型的特征和开发不同构造的分类器。一方面有一系列复杂的特征来替代Haar-like特征,例如HOG(Histogram of Oriented Gradient)、LBP(Local Binary Pattern)、CNN(Convolutional Neural Network)、PICO(Pixel Intensity Comparison-based Object )[2]等特征,其能在一定程度上提高检测效果,代价是需要更多数量的特征,并且耗费更多的训练时间。另一方面很多不同构造的分类器被提出来用于多视角人脸检测,例如Parallel Cascade、Pyramid Architecture、Width-First-Search(WFS)[5],但这些方法有一个共同的缺点,即需要对每一种视角的样本单独训练一个分类器,在实际情况中,人脸视角很难精准划分,并且随着级联分类器复杂度提高,计算成本也会显著增加。基于肤色的人脸检测算法,因为算法简单,有着检测速度快的优势,但是由于干扰众多,其对于复杂情形下的人脸检测效果并不理想,而AdaBoost人脸检测算法适应性强,更加稳定,但算法复杂度高,需要大量的时间训练分类器,虽然误检率较低,但仅适用于正面图像、小角度偏转等简单环境的检测。因此,针对多人脸、大角度偏转的人脸检测问题,结合两类方法的优缺点及新型NPD特征,提出了一种新的人脸检测算法。

1 AdaBoost人脸检测算法

AdaBoost检测算法可以分为两个阶段:训练阶段和检测阶段,图1为AdaBoost算法系统流程图。

图1 AdaBoost人脸检测算法流程图Fig.1 AdaBoost human face detection algorithm procedure

其中,分类器的训练最为繁杂,训练分类器的详细步骤如下。

步骤1 给定训练集:(x1,y1),(x2,y2),…,(xn,yn),其中yi∈{0,1},yi=0表示xi是非人脸样本,yi=1表示xi是人脸样本。

步骤2 初始化样本权重,设定第t次循环中第i个样本的权重ωt,i,人脸样本的初始权重为ω1,i=1/2m,非人脸样本的起始权重为ω1,i=1/2l,其中,m是人脸正样本集的个数,l是人脸负样本集的个数,n是人脸样本的总数,满足n=m+l。

步骤3 设t=1,2,…,T(T为训练过程的最大循环次数)。

(1) 将权重作归一化处理:

(1)

(2) 计算出每个弱分类器hj在全体样本上对于特征j的检测结果的加权错误率εj,公式如下:

(2)

(3) 从所有的弱分类器中挑选分类错误率相对更小的弱分类器ht。

步骤4 根据一定原则把弱分类器构造成强分类器:

(3)

人脸检测阶段中,首先提取待检图像相对应的Haar-like特征,之后将计算的特征值与分类器的阈值进行比较,根据分类器的检测结果,最后输出人脸区域所在的坐标和尺寸信息,从而确定人脸的位置。

AdaBoost算法进行人脸检测存在的主要问题如下:

(1) 用于弱分类器训练的样本数目庞大,针对整幅图像进行的特征提取,Haar-like 特征数目巨大,因此,需要耗费大量的训练时间。

(2) 每个弱分类器都是由多个样本训练得到,有时候弱分类器的阈值设置并不合理,单阈值并不能精准将样本分类。

(3) 对于背景环境复杂的人脸检测,效果有待提高,这是由Haar-like特征的局限性导致的,Haar-like特征更适用于正面人脸检测。

2 NPD特征

NPD特征反映了一幅图像中两个像素之间的关系,定义如下:

(4)

其中x和y分为是两个像素的像素值,当x=0,y=0时f(x,y)=0,这样的设置是合理的,因为在这样的情况下,像素x与像素y并无差异。

图2为NPD特征取值范围示意图,其中横轴与纵轴对应了两个像素点的灰度值,取值范围为0至255,图3为NPD特征示意图,此特征反映了两个像素值间的差异关系。将NPD特征与像素间灰度值的绝对值|x-y|进行对比发现,NPD特征的描述性更强。心理学家Weber指出[6]:对于两个重物的差异感知不是取决于两个物体重量差异的绝对值,而是取决于这一绝对值与总重量的比值,这是Weber通过“肌肉感觉”研究中得到的启示,NPD特征具有很多良好的特性:

图2 NPD特征取值范围示意图Fig.2 NPD feature extraction region

图3 NPD特征示意图Fig.3 NPD feature

(1)反对称性。无论是fx,y还是f(y,x) 都能充分表述特征,从而缩小特征空间,因此一幅s×s的图像(转换成行向量p×1,p=s×s)的NPD特征数d=p(p-1)/2,例如对于一个20×20的模板,其NPD特征总数为79 800。

(2)尺度不变性。其计算的是像素间的相对差值,特征对于光照变化的敏感度会降低,且无论做何种变换,特征值不变。

(3)有界性。-1≤f(x,y)≤1,有界性使特征值便于量化,从而节省特征的选择时间。

3 深度二叉特征树

传统的Adaboost人脸检测器是通过提升单层决策树来选择具有代表性的特征,它通过一个特征的特征阈值将训练样本分成两部分,这也是最基本的分类器模型。对于这种结构有以下两种不足:没法反映不同特征间的关联性;简单的阈值设置忽略了单个特征的多样性。

因此,提出了一种深度分裂二叉树结构分类器,对于一个特征x,用树的一个节点将其分为

mx2+nx+a

(5)

其中m、n、a是常量,t是阈值,选择合适的参数就可以将特征x分成[θ1,θ2]及另外一种情况,其中θ1与θ2是两个经过穷举计算得到的阈值,对于人脸图像的NPD特征,可将其分为以下3种情形:

(6)

(7)

(8)

当目标像素值x明显暗于像素y时对应式(6),当目标像素值x明显亮于像素y时对应式(7),这两个结构的分类情况都可以被传统的分类方式取代,但是对于某些特征,如图3中的特征f3,由于背景亮度是无法确定的,故以上两种情况无法对其进行准确描述,这也凸显式(8)的重要性,此方法与原始的分类条件相比较,利用双阈值进行分类明显比传统分类方式精准。

将NPD特征量化为256个单位,利用穷举法搜素得到两个最佳的阈值,选择的标准为最佳加权错误率,由于NPD特征的有界性,量化很容易完成。与此同时,用NPD特征构成一个深度二叉树,改进了之前树桩型分类器,这种方法将多种NPD特征结合起来描述人脸结构,在训练阶段不需要将样本进行姿态划分,在检测阶段可有效识别多视角人脸,图4为分类器的结构及工作原理。

图4 分类器结构Fig.4 Classifier structure

4 肤色模型

使用肤色算法应用在预检阶段,肤色检测需要两方面知识的运用:色彩空间和肤色模型[7]。色彩空间:将颜色信息通过某种数学表达映射到三维空间。肤色空间:建立数学模型,将色彩空间的肤色与非肤色进行区分的一种数学关系模型,通过数学的方式来判断某个像素点是否属于肤色[8]。

生活中最为常见的视频图像都是基于RGB色彩空间,其能够很好地展现画面的色彩效果,但是对于肤色检测,它不能使亮度与色彩进行分离,从而难以达到肤色聚类的效果,而YCrCb色彩空间刚好具备这一优点,将RGB色彩空间转为YCrCb色彩空间,肤色会产生很好的类聚。简单肤色模型的阈值选择变化太大,相同阈值在不同情形下也易造成肤色分割误差过大,而高斯模型与混合高斯模型的算法复杂度高,对于参数的确定计算量过大,不适合快速检测,与此同时,椭圆边界模型容易建立,算法运行速度快。因此,选择采用基于YCrCb色彩空间的椭圆边界模型。

使用椭圆模型进行肤色区域的判断,其中椭圆模型由大量人脸肤色图片的肤色点训练得到,训练方式如下。

(1) 将YCrCb色彩空间中的色度Cr、Cb进行非线性变换以更好地投影其是否在肤色聚类区域:

(9)

(10)

WCi(Y)=

(11)

(2) 使用上述训练好的椭圆模型进行肤色检测的过程如下:

将RGB色彩空间转换成YCrCb色彩空间:

(12)

Cb′(Y)=

(13)

Cr′(Y)=

(14)

其中,WCb(Y)和WCr(Y)为椭圆模型宽度值。将训练好的椭圆模型存储在二维图像中。将计算得到的Cb′、Cr′值投影到二值图像,如果该点在椭圆区域内部,则判断其为肤色区域,否则为非肤色区域。在人脸检测预处理阶段使用肤色分割技术,能够准确、快速地确定候选人脸区域。

5 算法实现及结果分析

采用的实验环境:Intel(R) Core(TM) i7-6700 CPU @3.40 GHz,8 GB内存,Windows 7 操作系统,在VS2010软件平台上使用C++语言编程实现,相关辅助工具有OpenCV 2.4.8和Matlab R2012a。

在分类器的训练实验中,将正负样本分辨率统一归一化为24×24,对正负样本单独做随机变换,最终生成20万张正样本和20万张负样本作为训练素材,将深度二叉特征树的深度设置为8,在训练过程中将大量不同视角的样本进行训练,总的样本根据最佳加权错误率被单个节点分成两个子样本再进行训练,迭代训练得到的深度二叉特征树分类器,进而得到最终的强分类器。对于每一个树分类器,都需要评估的8个NPD特征,单层训练时间大概为230 s,整个训练流程持续近70 h,训练得到的分类器包含1 017深度特征二叉树,39 568个NPD特征。传统的Adaboost分类器有25级,共41 910个特征,部分训练样本如图5所示。

图5 部分训练样本Fig.5 Part of training samples

为了对算法进行全面总结分析,共进行两轮实验,第一轮实验验证改进算法与原算法的性能区别,第二轮实验验证改进算法与其他优秀多视角检测算法的区别。

第一轮实验分别对单人脸图像、多人脸图像进行了两组实验。测试图片中单人脸图像100张,包含100个人脸,多人脸图像300张,包含1 354个人脸,共计1 454个人脸,所有测试样本均为专门挑选的具有代表性的网络照片。表1、表2分别是单人脸图像实验和多人脸图像实验结果,其中检测时间为该组实验中检测所有样本的时间,肤色算法、Adaboost算法、Adaboost+肤色算法和本文算法的检测效果如图6所示。

图6 4种算法检测效果图Fig.6 The testing effect of four algorithms

检测方法实际人脸数/个正确检测人脸数/个人脸检测正确率/%误检人脸数/个误检率/%检测时长/s肤色100999954.81.72Haar⁃like100989843.93.54肤色+Haar⁃like100999932.92.57本文算法100999932.9%2.43

表2 多人脸图像集检测结果

由表1及表2得到的实验数据分析可得如下结论。

(1) 针对简单的单人脸样本图像,肤色算法的检测率很高,但是由于肤色特征受到光照等因素的干扰也比较大,导致此方法的误检率很高,但另一方面,由于肤色算法简单,检测速度较快;基于Haar-like特征的Adaboost算法其检测率低于肤色算法,但由于提取了图像的特征,误检率得到了降低,然而Haar-like特征数量众多,导致其检测速度较慢;基于肤色+Haar-like的检测算法结合了两种算法的优点,相比于Haar-like特征算法,提高了检测率与检测速度,但由于Haar-like特征的局限性,其误检测仍然很高;本文算法采用NPD特征和深度二叉树训练分类器,进一步优化了肤色+Haar-like特征算法,但是由于本轮实验的测试样本过于简单,并不能突出改进算法的优势。

(2) 当测试图像变换为复杂的多人脸图像时,4种算法的性能均有所下降,也说明了人脸检测课题在复杂环境下的挑战性,同时也凸显了本文算法在复杂环境下的优势。本轮实验中,将本文算法与肤色算法对比,由于肤色算法简单,固其在检测速度上还是有优势,但是其误检率却明显高于本文算法;与Haar-like特征算法、肤色+Haar-like特征算法进行对比,本文算法检测率、误检率、检测速度均占有优势。

第二轮实验的目的是进一步对本文算法进行横向比较,3种算法均在CMU的Profile测试集上进行检测实验,结果如图7所示。与本文进行对比实验的是可控风险敏感AdaBoost算法(CCS-AdaBoost,Controlled Cost-sensitive AdaBoost)[9]、基于LBP的CCS-AdaBoost算法[10]。

由图7和表3中的实验数据分析可得以下结论。

CCS-AdaBoost算法和LBP+AdaBoost算法作为最小化误分类风险算法,对于分类器的结构进行了简化,优点在于检测速度较快,本文算法的检测速度虽不及CCS-AdaBoost算法和LBP+AdaBoost算法,但依然能达到实时检测的要求。本文使用的NPD差分特征具有反对称性、有界性、尺度不变性,仅根据两个像素值即可进行特征值的计算,并且可以直接利用表来查找值而不用二次计算,使用深度二叉树结构训练分类器,能充分利用特征之间的关联性,提高分类器特征的效率,且双阈值的样本划分更为精准,利用肤色算法确定肤色区域,大大减少待检测区域,从而减少检测时间,在误检数相同的情况下,本文算法较CCS-AdaBoost算法、LBP+AdaBoost算法的检测率更高。综合考虑,本文算法对于人脸系统相关应用的开发具有重要意义。

图7 不同多视角检测算法对比图Fig.7 Contrast of different multi-angle detection algorithms

算 法CCS⁃AdaBoostLBP+CCS⁃AdaBoost本文算法检测速度/ms8.710.212.3

6 结束语

提出了一种基于NPD特征的人脸检测方法,可有效解决大角度偏转下的人脸检测问题,NPD特征计算更为简单,因此更加稳定,深度二叉树的采用,将大量特征更高效地结合起来,不同视角的人脸分别对应不同的子树分类器,可有效解决多视角下的人脸检测问题,今后将进一步改善在其他复杂情况下的检测问题,并优化性能,使其尽早应用于实际视频监控环境中。

[1] VIOLA P, JONES M. Rapid Object Detection using a Boosted Cascade of Simple Features[C]//Proceedings of the 2001 IEEE Computer Society Conference on. IEEE, 2003(1): 511-518

[2] LI S Z, ZHU L, ZHANG Z Q, et al. Statistical Learning of Multi-view Face Detection[C]//European Conference on Computer Vision. Berlin: Springer Berlin, 2002: 67-81

[3] MITA T, KANEKO T, HORI O. Joint Haar-like Features for Face Detection[C]//Computer Vision, 2005. ICCV 2005. Tenth IEEE International Conference on. IEEE, 2005, 2: 1619-1626

[4] JEONG K, CHOI J, JANG G J. Semi-local Structure Patterns for Robust Face Detection[J]. IEEE Signal Processing Letters, 2015, 22(9): 1400-1403

[5] HUANG C, AI H, LI Y, et al. High-performance Rotation Invariant Multiview Face Detection[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2007, 29(4)

[6] CHEN J, SHAN S, HE C, et al. WLD: A Robust Local Image Descriptor[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2010, 32(9): 1705-1720

[7] AMJAD A, GRIFFITHS A, PATWARY M N. Multiple Face Detection Algorithm Using Colour skin Modelling[J]. Iet Image Processing, 2012, 6(6):1093-1101

[8] MARKU N, FRLJAK M, PAND I S, et al. Object Detection with Pixel Intensity Comparisons Organized in Decision Trees[J]. Computer Science, 2013, 14(4):2657-62

[9] DINGLI S, BINGRU Y, FUXING Y. Study of the Cost-sensitive AdaBoost Face Detection Algorithm[C]//Proceedings of International Conference on Computer Application and System Modeling.Beijing: IEEE Press, 2010

[10] 何智翔,丁晓青 ,方驰, 等. 基于 LBP 和 CCS-AdaBoost 的多视角人脸检测[J]. 浙江大学学报(工学版), 2013 (4): 622-629

HE Z X, DING X Q, FANG C, et al. Multiview Human Face Detection Based on LBP and ccs-AdaBoos[J]. Journal of Zhejing University (Techndogy Edition), 2013(4):622-629

A Human Face Detection Algorithm Based on Skin and Depth of a Feature Binary Tree

YINYuan1,2,3,HEQiang1,WENKai1,2

(1.Research Center for Application of New Communication Technology, Chongqing University of Posts and Telecommunications, Chongqing 400065, China; 2. Chongqing Information Technology Designing Co., Ltd, Chongqing 400065, China; 3. Chongqing Branch, China Telecom Co., Ltd, Chongqing 400065, China)

In this paper, a new classifier training method and human face detection solution are proposed for multi-face and multi-view face detection problems which are prevalent in real life. Firstly, NPD (Normalized Pixel Difference) feature is used to describe the facial feature, the NPD feature describes the human face by judging the relative difference between the two pixel values, its eigenvalues can be obtained directly from the two-dimensional table, which can greatly save the training time. At the same time, a kind of depth binary function tree structure is proposed to train the classifier, which can effectively combine the correlation between the features and combine the training with the skin color algorithm to improve the detection speed. Through the test of the proposed algorithm in this paper in CMU human face database, simulation results indicate that the algorithm improves the detection rate by 8.7%, error detection rate reduced 4.1%, detection speed improved 27.7% under multi-face and multi-view background.

NPD feature; depth of binary tree feature; skin color; Adaboost algorithm

TP 391.41

A

2017-02-12;

2017-03-30.

2015年重庆市研究生创新科研项目(CYS15166).

尹远(1963-),男,重庆市人,高级工程师,从事通信经营管理、计算机视觉和移动通信研究.

责任编辑:罗姗姗

猜你喜欢
肤色人脸分类器
有特点的人脸
一起学画人脸
肤色(外一首)
Conversation in a house
人的肤色为什么不同
为什么人有不同的肤色?
三国漫——人脸解锁
基于实例的强分类器快速集成方法
加权空-谱与最近邻分类器相结合的高光谱图像分类
结合模糊(C+P)均值聚类和SP-V-支持向量机的TSK分类器