论文1:Cascade R-CNN Delving into High Quality Object Detection
论文链接:https://arxiv.org/abs/1712.00726
代码链接:https://github.com/zhaoweicai/cascade-rcnn
论文2:Revisiting the Sibling Head in Object Detector
论文链接:https://arxiv.org/pdf/2003.07540.pdf
注:本文是在对两篇文章的内容已有了解的情况下,仔细阅读paper做的笔记。可能会略过一些已经巩固的知识~
Cascade R-CNN
一篇比较好的详细解读:Cascade R-CNN 详细解读 - 知乎
关键词是Iou的调整+级联检测器优化。
faster R-CNN中涉及到iou的有两部分,一个是RPN网络选择正负样本(proposal)时候。
- 正样本:与gt相交的iou>0.7的样本;当没有样本超过0.7,则选一个iou最大的正样本
- 负样本:与所有gt相交的iou都<0.3
二是检测时候(非训练),用于决定哪些proposal是最后给出的预测结果。Cascade是对于第一部分做的调整。
===========================
下面这张图能解释本篇文章的出发点。(c)是RPN网络的regressor前后iou对比,(d)是iou阈值和AP的关系。作者给出几个结论:1. 当proposal本身和gt的iou在0.6左右时,用0.6的阈值效果会比较好(其他阈值亦然);2. 直接设置高iou会降低AP,原因是正样本太少了,类别不平衡,模型过拟合。3. 经过regressor后iou会提高,所以可以级联同时逐步提高iou阈值。
===========================
级联的方式如下图。H: head;C和B是类别和bbox的预测。每个stage的iou阈值都不同(递增),如B0为0.5,B1为0.6,B2为0.7,B3不用了直接算Loss。
===========================
作者提出的mismatch问题:(是很好的启发)
在训练的时候RPN网络输出的proposal正样本与gt的iou都比较高,因为经过筛选。而推理的时候没有gt指导,故training阶段和inference阶段,bbox回归器的输入分布是不一样的。
(负样本的边界框回归损失是0)
task-aware spatial disentanglement, TSD
分类和回归的解耦
【待续……