论文阅读-用于点云分析的自组织网络

目前存在的问题:

  • 原始的SOM(1)训练结果与初始节点高度相关(2)样本更新规则取决于输入点的顺序
  • 3D 卷积神经网络(需要将数据转换为体素,存在分辨率损失和计算成本上涨的问题)、PointNet无法提取局部特征,PointNet++无法揭示输入点云的空间分布、 Kd-Net缺乏重叠感受野

文章主要研究内容:

  • 建SOM [19] 来对输入点云的空间分布进行建模,能够在单个点和 SOM 节点上提取分层特征。 最终,输入点云可以被压缩为单个特征向量
  • 解决原始的SOM问题(1)为任何给定的 SOM 配置分配固定的初始节点来解决的。(2)累积所有点的效果后执行一次更新。
  • 在SOM上执行点到节点的k近邻(kNN)搜索来控制感受野重叠
  • 设计了一个排列不变网络 - SONet 利用点云的空间分布
  • 点云自动编码器作为预训练,利用双分支网络,使得下游处理效果更好

未来课研究内容:

节点特征提取生成了一个类似图像的特征矩阵,该矩阵对于输入点的顺序是不变的。 可以应用标准ConvNet来进一步融合节点特征并增加感受野。 然而,在我们的实验中,分类精度略有下降,我们用 2D 卷积和池化替换了第二批全连接层。 研究这种现象的原因和解决方案仍然是一个有前途的方向

点云自编码研究较少,不能进行定量分析

涉及的理论与数据集

无监督竞争学习、MNIST 数据集 、 ModelNet [37]、点云自编码

论文研究思路

(1)卷积神经网络在2D数据处理上取得了很大的成功

(2)在3D数据上的使用卷积神经网络需要将数据转化为体素表示具有局限性

(3)可扩展的索引结构是3D数据处理的另一个选择( kd 树)

(4)于树的结构相比,点云表示在数学上更加简洁和直接,因为每个点都简单地由 3 向量表示。

(5)传统的深度学习方法不适合处理不规则的,并且可以任意排列点云数据

(6)出现了PointNet等算法,但仍具有局限性。

论文翻译:

摘要:本文提出了 SO-Net,一种用于无序点云深度学习的排列不变架构。 SO-Net 通过构建自组织映射 (SOM) 来对点云的空间分布进行建模。 SO-Net基于SOM,对各个点和SOM节点进行层次特征提取,最终用单个特征向量表示输入点云。 通过进行点到节点的k最近邻搜索可以系统地调整网络的感受野。 在点云重建、分类、物体部分分割和形状检索等识别任务中,我们提出的网络表现出与最先进的方法相似或更好的性能。 此外,由于所提出的架构的并行性和简单性,训练速度明显快于现有的点云识别网络。 我们的代码可在项目网站上找到。

1. Introduction

经过多年的深入研究,卷积神经网络(ConvNets)现已成为许多最先进的计算机视觉算法的基础,例如 尽管ConvNets在2D图像上取得了巨大成功,但在3D数据上使用深度学习仍然是一个具有挑战性的问题。 尽管 3D 卷积网络 (3D ConvNets) 可以应用于光栅化为体素表示的 3D 数据,但由于大多数 3D 数据的稀疏性,大多数计算都是冗余的。 此外,简单 3D ConvNet 的性能在很大程度上受到分辨率损失和指数级增长的计算成本的限制。 同时,深度传感器的加速发展以及自动驾驶汽车等应用的巨大需求使得高效处理3D数据势在必行。 最近出现的 3D 数据集(包括 ModelNet [37]、ShapeNet [8]、2D-3D-S [2])进一步推动了 3D 数据研究的普及。为了避免朴素体素化的缺点,一种选择是明确利用体素网格的稀疏性[35,21,11]。 尽管稀疏设计允许更高的网格分辨率,但由此带来的复杂性和限制使得难以实现大规模或灵活的深度网络[30]。 另一种选择是利用可扩展的索引结构,包括 kd 树 [4]、八叉树 [25]。 基于这些结构的深度网络已经显示出令人鼓舞的结果。 与基于树的结构相比,点云表示在数学上更加简洁和直接,因为每个点都简单地由 3 向量表示。 此外,借助运动结构 (SfM) 算法,可以使用 RGB-D 相机、LiDAR 或传统相机等流行传感器轻松获取点云。 尽管点云的使用广泛且易于获取,但点云的识别任务仍然具有挑战性。 传统的深度学习方法(例如ConvNet)不适用,因为点云在空间上是不规则的,并且可以任意排列。 由于这些困难,直到最近的 PointNet [26] 才尝试将深度学习技术直接应用于点云。 尽管 PointNet 是将深度学习应用于点云的先驱,但它无法充分处理局部特征提取。 后来提出PointNet++[28]通过构建类似金字塔的特征聚合方案来解决这个问题,但是[28]中的点采样和分组策略没有揭示输入点云的空间分布。 Kd-Net [18] 为输入点云构建一个 kd 树,然后从叶子到根进行分层特征提取。。 Kd-Net 明确利用空间分布点云,但存在缺乏重叠感受野等限制

