点云 3D 分割 - RangeNet++(IROS 2019)

news2024/11/26 13:48:03

点云 3D 分割 - RangeNet++(IROS 2019)

  • 摘要
  • 1. 引言
  • 2. 相关工作
  • 3. 我们的方法
    • A. 距离图像点云代理表示
    • B. 完全卷积语义分割
    • C. 基于距离图像的点云重建
    • D. 高效点云后处理
  • 4. 实验评价
    • A. RangeNet++相对于最新技术的性能
    • B. 消融研究
    • C. 后处理影响
    • D. 运行时
  • 5. 结论
  • REFERENCES

声明:此翻译仅为个人学习记录

文章信息

  • 标题:RangeNet++: Fast and Accurate LiDAR Semantic Segmentation (IROS 2019)
  • 作者:Andres Milioto, Ignacio Vizzo, Jens Behley, Cyrill Stachniss
  • 文章链接:https://www.ipb.uni-bonn.de/wp-content/papercite-data/pdf/milioto2019iros.pdf
  • 文章代码:https://github.com/PRBonn/lidar-bonnetal

摘要

  自动驾驶汽车中的感知通常通过一套不同的感知模式进行。鉴于大量公开可用的标记RGB数据以及用于基于图像的识别的高质量深度学习算法的出现,高级语义感知任务主要使用高分辨率相机来解决。因此,其他可能对该任务有用的传感器模态通常被忽略。在本文中,我们推进了仅LiDAR语义分割的最新技术,以便为车辆提供另一个独立的语义信息源。我们的方法可以在传感器帧速率下准确地执行LiDAR点云的完全语义分割。我们利用距离图像作为中间表示,结合卷积神经网络(CNN)利用旋转激光雷达传感器模型。为了获得准确的结果,我们提出了一种新的后处理算法,该算法处理由这种中间表示产生的问题,例如离散化误差和模糊的CNN输出。我们实施并彻底评估了我们的方法,包括与现有技术的几次比较。我们的实验表明,我们的方法优于最先进的方法,同时仍然在单个嵌入式GPU上在线运行。该代码可访问https://github.com/PRBonn/lidar-bonnetal。

1. 引言

  语义场景理解是在动态、真实世界环境中工作的自主机器人的关键组成部分之一。为了实现所需的场景理解,机器人通常配备有多个传感器,使其能够利用每个模态的优势。结合多种互补的传感模式可以弥补单个传感器(如相机、激光扫描仪或雷达)的缺点。这在自动驾驶的情况下尤为重要,其中一种模式的故障可能会导致致命或重大的经济后果,如果另一个冗余传感器无法正确覆盖。

  语义场景理解中的一项重要任务是语义分割。语义分割将类别标签分配给输入模态中的每个数据点,即,在相机的情况下分配给像素,或分配给LiDAR获得的3D点。在本文中,我们明确提出了旋转3D激光雷达(如常用的Velodyne扫描仪)的语义分割。不幸的是,目前可用于LiDAR数据语义分割的大多数最先进的方法要么没有足够的表示能力来处理该任务,要么在计算上过于昂贵,无法在移动GPU上以帧速率操作。这使得它们不适合辅助支持自动驾驶汽车的任务,解决这些问题是本工作的目标。

  本文的主要贡献是为准确、快速、仅LiDAR的语义分割提供了一种新方法。我们通过对输入点云的球形投影(即,类似于距离图像的2D图像表示)进行操作来实现这一点,并因此利用旋转LiDAR传感器检测点的方式。我们的方法使用任何CNN作为主干,为图像的每个像素推断出完整的语义分割。这产生了一种有效的方法,但可能导致离散化或模糊的CNN输出导致的问题。我们通过使用语义重建原始点来有效地解决这些问题,而不丢弃原始点云中的任何点,而不管基于图像的CNN的使用分辨率如何。该后处理步骤也在线运行,对图像表示进行操作,并针对效率进行调整。我们可以在恒定时间内计算每个点的最近邻居,并利用基于GPU的计算。这使得我们能够比传感器的帧速率更准确、更快地推断出LiDAR点云的完整语义分割。由于该方法与任何基于距离图像的CNN主干一起运行,我们称之为RangeNet++。示例见图1。

  总之,我们提出了三个关键主张:我们的方法能够(i)准确地执行仅LiDAR点云的语义分割,显著超过现有技术水平,以及(iii)在嵌入式计算机上以Velodyne扫描仪的帧速率工作,该嵌入式计算机可以容易地安装在机器人或车辆中。

在这里插入图片描述

图1. 来自KITTI数据集[7]的Velodyne HDL-64E激光扫描以及来自RangeNet++的语义信息。从颜色上看,每种颜色代表不同的语义类。

