完整文章转载自OpenMMLab,此仅作个人学习笔记:
带你玩转 3D 检测和分割 (二):核心组件分析之坐标系和 Box
一、MMdetection3D 坐标系分类
- 深度坐标系(Depth):此坐标系主要被用于通过深度相机采集的数据集, 大多是室内场景点云检测。
- 激光雷达坐标系(LiDAR):是适用于室外场景点云检测普遍采用的激光雷达设备的坐标系。
- 相机坐标系(Camera),该坐标系在室内室外场景的点云检测均有使用,代表彩色相机的常用坐标系,一般用于数据格式的转换。在多模态或者单目3D 的检测器中,相机坐标系是三维点云与二维图像之间的桥梁。
二、基本概念
2.1 Box定义:
在 3D 目标检测中,框 Box 通常表示为:(x, y, z, x_size, y_size, z_size, yaw)。
(x, y, z) 表示框的中心点的坐标;
(x_size, y_size, z_size) 表示框的尺寸,且按惯例我们定义为物体 3D 框在朝向角 yaw 角度为 0 时沿着 x, y, z 轴三个方向的长度;
yaw:包围框的旋转角度只考虑朝向角 yaw,不考虑俯仰角 pitch 和翻滚角 roll。
2.2 Box构建
代码目录: /mmdet3d/core/bbox/structures
在实际代码中,我们将某个场景所有的物体 3D 框 Boxes 封装成一个类,提供 BaseInstance3DBoxes这个基类,再分别基于此为三种坐标系构建 LiDARInstance3DBoxes、CameraInstance3DBoxes、DepthInstance3DBoxes 三种 Boxes 类,
一个物体 3D 框中的 (x_size, y_size, z_size) 在激光雷达坐标系和深度坐标系中为 (l, w, h),而在相机坐标系中为 (l, h, w)。
当lidar 和 depth坐标系转化到 camera坐标系,box 尺寸发生了变化: (l, w, h) → (l, h, w)