mmdetection训练自己的数据集

一、mmdetection下载

github:open-mmlab/mmdetection: OpenMMLab Detection Toolbox and Benchmark (github.com)

二、mmdetection环境配置

1. 创建一个新环境:
复制代码
conda create -n mmd python==3.9
activate mmd
2.查看电脑配置:
复制代码
nvidia-smi

可以看到驱动最高支持的cuda版本为12.2, 电脑已经安装好cuda toolkit11.6:

3.安装torch和cudnn等

根据需求选择安装torch版本是'1.11.0+cu113',也可以在虚拟环境中安装cudatoolkit和cudnn,以及安装torch1.11GPU版本

pytorch v1.11.0PyTorch官网历史版本链接( https://pytorch.org/get-started/previous-versions/)里面,找到v1.11.0的安装命令, 此处选择的是cuda11.3对应的PyTorch安装命令。

复制代码
# CUDA 11.3

pip install torch==1.11.0+cu113 torchvision==0.12.0+cu113 torchaudio==0.11.0 --extra-index-url https://download.pytorch.org/whl/cu113

测试:

复制代码
python
>>import torch
>>torch.__version__
>>torch.cuda.is_available()

可以看到torch对应的版本

3.环境编译:
复制代码
cd mmdetection
pip install -r requirements/build.txt
pip install -v -e .  # or "python s
4.安装mmcv:
复制代码
pip install mmcv
#也可以选择 pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/{cu_version}/{torch_version}/index.html
pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cu102/torch1.6.0/index.html

三、数据集的准备

数据的格式参考yolov3或者maskrcnn的coco格式

目录格式如下:

复制代码
mmdetection
----data
--------coco_my(自己的数据集命名)
-------------annotations
-----------------instance_train.json
-----------------instance_val.json
-----------------instance_test.json
-------------train(图片)
-------------val(图片)
-------------test(图片)

一般train,val,test按比例分开然后在config文件里面修改数据集格式

复制代码
#修改数据集相关设置
img_scale = (640, 640)  # width, height
dataset_type = 'COCODataset'
classes = ('person','bicycle','car','UAV',...) #修改为自己数据集的名称
data = dict(
    train=dict(
        img_prefix=r'E:\mmdetection-main\data\coco_4classes\train2017',
        classes=classes,
        ann_file=r'E:\mmdetection-main\datacoco_4classes\coco\annotations\instances_train2017.json'),
    val=dict(
        img_prefix=r'E:\mmdetection-main\data\coco_4classes\val2017',
        classes=classes,
        ann_file=r'E:\mmdetection-main\data\coco_4classes\annotations\instances_val2017.json'),
    test=dict(
        img_prefix=r'E:\mmdetection-main\data\coco_4classes\test2017',
        classes=classes,
        ann_file=r'E:\mmdetection-main\data\coco_4classes\annotations\instances_test2017.json'))

四、使用mmdetection训练

本文以RetinaNet为例,首先打开configs中的centernet目录下的网络文件,将base中的coco注释掉修改为数据集准备所示,下面的dataset_type和data_root也需要进行修改,与目录对应,num_classes需要修改为4,这与自制数据集类别保持一致。

关于配置文件的学习可以看官方文档: 学习配置文件 --- MMDetection 3.0.0 文档

下面打开Terminal输入指令即可训练,如果代码没有报错并出现了第二张图中损失函数的变化说明模型正在训练:

复制代码
python tools/train.py configs/retinanet/retinanet_r18_fpn_1x_my.py --work-dir work_dirs/retinanet

成功运行:

相关推荐
m5655bj8 分钟前
通过 Python 提取 PDF 表格数据
服务器·python·pdf
玄同76511 分钟前
面向对象编程 vs 其他编程范式:LLM 开发该选哪种?
大数据·开发语言·前端·人工智能·python·自然语言处理·知识图谱
南_山无梅落13 分钟前
PyCharm 安装了库却无法 Alt + Enter 导入?(简洁排查版)
ide·python·pycharm·虚拟环境·alt·enter·.venv
ID_1800790547318 分钟前
Python采集闲鱼商品详情API:JSON数据解析与应用实践
数据库·python·json
APIshop22 分钟前
API 接口文档测试:从“能跑”到“敢上线”的完整闭环
爬虫·python
AndrewHZ22 分钟前
【复杂网络分析】如何入门Louvain算法?
python·算法·复杂网络·社区发现·community det·louvain算法·图挖掘
沈浩(种子思维作者)26 分钟前
梦境意识之谜——豆包补充
人工智能·python·量子计算
盼哥PyAI实验室37 分钟前
[特殊字符]️ 实战爬虫:Python 抓取【采购公告】接口数据(含踩坑解析)
开发语言·爬虫·python
Hello.Reader37 分钟前
Flink ML VectorAssembler 把多列特征“拼”成一个向量列(数值 + 向量都支持)
java·python·flink
Csvn41 分钟前
🐫 Ollama 基础使用指南
人工智能·python