1.创建环境 conda create -n yolo python = 3.8
2.安装pytorch1.7以上,这边安装了1.7.1版本的
pip install torch1.7.1+cu101 torchvision0.8.2+cu101 torchaudio==0.7.2 -f https://download.pytorch.org/whl/torch_stable.html
用下列指令安装其他包
git clone https://github.com/ultralytics/yolov5
pip install -U -r yolov5/requirements.txt
建议一个一个安装,这样保证不会出错。
3.下载权重,运行检测代码
去官网https://github.com/ultralytics/yolov5/releases
下载自己需要的模型权重,放到./weights里面
然后运行下列代码测试
python detect.py --source data/images --weights yolov5s.pt --conf 0.25
运行成功的话,生成图片放在./runs/detect/exp里面
4.train自己的数据集。
(弄成VOC格式)
首先,自己的训练集格式要有voc的一样
images里面放自己训练的图片
labels里面放yolo格式的txt文件。
下面附xml格式转化为txt格式代码。
import os
import xml.etree.ElementTree as ET
dirpath = '/home/zhoutianyang/yolov5/tianchi2/train_an/Annotations/' #原来存放xml 文件的目录
newdir = '/home/zhoutianyang/yolov5/YG/labels/train/' #修改label后形成的txt目录
if not os.path.exists(newdir):
os.makedirs(newdir)
for fp in os.listdir(dirpath):
air = [‘自己训练的类’] #目的是为了将xml文件中的字符名字转化为yolo形式中txt的数字标记
root = ET.parse(os.path.join(dirpath,fp)).getroot()
# import pdb;pdb.set_trace()
xmin, ymin, xmax, ymax = 0,0,0,0
sz = root.find('size')
width = float(sz[0].text)
height = float(sz[1].text)
filename = root.find('filename').text
for child in root.findall('object'): #找到图片中的所有框
#print(child.find('name').text)
sub = child.find('bndbox') #找到框的标注值并进行读取
label = child.find('name').text
for i in range(len(air)): #对应数字
#import pdb;pdb.set_trace()
if air[i] == label:
break
label = i
xmin = float(sub[0].text)
ymin = float(sub[1].text)
xmax = float(sub[2].text)
ymax = float(sub[3].text)
try: #转换成yolov3的标签格式,需要归一化到(0-1)的范围内
x_center = (xmin + xmax) / (2 * width)
y_center = (ymin + ymax) / (2 * height)
w = (xmax - xmin) / width
h = (ymax - ymin) / height
except ZeroDivisionError:
print(filename,'的 width有问题')
with open(os.path.join(newdir, fp.split('.')[0]+'.txt'), 'a+') as f:
f.write(' '.join([str(label), str(x_center), str(y_center), str(w), str(h) + '\n']))
print('ok')
数据集处理完之后,修改voc.yaml文件,新建一个xxx.yaml,复制voc.yaml东西,然后注释掉download部分,因为我们已经生成本地的数据集格式文件,修改文件路径和classes类别。
python train.py --data xxx.yaml --cfg yolov5s.yaml --weights yolov5s.pt --batch-size 64
就能成功了。
版权声明:本文为CSDN博主「Tz..」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_41456654/article/details/115533152
暂无评论