经典文献阅读之--VoxFormer(基于Transformer的3D语义场景补全)

0. 简介

之前了解了很多BEV的相关操作,但是基本上要么是激光和视觉结合,要么是纯视觉完成的2D激光投影这两种,而那种3D Occupancy方法可以利用栅格的方法完成纯视觉占据栅格的生成。《VoxFormer: Sparse Voxel Transformer for Camera-based 3D Semantic Scene Completion》就是这种方法对于被遮挡的物体和场景,人们可以很容易地联想出其完整的3D几何结构,这种吸引人的能力对于AI系统来说是一个至关重要的。为了应对这种挑战,语义场景补全(SSC)任务应运而生,以往的SSC通常以3D点云作为输入,或以密集特征投影将2D图像作为输入来得到3D语义补全结果。但是论文提出了VoxFromer,一个基于Transformer的语义场景补全 (SSC,Semantic Scene Completion) 框架,可以仅从二维图像中预测空间中的体素占据和类别。

VoxFromer的框架采用两阶段设计,首先从深度估计得到一组稀疏的可见和占据的体素 query proposals,然后从稀疏体素生成密集的三维体素。相关的代码已经在Github上开源了。

在这里插入图片描述

图1. (a) VoxFormer的示意图,用于基于相机的语义场景补全,仅通过2D图像预测完整的3D几何和语义信息。在根据深度获取体素查询提案后,VoxFormer通过类似MAE的架构生成语义体素[3]。(b) 在SemanticKITTI [5]数据集上与最先进的MonoScene [4]进行不同范围的比较。VoxFormer在安全关键的短距离区域表现更好,而MonoScene在三个距离上表现不佳。相对增益用红色标记。被遮挡区域进一步支持了这一任务的完成。

1. 主要贡献

现有的基于视觉方案的SSC,如MonoScence,使用密集特征投影将2D图像输入提升为3D空间

然而,这样的投影不可避免地会将可见区域的2D特征分配给空的或被遮挡的体素。例如,被汽车遮挡的空体素仍将获得汽车的视觉特征。结果,生成的3D特征包含许多歧义,无法用于后续的几何补全和语义分割,导致性能不尽如人意。

与 MonoScene 不同,VoxFormer考虑3D到2D交叉注意力来表示 sparse query。所提出的设计受到以下启发:

  1. 遮挡区域场景推断:以重建的可见区域作为起点,可以更好地完成不可见区域的三维信息;

  2. 稀疏三维空间表示:由于三维空间大量的体素通常是不被占用的,使用稀疏表示而不是密集表示肯定更有效和可伸缩;


    VoxFormer的主要贡献如下:

  3. 一种新颖的两阶段框架,将图像提升到一个完整的3D体素化语义场景

  4. 一种基于2D卷积的新型查询提议(query proposal)网络,可以从图像深度生成可靠的查询

  5. 一种新的 Transformer 类似于 sparse-to-dense MAE-like 的结构,产生完整的3D场景表示

  6. VoxFormer 在 SemanticKITTI 的SCC任务上取得SOTA

2. 初步设置

2.1 问题设置

我们的目标是在车辆前方的一定体积内,仅通过RGB图像来预测一个密集的语义场景。具体而言,我们使用当前和之前的图像作为输入,表示为 I t = { I t , I t − 1 , … } I_t = \{I_t, I_{t−1}, …\} It={It,It1,},并使用输出为一个在时间戳 t t t处以车辆为坐标系定义的体素网格 Y t ∈ { c 0 , c 1 , … , c M } H × W × Z Y_t ∈ \{c_0, c_1, …, c_M\}^{H×W×Z} Yt{c0,c1,,cM}H×W×Z,其中每个体素要么为空(用 c 0 c_0 c0表示),要么被某个语义类别(在 { c 1 , c m , … , c M } \{c_1, c_m, …, c_M\} {c1,cm,,cM}中)占据。这里 M M M 表示感兴趣的类别总数 H 、 W 、 Z H、W、Z HWZ别表示体素网格的长度、宽度和高度。总之,总体目标是学习一个神经网络 Θ Θ Θ,使得生成的语义体素 Y t = Θ ( I t ) Y_t = Θ(I_t) Yt=Θ(It)尽可能接近真实值 Y ^ t \hat{Y}_t Y^t。需要注意的是,之前的SSC工作通常考虑3D输入[2]。与我们最相关的工作[4]考虑的是单个图像作为输入,这是我们的特殊情况。

2.2 设计原理

