HyperNet: Towards Accurate Region Proposal Generation and Joint Object Detection
论文地址:http://arxiv.org/pdf/1604.00600.pdf
核心思想:
HyperNet:HyperNet网络基于设计的Hyper特征,这种特征主要先集合分等级的特征图,然后将其压缩到一个空间。这种Hyper特征同时具有足够深和很好的语义信息,在PASCAL VOC 2007和2012上可以通过每张图产生仅仅100个proposal,而达到很好的精度和效果,同时可以达到实时,GPU下 5 fps的速度。 |
本文是region-based 目标检测框架。相比与faster rcnn,hypernet更擅长处理小物体,并且产生更高质量的proposal。
Hyper方法主要的贡献有:
(1)在仅仅 50 proposal情况下,可达到 recall 95%,在100 proposal情况下,达到 recall 97%,远远高于其他算法 ;
(2)在PASCAL VOC 2007和2012中, mAP分别达到76.3%和71.4%,比 Fast R-CNN提高 0.6 和 0.3 ;
(3)速度可以达到实时,用深的CNN模型时可以达到 5 fps;
整体的框架
如下:
Hyper Feature Production:
在Hyper特征形成细节上,由于不同层大小的不同,在低层添加了max pooling layer以完成降采样过程;而在高层,添加 deconvolutional operation (Deconv),去卷积化来形成上采样。这样作者认为得到的信息结合了更多的语义信息,同时形成一个特殊的空间,最后通过local response normalization (LRN)标准化,即得到 Hyper 特征。
该特征主要有以下优点:
(1)多级抽象,将不同高低的层的CNN特征结合 ;
(2)适当的分辨率,对于一个1000*600的图像的特征图分辨率正好调整至250*150,这个尺度对于检测很方便 ;
(3)计算效率,所有特征可以在proposal和detection产生前进行预计算好,做到没有计算冗余;
Region Proposal Generation:
作者在产生的hyper feature map上随机产生了不同大小和尺度的proposal,然后每一个都feed到ROI pooling里面去,然后对这每一个proposal做一个判断是不是proposal,其中使用了一个卷积作为降维和防止overfit。
这一步给我的感觉是整篇文章最大的瓶颈,因为70%的时间就在这一步。加速的方法是把卷积层放到了ROI Pooling前面,但是performance会下降。
Object Detection:
和fast rcnn到大同小异,Proposal 经过ROI Pooling之后增加一层卷积,然后做一个joint training。
(a)在FC前加入一个3x3x63的卷积使得分类器更加强大,且减少了一半的特征维度,facilatating;
(b)dropout从0.5修改为0.25;
Joint Training:
加速方法
为了速度的提升,这里去除了ROI pooling层后面的3*3*4的卷积层加速,这样主要有两点优势:Hyper特征图数量大大减少,同时滑动窗分类器更加简单(from Conv-FC to FC)
总结:
整个framework的训练,先训练proposal generation这一块,然后再训练后面的detection,然后conv sharing 再train一遍。
本文的优点非常明显,proposal的质量非常高,top 100 proposal就达到了97%的recall(IOU 0.5),在IOU 0.7的情况下同样非常强,这应该得益于hyper feature map的原因。但是缺点是速度大于了1秒,当用加速版本,速度可以和faster rcnn基本持平。我认为在proposal generation这一步可以有一些思考的地方。