2. 相关工作

  近年来,由于深度学习的出现以及越来越大规模的数据集(如CamVid[2]、Cityscapes[4]或Mapillary[12])的可用性,使用图像进行自动驾驶的语义分割取得了巨大进展。总之,这使得能够生成具有数百万参数的复杂深度神经网络架构,从而获得高质量的结果。突出的例子是Deeplab V3[3]和PSPNet[23]。

  尽管结果令人印象深刻,但这些架构在计算上过于昂贵,无法在自主系统上实时运行,这是利用语义线索进行自主导航的必要条件。这催生了更有效的方法,如Bonnet[11]、ENet[13]、ERFNet[17]和Mobilenets V2[18],这些方法利用收益递减法则,在运行时间、参数数量和精度之间找到最佳平衡。然而,这些是为图像而设计的,而不是为激光雷达扫描而设计的。

  到目前为止,将这些结果传输到LiDAR数据受到两个因素的阻碍:(i)缺乏用于自动驾驶中语义分割任务的公开可用的大规模数据集,以及(ii)运行大多数LiDAR语义分割模型的成本高昂。

  为了解决缺乏数据的问题,Wu等人[21],[22]使用了KITTI数据集提供的边界框[7]。他们还利用模拟从游戏引擎生成逼真的扫描。我们发布了第一个具有LiDAR扫描全语义分割的大规模数据集[1],其中KITTI里程数据集[7]的所有扫描都进行了密集注释,即超过43000次扫描,注释点超过35亿。在没有数据饥饿障碍的情况下,本文研究了当前最先进的算法中哪些算法可以在自动驾驶环境中用于点云。

  利用用于其他上下文的大型数据集[5],[8],最近开发了几种基于深度学习的3D语义分割方法,如PointNet[14]、PointNet++[15]、TangentConvolutions[20]、SPLATNet[19]、SuperPointGraph[10]和SqueezeSeg[21],[22]。

  直接处理点云数据的问题之一是缺乏适当的排序,这使得学习顺序不变的特征提取器极具挑战性。Qi等人[14],[15]使用未经排序的原始点云作为输入,并应用能够处理此排序问题的对称算子。为此,PointNet[14]使用最大池来组合特征并生成置换不变特征提取器。然而,这是PointNet的一个限制因素,导致它失去捕捉特征之间的空间关系的能力。这限制了其对复杂场景的适用性。PointNet++[15]通过使用分层方法进行特征提取来解决这个问题。通过利用局部附近的单个PointNets,它可以捕获短距离依赖关系,然后分层应用这个概念来捕获全局依赖关系。

  Tatarchencko等人[20]采用不同的方法处理非结构化点云。他们提出了将CNN直接应用于曲面的切线卷积,这只有在从同一曲面采样相邻点时才能实现。在这种情况下,作者可以将切线卷积定义为应用于每个点处的曲面投影的平面卷积。然而,在旋转的激光雷达和生成的点云的依赖于距离的稀疏性的情况下,这一假设被违背了。

  Su等人[19]通过在高维稀疏网格中投影点,以不同的方式处理SPLATNet中的表示问题。然而,这种方法在计算和内存消耗方面都不能很好地扩展。为了缓解这一问题,双边卷积[9]允许他们将这些算子专门应用于晶格的占用扇区。

  Landrieu等人[10]通过定义SuperPoint图,以类似于PointNets的方式总结局部关系。这是通过创建所谓的SuperPoints来实现的,SuperPoints是由PointNet嵌入的局部相干、几何均匀的点组。他们创建了一个SuperPoints图,这是原始点云的增强版本,并训练了一个图卷积网络来编码全局关系。

  在旋转LiDAR分割分割的情况下,每次扫描的点数约为105。这种规模阻止了上述所有方法的实时运行,限制了它们在自动驾驶中的适用性。相比之下,我们提出了一种系统,该系统提供准确的语义分割结果,同时仍以传感器的帧速率运行。

  Wu等人的SqueezeSeg和SqueezeSegV2[21],[22]在在线处理领域处于领先地位,他们还使用了点云的球面投影,从而能够使用2D卷积。此外,将轻量级的全卷积语义分割与条件随机场(CRF)一起应用以平滑结果。最后一步是将距离图像中的点重新离散到3D世界中。两者都能够以比传感器速度更快的速度运行,即10Hz,我们将其作为我们方法的基础。

  为了使用该框架提供完整的语义分割,需要解决几个限制。首先,需要扩展投影以包括完整的LiDAR扫描,因为SquezeSeg框架仅使用扫描的前90度,其中原始KITTI数据集标签的目标由边界框注释。第二,SqueezNet主干不够描述性,无法推断数据集提供的所有19个语义类[1]。第三,我们用一个高效的、基于GPU的最近邻搜索代替在图像域中运行的CRF,该搜索直接作用于完整的、无序的点云。最后一步允许检索云中所有点的标签,即使它们未在距离图像中直接表示,也不考虑使用的分辨率。

  我们提出了一种受基于投影的方法启发的新方法,该方法允许使用平面卷积并克服其缺点。我们的方法以传感器的帧速率(约10Hz)或更快的帧速准确地分割整个LiDAR扫描,使用距离图像和2D CNN作为代理,并正确处理将结果重新投影到3D点云后需要解决的离散化误差。

在这里插入图片描述

图2. 方法框图。每个箭头对应于我们的一个模块。

