# DETR3D **Repository Path**: olivegame/detr3-d ## Basic Information - **Project Name**: DETR3D - **Description**: DETR3D论文原理和代码复现 - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-30 - **Last Updated**: 2025-11-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # DETR3D #### 介绍 DETR3D论文原理和代码复现 ![输入图片说明](detr3d.png) #### 架构说明 - 代码实现是挂接在 MMDection3D 第三方库上面。 - detr3d代码的主要实现在> detr3d-main 文件夹下面。具体结构如下: ![输入图片说明](%E4%BB%A3%E7%A0%81%E6%B5%81%E7%A8%8B.png) - 其他代码说明教程:[BEV Perception] DETR3D原理分析与代码解读](https://zhuanlan.zhihu.com/p/587380480) #### 安装教程 官方没有明确给出环境配置说明,实践以下环境可以运行大部分程序,不过依然存在少量问题需要解决: - 1️⃣ 创建环境 conda create -n detr3d python=3.8 -y conda activate detr3d - 2️⃣ 安装 PyTorch (CUDA 11.7) pip install torch==1.13.1 torchvision==0.14.1 --index-url https://download.pytorch.org/whl/cu117 - 3️⃣ 安装 mmcv-full pip install mmcv-full==1.7.1 -f https://download.openmmlab.com/mmcv/dist/cu117/torch1.13/index.html - 4️⃣ 安装 MMDetection pip install mmdet==2.28.2 - 5️⃣ 安装 MMDetection3D(兼容性好) git clone https://github.com/open-mmlab/mmdetection3d.git -b 1.0.0rc6 cd mmdetection3d pip install -e . cd .. - 6️⃣ 安装 DETR3D git clone https://github.com/WangYueFt/detr3d.git cd detr3d pip install -e . #### 使用说明 1. 第一步需要下载 Nuscenes 数据集,这里自行下载。 ![输入图片说明](%E5%9C%B0%E5%9B%BE%E6%95%B0%E6%8D%AE.png) 2. 官方需要对原始 Nuscenes 数据集进行处理,在 create_data.py 代码中需要修改数据版本的代码(有些小的问题)。修改 create_data.py 代码后自定义 Nuscenes 数据集: ``` python tools/create_data.py nuscenes \ --root-path /data/xjh/data/nuscenes \ --out-dir /data/xjh/data/nuscenes \ --version v1.0 \ --extra-tag nuscenes ``` 如果是 mini 数据集,自定义 Nuscenes-v1.0-mini 数据集: ``` python tools/create_data.py nuscenes \ --root-path /data/xjh/data/Nuscenes-v1.0-mini \ --out-dir /data/xjh/data/Nuscenes-v1.0-mini \ --version v1.0-mini \ --extra-tag nuscenes ``` 3. 多卡训练,论文使用的 > cbgs 模块效果提升不大,但是会显著提高计算量,所以 4 卡并行训练去掉 > cbgs 模块能加速1~2天: ``` # 训练 detr3d_res101_gridmask_cbgs CUDA_VISIBLE_DEVICES=3,4,5,6 bash ./tools/dist_train.sh projects/configs/detr3d/detr3d_res101_gridmask_cbgs.py 4 # 训练 detr3d_res101_gridmask CUDA_VISIBLE_DEVICES=3,4,5,6 bash ./tools/dist_train.sh projects/configs/detr3d/detr3d_res101_gridmask.py 4 # 断点训练 CUDA_VISIBLE_DEVICES=3,4,5,6 bash ./tools/dist_train.sh projects/configs/detr3d/detr3d_res101_gridmask.py 4 --resume-from work_dirs/detr3d_res101_gridmask/latest.pth ``` 训练结果代码> plot_train.py 曲线图如下: ![输入图片说明](optimized_training_curves.png) 训练验证结果: ![输入图片说明](%E8%AE%AD%E7%BB%83%E7%BB%93%E6%9E%9C.png) 总体指标: ![输入图片说明](%E6%80%BB%E4%BD%93%E6%8C%87%E6%A0%87.png) 4. 获取训练推理结果,用训练的结果进行验证集推理: ``` PYTHONPATH="./projects/mmdet3d_plugin":$PYTHONPATH \ python tools/test.py \ projects/configs/detr3d/detr3d_res101_gridmask_val.py \ work_dirs/detr3d_res101_gridmask/latest.pth \ --out work_dirs/results.pkl \ --eval mAP ``` 5. 可视化推理结果,这样可以获取一帧图像的 3D 场景,可以用 MeshLab 等 3维软件查看: ``` PYTHONPATH="./projects/mmdet3d_plugin":$PYTHONPATH \ python ./tools/misc/visualize_results.py \ projects/configs/detr3d/detr3d_res101_gridmask_val.py \ --result work_dirs/results.pkl \ --show-dir output_vis ``` 6. 展开为平面或者 BEV 视角的可视化结果如下: ![输入图片说明](%E5%8F%AF%E8%A7%86%E5%8C%96%E7%BB%93%E6%9E%9C.png)