当前位置: 首页 > news >正文

LVSM: A LARGE VIEW SYNTHESIS MODEL WITH MINIMAL 3D INDUCTIVE BIAS 论文解读

目录

一、概述

二、相关工作

1、新视角合成

2、优化3D表示

3、可泛化的前馈方法

三、LVSM

1、总体结构

2、encoder-decoder

3、decoder-only  

4、Loss


一、概述

        该论文提出大视角合成模型LVSM,基于Transformer方法,用于场景中或对象级层次从稀疏视角(或单视角)作为输入,进行可扩展和泛化的新视角合成。

        提出了两种新颖的LVSM架构:encoder-decoder LVSM,decoder-only LVSM。

        encoder-decoder LVSM:将输入图像编码到固定长度的潜在表示,并从中解码新视角图像。

        decoder-only LVSM:直接将输入图像映射到新视角输出,完全消除了中间场景表示,减少了3D归纳偏差,decoder-only的方法也实现了更高的质量、可扩展性和零样本泛化能力,在PSNR指标上优于之前的SOTA(GS-LRM)1.5到3.5dB PSNR。

        我觉得LVSM的最大特点在于,依赖Transformer架构完全数据驱动的方法实现高质量新视角合成,不需要再考虑几何,纹理等问题,这也需要进一步的思考。

二、相关工作

1、新视角合成

        基于图像的渲染(IBR)早期一般使用基于图像的渲染使用代理几何,并通过输入参考图像进行加权混合的方式(Modeling and rendering architecture from photographs)。光场方法从密集视图输入中建立4D多视函数切片(Light field rendering)。

        上面两个方法属于20年前老祖级别,近期随着卷积神经网络的发展,将逐渐转变为基于学习的IBR方法来预测深度图或者渲染权重(比如NeRF参数)。另外由于要做更大的场景渲染,所以考虑多视角立体重建。

        而该论文做的事基于大场景,真实数据的可泛化的先验来实现新视角合成。

2、优化3D表示

        NeRF提出可微分的神经辐射场3D表示,通过最小化渲染损失来重建场景。后续工作逐渐在渲染质量、优化速度、放宽输入条件等多方式,来提升NeRF的性能。

        DVGO通过将NeRF于体素信息相结合,Point-NeRF提出基于点的NeRF表示,Gaussian Splatting将3D点引入3DGS来提升渲染速度。

        另外也有一些论文考虑使用稀疏体素,体积分解,哈希技术来降低空间复杂度。

        我们的论文提出不需要3D先验和任何单一场景的优化过程的归纳偏差,来实现LRM的新视角生成。

3、可泛化的前馈方法

        3D归纳偏差(3D Inductive Bias),指在设计前馈网络时,引入一些预定义的3D结构或渲染方程,从而限制了模型的灵活性和泛化能力,无法很好地适应更加复杂多样的场景。3D归纳偏差包括极线约束、平面扫描体积等3D特定先验,尽管这些方法会在某些特定场景取得了一些进展,但是限制了模型的潜在泛化能力和可扩展性。

        可泛化的方法考虑通过NVS推理,并使用神经网络训练场景,来生成3D表示和新视角图像。

        PixelNeRF、MVSNeRF、IBRNet网络考虑使用3D先验来实现可微分的3D渲染。另外,考虑直接学习渲染函数的方法但被证实是不可扩展的且缺乏模型容量,无法捕捉高频细节。SRT方法移除手工设计的3D表示,而学习潜在表示,但他采用的是一个不可扩展的模型+Cross Att.而我们的模型使用完全基于Transformer的模型,有效的学习新视角合成和最小化归纳偏差,不需要学习潜在表示。

        对于以往的方法通过引入3D归纳偏差,而该论文的LVSM考虑完全消除3D归纳偏差,直接从数据中学习渲染函数,提高了模型的可扩展性和渲染质量。

三、LVSM

        LVSM分为两个部分:encoder-decoder部分和decoder-only部分。

1、总体结构

        首先对于输入图像I_i使用Plucker射线\left \{ P_i \right \}对于每一个像素进行嵌入,最后在分解为不重叠的patch中,p个patch\left \{ I_{i,j},P_{i,j} \right \}。之后将这组输入引入线性层得到输入tokenx_{i,j}

        对于目标视图的Plucker光线P^t,通过相机内参和外参计算而来,并且通过一个线性层得到目标视图的每一个patch的Plucker射线嵌入。

                                                                q_t=Linear_t(P_t^j)

        经过一个full-transformer来计算LVSM的输出。

                                                                y_i=M(q_i|x_i)

        之后通过线性层加unpatchify来恢复输出空间结构的新视角生成\hat{I}^t

                                                \hat{I}_j^t=Sigmoid(Linear_{out}(y_t))

