对象检测之行人检测(1)

  • 问题定义
    对象检测技术是计算机视觉研究中一个重要的研究课题。这个问题所处理数据主要是图片(对于视频则是抽取成关键帧然后对每一帧进行处理),行人检测则作为对象检测的子问题,与通用对象检测的不同点在于所检测类别仅有行人。整个检测过程的目标在于为图片中所有的行人添加位置标注,通俗点说就是用一个框把人框住(给出该框的左上角坐标、长宽值以及这个框作为行人的置信分数[x,y,w,h,score])。如图1所示。
    行人检测示意图
    图1 行人检测示意图

  • 问题难点

    (1)人的姿态变化。由于人本身是非刚体,在图像中出现时可以具备不同的姿态,可以具有站、跑、跳、蹲等不同的动作,同时呈现给摄像头的角度也有区别,采集数据的摄像头可能拍摄到行人正面、侧面抑或背面的信息,因此需要检测系统具备足够强的识别能力。
    (2)光照的变换。在数据采集时,由于天气晴朗、阴暗的变幻,光线的明暗,采集设备的分辨率限制等,都会影响到最终输入图像的质量。特别是对于在夜晚采集的监控视频数据,由于灯光的影响而使得噪声加大,大大加剧了从中准确提取出行人的难度。但夜晚通常又会是犯罪分子选择作案的时机,因此需要行人检测算法在这部分数据上具有较好的鲁棒性。
    (3)遮挡。在监控摄像头采集的数据中,通常行人都不是单独存在的。对于人类来说,大脑可以很容易的通过所呈现的信息自动补全被遮挡的部分,可是对计算机来说,则需要拥有一些先验的背景知识,才能够识别出被遮挡的行人,因此有效处理遮挡也是该问题的难点之一。
    (4)复杂场景。对于行人检测的问题,监控拍摄的场景一般都较为复杂,监控摄像头也多放置在人员密集的场所,例如街道、机场、车站等,,其中所拍摄到的行人着装各异,并可能和背景相互混淆,因此从复杂场景中准确提取行人也是此问题的难点之一。
    (5)行人尺寸不同。对于同一个待检测的行人对象在一个视频的多个位置出现时,会因为距离摄像头的远近而使得他在最终的数据中呈现出不同的尺寸。对于固定分辨率的摄像头而言,此点最终表现为该行人所占区域像素总面积多少的区别。不同尺寸行人所保留的细节信息的多少也有很大差异。因此是否可以同时检测不同尺度的行人也是一个好的行人检测系统需要考虑的重要一环。

  • 解决方案
    (1)滑动窗口
    对于检测这个问题,最初始的解决方案是由Viola和Jones两位大神提出来,称为滑动窗口(Sliding-window)。如图2所示。
    滑动窗口示意图
    图2 滑动窗口示意图
    该过程首先选取一定大小的窗口(图中黄色方框,通常可能是64x128像素大小),然后从图片左上角开始,每次向右移动一定步长(例如4个像素),并且对当前窗口做一个分类,判断是否含有行人。这个扫面的过程逐行进行,直到将整个图片扫面过一遍(黄色窗口抵达图片右下角),此时,我们就找到了图片中所有64x128大小的行人。由于行人有不同的尺寸,所以下一步需要调整窗口的大小,再次进行如上的扫描过程,找到下一个尺寸的行人。
    在刚才这个过程中,涉及到两个问题需要解决。第一个是窗口怎样描述使得计算机能够识别的问题;第二个是如何分类的问题。
    (2)窗口描述
    对于第一个问题,最容易想到的方法就是将整个窗口里所有像素罗列成一个向量来作为窗口描述(如64x128的窗口则被拉成1x8192维的向量),这种方法方法相当于利用每个点的像素值作为特征值,缺点在于像素值本身并不鲁棒,受光照影响较大(当然,如果是神经元网络的算法就另当别论)。因此,在VJ的文章中是使用了Haar-like特征来做人脸检测。而在梯度直方图(Histogram of Gradient,HoG)里,则是通过这个窗口的梯度直方图特征来作为窗口的描述。此处不管是采用何种方法,最终目的都只有一个,就是对窗口形成统一维度的特征向量,以便用于下一步窗口的分类。
    (3)级联分类器
    在刚才描述滑动窗口的过程中,你可能已经发现,那个分类的过程是需要进行很多很多次的,这岂不是很耗时间。因为图中每个位置都要形成一次窗口的描述,然后对这个描述要进行一次分类,同时窗口的大小在完成一次扫描之后还会变化,如果想得到良好的检测结果,那么可能需要数十个不同大小的窗口去扫描图片,也就是说一幅图要进行数十万次分类过程,O My God,计算机岂不要算挂掉。对此,VJ的解决方案是级联分类器。见图3
    级联分类器
    图3 级联分类器示意图
    对于每个当前要分类的窗口,都训练了一系列连在一起的分类器,对于每个分类器,仅需要计算一个特征,(例如分类器1只需要窗口第一个特征值大小,>10,负样本,<=10,待分类,送入分类器2),这样,就会使得大量负样本可以通过的很少的几次计算就被过滤掉,考虑到通常输入图片中难分的样本其实并不多,大量的背景区域可以很容易过滤,那么这个级联分类器的意义就很大了。
    (4)非最大抑制(Non-Max Suppression, NMS)
    在完成了滑动窗口扫描的过程之后,图片中所有的行人应该都已经标注出来了。但是对于同一个行人来说,可能存在几个有部分区域相互重叠的窗口都对该行人做了标注(图4中四个绿色虚线所示的窗口),但此时仅存在一个行人(图中蓝色实线所示的窗口),此时应该去除其中的重叠窗口,仅留下一个窗口作为最终的标定结果。否则在最后计算检测准确率的时候,虽然另外几个窗口的标注都没有出错,但是却只有一个窗口能与标准答案相匹配,这将导致系统的准确率降低。这个去除重复窗口的过程就叫做非最大抑制,见图4。抑制的过程是这样的,首先计算两个窗口的重叠度(overlap=两个窗口重叠部分面积/二者总面积),然后对比例超过一定阈值窗口对,将其中分类器认为该窗口行人分数较低的一个去掉。
    非最大抑制
    图4 非最大抑制示意图
    好了,到此为止,介绍了行人检测大概是个什么东东,下次再来讲讲聚合通道特征(Aggregate Channel Feature,ACF)这个行人检测里常用的算法吧。

  • 5
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值