FASTER RCNN发展历程

目录

CVPR2018目标检测

1、Cascaded RCNN 

2、Relation Networks for Object Detection

3、RefineDet 

4、SNIP 

5、R-FCN-3000 

6、DES 

7、STDN 

ECCV2018目标检测

1、IOU-Net

​2、DetNet

​3、RFB Net

​4、PFPNet

​5、CornerNet

检测发展历程概览

参考


CVPR2018目标检测

1、Cascaded RCNN 

论文:Cascade R-CNN Delving into High Quality Object Detection 
论文链接:https://arxiv.org/abs/1712.00726 
代码链接:https://github.com/zhaoweicai/cascade-rcnn 
详细内容请移步:Cascade RCNN算法笔记

Cascaded RCNN这篇文章的出发点非常有意思,是通过分析输入proposal和ground truth的IOU与检测模型采用的用于界定正负样本的IOU关系得到结论:当一个检测模型采用某个阈值(假设u=0.6)来界定正负样本时,那么当输入proposal的IOU在这个阈值(u=0.6)附近时,该检测模型比基于其他阈值训练的检测模型的效果要好,参看FIgure1(c)。

Cascaded RCNN通过级联几个检测网络达到不断优化预测结果的目的,与普通级联不同的是,cascade R-CNN的几个检测网络是基于不同IOU阈值确定的正负样本上训练得到的,前一个检测模型的输出作为后一个检测模型的输入,因此是stage by stage的训练方式,而且越往后的检测模型,其界定正负样本的IOU阈值是不断上升的。cascade R-CNN的实验大部分是在COCO数据集做的,而且效果非常出彩。

FASTER RCNN发展历程_第1张图片

这是在COCO数据集上的结果。

FASTER RCNN发展历程_第2张图片

2、Relation Networks for Object Detection

论文:Relation Networks for Object Detection 
论文链接:https://arxiv.org/abs/1711.11575 
代码链接:https://github.com/msracver/Relation-Networks-for-Object-Detection 
详细内容请移步:Relation Networks for Object Detection算法笔记、Relation Networks for Object Detection源码解读(网络结构细节)

这篇文章的出发点在于目前大部分的目标检测(object detection)算法都是独立地检测图像中的object,但显然如果模型能学到object之间的关系显然对于检测效果提升会有帮助,因此这篇文章希望在检测过程中可以通过利用图像中object之间的相互关系或者叫图像内容(context)来优化检测效果,这种关系既包括相对位置关系也包括图像特征关系。

这篇文章提出了object relation module来描述object之间的关系,从而以attention的形式附加到原来的特征上最后进行回归和分类。实验是针对two stage系列的目标检测算法而言,在ROI Pooling后的两个全连接层和NMS模块引入object relation module,如Figure1所示,因此做到了完整的end-to-end训练。

FASTER RCNN发展历程_第3张图片

3、RefineDet 

论文:Single-Shot Refinement Neural Network for Object Detection 
论文链接:https://arxiv.org/abs/1711.06897 
代码链接:https://github.com/sfzhang15/RefineDet 
详细内容请移步:RefineDet算法笔记、RefineDet算法源码 (一)训练脚本、RefineDet算法源码(二)网络结构

个人觉得RefineDet是一篇很不错的文章,该算法大致上是SSD算法和RPN网络、FPN算法的结合,可以在保持SSD高效的前提下提高检测效果(实验效果提升挺明显)。第一眼看到这篇文章就让我想起了RON,毕竟都是想做one stage和two stage的object detection算法结合。

RefineDet的主要思想:一方面引入two stage类型的object detection算法中对box的由粗到细的回归思想(由粗到细回归其实就是先通过RPN网络得到粗粒度的box信息,然后再通过常规的回归支路进行进一步回归从而得到更加精确的框信息,这也是two stage类型的object detection算法效果优于one stage类型的一个重要原因)。另一方面引入类似FPN网络的特征融合操作用于检测网络,可以有效提高对小目标的检测效果,检测网络的框架还是SSD。

