NeRF-RPN: A general framework for object detection in NeRFs 全文翻译

news2025/5/22 4:44:42

摘要 Abstract
        本文提出了第一个重要的物体检测框架 NeRF-RPN,它直接在 NeRF 上运行。给定一个预先训练好的 NeRF 模型NeRF-RPN 的目标是检测场景中所有物体的边界框。通过利用包含多尺度三维神经体积特征新颖体素表示法,我们证明可以直接回归 NeRF 中物体的三维边界框,而无需在任何视角下渲染 NeRF。NeRF-RPN 是一个通用框架,可用于检测无类别标签的物体。我们用不同的主干架构、RPN 头设计和损失函数对 NeRF-RPN 进行了实验。所有这些都能以端到端的方式进行训练,从而估算出高质量的三维边界框。为了促进 NeRF 物体检测方面的未来研究,我们建立了一个新的基准数据集,其中包括经过仔细标注和清理的合成数据和真实世界数据。代码和数据集见 https://github.com/lyclyc52/NeRF_RPN。

图 1. NeRF 上的区域建议结果。图中显示了八个方向上置信度最高的 12 个建议。NeRF 是根据 INRIA [38] 的起居室场景进行训练的。

1. 简介Introduction 
        三维物体检测是机器人和自动驾驶等重要应用的基础,这些应用需要了解三维场景。现有的大多数相关方法都需要三维点云输入,或至少需要从三维传感器获取 RGBD 图像。然而,神经辐射场(NeRF)[34] 的最新进展为从二维多视角图像中提取底层三维场景的高语义特征提供了一种有效的替代方法。受用于二维物体检测的区域建议网络(RPN)的启发,我们在本文中首次提出了三维 NeRF-RPN,它直接对完全从 RGB 图像和摄像机姿势中学习到的给定三维场景的 NeRF 表示进行操作。具体来说,在给定从 NeRF 模型中提取的辐射场和密度的情况下,我们的方法会产生边界框建议,这些建议可用于下游任务。

        最近,NeRF 在新型视图合成方面取得了令人瞩目的成果,而三维物体检测在自动驾驶和增强现实等许多现实世界应用中也变得越来越重要。与二维物体检测相比,三维物体检测更具挑战性,因为数据收集的难度增加了,三维中的各种噪声也可能被捕捉到。基于图像的 3D 物体检测器要么使用单张图像(如 [1, 4, 62]),要么利用多张图像的多视角共识(如 [29, 51, 63])。虽然后者使用多视角投影几何来组合三维空间的信息,但它们仍然使用二维特征来指导相关的三维预测。其他一些基于点云表示的三维检测器(如 [31,33,41,73] 等)在很大程度上依赖于传感器捕获的精确数据。据我们所知,目前还没有在 NeRF 中直接进行 3D 物体检测的代表性工作。
        因此,我们提出了 NeRF-RPN 以在给定的 NeRF 表征中提出 3D ROI。具体来说,该网络将从 NeRF 中提取的三维体积信息作为输入,并直接输出 ROI 的三维边界框。因此,NeRF-RPN 采用 "3D-to-3D 学习 "范式,充分利用 NeRF 中固有的 3D 信息,直接在 3D 空间中预测 3D 区域建议,将成为 NeRF 中 3D 物体检测的强大工具。

        作为直接在多视图图像训练的 NeRF 中执行 3D 物体检测的首次重要尝试,本文的主要贡献包括:
        - 首次将 RPN 引入 NeRF 的重要尝试 ,用于三维目标检测及相关任务。
        - 基于现有的合成室内数据集 Hypersim [46] 和 3D-FRONT [11],以及为 NeRF 训练而精心策划的真实室内数据集 ScanNet [6] 和 SceneNN [19],建立用于 3D 物体检测的大规模公共室内 NeRF 数据集。
        - 在各种骨干网络、检测头和损失函数上实现 NeRF-RPN 并进行比较。使用 2 个英伟达 RTX3090 GPU,我们的模型可在 4 小时内完成训练。运行时,它可以在 115 毫秒内处理给定的 NeRF 场景(不包括后处理),同时在 3D-FRONT NeRF 数据集上达到 99% 的召回率
        - 基于 NeRF-RPN 的 NeRF 3D 物体检测及相关应用演示。

2. 相关工作  Related Work
2.1. 神经辐射场NeRF
        神经辐射场(NeRF)[34] 已成为新颖视图重构的主流方法,它将给定场景的几何和外观建模在由 MLP 参数化的连续隐式辐射场中。继这项工作之后,瞬时神经图形基元 [36] 采用哈希编码,大大缩短了训练时间。PlenOctrees [67] 使用基于八度的辐射场和球形基函数网格来加速渲染和外观解码。TensoRF [3] 将三维点投影到三个二维平面上,以编码位置信息。虽然这些作品使用了不同的结构建模方法,但它们实现了相同的目标,即通过输入 xyz 坐标和三维摄像头姿势,在每个位置生成与视图相关的 RGB 颜色和体积密度,从而从给定视点渲染图像。NeRF 不仅能提供三维场景的结构细节,还有利于三维训练,在训练中只需要摆好姿势的 RGB 图像,因此这种表示方法也适用于三维物体检测。