3. 我们的方法

  我们的方法的目标是实现点云的精确和快速语义分割,以使自主机器能够及时做出决策。为了实现这种分割,我们提出了对输入点云的基于投影的2D CNN处理,并利用每个激光扫描的距离图像表示来执行语义推断。我们在下面使用术语距离图像来表示点云的球形投影,但每个像素(对应于水平和垂直方向)可以存储的距离值不止一个。投影之后,在整个点云上进行基于GPU的快速k近邻(kNN)搜索,这允许我们恢复整个输入点云的语义标签。这在使用小分辨率距离图像时尤为关键,因为否则投影会导致信息丢失。

  因此,我们的方法分为四个步骤,如图2所示。这四个步骤在以下小节中详细讨论:(A)将输入点云转换为距离图像表示,(B)2D全卷积语义分割,(C)从2D到3D的语义转换,从原始点云恢复所有点,而不考虑使用的距离图像离散化,以及(D)使用在所有点上操作的基于GPU的快速kNN搜索,高效的基于距离图像的3D后处理以从不期望的离散化和推断伪影中清除点云。

A. 距离图像点云代理表示

  几个LiDAR传感器,如Velodyne传感器,以类似距离图像的方式表示原始输入数据。每一列表示激光测距仪阵列在一个时间点测量的距离,每一行表示以恒定速率发射的每一个测距仪的不同转向位置。然而,在高速行驶的车辆中,这种旋转速度不足以忽略这种“卷帘”行为所产生的倾斜。为了获得每个扫描环境的更几何一致的表示,我们必须考虑车辆运动,从而产生不再包含每个像素的距离测量值,而是包含其他像素的多个测量值的点云。为了获得完整LiDAR点云的精确语义分割,我们的第一步是将每个去偏斜点云转换为距离表示。为此,我们通过映射∏:R3→ R2转换每个点pi=(x,y,z)为球面坐标,最后转换为图像坐标,如
在这里插入图片描述
其中(u,v)是所述图像坐标,(h,w)是所需距离图像表示的高度和宽度,f=fup+fdown是传感器的垂直视野,r=||pi||2是每个点的距离。这个过程产生一个(u,v)元组列表,其中包含每个pi的一对图像坐标,我们使用这些坐标来生成代理表示。使用这些索引,我们提取每个pi、其距离r、其x、y和z坐标及其反射强度,并将其存储在图像中,创建一个[5×h×w]张量。由于扫描的去偏移,将每个点分配给其对应的(u,v)以降序进行,以确保图像中渲染的所有点都在传感器的当前视野中。此外,我们还保存了(u,v)对的列表,以收集和清理生成的点云的语义,如我们在第III-C节和第III-D节中所述。

B. 完全卷积语义分割

  为了获得点云的这个距离图像表示的语义分割,我们使用2D语义分割CNN,其被修改以适合这个特定的输入类型和形状因素。类似于Wu等人[21],我们使用编码器-解码器沙漏形结构,如图3所示。这些类型的深度沙漏形分割网络的特征在于具有显著下采样的编码器,这允许更高抽象度的深度内核对上下文信息进行编码,同时运行速度比非下采样对应的更快。在我们的例子中,下采样是32(见图3)。随后是解码器模块,该模块将卷积骨干编码器提取的“特征码”上采样到原始图像分辨率,同时添加卷积层以细化这些结果。同时,在每次上采样之后,我们还添加编码器的不同输出步幅(OS)级别之间的跳过连接,并将它们与解码器中的相应输出步幅特征量相加,如黑色箭头所示,以恢复在下采样过程中丢失的一些高频边缘信息。在这种编码-解码行为之后,架构的最后一层执行一组[1×1]卷积。这将生成[n×h×w]逻辑的输出量,其中n是数据中的类数。推断过程中的最后一层是在无界logits上的软最大函数,其形式为 y ^ c = e l o g i t c ∑ c e l o g i t c \hat{y}_c=\frac{e^{logit_c}}{\sum_{c}e^{logit_c}} y^c=celogitcelogitc。这给出了距离图像中每个像素的概率分布,其中logitc是对应于类c的切片中的无界输出。在训练期间,使用随机梯度下降和加权交叉熵损失L对该网络进行端到端优化:
在这里插入图片描述
根据其频率fc的倒数惩罚类c。这处理了不平衡的数据,正如语义分割中的大多数数据集的情况一样,例如,“道路”类在数据集中代表的点比“行人”类多得多。

  为了提取编码器主干的丰富特征,我们通过修改Darknet[16]主干架构来定义RangeNet架构,使其可用于我们的目的。该主干设计时考虑了一般的图像分类和目标检测任务,非常具有描述性,在这些任务的几个基准测试中实现了最先进的性能。然而,它被设计用于方形纵横比RGB图像。对主干的第一个必要的修改是允许第一通道用5个通道拍摄图像。当我们处理一个传感器时,该传感器具有64个垂直放置的激光测距仪阵列,每次扫描产生大约130000点,这给我们留下了大约w=2048像素的距离图像。为了保持垂直方向上的信息,因此我们只在水平方向上执行下采样。这意味着,在编码器中,32的OS意味着w减少了32倍,但64个像素在垂直方向h上仍然保持不变。为了评估我们的后处理如何恢复原始点云信息,我们在实验评估中分析了[64×2048]、[64×1024]和[64×512]的输入大小,其在编码器末端分别产生尺寸[64×64]、[64×32]和[64×16]的特征体积。

