YOLOv5|YOLOv5网络结构+代码+应用详解|CSDN创作打卡

深度学习入门小菜鸟,希望像做笔记记录自己学的东西,也希望能帮助到同样入门的人,更希望大佬们帮忙纠错啦~侵权立删。
这一篇文章属于是对YOLOv5系列的一个整理汇总。YOLOv5|YOLOv5网络结构+代码+应用详解|CSDN创作打卡
文章图片

目录
一、输入端分析
二、整体网络结构图以及总括介绍
三、Backbone
四、Neck
五、Head
六、代码实现网络具体构建
七、利用YOLOv5训练自己的数据集

一、输入端分析 【YOLOv5|YOLOv5网络结构+代码+应用详解|CSDN创作打卡】YOLOv5输入端(一)—— Mosaic数据增强|CSDN创作打卡_tt丫的博客-CSDN博客
YOLOv5输入端(二)|CSDN创作打卡_tt丫的博客-CSDN博客(自适应锚框计算+自适应图片缩放)
二、整体网络结构图以及总括介绍 网络结构图如下图所示:
(其中CBL的标注都是有关输出的)
在这里感谢博友352(兄弟你前面那个符号是啥我这边显示不出来,不好意思)的提醒
v5.0版本
YOLOv5|YOLOv5网络结构+代码+应用详解|CSDN创作打卡
文章图片
目前更新到v6.0版本
YOLOv5|YOLOv5网络结构+代码+应用详解|CSDN创作打卡
文章图片

(这里比较大的改动是:用CBL代替 Focus 层,主要是为了方便模型导出 )
YOLOv5网络结构分为3个部分,Backbone(主干部分),Neck和Head。
Backbone作用:特征提取
Neck作用:对特征进行一波混合与组合,并且把这些特征传递给预测层
Head作用:进行最终的预测输出
三、Backbone Backbone主要由Focus,CBL,BottleneckCSP(/C3)以及SPP等组成。
Focus作用:进行一个下采样,并且减少计算量加快网络速度。(v5.0)
CBL作用:(就是我们常说的卷积啦,虽然这里的卷积不是直接意义上的nn.Conv2d。)获取特征。
有关Focus和CBL的分析可以康康博主之前写的博客
YOLOv5中的Focus层详解_tt丫的博客-CSDN博客
BottleneckCSP(/C3)作用:残差结构,学习更多的特征。
有关BottleneckCSP(/C3)的分析可以康康博主之前写的博客
YOLOv5中的CSP结构_tt丫的博客-CSDN博客
SPP/SPPF作用:空间金字塔池化,将前面得到的任意大小的特征图转换成固定大小的特征向量。
(v5.0是SPP,v6.0是SPPF)
有关SPP/SPPF的分析可以康康博主之前写的博客
YOLOv5中的SPP/SPPF结构详解_tt丫的博客-CSDN博客_spp yolov5
四、Neck Neck说白了就是FPN+PAN结构的设计。
关于FPN和PAN可以看博主之前写的文章
深度学习中的FPN详解_tt丫的博客-CSDN博客
深度学习之PAN详解_tt丫的博客-CSDN博客
(这里v5.0和v6.0的区别请对照上图,懒得改了嘻嘻)
YOLOv5|YOLOv5网络结构+代码+应用详解|CSDN创作打卡
文章图片

YOLOv5|YOLOv5网络结构+代码+应用详解|CSDN创作打卡
文章图片

五、Head 我理解的Head就是输出端。如果单从网络结构上来说的话,他就是对Neck出来的3个输出分别进行卷积操作。然而Head的主要部分在于它的输出推理及处理。具体的可以看博主之前的文章,里面有关于损失函数,NMS以及源码的解析。
YOLOv5的输出端详解_tt丫的博客-CSDN博客
六、代码实现网络具体构建 详见YOLOv5的模型构建源码详解|CSDN创作打卡_tt丫的博客-CSDN博客
七、利用YOLOv5训练自己的数据集 YOLOv5训练自己的数据集详解_tt丫的博客-CSDN博客
欢迎大家在评论区批评指正,谢谢大家~

    推荐阅读