Large Spatial Model:End-to-end Unposed Images to Semantic 3D 论文解读

目录

一、概述

二、相关工作

1、SfM和可微神经表示

2、端到端的Image-to-3D

三、LSM

1、密集几何预测 

2、2D信息特征提取

3、点特征融合

4、可微渲染

5、损失函数

四、实验 


一、概述

        该论文提出一种大型空间模型(Larget Spatial Model,LSM)的统一框架,可以直接从无姿态的RGB图像中重建神经辐射场。LSM可以单次前向传递中同时估计几何、外观和语义,统一了多个三维视觉任务,首次实现实时的语义3D重建和渲染,无需显式的相机参数。

(1)提出统一的三维表示的端到端框架,并实现3D语义分割,以及直接从无显式相机参数的新视图中合成,无需额外的SfM步骤,可以同时执行多个任务,通过统一的方法扩展多种视觉任务,并超过当前SOTA基线。

(2)利用跨视图注意力的Transformer来进行几何预测,并结合分层跨模态注意力来丰富几何特征。

(3)引入预训练的2D语义网络模型来增强3D语义理解。

(4)通过点级的局部上下文聚合,实现细粒度的特征集成,并预测各向异性的3DGS分布和RGB,深度,语义的图像输出。

二、相关工作

1、SfM和可微神经表示

        SfM(运动恢复结构)从多视角图像中估计相机姿态和重建稀疏3D结构,传统的pipeline通常不是端到端的,一般分为描述子提取,对应关系估计,增量的捆绑调整。

        近期深度学习的发展提供了SfM的准确率和有效性,而这种方法也广泛的应用与3D视觉中,而可微的神经表示也就是从SfM计算的精确的相机姿态作为前提而来。NeRF方法依赖于COLMAP离线估计的相机姿态而来,3DGS使用SfM生成的3D点作为初始化,并逐渐应用到机器人,健康医疗等多领域。

        另外最新的工作就是该论文提出的,利用2D特征来上升到3D任务中。

2、端到端的Image-to-3D

        3D重建包含很多传统的工作比如SfM,MVS,SDF等。最近的工作包含显式和隐式来生成3D模型,语义理解工作一般通过额外的优化步骤或者在重建预处理中进行。

        大多数方法依赖于预处理工作,比如估计相机姿态,生成稀疏点云,最后在test-time中进行优化,但是这种依赖限制了大尺度数据的可伸缩性。

        最新的无姿态的前馈方法,如Scene Representation Transformers将多个图像表示为潜在场景表示,即使存在不准确的相机姿态或无相机姿态也可以生成新视角图像,但该方法很难建立显式的几何图形。

        DUSt3R考虑使用密集点云来生成标准尺度下的点对齐的几何预测,但是密集点云限制了可扩展性。

        InstantSplat集成了DUSt3R的优势,考虑利用几何约束来进行点云对齐,优化姿态。(该作者也是InstantSplat的作者)

        而该论文考虑引入三维注释(三维语义分割),通过引入语义各向异性高斯函数,在没有注释的情况下,将二维特征映射到三维语义嵌入,利用这种较为轻量的annotations在一个统一框架中解决3D感知问题。

三、LSM

        LSM(大型语义模型)分为五个模块:密集几何预测3D点并生成深度图,2D信息特征提取,点特征增强,可微渲染。

        首先输入两张无姿态图像经过分块,正弦编码,采用双目ViT架构利用跨视角注意力机制预测像素对齐的几何点图,另外输入无姿态图像到已训练好的2D多模态模型中来获得2D特征,3D特征与3D点坐标和2D特征进行点特征融合并通过一个特定的局部Transformer(Decoder部分也是跨视角的)经两组MLP分别输出5个参数(带有RGB的,和带有语义信息的),并经过可微渲染生成三维语义重建和RGB的一般新视角合成。

1、密集几何预测 

         首先输入两张无姿态图像v \in\left \{ 1,2 \right \}经过分块(patchify),正弦编码(Positional encoder)得到tokens,并通过Siamese ViT(就是一个双目的ViT,decoder用了共12层自注意力+跨视角交叉注意力机制,用于保证视角一致性),输出一个像素对齐的点图(貌似含每一个点的坐标和像素颜色)和置信度图。

        之后通过点图可以利用DPT Head回归得到深度图。

        此处有两个损失:深度损失和置信度图损失。

        深度损失L_{depth}:保证预测点图和真实点图在尺度上一致。其中将预测点图和真实点图均归一化到单位长度进行,目的是消除点图尺度差异。

                        L_{depth}=\sum_{v \in \left \{ 1,2 \right \}} || \frac{1}{z} \cdot P_{v,1}- \frac{1}{\hat{z}}\cdot \hat{P}_{v,1} ||

        其中归一化因子z,\hat{z}通过分别对真实情况和预测情况各两个图(输入就是两张无姿态图)中所有坐标点对于原点的差的集合作为分母进行归一化。

        置信度图损失L_{conf}

                        L_{conf}=\sum_{v \in \left \{ 1,2 \right \} }\sum_{i \in D^v} M_{v,1}^i \cdot L_{depth}(v,i)-\alpha \cdot log M_{v,1}^i

         其中M是像素对齐置信度图,类似于DUSt3R,D表示坐标点集合,\left \{ v,1 \right \}代表第v个视图对第1个视图,\alpha是超参数用于正则化。

