文章解读 -- MotionNet: Joint Perception and Motion Prediction for Autonomous Driving Based on Bird’s Eye

本文主要是介绍文章解读 -- MotionNet: Joint Perception and Motion Prediction for Autonomous Driving Based on Bird’s Eye,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章解读 – MotionNet: Joint Perception and Motion Prediction for Autonomous Driving Based on Bird’s Eye View Maps

摘要

可靠地感知环境状态的能力,特别是对物体的存在以及它们的运动行为判断,对于自动驾驶至关重要。在这项工作中,我们提出了一个高效的深度模型,称为 MotionNet,用于从 3D 点云同时执行感知和运动预测。 MotionNet 将一系列LiDAR扫描作为输入,输出鸟瞰图 (BEV),在每个网格单元将对象类别和运动信息编码。MotionNet的主干网络是一种新颖的时空金字塔网络,它以分层方式提取深层空间和时间特征。为了在空间和时间上加强预测的平滑性,MotionNet加入空间和时间一致性loss。大量实验表明,提出的方法总体上优于最先进的方法,包括最新的场景流和基于3D对象检测的方法。这表明提议方法的潜在价值,可以作为基于边框的系统的备份,并在自动驾驶中向运动规划提供补充信息。

1. 介绍

环境状态评价通常包括两个任务:(1)感知,从背景中识别前景对象;(2)运动预测,预测对象的未来轨迹。传统的环境感知方法主要依赖于包围盒的检测,通过图像2D,点云3D和融合的方式。检测的包围盒被送入到追踪器中,进行运动预测。另一个可替代方向是使用占据格网图(OGM)代表环境信息,可以为可行驶区域和运动规划提供支持。缺点是随时间,难以找到网格之间的联系,而且物体类别信息被丢弃了。

基于此,BEVmap拓展了OGM,提供了三个重叠的信息:占据、运动和类别信息。我们的模型MotionNet,即使针对训练集中没有的物体。模型的核心是新奇的时空金字塔网路(STPN),STPN在层次结构中执行一系列时空卷积(STC),每个STC依赖于2D空间卷积,然后是轻量级的伪 1D 时间卷积,STPN 的输出被传送到不同的头:网格分类、状态估计和运动预测。
总结我们做的主要工作:

  • 我们提出了一种新的模型,称为MotionNet,用于同时进行BEV图的感知和运动预测。MotionNet对边界框不做要求,可以为自动驾驶提供补充信息;
  • 我们提出了一种新颖的时空金字塔网络,在层次结构中提取时空特征。这种结构轻巧高效,适合实时部署;
  • 我们开发空间和时间一致性loss,来约束网络训练,在空间和时间上加强预测的平滑性;
  • 大量实验验证了我们的有效性方法,并提供深入的分析来说明,我们设计背后的动机。

2. 相关工作

感知。现有检测工作分三类:图像2D,点云3D和融合的方式。
运动预测。典型方法是依赖于准确的物体检测和追踪轨迹的获取。另一种是联合3D物体检测、追踪和运动预测。
流估计。依赖于输入数据,运动信息从2D光流和3D场景流获取。

3. 方法

在本节中,我们介绍 MotionNet,见下图。包括三个部分:
方法图
(1) 原始 3D 点云到 BEV 地图的转化;
(2) 时空金字塔网络作为骨干;
(3) 特定任务head,用于网格单元分类和运动预测。

3.1 自身运动补偿

我们需要将所有过去的多帧同步对齐到当前的帧,即表示其中的所有点云都是基于当前坐标系,这样避免了自车运动所带来的影响。

3.2 基于BEV地图的表征

不像PointNet那种每个体素带有高维特征,我们只使用二进制0/1代表体素,表示体素是否有点云占据。然后将3D体素转为为2D伪图像,高度的维度对应图像里面的通道。通过标准2D卷积计算,软硬件支持更友好。

3.3 时空塔式网络

参考视频分类任务的相关成果,我们使用low-cost(例如2D卷积)取代笨重的3D卷积。我们目标是分类当前时刻每一个BEV格子单元和估计它的未来位置。有两个问题需要阐述:一是何时和怎样做才能增强时序特征,二是怎样提取多尺度的时空特征,该特征用来捕获局部和全局语义。下图是SPTN网络结构,由STC模块组成,内部包含标准的2D卷积,来捕获时空特征。3D卷积的核大小是k×1×1,其中k对应于时间维度。这样的 3D 滤波器本质上是一个伪 1D 卷积,因此能够降低模型复杂性。
时空金字塔模型
特别地,对于空间维度,我们使用缩放步数:2,在多个尺度上计算特征图。同样,对于时间维度,我们每层时间卷积后,逐渐降低的时间分辨率,从而提取不同的时间语义。我们使用全局的时序池化来提取显著的时间特征,通过横向链接将他们传递给特征解码的上采样层。

