Structural Relational Reasoning of Point Clouds

来源:2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)

总结

开发SRN去理解局部结构之间潜在的联系。

摘要

盒子角的对称性,显示器表面的连续性,躯干和身体其他部位的联系 -- 这表明3D物体在局部结构之间可能存在共同的内在的联系,这是人类的基本推理能力。在本文,我们提出了一个即插即用的模块,称为结构关系网络(structural relation network),用于推理三维点云中局部区域的结构依赖关系。PointNet++单独的捕获本地结构,而不考虑内部交互(point relation),相反,我们的SRN通过同时建模局部信息的几何信息和位置关系,这点对我们人类理解3D对象也起着至关重要的作用。提出的SRN模块很简单,可解释,并且任何额外的监督信号,可以很轻松的插入现有网络。

  • 局部结构之间存在潜在的内在的联系
  • SRN是即插即用的模块,用于推理三维点云中局部区域的结构依赖关系
  • 同时利用局部的几何信息和位置关系
  • SRN可解释,不需要额外的监督信号,可以很容易的插入现有网络

Introduction

image

之前的max-pooling操作很简单,也很必要,但是它没有考虑局部区域之间的底层结构交互。

  • local structure非常重要
  • 成也max-pooling败也max-pooling
  • 结构关系推理时人类的能力,在只提供点的坐标而不进一步提供其他信息的点云数据中,这种能力也至关重要
  • 通过理解结构关系,我们可以更好的掌握它们的语义
  • 计算每个局部结构和其他结构之间的位置和几何信息,以解释它们之间的关系
  • 学习到的局部特征不仅编码3D结构信息,而且也编码和其他区域之间的依赖关系

如上图所示,大多数真实世界的3D对象都具有高度相关的局部结构,如重复的对称区域,连续曲面和连接部分,我们人类在分析3D对象时对这些内部结构的关系进行推理是一种基本能力。例如,我们正在学习3D形状识别“人类”的物种,那么单独记住他的所有身体部分是不够的,更重要的是,我们需要对他们的结构关系进行推理,例如双臂,双腿的对称性,以及躯干和其他身体部位之间的连接


本文提出一个名为SRN的简单模块来解释局部区域之间的交互,虽然大多数现有的方法都对图像和视频的空间或时间进行建模,但SRN的目标是捕获三维点云中局部区域结构的交互信息。我们计算每个局部结构和其他结构之间的几何和位置相互作用,以解释他们之间的关系,从而使学习到的局部特征不仅编码3D结构信息,而且也编码和其他区域之间的依赖关系。

  • 3D数据irregular所以CNN也没法用
  • 3D点云的local feature雀氏重要
  • 对于传统的网络体系结构,SRN所强调的局部结构之间的内在联系是很难学习到的
  • 首次尝试对三维对象的结构关系进行推理

关系推理:关系推理目标在于对实体之间的交互进行推理,这是人类的一种基本能力。然而对于传统的网络体系结构这种关系是很难学的。为了解决这些问题人们精心设计了关系模块,例如A simple neural network module for relational reason- ing. 针对于视频问答提出了一个relation networkRelation networks for object detection.提出了一种基于注意力模块的物体关系模块,用于对象检测。Temporal relational reasoning in videos. 设计了一个时态关系网络,对不同尺度的视频帧之间的交互进行推理。这些方法大多旨在利用图像和视频中的空间或时间关系,但很有工作专注于三维数据的关系推理。Discovery of latent 3d keypoints via end-to-end geometric reasoning提出了一个KeypointNet去进行特定类别的3D关键点提取,这是3D点云推理中最相关的工作。尽管本文的方法和它都是针对三维点云设计的,但是KeyPointNet的目标是通过推理点与类别之间的关系来检测潜在的关键点的,和本文还是有很大的不同。


方法

  1. 介绍提出的SRN
  2. 如何将其插入到PointNet++当中
  3. 实现细节

SRN

