3D-LaneNet:端到端三维多车道检测ICCV2019

3D-LaneNet: End-to-End 3D Multiple Lane Detection

论文链接:

http://openaccess.thecvf.com/content_ICCV_2019/papers/Garnett_3D-LaneNet_End-to-End_3D_Multiple_Lane_Detection_ICCV_2019_paper.pdf

摘要

本文介绍了一个网络,它可以直接从单个图像预测道路场景中车道的三维布局。这项工作标志着首次尝试在不假设已知恒定车道宽度或不依赖预映射环境的情况下,通过车载传感来完成这项任务。本文的网络架构,3D LaneNet,应用了两个新概念:网内反向透视映射(IPM)和基于锚定的车道表示。网络内部IPM投影有助于在常规图像视图和俯视图中显示双重表示信息。锚percolumn输出表示使本文的端到端方法能够取代常见的启发式方法,例如聚类和异常值拒绝,将车道估计作为对象检测问题。此外,本文的方法显式地处理复杂的情况,如车道合并和拆分。结果显示在两个新的三维车道数据集,一个合成和一个真实的。为了与现有的方法进行比较,本文只在图像上使用简单的车道检测基准对本文的方法进行了测试,取得了与现有方法相媲美的性能。

1.       Introduction

三维车道检测是实现自主驾驶的关键技术,它包括对可行驶车道相对于宿主车辆的三维位置的精确估计。存在两种互补的技术解决方案:加载离线生成的预映射车道[33]和基于感知的实时车道检测[4]。在给定精确的主机定位(在地图坐标系中)的情况下,离线解决方案在几何上是精确的,但部署和维护起来很复杂。

最常见的基于感知的解决方案是使用单目摄像机作为解决任务的主要传感器。现有的基于摄像机的方法在图像域中检测车道,然后通过假设地面起伏将其投影到三维世界中[4],这不仅会导致高程不准确,而且会导致违反假设时车道曲率不准确。受卷积神经网络(CNNs)最近在单目深度估计方面的成功启发[20],本文提出的解决方案3D LaneNet是一个执行3D车道检测的深CNN。该网络经过端到端的训练,在每个纵向路段输出,在摄像机坐标系下,车道通过路段及其三维曲线的可信度。本文的方法如图1所示。

本文的直接单发方法避免了现有方法中使用的后处理,如聚类和异常值拒绝。该网络的主干是基于一种新的双路径体系结构,该体系结构使用多个特征映射到虚拟鸟瞰图的网络内投影。这种双重表示增强了网络在道路场景中推断3D的能力,并且可能用于需要这种能力的其他任务(例如3D汽车检测)。输出由新的基于列的锚定编码表示,该编码使网络在水平方向上保持不变,并启用端到端的方法。

与SSD[21]和YOLO[29]等基于锚的单点目标检测方法类似,每个输出都与锚关联。该方法有效地将问题转化为一个目标检测问题,每个车道实体都是一个目标,其三维曲线模型的估计与目标的边界盒一样。本文在三个不同的数据集上验证了本文的方法。用于开发该方法的主要数据集是一个新的计算机图形数据集synthetic-3D-lanes1,它提供了对每个车道元素的精确3D位置的完全访问。虽然存在多个驾驶模拟器[8,30],但它们并不专注于三维车道检测任务,并且在相关场景属性(例如车道曲率)的可变性方面受到限制。本文在这一领域的主要成就是能够随机生成具有高度可变三维形状和车道拓扑结构的路段。因此,本文将其作为评估和消融研究的主要数据集。

为了验证本文的方法对真实世界的图像,本文收集了一个额外的数据集,三维车道,从一个车载前摄像头。三维车道标注是在半手动标注方案中使用激光雷达扫描仪完成的。最后,为了与仅在图像域中工作的最新车道检测方法进行比较,本文将本文的方法应用于此任务,并演示了端到端的image only车道检测。这个仅限图像的版本在tuSimple数据集[1]上进行了测试,在没有通用后处理技术的情况下,获得了与现有技术相竞争的结果。

