90、Neural Residual Radiance Fields for Streamably Free-Viewpoint Videos

news2025/1/24 17:45:26

简介

主页:https://aoliao12138.github.io/ReRF/
前提知识:DeVRF:https://jia-wei-liu.github.io/DeVRF/

先利用多台固定相机拍摄动态场景,在第一帧利用DVGO重建好半显示场景,后续则是通过预测体素x,y,z三个方向的运动来进行体素移动,从而得到一个快速渲染的动态NeRF
在这里插入图片描述
显式地对时空特征空间中相邻时间戳之间的剩余信息建模,使用基于全局坐标的微型MLP作为特征解码器,采用了一个紧凑的运动网格和一个剩余特征网格来利用帧间的特征相似性,不牺牲质量的情况下处理大型运动,序列训练方案,以保持运动/残差网格的平滑性和稀疏性。提出一个特殊的FVV编解码器,实现了三个数量级的压缩率,并提供了一个配套的ReRF播放器来支持长时间动态场景FVV的在线流媒体

实现流程

在这里插入图片描述
第一帧训练好一个初始半显示场景 f 1 f_1 f1
在这里插入图片描述
再用 f 1 f_1 f1 和 第二帧的图像训练紧凑的运动网格 M 2 M_2 M2 和一个剩余特征网格 r 2 r_2 r2,从而得到当前场景体素表示 f 2 f_2 f2。(下面公式用 f t f_t ft表示当前场景, f t − 1 f_{t-1} ft1表示上一场景 )
在这里插入图片描述
在这里插入图片描述
为当前 帧t 引入一个紧凑运动网格 M t M_t Mt 和一个剩余特征网格 r t r_t rt。低分辨率运动网格 M t M_t Mt 表示体素偏移,以表示当前帧中的体素在上一帧中对应的体素索引。剩余网格 r t r_t rt 表示对当前帧中相邻扭曲误差和新观测区域的稀疏补偿,对于第一帧,采用完整的显式特征网格表示 f 1 f_1 f1 和全局 MLP Φ。ReRF用公式表示为 Φ , f 1 f_1 f1, { M t , r t } t = 1 N \{M_t,r_t\}^N_{t=1} {Mt,rt}t=1N

M t M_t Mt 应用于 f t − 1 f_{t−1} ft1 来提取帧间冗余,并获得当前帧的基本特征网格 f t f_t ft
在这里插入图片描述
添加残差补偿来恢复整个特征网格: f t = f ^ t + r t f_t = \hat{f}_t + r_t ft=f^t+rt

Motion Grid Estimation

两阶段和顺序的训练方案,以从长时间RGB视频输入中获得包括 Φ, f 1 f_1 f1 { M t , r t } t = 1 N \{M_t, r_t\}^N_{t=1} {Mt,rt}t=1N 的ReRF表示,这加强了剩余网格和运动网格的紧凑性

和DeVRF一样,获得第一帧的完整显式特征网格 f 1 f_1 f1,并使用全局MLP Φ 作为特征解码器,给定前一帧的特征网格 f t − 1 f_{t−1} ft1和当前帧的输入图像,生成运动网格 M t M_t Mt 和残差网格 r t r_t rt

遵循DEVRF到一个密集运动场 D t D_t Dt

引入了一个运动池化策略,体素 p t p_t pt 中的运动向量可以指向前一帧中的不同体素 p t − 1 p_{t−1} pt1,这类似于标准的平均池化操作

首先将 D t D_t Dt 分割为立方体,其中每个立方体包含连续的8 × 8 × 8体素,对于每个立方体,在8 × 8 × 8的核上对 D t D_t Dt 应用平均池化,以确保每个立方体共享相同的运动向量,对其进行采样以生成低分辨率的运动网格 M t M_t Mt,大小比原始的密集网格小512倍

可以通过运动场跟踪前一帧的一些特征立方体,从而进一步降低剩余体素的熵,生成一个低分辨率 M t M_t Mt,紧凑地表示跨帧的平滑运动

Residual Grid Optimization

