标签分配策略,是一个预定义的规则,能够分配每个anchor的正负,也就是一个gt会对应多个anchor。常用的label assignment是MaxIOUAssign,具体流程:
1)首先,对于gtbox(N个)和anchor(M个),两两计算彼此的iou,构建matching matrix。
2)通过iou的阈值来进行判定正负样本。当iou介于0.4和0.5之间为ignore区间,当iou大于0.5的时候为正样本区间,其他的情况为负样本区间。
根据标签是否非负即正负分为硬标签分配和软标签分配两大类。硬标签分配方法主要利用预设框或预测框与gt框比较的结果区分正负样本,样本非负即正。根据正负样本阈值是否动态变化,硬标签分配方法细分为静态和动态两类。静态标签分配方法主要基于距离、iou等先验知识设置固定阈值去区分正负样本,如FCOS、两阶段检测算法、RFLA等;动态标签分配方法则根据不同策略动态设置阈值选择正负样本,如ATSS、PAA、OTA、DSL、SimOTA等。硬标签分配本质上不区分训练过程中不同质量的预测框,即样本非负即正。软标签分配方法会基于预测结果与真实框计算软标签和正负权重,在选侯正样本(一般为落在gt内点)的基础上根据正负权重潜在分配正负样本和计算损失,且会在训练过程中动态调整软标签和正负权重,如GFL、VFL、TOOD、DW等。
根据是否有预测结果参与,标签分配方法分为基于先验和基于预测两类。基于先验的方法仅利用训练前就已知的先验信息(距离、IOU等)去进行标签分配,本质上当网络结构和数据集确定后,正负样本的分配就已经确定且不会在训练过程改变,包括静态标签分配和部分动态标签分配方法,如FCOS、ATSS等。基于预测的方法则会根据模型预测结果和GT框的耦合结果去动态匹配正负样本,正负样本会跟随训练过程动态变化,理论上只要模型预测的越准确,匹配算法求的结果也会更优秀。
硬标签分配方法其实是可以和软标签分配方法同时使用,典型的如NanoDet使用了ATSS和GFL,NanoDet-Plus使用了DSL和GFL。当两者联合使用,硬标签分配方法就相当于给软标签分配方法提供了候选正样本,否则软标签分配方法将直接使用gt框内样本为候选正样本。但是联合使用可能导致对小目标检测不够友好。对于小目标,本身落在下采样特征图gt框内的正样本就较少,尤其在基于预测的硬标签分配方法阶段,模型初始化训练效果较差很容易导致分配给小目标的正样本不够,之后在计算损失函数时引入软标签,进一步对这些正样本区分正负权重,导致最终用于监督训练的正样本损失信号较弱, 影响最终的训练和检测结果。
1、ATSS
原理: 基于L2距离和IOU等先验信息自适应计算正负样本阈值
步骤:
1)对于图像上每个真实框(gt),在不同层级特征图上选取L2距离最近的前k(默认为9)个预设框作为候选正样本;
2)针对每个真实框(gt),计算所有层级特征图上候选正样本与真实框的交并比(IOU),并求取均值和方差;
3)以均值和方差之和作为IOU阈值,大于阈值的候选正样本为最终正样本(分配到多个gt框时选择最大的),剩余为负样本;
2、OTA: Optimal Transport Assignment for Object Detection
3、Freeanchor、AutoAssign 等通过使用预测的 confidence score 来动态分配正负