目标检测论文阅读:ObjectBox算法笔记

标题:ObjectBox: From Centers to Boxes for Anchor-Free Object Detection
会议:ECCV2022
论文地址:https://link.springer.com/10.1007/978-3-031-20080-9_23
这篇文章提出了一种非常新颖的anchor-free的目标检测算法,仅仅使用目标的中心位置就可以预测边界框。文中定义的回归目标和IoU损失非常巧妙,可以不顾大小和形状平等地对待所有目标,和FCOS等方法相比少了很多超参数。作为一篇oral,给人感觉非常优雅。算法的许多细节还要再研究研究。

文章目录

  • Abstract
  • 1 Introduction
  • 2 Related Work
    • 2.1 Anchor-Based Object Detectors
    • 2.2 Anchor-Free Object Detectors
    • 2.3 Label Assignment
  • 3 ObjectBox
    • 3.1 Label Assignment Based on Object Central Locations
    • 3.2 Box Regression
  • 4 Experiments
    • 4.1 MS-COCO Object Detection
    • 4.2 Ablation Study
  • 5 Conclusion

Abstract

本文提出了一种新颖的、可以高度泛化的单阶段anchor-free目标检测方法。不同于现有的anchor-based和anchor-free检测器在标签分配上更偏向于特定的目标尺度,我们仅使用目标的中心位置作为正样本,在不同的特征层上平等对待所有目标,而不考虑目标的大小和形状。具体来说,我们的标签分配策略以anchor-free的方式将目标的中心位置视为形状和大小无关的锚点,并允许在每个目标的所有尺度上进行学习。为此,我们定义了新的回归目标:中心单元格位置的两个角点到边界框四条边的距离。此外,为了处理尺度变化的目标,我们提出一个定制的IoU损失来处理不同大小的框。因此,我们提出的目标检测器不需要任何依赖于数据集的超参数,在面对不同数据集时不用对此进行调整。我们在COCO和VOC数据集上评估了我们的方法,并和SOTA方法进行了比较。我们发现ObjectBox和此前的工作相比表现良好。此外,我们进行了严格的消融实验来评估本方法的不同组成部分。

1 Introduction

当前的SOTA目标检测方法,不论两阶段还是单阶段,都是假设边界框,对每个框提取特征,然后标记目标类别。它们是对共享的局部特征进行边界框定位。一种常见的策略是在卷积特征图上使用手工设计的密集锚框来为共享的局部特征生成丰富的候选框。这些锚框生成的边界框尺寸和纵横比的分布是一致的,该分布是基于目标和锚框之间的IoU进行分配的。
anchor-based方法由于其巨大成功,一直占据着目标检测的主导地位。然而,它们也存在一些普遍且严重的缺陷。第一,使用预定义的锚框会引入额外的超参数来指定它们的大小和纵横比,这会降低在其它数据集上的泛化能力。第二,锚框必须密集地覆盖图像,来最大化召回率。然而,少数锚框与大多数真值框重叠,导致正负锚框之间的极度不平衡,增加了额外的计算成本,使训练和推理变慢。第三,必须精心设计锚框的数量、尺度和纵横比,因为改变这些参数会影响性能。
为了应对这些问题,最近提出了许多anchor-free目标检测器,它们可以分为keypoint-based和center-based两类。在keypoint-based方法中,使用标准的关键点估计网络(例如HourglassNet)定位多个目标点,如中心点和角点,然后分组以约束目标的空间范围。然而,它们在关键点检测后需要一个复杂的组合分组算法。相比之下,center-based方法更类似于anchor-based方法,它们使用感兴趣的目标区域或者中心位置来定义正样本。anchor-based方法在这些中心位置使用锚框作为预定义的参考框,而anchor-free方法则直接对这些位置的边界框进行回归(如图1所示)。
目标检测论文阅读:ObjectBox算法笔记_第1张图片
ATSS一文中表明,center-based方法里,anchor-based和anchor-free方法的主要区别在于如何定义正负训练样本,这也是导致性能差距的原因。为了区分正负样本,anchor-based方法使用IoU同时在空间和尺度维度上选择正样本;anchor-free方法在一些空间和尺度约束下,首先在空间维度上找到候选正样本,然后在尺度维度上选择最终的正样本。然而,这两种静态策略是通过施加约束阈值来确定正样本和负样本之间的边界,忽略了这样一个事实:对于具有不同大小、形状或遮挡条件的目标,最佳边界可能会有所不同。针对这一问题,许多动态分配机制被提出。例如在ATSS中提出根据一些统计指标为每个目标设置划分边界。
在本文中,我们提出放松静态或动态分配策略中所施加的所有约束,从而平等地对待所有尺度中的所有对象。为了在不考虑目标形状和大小的同时学习到分类标签和回归偏置,我们只从目标的中心位置进行回归,把这些位置视为形状和大小无关的锚点。为此,我们定义了新的回归目标:包含目标中心的网格单元的两个角点到边界框边界的距离(图1中的 L L L R R R B B B T T T)。如图2所示,与其他方法相比,我们在不同的尺度水平上没有使用任何指标。因此,我们在不加点缀的情况下增加了正样本。为了在所有尺度下学习这些正样本,我们提出了一个新的尺度不变的指标作为IoU度量,它在不同尺度水平上惩罚不同大小的目标框和预测框之间的误差。
目标检测论文阅读:ObjectBox算法笔记_第2张图片
总之,我们的贡献是提出了一种新的anchor-free目标检测器ObjectBox,它能够更好地处理标签分配问题,并且与SOTA相比表现良好。此外,我们的方法是即插即用的,可以很容易地应用到各种数据集而不需要调整任何超参数。因此,我们的方法更加鲁棒和泛化,并达到了SOTA。

