引言
前一段时间,我需要解决在点云中分割点的问题(点云是从激光雷达获得的数据)。
示例数据和要解决的任务:

对现有方法的总体概述的搜索失败,因此我必须自己收集信息。 您可以看到结果:这里收集了过去几年中最重要,最有趣的文章(以我的观点)。 所有考虑的模型都解决了分割点云(每个点所属的类)的问题。
本文对于那些熟悉神经网络并想了解如何将其应用于非结构化数据(例如图形)的人很有用。
现有数据集
现在,在公共领域中,有关于该主题的以下数据集:
点云的工作功能
神经网络最近才进入这个领域。 而且,诸如完全连接和卷积网络之类的标准体系结构不适用于解决此问题。 怎么了
因为点的顺序在这里并不重要。 一个对象是一组点,以什么顺序查看它们都无关紧要。 如果每个像素在图像中都有其位置,那么我们可以安全地混合点,并且对象不变。 相反,标准神经网络的结果取决于数据的位置。 如果将像素混合到图像上,则会得到一个新对象。
现在,让我们看看神经网络如何解决这一问题。
最重要的文章
这个领域没有很多基本架构。 如果打算使用图形或非结构化数据,则需要了解以下模型:
让我们更详细地考虑它们。
- PointNet:针对3D分类和分割的点集深度学习
处理非结构化数据的先驱。
- 他们如何决定:本文介绍了两种模型:点的分割和对象的分类。 常规部分包括以下块:
- 用于确定变换(坐标系的平移)的网络,然后将其应用于所有点
- 分别应用于每个点的变换(常规感知器)
- maxpooling,它合并了来自不同点的信息,并为整个对象创建了全局特征向量。
- 然后模型之间的差异开始了:
- 分类模型:全局特征向量进入全连接层的输入以确定整个点云的类别
- 分割模型:全局特征向量和每个点的计算特征进入定义每个点类的完全连接层的输入。
- 代号

- PointNet ++:度量空间中点集的深度层次特征学习
斯坦福大学的那些人描述了PointNet。
- 他们如何决定:pointNet递归地应用于较小的子云,类似于卷积网络。 也就是说,多维数据集划分空间,将PointNet应用于每个多维数据集,然后由这些多维数据集组成新的多维数据集。 这使您可以突出显示网络早期版本丢失的本地迹象。
- 代号


基于PointNet和PointNet ++的文章:
大多数文章在错误计数或复杂块的深度和复杂性方面有所不同。

- 知道邻居的行为:点云的3D语义分割
- 他们如何决定:首先,他们考虑了很长时间,比PointNet更为复杂,带有大量的剩余连接和数量,但总的来说是一样的。 略有差异-他们在全局和局部坐标中计算每个点的符号。
这里的主要区别是错误计数再次出现。 这不是标准的交叉熵,而是两个误差的总和:
- 来自一个对象的成对距离损失点应比τ_near更近,而来自不同对象的点的长度应比τ_far长 。

- 质心损失-来自一个物体的点应彼此靠近
基于DGCNN的文章:
DGCNN最近于2018年发布,因此基于该架构的文章很少。 我想提请您注意一件事:

结论
在这里,您可以找到有关解决点云中分类和分割问题的现代方法的简要信息。 有两个主要模型(PointNet ++,DGCNN),现在对其进行了修改以解决这些问题。 通常,为了进行修改,会更改错误功能,并且通过添加层和链接使这些体系结构变得复杂。