写在前面: 由于硕士课程“专业英语”需要提交英文论文翻译的论文,所以选择了最近在做的CenterNet目标检测。此文非华为出品的CenterNet: Keypoint Triplets for Object Detection
论文题目:Objects as Points
论文地址:PDF
论文代码:Code
环境配置:Ubuntu16.04 | Win10
目标作点
摘要
目标检测往往在图像中以轴对称的边框框出目标。多数成功的目标检测器都先列举出大量潜在目标位置,然后对该位置进行分类。这种做法是浪费时间、低效率并且需要额外的后处理。在本文中,我们采用一种不同的方法。**我们构建模型时把目标作为一个点——即边界框的中心点。**我们的检测器采用关键点估计去寻找中心点和并回归到其他目标属性,如尺寸、3D位置、方向甚至姿态。我们基于中心点的方法,称为CenterNet,相比较于基于边界框的检测器,我们的模型是端到端可微的,更简单,更快,更精确。CenterNet在MS COCO数据集达到速度和精度最好的权衡,其性能: 142 FPS下AP值为28.1%, 52 FPS下AP值为37.4%并且1.4FPS多尺度测试下达到AP值45.1%。我们使用相同方法估计KITTI数据集的3D边界框和在COCO关键点数据集的人体姿势。
1. 介绍
目标检测驱使了很多视觉任务,比如实例分割、姿势估计、跟踪和动作识别。目标检测在下游应用包括监控、自动驾驶和视觉问答。目前目标检测器通过一个轴对称边界框紧紧包围目标的形式显示每一个目标。然后,他们将目标检测简化为大量潜在对象边界框的图像分类。对于边界框,分类器决定图像内容是否是特定目标或者背景。一阶段检测器在图像上滑动一系列复杂排列的可能的边界框(称为锚点),并在不指定框内容的情况下直接对其进行分类。两阶段检测器重新计算每个谴责框的图像特征,然后分类这些特征。后处理,即非最大值抑制(NMS),然后通过计算边界框IoU删除同一实例的重复检测。这种后处理是很难微分和训练的,因此大多数现有的检测器不是端到端可训练的。尽管如此,在过去五年,这种思想取得了较好的成功。然而,基于滑窗的目标检测器有一些浪费时间,因为他们需要列举所有可能的目标位置和大小。
在本文,我们提供一种更简单和更高效的选择。我们采用在边界框的中心点代表目标(如图2所示)。然后其他属性,例如目标尺寸、大小、3D扩展、方向和姿势,皆在中心位置直接从图像特征回归。目标检测是一个标准的关键点估计问题。我们简单地把输入图像喂到一个生成热点图的卷积网络。在图像特征的每个峰值预测目标边界框的高和宽。该模型使用标准监督学习训练。图像通过单个网络的前向传播检测目标并且没有非极大抑制的后处理。
我们的方法是通用的,并且经过小改动可以扩展到其他任务。我们提供的实验通过预测每个中心点的附加输出进行三维目标检测和多人人体姿势估计。对于三维边界框估计,我们回归目标的深度信息、三维边界框大小和目标方向。对于人体姿势估计,我们考虑了二维关节位置与中心的偏移,并且直接回归这些中心点位置。
CenterNet的简便性使得它能够在需要非常高的速度情况下运行(如图一所示)。我们使用Resnet-18和上采样卷积层的网络在COCO数据集下能达到142FPS和28.1%的边界框AP值。我们使用一个关键点检测网络DLA-34,性能在52FPS下达到37.4% COCO AP。配备性能最先进的关键点检测网络Hourglass-104和多尺度测试,我们的网络能在1.4FPS下达到45.1% COCO AP。在三维边界框检测和人体姿势估计,我们对比最先进的方法以更快的速度执行。
2. 相关工作
通过区域分类目标检测。 最早成功的深度目标检测器之一,RCNN,从大量候选区域列举目标位置然后裁剪该区域和使用深度网络对其分类。Fast-RCNN通过裁剪图像特征代替前者方法以节省计算量。然而,两种方法皆依赖缓慢和low-level区域提取方法。
目标检测与隐藏锚框。 Faster RCNN在检测网络内生成区域方案。它在低分辨率图像网格以固定形状的边界框(锚)采样,并将每个边界框分类为“前景”或“背景”。一个锚框在与目标标签重叠比例大于0.7时被标记为前景,在比例小于0.3时标记为背景并忽略其余情况。再对每一个生成的区域方案再次分类。将提议分类器更改为多类分类构成了一阶段检测器的基础。 对一级检测器的一些改进包括锚框形状先验,不同的特征分辨率和不同样本之间的损失重新加权。
我们的方法更接近与基于锚框的一阶段方法。一个中心点可以被看作一个不可知形状的锚点(如图示所示)。然而,他们有一些重要的区别。首先,CenterNet仅仅基于位置分配“锚点”而不是边框重叠比例。我们对前景和背景的分类没有人工阈值。第二,我们仅对有目标的锚点为正例,因此不需要非极大抑制。我们只是再关键点热点图种提取局部峰值。第三,CenterNet对比传统目标检测(输出步幅为6)使用大的输出分辨率(输出步幅为4)。这消除了对多个锚的需求。
通过关键点估计目标检测 我们不是第一个使用关键点估计进行目标检测。CornerNet检测2个作为关键点的边界框拐角;而ExtremeNet将检测所有对象的顶部,左侧,底部,最右侧和中心点。 这两种方法都基于与CenterNet相同的强大关键点估计网络。 但是,它们在关键点检测之后需要组合分组阶段,这会大大降低每种算法的速度。 另一方面,我们的CenterNet只需为每个对象提取一个中心点,而无需进行分组或后处理。
单目3D目标检测。 三维边界框估计驱动自动驾驶发展。Deep3Dbox使用慢速RCNN样式的框架,首先检测2D对象,然后将每个对象馈入3D估计网络。 3D RCNN 在Faster-RCNN上增加了一个附加头部,然后是3D投影。 Deep Manta使用在许多任务上受过训练的从粗到细的Faster-RCNN 。 我们的方法类似于Deep3Dbox或3DRCNN的单阶段版本。 因此,CenterNet比竞争方法简单得多,而且速度更快。
3. 前言
令
I
∈
R
W
×
H
×
3
I \in R^{W \times H \times 3}
I∈RW×H×3代表输入图像宽
W
W
W高为
H
H
H。最终目标是生成关键点热图
Y
^
∈
[
0
,
1
]
W
R
×
H
R
×
C
\hat{Y} \in [0,1]^{\frac{W}{R} \times \frac{H}{R} \times C}
Y^∈[0,1]RW×RH×C,其中
R
R
R是输出热图的缩小倍数;
C
C
C是关键点类型的数量。关键点类型包括在人体姿势估计中的
(
C
=
)
17
(C=)17
(C=)17个人体关节点,或者在目标检测中的
(
C
=
)
80
(C=)80
(C=)80个目标类。在本文中,我们默认使用热图输出缩小倍数
R
=
4
R=4
R=4。输出跨度将输出预测下采样一个因子R。
Y
^
x
,
y
,
c
=
1
\hat{Y}_{x,y,c}=1
Y^x,y,c=1对应一个检测的关键点,而
Y
^
x
,
y
,
c
=
0
\hat{Y}_{x,y,c}=0
Y^x,y,c=0对应背景。我们使用若干全卷积编码-解码网络去预测图像
I
I
I的
Y
^
\hat{Y}
Y^,包括:A stacked hourglass network, upconvolutional residual networks (ResNet) , and deep layer aggregation (DLA).
我们照着Law和Deng训练关键点预测网络。对于每个
c
c
c类的关键点标签
p
∈
R
2
p \in R^2
p∈R2,我们计算低分辨率等式
p
^
=
p
R
\hat{p} = \frac{p}{R}
p^=Rp。如何我们使用一个高斯核函数
Y
x
y
c
=
e
x
p
(
−
(
x
−
p
^
x
)
2
+
(
y
−
p
^
y
)
2
2
σ
p
2
)
Y_{xyc} = exp(-\frac{(x-\hat{p}_x)^2 + (y-\hat{p}_y)^2}{2 \sigma ^2 _p})
Yxyc=exp(−2σp2(x−p^x)2+(y−p^y)2)去做热点图标签
Y
∈
[
0
,
1
]
W
R
×
H
R
×
C
Y \in [0,1]^{\frac{W}{R} \times \frac{H}{R} \times C}
Y∈[0,1]RW×RH×C,其中
σ
p
\sigma_p
σp是目标大小适应标准差。**如果热图上同个类别的2个高斯分布重叠,我们取元素的最大值。**训练目标是减小带惩罚项的像素逻辑回归focal loss:
L
k
=
−
1
N
∑
x
y
c
{
(
1
−
Y
^
x
y
c
)
α
l
o
g
(
Y
^
x
y
c
)
i
f
Y
x
y
c
=
1
(
1
−
Y
x
y
c
)
β
l
o
g
(
Y
^
x
y
c
)
α
l
o
g
(
1
−
Y
^
x
y
c
)
α
o
t
h
e
r
w
i
s
e
)
L_k=- \frac{1}{N} \sum_{xyc}\{ \begin{aligned} (1-\hat{Y}_{xyc})^\alpha log( \hat{Y}_{xyc})&&if Y_{xyc} = 1 \\ (1-Y_{xyc})^\beta log( \hat{Y}_{xyc})^\alpha log(1- \hat{Y}_{xyc})^\alpha & & otherwise) \end{aligned}
Lk=−N1xyc∑{(1−Y^xyc)αlog(Y^xyc)(1−Yxyc)βlog(Y^xyc)αlog(1−Y^xyc)αifYxyc=1otherwise)其中
α
\alpha
α和
β
\beta
β是focal loss的超参数,
N
N
N是图像关键点的数量。
N
N
N的归一化作为所有focal loss的归一化。我们根据Law和Deng在实验中设置
α
=
2
,
β
=
4
\alpha = 2, \beta = 4
α=2,β=4。为了修正输出跨度造成的离散化误差,我们增加了预测每个中心点的局部偏移
O
^
∈
R
W
R
×
H
R
×
2
\hat{O} \in R^{\frac{W}{R} \times \frac{H}{R} \times 2}
O^∈RRW×RH×2。所有类
c
c
c共享相同偏移预测。偏移采样L1损失训练:
L
o
f
f
=
1
N
∑
p
∣
O
^
p
^
−
(
p
R
−
p
^
)
∣
L_{off}=\frac{1}{N} \sum_{p}|\hat{O}_{\hat{p}} - (\frac{p}{R}-\hat{p})|
Loff=N1∑p∣O^p^−(Rp−p^)∣
监督仅在关键点
p
^
\hat{p}
p^处进行,其他位置忽略。
4. 目标作点
令
(
x
1
(
k
)
,
x
2
(
k
)
,
x
3
(
k
)
,
x
4
(
k
)
)
(x^{(k)}_1, x^{(k)}_2, x^{(k)}_3, x^{(k)}_4)
(x1(k),x2(k),x3(k),x4(k))为类别为
c
k
c_k
ck的目标
k
k
k边界框。其中心点为
p
k
=
(
x
1
(
k
)
+
x
2
(
k
)
2
,
x
3
(
k
)
+
x
4
(
k
)
2
)
p_k = ( \frac{x^{(k)}_1 + x^{(k)}_2}{2}, \frac{x^{(k)}_3 + x^{(k)}_4}{2})
pk=(2x1(k)+x2(k),2x3(k)+x4(k))。我们使用关键点估计
Y
^
\hat{Y}
Y^去预测所有中心点。另外,我们回归每个目标
k
k
k的尺寸
s
k
=
(
x
1
(
k
)
−
x
2
(
k
)
,
y
1
(
k
)
−
y
2
(
k
)
)
s_k = (x^{(k)}_1- x^{(k)}_2, y^{(k)}_1- y^{(k)}_2)
sk=(x1(k)−x2(k),y1(k)−y2(k))。为了减少计算,我们对所有目标类使用单尺寸预测
S
^
∈
R
W
R
×
H
R
×
2
\hat{S} \in R^{\frac{W}{R} \times \frac{H}{R} \times 2}
S^∈RRW×RH×2。同样,我们使用L1损失:
L
s
i
z
e
=
1
N
∑
k
=
1
N
∣
S
p
k
^
−
s
k
∣
L_{size} = \frac{1}{N} \sum_{k=1}^N |\hat{S_{pk}}-s_k|
Lsize=N1k=1∑N∣Spk^−sk∣我们没有对尺寸进行归一化,而是直接使用原始像素坐标。相反,我们用一个常数
λ
\lambda
λ来衡量损失。整体训练目标为:
L
d
e
t
=
L
k
+
λ
s
i
z
e
L
s
i
z
e
+
λ
o
f
f
L
o
f
f
L_{det} = L_k + \lambda_{size}L_{size} + \lambda_{off}L_{off}
Ldet=Lk+λsizeLsize+λoffLoff除非另作说明,否则所有实验中,我们设置
λ
s
i
z
e
=
0.1
,
λ
o
f
f
=
1
\lambda_{size}=0.1,\lambda_{off}=1
λsize=0.1,λoff=1。我们使用单个网络取预测关键点
Y
^
\hat{Y}
Y^,偏移量
O
^
\hat{O}
O^和尺寸
S
^
\hat{S}
S^。网络在每个位置总共有
(
C
+
4
)
(C+4)
(C+4)个预测输出。所有输出共享一个常见的全卷积骨干网络。对于每个模态,主干的特征通过3×3卷积、ReLU卷积和另一个1×1卷积。图4显示了网络整体输出。
从点到边界框 在预测时,我们首先独立地提取热图里每个类的峰值。然后,我们检测所有值大于或等于其8个连接邻居的响应,并保留前100个峰值。令
P
^
c
\hat{P}_c
P^c表示集合
n
n
n检测
c
c
c类的中心点
P
^
=
{
(
x
^
i
,
y
^
i
)
}
i
=
1
n
\hat{P}=\{(\hat{x}_i, \hat{y}_i)\}_{i=1}^n
P^={(x^i,y^i)}i=1n。每个关键点位置由整数坐标给出
(
x
i
,
y
j
)
(x_i, y_j)
(xi,yj)。我们采样关键点的值
Y
^
x
,
y
,
c
\hat{Y}_{x,y,c}
Y^x,y,c作为检测的置信度,同时预测边界框位置:
(
x
^
i
+
δ
x
^
i
−
w
^
i
/
2
,
y
^
i
+
δ
y
^
i
−
h
^
i
/
2
,
x
^
i
+
δ
x
^
i
+
w
^
i
/
2
,
y
^
i
+
δ
y
^
i
+
y
^
i
/
2
)
(\hat{x}_i + \delta \hat{x}_i - \hat{w}_i / 2, \hat{y}_i + \delta \hat{y}_i - \hat{h}_i / 2, \hat{x}_i + \delta \hat{x}_i + \hat{w}_i / 2, \hat{y}_i + \delta \hat{y}_i + \hat{y}_i / 2)
(x^i+δx^i−w^i/2,y^i+δy^i−h^i/2,x^i+δx^i+w^i/2,y^i+δy^i+y^i/2)其中
(
δ
x
^
i
,
δ
y
^
i
)
(\delta \hat{x}_i, \delta \hat{y}_i)
(δx^i,δy^i)是偏移预测,
(
w
^
i
,
h
^
i
)
=
S
^
x
^
i
,
y
^
i
(\hat{w}_i,\hat{h}_i)=\hat{S}_{\hat{x}_i, \hat{y}_i}
(w^i,h^i)=S^x^i,y^i是尺寸预测。所有输出都是从关键点估计直接生成,不需要基于IoU的非极大值抑制(NMS)或其他后处理。关键点峰值提取足可以作为非极大值抑制(NMS)的替代方案,可以在设备上使用
3
×
3
3 \times 3
3×3最大池化操作有效地实现。
4.1 3D目标检测
3D检测估计每个对象的三维边界框,并要求每个中心点具有三个附加属性:深度、三维尺寸和方向。我们为每一个添加一个单独的头。深度
d
d
d是每个中心点的标量。然而,深度信息难以直接通过回归得到。我们改用Eigen等人提出的输出转换和
d
=
1
/
σ
(
d
^
)
−
1
d=1/\sigma( \hat{d} )-1
d=1/σ(d^)−1,其中
σ
\sigma
σ是sigmoid函数。我们计算的深度作为关键点估计器附加输出通道
D
^
∈
[
0
,
1
]
W
R
×
H
R
\hat{D} \in [0,1]^{\frac{W}{R} \times \frac{H}{R}}
D^∈[0,1]RW×RH。它再次使用由RELU分开的两个卷积的层。不同于以往的方式,它在输出层中采用逆变换的S形。在S型变换后,我们使用原始的深度域的L1损失来训练深度估计器。
目标的三维尺寸有3个标量。我们用一个单独的头
Γ
^
∈
R
W
R
×
H
R
×
3
\hat{\Gamma} \in R^{\frac{W}{R} \times \frac{H}{R} \times 3}
Γ^∈RRW×RH×3和L1损失直接回归到它们的绝对值(米)。
方向默认是一个标量。然而,其难以回归。我们按照Mousavian等人的方法,用in-bin回归将方向表示为两个仓。具体来说,方向用使用8个标量进行编码,每个仓用4个标量。对于一个仓,两个标量用于softmax分类,其余两个标量在每个仓内回归到一个角度。 有关这些损失的详细信息,请参阅补充资料。
人体姿势估计
人体姿势估计目的是估计图像中每个人的
k
k
k个二维人体关节点位置(对于COCO数据集,
k
=
17
k=17
k=17)。我们将姿势视为中心点的
k
×
2
k \times 2
k×2维属性,并对每个关键点进行参数化,使其偏离中心点。我们使用L1损失直接对关节点偏移进行回归
J
^
∈
R
W
R
×
H
R
×
2
\hat{J} \in R^{\frac{W}{R} \times \frac{H}{R} \times 2}
J^∈RRW×RH×2。我们通过掩模损失来忽略看不见的关键点。 基于回归的一阶段多人人体位姿估计器其结果类似于Toshev等人和Sun等人使用slow-RCNN版本。
为了提炼关键点,我们使用标准的自下而上的多人姿势估计进一步估计了k个人关节热图
ϕ
^
∈
R
W
R
×
H
R
×
k
\hat{\phi} \in R^{\frac{W}{R} \times \frac{H}{R} \times k}
ϕ^∈RRW×RH×k。我们使用focal损失和局部像素偏移来训练人体关节热图,类似于第3节中讨论的中心检测。
然后,我们将捕捉到此热图上初始预测最接近的检测到的关键点。 在这里,我们的中心偏移量用作分组提示,以将各个关键点检测分配给其最接近的人物实例。 具体地,令
(
x
^
,
y
^
)
(\hat{x}, \hat{y})
(x^,y^)为检测到的中心点。我们首先回归到所有关节位置
l
j
=
(
x
^
,
y
^
)
+
J
^
x
^
y
^
j
l_j=(\hat{x}, \hat{y})+\hat{J}_{\hat{x} \hat{y} j}
lj=(x^,y^)+J^x^y^j,其中
j
∈
1...
k
j \in 1 ... k
j∈1...k。我们还从对应的热图
ϕ
^
⋅
⋅
j
\hat{\phi}_{\cdot \cdot j}
ϕ^⋅⋅j中提取出每个关键点类型
j
j
j置信度大于0.1的所有关键点位置
L
j
=
{
l
^
j
i
i
=
1
n
j
}
L_j = \{ {\hat{l}_{ji}}_{i=1}^{n_j} \}
Lj={l^jii=1nj}。然后,我们仅考虑检测对象边界框内的联合检测,就将每个回归位置
l
j
l_j
lj分配给其最接近的检测到的关键点
a
r
g
m
i
n
l
∈
L
j
(
l
−
l
j
)
2
arg min_{l \in L_j}(l-l_j)^2
argminl∈Lj(l−lj)2。
项目实施细节
我们实验4种结构进行实验:ResNet-18, ResNet101, DLA-34, and Hourglass-104。我们使用可变性的卷积层对前3种网络进行修改和使用原型的Hourglass网络。
Hourglass堆叠的沙漏网络对输入进行4倍下采样,随后是两个连续的沙漏模块。 每个沙漏模块都是具有跳过连接的对称5层上下卷积网络。 这个网络很大,但是通常会产生最佳的关键点估计性能。
ResNet ResNet Xiao等人用三个向上卷积网络扩展了标准残差网络,以实现更高分辨率的输出(输出步幅4)。 我们首先将三个上采样层的通道分别更改为256,128, 64,以节省计算。 然后,分别在向上卷积通道256,128,64之前,我们添加一个3×3的可变形卷积层。向上卷积内核被初始化为双线性插值。
DLA DLA是具有分层跳过连接的图像分类网络。我们利用DLA的全卷积上采样版本进行密集预测,该模型使用迭代深度聚合来对称地增加特征图的分辨率。我们使用从较低层到输出的可变形卷积来增强跳过连接。 具体来说,我们在每个上采样层将原始卷积替换为3×3可变形卷积。
在每个输出头之前,我们添加一个具有256通道的3×3卷积层。 然后,最终的1×1卷积产生所需的输出。
训练我们训练时输入512×512分辨率的图片。对于所有模型,这将产生128×128的输出分辨率。我们使用随机翻转、缩放(缩放倍数0.6~1.3)、裁剪和颜色抖动以对数据进行增强,并且使用Adam去优化整体目标。由于裁剪或缩放更改了3D测量值,因此我们不使用增强来训练3D估计分支。对于ResNet和DLA-34,我们以128的批量(在8个GPU上)、学习率5e-4和140个迭代次数,其中学习率分别在90和120个迭代次数时下降了10倍。对于Hourglass-104,我们按照ExtremeNet设置,并且使用29的批量、学习率2.5e-4和50个迭代次数,其中学习率在40个迭代次数时下降了10倍。为了进行检测,我们对ExtremeNet的Hourglass-104进行了微调,以节省计算量。 Resnet-101和DLA-34的下采样层是使用ImageNet预训练初始化的,而上采样层是随机初始化的。Resnet-101和DLA-34在8个TITAN-V GPU上训练2.5天而Hourglass-104需要5天。
推理我们使用三个级别的测试增强:无增强,翻转增强以及翻转和多尺度(0.5、0.75、1、1.25、1.5)。 对于翻转,我们在解码边界框之前对网络输出进行平均。 对于多尺度,我们使用NMS合并结果。 这些增强会产生不同的速度精度折衷,如下一节所示。
6. 实验
我们在MS COCO数据集上评估了对象检测性能,该数据集包含118k训练图像(train2017),5k验证图像(val2017)和20k支持测试图像(test-dev)。 我们报告了所有IOU阈值(AP),AP在IOU阈值0.5(AP50)和0.75(AP75)时的平均精度。
6.1 目标检测
表1显示了使用不同主干和测试选项进行的COCO验证的结果,而图1将CenterNet与其他实时检测器进行了比较。 运行时间已在我们的本地计算机上进行了测试,并使用Intel Core i7-8086K CPU,Titan Xp GPU,Pytorch 0.4.1,CUDA 9.0和CUDNN 7.1。 我们下载代码和经过预训练的模型,以测试同一台机器上每种模型的运行时间。
Hourglass-104以7.8 FPS的42.2%AP在相对较高的速度下实现了最佳精度。 在此主干上,CenterNet在速度和准确性方面均优于CornerNet (在4.1 FPS中为40.6%AP)和ExtremeNet](在3.1 FPS中为40.3%AP)。运行时间的改进来自较少的输出磁头和更简单的边框解码方案。 更高的精度表示中心点比拐角或极端点更容易检测。
我们在相同的网络主干网络上使用ResNet-101的表现要优于RetinaNet。 我们仅在向上采样层中使用可变形卷积,这不会影响RetinaNet。 在相同的精度下,我们的速度是以前的两倍(CenterNet 34.8%AP,45 FPS(输入512×512)vs . RetinaNet 34.4%AP in 18 FPS (输入500 × 800))。我们最快的ResNet-18模型在142 FPS时也可实现28.1%COCO AP的可观性能。
DLA-34提供最佳的速度/精度权衡。 它以52FPS和37.4%AP的速度运行。 这是比YOLOv3的速度快两倍以上和提升了4.4%AP准确度。 通过翻转测试,我们的模型仍然比YOLOv3更快,并且达到了Faster-RCNN-FPN的准确度水平(CenterNet 在28 FPS中39.2%AP vs Faster-RCNN在11 FPS中39.8%AP) 。
最新技术比较 我们在表2中的COCO test-dev中将其与其他最先进的检测器进行了比较。通过多尺度评估,CenterNet和Hourglass104的AP达到了45.1%,优于所有现有的一级探测器。 复杂的两级检测器精度更高,但速度也较慢。 对于不同的对象大小或IoU阈值,CenterNet和滑动窗口检测器之间没有显着差异。 CenterNet的行为类似于常规检测器,只是速度更快。
6.1.1 其他实验
如果在糟糕的情况下两个对象完美对齐,它们可能会共享同一中心。在这种情况下,CenterNet将仅检测其中之一。我们首先研究这种情况在实践中发生的频率,并将其与缺少竞争方法的检测联系起来。
中心点冲突 在COCO训练集中,有614对对象在步幅4上碰撞到同一中心点。总共有860001个对象,因此CenterNet由于碰撞而无法预测<0.1%的对象中心点。与不完善的区域建议(〜2%)的slow-RCNN或fast-RCNN相比误差要少得多,而由于锚点放置不足,CenterNet比基于锚框的方法的丢失要少。(20.0%的Faster-RCNN在IOU阈值0.5需要15个锚点位)。此外,715对对象的边界框IoU> 0.7,并且将它们分配给两个锚点,因此基于中心的分配会减少冲突。
NMS 为了验证CenterNet不需要基于IoU的NMS,我们将其作为预测的后处理步骤来运行。对于DLA-34(翻转测试),AP可以从39.2%提高到39.7%。对于Hourglass-104,AP保持在42.2%。鉴于影响很小,我们不使用它。
接下来,我们消除模型的新超参数。所有实验均在DLA-34上完成。
训练和测试分辨率 训练期间,我们将输入分辨率固定为512×512。 在测试过程中,我们遵循CornerNet来保持原始图像分辨率并将输入零填充到网络的最大步幅。
对于ResNet和DLA,我们将图像填充最多32像素,对于HourglassNet,我们使用128像素。 如表3a所示,保持原始分辨率比固定测试分辨率稍好。 以较低的分辨率(384×384)进行训练和测试的速度提高了1.7倍,但降低了3.0 AP。
回归损失 我们将原始L1损失与平滑L1损失进行比较,以进行大小回归。 我们在表3c中的实验表明,L1比Smooth L1好得多。在COCO评估指标很敏感的情况下,它可以产生更好的精确度。 在关键点回归中可以独立观察到这一点。
边界框大小权重 我们分析我们的方法对损失权重
λ
s
i
z
e
\lambda_{size}
λsize的敏感性。 表3b显示0.1给出了良好的结果。 对于较大的值,由于损耗的范围从0到输出大小
w
/
R
w/R
w/R 或
h
/
R
h/R
h/R(而不是0到1),因此AP会显着降低。但是,对于较低的权重,该值不会显着降低。
训练时间表 默认情况下,我们将关键点估计网络训练为140个迭代次数,而学习率在等90次迭代下降。 如果我们在降低学习率之前将训练时间增加一倍,则性能会进一步提高1.1 AP(表3d),但需要更长的训练时间。 为了节省计算资源,我们在消融实验中使用了140次迭代,但与其他方法相比,DLA使用了230次迭代。
最后,我们通过回归到多个对象大小,尝试了CenterNet的多个“锚定”版本。 实验没有取得任何成功。
6.2 3D目标检测
我们在KITTI数据集上执行3D边界框估计实验,该数据集包含在驾驶场景中为车辆精心标注的3D边界框。 KITTI包含7841个训练图像,我们遵循文献中的标准训练和验证划分。评估指标是在IOU阈值为0.5的情况下,汽车在11次召回(0.0至1.0,增量为0.1)下的平均精度,如对象检测[14]中所示。我们基于2D边界框(AP),方向(AOP)和鸟瞰边界框(BEV AP)评估IOU。我们将原始图像分辨率和填充保持为1280×384,以进行培训和测试。训练收敛于70个时期,学习率分别下降了45和60个时期。我们使用DLA-34主干并将深度,方向和尺寸的损失权重设置为1。所有其他超参数与检测实验相同。由于召回阈值的数量非常少,因此验证AP的波动幅度最大为10%。因此,我们训练了5个模型,并报告了带有标准偏差的平均值。
我们将基于slow-RCNN的Deep3DBox和基于快速RCNN的方法Mono3D进行了比较,比较了它们的具体验证方法。如表4所示,我们的方法在AP和AOS中的表现与之相当,而在BEV方面则略胜一筹。我们的CenterNet比这两种方法快两个数量级。
6.3 姿势估计
最后,我们在MS COCO数据集中评估CenterNet的人体姿势估计。 我们评估关键点AP,它与边界框AP相似,但是用对象关键点相似度替换了边界框IoU。 我们在COCO test-dev上测试并与其他方法进行比较。
我们对DLA-34和Hourglass-104进行了实验,二者均从中心点检测进行了微调。 DLA-34收敛于320个时代(在8GPU上约3天),而Hourglass-104收敛于150个时代(在5个GPU上达8天)。 所有其他损失权重均设置为1。所有其他超参数与对象检测相同。
结果显示在表5中。直接回归到关键点可以合理执行,但不是最新技术。 在高IoU政权下,它尤其艰难。 将我们的输出投影到最接近的联合检测可以改善整个结果,并且可以与最新的多人姿势估计器竞争。 这证明CenterNet是通用的,易于适应新任务。
总结
总之,我们提出了一种新的对象表示形式:点。 我们的CenterNet对象检测器以成功的关键点估计网络为基础,找到对象中心,然后回归其大小。 该算法简单,快速,准确,并且端到端可区分,而无需任何NMS后处理。 这个想法很笼统,除了简单的二维检测之外,还具有广泛的应用。 CenterNet可以在一次向前通过中估计一系列其他对象属性,例如姿势,3D方向,深度和范围。 我们的初步实验令人鼓舞,并为实时物体识别和相关任务开辟了新的方向。