3D检测入门 - KITTI数据集

参考链接
官网:http://www.cvlibs.net/datasets/kitti/index.php
传感器介绍:http://www.cvlibs.net/datasets/kitti/setup.php
相机内外参简介:https://www.cnblogs.com/wangguchangqing/p/8126333.html
好-KITTI数据集–参数+原文翻译:https://www.pianshen.com/article/7493742838/
好-kitti数据集在3D目标检测中的入门:https://www.pianshen.com/article/97781400793/
kitti可视化工具:https://github.com/kuixu/kitti_object_vis
mmdet3d可视化代码:mmdet3d/core/visualizer/image_vis.py
3D数据集转换脚本:https://github.com/open-mmlab/mmdetection3d/tree/master/tools/data_converter # kitti waymo, nuscenes等

看论文永远是你的第一选择

  • 相机
      2个灰度相机(P0, P1)
      2个彩色相机(P2, P3)
  • GPS / IMU (定位信息 + 加速度/加加速度)
  • Lidar
      64线,Velodyne HDL-64E
      每秒 10 帧的速度旋转,每周期捕获10万个点,垂直分辨率64?
      相机由激光扫描仪(面向前方时)以每秒 10 帧的速度触发,快门时间动态调整(最大快门时间:2 毫秒)
  1. 图像:采用8bit PNG格式保存。裁剪掉了原始图像的引擎盖和天空部分,并且根据相机参数进行了畸变矫正,最终图片为50万像素左右。
  2. 激光:逆时针旋转,采用浮点数二进制文件保存。保存了激光点(x,y,z)坐标和反射率r信息,每一帧平均12万个激光点
  3. 图像和激光同步:相机曝光时机是由激光控制的,当激光扫描到正前方(即相机朝向角度)时,会触发相机快门,KITTI会记录激光3个时间戳,旋转起始和结束的时刻,以及触发相机曝光的时刻。

传感器车身排布如下图所示:
在这里插入图片描述
在这里插入图片描述

点云velodyne文件
xxx.bin就是,就是存储xyzr(点云坐标+反射强度)的文件
在这里插入图片描述
上图这个效果咋出来的??

3D检测

简介
3D检测较经典的数据集,入坑必会的数据集之一。除了3D检测,还有2D检测,flow,segmentation,depth等标注。

类别
有这些类别

总共有9类,分别是:Car、Van、Truck、Pedestrian、Person_sitting、Cyclist、Tram、Misc、DontCare。其中DontCare标签表示该区域没有被标注,比如由于目标物体距离激光雷达太远。为了防止在评估过程中(主要是计算precision),将本来是目标物体但是因为某些原因而没有标注的区域统计为假阳性(false positives),评估脚本会自动忽略DontCare区域的预测结果。

但是榜单上只显示了3个大类…
另外,mmdet3d数据集中的pkl文件,里面是否做了类别合并???需要去check一下

数据量

  • 训练集:7481;验证集:3768;测试集:7518
  • 8W+目标(感觉还是比较少???,训出来的模型指标差异可能会比较大)

PS:做mono3d,通常用P2 (左彩) 相机作为输入。

标注

  1. 第1列(字符串):代表物体类别(type)
    分别是:Car、Van、Truck、Pedestrian、Person_sitting、Cyclist、Tram、Misc、DontCare。
  2. 第2列(浮点数):代表物体是否被截断(truncated) 数值在0(非截断)到1(截断)之间浮动,数字表示指离开图像边界对象的程度。
  3. 第3列(整数):代表物体是否被遮挡(occluded) 整数0、1、2、3分别表示被遮挡的程度。0:完全可见 1:部分遮挡 2:大部分遮挡 3:未知。在mmdet3d中有-1,表示ignore。
  4. 第4列(弧度数):物体的观察角度(alpha) 取值范围为:-pi ~ pi(单位:rad),它表示在相机坐标系下,以相机原点为中心,相机原点到物体中心的连线为半径,将物体绕相机y轴旋转至相机z轴,此时物体方向与相机x轴的夹角,如图1所示。
  5. 第5~8列(浮点数):物体的2D边界框大小(bbox) 四个数分别是xmin、ymin、xmax、ymax(单位:pixel),表示2维边界框的左上角和右下角的坐标。
  6. 第9~11列(浮点数):3D物体的尺寸(dimensions)分别是高、宽、长 (HWL)(单位:米),mmdet3d中转为了LHW?因为提交过程做了LHW到HWL的转换
  7. 第12-14列(整数):3D物体的位置(location)分别是x、y、z(单位:米),特别注意的是,这里的xyz是在相机坐标系下3D物体的中心点位置
  8. 第15列(弧度数):3D物体的空间方向(rotation_y)取值范围为:-pi ~ pi(单位:rad),它表示,在照相机坐标系下,物体的全局方向角(物体前进方向与相机坐标系x轴的夹角),逆时针为负,顺时针为正,如下图所示。
  9. 第16列(整数):检测的置信度(score)要特别注意的是,这个数据只在测试集的数据中有,评测的时候网络输出

在这里插入图片描述
这里可能有点混淆,只要记住这个就可以了:x轴正向对应着len,y轴为width,z轴为height即可。(想象成一辆车沿着x轴正向放置)
所以在mmdet3d中,CameraInstance3DBoxes对应的x_size, y_size, z_size表示LHW。

校准文件

评测指标
使用PASCAL VOC的标注来对3D检测进行评估,也是用AP。几点注意:

  • 太远的物体会被忽略(图像平面上bbox heigth太小),也就是’DontCare’这个类别?
  • 点云中的3D物体只有在图像平面中才会被标记,其他区域不会被考虑。
  • cars,要求3D IOU=0.7,对于pedestrians and cyclists ,要求3D IOU=0.5
  • Easy, Moderate, Hard定义如下
Easy: Min. bounding box height: 40 Px, Max. occlusion level: Fully visible, Max. truncation: 15 %
Moderate: Min. bounding box height: 25 Px, Max. occlusion level: Partly occluded, Max. truncation: 30 %
Hard: Min. bounding box height: 25 Px, Max. occlusion level: Difficult to see, Max. truncation: 50 %

三种难度根据1、物体大小;2、遮挡occlusion;3、阶段truncation;来区分的。
榜单上的结果按照Moderate指标进行排名:All methods are ranked based on the moderately difficult results.

  • update 08.10.2019,根据论文《Disentangling Monocular 3D Object Detection》的建议,评测由之前recall轴上取11点转为取40点。

下面这句话不理解??

We note that the evaluation does not take care of ignoring detections that are not visible on the image plane — these detections might give rise to false positives.

榜单
链接:http://www.cvlibs.net/datasets/kitti/eval_object.php?obj_benchmark=3d

  • 基于lidar的方法
    指标都巨高,SOTA算法,Car大概84+;Pedestrian大概48+;Cyclist大概72+;
  • 基于视觉的方法
    指标差很多,Car大概17+就可以了??

注意事项

2D检测

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值