78、Points2NeRF: Generating Neural Radiance Fields from 3D point cloud

news2024/11/26 7:43:23

简介

github:https://github.com/gmum/points2nerf
由于点云的大小和复杂性,处理这些点云具有挑战性,现有的方法通过将网格拟合到点云并渲染来解决这个问题,这种方法导致结果可视化的保真度降低,并遗漏了在计算机图形应用中至关重要的对象的颜色信息

论文利用超网络范式,训练模型使用相关颜色值获取3D点云,并返回从输入的2D图像重建3D对象的NeRF网络的权重,提供了有效的3D对象表示,并提供了一些优于现有方法的优点,包括调节nerf的能力和改进的泛化超出训练中看到的对象
在这里插入图片描述
采用具有相关颜色值的 3D 点云,并返回 NeRF 网络的权重,该网络以高保真度和连贯着色重建 3D 对象。

贡献点:

  • 提出了一种名为Points2NeRF的新方法,该方法将超网络框架适应于NeRF架构,从而允许从3D点云生成辐射场
  • 支持条件化nerf,这反过来又允许将模型推广到训练中看到的3D对象之外。
  • 提供了一个生成模型,可以以连续的方式将3D对象表示为NeRF参数,从而实现对象空间内的插值。

实现流程

在Points2NeRF超网络是一种用于3D点云的自动编码器类型架构。构建一个自动编码器,它将输入3D点云并生成目标网络的权重- NeRF

超网络被定义为为解决特定任务的独立目标网络生成权重的神经模型,通过设计具有更少参数的超网络来减少可训练参数的数量

X = { X i } i = 1 , . . . , n = { ( x i , y i , z i , r i , g i , b i ) } i = 1 , . . . , n X = \{X_i\}_{i=1,...,n} = \{(x_i, y_i, z_i, r_i, g_i, b_i)\}_{i=1,...,n} X={Xi}i=1,...,n={(xi,yi,zi,ri,gi,bi)}i=1,...,n 是包含颜色点云的给定数据集,前三个元素编码位置,后三个编码RGB颜色。

自编码器的基本目标是通过一个典型的,但不一定是低维潜在空间 Z ⊆ R D Z⊆R^D ZRD传输数据,同时最小化重构误差。寻找一个编码器 E : X → Z E: X→Z E:XZ 和解码器 D : Z → X D: Z→X D:ZX 函数,最小化了 X i X_i Xi 与其重建 D ( ε X i ) D(\varepsilon X_i) D(εXi)之间的重建误差。为此,使用一个基于PointNet架构的排列不变编码器和一个改进的解码器来产生权重而不是 row points,对于点云表示,关键的一步是定义合适的重构损失,可以在自动编码框架中使用。这里,使用了NeRF体渲染函数
在这里插入图片描述
在这里插入图片描述
NeRF的架构相对简单,但使用了很多权重。因此,Hypernetwork必须生成许多参数。因此使用分块机制。在实践中,通过想要生成的层的索引来调节超网络来生成单个层的权重

Points2NeRF

Points2NeRF由三部分组成:hypernetwork, autoencoder and NeRF

将3D对象的参数化为函数 F Θ : R 5 → R 4 F_Θ: R^5→R^4 FΘ:R5R4,给出位置(x, y, z)和观看方向(θ, ψ),返回颜色 c = (r, g, b)和体积密度 σ,不生成3D对象,而是想生成许多神经网络(每个对象都有不同的神经网络)来建模

使用超网络 H Φ : R 3 ⊃ X → Θ H_Φ: R^3⊃X→Θ HΦ:R3XΘ,对于点云 X ⊂ R 3 X \subset R^3 XR3,它将权重 Θ 返回到对应的目标网络(NeRF) F Θ F_Θ FΘ
在这里插入图片描述
取一个输入点云 X ⊂ R 6 X\subset R^6 XR6 (前三个元素编码位置,后三个编码RGB颜色),并将其传递给 H Φ H_Φ HΦ。因此,超网络将权重Θ 返回到目标网络 F Θ F_Θ FΘ。接下来,将2D图像集与目标网络 F Θ F_Θ FΘ生成的渲染图进行比较.

作为一个超网络,使用一个基于PointNet架构的置换不变编码器和一个改进的解码器来产生权重而不是原始点。

H Φ H_Φ HΦ 的架构包括:编码器(E)是一个类似PointNet的网络,将数据传输到低维潜在空间 Z ∈ R D Z∈R^D ZRD;解码器(D)(全连接网络),将潜在空间传输到目标网络的权重向量

超网络 H Φ ( X ) H_Φ(X) HΦ(X) 表示的自编码器结构 D ( ε X ) D(\varepsilon X) D(εX)

