赞
踩
Yolov5是一种基于深度学习的目标检测算法,它可以在图像或视频中实现实时目标检测。它是YOLO(You Only Look Once)系列算法的最新版本,相比之前的版本,它具有更高的检测精度和更快的检测速度。相比于YOLOv4,YOLOv5的改进主要有以下几点:
YOLOv5是一个开源项目,在GitHub上免费提供。代码方面比YOLOV3看起来好太多了,非常的简洁精炼,作者功底之深可见一斑,YOLOV4可以认为理论方面,V5实践方面。作者没有发表论文。代码
YOLOv5在模块方面并没有多太多东西,加了CSP模块,还有各个版本的激活函数并不是一样的,V5的第三代是hardwish,前面是Leaky ReLU,第四代是wish,上一篇文章提过,反正无论什么激活函数目的都一样,自己搜一下,跟relu差不多,就是负数部分做了调整。
模块可以先看完V4,V4上没有的我会加上去。
上面所有模块基本都讲过了,大部分在V4那篇文章,右边Neck就是PAN,在FPN基础上再做一次。
模型文件:可以对比一下,其实差不多,是不是比YOLOV3看起来舒服太多了
# parameters nc: 2 # number of classes 控制模型深度和通道 depth_multiple: 0.33 # model depth multiple #下面的number*0.33 width_multiple: 0.50 # layer channel multiple #下面的channel*0.33 # anchors 就是聚类的九个框 anchors: - [10,13, 16,30, 33,23] # P3/8 - [30,61, 62,45, 59,119] # P4/16 - [116,90, 156,198, 373,326] # P5/32 # YOLOv5 backbone backbone: # [from, number, module, args] # -1代表是一个输出,做了number次数,模块名,参数(通道数,卷积核,步长) [[-1, 1, Focus, [64, 3]], # 0-P1/2 [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 [-1, 3, BottleneckCSP, [128]], [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 [-1, 9, BottleneckCSP, [256]], [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 [-1, 9, BottleneckCSP, [512]], [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 [-1, 1, SPP, [1024, [5, 9, 13]]], [-1, 3, BottleneckCSP, [1024, False]], # 9 ] # YOLOv5 head 就是FPN + PAN head: [[-1, 1, Conv, [512, 1, 1]], [-1, 1, nn.Upsample, [None, 2, 'nearest']], [[-1, 6], 1, Concat, [1]], # cat backbone P4 [-1, 3, BottleneckCSP, [512, False]], # 13 [-1, 1, Conv, [256, 1, 1]], [-1, 1, nn.Upsample, [None, 2, 'nearest']], [[-1, 4], 1, Concat, [1]], # cat backbone P3 [-1, 3, BottleneckCSP, [256, False]], # 17 (P3/8-small) [-1, 1, Conv, [256, 3, 2]], [[-1, 14], 1, Concat, [1]], # cat head P4 [-1, 3, BottleneckCSP, [512, False]], # 20 (P4/16-medium) [-1, 1, Conv, [512, 3, 2]], [[-1, 10], 1, Concat, [1]], # cat head P5 [-1, 3, BottleneckCSP, [1024, False]], # 23 (P5/32-large) [[17, 20, 23], 1, Detect, [nc, anchors]], # Detect(P3, P4, P5) ]
可以理解为输入前BOF(数据处理部分)+ BOS(模型改进部分)
detect # 测试模型,输出图片并在图片中标注出物体和概率 train # 训练模型,输出内容,模型(最好、最新)权重、混淆矩阵、F1曲线、超参数文件、P曲线、R曲线、PR曲线、结果文件(loss值、P、R)等expn expn # 第n次实验数据 confusion_matrix.png # 混淆矩阵 P_curve.png # 准确率与置信度的关系图线 R_curve.png # 精准率与置信度的关系图线 PR_curve.png # 精准率与召回率的关系图线 F1_curve.png # F1分数与置信度(x轴)之间的关系 labels_correlogram.jpg # 预测标签长宽和位置分布 results.png # 各种loss和metrics(p、r、mAP等,详见utils/metrics)曲线 results.csv # 对应上面png的原始result数据 hyp.yaml # 超参数记录文件 opt.yaml # 模型可选项记录文件 train_batchx.jpg # 训练集图像x(带标注) val_batchx_labels.jpg # 验证集图像x(带标注) val_batchx_pred.jpg # 验证集图像x(带预测标注) weights # 权重 best.pt # 历史最好权重 last.pt # 上次检测点权重 labels.jpg # 4张图, 4张图,(1,1)表示每个类别的数据量,(1,2)真实标注的 bounding_box(2,1) 真实标注的中心点坐标,(2,2)真实标注的矩阵宽高
https://public.roboflow.com/object-detection/mask-wearing/4/download/yolov5pytorch
例如口罩数据集下载,选择yolov5pytorch格式,直接就能用,把它放在yolo_v5同级目录
pycharm 配置参数
--data ../MaskDataSet/data.yaml --epochs 300 --weights '' --cfg models/yolov5s.yaml --batch-size 16
# data.yaml文件包含数据文件索引
train: ../MaskDataSet/train/images
val: ../MaskDataSet/valid/images
nc: 2
names: ['mask', 'no-mask']
结果:
日志可视化:切换运行环境的日志路径下,也就是
tensorboard --logdir runs/
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。