实时目标检测神器:YOLOv5的安装与使用详解

简介: 实时目标检测神器:YOLOv5的安装与使用详解

yolov5

YOLOv5 是一种流行的目标检测算法,属于 YOLO(You Only Look Once)系列的第五代版本。

YOLO 算法以其快速和高效而闻名,在实时目标检测任务中表现出色。

关键特点:

快速检测YOLOv5 能够实现快速的目标检测,适合需要实时处理的应用场景

单阶段检测器:与两阶段检测器(如 Faster R-CNN)不同,YOLO 算法采用单阶段检测方法,直接在图像上预测边界框和类别概率

锚框YOLOv5 使用锚框(anchor boxes)来预测目标的边界框,锚框是在训练过程中学习得到的,用于提高检测的准确性

损失函数: YOLOv5 对损失函数进行了优化,包括对象存在性、边界框坐标和类别概率的损失。

自适应锚框YOLOv5 引入了自适应锚框的机制,可以根据不同的数据集自动调整锚框的大小和比例。

数据增强YOLOv5 在训练过程中使用了多种数据增强技术,增强模型的泛化能力。

多尺度预测YOLOv5 支持多尺度预测,可以检测不同大小的目标。

易于部署YOLOv5 模型通常比较轻量化,易于在各种平台上部署,包括服务器、移动设备和嵌入式设备。

安装

github: github.com/ultralytics…

首先本地需要安装 python 环境,最好 python 版本不要超过 3.10

下载

--javascripttypescriptshellbashsqljsonhtmlcssccppjavarubypythongorustmarkdown


git clone https://github.com/ultralytics/yolov5

配置环境

pycharm 中打开项目

项目->设置->选择 python 解释器

打开控制台,安装依赖

--javascripttypescriptshellbashsqljsonhtmlcssccppjavarubypythongorustmarkdown


pip install -r requirements.txt

安装

数据标注

数据标注是训练模型的关键步骤之一,而 LabelImg 是一个常用且功能强大的图像标注工具,支持多种目标检测数据集格式,如 PASCAL VOCCOCO

安装 LabelImg

--javascripttypescriptshellbashsqljsonhtmlcssccppjavarubypythongorustmarkdown


pip install labelimg

打开 LabelImg

--javascripttypescriptshellbashsqljsonhtmlcssccppjavarubypythongorustmarkdown


# 在命令行中输入labelimg即可打开
labelimg

开始标注

点击

标注错误

在开始标注的时候,拉不了框,一拉就闪退了,错误提示如下图:

通过错误提示发现是数据类型错误,由于我测试用的 python3.10 对类型有些要求,所以提示这个错误。

解决办法:降低 python 版本,如用 python 3.9 再试下

更换版本后,重新标注:

保存标注

模型训练

在进行模型训练的时候,需要把上面标注的数据整理归类

数据归类格式如下:

新建一个 dateaset 文件夹,用于存放数据集。

head3 为标注的标签,文件 00001.jpg 为训练的图片,00001.txt 为标注数据,需要一一对应。

添加配置项

yolov5/data 文件夹下新建 head3.yaml

内容如下所示:

--javascripttypescriptshellbashsqljsonhtmlcssccppjavarubypythongorustmarkdown


# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: E:\project-py\yolov5\dataset\head  # dataset root dir
train: images/train  # train images (relative to 'path')
val: images/val  # val images (relative to 'path')
test:  # test images (optional)
# Classes
nc: 1  # number of classes
names: ["head"]  # class names

其中:

path:数据集的根目录

train:训练集与 path 的相对路径

val:验证集与 path 的相对路径

nc:类别数量,因为这个数据集只有一个类别(fire)nc 即为1。

names:类别名字。

下载预训练模型

现在,我们准备好了数据,接下来,下载好预训练模型:

预训练模型地址:github.com/ultralytics…

选择你所需要的模型下载即可,这里我选择 yolov5s.pt 下载

模型下载完成后,将 xx.pt 复制在 yolov5 文件夹下。如下图所示:

开始训练

打开运行调试菜单,选择编辑或者新增:

添加运行参数:

--javascripttypescriptshellbashsqljsonhtmlcssccppjavarubypythongorustmarkdown


--weights yolov5s.pt --data data/fire.yaml --workers 1 --batch-size 8

点击运行,至此,模型则开始训练

模型测试