Mesh representation

利用体积密度 σ,得到体素表示。可以从网格(x, y, z)中预测点的内/外类别,然后可以通过等面提取方法(如Marching Cubes)渲染对象。当有网格表示时,可以预测所有顶点的颜色。通过在网格的顶点中使用颜色,可以为图形的面添加颜色
在这里插入图片描述

Generative model

基于自动编码器的生成模型是一种经典的自动编码器模型,其代价函数经过了修改,强制模型具有生成性,即确保传输到潜在空间的数据来自先验分布(典型的高斯分布)。因此,为了构建生成式自动编码器模型,将其代价函数添加到测量给定样本与先验分布的距离。

变分自动编码器(VAE)是能够通过应用变分推理来学习近似数据分布的生成模型。确保传输到潜伏空间Z的数据按标准法向密度分布。将与标准多元正态密度的距离相加。通过将Kullback-Leibler散度添加到成本函数中来获得生成模型,将其冷却为生成Point2nerf。
在这里插入图片描述
在这里插入图片描述

Voxel representation

NeRF网络是超网络的输出,它可以描述三维空间中给定点的占用情况。利用移动立方体算法可以对给定的点云进行网格重构。

为了将重建网格与原始网格进行比较,使用倒角距离(Chamfer Distance)定义为两个点 P 1 P_1 P1 P 2 P_2 P2 云之间的距离,这样:
在这里插入图片描述
此外,在两个点云之间使用 F-Score 度量,其中一些阈值 t 定义为:
在这里插入图片描述
对于F-Score和倒角距离的计算,从原始网格和重建网格中随机采样3000点,使用阈值 t = 0.01来寻找F-Score的匹配点。

Limitations

Points2NeRF的主要限制是构建和存储NeRF架构所需的计算成本。在实际应用中,超网络必须产生大量的输出权值,因此训练时间占用了大量的时间。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HashTable HashMap ConcurrentHashMap 的介绍以及区别

目录 🐇今日良言:投资自己才是最好的投资 🐉一.HashMap. 🐕二.HashTable 🐍三.ConcurrentHashMap 🐂四.三者的区别 🐇今日良言:投资自己才是最好的投资 时隔四十多天,今天博主要更新了. 后续内容也是精…

[机器学习]损失函数DLC

一、损失函数的概念 损失函数(Loss Function)是用于评估预测结果和真实结果之间差距的一个公式,为模型优化指明方向。在模型优化过程中一般表述为:或 与针对整个训练集的代价函数(Cost Function)不同,损失函数通常仅针对单个训练样本。可以归…

RK3568平台开发系列讲解(驱动基础篇)Linux 内核源码介绍

🚀返回专栏总目录 文章目录 一、目录树概览二、快速确定主板关联代码2.1、基础代码2.2、驱动代码沉淀、分享、成长,让自己和他人都能有所收获!😄 📢进行嵌入式 Linux 产品开发,往往需要对内核进行裁剪和定制,以满足嵌入式产品的功能和性能需求。 一、目录树概览 解压…

Python---学生管理系统(pyinstaller)

专栏:python 个人主页:HaiFan. 专栏简介:本专栏主要更新一些python的基础知识,也会实现一些小游戏和通讯录,学时管理系统之类的,有兴趣的朋友可以关注一下。 学生管理系统前言创建入口函数新增学生insert展…

行为型模式-迭代器模式

1.概述 定义:提供一个对象来顺序访问聚合对象中的一系列数据,而不暴露聚合对象的内部表示。 2.结构 迭代器模式主要包含以下角色: 抽象聚合(Aggregate)角色:定义存储、添加、删除聚合元素以及创建迭代器…

实战案例:Python批量识别银行卡号码并且写入Excel,初学者也可以轻松使用~

大家好,这里是程序员晚枫, 今天我们继续学习Python自动化办公:每次有新员工入职,都要收集大量的工资卡信息,并且生成Excel文档,能不能用Python准确、快速地解决呢? 今天我们就来学习一下&…

【CCNA | 网络模拟器CPT系列】Cisco Packet Tracer 8.2.0 的安装 Ⅰ

目录1. 下载 Cisco Packet Tracer2. 安装 Cisco Packet Tracer(1)许可协议界面(2)选择安装目录(3)选择开始菜单文件夹(4)选择附加任务(5)确认设置选择&#x…

K8S环境安装

K8S环境安装 下面是环境的主机名和IP 主机名ipk8smaster192.168.68.150k8snode1192.168.68.151k8snode2192.168.68.152 1、安装docker 配置yum源 sudo yum install -y yum-utils sudo yum-config-manager \ --add-repo \ http://mirrors.aliyun.com/docker-ce/linux/centos/d…

