社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

最新综述!分析用于实时车载激光雷达感知的点云深度学习表示(空间结构/光栅化/坐标系)

集智书童 • 2 年前 • 296 次点击  


最新综述!分析用于实时车载激光雷达感知的点云深度学习表示

激光雷达传感器是自动驾驶汽车不可或缺的一部分,因为它们提供了汽车周围环境的精确、高分辨率3D表示。然而,在计算上很难利用来自多个高分辨率激光雷达传感器不断增加的数据量。随着帧速率、点云大小和传感器分辨率的增加,这些点云的实时处理仍必须从车辆环境的这张日益精确的图片中提取语义。在这些点云上运行的深度神经网络性能和准确性的一个决定因素是底层数据表示及其计算方式。本文调查了神经网络中使用的计算表示与其性能特征之间的关系,提出了现代深度神经网络中用于3D点云处理的LiDAR点云表示的新计算分类法。使用这种分类法,对不同的方法家族进行结构化分析,论文揭示了在计算效率、内存需求和表示能力方面的共同优势和局限性,这些都是通过语义分割性能来衡量的。最后,论文为基于神经网络的点云处理方法的未来发展提供了一些见解和指导。

领域背景

自动驾驶领域正在迅速发展,尤为明显的一个是激光雷达处理领域,该领域最近越来越受到计算机视觉和深度学习社区的关注。与此同时,传感器硬件也在不断发展,随着该行业的主要参与者推动对低成本、高分辨率传感器的需求,它们变得越来越便宜,并且越来越广泛。遵循这一趋势,最近的研究车辆和原型通常配备了多个高分辨率激光雷达传感器,现代传感器能够每秒以10 Hz或以上的帧速率为每个传感器提供数百万点!

这些快速且高分辨率的传感器产生大量数据,这些数据必须实时处理,以用于自动驾驶的感知功能。对于许多需要语义或几何推理的感知任务,如目标检测和语义分割,只有深度学习方法能提供最先进的处理能力。然而,许多可用于处理如此规模的激光雷达点云的深度学习方法无法满足车载部署的实时推断延迟要求,论文推测,推理运行时性能的最重要设计决策取决于底层的学习数据表示。多篇论文将方法分类为基于点、基于投影或有时基于体素的方法,以简化与最新方法的比较[11-13]。然而,这种分类并不能充分反映在新架构开发过程中做出的设计决策的多样性,作者还发现,没有对这些设计决策对运行时性能的影响进行实质性的、客观的分析或比较,因为每篇论文都关注所提出的方法。本文基于点云数据表示的设计决策,提出了不同体系结构设计的分类。通过选择显式或隐式空间结构、选择内部表示维度、选择坐标空间以及最终选择特征聚合方法对方法进行分类。第2节详细描述了该分类法,使用介绍的分类法,在第3节中分析了这些设计决策对运行时性能特征的影响。最后,基于此分析,还为第4节中的未来工作提供了见解和建议。

激光雷达点云的neural 表示分类

分类以开发过程中的设计决策为中心,这将导致点云在深度神经网络中的最终表示。在图1中,使用论文的分类法说明了常见点云表示的分类,值得注意的是,图1所示的分类并不详尽,因为在所呈现的设计决策之间存在许多可能的选择组合。

空间结构:作者观察到的第一个设计决策(图1,第一层)是在内存中数据的显式或隐式多维空间排列之间进行选择。显式空间结构直接编码所表示数据的存储器布局中的位置信息。通常,点云的光栅化表示可以通过点的坐标来索引,以接收其特征向量。相比之下,隐式空间结构将点的特征向量存储在稀疏表示中。在这种情况下,点的坐标和/或单独的索引数据结构通常被存储以编码位置信息,并被访问以提取邻域关系[14-16],图2显示了示例性一维点云的差异。

