基于深度学习的多种类花卉识别系统(YOLOv12完整代码+论文示例)

143 阅读38分钟

摘要:本文面向多种类花卉识别任务,基于深度学习构建了一套集训练评估与桌面推理于一体的应用系统。后台采用 YOLOv5–YOLOv12 系列模型与 PyTorch 框架,前端基于 PySide6/Qt 实现统一桌面界面,支持图片、视频及本地摄像头输入,并在主视图中实时叠加检测结果与基础过程反馈。系统提供模型选择与 .pt 权重热切换,可在同一花卉数据集上对不同模型的 mAP、F1 等指标及训练曲线进行对比分析。检测结果支持导出为带框图像、检测视频及 CSV 表格,并通过本地 SQLite 完成记录管理;用户侧提供登录、注册与可跳过登录三种入口,以兼顾使用便捷性与数据留存。实验表明,轻量化 YOLO 模型在本花卉场景中能够在保证精度的同时满足桌面端实时推理需求。文末提供工程与数据集下载链接。


功能效果展示视频:基于深度学习的多种类花卉识别系统(YOLOv12完整代码+论文示例)

➷点击跳转至文末所有涉及的完整代码文件下载页☇


1. 系统功能与效果

(1) 系统启动后先进入登录界面,支持登录、注册和跳过登录三种方式,进入主界面后按照“选择数据源—设置阈值—开始检测—查看记录”的流程完成一次完整识别操作。

image.png

(2) 在图片、视频和摄像头三种模式下,界面会实时叠加花卉检测框、类别名称和置信度,并通过进度条和帧计数提示当前处理进度和推理用时。

image.png

(3) 右侧模型区域支持从本地一键切换不同 YOLO 版本及对应 .pt 权重,切换后自动刷新类别列表和颜色配置,方便对比不同模型在同一批花卉图像上的检测效果。

image.png

(4) 每次检测完成后,用户可以将结果一键导出为 CSV 表、带框 PNG 截图或 AVI 视频,系统按时间戳自动命名并写入本地 SQLite,便于后续按时间或任务快速检索与复查。

image.png


2. 绪论

2.1 研究背景及意义

在智能制造和智慧农业加速发展的背景下,目标检测与识别已经从实验室算法走向工业生产线、农机装备、人机协同平台以及边缘终端设备,对实时性、稳定性与可解释可视化提出了更高要求1。(arXiv)传统的两阶段检测器如 Faster R-CNN 在精度上具有优势,但在大规模在线检测、质量分选等场景中难以满足毫秒级推理的需求,推动了 SSD、RetinaNet、EfficientDet 等单阶段检测器在工程场景中的广泛应用[2–4]。(Computer Science)与此同时,Transformer 与端到端检测范式的引入,使得 DETR 与 RT-DETR 等方法在去除 NMS、简化后处理的同时,在 COCO 等通用数据集上实现了与传统框架相当甚至更优的精度与速度,为高吞吐实时检测提供了新的技术路径[5,6]。(ECVA)

在农业与园艺领域,基于视觉的在线监测已经从单一果实计数、病虫害识别,逐步扩展到花期物候监测、开花密度评估与精细化管理,对“花”的检测与识别提出了更加细粒度和时序连续的要求16。(MDPI)花卉作为植物生长发育的重要表型特征,其种类识别与空间分布不仅关系到园艺生产与观光体验,也直接影响授粉调控、产量预估与品种选育等关键决策15。(Nature)在温室与自然田间环境下,花朵往往呈现出尺度小、密集分布、遮挡严重以及光照剧烈变化等特点,且不同花卉之间颜色与纹理高度相似,使得多种类花卉识别任务兼具细粒度分类与小目标检测的双重难度[11,12]。(PyTorch Documentation)因此,构建一个既具备高精度检测能力,又能在桌面端完成实时可视化与交互操作的多种类花卉识别系统,具有重要的工程应用价值和研究意义。

image.png

与通用物体识别相比,多种类花卉识别任务在数据分布与部署形态上具有明显差异。一方面,Oxford Flowers102、Kaggle Flowers Recognition 等数据集表明,花卉图像普遍存在类内差异大、类间相似度高以及光照与背景变动剧烈等问题,给深度模型的特征判别带来了挑战[11,12]。(PyTorch Documentation)另一方面,园艺管理与教学科普等场景对系统的易用性和可解释性有较高诉求,需要模型输出能够通过友好的图形界面以检测框、类别名称、置信度和统计报表等形式呈现,并支持结果的追踪与溯源[18](CSDN Blog)。本研究以 PyTorch 为深度学习训练与推理框架,以 PySide6/Qt 为桌面端开发工具,围绕多种类花卉的实时检测与识别需求,设计并实现了支持图片、视频和摄像头输入、可进行多模型对比与结果管理的一体化系统。


2.2 国内外研究现状

