SO-Net: Self-Organizing Network for Point Cloud Analysis——点云论文阅读(6)

此内容是论文总结,整理的较为详细!!

核心观点

论文目的:点云分类、分割任务核心在于点云特征提取,本文旨在设计一种较好的点云特征提取结构

论文核心: 提出了SO-Net,属于data indexing-based方法,用自组织网络SOM建模输入点云的空间分布,然后聚合成一个全局向量,进行分类分割任务

SO-Net通过构建自组织映射(SOM)来表示点云的空间分布,对单个点和SOM节点进行层次特征提取,将输入点云表示为一个特征向量。通过进行点对点最近邻搜索,可以系统地调整网络的接收域。

介绍

主要讨论了卷积神经网络(ConvNets)在三维数据处理中的应用挑战,以及针对这些问题提出的一种新型深度学习架构 SO-Net。主要内容:

  1. 卷积神经网络(ConvNets)在二维图像识别领域取得了巨大成功,但在处理三维数据时面临挑战,如计算冗余、分辨率损失和计算成本等。

2.针对三维数据的处理,提出了一种名为 SO-Net 的深度学习架构。通过构建自组织映射(SOM)来表示点云的空间分布,并对单个点和 SOM 节点进行层次特征提取,将输入点云表示为一个特征向量。

3.SO-Net 利用点云的空间分布,在特征聚合过程中通过执行点到节点的 k-近邻(kNN)搜索来控制感受野重叠。

4.SO-Net 网络设计具有特殊性,以及采用置换不变 SOM 训练,保证了输入点顺序的不变。

5.SO-Net 的应用包括基于点云的分类、自动编码器重建、零件分割和形状检索等。

相关工作

3D 形状表示的不同方法和技术,包括体素格、基于体素的变分自编码器、稀疏方法和光谱卷积网络等。

  • 体素化方法虽然直观且与 3D ConvNets 兼容,但面临分辨率损失和计算成本问题。

  • 基于体素的变分自编码器方法简单且能实现先进性能,但仍受分辨率损失和计算成本困扰。

  • 稀疏方法提高了效率,但依赖于统一的体素网格,并受限于并行化能力。

  • 光谱卷积网络适用于非欧几里德几何,但大多局限于流形网格。

与均匀网格相比,Kd-Tree 和八叉树的索引技术具有可缩放性,且它们的规则结构适用于深度学习。 混合网格八叉树结构,通过将多个小八叉树放入规则网格中来实现卷积和合并操作。这种结构使用位串表示法,使得单个体素完全由其位索引确定,从而可以使用简单的算术访问父节点或子节点。 标签缓冲区,以寻找不同深度下的八叉树节点对应关系。这种方法有助于提高索引技术的效率。 Kd-Net,一种用于计算预建平衡 Kd-Tree 每个节点向量表示的方法。他们采用自底向上的方式,通过应用非线性和仿射变换来计算父特征向量。

PointNet对因为每点的特征提取是相同的,并且最大池化操作是置换不变的。缺乏像ConvNet一样的分层特征聚合。

PointNet ++ 后来被设计成将点分成不同层级的多个组,以便可以从多个层级中提取特征。

SOM网络解析:

输入:N个点云(N,3),输出:M个节点(M,K) 为了体现点云的置换不变性,采用:每次训练都初始化同样的节点分布、采用整体更新不逐点更新节点(所有输入点都KNN之后,统一进行更新,体现置换不变性)

首先初始化M个节点信息,论文中采用球形空间分布 通过以下算法,更新节点特征,达到M个节点特征可以代表输入点云的效果

对于输入点云的每个点Pi,对节点空间做KNN(point to node KNN),得到K个Sik

对Sik做归一化处理,得到k个归一化向量Pik

Pik经过MLP,升维处理

输入点云的每个点都处理完成后,得到KN个特征,对于每个节点,对其连接的所有特征做max pooling,节点得到更新,最终M个节点更新完毕,得到M个节点特征(M个节点向输入点云'靠近',学到了输入点云的空间分布)