在本文中,我们提出 SO-Net 来解决现有基于点云的网络中的问题。 具体来说,构建 SOM [19] 来对输入点云的空间分布进行建模,从而能够在单个点和 SOM 节点上提取分层特征。 最终,输入点云可以被压缩为单个特征向量。 在特征聚合过程中,通过在SOM上执行点到节点的k近邻(kNN)搜索来控制感受野重叠。 SO-Net 理论上通过网络设计和我们的排列不变 SOM 训练保证了输入点顺序的不变性。 我们的 SO-Net 的应用包括基于点云的分类、自动编码器重建、零件分割和形状检索,如图 1 所示。本文的主要贡献如下:

• 我们设计了一个排列不变网络 - SONet 利用点云的空间分布。

• 通过SOM 上的点到节点kNN 搜索,可以通过系统可调的感受野重叠来执行分层特征提取。 • 我们提出点云自动编码器作为预训练,以提高各种任务中的网络性能。

• 与最先进的方法相比,在各种应用中实现了相似或更好的性能,并且训练速度显着加快。

2. Related Work

使用体素网格表示 3D 形状非常直观,因为它们与 3D ConvNet 兼容。 [24, 37]使用二进制变量来指示体素是被占用还是空闲。 [27] 中提出了一些增强功能——通过从部分子体积预测标签来减轻过度拟合,方向池层被设计为融合具有不同方向的形状,并且各向异性探测内核用于将 3D 形状投影到 2D 特征中。 布洛克等人。 [6]建议将基于体素的变分自动编码器与对象识别网络相结合。 尽管体素化很简单,但它能够实现最先进的性能。 不幸的是,它会遭受分辨率损失和计算成本呈指数增长的困扰。 提出了稀疏方法[35,21,11]来提高效率。 然而,这些方法仍然依赖于统一的体素网格,并遇到各种限制,例如缺乏并行化能力[21]。 谱卷积网络 [23,5,7] 被探索用于非欧几里德几何,但它们大多局限于流形网格。将 3D 数据渲染为多视图 2D 图像,将 3D 问题转变为可以使用标准 2D ConvNet 解决的 2D 问题。 视图池层[33]旨在聚合来自多个渲染图像的特征。 齐等人。 [27]用多分辨率球体渲染替代传统的 3D 到 2D 渲染。 王等人。 [34]进一步提出了主导集池并利用颜色和表面法线等特征。 尽管与 3D ConvNet 相比效率有所提高,但多视图策略仍然存在信息丢失的问题 [18],并且它不能轻易扩展到像每点标记这样的任务。 与统一网格相比,kd 树和八叉树等索引技术具有可扩展性,并且它们的规则结构适合深度学习技术。 为了在八叉树上启用卷积和池化操作,Riegler 等人。 [30]通过将几个小八叉树放入规则网格中来构建混合网格八叉树结构。 通过位串表示,混合结构中的单个体素完全由其位索引确定。 因此,可以使用简单的算术来访问父节点或子节点。 同样,王等人。 [36]引入标签缓冲区来查找不同深度的八分圆的对应关系。 克洛科夫等人。 提出 Kd-Net [18],计算预构建平衡 kd 树的每个节点的向量表示。 父特征向量是通过对其两个子特征向量应用非线性和仿射变换来计算的,遵循自下而上的方式。 PointNet [26]是直接使用点云的先驱。 它使用通道最大池化将每点特征聚合到全局描述符向量中。 PointNet 对于输入点的顺序排列是不变的,因为每个点的每点特征提取都是相同的,并且最大池操作是排列不变的。 几乎与[26]同时提出了类似的排列等变层[29],主要区别在于排列等变层是最大归一化的。 尽管最大池化思想被证明是有效的,但它缺乏类似ConvNet的分层特征聚合。 PointNet++[28]后来被设计为将点分为不同级别的多个组,以便可以分层提取多个尺度的特征。 与基于八叉树或 kd 树的网络不同,PointNet++ 中没有对点的空间分布进行显式建模。 相反,启发式分组和抽样方案,例如 多尺度和多分辨率分组,旨在组合多个尺度的特征。 在本文中,我们提出了 SO-Net,它在分层特征提取过程中对输入点云的空间分布进行显式建模。 此外,可调节的感受野重叠导致更有效的局部特征聚合。

