经典文献阅读之--RenderOcc(使用2D标签训练多视图3D Occupancy模型)

0. 简介

3D占据预测在机器人感知和自动驾驶领域具有重要的潜力,它将3D场景量化为带有语义标签的网格单元。最近的研究主要利用3D体素空间中的完整占据标签进行监督。然而,昂贵的注释过程和有时模糊的标签严重限制了3D占据模型的可用性和可扩展性。为了解决这个问题,《RenderOcc: Vision-Centric 3D Occupancy Prediction with 2D Rendering Supervision》提出了RenderOcc,一种新的范式,用于仅使用2D标签训练3D占据模型。具体地,我们从多视图图像中提取类似NeRF的3D体积表示,并利用体积渲染技术建立2D渲染,从而能够通过2D语义和深度标签直接进行3D监督。此外,我们引入了一种辅助射线方法来解决自动驾驶场景中稀疏视角的问题,利用连续帧来为每个对象构建全面的2D渲染。据我们所知,RenderOcc是首次尝试仅使用2D标签训练多视图3D占据模型,减少了对昂贵的3D占据注释的依赖。大量实验证明,RenderOcc实现了与完全受3D标签监督的模型相当的性能,突显了这种方法在实际应用中的重要性。我们的代码可在Github找到。

1. 主要贡献

针对上述问题,我们引入了RenderOcc,这是一种新的范式,用于训练3D占据模型,使用2D标签,而不依赖于任何3D空间注释。如图1所示,RenderOcc的目标是消除对3D占据标签的依赖,仅依靠像素级的2D语义在网络训练期间进行监督。具体而言,它从多视图图像构建了类似NeRF的3D体积表示,并利用先进的体积渲染技术生成2D渲染。这种方法使我们能够仅使用2D语义和深度标签提供直接的3D监督。通过这种2D渲染监督,模型通过分析来自各种摄像机的相交锥体射线来学习多视图一致性,从而更深入地理解3D空间中的几何关系。值得注意的是,自动驾驶场景通常涉及有限的视角,这可能会影响渲染监督的有效性。考虑到这一点,我们引入了辅助射线的概念,利用相邻帧的射线来增强当前帧的多视图一致性约束。此外,我们还开发了一种动态采样训练策略,用于筛选出不对齐的射线,并同时减轻与其相关的额外训练成本。本文主要贡献总结如下:

  1. 我们引入了RenderOcc,这是一个基于2D渲染监督的3D占据框架。我们首次尝试仅使用2D标签训练多视图3D占据网络,摒弃了昂贵且具有挑战性的3D注释。
  2. 为了从有限的视角学习有利的3D体素表示,我们引入了辅助射线来解决自动驾驶场景中稀疏视角的挑战。同时,我们设计了一种动态采样训练策略,用于平衡和净化辅助射线。
  3. 大量实验证明,与受3D标签监督的基线相比,RenderOcc在仅使用2D标签时取得了竞争性的性能。这展示了2D图像监督在3D占据训练中的可行性和潜力。

在这里插入图片描述

图1. RenderOcc代表了一种新的训练范式。与以往侧重于使用昂贵的3D占据标签进行监督的作品不同,我们提出的RenderOcc利用2D标签来训练3D占据网络。通过2D渲染监督,模型可以从细粒度的2D像素级语义和深度监督中受益。

2. 问题设置

我们的目标是利用多摄像头RGB图像来预测周围场景的密集语义体积,称为3D占据情况。具体来说,对于时间戳 t t t的车辆,我们将 N N N个图像 { I 1 , I 2 , ⋅ ⋅ ⋅ I N } \{I^1,I^2,···I^N\} {I1,I2,⋅⋅⋅IN}作为输入,并预测3D占据情况 O ∈ R H × W × D × L O ∈ \mathbb{R}^{H×W×D×L} ORH×W×D×L作为输出,其中 H H H W W W D D D表示体积的分辨率, L L L表示类别数量(包括空)。形式上,3D占据情况的预测可以被表述为:

在这里插入图片描述

G \mathbb{G} G是一个神经网络,从 N N N视图图像中提取3D体积特征 V ∈ R H × W × D × C V ∈ \mathbb{R}^{H×W×D×C} VRH×W×D×C,其中 C C C表示特征维度 F F F负责将 V V V转换为占据表示,先前的研究[7],[8]倾向于使用MLP实现每个体素的分类。考虑到所有现有方法都需要完整的3D占据标签来监督体素级别的分类,我们设计了一个新的概念来实现 F \mathbb{F} F,并仅使用2D像素级标签来监督 { G , F } \{\mathbb{G},\mathbb{F}\} {GF}

