CenterNet :Objects as Points-论文笔记(目标检测)

摘要

传统目标检测将物体定义为沿着坐标轴的边界框,对所有可能的物体进行穷举搜索,再进行分类。这种方法耗时耗力,且需要额外的后处理过程。本文将物体建模为单个点——边界框的中心点,用关键点估计找到中心点,并且回归输出物体其他属性,如:尺寸,3D位置,旋向,甚至位姿。本文方法称为CenterNet,一种端到端具有多种优点的目标检测方法,达到了速度与准确率平衡

引言

目标检测很重要,为许多后续任务提供支撑(实力分割、位置估计等)。在监控、自动驾驶等领域有广泛应用。传统目标检测将物体定义为沿着坐标轴的边界框,对所有可能的物体进行穷举搜索,再进行分类。对每一个边界框,分类器要判断框中是某一特定的物体还是背景。单阶段目标检测器在图像上滑动一个复杂的可能的包围框(称为锚),并直接对它们进行分类,而不指定框的内容。两阶段探测器重新计算每个潜在框的图像特征,然后对这些特征进行分类后处理(即非最大抑制),然后通过计算边界框IoU来消除相同实例的重复检测。后处理过程很难训练,因此当下方法均不是端到端的。
如图2所示,本文将物体建模为单个点——边界框的中心点,用关键点估计找到中心点,并且回归输出物体其他属性,如:尺寸,3D位置,旋向,甚至位姿。我们只需要将图片喂入全卷积网络,用来产生热力图。热力图的峰值点对应物体中心,每个峰值的图像特征预测被包围的物体的高度和重量。是监督学习,推理过程是简单的前向传递,没有后处理。
在这里插入图片描述

我们的方法是通用的,并可以扩展到其他任务,只需很小的改动。通过预测每个中心点的额外输出(见图4),我们提供了三维目标检测多人人体姿态估计的实验。
在这里插入图片描述

相关工作

基于区域分类的目标检测。RCNN、Fast-RCNN。然而,这两种方法都依赖于缓慢的低层次区域提议方法。
带有隐式锚的对象检测。Faster RCNN生成检测网络内的区域提议。它对低分辨率图像网格周围的固定形状包围框(锚)进行采样,并将每个框分类为“前景或非前景”。锚点被标记为前景:与任何ground truth对象有">0.7"重叠,与背景有”<0.3”的重叠,否则被忽略。每个生成的区域提案再次分类。将建议分类器改为多类分类器,形成了单级检测器的基础。单级检测器的改进包括锚形先验、不同的特征分辨率和不同样本之间的损失重加权。
我们的方法与基于锚点的单阶段方法密切相关。一个中心点可以被看作是一个与形状无关的锚点(参见图3)。然而,这里有一些重要的区别。首先,我们的CenterNet仅根据位置分配锚”,而不是框重叠。我们没有用于前景和背景分类的手动阈值。其次,我们每个对象只有一个positive的“锚”,因此不需要Non-Maximum Suppression (NMS)。我们简单地在关键点热图中提取局部峰。第三,与传统的目标探测器(输出步幅为16)相比,CenterNet使用了更大的输出分辨率(输出步幅为4)。这消除了对多个锚的需要。

在这里插入图片描述
基于关键点估计的目标检测。CornerNet。ExtremeNet。然而,在关键点检测之后,它们需要一个组合分组阶段,这大大降低了每个算法的速度。另一方面,我们的CenterNet简单地为每个对象提取一个中心点,而不需要进行分组或后期处理。
单目三维物体检测。Deep3Dbox。3D RCNN。Deep Manta。我们的方法类似于一步版的Deep3Dbox或3DRCNN。因此,CenterNet比其他竞争方法更简单、更快。

Preliminary

输入图像“:在这里插入图片描述
关键点热力图:
在这里插入图片描述
在这里插入图片描述
R:输出尺度。本文中采用4。
C:关键点类型数量。
在这里插入图片描述对应一个检测到的关键点。
在这里插入图片描述是背景。
本文用几个不同的全卷积编码器解码器网络去预测在这里插入图片描述:A stacked hourglass network、upconvolutional residual networks (ResNet)、deep layer aggregation (DLA)。
训练关键点预测网络:对类别c的每一个真实关键点在这里插入图片描述,我们计算一个低分辨率的当量:在这里插入图片描述。然后我们将所有的真值关键点用高斯核在这里插入图片描述

放在一张热力图上:在这里插入图片描述,其中在这里插入图片描述是一个对象大小自适应的标准偏差。如果同一类的两个高斯函数重叠,我们取元素最大。训练目标是惩罚减少的像素逻辑回归与焦点损失:
在这里插入图片描述

其中α(=2)和β(=4)是超参数,N是图像I的关键点数量。选择N的归一化将所有正焦损实例归一化为1。
为了恢复由输出步幅引起的离散误差,我们另外对每一个中心点预测了一个局部偏移:在这里插入图片描述
。所有类c共享相同的偏移量预测。偏移量用L1损失进行训练:
在这里插入图片描述

