#基于深度学习的端到端自动驾驶

最新的端到端自动驾驶综述刚刚出炉,话说论文一作卡内基梅隆大学的Apoorv Singh今年产出了七篇综述,都和自动驾驶相关,推荐给大家。就一个字:牛!

个人主页:https://www.apoorvsingh.com/research-papers

  1. End-to-end Autonomous Driving using Deep Learning: A Systematic Review
  2. A Review on Objective-Driven Artificial Intelligence
  3. Training Strategies for Vision Transformers for Object Detection
  4. Trajectory-Prediction with Vision: A Survey
  5. Transformer-Based Sensor Fusion for Autonomous Driving: A Survey
  6. Surround-View Vision-based 3D Detection for Autonomous Driving: A Survey
  7. Vision-RADAR fusion for Robotics BEV Detections: A Survey

摘要

端到端自动驾驶是一种完全可微分的机器学习系统,它将原始传感器输入数据和其他元数据作为先验信息,并直接输出自车的控制信号或规划轨迹。本文试图系统地回顾最近所有基于机器学习的技术来实现这一端到端任务,包括但不限于目标检测、语义场景理解、目标跟踪、轨迹预测、轨迹规划、车辆控制、社会行为和通信。本文重点研究了最近的完全可微端到端强化学习和基于深度学习的技术。我们的论文还通过对重要方法进行分组并展示其研究趋势,建立了它们的分类法。最后,本次调查突出了悬而未决的挑战,并指出了未来可能的方向,以启发对该主题的进一步研究。

总结来说,本文的主要贡献如下:

  • 我们为理解端到端自动驾驶方法提供全面的背景知识。首先总结了有史以来第一种应用于自动驾驶任务的技术。此外总结了模块化自动驾驶问题解决方案的竞争替代方法。还涵盖了用于端到端自动驾驶任务的评估和基准。
  • 接下来,我们将端到端方法分为模仿学习、强化学习、带辅助任务的端到端自主驾驶和师生范式四个部分,对其进行了广泛的介绍。此外,在深入讨论细节之前,我们用数学建模为读者介绍了一段理论知识。
  • 我们讨论了所涵盖的所有方法和方法的关键挑战,以启发读者未来的研究思路。此外,我们还讨论了一些开放式研究问题,我们预计这些问题将是端到端自动驾驶研究的下一步。

自动驾驶的模块化方法

自动驾驶合集4_数据集

传统的模块化自动驾驶软件是一个复杂的系统,包括各种子模块,每个子模块负责驾驶过程的特定方面。这些子模块协同工作,使车辆能够在无需人工干预的情况下导航、感知环境并做出决策。自动驾驶软件的一些关键子模块包括:

  • 地图绘制和高精地图绘制:是指创建和维护道路和周围环境的详细、高精地图。与人类驾驶员使用的传统导航地图不同,自动驾驶地图要详细得多,并包含对自动驾驶系统的特定需求至关重要的信息。它们包括有关车道边界、道路曲率、交通标志、交通信号、车道变更规则和道路坡度的信息。高精地图以厘米级的精度创建,以确保自动驾驶汽车能够在下游定位堆栈中的环境中准确定位。
  • 感知:是指自动驾驶汽车理解和解释周围环境的能力。它包括传感器融合、车辆和行人检测、像素级分割以及红绿灯/其他路标检测等任务。主要是基于多个相机、激光雷达和雷达的传感器的组合。
  • 定位:指的是自动驾驶汽车在其环境中准确确定其位置和方向(位姿)的能力。常见使用的关键组件是全球定位系统(GPS)、惯性测量单元(IMU)和通过地图匹配的感知传感器,其中包括将传感器数据与高清地图进行比较,以完善车辆的位置估计。
  • 目标跟踪:指的是自动驾驶汽车监测物体在其环境中过去运动的能力。这对于在下游任务中进行预测至关重要,过去的状态对下游任务至关重要。跟踪对于被遮挡的道路目标至关重要,因为即使在感知中看不到目标,我们仍然可以保持对该目标的期望。跟踪涉及感知输出的数据关联和运动学预测。
  • 行为规划(轨迹预测):指的是自动驾驶车辆预测各种道路使用者(如行人、骑自行车的人、其他汽车甚至动物)未来行动和移动的能力。
  • 路径规划:它指的是自动驾驶车辆在避开障碍物、遵守交通规则并考虑环境动态的同时,为自动驾驶车辆从当前位置导航到所需目的地确定安全和最佳路径的能力。基于当前车辆位置、期望目的地以及地图和传感器信息,路径规划算法生成初步路径,该初步路径将车辆连接到目标,同时避开障碍物。成本函数考虑了距离、舒适性、安全性、能源效率和碰撞风险因素。该算法搜索一条将此成本最小化的路径。模块化管道中最常见的规划方法包括使用复杂的基于规则的设计,这在解决驾驶时发生的许多情况时往往无效。
  • 决策:指的是自动驾驶车辆在各种交通场景中选择适当行动和行为的能力,同时优先考虑安全、效率和遵守交通规则。它与路径规划密切合作,涉及风险评估、情景分析、行为预测、交通规则和条例、伦理道德考虑等。
  • 控制:它指的是将高层决策和计划轨迹转化为车辆执行器为物理操纵车辆而采取的具体行动的机制和算法。这些控制装置可确保车辆沿预定路径行驶、加速、减速和处理各种驾驶场景,同时保持稳定性、安全性和舒适性。控制弥合了决策和车辆物理行为之间的差距。它包括执行器、车辆动力学、速度控制、稳定性和操控性、平稳过渡、人体舒适性等子部件。
  • 仿真和测试:在实际道路上部署之前,评估自动驾驶系统的性能、安全性和功能至关重要。

这些系统及其依赖如图2所示。

BENCHMARKING/ EVALUATIONS

在开发软件之前,首先要开发测试需求,让我们在深入研究主要方法之前,先看看端到端系统的评估需求。评估可分为两种类型:闭环评估和开环评估。前者是在在线仿真器中定义的;然而,前者是在人类驾驶数据集上离线计算的。端到端系统可以在CARLA等在线模拟器上轻松评估;许多模块化感知技术依赖于更昂贵的离线数据集。

闭环评测如图3所示。

自动驾驶合集4_数据集_02

开环评测如图4所示。

自动驾驶合集4_数据集_03

方法

A.模仿学习

在模仿学习中,智能体通过模仿人类专家或预先存在的模型所展示的行为来学习执行任务。agent不是明确地设计奖励函数或定义最优策略,而是通过观察和模仿专家采取的行动来学习。与强化学习相比,模仿学习有几个优势,包括利用人类专业知识解决复杂任务的能力,以及提供更安全、更可解释的行为的潜力,在强化学习中,主体通过试错进行学习。然而,模仿学习也有局限性,例如对专家演示中的错误很敏感,并且不总是能够探索超出专家演示范围的新策略。在训练期间,agent的目标是学习从输入观察到专家演示的行动的映射。这通常使用监督学习技术来完成,在监督学习技术中,对agent的模型进行训练,以最大限度地减少其预测动作与专家数据集中的动作之间的差异。类似地,在评估过程中,根据新的、看不见的数据来评估经过训练的agent的性能,以确定其模仿专家行为的能力。这种评估可以包括将代理人的行为与专家的行为进行比较,或者评估代理人是否成功完成了任务。模仿学习可以进一步分为Behavior Clone和Inverse Reinforcement Learning。

然而,IRL和模仿学习也有其自身的一系列挑战和局限性:

  • 家行为的模糊性:IRL假设观察到的专家行为在某些潜在的奖励函数方面是最优的或接近最优的。然而,现实世界中的专家行为可能是嘈杂的、次优的,或者受到奖励函数未捕捉到的因素的影响,导致推断的奖励函数中的模糊性。
  • 解决方案的非唯一性:多个奖励函数可以解释同一组观察到的专家行为。这种非唯一性会使确定哪种奖励函数是“正确的”奖励函数具有挑战性,导致所学习的奖励函数和后续策略的不确定性。
  • 有限的专家演示:IRL在很大程度上依赖于专家演示的质量和数量。如果数据集较小、有偏差或没有覆盖广泛的场景,则学习的奖励函数可能无法准确地表示真实的底层奖励结构。
  • 维度诅咒:随着状态空间变得越来越大、越来越复杂,由于维度诅咒,从有限的专家数据中准确恢复奖励函数的能力变得越来越困难。高维状态空间需要大量的数据来捕捉奖励函数的复杂性。
  • 计算复杂性:许多IRL算法涉及计算成本高昂的优化问题,尤其是在处理大的状态空间或复杂的奖励函数时。
  • 缺乏探索:IRL专注于从专家演示中学习,并没有本质上提供探索专家演示之外的新策略的机制。这可能会限制代理人发现更有效或更具创造性的解决方案的能力。
  • 转移到新环境:习得的奖励函数通常是特定于推断它们的环境的。由于动力学、状态空间和其他因素的差异,将学习到的奖励函数转移到一个新的、看不见的环境可能具有挑战性。

B.强化学习

