论文地址:https://arxiv.org/pdf/2202.05263.pdf
复现源码:https://github.com/dvlab-research/BlockNeRFPytorch


概述

  Block-NeRF是一种能够表示大规模环境的神经辐射场(Neural Radiance Fields)的变体,将 NeRF 扩展到渲染跨越多个街区的城市规模场景。该方法将场景分解为单独训练的 NeRF,使渲染时间与场景大小解耦,并允许对环境进行每个街区的更新。Block-NeRF为每个单独的 NeRF 添加外观嵌入(appearance embeddings)、学习姿态优化(learned pose refinement)和可控曝光(controllable exposure),并引入了一种在相邻 NeRF 之间对齐外观(aligning appearance)方法来融合不同场景信息。


模型架构


  将场景分为多组Block-NeRF,每个Block可以并行独立训练,并在推理过程中进行融合。使得可以对单独的block更新而无需对整个场景进行重新训练。在此过程中,动态选择相关的 Block-NeRF 进行渲染,在跨越场景时以平滑的方式合成场景。为了实现这种平滑的合成方式,优化了Appearance代码来适应照明条件,并使用每个Block-NeRF到新视图的距离来计算插值权值。

Block 大小与位置

  在每个十字路口放置一个Block-NeRF,覆盖十字路口本身与任意连接街道的75%的场景,使得任何两个相邻的街区之间有50%的场景重叠。

独立Block-NeRF的训练过程

外观编码:使用 MLP 来学习不同外观变化的条件,如不同的天气与光照条件。还可以通过控制外观编码(appearance embedding)来对不同环境进行线性插值,得到不同条件下的环境信息(如多云和晴朗的天空,或者白天与晚上),如图3与图4所示:

位姿优化:Learned Pose Refinement是通过在每个Block-NeRF中训练一个额外的神经网络来实现的,这个神经网络可以根据输入的图像和初始的相机姿态,输出一个修正后的相机姿态。使得Block-NeRF就可以利用更准确的相机姿态来生成更高质量的新视角图像。
输入图像曝光:将相机曝光信息输入到模型的外观预测部分,使得NeRF补偿视觉上的差异,使用 4 层的 s i n sin sin 来对曝光信息进行编码。

瞬态(移动)物体:Transient Objects是指在训练图像中出现的临时物体,如行人、车辆等,它们会影响Block-NeRF学习场景的静态结构,因为它们会导致视角不一致。通过以下步骤来消除场景中的瞬态物体的影响:

  • 首先,对于每个训练图像,使用一个分割算法来检测并去除Transient Objects,得到一个纯净的背景图像。
  • 然后,对于每个Block-NeRF,使用去除了Transient Objects的背景图像来训练神经网络,从而学习场景的静态结构。
  • 最后,在渲染新视角图像时,使用原始的训练图像(包含Transient Objects)作为输入,并将分割算法得到的掩码作为额外的输入送入Block-NeRF中,从而在输出图像中保留或去除Transient Objects。
    这样做的好处是,Block-NeRF可以灵活地处理不同场景下的Transient Objects,并且可以在渲染时根据用户需求选择是否显示它们。
    场景可见性预测:Visibility Prediction的具体实现是这样的:
  • 首先,对于每个Block-NeRF,构建一个小的多层感知机(MLP) f v f_v fv ,以位置信息 x x x 和方向信息 d d d 作为输入,用来学习样本点可见性的近似值。
  • 然后,对于每个Block-NeRF,使用其训练图像中的采样点作为输入,计算其可见性近似值,并将其与由密度函数得到的透射率 T i T_i Ti作为监督信号进行训练。
  • 最后,在合并多个Block-NeRF时,使用 f v f_v fv 来判断一个给定的场景区域是否对该Block-NeRF可见,并根据可见性近似值来加权不同Block-NeRF的输出颜色。
    Visibility Prediction可以有效地解决不同Block-NeRF之间的遮挡问题,并且可以提高渲染质量和效率。

Block_Nerf合并

Block-NeRF选择:一个大型场景由多个 Block 组成,Block-NeRF使用两种策略进行Block选择(1)只考虑在目标视点设定半径范围内的Block-NeRF。(2)计算每个候选Block的相关可见性,如果平均可见性小于阈值,则舍弃该Block。如图2所示,可见性可以由一个独立的模块计算,且不需要在目标图像的分辨率下进行渲染。通过筛选,通常剩余1-3个Block-NeRF有待合并。
Block-NeRF合成:使用相机原点 c c c 与每个Block-NeRF 的中心 x i x_i xi 之间的逆距离加权系数对候选 Block 插值( w i ∝ d i s t a n c e ( c , x i ) − p w_i\propto distance(c, x_i)^{-p} widistance(c,xi)p, p p p 影响Block之间的混合速率)。插值在二维图像中进行,在不同Block-NeRF之间产生平滑的过渡。
场景外观匹配

Appearance Matching是为了在不同block之间消除外观上的不一致性,使得渲染结果更加自然和真实。具体步骤如下:

  • 对于每个block,为其分配一个外观编码(appearance code),这是一个随机初始化的向量,用于控制block的颜色和光照。
  • 对于每对相邻的block,选择一个三维区域作为匹配位置(matching location),这个区域要求在两个block中都有较高的可见度。
  • 对于每个匹配位置,冻结两个block对应的NeRF网络的权重,只优化其中一个block的外观编码,使得两个block在该位置渲染出来的颜色值之间的L2损失最小。
  • 重复上述步骤,直到所有相邻的block都进行了外观匹配。
    以此实现大场景中不同block之间外观上的对齐,如图6所示。

实验结果




