概念
点云(Point Cloud)是一种表示三维物体的数据类型,它可以由激光雷达(LiDAR)、深度摄像头等能够捕获空间信息的传感器获得。与图像(image)是像素点在二维平面上的有序排列不同的是,点云是三维空间上的无序集合,即点的顺序不影响整体点集对应的的形状表示。
点云由若干个三维空间中的点组成,给定一个由个点组成的点云,其中为第个点。一般地,一个点至少具有其坐标值,即一个点的特征至少包含三个维度;额外的信息包括该点的法线(normal)坐标,和该点的颜色信息等。
描述三维物体的数据类型还有体素(voxel)和网格(mesh)等,其中体素的思想来源于图像的像素(pixel),使用体素用以解决点云无序性的问题,这样就可以使用传统的图像卷积操作对三维数据进行处理,但体素表示的数据规模较大、转换数据类型时信息丢失等问题;而网格也属于一种不规则的数据类型,其使用三角形描述物体表面,三角形的数量决定了物体表面的细度,网格数据多用于三维重建、三维建模等场景。
点云与上述数据类型相比,属于最简单的三维空间表达形式,但由于其无序性等特点,早期工作一般将其转换为其他三维数据类型,再送入网络进行学习。
基于点云的神经网络
第一个直接处理点云数据的神经网络是2017年的PointNet [1],该网络解决了点云数据的三个特点:无序性(Unordered)、点间交互性(Interaction among points)和变换不变性(Invariance under transformations)。接着,该作者在其改进网络PointNet++ [2]中,使用逐级下采样(set abstraction)的思想,进一步提高了网络对于点云特征的表达能力。
此外,点云可以看作是无向图中的顶点集合,那么就可以把离散的点云数据抽象成由若干条边连接的图。使用图(graph)的思想来表达点云中各点与其邻近点之间的关系特征也是一个研究方向。DGCNN(Dynamic Graph CNN) [3]是其中的典型工作,该网络引入EdgeConv操作,考虑了各点与其邻域内个邻近点的边特征,再重新聚合这些边特征,得到点上的新特征。其改进工作PointWeb [4]不仅考虑了和其邻近点的关系,还考虑了各邻近点之间的联系,形成了一个局部的完全图。
以上为早期的代表工作,其中包括set abstraction,EdgeConv等经典思想仍沿用至今,为后续点云工作奠定了基础。
下游任务
分类(Classification)、部分分割(Part Segmentation)、语义(场景)分割(Semantic Segmentation)、目标检测(Detection)、配准(Registration)等。分类任务顾名思义,根据点云整体形状确定其归属的种类(category),如飞机、椅子等;部分分割则是针对一个点云中的各个点,确定其所属的类别,如飞机可拆分为机身、机翼和机尾三个部分,则在飞机点云数据中,需要给出各点属于哪个部分(数据集中包含真实值);语义分割面向的是一个室内或室外场景,将其中不同的物体分割出来并打上对应的标签(部分分割是在具体的物体上进行更精细的分割)。
应用场景及前沿技术
由于点云数据的获取需要特定的传感器设备,相较于图像的获取成本较高,因此目前点云主要应用于遥感、自动驾驶、机器人、三维重建、特殊图像等对视觉技术要求高的场景。
基于预训练、大模型、多模态的新技术已经应用于点云数据,如Point-BERT [5]、PointCLIP [6]、Point-Bind & Point-LLM [7]等,不过目前类似的工作仍较有限,在诸多子任务上的创新点仍有很多值得探索发现。
针对点云网络在空间中任意旋转(SO3)情况会出现性能大幅下降的问题,研究点云的旋转不变性(Rotation Invariance,RI)应运而生
相关文献
[1] PointNet,[2] PointNet++,[3] DGCNN,[4] PointWeb,[5] Point-BERT,[6] PointCLIP,[7] Point-Bind & Point-LLM