将之前的特征网格 f t − 1 f_{t−1} ft1 扭曲为当前的基网格 f t f_t ft,粗略地补偿了帧间运动引起的特征差异

优化残差网格的过程中,固定 f t f_t ft 和 Φ,并将梯度反向传播到残差网格 r t r_t rt,以仅更新 r t r_t rt

使用L1损失来正则化 r t r_t rt,以增强其稀疏性以提高紧凑性,强制 r t r_t rt 仅补偿帧间残差或新观测区域的稀疏信息
在这里插入图片描述
其中 λ = 0.01 \lambda=0.01 λ=0.01

得到 M t , r t M_t,r_t Mt,rt,利用公式2,恢复当前帧的显式特征网格 f t f_t ft,然后进行下一帧的连续训练

M t M_t Mt r t r_t rt 的设计和生成机制使它们压缩友好,因为它们的紧凑表示和稀疏属性,支持以下ReRF编解码器和流

Feature-level Residual Compression.

在这里插入图片描述

基于ReRF的编解码器和配套的FVV播放器,用于长时间动态场景的在线流媒体
在这里插入图片描述

将特征网格序列划分为几组连续的特征网格(GOF), GOF是一个连续网格的集合

GOF 由 I-feature 网格 (关键帧)和 P-feature 网格组成,每个GOF都从一个独立于所有其他特征网格编码的 I-feature 网格开始,P-feature网格 包含一个相对于前一个特征网格的可变形补偿残差网格

GOF 表示为 { f 1 , r 2 , ⋯   , r t − 1 , r t , ⋯   } \{f_1,r_2,\cdots,r_{t-1},r_t,\cdots\} {f1,r2,,rt1,rt,} f 1 f_1 f1 是 feature网格, r t r_t rt 是residual网格

首先将 f 1 f_1 f1 r t r_t rt 重塑为 f 1 ( m , n ) f_1(m, n) f1(m,n) r t ( m , n ) r_t(m, n) rt(m,n),一个 m × n的特征矩阵,其中m和n分别为非空特征体素和特征通道的数量。然后,对 r t ( m , n ) r_t(m, n) rt(m,n) 进行线性主成分分析(PCA),得到主方向 v。最后,通过 r t ′ = r t ⋅ V r'_t = r_t·V rt=rtV r t r_t rt 投影到主方向上,将网格 f 1 f_1 f1 r t ′ r'_t rt 的每个通道分割成8 × 8 × 8体素的立方体,并使用三维DCT对每个立方体分别进行变换。然后,利用量化矩阵对变换系数进行量化。

对量化后的变换系数进行熵编码,并与运动场 M t M_t Mt、帧类型等辅助信息一起传输。具体来说,使用差分脉冲编码调制(DPCM)方法对直流系数进行编码。

AC系数编码涉及以“3D之字形”顺序排列量化的DCT系数,采用运行长度编码(RLE)算法将相似频率分组在一起,插入长度编码零。最后,使用Huffman编码进一步压缩 DPCM-code DC 系数和 RLE-coded AC 系数。压缩方法的一个优点是能够通过调整量化参数来实现可变比特率,从而根据可用带宽实现动态自适应的ReRF流。

Network Streaming ReRF Player

实现了一个伴ReRF播放器,用于长序列的在线流动态辐射场,具有广泛的控制功能。接收到比特流后,首先对量化后的变换系数进行逆量化和反变换,重构 I-feature 网格 f ˉ 1 \bar{f}_1 fˉ1

