Voxel R-CNN: Towards High Performance Voxel-based 3D Object Detection

Abstract

3D对象检测的最新进展在很大程度上取决于如何表示3D数据,即基于体素或基于点的表示。 许多现有的高性能三维探测器都是基于点的,因为这种结构可以更好地保留精确的点位置。 尽管如此,由于无序存储,点级特性会导致较高的计算开销。 相反,基于体素的结构更适合于特征提取,但由于输入数据被划分为网格,往往产生较低的精度。 在本文中,我们采取了一个稍微不同的观点-我们发现,对原始点的精确定位对于高性能的3D对象检测来说并不是必不可少的,粗体素粒度也可以提供足够的检测精度。 考虑到这一观点,我们设计了一个简单但有效的基于体素的框架,名为Voxel R-CNN。 通过在两阶段方法中充分利用体素特征,我们的方法获得了与最先进的基于点的模型相当的检测精度,但仅占计算成本的一小部分。Voxel R-CNN由3D主干网络、2D鸟瞰区域建议网络和检测头组成。 设计了一个体素RoI pooling,直接从体素特征中提取RoI特征,以便进一步细化。 对广泛使用的KITTI数据集和最近的Waymo开放数据集进行了广泛的实验。 我们的结果表明,与现有的基于体素的方法相比,Voxel R-CNN在保持实时帧处理速率的同时,即在NVIDIA RTX 2080Ti GPU上以25FPS的速度提供了更高的检测精度。 代码将很快提供。

Introduction

主要分为两个大类:基于体素的和基于点的。VoxelNet, Second和PointPillars将点云划分为规则的网络,这对于CNN更实用,对于特征提取更高效,因为它的优越的记忆局部性。但是缺点就是体素常常导致准确位置信息的丢失。目前表现最好的3D检测器主要是基于点的,这是将原始点作为输入,通过迭代的采样和组提取一系列点(PointNet)。比较好的基于点的方法(STD, Point R-CNN, 3DSSD, PV R-CNN)都在不同的基准上(KITTI, nuScenes, Waymo开源数据集)排名靠前。

新观点: 对于准确定位的目标定位,原始点云的精确位置信息不是必须的.

现存体素方法的不足: 3D特征转化为BEV视角时没有保存3D结构语境信息.

Voxel R-CNN的结构:

  • 一个3Dbackbone;

  • 一个2Dbackbone 之后跟着一个RPN;

  • 带有voxel RoI pooling操作的检测头;

在设计体素RoI Pooling时,我们采用邻居感知的属性(有利于更好的内存局部性)来提取相邻的体素特征,并设计一个局部特征聚合模块以进一步加速。

Reflection on 3D Object Detection

Revisiting

Second


Second是一个基于体素的一阶段目标检测器.送入体素数据到3D backbone网络,用于特征提取.之后的3D特征卷转化为BEV展示.最后在利用一个2D的backbone以及RPN进行目标检测.

PV-RCNN

PV-RCNN对Second的方法进行了延展,增加了关键点分支用于保存3D结构信息. 引入Voxel Set Abstraction,在关键点中聚合多尺度的3D体素特征.通过RoI Pooling进一步从关键点中提取每个三维区域提案的特征,以进行框细化。

Analysis

second与pv-rcnn之间的区别:

  • second采用的是一阶段,pv-rcnn采用的是二阶段;
  • PV-RCNN中的关键点保存了3D结构信息, Second直接利用BEV进行了检测.

Summary:

  • 3D结构对于3D目标检测非常重要;
  • point-voxel 特征交互非常耗时;

Voxel R-CNN Design

Voxel RoI pooling

Voxel Volumes as Points

一系列非空点:
{ v i = ( x i , y i , z i ) } i = 1 N { ϕ i } i = 1 N , 性 质 : 索 引 , 体 素 大 小 以 及 点 云 边 界 \{v_i = (x_i, y_i, z_i)\}_{i = 1}^{N}\\ \{\phi_{i}\}_{i = 1}^{N}, 性质:索引, 体素大小以及点云边界 \\ {vi​=(xi​,yi​,zi​)}i=1N​{ϕi​}i=1N​,性质:索引,体素大小以及点云边界
Voxel Query

