北京酒渣鼻中医医院 http://pf.39.net/bdfyy/bdfyw/210310/8733706.html
半锚式检测器:Semi-Anchored
摘要:
目前标准的一阶段检测器主要包括两个任务:分类和回归。引入锚框策略有利于减轻多尺度目标回归的挑战,但是锚框中的类不平衡问题会导致分类性能降低;无锚框策略有利于分类器任务,但是缺乏先验框所以难以回归到最优值。本文提出了一个半锚式检测器(Semi-Anchored),在分类过程中确定正位置,并且将多个anchors与回归的正位置相关联
问题起源:
采用锚框时背景候选框的数量明显大于前景候选框,这种不平衡的框会提升目标检测的难度(不同区域会匹配不同尺度的锚框去结合不同尺度的物体,即使在最正确的区域还有着许多的背景框),无锚框策略缺乏先验框使得回归任务难以超优。
解决方案:
文章提出了位置分类器和锚点回归器来解决以上问题。
位置分类器:
在没有锚的情况下对featuremap中的位置进行分类,锚点的正候选点与负候选点的比率从1:提高到位置的1:。一个位置是指featuremap中的一个像素,设{xi,yi}表示位置集,其中xi为特征,yi表示第i个位置的标号。对于C个前景对象的问题,我们让yi∈{0,…,C}其中yi=0表示背景位置,位置分配标签的方式是groundtruth边界盒内的位置用相应的前景标签进行标记,并且每个位置都可以与多个前景对象相关联。对于其中的位置,将K个锚框与不同的比例和纵横比关联,利用groundtruth边界盒计算loss,得到锚点的标号。设one-hot向量yi,k∈{0,1}C+1表示第i个位置上第k个锚点的标号。通过对一个位置锚的标签,我们可以得到该位置的置信分数为:
锚点中存在的大量样本,故采用IOU定义正锚,0≤γ≤1的分数重新标为背景(即c=0,其中sci为si中第c个元素)。
锚只用于获取位置标签,图中可看出不必要的位置被标记为了背景:
相当于采用阈值移动以解决类不平衡的问题,当给定了置信度分数则第i个位置的标签可以定义为:
得到位置后便可采用focalloss训练分类器:
位置分类器可以推出对象c的第i个位置的概率Pr{yi=c
xi}
锚点回归器:
为每个位置关联多个锚点,锚点{zi,K}K=1,…,K,其中zi,K表示第K个锚点在第i个位置的特征。我们的目标是估计每个锚点的概率为Pr{yi,k=c
xi,zi,k},此处只有对应位置的概率Pr{yi=c
xi},由于锚点的标签应该与位置一致,故计算条件概率为:
锚具具有相同的定位性能,由于锚具的形状不同,所以性能不佳,因此附加一个锚分类头来识别每个位置的前景锚,识别锚与相同的标签作为位置,因此可将训练集收集为{zi,k,yi,k}
传统的锚框方法中锚的标签{yi,k}是根据锚的先验形状计算的,然而回归后细化的形状与原始形状不一致,导致了很大的差异,本文通过计算回归后改进锚点的loss来消除该误差,有了适合的标签便可以优化focalloss以学习锚分类器,μi,k表示锚点zi,k的IoU。我们将每个位置的IoU分数归一化为:
采用分数作为软标签,并引入asmoothedfocalloss:
与标准focalloss相比,我们有μ?,k的平滑标签正锚,而不是1,可以捕获不同的锚更好的分布和提高性能。在提出的平滑focal损失的情况下,锚分类器是通过最小化所有前景位置的损失来学习的:
点击上方蓝字