3DV 2024 Oral | SlimmeRF:可动态压缩辐射场,实现模型大小和建模精度的灵活权衡

本文主要是介绍3DV 2024 Oral | SlimmeRF:可动态压缩辐射场,实现模型大小和建模精度的灵活权衡,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目前大多数NeRF模型要么通过使用大型模型来实现高精度,要么通过牺牲精度来节省内存资源。这使得任何单一模型的适用范围受到局限,因为高精度模型可能无法适应低内存设备,而内存高效模型可能无法满足高质量要求。为此,本文研究者提出了SlimmeRF,一种在测试阶段随时(即不需要对模型进行重新训练)通过动态压缩实现模型大小与精度之间权衡的模型,从而使模型同时适用于不同计算预算的场景。实验结果显示,SlimmeRF在不进行动态压缩时能够达到 SOTA 级别的精度,同时动态压缩时的效果明显好于基于 TensoRF 的基准模型。

image.png

论文题目: SlimmeRF: Slimmable Radiance Fields

论文链接:https://arxiv.org/abs/2312.10034 

代码链接: GitHub - Shiran-Yuan/SlimmeRF: Official implementation for SlimmeRF: Slimmable Radiance Fields

01. 简介

辐射场(Radiance Fields)是一种通过神经网络等方法对3D场景进行建模的方法。我们观察到,在实际应用中,往往存在一个问题:效果较好的辐射场模型会对内存等资源要求较高,因此难以应用于资源较为稀缺的应用场景;相反,比较节省内存资源、算力资源等的模型则可能效果不佳

因此,当需要训练能够兼容高负载能力与低负载能力环境的模型时,就只能采用后者,因为前者无法在低负载能力环境中运行。然而实际情况是,往往高负载能力的环境也有较高对模型效果的需求,而低负载能力的环境则对模型效果需求不高,因此前述的方法不符合高负载能力环境下的需求。因此,如果能够训练出能够在高负载能力环境下取得极佳效果,同时在低负载能力环境下也能牺牲效果成功运行的模型,就可以同时满足这两种需求。

为了解决该问题,本文提出,应当让辐射场模型能够拥有可动态压缩性(Slimmability)。我们提出的 SlimmeRF 模型基于低秩张量近似(Low-Rank Tensor Approximation)对场景进行建模,在不被动态压缩(Slim)的情况下建模精度能够达到 SOTA 等级,同时还能在测试阶段随时(即不需要对模型进行重新训练)通过动态压缩减小模型大小,牺牲精度来满足更严格的环境负载能力要求

技术方面,我们受张量辐射场(TensoRF)启发,利用矩阵-向量张量分解(VM 分解,Vector-Matrix Tensor Decomposition)建模3D场景的密度(Density)与外观(Appearance)。同时,为了使模型中的张量具备可进行低秩张量近似的性质,我们提出了张量增秩算法(TRaIn, Tensorial Rank Incrementation),用于进行训练。实现中,我们在训练时通过对张量进行遮罩(Masking)来模拟张量秩的变化,而测试时直接对分解后的成分(Factors)进行截断(Truncation)。

实验结果显示,SlimmeRF 中张量分解成的不同成分间出现了“分工”,由对应秩较低的成分对于大致轮廓、颜色等进行建模,而对应秩较高的成分则对于细节进行建模。我们的模型在不进行动态压缩时能够达到 SOTA 级别的精度(这一点许多其他可压缩与低内存消耗模型都无法做到),同时动态压缩时的效果明显好于基于 TensoRF 的基准模型(Baseline)。我们还在稀疏输入(Sparse Input)的场景下进行了实验,发现 SlimmeRF 的可动态压缩性提升了很多,并且在特定视角下效果好于专门用于稀疏输入的模型

fig1.png
我们的 SlimmeRF 模型只需训练一次就可以在测试时根据需要实现不同的压缩程度

02. 方法

image.png
SlimmeRF 的模型架构

2.1 问题表述

2.2 张量增秩算法

alg1.png
TRaIn 算法伪代码

fig4.png
实验中观察到的成分间“分工”

2.3 遮罩训练与截断测试

03. 实验

3.1 与 TensoRF 基准对比

我们直接对于使用类似表示结构的 TensoRF 进行截断来作为基准,将其结果与参数量相同的 SlimmeRF 进行对比,定量、定性结果分别如下图所示。可以看到,我们的模型效果明显远好于基准,说明了 TRaIn 算法的作用。

fig5.png

fig7.png
更详细实验结果参见论文附录 B.1

3.2 与 SOTA 模型对比

我们与 SOTA 模型 Plenoxels、DVGO、TensoRF 进行了对比,定量结果如下表所示。与 TensoRF 的定性对比如下图所示。结果说明,我们的模型在不进行动态压缩时能够达到 SOTA 级的效果,不会以牺牲效果为代价,只有在进行动态压缩后才会牺牲效果。

image.png

fig8.png

3.3 与可压缩模型/低内存消耗模型对比

我们将 SlimmeRF 与 TensoRF、CCNeRF、MWR (Masked Wavelet Representation)、TinyNeRF、PlenVDB 等以可压缩或低内存消耗为主要优势的模型进行了对比,结果如下图所示。其中,除了 CCNeRF 以外均没有可动态压缩性,仅仅作为参考。

3.4 稀疏输入实验

