软件开发架构师

何恺明团队开源3D目标检测新框架VoteNet:模型更简单、效率更高-InfoQ

人工智能 11 2019-09-02 23:32

当前主流的 3D 目标检测方法,很大程度上受 2D 检测器的影响。为了利用 2D 检测器,研究人员通常将 3D 点云转换为规则的网格(体素网格或鸟瞰图像),或者依靠 2D 图像检测器来提取 3D 边界框。很少有研究尝试直接探测点云中的物体。何恺明团队在 ICCV2019 发表的论文《基于深度霍夫投票的 3D 目标检测》(Deep Hough Voting for 3D Object Detection in Point Clouds)中,回归第一原则,为点云数据构建尽可能通用的 3D 检测方法。本文是 AI 前线第 91 篇论文导读,我们将为大家详细解读本论文的技术要点。

由于数据的稀疏性,直接从场景点预测边界框参数时面临着一个重大挑战:3D 对象的质心可能远离任何表面点,因此很难用一个步骤准确地回归。为了解决这一问题,作者提出了一种基于深度点集网络和霍夫投票的端到端 3D 目标检测网络 VoteNet。该模型设计简单、模型尺寸紧凑,而且效率高。在 ScanNet 和 SUN RGB-D 两个大型数据集上取得了最先进的 3D 检测精度。VoteNet 通过使用纯几何信息而不依赖彩色图像,取得了比以前的方法更好的结果。论文已被 ICCV 2019 收录,且论文代码已在 GitHub 开源。

介绍

3D 目标检测的目的是定位和识别 3D 场景中的对象。具体地说,在这项工作中,作者的目的是从点云数据中估计定向的 3D 边界框以及对象的语义类别。

何恺明团队开源3D目标检测新框架VoteNet:模型更简单、效率更高-InfoQ-1

图 1:使用深度霍夫投票进行点云中的 3D 目标检测
  与 2D 图像相比,3D 点云具有精确的几何形状和对光照变化的鲁棒性。但是,点云是不规则的。因此,典型的 CNN 不太适合直接用于处理点云数据。   为了避免处理不规则点云,目前的 3D 探测方法在很多方面都严重依赖基于 2D 的检测器。例如将 Faster 或 Mask R-CNN 等 2D 检测框架扩展到 3D,或者将点云数据投影为规则的 2D 鸟瞰图像,然后应用 2D 检测器定位对象。然而,这种方法会牺牲几何细节,而这些细节在杂乱的室内环境中可能是至关重要的。   在这项工作中,作者提出了一个以点云数据为中心的 3D 检测框架 VoteNet。该框架 ** 直接处理原始数据,不依赖于任何 2D 检测器 **。VoteNet 基于点云 3D 深度学习模型的最新进展,并受到用于对象检测的广义霍夫投票过程的启发。   作者利用 PointNet++,这是一个用于点云学习的分层深度网络,以减少将点云转换为规则结构的需要。通过直接处理点云,不仅避免了量化过程中信息的丢失,而且通过仅对感测点进行计算,也利用了点云的稀疏性。   虽然 PointNet++ 在对象分类和语义分割方面都很成功,但很少有研究使用此类架构来检测点云中的 3D 对象。一个简单的解决方案是遵循 2D 检测器的常规做法——密集目标候选(dense object proposal),即直接从感测点(及其所学特征)中提出 3D 边界框。然而,点云固有的稀疏性使得这种方法并不适合。在图像中,通常在目标中心附近存在一个像素,但在点云中往往不是这样。由于深度传感器仅能捕获物体的表面,因此 3D 物体的中心很可能位于远离任何点的空白空间中。因此,基于点的网络很难在目标中心附近聚集场景上下文。简单地增加感受野并不能解决这个问题,因为当网络捕获更大的上下文时,它也会包含更多的附近的目标和杂物。   为此,作者提出赋予点云深度网络一种类似于经典霍夫投票(Hough voting)的投票机制。通过投票,基本上生成了靠近对象中心的新点,可以对这些点进行分组和聚合(grouped and aggregated),以生成候选框(box proposals)。   与传统的多独立模块、难以联合优化的霍夫投票相比,VoteNet 是端到端优化的。具体来说,在通过主干网络传递输入点云之后,对一组种子点进行采样,并根据它们的特征生成投票。投票的目的是到达目标中心。因此,投票集群出现在目标中心附近,然后可以通过一个学习模块进行聚合,生成候选框。这种方法可以得到一个强大的 3D 物体探测器,它是纯几何的,可以直接应用于点云。   作者在两个具有挑战性的 3D 目标检测数据集上评估了 VoteNet:SUN RGB-D 和 ScanNet。在这两个数据集上,仅使用几何信息的 VoteNet 显著优于使用 RGB 和几何甚至多视图 RGB 的现有技术。该研究表明,投票方案支持更有效的上下文聚合,并验证了当目标中心远离目标表面时(如桌子、浴缸),VoteNet 能够提供最大的改进。   这篇论文的贡献如下:
  • 通过端到端的可微架构,在深度学习的背景下重新定制了霍夫投票,称之为 VoteNet。

  • 在 SUN RGB-D 和 ScanNet 两个数据集上实现了最先进的 3D 目标检测性能。

  • 深入分析了投票在点云 3D 目标检测中的重要性。

