目录
1. 源码下载,本文基于v3.0版本
2.选模型训练
2.1 先生成后面用于编译的配置文件
2.2.1 修改coco.py
2.2.2 修改class_names.py
3. 训练配置
4. 训练过程展示
1. 源码下载,本文基于v3.0版本
GitHub - open-mmlab/mmdetection: OpenMMLab Detection Toolbox and Benchmark
安装环境依赖参考官方教程
GET STARTED — MMDetection 3.0.0 documentation
2.选模型训练
本文使用deformable_detr模型进行训练
D:/deep_learn/OpenMMlab/mmdetection-main/configs/deformable_detr/deformable-detr_r50_16xb2-50e_coco.py
2.1 先生成后面用于编译的配置文件
什么都不管,先编译一次,获得模型的配置文件,传入上面的模型文件路径
配置完成后编译,当然会编辑不通过,但是tools会生成工作目录
下面的就是模型的配置文件,需要修改次文件来训练自定义数据集,将其改名。复制一份到
D:/deep_learn/OpenMMlab/mmdetection-main/configs/deformable_detr/
改名后复制后的结果显示
2.2 更改配置文件
训练自己定义的数据集需要修改3个地方,需要修改的如下:
数据集需要coco格式的,关于数据集的制作可看下面链接
有手就行的自定义制作coco、voc、yolo格式数据集_Evan_qin_yi_quan的博客-CSDN博客
"""
自定义数据集训练,需要修改3个地方
1. D:\deep_learn\OpenMMlab\mmdetection-main\mmdet\datasets\coco.py 中修改类别名字
2. D:\deep_learn\OpenMMlab\mmdetection-main\mmdet\evaluation\functional\class_names.py的coco_classes类中修改类别名字
3. my-deformable-detr_r50_16xb2-50e_coco.py 修改数据集路径,和 num_class
2023.06.29
"""
2.2.1 修改coco.py
2.2.2 修改class_names.py
都是把原来的类别名字注释掉,换成自己的类别名字
2.2.3 修改my-deformable-detr_r50_16xb2-50e_coco.py文件
本文以deformable-detr网络为例,所以修改此文件,使用其它网络模型的参考my-deformable-detr_r50_16xb2-50e_coco.py文件的制作方法。
首先是看看自定义数据集文件目录结构,数据集名字coco-data
修改deformable-detr_r50_16xb2-50e_coco.py文件
训练集路径
验证集路径
测试集路径 ,为了方便,这里写成和验证集一样了。
修改类别数目num_classes,本文制作的数据集类别数是8.
至此修改完毕,接下来就是训练
3. 训练配置
只需要把模型my-deformable-detr_r50_16xb2-50e_coco.py配置文件作为参数传递到tools/train.py脚本即可
4. 训练过程展示
mAP0.5:0.95是第一行数据,mAP0.5是第二行数据
Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.000
Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=1000 ] = 0.001
Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=1000 ] = 0.000
Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=1000 ] = 0.000
Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=1000 ] = 0.000
Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=1000 ] = 0.000
Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.003
Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=300 ] = 0.003
Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=1000 ] = 0.003
Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=1000 ] = 0.000
Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=1000 ] = 0.002
Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=1000 ] = 0.004