基于YOLO11的草莓成熟度检测系统(Python源码+数据集+Pyside6界面)
💡💡💡本文摘要:基于YOLO11的草莓成熟度检测系统,阐述了整个数据制作和训练可视化过程

博主简介
AI小怪兽 | 计算机视觉布道者 | 视觉检测领域创新者
深耕计算机视觉与深度学习领域,专注于目标检测前沿技术的探索与突破。长期致力于YOLO系列算法的结构性创新、性能极限优化与工业级落地实践,旨在打通从学术研究到产业应用的最后一公里。
🚀 核心专长与技术创新
-
YOLO算法结构性创新:于CSDN平台原创发布《YOLOv13魔术师》、《YOLOv12魔术师》等全系列深度专栏。系统性提出并开源了多项原创自研模块,在模型轻量化设计、多维度注意力机制融合、特征金字塔重构等关键方向完成了一系列突破性实践,为行业提供了具备高参考价值的技术路径与完整解决方案。
-
技术生态建设与知识传播:独立运营 “计算机视觉大作战” 公众号(粉丝1.6万),成功构建高质量的技术交流社群。致力于将复杂算法转化为通俗易懂的解读与可复现的工程代码,显著降低了计算机视觉的技术入门门槛。
🏆 行业影响力与商业实践
-
荣获腾讯云年度影响力作者与创作之星奖项,内容质量与专业性获行业权威平台认证。
-
全网累计拥有 7万+ 垂直领域技术受众,专栏文章总阅读量突破百万,在目标检测领域形成了广泛的学术与工业影响力。
-
具备丰富的企业级项目交付经验,曾为工业视觉检测、智慧城市安防等多个关键领域提供定制化的算法模型与解决方案,驱动业务智能化升级。
💡 未来方向与使命
秉持 “让每一行代码都有温度” 的技术理念,未来将持续聚焦于实时检测、语义分割及工业缺陷检测的商业化闭环等核心方向。愿与业界同仁协同创新,共同推动技术边界,以坚实的技术能力赋能实体经济与行业变革。
原创自研系列, 25年计算机视觉顶会创新点
应用系列篇:
23、24年最火系列,加入24年改进点内涵100+优化改进篇,涨点小能手,助力科研,好评率极高
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 草莓成熟度检测数据集介绍
构建公开草莓成熟度数据集:首个包含566张图像、1,734个标注对象的多条件数据集,采集自土耳其两个温室不同光照环境,涵盖完全成熟、半熟、未熟三类。

本研究中使用的数据集由作者使用三星NX相机和手机相机创建,以反映不同的成像条件。图像采集自土耳其开塞利两个不同的温室。选择不同的温室确保了背景、密度、光照和栽培类型等因素能够在数据集中得到体现。

在数据采集过程中,图像是在一天中不同时间、不同的自然光照条件下拍摄的。考虑了直射阳光、部分遮阴和温室内漫射光等不同场景。
创建的数据集共包含566张图像。数据集分为两个子集:训练集和测试集。训练集有465张图像,测试集有101张图像。子集的分布信息如表2所示。

数据集共包含1,734个对象标注。图像根据三个不同的成熟度类别——完全成熟、半熟和未熟进行标注。各类别的图像分布详见表3。总共有520个完全成熟、247个半熟和967个未熟的草莓标注。

所有标注均使用边界框方法手动执行,并仔细检查了标注准确性。数据集中的示例图像如图2所示。此外,为提高研究的可复现性并为文献做出贡献,所创建的数据集已公开提供。
标签可视化分析

2.2 配置Strawberry Ripeness.yaml
ps:建议填写绝对路径
path: D:/YOLO11/data/Strawberry Ripeness # dataset root dir
train: images/ # train images (relative to 'path')
val: images/ # val images (relative to 'path')
# Classes
names:
0: Fullripe
1: Semiripe
2: Semiripe
2.3 如何训练
import warnings
warnings.filterwarnings('ignore')
from ultralytics import YOLO
if __name__ == '__main__':
model = YOLO('ultralytics/cfg/models/11/yolo11.yaml')
model.train(data='data/Strawberry Ripeness.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 训练结果可视化结果
YOLO11n summary (fused): 113 layers, 3,056,945 parameters, 0 gradients, 6.3 GFLOPs
Class Images Instances Box(P R mAP50 mAP50-95): 100% ━━━━━━━━━━━━ 18/18 2.9it/s 6.3s
all 566 1733 0.852 0.791 0.859 0.71
Fullripe 346 520 0.847 0.842 0.896 0.767
Semiripe 207 247 0.856 0.781 0.848 0.748
Semiripe 421 966 0.853 0.749 0.832 0.614
预测结果:
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
pip install --upgrade pip
pip install pyside6 -i https://mirror.baidu.com/pypi/simple
基于PySide6开发GUI程序包含下面三个基本步骤:
- 设计GUI,图形化拖拽或手撸;
- 响应UI的操作(如点击按钮、输入数据、服务器更新),使用信号与Slot连接界面和业务;
- 打包发布;
3.3 草莓成熟度检测系统设计
更多推荐



所有评论(0)