【目标检测】目标检测界的扛把子YOLOv5(原理详解+修炼指南)

简介: Yolov5官方代码中,给出的目标检测网络中一共有4个版本,分别是Yolov5s、Yolov5m、Yolov5l、Yolov5x四个模型。学习一个新的算法,最好在脑海中对算法网络的整体架构有一个清晰的理解。但比较尴尬的是,Yolov5代码中给出的网络文件是yaml格式,和原本Yolov3、Yolov4中的cfg不同。因此无法用netron工具直接可视化的查看网络结构,造成有的同学不知道如何去学习这样的网络。

1.YOLO输入端



1.1 Mosaic数据增强


Yolov5的输入端采用了和Yolov4一样的Mosaic数据增强的方式。


Mosaic数据增强提出的作者也是来自Yolov5团队的成员,不过,随机缩放、随机裁剪、随机排布的方式进行拼接,对于小目标的检测效果还是很不错的。


  • 4张图片拼接
  • 随机缩放
  • 随机裁剪
  • 随机排布


算法优点:


  • 丰富数据集
  • 减少GPU计算


1.2 自适应锚框计算


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


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


  • Step1:读取训练集中所有图片的w、h以及检测框的w、h
  • Step2:将读取的坐标修正为绝对坐标
  • Step3:使用Kmeans算法对训练集中所有的检测框进行聚类,得到k个anchors
  • Step4:通过遗传算法对得到的anchors进行变异,如果变异后效果好将其保留,否则跳过
  • Step5:将最终得到的最优anchors按照面积返回


1.3 自适应图片缩放


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


letterbox自适应图片缩放技术尽量保持高宽比,缺的用灰边补齐达到固定的尺寸。


2.YOLO总体架构图



2.1 BackBone


主要进行特征提取,将图像中的物体信息通过卷积网络进行提取,用于后面目标检测。


2.1.1 Focus模块


Focus层原理和PassThrough层很类似。它采用切片操作把高分辨率的图片拆分成多个低分辨率的图片/特征图,即隔列采样+拼接。


2.1.2 SPP模块


空间金字塔池化,能将任意大小的特征图转换成固定大小的特征向量。


2.1.3 CSP_X模块


backbone是较深的网络,增加残差结构可以增加层与层之间反向传播的梯度值,避免因为加深而带来的梯度消失,从而可以提取到更细粒度的特征并且不用担心网络退化。


2.2 Neck


对特征进行混合与组合,增强网络的鲁棒性,加强物体检测能力,并且将这些特征传递给Head层进行预测。


2.2.1 FPN



2.2.2 PAN



2.3 YOLO输出端


主要进行最终的预测输出。


2.3.1 Bounding Box损失函数


真实检测框和模型预测输出框的吻合程度,用于反向传播优化模型。


2.3.2 NMS非极大值抑制


判断相邻网格识别的是否是同一物体,消除掉多余检测框。

目录
相关文章
|
机器学习/深度学习 并行计算 计算机视觉
YOLOv5入门实践(5)——从零开始,手把手教你训练自己的目标检测模型(包含pyqt5界面)
YOLOv5入门实践(5)——从零开始,手把手教你训练自己的目标检测模型(包含pyqt5界面)
12238 1
YOLOv5入门实践(5)——从零开始,手把手教你训练自己的目标检测模型(包含pyqt5界面)
|
机器学习/深度学习 算法 计算机视觉
深度学习目标检测系列:一文弄懂YOLO算法|附Python源码
本文是目标检测系列文章——YOLO算法,介绍其基本原理及实现细节,并用python实现,方便读者上手体验目标检测的乐趣。
55349 0
|
机器学习/深度学习 算法 Go
YOLOv5网络结构解析
YOLOv5网络结构解析
|
XML 数据挖掘 数据格式
|
机器学习/深度学习 编解码 监控
目标检测实战(六): 使用YOLOv8完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
这篇文章详细介绍了如何使用YOLOv8进行目标检测任务,包括环境搭建、数据准备、模型训练、验证测试以及模型转换等完整流程。
26620 59
目标检测实战(六): 使用YOLOv8完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
|
数据处理 算法框架/工具 计算机视觉
手把手教你使用YOLOV5训练自己的目标检测模型
本教程由肆十二(dejahu)撰写,详细介绍了如何使用YOLOV5训练口罩检测模型,涵盖环境配置、数据标注、模型训练、评估与使用等环节,适合大作业及毕业设计参考。提供B站视频、CSDN博客及代码资源链接,便于学习实践。
6107 1
手把手教你使用YOLOV5训练自己的目标检测模型
|
PyTorch 算法框架/工具 Python
yolov5的完整部署(适合新人和懒人,一键安装)
这篇文章为新人和希望简化部署过程的用户介绍了如何一键安装和配置YOLOv5环境,包括安装Anaconda、设置镜像源、安装PyCharm、创建虚拟环境、下载YOLOv5项目、安装依赖以及在PyCharm中配置和运行项目。
9313 0
yolov5的完整部署(适合新人和懒人,一键安装)
|
机器学习/深度学习 算法 PyTorch
目标检测实战(五): 使用YOLOv5-7.0版本对图像进行目标检测完整版(从自定义数据集到测试验证的完整流程)
本文详细介绍了使用YOLOv5-7.0版本进行目标检测的完整流程,包括算法介绍、环境搭建、数据集准备、模型训练、验证、测试以及评价指标。YOLOv5以其高精度、快速度和模型小尺寸在计算机视觉领域受到广泛应用。
7056 0
目标检测实战(五): 使用YOLOv5-7.0版本对图像进行目标检测完整版(从自定义数据集到测试验证的完整流程)
|
机器学习/深度学习 人工智能 文字识别
ultralytics YOLO11 全新发布!(原理介绍+代码详见+结构框图)
本文详细介绍YOLO11,包括其全新特性、代码实现及结构框图,并提供如何使用NEU-DET数据集进行训练的指南。YOLO11在前代基础上引入了新功能和改进,如C3k2、C2PSA模块和更轻量级的分类检测头,显著提升了模型的性能和灵活性。文中还对比了YOLO11与YOLOv8的区别,并展示了训练过程和结果的可视化
25344 0
|
算法 Go 计算机视觉
【YOLO系列】YOLOv5超详细解读(网络详解)
【YOLO系列】YOLOv5超详细解读(网络详解)
11874 2
【YOLO系列】YOLOv5超详细解读(网络详解)