目标检测 - Sparse R-CNN: End-to-End Object Detection with Learnable Proposals

0. 前言

  • 相关资料:
  • 论文基本信息
    • 领域:目标检测
    • 作者单位:香港大学&同济大学&字节跳动
    • 发表时间:2020.11
  • 一句话总结:使用固定数量的 learnable box/feature(与backbone无关) 替代anchors,从而将原始one/two-stage检测方法转换为set prediction形式

1. 要解决什么问题

  • 目前目标检测成熟的算法都是基于Dense prior(密集的先验,比如anchors、reference points)
  • 但密集的先验存在很多问题
    • 会检测出很多相似的结果,需要后处理(比如NMS)来过滤。
    • many-to-one label assignment 问题(作者描述为 many-to-one 正负样本分配),猜测意思是我们在设置pred和gt时,一般不是一对一的关系,可能是有多个preds,看看哪个与gt更符合。
    • 检测结果与先验的关系非常密切(anchors的数量、大小,reference points的密级程度、proposal生成的数量)
  • DETR 分析
    • 属于sparse detector。
    • 存在的问题:每个 object query 都与图像全局信息相互影响,训练时收敛速度慢,整体流程也比较复杂。

2. 用了什么方法

  • 方法比较

    • 认为 one-stage的方法就是Dense的方法,比如retinanet/yolo/ssd 这些。
    • 之前two-stage的方法属于 dense-to-sparse,即RPN是Dense,过滤后的rois是sparse。
    • 我们希望提出的是sparse方法,即通过获取 learned proposals。
    • image-20201126102927309
  • Sparse R-CNN 总体结构

    • 数据输入包括 an image, a set of proposal boxes and proposal features。
    • 使用FPN作为Backbone,处理图像
    • 下图中的 Proposal Boxes: N*4 是一组参数,跟backbone没啥关系
    • 下图中的 proposals features和backbone也没啥关系
    • image-20201126103439702
  • Learnable porposal box

    • 跟backbone没有什么关系
    • 可以看成是物体潜在位置的统计概率
    • 训练的时候可以更新参数
    • 这个结构能用,从这儿可以看出,之前one-stage方法使用dense prior比较浪费。
  • Learnable proposal feature

    • 跟backbone没有什么关系
    • 之前的 proposal box 是一个比较简洁、却的方法来描述物体,但缺少了很多信息,比如物体的形状与姿态。
    • proposal feature 就是用来表示更多的物体信息。
  • Dynamic instance interactive head

    • 通过 proposal boxes以及ROI方法获取每个物体的特征,然后与 proposal feature 结合得到最终预测结果。
    • Head的数量与learnable box的数量相同,即head/learnable proposal box/learnable proposal feature一一对应。
    • image-20201126112747592

3. 效果如何

  • image-20201126113016200

4. 还存在什么问题&可借鉴之处

  • 感觉就是在DETR的基础上,把整个transformer去掉了,挺有意思。
  • 还有一种感觉,就是 retinanet 的anchor去掉,换成了 learnable proposal box/featue,也有这么好的效果。

猜你喜欢

转载自blog.csdn.net/irving512/article/details/110181911