总之,本文的主要贡献是:

•引入一个新问题:无几何假设的单帧三维车道检测,以及新的评估指标

•一种新的双通道架构,部署了内部网络功能图IPM预测

•一种新的基于锚的车道输出表示法,可实现直接的端到端训练网络,用于3D和基于图像的车道检测。

•生成车道拓扑(即车道数、合并、分割)和三维形状变化的随机合成示例的方法。

2.       Related Work

传统的车道检测系统(如[10])将低层操作(如方向滤波器)与高层启发式(如Hough变换)结合起来,以检测图像中的连续车道。

公共管道包括4个阶段:

局部车道特征提取(1),

车道模型设置(2),

图像与世界的对应(3)

以及时间聚集(4)。

Bar Hillel等人[4] 提供这个模块化分解以及对传统系统的详细概述。近年来,局部特征提取阶段是通过对图像应用一个或多个cnn来完成的,但总体流程仍然非常相似,后期的后处理阶段仍然存在。最初,CNNs通过增强边缘映射(Kim和Lee[15])或对候选块进行分类(He等,al。[12] )中。

Huval等人[13] 使用目标检测CNN检测局部车道线段。Vpnet(Lee等人[18] ),遵循类似的概念,并额外检测其他道路标记和消失点,以改进车道检测。Kim和Park[16]将局部特征提取阶段重新表述为一个语义分割问题,用两类对应的左右车道定界符,扩展网络的覆盖范围进行聚类。然而,世界坐标车道模型仍然必须适用于每个集群,并且不处理多个车道。

Neven等人[25]尝试端到端多车道检测,通过训练CNN不仅创建二元车道像素掩码,而且还创建用于聚类车道点的特征嵌入。

Ghafoorian等人[9] 提出在车道检测的背景下,应用生成性对抗网络使语义分割网络的输出更加真实。

几项工作(如Meyer等人[23],奥利维拉等人[26])是基于类似的方法构建的,其中主机和可能相邻的车道是语义类(车道内部而不是车道分隔符)。与所有提出的方法不同,3D LaneNet通过在一次前馈过程中直接从图像提供3D世界坐标中的全多车道表示,统一了公共管道的前三个阶段。

此外,以前的方法使用地面假设进行图像与世界的对应,而本文的方法完全估计参数化的三维曲线定义车道。

只有少数几种方法可以直接解决三维车道估计问题,如[24],使用立体声,以及[34,6],它们遵循多视图几何方法,并假定已知的恒定道路/车道宽度来解决深度模糊问题。相反,本文使用数据驱动的方法,不做几何假设。

反向透视映射(IPM)从相机视图生成场景的虚拟俯视图(有时称为鸟瞰图),如图1中的示例所示。它是在障碍物检测的背景下由Mallot等人引入的。[22]和第一个用于Pomerleau的车道检测[28]。自那时起,IPM被广泛用于车道检测(如[5,3]),因为在这个视图中车道通常是平行的,并且它们的曲率可以用低阶多项式精确地拟合。              此外,删除透视效果会导致车道标记看起来相似(模糊效果除外),而不管它们与摄影机的距离如何。最近他等。[12] 介绍了一种“双视图CNN”,它由两个独立的子网络组成,每个子网络产生一个描述符(每个视图一个),然后将其连接并应用于候选图像位置。

Li等人[19] 使用CNN直接在顶视图图像上检测车道标线以及几何属性,如局部位置和方向,这将保持对这些属性的不变性。此外,他们还部署了第二个递归网络,该网络通过图像来检测一致的车道。

Neven等人[25]使用子网络(“H-net”)在每张图像中预测的地平线,将车道投影到俯视图,以改进曲线拟合。与之前的工作相比,本文在一个协同的单一网络方法中利用了这两种观点。更一般地,本文提出第一种方法,即使用端到端训练的CNN直接检测多条车道,并估计每条车道的3D曲率。本文还表明,本文的方法既适用于中心线,也适用于分隔符,能够处理拆分和合并,而无需任何进一步的后处理。

