HexPlane: A Fast Representation for Dynamic Scenes一种动态场景的快速表示方法

Abstract

动态三维场景的建模与再现是三维视觉领域的一个具有挑战性的课题。先前的方法基于 NERF 并依赖于隐式表示这是缓慢的,因为它需要许多 MLP 评估,限制真实世界的应用程序。我们展示了动态三维场景可以明确地表示为六个平面的学习功能,导致一个优雅的解决方案,我们称为 Hex刨面一个 Hex刨面通过融合从每个平面提取的向量来计算时空点的特征,这是非常有效的。通过微小的 MLP 配对一个 HexPlann 来回归输出颜色,并通过立体渲染进行训练,可以在动态场景中获得令人印象深刻的新视图合成效果,与之前工作的图像质量相匹配,但减少了100多倍的训练时间。广泛的消融证实了我们的 Hex刨设计,并表明它是健壮的不同的特征融合机制,坐标系统和解码机制。Hex刨是一个简单而有效的四维体量表示方案,我们希望它能够为动态三维场景的时空建模做出广泛的贡献
在这里插入图片描述
图1。用于动态三维场景的 Hex刨面。我们没有从深度 MLP 中回归颜色和不透明度,而是通过 HexPlann 显式地计算时空点的特征。配对一个微小的 MLP,它允许以上100倍加速匹配的质量。

1. Introduction

从一组二维图像中重建和再现三维场景是一个核心视觉问题,它可以实现多种 AR/VR 应用。最近几年,在重建静态场景方面取得了巨大的进展,但这种假设是有限的: 真实世界是动态的,在复杂的场景中,运动是常态,而不是例外。目前许多表示动态3D 场景的方法依赖于内隐表示,建立在 NeRF的基础上。他们训练一个大型多层感知器(MLP) ,输入点在空间和时间中的位置,并输出点的颜色[28,29]或变形到规范的静态场景。在这两种情况下,从新视图渲染图像是昂贵的,因为每个生成的像素需要许多 MLP 评估,训练同样缓慢,需要多达数天的 GPU 时间来建模一个单一的动态场景; 这种计算瓶颈阻碍了这些方法的广泛应用。
最近的几种静态场景建模方法已经通过显式和混合方法在 NeRF 上展示了巨大的加速效果。这些方法使用显式的空间数据结构来存储显式的场景数据或由微小 MLP 解码的特征。这使模型的容量与速度分离,并允许实时渲染高质量的图像。虽然有效,这些方法迄今为止只应用于静态场景。
本文在静态场景研究的基础上,设计了一种动态三维场景的显式表示方法。为此,我们设计了一个存储场景数据的时空数据结构。它必须克服两个关键的技术挑战。首先是内存使用情况。我们必须在空间和时间上对所有点进行建模,在密集的4D 网格中简单地存储数据将按照网格分辨率的第四次方进行扩展,这对于大场景或长时间的场景是不可行的。其次是稀疏的观察。在静态场景中移动单个摄像机可以获得密集覆盖场景的视图; 相反,在动态场景中移动摄像机每个时间步只能获得一个视图。独立处理时间步骤可能会给高质量重建提供不足的场景覆盖,因此我们必须跨时间步骤共享信息。
我们克服了这些挑战,我们的新颖的 Hex刨架构。受到静态场景的分解表示[5,7,51]的启发,HexFlight 将4D 时空网格分解为跨越每对坐标轴(例如 XY,ZT)的六个特征平面。六维平面计算时空中一个4D 点的特征向量,方法是将该点投影到每个特征平面上,然后将得到的六个特征向量聚合在一起。然后将融合特征向量传递给一个微小的 MLP,MLP 预测点的颜色,然后可以通过立体渲染来呈现新的视图。尽管 Hex刨简单,但它为上述挑战提供了一个优雅的解决方案。由于它的分解表示,一个 HexPlanes 的内存占用只能按照场景分辨率的二次规模进行调整。此外,每个平面的分辨率可以独立调整,以考虑到场景需要在空间和时间上的可变容量。由于有些平面只依赖于空间坐标(例如 XY) ,HexPlane 通过构造鼓励跨不相交的时间步长共享信息。
实验结果表明,Hex刨面是一种有效的动态场景新视点合成方法。在具有挑战性的全光视频数据集[28]上,我们匹配了先前工作的图像质量,但将训练时间提高了 > 100倍; 我们还在单目视频数据集上优于先前的方法[54]。广泛的消融验证了我们的 Hexlane 设计,并且证明了它对不同的特征融合机制、坐标系统(矩形对球形)和解码机制(球谐函数对 MLP)都有很强的鲁棒性。Hex刨是动态场景的一种简单、明确和通用的表示形式。它对下面的场景做了最小的假设,并且不依赖于变形场或特定类别的先验。除了改进和加速视图合成之外,我们希望六平面能够在动态场景的广泛研究中发挥作用[61]。

