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

摘要 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.mzph.cn/news/596735.shtml

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

相关文章

ubuntu环境安装配置nginx流程

今天分享ubuntu环境安装配置nginx流程 一、下载安装 1、检查是否已经安装 nginx -v 结果 2、安装 apt install nginx-core 过程 查看版本&#xff1a;nginx -v 安装路径&#xff1a;whereis nginx nginx文件安装完成之后的文件位置&#xff1a; /usr/sbin/nginx&#xf…

Axure鲜花商城网站原型图,网上花店订花O2O本地生活电商平台

作品概况 页面数量&#xff1a;共 30 页 兼容软件&#xff1a;仅支持Axure RP 9/10&#xff0c;非程序软件无源代码 应用领域&#xff1a;鲜花网、花店网站、本地生活电商 作品特色 本作品为「鲜花购物商城」网站模板&#xff0c;高保真高交互&#xff0c;属于O2O本地生活电…

OpenVINS学习5——VioManager.cpp/h学习与注释

前言 之前又看到说VioManager.cpp/h是OpenVINS中的核心程序&#xff0c;这次就看看这里面都写了啥&#xff0c;整体架构什么样&#xff0c;有哪些函数功能。具体介绍&#xff1a; VioManager类 整体分析 VioManager类包含 MSCKF 工作所需的状态和其他算法。我们将测量结果输…

python的课后练习总结3之条件语句

1,简单点&#xff0c;只有IF IF 后面加入条件然后冒号: 条件成立执行的代码1 条件成立执行的代码2 条件是否成立都执行的代码 身高 float(input(请输入你的身高(米):)) if 身高 > 1.3:print(f您的身高是{身高}米,请您买票) print(祝您旅途愉快) 2,IF 加个else if 条件:…

Spring AOP的环境搭建、切入点表达式、通知注解

Spring AOP的实现 Spring AOP环境搭建AOP坐标依赖引入添加xml配置实现三层架构 定义切入点Pointcut("匹配规则")切入点表达式1. 执行所有的公共方法2.执行任意的set方法3.设置指定包下的任意类的任意方法 (指定包: com.svt.service)4.设置指定包及于包下的任意类的任…

用 Python 抓取 bilibili 弹幕并分析!

01 实现思路 首先&#xff0c;利用哔哩哔哩的弹幕接口&#xff0c;把数据保存到本地。接着&#xff0c;对数据进行分词。最后&#xff0c;做了评论的可视化。 02 弹幕数据 平常我们在看视频时&#xff0c;弹幕是出现在视频上的。实际上在网页中&#xff0c;弹幕是被隐藏在源代码…

【熔断限流组件resilience4j和hystrix】

文章目录 &#x1f50a;博主介绍&#x1f964;本文内容起因resilience4j落地实现pom.xml依赖application.yml配置接口使用 hystrix 落地实现pom.xml依赖启动类上添加注解接口上使用 &#x1f4e2;文章总结&#x1f4e5;博主目标 &#x1f50a;博主介绍 &#x1f31f;我是廖志伟…

【期末复习向】数据可视化技术

一、重点复习 题型&#xff1a;填空题&#xff08;15道&#xff0c;2分一个&#xff09;与简答题&#xff08;3道题目&#xff0c;10分一个&#xff09;与绘图题&#xff08;选画2个类型的图&#xff09; 1.什么是数据可视化 在计算机视觉领域&#xff0c;数据可视化是对数据的…

Linux 进程(八) 进程的退出码

main 函数的返回值叫做进程的退出码。当进程成功退出的时候&#xff0c;我们一般用0来表示。进程失败的时候一般用非零来表示。我们使用不同的数字来表示进程退出时不同的失败原因。 我们查看系统的有多少退出码以及其含义时需要用到strerror() 他的头文件和用法如下。 通过一…

CSS 放大旋转动画

<template><div class"container" mouseenter"startAnimation" mouseleave"stopAnimation"><!-- 旋方块 --><div class"box" :class"{ rotate-scale-up: isAnimating }"><!-- 元素内容 -->&l…

从零开始搭建企业级前端项目模板(vue3+vite+ts)

