如有错误,恳请指出。


文章目录

  • 1. 背景
  • 2. 网络结构
    • Voxel Query
    • Voxel ROI Pooling
    • Accelerated Aggregation
    • Loss Compute
  • 3. 实验结果

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

1. 背景

现有很多的point-based检测器获得比较好的效果,精确度要比voxel-based检测器要好,为此不少观点认为原始点云中的精确位置信息对于精确的目标定位是至关重要的。VoxelRCNN的动机就是能否保持voxel-based方法速度优势下,获取与point-based方法相当的性能,希望在准确性和效率之间取得平衡。作者通过实验分析,发现现有voxel-based方法的主要缺点是将3d特征体转换为BEV表示,而从未恢复3D结构上下文,这样就找到了需要提高的方向。对于voxel-based的方法,BEV表征能力不足,所以需要转换成BEV前的3d voxel-wise特征。

VoxelRCNN的主要创新点是提出了一种Voxel ROI pooling方式,利用生成的候选框直接在3d tensor中获取对应的voxel-wise特征进行特征聚合操作,提出了neighbor-aware聚合策略。实验结果也表面,这种粗粒度信息同样可以为检测任务提供足够的空间上下文信息,VoxelRCNN的实验结果超过了那时最好的point-based方法,进一步说明3d的tensor结构信息对检测器至关重要,而BEV的表征能力是不足以精确预测3d空间的边界框的。这也很好理解,毕竟丢失了z轴上的信息,只投影到了xy平面进行后续处理。


2. 网络结构

VoxelRCNN是一个two-stage、anchor-based的voxel-based检测方法(这里的anchor-based存疑,后续我会讨论讨论),其网络结构如下所示。其核心是提出了Voxel ROI pooling,通过候选框在3d tensor中聚合相关的voxel query信息。

对于体素化后的3d特征,这里通过3d稀疏卷积进行(3D backbone network)特征提取,随后将z轴的特征进行拼接转化成bev视图上的一个二维特征,再进行过一个2d卷积backbone进行特征提取,后续接两个分支来进行候选框的生成以及socre预测。这里的3d稀疏卷积网络以及RPN的2d卷积网络与SECOND、PV-RCNN的一致。

Voxel Query

对于以往的ROI操作,一般是对候选框中的point-wise特征进行聚合操作,这种方法称为Ball Query。在voxel-based的方法中,由于点云被转化为了规则化的一个个体素,所以在这些规则化的体素空间中进行距离的偏移是比较容易的一件事情。因此VoxelRCNN中提出了Voxel Query的概念,从三维的特征体中寻找相邻的voxel,以有效地对体素进行分组。如下所示。假设3d空间中有N个非空体素,通过Voxel Query寻找K个邻值,其时间复杂度为O(K),而这里Ball Query的时间复杂度是O(N),所以从效率上Voxel Query是更加高效的。

Voxel ROI Pooling

具体来说,对于生成的候选框先切分为GxGxG大小的体素(称为subvoxel),每一个subvoxel也可以看成是候选框中的一个网格grid。此时,不再是简单的聚合候选框中的voxel-wise特征,而是利用Voxel Query,对每一个grid利用设定的哈曼顿距离获取其相邻K个voxel特征。此时,这grid网格点与其K个neighboring voxel就是一个groups,可以利用PointNet网络对其特征进行聚合。假设这里每个voxel的特征维度是C,对于每个邻居voxel都可以分别构建起与grid的相对位置信息(xp,yp,zp),将相对位置信息与原本的voxel-wise特征拼接在一起,其维度即为C+3。后续进行PointNet网络聚合,即可输出dim=C’的特征向量。如下图(a)所示。

