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

当前主流的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边界框以及对象的语义类别。

image

图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的结构。整个网络可以分为两部分:一部分处理现有的点来生成投票;另一部分处理虚拟点——投票——来提出和分类目标。

image

图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由回归损失监督:

image

其中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的模块得到:

image

其中,来自每个聚类的投票由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中的场景更完整,平均覆盖的区域更大,目标更多。作者从重建的网格中抽取顶点作为输入点云。
####方法比较

image

表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。

image

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

image

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

image

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

####投票聚合的效果

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

image

图5:投票聚合分析

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

####模型大小和速度

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

image

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

定性结果和讨论

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

image

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

image

图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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章