当前位置: 首页 > news >正文

79、ClimateNeRF: Physically-based Neural Rendering for Extreme Climate Synthesis

简介

主页

物理模拟可以很好地预测天气影响。神经辐射场产生SOTA场景模型。

ClimateNeRF 允许我们渲染真实的天气效果,包括雾霾、雪和洪水 ,结果可以通过有物理意义的变量来控制,比如水位 ,这允许人们可视化气候变化的结果将对他们产生什么影响

实现流程

首先,使用instant-NGP重建3D场景。重建的亮度场能够高效地合成高质量的新颖的场景视图图像。其次,有选择地微调学习的instant-ngp模型,以便它捕获所提供的样式图像的样式。这种3D一致的风格化对于难以通过物理模拟捕获的天气效应建模特别有用。第三,通过将相关的物理实体(雪、水、雾霾)集成到场景中并渲染物理上合理的图像来模拟气候事件。

3D Scene Reconstruction

在Instant-ngp这种显式的特征编码和空间划分特别适合于ClimateNeRF,因为可以相对容易地编辑局部特征。

物理模拟需要访问任意点的表面法线来计算与雪和水的交互,并且需要访问点的语义(在语义分割的意义上)来转换样式 。因此扩展NGP,允许它输出语义逻辑 s 和表面法线n,训练数据中没有语义或表面法线ground truth,这里使用现成的预训练单目语义分割网络为每张图像生成语义map,使用密度梯度来引导具有加权MSE损失的预测表面法线 n

为了模拟暴风雪,必须在场景中添加雪,并将树木变暗,但不应该改变房屋的形状,为了在程式化阶段保持空间特征的完整性,对instant-NGP的潜在特征进行了解纠缠,对于NGP模型中的每个体素,将潜在特征分为几何特征 和外观特征

几何特征被训练来渲染密度。外观特征用于渲染颜色、语义和法线。

将在程式化阶段冻结几何特征向量,只改变外观特征向量

在给定查询点和光线方向的情况下,给出密度σ、颜色c、语义对数后验s和表面法线n

Stylization

使用FastPhotoStyle从预训练的模型转移样式到渲染图像,只转移到“地形”、“植被”或“天空”区域,以模拟自然天气变化现象,只是这样的话,产生的图像看起来很逼真,但不一定与视图一致。

对学生网络 instant-NGP模型进行微调,以确保风格转换后场景的视图一致性,尽量减少学生网络渲染结果和风格转移图像之间的色差,保持几何形状完整,只改变外观来实现这一目标,所以在样式转换阶段,只有外观特征代码。被优化

Representing and Rendering Climate Effects

生成具有新的物理实体的场景,雪,水,雾霾,必须确定它们的位置(物理模拟的工作)以及生成的图像是什么样子的(渲染的工作)

渲染总是涉及到对光线查询的计算响应,因此计算u在v方向上的辐射度。必须用密度表示模拟结果,并且必须能够计算法线和表面反射率属性

物理模拟得出的密度

预测法线

预测BRD

每个都取决于现有的场景。选择可以模拟各种效果,包括雾霾的大气效应,水面的折射和反射,以及积雪的散射。

{}在不同的物理模拟中有很大差异

一旦物理实体被函数 定义,就可以通过模拟物理实体与场景之间的光传输来真实地将它们渲染到图像中

给定查询点位置x,仿真框架通过基于物理的渲染来估计x位置物理实体的密度和颜色

上式基于物理的绘制方程

通过跟踪与学习的NeRF中入射方向相反的射线 来近似入射照明

根据物理实体的表面BRDF,对积分使用分析或基于采样的解决方案。注意,可以通过采样来模拟多次反弹

遵循在两个通道中定义的体积渲染过程。对于沿着摄像机射线的每个点,查询公式4中定义的物理实体的不透明度和颜色。同时,系统还通过公式2得到原始密度和颜色

Climate Effect Details

