mmdetection3D系列--(2)数据集准备

1.前言

    运行完demo之后,你是不是想自己体验一下训练和测试的过程呢,但是,这一切都是以数据集为前提的,有了数据才能训练,有了数据,才能测试。所以,今天就记录一下数据集的处理过程。

2.mmdetection3d支持的数据集

    mmdetection3d支持很多数据集,比如说kitti,NuScenes,waymo,Lyft,S3DIS、ScanNet 和 SUN RGB-D。这里要根据自己的任务去选择相应的数据集,是作2d/3d检测的,还是作分割的,都是不一样的。但是这些数据由于格式和规则的不同,很可能带来麻烦,所以mmdetection准备了一些脚本,来把下载好的数据转换成训练/测试脚本能识别的格式。从而在该数据集上进行后续的工作。

    这里以使用较多的kitti数据集作为示例,给大家演示一下怎么进行转换(其他数据集也基本同理)。

KITTI数据集简单介绍:

    KITTI数据集由德国卡尔斯鲁厄理工学院和丰田美国技术研究院联合创办,是目前国际上最大的自动驾驶场景下的计算机视觉算法评测数据集。作者收集了长达6个小时的真实交通环境,数据集由经过校正和同步的图像、雷达扫描、高精度的GPS信息和IMU加速信息等多种模态的信息组成。该数据集用于评测立体图像(stereo),光流(optical flow),视觉测距(visual odometry),3D物体检测(object detection)和3D跟踪(tracking)等计算机视觉技术在车载环境下的性能。3D目标检测数据集由7481个训练图像和7518个测试图像以及相应的点云数据组成,包括总共80256个标记对象。具体来看,下图蓝色框标记的为我们需要的数据,分别是:

    1.彩色图像数据(12GB)
    2.点云数据(29GB)
   3. 相机矫正数据(16MB)
    4.标签数据(5MB)

    其中彩色图像数据、点云数据、相机矫正数据均包含training(7481)和testing(7518)两个部分,标签数据只有training部分。

数据转换

    转换过程总体分为两步,1.下载原始数据并按要求划分文件夹;2.运行相应脚本。

(1).下载原始数据并按要求划分文件夹

    kitti数据集的下载地址在下面:

 KITTI数据集下载链接

   下载完成解压之后,建立新文件夹存放kitti数据:结构如下,把对应的数据放在对应的文件夹里面就可以了。区别是kitti原始数据先分传感器后分训练测试,而mmdetection3d是先分训练测试,后分传感器:

mmdetection3d
├── data
│   ├── kitti
│   │   ├── ImageSets
│   │   ├── testing
│   │   │   ├── calib
│   │   │   ├── image_2
│   │   │   ├── velodyne
│   │   ├── training
│   │   │   ├── calib
│   │   │   ├── image_2
│   │   │   ├── label_2
│   │   │   ├── velodyne

然后是下载imageset里的东西,也就是划分数据的文件(在mmdetection3d文件夹下运行)

# 下载数据划分文件
wget -c  https://raw.githubusercontent.com/traveller59/second.pytorch/master/second/data/ImageSets/test.txt --no-check-certificate --content-disposition -O ./data/kitti/ImageSets/test.txt
wget -c  https://raw.githubusercontent.com/traveller59/second.pytorch/master/second/data/ImageSets/train.txt --no-check-certificate --content-disposition -O ./data/kitti/ImageSets/train.txt
wget -c  https://raw.githubusercontent.com/traveller59/second.pytorch/master/second/data/ImageSets/val.txt --no-check-certificate --content-disposition -O ./data/kitti/ImageSets/val.txt
wget -c  https://raw.githubusercontent.com/traveller59/second.pytorch/master/second/data/ImageSets/trainval.txt --no-check-certificate --content-disposition -O ./data/kitti/ImageSets/trainval.txt

(2).运行相应脚本

最后运行转换脚本:输入输出文件夹默认就行

python tools/create_data.py kitti --root-path ./data/kitti --out-dir ./data/kitti

转换完成之后,文件夹里面变成了这样:

kitti
├── ImageSets
│   ├── test.txt
│   ├── train.txt
│   ├── trainval.txt
│   ├── val.txt
├── testing
│   ├── calib
│   ├── image_2
│   ├── velodyne
│   ├── velodyne_reduced
├── training
│   ├── calib
│   ├── image_2
│   ├── label_2
│   ├── velodyne
│   ├── velodyne_reduced
│   ├── planes (optional)
├── kitti_gt_database
│   ├── xxxxx.bin
├── kitti_infos_train.pkl
├── kitti_infos_val.pkl
├── kitti_dbinfos_train.pkl
├── kitti_infos_test.pkl
├── kitti_infos_trainval.pkl
├── kitti_infos_train_mono3d.coco.json
├── kitti_infos_trainval_mono3d.coco.json
├── kitti_infos_test_mono3d.coco.json
├── kitti_infos_val_mono3d.coco.json

 到这里,训练和测试需要的数据就准备好啦。如果需要其他数据集,可以参考官方的文档:mmdetection3d官方文档

猜你喜欢

转载自blog.csdn.net/qq_45783225/article/details/129324814