2.2. 物体检测和区域建议网络 Object Detection and Region Proposal Network
        在[20]和最近 GPU 的进步之后,深度卷积神经网络(CNN)已成为单幅图像中物体检测的主流方法。基于深度学习的物体检测可分为基于锚的方法和无锚方法。基于锚的方法,包括两阶段方法 [12, 13, 16, 17, 45] 和一阶段方法 [10, 23, 25-27, 44, 68],首先在给定图像上生成大量不同大小和长宽比的预设锚,然后预测这些锚的标签和box回归偏移。对于两阶段方法,首先根据锚点生成相对粗略的区域建议,然后完善这些粗略建议并推断标签。与基于锚的方法不同,无锚方法 [8, 9, 22, 28, 57, 71, 72] 直接在特征图上进行预测。

        区域生成网络(RPN)最早是在文献[45]中提出的,用于在图像中提出可能包含物体的区域,以便进行后续细化。RPN 使用共享卷积层在来自特征提取层的特征图上滑过局部区域,并将转换后的特征输入并行的盒式回归头和盒式分类头。在文献[45]中,RPN 仅应用于最后一个共享卷积层的特征图,而最近的一些研究,如特征金字塔网络(FPN)[24],则利用了多尺度特征图。我们提出的方法采用了二维 RPN 的滑动窗口理念,并以三维方式利用了 FPN。

2.3. 三维物体检测3D Object Detection
        根据输入形式,目前的三维物体检测器可分为基于点云的方法和基于 RGB 的方法。许多基于点云的方法首先将点云转换为体素形式,然后通过卷积[15,33,49,56,73]或变换器[33,59]对三维特征体积进行操作。然而,体素表示法占用大量内存,限制了所使用的分辨率。虽然稀疏卷积[14]和二维投影已被采用来缓解这一问题,但最近又有人提出了直接对原始点云进行操作的方法[21, 31, 35, 40-42, 53, 60]。这些方法大多将点分成若干组,并对每组应用分类和边界框回归。用于分组的标准包括从二维检测中挤出的三维圆锥体[41]、三维区域建议[52, 53]和投票[39, 40, 60]。另一方面,GroupFree3D [31] 和 Pointformer [37] 则使用变换器遍历所有点,而不是进行分组。

        在单幅图像或摆好姿势的多视角 RGB 图像上进行三维异议检测更具挑战性,探索相对较少。早期的单目三维异议检测尝试首先从 RGB 图像中估算出每像素深度 [4, 65]、伪激光雷达信号 [43, 62, 66] 或体素信息 [47],然后对重建的三维特征进行检测。后来的研究将二维物体检测方法扩展到三维。例如,M3D-RPN [1] 和 MonoDIS [54] 使用二维锚点进行检测,并预测二维到三维的变换。FCOS3D [61] 扩展了 FCOS [58] 预测三维信息的功能。最近更多的研究集中于多视角情况。ImVoxelNet [51] 将二维特征投射回三维网格,并在其上应用基于体素的检测器。DETR3D [63] 和 PETR [29] 采用了与 DETR [2] 类似的设计,都试图融合二维特征和三维位置信息。虽然这些基于图像的方法可以协助 NeRF 中的区域提议任务,但它们没有利用 NeRF 固有的三维信息,因此在精确度上受到限制。

        虽然可以从 NeRF 中采样并生成体素或点云表示,在此基础上应用以前的三维物体检测方法,但这种转换可能是临时性的,取决于 NeRF 结构和重建质量。这些转换表示中的噪声和较差的精细几何近似也对现有的三维物体检测器提出了挑战。需要注意的是,与只覆盖物体表面(外壳)的点云样本不同,NeRF 中的密度也分布在内部。显然,现有方法未能利用这一重要的实体物体信息,而我们的 NeRF-RPN 则充分考虑到了这一点。此外,目前还没有专门针对 NeRF 表示法的三维物体检测数据集,这也限制了 NeRF 中三维物体检测的发展。

3. 计算方法Method
        与最初的 RPN 相似,我们的方法有两个主要组成部分,见图 2。第一个是特征提取器,它将从 NeRF 中采样的辐射度和密度网格作为输入,并生成一个特征金字塔作为输出第二个是 RPN 头,它对特征金字塔进行操作并生成对象建议。随后,可以提取和处理与提议相对应的特征卷用于任何下游任务我们的方法在 NeRF 输入特征、特征提取器架构和 RPN 模块方面都非常灵活,可以适应多种下游任务