3. Self-Organizing Network

网络的输入是一个点集 P = {pi ∈ R3, i = 0, · · · ,N − 1},它将被处理为 M个SOM 节点 S = {sj ∈ R3, j = 0, · · · ,M− 1} 如第 2 节所示。 3.1. 类似地,在第 2 节中描述的编码器中。 3.2,单个点特征被最大池化为M个节点特征,可以进一步聚合为全局特征向量。 我们的 SO-Net 可应用于各种计算机视觉任务,包括分类、每点分割(第 3.3 节)和点云重建(第 3.4 节)。

3.1. Permutation Invariant SOM

SOM 用于生成输入点云的低维(在本例中为二维)表示。 我们构造一个大小为 m × m 的 SOM,其中 m ∈ [5, 11],即节点总数 M 范围为 25 到 121。SOM 采用无监督竞争学习进行训练,而不是深度网络中常用的反向传播 。 然而,朴素的 SOM 训练方案不是排列不变的,原因有两个:训练结果与初始节点高度相关,每个样本的更新规则取决于输入点的顺序。 第一个问题是通过为任何给定的 SOM 配置分配固定的初始节点来解决的。 由于输入点云在所有三个轴上都被归一化在 [−1, 1] 范围内,因此我们通过将节点均匀分散在单位球内来生成正确的初始猜测,如图 2(a)所示。 可以使用诸如势场之类的简单方法来构造这种统一的初始猜测。 为了解决第二个问题,我们不是每个点更新一次节点,而是在累积所有点的效果后执行一次更新。 对于给定的点云,此批量更新过程是确定性的[19],使其具有排列不变性。 批量更新的另一个优点是它可以作为矩阵运算实现,这在 GPU 上效率很高。 初始化和批量训练算法的详细信息可以在我们的补充材料中找到。

3.2. Encoder Architecture

如图3所示,SOM是分层特征提取的指南,也是系统地调整感受野重叠的工具。 给定 SOM 的输出,我们搜索对于每个点 pi 的 SOM 节点 S 上的 k 个最近邻 (kNN),即点到节点 kNN 搜索:

然后通过与其关联的节点相减,将每个 pi 归一化为 k 点:

得到的 kN 个归一化点被转发到一系列完全连接的层中以提取单个点特征。 每个层 l 上都有一个共享的全连接层,其中 φ 是非线性激活函数。 l 级的输出由下式给出

第一层 p0 ik 的输入可以简单地是归一化点坐标 pik,或者坐标和其他特征(如表面法向量)的组合。 节点特征提取首先按照上述 kNN 关联将 kN 点特征最大池化为 M 个节点特征。 我们应用逐通道最大池化操作来获取与同一节点 sj 关联的那些点特征的节点特征 s0 j :

由于根据点到节点的kNN搜索将每个点归一化为k个坐标,因此保证了M个最大池化操作的感受野是重叠的。 具体来说,M 个节点覆盖 kN 个归一化点。 k 是一个可调节的参数,用于控制重叠。 上述最大池化操作生成的每个节点特征进一步与关联的 SOM 节点连接。 M 个增强节点特征被转发到一系列共享层,然后聚合成表示输入点云的特征向量。

特征聚合 作为点云分离和组装 SOM 特征提取和节点连接背后有一个直观的原因。 由于第一层的输入点使用 M 个 SOM 节点进行归一化,因此它们实际上被分成 M 个迷你点云,如图 3 所示。每个迷你点云在坐标中包含少量点,其原点是关联的 SOM 节点。 对于大小为 2048、M = 64 且 k = 3 的点云,典型的迷你点云可能由 x, y, z ∈ [−0.3, 0.3] 的小空间内的大约 90 个点组成。 迷你点云中点的数量和覆盖范围由 SOM 训练和 kNN 搜索决定,即 M 和 k。第一批全连接层可以看作是对这些迷你点云进行编码的小型PointNet。与 SOM 节点的串联起到了将这些迷你点云组装回原始点云的作用。 由于 SOM 明确揭示了输入点云的空间分布,因此我们的分离和组装过程比 PointNet++ [28] 中使用的分组策略更有效,如第 2 节所示。 4.