I-feature网格重构完成后,将对随后接收到的 p-feature 网格进行重构。对量化后的变换系数进行逆量化和逆变换,生成初始重构残差网格。然后, r ^ ‘ t \hat{r}`_t r^t向后投影到原点空间 r ^ t = r ^ t ′ ⋅ V T \hat{r}_t = \hat{r}'_t \cdot V^T r^t=r^tVT。另外,已知解码后的运动场 M t M_t Mt 和之前重构的特征网格 f ˉ t − 1 \bar{f}_{t-1} fˉt1,可以通过变形得到预测的特征网格 f ˉ t \bar{f}_t fˉt。最后,加入f t和rt,得到最终重构的特征网格 f ˉ t \bar{f}_t fˉt f ˉ t \bar{f}_t fˉt输出到渲染器,生成动态场景的照片逼真的FVV。

受益于GOF结构的设计,ReRF播放器允许快速寻找到一个新的位置播放播放期间。因为在压缩比特流中遇到一个新的GOF意味着解码器可以解码一个压缩的特征网格,而不需要重建任何先前的特征网格。通过ReRF播放器,用户首次可以像观看2D视频一样,暂停、播放、快进/后退、寻找动态亮度场,带来前所未有的高品质自由视点观看体验。

实验

动态数据集包含大约74个视图,分辨率为1920×1080,帧率为25帧
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

crontab -e 系统定时任务

crontab -e解释 crontab 是由 “cron” 和 “table” 两个单词组成的缩写。其中,“cron” 是一个在 Linux 和类 Unix 操作系统中用于定时执行任务的守护进程,而 “table” 则是指一个表格或者列表,因此 crontab 就是一个用于配置和管理定时任…

PHP 单笔转账到支付宝账户,支付宝公钥证书实现版本

支付宝某些业务只能使用公钥证书方式来验签 如:即使转账 红包等 笔者就要实现这样一个功能,【单笔转账到支付宝账户】,采用支付宝公钥证书签名来实现。 话不多说,流程先走起 第一步:下载支付宝秘钥生成器 由于我们使…

手把手教你 DVOL

分享本文在朋友圈的读者可获得本文数据和 Python 代码。留个言说已分享(不用截屏)我相信你,我会发给你百度盘下载链接。 本文长度为 6393 字,建议阅读 32 分钟 题图:SignalPlus Dashboard 0 引言 Deribit volatility (…

基于 VITA57.1 的 2 路 2GSPS/2.6GSPS/3GSPS 14bit AD 采集 FMC 子卡模块

板卡概述 FMC152 是一款基于 VITA57.1 标准的,实现 2 路 14-bit、2GSPS/2.6GSPS/3GSPS AD 采集 FMC 子卡模块。该模块可直接与 FPGA 载卡配合使用,板卡 ADC 器件采用 ADI 公司的 AD9208 芯片, 与 ADI 公司的 AD9689 可以实现 PIN 脚兼容。该…

URI URL URN定义

1 定义 URI:全称Uniform Resource Identitfier,也就是统一资源标识符,可以标识互联网上某一资源,用来标识抽象或物理资源的一个紧凑字符串。 URL:全称Uniform Resource Locator,统一资源定位符&#xff0c…

【hello Linux】进程程序替换

目录 1. 程序替换的原因 2. 程序替换原理 3. 替换函数 4. 函数解释 5. 命名理解 6.简陋版shell的制作 补充: Linux🌷 1. 程序替换的原因 进程自创建后只能执行该进程对应的程序代码,那么我们若想让该进程执行另一个“全新的程序”这 便要用…

JVM系列(八) JVM 垃圾收集算法

前面我们了解了很多JVM配置垃圾回收的方式,但是具体垃圾是如何被回收的,或者说垃圾回收算法有哪些?今天我们文章主要讲解一下垃圾回收算法 1.分代收集理论 我们都知道 很早的JVM会把堆分为几个区域,新生代,老年代&am…

pandas读取Excel核心源码剖析,面向过程仿openpyxl源码实现Excel数据加载

📢作者: 小小明-代码实体 📢博客主页:https://blog.csdn.net/as604049322 📢欢迎点赞 👍 收藏 ⭐留言 📝 欢迎讨论! 今天我们将研究pandas如何使用openpyxl引擎读取xlsx格式的Excel的…

el-tabs嵌套el-upload使用

需求:1 .第一个标签展示固定字样,且不能删除,最少上传三张图片。 2. 其余标签双击可编辑字样,10字以内,可删除,均可上传图片。 3. 号按钮可点击添加标签,标签数量控制在10个以内。 4. 当标签下无…

一文学会VSCode代码同步至GitHub

一、上手GitHub 1. 了解GitHub 上手GItHub之前首先要了解一下GItHub的关键词,如下: (1) 仓库 (Repository) 仓库是用来存放项目代码,每一项目对应一个仓库。(2) 收藏 (Star) 收藏别人的仓库,方便自己查找。(3) 复制/克隆项目 (…

忆暖行动|“以前的住宿也没有这么好的环境,住的都是土房子,一下雨就哗哗掉墙皮”

常忆旧时苦 方思今日甜 新年将至,彩灯与烟火闪烁。值此佳节,我们去看望了一位65岁的退休教师,并与她进行了交谈,从奶奶的讲述中,我们了解到过去生活的不易,珍惜当下的美好生活。 迎接新年 为迎接新年&am…

base64、File、Blob、ArrayBuffer几种文件格式介绍以及互转

文章目录 关系介绍BlobFileFileReader二进制数组ArrayBuffer对象URL.createObjectURLbase64 转化file转base64blob转base64base64转blobbaes64转fileblob转fileblob转ArrayBufferfile转ArrayBuffer 关系 介绍 Blob 介绍 是一个不可变、原始数据的类文件对象本质上是js的对象 s…

后悔了怎么办 - undo日志

一、undo日志 概念: 把回滚时所需的东西都给记下来 二、事务id 给事务分配id的时机 (1)对于只读事务来说,只有在它第一次对某个用户创建的临时表执行增、删、改操作时才会为这个事务分配一 个 事务id ,否则的话是不…

4.3 转换与处理时间数据

4.3 转换与处理时间数据 4.3.1 转换字符串时间为标准时间1、Timestamp2、DatetimeIndex或者PeriodIndexDatetimeIndex与PeriodIndex函数及其参数说明 4.3.2 提取时间序列数据信息Timestamp类常用属性及说明 4.3.3 加减时间数据Timedelta类周期名称、对应单位及其说明 4.3.4 任务…

Java知识总结

https://www.bilibili.com/video/BV1ys4y1S7Lc 1、Java中线程的实现方式 为什么说本质上只有一种实现线程的方式?实现 Runnable 接口究竟比继承 Thread 类实现线程好在哪里? 实现 Runnable 接口 public class RunnableThread implements Runnable { O…

ai智能改写文案-ai同义转换

文案创作是现代广告营销中不可或缺的一环,一个好的文案不仅可以提升产品的购买率,还可以实现品牌等方面的推广。但是,文案的创作需要耗费大量的时间和精力,如果能够利用智能化技术进行改写,不仅可以大大缩短文案创作时…

JAVA内存不足导致频繁回收和swap引起的性能问题 故障重现(内存篇2)

背景起因: 记起以前的另一次也是关于内存的调优分享下 有个系统平时运行非常稳定运行(没经历过大并发考验),然而在一次活动后,人数并发一上来后,系统开始卡。 我按经验开始调优,在每个关键步骤…

本地安装directus

简介 Directus 是用于管理 SQL 数据库内容的实时 API 和 App 控制面板。 API会根据数据库模式/内容的实时更改动态更新(无需重新启动服务器)。 Directus安装在任何新的或现有的 SQL 数据库之上,提供 API 层(REST、GraphQL、JS-SD…

获取商品SKU信息API调用代码展示、请求参数和返回值说明

SKU是什么意思 最小存货单位(SKU),全称为stock keeping unit,即库存进出计量的基本单元,可以是以件、盒、托盘等为单位。SKU这是对于大型连锁超市DC(配送中心)物流管理的一个必要的方法。现在已…

MySQL数据库从入门到精通学习第2天(创建数据库)

创建数据库 通过CREATE DATABASE语句来创建数据库通过CREATE SCHEMA语句来创建数据库通过IF NOT EXISTS进行判断创建 通过CREATE DATABASE语句来创建数据库 创建数据库的语法格式如下: CREATE DATABASE 【数据库名】; 创建数据库的库名跟标识符一样也是有要求的&…