图 2. NeRF-RPN 我们的方法首先对 NeRF 中的点网格进行采​​​​​​​样,并提取其 RGB 和密度。然后将提取的体积特征通过三维骨干网络获得深度多尺度三维特征,再将其与三维 FPN 融合,并输入三维 RPN 头,以生成区域建议。

3.1. 从 NeRF 输入采样. Input Sampling from NeRF
        我们的方法假定已经提供了一个经过充分训练、质量合理的 NeRF 模型。第一步是对其辐射场和密度场进行均匀采样,以构建特征卷。尽管不同的 NeRF 变体具有不同的辐射场表示法或结构,但它们具有相同的特性,即辐射和密度可通过视图方向和空间位置进行查询。由于辐射度和密度基本上都要经过类似的体积渲染过程,因此我们的方法将它们作为输入,这样就与具体的 NeRF 结构无关了。

        我们在三维网格上对辐射度和密度进行均匀采样,该网格覆盖了 NeRF 模型的全部可跟踪体积。网格在每个维度上的分辨率与该维度上可跟踪体积的长度成正比,以保持物体的长宽比。对于使用纯 RGB 作为辐射度表示的 NeRF 模型,我们根据 NeRF 训练中使用的摄像机姿态,从同一组观察方向进行采样,然后取平均值。如果相机位置未知,我们则从一个球面上均匀采样。一般来说,每个样本都可以写成 (r,g,b,α),其中 (r,g,b) 是平均辐射度,α 由密度 σ 转换而来:

​​​​​​​

其中 δ = 0.01 为预设距离。对于采用球面谐波或其他基函数作为辐射度表示的 NeRF 模型,根据下游任务的不同,可以使用计算出的 RGB 值或基函数系数作为辐射度信息。

3.2. 特征提取器 Feature Extractors
给定采样网格后,特征提取器将生成一个特征金字塔。我们采用了三种骨架: 我们在实验中采用了三种骨干网络:VGG [55]、ResNet [18] 和 Swin Transformer [30],但其他骨干网络也可能适用。考虑到室内 NeRF 场景中物体大小的巨大差异以及不同 NeRF 场景之间的尺度差异,我们采用了 FPN [24] 结构来生成多尺度特征卷,并将高级语义注入更高分辨率的特征卷中。对于 VGG、ResNet 和 FPN 层,我们将所有二维卷积、池化和归一化层替换为三维对应层。对于 Swin Transformer,我们相应地采用了三维位置嵌入和移动窗口。

3.3. 三维区域建议网络 3D Region Proposal Networks(---输出ROI)
        我们的三维区域建议网络从特征提取器中提取特征金字塔,并输出一组具有相应对象性得分(objectness scores)的定向边界框(OBB)。与大多数三维物体检测工作一样,我们将边界框的旋转限制在 Z 轴(偏航角)上,该轴与重力矢量对齐并垂直于地面。我们尝试了两种区域建议方法:基于锚框的方法和无锚的方法,见图 3。

        基于锚框的 RPN 传统的 RPN 最初是在 Faster R-CNN [45] 中提出的,在每个像素位置放置不同大小和纵横比的锚框,并预测每个锚框的对象性得分和边界框回归偏移。我们将这种方法扩展到三维,在特征金字塔不同层次的体素中放置不同纵横比和尺度的三维锚框。我们在特征金字塔后添加 k 层三维卷积层(通常为 k = 2 或 4),在此基础上使用两个独立的 1×1×1 三维卷积层来预测物体存在的概率 p 和每个锚框的边界框偏移 t,见图 3(a)。这些层在特征金字塔的不同层之间共享,以减少参数数量,提高对尺度变化的鲁棒性。边界框偏移 t = (tx, ty, tz, tw, tl , th, tα, tβ)的参数设置与文献[64]类似,但增加了一个新维度:

其中 x、y、w、l、∆α、∆β 描述投影到 xy 平面上的 OBB,z、h 表示高度的附加维度。请注意,这种编码并不能保证解码后的 OBB 是立方体。我们按照文献[64]的方法,将投影转化为矩形,然后再将其用作提案。

为了确定每个锚框的标签,我们沿用了 Faster R-CNN 的流程,但在三维设置下对参数进行了调整:如果一个锚框与任何一个地面实况盒的 "交叉-重叠-统一"(IoU)重合度大于 0.35,或者在所有锚框中与一个地面实况盒的 "交叉-重叠-统一 "重合度最高,我们就会给该锚框贴上正面标签。所有地面实况箱的 IoU 均低于 0.2 的非正向锚框被视为负锚框。在计算损失时,既不是正值也不是负值的锚点将被忽略。损失与 Faster R-CNN 中的损失类似: 

