88、K-Planes: Explicit Radiance Fields in Space, Time, and Appearance

简介

主页:https://sarafridov.github.io/K-Planes/
在这里插入图片描述
图像使用一个平面表示,静态三维场景用三个平面表示,后续动态场景用三个平面加一维时间 t 表示,论文提出使用六个平面表示动静态场景,即静态场景占三个平面,动态场景占三个平面,动态场景可以理解为三维坐标x,y,z分别与时间 t 构成平面。可以看出,平面数量与维度 d 之间构成关系 ( 2 d ) (\mathop{}_{2}^{d}) (2d)

这种平面分解使得添加特定维度的先验(例如时间平滑性和多分辨率空间结构)变得容易,并可实现场景静态和动态成分的自然分解

在一系列合成和真实,静态和动态,固定和变化的外观场景中,k-planes产生了具有竞争力的,通常是最先进的重建保真度,低内存使用,在完整的4D网格上实现1000倍压缩,并使用纯PyTorch实现快速优化

实现流程

在这里插入图片描述

  1. 将4D动态体积分解为六个平面,三个用于空间,三个用于时空变化。为了获得一个4D点 q = (x, y, z,
    t)的值,首先将这个点投影到每个平面上
  2. 做多尺度双线性插值。
  3. 将插值值相乘,然后在 S 尺度上连接。
  4. 这些特征可以用一个小的MLP或显式线性解码器解码。
  5. 遵循标准的体积渲染公式来预测射线的颜色和密度
  6. 在空间和时间上进行简单正则化,使重构损失最小化,对模型进行优化。

Hex-planes

空间平面表示为 P x y , P x z , P y z P_{xy},P_{xz},P_{yz} Pxy,Pxz,Pyz,时空平面表示为: P x t , P z t , P y t P_{xt},P_{zt},P_{yt} Pxt,Pzt,Pyt,空间和时间分辨率为 N,平面的形状 为 N × N × M N \times N \times M N×N×M,M 是存储的特征的大小

通过将其采样点归一化到 [0,N) 之间并将其投影到这六个平面上来获得4D坐标 q = ( i , j , k , τ ) q = (i, j, k,τ) q=(i,j,k,τ)的特征
在这里插入图片描述
π c π_c πc 将 q 投影到第 c 个平面上,ψ 表示点的双线性插值到规则间隔的二维网格中,重复公式一,得到特征向量 f ( q ) c f(q)_c f(q)c,使用Hadamard积(元素乘法)在六个平面上组合这些特征,以产生长度为 M 的最终特征向量
在这里插入图片描述
之后特征将使用线性解码器MLP 解码成 颜色密度

为什么这里用乘法,而不是加法?

  • 通过乘法组合平面可以使 k 平面产生空间局部化的信号,这是加法所不可能做到的
  • Hadamard积(元素乘法)对线性解码器产生了显著的渲染改进,对MLP解码器产生了适度的改进
  • MLP解码器参与了依赖于视图的颜色和确定空间结构,Hadamard积(元素乘法)减轻了特征解码器的这一额外任务,并使用单独负责视相关颜色的线性解码器达到类似的性能

在这里插入图片描述

Interpretability

空间平面和时空平面的分离使模型具有可解释性,能够纳入特定维度的先验,比如,如果场景的一个区域从未移动,它的时间分量将始终为 1 (乘性单位),从而仅使用来自空间平面的特征

这提供了压缩的好处,因为静态区域可以很容易地识别和紧凑地表示,时空分离提高了可解释性,即可以通过可视化时空平面中非 1 的元素来跟踪时间的变化,这种简单性、分离性和可解释性使得添加先验很简单
在这里插入图片描述
场景的静态部分可以通过将三个时间平面设置为1(乘法恒等式)来获得。从完整渲染中减去仅静态渲染的图像(即时间平面参数未设置为1),可以显示场景的动态部分。

Multiscale planes

为了促进空间平滑和一致性,我们的模型包含不同空间分辨率的多个副本,例如64、128、256和512

每个尺度的模型被单独处理,不同尺度的M维特征向量被连接在一起,然后传递给解码器

这种表示有效地编码了不同尺度的空间特征,能够减少存储在最高分辨率下的特征数量,从而进一步压缩模型