光栅化维度:论文观察到的第二个设计决策(图1,第二层)是点云内部数学表示的维度,观察到的主要种类是三维体素表示、三维空间的二维投影和一维未排序的基于集合或列表的表示[17,13,18]。作者将一维表示称为“点包”,因为它们的顺序通常与对它们执行的操作无关,多维表示将空间光栅化为有限数量的网格单元,将每个存储单元与3D或2D空间的一部分对齐。表示维度的决定与存储器布局正交,因为多维光栅化也可以稀疏地存储在一维数据结构中[15]。图3说明了不同的光栅化维度!

坐标系:作者观察到的第三个设计决策(图1,第三层)涉及坐标系的选择,用于多维空间的光栅化。光栅化将2D或3D空间划分为有限大小的块,该分区通常沿坐标轴上的规则间隔执行。因此,为该划分选择的坐标轴也会影响结果表示如何划分3D空间,这里主要区分笛卡尔坐标系和极坐标系,笛卡尔坐标系统指的是三维欧几里得空间中的绝对位置[12],而极坐标系指的是角度和距离测量的组合[19,20],图4(左)说明了不同的坐标系如何导致二维空间的不同光栅化。球坐标是极坐标的延伸,它使用两个角度和一个距离测量来索引三维空间。沿径向轴投影球面坐标会产生距离图像2D表示,还有各种坐标系,它们结合了不同轴的极坐标和笛卡尔几何。图4显示了一个例子:圆柱坐标使用极坐标系表示X-Y平面,笛卡尔轴表示Z方向。类似地,一些方法在二维鸟瞰图(BEV)投影中使用极坐标系,该投影沿笛卡尔z轴投影点[19]。对于极坐标系,通常选择坐标原点作为LiDAR传感器的中心,以最小化混叠。

Analysis

在自动驾驶汽车中,有两个主要的资源约束影响感知系统,即内存和计算时间。部署的硬件仅提供有限的内存,因此,点云表示所消耗的内存量应保持在合理的范围内。更重要的是,在移动的车辆中,计算时间受到严重限制,因为任何产生的延迟都会使感知系统的输出过时。过时的观察在一定限度内仍然有用,因此延迟应尽可能低。然而,更实际的硬约束是由车辆传感器产生数据的速率给出的,如果感知组件的延迟小于其处理数据的传感器的帧速率(对于当前的LiDAR传感器,通常约为10Hz),则该方法可以被视为具有实时能力。

这些资源约束与感知模型的表征能力形成对比,即其从传感器数据中正确推断环境信息的能力。在这项工作中,论文基于广泛使用的SemanticKITTI基准,使用语义分割性能作为表征能力的代理。然而,这里提出的相同设计决策和含义可能会推广到3D对象检测,作为类似分析的起点,多项调查提供了最近3D对象检测方法的概述[26-28]。通常,较大的模型具有较高的表示能力,但也具有较高的资源利用率[18,29,11]。因此,困难在于创建具有高表示能力的感知模型,该模型仍然可以在车载硬件上运行实时推理。在接下来的几节中,论文将从第2节介绍的分类中检查每个设计决策对内存消耗、运行时延迟和表示能力的影响。

1)空间结构的选择

本节分析了在点云表示的内存对齐中选择显式或隐式空间结构的影响,空间结构的选择对表征能力没有直接影响,因为相同的数学运算可以是在两种存储器布局上执行。因此,从数学角度来看,这个选择是一个实现细节。然而,在实践中,内存布局可能会对深度学习模型的运行时间和内存消耗产生很大影响。显式空间结构的一个主要优点是它直接对空间信息进行编码,从而通过存储器布局对空间局部性进行编码。因此,在点的局部邻域中找到特定位置的特征向量可以以O(1)时间复杂度运行,而与点云大小无关。