其中,pi , ti 是预测的对象性和box偏移,p ∗ i , t ∗ i 是地面实况目标,Ncls, Nreg 是损失计算中涉及的锚数量,λ 是两种损失之间的平衡因子。Lcls 是二元交叉熵损失(e binary cross entropy loss,Lreg 是 [12] 中的平滑 L1 损失(smooth L1 loss回归损失只计算正锚框

Anchor-Free RPNs 无锚物体检测器摒弃了锚和地面实况框(gt框)之间昂贵的 IoU 计算,可用于特定问题范围内的区域建议(如图形-地面分割)。我们选择了具有代表性的无锚方法 FCOS,并将其扩展到三维领域。
与基于锚的方法不同,我们基于 FCOS 的 RPN 预测了单个对象性 p、一组边界框偏移 t = (x0, y0, z0, x1, y1, z1, ∆α, ∆β),以及每个体素的中心性分数 c,见图 3(b)。我们扩展了 FCOS 中方框偏移的编码,并定义回归目标 t∗ i = (x∗ 0 , y∗ 0 , z∗ 0 , x∗ 1 , y∗ 1 , z∗ 1 , ∆α∗ , ∆β∗) 如下:

其中,x、y、z 是体素位置,x (i) 0 < x(i) 1 是第 i 个地面实况 OBB 的轴对齐包围盒(AABB)的左右边界,同样,y (i) 0 , y (i) 1 , z (i) 0 , z (i) 1 也是第 i 个地面实况 OBB 的轴对齐包围盒(AABB)的左右边界。v (i) x 表示 OBB 的 xy 平面投影中最上顶点的 x 坐标,v (i) y 是最右顶点的 y 坐标,见图 3(b)。地面真实中心度的计算公式为

​​​​​​​

其中,Lcls 是 [25] 中的焦点损失focallossLreg 是 [70] 中旋转方框的 IoU 损失。p∗ i∈ {0, 1} 是特征金字塔中每个体素的地面实况标签,它是通过与 [58] 相同的中心采样和多级预测过程确定的;λ 是平衡因子,Npos 是 p∗ i = 1 的体素数量。回归和中心损失只考虑正向体素
        为了学习 p、t 和 c,我们在 FCOS 中对网络进行了调整,在特征金字塔之后为分类和回归分支分别独立添加了 k = 2 或 4 个三维卷积层。我们在分类和回归分支的顶部分别添加一个卷积层来输出 p 和 t,并在回归分支上添加一个平行卷积层来预测 c。

图 3. 3D RPN Head. 这两幅图分别展示了基于锚点和无锚点的三维 RPN Heads结构,以及它们的三维中点偏移边界框表示法。

3.4. 附加损失函数 Objectness Classification

​​​​​​​

图 4. 二元分类网络。二进制 分类网络架构与旋转三维 ROI 池 以及该网络使用的边界框表示法。


Objectness Classification 虽然 NeRF-RPN 的主要目标是高召回率,但一些下游任务可能也更喜欢低假阳性率。为了提高 ROI 的精确度,我们添加了一个二元分类网络作为子组件,以实现前景/背景分类。更具体地说,该网络将 1) RPN 的 ROI 和 2) 特征提取器的特征金字塔作为输入,并为每个 ROI 输出对象性评分和边界框细化偏移,见图 4。我们通过旋转 ROI 池提取每个方案的旋转不变特征。每个方案的参数都是(xr, yr, zr, wr, lr, hr, θr),其中(xr, yr, zr)描述中心坐标,wr, lr, hr 是三个维度,θr ∈ [- π 2 , π 2 ) 是偏航角。参照文献[64],我们首先放大方框并将其定位在相应的特征卷中,然后应用三线插值法计算每个特征点上的值,并在将 ROI 特征卷转入池化层之前将其填充为零。池化后的特征卷为 N×3×3×3,用于进一步的回归和分类。参照文献[7],边界框偏移 g = (gx, gy, gz, gw, gl , gh, gθ) 定义为

分类层估算两个类别(即非物体和物体类别)的概率。与任何一个地面实况方框的 IoU 重叠大于 0.25 的 ROI 都会被标记为物体,而其他所有 ROI 都会被标记为非物体。损失函数类似于公式 3,其中方框偏移量由 g 代替,g ∗ .
2D Projection Loss 我们将三维边界框坐标 bi = (xi , yi , zi) 投影到二维 b ′ i = (x ′ i , y′ i ) 并构建二维投影loss如下:

其中,Ncam、Nbox 分别为摄像机数量和proposals数量。我们在房间的 4 个顶角设置了 4 台摄像机,指向房间中心。更多讨论请参阅补充材料。​​​​​​​