监督只在关键位置在这里插入图片描述
起作用,所有其他位置都被忽略。
在下一节中,我们将展示如何将这个关键点估计器扩展为通用对象检测器。

把目标当作点

在这里插入图片描述表示类别Ck、目标k的边界框。其中心点位于在这里插入图片描述在这里插入图片描述。我们用关键点估计器在这里插入图片描述去预测所有中心点。除此之外,我们对每一个物体k回归出尺寸:在这里插入图片描述
为了限制计算量,我们对所有目标类别用单个尺寸预测:在这里插入图片描述,在中心点用L1损失:
在这里插入图片描述

我们不进行尺度归一化而是直接用原始像素坐标,我们用常量在这里插入图片描述缩放尺度损失。整个目标函数如下:
在这里插入图片描述
没有特殊说明则,在这里插入图片描述在这里插入图片描述。我们用单个网络去预测关键点在这里插入图片描述,偏移量在这里插入图片描述,和尺寸在这里插入图片描述。该网络在每个位置预测(C + 4)输出总数。所有输出共享一个通用的全卷积骨干网络。对于每个模态,主干的特征然后通过一个单独的3x3卷积、ReLU和另一个1 x 1卷积。图4显示了网络输出的概述。第5节和补充材料包含额外的架构细节。

从点到边框。在推理过程,我们首先对每一类独立地抽取出热力图中的峰值。我们检测所有响应值大于它周围八个临近点的峰值,并且保留前100个。让在这里插入图片描述类别c集合n检测到的中心点在这里插入图片描述。每一个关键点由整数坐标在这里插入图片描述给出。我们用关键点的值在这里插入图片描述作为检测置信度的测量,并且输出在下述位置的边界框在这里插入图片描述,其中在这里插入图片描述是预测的偏差值;在这里插入图片描述是尺寸的预测值。所有输出都直接从关键点估计产生,不需要基于iou的非最大抑制(NMS)或其他后处理。峰值关键点提取作为一个充分的NMS替代方案,可以在设备上使用3x3最大池化操作有效地实现。

3D检测

3D检测估计每个对象的三维边界框,每个中心点需要三个额外的属性:深度3D维度方向。我们给它们分别加上一个头部
深度d是每个中心点的一个标量。然而,深度很难直接回归。我们用Eigen的输出变形和在这里插入图片描述,其中σ是sigmoid函数。我们把深度当作关键点估计器的额外输出通道在这里插入图片描述
它同样使用了两个由ReLU分隔的卷积层。与以前的模式不同,它在输出层使用反sigmoidal型变换。在sigmoidal形变换后,我们在原始深度域使用L1损耗来训练深度估计器。
一个物体的3D维度三维向量。我们直接回归到它们的绝对值,以米为单位使用一个单独的头部在这里插入图片描述和L1损失。
默认情况下,方向是单个标量。然而,它可能很难回归。我们遵循Mousavian等人的[38],并使用bin回归将方向表示为两个箱子。具体来说,方向是用8个标量编码的,每个容器有4个标量。对于一个仓,两个标量用于softmax分类,其余两个标量回归到每个仓内的一个角度。这些损失详情请见补充

人体姿态估计

人体姿态估计的目标是对图像中的每个人体实例 估计 k个 二维人体关节位置(对于COCO, k = 17)。我们把姿态看作是中心点的kx2二维性质,并通过中心点的偏移量来参数化每个关键点。我们直接回归到联合偏移量(像素)在这里插入图片描述和L1损失。我们通过掩盖损失来忽略不可见的关键点。这使得了基于回归的单阶段多人姿态估计类似于slow-rcnn版本的对等物
为了优化关键点,我们进一步估计了k个人体关节热图在这里插入图片描述采用标准的自下而上多人体姿态估计。我们用focal损失局部像素偏移训练人体联合热图,类似于第3节讨论的中心检测。
然后,我们将最初的预测快速捕捉到这张热图上最近的探测关键点。在这里,我们的中心偏移作为一个分组线索,将单个关键点检测分配给他们最近的人实例。具体来讲,让在这里插入图片描述代表一个被检测到的中心点,我们先回到所有的联合位置在这里插入图片描述,对j ∈ 1 … k。我们同样抽取所有关键点坐标在这里插入图片描述以置信度>0.1,对于每个关节类型j从相应的热图在这里插入图片描述然后,我们将每个回归位置在这里插入图片描述分配到其最近的检测关键点arg minl2Lj (llj)2,只考虑在检测对象的边界框内的联合检测。

实验细节