如图2所示,其中可以通过访问显式表示(中心行)中的单元0和2直接访问单元1中的点F的邻域。相比之下,要在隐式表示中找到点F的邻域(底行),必须遍历N个点的整个列表(O(N)操作),或者构造和导航一些外部索引结构,例如KD树或哈希图,作者将此邻居查找时间列为表3中的tlookup。作为一个额外的好处,内存布局中的空间局部性通常会导致更好的缓存局部性,因为当相邻数据被访问时,相邻数据通常已经被缓存。在通常用于这些模型的GPU加速器上,由于架构细节,并行访问相邻存储单元也可能比随机访问快得多[38,39]。

明确的空间结构的主要缺点是激光雷达数据本身的空间稀疏性。由于LiDAR点在3D空间中分布不均匀,因此显式表示通常会导致大量的空存储单元,这些空存储单元表示没有LiDAR的空间部分。根据数据表示的选择,很大一部分内存可能被空的空间单元占用,其中没有LiDAR点[17,13]。默认情况下,卷积等操作的实现对这些空单元的处理与填充单元的处理没有任何区别。因此,不仅内存,而且计算时间都浪费在空空间上。如图3所示,随着网格单元的分辨率r变得更精细,这种浪费内存和计算周期的问题增长得非常快,特别是对于明确的3D体素方法,内存需求往往会非常快地爆炸,从而大大限制了实际可用的分辨率。

2)光栅化维度的选择(3D体素vs 2D图像vs 1D点 package)

内部数学点云表示的维度选择对于运行时和表示能力都非常重要,如果选择显式表示,内部表示的光栅化维度也会影响内存成本的缩放,如上节所述。构建和访问光栅化和非光栅化表示需要不可忽略的时间,尤其是在低延迟用例中。表示的构造和访问时间在很大程度上取决于光栅化维度,在表3中进行了定性比较。

如上所述,点云上的深度神经网络通常聚集邻域信息以推断点的特征。根据表示是否光栅化(2D或3D、点包),查找邻居可以是数据结构中的查找,也可以是 最近邻居搜索,这会显著影响邻居查找延迟tlookup。为了减少邻域查找时间,point-package表示通常与搜索树索引结构(如KD树)相结合[16],然而,即使在这些树结构中,邻域搜索仍然很昂贵,并且它们的构建也需要大量时间。因此,对于相似数量的参数和mIoU分数,非光栅化表示(表2中的BoP+邻居)通常比光栅化方法(表2中的距离图像或稀疏体素CNN)需要更长的时间来计算和处理其内部表示。虽然访问光栅化表示要快得多,但它们的构建需要不可忽略的时间,对于基于2D投影的方法,Liu等人[11]报告了投影计算的延迟约为24毫秒。对于稀疏3D光栅化,这相当于每个点的散列图插入[15]。

由于这些运行时间限制,基于稀疏体素的方法在超过100ms的延迟之前,往往具有少于1000万个参数(如[15]中所报告的15-200亿次乘法累加(MAC)操作)。相比之下,具有显式表示的2D CNN具有数千万个参数的更高限制(根据[15],大约2000亿个MAC)。因此,对于相似的延迟约束,稀疏3D卷积神经网络似乎比2D CNN具有低得多的参数预算。然而,这些3D模型的IoU分数通常高于具有可比参数数量的2D CNN(比较表2中的距离图像与稀疏体素CNN)。这表明3D表示对于类似的参数预算能够实现更高的表示能力。Triess等人进行的分析支持了这一点。[20]他们发现基于2D范围图像的CNN在缩放参数计数方面快速达到递减的回报,论文推测这可能是由于变化表示中存在的固有不变性。

随着光栅化表示的维数的改变,这也会影响点的邻域的大小和结构。在3D体素表示中,每个体素最多有六个直接邻域,对于3x3x3卷积,考虑27个体素的邻域。在2D中,每个像素有四个直接邻域,3x3卷积考虑9个像素的邻域。典型的邻域聚合操作所需的时间随访问的邻域数量(表3和表4中的邻域)而变化,这受光栅化维度的显著影响,这种对邻域大小的影响是推理时间的重要考虑因素。选择光栅化维度的另一个重要考虑因素是表示的结果稀疏性,与2D范围图像投影相比,典型的三维体素空间中的点将稀疏得多[17,20]。