国内外研究现状方面,针对花卉图像分类与识别的工作起步较早,主要集中在深度卷积网络在公开数据集上的性能评估及移动端部署。Chen 以台湾地区校园常见 50 种花卉为对象,基于 AlexNet 与 GoogLeNet 构建多组对比实验,Top-1 准确率最高达到 78.8%,并进一步将训练好的模型部署到 iOS 端,实现面向公众的花朵识别应用13。(Airiti Library)吴媛媛等则在公开花卉数据集上比较了 ResNeXt-50 与 EfficientNet 等网络结构,实验结果表明两种网络在花卉分类任务中具有更强的鲁棒性和泛化能力,为后续基于特征迁移的花卉检测工作提供了有价值的基线14。(Scribd)Oxford Flowers102 数据集与 Kaggle Flowers Recognition 数据集广泛用于花卉识别算法的性能验证,其分别包含 102 个类别与 5 个常见花卉类别,图像在尺度、姿态和光照上变化显著,且类别间视觉相似度较高,是评估多种类花卉识别能力的重要基准[11,12]。(PyTorch Documentation)这些研究为基于深度学习的花卉分类奠定了基础,但大多聚焦于单帧图像分类,对实时检测、多源输入和系统集成关注较少。

近年来,面向农业花朵与花期物候的目标检测研究逐渐增多,体现了从“识别是什么花”向“在复杂场景中实时找到花并计数”的范式转变。Singh 等在温室环境下构建番茄花与花蕾数据集,基于 YOLOv5 与 YOLOv8 进行迁移学习对比,结果显示 YOLOv8 在 (640×640640\times640) 图像下可达到 92.6% 的 mAP,并在 0.7 ms 内完成单帧推理,显著满足机器人授粉场景下的实时性需求15。(Nature)Wang 等提出的 SWMD-YOLO 针对温室番茄复杂背景与遮挡问题,在保持模型轻量化的前提下通过多尺度检测与结构改造,在自建数据集上取得 93.47% 的 mAP@0.5 和 75.68 FPS 的检测速度,实现了精度与速度的良好平衡16。(MDPI)此外,针对辣椒花密集、小目标和多遮挡的特点,Wang 等在 YOLOv8 框架下引入注意力模块与改进的 Inner-IoU 损失,显著提升了边界框回归收敛速度和复杂场景下的检测稳健性,为其他作物花朵检测提供了可借鉴的技术路线[17]。(BioMed Central)这些工作表明,针对特定作物花朵特性的网络结构与损失函数设计,是提升检测性能的关键。

image.png

为了便于比较不同算法在花卉及相关农作物场景中的适配性,结合已有研究成果可以构建如表所示的方法对比。表中从检测范式、关键技术、性能指标到适用场景逐项梳理了代表性方法的特点与局限性。

方法范式/家族数据集/场景关键改进技术优势与局限性关键性能指标(示例)适用场景或对应难点
YOLOv8m 花朵检测15YOLOv5–v8 单阶段温室番茄花与花蕾数据集迁移学习、anchor-free 解耦头、多尺度特征精度高、速度快,但模型体量相对较大,嵌入式端部署需裁剪mAP 92.6%,YOLOv5 为 91.2%,0.7 ms/帧花与花蕾同时检测,复杂光照与遮挡
SWMD-YOLO16改进 YOLOv8 轻量化温室番茄目标检测轻量化骨干、多尺度检测头、结构剪枝在精度基本持平的前提下显著降低参数量和 FLOPs,适合边缘部署mAP@0.5 93.47%,75.68 FPS,参数减少 18.9%资源受限设备上的番茄检测与计数
YOLOv8 辣椒花检测[17]改进 YOLOv8辣椒花温室场景CBAM 注意力、改进 Inner-IoU 损失小目标与被遮挡花朵检测效果显著提升,但训练与调参较为复杂文中报告在自建数据集上 mAP 与召回率明显提升辣椒花密集、遮挡严重的自动计数与监测
PP-YOLOE-L7Anchor-free 单阶段COCO 通用数据集TAL 动态标注分配、ET-head、CSPRepResStage工业级精度与速度,TensorRT FP16 推理可达 149.2 FPS,部署成熟COCO mAP 51.4,V100 上 78.1 FPS通用场景实时检测、云端或边缘服务器部署
YOLOX-L8Anchor-free YOLOCOCO 通用数据集解耦头、SimOTA 标注分配在相近参数量下 AP 高于 YOLOv5-L,且提供多种部署版本COCO AP 50.0,V100 上 68.9 FPS实时性要求高的通用检测任务
RT-DETR-R506Transformer 检测器COCO 通用数据集混合编码器、端到端匈牙利匹配、可调解码层数省去 NMS,速度和精度同时优于多种 YOLO 系列,但训练过程更复杂AP 53.1,T4 GPU 上 108 FPS需要简化后处理、支持端到端优化的实时检测

表中可以看出,面向农作物花朵场景的改进 YOLO 模型普遍通过多尺度特征融合、注意力机制与损失函数设计来缓解小目标密集、遮挡严重和背景复杂等问题,而工业级通用检测器则在部署接口和推理加速上更加成熟[6,7]。(CVF Open Access)对于本文关注的多种类花卉识别任务,兼顾精度、速度与易部署性,使得选择 YOLO 系列轻量化模型并结合工程化加速策略成为更现实的选择。

