TensoRF: Tensorial Radiance Fields

TensoRF: Tensorial Radiance Fields

TensoRF是ECCV2022一个非常有特色的工作。作者在三维场景表示中引入张量分解的技术,将4D张量分解成多个低秩的张量分量,实现更好的重建质量、更快的重建速度、更小的模型体积。


文章目录

  • TensoRF: Tensorial Radiance Fields
  • 一、论文想法
  • 二、张量分解-数学原理
  • 三、VM分解在NeRF中的具体使用
  • 四、实验细节
  • 总结


一、论文想法

TensoRF并没有采用像原始NeRF一样纯粹的隐式表示方法,更像是一种显示+隐式结合表示的方法,将场景建模为一个四维的张量,张量中的每一项代表一个体素,体素内包含了体积密度和多维的特征信息。

在这里插入图片描述

论文的中心思想是,使用张量分解技术,将4D张量分解成多个低秩的张量分量,实际处理时不用建模出这个4D张量,而用一系列1D向量、2D矩阵表示,从而降低显存消耗,提高运算速度。

二、张量分解-数学原理

外积(outer product)是线性代数中的一类重要运算,对于n维和m维的两个向量,其外积定义为一个n × m的矩阵。即,由u中的每个元素和v中的每个元素相乘得到的m × n阶矩阵A:

在这里插入图片描述

例如,当m=4, n=3时,有:

在这里插入图片描述

如果一个张量可以写成N个向量的外积,这个张量就是秩一张量。

在这里插入图片描述

其中张量中的每一个元素为:

在这里插入图片描述

张量分解中的一种最简洁的形式,张量CP分解,就是将任意某个张量,近似分解成一系列秩一张量的求和形式。

在这里插入图片描述

针对三维张量的CP分解,可用三维空间中X轴、Y轴、Z轴的外积,来可视化辅助理解:

在这里插入图片描述

CP分解的优点:计算速度快、显存占用低,由O(n3)降低到了O(n)级别。CP分解的缺点:紧凑性太高,可能需要许多组件(a1、a2、…、aR的数量)来对复杂场景进行建模,计算成本很高。为了折衷组件的数量和矩阵分解的效率,作者新提出了一种VM分解。

VM分解与CP分解相似, VM的含义是Vector-Matric,向量和矩阵的意思。相比于CP分解,这里有三项内容的加和,每一项有各自的组件数量R1,R2,R3,这三个值可以不同。相比原先,VM分解的显存占用也有所降低,O(n3)降低到了O(n2)级别。

在这里插入图片描述

针对三维张量的VM分解,可用三维空间中X、Y、Z轴分别与Y-Z、X-Z、X-Y平面的外积,来可视化辅助理解:

在这里插入图片描述

三、VM分解在NeRF中的具体使用

TensoRF:预先定义好,一组体密度特征相关的向量Vσ和矩阵Mσ,一组颜色特征相关的向量Vc和矩阵Mc。其中,density_plane代表体密度特征相关的矩阵,分别率为(128, 128),共有16个,(0)(1)(2)分别代表X-Y平面、Y-Z平面、X-Z平面。density_line代表体密度特征相关的向量,长度为128,共有16个,(0)(1)(2)分别代表Z平面、X平面、Y平面。同理,app_plane代表颜色特征相关的矩阵,app_line代表颜色特征相关的向量。

在这里插入图片描述
NeRF的本质:输入坐标位置x、观测方向d,预测体密度σ、颜色c。

TensoRF将空间体密度张量视为三维张量。在预测体密度σ时,输入坐标位置x,取出对应索引下体密度特征相关的向量、矩阵中的值,利用VM公式计算得到该点的体密度特征(标量) ,直接求和作为体密度σ 。

TensoRF将空间颜色特征张量视为四维张量。在预测颜色c时,输入坐标位置x,取出对应索引下颜色特征相关的向量、矩阵中的值,利用VM公式concatenate得到该点的颜色特征(144维的向量) ,用线性层转化成27维。定义MLP解码器,输入计算出的该点的颜色特征向量(27维)、观测方向d(3维),采用傅里叶编码并concatenate,利用线性层回归出该点位置的颜色c。

在这里插入图片描述

此处的MLP网络只负责解码,不负责提取特征(因为前面已经利用VM分解提取到了颜色特征),因此比原始NeRF的MLP还要简单很多,只有几个线性层。

在整个处理过程中,计算体密度特征、颜色特征向量时,采用的是离散建模,再插值采样的方式,因此认为是显式的;而计算颜色时,采用了MLP网络回归的方式,因此认为是隐式的。

和NeRF一样,TensoRF本质也是输入坐标位置x、观测方向d,预测体密度σ、颜色c。只不过在建模拟合函数时,引入了张量分解的技巧,利用张量分解先提取体密度σ、颜色c的特征,再对提取到的特征回归体密度σ、颜色c。

在这里插入图片描述
这里x表示坐标位置,d表示观测方向,Gσ表示插值采样得到的体密度特征, Gc表示插值采样得到的颜色特征向量,S表示MLP解码函数。

