Point-Nerf 理论笔记和理解

文章目录

  • 什么是point nerf 和Nerf 有什么区别
  • Point Nerf 核心结构有哪些?
    • 什么是point-based radiance field?
  • 点云位置以及置信度是怎么来
  • Point pruning 和 Point Growing

什么是point nerf 和Nerf 有什么区别

基本的nerf 是通过过拟合MLP来完成任意视角场景的重建,这有什么问题呢? 这样会导致模型的训练很慢且完全没有泛化能力。训练出来模型只能用于一个场景的重建。 且Nerf的输入只能是 照片以及相机位姿。但是point nerf 可以使用点云作为输入并且考虑到了每一个点对应的2D features。这个有什么好处呢。他可以省去大量sample的过程。因为在原始的nerf中,我们是不知道场景到底在3D空间中的什么地方,所以我们需要使用对光线进行大量的采样,来大致理解3D场景的位置,而point nerf 因为可以使用点云作为输入,点云中的每一个点都可以理解成场景的一部分,所以我们可以对这些点周围的点进行采样。point nerf 使用相对位置计算特征比起nerf完全使用绝对位置来说,繁华能力有所提高。

Point Nerf 核心结构有哪些?

什么是point-based radiance field?

和nerf相似的点是他们的目的都是要去计算 view-dependent volume density。Nerf 直接使用mlp 进行硬拟合,但是point nerf 使用了neural point来计算这个东西。 neural point 包含三个东西,点的空间位置,点对应的特征,以及它的置信度。 特征是怎么来的。因为知道相机位姿,所以我们可以把3D 点投射到2D feature plane去然后取得每一个点的特征,这就是pixel-aligned features。置信度代表着什么? 置信度表示的是当前这个点在场景表面的可能性有多大。

point-based radiance field怎么获得? 给到任意的一个3D点的位置,我们在这个点的R半径范围内,进行K最近邻采样,然后把这K个点的位置,view direction, 2D features, confidence 一起输入到 point nerf 中去获得 volume density 以及 radiance。 简单来说就是,先处理每一个点,然后再把每一个点相邻的信息整合起来。
在这里插入图片描述
为了提高泛化能力,每一个点的特征是需要重新根据相对位置来计算的。之前的点特征是使用的绝对位置,没有 point translation invariant。具体就是使用另一个MLP把特征和相对位置一起做计算即可。在这里插入图片描述
然后需要使用点与shading location的距离来对这些点进行权重的计算,如果说一个点离shading location特别远,那么它对于重建的贡献也就很小,所以它的权重相对就比较低。volume density 和 radiance的计算首先都要使用方法来对点进行权重计算。
在这里插入图片描述

点云位置以及置信度是怎么来

点云的位置其实是通过深度的unprojection得到的。那么深度是怎么来的呢? 使用MVSnet或者类似的网络。具体怎么做?深度可以表示成物体离相机的距离,或者是两张照片的视差。MVSnet 使用两张或多张相邻的照片,用2D CNN来提取每一张照片的2D特征, 然后和传统MVS算法一样,使用plane sweeping 的方式,将相邻照片的特征图sweep到 reference image 的 plane上面。这样就可以比较两个feature maps之间到底差了多少,这种差值就是cost volume,它已经包括了视差信息,所以用这个cost volume就可以预测深度信息。文中是用的depth probablity volume,用于表示point confidence。这个过程可以表示成:
在这里插入图片描述

Point pruning 和 Point Growing

这两个方法主要是用于点的处理。前者会根据点的权重来筛选点,也就是说如果点的距离离场景的距离特别的远,那么对于场景的贡献就会变低。这时候就可以将这个点删去,来完成剪枝。此外输入的点云有可能会出现不完整的情况,这个时候就需要将点云补全。通过一条光线上点的可见度来判断这个位置需不需要增加点。判断的条件就是一个点确实是在surface 周边的但是离其他的点很远。

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

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

相关文章

c#核心学习1

一、面向对象的概念 1.面向过程编程 2.面向对象编程 3.为什么要学习面向对象编程 提高代码复用率、提高开发效率、提高程序可拓展性、清晰的逻辑关系 4.如何学习 二、面向对象--封装 1)类和对象 1.什么是类 2.类申明在哪里 类一般声明在namespace语句块中 3.…

摄像头应用测试

作者简介: 一个平凡而乐于分享的小比特,中南民族大学通信工程专业研究生在读,研究方向无线联邦学习 擅长领域:驱动开发,嵌入式软件开发,BSP开发 作者主页:一个平凡而乐于分享的小比特的个人主页…

【操作系统】发展与分类(手工操作、批处理、分时操作、实时操作)

