目标检测中的Label Assignment

Faster R-CNN

分配策略:

计算anchor与ground truth之间的IoU,IoU>fg_thres(0.7)作为正样本,IoU<bg_thres(0.3)作为负样本,IoU在bg_thres~fg_thres(0.3~0.7)之间作为ignore样本(不参与训练)。

存在问题:

①IoU不能代表anchor的定位能力,IoU在0.3以下的anchor也可能被回归到0.7以上;

②IoU为0.95和0.75的anchor有优劣之分,但一刀砍策略无法体现它们的区别;

③anchor是预定义的,所以无法保证每个ground truth都能匹配很好的anchor,导致不同ground truth分配到的anchor不均衡。

TopK

用于解决问题③

分配策略:对每个ground truth,找到与它IoU为TopK的anchor作为正样本;可以看作通过动态改变IoU阈值来划分正负样本,同时保证不同大小的目标都能得到一定数量的anchor进行训练。

Learning from Noisy Anchor

用于解决问题②

核心思想:提出一个评价anchor质量的指标cleanliness,根据回归后IoU以及分类置信度得出,用于判断一个正anchor是否是noisy的。

分配策略:cleanliness可以代替0/1作为分类标签加入focal loss,同时还作为权重加权回归,即质量好的anchor多回归,质量不好(noisy)的anchor少回归。

HAMBox

用于解决问题①

核心思想:提出一种anchor补偿策略,动态地把那些本身和ground truth重叠度不高但回归结果很好的anchor设为正样本。

分配策略:与TopK类似,在训练中对每个ground truth动态地补偿k个anchor作为正样本,这些anchor根据回归结果好坏选出。

ATSS

从统计意义上思考正负样本的定义,把每个ground truth周围的anchor与它的IoU进行统计可以形成一个分布,通过取这个分布上的某个分位数来决定每个ground truth的IoU阈值。

OneNet

现有的one-stage检测器的label assign都只用到了位置信息(location),但目标检测是分类(classification)和定位(location)的联合任务,只考虑位置信息的label assign和网络的优化目标存在着非常大的misalignment,导致冗余的高分检测框,从而需要NMS后处理。

作者提出了OneNet,首次实现了end-to-end dense detector without NMS。OneNet的样本匹配策略是Minimum Cost Assign:cost定义为样本与ground truth的分类距离(classification cost)和位置距离(location cost)之和,正样本是所有样本中和ground truth的cost最小的样本,其他都是负样本。

作者解读:ICML2021: OneNet - 知乎

代码:GitHub - PeizeSun/OneNet: What Makes for End-to-End Object Detection, ICML2021

E2E with FCN

受到DETR的启发,作者设计了一种prediction-aware one-to-one assignment方法。此外,作者还提出了3D Max Filtering以增强feature的local表征能力,并提出用one-to-many auxiliary loss加速收敛。

提出了一个cost:

提出了一种POTO策略:

对网络输出的prob(代表分类)和IoU(代表回归)做加权几何平均,再加一个空间先验。但其性能依旧不能匹敌one-to-many+NMS,问题在于:①one-to-one需要网络输出的feature非常sharp,对CNN要求严苛;②one-to-many有更强的监督和更快的收敛速度。作者分别用3D Max Filtering和one-to-many auxiliary loss缓解上述问题。

作者解读:丢弃Transformer,FCN也可以实现E2E检测 - 知乎

代码:https://github.com/Megvii-BaseDetection/DeFCN

PSS

延续了E2E with FCN中的思路,在FCOS的基础上,①引入了一个正样本选择头(PSS head),为每个实例选择最佳的正样本;②重新设计了目标函数:

PSS head的输出是一个H×W×1的特征图,用σ(pss)表示该特征图上的一个点,如果它对应一个正样本,则其目标值为1;否则就是负标签。所以该损失项计算的focal loss为:

Lrank为:

Dynamic Anchor Learning

输入IoU是目标的空间对齐(spatial alignment)能力,而输出IoU是由定位目标所需重要特征的捕捉能力决定的,可以理解为特征对齐(feature alignment)能力。据此定义匹配度(matching degree):

前两项分别表示空间对齐的先验(等于输入IoU)以及由输出IoU计算得到的特征对齐能力,第三项为对回归前后变化的惩罚项,是有效利用输出IoU的关键。

得到匹配度矩阵后,将其补偿后加权到训练loss中,使之更多地关注高性能样本的分类和回归。

作者解读:Dynamic Anchor Learning for Object Detection - 知乎

代码:GitHub - ming71/DAL: Official implementation of "Dynamic Anchor Learning for Arbitrary-Oriented Object Detection" (AAAI2021).

A2SDet

遥感图像中许多目标具有较大的长宽比,IoU受角度影响较大,容易导致部分ground truth分配到的anchor很少。

作者提出了一种自适应anchor选择方法,分别根据水平IoU和旋转IoU进行粗略选择和精确选择,其中水平IoU的阈值是固定的,而旋转IoU的阈值根据AT module计算得到。AT module中构造了一个优化问题来对最优的阈值Tg进行求解:

此外,作者还提出一种基于相对参考的坐标回归:

Sparse Label Assignment

遥感图像中的目标一般排列密集且无重叠,使用传统的dense label assignment会产生重复检测和漏检(主要是因为一些错误抑制)。

因此作者提出了一种sparse label assignment,①对于正样本:根据回归后的IoU来进行Posterior NMS,筛选出最终的正样本;②对于负样本:首先根据固定阈值分为难样本和背景样本,然后以最终正样本的数量为基准,按比例进行随机采样。

作者还提出了一种位置敏感的特征金字塔网络PS-FPN,其中的坐标注意模块(CAM)使用水平和垂直池化将空间坐标信息编码为特征,因此FPN可以更准确地提取目标的位置信息。

最后作者提出一种距离旋转IoU损失(DR-IoU Loss):

参考

Label Assignment in Object Detection 整理 - 知乎在最初的Faster R-CNN做法中,我们是通过框与框之间的IoU来决定anchor的正负标签的,但是这种使用IoU一刀砍的方式来决定label未免有些粗鲁,所以后续出现各种花式的label assignment,就打算整理一下~ 首先说说Fa…https://zhuanlan.zhihu.com/p/136048045

版权声明:本文为CSDN博主「Annie_Zhang_」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Annie_Bear_/article/details/121417167

Annie_Zhang_

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

YOLOX笔记

目录 1. 样本匹配 正负样本划分过程 2. yoloxwarmcos 学习率 3. 无法开启多gpu训练, 或者多gpu训练卡住? 1. 样本匹配 正负样本划分过程 说明: gt_centerbbox是在gt_bbox中心点向四周