ADR数据筛选算法(无Anchor的旋转物体检测方法)

导读

WACV2021的一篇文章,将CenterNet的方案用到了旋转物体的检测中,设计了一种精巧的旋转框表达方式,免去了设计anchor麻烦,效果也非常好,而且代码也开源了。

摘要

这是一篇有方向的物体检测的文章。当前的有方向物体检测往往是两阶段的基于anchor的检测方法,但是这种方法会有正负anchor的不平衡的问题。这篇文章将基于水平关键点的物体检测的方法扩展了一下,用于有方向的物体检测。我们首先进行物体的中心点的检测,然后回归一个包围框的边缘感知向量(BBAVectors)来得到有方向的包围框。为了让这个向量的学习变得简单,我们还进一步将有方向的包围框分成了水平框和选择框两类。

1. 介绍

两阶段的基于anchor的旋转框检测有一些缺点:(1)anchor的设计非常的复杂,要去设计不同的比例,不同的尺寸。(2)正负样本会非常的不均衡,这会导致训练很慢,而且无法达到最优的效果。(3)第二个阶段的crop和regress策略在计算量上也比较大。除了基于anchor的方法之外,最近anchor free的物体检测方法得到了较大的发展,CenterNet的方法是先检测物体的中心点,然后直接回归出物体的宽和高,当然,我们可以直接再回归一个旋转角度θ来将CenterNet扩展到有方向的物体检测,但是,对于任意的旋转物体,宽和高实际上依赖于不同的旋转坐标系统,所以直接回归会有些难度。

本文中,我们扩展了CenterNet的方法,将其应用到有方向物体的检测中,但是,并不是直接回归w,h和θ,而是学习一个box boundary-aware vectors(BBAVectors),如图1(b),然后得到物体的有方向的包围框。在实际做的过程中,我们发现,在一些极端情况下,向量和象限的边界非常的靠近,如图1(c),这样区分向量的类型就比较困难。

总结一下,我们的贡献如下:

  • 提出了一个描述OBB的方法,box boundary-aware vectors(BBAVectors),非常的简单有效。BBAVectors对于所有的物体都在同一个笛卡尔坐标系中。
  • 我们将基于特征点检测的CenterNet扩展到了方向物体检测场景中。这是一个单阶段而且anchor free的方法。

ADR数据筛选算法(无Anchor的旋转物体检测方法)(1)

图1:带方向的包围框的表示方式

2. 方法2.1 结构

网络结构如图2,是一个U型的结构,我们使用了ResNet101的Conv1~5作为主干,然后再进行上采样,得到一个原始图像1/4大小的特征图。在上采样的过程中,会有下采样时候的层的跳跃连接拼接到一起。

ADR数据筛选算法(无Anchor的旋转物体检测方法)(2)

图2:本文提出的方法的整体结构以及OBB的描述方法

2.2 热图

Heatmap是用来定位关键点的。这里,我们用来检测物体的中心点。热图有k个通道,分别对应了不同类别的物体。热图的每个像素点的值表示物体的置信度。

Groundtruth 假设c=(cx,cy)是旋转框的中心点,我们以c为中心,构建一个2D的高斯分布来作为热图的groundtruth,其中,高斯分布的方差是和物体的尺寸相关的一个自适应的值。

训练损失 在训练热图的时候,只有中心点c是正样本,其他的点,包括高斯分布范围中的点都是负样本。由于这个正负样本的极度不平衡,所以直接去学习中心点是比较困难的,所以,我们对高斯分布以内的点的损失做了一定程度的衰减,使用了一个focal loss的变体来训练这个热图。

ADR数据筛选算法(无Anchor的旋转物体检测方法)(3)

其中,p_hat表示groundtruth,p表示预测值,N是物体的数量,α和β是超参数,这里α=2,β=4。

2.3 中心点的偏移

在预测阶段,从热图中提取峰值点作为物体的中心点,这个中心点c是一个整数,但是,原始图经过下采样之后,得到的中心点的坐标是一个浮点数,为了弥补这个量化的误差,我们还需要再预测一个偏移量O:

ADR数据筛选算法(无Anchor的旋转物体检测方法)(4)

用L1 loss来进行优化:

ADR数据筛选算法(无Anchor的旋转物体检测方法)(5)

其中,SmoothL1的表达式可以是:

ADR数据筛选算法(无Anchor的旋转物体检测方法)(6)

2.4 包围框的参数

为了得到带方向的包围框,一个很自然的想法就是回归出宽,高,和角度θ,我们把这个base line称为Center wh θ,如图1(a)。这个方法有几个缺点:(1)小的角度的变化对于损失来说可能是微不足道的,但是对于IOU却会产生较大的影响。(2)OBB中的w,h是在各自独立的旋转坐标系统中定义的,角度θ是相对于y轴的,这样,网络很难去联合训练所有的物体。所以,我们提出了一种描述OBB的方法,叫做box boundary-aware vectors(BBAVectors),包括4个向量,t,r,b,l。在我们的设计中,这4个向量分布在笛卡尔坐标系的4个象限中,所有的旋转物体都共用一个坐标系,这样可以高效的利用共同的信息,并提升模型的泛化能力。我们有意的设计了4个向量,而不是2个,为的是当某些局部特征不是很明确的时候可以得到更多的交互信息。

此时,包围框的参数定义为:b = [t,r,b,l,w,h],其中w,h是外接水平包围框的宽和高,如图2所示。这样,每个包围框就有2x4 2=10个参数,我们还是用L1 loss来回归box的参数:

ADR数据筛选算法(无Anchor的旋转物体检测方法)(7)

2.5 方向

我们发现,当物体框和xy轴对齐的时候,检测会失败,这个原因可能是象限的边界问题,这种类型的向量的差别很难区分。我们把这个问题叫做corner case,我们把OBBs分为两类,一类是水平的,一类是旋转的,当OBBs是水平的,w和h帮助我们得到准确的包围框。另外,外接矩形的参数也可以帮助我们去更好的描述OBB。

我们定义了一个旋转特征图α,我们这样定义:

ADR数据筛选算法(无Anchor的旋转物体检测方法)(8)

然后通过交叉熵来优化:

ADR数据筛选算法(无Anchor的旋转物体检测方法)(9)

3. 实验

我们在两个数据集上进行了验证,DOTA和HRSC2016。

3.1 和其他模型的对比

DOTA:

ADR数据筛选算法(无Anchor的旋转物体检测方法)(10)

HRSC2016:

ADR数据筛选算法(无Anchor的旋转物体检测方法)(11)

3.2 消融实验

我们对比了BBAVectors r和BBAVectors rh两种方法,一种是不区分水平和旋转物体,一种区分水平和旋转物体:

ADR数据筛选算法(无Anchor的旋转物体检测方法)(12)

3.3 和baseline的对比

我们还对比了Center wh θ的baseline模型:

ADR数据筛选算法(无Anchor的旋转物体检测方法)(13)

3.4 在DOTA数据上的结果可视化

ADR数据筛选算法(无Anchor的旋转物体检测方法)(14)

更多内容,请关注微信公众号“AI公园”。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页