2 Related Work

2.1 Anchor-Based Object Detectors

介绍了Faster R-CNN这类anchor-based方法使用锚框的背后原理。然后回顾了一些两阶段和单阶段方法。

2.2 Anchor-Free Object Detectors

首先指出了anchor-based方法的一个局限性:超参数。然后按照Keypoint-based和Center-based的分类回顾了一些算法。

2.3 Label Assignment

回顾了一些标签分配的策略,指出这些策略并没有保持不同目标之间的平等性,而是倾向于为较大的目标分配更多的正样本。当然,这可以通过为每个目标分配相同数量的正样本,并允许不顾目标大小地所有尺度上进行学习来缓解。

3 ObjectBox

设训练图像 X ∈ R W × H × 3 X\in \mathbb{R}^{W\times H\times 3} XRW×H×3包含 n n n个真值为 { b i , c i } i = 1 n \{b_i,c_i\}_{i=1}^{n} {bi,ci}i=1n的目标,其中 b i b_i bi c i c_i ci分别表示第 i i i个目标的边界框和类别标签。每个边界框 b = { x , y , w , h } b=\{x,y,w,h\} b={x,y,w,h}都是由其中心 ( x , y ) (x,y) (x,y),宽 w w w和高 h h h表示的,我们的目的是要在图像中定位这些框并分配它们的类标签。

3.1 Label Assignment Based on Object Central Locations