从算法范式与策略来看,当前检测方法大致可以分为 Anchor-based 与 Anchor-free、两阶段与单阶段、CNN 为主与 Transformer 为主等几类。以 Faster R-CNN 为代表的两阶段检测器依赖候选区域生成网络(RPN),在复杂背景下具有较好的定位精度,但推理延迟相对较高,更适合对实时性要求不那么严格的离线分析任务1。(arXiv)SSD 与 RetinaNet 等单阶段检测器通过多尺度默认框与 Focal Loss 缓解正负样本不平衡问题,在保持较高精度的同时显著提升检测速度,为实时检测提供了基础[2,3]。(Computer Science)EfficientDet 在此基础上引入加权双向特征金字塔网络(BiFPN)与复合缩放策略,在不同资源约束下实现了精度与效率的统一,为在边缘设备上部署中大型检测器提供了范式4。(CVF Open Access)FCOS 与 CenterNet 则摒弃了预定义锚框,采用逐像素或关键点回归策略,在减少超参数依赖的同时简化了检测框架,在应对小目标与长尾分布方面展现出良好潜力[6,7]。(CVF Open Access)

在 YOLO 家族与其它主流算法的演进趋势中,Anchor-free、解耦头与动态标注分配已经成为提升实时检测性能的重要方向。YOLOX 在 YOLO 体系中率先采用 anchor-free 解耦头,并结合 SimOTA 标注分配策略,在 COCO 数据集上实现了优于同体量 YOLOv5 的检测性能,并提供了丰富的 ONNX、TensorRT、NCNN 等部署实现8。(arXiv)PP-YOLOE 进一步在工业部署场景下对骨干网络、检测头与标签分配进行了系统优化,在 TensorRT FP16 推理模式下可达到 149.2 FPS,为工程系统提供了兼具高精度和高吞吐的参考实现7。(arXiv)YOLOv5 和 YOLOv8 则通过模块化实现、自动混合精度训练和统一的导出接口,极大降低了自定义数据集训练和跨框架部署的门槛,使得研究者能够在农作物花卉等细分任务上快速构建端到端检测系统[9,10]。(Ultralytics Docs)与此同时,以 DETR 和 RT-DETR 为代表的 Transformer 检测器通过集合预测与端到端损失,消除了 NMS 等手工后处理步骤,在实时性能不断优化的前提下,为后续引入多模态与时序信息提供了统一框架[5,6]。(ECVA)


2.3 要解决的问题及其方案

从系统层面的研究来看,深度学习检测模型与可视化界面的深度融合逐渐成为趋势。国内已经出现若干基于 YOLOv5/YOLOv8 并结合 PyQt、PySide6 或 Web 前端框架构建的花卉检测与识别系统,实现了对图片、视频和摄像头的在线检测,并支持简单的指标展示与结果保存[18]。(CSDN Blog)然而,这些系统多数仅支持单一或少数模型版本,缺乏统一的多模型对比评测与可追溯导出机制,在本地数据管理、安全存储以及与训练端的反馈闭环方面也相对薄弱。综合已有算法与工程实践可以发现,围绕多种类花卉识别任务,仍然缺乏一个同时支持 YOLOv5–YOLOv12 多模型选择、统一指标评估、可视化对比以及完善数据与账户管理的桌面端一体化解决方案。

在此背景下,本文拟解决的关键问题可以概括为以下几个方面。(1)检测与识别精度与实时性的平衡问题:多种类花卉在自然与温室场景下存在显著的尺度差异、类间相似与遮挡问题,要求模型既具备较高 mAP 与 F1,又能在桌面端以接近实时的帧率运行。(2)模型环境适应性与泛化能力问题:花卉拍摄条件在光照、背景与成像设备上差异较大,需要通过数据增强与迁移学习提升模型在不同场景与设备上的稳健性。(3)桌面端交互界面的直观性与功能完整性问题:传统命令行推理对非专业用户不友好,需要提供统一的图形界面支持图片、视频与摄像头输入,并可视化检测结果、统计信息与模型差异。(4)数据处理效率与存储安全性问题:多源连续检测会产生大量图像、视频与结构化结果数据,需要设计高效的缓存、命名与本地数据库管理机制,以保障数据可追溯性与账户安全。

针对上述问题,本文提出的解决方案与系统设计思路如下。 (1)在检测算法上,以 YOLOv12n/s 为核心基线,结合 YOLOv5–YOLOv11 等多版本模型开展迁移学习与性能对比,通过统一的训练与评测流程系统性分析不同模型在花卉场景下的精度–速度权衡,并根据场景选择合适的部署模型。 (2)在工程实现上,采用 PyTorch 完成模型训练与推理,利用 PySide6/Qt 搭建桌面端界面,实现图片、视频与摄像头多源输入、检测参数在线调节以及模型权重(.pt)热切换功能,使深度学习检测算法与桌面端交互形成紧密耦合的端到端系统。 (3)在数据管理上,通过统一的预处理与缓存策略(如固定尺寸缩放、序列帧缓存与时间戳命名),配合 SQLite 本地数据库记录检测结果与账户信息,并支持 CSV、PNG 与 AVI 等多种导出形式,提高数据处理效率的同时保障数据与会话安全。 (4)在部署与优化上,引入模型剪枝、量化与 ONNX/TensorRT 加速等轻量化手段,对核心模型进行压缩与推理优化,并通过系统级压力测试与可靠性测试验证在长时间运行与多源切换场景下的稳定性。


2.4 博文贡献与组织结构