网络结构参考Figure1。

FASTER RCNN发展历程_第4张图片

4、SNIP 

论文:An Analysis of Scale Invariance in Object Detection – SNIP 
论文链接:https://arxiv.org/abs/1711.08189 
代码链接:http://bit.ly/2yXVg4c 
详细内容请移步:SNIP 算法笔记

这篇文章从数据集出发进行了非常详细的分析和实验对比,发现在COCO数据集中小目标占比要比ImageNet数据集大,这样在用ImageNt数据集的预训练模型时就会产生domain-shift问题,另外COCO数据集中的object尺寸变化范围非常大,即便采用multi-scale training的方式也很难训练一个检测器去cover所有scale的目标。

因此,这篇文章针对前面提到的问题,提出一种新的训练模型的方式:Scale Normalization for Image Pyramids (SNIP),该算法主要包含两个改进点:1、为了减少前面所提到的domain-shift,在梯度回传时只将和预训练模型所基于的训练数据尺寸相对应的ROI的梯度进行回传。2、借鉴了multi-scale training的思想,引入图像金字塔来处理数据集中不同尺寸的数据。

SNIP网络结构参考Figure6。

FASTER RCNN发展历程_第5张图片

5、R-FCN-3000 

论文:R-FCN-3000 at 30fps: Decoupling Detection and Classification 
链接:https://arxiv.org/abs/1712.01802 
详细内容请移步:R-FCN-3000算法笔记

这篇文章主要是成功将R-FCN算法(关于R-FCN算法的介绍可以看博客)应用在检测类别较多的场景下。首先当初提出R-FCN算法的主要目的在于引入position-sensitive score map解决原来Faster RCNN中ROI的重复计算问题,有效提升速度。但是如果检测的类别数非常多(比如这里的3000类),那么直接用R-FCN算法的话速度是很慢的,瓶颈正是生成分类支路的position-sensitive score map时计算量非常大,因此这篇文章通过解耦分类支路的position-sensitive score map生成的过程(将原来的分类支路拆分成两条支路,而回归支路还是采用R-FCN的回归支路,这篇文章不做修改,这是因为增加检测类别数增加不影响回归支路的计算量),从而在保证速度(30FPS)的情况下将R-FCN的分类类别数延伸至3000类。

Figure2是F-RCN-3000的分类支路过程,该过程包含两条支路(Figure2上面那条是生成objectness score的过程,Figure2下面那条是生成fine-grained classification score的过程),这两条支路的结果的乘积才是最终的分类结果。在Figure2中回归部分并未画出,但是需要注意的是回归部分和R-FCN的回归部分是一样的。

FASTER RCNN发展历程_第6张图片

 

6、DES 

论文:Single-Shot Object Detection with Enriched Semantics 
论文链接:https://arxiv.org/abs/1712.00433 
详细内容请移步:Detection with Enriched Semantics(DES)算法笔记

Detection with Enriched Semantics(DES)主要是基于SSD做改进,也是为了解决SSD中对于小目标物体的检测效果不好的问题,因为SSD算法对小目标的检测只是利用了浅层的特征,并没有用到高层的语义特征。因此这篇文章的出发点就是为了增加用于检测的feature map的语义信息,主要的措施包括:1、引入segmentation module用于得到attention mask,从而提高low level的feature map的语义信息。2、引入global activation module用于提高high level的feature map的语义信息。

实验效果不错,在VOC2007数据集上,DES512能达到81.7的mAP,而且在Titan X上的速度是31.7FPS(batch设置为8,不过比相同大小输入和相同特征提取网络的SSD算法慢一些)。

网络结构参考Figure1。 

FASTER RCNN发展历程_第7张图片

7、STDN 

论文:Scale-Transferrable Object Detection 
论文链接:https://pan.baidu.com/s/1i6Yjvpz 
详细内容请移步:Scale-Transferrable Detection Network(STDN)算法笔记