2、encoder-decoder

特殊字母含义:

        x:输入图像token序列

        x':编码器处理后的输入token序列

        y:最终合成目标视图

        z:编码器处理后的中间潜在表示

        z':解码器更新后的潜在表示

        e:用于聚合输入token信息的可学习的潜在token,是人为给定的

        q:目标视图中的plucker射线嵌入

        对于encoder-decoder模型是需要潜在表示存在的,而decoder-only不再需要潜在token序列。

        

3、decoder-only  

4、Loss

        损失函数由两部分组成:MSE和\lambda权重的光感损失

参考项目:LVSM: A Large View Synthesis Model with Minimal 3D Inductive Bias 

相关文章:

LVSM: A LARGE VIEW SYNTHESIS MODEL WITH MINIMAL 3D INDUCTIVE BIAS 论文解读

目录 一、概述 二、相关工作 1、新视角合成 2、优化3D表示 3、可泛化的前馈方法 三、LVSM 1、总体结构 2、encoder-decoder 3、decoder-only 4、Loss 一、概述 该论文提出大视角合成模型LVSM,基于Transformer方法,用于场景中或对象级层次从稀…...

7.《双指针篇》---⑦三数之和(中等偏难)

题目传送门 方法一:双指针 1.新建一个顺序表用来返回结果。并排序数组。 2.for循环 i 从第一个数组元素遍历到倒数第三个数。 3.如果遍历过程中有值大于0的则break; 4.定义左右指针,以及target。int left i 1, right n - 1; int target -nums[i];…...

鸿蒙ArkTS中的布局容器组件(Scroll、List、Tabs)

