CenterNet

Objects as Points

大多数成功的目标检测器都会列出一个几乎详尽的潜在目标位置列表,并对每个位置进行分类。这是浪费,效率低下,需要额外的后处理。在本文中,我们采取了不同的方法。我们将一个对象建模为一个点,即其bbox的中心点。我们的检测器使用关键点估计来找到中心点,并回归到所有其他对象属性,如尺寸、三维位置、方向甚至姿势。我们的基于中心点的方法,CenterNet,是端到端的,比相应的基于bounding box的检测器更简单、更快速、更准确。CenterNet在MSCOCO数据集上实现了最佳的速度-精度权衡,在142 FPS时AP为28.1%,在52 FPS时AP为37.4%,在1.4 FPS的多尺度测试下AP为45.1%。我们使用相同的方法来估计KITTI基准中的3D边界框和COCO keypoint数据集上的人体姿势。我们的方法精度上可以与复杂的多阶段方法进行竞争,并且可以实时运行。

1. Introduction

在这里插入图片描述

图2:我们将对象建模为其边界框的中心点。边界框大小和其他对象特性是从中心的关键点特征推断出来的。

在本文中,我们提供了一个更简单、更有效的替代方案。我们用一个中心点来表示它们的对象(参见图2)。其他属性,如对象大小、尺寸、三维范围、方向和姿势,则直接从中心位置的图像特征回归。目标检测是一个标准的关键点估计问题[3,39,60]。我们简单地将输入图像输入到一个全卷积网络[37,40],生成一个热图。热图中的峰值对应于对象中心,每个峰值的图像特征可以预测对象的边界框高和宽。该模型使用标准的dense supervised learning[39,60]进行训练。推断是一个单一的网络前传,没有NMS的后处理。

在这里插入图片描述

图4:我们的网络在不同任务下的输出:顶部为物体检测,中间为3D物体检测,底部:为姿势估计。所有的模式都是由一个共同的backbone产生的,不同的3x3和1x1输出卷积被ReLU分开。括号内的数字表示输出通道。详见第4节。

我们的方法是通用的,并且可以通过修改少处地方扩展到其他任务。通过预测每个中心点的额外输出,我们提供了3D目标检测[17]和多人姿态估计[4]的实验(见图4)。对于三维边界框估计,我们回归到物体绝对深度、三维边界框尺寸和物体方向[38]。对于人体姿态估计,我们将二维关节位置视为中心点的偏移量,直接回归到中心点位置。

在这里插入图片描述

我们的方法CenterNet的简单性使得它能够以非常高的速度运行(图1)。通过简单的Resnet-18和上卷积层[55],我们的网络以142 FPS的速度运行,28.1%的COCO bounding box AP。使用精心设计的关键点检测网络DLA-34[58],我们的网络在52 FPS下实现了37.4%的COCO AP。我们的网络配备了最先进的关键点估计网络Hourglass-104[30,40]和多尺度测试,以1.4 FPS的速度实现了45.1%的COCO-AP。在三维包围盒估计和人体姿态估计方面,我们以更高的推理速度与现有技术相比较。Code is available at https://github.com/xingyizhou/CenterNet.

3. Preliminary