2.操作系统发展与分类 思维导图 手工操作阶段(此阶段无操作系统) 需要人工干预 缺点: 1.用户独占全机,资源利用率低; 2.CPU等待手工操作,CPU利用不充分。 批处理阶段(操作系统开始出现&#x…

【JavaScript】初识 Promise

出现原由 先看一个例子: 模拟发送表白信息,如果一个失败,那么再给其他人发送,这时就相当于在失败回调函数中套了一层回调;如果后续还有多个表白对象,那么将一层一层地嵌套下去,也就是回调地狱…

Generative Action Description Prompts for Skeleton-based Action Recognition

标题:基于骨架的动作识别的生成动作描述提示 源文链接:https://openaccess.thecvf.com/content/ICCV2023/papers/Xiang_Generative_Action_Description_Prompts_for_Skeleton-based_Action_Recognition_ICCV_2023_paper.pdfhttps://openaccess.thecvf.c…

正运动控制器:视觉纠偏和找孔

一、用户主界面CCD参数设置 通过主界面CCD参数设置,学习如何操作计算相机中心与电批中心的偏移量,以及相机标定的功能。 1、相机中心与电批中心的偏移量计算 1.1、在用户主界面点击CCD参数按钮,进入CCD设置界面。 主界面 CCD参数设置界面 1…

显存碎片化与CUDA OOM解决

目录 一.显存碎片化与CUDA OOM解决 1.查看显卡内存容量 2.显存碎片化 (1)如何理解显存中“已分配”和“未分配”的内存块? (2)碎片化形成的原因? (3)如何减轻显存碎片化? 3.实…

空间注意力机制

第一步是沿着通道维度进行最大池化和平均池化,比如下面3*3的特征图,有3个通道。 第二步新特征图进行拼接并经过卷积调整通道数 第三步经过Sigmoid函数后乘到输入上 代码: class SpatialAttention(layers.Layer):def __init__(self):super(S…

Hibernate

主流ORM框架Object Relation Mapping对象关系映射,将面向对象映射成面向关系。 如何使用 1、导入相关依赖 2、创建Hibernate配置文件 3、创建实体类 4、创建实体类-关系映射文件 5、调用Hibernate API完成操作 具体操作 1、创建 Maven工程,在pom.xml中导…

Milvus Cloud 非结构化数据平台

从技术面来看,向量数据库底座自然而然向外延伸的产品包含: 1)向量提取,从非结构化数据中提取向量,这是向量数据库上游的工作,十分重要; 2)模型选择,选择正确的模型,能够更精准、更高质量地提取向量; 3)映射管理,即管理数据的本体和数据的语义层之间的映射,在…

【Linux杂货铺】进程通信

目录 🌈 前言🌈 📁 通信概念 📁 通信发展阶段 📁 通信方式 📁 管道(匿名管道) 📂 接口 ​编辑📂 使用fork来共享通道 📂 管道读写规则 &…

01.并发编程简介

1 什么是并发编程 所谓并发编程是指在一台处理器上“同时”处理多个任务。并发是在同一实体上的多个事件。多个事件在同一时间间隔发生。 2 为什么我们要学习并发编程? 最直白的原因就是因为面试需要,大厂的 Java 岗的并发编程能力属于标配。 而在非大厂…

【Python特征工程系列】一文教你使用PCA进行特征分析与降维(案例+源码)

这是我的第287篇原创文章。 一、引言 主成分分析(Principal Component Analysis, PCA)是一种常用的降维技术,它通过线性变换将原始特征转换为一组线性不相关的新特征,称为主成分,以便更好地表达数据的方差。 在特征重要…

【数据结构】二叉树的认识与实现

目录 二叉树的概念: 二叉树的应用与实现: 二叉树实现接口: 通过前序遍历的数组"ABD##E#H##CF##G##"构建二叉树 二叉树节点个数​编辑 二叉树叶子节点个数 二叉树第k层节点个数 二叉树查找值为x的节点​编辑 二叉树前序遍…

全网讲的最详细的Docker镜像分层存储原理

先说结论,容器镜像分层存储图示 欢迎关注 实验环境准备 当前实验docker版本24.0.7如下,当前docker版本使用overlay2机制存储镜像 Client: Docker Engine - CommunityVersion: 24.0.7API version: 1.43Go version: go1.20.10…

Redis第18讲——Redis和Redission实现延迟消息

即使不是做电商业务的同学,也一定知道订单超时关闭这种业务场景,这个场景大致就是用户下单后,如果在一定时间内未支付(比如15分钟、半小时),那么系统就会把这笔订单给关闭掉。这个功能实现的方式有很多种&a…

《Ai学习笔记》-模型集成部署

后续大多数模型提升速度和精度: 提升速度: -知识蒸馏,以distillBert和tinyBert为代表 -神经网络优化技巧。prune来剪裁多余的网络节点,混合精度(fp32和fp26混合来降低计算精度从从而实现速度的提升) 提…

【Week-R1】RNN实现心脏病预测,基于tensorflow框架

文章目录 一、什么是RNN?二、准备环境和数据2.1 导入数据 三、构建模型四、训练和预测五、其他(1)sklearn模块导入报错:ModuleNotFoundError: No module named sklearn(2)优化器改为SGD,accurac…

SVM兵王问题

1.流程 前面六个就是棋子的位置,draw就是逼和,后面的数字six就代表,白棋最少用六步就能将死对方。然后呢,可以看一下最后一个有几种情况: 2.交叉测试 leave one out: 留一个样本作测试集,其余…

基于51单片机的超声波液位测量与控制系统

基于51单片机液位控制器 (仿真+程序+原理图PCB+设计报告) 功能介绍 具体功能: 1.使用HC-SR04测量液位,LCD1602显示; 2.当水位高于设定上限的时候,对应声光报警报警&am…