四、实验细节

以Lego数据集为例,采用TensoRF进行隐式三维重建。

在这里插入图片描述

训练集采用100张RGB图像,每张图像尺寸(800, 800, 3)。

整个建模的空间场景定义为一个长方体,XYZ三个分量坐标都是[-1.5, 1.5],建模的初始体素为[-1.5, 1.5] × [-1.5, 1.5] × [-1.5, 1.5]。 初始分辨率固定为128 × 128 × 128,即每个voxel的长宽高均为3/128=0.0234,后续会随着alpha Mask和上采样不断细化更新。

输入一个batch的三维坐标x、观测方向d。x: (bs, 3)、d: (bs, 3),整体流程可分为6步:

  1. 将x分解成X轴、Y轴、Z轴三个分量,即x1: (bs, 1)、 x2: (bs, 1)、 x3: (bs, 1),表示粒子在XYZ轴上各自的坐标数值。
  2. 根据粒子在XYZ轴上各自的坐标数值,在定义的16×3个体密度特征有关向量中插值采样,取出对应的数值: (bs, 16, 3);在定义的16*3个体密度特征有关矩阵中插值采样,取出对应的数值: (bs, 16, 3); 相乘后得到(bs, 16, 3),再全部求和累加,得到(bs, 1),即作为体密度σ。
  3. 根据粒子在XYZ轴上各自的坐标数值,在定义的48×3个颜色密度特征有关向量中插值采样,取出对应的数值: (bs, 48, 3);在定义的48*3个体密度特征有关矩阵中插值采样,取出对应的数值: (bs, 48, 3); 相乘后得到(bs, 48, 3),再全部拼接在一起,作为颜色特征: (bs, 144) 。
  4. 利用前面定义的线性层Linear(in_features=144, out_features=27, bias=False),也就是论文中的B矩阵,将颜色特征转换成: (bs, 27) 。
  5. 将颜色特征(bs, 27) 进行傅里叶编码[six(x), cos(x), sin(2x), cos(2x)],转换成(bs, 108) 。将观测方向(bs, 3) 进行编码,转换成(bs, 12) 。再加入原始值,concatenate得到(bs, 150) 。
  6. 将(bs, 150)输入MLP网络,经过三个线性层,最终输出(bs, 3),作为颜色c。

总结

TensoRF是第一个从张量的角度来看待辐射场建模,并提出了辐射场重建作为一个低秩张量重建的问题,整体思路非常巧妙,而且数学原理丰富,理论扎实。美中不足在于代码里的工程trick较多,特别是涉及到alpha mask的更新和体素上采样,细节非常复杂,还是不够简洁优美。

从实验效果来看,TensoRF的渲染效果其实并不算特别惊艳,但确实是大幅减少了NeRF的训练时间,并且降低了渲染所需要的显存,总体而言是令人眼前一亮的工作。

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

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

相关文章

Chapter 6 Managing Application Engine Programs 管理应用程序引擎程序

Chapter 6 Managing Application Engine Programs 管理应用程序引擎程序 Running Application Engine Programs 运行应用程序引擎程序 This section provides an overview of program run options and discusses how to: 本节提供程序运行选项的概述,并讨论如何…

【已解决】MySQL:执行存储过程报错(MySQL字符集和排序方式冲突)

目录 问题现象: 问题分析: 解决方法: 拓展: 1、转换条件两边的字段或值为二进制数据: 2、转换条件两边的字段或值的字符集和排序方式: 3、修改列、表、库的字符集和排序方式 参考链接: 问…

基于Git的代码工程管理——学习记录一