Scale-Transferrable Detection Network(STDN)算法主要用于提高object detection算法对不同scale的object的检测效果。该算法采用DenseNet网络作为特征提取网络(自带高低层特征融合),基于多层特征做预测(类似SSD),并对预测结果做融合得到最终结果。该算法有两个特点:1、主网络采用DenseNet,了解DenseNet的同学应该知道该网络在一个block中,每一层的输入feature map是前面几层的输出feature map做concate后的结果,因此相当于高低层特征做了融合。高低层特征融合其实对object detection算法而言是比较重要的,FPN算法是显式地做了高低层特征融合,而SSD没有,这也是为什么SSD在小目标问题上检测效果不好的原因之一,因此该算法虽然看似SSD,但其实和SSD有区别。2、引入scale-transfer layer,实现了在几乎不增加参数量和计算量的前提下生成大尺寸的feature map(其他常见的算法基本上都是采用deconvolution或upsample),由于scale-transfer layer是一个转换操作,因此基本不会引入额外的参数量和计算量。

网络结构参考Figure2。 

FASTER RCNN发展历程_第8张图片

ECCV2018目标检测

1、IOU-Net

论文:Acquisition of Localization Confidence for Accurate Object Detection
论文链接:https://arxiv.org/abs/1807.11590
详细博客介绍:IOU-Net 算法笔记

这篇文章个人非常喜欢,我们知道在目标检测算法中最后一般都会通过NMS算法移除重复预测框,移除的依据是预测框的分类得分(classification confidence,也就是softmax层的概率输出),但是这种依据并不能很好地表征预测框的准确性,换句话说对于同一个ground truth而言,分类得分高的预测框并不一定比分类得分低的预测框好,这样就容易导致那些分类得分低,但是坐标和ground truth更接近,也就是坐标回归更准确的预测框在NMS阶段被过滤掉,导致最终指标的下降。因此这篇文章就提出IOU-Net,通过预测检测框和ground truth的IOU来解决这2个问题:1、提出IOU-guided NMS,也就是在NMS阶段引入回归得分(localization confidence)作为排序指标而不是采用传统的分类得分。2、提出optimization-based bbox refinement替换传统的regression-based方法,提高了回归部分的可解释性。另外这篇文章还提出了Precise ROI Pooling(PrROI Pooling),通过积分方式计算ROI特征使得前向计算的误差进一步降低,同时反向传播时基于连续输入值计算梯度使得反向传播连续可导,相比之下ROI Pooling和ROI Align由于采用量化或几个点插值方式求ROI特征,不可避免地带来一些噪声,而且在反向求导时只对特定输入回传梯度。

Figure1是关于这篇文章出发点的介绍。

FASTER RCNN发展历程_第9张图片
2、DetNet

论文:DetNet: A Backbone network for Object
链接:https://arxiv.org/abs/1804.06215
详细博客介绍:DetNet 算法笔记

这篇关于目标检测的文章,主要是对检测算法的特征提取网络(backbone)做优化。我们知道目前大部分的目标检测算法在训练时都会用预训练的分类模型来提取特征,这些预训练模型是在ImageNet数据集上训练得到的,众多的实验也证明了这种做法的有效性。而DetNet这篇文章相当于研究更加有效的特征提取网络,出发点也非常直接,主要包含两点:1、分类任务和检测任务还是有一定差别的,因此用分类数据上训练的分类模型来提取特征用于检测任务不一定合适,比如检测任务比较关注目标的尺度特征,但是分类任务就不一定了。2、检测任务不仅仅要做目标的分类,而且要做目标的定位,这样的差异容易导致一些问题,比如在分类网络中常用的降采样操作可能对分类有效,因为增大了感受野,但是对于需要定位目标的检测任务而言就不一定有利,因为丢失了目标的位置信息。因此DetNet的提出主要也是针对这两个出发点,换句话说是设计了一个专门用于目标检测算法的特征提取网络,主要改进点包括:1、增加网络高层输出特征的分辨率,换句话说就是高层不对特征图做尺寸缩减。2、引入dilated卷积层增加网络高层的感受野,这是因为第一个改进点引起的感受野减小。3、减小网络高层的宽度,减少因增大分辨率带来的计算量。

