在本节中,将介绍三维点云处理和学习的基本工具。从三维点云的关键特性开始。评估一些表示三维点云的方法。最后,回顾了一系列处理三维点云的流行工具。这些工具在学术界受到了极大的关注。即使其中一些可能不会直接应用于自动驾驶系统,但仍然值得一提,因为它们可以激发新的技术,这些技术可能对自动驾驶有用。
2-A点云特性
如第1-C节所述,考虑了自动驾驶中两种典型的三维点云:实时激光雷达点云和点云高精地图。
实时激光雷达点云。对于实时激光雷达点云中的每个三维点可以跟踪其相关的激光束和捕获的时间戳。一个实时激光雷达点云可以自然地组织在一个二维图像上,其x轴是时间戳,y轴是激光ID。因此,我们将每个单独的实时激光雷达点云视为一个有组织的三维点云。例如,Velodyne HDL-64E有64个独立的激光器,每一个激光器每秒发射数千次以捕捉360度的视野。因此,我们获得了一组与64个仰角和数千个方位角相关联的三维点。每个采集的三维点都与距离测量、强度值和高精度GPS时间戳相关联。注意,对于全局快门图像,像素值由电荷耦合器件(CCD)同时收集;然而,对于实时LiDAR扫描,3D点以各种时间戳收集。对于同一个激光束,连续发出后会收集到三维点云信息;对于不同的激光器,发射激光束也不同步;因此,收集到的三维点不会在二维规则栅格上完全对齐。由于64个激光器的排列遵循规则的角间距,因此实时激光雷达的点密度会在整个范围内发生变化;也就是说,从附近物体收集的三维点比从远处物体收集的要多得多。此外,实时激光雷达点云会受到遮挡的影响;也就是说,只能从面向激光雷达的物体表面获取三维点云。总之,实时激光雷达点云的一些关键特性包括:
●伪3D点。实时激光雷达扫描只反映一个特定的视点,因此我们认为它的维数是伪三维的;
●遮挡。每个单独的实时激光雷达只能从一个视点记录三维环境。前面的物体会挡住后面的其他物体;
●稀疏点云。与二维图像相比,实时激光雷达通常是对物体表面的稀疏表达,特别是对较远的物体。它不能提供物体对象的详细三维形状信息。
点云高精地图。要创建一个点云地图,需要拼接实时激光雷达从多个自动驾驶车辆获取的跨时间扫描得到的点云。由于没有直接的方法来组织点云地图,我们将其视为无组织的三维点云。例如,对于一张200×200平方米的高精地图,需要在该区域周围获取激光雷达点云数据,进行5-10次试验,从而获得超过1000万个3D点。由于激光雷达可以从不同的视图中收集点云,拼接后的高精地图会变得更密集,并显示详细的三维形状信息。总而言之,点云地图的一些关键属性包括:
●全3D点。点云地图拼接了来自不同视图的多个激光雷达点云,类似于通过扫描转台上的物体收集的3D数据。点云地图捕捉更多物体表面的信息,提供更密集和更详细的三维表示;
●不规则。点云地图中的三维点不规则地散布在三维空间中。它们来自多个激光雷达扫描,并且没有了激光ID关联,导致无组织的三维点云;
●无遮挡。点云地图是从多个视点收集的三维点的集合。它以较少的遮挡描绘静态的三维场景;
●稠密点云。点云地图提供密集点云,其中包含详细的三维形状信息,例如高分辨率形状和曲面法线;
●语义点云。作为HD地图的另一层,与交通规则相关的语义特征地图包含了三维场景的语义标签,包括路面、建筑物和树木。由于交通规则相关的语义特征图和点云图在三维空间中对齐,可以跟踪每个三维点云的语义信息。例如,点云地图中标记为树的三维点云将有助于改善感知,因为树叶上的激光雷达点通常很嘈杂且难以识别
2-B矩阵表示法
表征(Representations)一直是大多数信号处理和机器学习技术的核心。良好的表征为揭示数据内隐藏的模式和结构奠定基础,并有利于后续任务。三维点云的一般表示是通过一个集合来实现的,该集合忽略了三维点的任何顺序。设S= (pi; ai) 是一组n个三维点,其pi=[Xi;Yi;Zi] ∈R3,表示第i点的三维坐标,ai表示第i点的其他属性。实时激光雷达扫描点通常包括强度∈R,点云地图通常包括表面法线ni∈R3;因此,ai=[ri;ni]∈R4。为了有效地存储和科学计算,矩阵(或张量)表示是非常有趣的。设f是从一组3D点S到具有待定形状的矩阵(或张量)X的映射。因此,三维点云的矩阵表示为X=f(S)接下来我们将讨论实现映射f(⋅)的几种典型方法。
原始点云。三维点云最直接的矩阵表示法是将集合中的每个三维点列为矩阵中的一行。
![](https://img-blog.csdnimg.cn/img_convert/93852107bf8844439a96c4e4d1b855cb.png)
基于原始点云的表示法的优点是:
1)简单且通用;
2)保留了原始三维点集中的所有信息;但缺点是它不利于探索三维点的任何几何特性。这种表示方法通常用于自动驾驶系统的地图和定位模块中,需要较高的精度。
三维点云体素化。为了适用二维图像处理和计算机视觉的成功,可以将三维空间离散成体素,并用一系列体素来表示三维点云。一种简单的离散化方法是将三维空间从三个维度中的每一个划分为等距的非重叠体素;
![](https://img-blog.csdnimg.cn/img_convert/9eb7f5e1501945cc85ab2720fdb9b82c.png)
三维体素化点云表示法
分别沿X,Y,Z轴绘制一个范围为H,W,D的三维空间。每个体素的大小分别为h,w,d。第(i,j,k)个体素表示三维体素空间。体素的表达式如下:
![](https://img-blog.csdnimg.cn/img_convert/9855ccc7f36844788fabaed8cd814eb7.png)
基于三维体素化的表示法的优点是:
(i)生成的体素与自然的层次结构相关联,所有体素具有统一的空间大小;
(ii)可以使用现成的工具,如三维卷积来分析数据;
但是,缺点是:
(i)它没有考虑有序三维点云的特定属性;
(ii)通常导致一个非常稀疏的表示,其中大多数体素是空的;
(iii)涉及到分辨率和内存之间的权衡问题。该表示方法可用于自动驾驶感知模块,以及三维点云的存储。
深度图。如第2-A节所述,实时激光雷达扫描点云基本上是从具有一定角度视野的单个位置进行的一系列距离测量;如图。
![](https://img-blog.csdnimg.cn/img_convert/e6f60121221b4777b0e3dd9580bbdd98.png)
激光雷达转为深度二维图的表示方法
我们可以将实时激光雷达中的三维点近似地组织成二维距离图像像。深度图像中的每个像素对应于三维空间中的一个点。像素值是从激光雷达到截锥体内最近的三维点的范围。具体地说,我们用方位角α和俯仰角θ的分辨率沿方位角α∈[0;2π)和俯仰角θ∈(−π/2;π/2]划分三维空间。第(i,j)个像素对应于截锥空间Vi,使用二维矩阵来表示三维点云。其(i,j)元素为
![](https://img-blog.csdnimg.cn/img_convert/6c497680464445e7a71419b5ba1c539a.png)
考虑到每个截锥空间中的最小距离值。当没有一个点落入截面空间时,我们将默认值设置为−1。请注意,根据激光雷达设置,基于深度图像的表示也可以使用非均匀的间距俯仰角。基于距离图像的表示法的优点在于:
(i)能够自然地模拟了激光雷达捕捉三维点的方式,在三维空间中反射二维表面;
(ii)大多数相关的截面空间都有一个或多个三维点,从而产生紧凑的距离视图图像;然而,缺点是很难对无组织的点云进行建模,例如HD地图中的点云地图,该表示可用于感知模块。
鸟瞰图。基于鸟瞰视图(BEV)的表示方法是一种通过忽略高度的方式来实现三维体素化的特例。它将3D体素投影到BEV图像;见图。
![](https://img-blog.csdnimg.cn/img_convert/3de60eef72fb45888c361927bada0fb8.png)
鸟瞰图的表示方法
分别沿X,Y轴绘制一个范围为H,W的三维空间。每个像素的大小分别为h,w。BEV图像中的第(i,j)个像素表示空间Vi;使用二维矩阵表示三维点云。设X(BEV)∈R ,其(i,j)元素为
![](https://img-blog.csdnimg.cn/img_convert/bda9773fe4414e9a99ed3e4dc59222ae.png)
矩阵X(BEV)记录了二维空间中的占有率。请注意,基于BEV的表示方法有一些变量。例如,MV3D[8]没有使用二进制值,而是在每个柱体空间中使用一些统计值来构造X(BEV)。
基于BEV的表示法的优点是:
(i)它易于应用基于2D视觉的技术;
(ii)它易于与来自HD地图的信息进行融合。例如,在高精地图中编码的可行驶区域和交叉口位置可以投影到相同的二维空间,并与激光雷达信息融合;
(iii)易于用于后续模块,如预测和运动规划,
(iv)无论距离如何,物体对象总是相同的大小(与基于深度图的表示法形成对比),这是一个很强的先验知识,使学习问题更容易;然而,这种体素二维的BEV表示法的缺点是:
(i)它涉及分辨率和内存之间的严重权衡,导致获取小对象详细信息的过度量化问题;
(ii)它不考虑有序三维点云的特定属性,并且无法解释遮挡现象;
(iii)它导致稀疏性问题,因为大多数像素是空的。这种表示方法可用于自动驾驶中的感知模块。
2-C代表性的工具
三维点云在机器人学、计算机图形学、计算机视觉和信号处理等领域都得到了广泛的研究。这里将介绍一些有代表性的工具来处理和学习三维点云。由于深度神经网络方法在自动驾驶中的实际应用,我们主要强调基于深度神经网络的方法。
非深度学习方法。在深度学习出现之前,已经有很多传统的方法来处理各种任务的三维点云。然而,与深度神经网络不同的是,这些传统的方法很难用单一的方法框架来描述。这是因为传统的工具是专门为满足每项任务的需要而设计的,针对实际点云特性而开发。例如,在三维点云分割和三维形状检测中,传统技术是基于简单几何启发式的区域增长,或基于图形的优化,或鲁棒估计方法,如RANSAC[9]。三维关键点匹配作为另一项重要任务,与三维点云配准和三维点云识别密切相关。为了解决这一问题,许多基于统计的方法都是以传统方式开发的,目的是描述三维关键点或物体周围的几何结构;参见[10]中更全面的讨论。
卷积神经网络。使用卷积神经网络的动机是利用现成的深度学习工具来处理三维点云。卷积神经网络(CNNs)作为多层感知器的正则化形式,采用了一系列的卷积层,常用于图像和视频的分析。卷积层对输入数据操作一组可学习的滤波器,以产生表示滤波器的激活映射的输出。卷积层的优点是权值共享,即对二维图像中的任意位置应用相同的滤波系数(权值),这不仅节省了大量可学习的权值,而且保证了平移不变性,有助于避免对有限的训练数据进行过度拟合。CNNs作为一种通用的、成熟的学习框架,广泛应用于各种计算机视觉任务中,包括分类、检测、分割等,并在大多数任务中取得了最先进的性能。
基于CNN方法在图像和视频方面的成功,CNNs也被应用于三维点云数据。已经使用了多种表示,包括基于三维体素化的表示、基于深度图的表示和基于BEV的表示法。使用CNN处理3D点云的一个好处是卷积算法能够较好的组织局部空间关系。在PointNet中,每个3D点云被单独处理;而在CNN中,相邻的体素或像素被联合考虑,提供了更丰富的上下文信息。CNN的基本算子通常适用于基于三维体素化的表示的三维卷积和用于基于深度图的表示法和基于BEV的表示法的二维卷积。
即便点云的离散化特性,许多为二维图像开发的技术和体系结构可以很容易地扩展到处理三维点云。尽管离散化会导致不可避免的信息丢失,但CNNs通常具有可靠的性能,在许多任务中得到了广泛的应用。如前所述,离散化三维点云的一个关键问题是生成的三维体积或二维图像是稀疏的。处理空体素会浪费大量的计算。总之,CNN处理离散化的三维点云。这种方法不可避免地修改了精确的三维位置信息,但由于空间关系的先验性和CNNs的成熟性,仍然提供了很好的经验性能。因此在工业中得到广泛应用。
基于 PointNet的方法。使用基于 PointNet的方法的目的是通过深度神经网络直接处理原始的三维点云,而无需对点云进行任何离散化。PointNet[7]是实现这一目标的开创性工作。原始的三维点云本质上是无序的集合,而PointNet的设计是为了尊重这一特性并产生相同的输出,而不管输入数据的顺序如何。PointNet的关键技术贡献是使用一组共享的逐点多层感知器(MLP),然后使用全局池来提取几何特征,同时确保原始3D数据的这种排列不变性。尽管该体系结构简单,但它已成为众多三维点云学习算法的标准模块,并在三维点云识别和分割方面取得了惊人的优异性能。PointNet是基于原始点云的表示法X(raw)。设H∈R N×D为局部特征矩阵,其中第i行Hi表示第i点的特征,H∈R D为全局特征向量。PointNet的一个基本计算表示
![](https://img-blog.csdnimg.cn/img_convert/02ef85fae33246b58507bade80c07a5a.png)
其中X(raw)是第i个3D点的特征,MLP(L)表示L层MLP,它将每个3D点映射到一个特征空间,maxpool(⋅)通过计算沿列的最大值(点云维度)执行下采样;见图3(a)。注意这里的每个三维点分别通过相同的MLP。
![](https://img-blog.csdnimg.cn/img_convert/942240ebbc5d42e8a99447de4dd04002.png)
PointNet图示
直观地说,MLP提出了D个具有代表性的几何图形,并测试这些图形是否出现在每个3D点的周围。最大池记录了每个模式的所有3D点上最佳的响应值。从本质上讲,全局特征向量h总结了三维点云中D个代表性几何模式的匹配的值,可以用来识别三维点云。同时,由于每个3D点分别经过相同的mlp,并且max-pooling去除了点的维数,因此整个计算块是置换不变的,即3D点的排序不影响该块的输出。
三维点云深度学习的PointNet在某种程度上类似于数据分析的主成分分析(PCA),它简单、通用、有效。就像主成分分析一样,PointNet在3D点云中提取全局特征。综上所述,基于PointNet的方法在基于原始点的表示中处理三维点云,并保证其排列不变性。该方法的有效性在不同的深度学习的延伸领域和学习任务中得到了验证。
基于图论的方法。使用基于图论的方法的动机是利用三维点之间的空间关系来加速深度神经网络的端到端学习。CNNs的一个优点是卷积算子考虑局部空间关系;然而,这些关系是相邻体素(或相邻像素)之间的关系,而不是原始3D点之间的关系。为了捕捉三维点之间的局部关系,可以引入一种图结构,其中每个节点是一个三维点,每个边反映了每对三维点之间的关系。这种图形结构是原始对象表面的离散程度的表示。N个节点图的矩阵表示是邻近矩阵A∈R,其(i,j)个元素反映了第i个3D点和第j个3D点之间的成对关系,见图。
![](https://img-blog.csdnimg.cn/img_convert/99c6a7c1c121444ebe0c780be13304bb.png)
基于图的方法示意图
基于图论的方法通常考虑基于点云的原始的表示法。然后,点云集X中的每个列向量都是上图A上支持的数据;称为图信号。构造图的方法有K-近邻图、an-图和可学习图。K-最近邻图是两个节点通过边连接的图,当它们的欧氏距离在从一个3D点到所有其它3D点的第K个最小欧氏距离中时。最近邻图是当两个节点的欧氏距离小于给定的阈值时,两个节点通过一条边相连的图。通过使用有效的数据结构,例如八叉树[11],可以有效地实现K-最近邻图和-图。可学习图是在端到端学习体系结构中邻接矩阵可训练的图结构。
总之,基于图论的方法用来构建图结构来捕捉三维点云的分布,并利用局部空间关系。这种方法在基于原始点的表示中处理三维点云,确保了置换不变性。这种方法还不太成熟:尽管利用一个图可以提高整体性能,但图的构造更像艺术而不是科学,需要额外的计算成本;此外,基于图的神经网络的深层结构仍需要更多的探索[16]。