不受支持的 Mac 上的通用控制(现已支持 macOS Ventura)

现已支持 macOS Ventura 请访问原文链接:不受支持的 Mac 上的通用控制,查看最新版。原创作品,转载请保留出处。 作者主页:www.sysin.org 本文为 在不受支持的 Mac 上安装 macOS Ventura、Monterey、Big Sur (OpenCore Legacy Pa…

【Effective_Objective-C_5内存管理】

文章目录前言29.理解引用计数引用计数的工作原理关闭ARC模式引用计数的增减理解一下引用计数存在属性存取方法中的内存管理自动释放池保留环要点30.以ARC简化引用计数使用ARC时必须遵循的方法和命名规则-变量的内存管理语法意义ARC如何清理实例变量覆写内存管理的方法要点31.在…

eclipse调试没反应,没有Debug窗口弹出

用eclipse调试,点击“Run”“Debug as”没有反应,debug视图没有弹出一、打开Preferences点击“Windows”,点击“Preferences”,找到“Run/Debug”下面的“Perspectives”,我的打开是这个样子,要修改一些选项…

【JavaSE成神之路】一文搞定static关键字

哈喽,我是兔哥呀,今天就让我们继续这个JavaSE成神之路! 这一节啊,咱们要学习的内容是Java的static关键字。 1. 我们是怎么使用static关键字的 我们其实一直在用static关键字,比如main方法: public stati…

CSS样式基础内容3

目录 CSS三大特性 层叠性 继承性 行高的继承性 优先级 权重的叠加 CSS盒子模型 border边框 边框的复合写法 表格的细线边框 边框会影响盒子的实际大小 内边距 padding会影响盒子实际大小 网页导航案例 外边距 外边距合并 相邻块元素垂直外边距的合并 清除内外…

go语言实战(猜数字+在线词典+服务器)

go语言实战案例1.猜数字游戏2. 词典2.1 request2.2 response2.3 修改写死的单词为用户可写的word2.4 细节优化2.4.1 防止403、404等状态码2.4.2 增强输出可读性2.5 在线词典的最终代码3.SOCKS5代理服务器3.1 tcp echo server3.2 验证3.3 请求3.4 完整代理实现作业1.修改第一个猜…

cadence SPB17.4 S032 - allegro出的槽孔文件不用做任何处理就可以交给板厂生产

文章目录cadence SPB17.4 S032 - allegro出的槽孔文件不用做任何处理就可以交给板厂生产前言备注补充 - CAM350V14.6 - 在win10 22H2下不能正常用ENDcadence SPB17.4 S032 - allegro出的槽孔文件不用做任何处理就可以交给板厂生产 前言 以前交给板厂gerber文件时, 有一次, 板…

Pandas学习笔记-Day1安装与文件读取

Day1 安装与文件读取了解与安装什么是pandas?安装pandas?pandas数据读取读取mysql数据库了解与安装 什么是pandas? 处理数据一般分为几个阶段:数据整理与清洗、数据分析与建模、数据可视化与制表,Pandas 是处理数据的理想工具。 安装pandas? 如果…

自动驾驶感知——图像数据处理数学方法

文章目录1. 二值化操作2. 卷积操作3. 均值滤波4. 高斯滤波5. 图像梯度算子5.1 Prewitt梯度算子5.2 Sobel梯度算子5.3 Laplace二阶梯度6. 边缘特征点提取算子7. 基于规则的特征点提取8. 最小二乘拟合方法9. RANSAC曲线拟合10. Hough Transform 霍夫变换11. 基于学习的特征点提取…

图论(4)Floyd算法

一、概述 floyd算法主要作用有:1.找最短路 2.求传递闭包 3.找最小环 4.求出恰好经过k条边的最短路 本文章将介绍floyd求最短路的证明以及以上四个作用的实践。 二、floyd算法求最短路的证明 之前就多次提到过图论与dp问题的联系,floyd算法可以…

Go依赖管理

"做讨厌潮汐的稚童,祈祷月球失踪。"一、背景我们写一个程序,例如输出hello world 或者 一个猜数字游戏,这些用到的单体函数接口,只需要依赖一些原生的SDK即可。但是,面对复杂的实际问题、工程,仅…

使用构建工具创建Vue项目

使用构建工具创建Vue项目一、使用vue-cli脚手架构建vue项目创建步骤:二、使用 Vite构建vue项目创建步骤:一、使用vue-cli脚手架构建vue项目 Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统,提供: 1 通过 vue/cli 实现的交互式…