BorderDet 用边界特征做检测
论文地址:https://arxiv.org/abs/2007.11056
开源代码:https://github.com/Megvii-BaseDetection/BorderDet
作者解读:https://zhuanlan.zhihu.com/p/163044323
本文亮点:
- BorderDet是通过边界特征直接增强单点特征,使得特征图对目标边界的极值点有很高的相应,受背景噪声影响较小。
- BorderAlign算子从边界极值点中提取边界特征。
Abstract
- 密集的目标检测依赖于滑动窗口模式,可以在规则的图像网格上预测目标。
- 使用网格点上的特征映射可以生成bbox预测。
- 点特征使用方便,但是缺少精确定位的明确边界信息。就比如说dense object detector都是通过simple point特征去预测框的分类和回归,这些单点特征很难捕捉到物体边界的信息来精准定位。
- 本文提出一种边界对齐算子BorderAlign,从边界的极值点中提取“边界特征”,用于加强点特征;并设计一种新的检测结构——BorderDet,利用边界信息来实现定位;改进了单阶段FCOS检测器。
1 Introduction
Fig-1: 不同的特征提取策略
图注:
-
红色五角星表示预测bbox的anchor点;黑色矩形框表示红色五角星上预测的bbox;蓝色点表示特征提取的位置。(a)中的橙色点是极限点,这才是确定该物体边界框的主要因素。
-
(c)RoIAlign和(d)可变形卷积都是从整个bbox中密集提取特征,可能会引入一些有害的信息,且不能直接有效的提取到真正有用的边界极限点。
-
(e)Border Align只从当前边界的4个极限点提取特征。
-
从上图可以观察到两点不足:
- 在整个bbox中提取特征可能涉及不必要的计算,且容易受到背景影响。
- 这些方法是间接地提取边界特征,没有显示的提取边界特征,因此就认为边界极限点特征对边界框的定位比较重要。——由于特征是在bbox中自适应识别和提取的,这些方法并不需要对于边界特征进行特定提取。
本文的贡献:
- 提出一种特征提取算子BorderAlign,直接利用每个边界汇集的边界特征来增强原始单个点特征。
- 设计一种检测器BorderDet,利用边界对齐模块(BAM)来细化分类分数和bbox回归。——该方法可集成到任何有/无 anchor的密集目标检测器中。
2 Related Work
Sliding-window Paradigm 滑动窗口样式:
- one-stage object: Densebox,YOLO,SSD,RetinaNet,FCOS。
- two-stage object: R-CNN系列采用基于滑动窗口机制的RPN生成初始的proposal,然后通过RoIAlign和R-CNN进行细化,对RoI的特征映射进行扭曲,生成准确的预测结果。
Feature Representation of Object 目标的特征表示:
- Guided Anchor: 利用可变形卷积提出一种改进单点特征表示的引导anchor。
- Cascade-RPN: 提出一种自适应卷积,使得特征映射与其相应的目标边界框预测对齐。
- Reppoints: 将目标边界框表示为一组代表点,并通过可变形卷积提取代表点的特征。
Border Localization 边界局部化:
- LocNet和SABL: 采用了附加的目标定位阶段,该阶段将RoI特征图与X轴和Y轴聚集起来,以定位目标边界并生成每个目标边界预测的概率。但这种方法很大程度上依赖于高分辨率的RoI特征图。
3 The Proposed Approach
3.1 Motivation
- 滑动窗口目标检测器是对在网格每个点上的特征进行预测,但是基于点的特征表示方法很难包含有效的边界特征信息,限制了目标检测器的定位能力。
Fig-2:bbox的不同特征表示方法。
图注:
- (a)single point:表示网格中每个点上的点特征,使用单点特征来做增强;
- (b)region:表示基于RoIAlign从整个边界框中提取的区域特征,使用RoIAlign提取框内所有特征来增强;
- (c)border:表示从边界框的边界提取的边界特征,使用边界上所有点的特征来做增强;
- (d)表示从每个边界的中心点提取的边界中间要素;
- (e)表示从BorderAlign特征提取器提取的特征点。
图注:
- 基于区域的特征比基于点的特征表示更多地信息。利用区域特征增强单点特征,提高了1.3 AP。
- 利用区域特征增强单点特征时,边界特征在区域特征中有重要作用。若忽略边界框的内部,只引入边界特征,性能只降低0.3 AP。
- 提取边界特征比密集提取边界特征有更大的改进。中间边界特征比边界特征高0.3 AP,并且在较少采样点的情况下达到与区域特征相同的性能。
- 实验发现,提取边界的中心点的特征,能够达到和region feature同样的结果,且采样点个数少了很多,意味着只需要更少的复杂度,能够高效的提取到有用的特征。
3.2 Network Architecture
- 基于上面的观察,提出一种边界点提取特征的操作,精确定位物体的框。(BorderAlign -> BAM -> BorderDet)
3.2.1 Border Align
- 根据观察,边界特征能够获取到更好的检测性能。因为目标的边界上通常只有很少的前景信息和大量的背景,所以在边界上提取特征是低效的。因此,提出了一种新的特征提取器BorderAlign来有效提取边界特征。
- 这部分是本文最核心的操作,用显式、自适应的提取物体边界的特征。
Fig-3:BorderDet结构图。
图注:
- 受到RFCN的启发,BorderDet采用了 ( 4 + 1 ) C (4+1)C (4+1)C 个通道的边界敏感特征 映射 I I I作为输入。特征映射的 4 C 4C 4C个通道对应于四个边界特征(左、上、右、下),而其他 C C C个通道对应于原始单点特征。
- 如黄色虚线中,将每个边界均匀地细分为 N N N个点,并对这些 N N N个点的特征值通过max-pooling进行聚合。
- N N N表示pooling大小,默认设置为10。
- Border Align 采用通道max-pooling的方法,即四个边界在输入特征映射的每个 C C C通道内独立地进行最大池化。
- 对于一个anchor点预测的一个框,把这个框的4个border对应在特征图上的特征分别做pooling操作。由于框的位置是小数,所以该操作使用双线性插值去除每个border上的特征。
- 具体操作是: 每条边会先选出5个待采样点,,再对这5个待采样点取最大值,作为该边的特征,即每条边最后只选出一个采样点作为输出。那么每个anchor点都会采样5个点的特征作为输出,即输出的通道数也为5×C个。
- 假设输入特征图的顺序为单点、左边框、上边框、右边框和下边框,则输出的特征图
F
F
F 可以写出如下公式:
参数说明: - F c ( i , j ) F_{c}(i, j) Fc(i,j)是输出特征映射 F F F的第 c c c个通道的第 ( i , j ) (i, j) (i,j)点上的特征值。
- ( x 0 , y 0 , x 1 , y 1 ) (x_{0},y_{0},x_{1},y_{1}) (x0,y0,x1,y1)是点 ( i , j ) (i, j) (i,j)上的边界框预测。
- w w w和 h h h是 ( x 0 , y 0 , x 1 , y 1 ) (x_{0},y_{0},x_{1},y_{1}) (x0,y0,x1,y1)的宽度和高度。
- 为了避免量化误差,通过双线性插值计算出的精确值 I c I_{c} Ic与特征映射上的邻近特征值。
Fig-4:边界敏感特征图上的每个C通道最大值的可视化。
图注:
- 边界上的橙色圆圈表示极限点。
- 在左边框、上边框、右边框和下边框都显示出边界敏感特征图每个C通道上的最大特征值。
- 边界敏感特征映射是有助于BorderAlign提取边界特征的。
3.2.2 Border Alignment Module (BAM)
- 这个部分是上图中的“绿色框”——BAM模块。
- 对于来自FPN的特征,BorderAlign需要5×C个边界敏感的特征图,所以需要将通道数升维,提取完后再降维。
- BAM使用了特征图的C个通道作为输入,然后进行1×1卷积层来做升降维(和实例归一化),几乎没有增加计算量,最后将输出边界敏感的特征图还原维256个通道,来做最后的边界分类与回归。
- 边界敏感特征图由五个特征图组成,每个特征点和每个边界都有C个通道。因此,输出的特征图通道有(4+1)C个通道。默认分类的C=256,回归的C=128。
- 最后,采用BorderAlign模块从边界敏感的特征映射中提取边界特征,使用1×1卷积层将(4+1)C个通道还原为C个通道。
3.2.3 BorderDet
- 在本文中,基于anchor-free目标检测器FCOS作为baseline。由于BorderAlign中的边界提取过程需要边界位置作为输入,BorderDet采用了两个预测阶段。
- 以金字塔特征图作为输入,BorderDet首先预测粗分类分数和粗边界框位置,然后将粗边界框位置和特征图输入边界对齐模块(BAM),生成包含明确边界信息的特征图。最后,使用1×1卷积层来预测边界分类分数和边界框位置。
- 注意: 边界分类分数是由类别感知的,以避免不同类别边界之间存在重叠时的模糊预测。
- 结构和层是共享的,额外计算是忽略不计的。
- 该方法可以使用到其他检测器中,如RetinaNet,FCOS等。
3.2.4 BorderRPN
Fig-5:BorderRPN的结构。
图注:
- 将边界对齐模块添加到RPN中,并将新结构表示为BorderRPN。
- BorderRPN保留了RPN中的回归分支来预测粗边界框的位置,将RPN前3×3卷积替换成3×3扩张卷积,用于增加有效的感受野。
3.3 Model Training and Inference
3.3.1 Target Assignment
- 使用FCOS作为baseline预测粗分类分数和粗边界框预测 ( x 0 , y 0 , x 1 , y 1 ) (x_{0},y_{0},x_{1},y_{1}) (x0,y0,x1,y1)。
- 第二阶段中,通过使用IoU=0.6,将粗边界框预测分类给真实框 ( x 0 t , y 0 t , , x 1 t , , y 1 t , ) (x_{0}^{t},y_{0}^{t},,x_{1}^{t},,y_{1}^{t},) (x0t,y0t,,x1t,,y1t,)。
- 其回归的目标是
(
δ
x
0
,
δ
y
0
,
δ
x
1
,
δ
y
1
)
(\delta x_{0},\delta y_{0},\delta x_{1},\delta y_{1})
(δx0,δy0,δx1,δy1):
参数说明: - w w w和 h h h是粗边界框预测的宽度和高度, δ \delta δ是提高多任务学习有效性的方差,默认是 δ = 0.5 \delta=0.5 δ=0.5。
3.3.2 Loss Function
- BorderDet可以在计算多任务损失的情况下,以端到端的方法进行优化的。结合BorderDet的输出,将训练的损失函数定义为:
参数说明: - L c l s C L_{cls}^{C} LclsC和 L r e g C L_{reg}^{C} LregC分别表示粗分类损失和粗回归损失。focal loss和IoU loss作为分类损失和回归损失,与FCOS一致。
- L c l s B L_{cls}^{B} LclsB边界分类与其指定的真实值 C ∗ C^{*} C∗之间的计算的focal loss,用正样本 N p o s N_{pos} Npos数量的平均值作为loss。
- 使用 L 1 L_{1} L1 loss作为角度回归损失。
- P B P^{B} PB表示预测的边界分类分数。
- Δ \Delta Δ表示预测的边界偏移量。
3.3.3 Inference
- BorderDet是预测特征图上每个像素的分类分数和矩形框位置,最后的分类分数由粗分类分数和边界分数相乘得到。
- 最后将各层次的预测值进行合并,使用阈值为0.6的NMS进行过滤。
4 Experiments
- backbone: 带有FPN的ResNet-50
- 数据集: COCO trainval35k set (训练),COCO minival set(验证)
图注:
- 无论加入cls-BAM还是reg-BAM,都可以提升1.1 AP的性能。
- 这种改善主要发生在IoU阈值较低时,随着IoU阈值的增加,改善逐渐减弱。
- 在低IoU下能够改进是因为BAM可以根据边界框的边界特征对边界框进行重新扫描,并保持比较高的分类分数和局部精确度。
- 在高IoU阈值下,性能会受到缺少高质量边界框的限制。
- 与baseline相比,AP50提高了2.2,AP90提高了3.5(相当于提升了20%)。
- 结论: 分类分支精确定位有助于最后的ranking,使nms能够获取一个更好的边界框;回归分支获取极限点特征,得到更精确的回归。
图注:
- BorderAlign将每个边界细分为多个点,然后在每个边界上聚集来提取边界特征。在BorderAlign过程中,引入了一个新的超参数池化大小。
- 当池化大小为0时,实验结果相当于迭代预测边界框。
- 池化大小会影响模型的鲁棒性,但是较大的池化会耗费额外的计算,较小的池化会导致不稳定的结果。
- 默认值是10。
图注:
- 边界敏感性特征映射可以在不同通道的不同边界的极值点上被高度激活,便于后续边界特征提取。
- 边界敏感表示边界特征和原始单点特征的提取是在不同的特征图上进行的。
- 边界无关表示在单一特征图上进行提取的。
图注:
- 在BorderAlign中,我们采用了通道最大池化策略,简单来说,就是每个通道的边界特征独立地沿着边界聚集。
- 通道最大池化策略可以在不考虑背景噪声的情况下提取具有代表性的边界特征。
- “Border-Wise”: 首先,通过不同的池化方法将特征映射沿着通道维度聚合,生成通道等于1的特征映射。然后,在目标的每个边界进行最大池化,找到边界极限点,并提取出极限点上的特征映射,形成边界特征。
- “Channel-Wise”: 每个通道的边界特征通过平均池化或最大池化独立地聚集在边界上。
图注:
- BorderAlign与自适应卷积、可变形卷积和RoIAlign进行对比,实验表明,BorderAlign比其他特征提取算子的性能高出1.0AP。
- BorderAlign可以集中在边界具有代表性部分(如极值点)提取边界特征。其他特征提取算子会引入冗余特征,从而限制检测性能。
- 与其他特征增强器做对比,无论是速度还是精度,都比较有优势。
Fig-6:
图注:
- 上图是FCOS和BorderDet中边界框预测的分布的比较。
- 统计了边界上提取特征的点的位置,并和COCO中的标注做对比。
- 计算训练期间(5k迭代、30k迭代和90k迭代)从BorderAlign采样点到每个响应图的极值点的归一化距离计数。归一化距离的平均值几乎等于0。
- 随着训练的进行,提取特征点的位置会逐渐趋向于极限点的位置,均值在0附近,且方差逐渐减小。这就意味着BorderDet可以自适应地学习在极值点附近提取特征。
- IoU>0.5的数量增加了约30%,特别是IoU>0.9的box数量几乎翻了一倍。
- 结论: 在某种程度上,可表示BorderAlign在提取边界极限的特征确实有效,且边界极限点的特征对物体的精确定位确实有帮助。
图注:
- 在retinanet上有2.3的提升,FPN上也有3.6的提升,在不同模型上都表现不错。
5 Conclusion
- 提出一种检测器BorderDet,在分类和回归过程中提取边界特征,以提高目标检测器的定位性能。
- 提出一种通过BorderAlign的操作来边界特征,通过这个BorderAlign检测器能够自适应地学习提取每个边界上极值点地特征。