在强化学习中,智能体学习如何在环境中做出决策和行动,以最大化累积奖励信号。在自主智能体的背景下,RL为这些智能体提供了一种通过试错学习来学习如何在没有明确编程的情况下执行任务和做出决策的方法。自主主体是RL框架中的学习者。它与环境相互作用,并采取行动实现某些目标。环境是代理与之交互的外部系统。它根据代理人的行为通过奖励向代理人提供反馈。在每个时间步长,环境都处于特定状态,这表示环境当前条件的快照。代理根据操作的当前状态选择操作。行为会影响环境,使其转变为一种新的状态,并奖励代理人。环境在每个动作之后向代理提供数字奖励信号,指示动作的直接收益或成本。代理的策略是一种将状态映射到操作的策略。代理的目标是学习一种最优策略,使随着时间的推移累积奖励最大化。值函数估计代理在遵循特定策略的同时,从给定状态可以实现的预期累积回报。它有助于代理人在知情的情况下决定采取哪些行动。代理使用RL算法通过试错来学习最优策略或值函数。学习过程包括探索环境、获得奖励和调整政策以提高绩效。代理人面临着探索新动作以发现潜在的更好策略(探索)和利用已知动作以最大限度地获得即时回报(利用)之间的权衡。然而,自主智能体的RL也面临着挑战,如高效探索、长期奖励和在现实世界环境中的安全学习。强化学习方法可进一步细分为以下几个子领域:

  • Value Based RL;
  • Policy Based RL;
  • Actor-Critic RL

C.Teacher Student范式

端到端自主驾驶的最先进方法遵循师生范式。教师模型,如CARLA,使用特权信息(周围代理和地图元素的基本状态)来学习驾驶策略。学生模型只能访问原始传感器数据,并对教师模型收集的数据进行行为克隆。

自动驾驶合集4_人工智能_04

D.带辅助任务的端到端自动驾驶

通常,人们普遍认为,用于轨迹规划的学习控制输出/路点可能过于复杂,无法从传感器数据的数十亿个参数中进行映射。这导致研究人员开发辅助任务来监督端到端的学习任务,正如我们之前在中看到的那样,感知和规划模块分两个阶段进行训练。Uber ATG在论文中介绍了另一种更离散的方法,他们使用以激光雷达数据和地图为输入的主干来学习端到端可解释的运动规划器。首先,他们输出其他参与者的边界框,用于未来的时间步(感知)和使用T过滤器进行规划的成本量。接下来,对于来自采样器的每个轨迹建议,从成本体积的不同滤波器中索引其成本,并将其相加。成本最低的轨迹将是我们的最终规划,如图6所示。他们使用多任务训练,从检测、运动预测和人类驱动的自车轨迹进行监督。请注意,没有对成本量进行监督。因此,他们采用最大边际损失来推动网络学习区分好轨迹和坏轨迹。

自动驾驶合集4_人工智能_05

开放的挑战和未来趋势

考虑到所讨论方法中的挑战,并从机器学习的多学科领域获得灵感,我们发现了未来研究人员的潜在研究方向:

  • 端到端协作任务:已经有关于协作感知的研究,其中从附近的自动驾驶汽车联合进行感知,以处理遮挡并扩大检测范围。端到端自动驾驶任务也有类似的概念。随着越来越多的自动驾驶汽车公司在城市中部署车队,这种端到端的协作任务可能成为该领域SOTA方法的下一个范例。
  • 使用扩散模型基于文本需求生成场景:自动驾驶汽车经过训练,在通用场景中运行良好;一个尚未解决的主要挑战是长尾问题,我们无法在模拟器中对其进行广泛建模。最近,使用稳定扩散方法的图像生成模型取得了很好的结果;很高兴看到未来的研究人员利用这项技术来构建更真实的模拟场景。自动驾驶的端到端任务可以在端到端的任务中进行训练,其中扩散模型自动生成自动驾驶汽车故障案例的相似场景。然后,我们可以在那些精心挑选的模拟场景上进行训练,直到我们的模型在真实世界的指标上如预期那样进行预测。
  • 基础模型:最近,计算机视觉和大语言中的基础模型在多样化的大规模数据集上进行训练后,显示出了最先进的性能,并且可以适应广泛的任务(驾驶场景)。研究人员可以利用这些模型将端到端任务的能力从模拟器推广到现实生活中的数据。

结论

总之,本文对快速发展的端到端自动驾驶领域进行了全面的探索。从传统的模块化方法到端到端学习的范式转变概念的历程已经阐明,展示了从handcrafted的功能和复杂的管道到允许车辆直接从原始传感器输入中学习的数据驱动解决方案的转变。讨论涵盖了这种方法的优势和挑战,强调了它在简化系统设计、捕捉复杂交互和适应不同驾驶场景方面的潜力。随着这一领域的不断成熟,该论文讨论了安全保证、监管框架的重要性,以及学术界、工业界和政策制定者之间合作的必要性。发现了一些悬而未决的挑战,如极端场景下的安全性、迁移学习、可解释性、人际互动和高效探索,邀请研究人员和从业者共同为塑造自动驾驶的未来做出贡献。

从本质上讲,这篇综述文章展示了端到端的自动驾驶不仅仅是一次技术飞跃;这是一种范式转变,体现了机器学习、机器人和运输工程的融合。未来的道路充满了令人兴奋的机遇和复杂的挑战,需要跨学科的努力来实现安全、高效和可靠的自动驾驶汽车的愿景,使其能够无缝地在我们的现代道路上行驶。

#自动驾驶大模型の论文调研与简述

关于大模型(LLMs, VLM)与自动驾驶相关文献调研与汇总:

适合用于什么任务?答:目前基本上场景理解、轨迹预测、行为决策、运动规划、端到端控制都有在做。

大家都怎么做的?

  1. 对于规控任务,LLM型基本是调用+Prompt设计,集中在输入和输出设计,如输入有 1.2 DiLu这种拼memory的,输出有1.1 LanguageMPC这种做cost function的,训练和微调的有1.3 Wayve的工作;有做开环的1.3,也有闭环的1.1 和1.2。目前仿真器和数据都未有统一的benchmark。
  2. 对于场景理解任务,大多数都在构建QA类型的数据集,常用数据集为nuScenes。

一、自动驾驶决策/规划任务:

1. 1 LanguageMPC: Large Language Models As Decision Makers For Autonomous Driving, 10.4

动机:学习型决策系统缺乏 理解、泛化和可解释性,LLM具备推理和泛化能力,如何作为决策器与下游控制器结合?Language-action对齐到了MPC的cost function。

方案

自动驾驶合集4_自动驾驶_06

LLM的任务1) 选择关键交互车辆 2)评估当前驾驶情况 3) 提供决策动作引导。下游控制器采用了MPC controller,Language-action的输出为 observation matrix, weight matrix, and action bias,前者对应的是关键交互车辆,后两者对应MPC中Cost function的参数项

自动驾驶合集4_自动驾驶_07

对于上述3步所设计的prompts

实验环境:CARLA路口、环岛等。调用GPT3.5,定义输出action,输入非视觉可理解为将原先vector输入语言化。

1.2. DiLu: A Knowledge-Driven Approach to Autonomous Driving with Large Language Models, 9.28

动机:用LLM增强agent的泛化和可解释性。这篇文章的创新在于memory module的引入,是7月份Drive Like a Human的改进版,值得一看。

框架:用GPT3.5作为推理输出模块,用GPT4作为reflection模块。所有模块非fine-tuning,而是输入adaption

自动驾驶合集4_数据集_08

有意思的结论:LLM cannot directly perform the closed-loop driving tasks without any adaptation. 通过记忆模块消融分析得到。

实验环境:HighwayEnv,闭环;加速,保持,跟车,换道等高层行为,没说decision decoder是什么,如何映射的高层行为到底层控制。对比基线为 RL。

1.3 Driving with LLMs: Fusing Object-Level Vector Modality for Explainable Autonomous Driving,10.3 Wayve

动机:OOD的推理和可解释能力;对于目标级输入构建LLM的预训练和微调方法,开放驾驶QA数据和评估基线。还有一个相关blog: LINGO-1: Exploring Natural Language for Autonomous Driving

自动驾驶合集4_人工智能_09

方法:action teacher:RL teacher;QA teacher:GPT teacher;

一个结构化的语言生成器(lanGen):基于数值向量来产生prompt模版;使用RL产生专家动作O_{rl},100k问答数据从仿真器收集 (包括表征学习,推理任务:action预测,attention预测)

自动驾驶合集4_人工智能_10

驾驶问答数据标注:使用ChatGPT来自动产生问答数据, 10k

自动驾驶合集4_数据集_11

训练过程:第一阶段 训练vectorformer,输入为高维的vector向量信息 第二阶段:利用QA问答数据来finetuning LLaMA-7b

 

自动驾驶合集4_数据集_12

实验:在1000个不同驾驶场景中评估,指标为感知和预测精度;在开放世界场景中评估,通过ChatGPT来评估得分。要求20GB显存来评估,40GB显存来训练。

1.4 GPT-DRIVER: LEARNING TO DRIVE WITH GPT,10.2

动机:推理能力和泛化

方法:1. planner inputs and outputs as language tokens 2. a novel prompting-reasoning-finetuning strategy

自动驾驶合集4_数据集_13

输入语言token化,使用的UniAD的感知和预测结构,输出思维链与上一篇类似,LLM先输出关键交互车、再判断行为决策动作,最后输出轨迹。对chatGPT做了fine-tuning

实验环境:NuScenes,开环,对比UniAD

自动驾驶合集4_人工智能_14

1.5 Drive as You Speak: Enabling Human-Like Interaction with Large Language Models in Autonomous Vehicles,9.19

动机:LLM赋能

  • Language Interaction
  • Contextual Understanding and Reasoning
  • Zero-Shot Planning
  • Continuous Learning and Personalization
  • Transparency and Trust

