第4卷第5期 智能系统学报 Vol.4 No.5 2009年10月 CAAI Transactions on Intelligent Systems 0ct.2009 d:10.3969/j.issn.1673-4785.2009.05.010 基于粒特征和连续Adaboost的人脸检测 陈春燕,章品正,罗立民 (东南大学影像科学与技术实验室,江苏南京210096) 摘要:提出了一种基于粒特征和连续Adaboost算法的人脸检测方法.它使用粒特征并扩展贝叶斯决策弱分类器, 设计具有连续置信度输出的查找表型弱分类器形式,构造出弱分类空间,使用大规模的训练集和验证集,采用连续 Adaboost算法学习得到Boostingz动态级联型的人脸检测器.在OM-HIT正面人脸测试集上,误报20个时,检测率为 90%以上.在一台Pentium Dual--1.2Gh的PC上,处理一幅大小为320X240像素大小的图片平均需100s.实验结 果表明该方法取得了比较好的精度和速度 关键词:粒特征:贝叶斯决策:连续Adaboost:Boosting级联:人脸检测测 中图分类号:P391.41文献标识码:A文章编号:1673-4785(200905-0446-07 Face detection using real Adaboost on granular features CHEN Chun-yan,ZHANG Pin-zheng,LUO Li-min (Image Science and Technology Laboratory,Southeast University,Nanjing 210096,China) Abstract:A face detection method based on sparse granular features and the real adaptive boosting(Adaboost)m ta-algorithm was proposed.A sparse granular feature set was introduced into the Adaboost learning framework.A weak look-up-table(LUT)type classifier with real confidence output was designed by extending the Bayesian stump.Then,the space of the weak classifier was constructed.The Adaboost cascade face detector was taught by using a large training set and an evaluation set.Experiments were perfomed on the CMU-MII dataset,a standard public data set for benchmarking frontal face detection systems.The detection rate reached over 90%when false a- larms were 20.The average processing time on a Pentium Dual-1.2CHz PC was about 100 ms for a 320x240-pixel image.This shows the proposed method provides good precision and speed. Keywords;granular features;Bayesian stump;real Adaboost,boosting cascade;face detection 随着人机交互技术的诸多进步,人脸作为非常 等引入一种边缘特征称为边缘方向柱状图(edge 重要的生物信息源,在许多自动人脸处理系统中起 orientation histograms,.EOH).Lienhart"1等使用一系 着至关重要的作用.基于概率框架,许多方法分别论 列的旋转Haar特征.这些方法都是通过增加计算消 证了人脸模式是由各自的分布函数构建的,包括 耗以换取检测精度.Huang等"受Abramson等"的 Rowley等"的神经网络、Schneiderman2的贝叶斯 启发引入了一种基于像素的特征称为粒特征,它具 网络、Osuna等3和Heisele等4的基于SVM的分 有速度快、鲁棒性好的优点.另一方面,在训练级联 类器.2001年,Viola和Jones"提出了一种人脸检测 检测器时,通过引入新的策略以达到高的检测精度. 框架,它结合Haar特征、积分图像,通过Adaboost算 Xiao等10提出Boosting链将级联结构前后层级的 法学习级联结构分类器,获得了很好的检测速度和 阈值组合起来进一步提高人脸检测的效率,L等山 精度.之后对于它的改进,一方面,通过加入新的特 的FloatBoost直接最小化错误率,Bourdev等的 征来增强弱分类器以提高人脸检测器的性能.Levi Soft级联结构通过不断的数据自助(Bootstrap))以校 正检测器.另外为避免因离散Adaboost算法采用的 收离日期:2008-10-24 干切 二值断言损失很多判别性信息,Huang等提出了 通信作话:章品正Emil:lUc4pz@seued山.om, 连续Adaboost算法,这种方法通过构建一个基于查
doi: 10.3969/j.issn.1673-4785.2009.05.010 Vol.4 No.5 Oct.2009 CHEN Chun-yan,ZHANG Pin-zheng,LUO Li-min 收稿日期::2008-10-24 基金项目: 通信作者:章品正.E-mail: luckzpz@seu.edu.cn (Image Science and Technology Laboratory,Southeast University,Nanjing 210096,China) 智 能 系 统 学 报 CAAI Transactions on Intelligent Systems 等引入一种边缘特征称为边缘方向柱状图(edge orientation histograms,EOH).Lienhart"1等使用一系 列的旋转 Haar特征.这些方法都是通过增加计算消 耗以换取检测精度.Huang 等"受Abramson等"的 启发引入了一种基于像素的特征称为粒特征,它具 有速度快、鲁棒性好的优点.另一方面,在训练级联 检测器时,通过引入新的策略以达到高的检测精度. Xiao等10提出 Boosting 链将级联结构前后层级的 阈值组合起来进一步提高人脸检测的效率,Li等 的FloatBoost 直接最小化错误率,Bourdev 等 的 Soft 级联结构通过不断的数据自助(Bootstrap) 以校 正检测器.另外为避免因离散 Adaboost 算法采用的 二值断言损失很多判别性信息,Huang等提出了 连续Adaboost算法,这种方法通过构建一个基于查 第4卷第5期 2009年10月 中图分类号:TP391.41 文献标识码: A 文章编号: 1673-4785(2009) 05-0446-07 Face detection using real Adaboost on granular features 随着人机交互技术的诸多进步,人脸作为非常 重要的生物信息源,在许多自动人脸处理系统中起 着至关重要的作用.基于概率框架,许多方法分别论 证了人脸模式是由各自的分布函数构建的,包括 Rowley 等"的神经网络、Schneiderman2的贝叶斯 网络、Osuna 等3和Heisele等4的基于SVM的分 类器.2001年,Viola 和Jones"提出了一种人脸检测 框架,它结合Haar特征、积分图像,通过Adaboost算 法学习级联结构分类器,获得了很好的检测速度和 精度.之后对于它的改进,一方面,通过加入新的特 征来增强弱分类器以提高人脸检测器的性能.Levi Abstract:A face detection method based on sparse granular features and the real adaptive boosting(Adaboost) meta-algorithm was proposed. A sparse granular feature set was introduced into the Adaboost learning framework. A weak look-up-table(LUT) type classifier with real confidence output was designed by extending the Bayesian stump. Then, the space of the weak classifier was constructed. The Adaboost cascade face detector was taught by using a large training set and an evaluation set. Experiments were perfomed on the CMU-MII dataset,a standard public data set for benchmarking frontal face detection systems. The detection rate reached over 90% when false alarms were 20.The average processing time on a Pentium Dual-1.2CHz PC was about 100 ms for a 320×240-pixel mage. This shows the proposed method provides good precision and speed. 摘 要: 提出了一种基于粒特征和连续Adaboost算法的人脸检测方法.它使用粒特征并扩展贝叶斯决策弱分类器, 设计具有连续置信度输出的查找表型弱分类器形式,构造出弱分类空间,使用大规模的训练集和验证集,采用连续 Adaboost算法学习得到 Boosting动态级联型的人脸检测器.在CMU-MIT正面人脸测试集上,误报20个时,检测率为 90%以上.在一台Pentium Dual-1.2 GHz的PC上,处理一幅大小为320×240像素大小的图片平均需100 ms.实验结 果表明该方法取得了比较好的精度和速度. 关键词: 粒特征;贝叶斯决策;连续Adaboost;Boosting级联;人脸检测 陈春燕,章品正,罗立民 (东南大学影像科学与技术实验室,江苏南京210096) 基于粒特征和连续 Adaboost 的人脸检测 Keywords;granular features;Bayesian stump; real Adaboost; boosting cascade; face detection
第5期 陈春燕,等:基于粒特征和连续Adaboost的人脸检测 447· 找表型的弱分类器,以近似特征空间复杂的分布. 也就是具有更大概率的一类对应于它的真实状态, 受以上启发,本文设计了一种基于粒特征和连 而较小的概率则是它的判断错误.根据式(4),整个 续Adaboost算法「14]的人脸检测方法.通过引入粒特 贝叶斯错误为 征[]并将贝叶斯决策弱分类器5]进行扩展,在其分 E=P(e)= 段的特征空间中每段使用对数似然输出而不是二值 输出,扩展为用于连续Adaboost学习的查找表 min[P(o I x),P(@2 I x)]p(x)dx.(6) (look-up-table,LUT)型弱分类器,并使用大规模训l 由于P(和。,x)在大多数应用中都不可用,为简 练集和验证集训练出动态级联结构检测器用于人脸 化问题本文采用柱状图方法来近似特征空间分布. 检测.实验表明该方法获得了比较好的检测性能. 将每一个特征空间8(x)等分为k段,6。=(1-1, 1基于粒特征的LUT型弱分类器 t),k∈{1,…,K,{r}是阈值 在柱状图中,第k段的p(k,。)为 1.1粒空间中粒特征的定义 粒空间,16]是由金字塔状的4个位图组成:、 p(k,w)=「p(0,(x),w)d0,(x)= aj¥)e 11、12,其中每一层(位图I,)对应于对初始图像进 ,0 (7) 行2'×2'窗口均值滤波后的图像.在这样的粒空间 B)E8k yi=0c 中,粒特征0被定义为若干粒的线性组合: 式中:c∈{1,2},0:是样本x:的权重, 0=∑al,(xy:),:e{-1,+1}.(1) 为最优化柱状图分类器,对每一段6,在最小 式中:任意一个粒I,(x:,y:)是由3个参数表示的: 化每一段贝叶斯错误E.(6)基础上做出决策.因此 xy、尺度s:,其中(x,y:)表示粒左上角的坐标,$: 整个贝叶斯决策的贝叶斯错误为 表示它的尺寸为2×2. E(8,)=∑E(0,)= 为得到较平稳的特征,要求组合系数α:的总和 为0[].本文采用一个经验公式来确定粒特征中各 2 minlp(k,o),p(k,)】= 个粒的系数.假设扩展产生的新特征中各个粒的系 数a:正负已知,正粒总数为P,负粒总数为N,且一 名iA乐,1 (8) 以)后8以)后4 个特征中P和N不可能为零,那么特征0中各个粒 2 的系数4:修改为 根据如下定义15],假定6是其中一段区域∫和 a=-P,a<0, (2) g是2个定义在8上的函数.如果对于任何x,x,∈ IN, a>0. 6,(fx,)-g(x,))·(f(x,)-g(x,))≥0,定义区域 对于-个24×24的窗口,总共具有∑(24- 8为函数∫和g的一致性区域.对于Vrk,E(0)是期 望贝叶斯错误E(0)的上界: 2'+1)2=1835个不同的粒,这些粒组成了基本的 E(0;)≥E(0) (9) 特征集.与矩形的Haar特征相比,一旦粒空间建立 式中:等号成立时当且仅当Hk,6。是f(x)=p(仙, 起来,计算一个粒只需要访问1次内存而不是4次 0,(x)),g(x)=p(w2,9,(x))的一致性区域.因而, 因而,粒特征同样具有计算有效性。 接下来的工作就是寻找最优的阈值{,}以最小化 1.2基于贝叶斯决策算法的LUT型弱分类器 E(0) 在二分类问题中,做出某次判决时的误差概率 本文对文献[15]中的贝叶斯决策弱分类器进 P(elx)(贝叶斯错误)s)被定义为 行了扩展,在其分段的特征空间中每段使用对数似 P(elx)= 「P(wIx),判定, (3) 然输出而不是二值输出,扩展为用于连续Adaboost lP(2Ix),判定w 学习的查找表(LUT)型弱分类器,具体算法如下: 期望贝叶斯错误P(e)为 1)输入: P(e)=P(el x)p(x)dx. 训练集S={(x),y:},(x)是x:的特征值; (4) 样本{x}的权重{0:}; 为最小化期望贝叶斯错误,有 预先划分的段数L,目标段数K P(el x)min(P(aI x),P(w2 I x)),(5) 2)训练:
·448· 智能系统学报 第4卷 a)将特征空间(x:)等分为L段,每段为6,其 整个搜索都是相当重要的.如果选择一个很好的搜 中LK; 索起点可以使得整个搜索更容易,也更能得到具有 b)重复合并相邻的一致性区域6,和61以产 判别性的特征.本文枚举了许多粒空间的Haar特征 生一个一致性区域集{8}1=1,…,L'; (图1),也就是每个单元都是正方形而不是矩形的 c)如果L'>K,重复合并相邻的区域8-1, Haar特征,利用式(11)中定义的fitness函数选择具 8'1,,8'-1,其中l°=arg minlp(l,d1)-p(l,2)l, 有较大F的一部分构成开集.这样,判别性不好 如果L'<K',通过最大化交互信息增益,重复分离 的特征在第一次选择中就首先就被滤除了· 段6',l°=arg min[min(p(l,w1)-p(l,2)]; d)对每一段6,计算 W:=P((x:)∈6,y:=c)= 0:,c=±1; 图1用于初始化开集的一些粒空间的Haar特征 i0(xi)E8kYi=e Fig.1 Some Haar-like features in granular space for the e)设置每一段的输出: initialization of open list H0(x:)∈6a,h(x:)= fitness函数是用来选择更具判别性的粒特征, 1n(+),k=1,…,k 用于后续扩展以得到更好的特征.它在整个启发式 2T吧+e1 搜索过程至关重要.为了提高LUT型弱分类的分类 式中:8是一很小的正常数以防止分母为0. 性能,采用具有最小贝叶斯错误且更少粒的特征.因 3)输出: 为这样的特征更具判别性,而且具有更小的计算复 输出一个UT弱分类器: 杂性和结构风险.因而,启发式搜索倾向于寻找具有 Am)=贷p(✉. 更小贝叶斯错误和更少粒数的特征.粒特征的判别 性被定义为 1,u∈δk 式中:B(u)={ ,k=1,…,K D(0)=1-E(0). (10) 0,u华6 式中:E(9)是整个贝叶斯决策的贝叶斯错误上界。 1.3启发式搜索选择粒特征 因而一个具有更高D(:)的粒更具判别性.为整合 可以看出在1.1中定义的特征数目相当庞大, 特征中粒数目的影响,采用如下经验公式: 通过传统方法搜索整个特征空间几乎不可能.本文 Fns=D(0:)-0.001c. (11) 采用一种启发式搜索的方法来解决这个问题,它能 式中:c是粒特征的粒子数目,具有更高F的粒 选择有效而简洁的特征用于训练.启发式搜索是人 工智能领域一种经典的高效寻优算法[.在搜索过 特征更好. 为扩展一个选择的粒特征,引入3个不同的算 程中有2个集合,开集中的元素用于以后的扩展,闭 子:加、减、替换16],分别是在该特征中加入一个新 集用于保留那些已经被扩展了的元素以避免重复扩 的粒,删除一个已有的粒,以及用它的相邻粒替换已 展.其具体算法如下: 有的粒.这样,产生一个新的特征集⊙·,可能包含 1)初始化: 更好的特征.表示待扩展的特征为0°,它包含的粒 开集0={81,02,…,0n},闭集C=0. 集合为p,P内的粒以及它相应的系数为P和aa,不 2)循环: a)从O中选择一个最优的特征0·: 在p中的粒以及相应的系数为Pu和aut,P内的粒 P的相邻粒为N(Pn),这3个算子可以表示为 0°=arg maxeeo(Fime(0)); 8。={0。l0。=0°+ouP}, b)0=0-{0°},C=CU{0*}; Pt生p,amt={-1,+1; (12)) c)扩展θ以构建一个新的特征集⊙·; 8a={0al0a=0°-4Pa},Pa∈p;(13)) d)0=0u{0·-C}. =10,1 0 =0*-ainPin aoup out, 3)输出: Pa∈P,Pt∈N(Pn),at=(-1,+1).(14) 构建的特征集O=OUC. 这样,扩展算子能构建一个新的稀疏特征集合, 开集的初始化是启发式搜索的第一步,这对于 为减少计算量,仅选择每个集合中最好的一个加人 扩展特征集中:
第5期 陈春燕,等:基于粒特征和连续Adaboost的人脸检测 ·449· 8·={0|0=arg maxose:(Fe(0)), 本.然后更新所有在线工作集的权重。 i a,d,r. (15) 2.2基于大验证集阈值调整 每轮启发式搜索产生3个新的更好的特征,若 在Boosting动态级联检测器训练过程中,每个 干轮后,一个具有判别性的特征集就构建出来了.整 特征都分配一个拒绝阈值.人脸检测时,检测窗在每 个粒空间的弱分类器的学习过程如下: 轮都会有一个输出值,将输出值与所在层的拒绝阈 1)输入: 值相比较,输出值低的认为是非人脸,检测结束,输 {x:}为训练数据;{o:}为样本权重;⊙r={01, 出值高的进入下一层继续进行判断.大多数正负样 …,0m}为粒空间的Haar特征;n为最初的开集中特 本可以通过t层的级联分类器进行分类,但是在正 征数目. 负样本的交界处存在某些样本,在经过t层级联后 2)初始化: 仍然难以区分.一般而言,降低级联分类器每轮的阈 将比较好的Haar特征放入开集中: 值,可以提高检测率,但也会相应增加错检率.合理 。H0:∈0,H0∈8r-0, 扔掉一些跟负样本接近的正样本,可以在保证一定 0=30 Frite(:)≥Fama(g,) 目标检测率的情况下降低阈值并提高检测率[1], 当101=n,弱学习过程为 在Boosting级联训练的前期多丢掉一些正样 a)调用前文启发式搜索过程来构建一个稀疏 本,即拒绝阈值提高一点,可以提高检测速度,但是 特征集合⊙; 降低了检测率,反之会减慢检测速度,提高检测率 b)对每一个粒特征0:∈⑧·,采用前文连续Ad 通过一个较大的验证集,可以得到一个比较合适的 aboost算法以获得一个弱分类器h(x,0:); 阈值,使分类器达到一个良好的推广性.为在速度和 c)找到具有最高F值的那个弱分类器: 检测精度上寻得平衡,采用一个经验的指数方程] h(x,0)=arg max(.(Fatem ()) 来控制每轮的样本拒绝率V: 3)输出: fke-a(i-vr) V.= a<0; (16) 输出本轮学习出的弱分类器h(x,0)及相应的 a≥0. 最好特征a. 式中:T为总的迭代轮数,k是归一化因子,α是自行 2 Boosting动态级联训练框架 设置的参数,用于平衡速度和精度,一般来说α取 -1比较好. 使用大样本训练集能覆盖训练样本尽可能多的 本文在正的验证集S,上来调整第t轮检测器 变化,是检测器获得良好推广性的保证.由于传统的 H(x)的拒绝阈值日,以达到目标检测率.移除第t Boosting级联结构的限制,处理大样本训练集时需 轮在线工作集中拒绝的误认为是负样本的正样本. 要耗费很大的内存及计算.本文采用动态级联结构 这一方法能提高训练收敛率,使得检测器具有更少 来进行大样本集的人脸检测器的训练, 的特征 2.1更新在线工作集 2.3基于连续Adaboost的动态级联学习 动态级联算法是用来解决训练过程中使用大样 本节目的在于寻找一个弱分类器集合并将它们 本集的一个有效方法.在训练中,并不是直接从整个 组合在一起,构成强分类器.最初的Adaboost算法 训练数据集来学习,而是使用一个很小的子集训练 采用的是二值断言,损失了大量具有判别性的信息 集,称为“在线工作集”),也称“动态工作集”.在 因而,选择连续Adaboost算法,它采用具有连续置 每轮训练中,通过Bootstrap1B,1s]对在线数据集进行 信度输出的弱分类器并将特征空间映射到实值空 更新以保持在线数据集对整个训练数据集的覆盖: 间.整个动态级联学习算法如下. 即在第t轮时,运用训练出的检测器H,在离线正样 1)输入: 本集中更新所有样本权重,移除具有较小权重的样 输入S={x:y},训练集i=1,…,N,y:∈{-1, 本(总权重的10%被移除).然后随机抽取N。正样 1};P为S中所有的正样本集;Q为S中所有的负 本形成新的在线正样本工作集P。·在在线负样本集 样本集;S,为正的验证集;目标检测率D,弱分类 Q。中,移除具有较小权重的样本(总权重的10%被 器的目标数目Tf,为动态工作集更新率(f决定在 移除).重复使用检测器H,从离线负样本集Q中进 线工作集的更新频率). 行Bootstrap,直到在线负样本集中具有N,个负样 2)工作集初始化:
·450 智能系统学报 第4卷 在P中随机抽取子集P。,Q中随机抽取子集 同的经验值(a=-1,R=0.98,E=10-7=0.6). QS。={P,Q}构成初始工作集;初始化权重 结果如图3所示,其中30000,20000和10000表示 @1,,当前检测率D· 在线训练集的样本数量.可以看出,通过增加在线训 3)动态级联学习: 练集的数据量,可以极大提高检测性能.通过Boot 循环t=1,…,T strap的方法,可以利用大的训练集提高检测率. a)对每个样本x:归一化权重0,以保证0,是 0.98i 0.94 一个概率分布,且∑仙=∑0 0.90 eP: 年086 b)使用D·=D·-V更新当前检测率,其中V 0.82 0.78 可由式(16)计算; 0.74 c)对每个特征训练弱分类器,找到最好的特征 0.70 0.66 630000人脸-20000非人脸 中(具有最大F)以及相应的弱分类器; 0.62 +-20000人脸-10000非人脸 d)将特征中,以及相应的弱分类器加入到Cas 0102030405060708090100 误检数 cade中; e)使用S。来调节特征中,的拒绝阈值0,; 图3在CMU-MUT正面人脸测试集中不同大小在线数 )更新动态工作集中所有样本的权重; 据集训练性能对比 Fig.3 Performance comparison of different online training g)f是动态工作集中的误检率,如果f<f,更 sets on the CMU-MIT frontal test sets 新动态工作集, 3.2 使用粒特征的效果 4)输出: 1.00 输出一个强的Boost分类器,以及它内部所有 0.96 0.92 弱分类器的一组拒绝阈值。 0.88 进0.841 3实验 0.80 0.76 为进行分类器训练,本实验从互联网等各种渠道 0.72 搜集了65000张图片,其中包括50000个人脸.通过随 0.68 +-Haa特征 0.64 6稀疏粒特征 机缩放和平移,产生了一个40万正样本和8000万负 0.606102030405060708090100 样本的训练集,以及一个100万的验证集然后将所有 误检数 样本归一为24×24像素的图片,如图2所示. 图4 在CMU-MUT正面人脸测试集中使用不同特征训 练的性能对比 Fig.4 Performance comparison of different types of features on the CMU-MIT frontal test sets 0.6 0.5 6Haar特征 0.4 ·稀疏粒特征 图2部分正负样本训练集 Fig.2 Part of training sets 0.2 选择CMU-MIT1数据集作为人脸检测的测试 0.1 集.CMU-MT包含了130张灰度图片,其中有511个 10 15202530 正面人脸.在实验中,检测率为检测出的人脸个数与 弱分类器数日 人脸总数的比值,误检数为所有检测出的检测框中非 图5使用不同特征训练过程中误检率的渐近线对比 人脸检测框的个数,即误检为人脸的个数]. Fig.5 Asymptotic testing false alarm rates using different 3.1使用大数据集进行训练的重要性 types of features 实验使用不同大小的在线训练集进行训练,除 与传统的Haar特征不同,本实验采用粒特征 了在线训练集大小不同外,其他训练参数都采用相 除了特征不同外,其他训练参数都采用相同的经验