过程原理

  • 首先,每个点通过基于点对节点的 kNN 搜索归一化为 k 个坐标(k 个 d 维坐标,d 是坐标维度),这能保证 M 个最大池化操作的感受野重叠。归一化后的点与相关联的 SOM 节点关联,形成迷你点云。

  • M 个增强的节点特征通过一系列共享层进行聚合,然后聚合成一个表示输入点云的特征向量。这一过程利用了 SOM 训练和 kNN 搜索来确定迷你点云的数量和覆盖范围。

  • 第一批完全连接的层可以看作是一个小型的 PointNet,用于编码迷你点云。SOM 节点的连接起着将这些小型点云组合回原始点云的作用,从而提高效率。

  • SO-Net 中存在两个级别的特征聚合:从点特征到节点特征,从节点特征到全局特征向量。这些特征聚合过程具有置换不变性,因为 SOM 训练和 kNN 搜索是确定的。

  • 尽管存在次优的 SOM 训练可能导致孤立节点和不完整覆盖,但 SO-Net 在对象分类等应用中仍然超过了最先进的方法。

  • 研究中发现,节点特征提取生成了一个类似于图像的特征矩阵,这使得应用标准 ConvNets 来进一步融合节点特征和增加感受范围成为可能。实验中,用二维卷积和池化替换第二批全连接层后,分类精确度略有下降,但这是一个有希望的研究方向。

整合局部和全局特征

  • 在分割任务等应用中,整合局部和全局特征至关重要。这个过程与 3.2 节中编码器的逆转操作类似,通过将全局特征向量与 kN 归一化点相连接来实现。

  • 在编码过程中,M 个节点特征添加到与它们相关联的点。这种关联关系可以参考 3.2 节。这个过程产生了结合了点、节点和全局特征的 kN 特征。

  • 由于感受野存在重叠,kN 特征实际上是冗余的。为了融合这些冗余信息,作者采用了平均或最大池化方法。此外,早、中或晚期融合可能在不同表现方面有所不同。

  • 通过一系列实验,作者发现平均池化与中期融合相结合是最有效的。这种融合方法可以产生 N 个每点分类的分数。

解码器

设计解码器网络从编码的全局特征向量中恢复输入点云

为了解决内存和计算占用问题,作者设计了一个具有两个并行分支的网络:全连接分支和卷积分支。

  • 全连接分支通过重塑输出特征向量来预测点云,具有高度的灵活性,因为每个坐标都是独立预测的。

  • 卷积分支预测一个大小为 3×H×W 的特征矩阵,即 N^2=H×W 个点。卷积层的空间连续性使得预测的 N^2 个点可能表现出更多的几何一致性。与全连接分支相比,卷积分支需要的参数更少。

  • 卷积分支采用金字塔式的上卷积链进行设计,每个 upconv 模块由最近邻上采样层和 3×3 卷积层组成。这种设计在点云自动编码器中比反卷积层更有效。

  • 损失函数使用倒角损失(Chamfer loss),具有可微性、并行计算能力以及对异常值鲁棒。倒角损失计算输入点云和恢复点云中每个点到其最近邻的距离。

实验

从三个不同应用来评估SO-Net的表现,也就是 点云自动编码器,目标分类和物体分割

自动编码器中训练出来的编码器可以作为其他两个任务的预训练模型。在所有实验中(除了二维的MNIST分类)编码器的结构和SOM的配置保持一致,没有特别地调整。

实验细节

网络是在NVIDIA GTX1080Ti上使用PyTorch实现的。在大多数实验中,选择大小为8×8,k = 3的SOM。使用Adam 优化网络,初始学习率为0.001,batch size 为8。对于以5000或更多点作为输入的实验,学习率每20个epoch 减少一半,否则每40个epoch做一次学习率衰减。通常,网络在学习率下降约5次后收敛。每一层都应用Batch-normalization和ReLU。

数据集

作为2D示例,4.4节中采用了Sec中的MN川ST数据集。对于每个数字,从非零像素中采样512个二维点以用作的输入。 ModelNet10和ModelNet40, 被用作4.3节中自动编码器任务和4.4节中的分类任务的基准。

Data augmentation

输入点云在单位立方体内被归一化为零均值。在训练阶段应用以下数据增强:

(a)将高斯噪声N(0;,0.01)添加到点坐标和表面法向量(如果适用)。