3. 整体框架

我们的整体框架如图2所示。在第4节中,我们首先使用2D到3D网络 G \mathbb{G} G从多视角RGB图像中提取3D体积特征 V V V。需要注意的是,我们的框架对于 G \mathbb{G} G的实现不敏感,并且可以灵活地在各种BEV/Occupancy编码器之间进行切换,比如[18],[19],[29]。接下来在第5节中,我们为每个体素预测体积密度 σ σ σ和语义logits S S S,以生成语义密度场(SDF)。随后,我们从SDF进行体积渲染,并使用2D标签优化网络。最后在第6节中,我们阐述了用于解决自动驾驶场景中稀疏视角问题的体积渲染的辅助射线训练策略。

在这里插入图片描述

图2. RenderOcc的整体框架。我们通过2D到3D网络提取体积特征 V V V,并预测每个体素的密度 σ σ σ和语义 S S S。因此,我们生成了语义密度场,可以执行体积渲染以生成渲染的2D语义和深度 { S p i x , D p i x } \{S^{pix},D^{pix}\} {SpixDpix}。对于Rays GT的生成,我们从相邻帧中提取辅助射线,以补充当前帧的射线,并使用提出的加权射线采样策略对其进行净化。然后,我们使用射线GT和 { S p i x , D p i x } \{S^{pix},D^{pix}\} {SpixDpix}计算损失,实现了使用2D标签进行渲染监督。

4. 语义密度场

现有的3D占据方法从多视角图像中提取体积特征 V V V,并进行体素级分类[29],[30],[9],[6]以生成3D语义占据。为了利用2D像素级监督,我们的RenderOcc创新地将 V V V转换为一种称为语义密度场(SDF)的多功能表示。给定一个体积特征图 V ∈ R H × W × D × C V ∈ \mathbb{R}^{H×W×D×C} VRH×W×D×C,SDF通过两种表示来编码场景:体积密度 σ ∈ R H × W × D σ ∈ \mathbb{R}^{H×W×D} σRH×W×D和语义logits S ∈ R H × W × D × L S ∈ \mathbb{R}^{H×W×D×L} SRH×W×D×L。具体来说,我们简单地采用两个MLP { φ d , φ s } \{φ_d,φ_s\} {φd,φs}来构建SDF,其公式为

在这里插入图片描述

σ σ σ另外还使用softplus激活函数,以确保密度值不会变为负数。基于SDF,我们获得了从任何视角进行语义渲染的能力,并在训练过程中获得了二维监督优化,这将在第5节部分进行解释

优化后,SDF可以直接转换为3D占据结果。我们使用 σ σ σ过滤出占据的体素,并根据 S S S确定它们的语义类别。该过程可以形式化如下:

在这里插入图片描述

τ τ τ作为 σ σ σ的阈值,用于确定一个体素是否被占据。

5. 利用2D标签进行渲染监督

我们利用体积渲染来构建表面法线和2D像素之间的桥梁,从而通过2D标签方便地进行监督。具体来说,我们利用相机的内参和外参参数从当前帧提取3D射线,其中每个2D像素对应于从相机发出的一条3D射线。每条射线 r r r携带着对应像素的语义和深度标签 { S ^ p i x ( r ) , D ^ p i x ( r ) } \{\hat{S}^{pix}(r),\hat{D}^{pix}(r)\} {S^pix(r),D^pix(r)}。同时,我们基于SDF进行体积渲染[40],得到渲染的语义 S p i x ( r ) S^{pix}(r) Spix(r)和深度 D p i x ( r ) D^{pix}(r) Dpix(r),用于计算与2D标签 { S ^ p i x ( r ) , D ^ p i x ( r ) } \{\hat{S}^{pix}(r),\hat{D}^{pix}(r)\} {S^pix(r),D^pix(r)}的损失。

为了渲染像素的语义和深度,我们在射线 r r r上预定义的范围内对射线上的 K K K个点 { z k } k = 1 K \{z_k\}^K_{k=1} {zk}k=1K进行采样。然后可以通过计算累积透射率 T T T和终止概率 α α α来得到点 z k z_k zk的信息。

在这里插入图片描述

β k = z k + 1 − z k β_k = z_{k+1} − z_k βk=zk+1zk是两个相邻点之间的距离。最后,我们使用 { z k } \{z_k\} {zk}查询SDF,并将它们累积起来,以获得渲染的语义和深度。

