首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >基于YOLO11的水果检测系统(Python源码+数据集+Pyside6界面)

基于YOLO11的水果检测系统(Python源码+数据集+Pyside6界面)

原创
作者头像
AI小怪兽
发布2025-03-22 09:39:47
发布2025-03-22 09:39:47
1K4
举报
文章被收录于专栏:毕业设计毕业设计YOLO大作战

💡💡💡本文摘要:基于YOLO11的水果检测,阐述了整个数据制作和训练可视化过程

博主简介

AI小怪兽,YOLO骨灰级玩家,1)YOLOv5、v7、v8、v9、v10、11优化创新,轻松涨点和模型轻量化;2)目标检测、语义分割、OCR、分类等技术孵化,赋能智能制造,工业项目落地经验丰富;

1.YOLO11介绍

Ultralytics YOLO11是一款尖端的、最先进的模型,它在之前YOLO版本成功的基础上进行了构建,并引入了新功能和改进,以进一步提升性能和灵活性。YOLO11设计快速、准确且易于使用,使其成为各种物体检测和跟踪、实例分割、图像分类以及姿态估计任务的绝佳选择。

结构图如下:

1.1 C3k2

C3k2,结构图如下

C3k2,继承自类C2f,其中通过c3k设置False或者Ture来决定选择使用C3k还是Bottleneck

实现代码ultralytics/nn/modules/block.py

1.2 C2PSA介绍

借鉴V10 PSA结构,实现了C2PSA和C2fPSA,最终选择了基于C2的C2PSA(可能涨点更好?)

实现代码ultralytics/nn/modules/block.py

1.3 11 Detect介绍

分类检测头引入了DWConv(更加轻量级,为后续二次创新提供了改进点),结构图如下(和V8的区别):

实现代码ultralytics/nn/modules/head.py

2.水果检测系统

水果检测具有多方面的重要意义,以下为您详细介绍:

食品安全保障

  • 确保食用安全:水果在种植过程中可能会使用农药、化肥等化学物质,检测能确保这些残留量符合安全标准,避免消费者食用后出现农药中毒等问题。
  • 防范重金属污染:水果可能吸收土壤中的重金属,如汞、铅、镉等。检测可及时发现问题,防止消费者摄入过量重金属,损害健康。

质量控制与品质提升

  • 评估外观品质:通过对水果的颜色、大小、形状等指标检测,筛选出外观不佳的水果,提升市场竞争力。
  • 检测内在品质:检测水果的糖分、酸度、维生素含量等,确保口感好、营养丰富,满足消费者对高品质水果的需求。
  • 促进品种改良:检测结果为种植者提供品种选育依据,推动水果产业向优质化发展。

市场流通与贸易

  • 规范市场秩序:检测保障水果质量,防止以次充好、假冒伪劣,维护市场秩序。
  • 促进公平交易:提供质量标准,使买卖双方有明确依据,确保交易公平合理。
  • 助力国际贸易:符合国际质量标准的水果更易进入国外市场,提升竞争力,促进水果国际贸易发展。

科研与产业发展

  • 提供科研数据:检测数据为水果种植、育种、加工等科研提供基础,助力研发新品种、新技术。
  • 推动产业升级:引导种植者和企业关注质量,促进水果产业向标准化、优质化、品牌化方向发展,提升产业整体水平和经济效益。

2.1 水果数据集介绍

数据集大小:训练集7108张,验证集914张,测试集457张

类别6类:

代码语言:javascript
复制
names:
- Apple
- Banana
- Grape
- Orange
- Pineapple
- Watermelon

细节图:

标签可视化分析

2.2 配置Fruits-detection.yaml

ps:建议填写绝对路径

代码语言:javascript
复制
names:
- Apple
- Banana
- Grape
- Orange
- Pineapple
- Watermelon
nc: 6
test: D:\YOLOv11\data\Fruits-detection\test\images
train: D:\YOLOv11\data\Fruits-detection\train\images
val: D:\YOLOv11\data\Fruits-detection\valid\images

2.3 如何训练

代码语言:javascript
复制
import warnings
warnings.filterwarnings('ignore')
from ultralytics import YOLO

if __name__ == '__main__':
    model = YOLO('ultralytics/cfg/models/11/yolo11.yaml')
    model.train(data='data/Fruits-detection.yaml',
                cache=False,
                imgsz=640,
                epochs=200,
                batch=8,
                close_mosaic=10,
                device='0',
                optimizer='SGD', # using SGD
                project='runs/train',
                name='exp',
                )

2.4 训练结果可视化结果

代码语言:javascript
复制
YOLO11 summary (fused): 283 layers, 2,618,426 parameters, 0 gradients, 7.1 GFLOPs
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 29/29 [00:21<00:00,  1.33it/s]
                   all        914       3227      0.645      0.449      0.501      0.351
                 Apple        188        557      0.653      0.418      0.495      0.357
                Banana        167        390      0.672      0.467      0.526      0.329
                 Grape        199        809      0.595      0.378      0.401      0.274
                Orange        197       1100      0.651      0.361      0.434      0.282
             Pineapple         77        154        0.7      0.471       0.53      0.371
            Watermelon        107        217      0.596      0.599      0.622      0.491

预测结果:

3. 水果检测系统设计

3.1 PySide6介绍

受益于人工智能的崛起,Python语言几乎以压倒性优势在众多编程语言中异军突起,成为AI时代的首选语言。在很多情况下,我们想要以图形化方式将我们的人工智能算法打包提供给用户使用,这时候选择以python为主的GUI框架就非常合适了。

PySide是Qt公司的产品,PyQt是第三方公司的产品,二者用法基本相同,不过在使用协议上却有很大差别。PySide可以在LGPL协议下使用,PyQt则在GPL协议下使用。

PySide目前常见的有两个版本:PySide2和PySide6。PySide2由C++版的Qt5开发而来.,而PySide6对应的则是C++版的Qt6。从PySide6开始,PySide的命名也会与Qt的大版本号保持一致,不会再出现类似PySide2对应Qt5这种容易混淆的情况。

3.2 安装PySide6

代码语言:javascript
复制
pip install --upgrade pip
pip install pyside6 -i https://mirror.baidu.com/pypi/simple

基于PySide6开发GUI程序包含下面三个基本步骤:

  • 设计GUI,图形化拖拽或手撸;
  • 响应UI的操作(如点击按钮、输入数据、服务器更新),使用信号与Slot连接界面和业务;
  • 打包发布;

3.3 水果检测系统设计

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.YOLO11介绍
  • 1.1 C3k2
  • 1.2 C2PSA介绍
  • 1.3 11 Detect介绍
  • 2.水果检测系统
  • 2.1 水果数据集介绍
  • 2.2 配置Fruits-detection.yaml
  • 2.3 如何训练
  • 2.4 训练结果可视化结果
  • 3. 水果检测系统设计
  • 3.1 PySide6介绍
  • 3.2 安装PySide6
  • 3.3 水果检测系统设计
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档