论文阅读笔记 | 目标检测算法——Cascade R-CNN算法

简介: 论文阅读笔记 | 目标检测算法——Cascade R-CNN算法

paper:Cascade R-CNN: Delving into High Quality Object Detection

摘要:

曾经,在目标检测领域中,IoU阈值的设定非常重要。如果设置一个比较低的阈值,会出现比较多的噪声对象;而如果设置的比较高,检测器的性能也会下降。这主要是两个原因:

1)阈值设置过高,会导致在训练期间由于正样本指数消失而过度拟合。

2)在推断过程中,检测器最适合的IoU与输入假设不匹配。

为此,作者提出了Cascade R-CNN来解决这两个问题。Cascade R-CNN由一系列经过IoU阈值递增训练的检测器组成,检测器被逐级训练,利用上一层检测器的输出作为下一级检测器的输入。


1. Introduction


目标检测的两个问题:

1)提议检测器的假设分布通常严重不平衡,质量很低。一般来说,强制较大的IoU阈值会导致正训练样本的数量呈指数级减少。

2)测器的质量和推断时测试假设的质量不匹配。

Cascade R-CNN解决问题的基本思想是单个检测器只能针对单个质量水平进行优化。这是因为,高质量的检测器只对高质量的假设是最佳的。当他们被要求研究其他质量水平的假设时,检测可能是次优的。如图c所示:

image.png

作者提出的Cascade R-CNN是R-CNN的多级扩展,其级联是顺序训练的,使用一级的输出来训练下一级。这是因为观察到回归器的输出IoU几乎总是优于输入IoU,说明用某个IoU阈值训练的检测器的输出是训练下一个更高IoU阈值的检测器的良好分布。

级联的重采样程序并不是为了挖掘困难样本,而是通过调整边界框,每个阶段都旨在为下一阶段的训练找到一组良好的接近假阳性。当以这种方式操作时,一系列适用于越来越高的IoUs的检测器可以克服过拟合问题,从而得到有效的训练。推断时,应用相同的级联过程。逐步改进的假设与每个阶段不断提高的检测器质量更匹配。

Cascade R-CNN超过了那时所有以前最先进的单模型探测器。


2 Related Work


2.1 iterative bounding box regression

在Cascade R-CNN提出之前,有一些研究认为,f单一的回归步骤可能不足以精确定位,所以打算将回归网络f迭代使用,作为一个后处理步骤,如图所示:

image.png

其中,可以定义为:

image.png

但是这个方法忽视了两个问题:

1)在u = 0.5下训练的回归函数对于更高的阈值限制来说是次优的,会限制高质量回归网络的性能,所以保持同一个阈值优化是不可取的。

2)边界框的分布在每次迭代后都会发生显著变化。虽然回归器对于初始分布是最优的,但是在那之后可能是次优的。也就是,重复迭代同一个回归器是性能不一定是好的。


2.2 Integral Loss

一般来说,很难要求单个分类器在所有IoU级别上表现一致。在推断时,由于由提议的检测器产生的大多数假设,质量较低,检测器必须对质量较低的假设更具鉴别能力。在这些相互冲突的要求之间,一个标准的折衷方案是将u = 0.5。然而,这是一个相对较低的阈值,导致低质量的检测,具有比较多的假阳性样本。

对此,一个简单的解决方案是开发一组分类器,针对不同质量水平的损耗进行优化。也就是采取多个IoU阈值对其进行优化。具体结构如图所示:

image.png

其中,损失函数定义为:

image.png

其中U 是一组IoU阈值,U = { 0.5 , 0.55 , … , 0.75 }

在推断的过程中,分类区需要进行集合优化。但是这个方法也同样的无法解决问题。这是因为,正样本集随着阈值u增加而快速减少,对于高质量的分类器在推断过程中提供的proposals不会太多。此外,那些高质量的分类器需要处理推断时质量极低的proposals,而它们并没有针对这些proposals进行优化。


3. Cascade R-CNN


综上所述,问题的关键在于低阈值的proposals需要用低质量的分类器处理;而高阈值的proposals需要用高质量的分类器处理。所以,Cascade R-CNN中,级联训练的思想理所当然的提出了。

image.png

3.1 Cascaded Bounding Box Regression

很难要求单个回归器在所有质量级别上完美一致地执行,为此,作者将困难的回归任务可以分解为一系列更简单的步骤,也就是变成一个级联回归问题。具体结构如图所示:

image.png

Cascade R-CNN中的级联回归器可以被定义为:

image.png

其中,T是级联级的总数。级联中的每个回归器都经过优化,样本分布{ b t } \{bt\}{bt}到达相应的阶段,而不是{ b 1 } \{b1\}{b1}的初始分布。这个级联逐步改进阈值。


  • Cascade R-CNN与iterative BBox的区别:

1)Iterative BBox是用于改进包围盒的后处理过程,而级联回归是一个重采样过程,它改变了要由不同阶段处理的假设的分布。

2)Cascade R-CNN的级联模块用于训练和推理,所以训练和推理分布之间没有差异。

3)Cascade R-CNN针对不同阶段的重采样分布,优化了多个专用回归器{ f T , f T − 1 , … , f 1 } 。这与Iterative BBox的单个回归器f ff相反,它只对初始分布是最优的。


3.2 Cascaded Detection

