NeurIPS2019:3D点云实例分割的新框架3D-BoNet

 

 

导读

 

机器能够理解3D场景是自动驾驶,增强现实和机器人技术的基本必要条件。3D几何数据(例如点云)的核心问题包括语义分割,对象检测和实例分割。在这些问题中,实例分割仅在文献中才开始解决。主要的障碍是点云本质上是无序的,无结构的和不均匀的。广泛使用的卷积神经网络要求对3D点云进行体素化,从而导致高昂的计算和存储成本。第一个直接解决3D实例分割的神经算法是SGPN,该算法通过相似矩阵学习对每点特征进行分组。同样,ASIS,JSIS3D,MASC,3D-BEVIS的每点特征分组管道应用于分割3D实例。在PartNet 中将实例分割表述为每点特征分类问题。但是,这些无提议方法的学习到的部分没有很高的客观性,因为它们没有明确地检测到对象边界。另外,他们不可避免地需要后处理步骤,例如均值漂移聚类,以获得最终实例标签,这在计算上很繁琐。另一个是基于提议的3D-SIS和GSPN ,它们通常依赖于两阶段训练和昂贵的非最大抑制来修剪密集对象提议。

 

 

在本文中,我们为3D实例分割提供了一种简单,高效且新颖的框架,其中使用高效的MLP通过单向阶段对对象进行松散但唯一的检测,然后通过简单的点级二进制分类器精确地对每个实例进行分割。为此,我们引入了新的边界框预测模块以及一系列精心设计的损失函数,以直接学习物体边界。我们的框架与现有的基于提案和无提案的方法有很大不同,因为我们能够高效地分割所有具有高对象性的实例,而无需依赖昂贵且密集的对象提案。

 

团队介绍

第一作者杨波是牛津大学博士生。

 

该团队提出的方法称为3D BoNet,遵循每点多层感知器(MLP)的简单设计原理。该框架为点云中的所有实例直接回归3D边界框,同时为每个实例预测点级蒙版。它由一个骨干网和两个并行的网络分支组成,用于边界框回归和点掩码预测。 

 

3D-BoNet是单阶段,免锚且可端到端训练的。此外,由于与现有方法不同,它不需要任何后处理步骤(例如非最大抑制,特征采样,聚类或投票),因此计算效率非常高。大量的实验表明,我们的方法超越了ScanNet和S3DIS数据集上的现有工作,同时其计算效率提高了约10倍。全面的消融研究证明了我们设计的有效性。

 

上面的动态图是三维场景理解(3D scene understanding)。

3D-BoNet算法优势:

  • 3D-BoNet能明确地预测目标的边界框,因此最终学习的实例具有更好的客观性。

  • 3D-BoNet不需要区域提议网络、roalign等复杂、耗时的操作,因此不需要NMS等后期处理步骤。

  • 3D-BoNet由非常有效的共享MLP组成,不需要后处理步骤,例如非最大抑制、特征采样、聚类或投票,因此它非常有效。

预览

3D BoNet的整体框架如下图所示。它主要由

 

1) 实例级边界框预测;

 

2) 点水平掩模预测;

 

由两个分支组成。

 

顾名思义,边界框预测分支用于预测点云中每个实例的边界框,掩码预测分支用于预测边界框中的点的掩码,以进一步区分边界框中的点属于实例还是背景。

图1:用于在3D点云上进行实例细分的3D-BoNet框架。

 

首先,我们可以回顾一下proposal-based的方法如何生成边界框?没错,根据锚,区域建议网络(RPN)被用来生成大量密集的边界框,然后进一步细化,但这显然不够有效,是否真的有必要生成这么多密集的边界框?针对这个问题,我们可以做一个大胆的假设:否则,让每个实例回归一个唯一的、但可能不那么精确的边界框,而不是RPN。

图2:粗糙实例框。

考虑到三维点云本身明确地包含了每个目标的几何信息,我们认为这个目标是可行的。然后再大胆一点,或者尝试用全局特性直接回归每个实例的边界框?如果能做到这一点,这个问题就不能一分为二地解决吗?

 

但新问题又来了。

 

首先,每个3D场景中包含的实例数量不同(网络如何自适应地输出不同数量的边界框?),并且每个点云中的实例仍处于无序状态。这意味着,即使我们将一系列的边界盒与网络进行回归,也很难将这些边界盒与地面真理的边界盒一一关联起来。进一步的问题是我们无法实现有监督的网络训练和优化。

 