3.       Method

我们的方法从安装在车辆上的前向摄像头获取一幅图像作为输入,如图3所示。我们假设已知的摄像机内参数k(例如焦距、投影中心)。我们还假设摄像机安装在相对于局部地平面的零度滚动位置。我们不假设已知的摄像机高度和俯仰,因为这些可能会因车辆动力学而改变。

3.1.  Top-view projection

我们简要回顾了逆透视图(IPM)。简而言之,IPM是一个单应映射,它将一个前视图图像扭曲为一个虚拟的顶视图图像,如图1的左上角图像所示。这相当于应用相机旋转单应(视图向下旋转)和各向异性缩放[11]。在我们的实现中,我们希望确保顶视图图像中的每个像素对应于道路上的预定位置,而不依赖于相机的内部特性及其相对于道路的姿势。参见图3了解以下定义的说明。

3.2.  Network structure

3D LaneNet的概述如图4所示。信息在两个平行的流或路径中处理:图像视图路径和顶视图路径。我们称之为双通道主干。图像视路对图像信息进行处理和保留,顶视图视路为特征提供平移不变性,并用于预测三维车道检测输出。图像视图路径的架构基于VGG16[31],而顶视图路径的结构类似。信息通过四个投影变换层流向顶视图路径,如下所示。

3.3.  The projective transformation layer

我们架构中的一个主要构建块是图4中用蓝色标记的投影变换层。这一层是空间变压器模块的具体实现,略有变化[14]。它执行与图像平面在空间上对应的输入特征映射的可微采样,以输出与场景的虚拟顶视图在空间上对应的特征映射,同时保持信道的#。实现差分采样生成的投影特征地图(第一组除外)连接到俯视路径的下游特征地图。

随后的神经元,在连接的特征映射上操作,结合以下两个用于车道检测的期望特性。首先,俯视平面上的平移不变性。这很有价值,因为在俯视图中,车道在整个空间具有相似的外观和几何结构。第二,在图像和顶视图中保存双重信息上下文。附加的图像视图上下文对俯视图中不存在的信息进行编码,如栅栏、天际线和树木,这些信息对于解译场景的三维结构至关重要。特别地,在较远的范围内,图像视图上下文的视觉信息更丰富,并且与俯视图相比表示更大的实际区域。

3.4.  Training and ground truth association

无论是在训练时间还是在评估中,如果整个车道未在有效的顶视图图像边界内穿过Yref,则忽略它们;如果被地形遮挡(即超过山顶),则忽略车道点。网络的总损耗函数如等式1所示。它结合了三个等权损失项:车道检测(交叉熵)、车道几何和道路平面估计(L1损失)。

4.       Experiments

我们的实验工作如下。我们首先介绍了生成一个新的合成数据集synthetic-3D-lanes的方法,该方法用于得出本研究的大部分结论。接下来,我们将介绍为验证真实图像而生成的三维车道数据集。使用新提出的三维车道检测评估方法,我们随后在两个数据集上给出结果,包括仔细检查每个概念在我们整体方法中的贡献的消融研究。最后,我们将3D LaneNet的纯图像版本与tuSimple基准上现有的最新方法进行了比较[1]。

4.1.  Synthetic 3D lane dataset

评估指标。

提出了一种将检测精度与几何估计精度分离的三维车道检测方法。检测精度是通过精确召回曲线的标准平均精度(AP)来计算的。我们首先计算GT和检测车道之间的曲线到曲线的距离,作为点欧氏距离的加权和。我们在一组预先确定的y值上沿曲线测量距离,在0-80米范围内每80厘米测量一次。对于更远的点,重量会降低。然后,我们通过在降低相似度的情况下选择对来执行一对一(曲线)匹配。如果加权距离低于某个相当允许的阈值(1.5米),则认为匹配是正确的。通过对车道置信阈值的迭代,我们生成了精确召回曲线。对于匹配检测,我们通过测量用于测量曲线到曲线距离的相同点上的误差分布(逐点欧氏距离)来评估几何估计精度。由于误差的大小不同,我们进一步将整个数据集划分为近距离(0-30m)和远距离(30-80m)的车道点。然后我们计算每个范围的1σ误差,作为68个误差百分位,2σ误差作为95个百分位。使用此方法分别评估车道中心线和分隔符检测。与训练阶段一样,在评估中忽略无关的车道点。

