一、yolov5的介绍
yolov5是一种目标检测模型,用于在视频或图像中识别和定位物体。
yolov5是一种端到端的深度学习模型,可以直接从原始图像中检测和定位目标。它使用卷积神经网络来学习图像中物体的特征,并使用多尺度预测和网络分割来检测和定位目标。YOLOv5的优势在于它可以在高速运行,并且可以在不同的图像分辨率上很好地工作。
总的来说,YOLOv5是一种高效的目标检测模型,可以应用于许多不同的场景,包括自动驾驶,机器人感知,图像分析等。
当下载完YOLOv5工程压缩文件后,保存在你想要保存的位置然后进行解压,建议大家最好新建一个文件夹专门存放YOLOv5工程代码, 以防大家找不到自己保存的位置。
2.调试代码源
当下载完源代码以后,我们就可以开始调试源代码。确保源代码可以正常运行后,再开始训练我们的数据。下载完成后打开requirements.txt文件,安装工程需要的python包。
3.采集数据以及标注
在开始前得准备好自己需要的数据图片,然后将要标注的图片存放在yolov5的data文件夹的images文件夹中 接着在data文件夹下新建两个文件,一个是dataset、一个是labels, dataset用来储存标注好的图片数据,labels用来存放数据标签。
创建好文件夹后,进行过数据的标注。标注的工具选用labelimg。首先安装labelimg(输入命令pip install labelimg)然后启动(labelimg):
点击选择文件夹后就会出现图片就可以进行标注了
4.数据预处理和源代码的修改
接下来需要对标注好的数据进行预处理操作,首先在工程目录文件下新建split.py程序,具体如下所示:
split代码如图所示,运行此代码
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()
再在python文件下创建名为xml_to_txt的python文件
以上步骤全部完成后再新建一个名为myvoc的yaml文件,具体步骤找到data文件右键单击点击New再点击File创建完成。
5.训练数据
打开终端进入到自己yolov5的工程目录下,输入命令:python train.py --epoch 300 --batch 4 --data ./data/myvoc.yaml --cfg ./models/yolov5s.yaml --weight ./weights/yolov5s.pt --workers 0 开始训练。
训练完成后找到runs文件下最新的exp文件下的的last.pt文件(如图所示,训练结束后会显示文件路径地址,找到即可),将last.pt文件复制粘贴到weights文件下
6.模型测试
训练完成后,我们可以进行模型的测试,测试一下刚刚训练的结果。打开命令行:
输入指令:python detect.py --weight ./weights/last.pt --source 0就可以开始检验了。