此外,考虑到多尺度信息,这里的ROI Pooling是从3d稀疏卷积骨干网络最后两个阶段的3d特征图中提取voxel特征,同时对于每个阶段再设置两个曼哈顿距离阈值进行分组。对于每一个阶段的某个曼哈顿距离分组都可以聚合一个vector特征,所以这里的多尺度处理会将不同阶段不同尺度的特征进行拼接,作为最后的ROI特征。所以这里每一个ROI特征一共会结合4种不同层次与尺度信息。

Accelerated Aggregation

上述所提出的聚合方法计算复杂度仍然比较高,假设阶段一生成r个候选框,每个候选框中切分G3的大小,那么一共需要处理的grid网格数量M=rxG3。这里每个网格假设分组的Neighbor为K,每个邻居voxel具有3维度的相对位置信息以及C维度的voxel-wise特征,拼接起来的特征维度即为(3+C),对其进行全连接操作降维到C‘的浮点计算量为:FLOPs (O(M×K × (C + 3) ×C’))。这么庞大的计算量需要进一步优化,所有聚合网络改进为如下图(b)所示。

简单来说就是对voxel-wise特征以及相对信息特征进行分开编码。对于每个网格的K个邻居,将其相对位置特征信息编码为C’,这个步骤的计算量为:MxKx3xC‘。而但由于邻居的C维voxel特征信息是独立,直接利用fc层对其编码为C’,计算量只为:NxCxC’,选取Voxel Query所选取的K个voxel特征,与位置信息进行相加再聚合。于分组体素的数量(M×K)比N高一个数量级,因此加速的PointNet模块比原始模块更有效。

这里以实际例子进行对比,一般来说KITTI数据集中非空体素的数量最多也就16k左右,但假设生成的候选框为150,分成6x6x6的大小,那么需要处理的网格点数也达到了43.2k个,大约是非空体素N的3倍。所以在实际上还是存在一定的加速效果的。

Loss Compute

以上即为VoxelRCNN的重点内容,对于其他部分paper中没有细说。对于3d稀疏卷积backbone采用类似SECOND、SA-SSD、PV-RCNN的设计。其中,2d的RPN网络应该是也是与SECODN的一致。

在损失设计这里,paper也没有提到什么,只是简要说了声是follow前人SECOND与PointPillars的工作,对于这两个工作都是one-sate、anchor-based的工作,损失是包括边界框直接回归,候选框类别以及边界框方向分类三个部分,所以这里也只能认为其RPN网络也是anchor-based的方法进行设置。但是,全文没有提及先验框尺寸等信息,这一点比较奇怪。


3. 实验结果

VoxelRCNN在kitti数据集上只提供了car类别的精度对比:

此外,分别对detect head、voxel query以及acceleated module在验证集上进行消融实验

思考:

这个消融实验的结果个人觉得相当尴尬,增加使用Voxel Query的精度只提高了0.12%。感觉整个消融实验做得不算太完整,比如:
1)在具体的pooling操作时,如果只使用单一的曼哈顿距离以及只使用单一的3d特征层时是否有影响,使用多尺度多阶段带来的提升有多大?
2)使用这种voxel roi pooling比普通的直接聚合候选框中的point-wise特征会带来多少提升?

总的来说,VoxelRCNN又是在ROI聚合这个点上进行改进,继承了PaetA2中对候选框进行切分的想法,通过Voxel Query对每个候选框的subvoxel进行分组聚合其K个Neighbor的3d tensor信息,在数据集上证明3d稀疏卷积提取出来的特征的有效性。但是消融实验的结果让我对Voxel Query的有效性存疑。


