专栏首页深度学习和计算机视觉【论文解读】深度学习+深度激光=移动车辆的状太估计

【论文解读】深度学习+深度激光=移动车辆的状太估计

概述:

• 数据集:distilled Kitti Lidar-Motion dataset

• 网络输入:一对相邻的雷达扫描点云,用2D的range和reflectivity表示

• 网络输出:行驶车辆的运动矢量

• 网络结构:1)Lidar-flow net;2)lidar-detector net

• 解决问题:给定连续两次从行驶的车辆中获取的激光雷达扫描,检测场景中其他车辆相对于“地面”固定参考系有实际运动的运动车辆。

论文地址:https://arxiv.org/abs/1808.09526

I、简介

捕获和理解场景的动态特性是多种自动驾驶(AD)应用程序的重要组成部分,例如避障,地图定位和优化或车辆跟踪。为了在不受约束的,瞬息万变的城市环境中高效安全地导航,自动驾驶汽车需要有关场景中物体的语义和运动特性的精确信息。应特别注意运动元素,例如车辆/行人,主要是如果其运动路径希望与其他物体或观察者的方向交叉。

估计环境中移动物体的动力学需要先进的采集设备和解释算法。在自动驾驶汽车技术中,环境信息是通过包括摄像机,雷达和/或激光雷达在内的多个传感器捕获的。在提取这些数据时,随着近来深度学习技术的建立,对相机的RGB图像的研究已大大推进。但是,在AD环境中,在照明的突然变化或恶劣的天气条件下,例如在日落,夜间或大雨天驾驶,相机可能会遭受明显的性能下降。相反,基于雷达和激光雷达的系统性能在这些情况下非常可靠。尽管雷达能够提供场景的运动线索,但是它们的非结构化信息以及缺乏对几何形状的理解使其很难用于其他目的。相反,激光雷达传感器会提供3D环境的非常丰富的几何信息,通常以结构良好的方式定义。

在本文中,我们提出了一种仅使用激光雷达信息来检测动态车辆在地面上的运动矢量的新颖方法。从移动平台(自我车辆)可靠地检测独立的动态物体是一项艰巨的任务。需要将安装了激光雷达传感器的车辆的固有运动与场景中其他物体的实际运动区分开来,这带来了额外的困难。

我们通过设计新颖的深度学习框架来解决这一具有挑战性的问题。给定连续两次从行驶中的车辆获取的激光雷达扫描,我们的方法能够检测场景中其他车辆相对于“地面”固定参考系有实际运动的运动(见图1)。

在推论过程中,我们的网络仅接收激光雷达数据,尽管在训练中我们考虑了一系列借口任务来帮助解决可能利用图像信息的问题。具体来说,我们介绍了一种新颖的激光雷达流特征,该特征是通过组合激光雷达和基于标准图像的光流而学习的。此外,我们还结合了来自另一项经过单激光雷达扫描训练的网络的语义流动性信息。除了这些先验知识外,我们还通过提供里程表测量值作为输入来介绍有关自我运动的知识。图1显示了我们开发的方法的草图,其中展示了两个不同的场景以及从使用的借口任务获得的相应先验。最终输出显示每个场景的预测运动矢量,并根据地面上表示的颜色模式对每个车辆进行本地编码。

对上述前置任务的几种组合进行的消融研究表明,激光雷达流特征的使用为实现仅从激光雷达数据了解动态对象运动的总体目标方面带来了非常有希望的结果。

II、现有工作

近年来,对经典感知问题的研究得到了极大的推动,这主要归功于深度学习技术的引入。使用卷积神经网络(CNN)和变体的算法最近在计算机视觉任务(例如图像分类,对象检测,语义分割或光流预测)中已经匹配甚至超越了现有技术水平[4],[5],[6],[7]。

