Mmdetection3d学习笔记--bevfusion跑通 在nuscenes v1.0-mini数据集上

作者遇到了MIT源代码环境部署的困难,因此选择通过MMDetection3D的项目来曲线救国。他们详细描述了如何配置环境,特别是针对CUDA版本安装torch和其他相关包。在数据集准备阶段,他们使用MMDetection3D提供的工具处理Nuscenesv1.0-mini数据集,并指出了在转换数据集中需修改的一个关键参数。在训练BEVFusion模型时,遵循项目文档,但因前期数据集参数未正确修改导致初期报错。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

mit那个源代码的环境总是部署不好,所以曲线救国来跑open-mmlab上的project

话不多说,先根据mmdetection3d部署好环境

 环境配置

官网地址如下:开始你的第一步 — MMDetection3D 1.2.0 文档

我的环境配置如下:根据自己的cuda版本安装torch之后便可以根据安装流程安装mmcv mmdet mmengine等包

数据集准备

Mmdectection3d有提供专门的数据处理工具,地址如下:数据集 — MMDetection3D 1.2.0 文档 projects中的BEVFusion是在nuscenes数据集上处理的NuScenes 数据集 — MMDetection3D 1.2.0 文档,所以我是参照的Nuscenes数据集处理方式,因为原始的数据集太大,我使用的是v1.0-mini版本,所以对应的代码需要进行修改。

原始的v1.0-mini数据集如下所示:

使用指令转化后的数据集格式如下所示:python tools/create_data.py nuscenes --root-path ./data/nuscenes --version v1.0-mini --out-dir ./data/nuscenes --extra-tag nuscenes 

 

运行指令前要修改的地方/mmdet3d/datasets/nuscenes_dataset.py

此处的v1.0-trainval一定要改成v1.0-mini,不然即便可以成功将Bin文件转化成pkl文件,在训练和评估时还是会识别到v1.0-trainval(debug de了两天的人含泪说道)。数据集转化好之后就可以开始训练了。

训练Bevfusion

文档地址:mmdetection3d/projects/BEVFusion at main · open-mmlab/mmdetection3d (github.com)

直接按照文档来就OK了,我主要是前面转化数据集没有改那个参数,导致我即便成功转成了pkl文件也一直在报错。debug也找不出问题所在(问题在文件里这谁能想到)

 

 

 

### 如何使用 MMDetection3d 训练 NuScenes-Mini 数据集 MMDetection3d 是一个强大的开源框架,支持多种 3D 检测任务。为了在 NuScenes-mini 数据集上进行训练,需要完成以下几个方面的设置。 #### 1. 文件夹结构准备 首先,确保数据集的文件夹结构符合预期。对于 NuScenes-mini 数据集,其目录应按照以下方式组织: ```plaintext mmdetection3d/ ├── mmdet3d/ ├── tools/ ├── configs/ ├── data/ └── nuscenes/ ├── maps/ ├── samples/ ├── sweeps/ ├── v1.0-mini/ ├── nuscenes_database/ ├── nuscenes_infos_train.pkl[^1] ├── nuscenes_infos_val.pkl ├── nuscenes_dbinfos_train.pkl ├── nuscenes_infos_train_mono3d.coco.json ├── nuscenes_infos_val_mono3d.coco.json ``` 上述文件可以过官方脚本 `tools/data/nuscenes/create_nuscenes_infos.py` 自动生成。执行命令如下所示: ```bash python tools/data/nuscenes/create_nuscenes_infos.py nu_scenes_data_root --version=v1.0-mini ``` 此操作会生成所需的 `.pkl` 和 `.json` 文件。 --- #### 2. 配置文件调整 MMDetection3d 提供了丰富的预定义配置文件,位于 `configs/` 目录下。针对 NuScenes 数据集的任务(如检测或多视角 3D),可以选择合适的基线模型并修改参数。 以下是基于第二阶段投票网络 (VoxelNet 或 PointPillars) 的配置模板路径及其说明: - **PointPillars**: 基于鸟瞰图 (BEV) 的轻量级方法,适合实时应用。 ```plaintext configs/pointpillars/pointpillars_secfpn_6x8_160e_kitti-3d-car.py ``` - **CenterPoint**: 更先进的两阶段检测器,在多个基准测试中表现优异。 ```plaintext configs/centerpoint/centerpoint_02pillar_second_secfpn_4x8_cyclic_20e_nus.py ``` 假设我们选择了 CenterPoint 模型作为基础架构,则需创建一个新的配置文件 `my_centerpoint_mini.py` 并继承默认配置: ```python _base_ = 'configs/centerpoint/centerpoint_02pillar_second_secfpn_4x8_cyclic_20e_nus.py' data_root = 'data/nuscenes/' data = dict( train=dict( ann_file=data_root + 'nuscenes_infos_train.pkl', data_prefix=dict(pts='samples', sweeps='sweeps')), val=dict( ann_file=data_root + 'nuscenes_infos_val.pkl', data_prefix=dict(pts='samples', sweeps='sweeps'))) ``` 在此基础上,可以进一步微调超参数,例如学习率调度策略、批量大小等。 --- #### 3. 启动训练过程 准备好数据和配置后,即可启动训练流程。过以下命令运行训练脚本: ```bash python tools/train.py my_centerpoint_mini.py --work-dir work_dirs/my_centerpoint_mini ``` 其中: - `--work-dir`: 指定保存日志和权重文件的工作目录。 - 如果 GPU 资源充足,还可以附加分布式选项以加速计算: ```bash ./tools/dist_train.sh my_centerpoint_mini.py 8 ``` 这将利用 8 张 GPU 进行多卡训练--- #### 4. 可视化验证 在训练过程中或完成后,可借助内置工具对预测结果进行可视化分析。例如,加载已有的检查点文件并对验证集样本绘制边界框: ```bash python tools/test.py \ my_centerpoint_mini.py \ work_dirs/my_centerpoint_mini/latest.pth \ --show --show-dir vis_results ``` 或者直接查看原始数据分布情况: ```bash python tools/misc/browse_dataset.py \ configs/_base_/datasets/nuscenes.py \ --task det --online ``` 以上命令能够帮助开发者快速理解输入特征的空间特性以及标注质量。 --- ### 总结 综上所述,要成功地在 MMDetection3d训练 NuScenes-mini 数据集,主要涉及三个核心环节:数据预处理、定制化配置设计以及实际运算控制。每一步都依赖清晰的操作指南与精确的技术实现[^2]。 ---
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值