排列不变性 SO-Net中存在两个层次的特征聚合,从点特征到节点特征,以及从节点特征到全局特征向量。 第一阶段将共享PointNet应用于M个迷你点云。 这些M个迷你点云的生成与输入点的顺序无关,因为第2节中的SOM训练。 3.1和图3中的kNN搜索是确定性的。 PointNet [26] 也是排列不变的。 因此,理论上保证节点特征和全局特征向量是排列不变的。

次优 SOM 训练的影响  SOM 训练可能会收敛到局部最小值,且孤立节点位于输入点云的覆盖范围之外。 在某些情况下,在点到节点 kNN 搜索过程中,不会有任何点与孤立节点相关联,我们将相应的节点特征设置为零。 这种现象很常见,因为初始节点均匀地分散在一个单位球中,而输入点云可能只占据一个小角落。 尽管存在次优 SOM,但所提出的 SO-Net 在对象分类等应用中仍然优于最先进的方法。 无效节点特征的影响将在第 2 节中进一步研究。 4 通过在 SOM 结果中插入噪声。

使用卷积网络进行探索 有趣的是,节点特征提取生成了一个类似图像的特征矩阵,该矩阵对于输入点的顺序是不变的。 可以应用标准ConvNet来进一步融合节点特征并增加感受野。 然而,在我们的实验中,分类精度略有下降,我们用 2D 卷积和池化替换了第二批全连接层。 研究这种现象的原因和解决方案仍然是一个有前途的方向

3.3. Extension to Segmentation

对每点注释的扩展,例如 分割,需要整合局部和全局特征。 过程类似于第 2 节中编码器的反转操作。 全局特征向量可以直接扩展并与kN个归一化点连接。 M 节点特征在编码过程中附加到与它们关联的点。 集成产生了结合点、节点和全局特征的 kN 个特征,然后将其转发到共享全连接层的链中。由于感受野重叠,kN 个特征实际上对于生成 N 个每点分类分数来说是多余的。 平均或最大池化是融合冗余信息的方法。 此外,与许多深层次的网络,早期、中期或晚期融合可能表现出不同的性能[9]。 通过一系列的实验,我们发现与其他融合方法相比,平均池化的中间融合是最有效的。

3.4. Autoencoder

在本节中,我们设计一个解码器网络来从编码的全局特征向量中恢复输入点云。 一种简单的设计是在特征向量之上堆叠一系列全连接层,并生成长度为 3 ˆN 的输出向量,该输出向量可以重塑为 Nˆ × 3。但是,如果 ˆN 则内存和计算占用量将会太大。 足够大。 我们没有生成具有全连接层的点云[1],而是设计了一个具有与[13]类似的两个并行分支的网络,即一个全连接分支和一个卷积分支,如图4所示。全连接分支预测N^ 通过重塑 3 ^N1 元素的输出来得到 1 点。 该分支具有很高的灵活性,因为每个坐标都是独立预测的。 另一方面,卷积分支预测一个大小为 3 ×H ×W 的特征矩阵,即 N^2 = H ×W 个点。 由于卷积层的空间连续性,预测的 N^2 点可能表现出更多的几何一致性。 卷积分支的另一个优点是,与全连接分支相比,它需要的参数少得多。与许多深度估计网络 [14, 15] 中的常见做法类似,卷积分支被设计为金字塔风格的上卷积 (upconv) 链。 每个上卷积模块不是由反卷积层组成,而是由最近邻上采样层和 3 × 3 卷积层组成。 根据我们的实验,在点云自动编码器的情况下,这种设计比反卷积层更有效。 此外,中间上上卷积产​​品被转换为粗略重建的点云并与输入进行比较。 从 upconv 产品到点云的转换是一个 2 层 1 × 1 卷积堆栈,以便为每个恢复点提供更大的灵活性。 从粗到细的策略进一步提高了重建性能。 为了监督重建过程,损失函数应该是可微分的,准备好并行计算和对异常值具有鲁棒性[13]。 这里我们使用Chamfer损失:

其中 Ps 和 Pt ∈ R3 分别表示输入和恢复的点云。 Ps 和 Pt 中的点数不一定相同。 直观地说,对于 Ps 中的每个点,方程: (5) 计算其到 Pt 中最近邻的距离,对于 Pt 中的点反之亦然。

4. Experiments

