NeRF-RPN:一个通用的目标检测框架

2023-09-21 18:04:19

论文标题:NeRF-RPN: A general framework for object detection in NeRFs

e725cefd9c259bb6c8f7cecd52af8716.png

代码:https://github.com/lyclyc52/NeRF_RPN

ebc134a1b96e593d8e714a79454fbbf0.png
669d0549ecdc35a422ac3fe1ceb2e804.png

图1:在NeRF上的 Region proposal 结果

视频演示效果:https://www.youtube.com/watch?v=M8_4Ih1CJjE

NeRF: 火爆科研圈的三维重建技术大揭秘:https://zhuanlan.zhihu.com/p/559025481

NeRF(Neural Radiance Fields神经辐射场)最早是在2020年ECCV会议上的最佳论文中提出的概念,其将隐式表达推上了一个新的高度,仅用2D的posed images作为监督,即可表示复杂的三维场景。

导读

  • NeRF RPN:NeRF中第一个用于对象检测的通用框架,它将RPN引入到NeRF中,用于3D对象检测和相关任务。

  • NeRF数据集:基于现有的合成室内数据集Hypersim和3D-FRONT&3D-FUTURE,以及为NeRF训练精心策划的真实世界室内数据集 ScanNet,首个用于3D对象检测的大型公共室内NeRF数据集中。

这篇论文提出了一个基于NeRF的通用目标检测框架NeRF-RPN,它在 NeRF 的基础上进行了直接操作。NeRF-RPN的目标是在给定的3D场景中检测所有物体的边界框,而这些场景是通过从RGB图像和相机姿态学习而来的,而不需要3D点云或RGBD图像。本文还引入了一个新的大规模室内NeRF数据集,为NeRF-RPN的训练提供了强大的基础。

本文贡献

  • 首次尝试将RPN引入到NeRF中进行3D目标检测:这篇论文是首次重要尝试,将区域建议网络(RPN)引入到从多视图图像中训练的NeRF模型中,以直接进行3D目标检测以及相关任务。这一创新的方法为NeRF技术的进一步应用拓展了新的领域。

  • 大规模室内NeRF数据集:为了支持NeRF-RPN的训练和研究,作者创建了一个大规模的室内NeRF数据集。这个数据集基于现有的合成室内数据集(Hypersim和3D-FRONT)以及真实室内数据集(ScanNet和SceneNN)构建而成,以用于NeRF模型的训练。这个数据集将有助于更好地理解室内环境中的目标检测问题。

  • NeRF-RPN的实现和比较:作者实施了NeRF-RPN框架,并对不同的骨干网络、检测头设计和损失函数进行了比较。他们的模型在2个NVIDIA RTX3090 GPU上可以在4小时内训练完成,并且在运行时能够在115毫秒内(不包括后处理)处理给定的NeRF场景,同时在 3D-FRONT NeRF数据集上实现了99%的召回率。这些结果表明了NeRF-RPN的高效性和性能优势。

  • 演示3D目标检测及相关应用:作者还展示了如何在NeRF上进行3D目标检测以及其他与NeRF-RPN相关的应用。这些应用展示了NeRF技术在计算机视觉和三维场景理解领域的潜力和实际应用。

本文方法

bf9ca7140faf073ef5eaa4487c75bfe5.png

NeRF-RPN的整体结构如图2所示。

NeRF-RPN方法由两个主要组件构成:

  • 特征提取器(Feature Extractor): 这个组件接受从NeRF中采样的辐射和密度数据网格作为输入,并生成一个特征金字塔作为输出。这个特征提取器的作用是从NeRF表示中提取有用的特征,以供后续的目标检测任务使用。

  • RPN头部(RPN Head): 这个组件操作在特征金字塔上,并用于生成 object proposals。在RPN头部的操作中,会产生物体的候选框(object proposals),这些proposals 可以随后被提取和用于进行下游任务的处理。这一步骤非常关键,因为它确定了潜在的目标位置。

1. Input Sampling from NeRF:NeRF的输入采样

论文假设已经提供了一个完全训练的NeRF模型,且该模型质量合理。这个NeRF模型用于表示场景的辐射和密度场。

辐射和密度采样: 第一步是均匀采样NeRF模型的辐射和密度场,以构建一个特征体积。虽然存在不同类型的NeRF变种,其辐射场的表示或结构可能不同,但它们共享一个属性,即可以使用视图方向和空间位置来查询辐射和密度。因此,该方法的输入采样过程与具体的NeRF结构无关。

采样方法: 作者使用均匀采样方法,在覆盖了NeRF模型的可追踪体积的3D网格上进行辐射和密度的采样。这个可追踪体积由包含场景中所有相机和物体的边界框轻微扩大而确定。在每个维度上的网格分辨率与该维度中可追踪体积的长度成比例,以保持物体的纵横比。