自动驾驶合集4_自动驾驶_15

方案:更多探索人机协同,驾驶员给予指令,LLM ChatGPT 4获取感知结果,输出决策行为。没有给实验,只给了上图的case

1.6 Receive, Reason, and React: Drive as You Say with Large Language Models in Autonomous Vehicles, 10.12

同1.5,进一步分析了ICL,CoT,Personalization方面的能力。

1.7 A Language Agent for Autonomous Driving, 11.17 (单位有Nvidia)

动机:用Agent框架重塑自动驾驶系统,Agent Driver,三个重要组件:tool library;cognitive memory;reasoning engine;

自动驾驶合集4_数据集_16

方法:输入为sensory data;输出为轨迹;

Tools:抽象不同网络输出并转化为text文本,即LLM调用tools来收集文本形式的环境信息;tool库是4类神经网络模型 检测(产生检测结果)、预测(产生预测结果)、占据栅格、地图,但模型产生的信息过于冗余,LLM-based tools目的是为了从冗余的信息中提取到必要的环境信息。

Cognitive memory:基于环境信息query来搜索traffic rules (纯文本形式;可以认为是考驾照科目1的学习材料) 和 similar past experience(环境信息和decision);past experience记忆搜索形式:vector-space KNN + LLM-based fuzzy search

Reasoning:LLM-based CoT作为推理引擎,最终输出轨迹,形式如GPT-Driver,自我反思部分基于碰撞检测和优化方法;如果碰撞检测到危险,会利用优化cost function形式将LLM 产生的轨迹进行优化;

自动驾驶合集4_数据集_17

实验还是在Nusenses数据集上的开环评测,对标的是UniAD和GPT-Driver,消融分析了ICL和fine-tuning的性能差异,结论是ICL是首选。

1.8 A Multi-Task Decision-Making GPT Model for Autonomous Driving at Unsignalized Intersections 6.30

不是大模型,trained PPO作为teacher,收集多任务教师数据用的 decision Transformer训多任务策略。没太多可看的。

二、 轨迹预测

2.1 Can you text what is happening? Integrating pre-trained language encoders into trajectory prediction models for autonomous driving,9.13 Bosch

动机:可以将LLM看作foundation model,集成视觉特征和文本特征,进行轨迹预测获得最好效果

方案:由于GPT系列难以得到中间feature,对于文本使用的是DistilBert,对于BEV使用了BEiT作为encoder,

自动驾驶合集4_自动驾驶_18

2.2 MotionLM: Multi-Agent Motion Forecasting as Language Modeling, ICCV, 2023, Waymo

动机:autoregressive language models作为多智能体轨迹预测模型,在waymo交互预测任务取得SoTA

方案:使用的是LLM类似的自回归transformer decoder,但chatGPT本身没有太大联系。可以同时decoder多个智能体,不开源,

自动驾驶合集4_自动驾驶_19

三、端到端控制任务:

3.1 DRIVEGPT4: INTERPRETABLE END-TO-END AUTONOMOUS DRIVING VIA LARGE LANGUAGE MODEL,10.2

动机:可解释性、泛化性。同时多模态大模型还可处理图像和视频数据;可解释性端到端模型,用黑盒解释黑盒,具备了人机交互层面的可解释性。

数据集生成:在BDDK的16k固定问答数据上,用chatGPT产生了新的12k问答数据

模型训练:使用Valley将video token转化为语言token,LLM使用了LLaMA 2;预训练阶段只训练video tokenizer;fine-tuning阶段LLM和video tokenizer在29k数据上一起微调,同时为了保障它的问答能力,还在80k的问答数据上一起微调

自动驾驶合集4_数据_20

实验环境:开环,视觉输入,BDD-K,对比基线为ADAPT,metric:使用了ChatGPT打分。

3.2 ADAPT: Action-aware Driving Caption Transformer,ICRA,2023,开源代码,中文解读

动机:端到端模型的可解释性

方法:连续多帧图像输入,预训练的video swin transformer 得到video tokens,预测控制信号和文本输出。

自动驾驶合集4_人工智能_21

实验环境:开环,BDD-K,具体见中文解读。

四、多视角视觉输入场景理解:

4.1 Language Prompt for Autonomous Driving,9.8

动机:缺少多视角输入的language prompt-instance 数据

方案:第1步:3D目标检测,目标包括4类属性 color,class,action,location, 手工标注13k目标;第2步:属性与或非操作的组合;第3步:让GPT3.5产生描述的language prompt,35k. 基于nuScenes数据集。

自动驾驶合集4_数据集_22

基于此数据集,做了prompt输入的多目标跟踪任务。整体效果为:利用视觉和language prompt,可以检测和跟踪多视角连续帧输入的目标。

自动驾驶合集4_数据_23

4.2 3D DENSE CAPTIONING BEYOND NOUNS: A MIDDLE-WARE FOR AUTONOMOUS DRIVING

动机:目前缺少衔接 感知和规划的3D场景理解的LLM数据集,3D dense captioning

方案:3D目标属性:Appearance Direction Distance Motion Road Map

自动驾驶合集4_人工智能_24

4.3 Talk2BEV: Language-enhanced Bird’s-eye View Maps for Autonomous Driving

与3.2类似,是对BEV input做了语言prompt.

自动驾驶合集4_自动驾驶_25

自动驾驶合集4_数据_26

4.4 DriveLM: Drive on Language, OpenDriveLab

LLM将用于感知、预测和规划任务,graph of thouht. 相比于3.2,多做了预测和规划。在nuScenes上360k annotated QA pairs。目前只开源了demo样例。

自动驾驶合集4_数据_27

4.5 HiLM-D: Towards High-Resolution Understanding in Multimodal Large Language Models for Autonomous Driving,9.11

动机:对于非高清图片,目前预训练的多模态大模型往往会漏掉小目标、过分关注大目标(由于预训练数据为低分辨率图片)。本文感知关注的是关键风险目标,还输出预测和主车决策建议,

自动驾驶合集4_数据_28

动机图

方案:提出了用高清图片分支辅助低分辨率分支,在23年CVPR的DRAMA数据集上进行了实验,包括关键风险目标的检测、预测目标意图和给出驾驶建议。

自动驾驶合集4_数据_29

五、场景或数据生成

5.1 Language-Guided Traffic Simulation via Scene-Level Diffusion,Nvidia,CoRL, 2023

动机:基于语言表述生成openscenarios格式的场景

方案:利用GPT4产生引导loss,引导扩散模型来产生指定场景

自动驾驶合集4_人工智能_30

5.2 SurrealDriver: Designing Generative Driver Agent Simulation Framework in Urban Contexts based on Large Language Model,9.22

驾驶场景的可控生成,将会成为LLM的潜力方向。 

自动驾驶合集4_数据_31

5.3 WEDGE: A multi-weather autonomous driving dataset built from generative vision-language models,2023, CVPR workshop

动机:缓解OOD问题,利用DALL-E生成增广图片数据

自动驾驶合集4_数据_32

#自动驾驶~多模态3D检测综述

中文题目:自动驾驶中的多模态 3D 物体检测综述

作者:Yingjie Wang, Qiuyu Mao, Hanqi Zhu, Jiajun Deng, Yu Zhang, Jianmin Ji, Houqiang Li, Yanyong Zhang

来源:International Journal of Computer Vision

论文地址:https://link.springer.com/article/10.1007/s11263-023-01784-z

摘要:过去十年见证了自动驾驶系统的快速发展。然而,实现完全自主仍然是一项艰巨的任务,特别是在理解不断变化、复杂的驾驶场景时。为了减轻感知的难度,自动驾驶车辆通常配备一套传感器(例如摄像头、激光雷达),希望捕捉重叠视角的场景,以最大限度地减少盲点。因此,融合这些数据流并利用它们的互补特性正在迅速成为当前的趋势。尽管如此,将不同传感器捕获的数据与截然不同的测距/成像机制结合起来并不是一项简单的任务。相反,需要考虑和优化许多因素。如果不小心,一个传感器的数据可能会成为另一个传感器数据的噪声,如果融合它们,结果会更差。到目前为止,还没有设计基于多模态融合的 3D 感知算法的深入指南。为了填补空白并激发进一步的研究,本综述对数十个最近基于深度学习的多模态 3D 检测网络(特别强调 LiDAR-相机融合)进行了深入研究,重点关注它们的融合阶段(即什么时间融合)、融合输入(即融合什么)和融合粒度(即如何融合)。这些重要的设计选择在确定融合算法的性能方面发挥着关键作用。

我们首先介绍了用于自动驾驶的流行传感器的背景、它们的数据特性以及相应的物体检测算法。接下来,我们讨论可用于评估多模态 3D 对象检测算法的现有数据集。然后,我们回顾了基于多模态融合的 3D 检测网络,仔细研究了它们的融合阶段、融合输入和融合粒度,以及这些设计选择如何随着时间和技术的发展而演变。审查后,我们讨论开放的挑战以及可能的解决方案。我们希望这项调查能够帮助研究人员熟悉该领域并开展多模态 3D 物体检测领域的研究。

引言

最近深度学习和计算机视觉方面的突破促进了自动驾驶的快速发展,它有望解放驾驶员、减少交通拥堵并提高道路安全。然而,自动驾驶的潜力尚未完全释放,很大程度上是由于现实驾驶场景中的感知表现不理想。因此,即使自动驾驶汽车 (AV) 已在许多受限和受控环境中得到应用,但在城市环境中部署它们仍然面临严峻的技术挑战。