在这一点上,核心问题变成:我们应该如何训练这个网络

 

针对这一问题,我们提出了一个边界框关联层和多准则损失函数来实现网络训练。也就是说,我们必须将预测的边界框和地面真值边界框之间的关联(配对)问题建模为一个最优分配问题。

图3:3D-BoNet框架的一般工作流程。

如何关联?

为了使网络预测的每个边界框与ground truth 的边界框唯一关联,我们将其建模为一个最优分配问题。假定A 是一个二值(binary)关联索引矩阵,当且仅当第 个预测的边界框分配给ground truth的边界框时。C 是关联代价矩阵, 代表将第 个预测的边界框分配给ground truth的边界框的关联代价。一般来说,代表两个边界框的匹配程度,两个边界框越匹配也即代价越小。因此,边界框的最优关联问题也就转变成为寻找总代价最小的最优分配索引矩阵 A 的问题,用公式表示如下:

如何计算关联代价矩阵C

为了测量两个三维边界框之间的匹配程度,最简单和直观的评价指标是比较两个边界框的最小顶点和最大顶点之间的欧几里德距离。然而,考虑到点云通常在三维空间中非常稀疏且分布不均匀,如图4所示,尽管候选框2(红色)和候选框1(黑色)以及地面真值边界框0(蓝色)都具有相同的欧氏距离,但框2显然具有更多的有效点(重叠更多)。因此,在计算成本矩阵时,还应考虑有效点的覆盖。

图4:稀疏的输入点云。

为此,我们考虑以下三个指标:

 

(1) 顶点之间的欧几里德距离:第个预测的边界框  分配给ground truth的边界框 的代价为:

(2)  Soft IoU:给定输入点云P和ground truth 真相实例边界框我们可以直接得到一个硬二元向量描述每个点是否在边界框内。但是,对于相同的输入点云P的第  预测框,直接获得相似的硬二元向量将导致不可微(non-differentiable)。

 

因此,我们引入一个可微但简单的算法来获得一个相似但软的二元向量,称为pred-box概率中的点。所有值都在范围内(0,1)。值越高,点在框中的可能性就越大。值越小,对应的点可能离框越远。因此,我们定义第一预测的边界框和地面真值的边界框的sIoU如下:

公式中  和  代表  和 的第  值

 

(3) 交叉熵。此外,我们还考虑了 和 之间的交叉熵。交叉熵倾向于获得具有更高覆盖率的更大边界框:

综上所述,指标(1)使学习到的盒子尽可能与地面真值的边界框重合,指标(2)(3)用于覆盖尽可能多的点,克服不均匀性。第一预测的边界框和ground truth的边界框的最终相关代价为:

损失函数是如何定义的?

 

  • 通过边界框关联各层后,利用相关指数矩阵A将预测的边界框B及其对应的得分与ground truth进行匹配,使靠前的T的边界框(ground truth边界框总数)和边界框与ground truth真值匹配。

  • 对于边界框得分预测,我们使用另一个损失函数。

    预测盒得分旨在表征相应预测盒的有效性。

    通过关联的索引矩阵A重新排序后,我们将前T个真实边界框对应的分数设置为1,将其余H-T无效边界框对应的分数设置为0。

    我们将交叉熵损失用于此二元分类任务:

  • 作为另一个并行分支,我们的方法可以使用任何现有的点云语义分割算法(如Sparseconv、++等)作为相应的语义分割模块。整个网络的最终损失函数定义为:

表示语义分段分支的丢失。这里我们使用标准交叉熵。网络的具体优化求解过程采用Hungarian算法。

 

如何预测实例掩码?

 

与边界框预测分支相比,这个分支相对简单,因为只要边界框预测足够好,这个分支就相当于做了一个二值分类问题,即使你盲目猜测,它也可以有50%的准确率。在这一分支中,我们将特征点与每个边界框和分数进行融合,然后为每个实例预测一个点级二值掩码。考虑到背景点和实例点之间的不平衡,我们使用焦点损失来优化该分支。

 

图6:点掩码预测分支的体系结构。 将点要素与每个边界框和分数融合,然后为每个实例预测一个点级二进制掩码。

实验

 

