【MMDetection】训练自己的数据集

1. 建立voc数据集

Annotations 放置图像标注 .xml
JPEGImages 放置图像 .jpg
使用脚本,脚本链接:注意修改
划分数据集,ImageSets/Main/train.txt,trainval.txt,test.txt,val.txt 放置文件名,不带后缀
脚本上传到GitHub ,注意修改:https://github.com/ghostype98/tools/blob/main/make_txt.py
【MMDetection】训练自己的数据集_第1张图片

参考链接:https://blog.csdn.net/weixin_42447868/article/details/105675158

2. 下载预训练权重
建立mmdetection/checkpoints目录,下载对应的预训练权重,
权重文件链接

(1)configs对应网络里的README.md 进入后可以通过cfg文件验证对应的weight
例如 configs/fcos/README.md 根据config 对应 model 避免下错
【MMDetection】训练自己的数据集_第2张图片

(2)https://mmdetection.readthedocs.io/zh_CN/v2.19./model_zoo.html#id2

3. 修改配置文件
3.1mmdet/core/evalution/class_names.py      #voc_classes 修改类别

【MMDetection】训练自己的数据集_第3张图片

3.2mmdet/datasets/voc.py              #一个类要加 逗号,修改类别,

【MMDetection】训练自己的数据集_第4张图片

3.3config/ _base_/models/faster_rcnn.py  #根据自己需要的网络更换
		1.num_classes   #类别数
		2.checkpoint=checkpoints/...pth  
		#使用预训练模型,或者3.5.5load_from 中修改
3.4config/ _base_/datasets/voc0712.py![请添加图片描述](https://img-blog.csdnimg.cn/963dd3d258344416b58bb0f851bb62bd.png)

		1.注释掉line41中,voc2012

【MMDetection】训练自己的数据集_第5张图片

		2.修改训练、验证、测试 txt路径:根据自己路径修改

【MMDetection】训练自己的数据集_第6张图片

		3.samples_per_gpu  #每个gpu检测几张图片,显卡内存不足可以调小
		  workers_per_gpu  #使用几个线程
		4.修改图像尺寸 img_scale   , 显卡内存不足可以调小
		5.pipeline  图像在线增强策略
3.5configs/_base_/default_runtime.py 		
		1.checkpoint_config   #多少epoch 保存一次模型 
		2.log_config			#多少次迭代 输出一次日志
		3.hooks=[dict(type='TextLoggerHool'), dict(type='TensorboardLoggerHook')]  #使用tensorboard
		4.log_level #输出日志等级
		5.load_from # 加载lastest.pth 继续训练
		6.resume_from  #断点继续训练   
	tips:checkpoints、load_from、resume_from优先级:mmdet默认加载权重优先级别是resume_from(断点加	载),load_from,pretrained的顺序,所以需要从load_from加载预训练权重
3.6configs/schedule/schedule_1x.py	#修改超参数
step=[8, 11] #在第8、11epoch 学习率乘0.1
max_epochs   #训练epoch
3.7configs/faster_rcnn/fasterrcnn_r50_fpn_1x_coco.py 
	#根据自己模型修改路径, 除了base外的注释掉,前面VOC0712.py 已经修改过
4.需要重新编译 python setup.py install
5.训练 :参数文件,gpu,输出路径
python tools/train.py configs/faster_rcnn/....py --gpus 1 --work-dir WORK_DIR checkpoints/...pth
6.测试:参数文件,最近的权重文件,输出路径
python tools/test.py configs/faster_rcnn/...py work_dir/lastest.pth --show-dir output --out output/result.pkl
7.工具

7.1绘制结果曲线

python tools/analysis_tools/analyze_logs.py plot_curve workdir/~/888.log.json --keys loss lr --out loss.pdf

7.2过程可视化 前提: 3.5.3

tensorboard --logdir work_dirs/88/88/   #events的上一层目录

7.3测试结果评价 前提:测试命令加–out work_dirs/result.pkl

python tools/analysis_tools/eval_metric.py work_dirs/faster_rcnn_r50_fpn_1x_voc0712.py  output/result30.pkl --eval mAP
#测试时保存的pkl,测试时使用的配置文件,需要分析什么数据
tips:1.学习率策略
lr_config = dict(
    policy='step',                        # 优化策略
    warmup='linear',                      # 初始的学习率增加的策略,linear为线性增加
    warmup_iters=500,                     # 在初始的500次迭代中学习率逐渐增加
    warmup_ratio=1.0 / 3,                 # 起始的学习率
    step=[8, 11])                         # 在第8和11个epoch时降低学习率
————————————————
版权声明:本文为CSDN博主「藏云阁主」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/hajlyx/article/details/85991400
tips:2.注意看configs/{自己模型.py}中路径,

网络模型路径
数据集路径
超参数路径
运行记录设置路径 ,有些网络不一样

tips3. 自定义网络模型

稍后更新

tips4.修改损失函数

https://mmdetection.readthedocs.io/zh_CN/latest/tutorials/customize_losses.html

问题

  1. FileNotFoundError: [Errno 2] No such file or directory ‘/tmp/tmpj7h17tbn/tmp8e5kuzoc.py‘

https://blog.csdn.net/chrisitian666/article/details/113145902

  1. YOLO使用VOC出错。
    将VOC转换成 COCO,
    2.1将xml转换成json
    2.2通过json读取图片放在文件中,
    注意修改路径
    参考:https://blog.csdn.net/qq_45584615/article/details/115802378

  2. 使用coco训练测试的指标
    参考https://zhuanlan.zhihu.com/p/399837729
    coco得到每一类缺陷AP并且 为AP50 即IoU=0.5
    https://zhuanlan.zhihu.com/p/264202374
    修改后,需要重新编译
    【MMDetection】训练自己的数据集_第7张图片

参考链接

https://bbs.huaweicloud.com/blogs/detail/198417
https://blog.csdn.net/H_Ben_Ben/article/details/120336630
https://blog.csdn.net/hajlyx/article/details/85991400
https://blog.csdn.net/weixin_36642958/article/details/96905866
https://blog.csdn.net/syysyf99/article/details/96574325
官网介绍https://mmdetection.readthedocs.io/zh_CN/v2.19.0/model_zoo.html

你可能感兴趣的:(深度学习小白之路,深度学习,目标检测,神经网络)