自动驾驶合集4_自动驾驶_33

图 1 展示了一个典型的 AV 系统,它由三个子系统组成:感知、定位和决策。AV 系统利用多个传感器(例如激光雷达、摄像头)来收集原始传感器数据。以原始传感器数据作为输入,感知和定位子系统执行几项重要任务来识别和定位感兴趣的对象,即对象检测、跟踪、3D 地图生成和映射等。给定对象及其位置,决策制定子系统可以导航并做出自动驾驶决策。所有任务中,对象检测旨在对感兴趣的对象进行定位和分类,具有重要意义。随着深度学习技术的突破,二维目标检测引起了广泛的关注,产生了大量的算法。然而,在 2D 图像平面中定位物体远不能满足 AV 感知 3D 现实世界的需求。为此,提出了3D物体检测任务,要求预测物体的三维位置、形状和旋转角度。与深入研究的 2D 物体检测相比,3D 物体检测不仅对自动驾驶车辆更重要,而且更具挑战性。挑战主要源于 3D 驾驶场景的感知也更加复杂。例如,我们需要额外的深度和旋转参数来定位 3D 空间中的对象。

在现实世界中,通过单一类型的传感器数据执行 3D 物体检测还远远不够。首先,每种类型的传感器数据都有其固有的局限性和缺点。例如,基于摄像头的系统缺乏准确的深度信息,而仅使用激光雷达的系统则因输入数据分辨率较低而受到阻碍,尤其是在长距离情况下。表1所示。总体而言,对于ego-sensor较远的物体(KITTI中> 60m),通常有不到10个LiDAR点,但图像超过400个图像像素。其次,感知系统必须能够抵御传感器失灵、失效或性能不佳,因此需要有不止一种类型的传感器。第三,不同传感器的数据自然互补。它们的结合可以更全面地描述环境,从而获得更好的检测结果。

因此,3D物体检测的最新趋势是结合来自不同传感器的数据流并开发多模态检测方法。图 3 显示了 AV 系统中的多个传感器。自动驾驶汽车通常配备摄像头、LiDAR、雷达、GPS和 IMU。在多模态方法中,来自具有互补特性的多种类型传感器的数据被融合,以捕获具有重叠视角的场景,旨在最大限度地减少盲点。

自动驾驶合集4_自动驾驶_34

尽管最近的研究已经证明了融合在各种环境中的好处,但在现实世界中进行高效且有效的多模态检测在很大程度上仍然是一个神话,并面临许多挑战。下面我们列出了其中一些开放挑战:

1)多传感器校准:不同类型的传感器在时间或空间上不同步。在时域中,由于每个传感器具有独立的采集周期,因此很难同时收集数据。在空间域中,传感器在部署时具有不同的视角。因此,多传感器标定是数据融合之前的第一步,目前尚未受到太多关注。

2)融合过程中的信息丢失:由于不同类型的传感器数据之间存在较大差距(如表1所示),因此很难在输入阶段或特征空间中精确对齐这些数据流。为了将传感器数据转换为可以正确对齐和融合的表示格式,一定量的信息丢失是不可避免的。

3)跨多种模式的一致数据增强:数据增强在 3D 对象检测中发挥着至关重要的作用,可以增加训练样本的大小,并改善模型过度拟合的问题。基于 LiDAR 和基于相机的方法广泛采用全局旋转和随机翻转等增强策略,但由于担心导致跨模态不一致,因此在许多多模态方法中不存在。

目前,如何应对上述挑战并进行高效的数据融合仍然是一个悬而未决的问题。如果不小心完成,数据融合可能会导致不同的数据流相互成为噪音,从而导致更差的结果。在本文中,我们着手对最近基于融合的 3D 对象检测方法进行全面回顾。这样可以帮助查明传感器融合中的技术挑战,并帮助我们比较和对比为解决这些挑战而提出的各种模型。特别是,由于摄像头和激光雷达是自动驾驶最常见的传感器,因此我们的评论主要集中在这两类传感器数据的融合上。具体来说,当我们讨论基于多模态融合的 3D 检测算法时,我们重点关注该算法如何处理以下三个关键的设计考虑因素:

1)融合阶段:第一个设计考虑因素是多模态融合模块发生在哪个阶段,即“在哪里融合”。这里有三个选项:前融合、后融合和级联融合。前融合通常发生在每个分支达到其预测之前的输入阶段或特征提取阶段。后融合发生在预测阶段。级联融合采用混合模式,将一个分支的预测与另一个分支的输入融合。融合阶段是最有影响力的设计考虑因素,因为它决定了基于融合的检测算法的整体网络架构,而前融合是主要选择。

2)融合输入:第二个设计考虑因素涉及多模态数据如何输入融合模块,即“融合什么”。融合模块可以设计为将原始数据或某种类型的中间特征作为输入。例如,融合模块可以将 LiDAR 数据作为原始点云、体素网格以及鸟瞰图 (BEV) 或范围视图 (RV) 上的投影。同时,融合模块可以将相机数据作为特征图、分割掩模,甚至伪激光雷达点云。融合输入是一个关键的设计考虑因素,因为数据表示在整体检测性能中起着重要作用。这三个考虑因素中,它的选择最多。我们将在第四部分仔细回顾这些选项,并讨论它们如何随着时间和技术的发展而演变。

3)融合粒度:第三个设计考虑因素是两个数据流以什么粒度组合,即“如何融合”。它通常具有三个选项:感兴趣区域 (RoI) 级别、体素级别和点级别(最后一个为最细粒度)。融合粒度对于确定融合的复杂性和有效性具有重要作用;通常,更细的融合粒度需要更多的计算并带来更优越的性能。

之前基于深度学习的多模态融合方法的综述涵盖了广泛的传感器,包括雷达、摄像头、激光雷达、超声波传感器等,并对一系列主题进行了相对简短的回顾,包括虽然它们被认为是读者浏览一般领域的有用指南,但本文有一个明显不同的目的:它针对的是那些想要仔细调查该领域的研究人员多模态 3D 检测。因此,我们的综述旨在对这一主题的最新研究进行深入而详细的回顾。我们的贡献总结如下:

1)我们对基于传感器融合的 3D 检测网络进行了深入调研,特别关注 LiDAR 相机融合。我们围绕三个核心设计考虑因素组织讨论:融合阶段、融合输入和融合粒度,分别回答在哪里融合、融合什么和如何融合的问题。

2)之前的大多数调查在很大程度上忽略了 3D 多模态网络的融合输入。事实上,与其他两种设计考虑因素相比,融合模块的输入表现出最大的多样性,并代表了每种设计的独特理念。在我们的调查中,我们彻底讨论了这一设计考虑因素。根据融合输入选择,我们将基于融合的 3D 检测网络总共分为五类。我们详细回顾每个类别的方案,并讨论输入组合如何随着时间和技术的发展而演变。

3)我们还总结了可用于 3D 对象检测评估的流行多模态数据集。此外,我们仔细讨论了该领域的一系列开放挑战以及可能的解决方案,这有望激发多模态 3D 对象检测领域的一些未来研究。

背景

在本节中,我们将提供自动驾驶中使用的典型传感器的背景概述,特别是依赖于每种类型传感器的 3D 物体检测方法。我们主要讨论相机和激光雷达。此外,我们还介绍了其他可用于 3D 物体检测的传感器。

2.1 3D物体检测任务

在介绍通过不同相机设置的 3D 对象检测方法之前,我们首先概述 3D 对象检测。在 3D 对象检测任务中,我们需要提供场景中对象的 3D 边界框。如图4所示,我们需要预测物体中心的3D坐标c、长度l、宽度w、高度h及其偏转角θ以获得红色3D边界框。

自动驾驶合集4_数据集_35

2.2 通过摄像头进行 3D 物体检测

摄像头是自动驾驶汽车最常见的传感器。近年来,在 2D 目标检测中发展了一系列成熟的方法,这些方法可以在 3D 目标检测中重复使用 [46, 129]。因此,基于图像的 3D 对象检测方法可以以较低的成本实现令人满意的性能,通常优于人类专家。AV 中广泛部署了多种类型的摄像机,每种类型都有优点和缺点。下面我们讨论通过不同相机设置的 3D 物体检测算法。

单目 3D 物体检测。单目相机以像素强度的形式提供稠密信息,揭示形状和纹理属性。形状和纹理信息还可用于检测车道几何形状、交通标志和物体类型。使用单目相机进行 3D 检测的主要缺点源于缺乏深度信息,而深度信息对于 AV 的精确物体尺寸和位置估计是必需的。为了弥补这一点,许多研究致力于通过单目相机提高检测精度。例如,Mousavian 采用设计的 CNN 来估计缺失的深度信息,稍后用于将 2D 边界框升级到 3D 空间。Chu首先执行单目深度估计,并将2D像素提升为伪3D点。他们设计了一种新颖的邻居投票方法,该方法结合了邻居预测,以改进严重变形的伪激光雷达点云的对象检测。Park提出了一种端到端单级单目检测器。通过大规模未标记数据预训练,取得了可喜的检测结果。

