北京大学与长安汽车联合发布TEOcc: 时域增强的多模态占据预测

北京大学与长安汽车联合发布TEOcc: 时域增强的多模态占据预测

Abstract

作为一种新颖的3D场景表示,语义占据(semantic occupancy)在自动驾驶领域引起了广泛关注。然而,现有的占据预测方法主要集中于设计更好的占据表示形式,例如三视角(tri-perspective view)或神经辐射场(NeRF),而忽视了利用长时段信息的优势。本文提出了一种雷达-摄像头多模态时域增强占据预测网络,称为 TEOcc。我们的方法受益于3D目标检测中利用时域信息的成功经验。具体来说,我们引入了一个时域增强分支,用于学习时域占据预测。在该分支中,我们随机丢弃多视角摄像头的第 t-k 帧,通过长时和短时时域解码器分别利用其他相邻帧及多模态输入信息来预测其3D占据。此外,为了减少计算成本并整合多模态输入,我们特别设计了用于长时和短时时域解码器的3D卷积层。此外,由于轻量化的占据预测头是一个密集分类头,我们提出使用一个共享的占据预测头来服务于时域增强分支和主分支。值得注意的是,时域增强分支仅在训练过程中进行,并在推理阶段被丢弃。实验结果表明,TEOcc在nuScenes基准测试中实现了最先进的占据预测性能。此外,提出的时域增强分支是一个即插即用的模块,可以轻松集成到现有的占据预测方法中以提高其性能。

代码获取:https://github.com/VDIGPKU/TEOcc

 欢迎加入自动驾驶实战群

Introduction

三维占据预测是现代自动驾驶感知系统中的一项新颖且重要的任务。与常见的3D目标检测相比,占据预测可以使用连续的3D网格单元和语义标签来表示任意形状的物体。因此,它可以提供细粒度的几何细节,包括前景物体的具体形状以及整个场景中背景的具体几何结构,从而提高感知效果。此外,在自动驾驶场景中,仅识别训练期间遇到的预定义物体是不够的。未见过的物体可能会出现在道路上,并与自动驾驶车辆相撞。在这种情况下,3D占据预测可以通过非空网格单元和“其他”类别来呈现新物体,从而避免碰撞。

目前基于多视角摄像头的占据预测方法主要关注如何表示占据,包括体素、鸟瞰视角(BEV)、三视角和神经辐射场(NeRF)。一些方法使用层次表示来从粗略特征中获取细粒度的占据特征。尽管已经提出了许多占据预测方法,但它们在长时段时域建模方面的探索较少,而长时段建模在3D目标检测中取得了巨大成功。

为了应对这一问题,我们提出了一种带有时域增强分支的雷达-摄像头多模态占据预测网络,称为 TEOcc。具体来说,在时域增强分支中,我们随机屏蔽了时域多视角摄像头输入中的一帧,并通过长时和短时时域解码器生成其伪特征。需要注意的是,我们仅在训练阶段执行时域增强分支,因此推理时不会增加额外的计算开销。与 HoP 不同,为了减少训练成本并结合雷达特征,我们使用了3D卷积层设计长时和短时时域解码器。此外,HoP 通过拼接长时和短时解码器的特征生成一个伪特征,而 TEOcc 则使用独立的时域解码器生成两个伪特征。进一步地,我们提出使用一个共享的3D占据预测头来预测这两个伪特征和主分支的相应占据结果。

3.Method

3.1 整体架构

我们的整体架构如图2所示。具体来说,我们首先通过图像编码器和视图转换模块提取多帧3D体素特征。同时,我们使用雷达编码器提取雷达体素特征。然后,在时域增强分支中,我们丢弃选定帧的图像特征,并利用其他帧和雷达特征重建其伪特征。重建的伪特征和当前的3D特征一起发送到共享的占据预测头,用于最终的占据和语义预测。

图片

3.2 时域增强分支