在ScanNet(v2)基准上,我们的方法达到了最新的效果。与3D-SIS相比,MASC等方法有了明显的改进。

 

表1:ScanNet(v2)基准测试(隐藏测试集)上的实例分割结果。 度量标准是IoU阈值为0.5的AP(%)

在消融研究中,我们进一步确定了各分支的作用和各评价指标的损失函数:

表2:所有实例的分割结果S3DIS 5区的烧蚀实验。

 

就计算效率而言,3D-BoNet是目前最快的方法。与SGPN、ASIS、3D-SIS等方法相比,3D-BoNet的速度快了10倍以上。

图7:不同方法处理ScanNet validation set所需要的时间消耗。

 

此外,我们在图8中进一步显示了在S3DIS数据集(区域1、2、3、4、6和区域5测试)上进行训练时,我们提出的损失函数的变化曲线。从图中可以看出,我们提出的损失函数能够实现相对一致的收敛,从而实现了语义分割分支、边界框预测分支、点掩码预测分支的端到端方法的优化。

图8:我们的方法在S3DIS数据集上的training loss

 

在图9中,我们展示了预测边界框和边界框分数的可视化。可以看出,用我们的方法预测的边界并不一定非常精确和紧凑。相反,它们是相对包容的,具有相对较高的客观性。这也与我希望在本文开始时获得的粗糙边界框的目标一致。

图9。在S3DIS数据集区域2上,对我们的方法的预测边界框和分数进行可视化。红色框表示预测的边界框,蓝色边界框表示地面真相。

 

预测边界框后,预测每个框内的点遮罩要容易得多。最后,我们将预测的实例掩码可视化,其中黑点表示属于此实例的概率接近0,而彩色点表示属于此实例的概率接近1,颜色越深,概率越大。

图10。预测实例掩码的可视化。输入点云总共包含四个实例,即两张椅子、一张桌子和地面。从左到右是椅子1、椅子2、桌子1和地面2的点式面罩。

总结

论文地址或源码下载地址:关注“图像算法”微信公众号 回复"3D-BoNet",作者提出了一种基于边界框回归的点云实例分割算法。通过最小化匹配代价函数来实现近似边界框回归,最后通过点掩码预测实现最终分割。我们提出的3D-BoNet不仅对ScanNet和S3DIS数据集达到了最新的效果,而且比其他现有算法更有效。

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
3D-BoNet 是一个用于三维物体检测的深度学习模型,可以使用自己的数据集进行训练。下面是一个大致的步骤来训练自己的数据集: 1. 数据准备: - 收集或制作带有标注的三维物体数据集。每个物体应包含其在三维空间中的边界框(bounding box)和类别标签。 - 将数据集划分为训练集和验证集,通常按照一定比例划分,以便在训练过程中评估模型的性能。 2. 数据预处理: - 对输入数据进行预处理,例如将点云数据转换为模型所需的输入格式,如 3D 网格或体素表示。 - 标准化数据,以便均值为零并具有相似的尺度。 - 可选地对数据进行增强,如旋转、平移、缩放、翻转等操作,以扩充数据集。 3. 模型配置: - 根据你的任务需求,配置 3D-BoNet 模型的网络结构、损失函数、优化器和超参数。 - 确保模型结构和输入输出尺寸与你的数据集和物体类别数目相匹配。 4. 训练模型: - 使用训练集数据进行模型训练。将输入数据送入模型,计算出模型的输出,并与标签进行比较以计算损失。 - 使用反向传播算法模型的权重,以最小化损失函数。 - 重复上述步骤直到达到指定的迭代次数或其他停止准则。 5. 模型评估: - 使用验证集数据评估训练好的模型的性能。计算预测结果与标签之间的准确率、精确率、召回率等指标,以评估模型在未见过的数据上的表现。 6. 调优和迭代: - 根据评估结果,调整模型的超参数、网络结构或其他配置,以改进模型性能。 - 可选地,使用更多的数据进行训练,或尝试其他数据增强技术,以进一步提高模型的泛化能力。 以上是一个大致的训练流程。具体实现时,你需要根据数据集和任务需求进行调整和优化。此外,还可以参考 3D-BoNet 的论文和代码库中的说明来了解更多细节和实践技巧。 希望这些信息能对你有所帮助!如果你有其他问题,请随时提问。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值