双目 3D 物体检测。与单目相机相比,双目相机可以估计更准确的深度图。具体来说,多视点相机可以通过不同的相机覆盖不同范围的场景,并更准确地捕获深度图。同时,处理立体图像的复杂性和成本也将大大增加。一些作品利用双目图像生成稠密点云来执行 3D 对象检测任务。例如,Chen 专注于通过将对象尺寸先验、地平面先验和深度信息编码为能量函数来生成 3D 提案。Li 在立体区域提议网络 (RPN) 之后添加额外的分支来预测稀疏关键点、视点和对象尺寸,这些用于计算粗略的 3D 对象边界框。接下来,通过基于区域的光度对准恢复准确的 3D 边界框。Guo将深度信息编码在立体成本体积中,以 LiDAR 特征为指导,为立体检测网络提取高级几何感知表示。

基于相机的 3D 对象检测的缺点。总而言之,基于相机的 3D 对象检测有几个缺点。首先,单目相机很难估计深度,这严重限制了检测精度。其次,基于摄像头的检测还受到诸如照明不良、浓烟或大雾等不利条件的影响。到目前为止,仅摄像头的 3D 物体检测还无法获得可靠的性能。就 KITTI 数据集而言,最先进的基于双目的方法 LIGA-Stereo实现了 64.66% mAP,而基于单目的 DD3D 仅实现了 16.87% mAP。为了实现更可靠的自动驾驶系统,我们需要探索更强大的自动驾驶传感器。

关于mAP,请参考小纸屑:详解object detection中的mAP

2.3 通过 LiDAR 进行 3D 物体检测

激光雷达传感器利用激光器作为光源来完成遥感测量。LiDAR 检测 LiDAR 传感器和被检测物体之间的光波信号。它不断发射激光并收集反射点的信息,以获得全方位的环境信息。当激光雷达传感器旋转一圈时,所有反射点坐标形成点云。作为主动传感器,不需要外部照明,因此我们可以在极端照明条件下实现更可靠的检测。LiDAR点的典型分辨率范围为16通道至128通道。Velodyne HDL-64L和VLS-128相比可以看出,128通道激光雷达各项参数均优于64通道激光雷达。显然,与相机相比,激光雷达的成本相当高。我们可以看到 Velodyne HDL-64 传感器的官方售价为 80,000 美元。最新的VLS-128传感器具有更好的性能,但也更昂贵。下面,我们简要回顾一下基于 LiDAR 数据的 3D 物体检测的现有工作。

基于视图的检测。许多基于 LiDAR 的方法将 LiDAR 点云投影到 BEV 或 RV 中,以利用现成的 2D 卷积神经网络 (CNN)。早期,Yang 提出了一种高效、无提议的单级检测器。它将点云转换为 BEV 并执行 2D CNN 来提取点云特征。还提出了紧凑且密集的基于 RV 的方法用于 3D 物体检测。最近,Liang 在 RV 上使用 2D 主干来直接学习空间特征,然后采用 R-CNN 来获取 3D 边界框。H23D R-CNN首先以顺序模式学习 RV 和 BEV 特征,然后在多视图融合块中融合两个 3D 表示。

基于体素的检测。基于体素的方法首先将点划分为规则的 3D 体素,然后利用稀疏卷积神经网络和转换器进行特征提取和边界框预测。VoxelNet 提取判别性体素特征以加速模型执行。SECOND通过应用稀疏卷积减少了密集 3D CNN 的计算开销。PointPillars引入了点云的柱表示(体素的特殊形式)。Pillars 速度很快,因为所有关键操作都可以表示为 2D 卷积。Voxel R-CNN 通过引入体素 RoI 池化操作进一步提高了基于体素的检测器的准确性和速度。此外,毛等人。Mao引入了一种基于 Transformer 的架构,该架构通过自注意力机制实现体素之间的远程关系。

基于点的检测。最近的点云编码器,例如 PointNet 、PointNet++ 、Pointformer 和其他点云主干可以从原始点云中学习表示。基于点的检测器利用它们来提取下游任务的空间几何信息。例如,Shi 采用 PointNet++ 作为点云编码器,并根据提取的语义和几何特征生成 3D 建议。Shi 和 Rajkumar 提出了一种图神经网络来检测 LiDAR 点云中的对象。为此,他们在固定半径近邻图中有效地对点云进行编码。

点体素混合检测。除了上面介绍的点和体素表示之外,还有一些工作采用混合模式,利用点和体素特征进行3D对象检测。例如,STD首先根据点特征生成建议,然后在框细化阶段采用体素表示。PV-RCNN 集成了多尺度体素特征和点云特征,以实现精确的 3D 物体检测。M3DETR通过变压器以多级尺度对点和体素特征进行编码。一般来说,点体素混合检测器受益于两种表示,这优于仅点或体素检测器。

与相机图像相比,LiDAR 点提供了强大的 3D 几何信息,这对于 3D 物体检测至关重要。此外,LiDAR传感器可以更好地适应强光等外部因素。目前,基于LiDAR的方法比基于相机的方法实现了更好的检测精度和更高的召回率。就 KITTI 3D 目标检测基准而言,基于单目图像的顶级方法 DD3D 实现了 16.87% mAP,而相当多基于 LiDAR 的方法实现了超过 80% mAP 。然而,由于以下原因,仅 LiDAR 的算法尚未准备好在自动驾驶汽车上广泛部署:1)LiDAR 昂贵且体积庞大,尤其是与相机相比。2)LiDAR的工作距离相当有限,远离LiDAR的点云极其稀疏。3)激光雷达在大雨等极端恶劣天气下无法正常工作。

2.4 通过其他传感器进行 3D 物体检测

除了摄像头和激光雷达之外,自动驾驶汽车还常常配备毫米波(简称mmWave)雷达传感器、红外摄像头等传感器。特别是毫米波雷达长期以来一直在自动驾驶汽车上使用,因为它的鲁棒性更强。比相机和激光雷达更恶劣的天气条件。更重要的是,雷达点提供了相应物体的速度信息,这对于避开动态物体至关重要。接下来,我们简要介绍一下毫米波雷达的背景。

毫米波雷达传感器。毫米波雷达是在毫米波频段运行的有源传感器。它们可以测量反射波以确定物体的位置和速度。它们比 LiDAR 便宜得多,能够抵抗恶劣的天气条件(雾、烟和灰尘),并且对照明变化不敏感 。然而,与相机和激光雷达相比,大规模和公共的毫米波雷达数据集有限。此外,由于毫米波雷达的分辨率较低,很难通过稀疏的二维雷达点直接检测物体的形状。与3D点云相比,由于多路径反射,雷达点的噪声要大得多,导致很难单独进行3D检测。毫米波雷达输出可以分为三个层次:1)时频频谱图形式的原始数据;2)对原始数据应用聚类算法进行聚类;3) 在集群上执行对象跟踪的轨迹。

基于毫米波雷达的 3D 物体检测。毫米波雷达已在 AV 系统中得到广泛应用。雷达通常将检测到的物体报告为 BEV 中的 2D 点,并提供到物体的方位角和径向距离。对于每次检测,雷达还会报告物体在径向方向的瞬时速度。据我们所知,Major 提出了第一个基于雷达的深度神经网络目标检测,并具有可靠的结果。然而,基于雷达的 3D 探测器面临着许多挑战。与LiDAR点相比,雷达点的噪声更大且精度更低,这给LiDAR适应雷达带来了困难。基于雷达的探测器的另一个瓶颈是缺乏带有地面实况信息注释的公开可用数据。在实践中,毫米波雷达更常用于与其他传感器融合:例如雷达-相机、雷达-激光雷达。

2.5 讨论

如上所述,不同的传感器具有不同的优点,有时是互补的。例如,相机是高分辨率和低成本的传感器,但缺乏深度信息并且对光照条件敏感。相反,LiDAR点可以提供周围环境的3D空间信息,但只能捕获稀疏点,价格较高。

一般来说,基于相机的方法生成的 3D 边界框的精确度低于基于 LiDAR 的方法。目前,基于 LiDAR 的方法在 3D 物体检测中非常流行,但也存在一些缺点。例如,随着距离的增加,点云的密度往往会迅速下降,而基于图像的检测器仍然可以检测远处的物体。为了充分利用互补特征并提高整体性能,更多的方法尝试设计融合网络将图像与点云结合起来。与依赖单个传感器的方法相比,这些方法在 3D 物体检测任务中实现了卓越的性能。我们稍后将在第四节讨论这个问题。

III 数据集和指标

数据集是深度学习领域不可或缺的一部分。ImageNet、PASCAL 和 COCO 等大规模图像数据集的可用性激发了图像分类任务的出色发展。受益于2D图像的蓬勃发展,3D物体检测迫切需要大量的标记数据以适应多变的环境。因此,我们讨论了自动驾驶中一些广泛使用的 3D 物体检测数据集。(此部分简单截图,不过多介绍,感兴趣的请看原文)

自动驾驶合集4_数据_36

自动驾驶合集4_自动驾驶_37

IV 基于深度学习的多模态 3D 检测网络

在本节中,我们将介绍基于深度学习的多模态 3D 检测网络,特别关注 LiDAR 和相机数据。我们通过以下三个重要的融合设计考虑因素来组织我们的调研:融合阶段,即在哪个阶段发生融合,回答“在哪里融合”的问题;融合输入,即融合数据使用什么表示,回答“融合什么”的问题;融合粒度,即融合数据以什么粒度进行组合,回答“如何融合”的问题。

自动驾驶合集4_人工智能_38

图 8 列出了每个设计考虑因素的可能选项。在本节的其余部分中,我们将讨论最近的深度多模态 3D 检测网络如何解决这三个设计问题。更重要的是,与其他两种设计考虑因素相比,融合模块的输入表现出最大的多样性并代表了特征网络设计。因此,我们将基于融合的 3D 检测网络总共分为五类。在每个类别中,我们详细回顾了相关的融合方案。

