[论文阅读]Voxel R-CNN——迈向高性能基于体素的3D目标检测

这篇具有很好参考价值的文章主要介绍了[论文阅读]Voxel R-CNN——迈向高性能基于体素的3D目标检测。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Voxel R-CNN

Voxel R-CNN: Towards High Performance Voxel-based 3D Object Detection
迈向高性能基于体素的3D目标检测
论文网址:Voxel R-CNN
论文代码:Voxel R-CNN

简读论文

该论文提出了 Voxel R-CNN,这是一种基于体素的高性能 3D 对象检测框架。作者认为,原始点的精确定位对于准确的目标检测并不重要,粗体素粒度可以提供足够的检测精度。Voxel R-CNN 由 3D 主干网络、2D 鸟瞰 (BEV) 区域提议网络 (RPN) 和检测头组成。该框架利用两阶段方法中的体素特征,实现了与最先进的基于点的模型相当的检测精度,但计算成本仅为其一小部分。作者在 KITTI 数据集和 Waymo 开放数据集上进行了大量实验,证明 Voxel R-CNN 在保持实时帧处理速率的同时提供了更高的检测精度。

Voxel R-CNN前向传播过程

[论文阅读]Voxel R-CNN——迈向高性能基于体素的3D目标检测,基于点云的三维目标检测,论文阅读,cnn,3d,人工智能,目标检测,深度学习
Voxel R-CNN网络的前向传播过程可以总结如下:

  1. Voxelization:原始点云数据被划分为规则的体素,体素是表示物体空间占用情况的3D网格单元。

  2. 3D骨干网络:体素化数据被输入到3D骨干网络中,该网络逐渐将体素抽象成3D特征体积。该网络从体素数据中提取高级特征。

  3. 2D骨干网络和RPN:3D特征体积被转换为鸟瞰图(BEV)表示。2D骨干网络和Region Proposal Network(RPN)被应用于在BEV空间中生成密集的区域建议。这些建议表示潜在的物体位置。

  4. Voxel RoI池化:为了从3D特征体积中提取感兴趣区域(RoI)特征,进行Voxel RoI池化操作。该操作从体素特征体积中聚合空间上下文。它利用邻居感知属性提取相邻体素特征,并使用局部特征聚合模块进行加速。

  5. 检测头:从Voxel RoI池化获得的RoI特征被输入到检测头中,该头部进一步细化边界框的预测。这一步提高了物体检测的准确性。

总体而言,Voxel R-CNN网络将体素化表示的优势与点云模型的准确性相结合。它通过利用体素特征体积中的3D结构上下文,并使用Voxel RoI池化从体素数据中直接提取RoI特征,实现了这一目标。

摘要

3D 目标检测的最新进展在很大程度上依赖于 3D 数据的表示方式,即基于体素或基于点的表示。许多现有的高性能3D 检测器都是基于点的,因为这种结构可以更好地保留精确的点位置。然而,由于无序存储,点级特征会导致较高的计算开销。相比之下,基于体素的结构更适合特征提取,但由于输入数据被划分为网格,因此精度通常较低。本文采取了略有不同的观点 - 本文发现原始点的精确定位对于高性能 3D 目标检测来说并不是必需的,并且粗体素粒度也可以提供足够的检测精度。考虑到这一观点,本文设计了一个简单但有效的基于体素的框架,名为 Voxel R-CNN。通过在两阶段方法中充分利用体素特征,本文的方法实现了与最先进的基于点的模型相当的检测精度,但计算成本仅为其一小部分。 Voxel R-CNN 由 3D 主干网络、2D 鸟瞰(BEV)区域提议网络和检测头组成。体素 RoI 池化旨在直接从体素特征中提取 RoI 特征以进行进一步细化。在广泛使用的 KITTI 数据集和更新的 Waymo 开放数据集上进行了大量的实验。结果表明,与现有的基于体素的方法相比,Voxel R-CNN 提供了更高的检测精度,同时保持了实时帧处理速率,即在 NVIDIA RTX 2080 Ti GPU 上的速度为 25 FPS。

引言