\(P\)是一个点集,每个点由三维坐标表示,\(P_i\)是从整体点云\(P\)提取的局部子点云。由于只提供了坐标而没有更进一步的信息,我们提取局部几何特征\(\textbf{u}_i\in\mathbb{R}^d\)和平均位置\(\textbf{v}_i\in\mathbb{R}^3\)去描述子云\(P_i\),使得特征包含每个局部区域的几何和位置信息。
例如通过几何推理利用重复的局部patterns,通过位置推理获取linkage relations。因此我们通过联合学习几何和位置关系,定义了第\(i\)个局部子云和其他子云之间的结构的相互作用\(SRN(\textbf{x}_i)\)

\[\textbf{y}_i=f\bigg(\sum_{\forall j}h(g_u(\textbf{u}_i,\textbf{u}_j),g_v(\textbf{v}_i,\textbf{v}_j))\bigg)\tag{1} \]

  • \(P_i\)子云,通过\(\textbf{v}_i\in\mathbb{R}^3\)\(\textbf{u}_i\in\mathbb{R}^d\)去分别描述子云的位置和几何信息
  • 通过几何推理利用重复的patterns,通过位置推理捕获linkage relation
  • 上面的\(\textbf{y}_i\)\(P_i\)学习到的结构关系特征。

其中\(i\)\(j\)是局部区域的索引,\(f\)\(g_u\),\(g_v\)\(h\)是函数,\(\textbf{y}_i\)是学习到的\(P_i\)的结构关系特征。在公式1当中,\(g_u\)\(g_v\)目的在于分别利用\(P_i\)\(P_j\)之间的几何关系和位置关系,然后\(h\)融合这两种关系,开始求和操作,最后利用\(f\)得到\(P_i\)的最终关系\(\textbf{y}_i\)

image

上图显示了SRN模块的示例,该模块主要是学习\(P_i\)和其他\(P_j\)之间的结构关系。我们将学习几何和位置之间的交互作用去探索结构之间的关系,这两者对点云的理解都十分重要。如上图我们将\(\textbf{u}_i\)和其他所有的\(\textbf{u}_j\)\(\textbf{v}_i\)和其他所有的\(\textbf{v}_j\)连接起来,分别构建\(g_u\)\(g_v\)的输入。\(g_u\)\(g_v\)捕捉\(P_i\)和其他\(P_j\)之间的几何和位置关系。在SRN中,我们利用多层感知器去实现\(g_u\)\(g_v\),其参数和PointNet一样是共享的,\(h\)\(f\)\(1\times 1\)的卷积。学习到的\(\textbf{y}_i\)给局部子云提供了重要的信息,我们利用一个残差块去求\(\textbf{y}_i\)\(\textbf{u}_i\)。然后链接\(\textbf{v}_i\)作为\(P_i\)的最终表示。

提出的SRN模块由两个关键的优势:

  1. 对于每个局部子云\(P_i\)SRN模块学习其与所有局部子云\(P_j\)的结构交互信息。由于点集只包含点的坐标,而没有其他的信息,SRN考虑了局部区域之间的几何和位置关系,这两者在三维点云数据中都有至关重要的作用。和现有的点云local feature相比,SRN利用结构关系作为附加信息对特征做出了重要的补充。
  2. SRN支持可变数量和排列的局部子云。即使对于相同的点云,由于子云分组算法不同,局部区域的数量和排列也有可能不同。

SRN-PointNet++

  • SRN以局部几何特征和平均坐标作为输入,学习到的结构关系特征作为输出。
    由于我们只是简单的利用局部特征的拼接结构去替换原始特征,因此它通常可以应用于具有点云局部特征提取模块的深度神经网络结构。PointNet++是一种3D点云网络体系结构,其性能非常理想。本文以PointNet++为代表模型,详细的介绍了SRN的装配,并对实验结果进行了分析。基于PointNetPointNet++通过对点的samplinggrouping来利用局部结构信息。PointNet++执行最远点采样和ball query以获得子云,然后利用PointNet单独学习局部特征。PointNet++分层次的学习局部特征,通过sampling layergrouping layerPointNet layer这三个关键层混合不同尺度的特征。

image

上图展示了配备了SRNPointNet++的网络结构。我们不是简单的利用局部特征\(\textbf{u}\)\(\textbf{v}\)来表示,而是通过SRN学习关系特征\(\textbf{y}\)来提供重要的特征补充。对于点云分类任务,我们利用学习到的整体特征进行表示,并采用1024-512-256全连接层和softmax进行分类。对于点云分割任务,我们遵循原文的结构,获取每个点的score