在本节中,我们的 SO-Net 在三个不同应用中的性能进行了评估,即点云自动编码器对象分类和对象部分分割。 特别是,在自动编码器中训练的编码器可以用作其他两个任务的预训练。 除 2D MNIST 分类外,所有实验中的编码器结构和 SOM 配置均保持相同,无需精细微调。

4.1. Implementation Detail

我们的网络是在 NVIDIA GTX1080Ti 上使用 PyTorch 实现的。 在大多数实验中,我们选择大小为 8 × 8 且 k = 3 的 SOM。 我们使用 Adam [17] 优化网络,初始学习率为 0.001,批量大小为 8。对于以 5000 或更多点作为输入的实验,学习率每 20 个时期减少一半,否则执行学习率衰减 每 40 个时期。 一般来说,网络在大约 5 次学习率衰减后收敛。 批量归一化和 ReLU 激活应用于每一层。

4.2. Datasets

作为 2D 玩具示例,我们在第4.4. 节中采用 MNIST 数据集 [20]。 对于每个数字,从非零像素中采样 512 个二维点作为我们的输入。 ModelNet [37] 的两个变体,即 ModelNet10 和 ModelNet40,被用作第 2 节中自动编码器任务的基准。 4.3 以及第 4.3 节中的分类任务。 4.4.ModelNet40包含来自40个类别的13,834个对象,其中9,843个对象属于训练集,其他3,991个样本用于测试。同样,ModelNet10被分为2468个训练样本和909个测试样本。最初的ModelNet提供了由顶点和面表示的CAD模型。点云是通过从模型中均匀采样来生成的。为了公平比较,我们使用来自[28]的准备好的ModelNet10/40数据集,其中每个模型用10,000个点表示。在不同的实验中,可以从10k个点中采样各种大小的点云,例如2,048或5,000。使用ShapeNetPart数据集[38]演示了对象部分分割。它包含来自16个类别的16,881个对象,表示为点云。每个对象由2到6个部分组成,数据集中总共有50个部分。在我们的实验中,我们对固定大小的点云进行了采样,例如1024个。

数据增强 输入点云在单位立方体内被归一化为零均值。 在训练阶段应用以下数据增强:(a) 将高斯噪声 N(0, 0.01) 添加到点坐标和表面法向量(如果适用)。 (b) 将高斯噪声 N(0, 0.04) 添加到 SOM 节点。 (c) 点云、表面法向量(如果适用)和 SOM 节点按从均匀分布 U(0.8, 1.2) 采样的因子进行缩放。 进一步的增强(例如随机移位或旋转)不会改善结果。

4.3. Point Cloud Autoencoder

在本节中,我们将演示可以从 SO-Net 编码的特征向量重建点云,例如 长度为 1024 的向量。Chamfer 距离(方程 5)中的最近邻搜索是使用 Facebook 的 faiss [16] 进行的。 解码器有两种配置来重建不同大小的点云。 第一种配置从卷积分支生成 64×64 点,从全连接分支生成 512 点。 另一种通过删除图 4 中的最后一个上转换模块,分别产生 32 × 32 和 256 个点。很难为点云自动编码器任务提供定量比较,因为对此主题进行的研究很少。 最相关的工作是点集生成网络[13]和点云生成模型[1]。 我们重建的 ShapeNetPart 点云的示例如图 5 所示,其中从卷积分支恢复的 1024 个点用红色表示,其他 256 个点用绿色表示。 总体测试倒角距离(方程 5)为 0.033。 与[13]中的结果类似,卷积分支恢复对象的主体,而更灵活的全连接分支则专注于细节,例如桌子的腿。 然而,许多更精细的细节丢失了。 例如,重建后的耳机是模糊的。 这可能是因为编码器仍然不够强大,无法捕获细粒度的结构。 尽管重构不完美,自动编码器通过提供预训练的编码器增强了 SO-Net 在其他任务中的性能,如第 2 节所示。 4.4 和 4.5。 更多结果在补充材料中可见。

4.4. Classification Tasks

为了对点云进行分类,我们在编码的全局特征向量之上附加了一个 3 层多层感知器 (MLP)。 随机 dropout 应用于最后两层,保持比率为 0.4。 表 1 说明了使用可扩展 3D 表示(例如点云、kd 树和八叉树)的最先进方法的分类精度。 在 MNIST 数据集中,我们的网络与 PointNet++ 相比,错误率相对降低了 13.7%。 在 ModelNet10 和 ModelNet40 中,我们的方法在实例准确率方面分别比最先进的方法高出 1.7% 和 1.5%。 我们的 SO-Net 甚至优于使用多视图图像或统一体素网格作为输入的单个网络,例如 qi-MVCNN [27](ModelNet40 为 92.0%)和 VRN [6](ModelNet40 为 91.3%)。 集成多个网络的方法,即qi-MVCNN-MultiRes [27]和VRN Ensemble [6],在ModelNet分类方面仍然优于SO-Net,但它们的多视图/体素网格表示的可扩展性和灵活性远不如SO-Net 我们的点云表示,如第 2 节所示。 1 和 2。