但是没有必要在多个尺度上表示时间维度
在这里插入图片描述

Total variation in space

空间总变分正则化鼓励稀疏梯度(使用L1范数)或平滑梯度(使用L2范数),编码空间中稀疏或平滑的边缘的先验

在每个时空平面的空间维度上的一维和在只有空间的平面上的二维中这样做
在这里插入图片描述
i, j 是平面分辨率上的指标,全变分是逆问题中常用的正则化子,如 Plenoxels,TensoRF

实验发现L2或L1都能产生相似的质量,在结果中使用 L2 版本

Smoothness in time

使用一维拉普拉斯(二阶导数)滤波器来平滑运动
在这里插入图片描述
随着时间的推移,惩罚急剧的“加速”。只在时空平面的时间维度上应用这个正则化项
在这里插入图片描述

时间平滑度权重为0.01是最好的,PSNR会随着过正则化或欠正则化而逐渐下降。本实验使用4个尺度的开合跳场景:64、128、256和512,每个尺度有32个特征。

Sparse transients

通过将时空平面中的特征初始化为 1(可乘性恒等式),并在训练期间在这些平面上使用 L 1 L_1 L1 正则化项,使得场景的静态部分由空间平面建模
在这里插入图片描述
如果对应的空间内容不随时间变化,k 平面分解的时空平面特征将固定为 1

Feature decoders

有两种方法将等式(2)中的 M 维时间和空间局部特征向量 f ( q ) f(q) f(q) 解码为密度 σ 和视相关颜色 c

Learned color basis: a linear decoder and explicit model

使用空间局部化特征作为球调和(SH)基的系数的模型,以描述视点依赖的颜色

