MV3D-Net 用于自动驾驶的多视图3D目标检测网络

举报
一颗小树x 发表于 2021/07/22 17:17:34 2021/07/22
【摘要】 MV3D-Net融合了视觉图像和激光雷达点云信息;它只用了点云的俯视图和前视图,这样既能减少计算量,又保留了主要的特征信息。随后生成3D候选区域,把特征和候选区域融合后输出最终的目标检测框。

前言

MV3D-Net融合了视觉图像激光雷达点云信息;它只用了点云的俯视图和前视图,这样既能减少计算量,又保留了主要的特征信息。随后生成3D候选区域,把特征和候选区域融合后输出最终的目标检测框。

论文地址:Multi-View 3D Object Detection Network for Autonomous Driving

开源代码:https://github.com/bostondiditeam/MV3D

 一、框架了解

先看下总体网络结构:(可以点击图片放大查看)

输入的数据:有三种,分别是点云俯视图、点云前视图和二维RGB图像。“点云投影”,其实并非简单地把三维压成二维,而是提取了高程、密度、光强等特征,分别作为像素值,得到的二维投影图片。

输出数据:类别标签、3D候选框、时间戳。

1.1 网络的主体部分

思路流程: 

1)提取特征

  • a. 提取点云俯视图特征
  • b. 提取点云前视图特征
  • c. 提取图像特征

2)从点云俯视图特征中计算候选区域

3)把候选区域分别与1)中a、b、c得到的特征进行整合

  • a. 把俯视图候选区域投影到前视图和图像中
  • b. 经过ROI pooling整合成同一维度


1.2 网络的融合部分

这部分网络主要是:把整合后的数据经过网络进行融合


二、MV3D的点云处理

MV3D将点云和图片数据映射到三个维度进行融合,从而获得更准确的定位和检测的结果。这三个维度分别为点云的俯视图、点云的前视图以及图片。

2.1 提取点云俯视图

点云俯视图由高度强度密度组成;作者将点云数据投影到分辨率为0.1的二维网格中。

高度图的获取方式为:将每个网格中所有点高度的最大值记做高度特征。为了编码更多的高度特征,将点云被分为M块,每一个块都计算相应的高度图,从而获得了M个高度图

强度图的获取方式为:每个单元格中有最大高度的点的映射值。

密度图的获取方式为:统计每个单元中点云的个数,并且按照公式:

 其中N为单元格中的点的数目。强度和密度特征计算的是整个点云,而高度特征是计算M切片,所以,总的俯视图被编码为(M + 2)个通道的特征。


2.2 提取点云前视图

由于激光点云非常稀疏的时候,投影到2D图上也会非常稀疏。相反,作者将它投影到一个圆柱面生成一个稠密的前视图。 假设3D坐标为:

 那么前视图坐标:

 可以通过如下式子计算


三、MV3D的图像处理

采用经典的VGG-16来提取图像特征,这里就不过多说明了。


四、俯视图计算候选区域

物体投射到俯视图时,保持了物体的物理尺寸,从而具有较小的尺寸方差,这在前视图/图像平面的情况下不具备的。在俯视图中,物体占据不同的空间,从而避免遮挡问题。

在道路场景中,由于目标通常位于地面平面上,并在垂直位置的方差较小,可以为获得准确的3Dbounding box提供良好基础。

候选区域网络就是熟悉的RPN。参考


五、特征整合

把候选区域分别与提取的特征进行整合

流程: 

  • a. 把俯视图候选区域投影到前视图和图像中
  • b. 经过ROI pooling整合成同一维度


六、特征融合

有了整合后的数据,需要对特征进行融合,最终得到类别标签、3D候选框。

作者介绍了三种不同的融合方式,分别为

  • a、Early Fusion 早期融合
  • b、Late Fusion 后期融合
  • c、Deep Fusion 深度融合。

各自的结构如下图所示。

 最终选择了Deep Fusion 深度融合。融合的特征用作:分类任务(人/车/...)、更精细化的3D Box回归(包含对物体朝向的估计)。


七、模型效果

和其他模型对比的数据:

检测效果:


八、模型代码

代码地址:https://github.com/bostondiditeam/MV3D

作者使用KITTI提供的原始数据,点击链接

上图是用于原型制作的数据集 。

我们使用了[同步+校正数据] + [校准](校准矩阵)+ [轨迹]()

所以输入数据结构是这样的:

运行 src/data.py 后,我们获得了 MV3D 网络所需的输入。它保存在kitti中。

上图是激光雷达俯视图(data.py后)

上图是将 3D 边界框投影回相机图像中。

输入具体数据格式可以参考'data.py' 'data.py' 网址

https://drive.google.com/file/d/0B47OwD8fbxJNeU5WSUVua0JWcFU/view?usp=sharing

本文参考:https://zhuanlan.zhihu.com/p/86312623

https://zhuanlan.zhihu.com/p/353955895

https://cloud.tencent.com/developer/news/223860


论文地址:Multi-View 3D Object Detection Network for Autonomous Driving

代码地址:https://github.com/bostondiditeam/MV3D

本文只提供参考学习,谢谢。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。