经典文献阅读之--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

在这里插入图片描述

…详情请参照古月居

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Linux系统基础】(5)在Linux上集群化环境前置准备及部署Zookeeper、Kafka软件详细教程

集群化环境前置准备 介绍 在前面,我们所学习安装的软件,都是以单机模式运行的。 后续,我们将要学习大数据相关的软件部署,所以后续我们所安装的软件服务,大多数都是以集群化(多台服务器共同工作&#xf…

CTF show 71

CTF show 71 在源码中可以看到程序把缓冲区内容全部替换成了问号 ​​ ob_get_contents函数把缓冲区内容读到以后赋值给了变量s,类型是字符串。 ob_end_clean()函数清空当前缓冲区并且关闭缓冲区 ​​ 所以展示的结果中全是问号。所以我们需要在读取到文件以后…

JavaOOP篇----第十六篇

系列文章目录 文章目录 系列文章目录前言一、a=a+b与a+=b有什么区别吗?二、final、finalize()、finally三、JDBC操作的步骤四、在使用jdbc的时候,如何防止出现sql注入的问题。前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击…

HarmonyOS快速入门之开发准备

开发准备 本文档适用于HarmonyOS应用开发的初学者。通过构建一个简单的具有页面跳转/返回功能的应用(如下图所示),快速了解工程目录的主要文件,熟悉HarmonyOS应用开发流程。 在开始之前,您需要了解有关HarmonyOS应用的…

Odoo16 实用功能之在Form视图的各个部位加入按钮

目录 1、 如何在form视图中的头部加上按钮 2、如何在form视图中的身体加上按钮 3、如何在notebook标签中加入按钮 1、 如何在form视图中的头部加上按钮 以CRM中的渠道form视图为例子介绍&#xff08;实现红框中的效果&#xff09; 直接在<header>标签里加入按钮即可 …

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

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

TwIST算法MALTLAB主程序详解

TwIST算法MALTLAB主程序详解 关于TwIST算法的具体原理可以参考&#xff1a; 链接: https://ieeexplore.ieee.org/abstract/document/4358846 链接: https://blog.csdn.net/jbb0523/article/details/52193209 该算法的MATLAB源代码&#xff1a; 链接: http://www.lx.it.pt/~bi…

修复vscode中prettier格式化失效的问题

vscode中prettier格式化有时会失效&#xff0c;又恢复到编辑器默认格式。 要修复这个问题&#xff0c;可以用 Ctrl Shift P 调出命令面板&#xff0c;然后输入 format 搜索 在出现是搜索结果中选择 Format Document With... 然后选择 Configure Default Formatter 然后选择…

在线文稿演示应用PPTist

PPTist 是一个基于 Vue3.x TypeScript 的在线演示文稿&#xff08;幻灯片&#xff09;应用&#xff0c;还原了大部分 Office PowerPoint 常用功能&#xff0c;支持文字、图片、形状、线条、图表、表格、视频、音频、公式等几种最常用的元素类型&#xff0c;每一种元素都拥有高…

Node.js精品课程网站27724-计算机毕业设计项目选题推荐(免费领源码)

目 录 摘要 1 绪论 1.1研究背景 1.2研究现状及意义 1.3koa框架 1.4论文结构与章节安排 2精品课程网站系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1数据增加流程 2.3.2数据修改流程 2.3.3数据删除流程 2.3 系统功能分析 2.3.1 功能性分析 2.3.2 非功能性分析…

静态HTTP与CDN:如何优化内容分发

大家好&#xff0c;今天我们来聊聊静态HTTP和CDN这对“黄金搭档”。没错&#xff0c;就是那个让你的网站内容像闪电一样传遍全球的CDN&#xff01; 首先&#xff0c;我们来了解一下静态HTTP。它就像是那个老实可靠的邮差&#xff0c;每次都按时按点地把你的内容送到用户手中。…

支付宝沙箱支付遇到knife4j接口文档会出现验签失败的问题

自己写项目的时候遇到了一个奇怪的问题&#xff1a;支付宝沙箱支付遇到knife4j接口文档会出现验签失败的问题 这里只有一个支付宝沙箱支付和腾讯云sms功能 是没有问题的 可以正常地进行着支付 但是当我把knife4j依赖放进去就会出现下面问题 SwaggerConfig package com.xyz.st…