基于以上分析,本文的主要工作与贡献可以归纳为以下几点。 (1)综合文献综述:系统梳理了花卉及相关农作物花朵检测的研究现状,比较了 Anchor-based 与 Anchor-free、CNN 与 Transformer 等不同检测范式及其在小目标、密集遮挡场景下的适配性。 (2)深度学习模型的选择与优化:围绕 YOLOv5–YOLOv12 家族,结合多种数据增强与迁移学习策略,构建适用于多种类花卉识别任务的轻量化检测模型,并对不同版本在精度、速度与资源占用方面进行了系统对比。 (3)美观友好的桌面端设计:基于 PySide6/Qt 设计实现“左侧数据源与阈值控制–中央检测可视化–右侧目标详情–底部记录与导出”的桌面端界面,支持多源输入、参数动态调节与检测记录跨页共享,为非算法背景用户提供易用的花卉识别工具。 (4)算法效果对比分析:统一在同一花卉数据集与评测指标下,对 YOLOv5–YOLOv12 共 8 种模型进行 mAP、F1、PR 曲线与推理延迟对比,并结合模型结构分析性能差异与适用场景。 (5)完整的数据集和代码资源:在尊重数据版权与隐私的前提下,整理并发布用于多种类花卉识别的标注数据集与完整工程代码,涵盖训练脚本、推理服务与桌面端应用,方便读者复现与二次开发。 后续章节将依次介绍系统功能与效果、数据集处理流程、模型原理与设计、实验结果与分析以及系统实现细节,并在结论部分总结方法的适用性与未来扩展方向。


3. 数据集处理

本研究所使用的数据集共计 10513 幅图像,其中包含 9131 幅训练集、919 幅验证集以及 463 幅测试集,划分比例约为 86.8% / 8.7% / 4.4%,整体满足目标检测任务对数据规模与验证稳定性的需求。所有样例均来自多场景采集,包括自然田间、人工园艺及室外景区等环境,图像分辨率不固定但普遍较高,能够覆盖多种类花卉在光照、姿态、背影、季节与设备差异上的真实分布。标注采用 YOLO 格式,每个实例以 (class, x_center, y_center, width, height) 形式表示,其中心点与尺度均已归一化。根据你提供的统计图(类别直方图、BBox 分布、位置–尺度联合分布热力图等),整个数据集包含超过 15 种以上的花卉类别,诸如 Allium、Borage、Burdock、Calendula、Chicory、Cobristroot、Cosmos、Common Mallow、Common Yarrow、Coneflower、Cow Parsley、Dandelion、Gardenia 等类目,其中 Allium、Cosmos、Chicory 等类别数量较多,而 Gardenia、Cow Parsley 等呈现明显的长尾特征;这类数量不均衡结构与花卉视觉差异高度相关,对于训练阶段的损失收敛与模型泛化造成一定难度。

image.png

从空间分布统计结果来看,目标框中心点在 x–y 平面上呈现明显的“聚集于中部、向四周递减”的分布规律;这说明数据集中花朵往往位于主体区域,背景干扰相对可控,但也显示不同摄像角度之间仍存在随机性,有助于模型学习更加稳定的空间表征。宽高统计显示,大多数花朵目标的尺度集中在 0.05–0.25 区间,也就是说系统面临大量中小目标;部分类别如 Borage、Mallow 出现细长型结构,而 Dandelion、Cosmos 等具有更接近圆形的特征,其几何差异在图像中的表现造成边界框宽高呈斜率较为集中的线性相关趋势。此外,小部分实例的宽高分布出现“接近 1”的长尾峰值,可能来源于特写镜头或画面中局部极端构图,这类样本需要在训练中通过随机缩放与裁剪增强进行适配处理。

image.png

针对上述特性,数据增强策略主要围绕遮挡、尺度变化与光照扰动展开。本研究采用 Mosaic、MixUp、随机仿射变换、HSV 抖动、随机裁切、随机水平翻转与多尺度训练等组合策略,以便在训练阶段有效提升模型对小目标、密集区域及复杂背景的鲁棒性。同时,针对长尾类别,适当引入类别重采样与动态增强,使弱势类目的梯度得到更充分的更新。为确保训练–验证分布一致性,数据划分采用定制随机种子,使各类别在训练、验证、测试三部分中保持相似的比例分布;同时对原始标注进行自动清洗,包括去除空标注文件、去除异常框(宽高为零或超过画幅)、统一编码格式等操作。对于推理阶段的兼容性,所有图像在进入模型前均统一缩放到 640×640,并按训练阶段的归一化方式进行处理,以保证模型在不同输入源(图片、视频、摄像头)中的一致性。


4. 模型原理与设计

本研究默认以 YOLOv12 作为核心检测框架,并在整体叙述中保持与 YOLOv5–YOLOv12 系列的连续性。YOLO 模型以单阶段密集预测为主要范式,通过端到端回归直接输出类别概率与边界框位置,兼具高精度与高速度的工程特点。其基础结构通常包含三个部分:负责特征提取的骨干网络(Backbone)、进行多尺度融合的特征颈部结构(Neck),以及完成分类与回归任务的检测头(Head)。YOLOv12 在前几代模型的基础上进一步强化了解耦检测头与轻量化骨干网络的协同能力,使得模型在保持推理速度的同时获得更高的细节感知与小目标识别能力,尤其适用于本研究中花朵尺度多样、纹理细腻且类间相似度高的场景。在整体设计思路上,模型通过统一的 640×640 输入尺寸、归一化预处理与自动混合精度训练实现了较好的跨设备适配性。

