[Reading] Objects as Points

Objects as Points (2019/4)

1. 概述

  文章的主要贡献有:

  • 提出了一种用点来表示目标的方法,将目标检测问题转化为关键点估计问题。
  • 提出了 CenterNet 目标检测算法,将目标看成是一个点,即边界框的中心,通过对关键点的估计找到目标中心,再通过归回得到目标的尺寸、3D 位置、方向、姿态等其他属性,具有很强的泛用性。CenterNet 端到端可微,比基于边界框的检测器更简单、更快且更准确,如 Figure 1 所示。
Figure 1
Figure 1

  在之前的目标检测算法中,往往通过对大量的候选框进行分类,将目标检测问题转换为图像识别问题。文章提出的 CenterNet 是一种更简单和高效的目标检测算法,将目标表示为其边界框的中心点,如 Figure 2 所示,其他诸如目标尺寸、维度、3D 范围、方向、姿态等属性,可以直接从中心位置的图像特征中回归得到。由此目标检测问题就变成了关键点估计问题。输入图像经过全卷积网络生成热力图,热力图的峰值对应了目标中心,每个峰值处的图像特征可以用来预测目标边界框的高和宽,推断过程只需要一次前向传播,且不需要 NMS(Non-Maximum Suppression)。CenterNet 的简单性使其具有非常快的速度,如 Figure 1 所示。

Figure 2
Figure 2

  CenterNet 也具有泛用性,如用于 3D 目标检测时,只需对目标的绝对深度、3D 边界框维度和目标方向进行回归;用于人体姿态估计时,可以将 2D 关节位置看成是相对于中心的偏移,直接使用中心点位置回归得到。

  CenterNet 和基于锚点的单阶段检测算法非常相似,CenterNet 的中心点可以看成是一个形状不可知的锚点,如 Figure 3 所示。但二者也有一些不同之处:首先,CenterNet 仅基于位置来对“锚点”进行标注,而不是基于边框的重合度,因此不需要使用人工设定的门限来区分前景和背景;其次,CenterNet 中每个物体只有一个正例“锚点”,因此不需要 NMS;最后,CenterNet 具有更高的输出分辨率,因此不需要使用多锚点。

Figure 3
Figure 3

2. 预备知识

  记输入图像 $I \in R^{W \times H \times 3}$,宽度为 $W$、高度为 $H$。我们的目标是得到关键点热力图 $\hat{Y} \in [0, 1]^{\frac{W}{R} \times \frac{H}{R} \times C}$。其中 $R$ 是输出步长,表示对输出的预测进行下采样的系数,文章使用 $R = 4$。$C$ 是关键点类型的个数,例如对人体姿态估计,$C = 17$ 为关节个数;对于目标检测,$C = 80$ 为类别数量。预测 $\hat{Y}_{x, y, c} = 1$ 表示检测到关键点,$\hat{Y}_{x, y, c} = 0$ 表示背景。使用多个不同的全卷积编码器-解码器来从图像 $I$ 中预测 $\hat{Y}$,包括一组堆叠的 hourglass 网络,上卷积残差网络(ResNet)和深度层聚合(Deep Layer Aggregation,DLA)。

  训练时,对每个类别 $c$ 的标注的关键点 $p \in \mathcal{R}^2$,先计算低分辨率的等价点 $\tilde{p} = \lfloor \frac{p}{R} \rfloor$,然后使用高斯核 $Y_{xyc} = \exp\big(-\frac{(x – \tilde{p}_x)^2 + (y – \tilde{p}_y)^2}{2\sigma_p^2}\big)$ 将标注的关键点分布到热力图 $Y \in [0, 1]^{\frac{W}{R} \times \frac{H}{R} \times C}$ 上,其中 $\sigma_p$ 为目标尺寸适应的标准差(object size-adaptive standard deviation)。如果同一类别的两个高斯分布有重叠,则逐元素取最大。训练目标是降低惩罚(penalty-reduced)的逐元素 logistic 回归 focal loss:

$$
L_k = \frac{-1}{N} \sum_{xyz} \begin{cases}
(1 – \hat{Y}_{xyc})^\alpha \log(\hat{Y}_{xyc}) & \text{if } Y_{xyc} = 1 \\
(1 – \hat{Y}_{xyc})^\beta (\hat{Y}_{xyc})^\alpha \log(1 – \hat{Y}_{xyc}) & \text{otherwise}
\end{cases} \tag{1}
$$