实施细节。

3D LaneNet和本节介绍的所有变体都是使用相同的协议初始化和训练的。图像视图路径由在imagenet上训练的VGG16初始化[7]。我们使用Adam优化[17]和初始学习率5·10-4进行训练。我们使用[32]中描述的循环学习率机制的变化,最小学习率为10-6。顶视图表示的y范围是80米,x范围是20米。IPM比例尺在x和y上是不同的:在第一个顶视图特征图中,每个像素对应于16cm的横向(x)和38.4cm的纵向(y)。最后一个俯视图特征地图是×8小,因为每个柱有一个锚,锚之间的距离是16×8=128cm。我们将K(=6)垂直参考点设置为y={5,20,40,60,80100},Yref=20m。

合成三维车道数据集的结果。

测试集上的典型网络结果如图2所示,标记了地面真实性。表1的第一行显示了用于中心线检测的3D LaneNet的定量结果。合成数据集的一个有效关注点是,它的可变性太有限,学习的网络会记住整个示例空间,而不是学习概括。事实并非如此,一个积极的迹象是,测试AP(0.952)远低于列车AP(0.966),几何评估措施也是如此。所有在烧蚀试验中训练的网络都是从VGG16初始化的,就像3DLaneNet一样,并且使用相同的训练参数和次数进行训练。我们首先通过将双通道体系结构与替代体系结构进行比较来检验其作用。仅图像视图版本将图像视图路径直接连接到车道检测头,车道检测头以Croad格式输出表示,与3D LaneNet完全相同。在这种情况下,锚定位置XA由上一个特征映射中的列确定:对于每一列,我们在预先确定的图像y坐标处选取一个像素,并将其投影到俯视图,以确定与列对应的锚定。

仅顶视图版本第一次将图像本身投影到顶视图,并继续与顶视图路径相同的计算。此外,我们测试了两个版本,其中包括一个有限版本的双通道。早期的IPM包括一个单一的双上下文模块(全网四个模块中的第一个)。类似地,后期IPM只包含四个模块中的最后一个双上下文模块。

表1总结的结果表明,与所有其他变体相比,全双程结构具有更好的性能。特别是,最糟糕的结果是由图像视图版本,强调了顶视图处理路径的重要性。请注意,后期IPM,包括一个修剪版本的双路径,提供了第二个最佳的准确性,但减少了计算成本,使其成为实时实现的一个很好的候选者。我们还尝试了道路投影平面的其他定义。一种方法在设置道路平面时考虑了整个场景,而不仅仅是本地道路正常情况。为了测试它,我们设计了一种地面真值生成算法,该算法将最远可见的道路点连接到本地道路位置以确定节距。这种方法,在表1中称为视界,因为它类似于视界估计方法。

4.2.  Real-world 3D lane dataset

用3D技术获取地面真实感标记数据是一项需要复杂的多传感器设置和昂贵的高清地图的工作。为此,我们引入了一个新的数据集,3D车道,使用多传感器设置创建,包括一个前视摄像机、一个Velodine HDL32激光雷达扫描仪和一个高精度IMU,所有这些都是同步和精确对齐的。这些数据是在6个车道上收集的,每个车道在不同的路段上行驶近2个小时。使用Lidar和IMU,我们生成聚合的Lidar俯视图,如[33]所示,然后与半手动注释工具一起用于生成地面真相。总共注释了85K张图像,其中1K张由一个单独的驱动器组成,用作测试集,其余的作为火车集。              激光雷达信息还用于提供每条车道的完整三维曲线。这种方法的一个缺点是,由于距离上的遮挡或分辨率有限,激光雷达看不到的车道从地面上消失了。