4. 用于三维物体检测的 NeRF 数据集 
        目前还没有为三维物体检测构建具有代表性的 NeRF 数据集。因此,我们利用 Hypersim [46] 和 3D-FRONT [11] 数据集建立了第一个用于三维物体检测的 NeRF 数据集。除了这些合成数据集之外,我们还加入了 SceneNN [19] 和 ScanNet [6] 的真实世界数据集子集,以证明我们的方法对真实世界数据的鲁棒性。图 5 显示了我们从 3D-FRONT 中精心标注的 3D 地面实况框的一些选定示例。表 1 总结了我们的数据集。

表 1. 用于 3D 物体检测的 NeRF 数据集的统计数据。


Hypersim  Hypersim 是一个用于室内场景理解的非常逼真的合成数据集,其中包含各种具有三维语义的渲染对象。然而,该数据集并非专为 NeRF 训练而设计,其中提供的对象注释对于直接用于区域建议任务来说是有噪声的。因此,我们根据 NeRF 重建质量和对象注释的可用性进行了广泛的清理(见 supp mtrl)。最后,我们保留了大约 250 个清理后的场景。Hypersim 中的原始 3D 物体边界框没有经过仔细修剪,因为有些物体在所有图像中都是不可见的。此外,许多实例的比例过于精细,而有些实例则不太重要或不太重要,例如地板和窗户。我们会删除可能会影响训练的模糊物体。然后,我们通过检查其 AABB 的最小维度是否低于某个阈值来过滤掉微小或薄的物体。经过这些自动预处理后,我们会手动检查剩余的每个物体。在少于三幅图像中可见的物体,或在所有图像中其 AABB 超过一半不可见的物体都会被删除

3D-FRONT  3D-FRONT [11] 是一个大规模合成室内场景数据集,包含房间布局和纹理家具模型。由于该数据集规模庞大,因此需要花费大量精力将复杂场景分割成单个房间并清理边界框(supp mtrl)。在我们的数据集中,共有 159 个可用房间经过人工选择、清理和渲染。使用我们的代码和 3D-FRONT 数据集,可以生成更多房间用于 NeRF 训练。我们对每个房间的边界框进行了大量手动清理。与 Hypersim 类似,天花板和地板等建筑物体的边界框会根据其标签自动移除。此外,我们还会手动合并相关部分的边界框,以标注整个语义对象(例如,将座椅、背板和腿合并为一个椅子框)。示例请参见图 5。

真实世界数据集 我们利用 ScanNet [6]、SceneNN [19] 和 INRIA [38] 的数据集构建了真实世界 NeRF 数据集。ScanNet 是一个常用的真实世界数据集,用于室内 3D 物体检测,其中包含 1,500 多次扫描。我们随机选取了 90 个场景,并将每个场景的视频帧均匀地划分为 100 个分区,然后根据拉普拉斯方差选择每个分区中最清晰的帧。我们使用提供的深度和深度引导的 NeRF [48] 来训练模型。对于物体注释,我们根据注释的网格计算最小边界框,并舍弃某些类别和大小的物体,这与 Hypersim 的做法类似。

5. 实验 Experiments
5.1. 训练和测试 Training & Testing
训练 在训练过程中,输入场景沿 x、y 轴随机翻转,并沿 z 轴旋转 π 2,每次增强操作的概率为 0.5。此外,场景沿 Z 轴以 0.5 的概率轻微旋转 α∈ [- π 18 , π 18 ],我们发现这可以显著提高 RPN 输出的平均精度 (AP)。我们使用 AdamW [32] 对网络进行优化,初始学习率为 0.0003权重衰减为 0.001。在训练中,我们为公式 (3) 设置了 λ = 5.0,为公式 (6) 设置了 λ = 1.0。对于基于锚点的方法,我们采用 4 级 FPN 和 13 种不同纵横比的锚点,分别为 1:1:1、1:1:2、1:1:3、2:2:1、3:3:1 及其排列组合。同一特征量级上的所有锚点的最短边大小相同,从细到粗的比例为{8, 16, 32, 64}。按照文献[45]中的 RPN 训练策略,我们在每次迭代中从每个场景中随机抽取 256 个锚点来计算损失,其中正锚点和负锚点的比例为 1:1。对于无锚方法,所有输出建议都用于计算损失。

测试 在获得具有对象性得分的 ROI 后,我们首先舍弃几何中心超出场景边界的方框。然后,我们在特征卷的每个层级上分别选取前 2,500 个提案。为了去除多余的提议,我们对基于旋转 IoU(阈值为 0.1)的汇总方框应用非最大抑制(NMS),然后选出对象度得分最高的 2,500 个方框

