上海AI实验室CVT-Occ时间融合利用视差搜索刷新occ3DWaymo SOTA

news2024/11/24 14:46:55

上海AI实验室提出CVT-Occ:通过时间融合利用视差搜索刷新occ3D-Waymo SOTA

Abstract

基于视觉的3D占据预测由于单目视觉在深度估计上的固有局限性而面临显著挑战。本文介绍了CVT-Occ,一种新颖的方法,通过时间上的体素几何对应进行时间融合,以提高3D占据预测的准确性。通过在每个体素的视线方向上采样点并整合这些点的历史帧特征,我们构建了一个代价体积特征图,从而优化当前体积特征以改进预测结果。我们的方法利用了历史观察中的视差线索,并采用数据驱动的方法学习代价体积。通过在Occ3D-Waymo数据集上的严格实验验证了CVT-Occ的有效性,在3D占据预测任务上以最小的额外计算成本超越了最新的方法。

代码获取:https://github.com/Tsinghua-MARS-Lab/CVT-Occ

 欢迎加入自动驾驶实战群

ntroduction

基于视觉的3D语义占据预测在3D感知领域迅速发展,推动了其在自动驾驶、机器人和增强现实中的关键应用。该任务旨在通过视觉输入估计3D空间内每个体素的占据状态和语义标签。

尽管其重要性显著,3D占据预测面临着巨大的挑战。单靠单目视觉时,深度估计的模糊性尤为突出。虽然立体视觉已被提出作为提高深度估计准确性的一种解决方案,但其在实际应用中仍然有限。立体相机的使用在自动驾驶车辆和机器人系统中是不切实际的,因为它需要大量的校准和重新校准。一种更具前景的替代方法是使用多视角时间融合,它可以利用随时间延伸的多视角基线来增强3D感知任务。

近年来,视觉3D目标检测的进展表明,结合时间观察可以提升检测性能。在我们的研究中,我们将新兴的时间融合方法分为三类,详见图1。前两类方法基于扭曲,使用IMU数据对齐不同时间点的鸟瞰视图特征图,并通过自注意机制或拼接和卷积操作进行特征融合。这些方法隐式地使用时间信息,但没有充分利用3D空间中的几何约束。第三类方法,如图1©所示,使用成本体积技术,能够更好地利用几何约束来获得深度感知的特征,但处理多视角任务时计算成本较高。总的来说,这些方法在利用时间信息和3D几何约束方面存在局限性,尤其是在处理多视角和长时间跨度的数据时。

鉴于这些方法的局限性,我们提出了一种新范式,如图1中的(d)所示。本文中,我们引入了CVT-Occ,这是一种创新的时间融合方法,旨在利用随时间变化的体素几何对应来提高占据预测的准确性。我们的方法涉及沿着每个体素的视线方向采样点——定义为体素与相机光学中心相连的直线——并根据相对相机姿态确定这些点在历史帧中的对应3D位置。然后,我们从历史帧中采样这些点的特征,并将它们与当前体素特征进行整合,构建一个代价体积特征图。该特征图随后用于优化当前体积的特征,从而提高占据预测的准确性。

图片

3.Method

3.1 问题设置

仅给定RGB图像作为输入,模型旨在预测特定体积内的密集语义场景。具体来说,我们利用当前时间戳t及之前的图像,表示为

图片

,

图片

,其中L代表相机的数量。我们的输出定义为体素网格

图片

,位于时间戳t的自车坐标系中。该网格内的每个体素要么为空(由表示),要么由特定的语义类别

图片

占据。这里,M表示感兴趣类别的总数,而H, W, Z分别表示网格的长度、宽度和高度。主要目标是训练神经网络Θ(·)生成语义体素网格

图片

,以逼近真实值。需要注意的是,模型必须仅通过基于视觉的输入学习3D几何结构和语义,而不能依赖LiDAR的深度测量。从2D图像推断3D占据状态具有巨大挑战,这需要设计高效方法以利用几何约束来学习准确的几何信息。

3.2 整体架构