其中 $\alpha$ 和 $\beta$ 为 focal loss 的超参数,$N$ 是图像 $I$ 中关键点的数量。文章使用 $\alpha = 2$ 和 $\beta = 4$。

  为了恢复由输出步长 $R$ 进行下采样所带来的离散化误差,为每个中心点额外预测一个局部偏移 $\hat{O} \in \mathcal{R}^{\frac{W}{R} \times \frac{H}{R} \times 2}$,所有类别 $c$ 共享相同的偏移,使用 $L_1$ 损失训练

$$
L_{off} = \frac{1}{N} \sum_p \Big| \hat{O}_{\tilde{p}} – \Big(\frac{p}{R} – \tilde{p}\Big)\Big| \tag{2}
$$

其中 $\tilde{p}$ 为低分辨率的标注中心点。

3. 目标作为点

  记第 $k$ 个目标的类别为 $c_k$,坐标为 $(x_1^{(k)}, y_1^{(k)}, x_2^{(k)}, y_2^{(k)})$,其中心点 $p_k = (\frac{x_1^{(k)} + x_2^{(k)}}{2}, \frac{y_1^{(k)} + y_2^{(k)}}{2})$。使用关键点估计 $\hat{Y}$ 来预测所有的中心点,并对每个目标的尺寸 $s_k = (x_2^{(k)} – x_1^{(k)}, y_2^{(k)} – y_1^{(k)})$ 进行回归,为了降低计算量,只预测单个尺寸 $\hat{S} \in \mathcal{R}^{\frac{W}{R} \times \frac{H}{R} \times 2}$。对尺寸也使用类似式 $(2)$ 的 L1 损失

$$
L_{size} = \frac{1}{N} \sum_{k=1}^N |\hat{S}_{p_k} – s_k| \tag{3}
$$

这里没有对尺度进行归一化,而是直接使用原始像素坐标,通过一个常数 $\lambda_{size}$ 进行加权,整体训练目标为

$$
L_{det} = L_k + \lambda_{size} L_{size} + \lambda_{off} L_{off} \tag{4}
$$

文章使用 $\lambda_{size} = 0.1$ 和 $\lambda_{off} = 1$。

  要通过单个网络预测关键点 $\hat{Y}$、偏移 $\hat{O}$ 和尺寸 $\hat{S}$,网络需要在每个位置给出 $C + 4$ 个输出。所有输出共享一个全卷积主干网络,主干网络输出的特征经过一个 $3 \times 3$ 卷积、ReLU 和一个 $1 \times 1$ 卷积,给出所需尺寸的输出。网络的输出如 Figure 4 所示。

Figure 4
Figure 4

  在推断时,先要从热力图中独立地为每个类别提取峰值,检测所有值大于等于其附近 8 个邻居的位置作为峰值点,保留前 100 个。记 $\hat{P}_c$ 为类别 $c$ 的一组 $n$ 个检测到的中心点 $\hat{P} = \{(\hat{x}_1, \hat{y}_i)\}_{i=1}^n$,每个关键点的位置 $(x_i, y_i)$ 是整数。使用 $\hat{Y}_{x_i y_i c}$ 来衡量检测的置信度,生成边界框

$$
\begin{aligned}
(&\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{h}_i / 2
)
\end{aligned}
$$

其中 $(\delta \hat{x}_i, \delta \hat{y}_i) = \hat{O}_{\hat{x}_i, \hat{y}_i}$ 是对偏移的预测,$(\hat{w}_i, \hat{h})_i$ 是对尺寸的预测。所有输出都直接来自于关键点估计,不需要基于 IoU 的 NMS 或者其他后处理,峰值点提取本身就可以看成是一种 NMS,且可以通过 $3 \times 3$ 最大池化高效实现。

3.1. 3D 检测

  3D 检测需要估计目标的三维边界框,对每个中心点,还需要深度、3D 尺寸和方向三个额外属性。文章为每个额外属性都使用了一个额外的 head 来预测。

  深度 $d$ 是一个标量,难以直接回归,文章使用了变换 $d = 1 / \sigma(\hat{d}) – 1$,其中 $\sigma$ 为 sigmoid 函数,使用一个额外的输出通道 $\hat{D} \in [0, 1]^{\frac{W}{R} \times \frac{H}{R}}$ 和 L1 损失进行预测。3D 尺寸是三个标量,使用一个额外的头 $\hat{\Gamma} \in [0, 1]^{\frac{W}{R} \times \frac{H}{R} \times 3}$ 和 L1 损失进行预测。方向是一个标量,难以通过回归得到,文章将方向编码为 8 个标量,分成两个桶,每个桶 4 个标量,对每个桶,使用两个标量用于 softmax 分类,另两个标量用于回归角度。