在这里插入图片描述

对于损失函数,交叉熵损失 L s e g L_{seg} Lseg和SILog损失 L d e p t h L_{depth} Ldepth [41] 被用来监督语义和深度。我们还引入了失真损失[35] 和TV损失[42] 作为SDF的正则化,称为 L r e g L_{reg} Lreg。因此,整体损失可以通过计算得到。

在这里插入图片描述

6. 辅助光线:增强多视角一致性

通过第III-D节中的2D渲染监督,模型可以从多视角一致性约束中受益,并学会考虑体素之间的空间遮挡关系。然而,在单帧中,周围摄像机的视角覆盖非常稀疏,它们的重叠范围也有限。因此,大多数体素无法同时被具有显著视角差异的多条光线采样,这很容易导致局部最优解。因此,我们引入了来自相邻帧的辅助光线,以补充多视角一致性约束,如图3所示。

在这里插入图片描述

图3. 辅助光线:单帧图像无法很好地捕捉物体的多视角信息。相邻摄像头之间只有一个小的重叠区域,并且透视差异有限。通过引入相邻帧的辅助光线,模型将显著受益于多视角一致性约束。

6.1 辅助光线的生成

具体而言,对于当前帧索引为 t t t,我们选择附近的 M a u x M_{aux} Maux个相邻帧。对于每个相邻帧,我们分别生成光线,并将它们转换到当前帧,以获得最终的辅助光线 r a u x r_{aux} raux

在这里插入图片描述

…详情请参照古月居

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

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

相关文章

SQL Server的权限设置

实验环境(实验案例一) 某公司部署了 SQL Server 2016用来存储网站数据,由系统管理员进行维护.在bdon数据库中 已创建了class表。 需求描述 赋予用户zhangsan在bdqn数据库中创建表的权限和对class表查询和更新数据的权限。

ASP.NET Core 中的应用启动

ASP.NET Core 中的应用启动 | Microsoft Learnhttps://learn.microsoft.com/zh-cn/aspnet/core/fundamentals/startup?viewaspnetcore-8.0 目录 使用 Startup 筛选器扩展 Startup 在启动时从外部程序集添加配置 Startup、ConfigureServices 和 Configure 作者:…

每日一题——LeetCode141.环形链表

个人主页:白日依山璟 专栏:Java|数据结构与算法|每日一题 文章目录 1. 题目描述示例1:示例2:示例3:提示: 2. 思路3. 代码 1. 题目描述 给你一个链表的头节点 head ,判断链表中是否有环。 如果链表中有某…

041、基于CNN的样式迁移

之——基于CNN的滤镜 目录 之——基于CNN的滤镜 杂谈 正文 1.基于CNN的样式迁移 2.实现 杂谈 通过CNN的特征提取,可以实现将一个图片的样式模式特征迁移到另一张图像上。 正文 1.基于CNN的样式迁移 就是在某些层的输出上用其他的图片进行监督。 2.实现 一般来…

国际会议口译,选择同传好还是交传好

在国际会议中,同传与交传是常见的两种翻译方式,它们各自承载着独特的使命与优势,为沟通世界发挥着不可替代的作用。那么,同传好还是交传好,如何选择合适的翻译方式? 首先,从费用角度来看&#x…

苹果怎么调字体大小?详细教程在这,赶快get起来!

在我们使用苹果手机时,可能会遇到需要调整字体大小的情况。合适的字体大小能够提高阅读体验和舒适度,使得手机使用更加便捷。然而,还有很多用户并不知道苹果怎么调字体大小。别着急!本文将为您详细介绍操作方法,帮助您…

云计算与大数据之间的羁绊(期末不挂科版):云计算 | 大数据 | Hadoop | HDFS | MapReduce | Hive | Spark

文章目录 前言:一、云计算1.1 云计算的基本思想1.2 云计算概述——什么是云计算?1.3 云计算的基本特征1.4 云计算的部署模式1.5 云服务1.6 云计算的关键技术——虚拟化技术1.6.1 虚拟化的好处1.6.2 虚拟化技术的应用——12306使用阿里云避免了高峰期的崩…

selenium模块有哪些用途?

Selenium模块是一个用于Web应用程序测试的模块,具有多种示例用法。以下是一些示例: 1.打开网页并执行一些基本操作,如点击按钮、输入文本等。 定位网页元素并执行操作,例如使用 find_element 方法查找单个元素,使用 f…

