Dynamic ATSS:预测结果才是正负样本区分的最佳准则

论文认为预测结果能够更准确地区分正负样本,提出结合预测结果IoU和anchor IoU来准确地选择最高质量的预测结果进行网络训练。整体算法简单但十分有效,值得看看

来源:晓飞的算法工程笔记 公众号

论文: Dynamic Label Assignment for Object Detection by Combining Predicted and Anchor IoUs

Introduction


Label assignment是目标检测里面很重要的一环,用于区分正样本和负样本。对于anchor-based模型,常规做法是根据设定的anchor IoU阈值直接区分正负样本。早期的检测模型都用固定的阈值,忽略了目标的形状和大小特征的差异。而近期出现了一些动态阈值的研究,根据目标的特征动态调整阈值,选择较高质量的anchor作为正样本。但高质量的anchor并不能保证对应最高质量的输出结果,强行绑定的话反而会限制模型的训练。

实际上,直接用预测结果的IoU作为正负样本的区分更为准确,能够直接反映网络的实际训练状态。但需要注意的是,训练初期的预测结果可能存在随机性。为此,论文基于ATSS网络,结合预测结果IoU和anchor IoU区分正负样本。另外,论文还将Centerness分支替换为IoU分支,引入了QFL(或VFL)来对soft target(预测的IoU值)进行优化。

Proposed Approach


Revisit Adaptive Label Assignment

自适应label assignment先为每个GT选择多个最近的候选anchor,然后计算候选anchor与对应的GT之间的IoU值的统计信息,如均值和标准差,最后根据统计信息计算动态阈值。高质量anchor多的GT设置较高的阈值,而低质量anchor多的GT则设置较低的阈值,保证了正样本的数量。

但大多数的自适应策略都只考虑预设的anchor,忽略了训练过程产生的预测bbox,导致部分高质量的预测结果被归类为负样本,对性能影响较大。如果直接将预测结果加入到自适应策略中,由于训练初期的预测结果还不够可信,这反而可能会影响训练。为此,论文提出结合预设anchor和预测bbox来解决这一问题。

Dynamic Label Assignment

论文将预设anchor与预测结果构成combined IoU进行label assignment。在训练初期,由于预测结果不准确,将anchor作为label define的主要准则。随着训练的进行,预测结果逐步控制combined IoU并引导训练阶段的label assignment。整体网络结果如图1所示,以ATSS作为基础网络,将预测结果的IoU和预设anchor的IoU组合成Combined IoU。如果对ATSS感兴趣,可以去看看ATSS : 目标检测的自适应正负anchor选择,很扎实的trick | CVPR 2020

why utilizing predictions is so important to guide the label assignment?

由于最终检测结果是从预测结果中选择的,而且NMS也是基于预测结果计算的,预测结果比预设anchor能更准确地分辨正负样本。在设计检测模型时,一般都认为IoU更高或更近的预设框更适合做正样本。但由于预设框和GT是固定不变的,这意味着一旦预设框的正负样本划分好了,就不会在训练阶段有任何改变了。尽管这样的预设框的确有更大的可能输出高质量预测结果,但显然高质量的预测结果并不一定来自于高质量的预设框。

强制指定高质量预设框为正样本,反而会导致网络只专注于学习这些"可能高质量"的预设框的输出而忽略了其他真实存在的高质量输出。如果在每轮迭代中都引入预测结果来区分正负样本,则可以为模型更准确地选择最高质量的输出,从而提升模型的整体性能。

Soft Targets for Classification Loss

由于论文引入了预测结果进行label assignment,所以使用soft target(预测的IoU值)对预测结果进行质量排序是再适合不过的,这恰好可以借用GFL和VFNet来进一步提升模型的性能。

GFL是基于focal loss改进的针对连续值的版本,包含QFL和DFL两部分,分别用于优化分类分支和回归分支。QFL将分类分支与IoU分支融合成IoU-aware的分类分支,预测的目标不再是0和1,而是0或预测框与GT的IoU。随后根据预测结果与实际IoU之间的差值进行权重的调整。论文引入了QFL用于提升分类部分的性能,具体QFL的设计可以去看看Generalized Focal Loss:Focal loss魔改以及预测框概率分布,保涨点 | NeurIPS 2020。另外,论文在实验部分也有增加GFLV2+combined IoU以及VFNet+combined IoU的实现进行测试,具体GFLV2的设计可以去看看GFLV2:边界框不确定性的进一步融合,提点神器 | CVPR 2021

VFNet中的VFL根据soft target对正样本进行权重优化,跟GFL一样也将分类分支与IoU分支融合成IoU-aware的分类分支。不同的是,VFL将质量更高的正样本设置更高的权重,负样本则维持原本focal loss的模式,让模型专注于高质量正样本和错误负样本的学习。

Experiment


CIoU(Combined IoU)、QFL、VFL对比结果。

不同训练方法搭配CIoUs的回归损失曲线。

各模块的对比实验,AIoU代表anchor的IoU用于区分正负样本,PIoU代表预测结果的IoU用于区分正负样本,IoU branch代表将Centerness分支替换为IoU分支。

CIoU的结合比例对比,D_up和D_down分别代表动态上升和下降。

在COCO上进行完整网络的对比,Dynamic ATSS为ATSS+CIoUs+QFL+IOU branch。这里的准确率没有比GFL高,论文认为是GFL使用了臃肿的DFL提升了回归分支准确率,而论文只是使用了简单的回归分支。

不同训练网络搭配CIoU的作用。

Conclusion


论文认为预测结果能够更准确地区分正负样本,提出结合预测结果IoU和anchor IoU来准确地选择最高质量的预测结果进行网络训练。整体算法简单但十分有效,值得看看。

如果本文对你有帮助,麻烦点个赞或在看呗~

更多内容请关注 微信公众号【晓飞的算法工程笔记】

相关推荐
人类群星闪耀时5 小时前
深度学习在灾难恢复中的作用:智能运维的新时代
运维·人工智能·深度学习
机器懒得学习6 小时前
从随机生成到深度学习:使用DCGAN和CycleGAN生成图像的实战教程
人工智能·深度学习
烟波人长安吖~6 小时前
【目标跟踪+人流计数+人流热图(Web界面)】基于YOLOV11+Vue+SpringBoot+Flask+MySQL
vue.js·pytorch·spring boot·深度学习·yolo·目标跟踪
最好Tony6 小时前
深度学习blog-Transformer-注意力机制和编码器解码器
人工智能·深度学习·机器学习·计算机视觉·自然语言处理·chatgpt
四口鲸鱼爱吃盐8 小时前
Pytorch | 利用SMI-FGRM针对CIFAR10上的ResNet分类器进行对抗攻击
人工智能·pytorch·python·深度学习·机器学习·计算机视觉
wenzhangli79 小时前
探寻 OneCode 核心优势:MVVM 进阶与前后端协同之魅
深度学习·低代码·前端框架
一个处女座的程序猿9 小时前
LLMs之o3:《Deliberative Alignment: Reasoning Enables Safer Language Models》翻译与解读
人工智能·深度学习·机器学习
像污秽一样10 小时前
动手学深度学习-深度学习计算-1层和块
人工智能·深度学习
迪小莫学AI10 小时前
精准识别花生豆:基于EfficientNetB0的深度学习检测与分类项目
人工智能·深度学习·分类
源于花海11 小时前
一文快速预览经典深度学习模型(二)——迁移学习、半监督学习、图神经网络(GNN)、联邦学习
深度学习·迁移学习·图神经网络·gnn·联邦学习·半监督学习