使用点云的 3D 目标检测在自动驾驶汽车、机器人和增强/虚拟现实领域受到了广泛关注。尽管深度学习的最新发展使得二维图像目标检测的效果激增,但它仍然是不能直接将这些 2D 方法应用于 3D 点云,特别是在处理点云的稀疏性和非结构化特性时。此外,这些应用通常要求检测系统具有高效率,由于 3D 空间更大,因此设计 3D 检测器变得更加困难。
现有的 3D 检测方法可大致分为两类,即基于体素的和基于点的。基于体素的方法将点云划分为规则网格,这更适用于卷积神经网络(CNN),并且由于其优越的内存定位性,在特征提取方面更为高效。然而,其缺点是体素化通常会导致精确位置信息的丢失。当前最先进的 3D 检测器主要是基于点的,它以原始点云作为输入,并通过迭代采样和分组抽象出一组点表示。先进的基于点的方法在各种基准上排名最高。因此,这导致了一种流行的观点,即原始点云中的精确位置信息对于准确的目标定位至关重要。尽管检测精度较高,但基于点的方法一般来说效率较低,因为用点表示法搜索近邻进行点集抽象的成本较高。
随着检测算法的成熟,本文已经准备好将这些算法部署在现实系统上。这里,出现了一个新的挑战:能否设计出一种与先进的基于点的方法一样准确、与基于体素的方法一样快的方法?在这项工作中,为了实现这一目标,采用基于体素的框架并尝试提高其准确性。本文首先认为原始点云的精确定位很好但没有必要。本文观察到,基于体素的方法通常在鸟瞰图 (BEV) 表示上执行目标检测,即使输入数据是 3D 体素。相比之下,基于点的方法通常依赖抽象的点表示来恢复 3D 结构上下文,并根据逐点特征进行进一步细化,如图 1 (a) (b) 所示。通过仔细研究底层机制,本文发现,现有的基于体素的方法的主要缺点在于,它们将三维特征体积转换为 BEV 表示,但却没有恢复三维结构上下文。
[论文阅读]Voxel R-CNN——迈向高性能基于体素的3D目标检测,基于点云的三维目标检测,论文阅读,cnn,3d,人工智能,目标检测,深度学习
考虑到这一点,本文建议从 3D 特征体中聚合 3D 结构上下文。具体来说,引入了一种新颖的基于体素的检测器,即Voxel R-CNN,以充分利用两阶段pipeline中的体素特征(见图 1 ©)。 Voxel R-CNN 由三个核心模块组成:(1) 3D 主干网络,(2) 2D 主干网络,后跟区域提议网络 (RPN),以及 (3) 具有新体素 RoI 池化操作的检测头。 3D骨干网络逐渐将体素抽象为3D特征体。密集区域提案由 2D 主干和 RPN 生成。然后,通过体素 RoI 池化直接从 3D 特征体中提取 RoI 特征。在设计体素 RoI 池化时,利用邻居感知属性(有利于更好的内存局部性)来提取相邻体素特征,并设计一个局部特征聚合模块以进一步加速。最后,采用 3D RoI 特征进行进一步的框细化
这项工作的主要贡献源于 Voxel R-CNN 的设计,它在准确性和效率之间取得了谨慎的平衡。 Voxel R-CNN 令人鼓舞的实验结果也证实了本文的观点:原始点的精确定位对于高性能 3D 目标检测并不重要,较粗的体素粒度也可以为此任务提供足够的空间上下文线索。请注意,本文的 Voxel R-CNN 框架作为一个简单但有效的基线,有助于进一步的调查和下游任务。

对3D目标检测的思考

本节首先回顾两种代表性的基线方法,即 SECOND 和 PVRCNN ,然后研究开发高性能 3D 物体检测器的关键因素。

Revisiting

SECOND. : SECOND是一种基于体素的单阶段目标检测器。它将体素化数据馈送到 3D 主干网络以进行特征提取。然后将 3D 特征体积转换为 BEV 表示。最后,应用 2D 主干和区域提议网络 (RPN) 来执行检测。
PV-RCNN. : PV-RCNN 通过添加关键点分支来保留 3D 结构信息来扩展 SECOND。引入体素集抽象 (VSA) 将多尺度 3D 体素特征集成到关键点中。通过 RoI 网格池化从关键点进一步提取每个 3D 区域提案的特征以进行框细化。

Analysis

SECOND和PV-RCNN在检测性能(即准确率和效率)方面存在很大差距。这两种方法有以下不同点。首先,SECOND 是一种单阶段方法,而 PV-RCNN 采用检测头进行框细化。其次,PV-RCNN 中的关键点保留了 3D 结构信息,而 SECOND 直接对 BEV 表示进行检测。为了验证框细化和 3D 结构信息对检测性能的影响,本文在 SECOND 的 2D 主干网络顶部添加了一个检测头。由于 BEV 框未与轴对齐,因此利用旋转 RoI 对齐进行 RoI 特征提取。
在 BEV 特征之上直接添加 BEV 检测头可使 KITTI 汽车适度数据的 AP 提高 0.6%,但迄今为止仍落后于 PV-RCNN 的准确性。这验证了边界框细化的有效性,也表明BEV表示的能力相当有限。通常,PV-RCNN 通过体素集抽象将体素特征集成到采样关键点中。关键点作为中间特征表示来有效保留 3D 结构信息。然而,点-体素交互几乎占据了整体运行时间的一半,这使得 PV-RCNN 比 SECOND 慢得多。
Summary. 总之,通过分析 SECOND 中鸟瞰图(BEV)特征表示的局限性以及 PV-RCNN 中每个组件的计算成本,观察到以下几点:(a)3D 结构对于 3D 目标检测器非常重要,因为仅 BEV 表示不足以精确预测 3D 空间中的边界框; (b)点-体素特征交互非常耗时并且影响检测器的效率。这些观察结果促使本文直接利用 3D 体素张量并开发仅体素的 3D 目标检测器。

