【目标检测】CenterNet:Objects as Points论文理解

文章目录

  • 摘要
  • 1 介绍
  • 2 相关工作
  • 3 准备工作
  • 4 目标作为点
    • 4.1 3D检测
    • 4.2 人体姿态估计
  • 5 实现细节
  • 6 实验
    • 6.1 目标检测
      • 6.1.1 额外实验
    • 6.2 3D检测
    • 6.3 姿态估计
  • 7 结论
  • 8 附录
    • 8.1 附录A——碰撞实验细节
    • 8.2 附录B——Pascal VOC实验
    • 8.3 附录C——错误分析

摘要

  目标检测:
  将目标识别为图像中与轴对齐的方框。大多数成功的目标检测器列举出几乎详尽的潜在目标位置列表,并进行分类。这种方式浪费、效率低下,并且需要额外的后处理。
  本文:
  采用了一种不同的方法,将目标建模为一个单一点——目标边界框的中心点。目标检测器使用关键点估计来找到目标中心点,并回归目标的所有其他属性,如大小、3D位置、方向、甚至姿态。
  本文基于中心点的方法——CenterNet,是端到端可微的(不需要后处理操作,如NMS)比相应的基于边界框的检测器更简单、更快、更准确。
  实验结果:
  (1)目标检测:CenterNet在MS COCO数据集上取得了最好的速度-精度平衡。
  (2)3D目标检测&人体姿态估计:与复杂的多阶段方法具有竞争力,并实时运行。

1 介绍

  目标检测是计算机视觉的基础技术:
  目标检测为许多视觉任务提供了强大的功能,如实例分割、姿态估计、跟踪和动作识别。它的下游应用有监控、自动驾驶、视觉问答。
  当前目标检测器:
  当前的目标检测器:首先,通过一个紧密包含目标且与轴对其的边界框来表示每个目标;然后,将目标检测简化为大量潜在目标边界框的分类,对于每个边界框,分类器确定边界框内容是特定目标还是背景。
  (1)单阶段检测器:在图像上滑动复杂排列的anchor boxes,不指定框内容直接对它们进行分类。
  (2)两阶段检测器:重新计算每个潜在边界框内的图像特征,然后对这些特征进行分类。
  后处理(NMS)通过计算边界框IoU来移除相同实例的重复检测。 后处理很难区分和训练,因此目前大多数检测器都是端到端不可训练的。 尽管如此,在过去的5年里,这一想法取得了很好的实证成功。
  (3)基于滑动窗口的目标检测器:需要枚举所有可能的目标位置和尺寸,浪费。
  本文方法:
【目标检测】CenterNet:Objects as Points论文理解_第1张图片
  提供一个更简单、有效的替代方案。使用目标边界框的中心点来表示目标(图2),直接从中心点位置的图像特征回归得到目标其他属性如目标大小、维度、3D范围、方向和姿态。CenterNet使目标检测变为一个标准的关键点估计问题,只需将输入图像输入到一个全卷积网络生成热图,热图中的峰值与目标中心相对应,每个峰值处的图像特征预测目标的边界框高度和宽度。训练:使用标准密集监督学习进行训练。推理:是一个单一网络的前向传递,没有非极大值抑制的后处理操作。
  本文方法优点:
  (1)通用的,可以扩展到其他的任务,如3D目标检测、人体姿态估计。
  (2)运行速度快,如图1。
【目标检测】CenterNet:Objects as Points论文理解_第2张图片
  代码:https://github.com/xingyizhou/CenterNet

2 相关工作

  基于区域分类的目标检测:
  (1)RCNN:第一个成功的基于深度学习的目标探测器,从大量候选区域中枚举目标位置,裁剪图像块,并使用深度网络分类。
  (2)Fast RCNN:为节省计算,裁剪图像特征。
  上述方法都依赖于缓慢的低级区域提议方法,如选择性搜索算法。
  使用隐式anchor的目标检测:
  (1)Faster RCNN:在检测网络内生成区域建议——在低分辨率图像网格周围采样固定形状的边界框(anchors);将每个边界框分类为“前景”(与GT的IoU>0.7的锚框)或“背景”(与任意GT的IoU<0.3的锚框),其他IoU的锚框被忽略;之后每个生成的区域建议被再次分类。
  (2)单阶段检测器:将区域建议分类器改变为多类分类,形成了单阶段检测器的基础。单阶段检测器的一些改进包括先验anchor形状、不同特征分辨率、不同样本之间的损失重加权。
  (3)本文方法:与基于anchor的单阶段方法密切相关——一个中心点可以被看作一个单一的形状无关的anchor(见图3)。