这个query point首先量化为一个体素,之后通过索引平移能够高效的得到临近的体素。我们在voxel query中利用曼哈顿距离,并且在一个距离阈值上采样最多K个voxels。

Voxel RoI Pooling Layer.

我们将近邻体素的特征集成到网格点进行特征提取。具体来说,给定一个网格点g_i,我们首先利用voxel query来分组一系列的近邻体素{v_i^1, v_i2,…,v_iK}。之后我们利用Point net模块聚合近邻体素特征。

其中,
η i = m a x k = 1 , 2 , . . . , K { Ψ ( [ v i k − g i ; ϕ i k ] ) } v i − g i : 表 示 相 对 坐 标 ϕ i k : 表 示 v i k 的 体 素 特 征 Ψ : 表 明 是 一 个 M L P m a x : 表 示 m a x p o o l i n g η i : 聚 合 的 特 征 向 量 \eta_i = max_{k = 1, 2, ..., K}\{\Psi([v_i^k - g_i;\phi_i^k])\}\\ v_i - g_i: 表示相对坐标\\ \phi_i^k: 表示v_i^k的体素特征\\ \Psi: 表明是一个MLP\\ max:表示max pooling\\ \eta_i: 聚合的特征向量\\ ηi​=maxk=1,2,...,K​{Ψ([vik​−gi​;ϕik​])}vi​−gi​:表示相对坐标ϕik​:表示vik​的体素特征Ψ:表明是一个MLPmax:表示maxpoolingηi​:聚合的特征向量
我们利用Voxel RoI Pooling从3D backbone网络中最后两个阶段的3D特征中提取体素特征.对于每个阶段,利用两步曼哈顿距离作为多尺度的分组体素的阈值.之后我们合并这些聚合的特征进而得到RoI特征,这些聚合的特征是不同的阶段和不同的尺度的.

Accelerated Local Aggregation