C. 基于距离图像的点云重建

  从距离图像表示映射到点云的常见做法是使用距离信息以及像素坐标和传感器固有校准来实现映射∏*:R2→R3。然而,由于我们最初从点云生成距离图像,如第III-a节所述,这可能意味着从原始表示中删除大量点。当使用较小的图像以便更快地推断CNN时,这一点尤为重要。例如投影到[64×512]距离图像的130000个点的扫描将仅代表32768个点,对每个像素的截头体中最近的点进行采样。因此,为了推断语义云表示中的所有原始点,我们使用在初始渲染过程中获得的所有pi的所有(u,v)对,并使用对应于每个点的图像坐标对距离图像进行索引。在下一个后处理步骤发生之前,这可以在GPU中非常快速地执行,并以无损失的方式为整个输入扫描中存在的每个点生成语义标签。

D. 高效点云后处理

  不幸的是,通过距离图像的2D语义分割来加速LiDAR扫描的语义分割的好处并非没有缺点。像CNN这样的编码器-解码器沙漏在推理过程中提供模糊输出,这也是RGB和RGBD语义分割的问题。一些方法,如[21],在2D分割后在图像域中的预测上使用条件随机场,以消除输出标签的这种“出血”。使用每个像素的软最大概率作为CRF的一元可能性,并惩罚信号跳跃和相邻点之间的欧几里德距离。尽管这在2D中有帮助,但它并不能解决重新投影到三维空间后的问题,因为一旦标签被投影到原始点云中,存储在同一距离图像像素中的两个或多个点将获得相同的语义标签。这种效果如图4所示,其中推断出的点云的标签由于模糊的CNN掩码和所述的离散化而在背景中的目标中呈现阴影。此外,如果我们希望使用较小范围的图像表示来推断语义,则这个问题会变得更加严重,从而导致不同类别的目标中语义信息的阴影状伪影。

在这里插入图片描述

图4. 标签重新投影问题图解。距离图像(左)中的围栏和汽车都被赋予了适当的语义标签,但在将语义发送回原始点(右)的过程中,标签也被投影为“阴影”。

  为了解决这个问题,我们提出了一种直接在输入点云中运行的快速、GPU支持的k近邻(kNN)搜索。这使我们能够为语义点云中的每个点找到扫描中在3D中最接近的k个点的共识投票。正如在kNN搜索中常见的那样,我们还为搜索设置了一个阈值,我们称之为截止,设置了被视为近邻的点的最大允许距离。对k个最近点进行排序的距离度量可以是距离中的绝对差,也可以是欧几里得距离。尽管如此,我们也试图将反射率作为一个惩罚条款,但这对我们的经验没有帮助。从现在起,我们将使用绝对距离差作为距离来解释该算法,但欧几里德距离的工作原理类似,尽管计算速度较慢。

  我们解释了算法的步骤,如Alg.1,参考相应的行号。我们的近似最近邻搜索使用距离图像表示来为[h,w]距离图像中的每个点获得图像表示中其周围的[S,S]窗口,其中S是通过验证集中的网格搜索根据经验找到的值。此操作是通过“im2col”原语执行的,大多数并行计算库内部使用该原语来计算卷积,因此可以通过所有深度学习框架直接访问。这导致维度为[S2,hw]的矩阵,其中包含每列中[S,S]邻域的展开版本,并且每列中心包含实际像素的距离(第2-4行)。由于并非所有点都在距离图像中表示,因此我们使用在距离图像渲染过程中获得的每个pi的(u,v)元组,并将此表示扩展到维度[S2,N]的矩阵,其中包含所有扫描点的距离邻域(第5-7行)。由于这是通过索引展开的图像矩阵来完成的,所以列的中心不再表示实际的距离值。因此,我们将矩阵的中心行替换为每个点的实际距离读数。其结果是一个[S2,N]矩阵,其中包含中心行中的点的所有距离读数,并且在每一列中包含其展开的[S,S]邻域(第8-9行)。这是算法中的一个关键检查点,因为它允许我们以快速的方式找到一组S2候选项,以便在并行的每个点的邻居搜索过程中考虑。通过利用传感器中扫描点的排列,这使得我们的算法比其他最近邻搜索方法(如FLANN中的方法)更快地运行数量级,这些方法在无序点云中工作。这一关键的结构差异使我们能够实时运行,即使是大型点云。

  以下两个步骤类似于此展开(第10–15行),但它不获取相邻候选的距离,而是包含它们的标签。一旦找到k个邻居的索引,这个[S2,N]标签矩阵随后被用于收集共识投票的标签。在算法的这一点上,我们能够计算到每个S2候选的实际点的距离。如果我们从[S2,N]相邻矩阵的每行中减去LiDAR扫描的[1,N]范围表示,并逐点应用绝对值,则我们获得[S2,N]矩阵,其中每个点包含邻域中心(即查询点)与周围点之间的距离差(第16–18行)。事实上,我们在每个点周围使用一个小的[S,S]邻域搜索,这允许我们假设距离中的绝对差是欧几里德距离的一个很好的代理,因为在(u,v)坐标中接近的点只有在它们在3D空间中的实际距离相似的情况下才会具有相似的距离。这在我们的实验部分中进行了经验测试,使我们能够更有效地进行距离计算,并获得相同的后处理结果。

  下一步是通过逆高斯核对距离进行加权,这将惩罚距离(u,v)越远的点之间的距离差异越大。这是通过将每列与展开的内核逐点相乘来完成的(第19–27行)。

  之后,我们需要为包含S2候选项的每个列找到k个最近的点,这是通过argmin操作完成的(第28–29行)。这使得我们可以获得S邻域中k个点的索引,其加权距离最小。

  我们搜索的最后一步是检查这些k个点中的哪一个符合允许的阈值(我们称之为cut-off),并累积该半径内所有点标签的投票。这是通过一个聚集-加法运算来执行的,该运算生成一个[C,N]矩阵,其中C是类的数量,每行包含其索引类中的投票数(第30–41行)。对该矩阵的列进行简单的argmax操作将返回[1,N]向量,该向量包含输入LiDAR点云中每个点的干净标签,并作为我们方法的输出(第42–43行)。

  需要注意的是,考虑到Alg.1中循环内所有点的独立性,每个主要组件都可以用并行计算原语或高度矢量化的方式表示,这两种方式都可以使用现成的、高度抽象的深度学习或数据科学框架在GPU中直接实现。

  该算法需要设置四个不同的超参数:(i)S,即搜索窗口的大小;(ii)k,即最近邻居的数量;(iii)cut-off,即k的最大允许范围差;(iv)σ,即逆高斯函数。超参数的值是通过我们的训练数据验证集中的数据驱动搜索根据经验计算的,实验部分提供了简要分析。