2. Related Work

Neural Scene Representations.
利用神经网络隐式表示三维场景近年来取得了令人兴奋的进展。NeRF [42]及其变体[2,3,40,44,69,71,80,87]在新视图合成[9,75,82,94]以及包括3D 重建[38,67,85,89,95]、语义分割[25,55,93]、生成模型[5,6,10,45,58,77]和3D 内容创建[1,22,30,48,53,72,86]等许多其他应用方面显示出令人印象深刻的结果。
隐式神经表示具有显著的渲染质量,但是由于每个像素需要大量昂贵的 MLP 评估,它们的渲染速度较慢。为了应对这一挑战,许多最近的论文提出了混合表示法,将快速显式场景表示与可学习的神经网络组件相结合,提供了比纯隐式方法更显著的加速效果。已经研究了各种明确的表示,包括稀疏体素[14,34,59,66] ,低秩分量[5,7,31,51] ,点云[4,21,79,92,96]和其他[8,36,43,68,90]。然而,这些方法假设静态的3D 场景,留下显式的表示动态场景未被探索。本文提供了一个动态场景的显式模型,实质上加速了依赖于完全隐式方法的先验方法。
Neural Rendering for Dynamic Scenes.
通过神经辐射场来表示动态场景是 NeRF 的一个重要扩展,使得许多实际应用成为可能[27,47,52,65,78,84,91]。一项研究通过扩展带有额外时间维度(T-NeRF)或额外潜伏代码的 NERF 来表示动态场景[16,28,29,76]。尽管能够代表一般类型的变化,他们遭受严重的限制问题,需要额外的监督,如深度,光流或密集的观察体面的结果。另一条研究路线使用单个 MLP 来表示变形场和规范场[11,49,50,54,70,83] ,其中规范场描绘静态场景,变形场随着时间学习到规范空间的坐标图。我们提出了一个简单而优雅的解决方案的动态场景表示使用六个特征平面,对底层场景作出最小的假设。最近,MAV3D [61]采用了我们的文本到4D 的动态场景生成设计,展示了超越重建的动态场景的令人兴奋的方向。
Accelerating NeRFs
在不同的阶段,人们提出了许多加速 NeRF 的工作。有些方法通过优化计算来提高训练后的 NeRFs 的推理速度[18,20,56,81]。其他人通过学习一个可推广的模型来减少训练时间[9,24,74,75]。最近,通过使用显式-隐式表示,两个阶段的渲染速度大大降低[5,7,14,33,43,66]。根据这一思想,我们提出了一种动态场的显式表示来加速动态 NeRFs。
最近,一些并发的工作旨在加速动态 NeRFs。[12,15,19,32,73]使用时间件 MLP 从规范空间回归时空点的颜色或变形。然而,对于动态场,它们仍然是部分隐式的,因为它们依赖于具有时间输入的 MLP 来获得时空特征。相比之下,我们的文章提出了一个更优雅和有效的显式表示动态领域没有使用时间感知 MLP。像[26]一样,NeRFPlayer [64]在每个步骤中使用高度紧凑的3D 网格进行4D 字段表示,这导致了长视频的大量内存成本。
Tensor4D [60]与我们的想法相似,它用9个平面和多个 MLP 表示动态场景。DTensoRF [23]将动态场看作是5D 张量,并对它们进行 CP/MM 分解以实现紧致表示。我们的文章是最密切相关的 K 平面[13] ,它也使用六个特征平面的表示。在这里插入图片描述
图2。方法概述。Hex刨包含六个特征平面,跨越每对坐标轴(例如 XY,ZT)。为了计算时空点的特征,它将从配对平面中提取的特征向量相乘,并将相乘的结果连接成一个向量,然后再乘以 VRF 得到最终的结果。使用微小 MLP 从点特征回归 RGB 颜色,并通过体绘制合成图像。通过渲染图像和目标图像之间的光度损失训练六平面和 MLP。

