全新的目标检测范式Sparse R-CNN。
沿着目标检测领域中 Dense 和 Dense-to-Sparse 的框架,Sparse R-CNN 建立了一种彻底的 Sparse 框架, 脱离 anchor box,reference point,Region Proposal Network(RPN) 等概念,无需 Non-Maximum Suppression(NMS) 后处理, 在标准的 COCO benchmark 上使用 ResNet-50 FPN 单模型在标准 3x training schedule 达到了 44.5 AP 和 22 FPS。
1. Motivation
我们先简单回顾一下目标检测领域中主流的两大类方法。
- 第一大类是从非 Deep 时代就被广泛应用的 dense detector,例如 DPM,YOLO,RetinaNet,FCOS。在 dense detector 中, 大量的 object candidates 例如 sliding-windows,anchor-boxes, reference-points 等被提前预设在图像网格或者特征图网格上,然后直接预测这些 candidates 到 gt 的 scaling/offest 和物体类别。
- 第二大类是 dense-to-sparse detector,例如,R-CNN 家族。这类方法的特点是对一组 sparse 的 candidates 预测回归和分类,而这组 sparse 的 candidates 来自于 dense detector。
这两类框架推动了整个领域的学术研究和工业应用。目标检测领域看似已经饱和,然而 dense 属性的一些固有局限总让人难以满意:
- NMS 后处理
- many-to-one 正负样本分配
- prior candidates 的设计
所以,一个很自然的思考方向就是:能不能设计一种彻底的 sparse 框架?最近,DETR 给出了一种 sparse 的设计方案。
candidates 是一组 sparse 的 learnable object queries,正负样本分配是 one-to-one 的 optimal bipartite matching,无需 nms 直接输出最终的检测结果。然而,DETR 中每个 object query 都和全局的特征图做 attention 交互,这本质上也是 dense。而我们认为,sparse 的检测框架应该体现在两个方面:sparse candidates 和 sparse feature interaction。基于此,我们提出了 Sparse R-CNN。
Sparse R-CNN 抛弃了 anchor boxes 或者 reference point 等 dense 概念,直接从 a sparse set of learnable proposals 出发,没有 NMS 后处理,整个网络异常干净和简洁,可以看做是一个全新的检测范式。
2.Sparse R-CNN
Sparse R-CNN 的 object candidates 是一组可学习的参数,N*4,N 代表 object candidates 的个数,一般为 100~300,4 代表物体框的四个边界。这组参数和整个网络中的其他参数一起被训练优化。That's it,完全没有 dense detector 中成千上万的枚举。这组 sparse 的 object candidates 作为 proposal boxes 用以提取 Region of Interest(RoI),预测回归和分类。
这组学习到的 proposal boxes 可以理解为图像中可能出现物体的位置的统计值,这样 coarse 的表征提取出来的 RoI feature 显然不足以精确定位和分类物体。于是,我们引入一种特征层面的 candidates,proposal features,这也是一组可学习的参数,N*d,N 代表 object candidates 的个数,与 proposal boxes 一一对应,d 代表 feature 的维度,一般为 256。这组 proposal features 与 proposal boxes 提取出来的 RoI feature 做一对一的交互,从而使得 RoI feature 的特征更有利于定位和分类物体。相比于原始的 2-fc Head,我们的设计称为 Dynamic Instance Interactive Head。
Sparse R-CNN 的两个显著特点就是 sparse object candidates 和 sparse feature interaction,既没有 dense 的成千上万的 candidates,也没有 dense 的 global feature interaction。Sparse R-CNN 可以看作是目标检测框架从 dense 到 dense-to-sparse 到 sparse 的一个方向拓展。
3. Architecture Design
Sparse R-CNN 的网络设计原型是 R-CNN 家族。
- Backbone 是基于 ResNet 的 FPN。
- Head 是一组 iterative 的 Dynamic Instance Interactive Head,上一个 head 的 output features 和 output boxes 作为下一个 head 的 proposal features 和 proposal boxes。Proposal features 在与 RoI features 交互之前做 self-attention。
- 训练的损失函数是基于 optimal bipartite matching 的 set prediction loss。
从 Faster R-CNN(40.2 AP) 出发,直接将 RPN 替换为 a sparse set of learnable proposal boxes,AP 降到 18.5;引入 iterative 结构提升 AP 到 32.2;引入 dynamic instance interaction 最终提升到 42.3 AP。
4. Performance
我们沿用了 Detectron2 的 3x training schedule,因此将 Sparse R-CNN 和 Detectorn2 中的 detectors 做比较(很多方法没有报道 3x 的性能,所以没有列出)。同时,我们也列出了同样不需要 NMS 后处理的 DETR 和 Deformable DETR 的性能。Sparse R-CNN 在检测精度,推理时间和训练收敛速度都展现了相当有竞争力的性能。
5. Conclusion
R-CNN 和 Fast R-CNN 出现后的一段时期内,目标检测领域的一个重要研究方向是提出更高效的 region proposal generator。Faster R-CNN 和 RPN 作为其中的佼佼者展现出广泛而持续的影响力。Sparse R-CNN 首次展示了简单的一组可学习的参数作为 proposal boxes 即可达到 comparable 的性能。我们希望我们的工作能够带给大家一些关于 end-to-end object detection 的启发。