但是,区分物体是否与自我运动脱节运动的关键问题仍然充满挑战。通过RGB图像分析场景的运动也是CNN最近解决的一个难题,最近有几篇文章与我们的方法分享了一些想法。在[8]中,作者在合成数据上训练了CNN网络,该合成数据以两个连续图像之间的光流作为输入,能够掩盖独立移动的物体。在本文中,我们进一步走了一步,不仅将运动物体与静态物体区分开,而且还在地平面参考上估计了它们的运动矢量。其他方法试图通过反转问题来消除自我和真实物体的运动。例如,[9]证明,训练有素的CNN可以预测自我车辆的里程,与标准的类标记训练的网络在诸如场景和物体识别等进一步训练的任务上相比具有优势。这一事实表明,有可能利用自我测距学知识来指导CNN消除我们的运动与自由场景运动之间的歧义,这在第三节B节中我们做了。

但是,上述工作并不专注于AD应用程序。在此设置下,常见方法通过最小化几何接地的能量函数来分割对象运动。[10]假设室外场景可以分解为少量独立的刚性运动,并通过优化离散连续CRF联合估计它们。[11]通过对2D光流矢量的消失点分析来估计场景中的3D动态点。然后,将三项能量函数最小化,以便将场景分割为不同的运动。

解决汽车运动细分问题的基于激光雷达的方法已经被基于运动或基于模型的聚类方法所主导。前者[12]通过RANSAC或类似方法估计点运动特征,然后将其聚类以帮助在对象级别进行推理。基于模型的方法,例如[13],最初聚类车辆点,然后通过匹配它们通过框架检索那些正在移动。

两种方法思路不同,一个是先估计点的运动,然后聚类这些点;另一种思路是先聚类车辆点,然后再估计运动。

尽管还没有很广泛地扩展,但如今,深度学习技术也已应用于基于激光雷达信息的车辆检测任务。[14]直接在点云欧氏空间上应用3D卷积来检测并获得车辆的边界框。由于这些方法对计算的要求很高,因此一些作者试图通过稀疏点云上的卷积来减轻这种计算负担[15]。但是,主要的态度仍然是将3D点云投影到一个具有特色的2D表示中,因此能够应用众所周知的2D卷积技术[16],[13]。在这一系列投影点云中,其他工作建议融合具有激光雷达前视和鸟瞰功能的RGB图像[17]。

但是,这些方法都无法以端到端的方式估计车辆的运动,而无需进一步对我们提出的输出进行后处理。据我们所知,更紧密的工作是[18],它使用RigidFlow [19]将每个点分类为不可移动,可移动和动态。在这项工作中,我们更进一步,不仅对场景的动态进行分类,而且还预测了运动车辆的运动矢量。

我们的方法还从渐进式神经网络[20]和传递学习概念[21]中汲取了灵感,因为我们旨在通过解决一系列中间的“借口”任务来帮助网络解决复杂的问题。例如,在视觉光流的问题中,[22]和[1]使用语义分割借口任务。同样,在训练期间,我们还将在点云信息上向网络提供有关分段车辆的先验知识。

III、运动估计

本节介绍深度学习框架,以仅根据激光雷达信息,独立于自我运动,估计场景中车辆的实际运动。该方法依赖于全卷积网络,该网络从场景的两个不同但临时的近距离帧接受特征激光雷达信息作为输入,并给出每个点的地面运动矢量的密集估计值,并假定它(每个点)属于一个动态车辆。

3.1节介绍了一个由Kitti跟踪基准构建的新颖数据集,该数据及是专门为我们监督的问题中用作真实性而创建的。由于激光雷达信息本身不足以解决已提出的复杂任务。

3.2节中,考虑利用前置任务将有关场景的语义和动态的先验知识引入第3.3节中定义的主要CNN。

3.1 雷达运动数据集

为了以有监督的方式训练CNN,我们需要定义输入信息和所需输出的基本信息,从中比较学习的估计。

如图2a所示,我们使用的更简单的输入数据由两个不同的投影激光雷达扫描(其范围和所测得的反射率)组成。对于每次扫描,我们将点云的对应点从其3D欧式坐标转换为球形坐标,然后将其投影到与仰角和方位角有关的2D域中。每行对应于传感器垂直激光器之一(64),并且每列对应于水平视场中的激光台阶(448)。定义此视野的地方是Kitti数据集为其提供边界框注释的区域,从自我角度来看,该区域大约覆盖[-40.5、40.5]度范围。生成的投影的每对(u,v)编码传感器测得的范围和反射率。在[13]中可以找到对该过程的更详细描述。

