DReg-NeRF: Deep Registration for Neural Radiance Fields论文解读

news2024/11/28 15:45:11

目录

一、导言

二、NeRF2NeRF

三、相关工作

1、神经辐射场

2、点云配准

3、NeRF配准

四、DReg-NeRF

1、NeRF神经辐射场查询

2、特征提取

3、transformer

4、Decoder

五、损失函数


一、导言

        该论文来自于ICCV2023,主要提到一种DReg-NeRF的配准方法,这也是第一个使用神经辐射场作为输入且没有任何人工标注或初始化的配准模型。(第一个使用NeRF做配准的是NeRF2NeRF)

(1)与以前需要人工标注关键点不同,可以在无人工标注或初始化情况下配准NeRF。

(2)通过自注意力和交叉注意力层的Transformer来学习NeRF之间的关系,而不是依赖传统的方法。

(3)创造了一个NeRF数据集,用于配准多个NeRF,该数据集通过渲染Objaverse数据集中1700多个3D物体而得到的。(伏笔)

二、NeRF2NeRF

        在NeRF2NeRF中第一次提到使用NeRF来进行点云配准,通过引入表面场作为几何表示,而不是NeRF经典的五个参数作为几何表示。通过将NeRF配准问题转换为一个稳健的优化问题,对齐两个场景中的表面场,使配准对照明差异不敏感。

        表面场:表示一个点在空间中位于物体表面的最大表面击中概率,通过计算从相机到该点的光线上的投射概率和该点出的密度概率的乘积定义的。

        表面场计算公式如下,其中o是相机位置,S(t|r)是沿光线r到达位置t处的表面击中概率。

                                      S(x)=max_{o \in O}S(||o-x|| \ |(o,\frac{o-x}{||o-x||}))

        由于在不同的场景中,预训练的NeRF模型可以产生不同的密度函数,从而导致表面场的差异,而通过二值化处理表面场,可以提高表面场的鲁棒性和可靠性。

        另外NeRF2NeRF引入基于Metropolis-Hastings采样方法,用于在神经辐射场优化中提高采样效率,避免对整个空间进行密集采样,而是集中采样在相关区域,大大提高优化效率。

三、相关工作

1、神经辐射场

        对于近期NeRF相关变体如下:

(1)Vanilla NeRF:Vanilla就是基本的意思,代表NeRF那篇工作。见上一篇博客。

(2)NSVF(Neural Sparse Voxel Fields):基于稀疏体素的NeRF的变体,可以有效表示场景的几何,且渲染速度更快。

(3)Plenoctree:基于多分辨率哈希编码的NeRF变体,可以实现更快的推理速度和更小的内存占用,使用多分辨率哈希表来存储场景的几何和辐射信息。

(4)Instant-NGP:同样的隐式编码体素特征到一个多分辨率哈希网格中。

(5)Block-NeRF:可扩展的NeRF变体,处理大型场景,将场景划分为多个块,来独立训练每一个NeRF模型。

(5)Mega-NeRF:可扩展的NeRF变体,处理更大型的场景,使用分层的NeRF模型,可以在不同分辨率下渲染场景,从而提高效率和可扩展性。

2、点云配准

        对于该论文,我们还借助以往的注意力机制,但不依赖于预计算的重叠标签。

3、NeRF配准

        NeRF2NeRF是第一个做NeRF的配准工作的,但是依赖于人造的关键点。

        ZeroNeRF可以不通过重叠来配准NeRF,但也存在需要初始化的配准。

        相比与以往的该工作,该论文考虑不适用人工交互的方式,来配准NeRF块。

四、DReg-NeRF

        DReg-NeRF网络输入源NeRF模型和目标NeRF模型,首先为每个NeRF模型训练多个NeRF块,并将其与一个占用体素网格关联,之后这两个体素网格输入到一个3DFPN中得到特征点云,接下来通过一个Transformer块,学习两个特征的关系,最后用解码器(单层注意力层)得到两者的对应关系和置信度分数,通过加权Kabsch-Umeyama算法,求解相对变换。

对于NeRF的介绍,请参考: NeRF: Representing Scenes asNeural Radiance Fields for View Synthesis 论文解读

1、NeRF神经辐射场查询

        首先从NeRF中建立一个分辨率为[x_{res},y_{res},z_{res}]的三维体素网格,并获取体素中心三维坐标为\left \{ \mathbf{X} \right \}

        定义每一个网格的分辨率为128^3,并定义中心为[0,0,0],之后从占用网格中获取一个二进制占用掩码M_{occ}通过光线追踪判断是否这个网格单元被占用,如果是空白的区域则赋值0,被占用则赋值1。

        由于存在噪声,定义密度掩码M_{df}M_{df}=\sigma > \sigma_t,其中\sigma_t为密度阈值,一般为0.7。

        完整的掩码定义:M=M_{occ} \cap M_{df}

        另外,计算体素颜色C和不透明度α,可以从NeRF定义得到。

        对于3D FPN的输入有体素网格[X,C,\alpha](共7维)和掩码M(1维)。

