What Can Help Pedestrian Detection?
这篇是行人检测综述类的文章,要好好分析一下为什么能中CVPR
Abstract
- 如何利用行人镜头中的多余features来boost现有的CNN-based的检测器还没缺乏研究,引出本文第一条的贡献:本文在实验中量化评估了不同种的特征所造成的影响
- 提出了一个新的网络结构 HyperLearner ,它能联合学习行人检测的任务以及现有的多余特征。通过多任务的学习,它可以利用给定的信息来提升检测器效果而不需要额外的参考输入。
Introduction
- 综述了一下行人检测和其它目标检测的区别:要分别行人和背景更依赖于语义信息,背景遮挡(background clutter)会带来大量hard negative的样本(就是把false positive的样本当成hard negative?)
- 假如没有额外的语义信息,那么由于低分辨率的图像输入会导致检测器无法区分他们,带来recall上的减少和false alarm的增加
- 另外一个对于检测的挑战就是如何精准的定位,比如行人太拥挤的时候(重叠)用CNN检测器的效果就会很差,因为卷积和池化层提取的都是高级予以激活图,会模糊相邻对象的界限,解决办法就是充分利用低层的显著特征(比如边缘),从而提供更加明显的信息。PS:其它一些有效的信息(假如有的话)可能也会benefit detector,比如图片深度(某些相机有这个功能),假如输入视频的话还有时间信息
- 这篇文章主要想回答的问题就是基于上面这些blah blah blah产生的:作者想figure out哪种额外的信息是有效的而且会提升CNN-based的行人检测器
Contribution
- 整合多余的信息作为输入通道输入进CNN_detectors,分别对3种不同通道特征进行了实验:语义显著通道/时间通道/深度通道,数据集是KITTI
- 通过实验分析了不同类别特征的优缺点,Specifically,作者定量分析了不同这三种不同特征带来的影响,从而provide insight to 误差来源,第一二点其实是一点,就是做实验分析了三种不同的特征影响Detectors效果的机制是什么
- 提出的HyperLearner网络框架可以融合额外的信息作为多任务学习的监督,而不是作为额外的输入,因此可以利用特征的信息来提升检测性能,也不需要提供额外的参考输入,实验效果不错
Related Work
有两篇看起来还不错
33 RPN
2 end-to-end
你的文章可以参考一下这篇的用词,也是原理探讨类
Preliminaries
数据集:KITTI — 它有来自不同场景的多尺度的行人图像,还有邻帧和立体数据。有7481张标注图片(分辨率为1250*375)和另外的7518张测试图片,训练集被分成两个独立的训练和测试集,识别类别是两类:行人和骑自行车的人。评价指标用的PASCAL,KITTI包含三种评价指标:easy, moderate and hard
检测模型:Faster R-CNN,用VGG-16模型在ImageNet上预训练的权重,它有由两部分组成:一个全卷积的RPN用来生成候选区域,还有一个downstream的Fast RCNN将带有了目标分数的目标作为输入进行分类(RPN的目的是实现”attention”机制,告诉后续的扮演检测\识别\分类角色的Fast-RCNN应该注意哪些区域,它从任意尺寸的图片中得到一系列的带有 objectness score 的 object proposals)
对FRCNN做了微调:anchors从3 scales 和3 ratios调整成为了5 scales 和7 ratios,所有的conv5层都被去掉以保存高分辨率的给RPN和RFCNN的激活图
通道特征
1、Apperent-to-semaantic channels:包含ICF通道[1]、edge channel边缘通道、segmentation channel分割通道 和 heatmap channel热点图通道
ICF通道请参看上面的说明,它包含的是最低维但是具体的图像信息
edge channel是从HED网络[2]的第二和第三层提取出来的。和传统的边缘检测如canny算子不同,HED提供的是语义信息更加有意义的边缘图,它包含的既有具体的图像外貌又又高层的语义信息
temporal channel包含了光流和运动特征,这里选择光流通道来表示相邻帧
depth channel:现在自动驾驶等领域都用到深度传感器,本文用DispNet来从立体图中重建disparity channel
下图是这些通道特征的表示
Integration techniques
这个结构很像今年CVPR另一篇Joint Detection and Identification的,对比一下哈
我们通过创造一个新的浅层side branch在VGG-16旁边结合了通道特征。这个side branch由几个卷积层和最大池化层组成,输出是一个128通道的激活图(是让输入的1/8的大小),被连接到激活图conv4_3。连接的激活图送进RPN和FRCNN来执行检测。
预训练过的模型会更加“依赖”side branch(由side branch产生的激活图比主流的VGG产生的值更大),这可能是造成性能下降的原因。基于这个分析,我们用了两个卷积层来
PS: 所谓anchors,实际上就是一组由rpn/generate_anchors.py生成的矩形(是候选窗口的意思?)