前言

本篇文章出自CVPR2017,四名作者为Tsinghua University,Peking University, 外加两名来自Megvii(旷视科技)的大佬。 文章中对能够帮助行人检测的extra features做了诸多分析,并且提出了HyperLearner行人检测框架(基于Faster R-CNN改进),在KITTI&Caltech&Cityscapes数据集上实现了极为优秀的性能。

论文:http://openaccess.thecvf.com/content_cvpr_2017/papers/Mao_What_Can_Help_CVPR_2017_paper.pdf

正文

行人检测出了什么问题?

无疑,行人检测在步态识别、智能视频监控和自动驾驶等领域发挥着重要作用。作者在文中指出,虽然近年来深度卷积网络在通用目标检测上取得了巨大的进步,但在行人检测领域的研究仍有两大主要挑战:

(1)首先,相比一般的物体,行人与背景的辨识度更小。



如上图,行人在杂乱的背景带来难以区分的负样本,如交通标志、邮筒等。它有非常相似的表观特征与行人。没有额外的语义上下文,使用这种低分辨率输入的检测器无法区分它们,从而导致召回率的降低和误报的增加。

(2)如何准确定位每一个行人。行人在拥挤的场景中站得很近,给定位每个个体带来挑战。而对于深度卷积网络来说,这个问题变得更糟了,因为卷积和池化生成高层次的语义激活映射,它们也模糊了靠得近的行人之间的边界。

用额外特征改善行人检测器

相关改进:

作者考虑用额外的特征来提升CNN-based pedestrian detectors的性能。这些特征归类如下:



(1)apparent-to-semantic channels(如梯度、边缘、像素分割、热力信息通道)

(2)temporal channels (时间序列通道,在文中为相邻时间帧中提取光流通道)

(3)depth channels (深度通道)

此外,作者对作为基本框架的Faster R-CNN做了相关改进:将原来anchor的 3 scales&3 ratios 增加到 5 scales&7 ratios,即一个anchor中心点可以对应为35个box;考虑到行人区域小,为了获得更高分辨率的信息,除去了所有的conv5层

整合方案:

如何将额外的特征送入网络中?作者在VGG-16的主体网络上添加了一个新的分支网络。文章中介绍称,这个网络由一些卷积层(kernel size 3, padding 1 and stride 1)和池化层(kernel size 2 and stride 2)组成,输出为128通道的特征,1/8原图像的大小,而后与主体网络中输出的特征级联起来,再送入RPN。如图:



得出的结论是,在KITTI数据集上,所有的集成方法都提高了Faster R-CNN检测器的性能。

比较分析:

作者进行了两个尺度的实验(1x and 2x,这里指的是图像比例),下表为实验结果。



在1x和2x实验中,semantic information都表现出了更好的性能。在2x试验中,高层语义信息但没有低级的明显特征(即热图通道)未能超过1X的实验的效果。作者认为,当图像以大的scale输入时,低级别的细节将显示出更大的重要性。随后的验证实验也证实了这一想法。

HyperLearner

原理:

将不同通道的特征强行整合虽然有利于提升性能,但相对于原生的Faster R-CNN,在计算成本上变的更为昂贵。由于许多的通道特征都是可以用CNN生成的(如semantic segmentation and edge),于是,作者想要教会CNN生成通道特征,并且实现行人检测。



HyperLearner的框架由四部分组成:提取原图特征的body network,通道特征的网络(CFN),区域建议网络(RPN)和用于最终检测认为的Fast R-CNN(FRCNN)网络。

类似于HyperNet,作者提取提取层conv1_2,conv2_2,conv3_3和conv4_3的特征,并进行汇聚(黄色部分的特征图)。而CFN通过一个完全卷积结构,直接让聚合激活图生成预测的通道特征图。RPN和FRCNN与Faster R-CNN中的网络同理。在训练时,是需要一张额外的通道特征图作为监督的。而在测试时,如图所示,黄色的那部分特征图其实就相当于其它通道提取的特征,与body network concat一下即可。

训练:

作者采用了Multi-stage training的方法。整个训练阶段分为四个阶段。

在第一阶段,只有CFN的优化。详细来说,修正所有参数(conv1_1到conv4_3),并放弃训练RPN和FRCNN。

在第二阶段,我们将整个body network(包括聚合激活图卷积层)和CFN,只训练RPN。

第三阶段,CFN和RPN是固定的;只有FRCNN优化。

最后阶段,所有层都是联合优化的。

实验

实验结果可以说是非常暴力了。在KITTI&Caltech dataset&Cityscapes上都实现了极为优越的性能。

KITTI:

Cityscapes:

Caltech dataset:

总结

为了利用额外特征提升检测器性能,同时解决计算成本问题,文中提出了一个新的框架HyperLearner,以共同学习通道特征和完成行人检测。HyperLearner能够学习通道特征的表示,同时不需要额外的推理输入,在几个数据集上有着显著的改进。


感谢您的阅读,文中的疏漏与错误,恳请批评指正。