在这里插入图片描述

4. 实验评价

  实验评估旨在支持我们的主张,即我们的方法:(i)在LiDAR扫描的语义分割任务中优于现有技术,(ii)在非投影步骤中恢复高频信息的同时推断整个点云,以及(iii)在嵌入式计算机中以传感器帧速率在线运行。

数据集。我们在大规模数据集上训练和评估我们的方法,该数据集为整个KITTI Odometry Benchmark [7],[1]提供了密集的逐点注释。数据集由43000多个扫描组成,其中序列00至10的21000多个可用于训练,序列11至21的剩余扫描用作测试集。我们使用序列08作为超参数选择的验证集,并在剩余的训练序列上训练我们的方法。总体而言,数据集提供了22个类,其中19个类通过我们的基准网站在测试集上进行评估。

超参数选择。选择RangeNet模型的所有超参数,并在验证集上进行评估(序列8)。对于所有骨干训练,我们使用1·10−3的学习率,每个时期衰减0.99,训练150个epochs。对于所有CNN骨干,在不到150个epochs内实现了收敛。对于所有最先进的方法,也在验证集上选择了超参数。

度量。为了评估标记性能,我们使用所有类别[6]的常用平均Jaccard指数或平均交并比(IoU)度量mIoU
在这里插入图片描述
其中TPc、FPc和FNc对应于c类的真阳性、假阳性和假阴性预测的数量,c是类的数量。

  为了更好地评估预测精度方面的性能,我们提出了一个额外的评估度量,我们称之为边界IoU。该度量以与标准IoU相同的方式定义,但仅适用于由额外参数定义的点子集,该额外参数考虑了点距离传感器自遮挡的距离,这表现为距离图像中标签的变化。该度量旨在显示我们的算法在多大程度上可以帮助语义点云中的“阴影式”错误标签投影。

表I. 测试集上的IoU[%](序列11至21)。RangeNet21和RangeNet53表示具有增强的Darknet主干的新基线(分别为21和53),具有(++)的版本通过我们基于距离的快速点云后处理进行处理。

在这里插入图片描述

A. RangeNet++相对于最新技术的性能

  第一个实验旨在支持我们的主张,即我们的方法在LiDAR点云的场景语义分割任务中超过了现有技术水平。表I显示了使用21层和53层的RangeNet主干与其他7种基线方法之间的差异。我们的RangeNet基线的卓越性能,即使没有我们的清理,对于的所有输入分辨率,也表明它是一个可靠的基线,可以衡量我们的高效kNN清理。表I还显示,我们的方法RangeNet++(包括我们的kNN后处理)始终优于未处理的RangeNet,显示了我们的kNN搜索的有效性。与CRF不同,kNN清洗对于除一个类之外的所有类都始终更好,这也是最初的SquezeSeg[21]论文得出的结论,即使当总体IoU更高时也是如此。

B. 消融研究

  第二个实验显示了验证集中k和S参数的影响。对于4个参数k、S、σ和cut-off中的每一个,我们选择了广泛的值,并评估了所有输入分辨率下RangeNet53主干的推断结果的后处理结果。图5显示了验证集中每个参数集的IoU的归一化结果,包括各种k和S以及σ和cut-off的argmax。结果还表明,我们可以使用小核和绝对距离差作为欧几里德距离的代理来获得类似的结果。这支持我们的说法,即距离差很好地代表了图像中点越近的实际距离。

在这里插入图片描述

