欢迎光临散文网 会员登陆 & 注册

一文详解YOLOv5!记得收藏!

2023-03-20 17:39 作者:深度之眼官方账号  | 我要投稿

来源:投稿 作者:王同学
编辑:学姐

Yolov5详解

官方源码仓库:https://github.com/ultralytics/yolov5

0 前言

截止到2022年7月,Yolov5项目已经在Github上获得了28000+个star,工业应用也十分广泛,基于Yolov5改进的相关交叉学科论文也不计其数,所以了解Yolov5对找工作还是发论文都是十分有帮助的。

本篇文章主要针对Yolov5 6.1版本进行详解

Yolov5提供了10个不同版本的模型,他们除网络的深度和宽度外并无太大差别

1 网络结构

Yolov5主要由以下几部分组成:

  • 输入端: Mosaic数据增强、自适应锚框计算

  • Backbone: New CSP-Darknet53

  • Neck: SPPF, FPN+PAN

  • Head: YOLOv3 Head

  • 训练策略:CIoU loss

2 输入端

2.1 Mosaic数据增强

在 YOLOv5 中除了使用最基本的数据增强方法外,还使用了 Mosaic 数据增强方法,其主要思想就是将1- 4 张图片进行随机裁剪、缩放后,再随机排列拼接形成一张图片,实现丰富数据集的同时,增加了小样本目标,提升网络的训练速度。在进行归一化操作时会一次性计算 4 张图片的数据,因此模型对内存的需求降低。

2.2自适应锚框计算

Yolov5每次训练时会自适应的计算不同训练集中的最佳锚框值,从而帮助网络更快的收敛。

3 Backbone

Yolov5在Backbone和Neck中用了两种不同的CSP结构,具体可参考下图-Yolov5网络结构图

4 Neck

Yolov4中一样,都采用FPN+PAN的结构;即除了上采样外,又增加了一部分下采样模块,通过这种方式可以融合更加丰富的特征

5 Head

在检测头方面依然采用Yolov3的检测头,并没有特别的改进

6 主要训练策略

  • CIoU loss:在DIoU的基础上增加了检测框尺度的loss,增加了长和宽的loss,这样预测框就会更加的符合真实框

  • Multi-scale training(0.5~1.5x):多尺度训练。

  • Warmup and Cosine LR scheduler:训练前先进行Warmup热身,然后在采用Cosine学习率下降策略。

  • Mixed precision:混合精度训练,能够减少显存的占用并且加快训练速度。

7 损失计算

YOLOv5的损失主要由三个部分组成:

  • Classes loss,分类损失,采用的是BCE loss,注意只计算正样本的分类损失。 

  • Objectness loss,obj损失,采用的依然是BCE loss,注意这里的obj指的是网络预测的目标边界框与GT Box的CIoU。这里计算的是所有样本的obj损失。 

  • Location loss,定位损失,采用的是CIoU loss,注意只计算正样本的定位损失。

在源码中,针对预测小目标的预测特征层(P3)采用的权重是4.0,针对预测中等目标的预测特征层(P4)采用的权重是1.0,针对预测大目标的预测特征层(P5)采用的权重是0.4,作者说这是针对COCO数据集设置的超参数。

最后附上一张Yolov5的性能图,和实际检测效果图(yolov5s);

YOLO目前已经迭代到yolov8了,不过想要入门,还得要从yolov1开始学起

看下面↓↓,给你们准备了学习资料啦

关注【学姐带你玩AI】公众号

回复“YOLO”获取论文&代码数据集


一文详解YOLOv5!记得收藏!的评论 (共 条)

分享到微博请遵守国家法律