来源:3D视觉工坊
2. 摘要
近年来,点云表示已成为计算机视觉领域的研究热点之一,并广泛应用于自动驾驶、虚拟现实、机器人等许多领域。虽然深度学习技术在处理常规结构化的二维网格图像数据方面取得了巨大成功,但在处理不规则、非结构化的点云数据方面仍面临着巨大挑战。点云分类是点云分析的基础,许多基于深度学习的方法已被广泛应用于此任务。因此,本文旨在为该领域的研究人员提供最新的研究进展和未来趋势。首先,我们介绍点云获取、特征和挑战。其次,我们回顾了用于点云分类的3D数据表示、存储格式和常用数据集。然后,我们总结了基于深度学习的点云分类方法,并补充了最近的研究工作。接下来,我们比较和分析了主要方法的性能。最后,我们讨论了点云分类的一些挑战和未来方向。
3.引言
近年来,计算机视觉领域的二维图像处理技术已接近成熟,许多研究人员已将研究重点转向更符合现实世界的三维场景。在三维场景中,点云因其丰富的表达信息而在表示三维场景中发挥着重要作用。因此,点云已成为三维视觉研究中常见的数据表达形式。随着技术的进步,点云数据的获取变得越来越智能和便捷,有许多获取方法,例如:激光雷达检测、通过3D模型计算获取点云、通过2D图像进行3D重建获取点云等。作为最基本的点云分析任务,点云分类已广泛应用于安全检测、目标物体检测、医学和三维重建等许多领域。点云分类的目的是为点云中的每个点配备一个标记,以识别点云的整体或部分属性。由于点云的组成属性属于点云分割的范畴,在本文中,我们主要关注点云的整体属性,即点云分类。如图1所示,3D数据有各种表示形式。目前,可以将点云转换为网格、体素或多视图数据,通过间接方法学习3D对象表示,但这些方法容易出现问题,如丢失对象的3D几何信息或内存消耗过多。在PointNet之前,由于点云的无序性和不规则性,深度学习技术无法直接处理点云。早期的点云处理使用手工设计的规则进行特征提取,然后使用基于机器学习的分类器(如支持向量机(SVM)、AdaBoost、随机森林(RF)等)来预测点云的类别标签,但这些分类方法具有较差的适应能力,并且容易受到噪声的影响。一些研究通过合成上下文信息来解决噪声问题,例如条件随机场(CRF)、马尔可夫随机场(MRF)等,这在一定程度上提高了分类性能。然而,手工设计规则提取的特征表达能力有限,特别是在复杂场景下,模型的准确性和泛化能力无法满足人类的需求,而且这种方法严重依赖于具有专业知识和经验的研究人员。随着计算机计算和数据处理能力的迅速发展,深度学习技术在点云分析中的应用也得到了推广。斯坦福大学的Charles等人于2017年发表的一篇论文提出了一个直接处理点云的深度学习网络,PointNet。这篇论文是一个里程碑,直接处理点云的方法逐渐占据主导地位。面对3D点云的无序性、无规律性和稀疏性,点云分类仍然是一个具有挑战性的问题。目前有一些综述分析和总结基于深度学习的3D点云分类方法。本文在以往工作的基础上进行了改进,并增加了新的基于深度学习的3D点云分类方法,如最近流行的基于Transformer的方法。最后,展望了3D点云分类技术的未来研究方向。文章的整体结构如图2所示。具体来说,我们工作的主要贡献如下:
我们首先对3D数据进行了详细介绍,深入解释了点云,以便读者理解,并提供了用于点云分类的数据集及其获取方法。
我们总结了最近发表的关于点云分类的研究综述,基于此补充了最新研究方法。这些方法根据其特点分为四类,包括基于多视图的、基于体素的、基于点云的方法和基于多形态融合的方法。然后将点云方法细分。
我们根据它们的分类特点,讨论了各类方法的优势和局限性。这种分类更适合研究人员根据实际需求探索这些方法。
我们提供了方法的评估指标和性能比较,以更好地展示各种方法在数据集上的性能,然后分析了该领域的一些当前挑战和未来趋势。
4. 3D数据
A. 3D数据表示
3D数据有各种表示形式,例如点云、网格和体素。
点云:点云本质上是在3D空间中绘制的大量微小点的集合,如图1(a)所示,它由使用3D激光扫描仪捕获的大量点组成。这些点可以表达目标的空间分布和表面特征。点云中的每个点包含丰富的信息,例如:三维坐标(x、y、z)、颜色信息(r、g、b)和表面法向量等。
网格:3D数据也可以用网格网格表示,可以视为建立点之间局部关系的点集。三角网格,也称为三角面片(如图1(b)所示),是描述3D对象的常用网格之一。一个切片的点和边的集合称为网格。
体素:在3D对象表示中,体素也是一种重要的3D数据表示形式,如图1(c)所示,体素擅长表示非均匀填充的规则采样空间,因此,体素可以有效地表示具有大量空白或均匀填充空间的点云数据。通过将点云数据进行体素化,有利于提高数据计算效率并减少对随机存储器的访问,但是点云数据的体素化不可避免地会带来一定程度的信息丢失。
多视图:多视图图像(如图1(d)所示)也是点云数据的表示形式,它源自单视图图像,是将3D对象渲染为在特定角度下的多个视点的图像。挑战主要在于透视和透视融合的选择。
B. 点云数据存储格式
点云有数百种文件格式可用,不同的扫描仪会以许多格式生成原始数据。点云数据文件之间的最大区别在于使用ASCII和二进制。二进制系统直接将数据存储在二进制代码中。常见的点云二进制格式包括FLS、PCD、LAS等。其他几种常见文件类型可以同时支持ASCII和二进制格式。其中包括PLY、FBX。E57以ASCII和二进制代码存储数据,并将许多ASCII和二进制的优点结合在一个文件类型中。以下是一些常用的点云数据存储格式:
Obj:obj格式的点云文件由Wavefront Technologies开发。它是一个文本文件。它是一种简单的数据格式,仅表示3D数据的几何、法线、颜色和纹理信息。这种格式通常以ASCII形式表示,但也有专有的obj二进制版本。
Las:las格式主要用于存储LIDAR点云数据,本质上是一个二进制格式文件。LAS文件由三部分组成:头文件区(包括点总数、数据范围、每个点的维度信息)、可变长度记录区(包括坐标系、额外维度等)、点集记录区(包括点坐标信息、R、G、B信息、分类信息、强度信息等)。las格式考虑到LIDAR数据的特点,结构合理,易于扩展。
Ply:PLY的全称是Polygon File Format,受obj启发,专门用于存储3D数据。PLY使用名义上的平面多边形列表来表示对象。它可以存储包括颜色、透明度、表面法向量、纹理坐标和数据置信度在内的信息,并且可以为多边形的前后两侧设置不同的属性。该文件有两个版本,一个是ASCII版本,一个是二进制版本。
E57:E57是用于点云存储的供应商中立文件格式。它还可以用于存储激光扫描仪和其他3D成像系统生成的图像和元数据信息,是一个使用固定大小字段和记录的严格格式。它使用ASCII和二进制代码保存数据,并提供了ASCII的大部分可访问性和二进制的速度,可以存储3D点云数据、属性、图像。
PCD:PCD是Point Cloud Library的官方指定格式。它由头文件和点云数据两部分组成。它用于描述点云的整体信息。它有两种数据存储类型,ASCII和二进制,但PCD文件的头文件必须使用ASCII编码。PCD的一个好处是它很好地适应了PCL,与PCL应用程序相比,性能最高。
C. 3D点云公共数据集
今天,许多工业和大学提供了许多点云数据集。不同方法在这些数据集上的表现反映了方法的可靠性和准确性。这些数据集包含虚拟或真实场景,可以为网络训练提供地面真实标签。在本节中,我们将介绍一些常用的点云分类数据集,每个数据集的划分如表I所示。
ModelNet40:该数据集由普林斯顿大学的视觉和机器人实验室开发。ModelNet40数据集包含合成CAD对象。作为最广泛使用的点云分析基准,ModelNet40因其多样的类别、清晰的形状和良好结构的数据集而受欢迎。该数据集包含40个类别的对象(例如飞机、汽车、植物、灯具),其中9843个用于训练,2468个用于测试。相应的点是从网格表面均匀采样的,然后通过移动到原点并缩放到单位球来进一步预处理。
ModelNet-C:ModelNet-C集合包含185,000个不同的点云,是基于ModelNet40验证集创建的。这个数据集主要用于测试3D点云识别的损伤鲁棒性,其中包括15种损伤类型和每种损伤类型的5种严重程度,例如噪声、密度等。有助于了解模型的鲁棒性。
ModelNet10:ModelNet10是ModelNet40的一个子集,该数据集仅包含10个类别,分为3991个训练和908个测试形状。
Sydney Urban Objects:该数据集收集于悉尼中央商务区,包含各种常见的城市道路物体,包括631个类别为车辆、行人、标志和树木的扫描对象。
ShapeNet:ShapeNet是由斯坦福大学、普林斯顿大学和芝加哥丰田技术研究所的研究人员开发的大型3D CAD模型仓库。该仓库包含超过3亿个模型,其中22万个模型被分类为3135个类别,使用WordNet上下位关系排列。ShapeNetCore是ShapeNet的一个子集,包括近51,300个独特的3D模型。它提供了55个常见物体类别和注释。ShapeNetSem也是ShapeNet的一个子集,包含12,000个模型。规模较小,但覆盖面更广,包括270个类别。
ScanNet:ScanNet是一个实例级室内RGB-D数据集,包含2D和3D数据。它是一个带标记的体素集合,而不是点或对象。截至目前,最新版本的ScanNet,ScanNet v2,已经收集了1513个带有大约90%表面覆盖率的标记扫描。在语义分割任务中,该数据集用20个类别的注释3D体素化对象进行标记。
ScanObjectNN:ScanObjectNN是一个由2902个3D对象组成的真实世界数据集,分为15个类别,由于数据集中的背景、缺失部分和变形等因素,这是一个具有挑战性的点云分类数据集。
5. 基于深度学习的点云分类方法
基于深度学习的点云分类模型由于其强大的泛化能力和高分类准确性等优势,在点云分析中得到了广泛应用。本节详细介绍了基于深度学习的点云分类方法的划分,并补充了一些最近的研究工作。图3显示了每种分类方法的发表时间表。
A. 基于多视图的方法
基于多视图的方法利用多个视角的信息来描述和识别3D形状。这种方法的优势在于可以从不同的角度获取丰富的特征信息,从而提高了形状识别的准确性。然而,基于多视图的方法在处理大规模场景和利用3D数据的固有几何关系方面仍然存在挑战。例如,在将多个视图特征转换为全局特征时,会忽略其他非最大元素的信息,导致信息丢失。因此,改进基于多视图的方法以充分利用信息,并解决大规模场景和几何关系的挑战是未来研究的方向。
B. 基于体素的方法
基于体素的方法将3D点云模型转换为体素形式,每个体素块包含一组相关点,并使用3D卷积神经网络对体素进行分类。这种方法可以有效地表示对象的形状,并在3D对象识别中取得了良好的效果。然而,由于3D卷积计算复杂,对于体素进行卷积会增加模型的复杂性。为了降低内存消耗和提高计算效率,一些学者使用了八叉树结构代替固定分辨率的体素结构。八叉树结构使得网络可以更深层次地表示数据,而不影响分辨率。然而,八叉树结构也存在一些局限性,例如不能充分利用局部数据特征,因此未来研究可以致力于解决这些问题以提高基于体素的方法在点云分类中的效果。
C. 基于点云的方法
许多当前的研究方法更多地关注于使用深度学习技术直接处理点云。特征聚合运算符是处理点云的核心,它实现了离散点的信息传递。特征聚合运算符主要分为两类:局部特征聚合和全局特征聚合。在本节中,从特征聚合的角度出发,将介绍这两类方法。 2017年,齐等人提出的PointNet(如图7所示)是基于点云的方法的开创性研究,这是一种全局特征聚合的方法。该方法直接将点云作为输入,通过T-Net模块对其进行变换,然后通过共享全连接学习每个点,最后通过最大池化函数将点的特征聚合成全局特征。尽管PointNet是基于深度学习的先驱,但仍然存在缺陷。例如,PointNet只捕捉了单个点和全局点的特征信息,但并未考虑相邻点的关系表示,这使得PointNet无法有效地进行细粒度分类。
局部特征聚合
局部特征聚合是点云处理的核心,实现了离散点的信息传递。从特征聚合的角度来看,局部特征聚合分为两类方法:点对点方法和基于采样的方法。点对点方法如PointNet++通过分层处理点云,每一层包含采样、分组和PointNet层,能够处理局部邻域的特征,并考虑点之间的关系。在此基础上,一些方法如PointNeXt、PointWeb和RandLA-Net进一步改进了局部特征的提取和聚合方式,提高了性能和效率。基于采样的方法通过空间填充曲线等方式对点云进行采样,然后通过特征融合模块学习结构和相关信息,如PointSCNet。另外,一些方法如GDANet引入了几何解缠模块来捕捉和细化几何信息,取得了良好的效果。局部特征聚合方法的发展使得点云处理能够更好地捕捉局部结构,提高了处理效率和性能。
基于卷积的方法
基于卷积的方法将传统的卷积神经网络(CNN)扩展到处理不规则的三维点云数据上,是处理点云分类的重要方法。这些方法主要包括以下方面的研究:
Point Convolution:将点云上的函数扩展为连续体函数,并在此基础上进行卷积操作,例如PCNN(Point Convolutional Neural Network)。
Relation-based Convolution:通过建立点云中点与点之间的关系来进行卷积操作,如RS-CNN(Relational Shape Convolutional Networks)。
Dynamic Filter Convolution:应用动态滤波器来处理点云上的卷积操作,例如PointConv。
Monte Carlo Integration Convolution:将卷积看作蒙特卡洛积分来处理,如MCCNN。
Spatial Pooling Convolution:使用空间池化来对点云进行卷积,例如DNNSP。
Hierarchical Convolution:通过层级结构进行卷积操作,例如SpiderCNN。
Anisotropic Spatial Geometry Convolution:利用空间覆盖卷积来处理点云,如SC-CNN(Spatial Coverage Convolutional Neural Network)。
这些方法的设计旨在有效地处理点云的不规则性、稀疏性和无序性,从而提高点云分类的准确性和效率。
基于图的方法
基于图的方法利用图神经网络(GNN)等技术处理点云数据。这些方法主要包括以下几种类型:
图卷积网络(GCN)优化:GCN是对CNN的优化,能够在半监督分类任务中表现良好。一些方法对GCN进行了改进,如使用覆盖感知网络查询(CAGQ)提高空间覆盖率,并简化网络模型以解决梯度消失问题。
边缘条件卷积(ECC)网络:ECC网络可应用于任何图结构,并能够捕获图中点之间的关系,有助于图像分割等任务。
动态图CNN(DGCNN):DGCNN通过边缘卷积(EdgeConv)网络模块提取点云的局部几何特征,保持排列不变性,对于3D识别任务具有重要意义。
多级图卷积网络(GCN):这些网络能够分层聚合单视图点云的形状特征,有助于编码对象的几何线索和多视图关系,生成更具体的全局特征。
邻域图滤波器:这种方法使用邻域图滤波器提取特征空间和笛卡尔空间中的邻域特征信息和空间分布信息,有助于更好地理解点云数据。
基于图的方法能够有效地处理点云数据,提取特征并解决分类、分割等任务,为点云分析领域的研究提供了重要的技术支持。
基于注意力机制的方法
基于注意力机制的方法将人类感知的选择性应用于机器学习,专注于处理数据的部分信息而非整体。在点云分类中,研究者们利用注意力机制来提高模型对关键信息的关注程度。这些方法包括以下几个方面的工作:
点注意力变换器(PAT):使用高效的Group-Shuffle Attention(GSA)代替昂贵的Multi-Head Attention(MHA),从而减少计算成本。
特征金字塔注意力模块(FPA)和全局注意力上采样模块(GAU):结合注意力机制和空间金字塔,提高模型对不同尺度特征的关注度。
局部空间感知(LSA)层:学习局部区域的空间关系,生成空间分布权重,执行空间独立操作,从而提取局部信息。
图注意力卷积(GAC):利用图注意力卷积来提高模型对点云中局部信息的关注度。
GAPointNet:结合自注意力机制和图卷积,学习局部信息表示,并使用并行机制来聚合不同层级的注意力特征,从而更好地提取局部上下文特征。
这些方法通过增强模型对点云中不同区域的关注度,提高了点云分类任务的性能和准确性。
全局特征聚合
基于Transformer的方法
基于Transformer的方法在点云处理领域取得了显著的进展。这些方法通过将点云作为输入,并利用Transformer结构中的自注意力机制,实现了对点云的全局特征建模和关联学习。具体而言,这些方法包括以下关键点:
Point Transformer: Engel等人提出的Point Transformer直接操作无序和非结构化的点集。它使用学习分数的焦点模块来提取局部和全局特征,并通过排序网络对局部特征进行排序,最后通过局部全局注意力关联局部和全局特征。
Point TnT: Berg等人提出的Point TnT方法通过两阶段机制有效地实现了单个点和点集之间的相互关注,解决了传统自注意力机制在处理全局关系时效率低下的问题。
Visual Transformer (VT): Wu等人的VT将Transformer应用于基于特征图的图像标签,更高效地学习和关联稀疏分布的高级概念。
Detection Transformer (DETR): Carion等人的DETR将目标检测视为直接集成预测问题,使用Transformer编码器-解码器生成边界框,实现了端到端的检测Transformer。
Point Cloud Transformer (PCT): Guo等人的PCT是一种基于Transformer的点云学习框架,通过偏移注意力和归一化细化实现了对点云的全局特征建模,具有置换不变性。
Point-BERT: Yu等人的Point-BERT将BERT的概念推广到点云,通过局部块和点云标记器生成局部信息的离散点标签,实现了对点云的建模和学习。
这些方法利用Transformer的优势,在点云处理中取得了令人瞩目的成果,为点云的全局特征建模和关联学习提供了新的思路和方法。
基于全局模块的方法
基于全局模块的方法旨在处理点云中的全局特征聚合问题。这些方法通过设计特定的模块或网络结构,能够有效地捕获整个点云的全局信息,从而提高了点云处理任务的性能。一些方法包括:
全局模块:该模块计算某个位置的响应,作为所有位置特征的加权和,从而聚合全局特征。
PointASNL:该端到端网络结合了自适应采样模块(AS)和局部非局部模块(L-NL),可以有效地处理嘈杂的点云。AS模块通过推理更新点的特征,并通过重新加权初始采样点来缓解偏置效应。L-NL模块由点的局部和非局部单元组成,降低了学习过程对噪声的敏感性。
DeepGCN:这是一种深度GCN架构,采用了一些CNN方法来支持。它包括GCN骨干模块用于输入点云特征转换,融合模块用于生成和融合全局特征,以及MLP模块预测模块用于预测标签。DeepGCN的设计旨在解决GCN训练中梯度消失的问题,使得可以训练更深层的GCN网络。
CurveNet:这是一种基于聚合假设曲线的方法,有效地实现了曲线的聚合策略。CurveNet的网络结构由一系列构建块组成,其中包括曲线分组运算符和曲线聚合运算符。
基于RNN或LSTM的方法 RNN(循环神经网络)
基于RNN或LSTM的方法通常利用这些循环结构处理序列信息或全局上下文信息,以提高点云处理任务的性能和准确性。Engelmann等人提出了扩展了PointNet的PointNet++,以处理大规模场景,并通过引入额外的上下文信息提高了性能。Liu等人提出的3DCNN-DQN-RNN方法融合了多种网络结构,通过这种融合提高了处理大规模点云的准确性。其他方法如RSNet、3P-RNN和Point2Sequence等也通过结合RNN或LSTM等循环结构,有效地利用了上下文信息,提高了点云处理的性能。
D. 多态融合方法
多态融合方法将不同的数据表示方式融合在一起,以综合利用它们的优势。Le等人提出了一种将点云和网格结合的策略,通过卷积块和最大池化来表示不同层次的特征,能够更好地识别细粒度模型和表示局部形状。Zhang等人的PVT方法结合了稀疏窗口注意模块和相对注意模块,将体素和点云的思想相结合,在点云分类的准确性方面表现出色。PointCLIP利用预训练的CLIP学习点云,通过投影到多视图深度图中进行编码,实现了从2D预训练知识到3D域的零样本识别。CrossPoint通过最大化点云和对应渲染的2D图像在不变空间中的表现,实现了2D到3D的对应。与传统方法相比,多态融合方法能够更好地利用不同表示方式的信息,有望成为未来点云处理的重要方向。
6. 评估
评估是用来衡量点云分类方法性能的重要过程。准确度、空间复杂度、执行时间等是评估方法的关键指标,其中准确度是最为关键的指标之一。通常使用准确度(Acc)、精度(Pre)、召回率(Rec)和交并比(IoU)等指标来评估方法的准确性。
准确度(Acc)表示正确预测的样本数与总预测样本数的比率,是衡量整体分类准确性的指标。
精度(Pre)表示被预测为正类的真实正类的比例,是衡量分类器预测正类的准确性的指标。
召回率(Rec)表示被预测为正类的样本数与真实正类的总数的比率,是衡量分类器找出所有正类样本的能力的指标。
交并比(IoU)表示预测值与真实值的交集与并集的比率,是衡量两个集合重叠程度的指标。
除了上述指标外,还可以使用整体准确度(OA)、平均准确度(MA)和平均交并比(mIoU)等综合指标来评估方法的性能。这些指标可以帮助研究人员全面了解方法在不同数据集上的表现,并为进一步改进提供参考。
7 总结与展望
在点云分类领域,深度学习方法不断创新,为3D应用带来新的可能性。本文综述了近年来基于深度学习的点云分类方法,包括多视图、体素、点云和多态融合等不同类型的方法。通过对比分析,可以看出各种方法在准确性、效率和适用场景等方面存在差异。
在评估方面,准确性是评价方法优劣的关键指标,同时还需要考虑空间复杂度和执行时间等。常用的评估指标包括准确率、精确度、召回率和交并比等,用于评估方法的性能。
未来的研究方向包括提高准确性和效率的平衡、针对室外场景进一步优化方法、简化点云处理流程等。创新型方法的研究也是未来的重点,需要不断探索新的思路和技术。
总的来说,基于深度学习的点云分类方法在不断发展,未来有望取得更大的突破,为3D应用带来更多可能性。
全部0条评论
快来发表一下你的评论吧 !