图5. 使用RangeNet53++和不同的输入分辨率对Range(顶行)和欧氏距离(底行)进行超参数搜索后处理。所有实验使用的cutoff为1.0 m。

C. 后处理影响

  第三个实验旨在支持我们的主张,即即使对于较小的距离图像分辨率,我们的算法也改进了整个点云的语义重建。为此,我们使用边界IoU度量,该度量只考虑距离标签变化一定数量的点。在图6中,我们显示了到边界的不同距离的IoU值和边界IoU值。请注意,我们的后处理方法不仅将IoU分数提高了几个百分点,而且对于边界距离参数的低值,它还显著提高了边界IoU分数。这意味着我们的方法在第III-D节中描述的标签“出血”或“阴影”的情况下尤其有用。另一个重要的结论是,在整个边界距离谱中,使用更快的距离差计算和实际欧几里德距离之间,以及在IoU中,只有边际差异,这支持我们的说法,即这是一个很好的近似值。

D. 运行时

  第四个实验旨在支持我们的说法,即该方法可以使用单个GPU在移动平台上整体在线运行。表II显示了主干的运行时间、不同的后处理距离函数(最佳参数)和所需的总时间。正如预期的那样,基于距离的后处理计算速度更快,因为每次距离计算都需要减法和绝对值,而不是3平方、2和和平方根。因此,由于性能差异可以忽略不计,因此我们使用CNN主干加上此距离处理时间的总和作为总运行时间,我们在两种不同类型的硬件中对其进行评估。

在这里插入图片描述

图6. 边界IoU(bIoU)和IoU作为标签变化距离的函数。该图显示,我们的后处理改善了IoU,并显著改善了边界IoU,这意味着它可以更好地恢复模糊掩码和离散化错误。

表II. RangeNet53++的运行时。

在这里插入图片描述

5. 结论

  在这项工作中,我们提出了一种快速、准确的框架,用于对旋转激光雷达传感器记录的点云进行语义分割。我们的主要贡献是一种利用距离图像和2D卷积的新型深度学习支持方法,随后是一种新型的GPU加速后处理,以在整个LiDAR扫描的推断过程中恢复一致的语义信息。我们的实验评估表明,我们在距离图像上操作的改进的2D深度CNN在LiDAR点云的语义分割方面优于当前的技术水平。此外,我们高效的、支持GPU的后处理可以通过恢复在激光扫描去偏过程中丢失的重要边界信息、有损离散化为代理表示以及通过沙漏形CNN进行推断来进一步改善这些结果。总体而言,我们的方法在准确性和运行时间方面都优于现有技术,为自动驾驶车辆和机器人的语义分割朝着传感器冗余迈出了一步。

REFERENCES

