CVPR 2018 目标检测亮点算法概览

转载自:AI 之路   
原文:https://blog.csdn.net/u014380165/article/details/80784147


CVPR2018 上关于目标检测(object detection)的论文比去年要多很多,而且大部分都有亮点。从其中挑了几篇非常有意思的文章,特来分享,每篇文章都有详细的博客笔记,可以点击链接阅读。

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 数据集做的,而且效果非常出彩。 

FIgure1

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

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 训练。 

Figure1

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。 

Figure1

4、SNIP 
论文:《 An Analysis of Scale Invariance in Object Detection – SNIP 》
论文链接:https://arxiv.org/abs/1711.08189 
代码链接:https://arxiv.org/abs/1711.08189 
详细内容请移步: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。 

Figure6

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 的回归部分是一样的。

Figure2

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。 

Figure1

7、STDN 
论文:《 Scale-Transferrable Object Detection 》
论文链接:Detection with Enriched Semantics(DES) 算法笔记
详细内容请移步: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。 

Figure2

猜你喜欢

转载自blog.csdn.net/Gentleman_Qin/article/details/84452838