FreeAnchor:抛弃单一的IoU匹配,更自由的anchor匹配方法 | NIPS 2019

论文抛弃以往根据IoU硬性指定anchor和GT匹配关系的方法,提出FreeAnchor方法来进行更自由的匹配,该方法将目标检测的训练定义为最大似然估计(MLE)过程,端到端地同时学习目标分类、目标检测以及匹配关系,从实验来看,效果十分显著

来源:晓飞的算法工程笔记 公众号

论文: FreeAnchor: Learning to Match Anchors for Visual
Object Detection

Introduction


  常规的目标检测网络基于IoU来进行anchor与GT间的匹配,但会面临以下问题:

  • 对于非中心特征的物体,比如细长的物体,空间上的对齐并不能保证anchor覆盖足够多的物体特征,从而造成分类和检测性能的下降。
  • 当检测目标密集时,以IoU作为匹配的准则是不可行的。

  以上的问题都来源于预先设定的anchor与GT的匹配,没有考虑到网络的输出情况。为此,论文提出基于学习的匹配方法,将匹配过程定义为最大化似然估计的过程,端到端地同时学习目标分类、目标检测以及匹配关系,取得了很不错的效果,论文的主要贡献如下:

  • 将检测算法的训练过程定义为最大似然估计的过程,并将手工设定anchor与GT匹配改为自由的anchor匹配,打破IoU的约束,允许GT根据最大似然的准则选择anchors。
  • 定义检测定制似然,并且实现端到端的检测和分类训练机制,最大化似然能够促进网络学习如何匹配最优的anchor,并保证与NMS算法的兼容。

The Proposed Approach


  为了学习anchor和GT的匹配关系,先将目标检测算法的训练转换为最大似然估计过程,从最大似然地角度优化分类和检测,然后定义检测定制似然,通过保证召回率和准确率进行匹配关系的优化,在训练阶段,将检测定制似然转换为检测定制损失,有效地端到端同时学习目标分类、目标检测以及匹配关系。

Detector Training as Maximum Likelihood Estimation

  常规one-stage检测算法的损失函数如公式1, L ( θ ) i j c l s = B C E ( a j c l s , b i c l s , θ ) \mathcal{L}(\theta)_{ij}^{cls}=BCE(a_j^{cls},b_i^{cls}, \theta) L(θ)ijcls=BCE(ajcls,bicls,θ) L ( θ ) i j l o c = S m o o t h L 1 ( a j l o c , b i l o c , θ ) \mathcal{L}(\theta)_{ij}^{loc}=SmoothL1(a_j^{loc},b_i^{loc}, \theta) L(θ)ijloc=SmoothL1(ajloc,biloc,θ) L ( θ ) i j b g = B C E ( a j c l s , 0 ⃗ , θ ) \mathcal{L}(\theta)_{ij}^{bg}=BCE(a_j^{cls},\vec{0}, \theta) L(θ)ijbg=BCE(ajcls,0 ,θ) θ \theta θ为网络学习到的参数, C i , j C_{i,j} Ci,j是指代anchor a j a_j aj是否匹配GT b i b_i bi,只有两者的IoU大于阈值才为1,当anchor符合多个GT时,选择IoU最大的Gt, A + = { a j ∣ ∑ i C i j = 1 } ∈ A A_{+}=\{a_j | \sum_i C_{ij}=1\} \in A A+={ajiCij=1}A A − = { a j ∣ ∑ i C i j = 0 } ∈ A A_{-}=\{a_j | \sum_i C_{ij}=0\} \in A A={ajiCij=0}A

  从最大似然估计(MLE)的角度来看,将损失函数 L ( θ ) \mathcal{L}(\theta) L(θ)转换为公式2的似然概率, P ( θ ) i j c l s \mathcal{P}(\theta)_{ij}^{cls} P(θ)ijcls P ( θ ) i j b g \mathcal{P}(\theta)_{ij}^{bg} P(θ)ijbg为分类置信度, P ( θ ) i j l o c \mathcal{P}(\theta)_{ij}^{loc} P(θ)ijloc为定位置信度,最小化 L ( θ ) \mathcal{L}(\theta) L(θ)即最大化似然概率 P ( θ ) \mathcal{P}(\theta) P(θ)
  虽然公式2严格从最大似然估计的角度来优化anchor的分类和定位,但是忽略了如何学习匹配矩阵 C i j C_{ij} Cij,目前的检测算法通过IoU指标进行匹配来解决这一问题,没有考虑优化GT和anchor的匹配关系。