【目标检测】CenterNet:Objects as Points论文理解_第3张图片
  与基于anchor的单阶段方法的区别:
  ①CenterNet分配“anchor”完全基于位置,而不是框重叠,对于前景和背景分类,没有人工阈值。
  ②每个目标只有一个正“anchor”,因此不需要非极大值抑制(NMS),只需简单提取关键点热图中的局部峰值。
  ③与传统单阶段目标检测器(stride=16)相比,CenterNet使用了更大的输出分辨率(stride=4),消除了对多个anchos的需要。

  基于关键点估计的目标检测:
  本文不是第一个使用关键点估计来检测目标的。
  (1)CornerNet:检测两个边框角作为关键点
  (2)ExtremeNet:检测所有目标的顶部、左边、底部、右边和中心点。
  CornerNet、ExtremeNet都建立在与CenterNet相同的关键点估计网络。然而,它们需要在关键点检测后进行组合分组,大大降低了算法的运行速度。本文CenterNet只为每个目标提取一个中心点,而不需要进行分组或后处理。

3 准备工作

  (1)网络输入:设I∈RW×H×3be为宽W高h的输入图像。
  (2)网络输出(预测关键点热图):在这里插入图片描述在这里插入图片描述关键点热图,R为输出步长,输入图像以输出因子R被下采样 (默认R = 4),C为关键点类型数,在目标检测中C = 80个目标类别。
  中心关键点:在这里插入图片描述代表检测到的一个关键点,在关键点热图中该点的值为1。
  背景:在这里插入图片描述为检测到的背景,在关键点热图中该位置的值为0。
  (3)主干网络:
  使用几种不同的全卷积编码-解码器网络,从输入图像I中预测热图ˆY,包括堆叠沙漏网络(hourglass )、反卷积残差网络(ResNet)和深层聚合(DLA)网络。
  (4)GT关键点热图:
  首先,对每一个c类的GT关键点p∈R2计算一个低分辨率的等价标识在这里插入图片描述
  然后,将所有的GT关键点使用一个高斯核在这里插入图片描述映射到热图在这里插入图片描述,其中σp为目标大小自适应的标准差。如果同一类的两个高斯分布重叠,取元素的最大值。
  (5)中心点预测损失&偏移损失:
  中心点预测损失: 使用GT关键点热图和网络预测的关键点热图进行计算得到
【目标检测】CenterNet:Objects as Points论文理解_第4张图片
  其中α和β为focal损失的超参数,N为图像I中关键点的个数,选择N归一化将所有正focal实例归一化为1,实验均采用α = 2和β = 4。
  中心点偏移损失: 为了恢复输出步长引起的离散化误差,对每个中心点预测一个局部偏移在这里插入图片描述所有类c共享相同的偏移预测。用L1损失来训练偏移量
在这里插入图片描述
  该监督仅作用于GT关键点位置p~,其他所有位置均被忽略。

4 目标作为点

  边界框:设(x(k) 1, y(k) 1, x(k) 2, y(k) 2)目标k类别ck的边界框。
  边界框中心点: 在这里插入图片描述在这里插入图片描述
  边界框大小: 目标大小在这里插入图片描述
  边界框大小损失: 使用关键点估计器ˆY(既关键点热图)来预测所有目标中心点,并对每个目标k回归到目标大小。为了限制计算量,对所有目标类别使用单个大小预测在这里插入图片描述。目标大小L1损失:在这里插入图片描述
  总损失:
  不归一化尺度而是直接使用原始像素坐标。总的训练损失是:关键点预测损失、关键点偏移损失、边界框大小损失
在这里插入图片描述
  除特别说明实验设定λsize= 0.1,λoff = 1。使用单个共享的全卷积骨干网来预测目标关键点ˆY、关键点偏移ˆO、目标大小ˆS,每个预测头部,主干的特征都通过一个3 × 3卷积、ReLU和另一个1 × 1卷积。(图4网络输出概述)网络在每个位置预测C + 4输出——C为类别数量、2为中心点偏移、2为目标大小