讨论

在本届,我们将SRN和现有的关系型网络和基于局部特征的方法进行对比,以突出差异。

和现有关系型网络的差异:近些年,人们提出了几种关系型网络来解释实体之间的交互作用。他们探索图片中不同对象间空间和语义的关系,或视频帧之间的关系。在我们的工作中,我们关注三维电极的局部子云之间的结构关系,这些紫云广泛存在于现实世界三维对象中,并对人类理解他们起着重要的作用。为了更好地捕捉结构关系,我们同时利用子云的几何和位置相互作用,这两种作用在三维结构的理解中是至关重要的,据我们所知,此处提出的SRN是第一次对特征学习的结构关系进行推理。

于基于local feature方法的不同之处:local feature非常重要,一般来讲,之前的方法都是采用层次结构去捕捉不同规模的局部结构,然后集成局部特征作为整体特征。然而独立的处理每个局部区域,忽略了重要的结构关系,因此无法完全理解完整的三维对象。相反SRN捕获了几何关系和位置关系,为3D局部结构描述提供了必要的补充信息,作为一个简单的即插即用模块,可以提高点云现有网络架构的性能。

实现细节

此处作者使用Tensorflow构建他们的模块。对于每一个3D点云输入,他们从3D网格中随机采样1024个点。其中各个层的尺寸和其他细节如上图3所示。在第一个SRN模块中,我们推理了每个local region和其他随机选择的32个local region之间的结构关系(位置和几何关系)。在第二个模块中我们对所有点点云针对每一个点云进行推理。我们没有对点云进行数据增广并将最终的表示维度固定为1024维,epoch number为250,batchsize为16。学习率为1e-3,衰减为0.7/200k step。

实验部分

我们首先测试了装配了SRNPointNet++在点云分类和分割任务上的性能表现,并将其与最先进的方法进行了比较。我们还设计了跨数据集评估来测试泛化能力。然后,我们通过消融研究说明了SRN的有效性。最后,我们将t-SNE结果和学习到的局部子云间的结构关系可视化,以提供直观的说明,并分析实验中观察到的关键信息。

为了公平起见,在所有数据集上只是用了SRN-PointNet++PointNet++,他们只有SRN的模块不同。

数据集

我们使用三个benchmark数据集进行实验评估,其中包含ModelNet40,ScanNetShapeNet

  1. ModelNet40包含40个类别,12331个CAD模型,分为9843训练集,和2468测试集。
  2. ScanNet数据集包含1513个扫描和重建的室内场景,我们使用1201个场景作为训练集,其余的312个场景作为测试集
  3. ShapeNet数据集涵盖了55个常见的对象类别,51300个模型,我们使用了16个类别和16880个模型的ShapeNet零件数据集。模型分为14006个训练训练数据集和2874个测试数据集,对于点云分割任务而言,每个点都有label。

定量结果

在本小节中,我们首先评估了所提出的SRN-PointNet++分别用于点云分类和分割任务,并设计了跨数据集的实验。然后,我们进行了消融研究,以便对SRN进行更深入的分析。

点云分类:分类任务通常被视为检验深度学习模型的试金石任务,如果这些方法能够获得令人满意的分类精度,则通常在其他任务上的表现依然会很不错。我们根据标准评估协议,在ModelNet40ScanNet数据集上将SRN-PointNet++和当前sota的方法进行对比。

image

通常情况下ScanNet中的点云数据比ModelNet40更加复杂,ScanNet包含复杂的室内场景,但ModelNet40只包含3D对象本身。

在上面我们可以观察到SRNScanNet的提高要比ModelNet更大,并且上面讲过ScanNet是室内场景几何结构细节更多,SRN对于几何细节更加敏感可以获取到更多的信息。SRN-PointNet++直接消耗点云作为输入并且性能优于其他对比方法。PointCNN设计了\mathcal{X}-Convolution算子,实现了最先进的性能。但相比之下ScanNet的结果要更加的优异。


对于测试泛化能力的跨数据集实验,我们在一个数据集上训练网络在另一个数据集上测试,是同学习的模型提取特征然后使用线性支持向量机作为分类器。

posted @ 2021-12-03 22:10  X-POWER  阅读(297)  评论(0编辑  收藏  举报