Detection Customized Likelihood

  为了优化GT和anchor间的匹配规则,论文在CNN目标检测框架上加入检测定制似然(detection customized likelihood),揉合准确率和召回率,并保持对NMS的适配。
  首先构造每个GT b i b_i bi的IoU较高的anchor作为候选集 A i ∈ A A_i\in A AiA,然后学习如何达到最好的匹配的同时最大化检测定制似然。

  为了优化召回率,先保证每个GT都有至少一个对应的anchor,如公式3,选择每个GT的候选集中分类和检测表现最好的anchor。

  为了优化准确率,检测器需要将定位较差的anchor归为背景类,目标函数如公式4,这里意味着top anchor尽可能不为背景。 P { a j ∈ A − } = 1 − m a x i P { a j → b i } P\{a_j \in A_{-}\}=1-max_i P\{a_j \to b_i \} P{ajA}=1maxiP{ajbi} a j a_j aj与所有GT不匹配的概率, P { a j → b i } P\{a_j \to b_i \} P{ajbi}为anchor a j a_j aj正确预测GT b i b_i bi的概率。为了兼容NMS, P { a j → b i } P\{a_j \to b_i \} P{ajbi}需满足以下属性:

  • P { a j → b i } P\{a_j \to b_i \} P{ajbi}为IoU相关的单调递增函数
  • 当anchor与GT小于阈值时, P { a j → b i } P\{a_j \to b_i \} P{ajbi}接近0
  • 对于每个GT,仅存在一个anchor满足 P { a j → b i } = 1 P\{a_j \to b_i \}=1 P{ajbi}=1

P { a j → b i } P\{a_j \to b_i \} P{ajbi}的属性可以归纳为Saturated linear函数,即 P { a j → b i } = S a t u r a t e d l i n e a r ( I o U i j l o c , t , m a x j ( I o U i j l o c ) ) P\{a_j \to b_i \}=Saturated linear(IoU_{ij}^{loc}, t, max_j(IoU_{ij}^{loc})) P{ajbi}=Saturatedlinear(IoUijloc,t,maxj(IoUijloc))

  根据上面的定义,检测定制似然定义如公式5,揉合了召回率和准确率,并且与NMS兼容。通过优化似然,可以同时最大化召回率和准确率,达到自由地匹配GT和anchor。

Anchor Matching Mechanism

  为了有效地学习匹配关系,将公式5的检测定制似然转换成检测定制损失函数,如公式5, m a x max max函数用来选择每个GT最适合的anchor。在训练期间,从候选集 A i A_i Ai中选择一个anchor进行网络参数 θ \theta θ的更新。

  在训练初期,由于随机初始化,每个anchor的置信度都很小,不能代表anchor的好坏,为此使用Mean-max函数进行anchor的选择。

  在训练不充分时,Mean-max函数能够接近均值函数,即几乎所有的anchor都能用于训练,随着训练越充分后,Mean-max函数则接近max函数,最终等同于max函数,即选择最好的anchor用于训练。

  将公式6的max函数替换为Mean-max函数,对第二项加入focal loss,同时,两项分别进行 w 1 w_1 w1 w 2 w_2 w2加权,最终的检测定制损失函数如公式7, X i = { P ( θ ) i j c l s P ( θ ) i j l o c ∣ a j ∈ A i } X_i=\{\mathcal{P}(\theta)_{ij}^{cls} \mathcal{P}(\theta)_{ij}^{loc} | a_j \in A_i\} Xi={P(θ)ijclsP(θ)ijlocajAi}为候选集 A i A_i Ai的似然集, w 1 = α ∣ ∣ B ∣ ∣ w_1=\frac{\alpha}{||B||} w1=Bα w 2 = 1 − α n ∣ ∣ B ∣ ∣ w_2=\frac{1-\alpha}{n||B||} w2=nB1α F L _ ( p ) = − p γ l o g ( 1 − p ) FL\_(p)=-p^{\gamma}log(1-p) FL_(p)=pγlog(1p)

  结合检测定制损失函数,检测器的训练过程如算法1。

Experiments


  实验的FreeAnchor实现基于RetinaNet,简单地将损失函数修改为论文提出的检测定制损失函数。

Learning-to-match

Compatibility with NMS

Parameter Setting

  超参数的实验如下:

  • Anchor bag size n n n,对比 { 40 , 50 , 60 , 100 } \{40, 50, 60, 100 \} {40,50,60,100},其中,50的效果最好。
  • Background IoU threshold t t t P { a j → b i } P\{a_j \to b_i \} P{ajbi}的置信度,对比 { 0.5 , 0.6 , 0.7 } \{0.5, 0.6, 0.7 \} {0.5,0.6,0.7},0.6效果最好。
  • Focal loss parameter,对比 α ∈ { 0.25 , 0.5 , 0.75 } \alpha \in \{0.25, 0.5, 0.75 \} α{0.25,0.5,0.75} γ ∈ { 1.5 , 2.0 , 2.5 } \gamma \in \{1.5, 2.0, 2.5 \} γ{1.5,2.0,2.5} α = 0.5 \alpha=0.5 α=0.5 γ = 2 , 0 \gamma=2,0 γ=2,0组合的效果最好。
  • Loss regularization factor β \beta β,公式1的用于平衡分类和定位损失的权重,0.75效果最好。

Detection Performance

CONCLUSION


  论文抛弃以往根据IoU硬性指定anchor和GT匹配关系的方法,提出FreeAnchor方法来进行更自由的匹配,该方法将目标检测的训练定义为最大似然估计(MLE)过程,端到端地同时学习目标分类、目标检测以及匹配关系,从实验来看,效果十分显著。



如果本文对你有帮助,麻烦点个赞或在看呗~
更多内容请关注 微信公众号【晓飞的算法工程笔记】

work-life balance.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值