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

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

paper:Dynamic R-CNN: Towards High Quality Object Detection via Dynamic Training

image.png


摘要:


虽然两阶段目标检测算法近年不断发展,但是其训练过程并非完美的。作者发现了固定网络设置和动态训练过程之间存在的不一致问题,这极大地影响了性能。固定标签分配策略和回归损失函数不能适应候选框的分布变化,因此不利于训练高质量的检测器。

image.png

为此,作者提出了Dynamic R-CNN算法。基于训练时候选框的统计数据,Dynamic R-CNN可以自动调整标签分配标准(IoU阈值)和回归损失函数的形状(SmoothL1 Loss的参数)。这种动态设计更好地利用了训练样本,并推动检测器适应更多高质量的样本,其中高质量代表高IoU下的结果。


与Libra R-CNN一样,Dynamic R-CNN的关注点也是在训练过程上。


1. Introduction


对于目标检测的分类与普通的分类任务是不一样的,在目标检测中是对候选框进行分类。而如何区分候选框是正样本还是负样本,一般通过与其所对于的ground truth的IoU来判断,当超过一定的阈值时才会将候选框判定为正样本。之前阅读的Cascade R-CNN论文中有提到过,用单一的IoU阈值去训练网络会严重的限制网络的性能,且得到的候选框质量不算很高。为了得到质量比较高的候选框,一般需要设置一个比较高的阈值,而如果在训练时直接设置一个高阈值,由于正样本的敏感性,会让正样本的数量严重下降。为此,Cascade R-CNN提出了级联训练思想,通过多个回归器不断提高阈值,进而不断提高输出候选框的质量。虽然有效,但是费时。而且对于回归器还是会出现问题,因为在训练过程中,候选框的质量虽然得到了提高,但是SmoothL1损失中的参数是固定的。因此,这导致对高质量候选框的训练不足。


为了解决这个问题,作者首先检查一个被忽略的事实,即建议的质量确实在培训期间得到了提高,如图1所示。可以发现,即使在不同的IoU阈值下,阳性的数量仍然显著增加。


为此,作者提出了Dynamic R-CNN算法,其由两个部分组成:1)动态标签分配(Dynamic Label Assignment);2)动态SmoothL1损失(Dynamic SmoothL1 Loss);分别为分类和回归分支设计。


为了能训练出一个能更好的区别高质量IoU候选框的分类器,作者根据训练过程中的候选框分布,逐步调整正/负样本的IoU阈值。具体来说,就是将候选框的IoU阈值设置为某个百分比,因为它可以反映总体分配的质量。对于回归,作者选择改变回归损失函数的形状,自适应地拟合回归标签的分布变化,保证高质量样本对训练的贡献。然后作者根据回归标签分布调整SmoothL1损失中的β ββ,因为β ββ实际上控制小误差梯度的大小。


通过这种动态的方案,不仅可以缓解训练初期的数据稀缺问题,还可以收获高IoU训练的好处。这两个模块探索检测器的不同部分,因此可以协作实现高质量的物体检测。


2. Related Work


用这一节补充一下之前没有接触过的论文。


  • IoU-Net

检测中的分类分数不仅决定了每个候选框的语义类别,还影响边界框的准确性,因为非最大抑制(NMS)使用更可靠的边界框来抑制置信度较低的边界框,而其首先使用分类分数对预测边界框进行排序。然而,如IoU-Net所述,分类得分与定位精度的相关性较低,导致排序有噪声且性能有限。因此,IoU-Net采用了一个额外的分支来预测IoU得分和细化分类置信度。


  • Dynamic training

遵循动态训练的思想有各种各样的研究。一个广泛使用的例子是基于训练迭代调整学习速率。此外,课程学习(Curriculum Learning)和自定进度学习(Self-paced Learning)侧重于改善样本的训练顺序。对于目标检测,硬挖掘方法也可以看作是一种动态的方式。然而,这些方法没有处理目标检测中的核心问题:例如常量标签分配策略(constant label assignment strategy)。


3. Dynamic Quality in the Training Procedure


一般来说,目标检测是复杂的,因为它需要解决两个主要任务:识别和定位。识别任务需要区分前景对象和背景,并为它们确定语义类别。此外,定位任务需要为不同的对象找到准确的边界框。为了实现高质量的物体检测,我们需要进一步探索这两个任务的训练过程如下。


3.1 Proposal Classification

如果候选框与ground-truth没有任何交集,则肯定其为负样本;而如果候选框与 ground-truth完全重合,则肯定其为正样本。但是如果候选框与ground-truth的IoU为0.5,判断其是正样本还是负样本是一个问题。


在Faster RCNN中,标签是通过使用预定义的IoU阈值将预测框的最高IoU与ground-truth进行比较来分配的。基本可以用以下公式来表示:

