NeRF从入门到放弃3: EmerNeRF

https://github.com/NVlabs/EmerNeRF
该方法是Nvidia提出的,其亮点是不需要额外的2D、3Dbox先验,可以自动解耦动静field。
核心思想:
1. 动、静filed都用hash grid编码,动态filed比静态多了时间t,静态的hash编码输入是(x,y,z),动态是(x,y,z,t)。
2. 使用flow融合多帧的特征,预测当前时刻的点的前向和后向的flow,最后的动态Feature是0.25pre+0.5+0.25next
3. 用3个head分别预测正常物体、天空和阴影。

3.1 SCENE REPRESENTATIONS

1 Scene decomposition

为了实现高效的场景解耦,把4D场景分解为静态场和动态场,两者都分别由可学习的hash grid(instant NGP) Hs和hd表示。(注,下标s和d分别表示static和dynamic,下文所有表示都是此含义)
这种解耦为与时间无关的特征 hs = Hs(x) 和时变特征 hd = Hd(x, t) 提供了一种灵活紧凑的 4D 场景表示,其中 x = (x, y, z) 是查询点的 3D 位置,t 表示其时间步长。这些特征通过轻量级 MLP进一步转换为动态和静态的feature(gs和gd),和用于预测每个点的密度 (σs 和 σd)。
在这里插入图片描述
在这里插入图片描述

所以这一步得到每个3D点的feature和密度。

2 Multi-head prediction

用三个head分别预测 color sky 和shadow,动态和静态共享共一个color mlp。
该color head以 (gs, d) 和 (gd, d) 作为输入,并为每个点都输出一个静态和动态的颜色;由于天空的深度定义不明确,所以单独加一个head预测天空的深度;添加一个影子的head去表述动态物体的阴影,输出动态对象0-1的标量,调整静态场预测的颜色强度。

由此图可看出,MLP_color的输入分别是动态feature和朝向,shadow head的输入是动态feature,sky head的输入只是朝向(为什么要这么做,因为没有深度信息,不知道采样多少个点)。

在这里插入图片描述

3.2 EMERGENT SCENE FLOW

1 场景流估计(Scene flow estimation)

用flow的head对当前时刻的query点,预测前向和后向的流。最后的动态Feature是0.25pre+0.5+0.25next**

该特征聚合模块实现了三个目标:1)它将流场与场景重建损失(例如 RGB 损失)连接起来进行监督,2)它巩固特征、去噪时间属性以进行准确预测,以及 3)每个点通过其时间链接特征的共享梯度来丰富,通过共享知识提高单个点的质量

Hv和Hd应该是一样的。
在这里插入图片描述

flow部分代码:MLP的最后一层的输出是6维,前3维表示forward flow,后3维表示backwark flow。注意,最后一层mlp是没有激活函数的,以为要预测前后项的flow值,理论上有正负的,所以不能加激活函数。

