NeRFLiX,NeRF新高度!

2023-05-16

作者丨小张Tt

来源丨计算机视觉工坊

2291ac25d365149caa09520d087dbbfd.png

论文题目:NeRFLiX: High-Quality Neural View Synthesis by Learning a Degradation-Driven Inter-viewpoint MiXer

作者:zhoukun(SSE, CUHK-Shenzhen)等人

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

项目主页:https://redrock303.github.io/nerflix/

本文介绍了一种名为NeRFLiX的方法,它提出了一种NeRF风格的降级建模方法,并构建了大规模的训练数据,可将现有的深度神经网络应用于消除NeRF固有的渲染伪影,提高合成质量,并提出了一种视角间聚合框架,将尖端NeRF模型的性能推向新的高度,从而产生高度逼真的合成视图。

1 前言

Neural radiance fields (NeRF)是一种可以在不同视点产生逼真图像的技术,逐渐成为了新视点合成领域中的热门。随着它的成功,出现了许多相似的方法,可以将性能提升到更高水平。然而,NeRF的一个前提是准确地校准训练照片的相机设置,但在实践中很难精确地校准相机姿态。此外,NeRF的简化场景表示方式也会导致一些局限性,例如生动的几何形状、照明、物体材料等因素难以表示。因此,高级的NeRF模型可能会产生一些显著的失真,包括模糊、噪点、细节缺失等,我们将其称为“NeRF-style degradations”。

本文旨在研究模拟大规模NeRF风格成对数据的可行性,以开辟训练NeRF-agnostic修复器以改善NeRF渲染帧的可能性。为此,我们提出了一种新的退化模拟器,可以模拟典型的NeRF风格图像退化,同时提出了三种基本的退化类型。通过构建大规模的数据集,我们验证了开发NeRF-agnostic修复模型的可行性。

简而言之,作者提出了一种不受 NeRF 约束的修复器(称为 NeRFLiX),它学习了一种基于退化驱动的视角混合技术。作者的贡献可以总结为以下几点:

  • 通用增强器:NeRFLiX 功能强大且适应性强,可以消除 NeRF 的伪影并恢复清晰的细节,将尖端的 NeRF 模型的性能推向了全新的水平。

  • NeRF 渲染退化模拟器:我们开发了一种 NeRF 风格的退化模拟器(NDS),构建了大量成对数据,帮助深度神经网络的训练来提高 NeRF 渲染图像的质量。

  • 视角混合技术:基于我们构建的 NDS,我们进一步提出了一种能够混合高质量相邻视角以实现更有效恢复的基线技术。

  • 训练时间加速:我们展示了 NeRFLiX 如何使得 NeRF 模型可以在训练时间减少 50% 的情况下产生更好的结果。

2 预备知识

75682016c93332a4c26d30e3b4e14d83.png

渲染涉及三个主要步骤:

  1. 射线投射。为了渲染特定视角中目标像素的颜色,NeRF利用相机的校准参数π通过该像素生成射线r(o,d),其中o,d是相机中心和射线方向。

  2. 射线行进。由于穿过神经辐射场表示的3D场景的选定射线沿着它的移动,一组3D点沿着选定的射线被采样。NeRF模型对3D场景进行编码并预测这些点的颜色和密度。

  3. 辐射累积。像素颜色是通过积分采样的3D点的预测辐射特征而提取的。

可以看到建立2D照片和3D场景之间的关系需要相机校准。不幸的是,精确校准相机姿态非常具有挑战性。同时,包括非线性针孔相机模型和形状-辐射模糊性等固有限制,导致NeRF模型仍然合成出不满意的新测试视角。

3 方法

956d0bf0b16669938dccdb57bc1fae91.png

3.1 NeRF-Style Degradation Simulator (NDS)

