SABL:侧面边框定位的目标检测

SABL:侧面边框定位的目标检测

论文题目:Side-Aware Boundary Localization for More Precise Object Detection

亮点:

  • 通过特征图内容的边界信息来进行定位bbox的边框,取代了之前通过中心点加anchor滑窗的方式,得到更高质量的bbox边界信息.
  • 通过rescore的方式,提高高质量边框的分类分数
image

解决的问题:
主流的边框生成方法都是通过预测中心点以及中心偏移的offset来得到
边框或者proposal信息.
然而这样并不能很好地提高定位精度.

而在本文中,目标框的生成直接从特征图的边框开始关注;

简单来说,本文的步骤

  1. 将目标空间分为多个桶区域(buckets)
  2. 先确定其边框在哪个buckets上
  3. 然后再回归其边框线离bucket中心点的offset.这样通过四个边框的精准回归来得到高质量边框坐标信息.

其主要流程如图所示:


image

通过三个模块来实现该idea:

  1. Side-Aware Feature Extraction
  2. Boundary Localization with Bucketing
  3. Feature-Aligned Refinement

Side-Aware Feature Extraction

该模块主要用于将RPN抽取的特征图(roi features),沿着X、Y轴方向进行分解,然后再进过upsample后分离出四个方向(、、、)的特征图;

其示意图如下所示:


image

(论文中用k=7做说明)

(1) 首先, rpn网络送进来的proposal首先经过ROIAlign得到 ROI特征图.

(2) 该ROI特征图首先经过两个3*3的卷积,得到特征输出

(3) 为了更好地获取roi区域的特定方向信息,作者采用了self-attention机制来增强roi,具体操作是:

将特征图经由两个1*1的卷积进行self-attention信息抽取,得到通道信息融合后的两个7*7的attention-map(,)

然后将原来的 与 两个方向上的attention-map进行aggregate操作,得到X,Y轴上的特征图;

(4) 和 都是一维向量(1*k) or (k * 1) ,然后经过1*3的卷积或者3*1的卷积,再经过upsample * 2 后,得到 1*2k,或者2k*1,这样就能各自分离出4个方向的feature(、、、)

其亮点:

  • self-attention的引用
  • 分离后继续upsample操作;

Boundary Localization with Bucketing

给定一个proposal box(),将边框放大倍,以便能覆盖整个物体;

候选区域(特征图)上划分2*k个buckets区域,每个边界中心线与一个bucket对应.每个bucket的宽度为:

采取二分类的形式,来觉得bbox的边框与哪个bucket最接近.(训练时候把每边中心线最接近gt的bucket作为正样本(1),其他标记为0 负样本来训练)


image

这样得到边框的粗略估计(coarse estimation),图中橙色虚线框所组成的边框;
还需要对边框进行更精准的回归定位;

localization targets

image

为了提高精细回归分支的稳健性,作者同时包含了最近的(在粗略估计步骤中标记为“正”)存储桶和第二个最近的(在粗略估计步骤中标记为“忽略”)存储桶来训练回归器。回归目标是铲斗中心线和相应的地面真相边界之间的位移。

(就是top2 bucket在粗略估计分支中作为负样本,top1 bucket 仅提供一个更精准的proposal来使用.但是在精准回归分支的时候,同时选用top1 top2的两个offset,以更精准地定位)

Bucketing-guided rescoring

前面都通过bucket机制得到更精准的bbox location了,当然不能因为这些边框的score太低而 被nms掉了.

所以一个简单地想法就是要提高这些高质量框的分数.(分类分数会乘上一个边框系数,得到最终的分数作为nms)

Feature-Align Refinement

简单来说,就是一个特征重用的模块,其目的在于减少计算量;


image

对于Side-Aware Feature Extraction 模块抽取的特征.通过线性插值的方式得到位置对齐特征.然后进行位置回归.

one-stage detector的应用:

SABL作为一个边框回归定位模块,也适用于one-stage的检测器;

如图所示:


image

将抽取的特征作为两部分:

  1. box subnet 采取SABL的方式抽取bbox边框信息;
  2. class subnet 获取label信息;

实验对比

image

作为一个更精准的边框回归模块,SABL实验效果还是很漂亮的;

速度提升了,效果还涨了1-2个map点;

代码部分

(作者说开源在mmdetection上,至今2020/3/12 还在)

总结

其亮点在于

  • 先关注边框边界的方式来精准回归 bbox 的location,算是另一种anchor-free的方式把(如果不用rpn的话).比中心点+anchor的方式能更好地定位精准边框

与其他对比:

  • fcos通过特征图逐像素点回归四个边界的offset方式来得到bbox location,然后通过 center-ness来抑制低质量框
  • (two-stage系列) rpn 网络通过中心点滑窗+anchor的方式生成proposal 再通过多阶段地边框回归来得到更精准的bbox location
  • reppoint 通过dcn卷积的方式,得到k个点代表了其object的 边缘信息,再转化成bbox 矩形框的方式得到bbox location

reference

  • Wang J, Zhang W, Cao Y, et al. Side-Aware Boundary Localization for More Precise Object Detection[J]. arXiv preprint arXiv:1912.04260, 2019.

你可能感兴趣的:(SABL:侧面边框定位的目标检测)