Paper Reading:HyperNet
论文:HyperNet: Towards Accurate Region Proposal Generation and Joint Object Detection
发表时间:2016
发表作者:(tsinghua)Tao Kong, Anbang Yao, Yurong Chen, Fuchun Sun
发表刊物/会议:cvpr
论文链接:论文链接
CNN高层特征具有丰富的语义信息,低层特征具有较高空间分辨率,研究如何融合不同层之间的特征,是物体检测领域热门的方向。近期很多工作通过融合多层来提升检测和分割的性能,按照融合与预测的先后顺序,分类为早融合(Early fusion)和晚融合(Late fusion)。
早融合: 先融合多层的特征,然后在融合后的特征上训练预测器。这类方法也被称为skip connection。这里面的代表是ION和HyperNet。本文主要介绍 HyperNet的思想细节。
HyperNet是2016年清华提出的优秀的Faster-RCNN变种。HyperNet主要改进在于集合了多层的特征图,得到多尺度的超特征(Hyper Feature),相比与Faster-RCNN,HyperNet更擅长处理小物体,在高IOU时更有优势,mAP提高3.1%。但多尺度也必然降低速度。其快速模型HyperNet-SP速度与Faster-RCNN相同,VOC上mAP仅提高1.6%。但注意到其应用的跳层特征(skip layer feature)在处理小物体检测中已经在ION等多次被用到,成为了一种常用的有效手段。
整体框架
按照红框的依次介绍:
Network for Hyper Feature Extraction:
RCNN之后的framework在做小物体检测时有一个通病,就是物体的的信息会损失的非常厉害,比如原来\(32*32\)的物体,到最后一层feature map 只剩下了\(2*2\),所以本文为了处理这个问题提出了两种方法,第一种,放大feature map,第二种,skip layer。按照标配输入\(1000*600\)的图最后的map size 会是\(62*37\), 这样的话信息损失非常严重,所以作者想办法把最后的map放大到\(250*150\),把第一层的map做一个max pooling, 把最后一层的map做一个deconv,然后把1,3,5层的map LRN之后连在一起。LRN是必要的,因为不同层的feature resolution 不同,如果不做正则norm大的feature会压制住norm小的feature。
在产生hyper feature map之前,这些resize过的map会各自通过一层卷积,一方面缩小维度,另一方面增强语义。
Region Proposal Generation:
作者讲了RPN的另外一个坏处,就是RPN在产生proposal的时候,一个sliding window产生9个尺度大小不同的anchor作为proposal的基准,作者argue,尺度大小不同的proposal用同样的input去产生会有问题,所以用了这个方法。在产生的hyper feature map上随机产生了不同大小和尺度的proposal,然后每一个都feed到ROI pooling里面去,然后对这每一个proposal做一个判断是不是proposal,其中使用了一个卷积作为降维和防止overfit。
这一步是整篇文章最大的瓶颈,因为70%的时间就在这一步。加速的方法是把卷积层放到了ROI Pooling前面,但是performance会下降。
Object Detection:
和fast rcnn到大同小异,在原来的检测网络基础上做了两点改进:
a)在 FC 层之前添加了一个 卷积层(\(3*3*63\)),对特征有效降维;
b)将 DropOut 从 0.5 降到 0.25;
另外,与 Proposal一样采用了 NMS 进行 Box抑制,但由于之前已经做了,这一步的意义不大。
采用了 联合训练(joint training)的方法,首先对 Proposal 和 Detection 分别训练,固定一个训练另一个,然后 joint 训练,即共享前面的卷积层训练一遍,具体可以参考原文给出的训练流程。
Hyper Feature Extraction
跳层提取特征。既能获取高层语义,又可以得到低层高分辨率的位置信息。提高小目标检测效果。
注:
不同层提出了不同的采样策略。在层次较低的卷积层最大池化。对层次较高的卷积层,添加了一个反卷积操作(Deconv)来进行上采样。最后,用LRN(local response normalization)归一化多个feature maps。LRN是必要的,因为不同层的feature resolution 不同,如果不做正则norm大的feature会压制住norm小的feature。
该特征主要有以下优点:
(1)多级抽象,将不同高低的层的CNN特征结合
(2)适当的分辨率,对于一个\(1000*600\)的图像的特征图分辨率正好调整至250*150,这个尺度对于检测很方便
(3)计算效率,所有特征可以在proposal和detection产生前进行预计算好,做到没有计算冗余
训练中的loss函数主要有两部分,类别loss,bounding box和positive box的loss,这里主要参考了其他文章,没有特别的地方。而proposal的产生部分参数,则主要参考R-CNN。
加速方法
为了速度的提升,这里去除了ROI pooling层后面的\(3*3*4\)的卷积层加速,这样主要有两点优势:Hyper特征图数量大大减少,同时滑动窗分类器更加简单(from Conv-FC to FC)
实验效果对比
通过对比可以看到 mAP 比 Faster 提高了 1%,主要是多尺度的功劳。