在这一部分,作者提出了一个通用的NeRF退化模拟器,以生成与NeRF-rendered图像 visually 和 statistically 相似的大规模训练数据集来解决伪影问题。对于目标视角 I,设计了三种退化方式:分散的高斯噪声 (SGN),重定位 (Re-Pos.) 和各向异性模糊 (A-Blur)。为了处理由于各种情况下的不平衡的监督视角,使用区域的自适应策略。利用模拟生成的图像和真实的NeRF-rendered图像的视觉相似性来验证该模拟器。

46a4ef2ba828a9db618954aad62daa86.png

3.2  Inter-viewpoint Mixer (IVM)

在这一部分,作者提出了一个混合递归的视角间“混合器”,逐渐融合两个高质量参考视角的像素级和补丁级内容,实现更有效的视角间聚合,从而解决了NeRF样式视角渲染的伪影问题。该框架包括三个模块,即特征提取、混合视角间聚合和重建。通过监督学习使所得到的增强视角 I^更接近于目标视角 。

0cd5d57651ba01e222654d95dffb0297.png 52a041ad15f4cfa303054959a682c78b.png

3.3. View Selection

在视图选择阶段,需要选择与渲染视图I有最大重叠部分的两个参考视图{Ir1,Ir2}来进行视点间的信息聚合。因此,作者提出了一种基于针孔相机模型的视图选择策略。将3D场景近似为一个球体,摆放摄像机来拍摄景象。当光线射到球体上时,会产生一组交点。用Φi = {pi0,pi1,...,piMi}和Φj = {pj0,pj1,...,pjMj}表示第i个和第j个相机的3D点集。对于第i个视图的第mi个交点pi,我们在视图j中搜索其最近的点p i→j mi,用L2距离计算匹配成本Ci→j,然后通过Ci↔j = Ci→j + Cj→i得到视图i和j之间的彼此匹配成本。根据最小彼此匹配成本来选择两个参考视图{Ir1,Ir2},用于增强NeRF渲染的视图I的质量。

欢迎关注微信公众号「3D视觉工坊」,加群/文章投稿/课程主讲,请加微信:dddvisiona,添加时请备注:加群/投稿/主讲申请

4 实验

4.1 模型训练

在本研究中,作者通过采用IVM框架,结合随机剪裁、翻转和旋转增强等方法以及针对复杂运动的全局偏移,训练了一个单一的IVM模型来解决三维运动重建的问题。我们采用Adam优化器进行训练,并使用余弦退火策略进行学习率衰减。

4.2 评估

本研究在LLFF、Tanks and Temples和Noisy LLFF Synthetic三个数据集上开展实验。评估指标采用PSNR、SSIM和LPIPS。其中,PSNR和SSIM越高表示图像质量越好;LPIPS越低表示感知距离误差越小。

4.3  SOTA NeRF模型的改进

41d9b20c87a3d9e3570aec33b6b8bd69.pngNeRFLiX模型能够有效地提高NeRF前沿方法在各种数据集上的合成质量,特别是在复杂数据集上的渲染质量。通过实验数据可以看出,NeRFLiX能够将性能提高到一个新的水平,并且能够大幅提高其他NeRF模型在各种数据集上的渲染表现。具体而言,在PSNR/SSIM/LPIPS方面,NeRFLiX能够将Plenoxels提高了0.61dB/0.025/0.054,将TensoRF和DIVeR在Tanks and Temples数据集上的表现都有很大提高。

4.4  NeRF模型的训练加速

该研究展示了使用NeRFLiX方法进行NeRF模型训练加速的可能性,即使将训练时间缩短50%,也能产生优秀的渲染结果。具体而言,该方法可以优化两个SOTA NeRF模型的渲染图像,并将Plenoxels的训练时间从24分钟减少到了10分钟。这一方法的应用将使NeRF模型更加实用,并且提高渲染的效率。

4.5  消融研究