为了构建所需的地面真相输出,我们使用了Kitti跟踪基准数据集[2]的带注释的3D边界框,该框提供了运动样本的多样性。由于当今车辆仍在地面上运动,我们将其运动表示为Z / X平面上的二维向量,即Z为我们的前进自我方向,X为其横向方向。对于每个时间t,我们将自我车辆的位置定义为Ot∈R 2,即观察者。考虑到场景中每时每刻都有X条车辆轨迹,我们定义了从视线参考框架(如OtCt,x∈R2)中看到的任何这些车辆质心,其中x = 1 ... X。为了更清楚地表示,我们将展示一个只有一个自由移动的车辆的用例,因此省略了x索引。当观察者和其他车辆都在行驶时,每次从不同位置Ot + n看到自由车辆质心Ot + nCt + n。因此,为了获得在t→t + n间隔内物体的实际位移,我们需要将此最后的测量值转换为我们先前的参考帧Ot,以获得OtCt + n。让我们将自己的帧位移表示为OtT t + nt。这样,车辆质心的变换位置就是:

在分析的间隔内,自由移动车辆的地面运动矢量可以计算为OtCt + n-OtCt。

请注意,这些真值需要使用从帧t和t + n进行的激光雷达扫描以时间滑动窗口的方式进行计算,因此,根据时间步长n将获得不同的结果。该时间步长越大,运动矢量将越长,但是将很难获得车辆之间的匹配。

从i)边界框的Kitti手动注释,ii)里程表测量中的噪声和iii)转换数值分辨率中引入一些漂移作为误差的累积。这使得一些静态车辆被标记为轻微移动。因此,我们仅根据时间间隔n将移动车辆设置为动态,并将位移大于阈值的车辆过滤掉,从而直接与考虑移动的最小速度直接相关。我们通过实验将该阈值设置为10Km / h。

最后,我们根据通常用于表示光流的颜色代码对每个车辆地面真实运动矢量进行相应的角度和大小编码。图2b显示了所描述数据集的帧样本,其中场景的相应RGB图像也仅出于比较目的而显示。

3.2 前置准备

如前所述,我们将网络学习引向正确的解决方案,引入通过解决其他借口任务而获得的先验知识。这个想法从渐进式网络[20]和转移学习作品[9]中获得相似之处,两者都有助于解决日益复杂的任务。通过这种方式,我们引入了三种附加信息:

• a)在引导我们的网络寻找两个激光雷达输入之间的匹配之前的激光光学运动。

• b)语义概念有助于专注于现场车辆;

• c)自我运动信息基于里程计测量给出的位移。

通过陈述一个新颖的深流特征图可以给出匹配输入的先验运动,如图3a所示。我们开发了一个新的深度框架,该框架将来自两个分离帧的激光雷达扫描的2D投影作为输入,并输出基于学习的激光雷达的光流。由于激光雷达域的光流真相不可用,因此我们为此任务创建了自己的。为此,我们使用了基于RGB图像的最新光流量估算器[7],并获得了完整Kitti跟踪数据集的流量预测。我们进一步创建了符合制造商规格的给定激光雷达传感器的几何模型,并将其投影到预测的流量图上,从而获得了点云中每个点的对应激光雷达流量。最后,我们提出了一个密集的深度回归问题,该问题使用新的激光雷达流特征作为地面真相,使用类似于Flownet的卷积神经网络来学习类似的2D运动模式。

通过解决像[13]中提出的每个像素的分类问题,引入了关于场景的机动性的语义先验。为此,训练一个全卷积网络以获取激光雷达扫描帧,并将每个对应点分类为属于车辆或背景。这些预测的例子如图3b所示。

最后,我们介绍了有关该间隔中自我运动的更多信息。为此,我们创建一个3通道矩阵,其大小与2D激光雷达特征图相同,其中每个“像素”三元组都采用正向(Z)和横向(X)自我位移以及Y轴旋转值在时间间隔t→t + n中。

3.3 深度雷达运动网络