zabbix-邮件告警与钉钉机器人告警

zabbix-邮件告警 在部署邮件告警前需要先将zabbix部署成功 邮件告警需要得到邮箱的授权码,这里将以qq邮箱为例。 1.获取邮箱的授权码 2.编辑Email的相关信息 3.测试Email是否配置成功 测试成功。 4.为用户添加邮箱报警服务 5.创建主机群组、主机、监视项、触…

苹果ipad怎么录屏?让小白也能轻松上手

随着科技的发展,越来越多的用户使用苹果ipad进行工作、学习和娱乐。在使用过程中,难免会遇到需要录屏的情况,如录制游戏过程、教程讲解等。在本篇文章中,我们将详细介绍苹果ipad怎么录屏,帮助您轻松记录ipad屏幕上的精…

Unity程序向Web服务器发送数据

Unity程序向Web服务器发送数据 一、介绍二、HTTP协议三、新建Unity工程,创建脚本1.新建Unity工程,创建脚本WebManager.cs,将其指定给场景中的任意游戏体。2.在WebManager.cs中添加一个m_info属性和OnGUI函数显示UI: 四、GET请求在…

免费福利马上截止!深圳的户外小伙伴别错过!COSP2024体育展来了

COSP2024户外博览会 展会时间:2024年3月14-16日 展会地址:深圳福田会展中心 户外运动爱好者不可错过! COSP2024户外博览会不仅可以逛展 看各种露营装备、户外器材 还有各种沙龙、峰会活动 就在明年开年,阳春三月天&#xf…

服务器扩容未生效、不成功:解决方法

记一次解决服务器扩容未生效的解决办法 老板:失忆啊,我花钱给服务器扩容了10000000G,但是数据库和mq都还是用不了,到底是不是服务器磁盘满了,你到底有没有查一下什么原因导致服务用不了啊。 失忆:老板您确…

哪个牌子的台灯对学生的视力好?五款学生备考台灯推荐

护眼台灯在如今市场中销量越来越高,我作为一名电器测评博主,非常支持大家使用护眼台灯来提升日常的照明光线环境,它通过LED灯和专业的护眼技术,可以有效缓解用眼疲劳、帮助放松和舒适照明。但需要注意的是,目前市场中品…

Yarn ResourceManager 页面上的绿色条块(Used Resources)反映的是真实的资源占用情况吗?

过去,一直习惯于在 Yarn 的 ResourceManager 页面上,通过菜单:Cluster -> Scheduler 查看当前 Yarn 总体的资源分配状况,因为这个页面非常直观。不过,在最近一次测试中,我发现:Yarn Resource…

(Matlab)基于CNN-LSTM的多输入分类(卷积神经网络-长短期记忆网络)

目录 一、程序及算法内容介绍: 基本内容: 亮点与优势: 二、代码实际运行结果展示: 三、部分代码展示: 四、本文完整代码数据下载: 一、程序及算法内容介绍: 基本内容: 本代码…

Matlab仿真2ASK/OOK、2FSK、2PSK、QPSK、4QAM在加性高斯白噪声信道中的误码率与归一化信噪比的关系

本文为学习所用,严禁转载。 本文参考链接 https://zhuanlan.zhihu.com/p/667382398 QPSK代码及高斯白噪声如何产生 https://ww2.mathworks.cn/help/signal/ref/butter.html 滤波器 https://www.python100.com/html/4LEF79KQK398.html 低通滤波器 本实验使用matlab仿…

毫米波RIS研究测试方案:一站式助力工程师探索高频通信未来

方案介绍 在当前科技高速发展的时代,毫米波通信技术因其高数据传输速率和大容量的潜力而备受瞩目。其中,可重构智能表面(RIS)作为一项创新技术,正在为毫米波通信系统的设计和优化带来新的可能性。为了应对这一领域的研…

Linux系统安装及管理

目录 一、Linux应用程序基础 1.1应用程序与系统命令的关系 1.2典型应用程序的目录结构 1.3常见的软件包装类型 二、RPM软件包管理 1.RPM是什么? 2.RPM命令的格式 2,1查看已安装的软件包格式 2.2查看未安装的软件包 3.RPM安装包从哪里来? 4.挂…

WebGL技术实现机械工程培训

机械工程培训的虚拟环境可以通过 WebGL 技术实现,提供沉浸式的三维体验,帮助学生学习机械结构、运动原理和装配过程。以下是开发机械工程培训虚拟环境的一般步骤,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发…