CenterNet网络精读与分析

近期CVPR2019的最新论文CenterNet在一篇文章中就提出了一个能够解决目标检测、姿态检测、3D单目检测的掉炸天网络,一时间激起来了千层波浪。这几乎是未来目标检测一个全新的领域,或者说摈弃了一样老旧的目标检测思路,开始了一个新的纪元。

让我们来看一下这篇论文能够做的:


image.png

首先速度很快。

image.png

几乎是一个全能的网络。但是在这绚丽的表面背后,我们来窥探一下它的内部运作原理,以及它存在的问题,从而才可以从某些方面去完善优化它。

原理

One stage detectors 在图像上滑动复杂排列的可能bbox(即锚点),然后直接对框进行分类,而不会指定框中内容。
Two-stage detectors 对每个潜在框重新计算图像特征,然后将那些特征进行分类。
这是以往的目标检测方法所采用的理论方法基础。无论是one stage 或者是 two stage 都存在一个后处理:后处理,即 NMS(非极大值抑制),通过计算Bbox间的IOU来删除同个目标的重复检测框。这种后处理很难区分和训练,因此现有大多检测器都不是端到端可训练的。

本文通过目标中心点来呈现目标(见图2),然后在中心点位置回归出目标的一些属性,例如:size, dimension, 3D extent, orientation, pose。 而目标检测问题变成了一个标准的关键点估计问题。我们仅仅将图像传入全卷积网络,得到一个热力图,热力图峰值点即中心点,每个特征图的峰值点位置预测了目标的宽高信息。

模型训练采用标准的监督学习,推理仅仅是单个前向传播网络,不存在NMS这类后处理。不存在后处理是CenterNet类似网络一个巨大特点,也是一个非常好的优点,现有的目标检测方法在nms阶段就得浪费大量的时间

image.png

在于此同时,我们也感到很熟悉,这种方法与现在的姿态检测是不是非常相似?

  • 都是通过预测热力图峰值点来对关键点进行定位;
  • 都是端到端的热力图峰值点训练方式

但是二者也存在这很大的差别,最重要的一点,CenterNet将这种方法进行了横向与纵向的扩张。这一点尤为重要,泛华之后的应用带来的是不同领域的尝试和结合,结果证明,他们的尝试取得了非常不错的结果。

对于3D BBox检测,我们直接回归得到目标的深度信息,3D框的尺寸,目标朝向;

对于人姿态估计,我们将关节点(2D joint)位置作为中心点的偏移量,直接在中心点位置回归出这些偏移量的值。

image.png

关于3D关键点检测,这个图非常重要,它演示了像物体的长、宽、高是如何预测的。

除此之外,我们额外关注一下这个网络的loss设计:

image.png

其中Y_xyc是一个高斯核,对应的是GT和预测值的误差。

推理

网络的实际输出是热力图上的每个类别的峰值,这与PoseNet以及其他所有的姿态检测网络类似,但当我们知道了这些峰值之后,如何回归出需要的box呢?
做法是将热力图上的所有响应点与其连接的8个临近点进行比较,如果该点响应值大于或等于其八个临近点值则保留,最后我们保留所有满足之前要求的前100个峰值点。

3d检测部分:

3D检测是对每个目标进行3维bbox估计,每个中心点需要3个附加信息:depth, 3D dimension, orientation。我们为每个信息分别添加head.
其中depth非常难回归,需要做一些处理转换,众所周知,当我们知道了物体的距离,3D尺寸,旋转角度之后,物体的空间位置也就随之确定了。这对于从单目中直接得到物体的真实距离非常重要!!

更多

关于更多的论文解读与讨论,可以登录Mana未来社区:
http://ft.manaai.cn

进行关注,国内最大的AI代码市场已经上线:
http://manaai.cn
欢迎大家的关注

你可能感兴趣的:(CenterNet网络精读与分析)