论文阅读《Block-NeRF: Scalable Large Scene Neural View Synthesis》相关推荐

  1. 《基于卷积神经网络的深度迁移学习,用于燃气轮机燃烧室的故障检测》论文阅读

    目录 突出 抽象 引言 1.1动机 1.2文献综述获得的结论 1.3贡献 1.4组织 2方法 2.1燃汽轮机组故障知识共享 2.2迁移学习 2.3 基于卷积神经网络的深度迁移学习 2.4用于燃气轮机燃 ...

  2. 基于卷积神经网络和投票机制的三维模型分类与检索 2019 论文笔记

    作者:白静 计算机辅助设计与图形学学报 1.解决的问题 由于三维模型投影得到的视图是由不同视点得到,具有相对独立性,这种像素级的融合运算并没有直接的物理或者几何意义,更有可能造成图像有益信息淹没和混淆 ...

  3. TextCNN——基于卷积神经网络的文本分类学习

    1.CNN基础内容 CNN的全称是Convolutional Neural Network,是一种前馈神经网络.由一个或多个卷积层.池化层以及顶部的全连接层组成,在图像处理领域表现出色. 本文主要学习 ...

  4. 读懂深度迁移学习,看这文就够了 | 赠书

    百度前首席科学家.斯坦福大学副教授吴恩达(Andrew Ng)曾经说过:迁移学习将是继监督学习之后的下一个促使机器学习成功商业化的驱动力. 本文选自<深度学习500问:AI工程师面试宝典> ...

  5. 一种基于卷积神经网络的图像去雾研究-含matlab代码

    目录 一.绪论 二.去雾卷积网络 2.1 特征提取 2.2 多尺度映射 2.3 局部均值 2.4 非线性回归 三.实验与分析 四.Matlab代码获取 一.绪论 雾是一种常见的大气现象,空气中悬浮的水 ...

  6. 机械臂论文笔记(一)【基于卷积神经网络的二指机械手 抓取姿态生成研究 】

    基于卷积神经网络的二指机械手 抓取姿态生成研究 论文下载 摘要 第1章 绪论 1.1 抓取生成国内外研究现状 1.1.1已知物体抓取生成 1.1.2相似物体抓取生成 1.1.3 未知物体抓取生成 1. ...

  7. 毕业设计 - 基于卷积神经网络的乳腺癌分类 深度学习 医学图像

    文章目录 1 前言 2 前言 3 数据集 3.1 良性样本 3.2 病变样本 4 开发环境 5 代码实现 5.1 实现流程 5.2 部分代码实现 5.2.1 导入库 5.2.2 图像加载 5.2.3 ...

  8. 基于卷积神经网络与迁移学习的油茶病害图像识别

    基于卷积神经网络与迁移学习的油茶病害图像识别 1.研究思路 利用深度卷积神经网络强大的特征学习和特征表达能力来自动学习油茶病害特征,并借助迁移学习方法将AlexNet模型在ImageNet图像数据集上 ...

  9. Python深度学习实例--基于卷积神经网络的小型数据处理(猫狗分类)

    Python深度学习实例--基于卷积神经网络的小型数据处理(猫狗分类) 1.卷积神经网络 1.1卷积神经网络简介 1.2卷积运算 1.3 深度学习与小数据问题的相关性 2.下载数据 2.1下载原始数据 ...

  10. 基于卷积神经网络实现图片风格的迁移 1

    卷积神经网络详解 一.实验介绍 1.1 实验内容 Prisma 是最近很火的一款APP,它能够将一张普通的图像转换成各种艺术风格的图像.本课程基于卷积神经网络,使用Caffe框架,探讨图片风格迁移背后 ...

最新文章

  1. Vue-resource中post请求将data数据以request payload转换为form data的形式
  2. Codeforces Round #374 (Div. 2) A , B , C 水,水,拓扑dp
  3. android sharedpreferences工具类
  4. SAP Spartacus 服务器端渲染的依赖注入之 ProductPageEventBuilder
  5. spring security:自定义认证成功处理器
  6. 修改2440里面的FriendlyARM
  7. 深度学习之 RPN(RegionProposal Network)- 区域候选网络
  8. 分析称2015年手机文娱将激增至540亿美元
  9. zookeeper之理论基础
  10. 前端预览PDF总结:iframe、embed、PDFObject、PDF.js
  11. 电脑里的所有播放器只能播放声音没有画面
  12. AR路由器通过web及代码实现公网用户使用公网地址访问内网服务器,同时内网用户实现通过公网地址访问内外那个服务器
  13. 1、synchronized、Lock、volatile
  14. 伏神月破、伏神跟飞神、动爻、日月关系的思考
  15. 电脑桌面云便签怎么设置锁屏密码?
  16. 将数据从前台传到后台方法总结
  17. 解决报错:did not contain a valid NDK and couldn‘t be used
  18. Deep C (and C++) by Olve Maudal and Jon Jagger— 很不错的国外技术文章
  19. 负数时的有符号整型和无符号整型的转换
  20. sqoop导出hive分区表字段到mysql报错:Can‘t parse input data: ‘0‘

热门文章

  1. 简单易行的matplotlib中英文混排(设置中文为宋体,英文为times new roman)
  2. 130-网络编程:端口复用
  3. 让python飞:形象理解python封装、继承、函数重写、类属性、对象属性、类函数、对象函数、序列化、反序列化、pickle
  4. java--正则表达式的应用:读取文件,获取其中的电话号码
  5. iOS 报错 You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE) 解决方法
  6. c语言如何求前n项和
  7. 几个html+css常用表格
  8. 如何识别人的技术能力和水平?
  9. mysql8 json 索引
  10. 手写后台管理框架模板(一)