3. Method(见手写稿)

给定一组动态场景的姿态和时间戳图像,我们的目标是拟合一个场景模型,允许在新的姿态和时间渲染新的图像。像 NeRF [42]一样,模型为时空中的点提供颜色和不透明度; 图像通过沿射线的可微体绘制呈现。该模型使用渲染图像和地面真实图像之间的光度损失进行训练。

我们的主要贡献是提出了一种新的动态三维场景的显式表示方法,并结合一种小型隐式 MLP 算法来实现动态场景中的新视图合成。利用输入时空点有效地查询特征向量的显式表示。一个微小的 MLP 接收特征以及点坐标和视图方向,并回归点的输出 RGB 颜色。图2显示了模型的概述。
设计一个动态3D 场景的显式表示是具有挑战性的。静态3D 场景通常由点云、体素或网格来建模,而动态场景的显式表示则不然。我们展示了如何通过简单的 Hex刨面表示来克服内存使用和稀疏观测的关键技术挑战。
3.1. 4D Volumes for Dynamic 3D Scenes
3.2. Linear Basis for 4D Volume
3.3. HexPlane Representation
3.4. Optimization
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

更新两种分解方法(TensoRF中所阐述)---------2024/7/5

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

SQL语句(DCL)

DCL英文全称Data Control Language(数据控制语言),用来管理数据库用户、控制数据库的访问权限 DCL-管理用户 create user itcastlocalhost identified by 123456 ;-- 修改用户heima的密码为1234 alter user heima% identified with mysql_native_passwo…

C++ windows下使用openvino部署yoloV8

目录 准备版本: 准备事项: 选择配置界面: 下载界面: ​编辑 添加VS配置: 准备代码: yolov8.h yolov8.cpp detect.cpp 如何找到并放置DLL: 准备版本: opencv 4.6.0 openvino 2024.0…

大模型成为软件和数据工程师

前言 想象一下这样一个世界:人工智能伙伴负责编码工作,让软件和数据工程师释放他们的创造天赋来应对未来的技术挑战! 想象一下:你是一名软件工程师,埋头于堆积如山的代码中,淹没在无数的错误中&#xff0…

基于React和TypeScript的开源白板项目(Github项目分享)

在学习前端开发的过程中,有时候我们需要一些有趣的项目来提升我们的技能。今天我要给大家介绍的是一个非常酷的项目——NinjaSketch,这是一个用React和TypeScript构建的简易白板工具。这个项目使用了Rough.js来实现手绘风格的效果。尽管这个应用不是响应…

【UE5.3】笔记8 添加碰撞,检测碰撞

添加碰撞 打开BP_Food,添加Box Collision组件,与unity类似: 调整Box Collision的大小到刚好包裹物体,通过调整缩放和盒体范围来控制大小,一般先调整缩放找个大概大小,然后调整盒体范围进行微调。 碰撞检测 添加好碰撞…

基于jeecgboot-vue3的Flowable流程-集成仿钉钉流程(二)增加基本的发起人审批与多用户多实例

