AUTO-DL云平台部署BEVformer实战:Nuscenes数据集迁移与解压全流程
在自动驾驶研究领域,BEVformer凭借其强大的鸟瞰图特征提取能力,已成为多相机3D目标检测的热门选择。而Nuscenes作为目前最全面的自动驾驶开源数据集之一,包含了丰富的传感器数据和精细的标注信息。本文将手把手指导研究者在AUTO-DL云平台上完成从数据集迁移到最终解压的全流程操作,特别针对实际部署中容易遇到的路径配置、文件缺失等问题提供解决方案。
1. 环境准备与目录结构规划
在开始操作前,合理的目录规划能避免90%的路径错误问题。AUTO-DL平台默认提供两类存储空间:autodl-pub为公共只读存储,存放预置数据集;autodl-tmp为用户可写的项目空间。建议采用以下目录结构:
/root/autodl-tmp/
└── BEVformer/
├── data/
│ ├── nuscenes/ # 主数据集目录
│ │ ├── maps/ # 地图数据
│ │ ├── samples/ # 关键帧样本
│ │ ├── sweeps/ # 中间帧数据
│ │ ├── v1.0-test/ # 测试集元数据
│ │ └── v1.0-trainval/ # 训练验证集元数据
│ └── can_bus/ # CAN总线扩展数据
├── projects/
├── tools/
└── configs/
关键点:
- 确认BEVformer代码库已完整克隆到
/root/autodl-tmp/BEVformer - 提前创建好
data/nuscenes目录,避免后续cp命令报错 - 对于团队协作项目,建议使用
ln -s创建软链接而非直接复制数据
2. 数据集迁移实战操作
Nuscenes完整数据集包含约350GB数据,迁移时需特别注意存储配额。以下是分步操作指南:
2.1 基础数据集迁移
执行前先验证源文件是否存在:
ls /root/autodl-pub/nuScenes/Fulldatasetv1.0/Test/
ls /root/autodl-pub/nuScenes/Fulldatasetv1.0/Trainval/
然后分批次复制文件(建议使用screen保持会话):
# 测试集
cp /root/autodl-pub/nuScenes/Fulldatasetv1.0/Test/v1.0-test_meta.tar /root/autodl-tmp/BEVformer/data/nuscenes
cp /root/autodl-pub/nuScenes/Fulldatasetv1.0/Test/v1.0-test_blobs.tgz /root/autodl-tmp/BEVformer/data/nuscenes
# 训练验证集(分10个批次)
for i in {01..10}; do
cp "/root/autodl-pub/nuScenes/Fulldatasetv1.0/Trainval/v1.0-trainval${i}_blobs.tgz" /root/autodl-tmp/BEVformer/data/nuscenes
done
cp /root/autodl-pub/nuScenes/Fulldatasetv1.0/Trainval/v1.0-trainval_meta.tgz /root/autodl-tmp/BEVformer/data/nuscenes
注意:若遇到
No space left on device错误,可通过df -h检查磁盘使用情况,必要时清理缓存或申请扩容。
2.2 CAN总线扩展数据
自动驾驶仿真需要CAN总线数据支持:
mkdir -p /root/autodl-tmp/BEVformer/data/can_bus
cp /root/autodl-pub/nuScenes/CANbusexpansion/can_bus.zip /root/autodl-tmp/BEVformer/data/can_bus
unzip /root/autodl-tmp/BEVformer/data/can_bus/can_bus.zip -d /root/autodl-tmp/BEVformer/data/can_bus
3. 解压与数据校验
解压过程可能耗时数小时,建议使用nohup后台运行:
3.1 测试集解压
tar zxvf /root/autodl-tmp/BEVformer/data/nuscenes/v1.0-test_blobs.tgz -C /root/autodl-tmp/BEVformer/data/nuscenes
tar zxvf /root/autodl-tmp/BEVformer/data/nuscenes/v1.0-test_meta.tar -C /root/autodl-tmp/BEVformer/data/nuscenes
3.2 训练验证集解压
tar zxvf /root/autodl-tmp/BEVformer/data/nuscenes/v1.0-trainval_meta.tgz -C /root/autodl-tmp/BEVformer/data/nuscenes
for i in {01..10}; do
tar zxvf "/root/autodl-tmp/BEVformer/data/nuscenes/v1.0-trainval${i}_blobs.tgz" -C /root/autodl-tmp/BEVformer/data/nuscenes
done
常见问题排查:
- 解压中断:检查磁盘空间,使用
tar -tzf预览内容 - 文件权限问题:添加
sudo或执行chmod -R 755 /root/autodl-tmp/BEVformer/data - 哈希校验:对比
md5sum与官方提供的校验值
4. 数据集后处理与格式转换
BEVformer需要特定格式的标注文件,使用官方工具进行转换:
cd /root/autodl-tmp/BEVformer
# 完整数据集转换
python tools/create_data.py nuscenes \
--root-path ./data/nuscenes \
--out-dir ./data/nuscenes \
--extra-tag nuscenes \
--version v1.0 \
--canbus ./data/can_bus
# 仅基础转换(无CAN总线)
python tools/create_data.py nuscenes \
--root-path ./data/nuscenes \
--out-dir ./data/nuscenes \
--extra-tag nuscenes
转换完成后,检查生成的关键文件:
nuscenes_infos_temporal_train.pkl
nuscenes_infos_temporal_val.pkl
nuscenes_infos_temporal_test.pkl
5. 路径配置与模型训练
最后修改配置文件中的路径指向。以configs/bevformer/bevformer_base.py为例:
data_root = '/root/autodl-tmp/BEVformer/data/nuscenes'
data = dict(
train=dict(
data_root=data_root,
ann_file=data_root + '/nuscenes_infos_temporal_train.pkl',
),
val=dict(
data_root=data_root,
ann_file=data_root + '/nuscenes_infos_temporal_val.pkl',
),
test=dict(
data_root=data_root,
ann_file=data_root + '/nuscenes_infos_temporal_test.pkl',
)
)
启动训练命令示例:
python tools/train.py configs/bevformer/bevformer_base.py \
--work-dir /root/autodl-tmp/BEVformer/work_dirs \
--gpu-ids 0
332



被折叠的 条评论
为什么被折叠?



