首页 > 分享 > YOLOv8系列】(七)毕设实战:YOLOv8+Pyqt5实现鲜花智能分类系统

YOLOv8系列】(七)毕设实战:YOLOv8+Pyqt5实现鲜花智能分类系统

前言

花卉智能识别系统采用先进的YOLOv8算法,能够高效、精准地识别多种种花卉品种。该系统通过大量花卉图片进行训练,提升了模型的精度,实现了对图片、视频以及实时摄像头的识别。 

主要应用领域:

园艺管理:园艺师和园林工作者可以利用该系统快速辨别花卉种类,优化园艺资源管理,确保植物健康生长。

植物学研究:研究人员可通过该系统加速花卉品种识别,减少人工误差,推动植物学研究进程。

生态环境监测:环境保护人员可以使用该系统监测自然环境中的花卉,评估生态系统的多样性和健康状况。

教育与科普:该系统可作为教学工具,帮助学生和公众了解不同的花卉品种,增强对植物的认知。

植物园和展览:为游客提供即时的花卉信息查询,提升参观体验的互动性和趣味性。

个人使用:花卉爱好者可以利用该系统深入了解周围的花卉,培养对植物的兴趣和知识。

系统特点:

高精度识别:基于YOLOv8深度学习模型,系统能够准确识别花卉种类,满足专业和个人的使用需求。

实时识别:支持对图片、视频和实时摄像头的识别,提供即时的识别结果。

用户友好:配备简单直观的用户界面,方便用户操作和获取信息。

一、数据集获取与介绍 

Oxford 102 Flowers Dataset

简介: 由牛津大学计算机视觉研究组发布,该数据集包含102种花卉的图像,种类涵盖常见的花卉类型,如玫瑰、向日葵和郁金香。图像数量: 数据集中共有8189张图像,每种花卉类别的图片数量不一,最低有40张,最高达258张。标签信息: 每张图像都带有相应的类别标签,用于模型的训练与评估。应用场景: 该数据集广泛用于花卉识别、图像分类、图像分割等任务,是计算机视觉领域的重要基准数据集之一。 

二、模型训练

 1.按以下数据集目录划分

dataset

├── flowers

│ ├── train

│ │ ├──......

│ ├── val

├──......

2.模型训练

数据准备完成后,通过调用train.py文件进行模型训练,epochs参数用于调整训练的轮数,batch参数用于调整训练的批次大小【根据内存大小调整,最小为1】,代码如下: 

#coding:utf-8

from ultralytics import YOLO

# 加载预训练模型

model = YOLO("yolov8n-cls.pt")

if __name__ == '__main__':

model.train(data='datasets/flowers', epochs=300, batch=4)

# results = model.val()

 3.训练结果

可以在runs/目录下找到训练过程及结果文件,如下所示:

 本文训练结果如下:
通过accuracy_top1图片准确率曲线图我们可以发现,该模型的最高准确率约为0.88,应该够我们使用了。

三、pyqt实现 

1.ui界面设计

使用Qt designer进行ui界面设计,具体pycharm配置过程可以参考我这篇文章

PyCharm专业版配置PyQt5/QtDesigner/PyUic完整教程_pyuic5支持什么版本python-CSDN博客

大致界面如下所示:

包含 :

QLabel,显示图像、识别结果、用时、置信度等

QTableWidget,显示序号、文件路径、置信度等信息

QPushButton,选择图片、文件夹、视频或者摄像头检测,保存识别csv

2.功能实现 ①图片检测

def detectImage(self, imagePath):

frame = cv2.imread(imagePath)

results = self.model(frame)

self.displayResults(frame, results)

②文件夹检测

def detect_folder(self):

image_extensions = ('.png', '.jpg', '.jpeg', '.gif', '.bmp', '.tiff')

image_paths = [os.path.join(self.source, f) for f in os.listdir(self.source) if

f.lower().endswith(image_extensions)]

for image_path in image_paths:

image = cv2.imread(image_path)

results = self.model(frame)

self.displayResults(frame, results)

③视频检测

def detectVideo(self):

ret, frame = self.cap.read()

if ret:

results = self.model(frame)

self.displayResults(frame, results)

else:

self.timer.stop()

self.cap.release()

四.总结


        在本博客中,我们详细介绍了一个基于YOLOv8模型的花朵分类系统。系统以模块化的方式设计,充分采用了合理的架构设计,带来良好的可维护性和可扩展性。其用户界面友好,能够提供实时的花朵分类识别结果展示,便于保存和管理检测结果和设置。

        该系统支持摄像头、视频、图像和批量文件等多种输入源,能够满足用户在不同场景下的需求。在后面可以添加更多预训练模型,增加检测和识别的种类;优化用户界面,增强个性化设置;并积极聆听用户反馈,以期不断改进系统,以更好地满足用户的需求。

由于博主能力有限,博文中提及的方法即使经过试验,也难免会有疏漏之处。希望您能热心指出其中的错误,以便下次修改时能以一个更完美更严谨的样子,呈现在大家面前。同时如果有更好的实现方法也请您不吝赐教。

如果以上内容对您有帮助,可以三连打赏订阅本专栏哦, 谢谢~

相关知识

YOLOv8系列】(七)毕设实战:YOLOv8+Pyqt5实现鲜花智能分类系统
基于YOLOv8深度学习的葡萄病害智能诊断与防治系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战
计算机毕设选题推荐springboot+vue网上鲜花销售系统 鲜花销售商城
基于YOLOv8深度学习的102种花卉智能识别系统【python源码+Pyqt5界面+数据集+训练代码】目标识别、深度学习实战
电科毕设 远程智能浇花灌溉系统
基于51单片机的智能浇花系统(可做毕设)
基于YOLOv8深度学习的水稻害虫检测与识别系统【python源码+Pyqt5界面+数据集+训练代码】目标检测、深度学习实战
基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的玉米病虫害检测系统(Python+PySide6界面+训练代码)
基于深度学习的植物病害检测系统(网页版+YOLOv8/v7/v6/v5代码+训练数据集)
毕设

网址: YOLOv8系列】(七)毕设实战:YOLOv8+Pyqt5实现鲜花智能分类系统 https://m.huajiangbk.com/newsview251876.html

所属分类:花卉
上一篇: 人工智能毕业设计基于python
下一篇: 室内养花,安排4种有“净化本领”