OpenPCDet KITTI数据加载过程 (Pointpillar模型)

KITTI 3D目标检测数据集下载生成

https://www.cvlibs.net/datasets/kitti/eval_object.php?obj_benchmark=3d
下载以下几项内容 Download point cloud(29GB), images(12 GB), calibration
files(16 MB)和labels(5 MB)。Format the datasets as follows:

下载完成之后解压内容目录如下

kitti
    |- training
        |- calib (#7481 .txt)
        |- image_2 (#7481 .png)
        |- label_2 (#7481 .txt)
        |- velodyne (#7481 .bin)
    |- testing
        |- calib (#7518 .txt)
        |- image_2 (#7518 .png)
        |- velodyne (#7418 .bin)

对KITTI数据生成pkl信息

python -m pcdet.datasets.kitti.kitti_dataset create_kitti_infos tools/cfgs/dataset_configs/kitti_dataset.yaml

在这里插入图片描述
在这里插入图片描述

生成之后数据格式如下

kitti
    |- training
        |- calib (#7481 .txt)
        |- image_2 (#7481 .png)
        |- label_2 (#7481 .txt)
        |- velodyne (#7481 .bin)
        |- velodyne_reduced (#7481 .bin)
    |- testing
        |- calib (#7518 .txt)
        |- image_2 (#7518 .png)
        |- velodyne (#7518 .bin)
        |- velodyne_reduced (#7518 .bin)
    |- kitti_gt_database (# 19700 .bin)
    |- kitti_infos_train.pkl
    |- kitti_infos_val.pkl
    |- kitti_infos_trainval.pkl
    |- kitti_infos_test.pkl
    |- kitti_dbinfos_train.pkl

PKL文件生成过程解读 (以kitti_dbinfos_train.pkl 为例 其他思路类似)

  dataset = KittiDataset(dataset_cfg=dataset_cfg, class_names=class_names, root_path=data_path, training=False)
    dataset.set_split(train_split)
    kitti_infos_train = dataset.get_infos(num_workers=workers, has_label=True, count_inside_pts=True)
    with open(train_filename, 'wb') as f:
        pickle.dump(kitti_infos_train, f)
    print('Kitti info train file is saved to %s' % train_filename)

Pkl 文件存储都是以 pickle.dump形式存储的

1. 首先调用KittiDataset 类 生成对象dataset
2. 使用dataset 的 set_split 方法去读取 Imagesets 里面相关的数据分配文件
3. 调用 dataset 的get_infos 方法去读取数据相关信息 生成info dict
4. 将生成的info dict 存储成pkl文件方便用的时候调用它。

PKL 文件内容解读

我们以kitti_dbinfos_train.pkl Car 的一帧为例

import json,os
path_pkl = "/data4/ssl/OpenPCDet/data/kitti/kitti_dbinfos_train.pkl"#
import pickle
import numpy as np
# Open the pickle file for reading
with open(path_pkl, 'rb') as pickle_file:  # Note the 'rb' mode for binary reading
    data = pickle.load(pickle_file)
print(data.keys())
print(data['Car'][0])

{'name': 'Car', 'path': 'gt_database/000003_Car_0.bin', 'image_idx': '000003', 'gt_idx': 0, 'box3d_lidar': array([13.51070213, -0.98177999, -0.90948981,  4.15      ,  1.73      ,
        1.57      , -3.19079633]), 'num_points_in_gt': 677, 'difficulty': 0, 'bbox': array([614.24, 181.78, 727.31, 284.77], dtype=float32), 'score': -1.0}

存放了上面一些内容 path 为相对路径

后续讲解模型是如何使用这些PKL文件的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jack_Man_N

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值