[1] J. Behley, M. Garbade, A. Milioto, J. Quenzel, S. Behnke, C. Stachniss, and J. Gall. SemanticKITTI: A Dataset for Semantic Scene Understanding of LiDAR Sequences. In Proc. of the IEEE/CVF International Conf. on Computer Vision (ICCV), 2019.
[2] G.J. Brostow, J. Fauqueur, and R. Cipolla. Semantic object classes in video: A high-definition ground truth database. Pattern Recognition Letters, 2008.
[3] L. Chen, G. Papandreou, F. Schroff, and H. Adam. Rethinking Atrous Convolution for Semantic Image Segmentation. arXiv preprint, 2017.
[4] M. Cordts, S. Mohamed Omran, Ramos, T. Rehfeld, M. Enzweiler, R. Benenson, U. Franke, S. Roth, and B. Schiele. The cityscapes dataset for semantic urban scene understanding. In Proc. of the IEEE Conf. on Computer Vision and Pattern Recognition (CVPR), 2016.
[5] A. Dai, A.X. Chang, M. Savva, M. Halber, T. Funkhouser, and M. Nießner. ScanNet: Richly-Annotated 3D Reconstructions of Indoor Scenes. In Proc. of the IEEE Conf. on Computer Vision and Pattern Recognition (CVPR), 2017.
[6] M. Everingham, S. Eslami, L. van Gool, C. Williams, J. Winn, and A. Zisserman. The Pascal Visual Object Classes Challenge a Retrospective. International Journal on Computer Vision (IJCV),
111(1):98–136, 2015.
[7] A. Geiger, P. Lenz, and R. Urtasun. Are we ready for Autonomous Driving? The KITTI Vision Benchmark Suite. In Proc. of the IEEE Conf. on Computer Vision and Pattern Recognition (CVPR), pages 3354–3361, 2012.
[8] T. Hackel, N. Savinov, L. Ladicky, Jan D. Wegner, K. Schindler, and M. Pollefeys. SEMANTIC3D.NET: A new large-scale point cloud classification benchmark. In ISPRS Annals of the Photogrammetry, Remote Sensing and Spatial Information Sciences, volume IV-1-W1, pages 91–98, 2017.
[9] V. Jampani, M. Kiefel, and P.V. Gehler. Learning Sparse High Dimensional Filters: Image Filtering, Dense CRFs and Bilateral Neural Networks. In Proc. of the IEEE Conf. on Computer Vision and Pattern Recognition (CVPR), 2016.
[10] L. Landrieu and M. Simonovsky. Large-scale Point Cloud Semantic Segmentation with Superpoint Graphs. In Proc. of the IEEE Conf. on Computer Vision and Pattern Recognition (CVPR), 2018.
[11] A. Milioto and C. Stachniss. Bonnet: An Open-Source Training and Deployment Framework for Semantic Segmentation in Robotics using CNNs. In Proc. of the IEEE Intl. Conf. on Robotics & Automation (ICRA), 2019.
[12] G. Neuhold, T. Ollmann, S. Rota Bulo, and P. Kontschieder. The Mapillary Vistas Dataset for Semantic Understanding of Street Scenes. In Proc. of the IEEE Intl. Conf. on Computer Vision (ICCV), 2017.
[13] A. Paszke, A. Chaurasia, S. Kim, and E. Culurciello. ENet: A Deep Neural Network Architecture for Real-Time Semantic Segmentation.arXiv preprint, 2016.
[14] C. R. Qi, H. Su, K. Mo, and L. J. Guibas. PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation. In Proc. of the IEEE Conf. on Computer Vision and Pattern Recognition (CVPR), 2017.
[15] C.R. Qi, K. Yi, H. Su, and L. J. Guibas. PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metric Space. In Proc. of the Advances in Neural Information Processing Systems (NIPS), 2017.
[16] J. Redmon and A. Farhadi. YOLOv3: An Incremental Improvement. arXiv preprint, 2018.
[17] E. Romera, J. M. Alvarez, L. M. Bergasa, and R. Arroyo. Erfnet: Efficient residual factorized convnet for real-time semantic segmentation. IEEE Trans. on Intelligent Transportation Systems (ITS), 19(1):263–272, 2018.
[18] M. Sandler, A. Howard, M. Zhu, A. Zhmoginov, and L. Chen. MobileNetV2: Inverted Residuals and Linear Bottlenecks. arxiv, 2018.
[19] H. Su, V. Jampani, D. Sun, S. Maji, E. Kalogerakis, M-H. Yang, and J. Kautz. SPLATNet: Sparse Lattice Networks for Point Cloud Processing. In Proc. of the IEEE Conf. on Computer Vision and Pattern Recognition (CVPR), 2018.
[20] M. Tatarchenko, J. Park, V. Koltun, and Q-Y. Zhou. Tangent Convolutions for Dense Prediction in 3D. In Proc. of the IEEE Conf. on Computer Vision and Pattern Recognition (CVPR), 2018.
[21] B. Wu, A. Wan, X. Yue, and K. Keutzer. SqueezeSeg: Convolutional Neural Nets with Recurrent CRF for Real-Time Road-Object Segmentation from 3D LiDAR Point Cloud. In Proc. of the IEEE Intl. Conf. on Robotics & Automation (ICRA), 2018.
[22] B. Wu, X. Zhou, S. Zhao, X. Yue, and K. Keutzer. SqueezeSegV2: Improved Model Structure and Unsupervised Domain Adaptation for Road-Object Segmentation from a LiDAR Point Cloud. Proc. of the IEEE Intl. Conf. on Robotics & Automation (ICRA), 2019.
[23] H. Zhao, J. Shi, X. Qi, X. Wang, and J. Jia. Pyramid scene parsing network. arXiv preprint, abs/1612.01105, 2016.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/180986.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JavaWeb | 预编译SQL及PreparedStatement讲解

本专栏主要是记录学习完JavaSE后学习JavaWeb部分的一些知识点总结以及遇到的一些问题等,如果刚开始学习Java的小伙伴可以点击下方连接查看专栏 本专栏地址:🔥JDBC Java入门篇: 🔥Java基础学习篇 Java进阶学习篇&#x…

JavaSE总结

JavaSE目录初识JavaJava由来main 方法介绍Java程序的运行数据类型和变量数据类型基本数据类型引用数据类型运算符算术运算符关系运算符逻辑运算符移位运算逻辑控制方法方法的重载与重写关于递归数组二维数组类和对象成员变量成员方法对象this 关键字构造方法封装代码块内部类非…

ext文件系统

Ext文件系统 1.文件目录 1.1 文件控制块FCB 文件系统通过文件控制块(File Control Blcok)来维护文件结构,FCB包含有关文件的信息,包括所有者、权限、文件内容的位置等文件目录用于组织文件,每个目录项对应一个FCB文…

(考研湖科大教书匠计算机网络)第三章数据链路层-第三节:差错控制

