深度学习的毕业设计做鲜花花卉识别,有谁有相关的经验分享一下吗?

  毕业设计题目是基于深度学习卷积神经网络的花卉识别,机器视觉相关的,有哪位大神有这方面经验吗?

  最直接的方式是使用YOLOv5实现,需要的时间大概在3个小时左右。

  完成任务的时间主要集中在构造数据集、标注数据集。

  当然,也可以选择现成的数据集,只找测试图像就好了。如果这样的话,需要的时间大概在半个小时左右即可。

  下面,以训练一个目标检测系统,识别图像中的苹果和香蕉为例。

  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安装方式如下:

  

  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":训练好的权重

  配置方式如下:

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

  使用上述流程即可以完成花卉的识别。