本文介绍关于自动驾驶数据集KITTI的基本操作,包括CameraLiDAR可视化教程,源码已上传:https://download.csdn.net/download/cg129054036/20907604


1. 数据准备

KITTI 数据 (calib, image_2, label_2, velodyne) 添加到 dataset/KITTI/object/training文件夹下。
目录文件结构如下:

├── dataset
│   ├── KITTI
│   │   ├── object
│   │   │   ├──KITTI
│   │   │      ├──ImageSets
│   │   │   ├──training
│   │   │      ├──calib & velodyne & label_2 & image_2
├── kitti_object.py
├── kitti_test.py
├── kitti_util.py
├── viz_util.py

2. Requirements

为了显示物体 2D bbox3D bboxUbuntu系统需要安装以下工具:

  • mayavi
  • pillow
  • vtk
  • opencv
  • PIL
  • matplotlib
  • numpy

3. 可视化操作

下面依次展示 KITTI 数据集可视化结果,可视化操作代码存放在 kitti_test.py 文件中,这里通过设置 data_idx=10 来展示编号为000010的数据,共有9种可视化操作,依次为:

  • 图片显示
  • 图片上绘制2D bbox
  • 图片上绘制3D bbox
  • Lidar在图片上投影
  • LidarFOV图
  • Lidar三维可视化
  • Lidar绘制3D bbox
  • Lidar鸟瞰图
  • Lidar鸟瞰图绘制2D bbox

代码中dataset需要修改为数据集实际路径

def visualization():import mayavi.mlab as mlabdataset = kitti_object(os.path.join(ROOT_DIR, '../dataset/KITTI/object')) # determine data_idxdata_idx = 10# Load data from datasetobjects = dataset.get_label_objects(data_idx) print("There are %d objects.", len(objects))img = dataset.get_image(data_idx)             img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)img_height, img_width, img_channel = img.shape pc_velo = dataset.get_lidar(data_idx)[:,0:3]  calib = dataset.get_calibration(data_idx)

(1) 图片显示

Image.fromarray(img).show()


(2) 图片上绘制2D bbox

这里KITTI 数据集给出了目标在图片上的坐标位置 (Xmin, Ymin, Xmax, Ymax),直接绘图即可。

show_image_with_boxes(img, objects, calib, False)


(3) 图片上绘制3D bbox

绘制物体 3D bbox时,需要进行坐标系转换,KITTI 数据集中给出的是物体在相机坐标系的位置 (x,y,z),根据物体 bbox 尺寸(h,w,l) 首先计算 3D bbox 8个顶点坐标,然后借助标定文件将其转换为图片坐标系坐标 (u, v)

show_image_with_boxes(img, objects, calib, True)


(4) Lidar在图片上投影

Lidar 坐标下各 point 坐标转换为图片坐标系下坐标,然后根据图片尺寸选取投影点。

show_lidar_on_image(pc_velo, img, calib, img_width, img_height)


(5) LidarFOV图

imgfov_pc_velo, pts_2d, fov_inds = get_lidar_in_image_fov(pc_velo, calib, 0, 0, img_width, img_height, True)
draw_lidar(imgfov_pc_velo, show=True)


(6) Lidar三维可视化

 draw_lidar(pc_velo, show=True)


(7) Lidar绘制3D bbox

绘制Lidar3D bbox时,需要进行坐标系转换,KITTI 数据集中给出的是物体在相机坐标系的位置(x,y,z),这里借助标定文件将其转换为Lidar坐标系下位置,同时借助物体bbox 尺寸(h,w,l)计算3D框8个顶点坐标。

show_lidar_with_boxes(pc_velo, objects, calib,  True, img_width, img_height)


(8) Lidar鸟瞰图

鸟瞰图绘制时将点云数据进行了预处理,只选取 x 坐标位于[0,70.4],y坐标位于[-40,40]的有效点。

show_lidar_topview(pc_velo, objects, calib)


(9) Lidar鸟瞰图绘制2D bbox

绘制时为了区分物体距激光雷达距离,将30米内目标使用绿色标志30米-50米内目标使用红色标志50米以外目标使用蓝色标志(场景0000010无此距离目标。)

img1 = cv2.imread('000010_BEV.png')
img = cv2.cvtColor(img1, cv2.COLOR_BGR2RGB)
show_lidar_topview_with_boxes(img1, objects, calib)

