RangeRCNN阅读笔记

RangeRCNN阅读笔记

  • 概述
    • 摘要
    • 绪论
      • 创新点与主要贡献
    • 相关工作
      • 3D目标检测
      • 3D语义分割
    • 方法描述
      • 网络结构
      • 距离图主干
      • RV-PV-BEV
      • 3D RoI Pooling
      • 损失函数
    • 实验
      • 细节
      • 消融实验
    • 结论
    • 另一波总结与思考

概述

论文链接:RangeRCNN: Towards Fast and Accurate 3D Object Detection with Range Image Representation
在Kitti 3D检测任务benchmark的一种点+体素、融合算法中脱颖而出。
可以视作基于点云视图的检测。距离视图(Range View)还有不同的称谓:前视图1,这一视图甚至曾经作为MV3D2中的一项输入,可惜从AVOD3开始,这一视图逐渐沉寂。
下面是没什么用的碎碎念:之前看到1就惊艳到了,因为这种对点云数据的表示满足了点与2D网格(BEV,像平面等)的执念:稠密,满足了3D体素的执念:2D卷积,还满足了2D网格的另一个执念:贴近原始数据结构。可惜这一方法一直没有名列同时代前茅的结果,而RangeRCNN夹杂在众多点+体素的算法中,从实际上证明了Range View的有效性。

摘要

基于距离图像表示的3D目标检测框架(点云),two stage:

  1. 距离图像比体素与点的表示更加密集紧凑
  2. 引入扩张残差块适应目标尺度
  3. PV-PV-BEV模块(Range View to Point View to Bird’s Eye View),将特征从距离视图转换到鸟瞰图

绪论

  1. 总结一波基于网格(将2D网格和体素并称)和基于点的算法的困境:基于网格需要量化,带来信息损失,且三维卷积不实用;赞美一波Range View的优势:贴近LiDAR成像原理,稠密,balabala。

RangeRCNN阅读笔记_第1张图片贴张图展示一下Range View的稠密。
2.开始分析为什么之前的Range View算法效果不够好:数据集规模小;类似图像数据,目标尺度变化遮挡两大“拦路虎”。

创新点与主要贡献

  1. 为快速准确检测3D目标,提出以Rang View为输入的RangRCNN架构;
  2. 为适应尺度变化,使感受野更灵活,采用扩张残差块(dilated residual block);
  3. 为更容易生成锚点,完成3D检测,提出PV-PV-BEV模块,将Range View的特征转化到BEV视图;
  4. 为获取3D包围框高度(BEV没得高度),提出用two-stage RCNN

相关工作

3D目标检测

  1. 栅格:点云BEV,像平面深度图(深度特征融合),3D体素(以及后续稀疏卷积等改进)→信息丢失,稀疏限制感受野
  2. 点:视锥(融合),直接处理,GNN,以及室内检测的VoteNet→计算量大
  3. 距离图:之前的算法性能不及栅格、点的原因是距离图不利于锚的生成

3D语义分割

常用于评价点云特征提取能力,RangeNet++在3D语义分割中取得了成功4

方法描述

网络结构

RangeRCNN阅读笔记_第2张图片深度图像-主干,深度图像的特征传递到点视图与鸟瞰图。

距离图主干

通过球面投影将点转换为深度图:
转换
编码距离,坐标,强度→输入距离图像5 × h × w
Kitti包括64线束,每线束产生约2000点→h=64 w=2038
然而由于Kitti3D检测任务仅仅标注摄像机前视图中的目标,仅包含约90°场景,并且部分垂直通道被相机FOV过滤,设定h=48 w=512。
RangeRCNN阅读笔记_第3张图片

距离图目标尺度差异-扩张卷积
RangeRCNN阅读笔记_第4张图片
用1×1卷积提取各个通道的特征→3个3×3不同扩张率{1,2,3}的卷积提取不同感受野特征→1×1卷积融合分支特征→dropout→pooling

RV-PV-BEV

距离图中的严重遮挡
RangeRCNN阅读笔记_第5张图片
遮挡严重,NMS难以移除。
锚在BEV中生成,根据距离图主干输出特征得到点特征,点特征投影到BEV。备注:点仅仅用作视图转换的桥梁,不从中提取特征;点对应同一BEV像素,则均值池化生成特征。
提取高层特征后转换视图

3D RoI Pooling

RangeRCNN阅读笔记_第6张图片
BEV无法获得高度信息→RPN生成3Dproposal,高度信息编码在3D网格间

损失函数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

实验

从距离图中提取的特征图:48 × 512(64 维)
BEV分辨率0.16m×0.16m,初始尺寸496×432。三个卷积块降采样到248×216,124×108,64×54,再将它们上采样到248×216,串联用于区域生成预测。
空间网格:12×12×12×C (C是特征维)
RangeRCNN阅读笔记_第7张图片

细节

  1. 用Pytorch1.3实现,网络可以用ADAM优化器以端到端的方式进行训练。在8核NVIDIA Tesla V100 gpu上训练整个网络,批大小为32,学习率为0.01,耗时约1.5小时。采用余弦退火学习速策略来降低学习率。
  2. 数据扩充策略:沿x轴随机翻转、随机全局缩放、围绕垂直轴随机全局旋转,以及真值采样增强。
  3. RCNN:128 proposal 正负样本比例1:1。
  4. 推理阶段根据NMS阈值0.7保留前100个proposal,3D NMS用于优化边界框,阈值0.1。

消融实验

单阶段RangeDet与两阶段RangeRCNN在Kitti BEV中效果相差不大,在Kitti 3D中相差较大。
RangeRCNN阅读笔记_第8张图片
RangeRCNN阅读笔记_第9张图片
RoI Pooling中网格尺寸对结果影响不大:
RangeRCNN阅读笔记_第10张图片
夸张有效:
RangeRCNN阅读笔记_第11张图片

结论

本文探讨了距离图表示的潜力,并提出了RangeR-CNN用于快速准确的3D目标检测,Kiiti 上高性能,为大型室外场景中的实时3D目标检测提供更多可能。

另一波总结与思考

点云可以称为2.5D数据5,因为点云并非直接反应三维结构本身,而仅仅是将激光束打过去,再反射回来,也就是说,激光器发射一束激光到达障碍物后,这一连线延长线上的其他区域是不可见的。因此,将点云直接视为3D数据进行体素化忽视了数据本身的可见性。


  1. Li B, Zhang T, Xia T. Vehicle detection from 3d lidar using fully convolutional network[J]. arXiv preprint arXiv:1608.07916, 2016. ↩︎ ↩︎

  2. Chen X, Ma H, Wan J, et al. Multi-view 3d object detection network for autonomous driving[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2017: 1907-1915. ↩︎

  3. Ku J, Mozifian M, Lee J, et al. Joint 3d proposal generation and object detection from view aggregation[C]//2018 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS). IEEE, 2018: 1-8. ↩︎

  4. Milioto A, Vizzo I, Behley J, et al. RangeNet++: Fast and accurate LiDAR semantic segmentation[C]//2019 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS). IEEE, 2019: 4213-4220. ↩︎

  5. Hu P, Ziglar J, Held D, et al. What you see is what you get: Exploiting visibility for 3d object detection[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2020: 11001-11009. ↩︎

你可能感兴趣的:(自动驾驶)