在本节中,我们展示了CVT-Occ的完整架构,如图2所示。我们的框架首先通过图像骨干网络处理多帧、多视角的图像以提取多尺度特征。随后,这些图像空间的特征被转换为鸟瞰视图(BEV)空间特征,这些特征经过BEV编码器的精炼以生成3D体积表示。大量研究集中于从图像空间到BEV特征的转换。一类工作遵循LSS提出的提升范式;它们显式地预测深度图并将多视角图像特征提升到BEV平面。另一类工作继承了DETR3D中的从3D到2D查询的精神;它们使用可学习的查询,通过交叉注意机制从图像特征中提取信息。值得强调的是,我们提出的代价体积时间(CVT)模块具有通用性,可以兼容不同的从图像到体积空间特征转换的策略。在我们的实验验证中,我们使用BEVFormer作为基础来生成3D体积特征。这些特征随后通过CVT模块进行精炼和增强,展示了我们方法在利用时间和空间动态以丰富3D场景理解中的有效性和适应性。最后,通过占据解码器生成最终的体素预测结果。

图片

3.3 代价体积时间模块

由于每个像素没有直接的深度信息,将图像特征转换为3D空间会引入模糊性;例如,单个像素可能对应于视线上的多个体素。为了解决这个问题,我们提出了代价体积时间模块,该模块利用时间数据推断深度信息以解决这种模糊性。具体而言,我们通过历史和当前的BEV特征构建3D代价体积特征。然后使用这些代价体积特征得出学习权重,随后用于优化当前的BEV特征。

3D体积特征。我们预定义了体积

图片

,其中H、W、Z表示体积空间的空间维度。体积空间中的每个体素对应于真实世界中边长为s米的立方空间。默认情况下,体积的中心对应于自车的位置。对于每个体素v = (i, j, k),其对应的3D位置p = (x, y, z)可以通过公式(1)计算:

图片

BEV特征

图片

,其中t代表时间戳,E是嵌入维度。我们将BEV特征重塑为体积空间,作为CVT模块的输入,生成

图片

构建代价体积特征。由于视线方向上的模糊性,对于每个点,我们在当前体积内采样几个额外的点

图片

。具体而言,我们计算视线方向

图片

,即从体积中心到点pt的向量,然后使用特定步长

图片

采样点,如公式(2)所示:

图片

由于这些点在图像空间中投射到同一个像素,因此同一条线上的点往往具有相似的特征。为了准确区分与像素对应的正确位置,我们使用历史BEV特征来获取补充信息。这就是我们提出的代价体积时间模块的核心见解。将这些点投射到历史坐标系中,确保它们不再位于同一条视线上。视差提供了来自历史BEV特征的附加信息,有助于减少当前帧中的深度模糊性。投影矩阵

图片

可以将点从自车坐标系转换为全球坐标系。因此,点

图片

通过投影矩阵投射到K−1个历史帧上,如公式(3)所述:

图片

最后,每个点

图片

被转换为体素坐标,这是公式(1)的逆过程,并通过双线性插值从相应的BEV特征图中采样特征。最终的代价体积特征图为

图片

,其中C表示BEV特征的通道数量。

3.4 体积特征精炼

图片

如公式(4)所示,构建的代价体积特征F经过一系列卷积层处理,得到输出权重

图片

 

图片

。然后通过Sigmoid激活函数将输出权重W归一化到[0,1]范围内。这些权重根据体素的占据状态直接进行监督:对于被占据的体素,其对应的权重被引导接近1,而未被占据的体素则被引导接近0。公式(4)中的符号⊗表示时间戳t时刻原始体积特征与学习到的权重W的逐元素乘积。通过这种监督学习方法,生成了占据感知的体积特征图

图片

。学习权重的目标是减少由于深度模糊性导致的错误激活区域中的体素特征影响,同时增强正确识别的体素特征。

3.5 占据解码器

在对体素特征Vocc进行精炼后,我们的模型使用一系列反卷积层将其转换为占据特征。占据特征被投射到输出空间,生成

图片

图片

。该投影被设计为将占据特征映射到每个网格体素的离散语义类别预测集合中。由此,生成最终的占据输出

图片

,其中每个体素被分配一个M个语义标签之一,未占据状态由c0表示。此步骤有效地将丰富的体素特征转换为语义分割的3D占据图。

3.6 训练损失

我们的架构将CVT模块和3D占据预测集成在一个端到端可训练的框架中。我们通过多任务损失训练整个网络,公式如下(5):

图片

其中

图片

表示占据预测损失,

图片

表示代价体积时间损失。系数λ作为这两个损失组件之间的平衡因子。

对于占据预测损失,我们采用了交叉熵损失,这是语义占据预测任务中广泛使用的损失函数。

