当前位置: 首页 > 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代码实现)

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

AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南

点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误

HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误,它们的含义、原因和解决方法都有显著区别。以下是详细对比: 1. HTTP 406 (Not Acceptable) 含义: 客户端请求的内容类型与服务器支持的内容类型不匹…...

docker详细操作--未完待续

docker介绍 docker官网: Docker:加速容器应用程序开发 harbor官网:Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台,用于将应用程序及其依赖项(如库、运行时环…...

深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南

🚀 C extern 关键字深度解析:跨文件编程的终极指南 📅 更新时间:2025年6月5日 🏷️ 标签:C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言🔥一、extern 是什么?&…...

C++使用 new 来创建动态数组

问题: 不能使用变量定义数组大小 原因: 这是因为数组在内存中是连续存储的,编译器需要在编译阶段就确定数组的大小,以便正确地分配内存空间。如果允许使用变量来定义数组的大小,那么编译器就无法在编译时确定数组的大…...

人工智能(大型语言模型 LLMs)对不同学科的影响以及由此产生的新学习方式

今天是关于AI如何在教学中增强学生的学习体验,我把重要信息标红了。人文学科的价值被低估了 ⬇️ 转型与必要性 人工智能正在深刻地改变教育,这并非炒作,而是已经发生的巨大变革。教育机构和教育者不能忽视它,试图简单地禁止学生使…...

MFC 抛体运动模拟:常见问题解决与界面美化

在 MFC 中开发抛体运动模拟程序时,我们常遇到 轨迹残留、无效刷新、视觉单调、物理逻辑瑕疵 等问题。本文将针对这些痛点,详细解析原因并提供解决方案,同时兼顾界面美化,让模拟效果更专业、更高效。 问题一:历史轨迹与小球残影残留 现象 小球运动后,历史位置的 “残影”…...

Vite中定义@软链接

在webpack中可以直接通过符号表示src路径,但是vite中默认不可以。 如何实现: vite中提供了resolve.alias:通过别名在指向一个具体的路径 在vite.config.js中 import { join } from pathexport default defineConfig({plugins: [vue()],//…...

Chromium 136 编译指南 Windows篇:depot_tools 配置与源码获取(二)

引言 工欲善其事,必先利其器。在完成了 Visual Studio 2022 和 Windows SDK 的安装后,我们即将接触到 Chromium 开发生态中最核心的工具——depot_tools。这个由 Google 精心打造的工具集,就像是连接开发者与 Chromium 庞大代码库的智能桥梁…...

android RelativeLayout布局

<?xml version"1.0" encoding"utf-8"?> <RelativeLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"match_parent"android:gravity&…...