因此,如图2(右栏)所示,标签有点噪声。此外,数据集的可变性与合成三维车道数据集相比。因此,我们使用具有完全真实性的合成数据来开发该方法并进行消融研究,而使用真实数据集来验证该方法对真实数据和定性分析的可传递性。

4.3.  Evaluation of image-only lane detection

本实验的目的是将我们的方法与现有的仅用于图像车道检测的方法进行比较。tuSimple lane数据集[1]由3626个训练图像和2782个测试图像组成。不幸的是,今天无法访问测试图像的标签。因此,我们将原始训练集划分为我们自己的训练/验证集(90%训练和10%验证)。虽然我们知道我们的评估(在验证集上获得)和测试集上的评估可能存在偏差,但我们可以期望类似的性能,并在定性上得出相同的结论。由于此数据集不包含三维信息,因此我们训练3DLaneNet的变体,该变体检测图像域中的车道。

通过消除高程(zi t)分量,网络输出被简化为道路投影平面上的二维点,而不是三维表示。仅保留分隔符输出类型(t=d),因为数据集中标记的实体是车道分隔符。手动选择图像平面和道路投影平面之间的固定单应力HtuSimple,以便在俯视图中使直车道平行。使用HtuSimple将网络直接预测的车道转换为图像视图中的车道。由于HtuSimple是固定的,因此不使用道路投影平面预测分支。

除上述之外,该网络与合成三维车道数据集所配置的三维车道网相同。tuSimple main evaluation metric(acc)[1]是每个图像检测到的地面真实点的平均比率。在我们的验证集上使用我们的端到端方法,我们达到了0.951的精度,这与tuSimple 2017竞争获胜方法[27]所达到的精度(0.965)相竞争。考虑到我们的整个方法都是针对三维估计任务而设计的,这个结果是令人鼓舞的,也有些令人惊讶。特别是,我们的几何损失(公式1)是在俯视坐标系下计算的,在实践中,对远处车道点的权重要高得多,而在tuSimple acc metric中,所有点的贡献都相等。

5.       Conclusions

本文提出了一个新的问题,三维多车道检测,以及一个基于端到端学习的解决方案,3DLaneNet。该方法是用一个新引入的综合数据集开发的,并在实际数据上得到了验证。该方法原则上适用于除复杂城市交叉口外的所有驾驶场景。最后,本文相信双路径架构可以促进额外的道路上重要的3D估计任务,例如3D车辆检测。

