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

uniapp 对接腾讯云IM群组成员管理(增删改查)

UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…...

19c补丁后oracle属主变化,导致不能识别磁盘组

补丁后服务器重启,数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后,存在与用户组权限相关的问题。具体表现为,Oracle 实例的运行用户(oracle)和集…...

利用ngx_stream_return_module构建简易 TCP/UDP 响应网关

一、模块概述 ngx_stream_return_module 提供了一个极简的指令&#xff1a; return <value>;在收到客户端连接后&#xff0c;立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量&#xff08;如 $time_iso8601、$remote_addr 等&#xff09;&a…...

无法与IP建立连接,未能下载VSCode服务器

如题&#xff0c;在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈&#xff0c;发现是VSCode版本自动更新惹的祸&#xff01;&#xff01;&#xff01; 在VSCode的帮助->关于这里发现前几天VSCode自动更新了&#xff0c;我的版本号变成了1.100.3 才导致了远程连接出…...

转转集团旗下首家二手多品类循环仓店“超级转转”开业

6月9日&#xff0c;国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解&#xff0c;“超级…...

ffmpeg(四):滤镜命令

FFmpeg 的滤镜命令是用于音视频处理中的强大工具&#xff0c;可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下&#xff1a; ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜&#xff1a; ffmpeg…...

vue3 定时器-定义全局方法 vue+ts

1.创建ts文件 路径&#xff1a;src/utils/timer.ts 完整代码&#xff1a; import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...

Go 语言并发编程基础:无缓冲与有缓冲通道

在上一章节中&#xff0c;我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道&#xff0c;它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好&#xff0…...

无人机侦测与反制技术的进展与应用

国家电网无人机侦测与反制技术的进展与应用 引言 随着无人机&#xff08;无人驾驶飞行器&#xff0c;UAV&#xff09;技术的快速发展&#xff0c;其在商业、娱乐和军事领域的广泛应用带来了新的安全挑战。特别是对于关键基础设施如电力系统&#xff0c;无人机的“黑飞”&…...

HubSpot推出与ChatGPT的深度集成引发兴奋与担忧

上周三&#xff0c;HubSpot宣布已构建与ChatGPT的深度集成&#xff0c;这一消息在HubSpot用户和营销技术观察者中引发了极大的兴奋&#xff0c;但同时也存在一些关于数据安全的担忧。 许多网络声音声称&#xff0c;这对SaaS应用程序和人工智能而言是一场范式转变。 但向任何技…...