目标检测中的动态标签分配策略介绍
标签分配负责在训练阶段将标签分配给预定义的锚点。现在目标检测方法包含各种标签分配策略,包括从简单的基于IoU的策略和中心位置策略,到后续动态分配策略,通过对标签分配的策略的优化,诸多经典的检测模型在不改变模型结构的前提下,实行性能的大幅提升。一些研究也表明正负样本的分配策略才是影响anchor-base、anchor-free方法性能区别的本质原因,这个进一步的表明了标签分配策略在目标检测中的重要意义。下面介绍几种动态标签分类策略,ATSS、OTA、TAL, 应用这些方法,在一些经典的目标检测器上能实现无痛涨点,不影响模型的推理,不过由于分配方法的复杂化,可能带来一定训练时间提升。
ATSS Adaptive Training Sample Selection
这个方法探索了anchor-free和anchor-base两者之间的区别,并用实验进行了证明,总体结论有如下几点:
- anchor-free和anchor-based检测器之间的本质区别是如何定义正负训练样本;
- 实验表明在图像上每个位置使用多个anchor来检测目标是无用的操作;
- 提出了一种自适应的训练样本选择方法,根据对象的统计特性自动选择正负训练样本, 通过此方法能有效提升检测器的性能。
在训练一个物体检测器时,首先需要定义正负样本进行分类,然后使用正样本进行回归。以前的样本选择策略有一些敏感的超参数,如基于锚的检测器中的IoU阈值和无锚检测器中的尺度范围。在 这些超参数被设定后,所有的地面实证盒都必须根据固定的规则来选择它们的阳性样本,这些规则适用于大多数物体,但一些外部物体会被忽略。将会有非常不同的结果。作者遵循了一下五个原则对分配策略进行了改进
- 根据锚和物体之间的中心距离选择候选样本。
- 使用平均值和标准差之和作为IoU阈值。
- 将正样本的中心限制在物体上。
- 保持不同样本(大小、宽高比等)之间的均衡
- 移除不必要的超参数
算法设计如下图所示,对于每个真值框
, 在特征金字塔的每层上挑选
个锚框组成候选正样本,选取依据为它们的中心点与
的中心点间的L2距离最小,假设共有
层特征,则会挑选出
个候选正样本, 计算这些候选正样本与
之间的IoU
,并计算
的均值
和标准差
,设置IoU阈值为
。最后,从候选正样本中挑选IoU大于等于
并且样本中心点落在真值框
中的样本作为最终的正样本,其余为负样本。如果一个锚被分配给多个真值框,那么将选择IoU最高的一个。
实验仅对标签分配策略进行优化,ATSS能在RetinaNet、FCOS带来明显的提升。
Optimal Transport Assignment
Optimal Transport Assignment(OTA)认为物体检测中的标签分配是一个最优传输问题。同一个Anchor/Anchor point可能会和多个GT有交集(称为模糊框),模糊框的不恰当分配会给其他GT带来有害梯度, 模糊框是提高模型泛化能力的重要要素. 因此,需要结合全局信息来找到全局最优的分配方法. OTA在GT和所有预测框之间计算运输成本cost,通过寻找一个合适的映射关系,使得运输成本最低. 相比诸如ATSS等其他的动态标签分配方法,OTA首次考虑了全局信息,力求找到全局最优的有效框数目.
OTA就是分配给每个Anchor更容易学习的GT(损失更小的). 同时一个GT可以对应多个Anchor,具体数目则根据GT和各个Anchor的IoU情况而定. 那么换个角度也就是说,对于一个GT,如果存在很多高质量(IoU大)的Anchor,则多分配一些Anchor负责预测该GT,反之,只有一些质量低(IoU小)的Anchor,则少分配一些Anchor负责预测该GT,从而实现“避免引入有害梯度”的目的.
下图为最优传输分配的说明。成本矩阵由每对anchor-gt对之间的分类和回归损失组成,寻找最佳标签分配的目标被转换为解决最优传输计划,即将标签以最小的运输成本从供应者(即GT或者北京)到需求者(即锚)的最优传输计划,该计划通过Sinkhorn-Knopp迭代完成。
在anchor-free和anchor-base两类方法的代表性工作FCOS、RetinaNet上,OTA均实现精度提升,如下图所示,“Center” 分别对应在FCOS使用的中心区域采样和OTA使用中心先验,Dyn.k 是OTA所提出的动态观测策略。
k Estimation strategy.
OTA虽然能直接带来精度提升,但其训练成本很高. YOLOX发现OTA中的Sinkhorn-Knopp算法在训练300epoch的情况下会增加25%的训练时间,为此YOLOX提出了SimOTA,使用手工设定的规则替代Sinkhorn-Knopp算法,缩短了因此增加的训练时间.
Task Alignment Learning
Task Alignment Learning(TAL)设计了一个统一的分类分数和预测框质量的指标。IoU被这个指标所取代,用于分配对象标签。在一定程度上,任务(分类和箱体回归)不一致的问题得到了缓解。
现有的物体检测方法的两个局限性,一是分类和定位的独立性,目前分类和定位一般用的是两个独立的分支,这样使得两个任务之间缺乏交互,在预测的时候就会出现不一致性。得分高的预测位置不准,位置准的预测得分不高;二是任务无关的样本分配,大多数的anchor free的物体检测器使用基于几何的方式来分配样本点,anchor-based物体检测器一般使用IoU的方式来分配样本点,但是对于分类最优的anchor和对于定位最优的anchor往往并不是同一个。这些常用的样本分配策略都是和任务无关的,不能对这两个任务同时做出准确的预测。
TAL设计了一个Task-aligned head (T-head), 来增强两个任务之间的交互, 计算两个任务的交互特征,通过TAP(Task-Aligned Predictor )来做预测。此外还提出了Task Alignment Learning (TAL) 来显式的把两个任务的最优anchor拉近。这是通过设计一个样本分配策略和任务对齐loss来实现的。样本分配器计算每个anchor的任务对齐度,同时任务对齐loss可以逐步将分类和定位的最佳anchor统一起来。
TAL通过考虑两个方面来增强分类和定位之间的交互:(1)增加两个任务之间的交互,(2)增强检测器学习比对的能力。T-Head如下图所示,它有一个简单的特征提取器和两个任务对齐的预测器(TAP)。为了增强分类和定位之间的交互,TAL使用特征提取器来学习来自多个卷积层的任务交互特征堆栈,如下图中的蓝色部分所示。这种设计不仅方便了任务的交互,而且为这两个任务提供了多层次的特征和多尺度的有效感受野。形式上,
表示FPN特征。特征提取器使用具有激活函数的N个连续卷积层来计算任务交互特征:
论文对计算出的任务交互特征进行目标分类和定位,这两个任务可以很好地感知彼此的状态。然而,由于单一分支的设计,任务交互功能不可避免地在两个不同的任务之间引入了一定程度的功能冲突,这在其它论文中也有讨论。
直观地说,对象分类和定位的任务具有不同的目标,因此聚焦于不同类型的特征(例如,不同的层次或感受野)。因此,论文提出了一种层注意机制(layer attention mechanism),通过在层级动态计算任务特征来鼓励任务分解。
参考文献
https://arxiv.org/pdf/1912.02424.pdf
https://arxiv.org/abs/2108.07755
- 点赞
- 收藏
- 关注作者
评论(0)