Voxel R-CNN Design

Voxel R-CNN 是一种基于体素的 3D 目标检测两阶段框架。如图 2 所示,体素 R-CNN 包括:(a) 3D 主干网络,(b) 2D 主干网络,后跟区域提议网络 (RPN),以及 © 体素 RoI 池化和检测头框细化。在 Voxel RCNN 中,首先将原始点云划分为规则体素,并利用 3D 主干网络进行特征提取。然后,将稀疏 3D 体素转换为 BEV 表示,并在其上应用 2D 主干网络和 RPN 来生成 3D 区域提案。随后,使用体素 RoI 池化来提取 RoI 特征,并将其输入到检测头中进行框细化。下面详细讨论这些模块。由于创新主要在于体素RoI池化,所以首先讨论它。
[论文阅读]Voxel R-CNN——迈向高性能基于体素的3D目标检测,基于点云的三维目标检测,论文阅读,cnn,3d,人工智能,目标检测,深度学习

Voxel RoI pooling

为了直接聚合来自 3D 体素特征量的空间上下文,本文提出了体素 RoI 池化。
Voxel Volumes as Points. : 本文将稀疏 3D 体积表示为一组非空体素中心点及其相应的特征向量。具体来说,体素中心的 3D 坐标是通过索引、体素大小和点云边界来计算的。
Voxel Query. : 本文提出了一种名为体素查询的新操作,用于从 3D 特征体积中查找邻近体素。与无序点云相比,体素规则排列在量化空间中,易于邻居访问。例如,查询体素的 26 个相邻体素可以通过添加三元组偏移量来轻松计算体素索引 (i, j, k)。通过利用这一特性,本文设计了体素查询来有效地对体素进行分组。体素查询如图3所示。
[论文阅读]Voxel R-CNN——迈向高性能基于体素的3D目标检测,基于点云的三维目标检测,论文阅读,cnn,3d,人工智能,目标检测,深度学习
首先将查询点量化为体素,然后通过索引翻译可以有效地获得邻近体素。本文在体素查询中利用曼哈顿距离,并在距离阈值内采样最多 K 个体素。具体来说,体素 α = (iα, jα, kα) 和 β = (iβ, jβ, kβ) 之间的曼哈顿距离 D(α, β) 计算如下:
[论文阅读]Voxel R-CNN——迈向高性能基于体素的3D目标检测,基于点云的三维目标检测,论文阅读,cnn,3d,人工智能,目标检测,深度学习
假设 3D 特征体积中有 N 个非空体素,我们利用球查询来查找给定查询点的相邻体素,时间复杂度为 O(N)。然而,进行体素查询的时间复杂度仅为 O(K),其中 K 是邻居的数量。 Neighboraware 属性使得使用体素查询对邻近体素特征进行分组比使用球查询对邻近点特征进行分组更加有效。
Voxel RoI Pooling Layer. : 本文设计体素 RoI 池化层如下。它首先将区域提议划分为 G×G×G 规则子体素。取中心点作为相应子体素的网格点。由于 3D 特征量极其稀疏(非空体素占空间 < 3%),不能像 (Fast rcnn) 那样直接对每个子体素的特征利用最大池化。相反,将相邻体素的特征集成到网格点中以进行特征提取。具体来说,给定一个网格点gi,首先利用体素查询来对一组相邻体素进行分组 Γi = {vi1 , vi2 , ··· , vik }。然后,使用 PointNet 模块聚合相邻体素特征,如下所示:
[论文阅读]Voxel R-CNN——迈向高性能基于体素的3D目标检测,基于点云的三维目标检测,论文阅读,cnn,3d,人工智能,目标检测,深度学习
其中 vi − gi 表示相对坐标,φk i 是 vk i 的体素特征,Ψ(·) 表示 MLP。沿通道执行最大池化操作max(·)以获得聚合特征向量ηi。特别是,利用体素 RoI 池化从 3D 主干网络最后两个阶段的 3D 特征体中提取体素特征。对于每个阶段,设置两个曼哈顿距离阈值以对具有多个尺度的体素进行分组。然后,将从不同阶段和规模汇集的聚合特征连接起来以获得 RoI 特征。
Accelerated Local Aggregation. : 即使使用本文提出的体素查询,体素 RoI 池化中的局部聚合操作(即 PointNet 模块)仍然涉及很大的计算复杂度。如图4(a)所示,总共有M个网格点(M = r × G3,其中r是RoI的数量,G是网格大小),每个网格点分为K个体素。分组特征向量的维度为C+3,包括C维体素特征和3维相对坐标。当应用 FC 层时,分组体素占用大量内存并导致大量计算 FLOP(O(M×K × (C + 3) ×C’))。
[论文阅读]Voxel R-CNN——迈向高性能基于体素的3D目标检测,基于点云的三维目标检测,论文阅读,cnn,3d,人工智能,目标检测,深度学习
本文另外引入了加速的 PointNet 模块,以进一步降低体素查询的计算复杂度。通常,如图 4 (b) 所示,体素特征和相对坐标被分解为两个流。给定权重为W ∈ R(C’,C+3) 的FC 层,将其分为WF ∈ R(C’,C) 和WC ∈ R(C’,3)。由于体素特征与网格点无关,因此在执行体素查询之前,在体素特征上应用带有 WF 的 FC 层。然后,在体素查询之后,只需将分组的相对坐标乘以WC即可获得相对位置特征并将其添加到分组的体素特征中。本文的加速 PointNet 模块的 FLOP 为 O(N×C×C’ +M×K× 3×C’)。由于分组体素的数量(M×K)比N高一个数量级,因此加速后的PointNet模块比原始模块更高效。