受到重建-幻觉和3D空间稀疏性的启发,我们构建了一个两阶段的框架:基于CNN的第一阶段提出了一组稀疏的体素查询,从图像深度中关注可见和占据的体素,而不是不可见和空的体素;基于Transformer的第二阶段使用类似MAE的架构,通过体素到图像的交叉注意力来加强所提出体素的特征化,然后使用自注意力处理整个体素集合,以实现体素之间的交互

在这里插入图片描述

3. 总体架构

我们基于Transformer从2D图像中学习SSC的3D体素特征,如图2所示:我们的架构从RGB图像中提取2D特征,然后使用一组稀疏的3D体素查询来索引这些2D特征,通过相机投影矩阵将3D位置与图像流链接起来。具体而言,体素查询是一种3D网格形状的可学习参数,通过注意机制[67]从图像中查询3D体积内的特征。我们的框架是一个由类别不可知的提议和类别特定分割组成的两阶段级联,类似于[68]:第一阶段生成类别不可知的查询提议,第二阶段使用类似于MAE的架构将信息传播到所有体素。最终,体素特征将被上采样用于语义分割。

在这里插入图片描述

图2. VoxFormer的整体框架。给定RGB图像,通过ResNet50 [61]提取2D特征,并通过现成的深度预测器估计深度。校正后的估计深度使得类别无关的查询提议阶段成为可能:位于占用位置的查询将被选中与图像特征进行可变形交叉注意力。随后,通过可变形自注意力添加掩码标记以完成体素特征。经过改进的体素特征将被上采样并投影到输出空间进行逐体素语义分割。请注意,我们的框架支持单个或多个图像的输入。


具体步骤如下:

  • 从RGB图像 I t I_t It中使用ResNet-50骨干网络[61]提取2D特征 F t 2 D ∈ R b × c × d F^{2D}_t ∈ \mathbb{R}^{b×c×d} Ft2DRb×c×d,其中 b × c b×c b×c是空间分辨率, d d d是特征维度。
  • ** 生成类别不可知的查询提议** Q p ∈ R N p × d Q_p ∈ \mathbb{R}^{N_p×d} QpRNp×d它是预定义的体素查询 Q ∈ R N q × d Q ∈ \mathbb{R}^{N_q×d} QRNq×d的子集,其中 N p N_p Np N q N_q Nq分别是查询提议的数量和总体素查询数量
  • 使用两个步骤对体素特征 F t 3 D ∈ R N q × d F^{3D}_t ∈ \mathbb{R}^{N_q×d} Ft3DRNq×d进行细化:(1) 使用 Q p Q_p Qp 通过交叉注意力将与查询提议对应的体素子集更新为图像特征 F t 2 D F^{2D}_t Ft2D,(2) 通过自注意力让所有体素相互关注来更新所有体素
  • 通过上采样和线性投影将输出密集语义地图 Y t ∈ R H × W × Z × ( M + 1 ) Y_t ∈ \mathbb{R}^{H×W×Z×(M+1)} YtRH×W×Z×(M+1)。 我们将在第4节详细介绍体素查询,在第5节介绍第一阶段,在第6节介绍第二阶段,在第7节介绍训练损失。

4. 预定义参数(对应的第二点)

4.1 体素查询

我们预定义了一共 N q N_q Nq个体素查询,作为一个3D网格形状可学习参数 Q ∈ R h × w × z × d ( N q = h × w × z ) Q ∈ \mathbb{R}^{h×w×z×d}(N_q = h × w × z) QRh×w×z×dNq=h×w×z,如图2左下角所示,其中 h × w × z h × w × z h×w×z 是其空间分辨率,低于输出分辨率 H × W × Z H × W × Z H×W×Z 以节省计算资源。注意, d d d表示特征维度,与图像特征的维度相同。更具体地说, Q Q Q中位于 ( i , j , k ) (i, j, k) (i,j,k)位置的单个体素查询 q ∈ R d q ∈ \mathbb{R}^d qRd负责对应的体素。每个体素对应于现实世界中的一个尺寸为 a a a的体素。同时,体素查询是在自车坐标系中定义的,并且在注意力阶段中将添加可学习的位置嵌入到体素查询中,遵循现有的2D BEV特征学习方法[65]。

4.2 掩码标记

虽然一些体素查询被选择用于关注图像,但剩余的体素将与另一个可学习参数相关联,以完成3D体素特征。为了简洁起见,我们将这种可学习参数称为掩码标记[3],因为从 Q Q Q中未选择的体素类似于从 Q Q Q中掩码。具体而言,每个掩码标记 m ∈ R d m ∈ \mathbb{R}^d mRd一个可学习的向量,表示要预测的缺失体素的存在。位置嵌入也被添加以帮助掩码标记意识到它们的3D位置