Smog Simulation

假设烟雾是由均匀分布在真空中的微小吸收粒子形成的, 空白空间中,NeRF密度,可以通过简单地在密度上添加一个非负常数来模拟自由空间中的烟雾密度,在NeRF的高密度区域内,加上常数不会显著改变积分

是决定雾霾密度的可控参数 ,雾霾颗粒有恒定的颜色 ,颗粒颜色和密度都是可控参数

Flood Simulation

洪水场景的水面近似为一个水平面:,其中重力方向法线 通过相机姿态和消失点检测估计,平面原点决定了水的高度

基于快速傅里叶变换(FFT)的波纹和波,FFT波以随机谱系数为输入,输出一个基于风速、方向和时空频率的时空面法线,与静水相比,基于fft的水面模拟显著提高了水面的真实感,模拟不透明度和微面波纹,使水看起来有光泽,近似公式 4中的积分,采用sigma-point方法,从x处采样5条射线,包括反射方向和附近的4条射线

Snow Simulation

雪更有可能堆积在朝上的表面上,由于重力作用,雪的深处密度更大,使用以表面为中心的metaballs并以密度为中心来模拟物体表面上的密度分布,metaballs内的密度分布可以用核函数 表示,随着距离球中心距离的增加,密度平滑地减小

对于空间中的任意点x,使用parzen窗口密度估计器在N个局部最近邻上计算x的雪的密度

是一个可控的曲面截断阈值,a是一个超参数 ,这个方程表明,如果一个点接近或大于阈值,它更有可能是表面边界,使用空间变化的漫射颜色(接近于纯白色乘以场景的平均照度)来近似BRDF,并应用地下散射效果来照亮雪的阴影部分,表面法线值仍然以基于梯度的方式计算

limitations

ClimateNeRF依赖于NeRF重建的质量。不准确的几何形状导致洪水和积雪模拟不理想。

在雪模拟中不正确的地面表面导致伪影的情况。

这也显示了未来通过物理模拟自动发现几何理解错误的机会。

Conclusion

提出了一种新的NeRF编辑框架,将物理模拟应用于场景的NeRF模型。利用这个框架,建立了ClimateNeRF,使能够渲染现实的气候变化影响,包括雾霾、洪水和雪。合成的视频是真实的,一致的,物理上合理的,高度可控的。展示了ClimateNeRF在帮助提高社区对气候变化的认识和增强对不利天气条件的自驱动健壮性方面的潜力。

相关文章:

79、ClimateNeRF: Physically-based Neural Rendering for Extreme Climate Synthesis

简介主页物理模拟可以很好地预测天气影响。神经辐射场产生SOTA场景模型。ClimateNeRF 允许我们渲染真实的天气效果,包括雾霾、雪和洪水 ,结果可以通过有物理意义的变量来控制,比如水位 ,这允许人们可视化气候变化的结果将对他们产…...

前端面试题(一)

目录 前言 一、css3实现布局的方式有哪些? 1.flex布局 2.grid布局 二、jquery的扩展机制? 三、jquery动画和css实现动画的本质区别? 四、不使用css的动画,如何实现盒子从左到右移动? 五、使用过的框架&#xf…...

Java基础常见面试题(七)

序列化和反序列化 Java序列化与反序列化是什么? Java序列化是指把Java对象转换为字节序列的过程,而Java反序列化是指把字节序列恢复为Java对象的过程。 序列化: 序列化是把对象转换成有序字节流,以便在网络上传输或者保存在本地…...

【springmvc】报文信息转换器

HttpMessageConverter HttpMessageConverter,报文信息转换器,将请求报文转换为Java对象,或将Java对象转换为响应报文 HttpMessageConverter提供了两个注解和两个类型: RequestBody, ResponseBody, Reques…...

3.5知识点复习