【论文解读】行人检测:What Can Help Pedestrian Detection?(CVPR'17)的更多相关文章

  1. paper 87:行人检测资源(下)代码数据【转载,以后使用】

    这是行人检测相关资源的第二部分:源码和数据集.考虑到实际应用的实时性要求,源码主要是C/C++的.源码和数据集的网址,经过测试都可访问,并注明了这些网址最后更新的日期,供学习和研究进行参考.(欢迎补充 ...

  2. 行人检测(Pedestrian Detection)资源

    一.论文 综述类的文章 [1]P.Dollar, C. Wojek,B. Schiele, et al. Pedestrian detection: an evaluation of the stat ...

  3. 目标检测之行人检测(Pedestrian Detection)---行人检测之简介0

    一.论文 综述类的文章 [1]P.Dollar, C. Wojek,B. Schiele, et al. Pedestrian detection: an evaluation of the stat ...

  4. 【计算机视觉】行人检测(Pedestrian Detection)资源

    一.论文 综述类的文章 [1]P.Dollar, C. Wojek,B. Schiele, et al. Pedestrian detection: an evaluation of the stat ...

  5. 行人检测(Pedestrian Detection)资源整合

    一.纸 评论文章分类: [1] D. Geronimo, and A. M.Lopez. Vision-based Pedestrian Protection Systems for Intellig ...

  6. AAAI2019 | 基于区域分解集成的目标检测 论文解读

    Object Detection based on Region Decomposition and Assembly AAAI2019 | 基于区域分解集成的目标检测 论文解读 作者 | 文永亮 学 ...

  7. 目标检测之行人检测(Pedestrian Detection)基于hog(梯度方向直方图)--- 梯度直方图特征行人检测、人流检测2

    本文主要介绍下opencv中怎样使用hog算法,因为在opencv中已经集成了hog这个类.其实使用起来是很简单的,从后面的代码就可以看出来.本文参考的资料为opencv自带的sample. 关于op ...

  8. CVPR2019论文解读:单眼提升2D检测到6D姿势和度量形状

    CVPR2019论文解读:单眼提升2D检测到6D姿势和度量形状 ROI-10D: Monocular Lifting of 2D Detection to 6D Pose and Metric Sha ...

  9. CVPR2020 论文解读:少点目标检测

    CVPR2020 论文解读:具有注意RPN和多关系检测器的少点目标检测 Few-Shot Object Detection with Attention-RPN and Multi-Relation ...

随机推荐

  1. 转载:理解RESTful架构

    http://www.ruanyifeng.com/blog/2011/09/restful.html 越来越多的人开始意识到,网站即软件,而且是一种新型的软件. 这种"互联网软件" ...

  2. Qt5_qtconfig

    1.http://tieba.baidu.com/p/3225596765 QtConfig was removed in Qt5. If you want to force Qt5 to use a ...

  3. 《剑指offer》第三_二题(不修改数组找出重复的数字)

    // 面试题3(二):不修改数组找出重复的数字 // 题目:在一个长度为n+1的数组里的所有数字都在1到n的范围内,所以数组中至 // 少有一个数字是重复的.请找出数组中任意一个重复的数字,但不能修改 ...

  4. Linux忘记root登录密码解决方法

    有时候由于长时间米有登录linux系统,等需要用的时候突然忘记root密码,怎么办?下面简单介绍解决方法. redhat 和 centos 6.5 可以,7.0以上未测 在系统重启后,不停地按”e”键 ...

  5. C++编程模板2

    C++编程模板2 #include <iostream> using namespace std; /* */ int main(){ int ans; printf("%d\n ...

  6. Linux Used内存到底哪里去了?

    原创文章,转载请注明: 转载自系统技术非业余研究 本文链接地址: Linux Used内存到底哪里去了? 前几天 纯上 同学问了一个问题: 我ps aux看到的RSS内存只有不到30M,但是free看 ...

  7. Java基础-面向对象(08)

    面向过程 完成一个需求的步骤:首先是搞清楚我们要做什么,然后在分析怎么做,最后我们再代码体现.一步一步去实现,而具体的每一步都需要我们去实现和操作.这些步骤相互调用和协作,完成我们的需求.面向过程开发 ...

  8. 【模板/经典题型】带有直线限制的NE Latice Path计数

    平移一下,变成不能接触y=x+1. 注意下面的操作(重点) 做点p=(n,m)关于这条直线的对称点q=(m-1,n+1). ans=f(p)-f(q). 其中f(x)为从(0,0)到点x的方案数.

  9. PHP函数总结 (五)

    <?php /** * 回调函数: * 指调用函数时并不是传递一个标准的变量作为参数,而是将另一个函数作为参数传递到调用的函数中 * 使用回调函数可以 将一段自己定义的功能传到函数内部使用 * ...

  10. MySql 定时完成备份

    <?php /*定时备份数据库文件*/ //设置时区 date_default_timezone_set('PRC'); //创建目录 $dirname = 'e:/mysql_dump/'.d ...