image.png

在结构组件方面,YOLOv12 延续了 CSP(Cross Stage Partial)思想,通过部分残差分支结构降低梯度重复计算,以提升特征表达效率;同时引入更深的注意力融合模块以增强对复杂纹理与密集结构的敏感性。其多尺度特征融合结构常采用 PAN-FPN 或 BiFPN 式拓扑,用以处理花朵目标在不同尺度上的显著差异。对于每个尺度的输出,模型会使用解耦检测头结构,将分类分支与回归分支拆分,以减少梯度冲突并提升收敛速度,常用的预测公式可表达为

b^=σ(tb)s,c^=Softmax(tc),\hat{b} = \sigma(t_b)\cdot s,\quad \hat{c} = \text{Softmax}(t_c),

其中 (t_b) 表示边界框预测张量、(t_c) 表示各类别的预测 logits,(\sigma(\cdot)) 为 Sigmoid 函数,(s) 为尺度校正因子。通过这种方式,网络能够在回归几何关系与判别类别语义时采用不同的特征分布,提升在高度相似花卉类别之间的辨别能力。整体网络结构示意可参考下图:

image.png

在损失函数层面,YOLOv12 采用广泛验证有效的 IoU 族边界框损失,包括 GIoU、CIoU 与 EIoU 等,其中 CIoU 常见表达为

LCIoU=1IoU+ρ2(b,bgt)c2+αv,L_{\mathrm{CIoU}} = 1 - \mathrm{IoU} + \frac{\rho^2(\mathbf{b},\mathbf{b}^{gt})}{c^2} + \alpha v,

其中 (\rho(\cdot)) 为中心点欧氏距离,(c) 为最小外接框对角线,(v) 为宽高比一致性项,(\alpha) 为平衡系数。该损失适合花朵类目标中存在的形状多样性问题,能在复杂姿态、旋转及部分遮挡下保持更稳定的回归收敛。分类损失方面,模型普遍采用 Focal Loss 抑制易分类样本权重,以增强对长尾类别的关注,缓解数据集中 Gardenia、Cow Parsley 等弱势类目样本不足的问题。此外,本系统也支持使用标签平滑策略,以在不同拍摄条件下增强类内紧致性并降低过拟合风险;若结合蒸馏学习(如在 YOLOv12 上引入教师–学生结构),可进一步提升模型对细粒度花卉类别的识别能力。

在训练策略与正则化方面,YOLOv12 延续采用 EMA 参数更新、余弦退火学习率调度、自动混合精度(AMP)训练等机制,以强化模型在长轮次训练中的稳定性与性能上限。模型在推理阶段使用 NMS(非极大值抑制)或 Task-aligned NMS 来进行冗余框的过滤,其效果对本研究的小目标密集场景尤为关键;NMS 阈值的设定直接影响对重叠花朵的分离能力,而 Conf 阈值决定最终可视化框的数量与干净程度。通过系统性实验观察发现,多尺度训练、随机裁切与色彩扰动在花卉类任务中具有显著益处,因为花卉本身具有较强的纹理与色彩依赖性。考虑到本系统需要在桌面端实时运行,训练阶段还对模型进行量化感知训练与轻量化结构裁剪,使推理延迟和显存占用在不牺牲太多精度的前提下更适合桌面应用,进一步提升用户体验和实时性表现。

总体而言,本章所述模型结构与训练策略紧密围绕花卉识别任务的固有难点展开,包括类间相似、尺度差异、背景复杂、遮挡不均与小目标密度大等特性,并结合 YOLOv12 的结构进化与工程友好设计,使其能够在本研究系统中实现稳定、快速与可视化友好的推理表现。


5. 实验结果与分析

在具体实验过程中,本研究首先使用统一的数据增强策略(包括 Mosaic、MixUp、随机仿射变换、随机 HSV 抖动、随机水平翻转等),基于 PyTorch 与 Ultralytics YOLO 训练框架分别对 YOLOv5–YOLOv12 模型进行了完整训练与评估。所有模型采用统一的初始学习率(0.01)与优化策略(SGD+EMA),batch_size 设置为 32,训练 epoch 总数为 150,训练过程中每隔 10 个 epoch 进行一次模型验证,以观测性能指标变化趋势与收敛情况。推理阶段在 NVIDIA GeForce RTX 3070 Laptop GPU 上完成,分别记录了模型的前处理、推理和后处理各阶段的耗时,指标计算采用标准的 COCO 评估方法,分别获得 Precision、Recall、F1、mAP50、mAP50–95 等性能数据,并进行了类别级别的细粒度分析(如混淆矩阵与 F1–Confidence 曲线)。通过这些严格统一的实验设置,本研究确保了不同 YOLO 模型版本在性能上的可比性和公平性,并为桌面端系统部署提供了客观的选型依据。

image.png