与MLP解码器相比,这种SH解码器可以提供高保真重建和增强的可解释性,但是,SH系数很难优化,而且它们的表达能力受到所使用的SH基函数数量的限制(通常局限于产生模糊镜面反射的二次谐波

这里使用一个小的 MLP 来表示基,它将每个视图方向 d 映射到红色 b R ( d ) ∈ R M b_R(d)∈R^M bR(d)RM、绿色 b G ( d ) ∈ R M b_G(d)∈R^M bG(d)RM 和蓝色 b B ( d ) ∈ R M b_B(d)∈R^M bB(d)RM 的基向量

MLP作为自适应的插入式替换,用于在三个颜色通道上重复的球面谐波基函数
在这里插入图片描述
·为点积,∪为拼接

与视图方向无关的学习基 b σ ∈ R M b_σ∈R^M bσRM 作为密度的线性解码器

在这里插入图片描述
对 c(q, d) 应用 sigmoid函数,对 σ(q) 应用指数函数(梯度截断),最终将颜色和密度的预测值强制在其有效范围内

MLP decoder: a hybrid model

类似 Instant-ngp 特征由两个小mlp解码

g σ g_σ gσ 将空间局部化特征映射为密度σ和附加特征 f ^ \hat{f} f^

g R G B g_{RGB} gRGB f ^ \hat{f} f^和嵌入的视图方向 γ(d) 映射为RGB颜色
在这里插入图片描述
与线性解码器的情况一样,预测的密度值和颜色值最终分别通过指数和sigmoid进行归一化

Global appearance

为了使其能够在不同的光照或外观条件下以一致的静态几何形状表示场景(NeRF-W),为每个训练图像 1…T 增加了一个 M 维向量的 k 平面

优化了这个每张图像的特征向量,并将其作为额外的输入传递给MLP学习的颜色基 b R 、 b G 、 b B b_R、b_G、b_B bRbGbB,或传递给MLP颜色解码器 g R G B g_{RGB} gRGB,以便它可以影响颜色而不是几何形状
在这里插入图片描述

Optimization details

对于面向前方的场景,应用归一化设备坐标(NDC)来更好地分配分辨率,同时实现无限深度

实现了Mip-NeRF 360中提出的场景收缩的 ℓ∞ 版本(而不是 ℓ2 ),将其用于无界摄影旅游场景

Proposal sampling

使用Mip-NeRF 360建议采样策略的变体,以 k 平面的小实例作为密度模型。建议采样通过沿一条射线迭代优化密度估计,在密度较高的区域分配更多的点。使用两级采样器,导致必须在整个模型中评估的样本更少,并通过将这些样本放置在更接近物体表面的地方,使细节更清晰。用于建议采样的密度模型使用直方图损失进行训练。

Importance sampling

针对多视角动态场景,从DyNeRF中实现了一种基于时间差分(IST)的重要性采样策略。在优化的最后一部分,根据前后25帧内颜色的最大变化比例对训练光线进行采样。这导致动态区域的采样概率更高。在静态场景与均匀采样的光线收敛后应用此策略。在实验中,IST对全帧指标只有适度的影响,但提高了小动态区域的视觉质量。重要性采样不能用于单目视频或具有移动摄像机的数据集。

实验

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
时间平面的可视化。xt 平面突出了场景中的动态区域。在火焰鲑鱼场景(左)中,只有一只手在移动,而在切牛肉场景(右)中,两只手都在移动,随着时间的推移,摆动的模式对应着人的手和烹饪工具的运动。

在这里插入图片描述
增加在每个尺度上学习到的特征长度 M,持续提高了模型的质量,相应的模型大小和优化时间线性增加。在实验使用了M = 16和M = 32的混合;对于特定的应用,可以根据质量和模型大小之间的权衡来改变M。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【超详细文件操作(三)】C语言

作者:日出等日落 专栏:C语言 只有流过血的手指,才能弹出世间的绝唱。 ——泰戈尔 目录 1.文件的随机读写 1.1 fseek函数 1.1.1 下面使用fseek函数 1.2 ftell函数 1.3 rewind函数 …

Spring源码分析-Bean创建流程三

目录 一、 列举一些创建对象有哪几种方式 二、自定义BeanPostProcess生成代理对象 1、实战案例 2、源码分析 三、通过supplier创建对象 1、实战案例 2、源码分析 四、通过FactoryMethod创建对象 1、实战案例 2、源码分析 五、小总结 一、 列举一些创建对象有哪几种方…

作为一个女测试员是什么样的体验?

面试时极度紧张,语无伦次,觉得肯定没戏,最后却拿到高薪offer。 工作之后我听同事们讲,测试总监面试官并没打算要我,但身边的人都问他: 那个小姐姐什么时候来报道?... 于是在众人的期待的目光…

撮合交易系统简介

1 撮合交易系统简介 金融市场: 为了应对更高峰值的成交量,国内各金融机构,主要是交易所和银联、中心之间需求越来越多: 其中最重要的就是撮合系统: 系统拓扑图: 委托终端/柜台: 网关&#xff1…

一四三、人脸识别自动点赞、关注

文章目录脚本功能获取video当前播放帧图片将图片传到后台调用百度人脸识别接口拿到识别结果处理逻辑效果展示问题记录脚本功能 通过获取video当前播放帧图片,截图调用后台接口,再调用百度人脸识别拿到人脸信息(年龄、颜值、性别等&#xff09…

元宇宙医生虚拟形象提高远程医疗服务质量

与现实中不同,3D虚拟形象是由个人在数字空间中自由选择并进行扮演的。这种3D虚拟形象在元宇宙中的重要性越来越突出。 在元宇宙虚拟空间中,用户借助元宇宙3D虚拟形象就能与其他用户互动、交流并获得真实的沉浸式体验,因此能广泛融入各种生活、…

「解析」牛客网-华为机考企业真题 41-60

又是一年春招时,有幸收到华为自动驾驶算法岗,之前刷题不多,在此汇总下牛客网的真题,主要采用Python编写,个人觉得语言只是实现工具而已,并不是很关键,Python简洁易懂,更加适合算法工…

基于EB工具的TC3xx_MCAL配置开发06_PWM模块配置

目录 1.概述2. EB配置2.1 PWM->General2.2 PWM->Channel2.2.1 PWMChannel配置2.2.2 PwmChannelClass配置2.2.3 GTM通道选取2.3 MCU关联配置2.4 Port关联配置1.概述 本篇开始我们基于EB Tresos工具对英飞凌TC3xx系列MCU的MCAL开发进行介绍,结合项目经验对各MCAL外设的开…

Docker:关于 Dockerfile 编写优化的一些笔记整理

写在前面 分享一些 Dickerfile 构建镜像优化方式的笔记理解不足小伙伴帮忙指正 对每个人而言,真正的职责只有一个:找到自我。然后在心中坚守其一生,全心全意,永不停息。所有其它的路都是不完整的,是人的逃避方式&#…

【React全家桶】Flux与Redux

🎞️🎞️🎞️ 博主主页: 糖 -O- 👉👉👉 react专栏:react全家桶 🌹🌹🌹希望各位博主多多支持!!&a…

javaScript扫雷

文章目录一、准备工作1.图片2.html2.css3.js二、初始化数据1. 配置文件2.工具文件3.逻辑文件1.main函数2.init函数1.随机生成雷2.css添加三、完整代码1.html2.js3.css一、准备工作 1.图片 需要找三张图片 旗子的图片 炸弹的图片 爆炸的图片 2.html html文件夹新建一个html文…

区块链基本原理

区块链的起源 创始者介绍 姓名:中本聪(英语:SatoshiNakamoto),自称日裔美国人,日本媒体常译为中本哲史,此名是比特币协议及其相关软件Bitcoin-Qt的创造者,但真实身份未知。 中本聪于…

Chapter9.1:线性系统状态空间基础(上)

该系列博客主要讲述Matlab软件在自动控制方面的应用,如无自动控制理论基础,请先学习自动控制系列博文,该系列博客不再详细讲解自动控制理论知识。 自动控制理论基础相关链接:https://blog.csdn.net/qq_39032096/category_10287468…

解决Visual Studio设置C++标准 但是_cplusplus始终为199711

目录场景复现Visual Studio官方说明C标准对应表解决方案方法一 恢复__cplusplus宏方法二 使用_MSVC_LANG宏场景复现 我在VS2022偶然的一次测试C标准开发环境,发现无论我怎么修改C语言标准,输出的__cplusplus宏总是199711。 Visual Studio官方说明 链…

【C++】vector模拟实现及其应用

文章目录vector的介绍vector的使用及其实现vector的定义vector iterator 的使用vector空间增长问题vector的增删查改vector的介绍 vector是表示可变大小数组的序列容器。就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素…

开源 Swallow 代码审计系统体验

最近在哔哩哔哩看 到Swallow 代码审计系统的宣传,发现功能比较适合我目前的工作需要,安装使用了一下,简单做了一个笔记,分享给有需要的朋友. 底层架构为蜻蜓编排系统,墨菲SCA,fortify,SemGrep,hema 项目地址:https://github.com/StarCrossPortal/swallow 安装与使用视频教程:ht…

hexo 搭建个人博客记录

看B站的程序羊的关于搭建hexo博客的方法自己搭了一个博客,链接是 手把手教你从0开始搭建自己的个人博客 |无坑版视频教程| hexo 下面就视频所讲做做笔记,以后可以回来查看,推荐小伙伴想搭建hexo博客的可以去看看这个视频。 1. 安装Node.js…

react项目路由组件懒加载和路由传值方式

项目实战 使用useRoutes配置路由&#xff0c;结合插槽配置用户登录检测。 用户登录成功进入login 直接系统主界面 路由模块抽离 整体代码外移 { path: "/admin", element: ( <Author name"admin"> <Index /> </Author> ), }, { path:…

「SAP ABAP」OPEN SQL(七)【GROUP BY | HAVING | ORDER BY】

&#x1f482;作者简介&#xff1a; THUNDER王&#xff0c;一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学本科在读&#xff0c;同时任汉硕云&#xff08;广东&#xff09;科技有限公司ABAP开发顾问。在学习工作中&#xff0c;我通常使用偏后端的开发语言A…

基于matlab已知地球两点坐标求取距离和方位角函数distance

一、语法1.语法1[arclen,az] distance(lat1,lon1,lat2,lon2)&#xff1b;R6371.393; % 地球半径&#xff0c;单位&#xff1a;km地点1&#xff08;维度lat1&#xff0c;经度lon1&#xff09;&#xff0c;地点2&#xff08;维度lat2&#xff0c;经度lon2&#xff09;假设地点1和…