Yolo-fastestv2训练自己的数据集记录
第一节:代码来源
本机环境:ubuntu20,cuda,cudnn,pytorch==1.11.0
代码来源:https://github.com/dog-qiuqiu/Yolo-FastestV2
配置环境后先测试一下环境
终端输入:
python3 test.py --data data/coco.data --weights modelzoo/coco2017-0.241078ap-model.pth --img img/000139.jpg
在代码主目录下出现检测结果即可。
环境测试通过后,接下来需要准备数据集了。
在github上看到需要调整数据结构为该项目要求的格式。
第二节:数据处理
1.获取数据集
使用labelImg标注软件,选择yolo格式进行标注。
2.新建train和val文件夹
在data文件夹下,新建train和val文件夹,并将图片和txt标签置于对应文件夹中。
3.新建py文件
在主目录下新建sum_txt.py文件,写入:
import os
txt_ = r"/home/cj/work/CJ/Yolo-FastestV2-main/data/val.txt" # 生成txt的名字
Imgdir="/home/cj/work/CJ/Yolo-FastestV2-main/data/val/"
pathDir = os.listdir(Imgdir) #获取图像列表
with open(txt_, 'a+') as f:
for i in pathDir:
if os.path.splitext(i)[1] == '.jpg':
item = (Imgdir + "{}").format(str(i).zfill(4))
f.write(item)
f.write("\n")
其中txt_ = r"/home/cj/work/CJ/Yolo-FastestV2-main/data/train.txt"这一行为你需要生成文件路径,需要获取train.txt和val.txt两个文件,对应是官网中的
第三节:训练
1.生成anchors
终端运行
python3 genanchors.py --traintxt ./data/train.txt
获得anchors。复制粘贴到coco.data。
2.修改coco.name和coco.data文件
coco.names中修改类别为自己的数据类别。
coco.data修改类别数量和anchors,epoch等
[name]
model_name=coco
[train-configure]
epochs=60
steps=150,250
batch_size=32
subdivisions=1
learning_rate=0.001
[model-configure]
pre_weights=None
classes=4
width=352
height=352
anchor_num=3
anchors=12.79186635,34.99124329, 17.43634664,51.82827546, 18.69456021,55.36147158, 40.11064084,29.4783456, 44.85245013,34.27625813, 44.92398179,31.9961749
[data-configure]
train=/home/cj/work/CJ/Yolo-FastestV2-main/data/train.txt
val=/home/cj/work/CJ/Yolo-FastestV2-main/data/val.txt
names=./data/coco.names
3.训练
终端输入
python3 train.py --data data/coco.data
第四节:测试模型
在训练结束后主目录下会有一个weight文件夹,里面是生成的权重文件。
输入测试指令即可
python3 test.py --data data/coco.data --weights modelzoo/coco2017-0.241078ap-model.pth --img img/000139.jpg
权重和测试图像要替换为自己的