从 s 系列模型的整体表现来看(YOLOv5su、YOLOv6s、YOLOv7、YOLOv8s、YOLOv9s、YOLOv10s、YOLOv11s、YOLOv12s),精度、速度与复杂度的对比如表 5-1 所示。可以看到,mAP50 最终集中在 0.72–0.75 区间,其中 YOLOv12s 以 mAP50=0.7544、mAP50–95=0.5416 获得最高检测精度,YOLOv9s 紧随其后(mAP50=0.7529,mAP50–95=0.5415),YOLOv6s 和 YOLOv11s 也保持在 0.746–0.750 的较高水平。F1 指标上,YOLOv6s 略优(0.7463),YOLOv9s 与 YOLOv12s 约为 0.744 与 0.737,Precision 与 Recall 比较均衡。速度方面,YOLOv8s 的推理时间最短(InfTime≈7.66 ms),YOLOv5su 与 YOLOv6s 略高(约 8.5 ms),YOLOv11s 为 9.74 ms;而 YOLOv9s、YOLOv10s、YOLOv12s 和 YOLOv7 分别达到 18.66、11.38、13.23 与 23.62 ms,说明新一代模型在结构更复杂、精度略有提升的同时带来了明显的延时开销。配合 mAP50/F1 双柱状图(s 系列)可以直观看到:在“精度优先”的离线分析场景下 YOLOv12s 性价比最高,而在“实时优先”的场景中 YOLOv8s 更具优势。

image.png

表 5-1 s 系列模型在花卉数据集上的性能对比

模型Params(M)FLOPs(G)PreTime(ms)InfTime(ms)PostTime(ms)PrecisionRecallF1 ScoremAP50mAP50–95
YOLOv5su9.124.02.288.451.510.81320.67990.74060.74150.5189
YOLOv6s17.244.22.228.591.450.80180.69790.74630.74990.5362
YOLOv736.9104.72.4423.623.460.76400.69540.72810.72470.5082
YOLOv8s11.228.62.317.661.420.78220.69850.73800.73870.5179
YOLOv9s7.226.72.1218.661.390.78290.70810.74360.75290.5415
YOLOv10s7.221.62.2111.380.600.75800.69350.72430.73640.5334
YOLOv11s9.421.52.379.741.360.76600.70780.73580.74620.5352
YOLOv12s9.321.42.0913.231.420.76590.70970.73680.75440.5416

在 n 级别超轻量模型中(YOLOv5nu、YOLOv6n、YOLOv8n、YOLOv9t、YOLOv10n、YOLOv11n、YOLOv12n),参数量均控制在 2–4.3M、FLOPs 小于 11.1G,如表 5-2 所示,整体非常适合资源受限的桌面或边缘端部署。从精度角度看,YOLOv5nu 在 mAP50 上略有优势(0.7563),YOLOv6n、YOLOv9t、YOLOv10n 与 YOLOv12n 则都稳定在 0.75 左右;mAP50–95 最高的是 YOLOv12n(0.5376),YOLOv11n 与 YOLOv6n 紧随其后(约 0.536)。F1 指标上,YOLOv6n 以 0.7489 居首,其次为 YOLOv9t 与 YOLOv12n(均在 0.735 左右),显示出在召回和精度两端的较好平衡。速度上,YOLOv6n 与 YOLOv8n 推理延迟最小(InfTime≈6.78 与 6.83 ms),YOLOv9t、YOLOv10n、YOLOv12n 延迟略高(11–16 ms);结合 n 系列的 mAP50/F1 双柱状图可以看出,新一代模型在保持轻量的前提下整体把 mAP50–95 拉升了一个台阶。综合来看,当系统更关注“轻量 + 实时”时,YOLOv6n 是最具性价比的选择;若希望在类似算力下获得更好的高 IoU 表现,则 YOLOv12n 更具优势。

image.png

表 5-2 n 系列模型在花卉数据集上的性能对比

模型Params(M)FLOPs(G)PreTime(ms)InfTime(ms)PostTime(ms)PrecisionRecallF1 ScoremAP50mAP50–95
YOLOv5nu2.67.71.907.731.310.76610.70440.73390.75630.5233
YOLOv6n4.311.12.176.781.390.82150.68810.74890.75160.5359
YOLOv8n3.28.71.956.831.390.73670.71990.72820.74210.5212
YOLOv9t2.07.71.8716.511.290.75080.72210.73620.75100.5330
YOLOv10n2.36.72.0811.240.630.75690.71050.73290.75170.5357
YOLOv11n2.66.52.119.441.420.69190.73530.71290.74910.5365
YOLOv12n2.66.51.9112.471.370.78380.69260.73540.75060.5376

在类别级评估方面,F1–Confidence 曲线给出了各花卉类别在不同置信度阈值下的权衡情况。可以看到,Calendula、Chicory、Coneflower、Dandelion 等类别的 F1 峰值接近 0.9,说明其形态特征突出且样本量充足;而 Allium、Borage、Burdock、Chive blossoms 等类别的 F1 曲线相对较低,多数峰值在 0.6–0.75 区间,Common mallow 与 Cow parsley 则整体偏低,反映出长尾类别在当前数据规模与增强策略下仍存在明显识别困难。所有类别综合曲线的最优工作点大约出现在置信度 0.377 左右,此时平均 F1 约为 0.73,本系统在 Qt 界面中也将该值作为默认 Conf 阈值,以在假阳性与假阴性之间取得较好平衡。