作为用于估计每辆车在地面上的刚性运动的网络体系结构,我们考虑了图4中详细描述的完全卷积网络。它从FlowNet [23]中得到启发,FlowNet旨在解决类似的回归问题。但是,我们进行了一些更改,以进一步利用激光雷达信息的几何性质。

我们首先通过在末尾引入新的反卷积块以及相应的批处理归一化(BN)和非线性位置(Relu)来变换网络扩展部分。标准FlowNet输出的大小是输入的四分之一,并在后续步骤中进行双线性插值。这不适用于我们的方法,因为我们所需的输出已经非常稀疏,仅包含属于移动车辆的激光雷达点的几组。因此,中分辨率输出可能无法说明仅通过少量点检测到的远距离车辆。此外,我们消除了FlowNet内部的最后卷积和第一个反卷积块,对于这些块,生成的特征图在初始输入大小上达到1/64的分辨率。请注意,我们的激光雷达输入数据本身具有较低的分辨率(64×448),并且执行这种激进的分辨率降低已显示会导致目标丢失。另一方面,我们遵循其他FlowNet原始属性。因此,我们的体系结构在来自网络的可伸缩部分和可扩展部分的大小相等的特征图之间执行级联,从而生成更丰富的表示并允许更好的梯度流。此外,我们还强加了在不同分辨率下获得的中间损耗优化点,这些点被上采样并连接到直接的上层特征图上,从早期步骤指导最终解决方案,并允许反向传播更强健的梯度。

IV、实验

A、测试数据

为了从主要框架和借口任务中训练提出的深度神经网络,我们将n设置为1,以便测量两个连续帧之间的车辆运动。所有这些网络都从零开始训练,使用He’s方法[24]对其进行初始化,并使用带有标准参数β1=0.9和β2=0.999的Adam优化。

我们要使用移动车辆获取的点云数据,所以要从原数据集Kitti Tracking benchmark剔除静态车辆获取的点云数据。

提取后的数据集由两部分组成:4953个移动的框架,以及3047个包含静态车辆或不包含任何车辆的框架。

为了平衡批次采样并避免有误差的学习,作者为每个批次取8帧白喊运动的帧,另外2帧不包含运动。

验证数据集由472个带有运动的样本和354个没有运动的样本组成。由于训练样本代表了驾驶场景,因此执行数据增强,仅提供50%的机会进行水平翻转,以保留强大的几何激光雷达特性。

在最初的150,000次迭代中,学习率固定为10-3,此后每60,000次迭代将学习率减半。作为损失,我们使用地面真相与每个像素的估计运动矢量之间的欧式距离。我们将所有中间计算得出的损失设置为对学习目的均等。

B、收入数据获取信息

根据在我们的主网络中引入的数据和借口信息,已经训练了不同的模型;接下来,我们提供简要说明。

我们的基本方法采用大小为64×448×4的张量作为输入,该张量堆叠来自时刻t和t +1的2D激光雷达投影帧。每个投影框都包含范围值和反射率测量值,如第III-A节开头所概述并在图2a中所示。

为了获得运动先验,通过我们特定的激光雷达流网络处理激光雷达数据。作为输出,它会生成两个通道的流图,其中每对(u,v)代表虚拟相机相似平面上的RGB等效运动矢量,如图3a所示。当在主网络之前合并此运动时,将激光雷达流图与基本激光雷达输入连接起来,以构建一个包含6个深度通道的新输入张量。

为了在训练中增加语义先验知识,我们通过学习的车辆检测网络分别处理了两个激光雷达输入帧[13]。该信息进一步与原始激光雷达输入以及激光雷达流量图连接在一起,从而产生深度为8个通道的张量。

最后,为了同时引入里程计信息,将三个以上的通道连接到堆叠的输入,从而得出深度为11的张量。

C、结果

表一显示了我们方法的定量分析。我们通过设置两个不同的基线(error @ zero和error @ mean)来证明我们框架的正确性能。第一个假设零回归,因此将所有预测设置为零,就像没有检测器一样。第二个基线衡量的是平均运动输出将获得的终点误差。

