目录
一、概述
二、背景
三、建议
1、旋转RetinaNet
2、动态锚框分布
3、匹配敏感损失
四、实验
一、概述
由于选择正样本锚框进行回归,不一定能够定位真实的GT,而部分负样本回归甚至可以回归到真实的GT,说明相当多的负样本锚框有着准确定位的能力,这说明IoU进行回归锚框存在一定的问题,所以引出DAL(动态锚框学习),重新设置新的匹配度来综合评价锚框的定位潜力。
图(a)表示有74%的正样本锚框可以很好的定位GT(高质量样本IoU>0.5),说明定位GT引入了许多假阳性样本。图(b)表示能够定位GT的检测样本中,只有42%为正样本锚框,意味着大多数为负样本锚框具有准确定位潜力。图(c)当前标签分配,分类置信度与输入IoU成正相关。图(d)经检测后的分类置信度与输出IoU相关性较弱,大量具有高IoU的被判为背景,高IoU情况下基本成随机分布,说明不利于在推理过程中利用分类评分选择检测结果。另外这种随机分布的效果,会被NMS筛掉一部分,所以分类器也不会彻底崩掉。
其实就是低IoU(负样本)输入产生了一个高IoU输出(正样本),这个负样本就是一个潜在的正样本,我们就应该找到一个匹配的办法来有效的找到这一类负样本,让其作为正样本来训练。
下图中红色框为锚框(用于计算IoU),绿色为预测框,可以看到低IoU也可能产生高预测框。
二、背景
本文提到RoI Transformer使用水平锚点,通过空间变换学习旋转RoI,减少锚点数量。R3Det使用从粗到细的级联,另外细化了预测框回归的问题。虽然这两者都取得了很好地效果,但不能对锚框的质量做出正确的判断,可能导致标签分配不当。
本文又提到了正负样本不平衡的问题,由于大多数基于锚点的检测器,都会密集的预设锚点。Focal Loss提出降低简单样本和维持正负样本不均衡的问题,动态R-CNN和ATSS提出自动调整IoU阈值,从而选择正样本,但没有考虑IoU本身是否可信的问题,只是考虑了正样本的噪声问题。FreeAnchor将目标与锚点的匹配定义为最大似然估计,来选择最具有代表性的锚,但定义相对复杂。
三、建议
1、旋转RetinaNet
本文仍然使用RetinaNet(上图为RetinaNet部分结构)作为backbone,水平锚仍然设置在FPN层的P3,P4,P5,P6,P7上,不使用旋转锚,减少参数,减少时间消耗。
边界框回归中预测框偏移量(下图)和真实框偏移量(论文中没有单独写出,与下图一致只不过多了上标*),与R3Net的区别,只是在θ的求解加了tan。
多任务损失函数仍然是RetinaNet的那一套,p和p*是预测和真实标签概率分布。
2、动态锚框分布
由于我们最开始看到纯粹的基于输入IoU来进行回归,会导致模型难以收敛,模型效果不好。本文提出匹配度MD的概念,利用空间匹配、特征对齐和锚点回归的不确定性的先验信息来衡量定位能力。md表示如下,其中sa为先验,等价于输入IoU,fa为后验,等价于输出IoU,α和γ为超参数,u为惩罚项,表示训练是回归的不确定性,。
根据匹配度,对正样本进行动态锚点选择,计算GT box与锚的匹配度,规定大于0.6为正候选锚,另外规定α的取值。t表示当前迭代次数/最大迭代次数(规定的迭代次数)
3、匹配敏感损失
为了提高分类和回归之间的相关性,实现高质量的对任意方向的检测,将MD引入损失函数,将分类损失定义为:
其中ψ和ψp表示代表所有锚点和匹配度阈值选择的正样本,N和Np表示所有锚点和正锚点的个数。FL为Focal Loss,为匹配补偿因子,用于区分不同定位的正样本。根据每个GT,首先计算与锚点的匹配程度md,设定一个阈值为正样本的划分点,正样本的匹配值为,假设GT的最大匹配程度为,补偿值为。将各个正样本的补偿值加到匹配值上获得匹配补偿因子:。
回归损失也进行重新定义:
四、实验
这个论文就是一个模块的讲解,下面这个实验在HRSC2016上计算出超参数α和γ的值分别为5和0.3,在不同数据集可以进行测试。
在与不同的模型进行对比时,DAL使用RetinaNet为backbone,可以对标一下R3Det 有一个提升。