如图3所示,我们的时域增强分支包括独立的长时和短时时域解码器。具体来说,给定3D图像体素特征序列 {Vt−N, Vt−N+1, …, Vt},其中包括N个历史图像体素特征和当前图像体素特征,我们随机遮蔽掉3D图像体素特征 Vt−k。接着,我们将剩余的3D图像体素特征序列 {Vt−N, …, Vt} − {Vt−k} 和雷达体素特征发送到长时时域解码器。对于短时时域解码器,我们使用相邻特征 {Vt−k−1, Vt−k+1} 和雷达体素特征作为输入。两个时域解码器预测两个伪3D体素特征 Vt−k。最后,我们使用占据预测头来预测 t−k 帧的占据结果。

图片

时域解码器。我们基于不同的时域输入设计了两种不同的时域解码器,参考了 HoP。短时时域解码器主要关注相邻体素特征集 {Vt−k−1, Vt−k+1} 的信息,而长时时域解码器则处理整个时域体素特征集 {Vt−N, …, Vt−k−1, Vt−k+1, …, Vt−1}。由于相邻帧之间的高时域相关性,短时时域解码器可以为 Vt−k 创建详细的空间表示。相比之下,长时时域解码器通过长时间的历史信息感知运动线索,从而提高定位精度。因此,这两个分支是相辅相成的。

如 HoP所示,Deformable Attention 在历史对象预测中表现出强大的能力,因为 Deformable Attention 中的坐标偏移可以匹配前景物体的运动,并为3D目标检测任务建模时域运动线索。然而,在占据预测任务中,每个体素都需要分类,而不仅仅是预测前景物体。因此,Deformable Attention 可能不适用于3D占据预测任务。此外,完整的3D Attention 可以捕捉到3D空间中的所有体素,但这会导致巨大的计算成本和时间开销。

幸运的是,在我们的实验中,我们发现简单的3D卷积不仅可以通过时域信息捕捉物体的运动,还可以为3D占据预测任务获得精确的密集体素表示。因此,我们用3D卷积替换了 HoP 中的 Deformable Attention,并特别设计了卷积层。

具体来说,如图3所示,我们设计了 ResNet-3D 和 FPN-3D 作为长时时域解码器。更具体地说,ResNet-3D 由三个阶段组成,包含下采样操作。每个阶段由多个3D BasicBlock 组成。每个3D BasicBlock 包含两个3D卷积层,后接一个 ReLU 激活层,如图4所示。在 ResNet-3D 的三个阶段中,我们获取了不同尺度的三个3D体素特征。为了进一步融合这些不同分辨率的3D体素特征,我们将它们发送到 FPN-3D。正如图5所示,我们首先使用三线性插值将这些3D体素特征上采样到一个分辨率。最后,我们将上采样的3D体素特征拼接起来,并将它们发送到一个卷积层,后接一个归一化层和 ReLU 激活层。通过使用这种多尺度特征金字塔网络来处理图像特征,我们可以增强空间识别能力,并为密集占据预测任务提供强大的适应性。

对于短时时域解码器,由于来自两个相邻帧的体素特征之间具有高度的时域相关性,我们发现两个3D卷积层加上一个 ReLU 激活层可以很好地融合相邻的体素特征。

3.3 雷达-摄像头融合与时域增强

在第3.2节中,我们讨论了基于多视角摄像头的3D占据预测方法中的时域增强。本节将时域增强扩展到雷达-摄像头多模态融合的3D占据预测。

具体而言,我们遵循 BEVFusion 的流程,并将统一的 BEV 空间替换为统一的 3D 体素空间。具体如图2所示,我们使用雷达编码器和体素编码器来提取雷达体素特征。然后,雷达体素特征被发送到主分支和时域增强分支进行雷达-摄像头融合。此外,按照 BEVFusion 的做法,我们将图像体素特征与雷达体素特征拼接在一起,并使用3D卷积层、归一化层和 ReLU 激活层作为融合层。我们为主分支和时域增强分支分别使用了三个独立的融合层。最后,融合的多模态特征被发送到共享的占据预测头,用于预测占据结果。