深度霍夫投票(Deep Hough Voting)

传统的霍夫投票 2D 检测器包括离线和在线两个步骤。首先,给定一组带有标注的对象边界框的图像,用图像块(或其特征)及其到相应目标中心的偏移量之间的映射关系构建一个 codebook。在推理时,从图像中选择兴趣点以提取周围的图像块。然后将这些图像块与 codebook 中的图像块进行比较,以检索偏移量并计算投票。由于目标的图像块倾向于一致投票,因此将在目标中心附近形成集群。最后,通过追溯集群投票到生成的图像块来检索目标边界。
 
这种方法非常适合点云数据 3D 目标检测的问题。首先,基于投票的检测比区域候选网络(RPN)更适合于稀疏集。其次,它基于自下而上的原理,积累少量的局部信息以形成可靠的检测。
 
然而,由于传统的霍夫投票是由多个独立的模块组成的,如何将其集成到点云网络仍然是一个开放的研究课题。为此,作者建议对流程的不同成分进行以下调整。
 
兴趣点(Interest points)由深度神经网络来描述和选择,而不是依赖手工提取的特征。
 
投票(Vote)生成是由网络学习的,而不使用 codebook。利用更大的感受野,可以减少投票的模糊,使投票更有效。此外,还可以使用特征向量对投票位置进行增强,从而实现更好的聚合。
 
投票聚合(Vote aggregation)是通过可训练参数的点云处理层实现的。利用投票功能,网络可以过滤掉低质量的投票,并生成改进的候选区域(proposals)。
 
目标候选(object proposal)的形式为:位置、维度、方向,甚至语义类别,都可以直接从聚合特征中生成,从而减少了追溯投票来源的需要。
 
下面的内容将介绍如何将上述的所有成分组合成端到端的网络 VoteNet。

VoteNet 结构

图 2 给出了端到端检测网络 VoteNet 的结构。整个网络可以分为两部分:一部分处理现有的点来生成投票;另一部分处理虚拟点——投票——来提出和分类目标。

何恺明团队开源3D目标检测新框架VoteNet:模型更简单、效率更高-InfoQ-2

图 2:用于点云中 3D 目标检测的 VoteNet 结构。给定一个包含 N 个点和 XYZ 坐标的输入点云,一个主干网络(使用 PoingNet++ 实现),对这些点进行采样和学习深度特征,并输出 M 个点的子集。这些点的子集被视为种子点。每个种子通过投票模块独立地生成一个投票。然后将投票分组为集群,并由 proposal 模块处理,生成最终的 proposal。经过分类得到的 proposal 经过 NMS(非极大值抑制),即为最终的 3D 边界框。

从点云数据中学习投票

给定一个大小为 N×3 的输入点云,N 个点中的每个点都有一个 3D 坐标,目标是生成 M 个投票,其中每个投票都有一个 3D 坐标和一个高维特征向量。主要有两个步骤:通过主干网络学习点云特征和从种子点学习霍夫投票。
 
点云特征学习。生成一个准确投票需要几何推理和上下文信息。作者利用最近提出的深度网络在点云上进行点特征学习。作者采用了 PointNet++ 作为主干网络。主干网络有多个集抽象层和跳跃连接的特征传播(上采样)层,这些层输出的是输入点的子集,包含 XYZ 坐标和一个 C 维特征向量。结果为 M 个种子点,维度为 3+C。每个种子点生成一个投票。
 
深度网络霍夫投票。传统的霍夫投票是通过在预先计算的 codebook 中查找决定的,作者使用一个基于深度网络的投票模块生成投票,不仅效率更高,而且更准确,因为它是与剩下的步骤一起训练的。
 
给定一组种子点{si},si=[xi;fi];xi 表示三维坐标,fi 表示 C 维特征矢量,一个共享的投票模块从每个种子中独立地生成投票。具体来说,投票模块是通过多层感知器(MLP)网络实现的。MLP 输入种子特征 fi,输出欧几里得空间偏移量Δxi 和特征偏移量Δfi,那么从种子生成的投票 vi=[yi;gi],其中 yi=xi+Δxi,gi=fi+Δfi。
 
预测的 3D 偏移量Δxi 由回归损失监督:

何恺明团队开源3D目标检测新框架VoteNet:模型更简单、效率更高-InfoQ-3

