首页 > 其他 > 详细

YOLO V5

时间:2021-05-18 15:53:37      阅读:147      评论:0      收藏:0      [点我收藏+]

Yolov5官方代码中,给出的目标检测网络中一共有4个版本,分别是Yolov5s、Yolov5m、Yolov5l、Yolov5x四个模型。

YOLO v5四个版本的算法性能图

技术分享图片

 

YOLO v5s的框架图

技术分享图片

 

 

 

Mosaic数据增强

Mosaic是参考CutMix数据增强的方式,但CutMix只使用了两张图片进行拼接,而Mosaic数据增强则采用了4张图片,随机缩放、随机裁剪、随机排布的方式进行拼接。

技术分享图片

 

 

 

1、每次读取四张图片。

2、分别对四张图片进行翻转、缩放、色域变化等,并且按照四个方向位置摆好。
3、进行图片的组合和框的组合

对于小目标的检测效果还是很不错的

自适应锚框计算

在Yolo算法中,针对不同的数据集,都会有初始设定长宽的锚框。

在网络训练中,网络在初始锚框的基础上输出预测框,进而和真实框groundtruth进行比对,计算两者差距,再反向更新,迭代网络参数。

因此初始锚框也是比较重要的一部分,比如Yolov5在Coco数据集上初始设定的锚框:

技术分享图片

 

 

 在YOLOv3、YOLOv4中,训练不同的数据集时,计算初始锚框的值是通过单独的程序运行的。

但YOLOv5中将此功能嵌入到代码中,每次训练时,自适应的计算不同训练集中最佳锚框找值。

当然,如果计算锚框效果不是很好,也可以在代码中将西东计算锚框功能关闭,控制的代码中即train.py中上面一行代码,设计成FALSE,每次训练时,不会自动计算。

自适应图片缩放

在常用的目标检测算法中,不同的图片长宽都不相同,因此常用的方式是将原始图片统一缩放到一个标准尺寸,再送入检测网络中。

 

自适应图片缩放

在常用的目标检测算法中,不同的图片长宽都不相同,因此常用的方式是将原始图片统一缩放到一个标准尺寸,再送入检测网络中。

比如Yolo算法中常用416*416,608*608等尺寸,比如对下面800*600的图像进行缩放。

Yolov5的代码中datasets.py的letterbox函数中进行了修改,对原始图像自适应的添加最少的黑边。

 技术分享图片

 

 

 

Focus结构

 技术分享图片

 

 

Focus是Yolov5新增的操作,右图就是将443的图像切片后变成2212的特征图。

以Yolov5s的结构为例,原始6086083的图像输入Focus结构,采用切片操作,先变成30430412的特征图,再经过一次32个卷积核的卷积操作,最终变成30430432的特征图。

需要注意的是:Yolov5s的Focus结构最后使用了32个卷积核,而其他三种结构,使用的数量有所增加。

CSP结构

Yolov5中设计了两种CSP结构,以Yolov5s网络为例,CSP1_X结构应用于Backbone主干网络,另一种CSP2_X结构则应用于Neck中。

技术分享图片

 

 

CSPNet(Cross Stage Partial Network):跨阶段局部网络,以缓解以前需要大量推理计算的问题。

  • 增强了CNN的学习能力,能够在轻量化的同时保持准确性。
  • 降低计算瓶颈。
  • 降低内存成本。

CSPNet通过将梯度的变化从头到尾地集成到特征图中,在减少了计算量的同时可以保证准确率。

CSPNet和PRN都是一个思想,将feature map拆成两个部分,一部分进行卷积操作,另一部分和上一部分卷积操作的结果进行concate。

neck部分

Yolov5的Neck和Yolov4中一样,都采用FPN+PAN的结构。

技术分享图片

 

 Yolov4的Neck结构中,采用的都是普通的卷积操作。而Yolov5的Neck结构中,采用借鉴CSPnet设计的CSP2结构,加强网络特征融合的能力。

技术分享图片

 

YOLO V5

原文:https://www.cnblogs.com/liang1013/p/14780116.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!