|
本帖最后由 fq19851220 于 2021-5-15 21:28 编辑
0. 上次发了个yolo检测调用支持库(地址在这),有些人想知道怎么训练,所以出个教程.
本教程演示竞技游戏dota2英雄检测的训练过程,仅为演示训练过程 所以只检测一个英雄
拉比克!
1. 环境准备.
我的软件环境win10 cuda10.0 cudnn 7.6.5
显卡 1050ti
cuda下载地址 Cuda
cudnn下载地址cudnn
详细配置方法请百度,在此不展开.
2.数据准备. 找一个dota2直播间,准备了90张截图,剪出几张不参与训练 后面作测试用
打开标记工具进行数据标注
命令行 yolo_mark.exe dota2/dota2 dota2/dota2_train.txt dota2/dota2.names
说明:
dota2/dota2--->采集的图片路径
dota2/dota2_train.txt--->图片相对于标注工具的相对路径文本集合,文本格式为:
dota2/dota2/2021-05-14_232036.png dota2/dota2/2021-05-14_232047.png
dota2/dota2/2021-05-14_232057.png
...
dota2/dota2.names--->类别名称 因为只有一个英雄 所以只有一个 0
开始标注
由于只有一个类,所以直接框选拉比克就行了,如果有多个类别,标注完一个英雄后,把上面第二行滑块条
往后拉继续标注就行.
...
7分钟后标完成.
3.开始训练.
首先修改网络,复制一份yolov4-tiny.cfg 修改为yolov4-tiny-dota2.cfg
记事本打开yolov4-tiny-dota2.cfg
修改所有yolo层上面的convolutional中的filters后面的数字
数字改为 (类数量+5)*3 我们只有一个类 所以为 (1+5)*3=18
filters=18
所有classes=改成类数量 我们只有一个 所以是classes=1
训练命令行 darknet.exe detector train dota2/dota2.data ./cfg/yolov4-tiny-dota2.cfg -dont_show
说明:
dota2/dota2.data--->训练各种配置路径,文本格式为:
(classes = 1 --->类数量
train = dota2/dota2_train.txt --->参与训练的图片路径
valid = dota2/dota2_val.txt --->参与验证的图片路径
names = dota2/dota2.names --->类别名称 因为只有一个英雄 所以只有一个 0
backup = backupdota2/ --->训练模型的保存路径)
./cfg/yolov4-tiny-dota2.cfg--->我们上面修改的配置文件路径
-dont_show--->不显示窗口.
运行命令行,出现错误
显存不够,修改cfg文件
batch=64
subdivisions=8
batch改小或subdivisions改大
如果显存够大没有出错则不用修改.
....半小时1000迭代后训练完成,手动结束
损失为0.13,模型已保存在backupdota2
4.测试模型
使用上面的支持库测试一下效果,使用前面保存的未参与训练的图片测试
正确检出
未检出
正确检出
训练完成.
5.本教程仅演示框架的训练方法,数据较少,效果一般,训练需要英伟达显卡,建议4G显存以上 太小的恐怕训练不了
本教程编写比较仓促,难免有错误和疏忽之处.
训练包下载地址
[url=https://pan.baidu.com/s/13YPfQvBm4FtAwWjInSbciA]提取码: 2rhj[/url]
交流群:479282555
|
评分
-
查看全部评分
|