首页> 中国专利> 基于AdaBoost框架和头部颜色的实时人体检测方法

基于AdaBoost框架和头部颜色的实时人体检测方法

摘要

本发明提供的是一种基于AdaBoost框架和头部颜色的实时人体检测方法,包括训练及检测两个步骤;(1)根据模板提取多尺度HOG特征;(2)采用AdaBoost-Boosting方法训练人体检测模型;(3)提取头部颜色直方图特征;(4)采用AdaBoost方法训练头部判别模型;(5)基于滑动窗口方法的人体检测;(6)对于每个检测窗口,先提取HOG特征,根据人体检测模型判别是否是人体;(7)对于判别为人体的窗口,提取头部直方图特征,判断是否包含头部;包含头部的窗口确定为包含人体的窗口,在图像中相应位置画出矩形。本发明采用的特征单元是原HOG特征的Block,而且是多尺度的Block,并结合了特征模板,提高了检测效果;增加了头部特征判别以提高检测率。

著录项

  • 公开/公告号CN102163281A

    专利类型发明专利

  • 公开/公告日2011-08-24

    原文格式PDF

  • 申请/专利权人 哈尔滨工程大学;

    申请/专利号CN201110104892.6

  • 发明设计人 李智慧;邵春艳;李香;

    申请日2011-04-26

  • 分类号G06K9/00(20060101);G06K9/62(20060101);

  • 代理机构

  • 代理人

  • 地址 150001 黑龙江省哈尔滨市南岗区南通大街145号哈尔滨工程大学科技处知识产权办公室

  • 入库时间 2023-12-18 03:08:57

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 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)所示。

当样本权值调整后,根据下式将其归一化。

wt,iwt,i2·(Σj=1mwt,j)wt,i2·(Σj=1n-mwt,j)---(2)

层分类方法判别如下所示,层分类方法是选择出的所有组分类方法投票结果。

Gt(x)为组分类方法判断结果,αt为组分类方法的置信度或权值,计算方法见式(5)。

当前层错误样本数εt的计算见式(4)。层分类方法判断方法为式(3),组分类方法的判断方法类似于式(3)。

ϵt=Σi=1n(ei·wi)---(4)

其中

每个组分类方法具有一个置信度或权值αt,其计算公式如下所示。

αt=log(1βt)---(5)

βt=ϵt1-ϵt

从上式可以看出,错误率越高的分类方法其置信度越小。

每次选出一个组分类方法后,样本的权值w都需要更新,更新公式为式(6)。

wt+1,i=wt,i·βt1-ei---(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算法,通过验证的窗口才判断为正例。上述两种处理不同程度地降低了假报警率,提高了检测算法的性能。经实验验证,本发明算法是检测效果与检测时间的较好折衷。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号