文章目录 主要内容一、vite脚手架工具初始化项目二、项目代码加入eslint校验和自动格式化2.1安装对应依赖插件2.2 配置script脚本&#xff0c;项目安装eslint配置2.3 安装完成后&#xff0c;后面启动项目还缺少一些依赖&#xff0c;提前按需安装好 三&#xff0c;修改eslintrc.…

3D目标检测(教程+代码)

随着计算机视觉技术的不断发展&#xff0c;3D目标检测成为了一个备受关注的研究领域。与传统的2D目标检测相比&#xff0c;3D目标检测可以在三维空间中对物体进行定位和识别&#xff0c;具有更高的准确性和适用性。本文将介绍3D目标检测的相关概念、方法和代码实现。 一、3D目…

2023年12月青少年软件编程Python等级考试(三级)真题试卷

2023年12月青少年软件编程Python等级考试&#xff08;三级&#xff09;真题试卷 题目总数&#xff1a;38 总分数&#xff1a;100 选择题 第 1 题 单选题 一个非零的二进制正整数&#xff0c;在其末尾添加两个“0”&#xff0c;则该新数将是原数的&#xff1f;&#x…

nuxt3 env文件、全局变量处理

有两种方向 通过配置nuxt.config.ts Nuxt提供的钩子函数&#xff0c;实现全局变量的获取 runtimeconfig env文件往runtimeconfig放入内容 useAppConfig 通过env文件配置来获取服务端全局变量&#xff0c;客户端通过vite.define实现 nuxt.config.ts Nuxt钩子 1. runtim…

Win32 TEXT()宏学习

之前学习了_T()宏&#xff1b; _T()是MFC的&#xff1b; TEXT()是win32的&#xff1b; _T("")定义于tchar.h&#xff1b; TEXT宏是windows程序设计中经常遇到的宏&#xff0c;定义在 <winnt.h>中&#xff1b; 如果使用UNICODE字符集&#xff0c;则TEXT&…

kubernetes(三)

文章目录 1. k8s弹性伸缩1.1 安装heapster监控1.2 弹性伸缩使用和验证 2. 持久化存储2.1 emptyDir 1. k8s弹性伸缩 k8s弹性伸缩&#xff0c;需要附加插件heapster 1.1 安装heapster监控 使用heapster(低版本)可以监控pod压力大不大 使用hpa调节pod数量&#xff0c;自动扩容或…

chatgpt3.5和chatgpt4的区别

ChatGPT4是基于GPT-3模型的一个实例&#xff0c;但ChatGPT4已经进行了进一步的改进和优化。GPT-3&#xff08;第三代生成式预训练模型&#xff09;是OpenAl开发的一个大型语言模型&#xff0c;它在很多自然语言处理任务中表现出色。 ChatGPT4继承了GPT-3的基本架构和能力&…

清风数学建模笔记-聚类算法

K-maens算法&#xff1a; 算法的原理&#xff1a; 在论文中时&#xff0c;可以把一些可以流程化的算法的流程图加上去 优点&#xff1a; 缺点&#xff1a; 点容易受异常值的影响&#xff0c;且受影响较大 k-means算法&#xff1a; 使用SPSS进行聚类分析&#xff1a; S默认使用…

CCNP课程实验-07-OSPF-Trouble-Shooting

目录 实验条件网络拓朴 环境配置开始排错错点1&#xff1a;R1-R2之间认证不匹配错误2&#xff1a;hello包的时间配置不匹配错误3&#xff1a;R2的e0/1接口区域配置不正确错误4&#xff1a;R4的e0/1接口没有配置进OSPF错误5&#xff1a;R2的区域1没有配置成特殊区域错误6&#x…

深度学习 | 多模态算法

AIGC也就是AI内容生成已经成为新一轮人工智能发展的热点和必然趋势&#xff0c;它使得大规模高质量的创作变得更加容易。 一 、InstructGPT模型 1、GPT系列回顾 chatGPT和InstructGPT都使用了指示学习和基于人工反馈的强化学习来指导模型的训练&#xff0c;不同点仅仅是在采集数…