3.4 训练与推理

在训练阶段,我们保持主分支的原始占据损失,并增加两个来自时域增强分支的额外占据损失。总体优化目标公式如下:

图片

其中 LOcc_long 和 LOcc_short 表示来自长时和短时解码器的占据损失。

在推理阶段,时域增强分支被移除。我们仅使用主分支的占据预测,因此不会引入额外的推理成本。

4.Experiment

4.1 主要结果

我们在 Occ3D-NuScenes 验证集上,将 TEOcc 与之前的最先进 3D 占据预测方法进行了比较,结果如表1所示。TEOcc 展示了具有竞争力的 3D 占据预测性能。具体来说,TEOcc 在 mIoU 上达到了 39.36,超越了之前所有基于多视角摄像头的占据预测方法,包括 TPVFormer、SurroundOcc 和 FastOcc。此外,RenderOcc 中提到的动态对象识别挑战被我们的方法缓解。特别是,对于动态物体如汽车、公交车、挂车和卡车,TEOcc 相较于 RenderOcc 显著提高了占据性能。此外,对于静态物体,TEOcc 仍然领先于 RenderOcc,证明了时域增强对于全面理解 3D 空间关系的有效性。此外,结合雷达输入后,TEOcc-RC 在 mIoU 上提高了 3.54,超越了之前的最先进 3D 占据预测方法 FastOcc 3.69 mIoU。总的来说,结果表明,TEOcc 通过时域增强能够改进现有框架的占据表示构建和感知能力,增强对 3D 场景的整体理解。

图片

4.2 消融实验

为了验证所提模块的有效性,我们在 Occ3D-NuScenes 数据集上进行了广泛的消融实验。在本节中,为了降低训练成本,我们使用 0.5× 训练计划,即 12 个 epoch。

主要组件
我们进行了全面的实验,验证了每个模块的有效性。实验的主要结果如表2所示。长时增强网络提供了最显著的性能提升,达到 3.31 mIoU 的提升。短时解码器也通过 1.79 mIoU 提升了最终的预测结果。值得注意的是,我们使用随机选择策略来选择哪个帧在时域增强分支中被遮蔽,而 HoP 仅选择 t−1 帧进行遮蔽。结果表明,使用随机选择策略显著提升了性能。我们推测随机选择策略让模型更加关注周围场景的时域变化,而不是机械地记忆过去与当前帧的空间位置关系。

图片

独立的时域解码器
不同于 HoP,我们从两个时域解码器中获得了具有精细粒度的独立 3D 体素特征。如表3所示,使用独立的时域解码器在占据预测性能上优于将两个时域解码器的3D体素特征融合为一个3D特征的方式。我们推测这是因为长时和短时时域编码器由于不同的时域长度,学到的 3D 体素特征不同。将它们融合为一个3D体素特征可能导致特征冲突。

图片

数据增强
除了图像增强之外,我们还遵循 BEVPoolv2中的 BEV 数据增强,添加了体素数据增强。如表4所示,我们发现体素空间的水平翻转数据增强可以将占据预测性能从 31.16 mIoU 提升到 32.05 mIoU。

图片

共享占据预测头
如表5所示,我们对比了使用额外辅助占据头和共享占据头进行最终预测的结果。结果显示,使用共享占据头比额外辅助头提高了 1.51 mIoU。原因是占据头是一个密集的分类头,它将 3D 体素特征映射到占据类别。因此,共享占据头让生成的伪 3D 体素特征与主分支共享相同的特征空间,从而允许时域增强分支以更小的训练成本学习更统一的时域表示。

图片

训练成本
由于我们在训练阶段增加了时域增强分支,训练成本增加。为了评估 TEOcc 在训练中的效率,我们将其训练时间和 GPU 内存消耗与 BEVStereo 基线进行了比较。训练时间是在 8 张 NVIDIA A800 GPU 上评估的。如表6所示,TEOcc 带来的额外训练时间是可以忽略的。然而,由于在时域解码器中使用了 3D 卷积,内存消耗增加到了 1.8 倍。