2、2D信息特征提取

        LSM框架中利用一个预训练的2D多模态模型LSeg(未提及)来提取2D特征信息,通过引入多模态的特征嵌入,可能引入了文本特征嵌入,之后通过分词模块将特征映射到潜在空间,最终输出语义特征图。

        这里引入一个Dist特征损失:

                ​​​​​​​        L_{dist}=1-sim(\hat{S},S)=1-\frac{\hat{S} \cdot S}{||\hat{S}|| \ ||S||}

        其中\hat{S},S分别代表真实特征图和预测特征图。

3、点特征融合

        首先输入密集几何预测得到的点图,经部分Point Transformer的encoder部分得到中间层点特征,之后将密集几何预测中的encoder输出与LSeg中的特征信息concat到中间层,并经过Decoder部分(含跨视角交叉注意力机制,也是保证视角一致性的),分别经过两个并行MLP分支得到不同的4个参数,一个是RGB高斯参数用于一般三维重建,一个是语义信息高斯参数用于三维语义重建。

        连带密集几何预测的输出点坐标(用于高斯分布的中心位置\mu),RGB高斯分布五个参数记为\mu_a,\alpha_a,s_a,r_a,F_a,语义特征高斯分布记为\mu_b,\alpha_b,s_b,r_b,F_b

4、可微渲染

        可微渲染部分根据上述的两组高斯分布,经过快速光栅化来进行渲染,生成语义高斯场和RGB高斯场。最后通过新视角生成语义图和RGB图。

5、损失函数

        因为该框架是端到端的,所以可以直接定义一个完整的损失函数,在原有的三个损失函数的基础上,新增了对于RGB图像和语义的损失(两者的L2范数)

四、实验 

        通过无姿态图像进行新视角语义图生成。

        对于一般的RGB三维重建,相较于pixelsplat,我们不再需要获得相机姿态。 

         三维语义信息的分割,相较于以往的方法以及只使用LSeg更为细节。

参考项目:Large Spatial Model 

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

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

相关文章

Leetcode207. 课程表(HOT100)

链接 题解:先统计入度为0的点,如果一个节点入度为0,说明没有课程指向它,那么你就可以学习它了。反之说明还有先修课。 注意:图存在拓扑排序等价于图不存在环。其实可以想出:如果是一个环,那么…

JavaScript将至

JS是什么? 是一种运行在客户端(浏览器)的编程语言,实现人机交互效果 作用捏? 网页特效 (监听用户的一些行为让网页作出对应的反馈) 表单验证 (针对表单数据的合法性进行判断) 数据交互 (获取后台的数据, 渲染到前…

Centos-stream 9,10 add repo

Centos-stream repo前言 Centos-stream 9,10更换在线阿里云创建一键更换repo 自动化脚本 华为centos-stream 源 , 阿里云centos-stream 源 华为epel 源 , 阿里云epel 源vim /centos9_10_repo.sh #!/bin/bash # -*- coding: utf-8 -*- # Author: make.h

网络安全概论

一、 网络安全是一个综合性的技术。在Internet这样的环境中,其本身的目的就是为了提供一种开放式的交互环境,但是为了保护一些秘密信息,网络安全成为了在开放网络环境中必要的技术之一。网络安全技术是随着网络技术的进步逐步发展的。 网络安…

【Android】android compat理解

1,前提 即便是在同一手机上安装的不同apk,其编译的apk不同,也会导致行为上的差异。如SDK34有限制后台启动,但如果安装的apk所依赖的sdk是33,则不会表现出此差异。这是如何实现的呢?其实,本质是…

《数据结构》学习系列——图(中)

系列文章目录 目录 图的遍历深度优先遍历递归算法堆栈算法 广度优先搜索 拓扑排序定义定理算法思想伪代码 关键路径基本概念关键活动有关量数学公式伪代码时间复杂性 图的遍历 从给定连通图的某一顶点出发,沿着一些边访问遍图中所有的顶点,且使每个顶点…

【C++】static修饰的“静态成员函数“--静态成员在哪定义?静态成员函数的作用?

声明为static的类成员称为类的静态成员,用static修饰的成员变量,称之为静态成员变量;用 static修饰的成员函数,称之为静态成员函数。静态成员变量一定要在类外进行初始化 一、静态成员变量 1)特性 所有静态成员为所有类对象所共…