图片

,其中和分别表示第c个语义类别的真实标签和预测结果。类特定的权重通过与类频率的逆相关来缓解类不平衡问题,这种方法参考自Occ3D。

为了增强网络性能,CVT模块直接接受监督。CVT模块的损失Lcvt采用二元交叉熵框架,如公式(6)所示:

图片


其中j索引网格中的体素,J = H × W × Z。是输出权重

图片

中的第j个元素。具体来说,二进制标签

图片

表示体素处于未占据状态(即其语义分类为),而

图片

表示体素在真实值中被占据。对CVT模块的这种直接监督不仅提升了性能,还突显了从输入数据中准确学习时间和空间特征的重要性。

Experiment

在表1中,我们展示了在Occ3D-Waymo验证集上的3D占据预测评估结果。为了确保公平比较,所有方法均使用相同的网络架构和训练策略。通过比较表1中的“BEVFormer-w/o TSA”和时间融合方法,所有时间融合方法的mIoU均高于“BEVFormer-w/o TSA”。这表明时间融合在3D占据预测任务中起着至关重要的作用。

保持一致的帧规范(数量和间隔),我们探索了不同主流时间融合方法的时间融合能力。我们的方法在mIoU方面实现了最先进的性能,并且在几乎所有类别上显示出显著的优越性。如表1所示,CVT-Occ相比现有时间融合方法(a)、(b) 和 © 的代表模型显示出优越的性能,相比基线模型BEVFormer提升了2.8%的mIoU。深入细节,CVT-Occ在几乎所有类别的IoU上均有所提升。特别是在“车辆”、“自行车”、“建筑”、“植被”和“树干”类别上,我们的方法相比基线模型BEVFormer取得了超过4%的IoU提升。这个显著的增强表明,全面理解时间几何关系能够带来显著的性能提升。

图片

消融研究

时间跨度。时间跨度定义为最早历史帧与当前帧的时间戳差异,在时间融合分析中起着关键作用。我们进行了实验,评估了我们的方法在不同的总帧数和采样帧间隔配置下的表现,结果总结在表2中。

图片

长时间融合能力。图3展示了BEVFormer和CVT-Occ在不同总时间差下的比较。随着时间队列长度的增加,CVT-Occ表现出更好的性能,而BEVFormer在利用长期历史数据方面遇到了困难。

图片

CVT监督。在我们追求提高3D语义占据预测的过程中,我们不仅仅依赖传统的损失函数,还通过向CVT模块输出添加额外的监督来改进模型。表2中的实验(e)和(f)展示了CVT-Occ有无CVT损失的性能比较。引入CVT损失后,mIoU显著提升,验证了其有效性。这个提升证实了我们的设计方法,表明其在提高3D语义占据预测的准确性和可靠性方面的能力。

总的来说,我们的消融研究证实了更长的时间跨度和有效时间融合在提升CVT-Occ的3D语义占据预测性能中的重要性。此外,整合额外的监督进一步提高了模型的准确性,突显了我们的方法在基于时间视差的场景理解中的有效性。

因素分析

我们方法的核心见解在于利用不同帧之间的视差来提高3D体素深度查询的准确性。在本小节中,我们在不同条件下进行了多个评估以验证这一概念。这些实验包括二分类、不同的BEV范围和不同的自车速度。

图片

二分类。在3D语义占据预测框架中,我们将所有其他15个物体类别汇总为单一的“非空闲”类别。这一调整去除了语义信息的影响,使我们能够专注于深度的准确性。随后,我们将我们的方法与领先的时间融合方法进行了比较。表3的结果表明,我们的方法在物体几何形状的预测上表现更好。这个结果与我们最初的设计理念一致,即利用视差来优化深度预测。

BEV范围。在Occ3D-Waymo数据集中,BEV范围沿x轴(即自车的运动方向)从-40m到40m。我们将这一范围分为两部分:[−20m, 20m]和[−40m, 20m] ∪ [20m, 40m]。表3展示了评估结果。所有方法在近区域的表现更好,这是预期的,因为离车辆较近的物体更有可能出现在历史帧和当前帧的重叠区域中。然而,与BEVFormer [20]相比,我们的方法在近区域的改进(+3.76)相比远区域(+1.43)更为显著。近物体在不同帧之间的较大视差有助于我们方法的优越预测能力。