5.2. 消融研究 Ablation Study
Backbones and Heads 表 2 列出了特征提取骨干和 RPN 头部不同组合的召回率和平均精度。在固定骨干和仅比较 RPN 头的情况下,我们发现无锚模型在所有三个数据集上都获得了更高的召回率。两种 RPN 方法在 3D-FRONT 和 ScanNet 上的召回率相近,而在 Hypersim 上,无锚模型的召回率普遍较高。我们认为,无锚模型性能更好的原因有二:1)无锚模型的中心性预测有助于抑制偏离中心的提议,这在边界框中心与质量中心错位或 NeRF 输入有噪声时特别有用;2)锚的长宽比和比例数量有限,限制了无锚模型的性能。

        此外,在比较不同骨干网的性能时,我们注意到采用 VGG19 的模型与其他模型相比,一般都能获得更好的召回率和 AP。主要的例外是基于锚点的模型在 Hypersim 上的表现,Swin-S 在召回率和 AP 方面表现出色。鉴于 Hypersim 上的 NeRF 结果噪音明显更大,场景也更加复杂,我们认为,在这种情况下,Swin Transformers 的移动窗口和注意力所带来的更大的感受野和更丰富的语义对我们基于锚点的方法至关重要。​​​​​​​

NeRF采样策略Sampling Strategies NeRF的密度场与视角无关,而辐射度则取决于视角方向,因此可以采用不同的编码方案。在补充材料中,我们研究了这种与视角有关的信息的影响,并得出结论:仅使用密度是最佳策略。

回归损失Regression Loss 我们以 Swin-S 为骨干,在 3D-FRONT 数据集上测试了用于边界框回归的三种常见损失函数(见表 4)。IoU 损失直接优化预测边界框与地面实况边界框之间的 IoU,而 DIoU 损失 [69] 则对两者之间的归一化距离进行惩罚,以加快收敛速度。我们使用了 [70] 中提出的这两种损失的定向框变体。我们的结果表明,对于基于锚的方法,IoU 损失始终优于其他两种损失,而对于无锚模型,IoU 和 DIoU 损失的性能相似

附加Loss 我们在补充材料中讨论了上述损耗的影响。

表 4. 边界框回归损失的消融结果。

5.3. 实验结果 Results
        我们在由 Hypersim [46]、3D-FRONT [11]、ScanNet [6]、SceneNN [19] 和 INRIA [38] 构建的各种 NeRF 数据集上使用不同的模型配置进行了实验。详细的定量结果见表 2。图 6 显示了采用 VGG19 和无锚 RPN 头的模型得出的定性结果。图 7 显示了典型的故障案例。在实验过程中,我们发现糟糕的 NeRF 重建会严重影响预测结果。如前所述,区域建议任务在很大程度上取决于 NeRF 中的三维几何图形。与图像的二维 RPN 类似,我们的方法也会出现缺失/合并建议或 NMS 后的错误旋转。目前,我们的数据集处理的是一级对象;微小或二级对象是未来的工作。

表 2. 不同骨干和头部的消融情况。Recall25 和 Recall50 分别表示 IoU 临界值为 0.25 和 0.5 时的召回分数.

图 6. 定性结果。热图 "列显示了提案置信度得分的分布情况,红色表示置信度较高。提案 "列显示了 NMS 后的几个顶部边界框。从上到下,从左到右,场景 1-3 来自 3D-FRONT,4-5 来自 Hypersim,6-8 来自 ScanNet。

图 7. 失败案例。(a)(b) 提议缺失和合并、 (c) 旋转错误,(d) 没有针对微小/秒级对象的建议。

应用: 场景编辑 Application: Scene Editing 我们可以根据 NeRF-RPN 生成的方案在 NeRF 中编辑场景。图 8 演示了如何在渲染时将提案内的密度设为零。

图 8. 应用: 场景编辑。在 我们的 NeRF-RPN 提出的边界框中的一个物体。

5.4. 比较 Comparison
        为了证明我们的方法的有效性,我们将 NeRF-RPN 与最近的三维物体检测方法(如 ImVoxelNet [51] 和 FCAF3D [50])进行了比较,结果如表 3 和图 9 所示。ImVoxelNet 采用多视角 RGB 作为输入,因此 NeRF 输入图像用于训练。FCAF3D 是基于点云的 3D 检测器,因此我们使用 Hypersim ​​​​​​​和 ScanNet 的地面实况深度、NeRF 渲染的 3D-FRONT 深度以及相应的 RGB 图像来构建点云。我们调整了 [5,mmd3d] 中这两种方法的实现,并在我们使用的三个数据集上从头开始训练它们。在除 3D-FRONT 以外的所有数据集上,我们的方法都远远优于 ImVoxelNet,尽管 ImVoxelNet 在 3D-FRONT 中利用了我们以物体为中心的相机轨迹。NeRF-RPN 在 3D-FRONT 和 Hypersim 数据集上的表现也优于 FCAF3D,尽管在 Hypersim 数据集上使用了地面实况深度,给 FCAF3D 带来了额外的优势。

