Sparse R-CNN

发布时间 2023-08-26 09:54:37作者: dunimaa


DETR是一个简洁的pipeline,但有一部分操作还是Dense的
DETR提出了一套不同于Dense Prediction的pipeline,将检测视为一个Set Prediction问题,成功去掉了Anchor Generation和NMS
但是在Decoder中,Object Query和Feature Map上每一个点要算一次Cross Attention,这个计算过程同样是Dense的。而这部分操作产生的Attention Map难以训练进而导致了DETR在训练阶段难以收敛的困难
所以可不可能开发一个纯Sparse的模型?

 

Sparse RCNN的研究意义
提出了一种纯稀疏的Pipeline
用一种奇特的方式在使用以及理解Object Query

 

摘要核心
1.我们提出了一个纯稀疏的目标检测方法->Sparse R-CNN。
2.现存的方法都依赖密集的Anchor设定,数量和feature map的size有关

3.我们去掉了这种密集的设定,进而只使用一个固定数量的可学习“Anchor

4. 这种稀疏的设定摆脱了大量的手工设计步骤,如Anchor,如NMS.
5.Sparse R-CNN的收敛快,速度快,性能高

 

DETR收敛慢
原因可能是Object Query很奇怪
1.测试的时候obj query是存在的。
2.根据DETR论文,Object Query里编码了位置信息,但没有类别信息(对所有类别都有会反应)
3.看起来很接近一个Anchor。
4.Deformable DETR中直接把这个当Anchor在用。
5.但它是256维的,Anchor明明4维就够了

 

一种宽泛的理解

1.每一个Object Query都是在问一个问题

2.“图里的xx位置有没有长成xx样的东西
3.在这种情况下,训练阶段实际上是在训练Object Query针对该数据集应该如何提问

4.这真的是一个很困难的问题,收敛慢显得理所当然

 

Sparse R-CNN怎么解决的
1.去掉Anchor
2.去掉NMS
3.把Object Query的职责分成两部分,一部分表示为代表定位的Box,另一部分为代表内容的feature,两者都是可学习的然后通过适当的交互,得到最后检测所需feature。