其中 1[si on object] 表示种子点 si 是否在目标表面上,Mpos 是目标表面上种子的总数。Δxi * 是从种子位置 xi 到它所属物体的边界框中心的真实偏移量。

从投票中得到目标的 proposal 和分类

通过抽样和分组对投票聚类。作者选择了一种简单的策略对投票聚类,即根据空间邻近度进行统一采样和分组。具体地说,从一组投票{vi=[yi;gi]}中,作者基于{yi}进行最远点采样,得到包含 K 个投票的子集{vik}。然后通过找到每个 vik 3D 位置的近邻投票来形成 K 个聚类:
 
从投票聚类中得到 proposal 和分类。由于投票聚类本质上是一组高维点,因此可以利用一个通用的点集学习网络来聚合投票,以生成目标 proposal。作者采用共享的 PointNet。给定一个投票聚类 C={wi},其中 wi=[zi;hi],zi 为投票位置,hi 为投票特征,聚类中心为 wj。为了利用局部投票几何,将投票位置转换成局部标准化坐标系。然后对于聚类 C 的目标 proposal p©就可以通过把集合输入一个类似 PointNet 的模块得到:

何恺明团队开源3D目标检测新框架VoteNet:模型更简单、效率更高-InfoQ-4

其中,来自每个聚类的投票由 MLP1 独立处理,然后按通道最大池化为单特征向量,并传递到 MLP2,在那里,来自不同投票的信息进一步组合。作者将 proposal p 表示为一个多维向量,包括目标性得分、边界框参数和语义分类得分。
 
损失函数。Proposal 和分类阶段的损失函数包括目标性、边界框估计和语义分类损失。
 
对于目标性分数,监督信息为投票与真实目标中心更近(0.3 米以内)或远离任何中心(0.6 米以上)。作者将这些投票产生的 proposal 分别视为积极 proposal 和消极 proposal。对于其他 proposal 的对象性预测不进行惩罚。对象性是通过交叉熵损失来监督的,该交叉熵损失由一个 batch 中不被忽略的 proposal 的数量进行归一化。对于积极的 proposal,将根据最近的真实边界框进一步监督边界框估计和语义类预测。具体来说,作者将边界框损失与中心回归、航向角估计和边界框尺寸估计分开。对于语义分类,使用标准的交叉熵损失。

实验结果

作者首先在两个大型 3D 室内目标检测基准上,将基于霍夫投票的检测器与之前最先进的方法进行比较。然后,作者提供了分析实验来了解投票的重要性、不同的投票聚合方法的效果,并展示了该方法在紧凑性和效率方面的优势。最后,作者展示了检测器的定性结果。

与 SOTA 方法进行比较

####数据集
SUN RGB-D 是一个单视图 RGB-D 数据集,用于 3D 场景理解。包含 5K 的 RGB-D 训练图像,包含 37 个类别的标注框。作者使用提供的相机参数将深度图像转换为点云数据。
 
ScanNetV2 是一个注释丰富的室内场景 3D 重建网格数据集。包含从数百个不同房间收集的 1.2K 训练样本,并用语义和实例分割对 18 个目标类别进行标注。与 SUN RGB-D 相比,ScanNetV2 中的场景更完整,平均覆盖的区域更大,目标更多。作者从重建的网格中抽取顶点作为输入点云。
####方法比较

何恺明团队开源3D目标检测新框架VoteNet:模型更简单、效率更高-InfoQ-5

表 1:SUN RGB-D val 数据集上的 3D 目标检测结果。评价标准为 3D IoU 阈值为 0.25 的平均精度。
  ! image
表 2:ScanNetV2 val 数据集上的 3D 目标检测结果。
  实验结果如表 1 和表 2 所示。在 SUN RGB-D 和 ScanNet 两个数据集中,VoteNet 的性能都优于所有先前的方法,分别增加了 3.7 和 18.4 个 mAP。

表 1 表明,当类别为训练样本最多的“椅子”时,VoteNet 比以前的最优方法提高了 11AP。表 2 表明,仅采用几何输入时,VoteNet 显著优于基于 3D CNN 的 3D-SIS 方法,超过了 33AP。

分析实验

####投票好还是不投票好呢?

作者采用了一个简单的基线网络,称之为 BoxNet,它直接从采样的场景点提出候选框,而不需要投票。BoxNet 与 VoteNet 具有相同的主干,但它不是投票,而是直接从种子点生成框。表 3 显示,在 SUN RGB-D 和 ScanNet 上,相比 BoxNet,投票机制的网络性能分别提高了 5 mAP 和 13 mAP。

何恺明团队开源3D目标检测新框架VoteNet:模型更简单、效率更高-InfoQ-6