【目标检测】CenterNet:Objects as Points论文理解_第5张图片
  从点到边界框:
  (1)提取C类热图的峰值,获取C类目标中心点: 推理时首先独立地提取每个类热图中的峰值——既检测该类热图中所有值大于或等于它的8个连接邻居的响应点(峰值),保持前100个峰值。
  (2)中心点产生边界框: ˆPc为c类的n个检测到的中心点集合ˆP ={(ˆxi,ˆyi)}n i=1,每个中心关键点的位置由整数坐标(xi, yi)给出。关键点值ˆYxiyicas为检测置信度的度量,在该关键点位置产生一个边界框
在这里插入图片描述
  其中在哪里(δˆxi,δˆ易)=ˆOˆxi,ˆyiis是偏移量预测和(ˆwi,ˆ嗨)=ˆ年代ˆxi,ˆyiis是边界框大小预测。

  总结:所有输出直接从关键点估计产生,不需要基于IoU的非极大值抑制(NMS)或其他后处理。峰值关键点提取作为一种充分的NMS替代方案,可以在设备上使用3 × 3最大池操作有效实现。

4.1 3D检测

4.2 人体姿态估计

5 实现细节

  四种架构:
  ResNet-18、ResNet101、DLA-34和Hourglass-104。使用可变形卷积层修改了ResNet和DLA-34。
【目标检测】CenterNet:Objects as Points论文理解_第6张图片
  (1)沙漏网络: 堆叠的沙漏网络对输入进行4×采样,然后是两个连续的沙漏模块。每个沙漏模块是一个对称的5层卷积-向上卷积网络,并带有跳跃连接。这个网络相当大,但通常产生最佳的关键点估计性能。
  (2)ResNet: 用三个向上卷积网络增强标准残差网络,以实现更高分辨率的输出(输出步幅为4)。首先将三个上采样层的通道分别更改为256,128,64以节省计算;然后在每个向上卷积之前分别添加一个3 × 3可变形卷积层,通道分别为256,128,64,反卷积核初始化为双线性插值。
  (3)DLA : Deep Layer Aggregation (DLA)是一种具有分层跳跃连接的图像分类网络。利用DLA的全卷积上采样版本进行密集预测,该网络使用迭代深度聚合来对称地增加特征图分辨率,我们通过可变形卷积从下层到输出增强了跳跃连接。具体来说,在每一个上采样层,用3×3变形卷积代替原来的卷积。
  主干架构输出特征图,该特征图作为3个预测头部(热图、偏移、尺寸)的输入,三个预测头部由一个256通道的3 × 3卷积和一个1 × 1的卷积构成,然后产生期望的输出。
  训练设置:
  (1)输入和输出: 在512 × 512的输入分辨率上进行训练。产生一个输出分辨率为128×128。
  (2)数据增强: 随机翻转、随机缩放(0.6-1.3)、裁剪和颜色抖动
  (3)优化器: 使用Adam优化器来优化整体目标。
  (4)批量和学习率:
  ResNet和DLA-34,使用批量大小为128和5e-4的学习速率进行140个epoch的训练,在90和120个epoch学习速率分别下降10×。
  Hourglass-104,使用批量大小29和学习率2.5e-4,训练50个epoch,在40个epoch学习率下降10×。
  (5)预训练模型: 微调了ExtremeNet中的Hourglass-104以节省计算。利用ImageNet预训练模型对Resnet101和DLA-34的下采样层进行初始化,对上采样层进行随机初始化。
  (6)训练时间: resnet - 101和DLA-34在8个TITAN-V GPU上训练需要2.5天,而Hourglass-104则需要5天。
  推理设置:
  使用三种程度的测试增强:无增强、翻转增强、翻转和多尺度增强(0.5,0.75,1,1.25,1.5)。
  对于翻转,在解码边界框之前对网络输出进行平均;对于多尺度,使用NMS来合并结果。
  这些增强会产生不同的速度-精度权衡。

6 实验

  实验数据: 在包含118k训练图像(train2017)、5k验证图像(val2017)和20k测试验证图像(test-dev)的MS COCO数据集上评估目标检测性能。
  实验度量: IOU阈值下的平均精度(AP),IOU阈值0.5(AP50)和0.75 (AP75)时的AP。
  补充含有额外PascalVOC实验。

6.1 目标检测