5. 阶段一:与类别无关的查询提议 (重点内容)

我们的第一阶段根据深度确定要查询的体素:占据的体素值得仔细关注,而空的体素可以与群体分离。给定一个2D的RGB观测,我们首先根据深度估计获得场景的2.5D表示。然后,我们通过占据预测获取3D查询位置,帮助纠正不准确的图像深度。

5.1 深度估计

我们利用现成的深度估计模型,如单目深度[69]或立体深度[70],直接预测每个图像像素 ( u , v ) (u, v) (u,v)的深度 Z ( u , v ) Z(u, v) Z(u,v)。然后,深度图 Z Z Z将被反投影为一个3D点云:一个像素 ( u , v ) (u, v) (u,v)将通过以下方式转换为3D中的 ( x , y , z ) (x, y, z) (x,y,z)

在这里插入图片描述

…详情请参照古月居

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

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

相关文章

书生·浦语大模型实战营-学习笔记1

目录 书生浦语大模型全链路开源体系数据集预训练微调评测部署多智能体 视频地址: (1)书生浦语大模型全链路开源体系 开源工具github: https://github.com/InternLM/InternLM 书生浦语大模型全链路开源体系 这次视频中介绍了由上海人工智能实验室OpenMMLa…

LangChain 71 字符串评估器String Evaluation衡量在多样化数据上的性能和完整性

LangChain系列文章 LangChain 60 深入理解LangChain 表达式语言23 multiple chains链透传参数 LangChain Expression Language (LCEL)LangChain 61 深入理解LangChain 表达式语言24 multiple chains链透传参数 LangChain Expression Language (LCEL)LangChain 62 深入理解Lang…

010集:with as 代码块读写关闭文件—python基础入门实例

接009集: 读写文本文件的相关方法如下。 read ( size-1 ):从文件中读取字符串, size 限制读取的字符数, si ze-1 指对读取的字符数没有限制。 readline ( size-1 ):在…

react hooks 高德地图的应用

一、准备 1.登录控制台 登录 高德开放平台控制台,如果没有开发者账号,请 注册开发者。 2.创建 key 进入应用管理,创建新应用,新应用中添加 key,服务平台选择 Web端(JS API)。 3.获取 key 和密钥 创建成功后&#x…

四、C++内存管理

1 C/C内存分布 在学习C的内存管理方式之前&#xff0c;我们先来看一道有关C/C内存分布的题目&#xff1a; 阅读下面的代码&#xff0c;回答相关问题&#xff1a; #include <iostream> using namespace std; int globalVar 1; static int staticGlobalVar 1; int main…

【C++进阶06】红黑树图文详解及C++模拟实现红黑树

一、红黑树的概念及性质 1.1 红黑树的概念 AVL树用平衡因子让树达到高度平衡 红黑树可以认为是AVL树的改良 通过给每个节点标记颜色让树接近平衡 以减少树在插入节点的旋转 在每个结点新增一个存储位表示结点颜色 可以是Red或Black 通过对任何一条从根到叶子的路径上 各个结点…

PaddleSeg学习4——paddle模型使用TensorRT推理(c++)

paddle模型使用TensorRT推理 1 模型末端添加softmax和argmax算子2 paddle模型转onnx模型3 onnx模型转TensorRT模型3.1 安装TensorRT-8.5.3.13.2 使用 trtexec 将onnx模型编译优化导出为engine模型 4 TensorRT模型推理测试5 完整代码6 测试结果 1 模型末端添加softmax和argmax算…

2022 年全国职业院校技能大赛高职组云计算赛项试卷

【赛程名称】云计算赛项第一场-私有云 某企业拟使用OpenStack 搭建一个企业云平台&#xff0c;以实现资源池化弹性管理、企业应用集中管理、统一安全认证和授权等管理。 系统架构如图 1 所示&#xff0c;IP 地址规划如表 1 所示。 图 1 系统架构图 表 1 IP 地址规划 设备…

docker 利用特权模式逃逸并拿下主机

docker 利用特权模式逃逸并拿下主机 在溯源反制过程中&#xff0c;会经常遇到一些有趣的玩法&#xff0c;这里给大家分享一种docker在特权模式下逃逸&#xff0c;并拿下主机权限的玩法。 前言 在一次溯源反制过程中&#xff0c;发现了一个主机&#xff0c;经过资产收集之后&…

