标题:RepPoints: Point Set Representation for Object Detection
会议:ICCV2019
论文地址:https://ieeexplore.ieee.org/document/9009032/
官方代码:https://github.com/microsoft/RepPoints
作者单位:北京大学、清华大学、微软亚洲研究院
文章目录
- Abstract
- 1. Introduction
- 2. Related Work
- 3. The RepPoints Representation
- 3.1. Bounding Box Representation
- 3.2. RepPoints
- 4. RPDet: an Anchor Free Detector
- 5. Experiments
- 5.1. Experimental Settings
- 5.2. Ablation Study
- 5.3. RepPoints Visualization
- 5.4. State-of-the-art Comparison
- 6. Conclusion
Abstract
现代目标检测器在各个识别阶段严重依赖于矩形边界框来表示目标,如锚框(anchor)、建议(proposal)和最终预测(final prediction)。边界框使用方便,但是只提供了目标的粗糙定位,导致目标特征相应地粗糙提取。在本文中,我们提出RepPoints(representative points),一种新的更精细的目标表示,它是一组对定位和识别都有益的采样点。给定用于训练的真值位置和识别目标,RepPoints学习以一种限制目标的空间范围并指示语义显著的局部区域的方式来自动地排列自己。而且它们不需要使用anchor来采样边界框空间。我们展示了基于RepPoints的anchor-free目标检测器可以和SOTA的anchor-based检测方法一样有效,在COCO test-dev检测基准上,使用ResNet-101模型具有46.5 AP和67.4 AP 50 _{50} 50。
1. Introduction
目标检测旨在定位图像中的目标并提供其类别标签。作为计算机视觉中最基本的任务之一,它是许多视觉应用的关键组成部分,包括实例分割、人体姿态分析和视觉推理。目标检测问题的重要性以及深度神经网络的快速发展导致了近年来的大量进展。
在目标检测pipeline中,将包含图像矩形区域的边界框作为处理的基本元素。它们在目标检测器的各个阶段描述目标的位置,从锚框和建议到最终预测。基于这些边界框,提取特征并用于目标分类和位置细化等目的。边界框表示的流行可以部分归因于目标检测性能的常用度量,即目标的估计边界框和真值边界框之间的重叠度。另一个原因在于其形状规则,易于将矩形窗口细分为池化单元格矩阵,便于在深度网络中进行特征提取。
虽然边界框便于计算,但它们只提供不符合目标形状和姿态的目标的粗糙定位。因此,从边界框的规则单元格中提取的特征可能会受到背景内容或包含很少语义信息的不提供信息的前景区域的严重影响。这可能导致较低的特征质量,从而降低目标检测中的分类性能。
在本文中,我们提出了一种新的表示,称为RepPoints,它提供了更细粒度的定位并便于分类。如图1所示,RepPoints是一组点,学习以一种限制目标的空间范围并指示语义显著的局部区域的方式来自动地在目标上给自己定位。RepPoints的训练由目标定位和识别目标共同驱动,使得RepPoints被真值边界框紧紧地限制,引导检测器正确地进行目标分类。这种自适应和可微的表示可以在现代目标检测器的不同阶段中一致使用,不需要使用anchor在边界框空间上采样。
RepPoints不同于现有的用于目标检测的非矩形表示,它们都是以自底向上的方式构建的。这些自底向上的表示识别独特的点(例如边界框角点或目标末端),并依靠手工聚类将其组合成目标模型。而且它们的表示要么仍然像边界框那样轴对齐(axis-aligned),要么需要真值目标掩码作为额外的监督。相反,RepPoints以自顶向下的方式从输入图像/目标特征中学习,允许端到端的训练,并且在没有额外监督的情况下产生细粒度的定位。
用RepPoints替换两阶段目标检测器中所有传统的边界框表示,包括锚框、建议和最终定位目标,我们开发了一个干净有效的anchor-free目标检测器,在COCO基准上不使用多尺度训练和测试就实现了42.8 AP和65.0 AP
50
_{50}
50,使用ResNet-101模型和多尺度训练和测试实现了46.5 AP和67.4 AP
50
_{50}
50。
2. Related Work
目标检测问题的边界框。 在目标检测领域中,边界框一直是目标表示的主导形式。其流行的一个原因是边界框标注起来方便,几乎没有歧义性,同时为后续的识别过程提供了足够准确的定位。这可以解释为什么主要的基准都使用基于边界框的标注和评估。反过来,这些基准激发了目标检测方法使用边界框作为其基本表示,以便与评估协议保持一致。
边界框占据主导地位的另一个原因是几乎所有的图像特征提取器,无论是在之前还是在深度学习时代,都是基于具有规则网格形式的输入块。因此可以方便地使用边界框表示来促进特征提取。
虽然提出的RepPoints具有不规则的形式,但我们表明它可以经得起检验来方便地进行特征提取。我们的方法使用RepPoints结合可变形卷积,它自然地与RepPoints对齐,因为它在几个采样点上聚合来自输入特征的信息。此外,从RepPoints可以很容易地生成一个矩形伪框,使这种新的表示可以与目标检测基准一起使用。
现代目标检测器中的边界框。 迄今为止,性能最好的目标检测器一般遵循多阶段识别范式,而边界框表示几乎出现在所有阶段:①作为预定义的或学习到的锚框,充当边界框空间上的假设;②作为联系连续识别阶段的精细化目标建议;③作为最终的定位目标。
利用RepPoints可以替换目标检测器模型所有阶段的边界框表示,从而得到更有效的新的目标检测器。具体来说,锚框由中心点代替,这是RepPoints的一种特殊配置。用RepPoints建议和最终目标代替边界框建议和最终定位目标。值得注意的是,由于使用中心点作为初始的目标表示,因此得到的目标检测器是anchor-free的。所以它比基于边界框的方法在使用上更加方便。
目标检测的其它表示。 为了解决矩形边界框的局限性,已经有一些尝试来开发更灵活的目标表示。其中包括用于行人检测的椭圆表示和以更好地处理旋转变化的旋转边界框。
另一些工作旨在以自底向上的方式表示目标。早期的自底向上表示方法包括DPM和Poselet。最近,已经利用深度网络探索了自底向上的目标检测方法。CornerNet首先预测左上角和右下角,然后使用专门的组合方法得到目标的边界框。然而,两个相对的角点本质上仍然是一个矩形边界框。ExtremeNet被提出用于定位目标在x方向和y方向上的极值点,并由真值掩码标注进行监督。一般而言,自底向上的检测器受益于更小的假设空间(例如,CornerNet和ExtremeNet都是检测2维点,而不是直接检测4维边界框)和可能更细粒度的定位。然而,它们也存在一些局限性,例如依赖手工聚类或后处理步骤来从检测到的点组合成整个目标。
与这些自底向上的工作类似,RepPoints也是一种灵活的目标表示。然而,该表示是以自顶向下的方式构建的,不需要手工的聚类步骤。与ExtremeNet需要额外的掩码监督不同,RepPoints可以在没有监督的情况下自动学习极值点和关键语义点。
目标识别中的变形建模。 视觉识别最基本的挑战之一是识别具有各种几何变化的目标。为了有效地建模这种变化,一种可能的解决方案是利用低层组件的自底向上组合。沿该方向的代表性检测器包括DPM和Poselet。另一种方法是以自顶向下的方式隐式地建模这种变换,在输入特征上应用一个轻量级的神经网络块,可以是全局的也可以是局部的。
RepPoints受到了这些工作的启发,特别是自顶向下的变形建模方法。主要区别在于,我们旨在开发一种灵活的目标表示,除了语义特征提取外,实现精确的几何定位。相比之下,可变形卷积和可变形RoI池化方法都是为了改进特征提取而设计的。在第4节中测验了可变形RoI池化无法学习精确的几何定位。在这个意义上,我们扩展了以往几何建模方法中自适应采样点的用法,使其包含更精细的目标定位。
3. The RepPoints Representation
我们首先回顾边界框表示及其在多阶段目标检测器中的应用。接着描述RepPoints及其与边界框的区别。
3.1. Bounding Box Representation
边界框是一个编码目标空间位置的4维表示,
B
=
(
x
,
y
,
w
,
h
)
\mathcal{B}=(x,y,w,h)
B=(x,y,w,h),其中
x
x
x和
y
y
y表示中心点,
w
w
w和
h
h
h表示宽度和高度。由于其简单和使用方便,现代目标检测器在检测pipeline的各个阶段都严重依赖边界框来表示目标。
多阶段目标检测器的回顾。 性能最好的目标检测器通常遵循多阶段识别范式,目标定位是逐阶段细化的。目标表示经过该pipeline步骤的作用如下:
b
b
o
x
a
n
c
h
o
r
s
→
b
b
o
x
r
e
g
.
b
b
o
x
p
r
o
p
o
s
a
l
s
(
S
1
)
→
b
b
o
x
r
e
g
.
b
b
o
x
p
r
o
p
o
s
a
l
s
(
S
2
)
.
.
.
→
b
b
o
x
r
e
g
.
b
b
o
x
o
b
j
e
c
t
t
a
r
g
e
t
s
(1)
\begin{align} \mathrm{bbox~anchors}&\xrightarrow{\mathrm{bbox~reg.}}\mathrm{bbox~proposals~(S1)}\\ &\xrightarrow{\mathrm{bbox~reg.}}\mathrm{bbox~proposals~(S2)}\\ &...\\ &\xrightarrow{\mathrm{bbox~reg.}}\mathrm{bbox~object~targets} \end{align}\tag{1}
bbox anchorsbbox reg.bbox proposals (S1)bbox reg.bbox proposals (S2)...bbox reg.bbox object targets(1)开始时,假设多个锚框覆盖了一定范围的边界框尺度和纵横比。一般来说,高覆盖率是通过大型4维假设空间上的稠密锚框获得的。例如,RetinaNet中每个位置使用45个锚框。
对于一个锚框,采用其中心点处的图像特征作为目标特征,然后利用该特征,通过边界框回归过程来产生关于锚框是否为目标的置信度分数和精细化的边界框。细化后的边界框记为“bbox proposals (S1)”。
在第二个阶段,通常采用RoI-pooling或RoI-Align,从细化后的边界框建议中提取细化的目标特征。对于两阶段框架,细化后的特征将通过边界框回归产生最终的边界框目标。对于多阶段方法,细化后的特征被用来生成中间的细化的“bbox proposals (S2)”,也是通过边界框回归。该步骤可以迭代多次直到生成最终的边界框目标。
在该框架中,边界框回归在逐步细化目标定位和目标特征方面起着核心作用。
边界框回归。 通常,预测一个4维的回归向量
(
Δ
x
p
,
Δ
y
p
,
Δ
w
p
,
Δ
h
p
)
(\Delta x_p,\Delta y_p,\Delta w_p,\Delta h_p)
(Δxp,Δyp,Δwp,Δhp)来将当前的边界框建议
B
p
=
(
x
p
,
y
p
,
w
p
,
h
p
)
\mathcal{B}_p=(x_p,y_p,w_p,h_p)
Bp=(xp,yp,wp,hp)映射到一个细化的边界框
B
r
\mathcal{B}_r
Br,其中:
B
r
=
(
x
p
+
w
p
Δ
x
p
,
y
p
+
h
p
Δ
y
p
,
w
p
e
Δ
w
p
,
h
p
e
Δ
h
p
)
(2)
\mathcal{B}_r=(x_p+w_p\Delta x_p,y_p+h_p\Delta y_p,w_pe^{\Delta w_p},h_pe^{\Delta h_p})\tag{2}
Br=(xp+wpΔxp,yp+hpΔyp,wpeΔwp,hpeΔhp)(2)给定目标的真值边界框
B
t
=
(
x
t
,
y
t
,
w
t
,
h
t
)
\mathcal{B}_t=(x_t,y_t,w_t,h_t)
Bt=(xt,yt,wt,ht),边界框回归的目标是使
B
r
\mathcal{B}_r
Br和
B
t
\mathcal{B}_t
Bt尽可能地接近。具体来说,在目标检测器的训练过程中,我们使用预测的4维回归向量和期望的4维回归向量之间的距离
F
^
(
B
p
,
B
t
)
\hat{\mathcal{F}}(\mathcal{B}_p,\mathcal{B}_t)
F^(Bp,Bt)作为学习的目标,使用smooth
l
1
l_1
l1损失:
F
^
(
B
p
,
B
t
)
=
(
x
t
−
x
p
w
p
,
y
t
−
y
p
h
p
,
l
o
g
w
t
w
p
,
l
o
g
h
t
h
p
)
(3)
\hat{\mathcal{F}}(\mathcal{B}_p,\mathcal{B}_t)=(\frac{x_t-x_p}{w_p},\frac{y_t-y_p}{h_p},\mathrm{log}\frac{w_t}{w_p},\mathrm{log}\frac{h_t}{h_p})\tag{3}
F^(Bp,Bt)=(wpxt−xp,hpyt−yp,logwpwt,loghpht)(3)这种边界框回归过程在现有的目标检测方法中被广泛使用。当所需的细化程度较小时,它在实际中表现较好,但当初始表示与目标距离较大时,它往往表现较差。另一个问题是
Δ
x
p
\Delta x_p
Δxp、
Δ
y
p
\Delta y_p
Δyp和
Δ
w
p
\Delta w_p
Δwp、
Δ
h
p
\Delta h_p
Δhp之间的尺度差异,这需要调整它们的损失权重以获得最佳性能。
3.2. RepPoints
如前所述,4维边界框是目标位置的粗糙表示。边界框表示只考虑目标的矩形空间范围,没有考虑形状和姿态以及语义重要的局部区域的位置,它们可以用于更精细的定位和更好的目标特征提取。
为了克服上述限制,RepPoints转为建模一组自适应采样点:
R
=
{
(
x
k
,
y
k
)
}
k
=
1
n
(4)
\mathcal{R}=\{(x_k,y_k)\}_{k=1}^n\tag{4}
R={(xk,yk)}k=1n(4)其中,
n
n
n是在该表示中使用的采样点总数。在我们的工作中,
n
n
n默认设置为9。
RepPoints细化。 逐步细化边界框定位和特征提取对于多阶段目标检测方法的成功至关重要。对于RepPoints,细化可以简单地表示为:
R
r
=
{
(
x
k
+
Δ
x
k
,
y
k
+
Δ
y
k
)
}
k
=
1
n
(5)
\mathcal{R}_r=\{(x_k+\Delta x_k,y_k+\Delta y_k)\}_{k=1}^n\tag{5}
Rr={(xk+Δxk,yk+Δyk)}k=1n(5)其中,
{
(
Δ
x
k
,
Δ
y
k
)
}
k
=
1
n
\{(\Delta x_k,\Delta y_k)\}_{k=1}^n
{(Δxk,Δyk)}k=1n是新采样点相对于旧采样点的预测偏移量。我们注意到,这种细化不会面临边界框回归参数之间的尺度差异问题,因为在RepPoints的细化过程中,偏移量处于同一尺度。
将RepPoints转换为边界框。 为了在RepPoints的训练中利用边界框标注,同时为了评估RepPoint-based目标检测器,需要一种将RepPoints转换为边界框的方法。我们使用一个预定义的转换函数
T
:
R
P
→
B
P
\mathcal{T}:\mathcal{R}_P\to\mathcal{B}_P
T:RP→BP,其中
R
P
\mathcal{R}_P
RP表示目标
P
P
P的RepPoints,
T
(
R
P
)
\mathcal{T}(\mathcal{R}_P)
T(RP)表示一个伪框。
为此考虑了三个转换函数:
- T = T 1 \mathcal{T}=\mathcal{T}_1 T=T1:最小最大函数(Min-max function)。 在RepPoints上执行两个坐标轴上的最小-最大操作以确定 B P \mathcal{B}_P BP,相当于采样点上的边界框。
- T = T 2 \mathcal{T}=\mathcal{T}_2 T=T2:部分最小最大函数(Partial min-max function)。 在采样点的子集上执行两个坐标轴上的最小-最大操作以获得矩形框 B P \mathcal{B}_P BP。
- T = T 3 \mathcal{T}=\mathcal{T}_3 T=T3:基于矩的函数(Moment-based function)。 利用RepPoints的均值和标准差来计算矩形框 B P \mathcal{B}_P BP的中心点和尺度,其中尺度会乘以全局共享的可学习乘子 λ x \lambda_x λx和 λ y \lambda_y λy。这些函数都是可微的,当插入到目标检测系统中时,可以实现端到端的学习。在我们的实验中,我们发现它们工作同等地好。
学习RepPoints。 RepPoints的学习由目标定位损失和目标识别损失共同驱动。为了计算目标定位损失,我们首先使用前面讨论的转换函数 T \mathcal{T} T将RepPoints转换为伪框。然后,计算转换后的伪框与真值边界框之间的差异。在我们的系统中,我们使用左上角点和右下角点之间的smooth l 1 l_1 l1距离来表示定位损失。这个smooth l 1 l_1 l1距离不需要像计算边界框回归向量(即 Δ x p \Delta x_p Δxp、 Δ y p \Delta y_p Δyp和 Δ w p \Delta w_p Δwp、 Δ h p \Delta h_p Δhp)之间的距离那样调整不同的损失权重。图4表明,当训练由目标定位和目标识别损失的组合来驱动时,目标的极值点和语义关键点被自动学习到( T 1 \mathcal{T}_1 T1用于将RepPoints转换为伪框)。
4. RPDet: an Anchor Free Detector
我们设计了一个anchor-free目标检测器,使用RepPoints代替边界框作为其基本表示。在多阶段pipeline中,目标表示的演化如下:
o
b
j
e
c
t
c
e
n
t
e
r
s
→
R
P
r
e
f
i
n
e
R
e
p
P
o
i
n
t
s
p
r
o
p
o
s
a
l
s
(
S
1
)
→
R
P
r
e
f
i
n
e
R
e
p
P
o
i
n
t
s
p
r
o
p
o
s
a
l
s
(
S
2
)
.
.
.
→
R
P
r
e
f
i
n
e
R
e
p
P
o
i
n
t
s
o
b
j
e
c
t
t
a
r
g
e
t
s
(6)
\begin{align} \mathrm{object~centers}&\xrightarrow{\mathrm{RP~refine}}\mathrm{RepPoints~proposals~(S1)}\\ &\xrightarrow{\mathrm{RP~refine}}\mathrm{RepPoints~proposals~(S2)}\\ &...\\ &\xrightarrow{\mathrm{RP~refine}}\mathrm{RepPoints~object~targets} \end{align}\tag{6}
object centersRP refineRepPoints proposals (S1)RP refineRepPoints proposals (S2)...RP refineRepPoints object targets(6)我们的RepPoints检测器(RPDet)是利用基于可变形卷积的两个识别阶段来构建的,如图2所示。可变形卷积与RepPoints配合很好,因为其卷积是在不规则分布的采样点集合上计算的,反过来它的识别反馈可以指导这些点的定位训练。在这一节,我们介绍RPDet的设计,并讨论它与现有目标检测器的联系和区别。
基于中心点的初始目标表示。 在目标检测的初始阶段,预定义的锚框主导了目标的表示,我们遵循YOLO和DenseBox的方法,使用中心点作为目标的初始表示,从而得到一个anchor-free目标检测器。
中心点表示的一个重要优点在于它比anchor-based表示具有更紧凑的假设空间。anchor-based方法通常依靠大量多比例和多尺度的锚框来保证大型4维边界框假设空间的稠密覆盖,而基于中心点的方法可以更容易地覆盖其2维空间。事实上,所有目标都会有位于图像内部的中心点。
然而,基于中心点的方法也面临着识别目标歧义的问题,这是两个不同的目标位于特征图中相同的位置导致的,限制了其在现代目标检测器中的流行。在以前的方法中,主要是通过在每个位置产生多个目标来解决的,这面临着另一个归属歧义(vesting ambiguity)问题(如果多个真值目标的中心点位于同一特征图位置,则只分配一个随机选择的真值目标作为该位置的目标。)。在RPDet中,我们表明使用FPN结构可以大大缓解这个问题,原因如下:首先,不同尺度的目标将被分配到不同的图像特征层,这解决了不同尺度相同中心点位置的目标;其次,FPN对于小目标有高分辨率的特征图,这也减少了两个目标的中心位于同一特征位置的机会。事实上,我们观察到在COCO数据集中只有1.1%的目标在使用FPN时会存在中心点位于同一位置的问题。
值得注意的是,中心点表示可以看作是一种特殊的RepPoints配置,其仅使用单个固定的采样点,从而在整个检测框架中保持一致的表示。
Reppoint的使用。 如图2所示,RepPoints作为整个检测系统的基本目标表示。从中心点开始,通过回归中心点上的偏移量得到第一组RepPoints。这些RepPoints的学习由两个目标来驱动:①产生的伪框和真值边界框之间左上角和右下角点的距离损失;②后续阶段的目标识别损失。如图4所示,极值点和关键点被自动地学习。第二组RepPoints表示最终的目标定位,由第一组RepPoints通过公式5细化得到。第二组RepPoints在点距离损失单独的驱动下,旨在学习更精细的目标定位。
与可变形RoI池化的关系。 如第2节所述,与所提出的RepPoints相比,可变形RoI池化在目标检测中发挥了不同的作用。总的说来,RepPoints是目标的几何表示,反映了更准确的语义定位,而可变形RoI池化则是为了学习目标更强的外观特征。事实上,可变形RoI池化无法学习代表目标准确定位的采样点。
我们还注意到,可变形RoI池化可以与RepPoints互补,如表6所示。
主干和头部结构。 我们的FPN主干遵循RetinaNet,从stage3 (下采样率为8)到stage7(下采样率为128)产生5个特征金字塔层。
头部结构如图3所示。这里有两个非共享的子网络,分别旨在定位(RepPoints generation)和分类。定位子网络首先应用3个256维的3×3卷积层,然后应用2个连续的小网络来计算两组RepPoints的偏移量。分类子网络也应用了3个256维的3×3卷积层,然后是1个256维的3×3可变形卷积层,其输入偏移域与定位子网络中的第一个可变形卷积层共享。在两个子网络的前3个256维的3×3卷积层之后分别应用组标准化(group normalization)层。
值得注意的是,虽然我们的方法使用了两阶段的定位,但它比单阶段的RetinaNet检测器更高效(使用ResNet-50时210.9 vs. 234.5 GFLOPS)。额外的定位阶段由于层共享所以引入的开销很小。anchor-free设计减少了最终分类层的负担,从而导致计算量略有减少。
定位/类别目标分配。 这里有两个定位阶段:从目标中心点的假设(特征图bins)细化生成第一个RepPoints集合;从第一个RepPoints集合细化生成第二个RepPoints集合。对于这两个阶段,只有正目标假设在训练中被分配了定位(RepPoints)目标。对于第一个定位阶段,如果①该特征图bin的金字塔层等于真值目标的对数尺度
s
(
B
)
=
⌊
l
o
g
2
(
w
B
h
B
/
4
)
⌋
s(B)=\left\lfloor log_2(\sqrt{w_Bh_B}/4) \right\rfloor
s(B)=⌊log2(wBhB/4)⌋;②该真值目标的中心点的投影位于该特征图bin中,则该特征图bin为正。对于第二个定位阶段,如果第一组RepPoints产生的伪框与真值目标有足够的重叠即它们的交并比大于0.5,则它是正的。
分类只在第一组RepPoints上进行。分类分配的准则遵循RetinaNet,IoU(产生的伪框和真值边界框之间)大于0.5为正,小于0.4为背景,否则忽略。使用Focal Loss进行分类训练。
5. Experiments
5.1. Experimental Settings
介绍了实验中的一些细节设置。
5.2. Ablation Study
RepPoints相比于边界框表示的有效性,具体的实验结论可以参照原文。
目标定位监督和目标识别损失的必要性,具体的实验结论可以参照原文。
几种基于中心点的方法、anchor-based方法和anchor-free方法的对比,具体的实验结论可以参照原文。
不同的转换函数效果都很好,具体的实验结论可以参照原文。
RepPoints和可变形RoI池化是互补的,具体的实验结论可以参照原文。
5.3. RepPoints Visualization
RepPoints的可视化,具体的实验结论可以参照原文。
5.4. State-of-the-art Comparison
和SOTA的对比,具体的实验结论可以参照原文。
6. Conclusion
在本文中,我们提出了RepPoints,一种用于目标检测的表示,它建模细粒度的定位信息并识别对目标分类有意义的局部区域。基于RepPoints,我们开发了一个称为RPDet的目标检测器,在不需要锚框的情况下实现了有竞争力的目标检测性能。学习更丰富、更自然的目标表示,如RepPoints,是目标检测的一个很有前途的方向。