3D-LaneNet:端到端三维多车道检测ICCV2019的更多相关文章

  1. 带你读AI论文丨LaneNet基于实体分割的端到端车道线检测

    摘要:LaneNet是一种端到端的车道线检测方法,包含 LanNet + H-Net 两个网络模型. 本文分享自华为云社区<[论文解读]LaneNet基于实体分割的端到端车道线检测>,作者 ...

  2. CVPR2020:端到端学习三维点云的局部多视图描述符

    CVPR2020:端到端学习三维点云的局部多视图描述符 End-to-End Learning Local Multi-View Descriptors for 3D Point Clouds 论文地 ...

  3. pytorch实现yolov3(5) 实现端到端的目标检测

    torch实现yolov3(1) torch实现yolov3(2) torch实现yolov3(3) torch实现yolov3(4) 前面4篇已经实现了network的forward,并且将netw ...

  4. ICCV2019论文点评:3D Object Detect疏密度点云三维目标检测

    ICCV2019论文点评:3D Object Detect疏密度点云三维目标检测 STD: Sparse-to-Dense 3D Object Detector for Point Cloud 论文链 ...

  5. CVPR2020论文解读:3D Object Detection三维目标检测

    CVPR2020论文解读:3D Object Detection三维目标检测 PV-RCNN:Point-Voxel Feature Se tAbstraction for 3D Object Det ...

  6. GPU端到端目标检测YOLOV3全过程(下)

    GPU端到端目标检测YOLOV3全过程(下) Ubuntu18.04系统下最新版GPU环境配置 安装显卡驱动 安装Cuda 10.0 安装cuDNN 1.安装显卡驱动 (1)这里采用的是PPA源的安装 ...

  7. GPU端到端目标检测YOLOV3全过程(中)

    GPU端到端目标检测YOLOV3全过程(中)   计算机视觉初级部分知识体系                       总结了一下自己在计算机视觉初级部分的知识框架,整理如下.  个人所学并不全面( ...

  8. GPU端到端目标检测YOLOV3全过程(上)

    GPU端到端目标检测YOLOV3全过程(上) Basic Parameters: Video: mp4, webM, avi Picture: jpg, png, gif, bmp Text: doc ...

  9. 转载:点云上实时三维目标检测的欧拉区域方案 ----Complex-YOLO

    感觉是机器翻译,好多地方不通顺,凑合看看 原文名称:Complex-YOLO: An Euler-Region-Proposal for  Real-time 3D Object Detection ...

随机推荐

  1. 没有SEO的DiscuzQ 值不值得站长选择?

    此文写于2021年1月22日.至少到今天,Discuz Q 依然没有推出SEO的解决方案. 据官方团队交流说,SEO是在需求池中排在第一位,但目前还没有相应的措施来解决无法SEO. Discuz Q: ...

  2. POJ1466 最大点权独立集

    题意:       给你n个人,再给你每个人都喜欢哪些人,让你找到一个最大的集合数,要求这个集合里面任意两个人都不喜欢彼此. 思路:       直接就是在问最大点权独立集元素个数,没啥解释的一遍二分 ...

  3. 基于防火墙的VRRP技术--华为防火墙双机热备--VGMP

    目录 主备备份双机热备配置 负载分担双机热备配置 为了解决多个VRRP备份组状态不一致的问题,华为防火墙引入VGMP(VRRP Group Management Protocol)来实现对VRRP备份 ...

  4. POJ 1716 区间最小点个数

    题意:      给你n个区间,每个区间最少取两个元素,问你所有区间最少取几个元素(可以满足每个区间最少两个元素). 思路:      这个题目感觉挺巧妙的,之前在杭电上做过这个题目,这个题目可以用查 ...

  5. hdu5025 状态压缩广搜

    题意:       悟空要救唐僧,中途有最多就把钥匙,和最多五条蛇,要求就得唐僧并且拿到所有种类的钥匙(两个1只拿一个就行),拿钥匙i之前必须拿到钥匙i-1,打蛇多花费一秒,问救出唐僧并且拿到所有种类 ...

  6. hdu1568斐波那契前4位

    题意:      就是求斐波那契数,但是只要求输出前四位,(n<=100000000). 思路:      这个要用到斐波那契的公式和一些log的规律,直接打看着很乱,直接在网上偷张图片吧:   ...

  7. Java Web中间件

    目录 中间件 常见的web中间件有哪些 Tomcat Weblogic Jboss Jetty Webshere Glasshfish 中间件 我们经常会看到中间件,但是,一直好奇的是,中间件到底是什 ...

  8. 逆向与分析-WebBrowserPassView消息分析

    逆向与分析-WebBrowserPassView消息分析 这个的源头是之前我写的一个博客: http://blog.csdn.net/u013761036/article/details/730427 ...

  9. Spring SPI 机制总结

    1.概念: SPI(Service Provider Interface)服务提供接口,简单来说就是用来解耦,实现插件的自由插拔,具体实现方案可参考JDK里的ServiceLoader(加载class ...

  10. java.lang.ClassNotFoundException的解决方案

    举一个特定的例子 java.lang.ClassNotFoundException: org.apache.commons.dbcp.BasicDataSource 到Maven中央仓库下载 当我们看 ...