注意:

  • 再学习本系列教程时,应该已经安装过ROS了并且需要有一些ROS的基本知识

ubuntu版本:20.04
ros版本:noetic

前言

自动驾驶是我的一个非常有意思的研究方向,我会在以后的时间里更新有关自动驾驶方向的知识。而这系列教程通过ROS和KITTI数据集实现一个自动驾驶感知功能。
如果想要训练自动驾驶的感知功能,必须要有一个强大的数据集才能实现。KITTI就是这么一个在2012年发表的强大的自动驾驶资料库。

1.Kitti数据集概述

KITTI数据集由德国卡尔斯鲁厄理工学院和丰田美国技术研究院联合创办,是目前国际上最大的自动驾驶场景下的计算机视觉算法评测数据集。该数据集用于评测立体图像(stereo),光流(optical flow),视觉测距(visual odometry),3D物体检测(object detection)和3D跟踪(tracking)等计算机视觉技术在车载环境下的性能。KITTI包含市区、乡村和高速公路等场景采集的真实图像数据,每张图像中最多达15辆车和30个行人,还有各种程度的遮挡与截断。整个数据集由389对立体图像和光流图,39.2 km视觉测距序列以及超过200k 3D标注物体的图像组成,以10Hz的频率采样及同步。总体上看,原始数据集被分类为Road, City, Residential, CampusPerson。对于3D物体检测,label细分为car,van,truck,pedestrian,pedestrian(sitting),cyclist,tram以及misc组成。
KITTI数据集官网

2.Kitti数据采集平台

KITTI数据集的数据采集平台装配有两个灰度摄像机,两个彩色摄像机,一个Velodyne 64线3D激光雷达,4个光学镜头,一个GPS导航系统和一个IMU惯性传感器。设备装配图如下所示:
1 Inertial Navigation System (GPS/IMU): OXTS RT 3003
1 Laserscanner: Velodyne HDL-64E
2 Grayscale cameras, 1.4 Megapixels: Point Grey Flea 2 (FL2-14S3M-C)
2 Color cameras, 1.4 Megapixels: Point Grey Flea 2 (FL2-14S3C-C)
4 Varifocal lenses, 4-8 mm: Edmund Optics NT59-917

传感器的配置平面图如下所示。为了生成双目立体图像,相同类型的摄像头相隔54cm安装。由于彩色摄像机的分辨率和对比度不是很好,所以还使用了两个立体灰度相机,它和彩色相机相距6cm安装。为了方便传感器数据标定,规定坐标系方向如下所示:

3.下载数据集

数据集官网下载地址
首先进入raw_data界面,找到名为2011_09_26_drive_0005的数据集,分别通过synced+rectified datacalibration下载同步和修正的数据集和传感器校准文件,文件如下所示:

下载完成后使用如下命令解压进RawData文件夹:

$ unzip 2011_09_26_drive_0005_sync.zip
$ unzip 2011_09_26_calib.zip

可以看到会解压进同一个2011_09_26文件夹,如下图所示:

4.转换数据集为ros bag

使用kitti2bag插件将KITTI数据集转换为ROS可读的bag文件。

  1. 下载kitti2bag插件
    $ pip3 install kitti2bag
    
  2. 开始转换数据
    $ cd ~/kitti/RawData
    $ kitti2bag -t 2011_09_26 -r 0005 raw_synced .
    
    如果提示No module named 'tf'这个错误使用如下命令安装依赖:
    $ sudo apt install ros-noetic-tf
    
    转换完成后会在当前目录产生一个后缀为bag的文件,转换结果如下所示:

5.在ROS中查看Kitti数据集

台湾博主教程中的方法貌似行不通。尝试笔者以下教程查看kitti数据集:

$ roscore
$ rosbag play -l kitti_2011_09_26_drive_0005_synced.bag 
$ rqt_image_view

rosbag-l参数是循环播放bag中的内容。
如果找不到rqt_image_view工具,可以使用如下命令安装:

$ sudo apt install ros-noetic-rqt-image-view

打开成功后界面如下所示:

可以看到数据集中的彩色图像画面。选择/kitti/camera_gray_left/image这个topic可以看到灰度图像如下所示:

这时已经完成了kitti数据的可视化操作。

Reference

https://blog.csdn.net/zchang81/article/details/73456981
参考YouTube上的博主教学:https://www.bilibili.com/video/BV1qV41167d2?p=1

结语

本文也是基于笔者的学习和使用经验总结的,主观性较强,如果有哪些不对的地方或者不明白的地方,欢迎评论区留言交流~

为了能和读者进一步讨论问题,建立了一个微信群,方便给大家解答问题,也可以一起讨论问题。
加群链接
✌Bye