# ======== Flow Field ======== #
self.flow_xyz_encoder = None
if self.cfg.enable_flow_branch:self.flow_xyz_encoder = HashEncoder(self.cfg.flow_xyz_encoder)self.flow_mlp = nn.Sequential(nn.Linear(self.flow_xyz_encoder.n_output_dims,self.cfg.base_mlp_layer_width,),nn.ReLU(),nn.Linear(self.cfg.base_mlp_layer_width, self.cfg.base_mlp_layer_width),nn.ReLU(),nn.Linear(self.cfg.base_mlp_layer_width, 6),  # 3 for forward, 3 for backward# no activation function for flow)

2 特征聚合模块(Multi-frame feature integration)

预测出forward 和backwark flow后,加到原本的位置,即得到上一阵和下一帧的位置,把上一阵和下一帧的位置都送到动态的mlp网络中。
在这里插入图片描述
上图公式中,gd是动态的mlp,Hd是hash编码,也就是说当前帧点的坐标加上前后相的光流偏移量(Δx,Δy,Δz)后,和上一帧的时间t,再次进行hash编码,然后都送到动态的mlp网络中得到上一帧和下一帧的动态feature,再和当前帧的feature加权平均。

把flow和场景重建的loss损失结合起来进行监督;增强了动态部分的特征,去噪时间属性以进行准确的预测;每个点通过其时间链接特征的共享梯度来丰富,通过共享知识提高单个点的质量。

没有用显式的监督,这种能力来自于时间聚合步骤,同时优化场景重建损失。我们的假设是,只有时间一致的特征受益于多帧特征集成,这种集成间接地将场景流场驱动到最优解——预测所有点的正确流。

3 消融实验

消融研究证实了这一点:当禁用时间聚合或停止这些附近特征的梯度时,flow无法学习有意义的结果,加入flow, psnr+1

实验细节

只用了3个相机,图片resize成640x960。25K迭代,8196。静态场景把flow和dynamic分支去掉。静态场景不加feature,加feature40分钟,动态场景不加feature2小时,加feature2.25小时。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/356314.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

项目启动 | 盘古信息助力鼎阳科技开启智能制造升级新征程

在全球数字化浪潮不断涌动的背景下,电子信息行业正迎来转型升级的关键阶段。近日,盘古信息与深圳市鼎阳科技股份有限公司(简称“鼎阳科技”,股票代码:688112)正式启动了IMS数字化智能制造工厂项目&#xff…

windows环境下,怎么查看本机的IP、MAC地址和端口占用情况

1.输入ipconfig,按回车。即查看了IP地址,子码掩码,网关信息。 2.输入ipconfig/all,按回车。即查看了包含IP地址,子码掩码,网关信息以及MAC地址 3.我们有时在启动应用程序的时候提示端口被占用,如何知道谁占有了我们需要…

C#实现卷积平滑(图像处理)

在C#中使用卷积滤波器来实现图像平滑处理,我们可以使用 System.Drawing 库来操作图像。下面是一个具体的示例,演示如何加载图像、应用卷积平滑滤波器,并保存处理后的图像。 1. 安装 System.Drawing.Common 首先,确保你已经安装了…

【Leetcode】2663. 字典序最小的美丽字符串

题目 题目链接🔗如果一个字符串满足以下条件,则称其为 美丽字符串 : 它由英语小写字母表的前 k 个字母组成。它不包含任何长度为 2 或更长的回文子字符串。 给你一个长度为 n 的美丽字符串 s 和一个正整数 k 。请你找出并返回一个长度为 n…

Python | Leetcode Python题解之第166题分数到小数

题目&#xff1a; 题解&#xff1a; class Solution:def fractionToDecimal(self, numerator: int, denominator: int) -> str:if numerator % denominator 0:return str(numerator // denominator)s []if (numerator < 0) ! (denominator < 0):s.append(-)# 整数部…

软件缺陷及JIRA工具

一、软件缺陷及跟踪流程 1&#xff0c;软件缺陷信息 案例 &#xff08;1&#xff09;缺陷报告的基本内容 缺陷的标题 预置条件 重现步骤 期望结果 实际结果 &#xff08;2&#xff09;软件缺陷的状态 新建 打开 修复 关闭 &#xff08;3&#xff09;软件缺陷的严重程度 …

JAVA医院绩效考核系统源码 功能特点:大型医院绩效考核系统源码

JAVA医院绩效考核系统源码 功能特点&#xff1a;大型医院绩效考核系统源码 医院绩效管理系统主要用于对科室和岗位的工作量、工作质量、服务质量进行全面考核&#xff0c;并对科室绩效工资和岗位绩效工资进行核算的系统。医院绩效管理系统开发主要用到的管理工具有RBRVS、DRGS…

云徙科技助力竹叶青实现用户精细化运营,拉动全渠道销售额增长

竹叶青茶以其别具一格的风味与深厚的历史底蕴&#xff0c;一直被誉为茶中瑰宝。历经千年的传承与创新&#xff0c;竹叶青不仅坚守着茶叶品质的极致追求&#xff0c;更在数字化的浪潮中&#xff0c;率先打破传统&#xff0c;以科技力量赋能品牌&#xff0c;成为茶行业的领军者。…

Python抓取高考网图片

Python抓取高考网图片 一、项目介绍二、完整代码一、项目介绍 本次采集的目标是高考网(http://www.gaokao.com/gkpic/)的图片,实现图片自动下载。高考网主页如下图: 爬取的流程包括寻找数据接口,发送请求,解析图片链接,向图片链接发送请求获取数据,最后保存数据。 二…

示例:WPF中在没有MouseDoubleClick的控件中如何识别双击

一、目的&#xff1a;由于MouseDoubleClick控件是在Control中实现&#xff0c;那么在底层控件如Grid中想要类似功能如何实现&#xff0c;这里通过MouseDown的事MouseButtonEventArgs参数去实现 二、实现 定义Grid并注册Grid的MouseDown事件 <Grid Background"Transpa…

GIT回滚

1. 使用 git revert git revert 命令会创建一个新的提交&#xff0c;这个提交会撤销指定提交的更改。这通常用于公共分支&#xff08;如 main 或 master&#xff09;&#xff0c;因为它不会重写历史。 git revert HEAD # 撤销最近的提交 # 或者指定一个特定的提交哈希值 …

MFC GDI绘制卡通人物

文章目录 主要代码完整visual studio工程下载主要代码 // DrawFrogView.cpp : implementation of the CDrawFrogView class //#include "stdafx.h" #include "DrawFrog.h"#include "DrawFrogDoc.h" #include "DrawFrogView.h"#includ…

MySQL的DML语句

文章目录 ☃️概述☃️DML☃️添加数据☃️更新和删除数据☃️DML的重要性 ☃️概述 MySQL 通用语法分类 ● DDL: 数据定义语言&#xff0c;用来 定义数据库对象&#xff08;数据库、表、字段&#xff09; ● DML: 数据操作语言&#xff0c;用来对数据库表中的数据进行增删改 …

【源码】人力资源管理系统hrm功能剖析及源码

eHR人力资源管理系统&#xff1a;功能强大的人力资源管理工具 随着企业规模的不断扩大和业务需求的多样化&#xff0c;传统的人力资源管理模式已无法满足现代企业的需求。eHR人力资源管理系统作为一种先进的管理工具&#xff0c;能够为企业提供高效、准确、实时的人力资源管理。…

鞋子分类数据集17399张69类别

数据集类型&#xff1a;图像分类用&#xff0c;不可用于目标检测无标注文件 数据集格式&#xff1a;仅仅包含jpg图片&#xff0c;每个类别文件夹下面存放着对应图片 图片数量(jpg文件个数)&#xff1a;17399 分类类别数&#xff1a;69 类别名称:[“0”,“1”,“2”,“3”,“4”…

使用asyncua模块的subscribe_data_change监控opcua的Server节点数据变化

报错信息如下&#xff1b; ERROR:asyncua.common.subscription:DataChange subscription created but handler has no datachange_notification method 上述报错原因在于创建监控句柄SubscriptionHandler类时&#xff0c;节点数据变化的函数名称有问题&#xff0c;不是默认的da…

复盘最近的面试

这个礼拜一直在面试&#xff0c;想着看看能否拿到不错的offer前去实习&#xff0c;从周一到周四&#xff0c;面了将近10家&#xff0c;特整理此份面经&#xff0c;希望对秋招的各位有所帮助 A公司 一面 面试官人很好&#xff0c;我回答的时候不会他会笑笑然后提醒我 自我介绍~…

Docker(三)-Docker常用命令

1.run run命令执行流程:2.帮助启动类命令 2.1 启动docker systemctl start docker2.2 停止docker systemctl stop docker2.3 重启docker systemctl restart docker2.4查看docker状态 systemctl status docker2.5开机启动 systemctl enable docker2.6查看docker概要信息 …

Spring MVC拦截器、文件上传和全局异常处理

目录 1.拦截器1.1.什么是拦截器&#xff1f;1.2 拦截器的API1.3 拦截器的执行顺序1.5 自定义拦截器1.5 登录拦截器案例 2.文件上传2.1 添加依赖2.2 配置文件上传解析器2.3 编写控制器2.4 编写jsp页面2.5 注意事项 3.全局异常处理器3.1 异常处理思路3.2 创建异常处理器3.3 编写异…

区块链中nonce是什么,什么作用

目录 区块链中nonce是什么,什么作用 区块链中nonce是什么,什么作用 Nonce在以太坊中是一个用于确保交易顺序性和唯一性的重要参数。以下是对Nonce的详细解释: 定义 Nonce是一个scalar值,它等于从该地址发送的交易数量,或在具有关联代码的账户的情况下,由该账户创建的合…