3.2. 人体姿态估计

  人体姿态估计需要为图像中的每个人体实例估计 $k$ 个关节的 2D 位置,COCO 数据集中 $k = 17$。文章将姿态看成是中心点的 $k \times 2$ 个属性,参数化为相对中心点的偏移,直接使用 L1 损失对 $\hat{J} \in \mathcal{R}^{\frac{W}{R} \times \frac{H}{R} \times k \times 2}$ 进行回归。对于不可见的关节,会忽略其损失。由此得到基于回归的单阶段多人姿态估计。

  为了进一步改善关键点,文章还使用标准的自下而上的多人姿态估计方法,预测 $k$ 个人体关节热力图 $\hat{\Phi} \in \mathcal{R}^{\frac{W}{R} \times \frac{H}{R} \times k}$,与 focal loss 和偏移一起训练。

4. 实现细节

  文章实验了 ResNet-18、ResNet-101、DLA-34 和 Hourglass-104 四种架构。训练时的输入分辨率为 $512 \times 512$,输出分辨率为 $128 \times 128$,使用了随机翻转、缩放(0.6 到 1.3)、裁剪、色彩抖动的数据增强。推断时使用了无增强、翻转、翻转加多尺度(0.5,0.75,1,1.25,1.5)三种等级的测试时增强。对于翻转增强,在解码边界框前先对输出进行平均;对于多尺度增强,使用 NMS 来合并结果。使用不同的增强方式可以获得不同的速度和准确率。

5. 实验结果

5.1. 目标检测

  文章比较了不同主干网络在 COCO 上的性能,如 Table 1 所示,可见 Hourglass-104 在获得最高准确率的同时,速度也不错。

Table 1
Table 1

  CenterNet 和其他网络的比较如 Table 2 所示。可见 CenterNet-HG 的 AP 和 FPS 均超过了 CornerNet 和 ExtremeNet。CenterNet 中更少的输出 head 和更简单的边界框解码有助于提高速度,同时更高的准确率说明使用中心点比使用角落点或极限点更容易进行检测。测试时使用多尺度时,使用 Hourglass-104 的 CenterNet-HG 达到 45.1 AP,超过了所有单阶段检测器。

Table 2
Table 2

5.1.1. 中心点冲突

  如果两个物体完全对齐,中心重合,则 CenterNet 只能检测出其中一个。在 COCO 训练集的 860001 个物体中,一共有 614 组中心点重合的物体(步长为 4),也就是说 CenterNet 无法预测训练集中小于 0.1% 的物体,远小于基于候选区域或锚点的方法中丢失的物体。此外训练集中有 715 对物体边界框的 IoU > 0.7,相比之下基于中心点的方法具有更少的冲突。

5.1.2. NMS

  文章比较了是否使用 NMS 的差异,发现对 DLA-34 使用 NMS 会让 AP 从 39.2% 提升至 39.7%,而 NMS 对 Hourglass-104 的 AP 没有提升,因此文章决定不使用 NMS。

5.1.2. 设计选择

  文章使用 DLA-34 主干网络实验了不同超参数对性能的影响,如 Table 3 所示。由 Table 3(a) 可见,在测试时使用原始分辨率可以获得比使用固定分辨率更高的 AP,但速度也会更慢。由 Table 3(b) 可见,使用 $\lambda_{size} = 0.1$ 可以获得很好的结果,更大的 $\lambda_{size}$ 会降低 AP。由 Table 3(c) 可见,使用 L1 损失的效果比 smooth L1 好得多。由 Table 3(d) 可见,训练更长时间和可以获得更高的 AP,训练 230 个 epoch 的 AP 要比训练 140 个 epoch 高 1.1。

Table 3
Table 3

5.2. 3D 检测

  CenterNet 在 3D 检测任务上的性能如 Table 4 所示,可见与之前的方法相比,二者具有相近的 AP 和 AOS,CenterNet 的 BEV 略优,且比另外两个方法快 2 个数量级。

Table 4
Table 4

5.3. 姿态估计

  CenterNet 在人体姿态估计任务上的性能如 Table 5 所示,可见直接对关键点进行回归(-reg)可以获得一定的效果,但达不到最好。使用关节检测后(-jd),网络达到了与最佳性能相当的水平。这说明 CenterNet 具有通用性,易于适应新任务。

Table 5
Table 5