论文阅读笔记 | 目标检测算法——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损失函数中的β,来提高网络性能。


目录
相关文章
|
4月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于GRU网络的MQAM调制信号检测算法matlab仿真,对比LSTM
本研究基于MATLAB 2022a,使用GRU网络对QAM调制信号进行检测。QAM是一种高效调制技术,广泛应用于现代通信系统。传统方法在复杂环境下性能下降,而GRU通过门控机制有效提取时间序列特征,实现16QAM、32QAM、64QAM、128QAM的准确检测。仿真结果显示,GRU在低SNR下表现优异,且训练速度快,参数少。核心程序包括模型预测、误检率和漏检率计算,并绘制准确率图。
140 65
基于GRU网络的MQAM调制信号检测算法matlab仿真,对比LSTM
|
16天前
|
机器学习/深度学习 监控 算法
面向办公室屏幕监控系统的改进型四叉树屏幕变化检测算法研究
本文提出一种改进型四叉树数据结构模型,用于优化办公室屏幕监控系统。通过动态阈值调节、变化优先级索引及增量更新策略,显著降低计算复杂度并提升实时响应能力。实验表明,该算法在典型企业环境中将屏幕变化检测效率提升40%以上,同时减少资源消耗。其应用场景涵盖安全审计、工作效能分析及远程协作优化等,未来可结合深度学习实现更智能化的功能。
23 0
|
3月前
|
机器学习/深度学习 存储 算法
基于MobileNet深度学习网络的活体人脸识别检测算法matlab仿真
本内容主要介绍一种基于MobileNet深度学习网络的活体人脸识别检测技术及MQAM调制类型识别方法。完整程序运行效果无水印,需使用Matlab2022a版本。核心代码包含详细中文注释与操作视频。理论概述中提到,传统人脸识别易受非活体攻击影响,而MobileNet通过轻量化的深度可分离卷积结构,在保证准确性的同时提升检测效率。活体人脸与非活体在纹理和光照上存在显著差异,MobileNet可有效提取人脸高级特征,为无线通信领域提供先进的调制类型识别方案。
|
4月前
|
机器学习/深度学习 算法 安全
基于深度学习的路面裂缝检测算法matlab仿真
本项目基于YOLOv2算法实现高效的路面裂缝检测,使用Matlab 2022a开发。完整程序运行效果无水印,核心代码配有详细中文注释及操作视频。通过深度学习技术,将目标检测转化为回归问题,直接预测裂缝位置和类别,大幅提升检测效率与准确性。适用于实时检测任务,确保道路安全维护。 简介涵盖了算法理论、数据集准备、网络训练及检测过程,采用Darknet-19卷积神经网络结构,结合随机梯度下降算法进行训练。
|
3月前
|
机器学习/深度学习 数据采集 算法
基于yolov2和googlenet网络的疲劳驾驶检测算法matlab仿真
本内容展示了基于深度学习的疲劳驾驶检测算法,包括算法运行效果预览(无水印)、Matlab 2022a 软件版本说明、部分核心程序(完整版含中文注释与操作视频)。理论部分详细阐述了疲劳检测原理,通过对比疲劳与正常状态下的特征差异,结合深度学习模型提取驾驶员面部特征变化。具体流程包括数据收集、预处理、模型训练与评估,使用数学公式描述损失函数和推理过程。课题基于 YOLOv2 和 GoogleNet,先用 YOLOv2 定位驾驶员面部区域,再由 GoogleNet 分析特征判断疲劳状态,提供高准确率与鲁棒性的检测方法。
|
4月前
|
机器学习/深度学习 人工智能 运维
[ICDE2024]多正常模式感知的频域异常检测算法MACE
[ICDE2024]多正常模式感知的频域异常检测算法MACE
|
7月前
|
机器学习/深度学习 监控 算法
基于反光衣和检测算法的应用探索
本文探讨了利用机器学习和计算机视觉技术进行反光衣检测的方法,涵盖图像预处理、目标检测与分类、特征提取等关键技术。通过YOLOv5等模型的训练与优化,展示了实现高效反光衣识别的完整流程,旨在提升智能检测系统的性能,应用于交通安全、工地监控等领域。
|
8月前
|
自然语言处理 算法 安全
计算机前沿技术-人工智能算法-大语言模型-最新论文阅读-2024-09-16
计算机前沿技术-人工智能算法-大语言模型-最新论文阅读-2024-09-16
68 0
计算机前沿技术-人工智能算法-大语言模型-最新论文阅读-2024-09-16
|
7月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于GA-PSO-SVM算法的混沌背景下微弱信号检测matlab仿真
本项目基于MATLAB 2022a,展示了SVM、PSO、GA-PSO-SVM在混沌背景下微弱信号检测中的性能对比。核心程序包含详细中文注释和操作步骤视频。GA-PSO-SVM算法通过遗传算法和粒子群优化算法优化SVM参数,提高信号检测的准确性和鲁棒性,尤其适用于低信噪比环境。
|
7月前
|
存储 JSON 算法
TDengine 检测数据最佳压缩算法工具,助你一键找出最优压缩方案
在使用 TDengine 存储时序数据时,压缩数据以节省磁盘空间是至关重要的。TDengine 支持用户根据自身数据特性灵活指定压缩算法,从而实现更高效的存储。然而,如何选择最合适的压缩算法,才能最大限度地降低存储开销?为了解决这一问题,我们特别推出了一个实用工具,帮助用户快速判断并选择最适合其数据特征的压缩算法。
163 0