模型训练完成后,将 runs/exp/weights 下的模型(best.pt)复制在 yolov5 文件夹下。如下图所示:

开始测试

--javascripttypescriptshellbashsqljsonhtmlcssccppjavarubypythongorustmarkdown


python detect.py --weights best.pt --source ../datasets/head3/images/val

其中参数:

weights:是你训练好的模型的路径

source:是你测试的数据路径

测试结果保存在 runs/detect

总结

YOLOv5 是一种先进的目标检测算法,属于 YOLOYou Only Look Once)系列的第五代。

它继承了 YOLO 系列算法的快速和高效的特点,并且在性能上进行了显著提升。

YOLOv5 的成功在于其速度和准确性的平衡,使其成为许多实时目标检测任务的首选算法。

随着计算机视觉领域的不断发展,YOLOv5 及其后续版本将继续在目标检测技术中扮演重要角色



相关文章
|
机器学习/深度学习 并行计算 计算机视觉
YOLOv5入门实践(5)——从零开始,手把手教你训练自己的目标检测模型(包含pyqt5界面)
YOLOv5入门实践(5)——从零开始,手把手教你训练自己的目标检测模型(包含pyqt5界面)
12242 1
YOLOv5入门实践(5)——从零开始,手把手教你训练自己的目标检测模型(包含pyqt5界面)
|
机器学习/深度学习 人工智能 数据库
【表面缺陷检测】表面缺陷检测数据集汇总
本文收集整理了16个表面缺陷检测相关的数据集,并对每个数据集的特点进行了简单的介绍。
【表面缺陷检测】表面缺陷检测数据集汇总
element中使用走马灯效果el-carousel点击按钮切换第几页demo效果示例(整理)
element中使用走马灯效果el-carousel点击按钮切换第几页demo效果示例(整理)
|
6月前
|
弹性计算 负载均衡 容灾
阿里云渠道商:弹性公网IP和固定公网IP区别在哪?
本文解析弹性公网IP与固定公网IP的核心区别,涵盖资源关系、生命周期、高可用性、成本模式及适用场景。EIP独立灵活,支持动态绑定与容灾切换,适合生产环境;固定IP则绑定实例,适用于简单短期需求。选型建议根据业务重要性与扩展需求决定。
Python错误 TypeError: ‘NoneType‘ object is not subscriptable解决方案汇总
Python错误 TypeError: ‘NoneType‘ object is not subscriptable解决方案汇总
|
11月前
|
容器
99. [HarmonyOS NEXT 实战案例:音乐播放器] 基础篇 - 水平分割布局打造音乐播放器界面
在移动应用开发中,音乐播放器是一个经典的应用场景。一个好的音乐播放器界面不仅需要美观,还需要功能区域划分清晰,操作便捷。本教程将详细讲解如何使用HarmonyOS NEXT的`RowSplit`组件构建一个音乐播放器界面,通过水平分割布局将界面分为专辑封面区域和播放控制区域。
278 3
|
机器学习/深度学习 人工智能 算法
AI计算机视觉笔记十一:yolo5+Deepsort实现目标检测与跟踪(CPU版)
DeepSORT是一种基于深度学习的计算机视觉跟踪算法,扩展了SORT算法,通过添加外观描述符减少身份切换,提高跟踪效率。本文档提供了DeepSORT环境搭建步骤,包括创建虚拟环境、安装依赖及解决常见错误等,最终实现人员和车辆的跟踪计数功能。适合无GPU设备的学习者参考。
1469 1
|
机器学习/深度学习 并行计算 PyTorch
深度学习环境搭建笔记(一):detectron2安装过程
这篇博客文章详细介绍了在Windows环境下,使用CUDA 10.2配置深度学习环境,并安装detectron2库的步骤,包括安装Python、pycocotools、Torch和Torchvision、fvcore,以及对Detectron2和PyTorch代码的修改。
3408 1
深度学习环境搭建笔记(一):detectron2安装过程
|
数据处理 算法框架/工具 计算机视觉
手把手教你使用YOLOV5训练自己的目标检测模型
本教程由肆十二(dejahu)撰写,详细介绍了如何使用YOLOV5训练口罩检测模型,涵盖环境配置、数据标注、模型训练、评估与使用等环节,适合大作业及毕业设计参考。提供B站视频、CSDN博客及代码资源链接,便于学习实践。
6119 1
手把手教你使用YOLOV5训练自己的目标检测模型