CentripetalNet:更合理的角点匹配,多方面改进CornerNet | CVPR 2020

CentripetalNet的核心在于新的角点匹配方式,额外学习一个向心偏移值,偏移值足够小的角点即为匹配,相对于embedding向量的匹配方式,这种方法更为鲁棒,解释性更好。另外论文提出的十字星变形卷积也很好地贴合角点目标检测的场景,增强角点特征

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

论文: CentripetalNet: Pursuing High-quality Keypoint Pairs for Object Detection

Introduction


  CornerNet打开了目标检测的新方式,通过检测角点进行目标的定位,在角点的匹配上,增加了额外embedding向量,向量距离较小的角点即为匹配。而论文认为,这种方法不仅难以训练,而且仅通过物体表面进行预测,缺乏目标的位置信息。对于相似物体,embedding向量很难进行特定的表达,如图1所示,相似的物体会造成错框现象。
  为此,论文提出了CentripetalNet,核心在于提出了新的角点匹配方式,额外学习一个向心偏移值,偏移值足够小的角点即为匹配。相对于embedding向量,这种方法更为鲁棒,解释性更好。另外,论文还提出十字星变形卷积,针对角点预测的场景,在特征提取时能够准确地采样关键位置的特征。最后还增加了实例分割分支,能够将网络拓展到实例分割任务中。

CentripetalNet


  如图2所示,CentripetalNet包含四个模块,分别为:

  • 角点预测模块(Corner Prediction Module):用于产生候选角点,这部分跟CornerNet一样。
  • 向心偏移模块(Centripetal Shift Module):预测角点的向心偏移,并根据偏移结果将相近的角点成组。
  • 十字星变形卷积(Cross-star Deformable Convolution):针对角点场景的变形卷积,能够高效地增强角点位置的特征。
  • 实例分割分支(Instance Mask Head):类似MaskRCNN增加实例分割分支,能够提升目标检测的性能以及增加实例分割能力。

Centripetal Shift Module


Centripetal Shift

  对于 b b o x i = ( t l x i , t l y i , b r x i , b r y i ) bbox^i=(tlx^i,tly^i,brx^i,bry^i) bboxi=(tlxi,tlyi,brxi,bryi),几何中心为 ( c t x i , c t y i ) = ( t l x i + b r x i 2 , t l y i + b r y i 2 ) (ctx^i, cty^i)=(\frac{tlx^i+brx^i}{2}, \frac{tly^i+bry^i}{2}) (ctxi,ctyi)=(2tlxi+brxi,2tlyi+bryi),定义左上角点和右下角点的向心偏移为:

l o g log log函数用来减少向心偏移的数值范围,让训练更容易。在训练时,由于非GT角点需要结合角点偏移计算向心偏移,比较复杂,如图a所示,所以仅对GT角点使用smooth L1损失进行向心偏移训练:

Corner Matching

  属于同一组的角点应该有足够近的中心点,所以在得到向心偏移和角点偏移后,可根据角点对应的中心点判断两个角点是否对应。首先将满足几何关系 t l x < b r x ∧ t l y < b r y tlx < brx \wedge tly < bry tlx<brxtly<bry的角点组合成预测框,每个预测框的置信度为角点置信度的均值。接着,如图c所示,定义每个预测框的中心区域:

R c e n t r a l R_{central} Rcentral的角点计算为:

0 < μ ≤ 1 0 < \mu \le 1 0<μ1为中心区域对应预测框边长的比例,根据向心偏移计算出左上角点的中心点 ( t l c t x , t l c t y ) (tl_{ctx}, tl_{cty}) (tlctx,tlcty)和右下角点的中心点 ( b r c t x , b r c t y ) (br_{ctx}, br_{cty}) (brctx,brcty),计算满足中心区域关系 ( t l c t x j , t l c t y j ) ∈ R c e n t r a l j ∧ ( b r c t x j , b r c t y j ) ∈ R c e n t r a l j (tl^j_{ctx}, tl^j_{cty})\in R^j_{central} \wedge (br^j_{ctx}, br^j_{cty})\in R^j_{central} (tlctxj,tlctyj)Rcentralj(brctxj,brctyj)Rcentralj的预测框的权值:

  从公式5可以看出,角点对应的中心点的距离越近,预测框的权值越高,对于不满足中心点几何关系的预测框,权值直接设为0,最后,使用权值对置信度进行加权输出。

Cross-star Deformable Convolution


  为了让角点感知目标的位置信息,coner pooling使用max和sum来进行目标信息的水平和垂直传递,导致输出的特征图存在十字星现象,如图4a所示,十字星的边界包含了丰富的上下文信息。为了进一步提取十字星边界的特征,不仅需要更大的感受域,还需要适应其特殊的几何结构,所以论文提出了十字星变形卷积。

  但并不是所有的边界特征都是有用的,对于左上角点而言,由于十字星的左上部边界特征在目标的外部,所以其对左上角点是相对无用的,所以论文使用偏移引导(guiding shift)来显示引导偏移值(offset field)的学习,偏移引导如图b所示。偏移值共通过三个卷积层获得,前两个卷积层转化corner pooling的输出,通过下面的损失函数有监督学习:

δ \delta δ为偏移引导,定义为:

  第三层卷积将特征映射为最终偏移值,内涵了目标的上下文信息和几何信息。

  论文对不同的采样方法进行了可视化,可以看到论文提出的十字星变形卷积的效果符合预期,左上角点对应的采样点均为十字星的右下部边界。

Instance Mask Head


  为了获取实例分割的结果,论文取soft-NMS前的检测结果作为候选框,使用全卷积网络进行mask预测。为了保证检测模块能够提供有效的候选框,先对CentripetalNet预训练几轮,然后取top-k候选框进行RoIAlign得到特征,使用连续四个卷积层提取特征,最后使用反卷积层进行上采样,训练时对每个候选框进行交叉熵损失:

Experiment


  完整的损失函数为:

L d e t L_{det} Ldet L o f f L_{off} Loff跟CornerNet定义的一样,为预测框损失和角点偏移损失, α \alpha α设置为0.005。

  目标检测性能对比。

  实例分割性能对比。

  CornerNet/CenterNet/CentripetalNet可视化对比。

Conclusion


  CentripetalNet的核心在于新的角点匹配方式,额外学习一个向心偏移值,偏移值足够小的角点即为匹配,相对于embedding向量的匹配方式,这种方法更为鲁棒,解释性更好。另外论文提出的十字星变形卷积也很好地贴合角点目标检测的场景,增强角点特征。



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

work-life balance.

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值