图片

结论

本文的主要贡献如下:

  1. 本文提出了 TEOcc,一个雷达-摄像头多模态时域增强占据预测网络,将 HoP 扩展到多模态占据预测任务中。

  2. 不同于 HoP,我们使用手工设计的长时和短时时域解码器来独立预测占据,并使用一个共享的占据预测头。

  3. 构建在当前竞争性3D占据预测方法的基础上,TEOcc 在 nuScenes 数据集上实现了最先进的3D占据估计性能。

文章引用:TEOcc: Radar-camera Multi-modal OccupancyPrediction via Temporal Enhancement

最后别忘了,帮忙点“在看”。  

您的点赞,在看,是我创作的动力。

AiFighing是全网第一且唯一以代码、项目的形式讲解自动驾驶感知方向的关键技术。

长按扫描下面二维码,加入知识星球。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

scala 抽象类

理解抽象类 抽象的定义 定义一个抽象类 :abstract class A {} idea实例 抽象类重写 idea实例 练习 1.abstract2.错3.abstract class A{}4.对

保姆级Pinpoint(APM)实战教程

什么是Pinpoint Pinpoint是由韩国NAVER公司开发并开源的一款应用程序管理工具,主要针对大规模分布式系统进行性能监控和故障诊断。通过跟踪分布式应用程序之间的事务,帮助分析系统的整体结构以及其中的组件是如何相互连接的。 与其对标的还有Twitter的Zi…

软件模拟I2C和硬件直接驱动I2C读取TCA95系列I2C转IO芯片分析

问题描述: 软件读取I2C转IO信号跳变,低电平时能读到高电平信号,高电平时能读到低电平信号,正确信号和错误信号的比值约10:1。 原因分析: I2C芯片的驱动底层采用了软件模拟实现,没有防错机制,…

MongoDB 8.0已全面可用

全球广受欢迎的文档型数据库MongoDB目前最新最强的版本,在易用性、企业级安全性、 弹性、可用性等方面均有大幅提升,适用于各种应用程序。 MongoDB 8.0的优化使整体吞吐量提高了32%,时间序列数据聚合的处理速度提高了200%以上。MongoDB 8.0的…

SSD |(七)FTL详解(中)

文章目录 📚垃圾回收🐇垃圾回收原理🐇写放大🐇垃圾回收实现🐇垃圾回收时机 📚解除映射关系📚磨损均衡 📚垃圾回收 🐇垃圾回收原理 ✋设定一个迷你SSD空间: 假…

OpenAi推出ChatGPT客户端

10 月 18 日,继苹果 macOS 版之后,OpenAI 为微软 Windows 用户推出了 ChatGPT 应用桌面客户端。目前这款应用正在测试,ChatGPT Plus / Enterprise / Team / Edu 版本的付费用户可以在微软应用商店中下载使用。 这款应用实质上是网页版 ChatGP…

Part1_MCP4017T-502E/LT型数字变阻器使用方法

MCP4017T-502E/LT是Microchip(微芯)公司的一款SC70封装且具备7位单I2C™数字端口与易失性存储器数字电位器,通过数字接口来控制电位器的阻值大小,可用于需要精确调整电压分压比、信号增益控制等应用场景。相比传统的机械电位器&am…

【Java】多线程 Start() 与 run() (简洁实操)

Java系列文章目录 补充内容 Windows通过SSH连接Linux 第一章 Linux基本命令的学习与Linux历史 文章目录 Java系列文章目录一、前言二、学习内容:三、问题描述start() 方法run() 方法 四、解决方案:4.1 重复调用 .run()4.2 重复调用 start()4.3 正常调用…

初识Linux · 重定向和缓冲区

