主页 > 开源代码  > 

Yolov5算法原理

Yolov5算法原理

一、背景介绍         Ultralytics是一家专注于计算机视觉和深度学习技术的 公司,成立于2019年。致力于开发先进的深度学习解决方 案,特别是在目标检测和图像处理领域。Ultralytics最著名 的产品是YOLOv5,尽管YOLOv5的命名为“v5” ,它实际上 是对YOLO系列的一个独立实现。

 

        Glenn Jocher是计算机视觉和深度学习领域的知名开发者,特别以其在目标检测模型YOLOv5的开发和维护方面的 贡献而闻名。Glenn Jocher(Ultralytics团队)于2020年6 月发布了YOLOv5,将其作为YOLO系列的一个新版本,尽 管它并不直接由原始YOLO作者开发,但受到了广泛的关注 和使用。

特点与改进

模型架构:YOLOv5采用了更高效的网络结构设计,结合了CSPNet(Cross Stage Partial Network)和PANet(Path Aggregation Network),旨在减少计算量的同时提高检测精度。

自动学习锚框:相较于之前的版本,YOLOv5能够根据训练数据集自动调整锚框(anchor boxes),从而适应不同的应用场景。

数据增强:引入了多种数据增强技术,如马赛克数据增强(Mosaic Data Augmentation),这有助于提升模型对不同尺度和视角下物体的识别能力。

易于使用:YOLOv5提供了非常友好的接口和文档支持,使得开发者可以更容易地进行模型训练、验证以及部署。它支持PyTorch框架,具有良好的兼容性和扩展性。

性能表现:YOLOv5在保持高精度的同时,实现了更快的推理速度,适用于实时目标检测任务。它能够在多种硬件平台上运行,从高性能GPU到嵌入式设备。


二、Yolov5的主要内容 1、yolov5是一种单阶段目标检测算法,主要算法思路如下 输入端:Mosaic增强、自适应锚框计算、自适应图片缩放。 基准网络:Focus结构与CSP结构(C3结构),SPP(SPPF)。 Neck网络:采用FPN+PAN结构。 Head输出层:分类+定位于一体。 目标框回归。 正负样本匹配。 损失函数:分类损失+置信度损失+定位损失。
2、Mosaic增强

        马赛克增强(mosaic augmentation)是当下十分强大的数据增强之一,可以显著提升图像中的目标实例的丰富度、图像自身的检测难度,这对于提升模型的性能起到了极大的积极作用。对于YOLO系列,最早使用马赛克增强的是由知名的ultralytics团队实现的YOLOv3,随后在官方的YOLOv4和5中,马赛克增强也被使用。

        马赛克增强的思想十分简单,就是随机将4张不同的图像拼接在一起,组合成一张新的图像,不妨将此图像称为“马赛克图像”,如图所示

        为了更好地理解这一强大的增强技术,我们举一个例子,假定输入图像的尺寸是640×640,首先,准备一个1280×1280的空白图像,依次将四张图像的最长边缩放到640,短边做相应比例的变换;其次,随机选一个中心点,依次将四张图像拼接上去;最后,使用空间扰动增强随机从这张1280×1280的马赛克图像抽取出640×640的图像来。相较于一般的图像,马赛克图像因融合了四张图像的信息,不仅丰富了其中的目标类型和数量,也加大了该图像的检测难度。很多时候,从数据的角度切入去增加一些学习的难度,往往对模型的性能是有益的。


3、自适应锚框         自适应锚框计算是根据训练数据集中目标的实际大小和比例,自动调整锚框 (anchor boxes)的大小,使其更好地适 应检测任务。 作用: 提高检测精度:通过与数据集中目标尺寸匹配的锚框设置,模型能够更准确地定位和分类对象。 优化训练效率:自适应的锚框减少了无效或低效的检测匹配,提高了正样本的比例,帮助模型更快收敛。

自适应锚框计算过程:

统计数据集中的目标框:通过遍历数据集,收集所有目标框的宽高比信息。 聚类分析:使用 k-means聚类 或改进的kmeans算法,基于宽高比对目标框进行聚类,得到多个锚框。 距离度量:通常采用IoU作为距离指标,以更好地反映锚框与目标框的匹配程度。 确定最佳锚框:聚类完成后,选择与数据集目标特征匹配度最高的锚框集合,作为模型训练的默认锚框。 自动调整:YOLOv5在训练时会自动计算和推荐适合数据集的锚框配置,以帮助用户更快地开始训练,并获得更好的检测效果。
4、自适应图片缩放         训练阶段:         目标检测算法在训练和推理阶段都 会 resize 到 统 一 的 图 像 尺 寸 , YOLOv5在推理阶段采用了自适应的 图片缩放。 计算长边缩放比例:假设原图尺寸为(523, 699)(设定为32的倍 数)计算长边缩放比例: r = 416 / 699 = 0.5951 将原图等比例缩放:(523,699) ---> (311, 416) 高padding = (320 - 311) / 2 = 4.5,所以推理阶段的分辨率为( 320 , 416) 填充为(416,416); H侧上下需要填充的大小 pad = (416 - 311) / 2 = 52.5


5、SiLU激活函数


6、Yolov5的整体结构和参数


7、Yolov5中的Focus(有的代码版本中可能没有)


8、Yolov5中的C3


9、Yolov5中的SPPF结构


10、Yolov5中的FPN+PAN结构


11、Yolov5的目标框回归


12、Yolov5的正负样本匹配


13、Yolov5损失函数 

标签:

Yolov5算法原理由讯客互联开源代码栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“Yolov5算法原理