image.png


由于分类器的目标是区分正负样本,因此使用不同的IoU阈值进行训练将得到具有相应质量的分类器。因此,为了实现高质量的目标检测需要训练具有高IoU阈值的分类器,但是直接提高阈值会导致正样本的大量消失。Cascade R-CNN采取级联训练的方法,有效但是费时。


那么有没有办法两全其美呢?如上所述,候选框的质量实际上随着训练而提高。这个现象启发了作者在训练的时候采取渐进的方法:在开始时,RPN网络无法产生足够高质量的候选框,因此作者在第二阶段训练中使用较低的IoU阈值来更好地容纳这些低质量的候选框。随着训练的进行候选框质量不断提高,逐渐拥有了足够高质量的候选框。因此,此时可以提高阈值来训练高质量的检测器,在更高的IoU下具有更强的鉴别力。


通过进阶式的在训练中不断的提高阈值,从而达到效果,且没有像Cascade R-CNN那样额外费时。


3.2 Bounding Box Regression

image.png


然而,作者发现回归标签(regression labels)的分布在训练过程中是移动的。如图2所示:其中δ 是预测框相对于标注框的偏移大小,而这里作者的regression labels个人理解,感觉就是相对的偏移量参数。

image.png

作者计算了不同迭代次数和IoU阈值下回归标签的统计量。首先,在前两列中,作者发现在相同的正样本IoU阈值下,由于候选框质量的提高,均值和stdev随着训练的进行而降低。在归一化因子相同的情况下,基于SmoothL1 Loss函数的定义,这些高质量样本的贡献将减少,这不利于高质量回归器的训练。由于均值和方差均减小,预测的偏移也会减小即损失值减小,而此时正样本的比例是在不断变大的。即相对减小了高质量的正样本在训练过程中的贡献。


而且,随着更高的IoU阈值,正样本的质量进一步增强,从而它们的贡献甚至会进一步降低,这将极大地限制整体性能。因此,为了实现高质量的目标检测,需要拟合分布变化并调整回归损失函数的形状,以补偿高质量候选框的增加。


4. Dynamic R-CNN


Dynamic R-CNN中的关键思想是:调整第二阶段的分类器和回归器,以适应候选框的分布变化。处理流程如图所示:

image.png

下面会分别加以说明。


4.1 Dynamic Label Assignment

image.png


4.2 Dynamic SmoothL1 Loss

image.png

image.png


在图中可以发现,当β 值较小时,其回归速率会更快,其梯度也更陡。所以较小的β 实际上加速了梯度大小的饱和,我理解为可以比较快的收敛,从而使得更精确的样本对网络训练的贡献更大。

image.png


看完这里其实有点晕,但是简单来说就是随着训练回归参数是会改变的,均值与方差不断的变小,这同时会造成原式中β 的变化。而固定不变的将β ββ设置为1,确实是会影响网络的性能的。所以,这里作者根据不断变化的回归参数动态的改变β 以实现补偿。而β 的取值就等于当前前K 个最小回归参数的中值。


小结:


阈值与β 的取值如下所示:

image.png

这里再再补充,随着不断训练,回归参数的均值与标准差是不断减小的,而为了平衡这种差异,回归损失的β就不应该保持1不变,而是应该随着数据分布的变化而变化,所以作者取前K 个最小值的中值作为β 值。所以β 值也是在不断减小的。而不断减小的β 可以加速梯度幅度的饱和,从而使得更精确的样本对网络训练贡献更大。(不过关于这一点,我还是不清楚,为什么断减小的β ββ可以使得使得更精确的样本对网络训练贡献更大,虽然实验结果却是如此)

image.png


算法流程图如下所示:

image.png


5. Result


  • 与其他baseline的对比:

image.png

  • 两个模块的作用:

image.png

  • 与SOTA的对比:

image.png

效果好像还不错,与DCN配合使用达到了50的mAP。


总结:


作者的关注点与Libra RCNN一样,关注与训练过程中的动态问题。提出动态的提高阈值训练,且动态的降低SmoothL1损失函数中的β,来提高网络性能。