自车速度。此外,车辆的速度在确定视差的大小方面也起着关键作用。我们进一步根据自车速度将数据集分为大致相等的两部分。分别在这两部分上评估CVT-Occ的结果如表3所示。无论是BEVFormer [20]还是CVT-Occ,两者在快速移动场景中的表现都更好。相比基线模型BEVFormer,我们的方法在快速场景下的改进(+3.17)明显高于慢速场景(+2.57)。这可以归因于当自车快速移动时,历史帧和当前帧之间的较大视差。

结论

CVT-Occ是一种创新的3D占据预测方法,其核心优势体现在以下三个方面:

多视角时间融合:CVT-Occ通过结合多个视角和时间序列的数据,利用历史观测结果来改进深度估计,这种方法有效地利用了视差效应,提高了预测的准确性。

代价体积特征图构建:该方法通过在时间帧之间采样和集成特征,构建了一个代价体积特征图,这种特征图有助于细化当前体积特征并改善预测结果。

优异的性能和低计算开销:在Occ3D-Waymo数据集上的实验表明,CVT-Occ在3D占据预测任务上超越了现有的最先进技术,同时保持了较低的额外计算成本。

文章引用:CVT-Occ: Cost Volume Temporal Fusion for 3D Occupancy Prediction

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

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

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

关注我的公众号auto_driver_ai(Ai fighting), 第一时间获取更新内容。

扫码加入自动驾驶实战知识星球,即可跟学习自动驾驶感知项目:环境配置,算法原理,算法训练,代码理解等。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

华为OD机试 - 最快到达医院的方法(Python/JS/C/C++ 2024 E卷 100分)

华为OD机试 2024E卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试真题(Python/JS/C/C)》。 刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,…

欧洲气象局开源数据如何通过大模型预测未来天气

气象预测依赖于全球各地的观测数据、复杂的数学模型和高性能计算资源。欧洲气象局(ECMWF,European Centre for Medium-Range Weather Forecasts)作为世界领先的气象预报机构,不仅提供精确的天气预报服务,还向公众和科研…

获取鸿蒙设备Udid遇到的问题

参考官方文档:注册调试设备-调试应用(HarmonyOS)-AppGallery Connect帮助中心 - 华为HarmonyOS开发者 (huawei.com) 坑一:The sdk hdc.exe version is too low, please upgrade to the latest version. 升级dev工具和sdk配置为api…

google域名邮箱:如何创建并管理邮箱账户?

google域名邮箱设置教程?如何开通Google域名邮箱? Google域名邮箱提供了一个专业且功能强大的平台,允许用户使用自定义域名创建和管理邮箱账户。烽火将详细介绍如何创建并管理Google域名邮箱账户,帮助您充分利用这一强大的工具。…

Java Mail腾讯企业邮箱或其他邮箱发送邮件失败bug记录

问题出现情况 邮件发送时debug用F8逐步运行可以成功发送邮件,但是用F9或者直接运行程序却发送失败未开启mail的debug模式的报错日志是下面这个:org.springframework.mail.MailAuthenticationException: Authentication failed; nested exception is java…

基于RPA+AI的网页自动填写机器人 | OPENAIGC开发者大赛高校组优秀作品

在第二届拯救者杯OPENAIGC开发者大赛中,涌现出一批技术突出、创意卓越的作品。为了让这些优秀项目被更多人看到,我们特意开设了优秀作品报道专栏,旨在展示其独特之处和开发者的精彩故事。 无论您是技术专家还是爱好者,希望能带给…

TXS0104 LSF0102 原理理解

具体参数请查看数据手册,在此不必赘述了。TXS0104 数据手册 现主要对TXS0104 结构原理进行解析: 电平转换电路结构可参考如下电路: 对于gate bias 部分电路具体细节有兴趣的可以了解下。 对于LSF0102 系列的电平转换芯片 LSF0102 数据手…

【人工智能学习之PaddleOCR训练教程】

具体的训练教程: 准备数据集 OCR数据集 (以下文字转载官方文档ocr_datasets) 1. 文本检测 1.1 PaddleOCR 文字检测数据格式1.2 公开数据集 1.2.1 ICDAR 2015 2. 文本识别 2.1 PaddleOCR 文字识别数据格式2.2 公开数据集 2.1 ICDAR 2015 …

使用Spring Security实现用户-角色-资源的权限控制

