当前位置: 首页 > ai >正文

用MMdetection框架训练自己的数据集(全流程实战)

前面我们准备好了COCO格式的数据集:将YOLO格式的数据集转换为mmdetection格式-CSDN博客https://blog.csdn.net/qq_54708219/article/details/148224187?spm=1001.2014.3001.5501

下面我们使用MMdetection开始训练。

1.创建新的数据集类

首先,在mmdet/datasets里,创建属于自己的数据集文件。因为数据集是coco格式,可直接复制coco.py,文件名更改为Dataset_depth.py,然后把里面的标签改掉。我们需要把coco.py中的类名数据集中的类别标注的颜色换成自己的数据集的类名。这里,类名我修改为BoxDataset,数据集只有两个类别:'shallow_box'和'shallow_half_box',下面的palette是调色板,保持和classes长度一样即可,里面的颜色可以填成自己喜欢的,这里是直接保留了前两个后面全部删除:

2.录入数据集

在mmdet/datasets/init.py中仿照coco的格式把刚才创建的数据集类进行录入:

注意:如果注册完成训练仍然报KeyError,看一下报错的文件路径,可能是导入数据集类的时候一直是conda虚拟环境上的,而不是自己修改后的。解决方案就是顺着报错路径(conda环境路径)重新注册一遍数据集:

3.生成完整的配置文件

在configs文件夹下选择你想训练的模型,例如,我这里选择configs/deformable_detr/deformable-detr_r50_16xb2-50e_coco.py,然后在终端运行以下命令:

python tools/train.py <你所选择的模型路径>
python tools/train.py configs/deformable_detr/deformable-detr_r50_16xb2-50e_coco.py

此时运行会报错,因为他会自动寻找coco数据集而不是自己的(我自己没有下载coco数据集):

但是在当前目录下会生成work_dir文件夹,里面包含了完整的模型配置文件work_dirs/deformable-detr_r50_16xb2-50e_coco/deformable-detr_r50_16xb2-50e_coco.py:

4.修改生成的配置文件

接下来对work_dirs/deformable-detr_r50_16xb2-50e_coco/deformable-detr_r50_16xb2-50e_coco.py进行修改:

(1)数据集位置和数据集类:修改data_root(数据集相对路径)和dataset_type(之前注册的数据集类名):

同时在train_dataloader,test_dataloader,val_dataloader中修改data_root和type:

同时还修改一下val_evaluator和test_evaluator的ann_file:

(2)修改数据集类别数:ctrl+F召唤出搜索框,输入num_classes,把coco数据集的80类改为自己的数据集类别个数(我的是2类):

(3)修改batch_size

ctrl+F召唤出搜索框,输入batch_size,根据显卡算力设置train_dataloader,test_dataloader和val_dataloader的批量大小:

(4)注册数据集的metainfo

参考第一步,在配置文件中注册以下信息:

metainfo = dict(classes=('shallow_box', 'shallow_half_box'),palette=[(220, 20, 60), (119, 11, 32)]
)

然后在train_dataloader,test_dataloader,val_dataloader中都写入:

(5)修改训练轮数:ctrl+F召唤出搜索框,输入max_epochs,这个模型默认的训练轮数是50

5.训练

然后把3中的命令改为修改后的配置文件路径:

python tools/train.py <你所修改的模型配置文件路径>
python tools/train.py work_dirs/deformable-detr_r50_16xb2-50e_coco/deformable-detr_r50_16xb2-50e_coco.py

看到以下界面说明正常运行:

开始训练,显示学习率,loss等
每个epoch训练结束之后验证

这个时候模型也会自动保存每一轮的权重文件:

http://www.xdnf.cn/news/9030.html

相关文章:

  • GitAny - 無需登入的 GitHub 最新倉庫檢索工具
  • AbMole| Erastin(571203-78-6,M2679,铁死亡诱导剂)
  • 基于MATLAB的大规模MIMO信道仿真
  • 系统架构中的限流算法(一)
  • 两个Ubuntu机器,设置共享目录实时同步
  • React的单向数据绑定
  • 力扣热题-有向图中最大颜色值
  • 二十八、面向对象底层逻辑-SpringMVC九大组件之ViewResolver接口设计
  • ASCII码对应表
  • call的作用是什么,为什么要使用它?
  • AI工具使用的最佳实践,如何通过AI工具提高创作与工作效率
  • react基础知识(下)
  • A-9 OpenCasCade读取STEP文件中的NURBS曲面
  • 知道Metasploit 吗?
  • C 语言学习笔记(指针6)
  • shell之通配符及正则表达式
  • 题目 3334: 蓝桥杯2025年第十六届省赛真题-园艺
  • 解锁MCP:AI大模型的万能工具箱
  • 《狂野时代》获第78届戛纳影展特别奖
  • 用深度学习提升DOM解析——自动提取页面关键区块
  • AtCoder Beginner Contest 407
  • Kubernetes--主机启用防火墙
  • 告别延迟!modbus tcp转profine网关助力改造电厂改造升级
  • mvn-help 插件clean install 后本地mvn库没重新生成jar包
  • Word VBA 教程|一键将 PNG/JPG 图片插入每一页(浮于文字上方,固定大小)
  • 如何把 Microsoft Word 中所有的汉字字体替换为宋体?
  • 鸿蒙OSUniApp 制作悬浮按钮与菜单组件#三方框架 #Uniapp
  • awr报告生成
  • orm详解--查询执行
  • SiteMap Generator:免费、快速、强大的在线网站地图生成工具