表 3. 定量比较。我们报告的是 VGG19 主干网的结果。AR 指的是指定 IoU 临界值下的召回分数而不是平均召回分数

图 9. 定性比较。前两行来自 Hypersim,其余来自 3D-FRONT。

6. 结论 
        我们为 NeRF 提出了第一个重要的 3D 物体检测框架 NeRF-RPN,该框架基于从 NeRF 中提取的体素表示。通过在不同的骨干网络(即 VGG、ResNet、Swin Transformer 以及基于锚、无锚 RPN 头和多种损失函数)上进行综合实验,我们验证了 NeRF-RPN 可以直接从 NeRF 中回归高质量的方框,而无需在任何视图中渲染 NeRF 中的图像。为了促进未来在 NeRF 中进行 3D 物体检测的工作,我们建立了一个新的基准数据集,该数据集由合成数据和真实世界数据组成,具有较高的 NeRF 重建质量和仔细的边界框标注与清理。我们希望 NeRF-RPN 能够成为一个良好的基准,为未来 NeRF 中的三维物体检测工作提供启发和帮助。

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

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

相关文章

双击shutdown.bat关闭Tomcat报错:未设置关闭端口~

你们好&#xff0c;我是金金金。 场景 当我startup.bat启动tomcat之后&#xff0c;然后双击shutdown.bat关闭&#xff0c;结果报错了~ 排查 看报错信息很明显了&#xff0c;未配置关闭端口&#xff0c;突然想起来了我在安装的时候都选的是默认的配置&#xff0c;我还记得有这…

深度学习课程实验二深层神经网络搭建及优化

一、 实验目的 1、学会训练和搭建深层神经网络&#xff1b; 2、掌握超参数调试正则化及优化。 二、 实验步骤 初始化 1、导入所需要的库 2、搭建神经网络模型 3、零初始化 4、随机初始化 5、He初始化 6、总结三种不同类型的初始化 正则化 1、导入所需要的库 2、使用非正则化…

k8s中的容器探针

pod的容器健康检查---探针 probe&#xff1a;k8s对容器执行的定期检查&#xff0c;诊断。 探针的三种规则 所有的探针都是针对容器不是针对pod 1、 存活探针---livenessProbe&#xff1a;探测容器是否正常运行。如果发现探测失败&#xff0c;会杀掉容器。容器会根据重启策略…

Python从入门到网络爬虫(面向对象详解)

前言 Python从设计之初就已经是一门面向对象的语言&#xff0c;正因为如此&#xff0c;在Python中创建一个类和对象是很容易的。本章节我们将详细介绍Python的面向对象编程。如果你以前没有接触过面向对象的编程语言&#xff0c;那你可能需要先了解一些面向对象语言的一些基本…

【Java集合类篇】HashMap的数据结构是怎样的?

HashMap的数据结构是怎样的? ✔️HashMap的数据结构✔️ 数组✔️ 链表 ✔️HashMap的数据结构 在Java中&#xff0c;保存数据有两种比较简单的数据结构: 数组和链表&#xff08;或红黑树&#xff09;。 HashMap是 Java 中常用的数据结构&#xff0c;它实现了 Map 接口。Has…

Jupyter Notbook+cpolar内网穿透实现公共互联网访问使用数据分析工作

​​ 文章目录 1.前言2.Jupyter Notebook的安装2.1 Jupyter Notebook下载安装2.2 Jupyter Notebook的配置2.3 Cpolar下载安装 3.Cpolar端口设置3.1 Cpolar云端设置3.2.Cpolar本地设置 4.公网访问测试5.结语 ​​​​ 1.前言 在数据分析工作中&#xff0c;使用最多的无疑就是各…

水稻潜在产量估算解决方案

1.背景与技术路线 统计资料表明&#xff0c;尽管我国粮食单产已由 50 年代初期的 1.2t/ha 增加到如今的 5.2t/h&#xff0c;粮食产量增加了 4 倍&#xff0c;但我国人口的增长速度与气候变化导致的农业生产的不确定性&#xff0c; 在水稻收获指数保持稳定的情况下&#xff0c;…

软件测试方法分类-按测试对象划分

接上一篇,下来我们再细讲,第四个维度的分类, 软件测试方法分类-按测试对象划分 本章节重点介绍非功能测试的相关知识,因为功能测试的基本在之前的分类都是有涉及的。 一、非功能测试 1,性能测试(Performance Testing) 检查系统是否满足需求规格说明书中规定的性能。 …

Mysql事务transaction简介