4.1 融合阶段:哪里融合?

该设计问题涉及哪个阶段执行融合操作。在这里,我们将检测网络步骤大致分为以下三个阶段:输入阶段、特征提取阶段和预测阶段(如图 9 所示)。根据三个阶段中哪个阶段执行融合,我们有三种选择:前融合、后融合和级联融合。

自动驾驶合集4_人工智能_39

4.1.1 前融合

前融合通常发生在每个分支达到其预测之前的输入阶段或特征提取阶段。它使得中间层的多模态特征之间能够进行更直接的交互,如图9所示。然后利用融合的特征在预测阶段执行分类和回归任务。前融合可以更好地利用模态丰富的中间信息,是目前应用最广泛的融合阶段。

4.1.2 后融合

与前融合相比,后融合对每种模态采用单独的分支,然后在预测阶段通过融合网络组合各个决策级输出。图 10 概述了这样一个框架。后融合可以更好地利用每种模式的现有网络。它还不需要处理诸如如何对齐来自不同模式的数据等问题。值得注意的是,Pang 采用了后期融合,并且在 KITTI 排行榜上优于单模态检测器。它利用 2D 和 3D 预测之间的几何和语义一致性,并从训练数据中学习两者之间的概率依赖性。具体来说,它获取 2D 和 3D 提案,然后将所有提案编码为稀疏张量。其缺点在于无法利用丰富的中间特征 。

自动驾驶合集4_自动驾驶_40

4.1.3 级联融合

级联融合采用混合模式,将一个分支的预测与另一个分支的输入融合,从而在多种模态之间建立级联关系。如图11所示,我们首先从图像流的预测阶段获得2D提案。接下来,使用已知的相机投影矩阵,可以将 2D 建议提升为定义 3D 搜索空间的平截头体。我们收集视锥体内的所有点以形成 3D 视锥体提案,用于对对象进行分类和定位。因此,一种模态提供的先验信息可以大大减少级联融合中另一种模态的搜索空间。第一个使用级联结构的融合方法是 F-PointNet 。然而,其性能很大程度上受到二维探测器精度的限制。

自动驾驶合集4_数据_41

4.2 融合输入:融合什么?

第二个设计选择涉及多模态数据以何种形式或表示形式输入融合模块。融合模块的输入表现出最大的多样性,代表了每种设计的独特想法。对于激光雷达相机融合,我们可以将原始传感器数据、各种中间特征,甚至图像/点云分支的结果级输出作为融合输入。具体来说,融合模块可以接收体素网格、原始点云或点云在 BEV 或 RV 上的投影形式的 LiDAR 数据,图像特征图、分割掩模甚至相应的伪 LiDAR 点形式的相机数据云。

在本节中,我们首先介绍可以分别由图像和点云分支使用的典型输入,然后根据输入组合将基于融合的 3D 检测网络分为总共五类。在这里,我们重点回顾前融合方法。

4.2.1 LiDAR-相机融合的典型融合输入

我们首先介绍基于融合的检测流程中分别用于图像分支和点云分支的典型融合输入,如图 12 所示。更准确地说,融合模块的模态输入是某个中间层,无论是简单的数据预处理功能还是神经网络块。

自动驾驶合集4_数据_42

图像分支的典型融合输入。大多数激光雷达相机融合方法从图像分支获取以下三种融合输入之一,即特征图、分割掩模和伪激光雷达点云。

自动驾驶合集4_人工智能_43

特征图:深度神经网络能够从原始图像中提取外观和几何特征图,这是相机和其他传感器之间融合最常用的输入。与原始图像相比,特征图的利用探索了更丰富的外观线索和更大的感受野,这使得模态之间的交互更加深入和彻底。我们列出了一些可用于获取特征图的流行主干网,这些特征图可以馈送到融合模块:例如 VGG-16、ResNet、DenseNet 。

分割掩模:图像通过语义分割网络以获得逐像素分割掩模。图像掩模通常用于与其他传感器数据融合,作为图像处理分支的独立产品。与特征图相比,使用掩模作为相机数据融合输入具有以下优点。首先,图像掩模可以作为图像更紧凑的摘要特征。其次,通过使用已知的校准矩阵进行点到像素映射,可以轻松地使用像素级图像掩模来“绘制”或“装饰”LiDAR 点。我们列出了一些用于基于融合的算法的流行图像分割网络:DeepLabV3、Mask-RCNN 和轻量级网络 Unet。

伪LiDAR点云:相机数据也可以转换为伪点云作为融合输入。伪点云表示将图像像素提升到3D空间,其信号比实际LiDAR点云密集得多。不利的一面是,它通常存在长尾问题,因为估计的深度在对象边界周围可能不准确。伪LiDAR点是根据估计的深度图将图像像素反投影为伪3D点而获得的。在 3D 多模态检测的背景下,这种表示有助于多任务学习。使用伪点云作为融合输入,我们可以轻松促进图像和点云之间的密集特征图融合。

点云分支的典型融合输入。LiDAR 点云通常是根据从不同视点收集的深度测量值合成的。它基本上是 3D 坐标系中的一组点,通常由 x、y、z 和反射强度定义。下面,我们讨论常用于激光雷达相机融合的典型激光雷达输入,即体素网格、原始点云以及点云在 BEV 或 RV 上的投影,其可视化结果分别如图 16 所示。

自动驾驶合集4_自动驾驶_44

体素化点云或体素网格:由于常规体素网格上的高效并行处理潜力,体素化点云被广泛用作融合输入。我们首先将 3D 空间离散化为 3D 体素网格,然后通过体素特征编码(VFE)层获得体素特征。因此,我们可以利用 3D CNN 来提取更深层次的点云特征。体素化点的融合也有一些缺点。首先,它会遭受信息丢失。体素大小与丢失的空间信息量高度相关。为了说明这一点,让我们看一下图 16 (b),其中体素(蓝色)比 (a) 中的原始点稀疏得多。其次,在体素化过程中,由于LiDAR点仅位于物体表面,因此会产生大量空体素,这可能会对融合性能产生不利影响。第三,处理 3D 体素需要耗时的 3D 卷积运算。相应地,融合网络的训练时间将不可避免地增加。在实践中,点云数据通常被体素化为仅在 x-y 平面(我们称为支柱)上均匀分布的网格,以满足计算和有效性需求。

原始点云:得益于高效的3D点云处理网络,可以直接处理原始3D点云以获得合适的点特征,而不会造成体素化损失。具体来说,我们采用点云编码器来处理原始点并获得点特征向量。与基于体素的方法相比,直接将原始点作为输入可以保留更多信息。然而,基于点的方法通常计算成本较高,尤其是在处理大型场景时。例如,对于广泛使用的 Velodyne LiDAR HDL-64E,它每帧收集超过 100,000 个点。因此,综合考虑效率和性能,对点云数据进行适当的降采样进行数据预处理是必要的。

BEV 或 RV 投影:融合模块的另一个典型点云输入是点云的 BEV 或 RV 投影。由此产生的伪图像可以由 2D CNN 有效地处理。BEV 通常被用来与图像特征融合,因为 BEV 平面上物体之间的重叠要少得多。用于融合的另一种流行的基于视图的输入是 RV,它也是旋转 LiDAR 传感器的本机表示。本质上,它形成了一个紧凑的 2.5D 场景,而不是稀疏的 3D 点云。将点云投影到 RV 上可以保留 LiDAR 传感器数据的完整分辨率并避免空间损失。然而,RV 面临着近处和远处物体之间尺度变化的问题。在融合流程中,这些提到的点云投影通常首先使用 2D CNN 进行处理以获得基于视图的特征,然后池化到与图像特征相同的大小。

4.2.2 LiDAR-相机融合的典型输入组合

我们发现以下融合输入组合对于 LiDAR-相机融合模块来说是最流行的:(1) 点云的 BEV/RV + 图像特征图,(2) 体素化点云 + 图像特征图,( 3)原始点云+图像特征图和(4)原始点云+图像掩模。此外,利用多种类型的图像/点云输入来形成更全面的融合已成为最近的趋势。我们还在这里回顾了这些方法。下面我们讨论属于这 5 个融合输入类别之一的基于融合的方法,特别关注这些融合输入组合如何随着时间和技术的发展而演变。

