MMDetection3D雷达点云数据训练框架

MMDetection3D雷达点云数据训练框架

1 简介

1.1 简介

MMDetection3D 支持任务:点云 3D 检测、单目 3D 检测、多模态 3D 检测和点云 3D 语义分割等。

3D 目标检测按照输入数据模态划分可以分为:

① 点云 3D 检测

② 纯视觉 3D 检测

③ 多模态 3D 检测(点云+图片)。

1.2 环境安装

环境安装参见:MMDetection3D 1.3.0 文档

2 任务

点云 3D 检测:雷达点云数据实现3D目标检测训练。

3 数据

3.1 数据来源

(1)…。

(2)激光雷达坐标系(LiDAR):室外场景点云检测采用激光雷达设备的坐标系。

3.2 MMDetection3D数据处理

(1)MMDetection3D在训练前会借助 pkl 文件的信息进一步提取 reduced_point_cloudgt_database。 reduced_point_cloud是仅包含前方视野的点云文件; gt_database则是将包含在训练数据集的每个 3D 边界框中的点云数据分别提取出来得到的各个物体的点云文件,常用来在数据增强时使用。

(2)MMDetection3D 对于点云 3D 检测的相关模块:

① GlobalRotScaleTrans(点云的旋转缩放);

② PointsRangeFilter / ObjectRangeFilter(限定了点云和物体的范围);

③ PointShuffle(打乱点云数据)。

3.3 基础定义

在 3D 目标检测中,框 Box 通常表示为:(x, y, z, x_size, y_size, z_size, yaw)。其中 (x, y, z) 表示框的位置 ,(x_size, y_size, z_size) 表示框的尺寸,yaw 表示框的朝向角。

假设物体的长宽高分别为 l, w, h。 该物体底部中心点坐标为 (l/2, w/2, 0) ,朝向和 x 轴的夹角为 0,即 yaw 角为 0,此时沿着x-y-z三个轴方向的长度即 x_size, y_size, z_size 分别为 l、w、h,所以该坐标系下 Box 的值为 (l/2, w/2, 0, l, w, h, 0)。注意其存储的 Box 位置是底部中心的位置,而非几何中心位置。

4 模型

算法模型支持 :

one-stage: PointPillars、SSN、3DSSD、

two-stage:CenterPoint、PointRCNN

3D 检测器通常也包含:Backbone 提取特征、Neck 进行特征融合和增强、Head 输出结果。

5 数据预处理和后处理

5.1 数据预处理

目标检测中的数据的尺寸可能无法保持一致(如点云中点的数量、真实标注框的尺寸等),在 MMCV 中引入一个 DataContainer 类型,来帮助收集和分发不同尺寸的数据。

pointPillar:点云到伪图像的转换。(截取和补齐使得点云聚集在尺寸为 (DxNxP) 的 Tensor 上。)

CenterPoint:不同点云数据格式的转换

5.2 数据后处理

在检测任务中非常常见的一个现象就是模型最后输出的 bboxes 数目比较多,而且存在一些重叠的 bboxes 现象。

对于点云 3D 检测任务,模型直接输出 3D 空间中的检测得到的 bboxes 的位置、长宽高和朝向等信息。通常在 3D 空间中进行 3D NMS,将检测结果投影到 BEV 视角下进行后处理。相关的代码在 mmdet3d/core/post_processing/box3d_nms.py 下

pointPillar:anchor-based

CenterPoint:anchor-free

6 其它

6.1 MMDetection3D支持的模型:

configs中包含的模型有:3dssd、benchmark、centerpoint、cylinder3d、fcaf3d、point_rcnn、pointpillars、regnet、second、votenet等

6.2 MMDetection3D支持的数据集:
  • KITTI 数据集
  • NuScenes 数据集
  • Lyft 数据集
  • Waymo 数据集
  • SUN RGB-D 数据集
  • ScanNet 数据集
  • S3DIS 数据集
  • SemanticKITTI 数据集

详情参看

MMDetection3D :openmmlab环境搭建及模拟kitti数据集跑pointpillars模型

你可能感兴趣的:(3d,雷达点云,MMDetection3D)