MMdetection3D学习系列(二)——KITTI数据集训练测试及可视化

文章介绍了如何使用mmdet3d框架,基于KITTI数据集或其较小的子集进行3D目标检测的训练。首先,需要处理数据集并将其转换为pkl文件。训练过程通过配置config文件实现,可以基于预训练模型进行调整。测试和可视化阶段,文章提到了如何使用mmdet3d的内置工具进行结果展示和数据浏览。
摘要由CSDN通过智能技术生成

安装完环境以后,就可以进行测试了,这里我使用的是KITTI数据集进行测试。关于KITTI数据集,网上有很多介绍了,这里简单说一下在mmdet3d中它需要的文件层级样式吧。主要是针对RGB和点云数据进行检测。
在这里插入图片描述
一般来说采用其中一侧的彩色摄像头的数据作为RGB数据输入即可。
但是这个数据集比较大,也需要挂梯子下载,所以我这边弄了一个500的小数据集,也已经按照mmdet3d的格式整理好了,后续我会将它发上来。
KITTI小数据集百度网盘链接
提取码:2pel
不过在mmdet3d中,还需要对数据进行进一步处理,将它处理为更易读取的pkl文件,这里mmdet3d也提供了处理工具

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

训练的话其实和mmdet2d类似,也是通过配置config文件就可以了,我是基于‘configs/pointpillars/hv_pointpillars_secfpn_6x8_160e_kitti-3d-3class.py’进行修改的。即新建一个py文件,命名为myconfig.py,里面编写如下:

_base_ =[configs/pointpillars/hv_pointpillars_secfpn_6x8_160e_kitti-3d-3class.py]

data = dict(
	samples_per_gpu=4,
	workers_per_gpu=1,
	persistent_workers=True,
)
optimizer = dict(type='Adamw', lr=0.001, betas=(0.950.99),weight_decay=0.01)
lr_config = None
momentum_config = None
runner = dict(max_epochs=5)
checkpoint_config = dict(interval=5)
evaluation = dict(interval=5)
log_config = dict(interval=5)

load_from = 'checkpoints/hy_pointpillars_secfon_6x8_160e_kitti-3d-3class_20220301_150306-37dc2420.pth'

如果基于预训练模型进行训练,记得要下载对应的checkpoints文件(load_from部分)
其实这边也可以直接像我之前弄的mmdet2d或者mmcls教程里那样,直接修改对应的config下对应的模型文件参数(即类似我所写代码的第一行的文件)。然后直接运行,会在work-dir下面生成本次训练的完整版的config文件,想修改的话直接ctrl+c终止然后修改,之后再次运行的话,就用这个config文件即可。切记不要直接在原config文件下进行修改,不然以后再次用到的时候容易出问题。另外,如果使用自己的数据集,我建议是直接将其整理成kitti或者其他常用的数据集格式,这样就免得去修改datasets部分的设置了,不然还挺麻烦感觉。

训练:

比较简单,直接在terminal里面输入这个即可,workdir什么的想改可以加进去,反正除了config其他非必要

python ./tools/train.py myconfig.py

测试:

python ./tools/test.py myconfig.py ./work_dirs/myconfig/latest.pth --show --show-dir

这时候是对training下的val部分进行测试及可视化,即对training_val的可视化
也可以使用mmdet3d自带的可视化工具来实现:
可视化工具:

 python ./tools/misc/browse_dataset.py myconfig.py --task det --output-dir tmp --online

如果使用mmdet3d的可视化工具,则是对training下的train部分,即training_train部分的可视化,因此需要将自己的config文件里的training部分改为和val一样的

_base_ =[configs/pointpillars/hv_pointpillars_secfpn_6x8_160e_kitti-3d-3class.py]

data = dict(
	samples_per_gpu=4,
	workers_per_gpu=1,
	persistent_workers=True,
	##################################################################################
	# 添加该行
	train=dict(dataset=dict(ann file='data/kitti/kitti_infos_val.pkl'))
	##################################################################################
)
optimizer = dict(type='Adamw', lr=0.001, betas=(0.950.99),weight_decay=0.01)
lr_config = None
momentum_config = None
runner = dict(max_epochs=5)
checkpoint_config = dict(interval=5)
evaluation = dict(interval=5)
log_config = dict(interval=5)

load_from = 'checkpoints/hy_pointpillars_secfon_6x8_160e_kitti-3d-3class_20220301_150306-37dc2420.pth'

具体结果的话,忘记拍照了…将就着看吧,如果有不懂的地方可以直接评论问,这样大家也都能看见。也欢迎大佬批评指正!

  • 0
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
你可以按照以下步骤将KITTI数据集转换为MMDetection3D格式: 1. 首先,确保你已经下载了KITTI数据集,并且文件结构如下所示: ``` KITTI ├── training │ ├── calib │ ├── image_2 │ ├── label_2 │ ├── velodyne │ └── ... └── testing ├── calib ├── image_2 ├── velodyne └── ... ``` 2. 然后,你需要安装MMDetection3D库。你可以按照官方文档中的指示进行安装:https://mmdetection3d.readthedocs.io/en/latest/getting_started.html#installation 3. 接下来,你需要创建一个配置文件,指定数据集的相关信息。在MMDetection3D中,配置文件通常是一个Python脚本。你可以在`configs/dataset`目录下找到示例配置文件,比如`kitti_dataset.py`。 4. 打开配置文件,并根据你的数据集路径进行相应的修改。主要需要修改的变量有: - `root_path`:指定KITTI数据集的根路径。 - `train_pipeline`和`test_pipeline`:指定数据预处理和增强的操作。 5. 保存并关闭配置文件。 6. 现在,你可以使用MMDetection3D提供的工具将KITTI数据集转换为MMDetection3D格式。在命令行中执行以下命令: ``` python tools/data_converter/kitti_converter.py <path_to_config_file> ``` 其中,`<path_to_config_file>`是你刚刚创建的配置文件的路径。 7. 执行上述命令后,MMDetection3D将会将KITTI数据集转换为MMDetection3D格式,并保存在指定的输出路径中。 完成上述步骤后,你就成功将KITTI数据集转换为MMDetection3D格式了。你可以使用转换后的数据集进行目标检测3D物体检测任务。
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值