2、特征提取

        由于将NeRF转换成体素网格形式,所以论文中采用3D结构的backbone来进行特征提取。相比于以往的FPN结构,只采用最后一层输出特征G_f,并使用KPConv中提出的球形降采样解决体素特征网格过大的问题,得到下采样后的体素特征网格\hat{X}

3、transformer

        之后将下采样的体素特征网格输入到transformer中,其中自注意力层中,Q=K=V,使得权重一致。

        Transformer中仍然使用自注意力机制和交叉注意力机制结构。

4、Decoder

        解码器使用单头注意力机制来预测源点云和目标点云的交互点位置和置信分数。

        之后通过Kabsch-Umeyama算法,来预测姿态。

五、损失函数

        损失函数包括置信度损失、表面场损失和对应关系损失三部分。

参考文献:https://arxiv.org/pdf/2308.09386

参考代码:DReg-NeRF/conerf/base at main · AIBluefisher/DReg-NeRF · GitHub

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

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

相关文章

SQL 数据查询

文章目录 3.4.1 单表查询定义特点单表无条件查询单表带条件查询对查询结果进行排序限制查询结果数量 3.4.2 分组查询定义特点:聚集函数GROUP BY短语HAVING子句分组查询小结 3.4.3 连接查询定义特点:等值连接与非等值连接查询自然连接(内连接&…

全局安装react

1、首先安装react脚手架 npm install -g create-react-app2、创建react项目 create-react-app my-app3、 PS D:\桌面\papers\subject> create-react-app my-react-appCreating a new React app in D:\桌面\papers\subject\my-react-app.Installing packages. This might …

基于vue框架的超市订单管理系统16uob(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。

系统程序文件列表 项目功能:员工,商品分类,商品信息,供货商,入库订单,销售订单,货架信息,盈利信息 开题报告内容 基于Vue框架的超市订单管理系统开题报告 一、研究背景与意义 随着信息技术的飞速发展和电子商务的普及,传统超市管理模式正面临前所未有…

wsl2 安装qt5

sudo apt-get install qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools qtcreator -ysudo apt-get install build-essential libfontconfig1 mesa-common-dev -y "qt5-default"从Ubuntu 21.04 存储库中就缺少了该软件包,后续会不会添加暂时未知。 在…

SpringBoot日志使用:Slf4j与Logback

步骤一&#xff1a;引入lombok即可&#xff0c;lombok自带Slf4j注解&#xff08;网上说不用引入api的依赖&#xff0c;若报错可添加&#xff09; <dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version&…

数据访问:JPA

文章目录 JPA的由来JPA是什么Spring Data JPA快速上手 JPA的由来 ORM框架能够将Java对象映射到关系型数据库中&#xff0c;能够直接持久化复杂的 Java对象。ORM框架的出现&#xff0c;可以让开发者从数据库编程中解脱出来&#xff0c;把更多的精力放在业务模型与业务逻辑上。目…

Open3D 计算投影的点云的尺寸

目录 一、概述 1.1实现步骤 1.2应用场景 二、代码实现 三、实现效果 3.1原始点云 3.2投影后点云 Open3D点云算法汇总及实战案例汇总的目录地址&#xff1a; Open3D点云算法与点云深度学习案例汇总&#xff08;长期更新&#xff09;-CSDN博客 一、概述 在 Open3D 中&…

electron-vite打包出错

问题&#xff1a;1 electron-vite 安装&#xff0c; 打包下载资源失败&#xff0c;设置国内镜像 由于electron默认打包会从github上下载相关二进制包&#xff0c;众所周知&#xff0c;国内GitHub访问是相当慢的&#xff0c;所以经常会出现下载失败导致打包不成功&#xff0c;…

中兴-ZSRV2路由器-任意文件读取

中兴-ZSRV2路由器-任意文件读取 文章目录 中兴-ZSRV2路由器-任意文件读取免责声明漏洞描述搜索语法漏洞复现修复建议 免责声明 文章中涉及的程序(方法)可能带有攻击性&#xff0c;仅供安全研究与教学之用&#xff0c;读者将其信息做其他用途&#xff0c;由用户承担全部法律及连…

upload-labs闯关攻略

pass-1 提前准备好的一个PHP木马&#xff0c;然后将后缀名改为jpg上传 然后在上传的过程中利用抓包&#xff0c;将抓取到的包里面的后缀jpg改为php如图所示&#xff0c;然后放行 接着我们去访问上传的图片信息&#xff0c;如下图所示就为成功 pass-2 提前准备好的一个PHP木马…

线程池相关知识点

线程池是什么相信大家都是知道的&#xff0c;所以这里就不做解释了&#xff0c;直接看相关知识点吧。 初始化线程池方法 继承ThreadPool 实现Runnable 实现Callable 接口 FutureTask &#xff08;可以拿到返回结果&#xff0c;可以处理异常&#xff09; 核心参数 corePoo…

[米联客-XILINX-H3_CZ08_7100] FPGA程序设计基础实验连载-23 VTC视频时序控制器设计

软件版本&#xff1a;VIVADO2021.1 操作系统&#xff1a;WIN10 64bit 硬件平台&#xff1a;适用 XILINX A7/K7/Z7/ZU/KU 系列 FPGA 实验平台&#xff1a;米联客-MLK-H3-CZ08-7100开发板 板卡获取平台&#xff1a;https://milianke.tmall.com/ 登录“米联客”FPGA社区 http…

Javascript LeeCode选题(汉诺塔求解)

LeeCode选题 汉诺塔递归求解move移动函数hanoi函数main方法测试代码&#xff1a;代码实现 汉诺塔递归求解 汉诺塔介绍&#xff1a; 汉诺塔的的图形&#xff08;从上到下1&#xff0c;2&#xff0c;3个&#xff09;实现&#xff1a; 这里我们可以看到因为必须要将第n个移动到…

数据结构与算法 第7天(树和森林)

树 树的存储结构 双亲表示法 找双亲容易&#xff0c;找孩子不容易 孩子链表法 把每个结点的孩子节点排列起来&#xff0c;看成一个线性表&#xff0c;用单链表存 找孩子容易&#xff0c;找双亲难 带双亲孩子链表法 给孩子链表加一个参数&#xff0c;存双亲的下标 孩子兄…

系统思考—盲点

突‮盲破‬点&#xff0c;解‮合锁‬作潜能——JSTO 的‮能高‬碰撞&#xff01; 在今天的JSTO会议中&#xff0c;我们在Check In环‮分节‬享了近1-2周‮实的‬践和反思。这‮环个‬节不仅‮助帮‬大家‮享共‬了更多的‮息信‬和资源&#xff0c;还‮效有‬促进了彼‮间此‬…

jenv 一款macos下的开源JAVA多版本环境安装管理切换工具

一个用于macos/linux下的多版本JAVA环境管理工具 -- jenv, 这款工具和 pyenv 类似,都是基于shell脚本开发的. 可以方便的管理 多个java环境版本. jenv安装 git clone https://gitee.com/tekintian/jenv.git ~/.jenv jenv环境配置 将下面的代码加入都你的 ~/.bash_profil…

堆垛机知识介绍:附图

导语 大家好&#xff0c;我是社长&#xff0c;老K。专注分享智能制造和智能仓储物流等内容。 完整版文件和更多学习资料&#xff0c;请球友到知识星球【智能仓储物流技术研习社】自行下载。 这份文件是关于堆垛机的介绍&#xff0c;内容包括堆垛机的概念、分类、工作原理、结构…

Vue(九) 全局事件总线、Todo案例应用全局事件总线、消息订阅与发布、Todo案例应用消息订阅、编辑Item、$nextTick

文章目录 一、全局事件总线 (GlobalEventBus)1. 总线前言2. 安装全局事件总线3. 使用总线事件4. 解绑总线事件 二、Todo案例应用全局事件总线三、消息订阅与发布1. 前言2. 使用步骤 四、Todo案例应用消息订阅五、Todo案例编辑Item六、$nextTick修改后的Todo完整代码 一、全局事…

【负载均衡】LoadBalance场景演示

服务端⾼并发分布式结构演进之路-CSDN博客文章浏览阅读976次&#xff0c;点赞11次&#xff0c;收藏9次。在进行技术学习过程中&#xff0c;由于大部分读者没有经历过一些中大型系统的实际经验&#xff0c;导致无法从服务端⾼并发分布式结构演进之路-----在进行技术学习过程中&a…

低代码技术:简化应用开发,推动数字化转型

在当今快速变化的技术环境中&#xff0c;企业面临着巨大的压力&#xff0c;需要快速响应市场需求并持续推动数字化转型。传统的应用开发方式往往复杂且耗时&#xff0c;开发周期长且需要大量的编程工作。为了应对这些挑战&#xff0c;低代码技术应运而生&#xff0c;为企业提供…