extern:表示声明。 没有内存空间。 不能提升。const:限定一个变量为只读变量。volatile:防止编译器优化代码。volatile int flg 0; register:定义一个寄存器变量。没有内存地址。register int a 10;字符串:C语言中&a…...

湖南中创教育PMP分享项目经理有哪些优势?

项目经理拥有超强的计划能力;具备大局意识;沟通能力特别强;具备更大的灵活性和反应能力以及总结汇报能力 1、超强的计划能力 项目经理几乎无时无刻都在做计划,因此也就更擅长做计划。 项目管理要抓重点,有主次地处理…...

LeetCode:27. 移除元素

给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数组中超出新长度后面…...

麻雀算法SSA优化LSTM长短期记忆网络实现分类算法

1、摘要 本文主要讲解:麻雀算法SSA优化LSTM长短期记忆网络实现分类算法 主要思路: 准备一份分类数据,数据介绍在第二章准备好麻雀算法SSA,要用随机数据跑起来用lstm把分类数据跑起来将lstm的超参数交给SSA去优化优化完的最优参数…...

哈希表题目:数组中的 k-diff 数对

文章目录题目标题和出处难度题目描述要求示例数据范围解法思路和算法代码复杂度分析题目 标题和出处 标题:数组中的 k-diff 数对 出处:532. 数组中的 k-diff 数对 难度 4 级 题目描述 要求 给定一个整数数组 nums\texttt{nums}nums 和一个整数 k…...

SAP ERP系统PP模块计划策略2050详解

SAP/ERP系统中面向订单生产的计划策略主要有20和50两个策略,这两个策略都是面向订单生产的计划策略,也是离散制造行业应用比较广泛的策略。它们之间最大差异就是在于20策略完全是由订单驱动,而50策略是预测加订单驱动,本文主要介绍…...

TIA博途中将硬件目录更改为中文的具体方法演示

TIA博途中将硬件目录更改为中文的具体方法演示 基本步骤可参考如下: 第一步: 第二步: 具体的操作演示: 如下图所示,在所示的目录中找到zh-chs文件夹,删除或修改文件夹的名称均可,这里建议大家修改文件夹的名称,防止以后需要恢复成英文目录, 如下...

【多线程操作】线程池模拟实现