目录 前言: 预备知识 缓冲区 重定向 前言: 其实有了文件2的预备知识,我们已经初步了解了文件描述符fd是什么,底层是如何运作的了,那么本文,我们通过文件描述符对重定向和缓冲区有一个更深层次的理解&a…

鸿蒙开发案例:推箱子

推箱子游戏(Sokoban)的实现。游戏由多个单元格组成,每个单元格可以是透明的、墙或可移动的区域。游戏使用Cell类定义单元格的状态,如类型(透明、墙、可移动区域)、圆角大小及坐标偏移。而MyPosition类则用于…

三菱PLC如何实现数据排序的分析?

一、分析 将D100到D104中的据从小到大排序结果存在D100到D104中,如D100到D104中存入100,34,27,45,22这5个数据,编写一个子程序,只到通过调用这个子程序就可以实现这5个数据的排序。当然简单的方…

iOS IPA上传到App Store Connect的三种方案详解

引言 在iOS应用开发中,完成开发后的重要一步就是将IPA文件上传到App Store Connect以便进行测试或发布到App Store。无论是使用Xcode进行原生开发,还是通过uni-app、Flutter等跨平台工具生成的IPA文件,上传到App Store的流程都是类似的。苹果…

衡石分析平台系统分析人员手册-应用模版

应用模板​ 应用模板使分析成果能被快速复用,节省应用创作成本,提升应用创作效率。此外应用模板实现了应用在不同环境上快速迁移。 支持应用复制功能 用户可以从现有的分析成果关联到新的分析需求并快速完成修改。 支持应用导出为模板功能 实现多个用户…

数论的第二舞——卡特兰数

当然了,虽然主角是卡特兰数,但是我们该学的数论还是不能落下的,首先先来介绍一个开胃小菜线性筛 1.积性函数: 2.线性筛 线性筛的筛选素数的时间复杂度更低,可以达到O(n)的时间复杂度 将每一轮进行筛选的数 n 表示…

Threejs 实现3D 地图(02)创建3d 地图

"d3": "^7.9.0", "three": "^0.169.0", "vue": "^3.5.10" 地图数据来源&#xff1a; DataV.GeoAtlas地理小工具系列 <script setup> import {onMounted, ref} from vue import * as THREE from three im…

Spring Cloud 解决了哪些问题?

大家好&#xff0c;我是锋哥。今天分享关于【Spring Cloud 解决了哪些问题&#xff1f;】面试题&#xff1f;希望对大家有帮助&#xff1b; Spring Cloud 解决了哪些问题&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Spring Cloud 是一个为构建分布式…

汽车建模用什么软件最好?汽车建模渲染建议!

在汽车建模和渲染领域&#xff0c;选择合适的软件对于实现精确的设计与高质量的视觉效果至关重要。那么不少的汽车设计师如何选择合适的建模软件与渲染方案呢&#xff0c;一起来简单看看吧&#xff01; 一、汽车建模用软件推荐 1、Alias Autodesk旗下的Alias系列软件是汽车设…

C语言复习第4章 数组

目录 一、一维数组的创建和初始化1.1数组的创建1.2 变长数组1.3 数组的初始化1.4 全局数组默认初始化为01.5 区分两种字符数组1.6 用sizeof计算数组元素个数1.7 如何访问数组元素1.8 一维数组在内存中的存储(连续存储)1.9 访问数组元素的另一种方式:指针变量1.10 数组越界是运行…

【Linux】平台设备驱动

在设备驱动模型中&#xff0c;引入总线的概念可以对驱动代码和设备信息进行分离。但是驱动中总线的概念是软件层面的一种抽象&#xff0c;与我们SOC中物理总线的概念并不严格相等。 物理总线&#xff1a;芯片与各个功能外设之间传送信息的公共通信干线&#xff0c;其中又包括数…

百度AI图片助手 处理本地图片

import random import time import requests import base64 import os import datetime import numpy as np import cv2 from PIL import Image import argparseclass IMGNetProcess(object):"""百度 图片处理"""def __init__(self, file, kind)…