1、Scroll组件 Scroll组件是一个可滚动的容器组件,用于在子组件的布局尺寸超过父组件尺寸时提供滚动功能。它允许在其内部容纳超过自身显示区域的内容,并通过滚动机制来查看全部内容。这对于显示大量信息(如长列表、长篇文本或大型图像等&…...

mybatis连接PGSQL中对于json和jsonb的处理

pgsql数据库表字段设置了jsonb格式;在java的实体里使用String或者对象转换会一直提示一个错误: Caused by: org.postgresql.util.PSQLException: ERROR: column "xx" is of type jsonb but expression is of type character varying 需要加一…...

Redis 权限控制(ACL)|ACL 命令详解、ACL 持久化

官网文档地址:https://redis.io/docs/latest/operate/oss_and_stack/management/security/acl/ 使用版本:Redis7.4.1 什么是 ACL? ACL(Access Control List),权限控制列表,是 Redis 提供的一种…...

内网学习一:windows基础

工作组介绍 按照不同的计算机功能或工作部门将计算机列入不同的工作组。要是想访问某一个工作组的资源 只需要双击该部门的工作组,就可以看到该组内的所有计算机。 目的:在大型网络中,方便管理员去管理设备 加入工作组 右击计算机图标---…...

编译工具与文件学习(一)-YAML、repos、vcstoolcolcon

YAML YAML(YAML Ain’t Markup Language)是一种人类可读的数据序列化格式,常用于配置文件、数据交换和存储结构化数据。YAML 的设计目标是简洁、易读,并且能够表示复杂的数据结构。 YAML 文件的基本语法 基本结构: Y…...

使用 HuggingFace 提供的 Elasticsearch 托管交叉编码器进行重新排名

作者:来自 Elastic Jeff Vestal 了解如何使用 Hugging Face 的模型在 Elasticsearch 中托管和执行语义重新排序。 在这篇简短的博文中,我将向你展示如何使用 Hugging Face 中的模型在搜索时在你自己的 Elasticsearch 集群中执行语义重新排序。我们将使用…...

CKA认证 | Day1 k8s核心概念与集群搭建

第一章 Kubernetes 核心概念 1、主流的容器集群管理系统 容器编排系统: KubernetesSwarmMesos Marathon 2、Kubernetes介绍 Kubernetes是Google在2014年开源的一个容器集群管理系统,Kubernetes简称K8s。 Kubernetes用于容器化应用程序的部署&#x…...

[极客大挑战 2019]PHP 1

[极客大挑战 2019]PHP 1 审题 猜测备份在www.zip中,输入下载文件。 知识点 反序列化 解题 查看代码 看到index.php中包含了class.php,直接看class.php中的代码 查看条件 当usernameadmin,password100时输出flag 构造反序列化 输入select中&#…...

【c++丨STL】vector模拟实现

🌟🌟作者主页:ephemerals__ 🌟🌟所属专栏:C、STL 目录 前言 一、vector底层刨析 二、模拟实现 1. 属性、迭代器以及函数声明 2. 功能实现 交换两个容器的内容 构造函数 拷贝构造 赋值重载 析构…...

SQLAlchemy 介绍与实践

postgresql 实践 pydantic 实践 1. SQLAlchemy 介绍 SQLAlchemy 是一个 ORM 框架。SQLAlchemy 是一个用于 Python 的 SQL 工具和对象关系映射(ORM)库。它允许你通过 Python 代码来与关系型数据库交互,而不必直接编写SQL语句。 简单介绍一下…...

docker进行SRS直播服务器搭建

docker进行SRS直播服务器搭建 docker构建参考地址: 地址: https://github.com/ossrs/srs https://ossrs.net/lts/zh-cn/docs/v5/doc/getting-started docker run --rm -it -p 1935:1935 -p 1985:1985 -p 8080:8080 \-p 8000:8000/udp -p 10080:10080/udp ossrs/sr…...

windows server2019下载docker拉取redis等镜像并运行项目

一、基本概念 1、windows server 指由微软公司开发的“Windows”系列中的“服务器”版本。这意味着它是基于Windows操作系统的,但专门设计用于服务器环境,而不是普通的桌面或个人用户使用。主要用途包括服务器功能、用户和资源管理、虚拟化等 2、dock…...

数据结构(8.7_2)——败者树

多路平衡归并带来的问题 什么是败者树 败者树的构造 败者树的使用 败者树在多路平衡归并中的应用 败者树的实现思路 总结...

设计模式-七个基本原则之一-里氏替换原则

里氏替换原则(LSP)面向对象六个基本原则之一 子类与父类的替代性:子类应当能够替代父类出现的任何地方,且表现出相同的行为。行为的一致性:子类的行为必须与父类保持一致,包括输入和输出、异常处理等。接口…...

k8s中基于overlay网络和underlay网络的网络插件分别有哪些

在 Kubernetes 中,不同的网络插件会使用 overlay 或 underlay 网络来连接 Pod 和节点。以下是基于 overlay 网络和 underlay 网络的常见 Kubernetes 网络插件: 1. 基于 Overlay 网络的插件 这些插件通过隧道封装技术(如 VXLAN、GRE 等&#…...

一文详解java的数据类型

1. 题记 Java是一门对数据类型敏感的语言,本博文主要总结介绍java语言的数据类型。 2. java的数据类型 Java 的数据类型分为基本数据类型(Primitive Data Types)和引用数据类型(Reference Data Types)。 2.1 基本数…...

Flink API 的层次结构

Apache Flink 提供了多层 API,每层 API 针对不同的抽象层次和用途,使得开发者可以根据具体需求选择合适的 API 层次。以下是 Flink API 的层次结构及其简要说明:...

lua入门教程:math

在Lua中,math库是一个非常重要的内置库,它提供了许多用于数学计算的函数。这些函数可以处理各种数学运算,包括基本的算术运算、三角函数、对数函数、随机数生成等。结合你之前提到的Lua中的数字遵循IEEE 754双精度浮点标准,我们可…...

Cursor实现用excel数据填充word模版的方法

cursor主页:https://www.cursor.com/ 任务目标:把excel格式的数据里的单元格,按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例,…...

51c自动驾驶~合集58

我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留,CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制(CCA-Attention),…...

Java 语言特性(面试系列1)

一、面向对象编程 1. 封装(Encapsulation) 定义:将数据(属性)和操作数据的方法绑定在一起,通过访问控制符(private、protected、public)隐藏内部实现细节。示例: public …...

Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件

今天呢,博主的学习进度也是步入了Java Mybatis 框架,目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学,希望能对大家有所帮助,也特别欢迎大家指点不足之处,小生很乐意接受正确的建议&…...

系统设计 --- MongoDB亿级数据查询优化策略

系统设计 --- MongoDB亿级数据查询分表策略 背景Solution --- 分表 背景 使用audit log实现Audi Trail功能 Audit Trail范围: 六个月数据量: 每秒5-7条audi log,共计7千万 – 1亿条数据需要实现全文检索按照时间倒序因为license问题,不能使用ELK只能使用…...

376. Wiggle Subsequence

376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...

【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表

1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)

设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile&#xff0c;新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...

k8s业务程序联调工具-KtConnect

概述 原理 工具作用是建立了一个从本地到集群的单向VPN&#xff0c;根据VPN原理&#xff0c;打通两个内网必然需要借助一个公共中继节点&#xff0c;ktconnect工具巧妙的利用k8s原生的portforward能力&#xff0c;简化了建立连接的过程&#xff0c;apiserver间接起到了中继节…...

Redis数据倾斜问题解决

Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中&#xff0c;部分节点存储的数据量或访问量远高于其他节点&#xff0c;导致这些节点负载过高&#xff0c;影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...