3)坐标系的选择

数学坐标系的选择对于表征能力非常重要。由于坐标系赋予了距离的概念,这种选择会影响点的局部邻域,由于深度学习方法通常在这个局部邻域上聚合特征,这也会影响表示能力,并且在较小程度上影响运行时延迟。鉴于几乎所有基于光栅化的方法都使用卷积来聚集特征,它们在内部坐标系中继承了平移不变性。根据这个坐标系,这可能导致3D空间中的不同不变性,这再次影响了表征能力。表1比较了与平移不变特征聚集方法一起使用时各种光栅化坐标系的不变性,目前似乎存在平移不变性和围绕传感器旋转的不变性的互斥性,此外,没有列出的光栅化表示提供围绕任意轴的旋转不变性。基于表示能力,论文没有发现明显的首选坐标系。然而,最近的结果表明,利用包括具有旋转和平移不变性的坐标系在内的多种表示可以显著提高语义分割性能[12,37]。

由于激光雷达传感器使用径向光束扫描环境,因此所得点云的密度随着距离的增加而降低[5]。在笛卡尔坐标系中,这导致点的局部密度存在较大差异,可能会妨碍训练稳定性。极坐标系统不会受到这种不平衡的影响,其代价是利用不均匀的空间截面,这可能再次对表示能力产生负面影响。基于角度的表示(如距离图像投影)也对坐标原点的选择敏感。这种灵敏度使得它们在多传感器应用中的使用更具挑战性,因为这些点不再均匀分布在径向中心周围。

4)特征聚合方法的选择

如上述所述,深度学习方法通常通过聚集来自其局部邻域的特征来计算3D位置的特征表示。对于点袋表示,特征聚集方法的选择通常成为一个区别因素,而光栅化(2D或3D)表示通常与卷积结合使用,聚合方法的选择会显著影响表示能力和运行时间延迟。

论文观察到,每种特征聚合方法都会在延迟和表示能力之间进行权衡。模型的表征能力通常与其参数数量相关,这也反映在表2中,因为参数的数量越高,语义分割的性能越高。因此,参数数量与其运行时延迟之间的比率可能是聚合方法对于低延迟用例的适用性的有用指示。在表4中列出了深度神经网络中使用的各种常见特征聚合方法的理论运行时间和参数缩放。这里,M是特征被聚集的位置的数量,d是每个位置的特征向量的维数,neighbors表示其特征被聚集的邻域中的位置的数量,tlookup表示在表示或外部索引结构中查找相邻位置并从内存加载其特征向量所需的时间。从这个表中可以观察到卷积和全连接层的参数计数与诱导延迟的比率最高,尤其是当使用具有高内存查找时间(tlookup)的表示时。全连接的层不会跨相邻层聚合要素,因此,它们需要与单独的邻域聚合方法相结合,这会影响组合的运行时成本。选择特征聚合方法的另一个重要考虑因素是表示的结果不变性。例如,卷积将平移不变性赋予表示,这可能会积极影响表示能力[40]。作者鼓励未来的工作尝试聚合方法,这些方法可以提供对点云尺度、密度或绕任意轴旋转的不变性。

Discussion

上节单独检查了建议分类中的每个设计决策对内存消耗、延迟和表示能力的影响。在本节中,作者采取相反的观点,检查每个结果:即内存消耗、运行时延迟和表示能力,它们受哪些设计决策的影响最大!

内存:点云表示的内存消耗最显著地受到显式或隐式内存布局的影响,如表2所列,隐式表示的内存消耗特性大致相同,随数字线性缩放点数。因此,通过选择隐式内存布局,任何点云表示都可以减少到O(N·d)内存复杂性,不包括任何索引结构。这里,N是点云中的点的数量,d是每个点的特征向量的维数,如上面所述,由于在内存中表示空的空间部分,具有显式空间结构的表示通常不太具有内存效率。

