[文献总结]sparse Rcnn

1. 背景

当前主流的目标检测方法往往存在dense的属性,这里有两个例子。

  1. one-stage/Dense:没有proposal的提取过程,一次完成识别与回归
  2. two-stage/Dense-to-sparse:第一级专注于proposal的提取(速度up精度down);第二级对提取的proposal进行分类回归(精度up速度down)
    在这里插入图片描述

但是麻烦在于:
1.prior candidates 的设计
2.one-to-many的正负样本标签分配策略
3.nms后处理,对冗余和重复的结果

于是,作者很自然的想到是否有一种完全sparse的框架,既能够mAP↑也能v↑;在这里DETR给了作者启发。
在这里插入图片描述

但是DETR要求每个对象查询与上下文的全局feature图像进行交互。从这一点而言他爷是dense性质的,会在训练时造成慢速收敛的情况,消耗比较大。
于是,在作者的不懈努力下,他达成了自己双sparse的目标。这两个目标分别是:

  • 尽可能少的预测目标
  • 每个特征都不是与整个图的特征交互

2. 主要内容

在这里插入图片描述

网络首先会选取n个可学习的候选框,他有四个参数分别表示归一化的中心坐标、高度、宽度,这组参数和整个网络中其他参数一起被训练优化。
但是由于太过粗糙,想表现例如头的姿态的详细特征,增加了feature的细节参数。
这组features与boxes提取出的ROI feature做了一对一的交互,组成了动态实例交互头。右下角是这个部分的一个简单结构图。

3. 图表

  1. Comparisons with different object detectors on COCO 2017 val set.
    作者提供了几个对比表,显示这种新方法的性能。Sparse R-CNN与RetinaNet,Faster R-CNN和DETR在ResNet50和ResNet100的两个变体上的比较。在这里我们可以看到稀疏的R-CNN在R50和R100上都比RetinaNet和Faster R-CNN更好,但是它的性能与基于DETR非常相似。
    在这里插入图片描述

  2. 对于各个部件的优化性的测试
    在这里插入图片描述

表2从faster R-CNN开始,我们逐渐在稀疏R-CNN中添加可学习的建议框、迭代架构和动态头部。所有模型均采用集合预测损失进行训练。
表4 动态头部中实例交互的影响。
在这里插入图片描述
从表5我们可以看出,稀疏R-CNN的最终性能对提议框的初始化是相对稳健的。
表6是选框数量对他的影响
在这里插入图片描述

表7显示了迭代体系结构中阶段数的影响。

4.代码阅读

在这里插入图片描述
在这里插入图片描述

  1. 设置proposal boxes&features
    在这里插入图片描述
  2. RoiPoolingAlign统一池化
    在这里插入图片描述
  3. 卷积头
    在这里插入图片描述
  4. 级联Rcnn,6个stage
  5. loss计算
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44986601/article/details/119462052