文章目录 什么是事务针对Mysql隔离级别读未提交读提交可重复读串行化 mysql中的数据结构索引数据结构mysql中的锁种类**共享锁和独占锁**表锁、行锁(记录锁、间隙锁、临键锁) spring中的事务事务特性 什么是事务 事务是一个不可分割的数据库操作序列&#xff0c;也是数据库并发…

从0到1入门C++编程——03 内存分区、引用、函数高级应用

文章目录 一、内存分区二、引用三、函数的高级应用1.默认参数2.占位参数3.函数重载 一、内存分区 C程序在执行时&#xff0c;会将内存大致分为4个区&#xff0c;分别是代码区、全局区、栈区和堆区。 代码区用来存放函数体和二进制代码&#xff0c;由操作系统进行管理。 全局区…

力扣刷题-二叉树-二叉搜索树中的搜索

700 二叉搜索树中的搜索 给定二叉搜索树&#xff08;BST&#xff09;的根节点和一个值。 你需要在BST中找到节点值等于给定值的节点。 返回以该节点为根的子树。 如果节点不存在&#xff0c;则返回 NULL。 例如&#xff0c; 在上述示例中&#xff0c;如果要找的值是 5&#x…

迟来的扫雷游戏

今天我们讲如何用C语言编写出一个简单扫雷&#xff0c;扫雷也算是一个比较原始的游戏了吧&#xff0c;那么我们今天就来实现他&#xff01; 首先我们要来缕一缕游戏框架 我们在代码中我们肯定会写许多函数来实现扫雷&#xff0c;那么我们为了简便看出游戏的运行逻辑&#xff0…

字节跳动 Spark 支持万卡模型推理实践

摘要&#xff1a;本文整理自字节跳动基础架构工程师刘畅和字节跳动机器学习系统工程师张永强在本次 CommunityOverCode Asia 2023 中的《字节跳动 Spark 支持万卡模型推理实践》主题演讲。 背景介绍 在云原生化的发展过程中 Kubernetes 由于其强大的生态构建能力和影响力&…

Consule安装与SpringBoot集成

Consule Consul 是由 HashiCorp 开发的一款软件工具&#xff0c;提供了一组功能&#xff0c;用于服务发现、配置管理和网络基础设施自动化。它旨在帮助组织管理现代分布式和微服务架构系统的复杂性。以下是Consul的一些关键方面和功能&#xff1a; 服务发现&#xff1a;Consul…

大数据 - Doris系列《二》- Doris安装(亲测成功版)

目录 &#x1f436;2.1 安装前准备 &#x1f959;1.设置系统最大文件打开句柄数 >启动一个程序的时候&#xff0c;打开文件的数量就是句柄数 &#x1f959;3.时钟同步 &#x1f959;4.关闭交换分区&#xff08;swap&#xff09; &#x1f436;2.2 安装FE &#x1f436…

seo分享:慎重使用蜘蛛池

其实要提高搜索引擎蜘蛛的来访次数&#xff0c;唯一的方法还是要通过网站本身的内容更新。频繁更新有质量的内容&#xff0c;才能够提高蜘蛛的来访次数。如果本身内容更新不多&#xff0c;外部引流的蜘蛛过多&#xff0c;最终发现没什么内容索引&#xff0c;蜘蛛来访的次数也会…

express+mongoDB开发入门教程之mongoose使用讲解

系列文章 node.js express框架开发入门教程 expressmongoDB开发入门教程之mongoDB安装expressmongoDB开发入门教程之mongoose使用讲解 文章目录 系列文章前言一、Mongoose是什么&#xff1f;二、Mongoose安装三、Mongoose在express项目中使用步骤一、连接mongoDB数据库步骤二、…

网络路由跟踪工具

随着企业网络需求的增长&#xff0c;组织发现监控和管理其网络基础设施变得越来越困难。网络管理员正在转向其他工具和资源&#xff0c;这些工具和资源可以使他们的工作更轻松一些&#xff0c;尤其是在故障排除方面。 目前&#xff0c;网络管理员主要使用简单、免费提供的实用…

C#中使用 async await TaskCompletionSource<T>实现异步逻辑同步写

Task、async 和 await 是 C# 中用于处理异步编程的关键概念。它们一起构成了异步编程的基础。 Task Task 是表示异步操作的抽象&#xff0c;它属于 System.Threading.Tasks 命名空间。Task 可以表示已经完成的任务、正在运行的任务或者尚未开始的任务。通过 Task&#xff0c;…

MySQL自定义时间间隔抽稀

MySQL自定义时间间隔抽稀 表设计数据如下按分钟抽稀按小时抽稀按天抽稀 表设计 create table monitor (tid varchar(255) not null,save_date datetime not null,tlevel decimal(10, 2) null,primary key (tid, save_date) );数据如下 按分钟抽稀 SELECT t2…