目录 一.线程池的作用 二.线程池的模拟实现 1.线程模块(Thread.hpp): 2.线程锁模块(LockGuard.hpp): 3.任务模块(Task.hpp) 4.线程池核心(ThreadPool.hpp&#xff…...

HBase---Hbase安装(单机版)

Hbase安装单机版 文章目录Hbase安装单机版Master/Slave架构安装步骤配置Hbase1.上传压缩包解压更名修改hbase-env.sh修改hbase-site.xml配置HBase环境变量配置Zookeeper复制配置文件修改zoo.cfg配置文件修改myid配置Zookeeper环境变量刷信息配置文件启动hbase步骤hbase shellMa…...

启动项管理工具Autoruns使用实验(20)

实验目的 (1)了解注册表的相关知识; (2)了解程序在开机过程中的自启动; (3)掌握Autoruns在注册表和启动项方面的功能;预备知识 注册表是windows操作系统中的一个核心数据…...

BFD单臂回声实验详解

13.1.1BFD概念 BFD提供了一个通用的、标准化的、介质无关的、协议无关的快速故障检测机制,有以下两大优点: 对相邻转发引擎之间的通道提供轻负荷、快速故障检测。 用单一的机制对任何介质、任何协议层进行实时检测。 BFD是一个简单的“Hello”协议。两个系统之间建立BFD会…...

详解JAVA类加载器

目录 1.概述 2.双亲委派 3.ServiceClassLoader 4.URLClassLoader 5.加载冲突 1.概述 概念: 类加载器(Class Loader)是Java虚拟机(JVM)的一个重要组件,负责加载Java类到内存中并使其可以被JVM执行。类…...

记录一些常用C标准库函数,以及Linux系统调用函数的作用(不断更新)

C标准库函数 perror() 函数 作用:perror函数是C标准库中的一种函数,用于在STDERR(标准错误输出流)中输出给定的错误信息字符串。它不属于Linux系统调用函数。 具体使用方法:perror("调用的函数名") 所需…...

RK3568平台开发系列讲解(显示篇)DRM的atomic接口

🚀返回专栏总目录 文章目录 一、Property二、Standard Properties三、代码案例沉淀、分享、成长,让自己和他人都能有所收获!😄 📢目前DRM主要推荐使用的是 Atomic(原子的) 接口。 一、Property Property(属性)—– Atomic操作必须依赖的基本元素 Property把前面的…...

2022年MathorCup数学建模C题自动泊车问题解题全过程文档加程序

2022年第十二届MathorCup高校数学建模 C题 自动泊车问题 原题再现 自动泊车是自动驾驶技术中落地最多的场景之一,自动泊车指在停车场内实现汽车的自动泊车入位过程,在停车空间有限的大城市,是一个比较实用的功能,减少了驾驶员将…...

【需求响应】基于数据驱动的需求响应优化及预测研究(Matlab代码实现)

👨‍🎓个人主页:研学社的博客💥💥💞💞欢迎来到本博客❤️❤️💥💥🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密…...

【WiFi帧结构】

文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成:MAC头部frame bodyFCS,其中MAC是固定格式的,frame body是可变长度。 MAC头部有frame control,duration,address1,address2,addre…...

Java如何权衡是使用无序的数组还是有序的数组

在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...

Java入门学习详细版(一)

大家好,Java 学习是一个系统学习的过程,核心原则就是“理论 实践 坚持”,并且需循序渐进,不可过于着急,本篇文章推出的这份详细入门学习资料将带大家从零基础开始,逐步掌握 Java 的核心概念和编程技能。 …...

保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek

文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama(有网络的电脑)2.2.3 安装Ollama(无网络的电脑)2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...

【JavaSE】多线程基础学习笔记

多线程基础 -线程相关概念 程序(Program) 是为完成特定任务、用某种语言编写的一组指令的集合简单的说:就是我们写的代码 进程 进程是指运行中的程序,比如我们使用QQ,就启动了一个进程,操作系统就会为该进程分配内存…...

Golang——6、指针和结构体

指针和结构体 1、指针1.1、指针地址和指针类型1.2、指针取值1.3、new和make 2、结构体2.1、type关键字的使用2.2、结构体的定义和初始化2.3、结构体方法和接收者2.4、给任意类型添加方法2.5、结构体的匿名字段2.6、嵌套结构体2.7、嵌套匿名结构体2.8、结构体的继承 3、结构体与…...

jmeter聚合报告中参数详解

sample、average、min、max、90%line、95%line,99%line、Error错误率、吞吐量Thoughput、KB/sec每秒传输的数据量 sample(样本数) 表示测试中发送的请求数量,即测试执行了多少次请求。 单位,以个或者次数表示。 示例:…...

MySQL 索引底层结构揭秘:B-Tree 与 B+Tree 的区别与应用

文章目录 一、背景知识:什么是 B-Tree 和 BTree? B-Tree(平衡多路查找树) BTree(B-Tree 的变种) 二、结构对比:一张图看懂 三、为什么 MySQL InnoDB 选择 BTree? 1. 范围查询更快 2…...

python爬虫——气象数据爬取

一、导入库与全局配置 python 运行 import json import datetime import time import requests from sqlalchemy import create_engine import csv import pandas as pd作用: 引入数据解析、网络请求、时间处理、数据库操作等所需库。requests:发送 …...

6个月Python学习计划 Day 16 - 面向对象编程(OOP)基础

第三周 Day 3 🎯 今日目标 理解类(class)和对象(object)的关系学会定义类的属性、方法和构造函数(init)掌握对象的创建与使用初识封装、继承和多态的基本概念(预告) &a…...