作者在LLFF 数据集上,通过NeRF风格的降级模拟器和视角混合器的设计,来提高光场图像的质量。在模拟质量方面,使用t-SNE进行可视化,结果表明提出的NeRF-style degradation simulator在分布上更接近真实的图像。在实验过程中,所采用的所有降级对系统性能都是有益的。此外,作者开发了视角选择策略和混合循环多视角聚合,以应对不同视角的差异。在实验中证明了这种策略和聚合方法的有效性,并证明了所提出的方法的强大性。

3f5c0a28186bc18ba9d4d4de175f9cd6.png

5 总结

作者提出了 NeRFLiX,这是一种通用的 NeRF 无关的高质量神经视图合成恢复范式。作者系统地分析了 NeRF 渲染管道,并引入了 NeRF 风格降级的概念。为了消除 NeRF 风格的伪影,我们提出了一种新颖的 NeRF 风格降级模拟器,并构建了一个大规模的模拟数据集。受益于的模拟数据集,作者演示了如何训练 SOTA 深度神经网络以消除 NeRF 伪影。为了进一步恢复 NeRF 渲染帧中缺失的细节,作者提出了一种能够聚合从自由视点捕获的多视图帧的视角间混合器。此外,作者开发了一种视图选择方案,以选择最相关的参考帧,从而在实现卓越结果的同时大大减轻计算负担。广泛的实验验证了 NeRFLiX 的有效性。

论文提出的 NeRFLiX 方法是一种非常有前途的方法,可以从多个视角合成高质量的图像。这个方法可以去除图像中的降级,并且可以将高度相关的高质量训练图像融合在一起,从而推动 NeRF 模型的性能到全新的水平,并产生高度逼真的合成视图。此外,NeRFLiX 还提出了一种新颖的 NeRF 风格降级模拟器和一个大规模的模拟数据集,以及一个能够聚合从自由视点捕获的多视图帧的视角间混合器。这些创新点都为 NeRF 模型的性能提升做出了重要贡献。

65240ef22e9e87bb62695f5075ccf4af.png 23995de0eb58994954c2898a4261269f.png

本文仅做学术分享,如有侵权,请联系删文。

点击进入—>3D视觉工坊—NeRF—技术交流群

1ea2de067e043c0b6d541bc5740f6aa0.png

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NeRFLiX,NeRF新高度! 的相关文章

