我们在日常python的学习中,总是要进入到训练模型这一环,但是如何使用yolov5训练模型呢,接下来我将带你使用yolov5训练模型。
1.在准备前期,我们需要把yolov5需要的一些资源下载好,下载的步骤我就不演示了
2.接下来我们把需要训练的图片资源准备好,我们需要找到这个文件
然后继续双击,在这个文件目录下创建一个image文件
然后把需要训练的文件粘贴进去
3.接下来打开终端,输入命令pip install labelImg
目前我们可以看到我们的labelImg已经下载好了
然后我们继续输入labelImg
4.接下来我们会跳转到这个页面
我们首先需要打开图片的地址,首先打开open dir ,然后打开刚才的图片,然后使用w键对他进行标注,完了之后可以打开open dir这个底下的,对他进行保存位置的选择
这就是我们标注之后的图片了
5.在yolov5工程目录下新建两个.py程序,split.py , xml_to_txt.py ,处理我们标注的数据,我们需要创建
import os
import random
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--xml_path', default='data/dataset', type=str, help='input xml label path')
parser.add_argument('--txt_path', default='data/labels', type=str, help='output txt label path')
opt = parser.parse_args()
trainval_percent = 1.0
train_percent = 0.8
xmlfilepath = opt.xml_path
txtsavepath = opt.txt_path
total_xml = os.listdir(xmlfilepath)
if not os.path.exists(txtsavepath):
os.makedirs(txtsavepath)
num = len(total_xml)
list_index = range(num)
tv = int(num * trainval_percent)
tr = int(tv * train_percent)
trainval = random.sample(list_index, tv)
train = random.sample(trainval, tr)
file_trainval = open(txtsavepath + '/trainval.txt', 'w')
file_test = open(txtsavepath + '/test.txt', 'w')
file_train = open(txtsavepath + '/train.txt', 'w')
file_val = open(txtsavepath + '/val.txt', 'w')
for i in list_index:
name = total_xml[i][:-4] + '\n'
if i in trainval:
file_trainval.write(name)
if i in train:
file_train.write(name)
else:
file_val.write(name)
else:
file_test.write(name)
file_trainval.close()
file_train.close()
file_val.close()
file_test.close()
这是代码
在xml_to_txt.py 文件下我们需要修改东西
同时,我们需要在scripts文件下创建一个这个文件
然后对立面的内容进行补充与修改
name里面就是我们要修改的内容
然后打开终端
输入这个指令 python train.py --epoch 300 --batch 4 --data ./data/myvoc.yaml --cfg ./models/yolov5s.yaml --weight ./weights/yolov5s.pt --workers 0
我们对数据进行三百次训练
点回车
训练完毕后,我们在这个目录底下找到这个exp文件,最新的就是我们刚才需要你连号的数据,把他
把他这个目录底下的pt文件进行复制
粘贴到这个文件底下
然后我们回到刚才的终端输入 python detect.py --weight ./weights/last.pt --source 0
等待摄像头打开即可进行检测