一、文件夹结构介绍
文件结构:



master文件夹结构:



yolov5-master为yolo源码

yolov5-master\weights中放置的是各个权重

yolov5-master\models中.yaml文件为不同版本的yolo结构文件

runs文件夹里是每次的训练日志,

yolov5-master\runs\exp**\weights里,保存的是最好一次和最新一次

数据集文件结构:



数据集要求:

目录结构不能变,因为对应源码

images的名字和labels的名字要一一对应

labels文件必须是txt格式

(标签种类 x y w h)五个数值

data.yaml:配置文件

配置文件里要写:数据都去哪读,nc类别数目
train: ../MaskDataSet/train/images
val: ../MaskDataSet/valid/images

nc: 2
names: ['mask', 'no-mask']

二、实际训练、测试_**_
1、得到标准数据集,和模型放到同一文件夹下

2、yolo-master模型文件中train.py做训练

train配置参数:

--data
C:/Users/zhaohaobing/PycharmProjects/python-yolov5-project/YOLO5/NEU-DET/data.yaml
--cfg
C:/Users/zhaohaobing/PycharmProjects/python-yolov5-project/YOLO5/yolov5-master/models/yolov5s.yaml
--batch-size
8

配置项目参数:




每次的结果保存在yolov5-master\runs文件夹下,exp**\weights中.pt文件即得到的该次训练模型

3、在上面配置文件中,可更改epoch循环次数,默认执行20次循环
例:
–epoch
100



4、detect做识别,加载.pt文件,在outout文件夹中得到输出结果

detect配置参数:

--source C:\Users\zhaohaobing\PycharmProjects\python-yolov5-project\YOLO5\NEU-DET\valid\images\crazing_1.jpg
--weights C:\Users\zhaohaobing\PycharmProjects\python-yolov5-project\YOLO5\yolov5-master\runs\exp50\weights\best.pt
--output C:\Users\zhaohaobing\PycharmProjects\python-yolov5-project\YOLO5\NEU-DET\output
--conf 0.4

–conf是置信度阈值,大于这个值的才检测,小于的就不要了

5、要想直接打开摄像头



三、模型转化
yolov5实际跑出来的是.pt模型,而要想在各个开发板上实现推理,必须进行模型转化:.py->.onnx
(onnx为中间模型,模型->onnx->模型)
yolov5的文件夹中是有转化函数的
…/YOLO5\yolov5-master\models\export.py



不过首先要安装onnx
pip install onnx



报错问题:
这里有可能出现:
Onnx export failure: No module named ‘onnx’

这是因为下载的onnx文件再在C:\ProgramData\Anaconda3\Lib\site-packages里,去该文件讲onnx文件夹复制到export.py程序文件同一目录即可