- 🍨 本文为🔗365天深度学习训练营 中的学习记录博客>- **🍖
- 原作者:K同学啊**
yolov5学习
- 下载源码
- 运行命令
- 查看结果
- 视频检测
- 个人总结
下载源码
- 地址:https://github.com/ultralytics/yolov5
- 打开cmd后输入:pip install -r requirements.txt
运行命令
(py311torch) E:\yolov5-master>python detect.py --source E:\yolov5-master\data\images\zidane.jpg --weights yolov5s.pt --img 640
查看结果
视频检测
个人总结
学习了如何使用YOLOv5进行图像检测和视频目标检测
YOLOv5 的工作原理
单阶段检测:YOLOv5 是一种单阶段目标检测器。与两阶段的检测器(如 R-CNN 系列)不同,YOLOv5 在单个网络中同时完成目标的定位和分类,大大提高了目标检测的速度。
骨干网络(Backbone):YOLOv5 使用了一个高效的骨干网络来提取图像特征。具体来说,它采用了 CSPDarknet53(Cross Stage Partial Network)作为主要的特征提取网络。这个网络的设计目的是减少计算量,提高特征提取的效率。
颈部网络(Neck):在骨干网络提取出的特征基础上,YOLOv5 通过一个复杂的颈部网络进一步增强特征。颈部网络通常包括 FPN(Feature Pyramid Network)和 PANet(Path Aggregation Network),用于融合不同尺度的特征,从而提高小目标的检测精度。
头部网络(Head):头部网络负责将颈部网络输出的特征图转换为目标检测的输出,即每个目标的边界框(bounding box)和类别概率。YOLOv5 的头部网络通常包含多个卷积层和用于输出的全连接层。
损失函数:YOLOv5 使用了一种结合了分类损失和定位损失的多任务损失函数。常见的损失函数包括交叉熵损失(用于分类)和 IoU(Intersection over Union)损失(用于定位)。
锚框(Anchor Boxes):YOLOv5 使用了预定义的锚框来帮助定位目标。锚框是根据不同数据集的目标尺寸和形状预设的,网络会调整锚框的尺寸和位置,以适应实际检测到的目标。
数据增强:为了提高模型的鲁棒性和泛化能力,YOLOv5 在训练过程中使用了多种数据增强技术,如 Mosaic、MixUp 和 CutMix 等。这些技术通过组合多个图像来生成新的训练样本,从而增加模型的多样性。
自适应锚框:YOLOv5 还引入了自适应锚框的概念,通过 K-means 聚类算法在训练集上自动计算最合适的锚框尺寸,以提高检测精度。
模型优化:YOLOv5 通过一系列的优化技术来提高模型的性能,例如使用动态小批量大小(Dynamic batch size)、改进的学习率调整策略等。