当前位置: 首页 > 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双精度浮点标准,我们可…...

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明:假设每台服务器已…...

[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解

突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 ​安全措施依赖问题​ GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...

AI Agent与Agentic AI:原理、应用、挑战与未来展望

文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例:使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例:使用OpenAI GPT-3进…...

MongoDB学习和应用(高效的非关系型数据库)

一丶 MongoDB简介 对于社交类软件的功能,我们需要对它的功能特点进行分析: 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具: mysql:关系型数据库&am…...

蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练

前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...

C++中string流知识详解和示例

一、概览与类体系 C 提供三种基于内存字符串的流&#xff0c;定义在 <sstream> 中&#xff1a; std::istringstream&#xff1a;输入流&#xff0c;从已有字符串中读取并解析。std::ostringstream&#xff1a;输出流&#xff0c;向内部缓冲区写入内容&#xff0c;最终取…...

根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:

根据万维钢精英日课6的内容&#xff0c;使用AI&#xff08;2025&#xff09;可以参考以下方法&#xff1a; 四个洞见 模型已经比人聪明&#xff1a;以ChatGPT o3为代表的AI非常强大&#xff0c;能运用高级理论解释道理、引用最新学术论文&#xff0c;生成对顶尖科学家都有用的…...

有限自动机到正规文法转换器v1.0

1 项目简介 这是一个功能强大的有限自动机&#xff08;Finite Automaton, FA&#xff09;到正规文法&#xff08;Regular Grammar&#xff09;转换器&#xff0c;它配备了一个直观且完整的图形用户界面&#xff0c;使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...

服务器--宝塔命令

一、宝塔面板安装命令 ⚠️ 必须使用 root 用户 或 sudo 权限执行&#xff01; sudo su - 1. CentOS 系统&#xff1a; yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh2. Ubuntu / Debian 系统…...

基于Java Swing的电子通讯录设计与实现:附系统托盘功能代码详解

JAVASQL电子通讯录带系统托盘 一、系统概述 本电子通讯录系统采用Java Swing开发桌面应用&#xff0c;结合SQLite数据库实现联系人管理功能&#xff0c;并集成系统托盘功能提升用户体验。系统支持联系人的增删改查、分组管理、搜索过滤等功能&#xff0c;同时可以最小化到系统…...