对于不同NeRF模型的处理:

  • 对于将纯RGB作为辐射表示的NeRF模型,采样使用与NeRF训练中的相机姿态相匹配的视图方向,并对结果进行平均。

  • 如果相机姿态未知,则从一个球体上均匀采样方向。

  • 每个采样可以用(r, g, b, α)表示,其中(r, g, b)是平均辐射,α是从密度σ转换而来:

    b47ada1fa8a568cabd18f1e126011c5d.png

对于采用其他基函数作为辐射表示的NeRF模型:可以使用计算出的RGB值或基函数的系数作为辐射信息,具体取决于下游任务的需求。

2. Feature Extractors:特征提取

特征金字塔生成:给定原始数据网格,特征提取器将生成特征金字塔。论文在实验中采用了三个主干网:VGG[54]、ResNet[18]和Swin Transformer[30],但其他主干网也可能适用。

考虑物体尺寸变化和场景尺度差异:考虑到室内NeRF场景的目标大小的巨大变化以及不同NeRF场景之间的尺度差异,论文结合了FPN[24]结构来生成多尺度特征,并增强高分辨率特征量中的高级语义信息。

网络层的适应:对于VGG、ResNet和FPN层,将所有2D卷积、池和归一化层替换为其3D对应层。对于Swin Transformer,论文相应地采用了3D位置嵌入和移动窗口。

3. 3D Region Proposal Networks(3D RPN)

3D区域建议网络(3D RPN)接受来自特征提取器的特征金字塔作为输入,并输出一组带有相应物体性质分数的定向边界框(OBB,oriented bounding boxes)。

与大多数3D目标检测方法一样,作者将边界框的旋转限制在仅绕z轴旋转(偏航角),这与重力向量对齐并垂直于地面。这种约束简化了问题并降低了计算复杂性。

作者尝试了两种类型的区域建议方法:基于锚点的方法和不基于锚点的方法,如图3:

941d2a7a4d259dfbdac088710869b916.png

基于锚点的3D RPN头部(Anchor-Based 3D RPN Head): 锚点(anchors)被放置在特征金字塔的不同级别和体素中,然后通过一系列的3D卷积层和1x1x1 3D卷积层来预测物体的存在概率和边界框偏移。这些预测结果将用于生成 object proposals。

不基于锚点的3D RPN头部(Anchor-Free 3D RPN Head): 不基于锚点的目标检测方法不使用锚点与实际目标边界框之间的IoU(Intersection over Union)计算,因此在特定问题范围内(例如,图像的前景-背景分割)可以更加高效。

总体的目标函数如下:

a22c1b996f7e63080ef5391a4432b8ee.png
4. 其他损失函数

Objectness Classification

24e3021de604843028fba6681a4a96fb.png

2D Projection Loss

cdb6e98d87bcd19e3bedb739c5f712e7.png

NeRF数据集

9290ef7f799aff8430ee730f04793c96.png
4e24add428cf10db1dc8f55f54ee680b.png

作者基于 Hypersim和3D-FRONT等合成数据集,创建了第一个用于3D物体检测的NeRF数据集。除了这些合成数据集,论文还结合了SceneNN[19]和ScanNet[5]的真实世界数据集的子集,以证明本文的方法对真实世界数据具有鲁棒性。图5显示了一些选定示例。表 1 总结了作者的NeRF数据集的一些关键统计信息

实验

实验结果

不同模型配置在各种NeRF数据集上的实验结果:

a01ed813e5102b697c07f29fd4a6c451.png

模型在不同场景中检测到的3D边界框。:

3a7dd8baa44bf9fc1e0899813d3babd9.png

失败案例展示:糟糕的NeRF重建可能会严重影响预测结果

92f18b45765e3f8728898fe6c55048b8.png
消融实验

不同特征提取骨干和RPN头组合的性能:

595bb190f53c84883768bae08dc7ca07.png

bounding box 回归损失

820744f86937f8573ad93ab423fdf53f.png

结论

本文提出了首个针对NeRF的重要3D物体检测框架NeRF-RPN通过在不同的骨干网络(VGG、ResNet、Swin Transformer)以及基于锚点和不基于锚点的RPN头以及多种损失函数上进行全面实验,论文验证了NeRF-RPN可以直接从NeRF中回归出高质量的边界框,而无需在任何视角从NeRF中渲染图像。为了促进未来在NeRF中进行的3D物体检测研究,论文构建了一个新的基准数据集,其中包括合成和真实世界的数据,具有高质量的NeRF重建和谨慎的边界框标注和清理。

☆ END ☆

如果看到这里,说明你喜欢这篇文章,请转发、点赞。微信搜索「uncle_pn」,欢迎添加小编微信「 woshicver」,每日朋友圈更新一篇高质量博文。

扫描二维码添加小编↓

34bd16a78807872dba95df9496ef0dac.jpeg

更多推荐

代码随想录算法训练营第56天 | ● 583. 两个字符串的删除操作 ● 72. 编辑距离 ● 动态规划之编辑距离总结篇