预训练的效果 通过使用第 2 节中的自动编码器进行预训练可以提高网络的性能。 3.4. 自动编码器使用 ModelNet40 进行训练,使用 5000 个点和表面法向量作为输入。 自动编码器在 ModelNet10 分类中带来了 0.5% 的提升,但在 ModelNet40 分类中仅提升了 0.2%。 这并不奇怪,因为预训练的规模要大得多

对点损坏的鲁棒性 我们使用大小为 2048 的点云训练我们的网络,但使用点丢失对其进行测试。 如图 6(a) 所示,当缺失 50% 的点(2048 至 1024)时,我们的准确率下降了 1.7%;当缺失 75% 的点(2048 至 512)时,我们的准确率下降了 14.2%。 作为比较,PN 的准确率下降了 3.8%,下降了 50%(1024 到 512)。 对 SOM 损坏的鲁棒性 在设计 SO-Net 时,我们主要关心的问题之一是 SO-Net 是否过于依赖 SOM。 结果如图 6 所示,我们证明我们的 SO-Net 对于 SOM 结果的噪声或损坏非常稳健。 在图6(b)中,我们训练了一个SOM大小为8×8的网络作为无噪声版本,但测试了SOM大小从5×5到11×11不等的网络。 有趣的是,如果 SOM 大小大于训练配置,性能衰减会慢得多,这与第 2 节中的理论一致。 3.2. SO-Net将输入点云分离成M个迷你点云,用迷你PointNet将它们编码成M个节点特征,并在全局特征提取过程中将它们组装起来。 在测试过程中 SOM 变小的情况下,迷你点云太大,迷你 PointNet 无法编码。 因此,当测试 SOM 小于预期时,网络性能会变差。 在图 6(c) 中,我们在测试期间将高斯噪声 N(0, σ) 添加到 SOM 上。 鉴于输入点已归一化为单位立方体,σ = 0.2 的高斯噪声相当大,如图 6(d)所示。 即使在这种困难的情况下,我们的网络在 ModelNet40 中的准确率达到了 91.1%,在 ModelNet10 中达到了 94.6%。

分层层数的影响 通过简单地添加更多层,我们的框架如图 3 所示,可以进一步超越最先进的方法。 普通的 SO-Net 是一个 2 层结构“grouping&PN(PointNet) PN”,其中分组是基于 SOM 和点到节点 kNN。我们通过简单的重复将其变成 3 层结构使用此协议构建基于 SOM/kNN 的“分组和 PN”:对于每个 SOM 节点,找到 k = 9 个最近的节点,并使用 PointNet 处理 k 节点特征。 输出是大小相同但感受野更大的新 SOM 特征图。 如表 1 所示,我们的 3 层 SO-Net 的准确率比 ModelNet40 上的 PN++ 高 1.5%(错误率相对低 19%),比 ModelNet10 上的 Kd-Net 高 1.7%(错误率相对低 28%) 。 分层层数的影响如图7所示,其中太多层可能导致过度拟合。

训练速度 SOM的批量训练允许在GPU上并行执行。 此外,SOM 的训练在我们的方法中是完全确定性的,因此可以将其隔离为网络优化之前的数据预处理。 与[18]中的随机kd树构建相比,我们的确定性设计在训练过程中提供了巨大的提升。 除了解耦的SOM之外,基于SOM的分层特征聚合还可以在GPU上高效实现。 如表 1 所示,使用 GTX1080Ti 在 ModelNet40 上训练我们最好的网络大约需要 3 小时,这比可提供同等性能的最先进网络要快得多。

4.5. Part Segmentation on ShapeNetPart