网站开发第一弹---HTML01

&#x1f389;欢迎您来到我的MySQL基础复习专栏 ☆* o(≧▽≦)o *☆哈喽~我是小小恶斯法克&#x1f379; ✨博客主页&#xff1a;小小恶斯法克的博客 &#x1f388;该系列文章专栏&#xff1a;网站开发flask框架 &#x1f379;文章作者技术和水平很有限&#xff0c;如果文中出现…

基于pytorch的循环神经网络情感分析系统

任务目标 基于给定数据集&#xff0c;进行数据预处理&#xff0c;搭建以LSTM为基本单元的模型&#xff0c;以Adam优化器对模型进行训练&#xff0c;使用训练后的模型进行预测并计算预测分类的准确率。 数据简介 IMDB数据集是一个对电影评论标注为正向评论与负向评论的数据集…

【AI视野·今日NLP 自然语言处理论文速览 第七十二期】Mon, 8 Jan 2024

AI视野今日CS.NLP 自然语言处理论文速览 Mon, 8 Jan 2024 Totally 17 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Computation and Language Papers DeepSeek LLM: Scaling Open-Source Language Models with Longtermism Authors DeepSeek AI Xiao Bi, Deli Ch…

深度卷积神经网络

目录 1.AlexNet 2. 代码实现 1.AlexNet (1)特征提取 (2)选择核函数来计算相关性&#xff1a;怎么判断在高维空间里面两个点是如何相关的&#xff0c;如果是线性模型就是做内积。 (3)凸优化问题 (4)漂亮的定理 丢弃法的作用就是因为模型太大了&#xff0c;使用它来对模型做…

无监督学习Principal Component Analysis(PCA)精简高维数据

目录 介绍 一、PCA之前 二、PCA之后 介绍 Principal Component Analysis (PCA) 是一种常用的数据降维和特征提取技术。PCA通过线性变换将高维数据映射到低维空间&#xff0c;从而得到数据的主要特征。PCA的目标是找到一个正交基的集合&#xff0c;使得将数据投影到这些基…

初探UAF漏洞(3)

构造exp #include <iostream> #include <Windows.h>typedef void(*FunctionPointer) ();typedef struct _FAKE_USE_AFTER_FREE {FunctionPointer countinter;char bufffer[0x54]; }FAKE_USE_AFTER_FREE, * PUSE_AFTER_FREE;void ShellCode() {_asm{noppushadmov e…

github上的python图片转excel,pytesseract安装相关问题

问题1&#xff1a;明明都pip install pytesseract&#xff0c;但是就是安装不上 pytesseract 未安装链接: https://pan.baidu.com/s/1I4HzCgO4mITWTcZFkdil6g?pwdafes 提取码: afes 安装后一路next&#xff0c;然后配置环境变量 C:\Program Files\Tesseract-OCR新建一个系统…

c++学习:容器stack栈+queue+map(简易输入法)+deque

目录 stack 模板原型 头文件 模板的成员类型和成员对象和成员函数 栈类模板的容器对象 实例 queue 模板原型 头文件 模板的成员类型和成员对象和成员函数 队列类模板的容器对象 实例 map 模板原型 头文件 模板的成员类型和成员对象和成员函数 关联类模板的容器…

VScode远程连接开发嵌入式开发板

在做嵌入式开发时&#xff0c;很多时候需要远程连接或者远程调试设备&#xff0c;这时可以通过VScode上的插件来很方便的进行远程连接和调试。 ssh远程连接嵌入式开发板&#xff1a; 1、安装vscode ssh远程插件&#xff1a;Remote-SSH。 2、点击""&#xff0c;输入…

构建基于RHEL8系列(CentOS8,AlmaLinux8,RockyLinux8等)的MySQL8.0.32的RPM包

本文适用&#xff1a;rhel8系列&#xff0c;或同类系统(CentOS8,AlmaLinux8,RockyLinux8等) 文档形成时期&#xff1a;2023年 因系统版本不同&#xff0c;构建部署应略有差异&#xff0c;但本文未做细分&#xff0c;对稍有经验者应不存在明显障碍。 因软件世界之复杂和个人能力…

监督学习 - 逻辑回归(Logistic Regression)

什么是机器学习 逻辑回归&#xff08;Logistic Regression&#xff09;虽然名字中包含"回归"一词&#xff0c;但实际上是一种用于解决分类问题的统计学习方法&#xff0c;而不是回归问题。它是一种线性模型&#xff0c;常用于二分类问题&#xff0c;也可以扩展到多分…