每秒100帧的行人检测方法2:

来源:互联网 发布:上海少年编程培训 编辑:程序博客网 时间:2024/05/17 03:26

       文中作者主要关注于如何快速、有效的进行行人检测,并提出了两种加速方法。一种是在单张图像上如何更好的处理尺度信息;另一种是如何利用深度信息(depth information on stereo images)来加速;最后,根据作者的实验发现,在不降低检测质量的前提下,可以获得20倍的加速效果。并且该方法也是目前行人检测领域唯一一个检测速度达到100fps的方法。

就提高目标检测的检测速度而言,目前的方法主要集中在以下几点:

(1)更好的特征描述;例如,积分图

(2)更好的分类器;通常而言,好的分类器要在检测速度和检测效果方面达到较好的均衡。一般而言,非线性的方法,例如RBFSVM之类就提供了较好的分类能力,然而却有着很糟糕的检测效果。线性分类方法,例如AdaBoost,线性SVM,随机森林则常被使用。而如今利用线性分类器来逼近非线性分类器的分类性能似乎也是一个潜在的研究方向。

(3)更好的先验知识;对行人检测而言,如果能得到很多背景画面的先验信息,那么检测效果和检测速度将会有一个很大的提升。

(4)级联结构(cascade);级联结构将分类过程分解为一系列的简单分类器的串联过程,而且在串联分类器的前几层就将大部分的背景过滤掉了,留下小部分待检测区域真正进入后面的检测环节。如此一来,也大大减少了计算量,加快了检测速度。

(5)分枝定界(Branch and bound);简单来说,分枝定界算法就是先确定目标值的上下界,一边搜索一边删减掉搜索树的某些分支,从而提高搜索效率。

(6)由粗到精(coarse to fine);由粗到精,逐层搜索是最常用的方法了,此处不再赘述。

检测算子采用了Dollar等人提出的积分通道特征(以下简称ChnFtrs),该特征被研究人员大量评估之后,发现其性能是目前最好的。行人检测中,所采用的ChnFtrs具有6个梯度尺度区间,1个梯度幅值,3LUV通道特征,弱分类器采用2层决策树(每个树具有3stump),决策树及其权重则通过离散AdaBoost算法学习得到。每个强分类器含有2000个弱分类器,特征则是从30000个矩形特征池中随机选取的。训练开始的时候,选取5000个负样本,之后,自举(bootstrap)两次,每次新增5000个较难分类的负样本。


在进行行人检测的时候,作者采用了一种名为stixelsticks above the ground in the image)的先验知识。所谓stixel就是指对图片中地面以上的柱状物体进行建模,显然,图像中的树木,人,海报之类的物体都可谓柱状物。如下图所示:


笔者认为,这里所谓的stixels深度信息的底部,就是地面,顶部,就是行人的头顶可能出现的大概位置。

对于图像中的每一列而言,底部像素,顶部像素,以及未分类物体之间的距离都被估算出来。这种方法的关键在于,利用stereo image可以直接计算出stixel,而无需计算所有的深度信息。在进行行人检测时,作者对图像中的地面和stixel进行估计,并设置stixel的高度为1.75m,在CPU上可以达到135fps的速度。

最后,作者给出了INRIA数据库上的测试结果:





原创粉丝点击