这是一篇强强联合的文章,作者有沈春华团队、商汤团队等。虽然说目标检测领域的新工作越来越遇到瓶颈,怎么从越来越少的坑位中找到新的点,也许可以从这篇文章中找到。另外,感谢B站的Richad大佬,大家记得取B站多多关注,点赞、投币。
论文地址:https://arxiv.org/pdf/2005.04854.pdf
已获得原UP主授权,转载请联系。地址:https://www.bilibili.com/video/BV1RT4y1J7xo?t=361。超专业,超良心,各位看官记得去B站一键三连。
在目标检测领域,以anchor-based和anchor-free的目标检测方法为代表的多stage或单stage的pipline已取得了非常有前途的检测性能。但是,他们仍然遇到手动设计2D anchor、直接学习1D 位置回归复杂性等困难。为了解决这些问题,在本文中,提出了一个新的对象检测框架ScopeNet,该框架将每个位置的anchor点建模为相互依赖的关系。这种方法量化了预测空间,并采用从粗到精( coarse-to-fine)的策略进行定位。与基于回归的anchor-free方法相比,它具有出色的灵活性,同时可以进行更精确的预测。此外,还学习了anchor选择得分来描述检测结果的定位质量,并通过组合类别-分类分数( category-classificationscore)和anchor选择分数(anchor-selection score)来更好地表示检测box的置信度。通过简洁有效的设计,ScopeNet在COCO数据集上取得了SOTA。
简介
目标检测算法可分为一阶段和两阶段两种,其中两阶段目标检测算法精度更高,但是一般要先提取出候选框,需要更多的计算步骤。本文主要讨论一阶段的目标检测算法,而anchor框的定义或生成是许多一阶段检测器中精确定位的关键组成部分。anchor框通常是预定义的2D框,在每个位置都有一组固定的框形状,即长宽比和比例scale(见图1(a))。
图1 定位预测的不同方法。蓝色框表示GT。实线红色框表示预测框。红色箭头是回归预测。预测基于当前的中心位置(黑点)。(a)anchor-based方法:红色虚线框表示一个anchor box框,其目标可能具有较高的IoU。它首先使用分类来选择与目标对象具有高度关联的锚框,然后使用回归来预测更准确的位置。(b)anchor-free方法:将边界框的四个边界直接回归。(c)本文的一维anchor-dependent的方法:沿着四个方向中的每一个,首先使用softmax分类来估计预测的粗略范围,然后应用相应的回归网络和anchor scale进行更细粒度的定位。
使用anchor来预测偏移量而不是位置的明显好处是:能够使网络更容易学习,从而有助于提高检测器的检测精度。但是,常用的2D anchor box也有一些缺点。首先,对anchor框的密集预测会带来冗余,因为anchor需要足够密集才能覆盖大多数目标对象,且框形状的变化很大。然后,网络必须预测所有anchor点的类别和位置。其次,性能对anchor的设计选择非常敏感,不适当的anchor设计会大大降低检测性能。常见的anchor-based的检测器通常采用9个anchor来覆盖3个比例和3个长宽比,这显然使对形状变化较大的目标对象的检测更具挑战性。
为了克服上述2D anchor框的缺点,anchor-free方法考虑对目标对象的位置进行直接回归(见图1(b))。通过放宽对锚框的框形状约束并学习与目标位置相对应的四个方向偏移(即左,右,上和下)的一维预测,anchor-free方法理想地能够定位具有任意形状的目标对象。但是,这些anchor-free的方法依赖于单个回归网络来预测无边界空间中的精确位置,这对于网络而言可能是极具挑战性的。
上面的分析提出了一个直截了当的问题:是否有可能保持anchor-free方法的灵活性和简单性,同时使定位更加准确?由于单个回归网络可能无法有效地处理无界的预测空间,因此可以考虑限制回归网络的作用范围。受到anchor-based的方法的启发,本文的方法对不同形状的目标对象使用不同的回归网络和anchor。但是,与每个anchor模型预测独立于其他anchor不同,本文的方法将anchor建模为相互依赖的关系,如图1(c)所示,每个目标只有一个最可能的anchor box。
具体来说,首先设置不同的一维anchor scale。例如,可以将预测范围划分为几个间隔,每个间隔对应一个anchor scale。每个anchor scale负责一定范围的位置,并且每个anchor scale都有一个特定的回归网络。在inference过程中,分类网络首先产生一个粗略的预测,并决定将使用哪个anchor scale和回归网络。然后,相应的回归网络将粗略预测与选定的anchor scale一起优化。该方法策略有几个好处:首先,它平衡了分类和回归两部分。通过量化预测空间,回归被限制在合理范围内。此外,使用softmax进行anchor选择可以使最匹配的锚点与其他不匹配的anchor竞争,从而促进更准确的定位。这可以在后续可能的处理步骤(例如top-K和NMS)之前有效排除匹配不良的anchor的预测,因此减少了冗余并节省了计算量。此外,该方法能够学习 classification 的范围,与现有的anchor-free方法一样,它保留了极大的灵活性。
本文的方法
图2. ScopeNet的流程图。给定输入图像,主干网络由ResNet FPN组成用于提取特征。然后有两个主要分支,目标分类分支和目标位置回归分支。分类分支执行用于识别目标类别。目标位置回归分支由Scope Head实现,同样也分为两个部分:bin分类和border回归。bin分类对四个方向的anchor selection执行N类分类。border回归对从bin分类分支中选择的anchor执行边界预测。
1、 Scope Head
Scope Head在四个方向(即左,右,上和下)的每个方向上考虑N个候选锚点。Scope Head有两个分支:bin分类分支和border回归分支。bin分类分支目的是执行N类分类以学习anchor的选择。对于这些候选锚点,边界回归分支执行回归以沿每个方向定位边界。具体地,对于每个方向,bin分类分支选择具有最高分数的anchor,并且解码其对应的回归预测以获得目标在每个方向上的边界位置。最后,通过沿四个方向收集边界位置来确定目标边界框。在的方法中,候选anchor是可学习的参数
- Anchor的一维表示
在大多数研究中,anchor是一个二维表示,例如scale比例和长宽比。在本文中,anchor是由四个不同的一维表示获得的,分别对应于anchor的上、下、左、右边界。因此,边界box回归目标被表示为从当前特征点位置到四个边界的距离。通过这样的设计可以在一维空间中生成不同尺度的anchor,而不是在二维空间中生成各种形状的边界box,是非常灵活的。这自然带来了一个先天的优势,即anchor框的生成自由度大大提高。
- 可学习的一维anchor框
在本文中,不是手动设计anchor,而是要生成依赖于数据的学习anchor。在1D anchor表示中有四个方向x∈{l,r,t,b}。在每个方向x上,将距离划分为N个bin,每个bin都有一个对应的anchor。那么,第n个bin的边界预测为:
其中,an可学习。
- 学习 anchor selection
图3 Box参数化和bin分配示意图。黄色圆圈和橙色框分别表示分类感兴趣的样本和目标边界框。指向顶部和左侧边界的绿色矢量表示当前中心位置的预测边界目标。右边界和底边界的公式类似于这两个边界。
与采用交并比(IoU)的2D anchor分配方法不同,本文通过确定目标属于哪个bin来为border分配anchor,如图3所示。学习anchor selection的目的是为目标选择最佳bin,一种直接的方法是使用全连接层作为分类器,并使用简单的Soft-max函数来预测属于不同bin的目标的概率。但是,与经典的目标分类不同,经典的目标分类的每个类别的边界都很清楚,而本文的bin分类任务的边界却模棱两可。为了解决这个问题,本文提出了一种策略,该策略可以平滑化Softmax函数的概率分布,并降低此类样本的损失权重,如下所示:
- Localization guided detection score
为了进一步提高目标检测的准确性,本文采用了定位指导的检测score。大多数以前的研究依靠分类结果来评估box预测的质量。但是,高质量的检测结果不仅意味着可以识别类别,而且还需要精确的定位,因此分类得分所占的比例更大。为了解决这个问题,本文使用定位置信度和分类分数的乘积作为最终的检测分数,公式为:
- 损失函数
实验与结果
消融实验