混淆矩阵进一步揭示了模型在具体类别上的误判模式。对角线上的高值表明 Calendula、Chicory、Coneflower、Dandelion 等类别的识别精度较高,其中 Calendula 和 Gardenia 接近完美分类;而 Allium 与 Chive blossoms、Common yarrow 与 Cow parsley 之间出现明显互相混淆,这与它们在颜色、花序结构以及背景环境上的自然相似性高度一致。背景误检主要集中在 Allium 与 Chive blossoms 上,说明模型在面对高纹理、局部高亮的叶片或枝条时仍可能将其解释为花序。针对这些问题,一方面可以在后续数据采集中增加易混类别的样本数量并丰富遮挡、视角和光照变化;另一方面可以在模型端引入更细粒度的注意力机制或特征对齐模块,进一步削弱同色系花朵之间的混淆。

image.png

综上所述,多组实验表明 YOLO 系列在多种类花卉识别任务中整体表现稳健,新一代模型在 mAP50–95 与 F1 上相较前代有稳定但有限的提升;不同规模模型之间的选型应结合系统部署条件综合考虑。在本桌面端系统中,博主将 YOLOv12s 作为默认高精度模型,以 YOLOv12n 和 YOLOv6n 作为轻量化备选,配合 Qt 界面的模型热切换功能,使用户能够根据应用场景在“更高精度”与“更高帧率”之间灵活选择。


6. 系统设计与实现

6.1 系统设计思路

本系统采用分层架构进行设计,自上而下依次为表现与交互层(Qt 桌面客户端)、业务与会话管理层、推理与任务调度层以及数据持久化层。表现与交互层负责承载 PySide6/Qt 桌面界面,实现“左侧源与阈值控制、中央图像显示、右侧目标详情、底部记录与进度条”的布局;用户可以在左侧自由切换图片、视频与摄像头三类输入源,并通过 Conf/IoU 滑块、目标类别过滤及高亮选择等控件完成检测过程的细粒度调节。业务与会话管理层负责将用户操作转换为规范化的任务请求,包括源互斥控制、参数同步、会话配置加载以及导出任务编排等,确保多源输入与模型推理之间的状态一致性与可追踪性。

在推理与任务调度层,系统通过媒体接入模块完成图像、视频帧和摄像头流的解码与缓存,对输入统一进行缩放、归一化等预处理后送入 YOLO 推理引擎,再由后处理模块执行 NMS、阈值过滤与坐标还原,生成 {class, bbox, score} 结构化结果并计算计数与简单统计量。为了在 Qt 客户端中实现近乎实时的反馈,推理调度采用事件驱动方式对帧流进行管理,当用户调整 Conf/IoU 或切换模型权重时,只需更新阈值和模型指针即可完成新一轮推理而无需重启流程,进度条与用时显示则依据帧处理数量与时间戳实时刷新。数据持久化层则统一管理检测记录、导出文件与账户信息,采用 SQLite 作为本地数据库,将每次检测的关键字段(类别、置信度、位置、用时、模型版本等)与导出文件的时间戳索引进行关联,在保证本地隐私安全的前提下,为后续的检索、统计和回溯提供基础支撑。

image.png

通过上述分层设计,系统实现了“多源输入—预处理—YOLO 推理—后处理与统计—前端可视交互”的完整闭环:用户在前端进行的操作被转换为清晰的业务指令,经由推理层统一处理后返回结构化结果,再由数据层完成记录与导出。权重热切换、主题样式与配置的本地化存储、异常恢复与日志记录等功能均在这一框架下实现,使系统在支持 YOLOv5–YOLOv12 多模型对比的同时,仍保持良好的可扩展性与工程可维护性。

图 6-1 系统流程图(Mermaid)

image.png

图注:系统自初始化开始,从登录与配置加载进入多源输入选择,对媒体流完成预处理和 YOLO 推理后,将结果以叠加框和统计信息的形式反馈至界面,并通过 Conf/IoU 滑块与目标高亮形成交互闭环,同时支持 CSV/PNG/AVI 的一键导出与时间戳命名。

图 6-2 系统设计框图(Mermaid)

image.png

图注:系统设计框图展示了 Qt 客户端、业务控制与会话管理、推理与任务调度以及数据持久化四个层次之间的边界与数据流向,其中模型权重仓库向推理引擎提供可热切换的 YOLOv5–YOLOv12 权重,检测结果与导出归档通过本地 SQLite 实现统一管理与追踪。


6.2 登录与账户管理

图 6-3 登录与账户管理流程图(Mermaid)

image.png

图注:流程图描述了用户从应用启动到登录、注册或跳过登录进入主界面的全过程,并在会话中支持资料修改与账号切换,所有账户与配置均存储在本地 SQLite 数据库中,以便在下次启动时自动恢复。

