Sparse R-CNN: 稀疏的目标检测,武装Fast RCNN 新文分析

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Sparse R-CNN: 稀疏的目标检测,武装Fast RCNN 新文分析相关的知识,希望对你有一定的参考价值。

参考技术A

论文: Sparse R-CNN: End-to-End Object Detection with Learnable Proposals

  论文认为,目前的目标检测算法可以按预设框的多少分为两种:

  上述两种方法都会预测大量的结果,需要进行NMS后处理,而在训练的时候会存在many-to-one的问题,并且anchor的设置对性能的影响很大。
  于是,很多研究开始探讨稀疏(sparse)检测,比如近期的DETR算法。该算法不需要预设anchor,并且预测的结果可直接输出,不需要后处理。但论文认为DETR并不是真正的稀疏检测,因为DETR在各位置提取特征时,需要与全图的上下文进行交互,而真正的稀疏检测应该满足sparse boxes和sparse features,即较少的初始框设定以及框之间不需要过多的特征互动。
  为此,论文提出了Sparse R-CNN,如图1c所示,仅需设定少量anchor即可进行检测,而且能够进行set prediction,免去NMS等后处理,其核心主要包含以下几点:

  Sparse R-CNN的推理流程如图3所示,输入图片、可学习的proposal boxes以及可学习的proposal features,根据proposal boxes提取对应的RoIAlign特征,dynamic head将proposal features转换为卷积核参数,对RoIAlign特征进一步提取特征,再进行后续的分类和回归。整体的思想和Fast RCNN很像,将selective search替换为proposal boxes,再增加其它更强的模块。

  论文采用FPN-ResNet作为主干网络,输出多层特征,每层特征的维度都是256。采用更复杂的主干网络可以获得更好的性能,但论文与Faster R-CNN对齐,采用标准的实现。

  Sparse R-CNN的核心是采用数目固定的小批量可学习proposal boxes( )作为region proposal,而非RPN。每个box为4-d参数,在0~1范围内,值为归一化的中心点坐标、宽度和高度。这些参数在训练过程中通过反向传播进行更新,包含了训练集目标位置的统计信息,可用于推理时的初步目标位置猜测。

  尽管4维的proposal box能够直观地表示目标的定位,但缺少了目标的信息,比如目标的姿态和形状,所以论文引入proposal feature( )进行补充。proposal features是高维的可学习向量,与proposal boxes一一对应,用于丰富目标的RoIAlign特征。

  Dynamic instance interactive head的结构如图4所示,每个proposal box都有一个专属的预测head。给定 个proposal boxes和 个proposal features,先通过RoIAlign提取每个box的 维特征,Dynamic instance interactive head将其对应的 维proposal feature转换为卷积参数,使用这个卷积参数对RoIAlign特征进行提取,得到目标的 维特征,最后经过简单的3层感知机进行分类与回归。
  Dynamic instance interactive head也可以使用类似Cascade R-CNN那样的级联模式进一步的提升性能,将输出的新回归框和 维特征作为下一次迭代的proposal box和proposal feature即可。

  Sparse R-CNN的训练采用set prediction的形式,将固定数量的预测结果与GT之间进行二分图最优的匹配,然后计算损失值,完整的损失函数为:

  各模块对比实验。

  性能与收敛性。

  在COCO上进行对比。

  Sparse R-CNN贯彻了稀疏的思想,只提供少量初始框,可进行Set prediction,颠覆了当前密集预测的检测思路,整体框架十分简洁,跟Fast RCNN有点像,十分值得大家阅读。



R-CNN, Fast R-CNN, Faster R-CNN, YOLO:目标检测算法总结

参考技术A

参考链接

以下是文中涉及的算法的最原始的文章:

一个最直接的解决办法是从图中取不同的感兴趣区域,然后对这些区域用CNN进行分类,检测这些区域中是否有物体的存在。
但是待检测物体可能存在于图片的不同位置而且有不同的长宽比例。所以以上方法需要选取量非常大的区域并需要非常大的计算量。

因此,R-CNN, Fast R-CNN, Faster R-CNN, YOLO被开发去又快又准地找物体。

为了解决上述提到的有大量区域被选择的问题, Ross Girshick et al 提出了一种方法:用了选择性搜索从图片提取了2000个区域,这些区域被称为”region proposals“。

用这种办法,我们不需要去分类巨大数量的区域了,我们只需要去处理2000个区域。这2000个区域是用如下的选择性搜索算法(selective search algorithm)来找到的:

这篇文章 介绍了更多关于选择性搜索算法(selective search algorithm)的内容。

RCNN步骤:

R-CNN存在的问题:

Fast R-CNN的几个改进:
The same author of the previous paper(R-CNN) solved some of the drawbacks of R-CNN to build a faster object detection algorithm and it was called Fast R-CNN. The approach is similar to the R-CNN algorithm.

Fast R-CNN更快的原因是:

Fast R-CNN更快:
From the above graphs, you can infer that Fast R-CNN is significantly faster in training and testing sessions over R-CNN. When you look at the performance of Fast R-CNN during testing time, including region proposals slows down the algorithm significantly when compared to not using region proposals. Therefore, region proposals become bottlenecks in Fast R-CNN algorithm affecting its performance.

上面两个算法的缺点:
selective search耗时
Both of the above algorithms(R-CNN & Fast R-CNN) uses selective search to find out the region proposals . Selective search is a slow and time-consuming process affecting the performance of the network.

Faster R-CNN的改进:
不用selective search去找region proposals;
用network去找region proposals;
Therefore, Shaoqing Ren et al . came up with an object detection algorithm that eliminates the selective search algorithm and lets the network learn the region proposals .

Faster R-CNN的步骤:

时间上的对比:
Faster R-CNN最快并且能用作实时目标检测

之前几种算法的缺点:
产生region的时候没有纵览整幅图。其实图的某些部分有更高的可能性包含物体。
All of the previous object detection algorithms use regions to localize the object within the image. The network does not look at the complete image. Instead, parts of the image which have high probabilities of containing the object .

YOLO的思想:
用一个单独的网络去预测bounding boxes和bounding boxes中存在物体的概率
YOLO or You Only Look Once is an object detection algorithm much different from the region based algorithms seen above.
In YOLO, a single convolutional network predicts (1) the bounding boxes and (2)the class probabilities for these boxes.

YOLO的具体步骤:
How YOLO works is that:

YOLO的优缺点:

以上是关于Sparse R-CNN: 稀疏的目标检测,武装Fast RCNN 新文分析的主要内容,如果未能解决你的问题,请参考以下文章

第12篇Sparse R-CNN: End-to-End Object Detection with Learnable Proposals

《Sparse R-CNN:End-to-End Object Detection with Learnable Proposals》论文笔记

Stereo R-CNN 解读基于立体R-CNN的自动驾驶三维目标检测

Stereo R-CNN 解读基于立体R-CNN的自动驾驶三维目标检测

如何在TensorFlow中执行稀疏矩阵*稀疏矩阵乘法?

R-CNN, Fast R-CNN, Faster R-CNN, YOLO:目标检测算法总结