1. 环境搭建
git clone https://github.com/ultralytics/yolov5 # clone repo
cd yolov5
pip install -r requirements.txt # install dependencies
反注释requirements.txt中的# onnx>=1.8.0或者自己安装pip install onnx
2. 训练自己的数据集
- 数据集格式
——data
————Annotations # 保存Voc数据格式的xml文件
————ImageSets
——————Main # 保存数据集分割后的txt文件
————images # 保存图像文件
1)执行split_train_val.py,将数据分割为训练集和验证集(保存在Main/train.txt,Main/test.txt)
import os
import random
trainval_percent = 0.2 #可自行进行调节
train_percent = 1
xmlfilepath = 'Annotations'
txtsavepath = 'ImageSetsMain'
total_xml = os.listdir(xmlfilepath)
num = len(total_xml)
list = range(num)
tv = int(num * trainval_percent)
tr = int(tv * train_percent)
trainval = random.sample(list, tv)
train = random.sample(trainval, tr)
#ftrainval = open('ImageSets/Main/trainval.txt', 'w')
ftest = open('ImageSets/Main/test.txt', 'w')
ftrain = open('ImageSets/Main/train.txt', 'w')
#fval = open('ImageSets/Main/val.txt', 'w')
for i in list:
name = total_xml[i][:-4] + 'n'
if i in trainval:
#ftrainval.write(name)
if i in train:
ftest.write(name)
#else:
#fval.write(name)
else:
ftrain.write(name)
#ftrainval.close()
ftrain.close()
#fval.close()
ftest.close()
2)执行voc_label.py生成标签文件(class x_center y_center width height)
# -*- coding: utf-8 -*-
import xml.etree.ElementTree as ET
import pickle
import os
from os import listdir, getcwd
from os.path import join
sets = ['train', 'test']
classes = ["mask","nomask&