如何正确复现mmdetection中的算法(1)!

本文详细介绍了如何在Docker容器中设置基础环境,安装mmcv-full和mmdetection,配置数据集,调整训练参数,以及进行单卡或多卡训练和模型推理的过程。

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

1、找到一个基础镜像(包含tocrh等所需基础环境)

2、利用docker run构建并开启一个docker容器

docker run --gpus all -itd -v /home/wzx:/workspace --name wzx-openmmlab-v1 pytorch/pytorch:1.6.0-cuda10.1-cudnn7-devel

其中,pytorch/pytorch代表REPOSITORY,1.6.0-cuda10.1-cudnn7-devel代表Tag。

3、安装mmcv-full

pip install mmcv-full==1.3.17 -i https://pypi.tuna.tsinghua.edu.cn/simple

4、将mmdetection2.25.0包下载后放入/workspace目录下

5、安装mmdetection的依赖(包括cython、numpy)

cd workspace/mmdetection-2.25.0
pip install -r requirements/build

6、执行mmdetection的配置文件

pip install --no-cache-dir -e .

其中,--no-cache-dir选项可使pip命令在安装工具包时不使用缓存目录。

7、创建目录datasets,将所用数据集放入其中,目录如下:

--datasets
    --mine_safety_helmet_data2023_coco
        --annotations
        --train2017
        --val2017

8、执行tools/train.py文件,生成work_dirs/deformable_detr_r50_16x2_50e_coco/deformable _detr_ r50_16x2_50e_coco.py生成训练所需的配置文件。

将所生成的配置文件deformable _detr_ r50_16x2_50e_coco.py重命名为my_deformable_detr_r50_16x2_50e_coco.py,并将其拷贝到configs/deformable_detr中。

9、修改上述生成的配置文件

1)将configs/deformable_detr/deformable_detr_r50_16x2_50e_coco.py文件中的num_classes设置为正确数值:

bbox_head=dict(
    type='DeformableDETRHead',
    num_query=300,
    num_classes=1,    # 检测类别数
    in_channels=2048,
......
data = dict(
    samples_per_gpu=1,    # batch_size
    workers_per_gpu=2,
dist_params = dict(backend='nccl')
log_level = 'INFO'
# 预训练权重
load_from = './work_dirs/deformable_detr_r50_16x2_50e_coco/deformable_detr_r50_16x2_50e_coco_20210419_220030-a12b9512.pth'
resume_from = None

其中,samples_per_gpu为batch_size,workers_per_gpu代表dataloader加载数据时创建的进程数。当显存和内存较小时,可设置为samples_per_gpu=1,workers_per_gpu=0(意味着每一轮迭代时,dataloader不再自主加载数据到RAM,而是在RAM中找batch,找不到时再加载相应的batch)。

load_from设置为对应的预训练权重路径(若需要)。

2)修改configs/_base_/datasets/coco_detection.py文件中的data_root(数据集根目录),mmdet/datasets/coco.py中的CLASSES(当只有一个类别时,在标签后加一个“,”),例如:

CLASSES = ('Mine_Safety_Helmet',)    # 类别
PALETTE = [(220, 20, 60),]    # 颜色

 3)修改mmdet/core/evaluation/class_names.py中coco_classes方法中的return类别。

10、训练

1)单卡训练:

python tools/train.py configs/deformable_detr/deformable_detr_r50_16x2_50e_coco.py

 2)多卡训练:

./tools/dist_train.sh ./configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.py 4

4代表使用的gpu数量。 

11、测试模型推理效果

测试模型对所有待处理图像的检测效果,测试代码地址:inference_dir.py下载地址

将该代码下载后存放到mmdetection的demo/下,并执行python inference_dir.py执行检测。

### MMDetection3D 复现教程 #### 准备工作 为了成功复现 MMDetection3D 项目中的模型,需先完成环境搭建。具体来说,按照官方文档指引准备必要的依赖库和工具链[^1]。 ```bash pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cu113/torch1.10/index.html git clone https://github.com/open-mmlab/mmdetection3d.git cd mmdetection3d pip install -e . ``` 上述命令用于安装 `mmcv` 和克隆仓库并设置开发模式下的包安装,确保后续操作顺利进行。 #### 数据集准备 MMDetection3D 支持多种三维物体检测常用的数据集,如 KITTI, Waymo Open Dataset 等。用户可以根据实际需求下载对应版本的数据集,并依照指定结构放置于本地磁盘中以便程序读取处理。 #### 配置文件调整 针对不同应用场景可能需要修改默认参数设定来优化性能表现。这通常涉及到编辑 Python 字典形式定义好的配置文件(.py),其中涵盖了从输入预处理到损失函数选择等一系列选项。特别注意的是当改变硬件资源数量(比如GPU数目)时要相应调整学习速率以维持稳定收敛特性[^4]。 #### 训练过程启动 一切准备工作完成后即可执行训练脚本开始迭代更新权重直至达到预期精度水平: ```bash python tools/train.py configs/config_file_name.py ``` 这里替换掉 `config_file_name.py` 成具体的路径名指向自定义或标准样例之一。 #### 测试评估指标获取 最后一步是对已训练完毕后的模型做全面评测分析,通过如下指令可以方便快捷地得到各类统计数值反映算法优劣程度: ```bash python tools/test.py configs/config_file_name.py checkpoints/checkpoint.pth --eval bbox ``` 该命令会基于测试集中样本计算边界框匹配度等关键评价维度得分情况。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值