首页IT科技yolov5识别图片(YOLOv5识别图像内苹果和香蕉)

yolov5识别图片(YOLOv5识别图像内苹果和香蕉)

时间2025-08-05 17:21:35分类IT科技浏览4163
导读:YOLOv5为目标检测带来了极大的方便。通过简单地训练YOLOv5,即可以实现一个速度快、性能高的目标检测系统。...

YOLOv5为目标检测带来了极大的方便            。通过简单地训练YOLOv5              ,即可以实现一个速度快              、性能高的目标检测系统                    。

下面介绍如何从头开始构造一个简单的目标检测系统                   ,用来识别图像内的苹果和香蕉      ,并标注他们所在的位置       。

特别强调的是          ,YOLOv5给我们提供了全套解决方案                    ,整个系统并不需要我们自己手写代码         。

对于通用任务         ,我们要做的就是找到开源数据集      ,训练它                    ,然后就得到了完整的可以实现目标检测的系统                   。

例如            ,我们找到花卉数据集   ,通过该数据集训练                    ,就可以实现一个识别花卉的系统           。我们找到一个火车轨道伤损数据集               ,通过使用该数据集训练YOLOv5,就可以得到一个火车轨道伤损识别系统      。

如果我们要进行的是一个专用任务                  。我们要做的工作可能要多一些                 ,此时需要我们对一些训练图像进行标注                  ,对其中出现的特定目标进行标注              。当然   ,我们可以使用labelImg非常方便地对图像内的特定对象进行标注   。

例如              ,我们要识别非常罕见的某个物体A                   、物体B      、物体C                  。我们只要找到一些包含这些物体的图像                   ,并使用labelImg对他们进行标注                 。然后训练该数据集      ,就可以得到一个新的YOLO系统识别新的图像上出现的物体A          、物体B                    、物体C。

为什么要提到罕见的物体A         、B      、C               。因为常见的物体          ,我们都可以找到别人已经构造好的数据集                    ,不需要我们额外做标注工作了                    。

1 概述

首先         ,我们看下具体的流程:

步骤1:训练适用于当前项目的权重文件   。 步骤2:使用训练好的权重文件      ,完成识别            。

下面使用图来说明一下:

步骤1:

训练适用于当前项目的权重文件                    。

步骤2:

使用训练好的权重文件                    ,完成识别       。

更具体来说            ,从头开始仅仅需要六个步骤即可         。具体步骤如下:

2 实现

如果已经具备一定的深度学习基础   ,上述步骤在半个小时即可完成                   。

下面                    ,简单对上述六个步骤做个介绍           。

2.1 step 1 配置anaconda

为了方便               ,直接安装anaconda就好      。这样比较方便,不需要我们额外进行配置了                  。

2.2 step 2 下载YOLOv5

主要包含如下几个工作:

要件1:下载YOLOv5工程文件 要件2:下载权重文件 要件3:按照requirements.txt文件                 ,配置第三方库 要件4:查看测试文件

要件1:下载YOLOv5工程文件

通过搜索引擎                  ,找到官网   ,下载即可              。

要件2:下载权重文件

它有好多预训练好的权重文件              ,我们可以根据需要下载即可   。

如果问题比较简单                   ,我们直接下载“YOLOv5n            ”即可                  。

总体来说:

预训练文件较小时      ,它的精读低                    、但是速度较快                 。

预训练文件较大时          ,它的精读高            、但是速度较慢。

各个文件的大小如下:

要件3:按照requirements.txt文件                    ,配置第三方库

运行YOLOv5         ,需要很多第三方库      ,直接使用YOLOv5自带的requirements.txt一次搞定               。

要件4:查看测试文件

YOLOv5给我提供了两张测试图像                    ,路径如下                    。

2.3 step 3 测试YOLOv5

本步骤测试YOLOv5是否能够正常运行   。如下图            ,使用YOLOv5自带的测试图像   、权重文件   ,实现目标检测            。

图中:

左侧:测试图像

中间:权重文件

右侧:左侧测试图像的检测结果                    。可以看到检测出了领带                    、人               、车等等       。

直接运行detect.py即可         。

需要注意的是                    ,要配置其参数:

source:测试文件位置

weight:权重文件位置

2.4 step 4 数据集处理

这里需要使用labelImg                   。labelImg用来对图像进行标注               ,它能够根据手工标注自动给出对象在图像内的位置、对象大小           。

如下图所示,文件classes所示:共有两个分类苹果和香蕉      。苹果对应着类别0                 ,香蕉对应着类别1.

如下图所示                  ,图像lilizong1.jpg在labelImg处理后   ,会得到lilizong1.txt文件                  。

lilizong1.txt中              ,共有四行                   ,前三行对应着lilizong1.jpg中三个苹果      ,第四行对应着lilizong1.jpg中的一只香蕉              。

标注文件lilizong1.txt中          ,数值包含四个部分:

【分类                 、对象位置(x,y)                  、对象尺寸(宽度   、高度)】

(x,y)              、(宽度                   、高度)都是归一化的值   。

简单理解                    ,原始图像的宽度      、高度都是1                  。或者将未知          、尺寸都理解为原图像的百分比                 。

例如         ,在lilizong1.txt中      ,第1行中:

[0,0.47,0.52,0.12,0.118]

其中数值0是分类                    ,对应着apple            ,(0.47,0.52)是苹果在图像中的位置   ,(0.12,0.118)是苹果的宽度和高度。

0.47表示当前的apple距离左边界的距离占图像总宽度的47%

0.52表示当前的apple距离上边界的距离占图像总高度的52%

0.12表示当前的apple的宽度占图像总宽度的12%

0.118表示当前的apple的高度占图像总高度的11.8%

labelImg安装方式如下:

pip install labelImg

labelImg的运行方式如下:

labelImg

运行labelImg                    ,如下图所示               。

主要操作如下:

1                    、图像目录:设定要标注的图像在哪

2         、标签目录:生成的标签文件存在哪

3      、支持类型:选择【YOLO】(也支持其他类型)

4                    、create rectangle(生成标注框)

5            、设置默认标签

导入图像后               ,框定图像内的对象   、设定标签即可获取对应的包含类别                    、位置               、宽高的标注文件                    。

这里主要分为四部分:

1、data.yaml:配置文件

2                 、train:训练文件

3                  、val:验证文件

4   、test:测试文件

配置文件(data.yaml)的内容主要包含:

1              、设定好目标检测的分类

2                   、nc:类的个数(nubmer of class)

3      、train:训练文件的路径

4          、val:验证文件的路径

需要注意,使用yolov5                 ,既要包含训练文件                    、又要包含验证文件   。无论训练文件                  ,还是验证文件其中的图像都要包含对应对应的标签            。

2.5 step 5 训练YOLOv5

训练过程   ,就是使用训练文件         、验证文件              ,获取权重文件的过程                    。

运行train.py完成YOLOv5的训练       。需要注意的是                   ,要配置其对应的参数      ,主要包含:

--batch-size="2" :批处理大小

--epochs="200" :训练轮次

--data="lilizong/data.yaml":数据源位置

--weights=".\weight\yolov5n.pt":使用的权重

配置方式如下:

2.6 step 6 目标检测

使用训练好的权重          ,进行目标检测         。

运行train.py                    ,实现目标检测                   。需要配置参数如下:

--source=".\lilizong\test" :原文件路径

--weights=".\runs\train\exp\weights\best.pt":训练好的权重

配置方式如下:

识别香蕉和苹果(目标检测)的结果如下所示:

视频课程地址:

YOLOv5实战(检测苹果和香蕉)--计算机视觉视频教程-人工智能-CSDN程序员研修院

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
mac把硬盘抹除了怎么办(移动硬盘通过Mac磁盘工具抹掉磁盘不小心强制退出急救方法)