一、Git简概[1] Git是一个分布式版本控制系统,它跟踪任何一组计算机文件的更改,通常用于在软件开发过程中协调协作开发源代码的程序员之间的工作。其为实现快速、数据完整性以及分布式非线性工作流程(在不同计算机上运行数千个并行分支&#…

电脑上mp4视频文件无缩略图怎么办

前言:有时候电脑重装后电脑上的mp4视频文件无缩略图,视频文件数量比较多的时候查找比较麻烦 以下方法亲测有效: 1、下载MediaPreview软件 2、软件链接地址:https://pan.baidu.com/s/1bzVJpmcHyGxXNjnzltojtQ?pwdpma0 提取码&…

解密IIS服务器API跨域问题的终极解决方案

在当今数字化时代,API已成为现代应用程序的核心组件。然而,当你使用IIS(Internet Information Services)服务器提供API时,你可能会遇到一个常见的挑战:API跨域问题。这个问题经常困扰着开发人员&#xff0c…

基于springboot的滑雪场管理系统源码

🍅 简介:500精品计算机源码学习,有8个项目关注搏主即可领取。另送简历模板、答辩模板、学习资料、答辩常见问题【关注我,都给你】 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 文末获取源码 目录 一、以下学…

java学习part37定制排序和自然排序

150-常用类与基础API-使用Comparator接口实现定制排序及对比_哔哩哔哩_bilibili 1.自然排序 2.定制排序 对于一些排序方法,允许传入的话按定制的排序规则来,不传入默认按自然排序来。 匿名方式 3区别

JavaWeb-JavaScript

一、什么是JavaScript JavaScript是由网景的LiveScript发展而来的客户端脚本语言,主要目的是为了解决服务端语言遗留的速度问题,为客户提供更流畅的浏览效果。JavaScript可以实现网页内容、数据的动态变化和动画特效等。JavaScript的标准由ECMA维护&…

超大规模集成电路设计----CMOS反相器(五)

本文仅供学习,不作任何商业用途,严禁转载。绝大部分资料来自----数字集成电路——电路、系统与设计(第二版)及中国科学院段成华教授PPT 超大规模集成电路设计----CMOS反相器(五) 5.1 静态CMOS反相器综述5.1.1 静态CMOS反相器优点…

Excel——TEXTJOIN函数实现某一列值相等时合并其他列

一、TEXTJOIN函数介绍 公式TEXTJOIN(分隔符, 忽略空白单元格, 字符串1…) 分隔符:文本字符串,或者为空,或用双引号引起来的一个或多个字符,或对有效文本字符串的引用。如果提供一个数字,则将被视为文本。 忽略空白单…

【论文笔记】A Transformer-based Approach for Source Code Summarization

A Transformer-based Approach for Source Code Summarization 1. Introduction2. Approach2.1 ArchitectureSelf-AttentionCopy Attention 2.2 Position Representations编码绝对位置编码成对关系 1. Introduction 生成描述程序功能的可读摘要称为源代码摘要。在此任务中&…

卡通渲染总结《一》

本文是在看完之前的综述论文《Cartoon Style Rendering》的总结,论文时间是2008年有点早,但有一定启发意义。 前言 首先卡通渲染是非真实化渲染(NPR)的一个部分.而NPR旨在模拟出手工插图的效果例如油画、墨水画、漫画风格作品。 …

【Vulnhub 靶场】【hacksudo: FOG】【简单 - 中等】【20210514】

1、环境介绍 靶场介绍:https://www.vulnhub.com/entry/hacksudo-fog,697/ 靶场下载:https://download.vulnhub.com/hacksudo/hacksudo-FOG.zip 靶场难度:简单 - 中等 发布日期:2021年05月14日 文件大小:1.3 GB 靶场作…

禅道v11.6 基于linux环境下的docker容器搭建的靶场

一、环境搭建 linux环境下的 在docker环境下安装禅道CMS V11.6 docker run --name zentao_v11.6 -p 8084:80 -v /u01/zentao/www:/app/zentaopms -v /u01/zentao/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD123456 -d docker.io/yunwisdom/zentao:v11.6二、常见问题 1.删除…

【数电笔记】16-卡诺图绘制(逻辑函数的卡诺图化简)

目录 说明: 最小项卡诺图的组成 1. 相邻最小项 2. 卡诺图的组成 2.1 二变量卡诺图 2.2 三表变量卡诺图 2.3 四变量卡诺图 3. 卡诺图中的相邻项(几何相邻) 说明: 笔记配套视频来源:B站;本系列笔记并…

通义千问开源了 720 亿、70亿、140亿、Qwen-VL 四个大模型:实现“全尺寸、全模态”开源

本心、输入输出、结果 文章目录 通义千问开源了 720 亿、70亿、140亿、Qwen-VL 四个大模型:实现“全尺寸、全模态”开源前言阿里云CTO周靖人阿里云72B 的通义千问性能如何Qwen-1.8B花有重开日,人无再少年实践是检验真理的唯一标准 通义千问开源了 720 亿…

NSS [HUBUCTF 2022 新生赛]Calculate

NSS [HUBUCTF 2022 新生赛]Calculate 题目描述:python is a good tool in CTF 需要答对20题,每题回答时间(其实就是两次发包之前的间隔)要大于一秒小于三秒。 抓个包,我们的答案是POST发包。并且在这里看到了cookie&…

进程(5)——进程终止【linux】

进程 (4)——进程终止【linux】 一. 进程结束情况i. 正常终止ii. 出错终止iii. 异常退出 二. 进程返回值(针对正常和出错)2.1. 进程的退出方式i. returnii. exitiii. _exit 2.2. 查看C语言中的对应返回值的对应出错2.3 使用errno2…

华为变革进展指数TPM的五​个级别:试点级、推行级、功能级、集成级和世界级

华为变革进展指数TPM的五​个级别:试点级、推行级、功能级、集成级和世界级 TPM(Transformation Progress Metrics,变革进展指标)用来衡量管理体系在华为的推行程度和推行效果,并找出推行方面的不足与问题,…

数据结构(超详细讲解!!)第二十六节 图(中)

1.存储结构 1.邻接矩阵 图的邻接矩阵表示法(Adjacency Matrix)也称作数组表示法。它采用两个数组来表示图: 一个是用于存储顶点信息的一维数组;另一个是用于存储图中顶点之间关联关系的二维数组,这个关联关系数组被…