KITTI自动驾驶数据集可视化教程相关推荐

  1. Python和VizViewer进行自动驾驶数据集可视化

    探索Lyft预测数据集与一个新的可视化工具包 (本篇文章动图超过了CSDN上传限制无法上传,所以请访问原文地址或关注我们的同名公众号deephub-imba查看) 介绍 作为最近发表的论文和Kaggl ...

  2. KITTI 自动驾驶 数据集 镜像 百度网盘 百度云 下载

    链接: https://pan.baidu.com/s/1fci5BA85ucUFjnKoO4mXtg 提取码: sivs

  3. ROS1结合自动驾驶数据集Kitti开发教程(四)画出自己车子模型以及照相机视野

    注意: 再学习本系列教程时,应该已经安装过ROS了并且需要有一些ROS的基本知识 ubuntu版本:20.04 ros版本:noetic 课程回顾 ROS1结合自动驾驶数据集Kitti开发教程(一)K ...

  4. Waymo自动驾驶数据集介绍与使用教程

    本文将对Waymo自动驾驶数据集(Waymo Open Dataset)进行介绍. 论文链接为:https://arxiv.org/abs/1912.04838v7 项目链接为:https://git ...

  5. kitti数据集_神秘的Waymo一反常态,CVPR现场发布大型自动驾驶数据集

    机器之心报道 参与:李亚洲.路 在正在火热进行的 CVPR 2019 现场,一直对技术都较为保密的 Waymo 宣布开源全新的自动驾驶数据集.该数据集包含 3000 段驾驶记录.60 万帧.大约 25 ...

  6. Lyft开源L5自动驾驶数据集:55000个人工标注的3D注释框架,还有高清空间语义地图...

    铜灵 发自 凹非寺 量子位 出品 | 公众号 QbitAI 今天,又有新的自动驾驶数据集开源了. 数据集来自Lyft,官方称作是目前同类产品中最大的公开数据集. 这份L5数据集内容丰富,加入了原始传感 ...

  7. 疲劳驾驶数据集_Lyft开源L5自动驾驶数据集:55000个人工标注的3D注释框架,还有高清空间语义地图...

    铜灵 发自 凹非寺 量子位 出品 | 公众号 QbitAI 今天,又有新的自动驾驶数据集开源了. 数据集来自Lyft,官方称作是目前同类产品中最大的公开数据集. 这份L5数据集内容丰富,加入了原始传感 ...

  8. CBGS : 三维点云物体检测的类平衡分组和采样(新自动驾驶数据集nScenes第一名算法)...

    作者丨Geek@知乎 来源丨https://zhuanlan.zhihu.com/p/80086809 编辑丨3D视觉工坊 <Class-balanced Grouping and Sampli ...

  9. ApolloScape自动驾驶数据集

    ECCV 2018和ApolloScape 目前,自动驾驶公司主要依赖于激光雷达来检测和识别物体,但相比激光雷达,基于视觉信息(如图像或视频)的3D感知或将大大降低成本. 此次ECCV 2018以解决 ...

最新文章

  1. 100G内存下,MySQL查询200G大表会OOM么?
  2. php 面向对象开发 类的学习 一
  3. Spring Roo 2 使用分析
  4. SSH框架搭建的时候遇到的问题
  5. 我慌了,纠删码是什么?我被面试官问蒙了
  6. 腾讯招.NET要求以下几点,你准备好了吗?
  7. 一文读懂人工智能的前世今生(建议收藏)
  8. 优化案例--改写IN条件为INNER JOIN
  9. 前端性能优化的常用手段
  10. 第二节20181110
  11. php变量自减,PHP 中「自增、自减」运算引发的奇怪问题
  12. windows自带备份驱动
  13. VINS-MONO概述
  14. markdown/md文件只读权限修改
  15. 后台导出打开Excle提示:Excel无法打开文件因为文件或文件扩展名无效
  16. 简单的模拟电话簿程序(java)
  17. Windows7旗舰版桌面整理
  18. 【题库】上海学校心理咨询-普通心理学-考点解析 6.1 表象
  19. python中的汉字编码(转载,已经注明转载地址)
  20. FPGA开发技巧:Modelsim仿真.do文件详细解析 原创 特权同学

热门文章

  1. [剑指offer]面试题第[42]题[Leedcode][JAVA][第53题][最大子序和][动态规划][贪心][分治]
  2. Eclipse——恢复的默认窗口设置篇
  3. 143. 最大异或对
  4. linux重启mysql一直_LINUX重启MYSQL的命令
  5. linux uuid错误,Linux 错误:fatal error: uuid/uuid.h: No such file or directory
  6. css 可编辑,如何设置DIV可编辑
  7. mysql获取后一天_mysql获取当前时间,前一天,后一天
  8. 上的img表示什么_方向盘上的SET、RES和CNL,表示什么意思?别弄错了
  9. WinCE5.0 SMDK2410 BSP在GEC2410开发板上的移植(11)-BINFS在Nand上的实现(Multi-Bin的实现)
  10. python linux运维教程 推荐_Linux运维人员成长之路学习书籍推荐