Yolov5保姆及入门-含源码【推荐】

ops/2024/10/10 9:49:44/

前言

YOLO系列模型作为一种实时目标检测算法,自从YOLO1发布以来,就以其检测速度快、准确率高而受到广泛关注。随着技术的迭代,YOLO系列已经发展到了YOLO8。本文将详细介绍YOLO5的技术规格、应用场景、特点以及性能对比。
YOLOV5YuanMa.html" title=YOLOV5.html" title=yolov5>yolov5源码>YOLOV5.html" title=yolov5>yolov5源码下载地址:https://github.com/ultralytics/YOLOV5.html" title=yolov5>yolov5
应用demo下载地址:https://pan.baidu.com/s/1X2iUmzAm4iz0iPA6ukVs5w?pwd=1111

应用场景

先看一张图片:
在这里插入图片描述
上述图片中,可以将看到的物体通过矩形框标记出来,并识别到框选的内容,还有识别准确度。这样应用通过此网路模型可以从图片中识别到我们需要识别的物品并标记出坐标位置。

训练流程

1.准备图片数据集:

准备用于训练的数据集,将其分成两份,一份用于训练,一份用于测试。

2.图片目标标注:

标注需要使用到标注工具,我用的是labelimg,工具图片如下:
在这里插入图片描述
标注之后需要将标注文件转换成模型可以识别的格式。demo代码中附带自动转换文件,可将标注文件转换成指定的格式文件。

3.训练与测试:

此功能需要用到train.py程序,运行终端指令:

python train.py --batch-size 8 --epochs 100 --data ./mytest/face.yaml --cfg ./mytest/YOLOV5.html" title=yolov5>yolov5s.yaml --weights './mytest/YOLOV5.html" title=yolov5>yolov5s.pt'

会在runs/train/exp文件夹中生成训练的结果及训练的权重如下:
在这里插入图片描述

4.验证使用

最后的使用识别目标图片bus.jpg就需要用到detect.py,运行的终端命令:

python detect.py --weights ./runs/train/exp/weights/best.pt --source ./data/images/bus.jpg

会在runs/detect/exp文件夹中生成识别目标的结果,就像上述图片结果:
在这里插入图片描述

异常处理

在使用过程中,出现的最多的异常是内存不足、页面过小等资源不足情况。针对这些通常可以通过修改参数workers、device、batch-size的大小解决。资金充足的情况下,可以通过提升电脑硬件配置解决。

应用

通过上述功能,对其修改编写了界面应用Demo。可以用来图片目标识别、视频目标识别、摄像头目标识别、桌面目标识别等功能。
在这里插入图片描述
在这里插入图片描述

Demo下载路径在文章开头


http://www.ppmy.cn/ops/43929.html

相关文章

Python图形界面(GUI)Tkinter笔记(八):用【Label()】方法制作九九乘数表

主要是使用"config()"方法来体现函数式、模块化的美好风景。把需随时要修改的控件参数定义在“config()”方法里且把它封装在一个函数中,这时只需对这函数内的“config()”方法作出相应的修改即可,无需对主代码或全部代码重新修一遍。这也是Py…

python-docx 在word中指定位置插入图片或表格

docx库add_picture()方法不支持对图片位置的设置 1、新建一个1行3列的表格,在中间的一列中插入图片 from docx import Document from docx.shared import Pt from docx.oxml.shared import OxmlElement from docx.enum.text import WD_ALIGN_PARAGRAPHdef add_cen…

LeetCode 题解:112. 路径总和,递归,JavaScript,详细注释

原题链接: 112. 路径总和 解题思路: 如果求根节点到叶子节点的路径上的节点值之和,假设共有3个节点,那么写成计算式是val1 val2 val3 sum那么将计算式转换就可以得到val3 sum - val1 - val2也就是说,问题可以从…

PyTorch Conv2d 前向传递中发生了什么?

在PyTorch中,nn.Conv2d 是一个用于二维卷积操作的模块。当你对一个输入张量(通常是一个四维的,形状为 [batch_size, channels, height, width])调用 forward 方法(或直接使用模块作为函数调用)时,Conv2d 会执行一系列的计算来产生输出张量。 以下是 Conv2d 前向传递中发…

NIO的ByteBuffer和Netty的ByteBuf的性能

在讨论Java NIO的ByteBuffer与Netty的ByteBuf的性能时,需要考虑几个主要的因素,因为性能表现并不是绝对的,而是依赖于具体的使用场景。Netty的ByteBuf设计更加现代,针对网络编程的需求进行了优化,包含了许多ByteBuffer…

C++ RPC ORM 高速解析

支持所有常用编程语 https://capnproto.org/GitHub - capnproto/capnproto: Capn Proto serialization/RPC system - core tools and C library https://capnproto.org/capnproto-c-win32-1.0.2.zip 常用命令: capnp help capnp compile -oc myschema.capn…

LeeCode 3165 线段树

题意 传送门 LeeCode 3165 不包含相邻元素的子序列的最大和 题解 考虑不含相邻子序列的最大和,在不带修改的情况下容易想到,以最后一个元素是否被选取为状态进行DP。从线性递推的角度难以处理待修改的情况。 从分治的角度考虑,使用线段树…