以下是我在MMdetection3D上使用KITTI数据集训练模型和评估模型性能的方法和详细步骤。
1. 访问KITTI官方网站
前往 KITTI Vision Benchmark Suite 的官方网站。
2. 导航到3D目标检测数据集
点击页面顶部的 "Object Detection" 链接,或者直接访问 KITTI 3D Object Detection 页面。
3. 下载数据
在页面中找到数据下载部分,通常包括以下几个部分:
- Training images and calibration (12 GB): 包含训练图像和校准文件。
- Training labels (5 MB): 包含训练数据的标注文件。
- Velodyne point clouds (29 GB): 包含Velodyne点云数据。
- Testing images and calibration (6 GB): 包含测试图像和校准文件(无标注)。
- Testing Velodyne point clouds (19 GB): 包含测试数据的Velodyne点云。
你需要下载以下文件以便进行3D目标检测:
- Training images and calibration (12 GB)
- Training labels (5 MB)
- Velodyne point clouds (29 GB)
4. 解压数据
下载完成后,使用解压工具(如7-Zip或WinRAR)解压缩这些文件。你将得到以下几个文件夹:
- data_object_image_2: 包含训练图像。
- data_object_calib: 包含校准文件。
- data_object_label_2: 包含训练标注文件。
- data_object_velodyne: 包含Velodyne点云数据。
5. 组织数据
按照KITTI格式组织解压后的数据文件夹结构。确保你的文件夹结构如下:
示例
下载并解压后的文件结构应该是这样的:
6. 在MMDetection3D中使用
在配置文件中指定数据集的路径:
dataset_type = 'KittiDataset'
data_root = 'path/to/kitti/'
data = dict(
samples_per_gpu=2,
workers_per_gpu=2,
train=dict(
type=dataset_type,
data_root=data_root,
ann_file=data_root + 'training/kitti_infos_train.pkl',
pipeline=train_pipeline),
val=dict(
type=dataset_type,
data_root=data_root,
ann_file=data_root + 'training/kitti_infos_val.pkl',
pipeline=test_pipeline),
test=dict(
type=dataset_type,
data_root=data_root,
ann_file=data_root + 'testing/kitti_infos_test.pkl',
pipeline=test_pipeline))
7. 训练和评估
在配置文件中定义好模型、优化器、学习率策略等后,可以通过命令行工具tools/train.py
进行模型训练。评估模型的性能则通过tools/test.py
进行。
python tools/train.py configs/pointpillars/hv_pointpillars_secfpn_6x8_160e_kitti-3d-3class.py
python tools/test.py configs/pointpillars/hv_pointpillars_secfpn_6x8_160e_kitti-3d-3class.py work_dirs/hv_pointpillars_secfpn_6x8_160e_kitti-3d-3class/latest.pth --eval mAP