如何使用 Yolo v5 对象检测算法进行自定义对象检测-600学习网
600学习网终身会员188,所有资源无秘无压缩-购买会员
介绍
在本文中,我们将解释如何使用Yolo v5算法来检测和分类60多种不同类型的道路交通标志。
我们将从一个非常基本的点开始,涵盖每个步骤,例如准备数据集.培训和测试。在本文中,我们将使用Windows 10系统。
让我们来谈谈YOLO及其架构。
YOLO是You Only Look Once的缩写。我们使用2020年6月推出的Ultralytics第5版,这是目前最先进的目标识别算法。
YOLOv5是一种新颖的卷积神经网络(CNN),它可以实时准确地检测目标。该方法使用单个神经网络处理整个图像,然后将其划分为多个部分,并预测每个部分的边界框和概率。这些边界框由预期概率加权。
这种方法”只看一次图像”,因为它只在通过神经网络进行一次正向传播后进行预测。然后在非最大抑制之后传递检测到的项目(这确保了对象检测算法只识别每个对象一次)。
其架构主要由三部分组成,即:
1.主干:主干主要用于从输入图像中提取关键特征。CSP(Cross-Stage Partial Networks)被用作YOLO v5的主干,从输入图像中提取丰富而有用的特征。
2.颈部:颈部主要用于创建特征金字塔。当涉及到对象缩放时,特征金字塔有助于模型泛化。它有助于识别不同大小和比例的同一物体。特征金字塔在帮助模型有效处理以前不可见的数据方面非常有用。其他模型,如FPN.BiFPN和PANet,使用各种特征金字塔方法。PANet在YOLO v5中用作颈部,以获得特征金字塔。
3.负责人:模型负责人主要负责最终检测步骤。它使用锚框来构建具有类别概率.客观姓得分和边界框的最终输出向量。
YOLO v5模型的头部与YOLO V3和V4的早期版本相同。
Yolo v5的优点和缺点
·它比YOLOv4小88%(27MB对244MB)
·它比YOLOv4快180%(140 FPS vs 50 FPS)
·在同一任务中,它与YOLOv4大致相同(0.895 mAP vs 0.892 mAP)
·但主要问题是,YOLOv5不像其他YOLO版本那样发布官方文件。此外,YOLO v5仍在开发中。我们经常会收到Ultralytics的更新,未来的开发人员可能会更新一些设置。
目录
1.在Windows 10中设置虚拟环境。
2.克隆Yolo v5的GitHub仓库。
3.数据集准备和预处理。
4.培训模式。
5.预测和现场试验。
创建虚拟环境
我们将首先通过在Windows命令提示符中运行此命令来设置虚拟环境
1.安装Virtualenv(运行以下命令安装虚拟环境)
$pip安装虚拟环境
2.创建环境(运行以下命令创建虚拟环境)
$py-m venv YoloV5_VirEnv公司
3.使用此命令激活它(运行以下命令激活环境)
$YoloV5_VirEnvScript激活
您也可以使用禁用它(如果要禁用环境,请运行以下命令)
美元停用
设置YOLO
激活虚拟环境后,克隆Ultralytics创建和维护的GitHub存储库:
$git克隆https://github.com/ultralytics/yolov5
约洛夫5美元
目录结构
约洛夫5/
.github/
数据/
型号/
实用程序/
.dockerignore
.git属姓
.git忽略
.pre-commit-config.yaml
贡献.md
检测.py
Dockerfileexport.py文件
轮毂.py
许可证
阅读.md
要求.txt
设置.cfg
列车.py
教程.ipynb
val.py值
安装必要的库:首先,我们将安装所有必要的库(OpenCV和Pillow).图像分类(Tensorflow和PyTorch),并执行矩阵运算(Numpy)
$pip安装-r要求.txt
数据集准备
从该链接下载完整的标签数据集:
然后解压缩zip文件并将其移动到yolov5/目录。
1144张图片_数据集/
列车/
我们将使用总共77个不同的类
使用Yolo v5培训模型
现在运行命令以最终训练数据集。您可以根据电脑规格更改批量大小。培训时间将取决于计算机的性能。最好使用Google Colab。
你也可以训练不同版本的YOLOv5算法,
所有这些都将使用不同的计算能力,并提供FPS(每秒帧数)和精确度的不同组合。
在本文中,我们将使用YOLOv5s版本,因为它是最简单的。
$python train.py?data data.yaml?cfg yolov5s.yaml?batch?size 8?name型号
现在在内部运行runs/train/Model/,您将找到最终的训练模型。
最好的pt包含用于最终检测和分类的最终模型。
结果。txt文件将包含您在每个时段内所取得的准确姓和损失的摘要。
其他图像包含可用于更多分析的绘图和图表。
Yolo v5型测试
将您的yolov5/目录移到其他位置并克隆该存储库。
$git clone https://github.com/aryan0141/RealTime交通标志的检测和分类
交通标志的实时检测和分类
目录结构
现在复制我们上面训练的模型并将其粘贴到这个目录中。
注意:我在模型/目录中包含了一个经过训练的模型,但您也可以用经过训练的模式替换它。移动到代码所在的目录。
美元cd代码/
将视频或图像放在**Test*目录中。我还提供了一些示例视频和图像供您参考。
用于测试图像
$python detect.py?source../Test/test1.jpeg?weights./Model/weights/best.pt
用于测试视频
$python detect.py?source../Test/vidd1.mp4?weights./Model/weights/best.pt
对于网络摄像头
$python detect.py–source 0–weights./型号/weights/best.pt
您的最终图像和视频存储在Results/目录中。
示例图像
每秒帧数(FPS)取决于您使用的GPU。我在英伟达MX 350 2GB显卡上获得了约50FPS的速度
github
这是吉图布。您可以找到本文中使用的完整代码。
600学习网 » 如何使用 Yolo v5 对象检测算法进行自定义对象检测-600学习网