我们将对象部分分割问题表述为每点分类任务,如图 3 所示。使用[26]中提出的平均交并(IoU)协议来评估网络。 对于每个实例,都会计算属于该对象类别的每个部分的 IoU。 IoU 部分的平均值被视为该实例的 IoU。 总体 IoU 计算为所有实例的 IoU 平均值,类别 IoU 计算为该类别下实例的平均值。 与 OCNN [36] 和 PointNet++ [28] 类似,表面法向量与点坐标一起输入网络。 通过优化每点 softmax 损失函数,我们获得了有竞争力的结果,如表 2 所示。尽管 O-CNN 报告了最佳的 IoU,但它采用了额外的密集条件随机场 (CRF) 来细化其网络的输出,而其他网络则没有 包含此后处理步骤。 一些分割结果如图 8 所示,我们在补充材料中进一步可视化每个类别的一个实例。 尽管在某些困难情况下,我们的网络可能无法正确注释细粒度细节,但通常我们的分割结果在视觉上是令人满意的。 低计算成本仍然是我们的优势之一。 此外,使用我们的自动编码器进行预训练可以提高性能,这与我们的分类结果一致。

5. Conclusion

在本文中,我们提出了一种新颖的 SO-Net,它通过显式地建模输入点的空间分布并系统地调整感受野重叠来对点云进行分层特征提取。 在包括点云重建、对象分类和对象部分分割在内的一系列实验中,我们的网络取得了有竞争力的性能。 特别是,我们在点云分类和形状检索方面优于最先进的深度学习方法,训练速度显着加快。 由于 SOM 保留了输入空间的拓扑属性,并且我们的 SO-Net 相应地将点云转换为特征矩阵,因此未来一个有前途的方向是应用经典 ConvNet 或基于图的 ConvNet 来实现更深层次的特征聚合。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/59360.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构之二叉树前序,中序,后序习题分析(递归图)

1.比较相同的树 二叉树不能轻易用断言,因为树一定有空 2.找结点值 3.单值二叉树 4.对称二叉树 5.前序遍历

【JavaScript】JavaScript开篇基础(4)

1.❤️❤️前言~🥳🎉🎉🎉 Hello, Hello~ 亲爱的朋友们👋👋,这里是E绵绵呀✍️✍️。 如果你喜欢这篇文章,请别吝啬你的点赞❤️❤️和收藏📖📖。如果你对我的…

运动控制 直流有刷电机

文章目录 一、简介二、组成三、特点四、电机参数4.1 额定电压4.2 额定电流4.3 额定转速4.4 额定扭矩4.5 减速比 五、工作原理5.1 左手定则5.2 工作原理 六、测速原理6.1 磁电式编码器6.2 光电式编码器 一、简介 直流有刷电机是一种内含电刷装置能将直流电转换为机械能的电机&a…

关于模拟方法建模的一份介绍

有些时候,我们无法直接收集大量数据,即对于对象的行为直接观测或重复实验可能是不行的,所以此时就需要通过模拟的技术来收集数据,然后建模。这样的一种策略就是模拟方法建模,而模拟方法建模中最常用的一种方法就是蒙特…

Java 入门

目录 Java简介 Java JDK开发环境配置 第一个Java程序 Java标识符与关键字 Java注释 Java常量 Java变量的定义和使用 Java简介 Java简介: Java是由Sun Microsystems公司于1995年推出的一门面向对象的高级程序设计语言,可以运行于多个平台,其…

CSS--两列网页布局,三列布局和多行多列布局