我们在四个架构上进行实验:ResNet-18, ResNet-101 , DLA-34 , and Hourglass-104。使用可变形卷积层修改了ResNets和DLA-34,使用了原版的Hourglass网络。
Hourglass。堆叠的Hourglass网络对输入进行 4x 下采样,然后是两个连续的Hourglass模块。每个Hourglass模块是一个对称的5层向下和向上卷积网络与跳跃连接。这个网络相当大,但通常能产生最佳的关键点估计性能。
ResNet。Xiao等人用三个上卷积网络对标准残差网络进行了扩充,以实现更高分辨率的输出(输出步幅4)。我们首先将三个上采样层的通道分别改为256;128;64,以节省计算。然后我们在每个上卷积前添加一个3 x 3可变形卷积层,通道数分别为256;128;64,将上卷积核初始化为双线性插值。有关详细的架构图,请参阅附录。
Deep Layer Aggregation (DLA)。DLA是一种具有分层跳跃连接的图像分类网络。我们利用DLA的全卷积上采样版本进行密集预测,该版本使用迭代深度聚合对称地提高特征图分辨率。我们用可变形卷积从较低的层增加跳跃连接到输出。具体来说,我们将原始卷积替换为3x3可变形卷积在每一个上采样层。有关详细的架构图,请参阅附录。
我们在每个输出头前增加一个256通道的3x3卷积层。最后一个1x1卷积然后产生所需的输出。我们在补充材料中提供了更多细节。
训练。输入像素:512 x 512
输出像素:128x128
数据增强。
Adam。
我们没有使用增强来训练3D估计分支,因为裁剪或缩放会改变3D测量值。
residual networks、DLA-34:batch size=128,8GPUs lr=5e-4 140 epochs learning rate dropped
Hourglass-104 batch-size 29 5 GPUs lr=2.5e-4 50 epochs learning rate dropped
采用ImageNet预训练初始化Resnet-101和DLA-34的下采样层,随机初始化上采样层。
renet -101和DLA-34在8个泰坦- v gpu上需要2.5天的时间,而Hourglass-104需要5天。
推理我们使用三个级别的测试增强:无增强,翻转增强,翻转和多尺度(0.5,0.75,1,1.25,1.5)。对于翻转,我们在解码bounding boxes之前平均网络输出。对于多尺度,我们使用NMS来合并结果。这些增强会产生不同的速度-精度权衡,如下一节所示。

实验

MS COCO 118k训练集 5k验证集 20k测试集。
我们报告了全部IOU阈值(AP)0.5倍IOU阈值(AP50)0.75倍IOU阈值 (AP75)的平均精度。补充中含有对PascalVOC的额外试验。

目标检测

如表1和图1所示。运行时间:Intel Core i7-8086K CPU, Titan Xp GPU, Pytorch 0.4.1, CUDA 9.0, and CUDNN 7.1
中心点比角点或极值点更容易检测。
在这里插入图片描述

在这里插入图片描述

SOAT对比

在这里插入图片描述

附加实验

在不幸的情况下,两个不同的物体可能共享同一个中心,如果它们完全对齐的话。在这种情况下,CenterNet将只检测其中一个。我们首先研究这种情况在实践中发生的频率,并将其与竞争方法的缺失检测联系起来。

中心点碰撞在COCO训练集中,有614对物体在步幅4时碰撞到同一个中心点上。总共有860001个对象,因此由于碰撞在中心点,CenterNet无法预测<0:1%的物体。基于中心的分配导致较少的冲突(相较于其他方法:RCNN等)。
NMS为了验证CenterNet不需要基于IoU的NMS,我们将其作为预测的后处理步骤运行。对于DLA-34 (flip-test), AP从39:2%提高到39:7%。对于Hourglass-104,AP保持在42:2%。考虑到影响较小,我们不使用它。
接下来,我们消融模型的新超参数。所有实验都是在DLA-34上进行的。
训练和测试分辨率。如表3a所示,保持原来的分辨率比修复测试分辨率稍微好一些。
回归损失。如表3c所示。
边界框尺寸权重。如表3b所示。
训练方案。如表3d所示。
在这里插入图片描述
最后,我们尝试了CenterNet的多个“锚”版本,回归到多个对象大小。这些实验没有取得任何成功。细节见补充。

3D检测

KITTI数据集:7841张训练图片。评估指标是在IOU阈值0.5下,11次召回(0:0到1:0,增量0:1)时汽车的平均精度。
我们基于2D bounding box(AP)、orientation(AOP)和Bird-eye-view bounding box(BEV AP)来评估iou。我们保持原始图像分辨率和pad为1280x384用于训练和测试。
结果如表4所示,与竞品不相上下,并且更快。

在这里插入图片描述

姿态估计

MS COCO。如表5所示。定性结果如图5。
在这里插入图片描述

在这里插入图片描述

结论

附录A:模型架构

如图6所示。
在这里插入图片描述

附录B:3D BBox 细节

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

附录C:碰撞实验细节

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

附录D:在PascalVOC的实验

结果如表6。
在这里插入图片描述

附录E:错误分析

结果如表7。
在这里插入图片描述

你可能感兴趣的:(道路目标检测,计算机视觉,深度学习,人工智能,python,算法)