因为这个项目license问题无法开源,更多技术支持与服务请加入我的知识星球。 1、AssigneeNode 增加approvalText public abstract class AssigneeNode extends Node {// 审批对象private AssigneeTypeEnum assigneeType;// 表单内人员private String formUser;// 表…

Python从0到100(三十七):数据提取的概念和数据分类

1. 爬虫中数据的分类 在爬虫开发过程中,我们会遇到多种类型的数据。了解这些数据的类型对于有效地提取和解析信息至关重要。 结构化数据 结构化数据是指具有固定格式和模式的数据,常见的结构化数据格式包括JSON和XML。 处理方式:可以直接转换为Python的字典或列表等数据类…

SCI一区级 | Matlab实现BO-Transformer-LSTM多特征分类预测/故障诊断

SCI一区级 | Matlab实现BO-Transformer-LSTM多特征分类预测/故障诊断 目录 SCI一区级 | Matlab实现BO-Transformer-LSTM多特征分类预测/故障诊断效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.【SCI一区级】Matlab实现BO-Transformer-LSTM特征分类预测/故障诊断&…

C语言 | Leetcode C语言题解之第214题最短回文串

题目&#xff1a; 题解&#xff1a; char* shortestPalindrome(char* s) {int n strlen(s);int fail[n 1];memset(fail, -1, sizeof(fail));for (int i 1; i < n; i) {int j fail[i - 1];while (j ! -1 && s[j 1] ! s[i]) {j fail[j];}if (s[j 1] s[i]) {f…

HTML【详解】超链接 a 标签的四大功能(页面跳转、页内滚动【锚点】、页面刷新、文件下载)

超链接 a 标签主要有以下功能&#xff1a; 跳转到其他页面 <a href"https://www.baidu.com/" target"_blank" >百度</a>href&#xff1a;目标页面的 url 地址或同网站的其他页面地址&#xff0c;如 detail.htmltarget&#xff1a;打开目标页面…

PLL和CDR的内部结构及其区别

比较PLL和CDR的内部结构及其区别&#xff1a; 基本结构&#xff1a; PLL&#xff08;相位锁定环&#xff09;&#xff1a; 相位检测器环路滤波器压控振荡器&#xff08;VCO&#xff09;分频器&#xff08;可选&#xff0c;用于频率合成&#xff09; CDR&#xff08;时钟数据恢复…

windows电脑网络重置后wifi列表消失怎么办?

我们的电脑网络偶尔会出现异常&#xff0c;我们通常会下意识选择网络诊断&#xff0c;运行完诊断后一般会让我们选择重置网络&#xff0c;然而&#xff0c;重置后wifi列表突然消失&#xff0c;无法愉快地上网了&#xff0c;找了一圈&#xff0c;都说是更改适配器选项&#xff0…

4、SSD主控

简述 主控是个片上系统&#xff0c;由硬件和固件组成一个功能完整的系统&#xff1b;上文所述的FTL就属于主控的固件范畴。主控闪存构成了整个SSD&#xff0c;在闪存确定的情况下&#xff0c;主控就反映了各家SSD的差异。实时上各家SSD的差异也主要反应在主控上&#xff0c;毕…

小学英语语法

目录 a和an的用法名词的单复数be动词和人称代词&#xff08;主格&#xff09;指示代词形容词物主代词名词所有格双重所有格方位介词some&#xff0c;any和no的用法How many和How much的用法情态动词can的用法祈使句人称代词&#xff08;宾格&#xff09;常见实义动词的用法一般…

【Odoo开源ERP】别把ERP与进销存软件混为一谈

导读&#xff1a;企业使用ERP软件能够实现管理升级&#xff0c;多方信息集成&#xff0c;按照既定策略逻辑运算&#xff0c;生成计划建议&#xff0c;减少人力成本&#xff0c;提高准确率的同时提高经营能力。 ERP&#xff0c;是MRP II的下一代软件&#xff0c;除了MRP II已有的…

项目一 nfs 共享服务器 Haproxy 代理 Keepalive 高可用集群

深入理解程序的数据存储 配置NFS服务器 配置ansible环境

满足GMSL静电防护要求的方案

什么是GMSL&#xff1f;它是做什么用的&#xff1f;它有什么优点&#xff1f;设计GMSL防静电有啥难度&#xff1f; 带着这些疑问我们先了解下什么是GMSL。 一&#xff0e;简述 GMSL GMSL&#xff08;Gigabit Multimedia Serial Link&#xff09;即千兆多媒体串行链路&#xf…

每日复盘-20240705

今日关注&#xff1a; 20240705 六日涨幅最大: ------1--------300391--------- 长药控股 五日涨幅最大: ------1--------300391--------- 长药控股 四日涨幅最大: ------1--------300391--------- 长药控股 三日涨幅最大: ------1--------300391--------- 长药控股 二日涨幅最…

【qt】如何通过域名获得IP地址?

域名是什么呢?像www.baidu.com的baidu.com就是域名. 域名相当于是网站的门牌号. 域名可以通过 DNS 解析将其转换为对应的 IP 地址. 用我们获取IP地址的方式就可以,但是现在没有可以用另一种方法. 槽函数的实现: void MainWindow::lookupHost(const QHostInfo &hostInf…

c++重定向输出和输出(竞赛讲解)

1.命令行重定向 在命令行中指定输出文件 指令 .\重定向学习.exe > 1.txt 效果 命令行输入和输出 指令 .\重定向学习.exe < 2.txt > 1.txt 效果 代码 #include<bits/stdc++.h> using namespace std; int n; int main(){cin>>n;for(int i=0;i<n;i…