对于输入图像,中心位置 ( x , y ) (x,y) (x,y)的边界框 b b b可以由其角点 { ( x 0 ( i ) , y 0 ( i ) ) , ( x 1 ( i ) , y 1 ( i ) ) } \{(x_0^{(i)},y_0^{(i)}),(x_1^{(i)},y_1^{(i)})\} {(x0(i),y0(i)),(x1(i),y1(i))}定义,其中 ( x 0 ( i ) , y 0 ( i ) ) (x_0^{(i)},y_0^{(i)}) (x0(i),y0(i))和中 ( x 1 ( i ) , y 1 ( i ) ) (x_1^{(i)},y_1^{(i)}) (x1(i),y1(i))分别表示尺度为 i i i时左上角和右下角的坐标。我们的方法在3个不同的尺度上预测边界框,以处理目标尺度的变化。因此,在与这些尺度相对应的3个特征图上可以检测到不同大小的物体。具体地,选择步长 s = { 8 , 16 , 32 } s=\{8,16,32\} s={8,16,32},并将每个边界框的中心映射到框中目标的某个位置。
目标检测论文阅读:ObjectBox算法笔记_第3张图片
对尺度 i i i的框中目标,我们把中心点 ( x , y ) (x,y) (x,y)映射到中心位置(例如图3a中的橙色单元格),并分别计算其左上角和右下角(红色圆圈)到边界框边界的距离。具体来说,如图3所示,我们计算右下角到左边界和上边界的距离( L L L T T T)和左上角到右边界和下边界的距离( R R R B B B),公式如下:
{ L ( i ) ∗ = ( ⌊ x s i ⌋ + 1 ) − ( x 1 ( i ) / s i ) T ( i ) ∗ = ( ⌊ y s i ⌋ + 1 ) − ( y 1 ( i ) / s i ) R ( i ) ∗ = ( x 2 ( i ) / s i ) − ⌊ x s i ⌋ B ( i ) ∗ = ( y 2 ( i ) / s i ) − ⌊ y s i ⌋ \left\{\begin{matrix} L^{(i)^*}&=&(\left \lfloor \frac{x}{s_i}\right \rfloor+1)-(x_1^{(i)}/s_i) \\T^{(i)^*}&=&(\left \lfloor \frac{y}{s_i}\right \rfloor+1)-(y_1^{(i)}/s_i) \\R^{(i)^*}&=&(x_2^{(i)}/s_i)-\left \lfloor \frac{x}{s_i}\right \rfloor \\B^{(i)^*}&=&(y_2^{(i)}/s_i)-\left \lfloor \frac{y}{s_i}\right \rfloor \end{matrix}\right. L(i)T(i)R(i)B(i)====(six+1)(x1(i)/si)(siy+1)(y1(i)/si)(x2(i)/si)six(y2(i)/si)siy其中, ( L ( i ) ∗ , T ( i ) ∗ , R ( i ) ∗ , B ( i ) ∗ ) (L^{(i)^*},T^{(i)^*},R^{(i)^*},B^{(i)^*}) (L(i),T(i),R(i),B(i))表示尺度为 i i i时的回归目标, ( ⌊ x s i ⌋ , ⌊ y s i ⌋ ) (\left \lfloor \frac{x}{s_i}\right \rfloor,\left \lfloor \frac{y}{s_i}\right \rfloor) (six,siy) ( ⌊ x s i ⌋ + 1 , ⌊ y s i ⌋ + 1 ) (\left \lfloor \frac{x}{s_i}\right \rfloor +1,\left \lfloor \frac{y}{s_i}\right \rfloor +1) (six+1,siy+1)分别表示中心位置左上角和右下角的坐标。值得注意的是, L ( i ) ∗ + R ( i ) ∗ = w ( i ) + 1 L^{(i)^*}+R^{(i)^*}=w^{(i)}+1 L(i)+R(i)=w(i)+1 T ( i ) ∗ + B ( i ) ∗ = h ( i ) + 1 T^{(i)^*}+B^{(i)^*}=h^{(i)}+1 T(i)+B(i)=h(i)+1,其中 w ( i ) = w / s i w^{(i)}=w/s_i w(i)=w/si h ( i ) = h / s i h^{(i)}=h/s_i h(i)=h/si分别表示尺度为 i i i时边界框 b b b的宽和高。这些距离的预测结果如下:
{ L ( i ) = ( 2 × σ ( p 0 ) ) 2 ∗ 2 i T ( i ) = ( 2 × σ ( p 1 ) ) 2 ∗ 2 i R ( i ) = ( 2 × σ ( p 2 ) ) 2 ∗ 2 i B ( i ) = ( 2 × σ ( p 3 ) ) 2 ∗ 2 i \left\{\begin{matrix} L^{(i)}=(2\times \sigma (p_0))^2*2^i \\T^{(i)}=(2\times \sigma (p_1))^2*2^i \\R^{(i)}=(2\times \sigma (p_2))^2*2^i \\B^{(i)}=(2\times \sigma (p_3))^2*2^i \end{matrix}\right. L(i)=(2×σ(p0))22iT(i)=(2×σ(p1))22iR(i)=(2×σ(p2))22iB(i)=(2×σ(p3))22i其中, σ \sigma σ表示logistic sigmoid函数, ( p 0 , p 1 , p 2 , p 3 ) (p_0,p_1,p_2,p_3) (p0,p1,p2,p3)表示网络预测的距离值,经过sigmoid函数后,它们的范围是0到1。乘以2可以使检测值覆盖稍大的范围。通过 ( ) 2 ()^2 ()2,输出可以以大约零梯度稳定地初始化。我们通过乘以一个恒定的尺度增益来区分不同的尺度,比如 2 i , i = 1 , 2 , 4 2^i,i=1,2,4 2i,i=1,2,4。网络的整体输出包括每个尺度每个位置下的一个预测,每个预测都包含上述距离值,以及每个边界框的目标性评分和类标签。
我们的公式保证所有要回归的距离在不同情况下始终为正值。如图3b所示,即使在较大的步长下,某个小目标完全包含在一个单元格中,这4个值也可以计算为正值。更重要的是,我们在不同的尺度上将所有的目标都视作正样本。这与现有的center-based方法(包括anchor-based和anchor-free方法)都不同。例如,在anchorbased方法中,将某个尺度内的每个中心位置都看作多个锚框的中心,如果目标框和这些锚框的IoU不在阈值范围内,则将其视为负样本。类似的,anchor-free方法根据不同的空间和尺度约束,舍弃了部分目标框作为负样本。例如,FCOS定义了一组最大距离值,限制了在每个特征层上可以检测的目标大小范围。而ObjectBox将所有尺度下的所有目标框都视为正样本,如图2所示。因此,无论目标大小如何,它都可以从所有尺度进行学习,从多个层上实现更可靠的回归。由于ObjectBox只考虑每个目标的中心位置,因此每个目标的正样本数量与目标大小无关。
由于边界框的几何中心可能位于中心单元格的边界附近,这里用它的相邻单元格来扩展中心。例如,当边界框的中心位于单元格的上半部分时,除了中心单元格之外,还使用上面相邻的位置。
我们的方法从目标的中心区域检测目标。如果两个框有重叠,那么它们的中心点也重合的可能性很小,因为两个框的中心位于同一位置的情况非常罕见。在COCO和VOC数据集中,我们没有发现重叠的目标中心也重合的情况。然而,我们增大的中心位置在处理这些框时是有用的。我们的实验表明除了中心位置外增加更多的点会损害检测性能。
我们的策略隐式地利用了锚框背后的直觉,这些锚框通常是通过对数据集中真值框的维度进行聚类来创建的。它们的维度是由不同尺寸中最常见的尺寸估计得到的。例如,Faster R-CNN和YOLO使用3个尺度和3个纵横比,每个位置产生9个锚框。然而,我们的方法使用每个尺度下边界框的中心位置来为每个目标生成多个预测结果。我们的方法也比其他anchor-free方法更高效,比如FCOS,它需要利用额外的FPN层(一共有5层)来处理重叠的边界框。

3.2 Box Regression

由于 ( L ( i ) , T ( i ) , R ( i ) , B ( i ) ) (L^{(i)},T^{(i)},R^{(i)},B^{(i)}) (L(i),T(i),R(i),B(i))是距离,因此它们可以独立处理,并且可以使用均方误差(MSE)对这些值分别进行回归。然而,这样的策略会忽略目标边界框的完整性。为了考虑预测边界框和真值边界框的覆盖区域,IoU损失被提出。IoU是一种广泛使用的形状相似性度量,由于其具有可微的特性,因此可以直接作为优化的目标函数。在目标检测中,IoU可以将每个边界框的宽、高和位置编码成一个归一化的度量,因此IoU损失( L I o U = 1 − I o U L_{IoU}=1-IoU LIoU=1IoU)可以将边界框视为一个单个实体,联合回归边界框的4个坐标点。
IoU损失也在根据不同情况不断改进。例如,GIoU(Generalized IoU)损失除了覆盖面积外,还包括目标的形状和方向。它可以找到能同时覆盖预测框和真值框的最小区域,并将其作为分母来代替IoU损失中使用的原始分母。DIoU损失(Distance IoU)额外强调了预测框和真值框中心之间的距离。CIoU 损失(Complete IoU)同时包括重叠区域、中心点之间的距离和纵横比。
就本文情形,我们感兴趣的是最小化两个框之间的距离,每个框由四个距离值给出。当从具有不同大小目标的不同尺度中学习时(也就是说我们不区分尺度等级),我们的边界框回归损失函数应该是尺度不变的。然而, l n l_n ln-based损失会随着边界框尺度的变大而增加。与原始的IoU损失及其变体不同,我们的损失不需要匹配边界框位置,因为定位任务已经嵌入到该过程中。此外,即使是最坏的情况,预测框和真值框也至少共享一个点(也就是说overlap ≥ 0 ≥ 0 0)。这是因为每个框的 { L ( i ) , T ( i ) , R ( i ) , B ( i ) } ≥ 0 \{L^{(i)},T^{(i)},R^{(i)},B^{(i)}\}≥ 0 {L(i),T(i),R(i),B(i)}0。本文提出了一种针对我们目标检测方法定制的IoU-based损失,它也可以用来改进其它的anchor-free检测器。我们提出的损失命名为SDIoU,代表尺度不变的distance-based的IoU,它直接使用网络输出,也就是目标中心到左上角和右下角的距离值。而其他IoU-based的损失则是作用于目标中心和目标的宽高。由于SDIoU是基于预测框和真值框对应偏移量之间的欧氏距离,因此可以保持框的完整性,并对重叠区域的全部4个方向进行评分。
类似于CIoU和尺度平衡损失,我们考虑非重叠区域、重叠或相交区域以及同时覆盖两个框的最小框。首先通过计算对应距离值之间的所有欧式距离的平方和来计算非重叠区域 S S S
S = ( L ∗ − L ) 2 + ( T ∗ − T ) 2 + ( R ∗ − R ) 2 + ( B ∗ − B ) 2 S=(L^*-L)^2+(T^*-T)^2+(R^*-R)^2+(B^*-B)^2 S=(LL)2+(TT)2+(RR)2+(BB)2其中, { L , T , R , B } \{L,T,R,B\} {L,T,R,B} { L ∗ , T ∗ , R ∗ , B ∗ } \{L^*,T^*,R^*,B^*\} {L,T,R,B}分别是预测距离和真值距离(为了更好的可读性这里省略了尺度 i i i)。直观地,计算不同距离值之间的平方欧氏距离可以有效地考虑4个方向上的预测距离和真实距离。
我们通过计算相交区域的对角线长度的平方来得到相交区域 I I I
I = ( w I ) 2 + ( h I ) 2 I=(w^I)^2+(h^I)^2 I=(wI)2+(hI)2其中, w I w^I wI h I h^I hI分别是交叉区域的宽和高,通过下式计算:
w I = m i n ( L ∗ , L ) + m i n ( R ∗ , R ) − 1 h I = m i n ( T ∗ , T ) + m i n ( B ∗ , B ) − 1 \\w^I=min(L^*,L)+min(R^*,R)-1 \\h^I=min(T^*,T)+min(B^*,B)-1 wI=min(L,L)+min(R,R)1hI=min(T,T)+min(B,B)1同时覆盖两个框的最小区域 C C C是通过其长度的平方计算得到:
C = ( w C ) 2 + ( h C ) 2 C=(w^C)^2+(h^C)^2 C=(wC)2+(hC)2其中, w C w^C wC h C h^C hC分别是 C C C的宽和高,通过下式计算:
w C = m a x ( L ∗ , L ) + m a x ( R ∗ , R ) − 1 h C = m a x ( T ∗ , T ) + m a x ( B ∗ , B ) − 1 \\w^C=max(L^*,L)+max(R^*,R)-1 \\h^C=max(T^*,T)+max(B^*,B)-1 wC=max(L,L)+max(R,R)1hC=max(T,T)+max(B,B)1通过最小化 C C C,预测框可以在4个方向上向真值框移动。最终,我们通过下式计算SDIoU:
S D I o U = ( I − ρ S ) C SDIoU=\frac{(I-\rho S)}{C} SDIoU=C(IρS)其中, ρ \rho ρ是有利于重叠区域的正平衡值(然而在所有实验中我们都设置 ρ = 1 \rho=1 ρ=1)。我们同时使用分子中的 I I I ( − S ) (-S) (S)来对相交区域进行打分并对非重叠区域进行惩罚。因此,预测的4个距离值会强制性以更快的速度匹配真值距离。SDIoU损失的最终定义为: L I o U = 1 − I o U L_IoU=1-IoU LIoU=1IoU。图4展示了SDIoU损失中考虑的区域。
目标检测论文阅读:ObjectBox算法笔记_第4张图片

4 Experiments

介绍了实验用的数据集和配置细节。特别的,在训练时使用了CutMix和Mosaic数据增强,最终的多任务损失定义可以具体参考原文,SDIoU损失是其中的回归损失。

4.1 MS-COCO Object Detection

目标检测论文阅读:ObjectBox算法笔记_第5张图片
和SOTA相比,效果提升明显,取得了很多best或者second best的精度,具体的实验结论可以参照原文。

4.2 Ablation Study

目标检测论文阅读:ObjectBox算法笔记_第6张图片
A行是使用不同位置进行box回归的结果对比,这部分比较有意思;B行是每个位置预测次数的影响;C行是给不同尺度施加约束的影响。具体的实验结论可以参照原文。
目标检测论文阅读:ObjectBox算法笔记_第7张图片
使用不同损失函数的对比,具体的实验结论可以参照原文。

5 Conclusion

ObjectBox是一个anchor-free目标检测器,它不需要任何超参数调优。它使用目标中心位置,并使用一个新的回归目标进行边界框回归。此外,通过放松标签分配约束,它在所有特征层上平等地对待所有对象。一个定制的IoU损失也最小化了新回归目标与预测目标之间的距离。实验结果表明,ObjectBox使用现有的主干结构,如CSPDarknet和ResNet-101,与其他anchor-based和anchor-free方法相比,具有良好的性能。

你可能感兴趣的:(目标检测,目标检测,论文阅读,深度学习,计算机视觉,神经网络)