I ∈ R W × H × 3 I\in R^{W\times H\times3} IRW×H×3为宽度W、高度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为输出stride,C为关键点类型的数量。关键点类型包括人体姿势估计中的C=17个人体关节[4,55],或物体检测中的C=80个物体类别[30,61]。我们使用文献[4,40,42]中默认的输出 stride 为R=4。一个预测为 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中预测 Y ^ \hat Y Y^:堆叠沙漏网络[30,40]、upconvolutional residual networks(ResNet)[22,55]和深层聚合(DLA)[58]。我们按照Law和Deng[30]的建议训练关键点预测网络。对于c类的每个ground truth关键点 p ∈ R 2 p\in\mathcal R^2 pR2,我们计算一个低分辨率的等价 p ~ = [ p R ] \widetilde 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-\widetilde p_x)^2+(y-\widetilde p_y)^2}{2\sigma^2_p}) Yxyc=exp(2σp2(xp x)2+(yp y)2)将所有的ground truth关键点扩散到热图 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是对象大小自适应(objects ize-adaptive)的标准差[30]。如果同一类的两个高斯函数重叠,我们取element-wise maximum[4]。训练目标函数是一个具有focal损失的[penalty-reduced pixelwise logistic regression[33]

在这里插入图片描述

其中 α \alpha α β \beta β为focal loss的超参数[33],N为图像I中关键点的数量。选择用N表示的归一化方法将所有正 focal loss 实例规范化为1。我们在所有的实验中都使用 α \alpha α =2和 β \beta β =4,遵循Law和Deng[30]。

为了恢复由输出stride引起的离散化误差,我们还为每一个中心点预测了一个局部偏移量 O ^ ∈ R W R × H R × C \hat O\in\mathcal R^{\frac{W}{R}\times\frac{H}{R}\times C} O^RRW×RH×C,所有类c共享相同的偏移量预测。以L1损失来训练偏移量

在这里插入图片描述

监督只作用于关键点位置 p ~ \widetilde p p ,其他位置都被忽略。
在下一节中,我们将展示如何将这个关键点估计器扩展到通用对象检测器。

4. Objects as Points

c k c_k ck类别的目标k的bounding box用 ( x 1 ( k ) , y 1 ( k ) , x 2 ( k ) , y 2 ( k ) ) (x_1^{(k)},y_1^{(k)},x_2^{(k)},y_2^{(k)}) (x1(k),y1(k),x2(k),y2(k))。他的中点位于 p k = ( x 1 k + x 2 k 2 , y 1 k + y 2 k 2 ) p_k=(\frac{x_1^k+x_2^k}{2},\frac{y_1^k+y_2^k}{2}) pk=(2x1k+x2k,2y1k+y2k)。我们使用我们的关键点估计器 Y ^ \hat Y Y^来预测所有的中心点。此外,我们对每个对象k的对象大小 s k = ( x 2 k − x 1 k , y 2 k − y 1 k ) s_k=(x_2^k-x_1^k,y_2^k-y_1^k) sk=(x2kx1k,y2ky1k)进行回归。为了限制计算负担,我们对所有对象类别使用单一尺寸预测 S ^ ∈ R W R × H R × C \hat S\in\mathcal R^{\frac{W}{R}\times\frac{H}{R}\times C} S^RRW×RH×C。我们在中心点使用与Objective2类似的L1损失。

在这里插入图片描述

我们不对比例进行归一化,直接使用原始像素坐标。相反,我们以一个固定的大小 λ s i z e \lambda_{size} λsize来缩放损失.总体的训练目标是

在这里插入图片描述

我们使用 λ s i z e = 0.1 \lambda_{size}=0.1 λsize=0.1 λ o f f = 1 \lambda_{off}=1 λoff=1在我们所有的实验中,除非另有说明。我们使用单个网络来预测关键点 Y ^ \hat Y Y^ ,偏移量 O ^ \hat O O^ ,以及大小 S ^ \hat S S^ 。该网络预测每个位置共有C+4个输出。所有输出都共享一个共同的全卷积骨干网络。对于每个模态,骨干网的特征再通过一个单独的3X3卷积、ReLU和另一个1X1卷积。图4显示了网络输出的概况。第5节和补充材料包含了额外的架构细节。

From points to bounding boxes

在推理时,我们首先独立提取每个类别的热图中的峰值.我们检测所有响应的值大于或等于其8个连接的邻居,并保留前100个峰值。设 P ^ \hat{\mathcal P} P^为c类的n个检测中心点 P ^ = { ( x ^ i , y ^ i ) } i = 1 n \hat{\mathcal P}=\{(\hat x_i,\hat y_i)\}_{i=1}^n P^={(x^i,y^i)}i=1n的集合。每个关键点位置由整数坐标 ( x i , y i ) (x_i,y_i) (xi,yi)。我们用关键点的值 Y ^ x i y i c \hat Y_{x_iy_ic} Y^xiyic作为其检测置信度的衡量标准,并在位置上产生一个边界框。

在这里插入图片描述

其中 ( δ x ^ i , δ y ^ i ) = O ^ x ^ i , y ^ i (\delta\hat x_i,\delta\hat y_i)=\hat O_{\hat x_i,\hat y_i} (δx^i,δy^i)=O^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替代方案,并且可以使用3x3 max pooling操作在设备上高效实现。

5. Implementation details

我们用4种架构进行实验。ResNet-18、ResNet-101[55]、DLA-34[58]和Hourglass-104[30]。我们使用可变形卷积层(deformable convolution[5]、DLA-34[58]和Hourglass-104[30]。我们使用可变形卷积层(deformable convolution layers)[12]对ResNets和DLA-34进行修改,并按原样使用Hourglass网络。

Training 我们在512 x 512的输入分辨率上进行训练。这使得所有模型的输出分辨率为128x128。我们使用随机翻转、随机缩放(在0.6到1.3之间)、裁剪和颜色抖动作为数据增强,并使用Adam[28]来优化整体目标。我们不使用任何增强来训练3D估计分支,因为裁剪或缩放会改变3D测量。对于残差网络和DLA-34,我们使用批处理大小为128(在8个GPU上)和学习率5e-4进行140个epochs的训练,学习率分别在90和120个epochs时下降10(遵循[55])。对于Hourglass-104,我们遵循ExtremeNet[61],使用批处理规模29(在5个GPU上,主GPU批处理规模为4),学习率2.5e-4为50个epoch,40个epoch时学习率下降10。在检测方面,我们对ExtremeNet[61]的Hourglass-104进行微调,以节省计算量。Resnet-101和DLA-34的下采样层用ImageNet预训练初始化,上采样层随机初始化。Resnet-101和DLA-34在8个TITAN-V GPU上的训练时间为2.5天,而Hourglass-104需要5天。

Inference 我们使用三个级别的测试增强:无增强,翻转增强,以及翻转和多尺度(0.5,0.75,1,1.25,1.5)。对于翻转,我们在解码边界盒之前对网络输出进行平均。对于多尺度,我们使用NMS来合并结果。这些增强产生了不同的速度-精度权衡,如下一节所示。在这里插入图片描述
图6:模型图。方框中的数字代表对图像的stride。(a):沙漏网络[30]。我们在CornerNet[30]中原样使用。(b): ResNet与转置卷积[55]。我们在ResNet中增加了一个3x3可变形的卷积。具体来说,我们首先使用可变形卷积改变通道,然后使用转置卷积对特征图进行上采样(这样的两个步骤分别在32->16中显示。我们将这两个步骤一起显示为16->8和8->4)的虚线箭头。) ©: 用于语义分割的原始DLA-34[58]。我们修改后的DLA-34。我们从底层增加了更多的跳转连接,并在上采样阶段将每个卷积层升级为可变形的卷积层。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值