对于初始的假设分布,是严重倾向于低质量的,这不可避免地导致高质量分类器的无效学习。Cascade R-CNN依靠级联回归作为重采样机制来解决这个问题。由于某个u训练的边界框回归器倾向于产生更高IoU的边界框,如图所示:

image.png

所以一开始设置的IoU阈值可以设置得不需要太大,而后通过前级的低质量回归器训练出一些质量越来越高的proposals,作为一些高质量回归器(阈值高)的输入,从而获得比较好的结果。

image.png

这保证了一系列经过有效训练的检测器的质量不断提高。在推断时,通过应用相同的级联过程,提议框的质量被顺序提高,并且仅需要更高质量的检测器来对更高质量的提议框进行操作。这使得高质量的目标检测成为可能。


4. Result


  • 与iterative BBox及integral loss的结果对比:

image.png

  • 级联训练的效果:

image.png

  • 与那时的SOTA的对比:

image.png

ps:这里可以看见,Cascade R-CNN算法是优于One-step检测的retinanet的。

目录
相关文章
|
4月前
|
算法 JavaScript 前端开发
在JavaScript中实现基本的碰撞检测算法,我们通常会用到矩形碰撞检测,也就是AABB(Axis-Aligned Bounding Box)碰撞检测
【6月更文挑战第16天】JavaScript中的基本碰撞检测涉及AABB(轴对齐边界框)方法,常用于2D游戏。`Rectangle`类定义了矩形的属性,并包含一个`collidesWith`方法,通过比较边界来检测碰撞。若两矩形无重叠部分,四个条件(关于边界相对位置)均需满足。此基础算法适用于简单场景,复杂情况可能需采用更高级的检测技术或物理引擎库。
77 6
|
3天前
|
算法 安全
分别使用OVP-UVP和OFP-UFP算法以及AFD检测算法实现反孤岛检测simulink建模与仿真
本课题通过Simulink建模与仿真,实现OVP-UVP、OFP-UFP算法及AFD检测算法的反孤岛检测。OVP-UVP基于电压幅值变化,OFP-UFP基于频率变化,而AFD则通过注入频率偏移信号来检测孤岛效应,确保电力系统安全稳定运行。系统使用MATLAB 2013b进行建模与仿真验证。
|
2月前
|
机器学习/深度学习 监控 算法
目标检测算法技术
8月更文挑战第11天
|
2月前
|
机器学习/深度学习 监控 算法
目标检测算法
8月更文挑战第5天
|
2月前
|
机器学习/深度学习 监控 算法
目标检测算法
8月更文挑战第8天
|
3月前
|
监控 算法 自动驾驶
目标检测算法:从理论到实践的深度探索
【7月更文第18天】目标检测,作为计算机视觉领域的核心任务之一,旨在识别图像或视频中特定对象的位置及其类别。这一技术在自动驾驶、视频监控、医疗影像分析等多个领域发挥着至关重要的作用。本文将深入浅出地介绍目标检测的基本概念、主流算法,并通过一个实际的代码示例,带您领略YOLOv5这一高效目标检测模型的魅力。
388 11
|
3月前
|
机器学习/深度学习 人工智能 监控
人工智能 - 目标检测算法详解及实战
目标检测需识别目标类别与位置,核心挑战为复杂背景下的多目标精准快速检测。算法分两步:目标提取(滑动窗口或区域提议)和分类(常用CNN)。IoU衡量预测与真实框重叠度,越接近1,检测越准。主流算法包括R-CNN系列(R-CNN, Fast R-CNN, Faster R-CNN),YOLO系列,SSD,各具特色,如Faster R-CNN高效候选区生成与检测,YOLO适用于实时应用。应用场景丰富,如自动驾驶行人车辆检测,安防监控,智能零售商品识别等。实现涉及数据准备、模型训练(示例YOLOv3)、评估(Precision, Recall, mAP)及测试。
101 5
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
算法金 | 秒懂 AI - 深度学习五大模型:RNN、CNN、Transformer、BERT、GPT 简介
**RNN**,1986年提出,用于序列数据,如语言模型和语音识别,但原始模型有梯度消失问题。**LSTM**和**GRU**通过门控解决了此问题。 **CNN**,1989年引入,擅长图像处理,卷积层和池化层提取特征,经典应用包括图像分类和物体检测,如LeNet-5。 **Transformer**,2017年由Google推出,自注意力机制实现并行计算,优化了NLP效率,如机器翻译。 **BERT**,2018年Google的双向预训练模型,通过掩码语言模型改进上下文理解,适用于问答和文本分类。
126 9
|
3月前
|
机器学习/深度学习 人工智能 算法
计算机视觉:目标检测算法综述
【7月更文挑战第13天】目标检测作为计算机视觉领域的重要研究方向,近年来在深度学习技术的推动下取得了显著进展。然而,面对复杂多变的实际应用场景,仍需不断研究和探索更加高效、鲁棒的目标检测算法。随着技术的不断发展和应用场景的不断拓展,相信目标检测算法将在更多领域发挥重要作用。
|
3月前
|
机器学习/深度学习 数据采集 算法
Python实现Prophet时间序列数据建模与异常值检测(Prophet算法)项目实战
Python实现Prophet时间序列数据建模与异常值检测(Prophet算法)项目实战
182 2
下一篇
无影云桌面