Backbone and Region Proposal Networks

本文遵循类似的设计(Second ;PV-RCNN)来构建本文的骨干网络。 3D 主干网络逐渐将体素化输入转换为特征量。然后,输出张量沿 Z 轴堆叠以生成 BEV 特征图。 2D 主干网络由两个组件组成:一个具有两块标准 3×3 卷积层的自顶向下特征提取子网络,以及一个对自顶向下特征进行上采样和连接的多尺度特征融合子网络。最后,2D 主干网络的输出与两个同级 1 × 1 卷积层进行卷积,以生成 3D 区域提案。

Detect Head

检测头将 RoI 特征作为框细化的输入。具体来说,共享 2 层 MLP 首先将 RoI 特征转换为特征向量。然后,将展平的特征注入两个兄弟分支:一个用于边界框回归,另一个用于置信度预测。框回归分支预测 3D 区域提案到地面真值框的残差,置信分支预测 IoU-相关置信度得分。

Training Objectives

Losses of RPN. : RPN 的损失设计为分类损失和框回归损失的组合,如下所示:
[论文阅读]Voxel R-CNN——迈向高性能基于体素的3D目标检测,基于点云的三维目标检测,论文阅读,cnn,3d,人工智能,目标检测,深度学习
Losses of detect head. : 分配给置信分支的目标是 IoU 相关值,如下:
[论文阅读]Voxel R-CNN——迈向高性能基于体素的3D目标检测,基于点云的三维目标检测,论文阅读,cnn,3d,人工智能,目标检测,深度学习
其中IoUi是第i个proposal和对应的groundtruth box之间的IoU,θH和θL是前景和背景IoU阈值。这里利用二元交叉熵损失进行置信度预测。框回归分支也像 RPN 中一样使用 Huber Loss。检测头的损失计算如下:
[论文阅读]Voxel R-CNN——迈向高性能基于体素的3D目标检测,基于点云的三维目标检测,论文阅读,cnn,3d,人工智能,目标检测,深度学习

结论

本文提出了 Voxel R-CNN,一种具有基于体素表示的新型 3D 目标检测器。以体素为输入,Voxel R-CNN 首先从鸟瞰图特征表示中生成密集区域建议,然后利用体素 RoI 池化从 3D 体素特征中提取区域特征以进行进一步细化。通过充分利用体素表示,本文的体素 R-CNN 在准确性和效率之间取得了谨慎的平衡。 KITTI 数据集和 Waymo 开放数据集的令人鼓舞的结果表明,本文的 Voxel-RCNN 可以作为简单但有效的基线,以促进 3D 对象检测和其他下游任务的研究。文章来源地址https://www.toymoban.com/news/detail-731110.html

