法律状态公告日
法律状态信息
法律状态
2019-04-12
未缴年费专利权终止 IPC(主分类):G06K9/00 授权公告日:20120822 终止日期:20180426 申请日:20110426
专利权的终止
2012-08-22
授权
授权
2011-10-05
实质审查的生效 IPC(主分类):G06K9/00 申请日:20110426
实质审查的生效
2011-08-24
公开
公开
技术领域
本发明涉及的是一种人体检测方法,具体涉及一种基于AdaBoost框架和头部颜色特征的实时人体检测方法。
背景技术
人体检测在监控系统、驾驶员辅助系统以及灾难现场搜救等领域中有着广泛的应用。混乱背景下的人体检测是一项极具挑战性的任务。很多研究者致力于人体检测,并取得了一些成果。较成功的检测方法为HOG(Histograms of Oriented Gradients,方向梯度直方图)结合支持向量机(SVM)的方法,但这种方法检测速度慢。
Begard研究了不同类型的AdaBoost算法实现行人检测(J.Begard,N.Allezard,P.Sayd.Real-time human detection in urban scenes:Local descriptors and classifiers selection with adaboost-like algorithms.In Proceeding of CVPR Workshops,2008.),采用的是HOG-M特征,Begard采用的是HOG特征中的Cell作为提取特征的单元(而原HOG特征是将4个Cell合在一起的Block作为特征),特征维数只是原特征的四分之一。由于特征数较少,而且采用的是AdaBoost-Boosting分类方法,因此检测速度快,但是检测效果稍差。
徐堃结合fisher判别分析对选出的弱分类方法进行训练(徐堃,徐佩霞.一种基于改进Adaboost的人体检测算法.电子技术(上海),2009(11):69-71.),学习得到一个新的线性判别方程,最大化不同类别数据之问的可分离性。
发明内容
本发明的目的在于提供一种能提高检测的准确性的基于AdaBoost框架和头部颜色的实时人体检测方法。
本发明的目的是这样实现的:
包括训练及检测两个步骤;
训练阶段的步骤如下:
(1)根据模板提取多尺度HOG特征;
(2)采用AdaBoost-Boosting方法训练人体检测模型;
(3)提取头部颜色直方图特征;
(4)采用AdaBoost方法训练头部判别模型;
检测步骤如下:
(5)基于滑动窗口方法的人体检测;
(6)对于每个检测窗口,先提取HOG特征,根据人体检测模型判别是否是人体;
(7)对于判别为人体的窗口,提取头部直方图特征,判断是否包含头部;包含头部的窗口确定为包含人体的窗口,在图像中相应位置画出矩形。
本发明与已有技术的不同之处是采用的特征单元是原HOG特征的Block,而且是多尺度的Block,并结合了特征模板,提高了检测效果。此外,本发明增加了头部特征判别以提高检测率,降低假报警率。
本发明在INRIA数据库上的实验结果证明了该方法的有效性,同时检测时间也达到了实时性。
附图说明
图1cell特征计算流程;
图2(a)-(b)梯度平均图像与特征模板,其中图2(a)梯度平均图像、图2(b)特征模板;
图3AdaBoost分类方法的结构;
图4层类器结;
图5基于组特征的AdaBoost算法;
图6组特征分类方法训练算法;
图7检测流程图;
图8HOG特征检测算法;
图9头部检测算法;
图10头部颜色的bin数与假报警率关系;
图11本发明方法的检测性能。
具体实施方式
下面举例对本发明做更详细的描述:
1训练----HOG特征提取
1.1特征提取流程
特征提取流程如下。
(1)制作特征模板(具体方法见1.3节),并保存;
(2)载入特征模板,并按特征模板生成特征映射表(具体方法见1.3节);
(3)按特征映射表提取特征;
对于每个训练样本图像,特征提取分以下步骤完成。
(1)将图像缩放为64×128大小;
(2)用[-1 0 1]的掩模计算其梯度幅值图像和方向角图像;
(3)将图像分别划分为基本单元为2、4和8的cell;计算多尺度cell特征;
(4)形成特征向量(见1.3节)。
1.2多尺度cell特征的计算
HOG特征采用64×128像素的训练样本图像及检测窗口,将该窗口划分成以若干个cell,对每个cell按图1计算出9维特征。然后再将每相邻的4个cell(田字形结构的4个cell)划分为1组(block),将每个block中的4个cell的梯度直方图的数据串联起来每个Block便是一个36维的向量。最后将所有的block依次串联起来,便形成了对每个训练图像的。
本发明采用多尺度HOG特征,采用的cell尺度包括为2、4和8,相应的block大小即为4、8和16。不同大小的cell都具有9维特征,构成的block也都有36维特征,在64×128的图像上一共有2280个block。cell特征的计算如错误!未找到引用源。所示。
1.3制作特征模板的方法
(1)特征模板的生成
采用AdaBoost分类方法训练模型时,训练实例的选择会影响训练效果,本发明采用INRIA数据集中的训练正例,大部分正例的背景较简单,因此分类方法在选择特征时经常会选择到背景部分,遇到背景复杂的检测窗口则检测效果不好。HOG特征为形状特征,为强制分类方法选择人体边缘部分的块进行判断,我们根据训练实例的梯度图像制作了特征选取模板。特征模板制作的方法如下。
第一步计算每个训练实例的梯度图像,然后计算所有训练实例梯度图像的平均值,得到平均梯度图像。
第二步,在平均图像画出8×8的网格,选择计算特征所用到的块。梯度图像和特征模板如图1所示。错误!未找到引用源。标记的cell所在的block都被选作模板中的block(除第2行和第15行以外),一共58个16×16的block。
4×4和2×2的cell可以根据8×8的cell计算出来,一共1218个block。把所有block按生成顺序给出特征号,把特征号对应的block尺度和左上角坐标存入特征映射表。
选择特征模板后,分类方法特征的选择都在人体边缘附近,提高了分类方法的分类效果。
(2)模板特征的计算
A.从特征映射表取出每个block的信息;
B.1.2节中block和cell的关系转换为4个cell的信息,按图1计算每个cell的特征向量;
C.按计算顺序形成36维向量。
2训练----AdaBoost--Boosting分类方法
AdaBoost分类方法是一种由弱分类方法组合构成强分类方法算法,该分类方法的突出优点是可以根据训练样本筛选特征,并且检测速度快,因而得到了广泛的应用,本发明采用AdaBoost分类方法实现人体检测。AdaBoost分类方法中弱分类方法一般是一维阈值分类方法,但本发明采用HOG特征,一个Block的特征为36维。采用SVM作为弱分类方法则使训练时间太长,模型较大,而且不容易调整样本权值。所以本发明采用Boosting分类方法作为弱分类方法(本发明称为组分类方法),对应HOG特征一个Block的36维向量。Boosting分类方法下的每一维特征采用阈值分类方法。
(1)将正例、反例和补充反例图像按第1节方法计算好特征;
(2)输入到分类算法中,具体方法见2.2节;
(3)保存人体检测模型;
2.1分类方法结构
AdaBoost分类方法采用基于层的否绝机制,每层是一个强分类方法。如错误!未找到引用源。所示,其中C1,C2,...为层分类方法。其分类性能由高到低排列,只有当前层判断为正例的样本才能进入到下一层。本发明中,每一层的强分类方法由若干组分类方法构成,组分类方法由若干单特征的阈值分类方法构成。其结构如错误!未找到引用源。所示。
2.2分类算法
AdaBoost算法通过调整样本权值使不同弱分类方法侧重于不同的样本,这样使多个分类性能不强的弱分类方法,组合成一个强分类方法。本发明的阈值分类方法通过这种方式构成组分类方法,同样,组分类方法也通过这种方式构成层分类方法。层分类方法通过否绝的方式淘汰反例样本。
2.2.1层分类方法训练算法
对于给定正例样本和反例样本(X1,Y1),……,(Xn,Yn),其中Yi=1,0分别表示正例样本和反例样本。Xi={xi11,xi12,……,xi1p,……,xiq1,xiq2,……,xiqp},每个样本包括q组特征,每组特征具有某种相同属性。每组特征包括p维特征,所以每个样本的特征维数为p×q。假设正例样本和反例样本数分别为m和n-m。分类方法训练算法如图5所示。
权值初始化公式如式(1)所示。
当样本权值调整后,根据下式将其归一化。
层分类方法判别如下所示,层分类方法是选择出的所有组分类方法投票结果。
Gt(x)为组分类方法判断结果,αt为组分类方法的置信度或权值,计算方法见式(5)。
当前层错误样本数εt的计算见式(4)。层分类方法判断方法为式(3),组分类方法的判断方法类似于式(3)。
其中
每个组分类方法具有一个置信度或权值αt,其计算公式如下所示。
从上式可以看出,错误率越高的分类方法其置信度越小。
每次选出一个组分类方法后,样本的权值w都需要更新,更新公式为式(6)。
当样本分类错误时,其权值不变;当样本分类正确时,权值乘一个小于1的数,使权值变小。
当每一层的错误率达到目标错误率或选择的组特征数达到上限时,该层训练结束。将层分类方法模型保存起来,层分类方法模型为该分类方法中所包括的组分类器编号(对应特征编号)和组分类方法模型。
2.2.2组分类方法和单特征分类方法的训练算法
(1)单特征分类方法
单特征阈值分类方法包括两个参数,一是正例符号s,s只取{-1,1},当s取1时特征值大于阈值T时为正例,当s取-1时,特征值小于阈值T时为正例。判断表达式如式(1)所示。
其中fjk(x)为第j组中第k特征值,Tjk为该特征值的阈值,sjk为正例符号,hjk(x)为判断结果。
其训练方法是将该特征值范围划分为若干个bin,分别计算阈值取每个bin的边界值,及sjk取{-1,1}时的分类错误率,取错误最小的边界值和sjk作为分类方法模型参数。
(2)组分类方法训练算法
组特征分类方法确定一组p维特征的判别模型,它是一个p×4的矩阵,每行对应一个特征,每个特征的分类方法参数分别是该特征值的阈值Tjk,正例符号sjk,该分类方法的权重αhjk,根据式(5)计算。算法如错误!未找到引用源。所示
组分类方法输入了层分类方法的样本权值作为其初始权值,在此基础上,计算每个阈值分类方法的错误率,根据样本划分情况调整权值,但是调整后的权值并不带到层分类方法中,层分类方法根据该组分类方法对样本划分情况重新调整权值。
3训练----头部直方图特征的提取与训练
人体较有特点的地方主要是头部。头部主要是肤色和头发,其颜色和纹理虽然有变化,但变化较少,容易区分。所以本发明通过头部的颜色信息对HOG特征的判断结果进行进一步的判别。
(1)特征提取
由于检测窗口大小固定,所以头部也有一个固定的范围。根据梯度模板,本发明选择窗口中上部头部位置的一个16×16大小的区域,计算其直方图作为判别特征。实验表明,肤色适合用HSI模型来判断,头发(黑色)较适合用RGB模型来判断。我们计算了上述区域中的RGB和HSI模型6个分量的直方图作为特征。由于训练图像的分辨率较低,所以直方图的bin数不需要太多。本发明经验验证(见错误!未找到引用源。),选择bin数为100,这样一共得到600维特征。该特征的训练样本与HOG特征的训练样本完全一样。
(2)基于AdaBoost算法的训练
AdaBoost算法框架与第2节的方法是一样的,只要把图5中的“训练第j组特征分类方法”换成式(7)描述的单特征分类方法,算法其余的部分按图5算法执行即可。
2.2.3检测算法
检测时采用窗口扫描算法,对于每个窗口,根据分类方法模型,从第一层开始,依次计算当前层所有选择出的所有组特征,计算出组分类方法判断结果,然后根据式(3)计算出层分类方法判断结果,如果该窗口通过当前层的判断,即当前层判断为正例,则进入下一层的判断。否则,该窗口被判为反例。只有所有层都判断为正例的窗口才被判断为正例。
4检测算法
检测时采用窗口扫描算法,用64×128的检测窗口,在图像中以步长8滑动。对于每个窗口按下述流程实现检测。如果最后的验证通过,则bIsHuman=1,即表明该检测窗口经验证包含人体;否则bIsHuman=0,该窗口非人体,具体见错误!未找到引用源。。
(1)HOG+AdaBoost人体检测
检测前需要载入分类模型和特征映射表,对每个检测窗口按下述算法进行检测。
bPassDetect=1时表示该检测窗口包含人体。
(2)头部验证
头部模型不需要特征映射表,只载入分类模型,分类模型中没有组分类器。bPassDetect=1时表示该检测窗口包含人体,算法如图9所示。
5实验结果与分析
本发明方法在INRIA测试集进行了测试,该测试集背景复杂,难度较高。每层的最大错误率为第1-3层为0.1,以后为0.2。训练得到一个5层的分类方法,第一层和第二层的块数分别为5和9,后面的块数都为30。
我们也采用DET曲线来评价性能,相关定义见文献。相关实验在Pentium4 3.0GHZ,1GB内存计算机上完成。
(1)头部颜色特征参数选择
头部区域的位置通过梯度平均图像确定。主要的参数是颜色直方图的bin数确定。引入颜色特征主要为了减少假报警率,所以我们通过确定检测率(90%)情况下,假报警率指标(FPPW)来确定合适的bin数。
从错误!未找到引用源。中看出,bin数太多和太少,都会使假正例率升高。100-120的bin数是比较合适的,所以我们选择bin数为100。
(2)检测性能
结合了特征模板和头部颜色特征的检测方法的性能如错误!未找到引用源。所示。
从错误!未找到引用源。可知,AdaBoost-Boosting算法和结合模板的算法都低于HOG方法的检测率,只有结合了头部颜色特征的检测算法超过了HOG的性能,在FPPW为10-4情况下,检测率达到了92%。
本发明算法采用的都是Cascade框架的算法,检测速度较快,时间为每窗口0.07ms,是检测率与检测时间的较好折衷。
6结论
本发明提出一种基于AdaBoost框架及头部颜色特征的人体检测算法,采用AdaBoost-Boosting算法结合HOG特征实现快速的人体检测,通过定义特征模板限制AdaBoost算法特征特征选择的位置,并选择模板头部位置区域计算其直方图。以直方图作为特征对检测为正例的窗口进行进一步的筛选,筛选的算法为传统的单特征AdaBoost算法,通过验证的窗口才判断为正例。上述两种处理不同程度地降低了假报警率,提高了检测算法的性能。经实验验证,本发明算法是检测效果与检测时间的较好折衷。
机译: 颜色不均检测方法,使用该颜色不均检测方法的头部调整方法以及颜色不均检查装置
机译: 基于哈尔特征和ADABOOST算法的卡尔曼滤波和聚类算法的车辆实时识别与跟踪方法
机译: 基于改进的真实ADABOOST算法的新型多视图人脸检测方法