专栏目录首页:【专栏必读】考研湖科大教书匠计算机网络笔记导航 文章目录一:检错编码(1)奇偶校验码(2)循环冗余检验码(CRC)二:纠错编码(海明校验码&#xff0…

Opencv调参神器——trackBar控件

Opencv调参神器——trackBar控件 调参需求介绍trackBar控件介绍trackBar控件使用函数案例一:trackBar控件调整图片颜色案例二:trackBar控件调整Canny算子参数案例三:trackBar控件调整图像融合参数trackBar控件总结调参需求介绍 想要学好计算机视觉,有一个库必不可少,那就…

ARM Makefile 基础

一、Makefile 的作用和意义 (1) 工程项目中 c 文件太多管理不方便,因此用 Makefile 来做项目管理,方便编译链接过程。 (2) uboot 和 linux kernel本质上都是 C 语言的项目,都由很多个文件组成,因此都需要通过 Makefile 来管理。…

nodejs小区物业管理系统vue前端

目 录 1 概述 1 1.1课题背景及意义 1 1.2 国内外研究现状 1 1.3 本课题主要工作 2 2 系统开发环境 3 前端技术:nodejsvueelementui 前端:HTML5,CSS3、JavaScript、VUE 1、 node_modules文件夹(有npn install产生) 这文件夹就是…

STM32-Modbus-RTU-01-05-15功能码补充-波特率在线修改-断电数据保护

文章目录一、本文主要内容二、使用modbus通信协议在线修改STM32波特率(一)STM32标准库在线修改串口波特率(二)STM32HAL库-485-modbus-rtu通信在线修改串口波特率1、STM32F103ZET6芯片(1)HAL库下参考标准库形式修改波特率(2)直接修…

SNARK+深度神经网络

1. 引言 SNARK深度神经网络,相关开源实现有: 1)Ezkl(Rust):借助Halo2证明系统,实现了50层的MobileNetV2的执行证明。具体见Daniel Kang等人2022年论文Scaling up Trustless DNN Inference with…

4种I/O模型简介

目录 1、同步阻塞IO(BIO) 2、同步非阻塞IO(NIO) 3、多路复用IO 3.1、select(轮询) 3.2、poll(轮询) 3.3、epoll(事件驱动) 3.4、select、poll、epoll总结 4、异步IO模型(AIO) 网络IO涉及的两个对象:用户线程 系统内核。 当一个read发生时,会经…

Kotlin中嵌套类、数据类、枚举类和密封类的详解

博主前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住也分享一下给大家 👉点击跳转到教程 一、嵌套类 如果一个类只对另一个类有用,那么将其嵌入到该类中并使这两个类保持在一起是合乎逻辑的&#xf…

【Deepstream学习】TX1 跑demo

大家好,我是虎哥,使用NVIDIA Jeston TX1 也有很长一段时间了,由于这是基本停产的一个模块,其实自己也担心有很多官方的demo无法适配跑起来了,所以花了点时间,进一步研究发挥其GPU性能,使用各种硬…

STM8S207时钟管理库函数

STM8S207时钟树 //STM8S207时钟管理库函数 //CLK_DeInit();//将相关的时钟寄存器恢复到默认值 //CLK_HSECmd(ENABLE);//启用外部高速振荡器HSE //CLK_HSECmd(DISABLE);//关闭外部高速振荡器HSE //CLK_HSICmd(ENABLE);//启用内部高速振荡器HSI //CLK_HSICmd(DISABLE)//关闭内部高…

Spring Cloud Sentinel(限流、熔断、降级)、SpringBoot整合Sentinel、Sentinel的使用-60

一:Sentinel简介 Sentinel就是分布式系统的流量防卫兵 随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。 1.1 官方文档 官方文档&#…

哪里可以找到电子版的大学课本?

第一个:中国高校课件下载网站网址:http://download.cucdc.com/这是一个可以下载各个大学课本的网站,基本上所有的大学课本都能在这里找到PDF版本。可以按学校学科搜。 第二个:淘链客网址:https://www.toplinks.cc/s/PD…

MySQL_存储引擎

存储引擎 MySQL体系结构 连接层 最上层是一些客户端和链接服务,主要完成一些类似于连接处理、授权认证、及相关的安全方案。服务器也会为安全接入的每个客户端验证它所具有的操作权限。 服务层 第二层架构主要完成大多数的核心服务功能,如SQL接口&…

读书:《如何想到又做到》

全书最有用的内容是下面这张图:持久改变的SCIENCE模型。 作者为了方便读者记忆,找了7个单词,首字母拼在一起就是SCIENCE,对应着7种武器: S 阶梯(Stepladders):小而又小的迭代 C 社群…

高性能零售IT系统的建设09-Spring Boot2.4.2+Spring Cloud+Nacos+Feign+Hystrix的生产级应用实例

开篇 通过前面8篇我们已经感受到了我接手时这个项目有多“烂”,当然喽如果只是一味的承认它的烂这不是积极乐观主义。 我在接触管理早期听过一次四大厂的报告,报告中说到:从来没有屎一样的团队只有屎一样的“带队”。 这也符合我们一直接受的…

SpringMVC @RequestHeader @CookieValue 处理获取请求参数的乱码问题

SpringMVC RequestHeader CookieValue 处理获取请求参数的乱码问题RequestHeaderCookieValue什么是cookie通过POJO获取请求参数通过CharacterEncodingFilter处理获取请求参数的乱码问题get请求的乱码post请求乱码处理获取请求参数的乱码问题)RequestHeader 1.RequestHeader是将…

实时计算业务介绍实时日志分析

4.1 实时计算业务介绍 学习目标 目标 了解实时计算的业务需求知道实时计算的作用应用 无 4.1.1 实时计算业务需求 实时(在线)计算: 解决用户冷启动问题实时计算能够根据用户的点击实时反馈,快速跟踪用户的喜好 4.1.2 实时计算…