【目标检测】CenterNet:Objects as Points论文理解_第7张图片
【目标检测】CenterNet:Objects as Points论文理解_第8张图片
  表1显示了使用不同的主干和测试选项进行COCO验证的结果。图1比较了CenterNet和其他实时检测器。
  Hourglass-104: 以相对较快的速度获得了最佳的精度(7.8 FPS和42.2%AP)。CenterNet利用该主干网络在速度和精度上都优于CornerNet(40.6% AP和4.1 FPS)和ExtremeNet(40.3% AP和 3.1 FPS)。速度改进来自于更少的输出头部和更简单的边界框解码方案。精度改进表明中心点比角点或极端点更容易检测。
  ResNet-101: 使用相同主干表现优于RetinaNet。本文只在上采样层使用了可变形的卷积,这不影响RetinaNet。同样的精度下,CenterNet速度是RetinaNet的两倍多。CenterNet使用ResNet-18模型在142帧/秒的情况下也达到了28.1%的性能。
  DLA-34: 提供了最好的速度/精度平衡,它以每秒52帧的速度运行,AP为37.4%,速度是YOLOv3的两倍多,AP高4.4%。通过翻转测试,本文模型仍然提供比YOLOv3快,并且达到了faster - rcnn - fpn的精度水平。
  最先进检测器比较:
【目标检测】CenterNet:Objects as Points论文理解_第9张图片
  表2与其他最先进的检测器进行比较。通过多尺度评估,CenterNet+Hourglass104的AP达到45.1%,优于现有的所有单阶段检测器。复杂的两阶段检测器更精确,但也更慢。CenterNet的行为与常规检测器类似,只是速度更快。

6.1.1 额外实验

  在不幸的情况下,两个不同的目标如果完全对齐可能共享同一个中心,在这种情况下,CenterNet将只检测其中一个。首先研究这种情况在实践中发生的频率,并将其与竞争方法的漏检联系起来。
  (1)实践中发生的概率: 在COCO训练集中,有614对目标在步长为4的特征图上碰撞同一个中心点,而COCO数据集中总共有860001个目标,由于中心点碰撞,CenterNet无法预测的目标数量< 0.1%。远远小于slow或fastRCNN由于不完美区域建议而造成的漏检(~2%),也小于基于anchor的方法由于锚点放置不足而造成的漏检。此外,715对目标边界框之间的IoU > 0.7,将被分配到两个anchor,因此基于中心的分配导致较少的碰撞。
  (2)NMS: 为了验证CenterNet不需要基于IoU的NMS,使用NMS作为CenterNet预测的后处理步骤运行时。DLA-34 (翻转测试)的AP从39.2%提高到39.7%。Hourglass-104, AP保持在42.2%。考虑到轻微的影响,不使用NMS。
  (3)训练和测试分辨率: 在训练期间,将输入分辨率固定到512×512。在测试过程中,遵循CornerNet保持原始图像的分辨率,并将输入0填充至网络最大步幅。对于ResNet和DLA,使用最多32像素填充图像,对于HourglassNet,使用128像素。如表3a所示,保持原来的分辨率比固定测试分辨率稍好。在较低分辨率(384 × 384)下训练和测试速度要快1.7倍,但AP会下降。
【目标检测】CenterNet:Objects as Points论文理解_第10张图片
  (4)回归损失: 比较普通的L1损失和Smooth L1损失。我们在表3c中的实验表明,L1比平滑L1要好得多。它在精细尺度上产生更好的精度,这是在关键点回归中独立观察到的。
【目标检测】CenterNet:Objects as Points论文理解_第11张图片
  (5)边界框大小权重: 分析本文方法对损失权值λsize的敏感性。表3b显示0.1有一个好的结果。当AP值较大时,由于损失的范围从0到输出大小w/R或h/R,而不是从0到1,AP的退化很明显。但是对于较低的权重,该值不会显著降低。
【目标检测】CenterNet:Objects as Points论文理解_第12张图片
  (6)训练流程: 默认情况下,对关键点估计网络进行140epoch训练,学习速率在90epoch时下降。在降低学习率之前将训练时间加倍,则性能将进一步提高1.1个AP(表3d),代价是更长的训练时间。为了节省计算资源在消融实验中使用了140个epoch,但与其他方法相比,DLA使用了230个epoch。
【目标检测】CenterNet:Objects as Points论文理解_第13张图片
  最后通过回归到多个目标大小来尝试CenterNet的多个“anchor”版本。这些实验没有取得任何成功,见补充。

