
摘要
在目标检测中,需要设定一个交并比(Intersection over Union, IoU)阈值来定义正样本和负样本。使用较低的IoU阈值(例如0.5)训练的目标检测器通常会产生噪声检测结果。然而,随着IoU阈值的提高,检测性能往往会下降。造成这一现象的主要原因有两个:1) 训练过程中由于正样本呈指数级减少而导致的过拟合问题;2) 推理时检测器最优的IoU与输入假设之间的不匹配问题。为了解决这些问题,提出了一种多阶段目标检测架构——级联R-CNN(Cascade R-CNN)。该架构由一系列以递增的IoU阈值训练的检测器组成,每个阶段的检测器对靠近的假阳性样本逐渐变得更加选择性。这些检测器逐阶段进行训练,利用了前一阶段检测器输出分布可以作为下一阶段更高质量检测器训练数据的良好来源这一观察结果。逐步改进假设的重采样保证了所有检测器都有相同数量的正样本集,从而减少了过拟合问题。在推理过程中也应用了相同的级联程序,使得假设与每个阶段检测器的质量更加匹配。实验表明,在具有挑战性的COCO数据集上,级联R-CNN的一个简单实现超越了所有单模型目标检测器。此外,实验还证明了级联R-CNN广泛适用于各种检测器架构,在基线检测器强度不同的情况下均能取得一致的性能提升。代码将在https://github.com/zhaoweicai/cascade-rcnn 上提供。
代码仓库
open-mmlab/mmdetection
pytorch
tkuanlun350/Kaggle_Ship_Detection_2018
tf
GitHub 中提及
tsbiosky/Cascade-point-rcnn
pytorch
GitHub 中提及
makefile/frcnn
GitHub 中提及
基准测试
| 基准 | 方法 | 指标 |
|---|---|---|
| 2d-object-detection-on-sardet-100k | Cascade R-CNN | box mAP: 51.1 |
| object-detection-on-ai-tod | Cascade R-CNN (ResNet-50-FPN) | AP: 13.8 AP50: 30.8 AP75: 10.5 APm: 26.6 APs: 25.5 APt: 10.6 APvt: 0.0 |
| object-detection-on-coco | Cascade R-CNN (ResNet-101-FPN+) | AP50: 61.1 AP75: 41.9 APL: 49.8 APM: 41.8 APS: 21.3 Hardware Burden: 3G Operations per network pass: box mAP: 38.8 |
| object-detection-on-coco | Cascade R-CNN (ResNet-50-FPN+) | AP50: 59 AP75: 39.2 APL: 46.4 APM: 38.8 APS: 20.3 Hardware Burden: 3G Operations per network pass: box mAP: 36.5 |
| object-detection-on-coco | Cascade R-CNN (ResNet-50-FPN+, cascade) | AP50: 59.9 AP75: 44 APL: 52.1 APM: 42.7 APS: 22.6 Hardware Burden: 12G Operations per network pass: box mAP: 40.6 |
| object-detection-on-coco | Cascade R-CNN (ResNet-101-FPN+, cascade) | AP50: 62.1 AP75: 46.3 APL: 55.2 APM: 45.5 APS: 23.7 Hardware Burden: Operations per network pass: box mAP: 42.8 |
| object-detection-on-coco-minival | Cascade R-CNN (ResNet-101-FPN+, cascade) | AP50: 61.6 AP75: 46.6 APL: 57.4 APM: 46.2 APS: 23.8 box AP: 42.7 |
| object-detection-on-coco-minival | Cascade R-CNN (ResNet-50-FPN+) | AP50: 59.4 AP75: 43.7 APL: 54.1 APM: 43.7 APS: 22.9 box AP: 40.3 |