随机推荐

  • chatgpt

    transformer GitHub Topics GitHub
  • Apollo:source cyber/setup.bash的作用

    source cyber setup bash 是在使用Apollo开发过程中 xff0c 用于加载Apollo软件的配置以及环境变量的脚本 Apollo是一款自动驾驶开发平台 xff0c cyber是其中的一个核心模块 xff0c 提供了
  • 什么样的人当不好程序员?

    什么样的人当不好程序员 xff1f 2016 01 21 程序员之家 来源 xff1a 36Kr 译文 xff1a http 36kr com p 5042433 html 原文 xff1a https goo gl jLfUFq 软件蚕食
  • java基础语法(顺便回顾cpp语法并比较与java的异同)

    变量 标识符 关键字与数据类型 1 标识符命名风格约定 xff1a 不能以数字开头 xff0c 也不能有 等符号 可以有 和 但不用作开头 方法名 变量名首单词小写 xff0c 其余单词首字母大写 如anyVariableName 类名 接
  • 刷leetcode,锻炼编程能力(c++)

    力扣20 xff0c 有效的括号 xff0c 栈 span class token macro property span class token directive keyword include span span class toke
  • 华为笔试题库之困难--难度

    题记 xff1a 若立志投身算法研究 xff0c 可精研理论算法 xff1a 动态规划 递归 深度搜索等 xff1b 若以解决问题为目的 xff0c 主要为了工作内容 xff0c 当尝试快而简单的方法 xff0c 这该是学习的本意 1 素数
  • C++ - opencv应用实例之矩形框检测

    C opencv应用实例之矩形框检测 现阶段下 目标检测在实际应用场景中的表现颇为重要 工业质检 移动机器人视觉伺服 作业 交通监控 安防领域等均需要通过目标检测来实现对目标的定位 测量或者统计 辅助控制等 目前目标检测主要分为两个方向的发
  • cpp-5 : Depends: gcc-5-base (= 5.3.1-14ubuntu2) but 5.4.0-6ubuntu1~16.04.11 is to be installed

    在5 4 0 6ubuntu1 16 04 11 cpp 5 amd64 Xenial 16 04 Ubuntu上下载对应的版本 xff0c 国 内源的版本都是5 4 0 6ubuntu1 16 04 12 xff0c 最后一位是12 xf
  • Questasim SystemC 指令sccom

    QuestaSim sccom 10 6c 1 compiler 2017 09 Sep 15 2017 Usage sccom options CPP compiler options lt CPP files gt General Op
  • MacOS 安装curl和wget

    目录 1 什么是curl和wget1 1 curl1 2 wget1 3 curl和wget的区别 2 安装curl2 1 利用wget安装curl2 2 直接下载curl源码编译安装 推荐 3 安装wget3 1 利用Homebrew安装
  • linux tty core 源码分析__tty_read,__tty_write,__tty_poll,

    转载 xff1a http blog csdn net sirzjp article details 6134489 前面分析了open操作 xff0c 现在分析读操作tty read tty read直接调用线路规程中的读操作从tty g
  • D触发器二分频电路

    D触发器二分频电路 有时真的要感慨一下自己电路学的够烂的 xff0c 啥都不会 xff0c 做示波器要学习分频电路 xff0c 学呗 将D触发器的Q非端接到数据输入端D即可实现二分频 xff0c 说白了就是CLK时钟信号的一个周期Q端电平反
  • 自动驾驶系列(十)编写电动车ROS节点(刹车)

    一 硬件控制协议 对于不同的设备 xff0c 底层的通讯方式都不一致 xff0c 因此需要根据具体硬件具体分析 本系统 采用了1个CAN盒子控制转向 xff0c 1路DA控制油门 xff0c 另外一路DA控制刹车 1 xff0c 转向协议
  • 【Mapreduce】利用单表关联在父子关系中求解爷孙关系

    首先是有如下数据 xff0c 设定左边是右边的儿子 xff0c 右边是左边的父母 Tom Lucy Tom Jack Jone Lucy Jone Jack Lucy Mary Lucy Ben Jack Alice Jack Jesse
  • 【C++】Split

    如果要将类似 aa ss ff 的字符串按空格分割成一个个字符 xff0c Java C PHP或者python等其它语言写多的人 xff0c 就会认为split一个理应存在的方法 xff0c 实际上C 43 43 中并没有这个方法 xff
  • TX2模组镜像备份与刷机

    1 环境搭建 1 1 下载驱动包和根文件系统 进入https developer nvidia com embedded linux tegra r3251下载两个文件 xff0c L4T Driver Package BSP 和Sampl
  • STM32——Keil5的编译警告和错误订正

    这是第一次写博客 xff0c 这里都是我在修改stm32代码遇到的一些警告和错误的改正 xff0c 其中有很多解决方法都是在网上找的 xff0c 也有一些还没解决的 xff0c 望指点 513 D HARDWARE 1U src Uart
  • stm32堆栈的认知

    flash和SRAM的区别 flash可以像硬盘一样存数据 xff0c 也可以直接像RAM运行 xff0c 一般在里面放bootload xff0c 程序执行代码 1 stm32中的堆栈 单片机是一种集成电路芯片 xff0c 集成cpu r
  • Liunx使用apt安装本地deb软件包

    平常都是用 dpkg i 来安装本地deb软件包 但是 dpkg 不会自动安装依赖包 xff0c 因此安装很容易出现依赖相关的错误 之后需要通过运行 sudo apt get install f 来安装依赖 可以直接通过 apt apt g
  • NeRFLiX,NeRF新高度!

    作者丨小张Tt 来源丨计算机视觉工坊 论文题目 xff1a NeRFLiX High Quality Neural View Synthesis by Learning a Degradation Driven Inter viewpoin