6.2 3D检测

6.3 姿态估计

7 结论

  提出了一种新的目标表示方法——作为点。CenterNet目标检测器建立在成功的关键点估计网络上,找到目标中心,并回归目标的大小。该算法简单、快速、准确、端到端可微,无需任何NMS后处理。
  本文设计理念是通用的,并且有广泛的应用,不仅仅是简单的二维检测。CenterNet可以在一次向前传播中估算一系列额外的目标属性,如姿态、3D方向、深度和范围。
  为实时目标检测和相关任务开辟了新的方向。

8 附录

8.1 附录A——碰撞实验细节

  分析COCO训练集标注:
  目的是显示碰撞案例发生的频率。COCO训练集(train 2017)包含N = 118287幅图像和M= 860001个目标(MS= 356340个小型目标,MM= 295163个中型目标,ML= 208498个大型目标),共80个类别。
  中心点碰撞:
  令图像K的类别为c的第i个边界框是在这里插入图片描述边界框中心在4×步长下为在这里插入图片描述在这里插入图片描述,n (kc)为图像k中类别c的目标个数。中心点碰撞次数计算为:
【目标检测】CenterNet:Objects as Points论文理解_第14张图片
  在数据集上得到Ncenter= 614。
  IoU的碰撞:
  类似地计算两个边界框基于IoU的碰撞
在这里插入图片描述
  得到N[email protected]= 715和N[email protected]= 5179。
  基于anchor的检测器漏检的目标:
  RetinaNet将anchor分配给与其IoU> 0.5的GT框,如果一个GT框没有任何anchor与其IoU > 0.5,则将IoU最大的anchor赋给它。
  计算这种强制分配发生的频率,在stride S = 16时,使用15个anchors(5个大小:32,64,128,256,512,和3个长宽比:0.5,1,2)。对于每幅图像,将其短边大小调整为800后,将这些anchor放置在位置{(S/2 + i × S, S/2 + j × S)},其中i∈[0,b(W−S/2) S c]在这里插入图片描述
。W, H是图像的宽和高(较小的等于800)。这导致一系列锚点A . 在这里插入图片描述
。通过以下方法计算强制分配的anchor的数量
【目标检测】CenterNet:Objects as Points论文理解_第15张图片
  RenitaNet需要强制分配的数量为Nanchor= 170220,其中125831用于小型目标(小型目标的35.3%),18505用于中型目标(中型目标的6.3%),25884用于大型目标(大型目标的12.4%)。

8.2 附录B——Pascal VOC实验

  Pascal VOC数据集:
  Pascal VOC是一种流行的小目标检测数据集。在VOC 2007和VOC 2012训练集上进行训练,在VOC 2007测试集上进行测试,包含16551个训练图像,4962个测试图像,类别数量为20。评估指标是IoU=0.5的均值平均精度(mAP)。
  网络训练设置:
  改进的ResNet-18、ResNet101和DLA-34在384×384和512×512两个分辨率下进行实验。所有网络训练70epoch,学习速率分别在45和60epoch时下降10倍;批量32和学习率1.25e-4,遵循线性学习率规则。
  网络训练时间:
  单个GPU上,384×384分辨率下训练ResNet-101和DLA-34分别需要7小时/ 10小时。对于512 × 512,在两个gpu上训练花费的时间是一样的。翻转增强用于测试,所有其他超参数都与COCO实验相同。从零开始训练Hourglass104时,它不能在合理的时间(2天)内收敛
【目标检测】CenterNet:Objects as Points论文理解_第16张图片
  网络性能比较:
  结果如表,最好的CenterNet-DLA模型与顶级方法具有竞争力,并保持实时速度。

8.3 附录C——错误分析

  通过用GT值替换每个输出头来进行误差分析:
  对于中心点热图,使用渲染的高斯GT值热图。
  对于边界框盒大小,对每个检测使用最近的GT大小。
【目标检测】CenterNet:Objects as Points论文理解_第17张图片
  表7结果表明,两个尺寸映射的改进都会带来适度的性能提升,而中心映射的提升则要大得多。如果没有预测关键点偏移量,则最大AP值为83.1。由于高斯热图渲染中的离散化和估计误差,整个GT流失了约0.5%的目标。

你可能感兴趣的:(目标检测,计算机视觉)