MySQL面试-1

InnoDB中ACID的实现 先说一下原子性是怎么实现的。 事务要么失败,要么成功,不能做一半。聪明的InnoDB,在干活儿之前,先将要做的事情记录到一个叫undo log的日志文件中,如果失败了或者主动rollback,就可以通…

JavaScript中的this指向绑定规则(超全)

JavaScript中的this指向绑定规则(超全) 1.1 为什么需要this? 为什么需要this? 在常见的编程语言中,几乎都有this这个关键字(Objective-C中使用的是self),但是在JavaScript中的this和常见的面向对象语言中的this不太一样 常见面…

Linux---ps命令

​​​​​​Linux ps 命令 | 菜鸟教程 (runoob.com) process status 用于显示进程的状态 USER: 用户名,运行此进程的用户名。PID: 进程ID(Process ID),每个进程的唯一标识号%CPU: 进程当前使用的CPU百分比%MEM: 进程当前使用的…

【Spiffo】环境配置:VScode+Windows开发环境

摘要: 在Linux下直接开发有时候不习惯快捷键和操作逻辑,用Windows的话其插件和工具都更齐全、方便,所以配置一个Windows的开发环境能一定程度提升效率。 思路: 自己本地网络内远程连接自己的虚拟机(假定用的是虚拟机…

[ubuntu]编译共享内存读取出现read.c:(.text+0x1a): undefined reference to `shm_open‘问题解决方案

问题log /tmp/ccByifPx.o: In function main: read.c:(.text0x1a): undefined reference to shm_open read.c:(.text0xd9): undefined reference to shm_unlink collect2: error: ld returned 1 exit status 程序代码 #include <stdio.h> #include <stdlib.h> #…

Java基于Spring Boot框架的房屋租赁系统,附源码

博主介绍&#xff1a;✌Java老徐、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&…

librdns一个开源DNS解析库

原文地址&#xff1a;librdns一个开源DNS解析库 – 无敌牛 欢迎参观我的个人博客&#xff1a;无敌牛 – 技术/著作/典籍/分享等 介绍 librdns是一个开源的异步多功能插件式的解析器&#xff0c;用于DNS解析。 源代码地址&#xff1a;GitHub - vstakhov/librdns: Asynchrono…

CTFHUB--yeeclass-web

复现平台CTFHUB靶机为一个完整类论坛网页&#xff0c;题目给了服务端完整代码 代码审计 /src/submit.php Line56-63: 可以看到提交数据存入的时候将$_SESSION["username"]."_"作为前缀&#xff0c;生成了一个uniqid。uniqid的生成方式即{sec:08x}{usec:0…

DataWhale—PumpkinBook(TASK05决策树)

课程开源地址及相关视频链接&#xff1a;&#xff08;当然这里也希望大家支持一下正版西瓜书和南瓜书图书&#xff0c;支持文睿、秦州等等致力于开源生态建设的大佬✿✿ヽ(▽)ノ✿&#xff09; Datawhale-学用 AI,从此开始 【吃瓜教程】《机器学习公式详解》&#xff08;南瓜…

计算机网络socket编程(2)_UDP网络编程实现网络字典

个人主页&#xff1a;C忠实粉丝 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 C忠实粉丝 原创 计算机网络socket编程(2)_UDP网络编程实现网络字典 收录于专栏【计算机网络】 本专栏旨在分享学习计算机网络的一点学习笔记&#xff0c;欢迎大家在评论区交流讨…

51c多模态~合集3

我自己的原文哦~ https://blog.51cto.com/whaosoft/12409223 #TextHarmony 字节联合华师提出统一的多模态文字理解与生成大模型 字节跳动与华东师范大学联合提出的TextHarmony模型&#xff0c;这是一个统一的多模态文字理解与生成大模型&#xff0c;它通过创新的Slide-LoRA…

el-table vue3统计计算数字

固定合计在最下列 父组件 <template><el-tablev-loading"loading"tooltip-effect"light":data"list"style"width: 100%":max-height"maxHeight"element-loading-text"拼命加载中...":header-cell-styl…

【大数据学习 | Spark-Core】详解分区个数

RDD默认带有分区的&#xff0c;那么创建完毕rdd以后他的分区数量是多少&#xff1f; 从hdfs读取文件的方式是最正规的方式&#xff0c;我们通过计算原理可以推出blk的个数和分区数量是一致的&#xff0c;本地化计算。 我们可以发现数据的读取使用的是textInputFormat&#xff…