我们将 SlimmeRF 与用于稀疏输入场景的 SRF、PixelNeRF、MVSNeRF、mip-NeRF、DietNeRF、Reg-NeRF 等模型进行了对比,定量结果如下表所示。与 Reg-NeRF 在一些视角下的定性对比如下图所示。SlimmeRF 并不是稀疏输入模型,没有对场景的几何构造进行重建,因此效果并没有稳定超越其它方法;但定性实验表明,SlimmeRF 在稀疏输入场景下效果很好,在特定视角下甚至可以超越专用于稀疏输入场景的模型;同时,定量结果表明,SlimmeRF 在稀疏输入场景下可动态压缩性极佳,在模型大小缩小时效果不会变差很多,甚至在输入视角较少的时候会出现模型大小越小,模型效果越好的情况。

fig9.png

image.png
更详细实验结果参见论文附录 B.2

3.5 消融实验与参数敏感性分析

image.png

3.6 与BCD基准对比

我们尝试实现了基于前述 BCD 算法的模型,但训练过程中模型损失与精度浮动极大,因此我们没有获得可展示的结果。这体现出了我们采用原创算法进行训练的必要性。

04. 结语

我们工作的主要贡献在于提出并实现了神经辐射场的可动态压缩性(Slimmability),同时为神经辐射场研究提供了低秩张量近似秩增训练的新思路。在未来,我们会进一步将这一工作拓展到4D等其它场景,并将其应用化


关于TechBeat人工智能社区

TechBeat(www.techbeat.net)隶属于将门创投,是一个荟聚全球华人AI精英的成长社区。

我们希望为AI人才打造更专业的服务和体验,加速并陪伴其学习成长。

期待这里可以成为你学习AI前沿知识的高地,分享自己最新工作的沃土,在AI进阶之路上的升级打怪的根据地!

更多详细介绍>>TechBeat,一个荟聚全球华人AI精英的学习成长社区 

这篇关于3DV 2024 Oral | SlimmeRF:可动态压缩辐射场,实现模型大小和建模精度的灵活权衡的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/547183

相关文章

Nginx 配置跨域的实现及常见问题解决

《Nginx配置跨域的实现及常见问题解决》本文主要介绍了Nginx配置跨域的实现及常见问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来... 目录1. 跨域1.1 同源策略1.2 跨域资源共享(CORS)2. Nginx 配置跨域的场景2.1

Python中提取文件名扩展名的多种方法实现

《Python中提取文件名扩展名的多种方法实现》在Python编程中,经常会遇到需要从文件名中提取扩展名的场景,Python提供了多种方法来实现这一功能,不同方法适用于不同的场景和需求,包括os.pa... 目录技术背景实现步骤方法一:使用os.path.splitext方法二:使用pathlib模块方法三

CSS实现元素撑满剩余空间的五种方法

《CSS实现元素撑满剩余空间的五种方法》在日常开发中,我们经常需要让某个元素占据容器的剩余空间,本文将介绍5种不同的方法来实现这个需求,并分析各种方法的优缺点,感兴趣的朋友一起看看吧... css实现元素撑满剩余空间的5种方法 在日常开发中,我们经常需要让某个元素占据容器的剩余空间。这是一个常见的布局需求

HTML5 getUserMedia API网页录音实现指南示例小结

《HTML5getUserMediaAPI网页录音实现指南示例小结》本教程将指导你如何利用这一API,结合WebAudioAPI,实现网页录音功能,从获取音频流到处理和保存录音,整个过程将逐步... 目录1. html5 getUserMedia API简介1.1 API概念与历史1.2 功能与优势1.3

Java实现删除文件中的指定内容

《Java实现删除文件中的指定内容》在日常开发中,经常需要对文本文件进行批量处理,其中,删除文件中指定内容是最常见的需求之一,下面我们就来看看如何使用java实现删除文件中的指定内容吧... 目录1. 项目背景详细介绍2. 项目需求详细介绍2.1 功能需求2.2 非功能需求3. 相关技术详细介绍3.1 Ja

使用Python和OpenCV库实现实时颜色识别系统

《使用Python和OpenCV库实现实时颜色识别系统》:本文主要介绍使用Python和OpenCV库实现的实时颜色识别系统,这个系统能够通过摄像头捕捉视频流,并在视频中指定区域内识别主要颜色(红... 目录一、引言二、系统概述三、代码解析1. 导入库2. 颜色识别函数3. 主程序循环四、HSV色彩空间详解

PostgreSQL中MVCC 机制的实现

《PostgreSQL中MVCC机制的实现》本文主要介绍了PostgreSQL中MVCC机制的实现,通过多版本数据存储、快照隔离和事务ID管理实现高并发读写,具有一定的参考价值,感兴趣的可以了解一下... 目录一 MVCC 基本原理python1.1 MVCC 核心概念1.2 与传统锁机制对比二 Postg

SpringBoot整合Flowable实现工作流的详细流程

《SpringBoot整合Flowable实现工作流的详细流程》Flowable是一个使用Java编写的轻量级业务流程引擎,Flowable流程引擎可用于部署BPMN2.0流程定义,创建这些流程定义的... 目录1、流程引擎介绍2、创建项目3、画流程图4、开发接口4.1 Java 类梳理4.2 查看流程图4

C++中零拷贝的多种实现方式

《C++中零拷贝的多种实现方式》本文主要介绍了C++中零拷贝的实现示例,旨在在减少数据在内存中的不必要复制,从而提高程序性能、降低内存使用并减少CPU消耗,零拷贝技术通过多种方式实现,下面就来了解一下... 目录一、C++中零拷贝技术的核心概念二、std::string_view 简介三、std::stri

C++高效内存池实现减少动态分配开销的解决方案

《C++高效内存池实现减少动态分配开销的解决方案》C++动态内存分配存在系统调用开销、碎片化和锁竞争等性能问题,内存池通过预分配、分块管理和缓存复用解决这些问题,下面就来了解一下... 目录一、C++内存分配的性能挑战二、内存池技术的核心原理三、主流内存池实现:TCMalloc与Jemalloc1. TCM