论文阅读笔记 | 三维目标检测——VoxelRCNN算法相关推荐

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

    如有错误,恳请指出. 文章目录 0. 前言与补充知识 1. 背景 2. 相关工作 3. 网络结构 3.1 Part-aware stage Anchor-free Proposal Generatio ...

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

    如有错误,恳请指出. 文章目录 1.背景 2. 网络结构 2.1 体素特征表示 2.2 卷积特征提取 2.3 RPN网络 3. 实验结果 paper:<VoxelNet: End-to-End ...

  3. 论文阅读笔记 | 三维目标检测——Complex-YOLO算法

    如有错误,恳请指出. 文章目录 1. 背景 2. 网路结构 3. 实验结果 paper:<Complex-YOLO: An Euler-Region-Proposal for Real-time ...

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

    如有错误,恳请指出. 文章目录 1. 背景 2. 网络结构 2.1 提案投影网络 2.2 区域融合网络 3. 实验结果 paper:<Multi-View 3D Object Detection ...

  5. 论文阅读笔记 | 三维目标检测——PointRCNN

    如有错误,恳请指出. 文章目录 1. 背景 2. 网络结构 2.1 Proposal Generation 2.2 Proposal Refinement 3. 实验部分 3.1 kitti上的测评 ...

  6. 论文阅读笔记 | 三维目标检测——3DSSD

    如有错误,恳请指出. 文章目录 1. 背景 2. 网络结构 2.1 特征提取 2.2 边框生成 3. 实验结果 paper:<3DSSD: Point-based 3D Single Stage ...

  7. 『论文阅读笔记』目标检测模型中的性能评价方式-IOU、precision/recall、mAP、PR、Fps!

    目标检测模型中的性能评估标准-IOU.precision/recall.mAP.PR.Fps! 文章目录 一.交并比IOU 二.精确率(precision)和召回率(recall) 三.P-R(pre ...

  8. CVPR2020论文介绍: 3D 目标检测高效算法

    CVPR2020论文介绍: 3D 目标检测高效算法 CVPR 2020: Structure Aware Single-Stage 3D Object Detection from Point Clo ...

  9. 3d 自动生成物体_CVPR2020论文介绍: 3D 目标检测高效算法

    CVPR2020论文介绍: 3D 目标检测高效算法 CVPR 2020: Structure Aware Single-Stage 3D Object Detection from Point Clo ...

最新文章

  1. python装饰器作用-Python装饰器用法实例总结
  2. 科技发烧友之单反佳能700d中高端
  3. mysql重连服务器失败_java – MySQL连接器错误“服务器时区值中...
  4. 数禾云上数据湖最佳实践
  5. TFS报表管理器无权限访问的配置
  6. 混迹职场,有交换意识的人都是聪明人
  7. Eclipse用法和技巧十七:覆盖父类方法
  8. 平流式沉淀池表面负荷怎么计算_竖流式与辐流式沉淀池
  9. 12月1日struts、spring、hibernate等框架的整合培训日记
  10. 图表控件ScottPlot
  11. 用代码实现通过人人网的登录
  12. PHP实现微信小程序免密支付,微信免密支付,微信小程序实现微信支付功能!!!...
  13. BootStrap3 排版
  14. 域名服务器作用是,域名服务器的作用
  15. sfgghshs测试测试
  16. qpython3打开app_QPython3
  17. 达人评测i7 1360p和i5 12500h差距 酷睿i71360p和i5 12500h选哪个
  18. xor指令加解密(笔记)
  19. 易能变频器说明书故障代码_易能变频器 EN600-4T0055G/0075P故障代码E-03-东莞英成机电设备...
  20. android钢琴软件和弦,‎App Store 上的“判断和弦以钢琴演奏 Piano Chord Judge”

热门文章

  1. 扒一扒GES如何赋能互联网电商风控
  2. 基于JMP公差设计探索稳健性的配方和工艺
  3. vivado多时钟周期约束set_multicycle_path使用
  4. 【深度学习】详解 ViLT
  5. 计算机毕业设计Java在线拍卖系统(源码+系统+mysql数据库+Lw文档)
  6. 区块链是否是骗局?它是否有弊端?大神是这样回答的
  7. 用好Word文档结构图
  8. 感觉-勇气-缘分 爱的永恒
  9. EarlyZ 与 DepthPrePass
  10. CVPR2021投稿流程