到了这里,关于[论文阅读]Voxel R-CNN——迈向高性能基于体素的3D目标检测的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 《高性能MySQL》——创建高性能的索引(笔记)

    索引(在MySQL中也叫做“键(key)”) 是存储引擎用于快速找到记录的一种数据结构。 索引对于良好的性能非常关键。尤其是当表中的数据量越来越大时,索引对性能的影响愈发重要。 在数据量较小且负载较低时,不恰当的索引对性能的影响可能还不明显,但当数据量逐渐增大时

    2024年02月07日
    浏览(90)
  • 目标检测经典论文精读-R-CNN

    论文链接: https://www.cv-foundation.org/openaccess/content_cvpr_2014/papers/Girshick_Rich_Feature_Hierarchies_2014_CVPR_paper.pdf 论文技术报告链接: https://arxiv.org/pdf/1311.2524.pdf 出处: CVPR 2014 参考视频: https://www.bilibili.com/video/BV1d64y1W74E/?spm_id_from=333.999.0.0vd_source=e321967bf2cdc2338238788250d12de8 总结起来就

    2024年02月04日
    浏览(35)
  • 实例分割论文精读:Mask R-CNN

    本文提出了一种概念简单、灵活、通用的实例分割方法,该方法在有效地检测图像中的物体同时,为每个物体实例生成一个实例分割模板,添加了一个分支,用于预测一个对象遮罩,与现有的分支并行,用于边界框识别,Mask R-CNN易于训练,只给Faster R-CNN增加了很小的开销,运

    2024年02月01日
    浏览(27)
  • 【Linux高性能服务器编程】——高性能服务器框架

      hello !大家好呀! 欢迎大家来到我的Linux高性能服务器编程系列之高性能服务器框架介绍,在这篇文章中, 你将会学习到高效的创建自己的高性能服务器,并且我会给出源码进行剖析,以及手绘UML图来帮助大家来理解,希望能让大家更能了解网络编程技术!!! 希望这篇

    2024年04月25日
    浏览(35)
  • 读高性能MySQL(第4版)笔记09_创建高性能索引(下)

    1.4.4.1. InnoDB的二级索引在叶子节点中保存了记录的主键值,所以如果二级索引能够覆盖查询,则可以避免对主键索引的二次查询 7.1.5.1. 常见的类似错误通常是由于尝试使用rsync备份InnoDB导致的 7.3.3.1. 否则,对于范围查询、索引覆盖扫描等操作来说,速度可能会降低很多 7

    2024年02月08日
    浏览(39)
  • 读高性能MySQL(第4版)笔记08_创建高性能索引(上)

    2.4.2.1. 按照索引列中的数据大小顺序存储的 2.4.3.1. 键前缀查找只适用于根据最左前缀的查找 2.4.4.1. 在查询某些条件的数据时,存储引擎不再需要进行全表扫描 2.4.4.2. 通过比较节点页的值和要查找的值可以找到合适的指针进入下层子节点,这些指针实际上定义了子节点页中

    2024年02月08日
    浏览(29)
  • 《高性能MYSQL》-- 查询性能优化

    查询性能优化 深刻地理解MySQL如何真正地执行查询,并明白高效和低效的原因何在 查询的生命周期(不完整):从客户端到服务器,然后服务器上进行语法解析,生成执行计划,执行,并给客户端返回结果。 一条查询,如果查询得很慢,原因大概率是访问的数据太多 对于低

    2024年03月11日
    浏览(52)
  • 高性能MySQL实战(三):性能优化

    大家好,我是 方圆 。这篇主要介绍对慢 SQL 优化的一些手段,而在讲解具体的优化措施之前,我想先对 EXPLAIN 进行介绍,它是我们在分析查询时必要的操作,理解了它输出结果的内容更有利于我们优化 SQL。为了方便大家的阅读,在下文中规定类似 key1 的表示二级索引,key_

    2024年02月11日
    浏览(38)
  • 《高性能MySQL》——查询性能优化(笔记)

    将查询看作一个任务,那么它由一系列子任务组成,实际我们所做的就是: 消除一些子任务 减少子任务的执行次数 让子任务运行更快 查询的生命周期大概可分为 = { 客户端 服务器 : 进行解析 , 生成执行计划 执行:包括到存储引擎的调用,以及用后的数据处理 { 排序 分组

    2024年02月13日
    浏览(32)
  • 高性能JavaScript

    管理浏览器中的JavaScript代码是个棘手的问题,因为代码执行阻塞了其他浏览器处理过程,注入用户界面回执。每次遇到 script 便签,页面必须停下来等待代码下载(如果是外部的)并执行,然后再继续处理页面其他部分。但是,有几种方法可以减少JavaScript对性能的影响: 1、

    2024年02月11日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包