3.4 输出头

我们再SPTN网络结束位置增加了3个头
1)单元格分类头,对BEV图分割和感知每个格的类别;
2)运动预测头,预测未来单元格的位置;
3)状态估计头,估计每个单元格运动状态,为运动预测提供辅助信息。
运动预测头采用平滑L1的loss进行训练,但是可能会带来静态单元格的异常抖动。我们从其他两个头的输出来规范单元格的轨迹。对于静态背景,如停靠的车辆,使用阈值参数来抑制。
评论。与基于边界框的方法相比,上述设计可能能够更好地感知训练集之外的物体。

3.5 loss 函数

对于分类与状态估计头,我们使用交叉商loss,运动预测头我们使用平滑的L1 loss。以上的loss,仅能够在全局范围内规范网络训练,但不保证局部的时空一致性,故需要增加以下的loss。

  • 空间一致性loss
    L s = ∑ ∑ ∥ X i , j r − X i ‘ , j ‘ r ∥ L_s = \sum \sum \lVert X_{i,j}^{r} -X_{i^`,j^`}^{r} \rVert Ls=∑∑Xi,jrXi,jr
    对于同一个物体Ok,被分辨率划分为几个cell,但是物体作为一个刚性整体,理论上每一个cell的运动向量X(i,j)是一样的。X代表预测位置(i,j),为了减少计算,我们只选择一个物体两个临近的cell位置,它只是物体很多cell集合的子集,只对其做计算。

  • 前景时序一致性loss
    L f t = ∑ ∥ X o k r − X o k r + t ∥ L_{ft}= \sum \lVert X_{ok}^{r} -X_{ok}^{r+t} \rVert Lft=XokrXokr+t
    我们认为连续两帧之间运动不会出现尖锐的变化,这里的X是代表物体k的各个cell的平均运动。

  • 背景时序一致性loss
    L b t = ∑ ∥ X i , j r − T i , j ( X ~ r − t ) ∥ L_{bt}= \sum \lVert X_{i,j}^{r} -T_{i,j}(\tilde X^{r-t}) \rVert Lbt=Xi,jrTi,j(X~rt)∥
    其中T代表自身运动,或者从ICP配置算法得到。前一帧属于背景运动cell是静止的,后一帧对于前一帧的背景cell状态进行刚体变换后,在相同的(i,j)位置,求解L1 Loss。

  • 总的loss如下
    L = L c l s + L m o t i o n + L s t a t e + α L s + β L f t + γ L b t L = L_{cls} + L_{motion} + L_{state} + \alpha L_s + \beta L_{ft} + \gamma L_{bt} L=Lcls+Lmotion+Lstate+αLs+βLft+γLbt

4. 实验

利用nuScene数据集做的评估实验。

数据集
++单元格运动的真值获取,将每个bbox中的每个单元运动,计算方式为Rx+c-x,R是box中心位置相对自车的旋转,x代表单元格的位置,c是bbox的中心++。bbox以外的单元格,我们将运动信息置为0。850个场景数据,500个训练,100个验证,250个测试。
我们将每个场景分成片段作为输入网络。为了减少冗余,每个剪辑片段只包含对应于当前时间的关键帧,以及与关键帧同步的四个历史帧。关键帧以2Hz采样用于训练,而对于验证/测试它们以1Hz采样以减少相似性。每个剪辑片段中,两连续的时间跨度为200ms。增加一些剪辑片段(关键帧+50ms),与关键帧剪辑片段组成对,用来计算时序一致性loss。

实现细节
点云范围[-32,32]×[-32,32]×[-3,2],voxel尺寸(0.25,0.25,0.4)。我们使用连续的5帧提取时序信息,定义了五种类别:背景,车辆,行人,自行车,其他。其他包含nuScene中所有存在的前景目标。

评价标准
对于运动预测,将单元格分成三类速度:静态,低速(<5m/s),高速(>5m/s)。每一个组别中计算平均值和中值。
对于分类:单元格分类准确度(OA),平均类别准确度(MCA)。

4.1 结果

结果

4.2 消融实验

主要测试几个影响因素:帧数、自运动补偿、输入数据表征、时空特征提取、预测策略

这篇关于文章解读 -- MotionNet: Joint Perception and Motion Prediction for Autonomous Driving Based on Bird’s Eye的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/307406