文章目录前言一、583.两个字符串的删除操作二、72.编辑距离三、动态规划之编辑距离总结篇总结前言一、583.两个字符串的删除操作两种思路:1.直接动态规划,求两个字符串需要删除的最小次数2.采用子序列的和-最长公共子序列。思路一分析如下:动规五部曲,分析如下:确定dp数组(dptable)以及下标的含义dp[i][j

频频刷屏朋友圈,白酒如何越来越年轻化?来聊聊白酒企业数字化

最近,某白酒品牌频频吸引大众眼球,白酒与咖啡、巧克力等联名衍生品一经推出便掀起热潮。某商品由于太过火爆,甚至一度售罄下架。不得不说,我国拥有超大规模内需市场,消费潜力巨大。当前,创新消费场景加上数字化融合转型,成为酒企品牌开疆扩土、逆势增长的重要途径。如今越来越多的酒企开始拥抱数字化,建立涵盖白酒品系开发、酒体设计、基

如何用CRM软件系统管理企业客户

客户对企业的重要程度不言而喻。可以说,客户是企业收益的来源和可持续发展的基础,客户的转化率和保留率也与企业的发展息息相关。企业想要成功转化客户,需要经历客户跟踪、挖掘、维护等一系列过程。下面我们来说说,CRM客户管理系统如何管理企业客户?1、CRM系统能从不同渠道获取客户CRM系统可以实现客户信息获取和访问、高效转化和

Js中一些数组常用API总结

前端面试题库(面试必备)推荐:★★★★★地址:前端面试题库【国庆头像】-国庆爱国程序员头像!总有一款适合你!前言Js中数组是一个重要的数据结构,它相比于字符串有更多的方法,在一些算法题中我们经常需要将字符串转化为数组,使用数组里面的API进行操作。本篇文章总结了一些数组中常用的API,我们把它们分成两类,一类是会改变原

数据信息会有哪些风险,云数据库如何保护?

数据信息安风险是多种多样的,那么,云数据库如何规避并保护数据信息安全?今天安策带大家具体来了解数据信息会有哪些风险,云数据库将如何保护:数据泄露:不管是内部人员疏忽,还是恶意攻击、系统漏洞等等原因,数据泄露会导致敏感信息的暴露,损害其品牌的声誉和利益。数据损坏:损坏原因主要由自然灾害、人为或恶意攻击构成,从而导致无法预

容器核心技术之Namespace与Cgroup

容器是一种流行的虚拟化技术,它允许我们在同一台计算机上与其他进程在独立环境中运行进程。那么容器是如何做到这一点的呢?为此,容器是从Linux内核的一些新功能构建的,其中两个主要功能是“namespace”和“cgroup”。1.Namespace1.1Namespace简介Namespace(命名空间)技术是一种内核级

Nvme Spec 第一章节学习

@NvmeExpressBaseSpecification第一章简介1.1概述NVMExpressTM(NVMeTM)接口允许主机软件与非易失性存储器子系统通信。此接口针对企业和客户端固态驱动器进行了优化,通常作为寄存器级接口连接到PCIExpress接口。注:在开发过程中,本规范被称为企业NVMHCI。然而,在完成之

YOLOv8『小目标』检测指南

前言目前博主课题组在进行物体部件的异常检测项目,项目中需要先使用YOLOv8进行目标检测,然后进行图像切割,最后采用WinCLIP模型进行部件异常检测但是在实际操作过程中出现问题,YOLOv8模型目标检测在大目标精确度不错,但是在小目标检测中效果极差我们之前的解决方案是扩大异常部件的目标检测范围,易于检测。但是缺点是会

stable diffusion在建筑行业应用

AI建筑研究室-帆哥投稿视频-AI建筑研究室-帆哥视频分享-哔哩哔哩视频点击观看AI建筑研究室-帆哥的全部投稿视频,在这里可以查看AI建筑研究室-帆哥最新发布、最多播放和最多收藏的视频。https://space.bilibili.com/2161614/videoHD▎ChatGPT接入自研AI工具集,为设计生产赋能

wkeOnDownload2与mbOnDownloadInBlinkThread

背景:最近开始实习(打工)生涯。需求:使用miniblink,显示网页,点击下载链接,可以实现下载。寻求大佬帮助,得到了wke.h版本的下载相关的代码。这里进行一些简单的分析:实际语句:wkeOnDownload2(webView,onDownloadCallback,nullptr);通过调用该函数实现:点击链接,实

SpringMVC之自定义注解

目录前言一、自定义注解1.Java注解简介2.注解的用处3.为什么要用注解4.自定义注解的应用场景5.注解的分类6.如何定义并使用自定义注解7.自定义注解三种使用案例案例一:案例二:案例三:二、Aop自定义注解的应用1.自定义注解类2.切面类3.Controller层前言随着Web开发的发展,越来越多的企业开始使用Sp

热文推荐