目录
相关文章
|
3月前
|
机器学习/深度学习 Web App开发 编解码
论文精度笔记(四):《Sparse R-CNN: End-to-End Object Detection with Learnable Proposals》
Sparse R-CNN是一种端到端的目标检测方法,它通过使用一组可学习的稀疏提议框来避免传统目标检测中的密集候选框设计和多对一标签分配问题,同时省去了NMS后处理步骤,提高了检测效率。
60 0
论文精度笔记(四):《Sparse R-CNN: End-to-End Object Detection with Learnable Proposals》
|
3月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于MSER和HOG特征提取的SVM交通标志检测和识别算法matlab仿真
### 算法简介 1. **算法运行效果图预览**:展示算法效果,完整程序运行后无水印。 2. **算法运行软件版本**:Matlab 2017b。 3. **部分核心程序**:完整版代码包含中文注释及操作步骤视频。 4. **算法理论概述**: - **MSER**:用于检测显著区域,提取图像中稳定区域,适用于光照变化下的交通标志检测。 - **HOG特征提取**:通过计算图像小区域的梯度直方图捕捉局部纹理信息,用于物体检测。 - **SVM**:寻找最大化间隔的超平面以分类样本。 整个算法流程图见下图。
|
6天前
|
机器学习/深度学习 数据采集 算法
基于PSO粒子群优化的CNN-GRU-SAM网络时间序列回归预测算法matlab仿真
本项目展示了基于PSO优化的CNN-GRU-SAM网络在时间序列预测中的应用。算法通过卷积层、GRU层、自注意力机制层提取特征,结合粒子群优化提升预测准确性。完整程序运行效果无水印,提供Matlab2022a版本代码,含详细中文注释和操作视频。适用于金融市场、气象预报等领域,有效处理非线性数据,提高预测稳定性和效率。
|
1月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于贝叶斯优化CNN-GRU网络的数据分类识别算法matlab仿真
本项目展示了使用MATLAB2022a实现的贝叶斯优化、CNN和GRU算法优化效果。优化前后对比显著,完整代码附带中文注释及操作视频。贝叶斯优化适用于黑盒函数,CNN用于时间序列特征提取,GRU改进了RNN的长序列处理能力。
|
2月前
|
机器学习/深度学习 监控 算法
基于反光衣和检测算法的应用探索
本文探讨了利用机器学习和计算机视觉技术进行反光衣检测的方法,涵盖图像预处理、目标检测与分类、特征提取等关键技术。通过YOLOv5等模型的训练与优化,展示了实现高效反光衣识别的完整流程,旨在提升智能检测系统的性能,应用于交通安全、工地监控等领域。
|
3月前
|
机器学习/深度学习 Web App开发 人工智能
轻量级网络论文精度笔(一):《Micro-YOLO: Exploring Efficient Methods to Compress CNN based Object Detection Model》
《Micro-YOLO: Exploring Efficient Methods to Compress CNN based Object Detection Model》这篇论文提出了一种基于YOLOv3-Tiny的轻量级目标检测模型Micro-YOLO,通过渐进式通道剪枝和轻量级卷积层,显著减少了参数数量和计算成本,同时保持了较高的检测性能。
50 2
轻量级网络论文精度笔(一):《Micro-YOLO: Exploring Efficient Methods to Compress CNN based Object Detection Model》
|
3月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于贝叶斯优化CNN-LSTM网络的数据分类识别算法matlab仿真
本项目展示了基于贝叶斯优化(BO)的CNN-LSTM网络在数据分类中的应用。通过MATLAB 2022a实现,优化前后效果对比明显。核心代码附带中文注释和操作视频,涵盖BO、CNN、LSTM理论,特别是BO优化CNN-LSTM网络的batchsize和学习率,显著提升模型性能。
|
3月前
|
算法 安全
分别使用OVP-UVP和OFP-UFP算法以及AFD检测算法实现反孤岛检测simulink建模与仿真
本课题通过Simulink建模与仿真,实现OVP-UVP、OFP-UFP算法及AFD检测算法的反孤岛检测。OVP-UVP基于电压幅值变化,OFP-UFP基于频率变化,而AFD则通过注入频率偏移信号来检测孤岛效应,确保电力系统安全稳定运行。系统使用MATLAB 2013b进行建模与仿真验证。
|
2月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于GA-PSO-SVM算法的混沌背景下微弱信号检测matlab仿真
本项目基于MATLAB 2022a,展示了SVM、PSO、GA-PSO-SVM在混沌背景下微弱信号检测中的性能对比。核心程序包含详细中文注释和操作步骤视频。GA-PSO-SVM算法通过遗传算法和粒子群优化算法优化SVM参数,提高信号检测的准确性和鲁棒性,尤其适用于低信噪比环境。
|
2月前
|
存储 JSON 算法
TDengine 检测数据最佳压缩算法工具,助你一键找出最优压缩方案
在使用 TDengine 存储时序数据时,压缩数据以节省磁盘空间是至关重要的。TDengine 支持用户根据自身数据特性灵活指定压缩算法,从而实现更高效的存储。然而,如何选择最合适的压缩算法,才能最大限度地降低存储开销?为了解决这一问题,我们特别推出了一个实用工具,帮助用户快速判断并选择最适合其数据特征的压缩算法。
61 0