相关文章

Retrieval-based-Voice-Conversion-WebUI模型构建指南

一、模型介绍 Retrieval-based-Voice-Conversion-WebUI(简称 RVC)模型是一个基于 VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech)的简单易用的语音转换框架。 具有以下特点 简单易用:RVC 模型通过简单易用的网页界面,使得用户无需深入了

MCU7.keil中build产生的hex文件解读

1.hex文件大致解读 闲来无事,查看了MCU6.用keil新建项目的hex文件 用FlexHex打开 给我的第一印象是:经过软件的解释之后,发现这些数据排列地十分整齐 :02000F0080FE71:03000000020003F8:0C000300787FE4F6D8FD75810702000F3D:00000001FF 把解释后的数据当作十六进制来观察 1.每一行数据

Java ArrayList扩容机制 (源码解读)

结论:初始长度为10,若所需长度小于1.5倍原长度,则按照1.5倍扩容。若不够用则按照所需长度扩容。 一. 明确类内部重要变量含义         1:数组默认长度         2:这是一个共享的空数组实例,用于明确创建长度为0时的ArrayList ,比如通过 new ArrayList<>(0),ArrayList 内部的数组 elementData 会指向这个 EMPTY_EL

Spring 源码解读:自定义实现Bean定义的注册与解析

引言 在Spring框架中,Bean的注册与解析是整个依赖注入流程的核心步骤。通过Bean定义,Spring容器知道如何创建、配置和管理每个Bean实例。本篇文章将通过实现一个简化版的Bean定义注册与解析机制,帮助你理解Spring框架背后的设计逻辑。我们还将对比Spring中的BeanDefinition和BeanDefinitionRegistry,以全面掌握Bean注册和解析的核心原理。

GPT系列之:GPT-1,GPT-2,GPT-3详细解读

一、GPT1 论文:Improving Language Understanding by Generative Pre-Training 链接:https://cdn.openai.com/research-covers/languageunsupervised/language_understanding_paper.pdf 启发点:生成loss和微调loss同时作用,让下游任务来适应预训

java计算机毕设课设—停车管理信息系统(附源码、文章、相关截图、部署视频)

这是什么系统? 资源获取方式在最下方 java计算机毕设课设—停车管理信息系统(附源码、文章、相关截图、部署视频) 停车管理信息系统是为了提升停车场的运营效率和管理水平而设计的综合性平台。系统涵盖用户信息管理、车位管理、收费管理、违规车辆处理等多个功能模块,旨在实现对停车场资源的高效配置和实时监控。此外,系统还提供了资讯管理和统计查询功能,帮助管理者及时发布信息并进行数据分析,为停车场的科学

LLM系列 | 38:解读阿里开源语音多模态模型Qwen2-Audio

引言 模型概述 模型架构 训练方法 性能评估 实战演示 总结 引言 金山挂月窥禅径,沙鸟听经恋法门。 小伙伴们好,我是微信公众号《小窗幽记机器学习》的小编:卖铁观音的小男孩,今天这篇小作文主要是介绍阿里巴巴的语音多模态大模型Qwen2-Audio。近日,阿里巴巴Qwen团队发布了最新的大规模音频-语言模型Qwen2-Audio及其技术报告。该模型在音频理解和多模态交互

文章解读与仿真程序复现思路——电力自动化设备EI\CSCD\北大核心《考虑燃料电池和电解槽虚拟惯量支撑的电力系统优化调度方法》

本专栏栏目提供文章与程序复现思路,具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源程序擅长文章解读,论文与完整源程序,等方面的知识,电网论文源程序关注python

速通GPT-3:Language Models are Few-Shot Learners全文解读

文章目录 论文实验总览1. 任务设置与测试策略2. 任务类别3. 关键实验结果4. 数据污染与实验局限性5. 总结与贡献 Abstract1. 概括2. 具体分析3. 摘要全文翻译4. 为什么不需要梯度更新或微调⭐ Introduction1. 概括2. 具体分析3. 进一步分析 Approach1. 概括2. 具体分析3. 进一步分析 Results1. 概括2. 具体分析2.1 语言模型

【Linux】萌新看过来!一篇文章带你走进Linux世界

🚀个人主页:奋斗的小羊 🚀所属专栏:Linux 很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~ 目录 前言💥1、初识Linux💥1.1 什么是操作系统?💥1.2 各种操作系统对比💥1.3 现代Linux应用💥1.4 Linux常用版本 💥2、Linux 和 Windows 目录结构对比💥2.1 文件系统组织方式💥2.2