Figure1是第1个改进点。

FASTER RCNN发展历程_第10张图片
Figure2是关于第2、3个改进点。

FASTER RCNN发展历程_第11张图片
3、RFB Net

论文:Receptive Field Block Net for Accurate and Fast Object Detection
论文链接:https://arxiv.org/abs/1711.07767
代码链接:https://github.com/ruinmessi/RFBNet
详细博客介绍:RFB Net算法笔记

这篇关于目标检测的文章,提出了RFB Net网络用于目标检测,可以在兼顾速度的同时达到良好的效果。该网络主要在SSD网络中引入Receptive Field Block (RFB) ,引入RFB的出发点通过模拟人类视觉的感受野加强网络的特征提取能力,在结构上RFB借鉴了Inception的思想,主要是在Inception的基础上加入了dilated卷积层(dilated convolution),从而有效增大了感受野(receptive field)。整体上因为是基于SSD网络进行改进,所以检测速度还是比较快,同时精度也有一定的保证。

RFB结构如Figure4所示。

FASTER RCNN发展历程_第12张图片
RFB Net结构如Figure5所示。

FASTER RCNN发展历程_第13张图片
4、PFPNet

论文:Parallel Feature Pyramid Network for Object Detection
论文链接:http://openaccess.thecvf.com/content_ECCV_2018/html/Seung-Wook_Kim_Parallel_Feature_Pyramid_ECCV_2018_paper.html
详细博客介绍:PFPNet 算法笔记

这篇文章借鉴了SPP的思想并通过MSCA(multi-scale context aggregation)模块进行特征融合从而提出PFPNet(Parallel Feature Pyramid Network)算法来提升目标检测的效果。PFPNet整体上还是one stage类型的目标检测算法,思想借鉴了SSD,速度上有保证,效果上因为引入SPP思想构造特征金字塔,相当于加宽了网络,同时MSCA模块做类似FPN的特征融合操作,最后基于多层融合特征进行预测,因此效果也是很不错的,和CVPR2018的RefineDet效果基本上差不多。

PFPNet的网络结构如Figure3所示。

FASTER RCNN发展历程_第14张图片
5、CornerNet

论文:CornerNet: Detecting Objects as Paired Keypoints
论文链接:https://arxiv.org/abs/1808.01244
代码链接:https://github.com/umich-vl/CornerNet
详细博客介绍:CornerNet 算法笔记

这篇目标检测文章给人一种眼前一亮的感觉,简单说一下几个比较吸引我的点:1、将目标检测问题当作关键点检测问题来解决,也就是通过检测目标框的左上角和右下角两个关键点得到预测框,因此CornerNet算法中没有anchor的概念,这种做法在目标检测领域是比较创新的而且能够取得不错效果是很难的。2、整个检测网络的训练是从头开始的,并不基于预训练的分类模型,这使得用户能够自由设计特征提取网络,不用受预训练模型的限制。

CornerNet算法整体结构如Figure4所示。

FASTER RCNN发展历程_第15张图片

检测发展历程概览

https://github.com/hoya012/deep_learning_object_detection

https://arxiv.org/pdf/1809.02165.pdf

FASTER RCNN发展历程_第16张图片

 

参考

https://blog.csdn.net/wfei101/article/details/80861681 

https://blog.csdn.net/qq_35451572/article/details/80758263#commentBox

https://blog.csdn.net/u014380165/article/details/82025720

https://blog.csdn.net/weixin_40245131/article/details/79754531

https://blog.csdn.net/hw5226349/article/details/81906882(超级全)

超级全的原文地址https://handong1587.github.io/deep_learning/2015/10/09/object-detection.html

你可能感兴趣的:(目标检测)