表 3:VoteNet 和 no-vote 基线的比较
  那么,投票在哪些方面有帮助呢?作者认为,由于在稀疏的 3D 点云中,现有的场景点往往远离目标的中心点,直接提出的 proposal 可能置信度较低或不准确。相反,投票让这些较低的置信点更接近,并允许通过聚合来强化它们的假设。在图 3 中,作者在一个典型的 ScanNetV2 场景中演示了这种现象。如图所示,VoteNet(右)提供了比 BoxNet(左)更广泛的“好”种子点的覆盖范围,显示了投票带来的稳定性。

何恺明团队开源3D目标检测新框架VoteNet:模型更简单、效率更高-InfoQ-7

图 3:投票有助于增加检测上下文。由种子点(BoxNet),或投票(VoteNet)在图中用蓝色显示。随着投票有效地增加了上下文,VoteNet 能够更密集的覆盖场景,因此增加了准确检测的可能性。

何恺明团队开源3D目标检测新框架VoteNet:模型更简单、效率更高-InfoQ-8

图 4:当目标点远离目标中心的情况下,投票更有帮助。
  图 4 给出了第二个分析,显示了在同一个图上(以不同的比例),对于每个 SUN RGB-D 的类别:(蓝色点)在 VoteNet 和 BoxNet 之间 mAP 的增加,以及(红色方块)目标点和边界框中心之间的最近距离。可以看出,当目标点远离边界框中心时,投票会起到更大的作用。

####投票聚合的效果

投票聚合是 VoteNet 的一个重要组成部分,因为它允许投票之间的沟通。因此,分析不同的聚合方案对性能的影响是非常有用的。

何恺明团队开源3D目标检测新框架VoteNet:模型更简单、效率更高-InfoQ-9

图 5:投票聚合分析

图 5(右)表明,由于存在杂乱投票(即来自非目标种子的投票),使用学习的 PointNet 和最大池化进行投票聚合比手动聚合局部区域中的投票特征能获得更好的结果。图 5(左)给出了投票聚合半径对检测的影响。随着聚和半径的增加,VoteNet 的效果会不断提高,在 0.2 半径处达到峰值。当半径过大时,引入了更多的杂乱投票,导致性能下降。

####模型大小和速度

VoteNet 利用了点云的稀疏性,避免在空的空间搜索。与以前的最佳方法相比,该模型比 F-PointNet 小 4 倍,在速度上比 3D-SIS 快 20 倍。

何恺明团队开源3D目标检测新框架VoteNet:模型更简单、效率更高-InfoQ-10

表 4:模型尺寸和处理时间。

定性结果和讨论

图 6 和图 7 分别给出了 VoteNet 在 ScanNet 和 SUN RGB-D 场景上检测结果的几个代表性示例。如图所示,场景是非常多样化的,并具有多种挑战,包括杂乱、扫描伪影等。尽管存在这些挑战,VoteNet 仍然显示出相当强大的结果。
 
例如,图 6 展示了 VoteNet 在顶部场景中正确地检测到绝大多数椅子。该方法能够很好地区分左下角场景中连起来的的沙发椅和沙发,并预测出了右下角场景中那张不完整的、杂乱的桌子的完整边界框。

何恺明团队开源3D目标检测新框架VoteNet:模型更简单、效率更高-InfoQ-11

图 6:ScanNetV2 数据集 3D 目标检测结果。

何恺明团队开源3D目标检测新框架VoteNet:模型更简单、效率更高-InfoQ-12

图 7 SUN RGB-D 数据集 3D 目标检测结果。
  不过,该方法仍然有局限性。常见的失败案例包括遗漏非常薄的物体,如门、窗和图画等图 6 顶部场景中黑色边界框表示的部分。由于没有利用 RGB 信息,检测到这些类别几乎是不可能的。图 7 也还显示了该方法在单视图深度图像的部分扫描中的优势。例如,它在左上方的场景中检测到的椅子比真实值提供的更多。在右上角的场景中,可以看到尽管只看到沙发的一部分,VoteNet 依然成功绘制出了边界框。

结论

在这项工作中,作者提出了 VoteNet:一个简单但强大的 3D 目标检测模型,其灵感来自于霍夫投票。该网络学习直接从点云向目标中心投票,并学习通过其特征和局部几何信息聚合投票,以生成高质量的目标 proposal。该模型仅使用 3D 点云,与之前使用深度和彩色图像的方法相比,有了显著的改进。在未来的工作中,作者将探索如何将 RGB 图像纳入这个检测框架,并在下游应用 (如 3D 实例分割) 中汇总利用该检测器。作者表示霍夫投票和深度学习的协同作用可以推广到更多的应用领域,如 6D 姿态估计、基于模板的检测等,并期待在这方面看到更多的研究。

论文原文:

Deep Hough Voting for 3D Object Detection in Point Clouds

论文代码: https://github.com/facebookresearch/votenet

文章评论