(2023年新疆大学、中科院等点云分类最新综述) Deep learning-based 3D point cloud classification: A systematic survey and outlook
论文地址:https://www.sciencedirect.com/science/article/abs/pii/S0141938223000896
摘要:近年来,点云表示已成为计算机视觉领域的研究热点之一,并在自动驾驶、虚拟现实、机器人等多个领域得到了广泛应用。尽管深度学习技术在处理规则结构的二维网格图像数据方面取得了巨大成功,但在处理不规则、,非结构化点云数据。点云分类是点云分析的基础,许多基于深度学习的方法已被广泛应用于这项任务。因此,本文旨在为该领域的研究人员提供最新的研究进展和未来趋势。首先,我们介绍了点云的获取、特点和挑战。其次,我们回顾了点云分类的3D数据表示、存储格式和常用数据集。然后,我们总结了基于深度学习的点云分类方法,并补充了最近的研究工作。接下来,我们对主要方法的性能进行了比较和分析。最后,我们讨论了点云分类的一些挑战和未来的发展方向。
关键词:点云表示,点云,深度学习,图像,3D数据,点云分类
1、引言
在如今的计算机视觉领域中,二维图像的处理技术已经接近成熟,许多研究者将研究焦点更加符合现实世界的三维场景中。在三维场景中,点云因其丰富的表达信息而在表示三维场景中具有重要作用,因此,点云成为研究三维视觉的常用的数据表达形式。随着科技的进步,点云数据的获取越来越便捷,其获取方式有很多种,如:LIDAR激光探测、通过三维模型计算获取点云、通过二维影像进行三维重建获取点云等等。点云分类作为最基本的点云分析任务,在自动驾驶、铁路目标物体检测、医学、航天探测、海洋探测等多个领域中得到了广泛的应用。点云分类的目的是为点云中的每个点配备标记,以识别点云的整体属性或者部件属性。由于点云的部件属性属于点云分割的范畴,在本文中,我们主要关注点云的整体属性即点云分类。
如图1所示,三维数据有多种表示形式。当前可以通过间接的方法将点云转换为mesh、体素或者多视图数据学习3D物体表示,但是这种方法容易造成物体的3D几何信息的损失或者内存消耗过大等问题。在PointNet之前,由于点云的无序性、不规则性,深度学习技术无法直接对点云进行处理。早期的点云处理是用手工设计的规则进行特征提取,然后使用基于机器学习的分类器(如Support Vector Machines (SVM)、AdaBoost、Random Forest(RF)等)预测点云的类别标签,但是这类方法自适应能力差,易产生噪声。一些研究通过综合上下文信息来解决噪声问题,如:Conditional Random Field(CRF)、Markov Random Field(MRF)等,一定程度上提高了分类性能。但是手工设计规则提取的特征表达能力是有限的,尤其是在复杂场景中,模型的准确度和泛化能力还达不到人类的要求,并且这种方法非常依赖于具有专业知识经验的研究人员。
随着计算机的运算和处理数据能力的高速发展,同时促进了深度学习技术在点云分析中的应用。斯坦福大学Charles等人在2017上发表的论文,提出了一种直接处理点云的深度学习网络——PointNet。此篇论文具有里程碑意义,直接处理点云的方法逐渐占据主导地位。面对3D点云的不规则性、无序性、稀疏性等特点,点云分类依然是一个具有挑战性的问题。当前已有一些综述对基于深度学习的3D点云分类方法进行了分析和总结。本文在前人的工作基础上进行了完善,并添加了新的基于深度学习的3D点云分类方法,如最近比较热门的基于transformer的方法。最后对3D点云分类技术的未来的研究方向进行了展望。文章总体架构如图2所示。
具体来说,我们的工作主要贡献如下:
·我们首先对3D数据进行了详细介绍,并对点云做出更深的解读以便于读者理解,其次给出了用于点云分类的数据集和其获取方法。
·我们总结了最近发表的点云分类综述的研究,在其基础之上补充了最新的研究方法。根据其特性将这些方法分为三类,包括基于多视角、基于体素和基于点云的方法,并对基于点云的方法进行细分。
·我们根据对方法的分类讨论了其子类别的优点和局限性。这种分类更适合研究人员从实际需求出发去探索这些方法。
·我们给出了方法的评价指标以及性能比较,以更好的展示各类方法在数据集上的表现,并分析了该领域当前的一些挑战和未来趋势。
2 、3D数据
2.1、3D数据表示形式
3D数据的表示形式有多种,如:点云、Mesh网格、体素。在这里我们进行简单介绍。
1、点云:
点云本质上是在 3D 空间中绘制的大量微小单个点的集合,如图1图 2(a)所示,它由使用 3D 激光扫描仪捕获的大量点组成的集合,是一个三维坐标系(x,y,z)中很多点的数据集合。这些点可以表达目标的空间分布和表面特性,点云就是由这些点组成的一个集合。点云中的每个点包含丰富的信息,如:三维坐标的表示(x,y,z)、颜色信息(R,G,B)和表面法向量等。
2、Mesh网格:
3D数据也可以用Mesh网格进行表示,它可以看作为是构建了点与点之间的局部关系的点的集合,。三角网格也称三角面片(如图1(b))是常用的描述3D物体的mesh网格之一,每个三角面片中存储着顶点、边、面三种信息。一个3D模型的表面可以由很多个三角面片构成,如图 2(b),而构成这些三角面片的点、边的集合就称为Mesh。
3、体素:
在3D计算机视觉领域物体表示中,体素也是一种重要的3D数据表示形式,这是由于多边形往往由其顶点的坐标明确表示,如图1图 2(c)所示,体素擅长表示非均匀填充的定期采样空间,因此,体素可以有效地表示具有大量空白或均匀填充空间的简单 3D 结构点云数据,而体素则擅长表示非均匀填充的定期采样空间。由于点云数据的庞大,我们可以通过对点云数据体素化,这样既有利于增加数据运算效率,也有利于减少随机内存的访问,体素化之后的数据可以高效进行空间卷积,同样利于对多尺度、多层次的局部特征信息的提取。但对点云数据体素化必然回带来一定程度的信息丢失。
4、多视角图像:
多视角图像(如图1(d)所示)也是一种点云数据的表现形式,它衍生于单视角图,是在特定的角度下将3D物体渲染成多个视角的图像,是将同一场景的多张未对齐的照片融合到选定的视图中,如图 2(d),其中一个具有挑战性的问题是:如何仅从单个视图输入生成多视图布料图像。Zhao等人提出了一种新的图像生成模型,称为VariGANs模型,这种模型可以从输入生成具有不同视图的逼真图像,它结合了变分推理和生成对抗网络(GAN)的优势,从粗到细的方式生成目标图像,而不是遭受严重伪影的单通道。在更一致的全局外观以及更丰富和更清晰的细节方面,VariGANs生成的新视图图像比现有方法生成的图像更合理。面临的挑战主要是视角的选择与视角融合。
2.2、点云数据存储格式
点云有有数百种可用的3D文件格式,不同的扫描仪产生多种格式的原始数据。不同的处理软件能够接受其中一些文件类型,并且每个软件的导出功能不同。像Faro、Leica和Trimble这样的一些大公司同时生产软件和硬件。大多数软件系统能够接收大量文件格式并具有灵活的导出选项。有许多具有广泛互操作实用程序的常见文件类型。使用这些格式保护数据的能力将确保您能够使用多种不同类型的软件进行处理,而无需求助于第三方文件转换器。点云数据文件之间最大的区别在于ASCII和二进制的使用。二进制系统直接以二进制代码存储数据。常见的点云二进制格式包括FLS、PCD、LAS等。其他几种常用的文件类型可以同时支持ASCII和二进制格式。这些包括PLY、FBX。E57以二进制和ASCII格式存储数据,将两者的许多优点集中在一个文件类型中。下面我们对一些常用的点云数据存储格式进行介绍:
1、obj:obj格式的点云文件是由Wavefront Techonologies公司技术开发,是一种文本文件,它是一种简单的数据格式,仅表示了3D数据的几何、法线、颜色、纹理信息。这种格式通常是用ASCII码表示,但是也有专有的obj二进制版本。
2、las:las格式主要用于存储LIDAR点云数据,本质上是一种二进制格式文件,一个LAS文件由三个部分组成,分别是:头文件区(记录数据集的基本信息,包括总点数、数据范围、每个点存储的维度等信息)、可变长记录区(记录点云每个点的元数据信息,包括坐标系、额外的维度等信息,是las格式中最灵活的部分)、点集记录区(las文件的核心,记录点云中点的坐标信息、R,G,B信息、classification信息、intensity信息等属性信息),las格式较好地顾及了LIDAR数据的特点,结构合理,便于扩展。
3、ply:ply全名为多边形档案(Polygon File Format)或斯坦福三角档案(Stanford Triangle Format),其灵感来自obj,专门用于存储3D数据。ply使用名义上平坦的多边形列表来表示对象。目标是增加可扩展性和存储更多物理元素的能力。与其他格式相较之下这是较为简单的方法。它可以储存的资讯信息包含颜色、透明度、表面法向量、材质座标与资料可信度,并能对多边形的正反两面设定不同的属性。该文件有两个版本,一个是ASCII版本,另一个是二进制版本。
4、E57:E57是用于点云存储的供应商中立文件格式。它还可用于存储由激光扫描仪和其他3D成像系统生成的图像和元数据信息,是一种严格的格式使用固定大小的字段和记录。E57格式的点云数据文件结构较为紧凑,并且应用较广泛。它使用ASCII和二进制代码保存数据,提供了ASCII的大部分可访问性和二进制的速度,它可以存储3D点云数据、属性、图像。
5、PCD:PCD是Point Cloud Library官方指定格式,是由头文件和点云数据两个部分所构成,用于描绘点云的整体信息,具有ASCII和二进制两种数据存储类型,但是PCD文件的头文件必须使用ASCII编码,PCD一个很好的好处是可以很好的适应PCL,从而获得与PCL应用程序相比最高的性能,而不是像本机类型那样将不同的文件格式适配到PCL,并通过转换引起额外的延迟功能。
2.3、3D点云公共数据集
当今,已经有很多行业和大学提供的点云数据集,不同的方法在这些数据集上的表现效果,体现了方法的可靠性和准确性,。数据集可以为训练网络提供真实标签,这些数据集由虚拟场景或真实场景所组成,可以为训练网络提供真实标签。在本节中,我们将介绍一些常用的点云分类数据集,各个数据集的划分情况展示在表1。
ModelNet40: 该数据集由普林斯顿大学视觉与机器人实验室开发。ModelNet40数据集包含由合成的对象点云CAD物体构成。作为最广泛使用的点云分析基准,ModelNet40因其类别多样、形状清晰、数据集结构良好等而广受欢迎。原来的ModelNet40该数据集由40个类别(如飞机、汽车、植物,灯)的物体,其中9,843个用于训练,其余2,468个用于测试。相应的点云数据点从网格表面均匀采样,然后通过移动到原点并缩放成单位球体进行进一步预处理。
下载地址:https://modelnet.cs.princeton.edu/
ModelNet10: ModelNet10是ModelNet40的一个子集,该数据集只包含10个类别,它还分为3991个训练和908个测试形状。
下载地址:https://modelnet.cs.princeton.edu/
SyDney Urban Objects:该数据集包含了各种常见的城市道路对象,收集于悉尼CBD,其中对车辆、行人、标志和树木类别物体进行了631次单独扫描
下载地址:https://www.acfr.usyd.edu.au/papers/SydneyUrbanObjectsDataset.shtml
ShapeNet:ShapeNet是由斯坦福大学、普林斯顿大学和美国芝加哥丰田技术研究所的研究人员开发的大型3D CAD模型存储库。该存储库包含超过3亿个模型,其中220,000个模型被分类为使用WordNet上位词-下位词关系排列的3,135个类。ShapeNetCore是ShapeNet的一个子集,其中包括近51,300个独特的3D模型。它提供了55个常见的对象类别和注释。ShapeNetSem也是ShapeNet的一个子集,它包含有12,000个模型。它的规模更小,但覆盖面更广,包括270类。
下载地址:https://shapenet.org/
ScanNet:ScanNet是一个包含2D和3D数据的实例级室内RGB-D数据集。它是标记体素的集合,而不是点或对象。截至目前,ScanNet v2是ScanNet的最新版本,已经收集了1513个带注释的扫描,表面覆盖率约为90%。在语义分割任务中,该数据集被标记为20类带注释的3D体素化对象。
下载地址:http://www.scan-net.org/
ScanObjectNN:ScanObjectNN是个真实世界的数据集,包括2902个3D对象,分为15个类别,由于数据集中的背景、缺失部分和变形,因此它是一个具有挑战性的点云分类数据集。
下载地址:https://hkust-vgd.github.io/scanobjectnn/
3 、基于深度学习的点云分类方法
深度学习框架是人工智能的基础,在计算机视觉领域中得到广泛应用。基于深度学习的点云分类模型由于其泛化能力强、分类精度高等优势能够实现点云特征的提取在点云分析中得到广泛的应用。本节对基于深度学习的点云分类方法进行了详细的划分,并补充了最新的一些研究工作,对各类方法进行系统阐述。图3展示了各个分类方法的发表时间轴。
3.1、基于多视角的方法
多视角学习是一种机器学习框架,其中数据由多个不同的特征组表示,每个特征组称为一个特定视图。基于多视角(Multi-View)的方法是一种基于2D图像的深度学习,实际上图像是由3D世界经过相机压缩到2D网格来表示,并且2D深度学习的方法研究相对成熟,相对于基于体素的方法,因其没有体素的量化误差而具有较好的性能。这种方法分为三个步骤:一、将3D图像投影到多个视图中。二、提取视图功能。三、融合这些功能对3D形状进行精确的分类。
2015年Su等首次提出了多视图卷积神经网络MVCNN方法,由于2D视图的集合可以为3D形状识别提供大量信息,于是此方法从2D图像上的渲染视图集合中识别3D形状,解决了“如何表示3D形状”这一长期问题。此方法首先展示了一个标准的CNN架构,经过训练可以独立识别形状的渲染视图,并表明即使从单个视图中也可以识别3D形状。当提供物体的多个视图时,利用CNN架构将多个视图的信息组合成一个紧凑的形状描述符,识别率会进一步提高,其网络架构如图4。这种方法的在投影检索过程种的计算量较大,并且通过最大池化(max-pooling)将多个视图特征转换成描述全局特征时,忽略了其他非最大元素信息,因此必然会造成一定的信息缺失,这会对识别的准确度造成一定的影响 。
因此针对MVCNN的计算量大及其效率问题的问题,Bai等人提出了一种实时3D形状搜索引擎,名为即GIFT,该方法使用了GPU加速的高效投影和视图特征提取等几个方面方法,这大大缩短了检索任务的所花费的时间,使得检索任务可以在一秒钟内完成,它具有较高的效率和处理大规模数据的能力。
在MVCNN的基础上Feng等人提出的GVCNN架构,该方法引入“视图-组-形状”的架构提取描述符,可以有效利用视图间的特征关系。为了克服由于最大池化而导致的信息丢失问题,Wang等人引入基于优势集的视图聚类和池化层对MVCNN方法进行改进,提出了RCPCNN。它需要构建视图相似度图,基于优势集在该图中对节点(视图)进行聚类,以及从每个集群内汇集信息。循环聚类和池化层是在以一种为3D对象识别提供更多判别力的方式聚合多视图特征,这种循环聚类和池化卷积神经网络(RCPCNN)模块在插入现成的预训练CNN时,提高了多视图3D对象识别的性能,其网络架构如图 5所示。
Yu等人提出的MHBN方法通过双线性池聚合局部卷积特征来获取有效的3D对象表示,图 6为这种方法的网络构架。为了实现端到端可训练框架,此方法协调双线性池合并为网络中的一层,从补丁到补丁相似度测量的角度,解决基于视图的方法池化视图特征不同的问题。
为了避免当前多视图方法缺乏活力,Hamdi等人提出了多视图转换网络(MVTN),它提出了一个可微分模块,可预测特定任务的多视图网络的最佳视点,回归3D形状识别的最佳视点,MVTN可以与任何多视图网络一起进行端到端的训练,在3D形状分类和检索任务中表现出明显的性能提升,而无需额外的训练监督。
总结:相比于传统的人工提取特征分类,基于多视角的方法在点云分类中的效果较好,但在信息的充分利用、大规模场景的应用、3D数据的内在几何关系等方面,仍是我们需要面对的挑战。
3.2、基于体素的方法
这类的方法是将三维点云模型转化为接近物体形状的体素形式,每个体素块中包含一组相关联的点,然后使用3D CNN对体素进行分类。体素作为三维模型表示方法的其中之一,同样可以应用于点云分类方法。前提是需要将三维模型体素化,即将三维模型转化为接近物体形状的体素形式。一般通过点云的形式转化为体素,其中每个体素块中包含一组相关联的点。Maturana等人提出了一种将用体积占用网格表示3D信息和有监督的3D的卷积神经网络构架——VoxNet。VoxNet是最早基于体素的3DCNN模型。如图 7所示,,一种基于3DCNN的架构,这种方法用3D网格表示环境信息,每一个网格对应一个体素,该方法将每个网格进行归一化处理,再通过卷积的方式构建特征图并最大池化单个体素块,如图 7,。这种架构从原始体积数据中学习提取特征和分类对象,使用2.5D来表示局部描述扫描的特征,并采用了完全体积表示,从而提高了对环境信息的表达能力,可以实现强大的3D对象识别。VoxNet是模型是最早基于体素的3DCNN模型。
Wu等人提出3D ShapeNet(如图 8所示),这种方法为了研究了3D形状的表示,而提出了一个卷积深度信念网络,以识别3D物体。该模型3D ShapeNet将3D形状表示为3D体素网格上的二进制变量的概率分布,每个3D网格可以用二进制张量进行表示。3D ShapeNets可以物体类别进行识别,以完成完整的3D形状,并在初始识别不确定的情况下预测下一个最佳视图。最后,3D ShapeNets可以整合新的视图以与所有视图共同识别对象,如图 8所示。
由于3D卷积的计算成本很高,并且在对3D体素进行卷积操作中的时空间分辨率方面较为复杂增加了模型的复杂度。,针对这一现象Li等人提出了一种场探测神经网络(FPNN)的网络架构,该模型将3D数据表示为3D场,然后通过一组探测过滤器对输入场进行采样,最后采用场探测滤波器可有效地进行特征提取。场探测层可以与其他推理层一起使用,以最大限度地减少特定于任务的损失。但该方法会使语义分割结果的分辨率降低。
为了减少内存消耗和提高计算效率,一些学者们用八叉树结构来代替固定分辨率的体素结构。Riegler等提出的OctNet中,该模型利用3D数据的稀疏性,用一组不平衡的八叉树对空间进行分层划分,其中每个叶节点存储一个池化特征表示。该方法能实现更深层的网络而不影响其分辨率。Wang等人提出一种基于八叉树的卷积神经网络O-CNN(O-CNN: octree-based convolutional neural networks for 3D shape analysis),用八叉树来表示3D数据信息并离散化其表面,只对3D形状表面占据的八分圆进行3D CNN操作,提高了计算效率和功效。
相继于八叉树结构在3D数据表示形式的使用,Kd-tree结构也被运用于点云分类的模型中,Klokov等提出的Kd-network就采用了Kd-tree结构,与体素和Mesh网格相比,Kd-tree索引和结构化3D数据的能力有所提高,因此Kd-network 在训练和测试时具有更小的内存占用和更高效的计算。Zeng等人提出的3D Context Net利用kd-tree施加的局部和全局上下文线索的方法进行语义分割。八叉树结构和Kd-tree结构在一定程度上减少内存消耗,并提高了计算效率,但由于体素边界值的影响,使得这两种结构不能充分的利用局部数据特征而使得准确度受到影响。Wang等人提出一种多尺度卷积网络——MSNet,此方法先将空间划分为不同尺度的体素,然后再在多个尺度上同时应用MSNet以区别学习局部特征,最后使用条件随机场(CRF)对MSNet的预测结果进行全局优化,以实现较准确的点云分类任务。此方法可以在复杂环境下对不同类型的点云进行分类。Meng等人提出的VV-Net,此方法使用基于内核的插值变分自动编码器(VAE)对体素中的局部进行编码,将每个体素进一步细分为子体素,这些子体素在体素内插入稀疏点样本,可以有效处理嘈杂的点云数据集。
总结:相比多视角的方法,基于体素的方法注重了3D数据之间的关系,把具有内在联系的点云归为一组点,从而建立体素,。虽然基于体素的模型解决了点云无序性和非结构化问题。,但是点云数据的稀疏性和信息不完整性导致了分类任务的效率低,因此不能充分利用点云中的信息。
3.3 、基于点云的方法
自从2017年,Qi等基于深度学习技术开创性地提出PointNet(如图 9所示)后,当前许多研究方法更多的关注于使用深度学习技术直接处理点云。特别地,特征聚合算子是处理点云的核心, 由于基于多视角和基于体素的点云分类方法对数据的预处理较为复杂,并不能充分的利用点云数据,研究者们开始从原始点云数据着手,直接对点云数据进行处理,这样做的好处是不仅能更好的利用每个点的信息,并能降低噪音和由于计算复杂所带来的误差。特征聚合算子是基于点云方法的重要基础,它实现网络中了离散点的直接信息传递。而特征聚合算子主要分为两类:局部特征聚合和全局特征聚合,本节从特征聚合的角度,针对这将对基于点云的方法分为两大类,并分别对两大类方法进行做了更细的划分和介绍。
2017年,Qi等提出的PointNet是基于点云的方法的开创性研究,是一种全局特征聚合的方法。此方法直接将点云作为输入,通过T-Net模块进行变换,再通过共享全连接的方式对每个点进行学习,最后最大池化聚合点的特征为全局特征,如图 9。虽然PointNet是基于点云方法的开拓者,但仍存在缺陷,如PointNet只捕捉到单个点和全局点的特征信息而无法获取完整的局部特征信息,没有考虑到邻近点的关系的表示。正是这些缺陷导致PointNet无法分类一些细粒度的模型。
3.3.1局部特征聚合
3.3.1.1基于逐点处理的方法
基于PointNet,Qi等基于PointNet相继提出了PointNet++,引入了分层神经网络,该方法以分层方式处理一组点点云,每一层分为由采样层、分组层、PointNet层三部分组成,。其中,采样层中获得局部邻域质心,分组层构建了局部邻域的子集,PointNet层获取局部区域点之间的关系,如图 10。PointNet++需要解决两个问题:对生成点集进行划分和通过局部特征学习器抽象聚合局部特征。但是PointNet++ 依旧没有解决忽略了对点与点之间的联系进行学习先验关系。
图 10:PointNet++点云分割和分类架构图
Zhao等提出一种从点云的局部邻域提取特征的方法——PointWeb,即将局部邻域中的点相互连接,其目的是能够根据局部区域特征而获得点的特征,从而对局部区域进行表示,并提出了一种新的模块——自适应特征调整模块(AFA),用于寻找点于点之间的信息传递,该方法充分利用了点的局部特征并实现了自适应调整。Hu等提出一种高效且轻量级的神经架构——RandLA-Net,该方法使用随机点采样的方式,但是这种方式可能会丢弃一些稀疏点的关键特征,因此该方法通过一种高效局部特征聚合模块来增加每个点的感受野,从而更好的捕获复杂的局部结构,该方法使用轻量级网络有效的分割大规模点云,减少了内存占用和计算成本。Li等通过构建自组织图(SOM)提出的SO-Net,分层提取每个点和SOM节点的特征,并用单个特征向量来表示点云,通过在编码的全局特征向量上附加一个3层感知机(MLP)对点云进行分类,SO-Net具有良好的并行性且结构简单,但对大规模点云数据的处理有局限性。
为了充分捕获最关键的几何信息,Xu等提出了几何解纠缠注意网络GDANet,并引入了Geometry-Disentangle 模块,将原始点云分解为轮廓和平面两个部分,从而两个不同的解的组件中捕获和细化3D语义,以补充局部信息,如图,该方法具有良好的鲁棒性。Goyal等人提出了以中国简单的基于投影的方法——SimpleView,它表明独立于网络架构的训练和评估因素对点云分类性能有很大影响。Chen等人提出的PointSCNet,用于捕获点云的几何信息和局部区域信息,由三个模块组成分别是:空间填充曲线引导采样模块,信息融合模块,通道空间注意模块。在PointSCNet中原始点云被馈送到采样和分组块,使用Z阶曲线采样以获得点和局部区域的高相关性。提取采样点云特征后,设计特征融合模块学习结构和相关信息。最后,通过通道空间模块增强关键点特征,如图 11所示。
Ma等人注意到详细的局部几何信息可能不是分析点云的关键,于是引入了纯残差网络——PointMLP,该方法没有复杂的局部几何提取器,而是配备了轻量级几何放射仿射模块,在推理速度方面有显著的提升,网络架构如图 12所示。
Huang等人计算了在点云中的每个点上添加显式约束的形状不变扰动时识别置信度的变化率,通过该方法提出了点云灵敏度图,再通过该图提出了形状不变的对抗点云。
3.3.1.2基于卷积的方法
卷积神经网络(CNN)在深度学习中具有重要地位,是最基本的深度学习模型,它在2D图像处理领域中的出色表现引发研究者们将其应用于3D点云,通过优化CNN架构设计点卷积以实现点云分类。Atzmon等人提出了点卷积神经网络(PCNN),将卷积神经网络(CNN)应用于点云,该框架首先将点云上的函数扩展到环境空间上的连续体积函数;其次将一个连续的体积卷积应用在该函数;最后的结果是被限制回的点云,如图 13。
Liu等人提出了关系形状卷积网络(RS-CNN)将规则的CNN拓展到不规则的配置点云中,从而对点云进行分析。Yousefhussien等提出一种一维全卷积网络。Wang等人提出了具有空间池化的深度神经网络DNNSP对大规模点云进行分类,此方法可以学习从整个区域到点簇中心点的特征,从而达到对点特征的表示具有鲁棒性。Komarichev等人提出一种基于点云的环形卷积神经网络(A-CNN)模型。Ran等人提出了基于组关系聚合器模块的RPNet,RPNet 在刚性变换和噪声方面具有鲁棒性。Xie等提出的SCN(ShapeContextNet)通过采用形状上下文的方式作为构建基本模块来表示,从而能够捕获和传播对象部分信息,SCN是一个端到端的模型。
由于直接将内核与点相关的特征进行卷积操作会导致形状信息的丢弃和点排序的方差,Li等人提出了PointCNN来解决这一问题,该方法证实了局部结构的开发对点云分类网络的重要性。由于点云的稀疏性、不规则性和无序性,直接对其进行卷积操作比较困难,Wu等人提出将动态滤波器应用于卷积的操作——PointConv,该方法操作简单且减轻了计算机的存储压力。MCCNN将卷积核本身表示为多层感知机并将卷积描述为蒙特卡洛积分。SpiderCNN继承了CNN的多尺度层次结构,由SpiderConv单元组成,通过参数化一系列卷积滤波器,将卷积运算从规则网格扩展到可以嵌入 R^n n维空间中的不规则点集,以有效地从点云中提取几何特征。Mao等人结合一种插值卷积运算(InterConv)设计了基于该算法的插值卷积神经网络(InterpCNNs)。Esteves等使用多值球面函数对 3D 数据进行建模,提出一种球面卷积网络,通过在球谐域中实现球体上的精确卷积来实现它们,从而解决卷积神经网络中的 3D 旋转等方差问题。SPHNet基于PCNN通过在不同层网络使用球谐函数来实现旋转不变性。
3.3.1.3基于图的方法
Scarselli等人首次提出图神经网络(GNN)。Bruna等人首次提出非欧式的卷积神经网络。Kipf等人进而提出图卷积神经网络(GCNN) 在半监督分类任务中效果良好,实际上GCN是CNN的优化。Simonovsky结合边缘标签应用的提出了可以应用于任意图结构的边缘条件卷积网络(ECC),该方法将点作为图的顶点,点之间的距离作为权重,进行加权平均卷积操作,使用最大采样聚合顶点的信息,可用于大规模的点云分割,但是计算量较大。LandrieU等人提出了一个有监督的3D点云分割过度框架,引入了图结构的对比损失和局部点嵌入器,以提高点云分割的精度。SpecGCN用递归聚类和池化策略替换标准的最大池化步骤。Grid-GCN使用了一种覆盖感知网络查询(CAGQ),通过利用网格空间的效率提高了空间覆盖率并降低了理论时间复杂度。Mohammadi等人提出了带有多级图卷积网络(GCN)的PointView-GCN来分层聚合单视图点云的形状特征,便于编码对象的几何线索及多视图关系,从而产生更具体的全局特征,如图 14。
Wang等人提出了用于点云学习的动态图CNN——DGCNN,并提出一种边缘卷积网络模块——EdgeConv,该模块可以更好地捕捉点云的局部几何特征,并保持排列不变性,如图,该模型表明了局部几何特征对3D识别任务的重要性。Zhang等人进一步对DGCNN进行了优化,提出一种链接动态图卷积神经网络(LDGCNN),该网络删除了DGCNN中的转换网络来简化网络模型,并通过连接不同动态图的层次特征来优化网络,能较好的解决梯度消失问题。Lu等人提出的PointNGCNN(PointNGCNN deep convolutional networks on 3D point clouds with neighborhood graph filters)以邻域图的方式描述邻域内点的关系,用邻域图滤波器提取特征空间和笛卡儿空间中的邻域特征信息和空间分布信息。
3.3.1.4基于注意力机制的方法
注意力机制的基本思想是将人的感知方式运用于机器上,但是人的感知是选择性的将注意力集中在部分场景,而不会一次全盘处理整个场景,于是研究者们对注意力机制展开研究并应用于点云分类等领域。Yang等人开发了一个基于点云推理的点注意力变压器(point attention transformer,PAT),提出使用高效的GSA(Group-Shuffle Attention)代替昂贵的MHA(Multi-Head Attention)用于建模点之间的关系,并提出一种称为Gumbel子集采样(GSS)从而选择具有代表性的点的子集,该方法降低了计算成本。
Li等人结合注意力机制和空间金字塔提出了特征金字塔注意模块(FPA)和全局注意上采样模块(GAU)。Chen等人设计了一种局部空间感知(LSA)层,并提出了基于LSA层的LSANet网络架构,LSA可以学习局部区域中的空间关系层,以生成空间分布权重,从而可以进行空间独立操作,该方法的空间信息提取功能强大。Wang等人基于图注意力卷积(GAC)提出GACNet。Chen等人提出的GAPNet(GAPointNet: Graph attention based point neural network for exploiting local feature of point cloud)将自注意力机制与图卷积结合,通过在堆叠的MLP层中嵌入图形注意力机制来学习局部信息表示,使用并行机制聚合生成不同GAPLayer层的注意力特征,其中GAPLayer层和注意力层可以嵌入到现有的训练模型中,以更好地从无序点云中提取局部上下文特征。
3.3.2全局特征聚合
3.3.2.1基于transformer的方法
自2017年transformer首次被提出,便在计算机视觉领域取得举世瞩目的效果。许多研究者也将该结构运用在点云处理中。2017年《Attention Is All You Need》一文中提出了Transformer这种网络架构,它是一个完全基于注意力机制来计算输入和输出表示的框架,而不使用复杂的CNN或RNN。Transformer的架构由编码器(encoder)和解码器(decoder)组成,使用了多头自注意力机制取代了encoder-decoder架构中常用的循环层,这使得Transformer网络架构简单易实现,Transformer架构如图 15所示。
Transformer在训练速度方面明显快于CNN和RNN,在机器学习领域已经无处不在。但Berg等人发现自注意力算子随着输入点集的增长迅速而低效,并且注意力机制难以在全局中找到各个点之间的作用关系,因此提出了一种两阶段的方法——Point TnT,该方法使得单个点和点集能够有效的相互关注。Engel等人提出一种直接在无序和非结构化点集上运行的深度神经网络Point Transformer,并提出一个基于学习分数关注重点的模块——ScorNet作为Point Transformer的一部分。点云作为Point Transformer的输入,从中提取局部和全局特征,然后使用SortNet对局部特征排序,最后使用局部全局注意力关联局部全局特征,如图 16。
图 16:Point Transformer网络架构
但Berg等人发现自注意力算子随着输入点集的增长迅速而低效,并且注意力机制难以在全局中找到各个点之间的作用关系,因此提出了一种两阶段的方法——Point TnT,该方法使得单个点和点集能够有效的相互关注。Wu等人提出的Visual Transformer(VT),将Transformer应用于来自特征图的基于标记的图像,可更有效学习和关联稀疏分布的高级概念。Carion等人提出一种将对象检测视为直接集合预测问题的方法——Detection Transformer(DETR),它是一种端到端检测转换器,输入为CNN特征,使用Transformer编码器-解码器生成边界。Guo等人提出一种基于Transformer的点云学习框架——Point Cloud Transformer(PCT),并提出了带有隐式拉普拉斯算子和归一化细化的偏移注意,由于它是置换不变的,因此更适合点云学习,PCT架构如图 17所示。
3DMedPT 是Yu等人提出了一个用于3D医学点云分析的Transformer网络。Yu等人受BERT的启发,提出一种学习Transformer的新方法称Point-BERT,该方法先将点云划分为几个局部块,并通过一个点云标记器生成局部信息的离散点标记,然后随机屏蔽一些输入点云并将他们输入到主干Transformer中去,该方法可以将BERT的概念推广到点云。Pang等人提出了Point-MAE,它是一种用于点云自监督学习的掩码自动编码器的方法,以解决点云位置信息泄露和信息密度不均匀等点云本身属性所带来的问题。He等人引入一种基于体素的集合注意模块(VSA)从而建立了Voxel Set Transformer(VoxSeT)架构。VoxSeT可以通过VSA模块来管理点簇,并以线性复杂度来并行处理它们。该方法将Transformer的高性能与基于体素模型高效率结合,在点云建模中具有良好表现。
3.3.2.2基于全局模块的方法
Wang等人提出一种全局模块(Non-local Neural Networks),将某个位置的响应计算为所有位置特征的加权和,提供了聚合全局特征的解决方案,但是全局点对点映射可能仍然不足以提取点云形状所暗示的底层模式。
Yan等人结合自适应采样模块(AS)和局部非局部模块(L-NL)提出一种端到端的网络PointASNL,可有效的处理带有噪声的点云。其中AS模块通过推理更新点的特征,然后归一化权重参数并重新加权初始采样点,可以缓解偏差效应。L-NL模块由点的局部单元和非局部单元组成,降低了学习过程对噪声的敏感性。PointASNL架构如图 18所示。
图 18:PointASNL网络构架
Li等人采用一些CNN的方法以支持深度GCN架构,称为DeepGCN,该框架由三块组成:GCN Backbone块用于输入点云特征转换、融合块用于生成和融合全局特征、MLP块预测块用于预测标签,如图 19。以解决GCN训练期间梯度消失问题,能够训练更深的GCN网络。
Xiang等人提出一种基于聚合点云中假设曲线的方法——CurveNet,并有效实现了聚合策略,其中包括一个曲线分组算子和一个曲线聚合算子。该网络由一堆构建块组成,FPS表示最远点采样方法,CurveNet架构如图 20所示。
3.3.2.3基于RNN或LSTM的方法
Engelmann等人在PointNet的基础之上进行了两个扩展,输入级上下文信息和输出级上下文信息的扩展,能够使得PointNet应用在大规模场景。Liu等人提出一种3DCNN-DQN-RNN方法,该方法融合3D卷积神经网络(CNN)、深度Q网络(DQN)和残差递归神经网络(RNN),通过3DCNN获得点的特征表示,DQN用于检测和定位对象,DQN会自动感知场景并调参3DCNN的反馈,最后通过RNN识别多尺度特征的联系和差异, 其中LSTM 单元用于防止梯度消失并使网络具有长期记忆。该方法提高了处理大规模点云的精度。Huang等人提出的RSNet网络将原始点云作为输入,再进行特征提取,然后通过x、y、z三个方向的切片池化层,每一层都采用双向RNN提取局部特征,再用切片解析层将点云序列的特征赋予各个点中,最终输出预测各点的语义标签。RSNet架构如图 21所示。
Ye等人通过将CNN和RNN进行结合提出一种端到端的语义分割的方法——3P-RNN,该方法由点状金字塔模块和双向分层RNN模块两部分组成。在区分相同语义的工作中,该方法有一定的局限性。Point2Sequence提出用RNN来捕获细粒度的上下文信息来学习3D形状特征,并引入了注意力机制来增强特征提取效果。
3.3.3基于多态融合的方法
Le等提出的PointGrid结合网格的策略,是将点和网格的进行混合表示。PointGrid由几个卷积块组成,通过最大池化以表示不同分层的特征,每个卷积层包括一个卷积核,通过池化层来控制过拟合现象,再通过全连接的方式完成推理,PointGrid有两个全连接层,最后用softmax分类器进行回归,该方法可以更好的识别细粒度模型和表示局部形状。最近,Zhang等人结合稀疏窗口注意力模块(SWA)和相对注意力模块(RA)提出了一种新颖的点云学习方法—PVT(Point-Voxel Transformer),结合了基于体素和基于点的模型思想,这种方法在点云分类的精度方面表现优异。CrossPoint通过最大化点云和不变空间中相应渲染的2D图像来实现2D与3D的对应,并保持点云在变换中保持不变。Zhang等人提出的PointCLIP在预训练的CLIP的基础上对点云进行学习。将点云投影到多视图深度图而不渲染来对点云进行编码,通过将2D预训练知识转换到为3D 领域实现了零样本识别。并且设计了视图间适配器用来更好地提取全局特征,网络架构如图 22所示。
图 22: PointCLIP网络架构图
3.3.4总结
相比基于多视角的方法和基于体素的方法,基于点云的方法直接对原始点进行了处理,能够充分利用点云信息,在三者之间效果最好。因此基于点云的方法也是未来的研究方向,其中基于transformer的方法是目前比较热门的方法在未来也会得到更加广泛的应用。
4 、评价指标和算法性能比较
评价指标用于评估点云分类方法的性能,精度、空间复杂度、执行时间等是方法的评价指标,其中精度是评价各种方法的关键指标。一般用准确率(Acc)、精确率(Pre)、召回率(Rec)、交并比(IoU)来评价方法的精度。
·准确率是指正确预测的样本数占总预测样本数的比值。
·精确率是指被预测为正类中,真实正类的比例。
·召回率是指被预测为正类的样本与真实的正类总数的比值。
·交并比是指预测值和真实值的交集和并集的比值。可通过下面公式对准确率、精确率、召回率以及交并比进行计算:其中TP是预测为正类实际也为正类的样本,TN是预测为正类实际为负类的样本,FP是预测为负类实际也为负类的样本,FN是预测为负类实际为正类的样本,设有N个类。
当前点云分类的精度衡量的指标为:平均精度(OA)、总体精度(MA)、平均交并比(mIoU),其计算方式如下。
本节在表格2中汇总了所提到方法在不同数据集上的表现
表格 2:点云分类方法在不同数据集上的精确度比较
5、存在的问题与展望
随着当今的科技发展,各领域对点云分类的方法需求越来越高,点云分类的方法层出不穷,研究者们不断在为提高精度与效率等方面提出新的方法,这不断推动着3D应用的发展。但现有的方法仍然具有不同的局限性,本节将对当前基于深度学习的点云分类方法中的问题进行汇总,并且对未来的研究方向进行展望。具体如下:
(1)当前的点云分类方法有些注重提高精度,有些注重提高效率,我们需要解决“如何做到高效的同时达到高精度?”这一问题。
(2)在3D实际应用中,室外场景的信息结构复杂多变,虽然一些方法已经在室外场景得到应用,但还需要进一步提高效率和精度,因此未来的研究方向要更侧重于提出使用于室外场景的网络模型。
(3)从上面数据可以看到基于原始点云的方法在算法性能上有一定的优势,但是网络模型较为复杂,这是因为输入原始点云数据具有信息完整性,因此基于点云的方法简单化是未来的研究趋势。
(4)当前大多数的方法旨在改善而不是改变,因此方法的创新型是需要我们继续研究与探讨的。
(5)在将来我们将要提出的网络模型中,应该注重网络架构的优化,在面对复杂的、不规则的点云的同时,能够降低计算复杂度和内存占用率。
6 、总结
本文对近年基于深度学习的点云分类方法进行了全面的调查,并进行了讨论。首先我们在引言中介绍了点云以及点云的应用,对点云的特性及处理难点展开了讨论。其次在第二节中,对3D数据展开了介绍,汇总了常用的3D数据表示形式、点云数据存储格式以及点云分类数据集。在前几节的基础之上,我们全面回顾了基于深度学习的点云分类方法,把这些方法分为三大类:基于多视角的方法、基于体素的方法和基于点云的方法,并强调了基于transformer架构的方法将在点云处理中得到广泛的应用。然后我们对已有方法的性能进行了比较并基于这些方法的评价指标进行了性能上的比较。最后本文指出当前方法存在问题,并对未来的研究方向进行了展望。