在登录与账户管理的实现上,系统在应用启动后优先展示登录界面,用户可以选择使用已有账号登录、注册新账号或以一次性访客模式跳过登录。登录与注册操作由会话管理模块统一调度,注册时将用户名、加密口令及默认偏好写入本地 SQLite 数据库,登录时通过口令校验完成身份确认;若用户选择跳过登录,则仅在当前会话内部维护配置而不写入持久化存储。当身份验证成功后,系统会从数据库中加载与账号绑定的个性化信息,包括界面主题、默认模型版本、常用输入源以及最近检测记录,并在进入主界面时完成阈值与布局的同步。运行过程中,用户可以在设置区域修改口令、语言与主题等偏好,修改结果即时写回数据库,同时确保与检测记录及导出结果的账号字段保持一致,以便后续进行审计和溯源;注销或切换账号操作则会清空内存中的会话状态并重新回到登录流程,使账户管理与主检测流程在逻辑上紧密耦合、在安全性上相互独立。


7. 下载链接

    若您想获得博文中涉及的实现完整全部资源文件(包括测试图片、视频,py, UI文件,训练数据集、训练代码、界面代码等),这里见可参考博客与视频,已将所有涉及的文件同时打包到里面,点击即可运行,完整文件截图如下:

image.png

完整资源中包含数据集及训练代码,环境配置与界面中文字、图片、logo等的修改方法请见视频,项目完整文件请见Gitee的简介处给出:➷➷➷

Gitee项目下载:gitee.com/matengo/Flo… 完整项目下载及文档: newtopmat.feishu.cn/wiki/SH2ywX…

功能效果展示视频:基于深度学习的多种类花卉识别系统 环境配置博客教程:(1)Pycharm软件安装教程;(2)Anaconda软件安装教程;(3)Python环境配置教程; 或者环境配置视频教程:Pycharm软件安装视频教程;(2)Anaconda软件安装视频教程;(3)Python环境配置视频教程; 数据集标注教程(如需自行标注数据):数据标注合集


8. 总结与展望

本文基于多种 YOLO 模型构建了一个多种类花卉识别系统,完成了数据集处理、模型训练与对比、以及 PySide6/Qt 桌面端集成。实验表明,YOLOv12 系列在本数据集上 mAP 和 F1 略优于前几代模型,结合多源输入、阈值调节、模型热切换和一键导出等功能,系统能够较稳定地完成花卉的实时检测与可视化,也具备迁移到其他目标检测场景(如机械零件缺陷检测)的潜力。后续工作将主要从三方面展开:一是继续做模型轻量化与推理加速,例如剪枝、量化和蒸馏;二是将当前桌面端逐步 Docker 化、服务化,支持更灵活的部署和权限管理;三是加入主动学习和数据漂移监测,把用户在系统中的反馈自动回流到训练数据中,使模型能长期迭代、持续提升。


参考文献(GB/T 7714)

1 Ren S, He K, Girshick R, et al. Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks[J]. IEEE Trans Pattern Anal Mach Intell, 2017.

2 Liu W, Anguelov D, Erhan D, et al. SSD: Single Shot MultiBox Detector[C]//Computer Vision – ECCV 2016. Cham: Springer, 2016.

3 Lin T Y, Goyal P, Girshick R, et al. Focal Loss for Dense Object Detection[C]//ICCV. Venice: IEEE, 2017.

4 Tan M, Pang R, Le Q V. EfficientDet: Scalable and Efficient Object Detection[C]//CVPR. Seattle: IEEE, 2020.

5 Carion N, Massa F, Synnaeve G, et al. End-to-End Object Detection with Transformers[C]//ECCV. Glasgow: Springer, 2020.

6 Zhao Y, Lv W, Xu S, et al. DETRs Beat YOLOs on Real-time Object Detection[C]//CVPR. Seattle: IEEE, 2024.

7 Xu S, Wang X, Lv W, et al. PP-YOLOE: An evolved version of YOLO[EB/OL]. 2022. arxiv.org/abs/2203.16….

8 Ge Z, Liu S, Wang F, et al. YOLOX: Exceeding YOLO Series in 2021[EB/OL]. 2021. arxiv.org/abs/2107.08….

9 Ultralytics. YOLOv5 Documentation[EB/OL]. 2023. docs.ultralytics.com/models/yolo….

10 Reis D, Bartocci E, nickovic D, et al. Real-Time Flying Object Detection with YOLOv8[EB/OL]. 2023. arxiv.org/abs/2305.09….

11 Torchvision. Flowers102 — Oxford 102 Flower Dataset[DB/OL]. 2024. pytorch.org/vision/stab….

12 Alxmamaev. Flowers Recognition Dataset[DB/OL]. Kaggle, 2017. www.kaggle.com/datasets/al….

13 陳昱寰. 使用深度學習於花朵辨識之研究與應用[D]. 南投: 國立暨南國際大學, 2019.

14 吴媛媛. 基于深度学习的花卉识别分类研究[D]. 2022.

15 Singh R, Khan A, Seneviratne L, et al. Deep learning approach for detecting tomato flowers and buds in greenhouses on 3P2R gantry robot[J]. Scientific Reports, 2024, 14:20552.

16 Wang Q, Hua Y, Lou Q, et al. SWMD-YOLO: A Lightweight Model for Tomato Detection in Greenhouse Environments[J]. Agronomy, 2025, 15(7):1593.

[17] Wang Z Y, et al. An improved chilli pepper flower detection approach based on YOLOv8[J]. Plant Methods, 2025.

[18] 基于深度学习的花卉检测与识别系统(YOLOv5/YOLOv8)[EB/OL]. 博客园、CSDN、知乎专栏, 2023–2024.