请注意,在我们的数据集中,每帧上只有几个激光雷达点落入移动的车辆中。因此,在整个图像上测量预测误差不会给我们关于预测准确性的概念,因为假阴性(即动态的,但未为其分配运动矢量而被视为静态)和假阳性(即,假的)产生的误差静态但被视为动态分配的运动矢量)会在整个图像上被稀释。为了解决这个问题,我们还仅在实际动态点上测量端点误差。两种测量均在表I中表示为完整和动态。所有给定值仅在测试时通过验证集计算得出,在学习阶段,该验证集从未用于训练主网络或借口任务。回想一下,在测试过程中,仅使用激光雷达数据评估最终网络。

我们分别使用数据,激光雷达流量,车辆分割和里程表对模型分别标记了输入数据的D,F,S和O的组合进行标记。当组合不同的输入时,我们用名称之间的&符号表示它;例如已经使用激光雷达数据以及先验的激光雷达流量和车辆分割作为输入,对名为D&F&S的模型进行了训练。

V、结论

在本文中,我们已经解决了一个问题,即从正在行驶的车辆获取的激光雷达数据中了解正在行驶的车辆的动力学特性。将固有运动与其他车辆的运动区分开来构成一个非常具有挑战性的问题,我们已经使用深度学习解决了这一问题。该论文的主要贡献在于表明,在测试过程中,提议的深度神经网络仅使用激光雷达扫描,而在训练过程中可以利用其他先验图像信息来提高其性能。为此,我们引入了一系列借口任务,其中包括有关流动性的语义以及根据图像和激光雷达数据构建的光流纹理。我们报告的结果非常有前途,并证明仅在训练期间利用图像信息确实有助于基于激光雷达的深度架构。在未来的工作中,我们计划通过在训练过程中引入其他基于图像的先验知识来进一步利用这一事实,例如场景中所有对象类别的语义信息以及从图像中获得的密集深度。

本文分享自微信公众号 - 小白学视觉(NoobCV),作者:张林川

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-06-10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Camera-Lidar投影:2D-3D导航

    激光雷达和照相机是用于感知和理解场景的两个基本传感器。他们建立周边环境模型、提供检测和确定其他对象位置的方法,从而为机器人提供了安全导航所需的丰富语义信息。许多...

    小白学视觉
  • 有必要将所有机器学习算法都实现一遍吗?

    https://www.zhihu.com/question/36768514/answer/376510114

    小白学视觉
  • 视觉里程计的轨迹评估的工具:evo

    evo是一款用于视觉里程计和slam问题的轨迹评估工具。核心功能是能够绘制相机的轨迹,或评估估计轨迹与真值的误差。支持多种数据集的轨迹格式(TUM、KITTI、...

    小白学视觉
  • 腾讯云网络产品全家桶简介

    本文提供视频讲解,详细见地址:https://www.bilibili.com/video/BV1Lt4y1978s

    研究僧
  • linux c程序中获取shell脚本输出

      Unix界有一句名言:“一行shell脚本胜过万行C程序”,虽然这句话有些夸张,但不可否认的是,借助脚本确实能够极大的简化一些编程工作。比如实现一个ping...

    阳光岛主
  • Flink的sink实战之一:初探

    下图来自Flink官方,红框中就是sink,可见实时数据从Source处开始,在Transformation阶段完成业务逻辑后在sink结束,因此sink可以用...

    程序员欣宸
  • 分布式爬虫原理之Scrapy分布式实现

    崔庆才
  • 【漏洞预警】WebSphere远程代码执行漏洞(CVE-2019-4279)处置手册

    5月16日,IBM官方针对WebSphere Application Server Network Deployment产品发布安全通告,通告指出该产品中存在远...

    绿盟科技安全情报
  • MADlib——基于SQL的数据挖掘解决方案(21)——分类之KNN

    数据挖掘中分类的目的是学会一个分类函数或分类模型,该模型能把数据库中的数据项映射到给定类别中的某一个。分类可描述如下:输入数据,或称训练集(Tr...

    用户1148526
  • 忽略Xcode8.0中的注释警告⚠️

    BY

扫码关注云+社区

领取腾讯云代金券