(b)将高斯噪声N(0,0.04)添加到SOM节点。

(c)点云,表面法向量(如果采用的话)和SOM节点通过从均匀分布U(0.8,1.2)采样的因子来缩放。进一步增加如随机移位或旋转不会改善结果。

Point Cloud Autoencoder

证明了可以从 SO-Net 编码的特征向量(例如,长度为 1024 的向量)重构点云。使用 Facebook 的 faiss [16] 进行了 Chamfer 距离最近的邻居搜索。有两种配置用于重构不同大小的点云。第一种配置从卷积分支生成 64×64 个点,从全连接分支生成 512 个点。另一种配置分别通过去除图 4 中的最后一个上采样模块来生成 32×32 和 256 个点。

Classification Tasks

对点云进行分类,在编码的全局特征向量之上添加了一个三层多层感知器(MLP)。对最后两层应用dropout,ratio为 0.4。

预训练对网络性能的影响:通过在 3.4 节中使用自动编码器进行预训练,可以提高网络的性能。原因是使用更大的数据集进行预训练可能导致更具抗过拟合能力。

Robustness to point corruption 图6(a)

训练网络时使用的是大小为 2048 的点云,但在测试时,他们使用了点dropout的方法。

Robustness to SOM corruption

SO-Net不是很依赖SOM,证明了自己的 SO-Net 对 SOM 结果的噪声或腐蚀具有很高的鲁棒性。

在图 6(b)中,他们用 8×8 的 SOM 作为无噪声版本进行训练,但测试时 SOM 大小从 5×5 变为 11×11。

在图 6(c)中,他们在测试时向 SOM 添加高斯噪声 N(0,σ)。

Effect of hierarchical layer number

通过在原始的 2 层结构("grouping&PN(PointNet)- PN")中添加一层,将网络扩展为 3 层结构。新添加的这一层是基于 SOM/kNN 的"grouping&PN"重复操作。

表 1 显示,与 PN++ 和 Kd-Net 相比,3 层 SO-Net 在 ModelNet40 上准确性提高了 1.5%(相对错误率降低了 19%),在 ModelNet10 上准确性提高了 1.7%(相对错误率降低了 28%)。

层次层数的增加也可能导致过拟合。图 7 展示了层次层数对性能的影响。

Training speed

SO-Net 的训练速度优势主要体现在以下几点:

  • 批量训练允许在 GPU 上实现并行化。

  • 基于 SOM 的训练具有完全确定性,可以作为网络优化前的数据预处理。

  • 相比传统随机 kd-tree 构建,作者提出的确定性设计提高了训练速度。

  • 基于 SOM 的层次特征聚合在 GPU 上实现高效。

  • 训练时间较短,相比具有相似性能的最新网络具有更高的训练速度。

Part Segmentation on ShapeNetPart

将物体部分分割问题形式化为一个逐点分类任务

Conclusion

SOM 保留了输入空间的几何属性,并将点云转换为相应的特征矩阵,一个有前景的方向是将经典的卷积神经网络(ConvNets)或基于图的卷积神经网络(graph-based ConvNets)应用于实现更深层次的层次特征聚合。

相关推荐
吉大一菜鸡38 分钟前
FPGA学习(基于小梅哥Xilinx FPGA)学习笔记
笔记·学习·fpga开发
泰迪智能科技011 小时前
高校深度学习视觉应用平台产品介绍
人工智能·深度学习
算法小白(真小白)2 小时前
低代码软件搭建自学第二天——构建拖拽功能
python·低代码·pyqt
唐小旭2 小时前
服务器建立-错误:pyenv环境建立后python版本不对
运维·服务器·python
007php0072 小时前
Go语言zero项目部署后启动失败问题分析与解决
java·服务器·网络·python·golang·php·ai编程
Eric.Lee20212 小时前
Paddle OCR 中英文检测识别 - python 实现
人工智能·opencv·计算机视觉·ocr检测
Chinese Red Guest2 小时前
python
开发语言·python·pygame
audyxiao0013 小时前
AI一周重要会议和活动概览
人工智能·计算机视觉·数据挖掘·多模态
骑个小蜗牛3 小时前
Python 标准库:string——字符串操作
python