两列网页布局 两列网页布局实验 先将一个未运用浮动效果的网页结构写出来 <style>header{/* 给页眉设置宽高和样式 */width:1000px;height: 40px;background-color: gray;border: 3px brown solid;margin-bottom: 5px;}article{width:1000px;height: 600px;background-c…

开源与商业的碰撞TPFLOW与Gadmin低代码的商业合作

随着数字化转型的浪潮席卷全球&#xff0c;企业对于高效、灵活的软件开发需求愈发迫切。低代码开发平台应运而生&#xff0c;为企业提供了简化开发流程、缩短开发周期的解决方案。在众多低代码开发平台中&#xff0c;Gadmin企业级低代码平台、TPFLOW工作流和SFDP超级表单脱颖而…

Edge浏览器提示“无法安全下载”

Edge浏览器在下载某些文件时&#xff0c;会提示“无法安全下载”。 注意事项&#xff1a;如果确实需要下载该文件&#xff0c;首先核对网址&#xff0c;确保下载文件的安全性&#xff0c;并在下载完成后进行必要的病毒查杀。 解决方法&#xff1a; 点击右侧的3个点&#xff0…

微服务系列三:微服务核心——网关路由

目录 前言 一、登录存在的问题归纳 二、*微服务网关整体方案 三、认识微服务网关 四、网关鉴权实现 五、OpenFeign微服务间用户标识信息传递实现 六、微服务网关知识追问巩固 前言 本篇文章具体讲解微服务中网关的实现逻辑、用于解决什么样的问题。其中标题中标注* 涉…

Docker入门系列——网络

Docker 通过容器化应用程序&#xff0c;彻底改变了我们构建、分发和运行应用程序的方式。然而&#xff0c;有效使用 Docker 的一个关键方面是理解容器如何相互通信以及与外界通信。 1. 什么是 Docker 网络&#xff1f; Docker 网络允许容器相互通信以及与外部资源通信。默认情况…

2024年大厂AI大模型面试题精选与答案解析

前言 随着AI市场&#xff0c;人工智能的爆火&#xff0c;在接下来的金九银十招聘高峰期&#xff0c;各大科技巨头和国有企业将会对AGI人才的争夺展开一场大战&#xff0c;为求职市场注入了新的活力。 为了助力求职者在面试中展现最佳状态&#xff0c;深入理解行业巨头的选拔标…

Nico,从零开始干掉Appium,移动端自动化测试框架实现

开头先让我碎碎念一波~去年差不多时间发布了一篇《 UiAutomator Nico&#xff0c;一个基于纯 adb 命令实现的安卓自动化测试框》&#xff08;https://testerhome.com/topics/37042&#xff09;&#xff0c; 由于种种原因 (详见此篇帖子) 当时选择了用纯 adb 命令来实现安卓自动…

RTP和RTCP的详细介绍及其C代码示例

RTP和RTCP的详细介绍及其C代码示例 RTP和RTCP简介RTP协议详解RTCP协议详解RTP和RTCP之间的关系C代码示例RTP和RTCP简介 RTP(Real-time Transport Protocol,实时传输协议)和RTCP(Real-time Transport Control Protocol,实时传输控制协议)是流媒体传输中常用的两个协议。R…

国内能用的Docker镜像源【2024最新持续更新】

国内能用的Docker镜像源【2024最新持续更新】 Docker 镜像加速列表&#xff08;2024年11月已更新&#xff09;配置方式1&#xff1a;临时使用配置方式2&#xff1a;长久有效 在国内使用 Docker 的朋友们&#xff0c;可能都遇到过配置镜像源来加速镜像拉取的操作。然而&#xff…

队列(Queue)的介绍与实现

文章目录 队列队列的概念及结构 队列的实现初始化队列销毁队列队尾入队列队头出队列获取队列头部元素检测队列是否为空获取队列中有效元素个数 队列 队列的概念及结构 队列&#xff1a;只允许在一端进行插入数据操作&#xff0c;在另一端进行删除数据操作的特殊线性表。队列遵…

3.1 快速启动Flink集群

文章目录 1. 环境配置2. 本地启动3. 集群启动4. 向集群提交作业4.1 提交作业概述4.2 添加打包插件4.3 将项目打包4.4 在Web UI上提交作业4.5 命令行提交作业 在本实战中&#xff0c;我们将快速启动Apache Flink 1.13.0集群&#xff0c;并在Hadoop集群环境中提交作业。首先&…

[sa-token]StpUtil.getLoginId

闲聊 一般情况下&#xff0c;我们想用uid&#xff0c;可能需要前端将uid传过来&#xff0c;或者将token传来&#xff0c;然后我们进行识别。 用了sa-token之后&#xff0c;可以使用StpUtil.getLoginId()方法获取当前会话的用户id 代码展示 例如以下代码&#xff1a; public Res…

算法实现 - 快速排序(Quick Sort) - 理解版

文章目录 算法介绍算法分析核心思想三个版本运行过程挖坑法Hoare 原版前后指针法 算法稳定性和复杂度稳定性时间复杂度平均情况O(nlogn)最差情况O( n 2 n^2 n2) 空间复杂度 算法介绍 快速排序是一种高效的排序算法&#xff0c;由英国计算机科学家C. A. R. Hoare在1960年提出&a…

算法【Java】—— 动态规划之斐波那契数列模型

动态规划 动态规划的思路一共有五个步骤&#xff1a; 状态表示&#xff1a;由经验和题目要求得出&#xff0c;这个确实有点抽象&#xff0c;下面的题目会带大家慢慢感受状态标识状态转移方程初始化&#xff1a;避免越界访问 dp 表&#xff0c;所以在进行填表之前我们要预先填…

SpringBoot学生请假系统:从零到一的构建过程

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统&#xff0c;它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等&#xff0c;非常…