点云的 BEV/RV + 图像特征图。在 3D 目标检测流行之前,基于图像的 2D 目标检测引起了广泛关注。因此,一旦考虑将 LiDAR 用于 3D 物体检测,就提出了几种 LiDAR-相机融合算法,将 3D 点云投影到 2D 平面上,并将所得的点云 2D 视图与图像特征图相结合。我们在下面讨论此类中的典型算法。MV3D是该类别的开创性工作。它将点云的 FV(前视图)和 BEV 作为输入,并利用 3D 区域提案网络 (RPN) 生成 3D 提案。接下来,MV3D 将来自多个提案的多视图特征向量集成为相同的长度,并将它们放入基于区域的融合网络。AVOD通过设计采用高分辨率特征图的更先进的 RPN,实现了比 MV3D 更好的性能,特别是在小对象类别中。它还在 RPN 阶段合并来自多个视图的特征,以生成更准确的积极建议。AVOD仅以点云的BEV和图像作为输入,有效降低了计算成本。基于 AVOD,SCANet 利用基于编码器-解码器的提议网络和空间通道注意(SCA)模块来捕获多尺度上下文信息,并使用扩展空间上采样(ESU)模块来恢复空间信息。然而,这些方法有局限性,特别是在检测行人和骑自行车者等小物体时。为了克服这些限制,Contfuse 执行连续卷积从点云的 BEV 中提取多尺度卷积特征图并将其与图像特征融合。连续卷积的参与从相邻观测中捕获局部信息,并导致更少的几何信息丢失。此外,使用点云的BEV或FV作为融合输入的另一个缺点在于将3D点云投影到2D平面时不可避免的3D空间信息丢失。点云的距离视图(RV)可以避免上述信息丢失问题。与 BEV 和 FV 投影相比,RV 是一种紧凑的,更重要的是,它是 LiDAR 的内在表示。因此,最近的趋势是将点云的 RV 与 RGB 图像特征图直接结合起来,而不会产生投影损失。以 RV 表示作为输入,FuseSeg 建立点像素映射并最大化多模态信息。在表 6 中,我们总结了此类融合方法的贡献和局限性。

体素化点云+图像特征图。体素化将不规则的点云转变为规则的 3D 体素。随着体素化在点云处理中变得流行,体素网格已普遍用作融合输入。表 7 总结了属于此类别的方法。Sindagi 使用体素和图像特征图作为输入,通过校准将非空体素特征投影到图像平面。然后通过设计的融合网络将图像特征连接到体素特征。在最后阶段,3D RPN 处理聚合数据并生成 3D 检测结果。类似地,在另一项工作 3D-CVF中,空间注意力图用于根据每种模态对检测任务的贡献来权衡它们。3D-CVF 采用自动校准投影来构建平滑的联合 LiDAR 相机特征。尽管如此,当仅将每个体素网格的中心点投影到图像特征上时,此类方法面临特征模糊问题。这会导致每个体素内详细空间信息的丢失。最近,为了克服这个瓶颈,VPF-Ne巧妙地在“虚拟”点处对齐和聚合点云和图像特征。特别是,由于密度介于 3D 体素和 2D 像素之间,虚拟点可以很好地弥合两个传感器之间的分辨率差距,并保留更多信息进行处理。后来,PointAugmenting 通过首先用预先训练的 2D 检测模型提取的相应特征“装饰”原始点来解决模糊问题。然后对装饰点进行体素化并进一步处理。PointAugmenting 还受益于遮挡感知点过滤算法,该算法在训练期间始终将虚拟对象粘贴到图像和点云中。

原始点云+图像特征图。如前所述,体素化点云可能会因体素化过程而导致一定程度的信息丢失。后来,PointNet [14]的出现使得直接处理原始点云成为可能,而无需任何投影或体素化。因此,PointNet 激发了一系列研究,将点直接与特征图结合起来作为融合输入(表 8 中总结)。与之前基于融合的方法不同,PointFusion 以级联方式结合了 ResNet50 的全局图像特征和 PointNet 的点云特征。这种串联操作虽然简单,但不能很好地对齐多模态特征。因此,Huang提出了LI融合层,明确地建立点特征和相机图像特征之间的映射,从而提供更精细、更具辨别力的表示。它还利用点云特征来估计相应图像特征的重要性,从而减少遮挡和深度不确定性的影响。

原始点云+图像掩模。Xie直接对3D点进行连续卷积,同时检索更深层次的语义特征而不是图像特征作为图像输入。主要原因在于两个方面。1)在语义分割的监督下学习的特征在表示图像时通常更具表现力和紧凑性。2)获得齐次变换矩阵是可行的,它可以建立2D掩模和3D点之间的关系。因此,最近有不少研究使用结果级特征(例如分割掩模)来与原始点融合,如表 9 所示。为了融合点云数据和图像掩模,LiDAR 点通过齐次变换投影到图像平面,从而在两者之间建立 3D-2D 映射。我们将 PointPainting 作为融合网络的典型示例。它将原始点和分割结果作为融合输入。接下来,在融合模块中,我们首先将点投影到图像上,然后将分割分数附加到原始 LiDAR 点。更重要的是,PointPainting可以自由地应用于基于点和基于体素的激光雷达探测器,并进一步提高整体性能。受到成功的 PointPainting 的启发,CenterPointV2在 nuScenes 上几乎获得了最先进的结果,而 HorizonLiDAR3D在 Waymo 开放数据集挑战赛上名列前茅。

模态的多输入。同时,随着旨在处理点云和图像的深度学习网络变得越来越多样化,单一模态采用多个输入进行融合也很常见。MMF 是这一类别的先驱。它提出了一种端到端架构,可以执行包括 2D 和 3D 对象检测、深度补全等在内的多项任务。具体来说,融合模块从图像分支获取图像特征图以及伪 LiDAR 点云,并来自点云分支的 BEV。然后将这些输入联合融合以进行 3D 对象检测。最近,Wang 提出了一种多表示融合框架,以体素网格、点云的 RV 投影和图像特征图作为输入。他们进一步估计了这三个来源与注意模块对于实现自适应融合的重要性。

4.2.3 讨论

总而言之,点云输入从点云的投影、体素网格演变为原始点,力求最大限度地减少点云投影或体素化中产生的信息损失。同时,RGB图像输入从较低级别的特征图演变为较高级别的语义分割结果,力求充分利用图像数据的丰富性。此外,为了利用同一数据流的不同视角,最近的融合网络开始利用来自同一模态的多个输入。这些趋势是由快速增长的计算能力以及强大的深度学习网络的快速发展所促成的。这些因素相结合,可以提供更准确的激光雷达相机融合结果。

4.3 融合粒度:如何融合?

在本节中,我们讨论基于融合的算法的第三种设计选择。它是由两个数据流以什么粒度组合来定义的,这也解决了“如何融合”的问题。通常有三种选项:RoI 级、体素级和点级(最后一个为最细粒度)。一般来说,融合粒度对于融合框架的复杂性和有效性至关重要。更精细的融合粒度需要更多的计算,但通常会带来更优越的性能。下面我们详细讨论这三个粒度级别(表 5 中总结)。

4.3.1 RoI级别

本质上,RoI 级融合仅融合选定对象区域的特征,而不是特征图上的密集位置。因此,RoI 级融合通常在相对较晚的阶段执行(即,在 3D 区域提议生成阶段之后)。这种融合粒度发生在对每个视图应用 RoI 池化以获得相同长度的特征向量时,如图 21 所示。此外,它通常发生在对象提议级别,以便从 2D 获取 3D 平截头体通过几何关系的 RoI 。因此,RoI 级融合限制了神经网络在早期阶段捕获跨模态交互的能力。为了克服这个缺点,RoI-level 融合通常与其他融合粒度相结合,以进一步细化提案。

自动驾驶合集4_自动驾驶_45

4.3.2 体素级

与 RoI 级相比,体素级融合利用了相对较早的融合阶段。体素化点云数据通常被投影到图像平面上,因此我们可以将图像特征附加到每个体素,如图22所示。在这里,我们在体素特征和图像特征之间建立相对近似的对应关系。具体来说,我们通过相机投影矩阵将每个体素特征中心投影到图像平面。获得图像域中的参考点后,将相应的图像特征附加到LiDAR体素特征分支中。体素级融合会导致一定程度的信息丢失,这是由于体素化中的空间信息丢失和非平滑相机特征图造成的。为了解决这个问题,可以通过插值投影组合相邻的图像特征像素来校正空间偏移,从而可以实现体素和图像特征之间更准确的对应。此外,我们可以探索交叉注意机制,使每个体素能够感知整个图像域并自适应地关注相应的 2D 特征,而不是采用一对一的匹配模式。与 RoI 级融合相比,这种体素级融合的粒度更细、更精确。此外,为了处理由 LiDAR 稀疏性导出的空体素,体素级融合可以聚合密集的图像信息以补偿稀疏的 LiDAR 特征。

自动驾驶合集4_人工智能_46

4.3.3 点级

点级融合通常是前融合,其中每个 3D 点都由图像特征或掩模聚合,以捕获密集的上下文。通过将相应的图像特征或掩模“提升”到 3D 点的坐标,点级融合为每个 3D 点提供了一个额外的通道。具体来说,我们使用已知的变换矩阵将3D点投影到2D图像像素,从而建立3D-2D映射。接下来,我们可以通过映射索引用相应的图像掩模来装饰点或体素特征。图 23 概述了这个过程。点级融合的突出优点是能够总结来自两种模态的有用信息,因为图像特征在很早的阶段就被连接起来。与上述两种融合粒度级别相比,我们可以简单地建立稠密图像和稀疏点云之间的对应关系,而不会出现模糊问题。尽管实验结果表明点级融合有效提高了整体性能,但仍然存在局限性。首先,由于图像域中固有的遮挡问题,映射到遮挡图像区域的3D点可能会得到无效的图像信息。其次,与体素级融合相比,点级融合在内存消耗方面效率较低。

自动驾驶合集4_数据集_47

4.3.4 讨论

图24清楚地显示了基于深度学习的多模态3D检测方法出现的年份。我们还标记了每种方法的融合粒度。随着时间的推移,我们观察到粒度最初相对较粗,然后变得更细。同时,一些融合方法采用不止一种融合粒度级别来进一步细化。

自动驾驶合集4_数据_48

4.4 LiDAR-Camera Fusion:总结与发展