文章目录 一、基于角色的请求控制二、加载用户角色信息三、角色与资源的关联四、测试角色权限控制1. 未登录用户访问受保护资源2. 登录用户访问受保护资源3. 角色不足的用户访问受保护资源(把前面改成.roles("USER")) 五、自定义异常处理1. 自…

CANoe的数据回放功能

文章目录 CANoe简介1.Offline回放功能2.Replay Block回放模块3.两者的异同 CANoe简介 CANoe(CAN open environment): 用于汽车ECU网络仿真、数据分析、测试和诊断,还可以进行数据回放、程序刷写等。具有实时报文跟踪、数据解析及…

Android开发启动页跳过倒计时效果

Android开发启动页跳过倒计时效果 app启动页都会放些广告图,然后倒计时跳过。 一、思路: 不是很难,就用用个倒计时控制mHandler.sendEmptyMessageDelayed(WHAT_COUNT_DOWN, 100); 二、效果图: 三、关键代码: publ…

消息队列面试题——第二篇

1. rocketmq、rabbitmq、kafka的区别 架构设计和消息模型 特性rocketmqrabbitmqkafka消息模型基于主题和消费组,支持发布/订阅和点对点两种模型基于队列模型,支持发布/订阅和点对点两种模型基于分区的主题模型,主要用于日志流式处理和高吞吐…

基于SSM创城志愿者管理系统JAVA|VUE|Springboot计算机毕业设计源代码+数据库+LW文档+开题报告+答辩稿+部署教+代码讲解

源代码数据库LW文档(1万字以上)开题报告答辩稿 部署教程代码讲解代码时间修改教程 一、开发工具、运行环境、开发技术 开发工具 1、操作系统:Window操作系统 2、开发工具:IntelliJ IDEA或者Eclipse 3、数据库存储&#xff1a…

RNN心脏病预测

本文为为🔗365天深度学习训练营内部文章 原作者:K同学啊 一 前期准备 1.数据导入 import pandas as pd from keras.optimizers import Adam from matplotlib import pyplot as plt from sklearn.model_selection import train_test_split from sklearn.p…

jenkins 插件Publish Over SSH

一、安装插件 二、配置sshserver http://192.168.31.156:8080/manage/configure 三、添加自由风格:PublishOverSSHDemo 我们将工作目录:/var/lib/jenkins/workspace/PublishOverSSHDemo下的图片m3.jpeg 同步到目标143服务器目录:/root/imag…

Mysql(七) --- 索引

文章目录 前言1.简介1.1.索引是什么?1.2.为什么使用索引? 2.索引应该使用什么数据结构?2.1.Hash2.2.二叉搜索树2.3.N叉树2.4.B树2.4.1. 简介2.4.2. B树的特点2.4.3. B树和B树的对比 3.Mysql中的页3.1.为什么要使用页3.2.页文件头和页文件尾3.3.页主体3.…

Python开源项目月排行 2024年9月

#2024年9月2024年9月29日1jax一个开源的高性能数值计算库,旨在为机器学习和科学计算提供灵活性和效率。该项目由 Google 研发,并在 GitHub 上进行维护。AX 主要用于以下几个方面: 自动微分:提供高效的自动微分功能,支持…

嵌入式面试——FreeRTOS篇(九) 内存管理

本篇为:FreeRTOS 内存管理篇 一、FreeRTOS内存管理简介 1、FreeRTOS内存管理介绍 答: 在使用 FreeRTOS 创建任务、队列、信号量等对象的时,一般都提供了两种方法: 动态方法创建:自动地从 FreeRTOS 管理的内存堆中申…

【AI绘画教程】StableDiffusion出图颜色偏白发灰?用好VAE立马解决!(附VAE模型下载)

大家好,我是画画的小强 之前已经给大家推荐过不少AI绘画中 Stable Diffusion WebUI 的大模型,今天为大家介绍一下 WebUI 中“外挂VAE”的相关内容,可以解决我们在用大模型出图过程中出现的图像颜色发灰、发白的问题,一起来看看吧…

话说你们维保到期通知都是谁通知的

离谱了,公司有个客户维保到期了 过了2个月才发现。 白干了两个月, 客户也不愿意给这两个月钱。 现在商务和运维在扯皮, 商务说运维部门应该到期给客户发通知, 运维说商务到期要续签, 就应该商务去通知。 然后老…