光栅化表示的内存消耗通常由使用的最细粒度网格分辨率决定,因此,对于某些应用程序来说,将稀疏隐式存储器布局用于细粒度光栅化,并将显式低分辨率特征映射用于粗网格表示可能是有用的,这可能会更快地操作,同时产生很少的稀疏性。一些显式表示比其它表示的稀疏性小得多,因此可以更精确地表示整个点云,而无需额外的内存开销。也就是说,基于距离图像的2D光栅化可以以这样的方式执行它们的投影,即它们的memory表示几乎不会产生稀疏性[20]。相比之下,笛卡尔表示通常具有最高的稀疏性,因为远离传感器的区域中的空间单元(即低点密度)仍然由细粒度网格单元表示。因此,对于明确的2D或3D光栅化,还应考虑坐标系的选择!

延迟:在计算点云表示过程中产生的运行延迟受多个设计决策的影响,由于特征是针对点云表示中的每个空间位置逐元素聚合的,因此空间位置的数量是一个重要因素。对于隐式空间表示,这通常是点云中的点数,而对于显式表示,这取决于光栅化分辨率。给定足够精细的空间分辨率,隐式表示通常会产生更少的空间位置,因此计算速度要快得多。下一个要考虑的因素是构建表示的初始延迟开销,这一开销包括投影、光栅化的成本,但也包括为隐式表示构建额外索引结构(如KD树或哈希图)的成本。由于开销通常不受以下模型规模的影响,因此考虑小模型尤为重要,因为它可能导致总延迟的很大一部分。延迟的另一个重要考虑因素是特征聚合的持续时间,这一时间受要聚合的邻居数量的影响,即表示维度和聚合的接受域,然而它也受到邻居查找时间的显著影响。这在表2中的非结构化点包表示中尤为明显,因此显式与隐式表示的选择再次显著影响运行时延迟。最后,运行时延迟也随所用模型的大小而变化,当模型使用更大的特征维度、更多的参数和更多的计算时,运行时间会相应地扩展。如表2所示,运行时间相对于参数数量的比例很大程度上受到特定表示选择的影响。正如从这个比较中观察到的,光栅化的2D CNN通常有一些初始开销,但当增加其参数计数时,它们的延迟最小。如果可以接受稍高的延迟,稀疏的3D CNN也提供了一种高性能的替代方案[20,11]。

Capacity:点云的表示能力受到模型中参数数量的显著影响,可以使用表示中特征向量的维数d对其进行缩放。然而,另一个重要的考虑是特征聚合方法可以从表示中直接推断出底层3D结构,如表2所示,一些基于稀疏3D体素的方法需要较少的参数来实现与基于投影的方法相同的分割性能。为了解决这个问题,一些基于2D投影的方法添加了三维后处理步骤,这可以提高分割性能,但也会导致运行时间延迟[13],因此表征维度和坐标系的选择对表征能力至关重要。当与平移不变操作结合时,不同的坐标系也提供不同的不变性,极坐标还是笛卡尔坐标最适合表示能力尚不完全清楚。然而,最近的结果表明,将极坐标表示和笛卡尔表示相结合可能会带来额外的好处,以受益于旋转和平移的不变性(见表2中的底部行)。

当使用具有多个激光雷达传感器的车辆设置时,还应仔细考虑所选坐标系的坐标原点和光栅化分辨率,这对于球面范围图像投影和其它极坐标系尤其如此。正交因素(如损失函数和数据增强)也已被证明能够以较少的推理时间成本为表征能力带来可衡量的益处[41,20,35,32]。因此,仍需要进行未来的工作,以便将点云表示的表示能力从其训练方法中分离出来。

参考

[1] Analyzing Deep Learning Representations of Point Clouds for Real-Time In-Vehicle LiDAR Perception.

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/149927
 
296 次点击