综上所述,RoI 级融合相当有限,因为这种融合缺乏深度的特征交互。后来的体素级和点融合方法允许深度特征交换,并且有自己的优点。然而,最近的一些研究表明,由于校准矩阵建立的点和像素之间的硬关联,此类方法很容易受到传感器未对准的影响。最近,基于 BEV 的方法在 BEV 地图分割中的成功鼓励我们将其扩展到基于融合的 3D 对象检测任务。后续工作已经证明,将 LiDAR 功能与 BEV 中的摄像头功能融合可以有效防止图像质量下降和传感器未对准。因此,一种用于 LiDAR-相机融合的新 BEV 级范式已经出现。这些方法不是通过3D2D硬关联来收集2D掩模或特征,而是直接将图像特征提升到3D世界,并且这些提升的特征可以处理到BEV级别,以便在检测管道的某个阶段与LiDAR BEV特征融合。例如,BEVfusion使用现成的深度估计器 LSS以可学习的方式将每个图像特征提升到 BEV 空间,然后这些提升的点由单独的 3D 编码器处理以生成 BEV 映射,通过合并来自两种模式的两个 BEV 地图,LiDAR-相机融合发生在 BEV 级别。

4.5 与其他传感器融合

到目前为止,我们已经深入讨论了激光雷达相机融合方法。接下来,我们简要总结涉及与毫米波雷达(为简洁起见,在本文中称为毫米波雷达)传感器融合的方法。毫米波雷达的使用最近因其距离远、成本低和对运动敏感而变得流行。因此,我们简要讨论雷达-相机融合和激光雷达-雷达融合。

对于雷达相机融合,Chadwick 将雷达检测结果投影到图像平面,以提高远处物体的物体检测精度。类似地,Nabati 和 Qi 使用雷达检测结果首先生成 3D 目标建议,然后将它们投影到图像平面以执行联合 2D 目标检测和深度估计。CenterFusion建议利用雷达和摄像头数据进行 3D 物体检测。它首先利用中心点检测网络通过识别图像上的中心点来检测对象。接下来,它使用一种新颖的基于平截头体的方法将雷达检测与相应的 2D 建议关联起来,解决了关键数据关联问题。上述方法均直接利用雷达检测结果,没有挖掘雷达点的特征。相反,Kim 提出了一种低级传感器融合 3D 物体检测器,通过门控 RoI Fusion (GRIF) 将来自雷达和摄像机特征图的两个 RoI 结合起来,从而提供更强大的车辆检测性能。对于 LiDAR-Radar 融合,RadarNet融合雷达和 LiDAR 数据以进行 3D 物体检测。它采用早期融合方法来学习两个传感器的联合表示,并采用决策融合机制来利用雷达径向速度证据。令人失望的是,RadarNet 在罕见但严重的恶劣天气条件下面临着严重的性能下降。为了解决这个问题,钱先生利用了互补雷达,这种雷达受恶劣天气的影响较小,并在车辆上普遍使用。他们提出了一种两级深度融合检测器来增强整体检测结果。具体来说,该方法首先从 LiDAR 和互补雷达生成 3D 建议,然后融合多模态传感器流之间的区域特征。最后,我们想指出,融合多个同类传感器也是有用的。HorizonLiDAR3D结合了五个LiDAR传感器生成的所有点云来增强点云数据的信息。在这项工作中,执行了来自所有 LiDAR 传感器的点云的简单串联。

V 开放的挑战和可能的解决方案

传感器模态具有不同的属性并从不同的角度捕获相同的场景,这使得将来自多种模态的数据组合成连贯的数据流成为一项具有挑战性的任务。在本节中,我们讨论多模态 3D 物体检测的开放挑战和可能的解决方案,我们希望为如何提高多传感器感知系统的性能提供有用的指导。

5.1 公开挑战一:多传感器标定

传统的标定方法使用标定目标来导出相机的内在和外在参数。这个繁琐的过程需要大量的手动工作。常见的做法是开发一种无目标的自动校准方法,可以连续动态校准激光雷达传感器和摄像头。无目标校准目前是该领域的一个活跃研究课题。这些方法无需人类专家即可自动在多个传感器之间进行校准。然而,驾驶自动驾驶汽车时不可避免的颠簸和抖动会导致经过良好校准的激光雷达相机系统的外部参数发生变化。更糟糕的是,如果不及时纠正,误差会逐渐累积,最终可能影响感知结果。解决这个问题的一个可能的解决方案是将激光雷达和相机集成在一个套件中,最大程度地防止它们的相对位移。

5.2 公开挑战二:融合过程中的信息丢失

在融合多模态数据时,由于投影、量化、特征去毛刺等原因,不可避免地会丢失一定量的信息。在设计多模态融合网络时,我们需要注意融合的阶段、输入和粒度。融合操作,以尽量减少信息损失。融合阶段的选择会导致不同程度的信息丢失。后融合阶段很容易实现,但无法享受原始数据或早期特征图中嵌入的丰富信息。考虑到问题的复杂性,如果可能的话,要确定平衡信息丢失和易于实施的最佳融合阶段是非常具有挑战性的。为此,一个可能的解决方案是考虑利用神经架构搜索(NAS)技术来找到管道内适当的融合阶段。它定义搜索空间,然后设计搜索算法来提出接近最优的神经架构。融合输入的选择对数据投影或体素化导致的信息丢失量影响最大。例如,将点云转换为其 BEV 会在垂直方向上压缩点云,从而导致高度信息丢失。将点云转换为其 RV 会遇到尺度变化的问题。因此,找到合适的输入表示形式来尽可能保留丰富的几何和语义信息非常重要。展望未来,我们可以研究几种可能的解决方案。具体来说,我们可以利用注意力机制来增强每种模态的某些特征。或者,我们可以采用多种表示来保留重要信息。例如,我们可以利用点云和相应的体素网格作为点云分支的融合输入。然而,现有方法没有充分利用时间融合输入,这可能限制多模态 3D 对象检测的性能。进一步,我们认为学习跨传感器和时间的 4D 时空信息融合具有重要意义。融合粒度的选择也会影响信息丢失的量,例如,以粗粒度对齐多模态数据会导致特征模糊的问题。一种可能的解决方案是采用可学习的校准偏移来聚合相邻空间信息。这样,我们就可以最大限度地发挥数据融合的效果。

5.3 公开挑战三:高效多模态数据增强

由于数据集中的对象数量有限,通常采用数据增强来确保高效学习并避免过度拟合。针对每个单个数据流的现有数据增强技术可以应用于深度融合方法,例如对象剪切和粘贴、随机翻转、缩放、旋转等。然而,为了保持多种模式下数据增强的一致性,我们需要在数据元素(例如点或像素)之间构建细粒度的映射。不幸的是,增强操作通常选择对随机选择的对象进行操作,因此在各种模式中不一致。最近,提出了几种方法来解决这个问题。张提出了一种新的多模态增强方法,通过切割真实对象的点云和图像块并将它们以一致的方式粘贴到不同的场景中,从而防止多模态数据之间的错位。将3D点投影到2D像素时,首先进行平移、旋转、翻转等逆向操作,恢复原始点云,然后根据标定信息得到点像素映射。未来,需要研究更有效的多模态增强技术。

5.4 公开挑战四:低成本多模态3D物体检测

单目或立体相机是最常见的低成本传感器,可以满足批量生产的要求。然而,如果没有准确的 3D 几何信息,仅依靠相机无法产生与基于 LiDAR 的方法相媲美的 3D 检测结果。事实上,最先进的单目方法 DD3D 在 KITTI 3D 物体检测排行榜上仅达到 16.87% mAP;最好的立体方法LIGAStereo可以达到64.66%的mAP。尽管如此,最好的仅 LiDAR 方法 BtcDet获得了 82.86% 的 mAP。展望未来,随着知识蒸馏的发展,人们可以利用 LiDAR 数据,使用大规模且经过良好校准的多模态数据,为基于相机的探测器提取 3D 几何信息。这种方法可以实现准确的检测以及较低的系统成本。

5.5 公开挑战五:大数据集短缺

多模态 3D 检测的另一个瓶颈是高质量、公开可用的数据集(带有真实信息注释)的可用性。目前,3D检测中流行的数据集存在以下问题:尺寸小、类别不平衡和标记错误。无监督和弱监督融合网络可以允许网络在大型、未标记或部分标记的数据集上进行训练。还有一些新兴的工作为 RGB 图像和点云生成合成数据集,它们提供具有丰富注释的大规模数据。然而,合成数据集和真实世界数据集之间可能存在域差距。最近的一些作品尝试利用真实感渲染、无监督域适应和生成对抗网络(GAN)等技术来弥合合成数据和真实数据之间的差距。尽管如此,如何使用基于合成数据训练的模型来处理现实世界的场景仍有待进一步研究。

VI 总结

由于 3D 视觉在自动驾驶等应用中的重要性日益增加,本文回顾了最近的多模态 3D 物体检测网络,特别是那些融合相机图像和 LiDAR 点云的网络。我们首先仔细比较流行的传感器并讨论它们的优缺点,并总结单模态方法的常见问题。然后,我们对自动驾驶常用的几个流行数据集进行了深入总结。为了提供系统回顾,我们根据以下三个设计考虑因素的选择来讨论多模态融合方法:(1)融合阶段,即融合在流程中发生的位置,(2)融合输入,即哪些数据输入用于融合,以及(3)融合粒度,即两个数据流以什么粒度级别进行组合。最后,我们讨论多模态 3D 对象检测中的开放挑战和潜在解决方案。