(a)中表示:

  • 一共有M个网格点,每个网格点的大小为 r x G x G x G r x G x G x G rxGxGxG, 其中 r r r表示RoI的数量, G表示网格的大小.
  • 每个网络点中有K个体素特征, 每个体素特征有多个 C + 3 C+3 C+3个通道,其中C表示体素特征,3表示坐标.
  • 分组的算力为 O ( M x K x ( C x 3 ) x C ′ ) O(M x K x (C x 3) x C') O(MxKx(Cx3)xC′)

(b)表示: accelerated PointNet Module

目的: 降低Voxel feature的算力

  • 将体素特征和相对坐标分解成两个分支
  • 在进行voxel query之前, 直接对体素特征进行FC, 参数为 W F W_F WF​. 因为体素特征独立于网格点.
  • voxel query之后,我们仅仅对分组的相对坐标进行乘法运算, 参数为 W C W_C WC​, 获得相对位置特征
  • 之后两者相加,时间复杂度为 O ( N x C x C ′ + M x K x 3 x C ′ ) O(N x C x C' + M x K x 3 x C') O(NxCxC′+MxKx3xC′), 由于 M x K M x K MxK远大于 N N N, 所以该部分更高效.

Backbone and Region Proposal Networks

采用的backbone和Second和PV R-CNN网络的backbone结构一致.

Detect Head

共享2层MLP首先将RoI特征转换为特征向量。之后将展开的特征送入到两个分支中: 一个是边界框回归, 一个是置信度预测.

Conclusion

我们提出了VoxelR-CNN,一种新的基于体素的3D目标检测器。 以体素为输入,VoxelR-CNN首先从鸟瞰特征表示中生成密集区域提案,然后利用体素RoI Pooling从3D体素特征中提取区域特征,以进一步细化。 通过充分利用体素表示,我们的VoxelR-CNN在准确性和效率之间取得了仔细的平衡。 在KITTI数据集和WaymoOpen数据集上的令人鼓舞的结果表明,我们的Voxel-RCNN可以作为一个简单但有效的基线,以方便对3D对象检测和其他下游任务的研究。

Voxel-RCNN相关推荐

  1. AAAI2021论文:一个高性能3-D目标两步检测法Voxel R-CNN

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨黄浴@知乎 来源丨https://zhuanlan.zhihu.com/p/3453649291 ...

  2. 详解两阶段3D目标检测网络 Voxel R-CNN:Towards High Performance Voxel-based 3D Object Detection

    本文介绍一篇两阶段的3D目标检测网络:Voxel R-CNN,论文已收录于AAAI 2021. 这里重点是理解本文提出的 Voxel RoI pooling. 论文链接为:https://arxiv. ...

  3. 一文尽览 | 基于点云、多模态的3D目标检测算法综述!(Point/Voxel/Point-Voxel)

    点击下方卡片,关注"自动驾驶之心"公众号 ADAS巨卷干货,即可获取 点击进入→自动驾驶之心技术交流群 后台回复[ECCV2022]获取ECCV2022所有自动驾驶方向论文! 目前 ...

  4. 太形象了!本科、硕士、博士,有什么本质区别?

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 来源| 综合自政治学与国际关系论坛.知乎.麦可思研究等 整理编辑| 学术志/学妹 格式调整:AI蜗牛车 ...

  5. Coursera自动驾驶课程第16讲:LIDAR Sensing

    在第15讲<Coursera自动驾驶课程第15讲:GNSS and INS Sensing for Pose Estimation> 我们学习了自动驾驶定位中常用的两种传感器:IMU(惯性 ...

  6. 【论文阅读】【3d目标检测】Sparse Fuse Dense: Towards High Quality 3D Detection with Depth Completion

    论文题目:Sparse Fuse Dense: Towards High Quality 3D Detection with Depth Completion 飞步科技 cvpr2022 kitti ...

  7. BEV最新综述 | 学术界和工业界方案汇总!优化方法与tricks

    论文链接:https://arxiv.org/pdf/2209.05324.pdf 学习感知任务的鸟瞰图(BEV)中的强大表示法是一种趋势,并引起了工业界和学术界的广泛关注.大多数自动驾驶常规方法是在 ...

  8. 论文阅读笔记 | 三维目标检测——VoxelRCNN算法

    如有错误,恳请指出. 文章目录 1. 背景 2. 网络结构 Voxel Query Voxel ROI Pooling Accelerated Aggregation Loss Compute 3. ...

  9. 基于激光雷达点云的3D目标检测算法论文总结

    作者丨eyesighting@知乎 来源丨https://zhuanlan.zhihu.com/p/508859024 编辑丨3D视觉工坊 前言  过去很多年激光雷达的车规标准和高昂价格是阻碍其量产落 ...

最新文章

  1. php7.0 连接ftp,PHPstorm连接ftp
  2. SSO CAS 探究
  3. linux内核测试,Linux内核测试的生命周期
  4. 【Python】Matplotlib绘制带颜色标尺的彩色曲面
  5. 【华为大咖分享】11.五星级软件工程师的高效秘诀(后附PPT下载地址)
  6. Binary classification - 聊聊评价指标的那些事儿【回忆篇】
  7. 数据结构上机实践第五周项目2 - 建立链栈算法库
  8. plsql导出数据字典
  9. 系统规划与管理师历年论文
  10. FIR versus IIR Butterworth Chebyshev Bessel Filter
  11. 挚文集团2021年Q3净营收37.592亿元 环比增长2.4%
  12. Android FFmpeg集成
  13. cogs1570 KMP hash
  14. 886n虚拟服务器ip,tl-wr886n怎么配置ip带宽控制
  15. dockers 赋权
  16. 记腾讯互娱网站布局(2)
  17. 考研丨7-12月复习安排时间表
  18. 基于Opencv的简单双摄像头图像实时拼接
  19. Wr720n改装OpenWrt打印服务器实现网络无线打印
  20. 利用三点坐标加海伦公式求三角形面积

热门文章

  1. Java毕设项目网上商城购物系统(java+VUE+Mybatis+Maven+Mysql)
  2. C语言 第一节 简单的C语言
  3. 数据结构中常用的7种排序方法
  4. 解决Docker Swarm重装.yml文件后无法创建新Service
  5. 基于TCP的安卓与服务器交互开发
  6. 换行和回车(/n /r)
  7. 非官方即时通信 IM,支持腾讯IM,环信IM,极光IM,融云IM,网易云信IM等
  8. C++笔试题汇总(6)
  9. 计算机主机干什么,电脑硬盘是干什么用的
  10. CodeForces 103B Cthulhu