YOLOv5至YOLOv12升级:景区垃圾识别系统的设计与实现(完整代码+界面+数据集项目)
摘要:景区环境中垃圾目标呈现类别多样、尺度变化大、遮挡与背景干扰强、光照与视角不稳定等特点,导致传统基于手工特征的识别方法在复杂场景下泛化能力受限。本文面向景区保洁与精细化管理需求,构建一套基于深度学习的景区垃圾识别系统:以YOLO系列目标检测网络为核心,实现对塑料瓶、纸屑、易拉罐、烟头、一次性餐盒/食品残渣、口罩等典型垃圾的实时定位与分类;结合数据清洗与标注规范、尺度增强与颜色扰动等策略,提升模型对小目标与遮挡目标的鲁棒性;系统端提供图片/视频/摄像头多源输入、置信度与IoU阈值可调、检测结果可视化与统计汇总,并支持结果导出以服务巡检复核与管理决策。实验表明,该系统能够在保证较高检测精度的同时满足现场实时性要求,为景区垃圾智能巡检与环境治理提供可落地的技术支撑。
文章目录
1.前言综述
旅游景区的开放空间具有“人流密集、场景复杂、垃圾类型多样且体积偏小”的典型特征,使得垃圾的快速发现与精确定位成为景区精细化治理与智慧环卫的重要技术环节,而实时目标检测范式(如 YOLO)因其端到端的高吞吐推理能力,为景区垃圾识别系统提供了可落地的工程基础。1 但在真实景区中,垃圾目标往往与落叶、石块、地面纹理等背景强耦合,同时还伴随遮挡、逆光、反光与尺度剧烈变化,这些因素会显著放大检测器对数据分布偏移与小目标特征不足的敏感性,从而使“实验室精度”难以直接迁移到“现场可用”的稳定效果。2 因此,面向景区的垃圾识别不仅需要检测算法本身的精度与速度权衡,还需要将数据集构建、类别体系设计与部署形态纳入同一问题框架,形成可持续迭代的技术闭环。3
从研究现状看,国内外关于垃圾识别的视觉研究已从早期的分类与粗粒度识别逐步转向“检测—定位—统计”的端侧智能应用,其中基于单阶段检测器的方案因部署简单、实时性强而更契合景区巡检与移动终端场景。4 在可回收物与通用垃圾检测任务中,学术界常通过引入感受野增强与注意力等结构改动提升对小目标与弱纹理目标的判别能力,并通过重新聚类锚框与针对性增强策略缓解类别不均衡带来的偏置。5 更贴近景区场景的工作则往往围绕“轻量化骨干网络、复杂背景鲁棒性、遮挡与尺度变化适应”等问题展开,通过改造网络结构与特征融合路径提升精检能力,体现出对工程部署约束的直接回应。6 与此同时,面向清洁机器人、无人设备或边缘节点的垃圾检测研究也在持续推进,强调在有限算力与能耗预算下保持可接受的精度,从而推动算法向“可运行、可维护”的方向演化。7
在检测算法谱系上,YOLO 系列通过持续的结构与训练策略演进,不断逼近实时性与精度的更优边界,其中包括以更强的特征提取与数据增强策略实现的综合性能提升。8 以可训练的“免费增益”思想改进的实时检测器进一步强化了训练阶段的有效监督与推理阶段的效率,使得单阶段模型在复杂场景中的可用性显著增强。9 近期也出现了针对端到端部署的改进路线,通过减少后处理依赖与冗余计算来降低延迟并提升整体吞吐,从而更贴近现场视频流的实时处理需求。10 除 YOLO 路线外,强调效率的多尺度融合检测器在资源受限场景中仍具备竞争力,其对特征金字塔融合权重的显式建模也为垃圾小目标检测提供了重要参考。11
然而,景区垃圾识别的关键难点并不只在“检测器选型”,更在于如何把“复杂背景下的有效特征”稳定地保留下来,因此注意力模块常被用于强化关键通道与空间区域的响应,以降低背景噪声对检测头的干扰。12 同时,轻量化骨干(例如通过廉价算子生成冗余特征图的设计)能够在算力受限时保持较好的表征能力,为景区端侧部署提供更现实的模型规模选择。13 另一条值得关注的方向是将检测视为集合预测的端到端框架,它在全局建模与去手工后处理方面具有简洁性,但对训练数据规模、收敛策略与领域迁移往往更敏感。14 面向更强表征能力的层级 Transformer 骨干也在密集预测任务上表现突出,为“多尺度、遮挡与背景复杂”的景区垃圾检测提供了更强的特征编码手段,但其部署成本与工程复杂度仍需结合实际应用权衡。15
综上,老思在本文系统中将以 YOLO 系列为核心检测框架,面向景区视频流与图像巡检场景完成垃圾目标的检测、分类与统计,并在保证实时性的前提下针对小目标与复杂背景引入结构与训练层面的改进思路。13 同时,本文将构建并标注面向景区语境的专用数据集,完成规范化预处理与训练/验证/测试划分,以支撑模型公平对比与可复现实验。3 最后,本文将实现可交互的端侧识别系统界面与工程化推理流程,支持多源输入、结果可视化与数据留存,从而将算法性能转化为可用的景区治理工具。7
主要功能演示:
(1)登录注册演示:系统启动后首先进入登录界面,用户可选择“登录”或切换至“注册”。注册流程中会对用户名唯一性与密码强度进行基础校验,提交后将用户信息写入 SQLite,并为每个用户创建独立的配置与历史记录空间;登录流程则通过数据库查询完成账号校验,成功后自动加载该用户的主题偏好、最近一次模型选择与检测结果索引,保证从入口到主流程的状态连续性。为提升可用性,界面提供“显示/隐藏密码”“记住账号”“头像初始化”等交互,并对错误输入给出可追溯的提示信息,避免误操作造成的流程中断。

(2)页面布局演示:主界面采用典型的“导航区—显示区—信息区”布局:左侧为功能导航与输入源控制(图片/视频/摄像头),中部为检测可视化画布(原图与叠加检测框显示),右侧为结果信息与统计面板(类别列表、置信度、数量统计、运行状态与日志)。底部状态栏统一呈现帧率、推理耗时、当前阈值与输入分辨率,便于在不打断操作的前提下观察系统负载与输出稳定性;同时通过 Qt 信号槽将推理线程与 UI 渲染解耦,保证视频流播放与检测叠加的交互顺滑。

(3)模型选择演示:系统在“模型管理/模型选择”区域提供权重切换入口,支持导入本地权重文件并在界面内完成加载与热切换。为适配机场航拍小目标的速度与精度需求,默认提供轻量模型作为实时推理基线,同时允许用户在 YOLO 系列不同版本与不同规模间切换,以对比 mAP、召回率与端侧时延的差异;模型加载后会在状态栏显示权重名称、输入尺寸、设备(CPU/GPU)与推理后端信息,并在切换时自动进行一次“空跑”初始化,减少首帧抖动对体验的影响。

(4)主题修改演示:系统提供主题与外观设置面板,支持亮色/暗色主题切换、主色调与控件圆角等细节样式调整,并可选择不同图标集与背景图以适配不同使用环境(如夜间巡检或强光室外)。实现上通过 QSS 样式表对按钮、表格、标签与进度控件进行统一渲染,并将主题配置持久化到 SQLite(或本地配置文件),确保下次登录自动恢复;同时对关键对比度(检测框文字、统计表格行列、告警提示)进行约束,避免因换肤导致信息可读性下降。

2.数据集介绍
本项目面向景区开放场景下的垃圾目标检测任务构建数据集,样本既包含道路、草地、台阶、绿化带等典型景区背景,也覆盖了垃圾堆放点、垃圾桶周边、散落垃圾等多形态目标。根据你提供的统计信息,数据集共 4,893 张图像,按 3,988/505/400 划分为训练集、验证集与测试集,划分时尽量保持不同场景、光照与拍摄视角在三部分中的覆盖一致,以降低由单一场景偏置带来的评估误差。标注采用 YOLO 系列通用的 TXT 归一化格式(中心点坐标与宽高均归一化到 [ 0 , 1 ] [0,1] [0,1]),便于直接接入 Ultralytics 训练与推理链路;训练批次样例与标签叠加效果如“train_batch0 / train_batch1”所示,能够直观看到该任务中“小目标占比高、遮挡频繁、同帧多实例密集”的典型难点。
在类别体系上,数据集中同时存在多来源标签命名与同义词现象(例如 garbage/trash/rubbish 指向同一语义类),因此系统侧通过你给出的 Chinese_name 映射字典完成标签名称的中文统一与同义归并,保证界面展示、统计汇总与导出结果的可读性与一致性;语义上主要覆盖“垃圾/垃圾袋”为核心的大类,并扩展到纸板、纸、塑料、水瓶、玻璃、金属罐头等常见可回收/混合垃圾,以及按颜色细分的袋类(黑/蓝/紫/红/白/黄)、伸缩袋与非伸缩袋等细粒度类别,同时保留人物等干扰类以抑制误检。标签统计与框分布可视化(“labels / labels_correlogram”)显示该数据集存在明显的长尾分布:少数高频类贡献了主要实例数,而大量低频类样本稀疏;同时目标框面积分布集中在小宽高区域,说明模型训练需要更关注小目标表征与多尺度特征融合,且在评估时应结合类别维度指标(如每类召回率)避免总体 mAP 掩盖低频类别的性能退化。验证集的预测可视化(“val_batch0_pred”)也反映出密集堆叠与背景纹理相似时更容易出现漏检与框重叠,这为后续的增强策略、阈值设定与后处理分析提供了直接依据。
📊 数据集规格说明 (Dataset Specification)
| 维度 | 参数项 | 详细数据 |
|---|---|---|
| 基础信息 | 标注软件 | LabelImg(统一导出 YOLO 格式;多来源样本按同一规范复核) |
| 标注格式 | YOLO TXT (Normalized) | |
| 数量统计 | 训练集 (Train) | 3,988 张 (81.5%) |
| 验证集 (Val) | 505 张 (10.3%) | |
| 测试集 (Test) | 400 张 (8.2%) | |
| 总计 (Total) | 4,893 张 | |
| 类别清单 | 类别体系 | 共 33 类(Class ID: 0–32);系统侧通过 Chinese_name 进行语义归并与中文展示,核心覆盖:垃圾/垃圾袋,以及 纸板、纸、塑料、塑料袋、水瓶、玻璃、罐头、其他垃圾,并包含袋类细分(黑/蓝/紫/红/白/黄、伸缩/非伸缩)与干扰类(如人/宠物/烟雾等) |
| 图像规格 | 输入尺寸 | 640 * 640(训练阶段按 YOLO 常规流程缩放/Letterbox 对齐) |
| 数据来源 | 景区实地拍摄 + 网络公开图像(人工清洗与统一标注规范) |
3. 模型设计与实现
景区场景下的垃圾识别本质上是一个多类别目标检测问题:模型既要在复杂背景(路面纹理、植被、阴影、人群、车流)中定位目标,又要区分外观相近的细粒度类别(例如不同颜色垃圾袋、塑料包装、纸板、瓶罐等),同时还要满足“实时性”,以便在摄像头巡检、移动端执法取证或保洁巡检中做到边采集边提示。基于这一约束,老思在本项目中选择以 YOLOv12 作为默认检测器:它在保持 YOLO 系列实时推理范式的前提下,将注意力机制以更高效的方式引入主干特征抽取与聚合过程,使模型在遮挡、小目标与背景干扰较强的场景中更容易获得稳定的上下文表征。(arXiv)
从基线选择角度看,传统两阶段检测器(如 Faster R-CNN 系列)在精度上通常更稳,但推理链路较长,端侧部署成本高;轻量级单阶段检测器更符合系统的工程目标。若仅讨论骨干网络,ResNet 的梯度传播性质与语义表达能力较强,适合追求上限精度;MobileNet(深度可分离卷积)与 EfficientNet(复合缩放)在算力受限时更具性价比,适合边缘侧部署。但本项目最终采用的 YOLOv12 并非简单“换骨干”的工程拼装,而是围绕注意力在实时检测中的效率瓶颈进行结构性改造:其核心思想是通过区域化的注意力计算降低 O ( n 2 ) O(n^2) O(n2) 的代价,并在特征聚合模块中引入更易优化的残差路径,从而兼顾收敛稳定性与吞吐性能。(arXiv)
具体到网络结构,本项目的实现沿用 Ultralytics 体系下典型的 Backbone–Neck–Head 三段式设计:输入图像首先经主干提取多尺度特征(常用 P 3 / P 4 / P 5 P3/P4/P5 P3/P4/P5 等金字塔层级),随后在颈部通过上采样、拼接与特征融合形成兼具语义与细节的多尺度表示,最后由检测头在各尺度上输出分类与回归结果。YOLOv12 的注意力改造主要体现在主干与聚合单元中:其提出的 Area Attention 将特征图按水平或垂直方向划分为 L L L 个区域,对每个区域分别执行注意力计算,从而把标准自注意力近似的计算量从 O ( n 2 d ) O(n^2d) O(n2d) 降到 O ! ( n 2 d L ) O!\left(\frac{n^2d}{L}\right) O!(Ln2d)(其中 n = H ! × ! W n=H!\times!W n=H!×!W, d d d 为通道维度)。在形式上,注意力仍可写为
A t t n ( Q , K , V ) = s o f t m a x ! ( Q K ⊤ d ) V , \mathrm{Attn}(Q,K,V)=\mathrm{softmax}!\left(\frac{QK^\top}{\sqrt{d}}\right)V, Attn(Q,K,V)=softmax!(dQK⊤)V,
但通过区域化 reshape/分块使得 Q K ⊤ QK^\top QK⊤ 的计算发生在更小的 token 子空间内,从而缓解显存访存与二次复杂度带来的速度压力。与此同时,YOLOv12 在特征聚合上采用更强调可优化性的 R-ELAN 思路,引入带缩放系数的残差连接(可抽象为 y = x + α ⋅ f ( x ) y=x+\alpha\cdot f(x) y=x+α⋅f(x)),以改善深层或大模型在注意力堆叠时的梯度阻塞与训练不稳定问题。(Ultralytics Docs)
在任务建模与损失函数层面,本项目遵循当前 YOLO 系列的端到端训练范式:模型在每个候选位置输出边界框参数 b ^ = ( x ^ , y ^ , w ^ , h ^ ) \hat{b}=(\hat{x},\hat{y},\hat{w},\hat{h}) b^=(x^,y^,w^,h^)、目标置信度 o ^ \hat{o} o^ 以及 C C C 个类别概率 p ^ ∈ [ 0 , 1 ] C \hat{p}\in[0,1]^C p^∈[0,1]C(通常采用 sigmoid 的多标签形式以适配密集检测)。综合损失可写为
L = λ box L ∗ box + λ ∗ cls L ∗ cls + λ ∗ obj L ∗ obj , \mathcal{L}=\lambda_{\text{box}}\mathcal{L}*{\text{box}}+\lambda*{\text{cls}}\mathcal{L}*{\text{cls}}+\lambda*{\text{obj}}\mathcal{L}*{\text{obj}}, L=λboxL∗box+λ∗clsL∗cls+λ∗objL∗obj,
其中 L ∗ box \mathcal{L}*{\text{box}} L∗box 常采用 IoU 系列度量(如 CIoU/GIoU)来约束定位的重叠与形状一致性, L ∗ cls \mathcal{L}*{\text{cls}} L∗cls 与 L ∗ obj \mathcal{L}*{\text{obj}} L∗obj 多使用 BCE 形式以稳定密集正负样本学习。对于景区垃圾这一类“小目标比例高、背景负样本极多”的数据分布,分类与置信度分支的稳定性往往决定了误检率上限,而多尺度特征融合与注意力增强则直接影响对遮挡目标、远距离目标的召回能力。(Ultralytics Docs)
网络的整体架构(以 YOLOv12 的 YAML/模块示意为例)如下图所示(本文仅引用示意图,便于读者快速对齐 backbone、neck 与 head 的实现对应关系):
最后给出与系统工程实现直接相关的推理封装方式:本项目在 PySide6 前端触发检测请求后,由后端 Detector 类加载权重并调用 Ultralytics 接口完成推理与可视化绘制,输出检测框、类别与置信度(并将结构化结果写入 SQLite 供检索与统计)。示例代码如下(训练细节与超参将在下一节展开):
from ultralytics import YOLO
# 1) 加载权重(默认 YOLOv12n,可替换为你训练得到的 best.pt)
model = YOLO("yolo12n.pt")
# 2) 单张图片推理
results = model.predict(source="demo.jpg", imgsz=640, conf=0.25)
# 3) 结果可视化(返回带框图像,便于在 PySide6 的 QLabel/QGraphicsView 中显示)
annotated = results[0].plot()
4. 训练策略与模型优化
景区垃圾识别的训练过程往往同时受到两类因素制约:其一是数据侧的“开放场景复杂性”,例如小目标比例高、遮挡与背景纹理相似、长尾类别与标注噪声并存;其二是工程侧的“实时部署约束”,模型不仅要在验证集上取得可解释的精度收益,还要在端侧推理链路中保持稳定帧率。老思在本项目中将训练流程统一在 Ultralytics YOLO 的范式下组织,训练环境采用 Python 3.12 与 PyTorch CUDA 后端,GPU 以 RTX 4090 为主(显存充裕的前提下优先保证 batch 的统计稳定性),并将训练日志、权重与评估结果按实验编号固化,避免反复试验时出现“同配置不同结果”的不可追溯问题。
迁移学习是该任务中性价比最高的收敛加速手段。考虑到垃圾目标的外观存在显著域差异,但其底层纹理、边缘与局部几何仍与通用目标有较强共性,训练阶段默认加载 COCO 预训练权重作为初始化,然后在景区数据集上进行全量微调。对于类别细粒度且样本偏少的情况,实践中常见的策略是“先稳后精”:训练初期适度抬高数据增强强度以扩大有效样本空间,随后在后期逐步降低强增强带来的分布扰动,使模型把容量更多用于学习类别判别边界而非记忆增强噪声。对应到本项目配置中,Mosaic 在训练阶段保持开启以改善小目标召回,但在收敛后段通过 close_mosaic 主动关闭,以缓解 Mosaic 对几何一致性与边界回归带来的偏移,使验证集上的定位精度更稳定。
优化器与学习率策略方面,项目采用较为保守且可复现的设置:学习率在前若干 epoch 通过 warmup 平滑爬升以避免梯度爆炸或损失震荡,随后采用余弦退火式衰减至较低学习率完成细化收敛;同时引入早停机制,当验证集在若干轮内无提升时提前终止训练,减少“过拟合到增强分布”的风险。由于该数据集存在明显长尾,训练中还需要关注类别分支的稳定性:一方面可在训练日志中追踪各类别的召回率与误检模式,必要时通过调整正负样本阈值、置信度门限或增强采样来缓解低频类学习不足;另一方面,在部署侧通过可调 conf/IoU 阈值将“误检—漏检”权衡留给业务场景配置,使系统在不同景区密度与光照条件下具备可控性。为保证推理吞吐,训练与导出阶段默认启用混合精度(AMP)并保留 EMA 权重版本,通常能在不增加推理开销的情况下带来更平滑的收敛曲线与更稳的泛化表现。
下表给出本项目在 4090 环境下的默认训练超参数。它不是唯一最优解,但足以作为“可跑通、可复现、可对比”的基线配置;后续若要进一步榨取精度,建议优先从数据增强强度、类别不平衡处理与输入分辨率三个方向做小步迭代,因为它们对小目标垃圾的召回更敏感。
| 名称 | 作用(简述) | 数值 |
|---|---|---|
| epochs | 最多训练轮数 | 120 |
| patience | 早停耐心(验证无提升则停止) | 50 |
| batch | 每次迭代的总批大小 | 16 |
| imgsz | 网络输入分辨率(方形) | 640 |
| pretrained | 是否加载预训练权重 | true |
| optimizer | 优化器类型(auto 由框架选择) | auto |
| lr0 | 初始学习率 | 0.01 |
| lrf | 最终学习率占比(余弦/多段下降的底值) | 0.01 |
| momentum | 动量/一阶动量系数 | 0.937 |
| weight_decay | 权重衰减(L2 正则) | 0.0005 |
| warmup_epochs | 学习率预热轮数 | 3.0 |
| mosaic | Mosaic 数据增强强度/概率 | 1.0 |
| close_mosaic | 训练后期关闭 Mosaic 的轮数 | 10 |
实现层面,训练入口建议保持最小可控:一条命令固定数据集路径、模型权重与关键超参即可,避免在脚本里堆叠大量“看似有效但不可复现”的技巧。以 Ultralytics CLI 为例,老思通常用如下方式组织实验编号与输出目录(其中 yolo12n.pt 可替换为你训练好的初始权重或其它 YOLO 族模型):
yolo detect train \
model=yolo12n.pt \
data=your_dataset.yaml \
imgsz=640 batch=16 epochs=120 \
patience=50 warmup_epochs=3 \
lr0=0.01 lrf=0.01 momentum=0.937 weight_decay=0.0005 \
mosaic=1.0 close_mosaic=10 \
device=0
模型优化与部署方面,本项目遵循“训练得到最优权重—验证得到稳定阈值—导出得到可部署格式”的顺序。在 UI 系统中,推理端通常优先采用 FP16 加速(在 4090 上收益明显且精度损失可忽略),并按部署平台需要导出 ONNX 或 TensorRT 引擎;对于追求更极致的吞吐,可进一步考虑 INT8 量化,但应以验证集进行校准与回归测试,避免长尾类别在量化误差下发生不可接受的召回坍塌。至此,训练策略与工程优化形成闭环:训练阶段用增强与迁移学习提高“看见垃圾”的能力,部署阶段用阈值与加速手段保证“看得准且跑得快”,从而为后续的多模型对比实验与系统集成打下可复现的基线。
5. 实验与结果分析
本节在同一数据集划分(Train/Val/Test = 3988/505/400)与统一输入尺度( 640 × 640 640\times640 640×640)下,对 YOLO 系列多版本进行横向对比,重点回答两个问题:其一,不同代际模型在景区垃圾这一类“小目标占比高、背景干扰强、长尾类别显著”的任务上,精度上限与稳定性差异如何;其二,在实际系统部署中,推理时延是否与精度收益匹配。为保证公平性,各模型采用一致的数据增强与训练轮次(120 epochs)配置完成收敛后,在同一硬件环境 NVIDIA GeForce RTX 3070 Laptop GPU(8192MiB) 上统计预处理、推理与后处理的平均耗时,并据此估算端侧帧率。
度量指标方面,检测精度使用 Precision、Recall、F1 与 mAP 表征,其中
P = T P T P + F P , R = T P T P + F N , F 1 = 2 P R P + R , P=\frac{TP}{TP+FP},\qquad R=\frac{TP}{TP+FN},\qquad F1=\frac{2PR}{P+R}, P=TP+FPTP,R=TP+FNTP,F1=P+R2PR,
mAP@0.5(下文记为 mAP50)用于衡量 IoU=0.5 阈值下的总体检测能力,mAP@0.5:0.95(下文记为 mAP50-95)更关注定位质量与严格阈值下的泛化能力。运行效率以单帧总耗时 T = T pre + T inf + T post T=T_{\text{pre}}+T_{\text{inf}}+T_{\text{post}} T=Tpre+Tinf+Tpost 与近似帧率 FPS ≈ 1000 / T \text{FPS}\approx 1000/T FPS≈1000/T 表征,便于直接映射到 PySide6 实时预览与摄像头巡检的交互体验。
5.1 对比基线与实验设置
对比模型按“轻量组(n/tiny)”与“中等规模组(s)”两条线组织:轻量组包含 YOLOv5nu、YOLOv6n、YOLOv7-tiny、YOLOv8n、YOLOv9t、YOLOv10n、YOLOv11n、YOLOv12n;中等规模组包含 YOLOv5su、YOLOv6s、YOLOv7、YOLOv8s、YOLOv9s、YOLOv10s、YOLOv11s、YOLOv12s。该划分的意义在于:n 族更贴近边缘侧与高帧率需求,s 族则在可接受的算力开销内追求更高的 mAP 与更稳的召回。
5.2 单模型曲线诊断与阈值选择
以最佳/代表性模型的验证集输出为例,F1-Confidence 曲线如“F1_curve.png”所示,整体 F1 在低阈值区域快速上升,并在较宽的置信度区间维持平台,曲线标注给出了 全类别最优 F1=0.56 对应 conf≈0.203。这意味着在景区垃圾场景中,如果系统更强调“尽量少漏检”并允许人工复核,默认置信度阈值取 0.2 左右更容易得到 Precision 与 Recall 的折中;当阈值继续升高时,Recall 下降速度明显快于 Precision 的收益,F1 因而快速衰减,典型表现为“看得更谨慎,但漏掉更多小目标”。PR 曲线如“PR_curve.png”所示,平均曲线随 Recall 增大呈现单调下降的精度退化趋势,曲线标注的 mAP@0.5≈0.562 与表格统计处于同一量级,说明模型总体达到可用于系统演示与实时巡检的基线精度,但在高召回区间仍存在可观的误检控制空间。
训练过程的损失与指标演化如“results.png”所示:train/box_loss、train/cls_loss、train/dfl_loss 以及对应的验证损失整体呈稳定下降并逐步趋缓,mAP50 在前半程快速提升后进入平台期,而 mAP50-95 持续缓慢上升,反映出后期训练更多是在“细化定位质量”而非“扩大可检出目标集合”。从工程角度看,这也解释了为何在相同 epoch 下,mAP50 的差异往往小于 mAP50-95 的差异:后者更敏感于回归头与特征聚合质量。
5.3 多模型定量对比与结果分析
轻量组(n/tiny)的定量结果如下表所示。整体上,YOLOv12n 取得 最高 mAP50=0.570、最高 mAP50-95=0.454,显示出新一代结构在复杂背景与更严格定位评价下的优势;F1 指标则由 YOLOv10n 达到最高(0.585),其 Recall 亦为该组最高(0.553),更符合“以召回为优先”的巡检策略。效率方面,YOLOv8n 与 YOLOv6n 的总耗时约 10 ms(接近 100 FPS),适合作为极限实时预览模式;YOLOv12n 的精度更优,但总耗时上升到 15.75 ms(约 63.5 FPS),属于“以一定时延换取更高 mAP”的典型权衡。
| Model | Params(M) | FLOPs(G) | Total(ms) | FPS(approx) | Precision | Recall | F1 | mAP50 | mAP50-95 |
|---|---|---|---|---|---|---|---|---|---|
| YOLOv5nu | 2.60 | 7.70 | 10.94 | 91.4 | 0.662 | 0.463 | 0.545 | 0.539 | 0.415 |
| YOLOv6n | 4.30 | 11.10 | 10.34 | 96.7 | 0.757 | 0.433 | 0.551 | 0.513 | 0.406 |
| YOLOv7-tiny | 6.20 | 13.80 | 21.08 | 47.4 | 0.585 | 0.421 | 0.490 | 0.469 | 0.316 |
| YOLOv8n | 3.20 | 8.70 | 10.17 | 98.3 | 0.539 | 0.545 | 0.542 | 0.541 | 0.430 |
| YOLOv9t | 2.00 | 7.70 | 19.67 | 50.8 | 0.543 | 0.478 | 0.508 | 0.533 | 0.433 |
| YOLOv10n | 2.30 | 6.70 | 13.95 | 71.7 | 0.621 | 0.553 | 0.585 | 0.553 | 0.445 |
| YOLOv11n | 2.60 | 6.50 | 12.97 | 77.1 | 0.632 | 0.530 | 0.577 | 0.561 | 0.448 |
| YOLOv12n | 2.60 | 6.50 | 15.75 | 63.5 | 0.651 | 0.523 | 0.580 | 0.570 | 0.454 |
中等规模组(s)的对比结果如下表所示。可以看到,YOLOv11s 在 mAP50 与 mAP50-95 上均为该组最优(0.585/0.473),说明其在“检出能力”与“严格定位质量”上更均衡;YOLOv10s 的 mAP50-95 紧随其后(0.463),并且其 后处理时间显著更低(PostTime=0.6 ms),这与端到端化设计减少传统 NMS 开销的工程直觉一致,因此在需要“较高精度且时延可控”的 UI 实时检测中更具部署吸引力。值得注意的是,YOLOv7 的 F1 虽然最高(0.593),但推理耗时与 FLOPs 显著偏大(约 29.5 ms,34 FPS),更适合离线批处理而非实时巡检;YOLOv8s 则在该组中速度最快(约 87.8 FPS),其 mAP50-95 也保持在较高水平(0.442),属于“速度优先且精度不失衡”的稳健选择。
| Model | Params(M) | FLOPs(G) | Total(ms) | FPS(approx) | Precision | Recall | F1 | mAP50 | mAP50-95 |
|---|---|---|---|---|---|---|---|---|---|
| YOLOv5su | 9.10 | 24.00 | 12.24 | 81.7 | 0.636 | 0.521 | 0.573 | 0.559 | 0.431 |
| YOLOv6s | 17.20 | 44.20 | 12.26 | 81.6 | 0.700 | 0.456 | 0.552 | 0.536 | 0.421 |
| YOLOv7 | 36.90 | 104.70 | 29.52 | 33.9 | 0.647 | 0.548 | 0.593 | 0.546 | 0.402 |
| YOLOv8s | 11.20 | 28.60 | 11.39 | 87.8 | 0.642 | 0.531 | 0.581 | 0.552 | 0.442 |
| YOLOv9s | 7.20 | 26.70 | 22.17 | 45.1 | 0.541 | 0.560 | 0.550 | 0.547 | 0.441 |
| YOLOv10s | 7.20 | 21.60 | 14.19 | 70.5 | 0.569 | 0.587 | 0.578 | 0.580 | 0.463 |
| YOLOv11s | 9.40 | 21.50 | 13.47 | 74.2 | 0.544 | 0.564 | 0.554 | 0.585 | 0.473 |
| YOLOv12s | 9.30 | 21.40 | 16.74 | 59.7 | 0.590 | 0.586 | 0.588 | 0.562 | 0.460 |

结合可视化曲线可以进一步理解上述结论。mAP50 随 epoch 的变化曲线显示,新代模型(尤其 v10/v11/v12)往往在中后期仍能保持缓慢增益,而较早期结构更容易在平台期震荡;
平均 PR 曲线对比中,领先模型的曲线通常在中高 Recall 区间仍能维持更高 Precision,这与其更好的特征聚合与分类置信度校准能力一致。
最后,归一化混淆矩阵(“confusion_matrix_normalized.png”)揭示了该任务最主要的误差来源集中在“语义近邻类”之间:袋类颜色细分之间更容易互相误判,垃圾与垃圾袋在堆叠、遮挡或仅露出局部纹理时也会产生混淆;同时,纸/纸板、塑料/塑料袋、水瓶/玻璃等材质相近类别在远距离小目标条件下区分难度增大。基于这一现象,系统侧保留可调 conf/IoU 阈值以及类别统计与复核入口,可以将“误检—漏检”的取舍交由具体景区业务场景决定,从而在部署端获得更稳定的可用性。
综合精度与时延,若系统目标是“实时预览优先”,轻量组可优先选择 YOLOv8n(速度优势明显)或 YOLOv10n(更偏召回与 F1);若目标是“尽量提高 mAP 与定位质量”,轻量组推荐 YOLOv12n,中等规模组推荐 YOLOv11s 或 YOLOv10s,其中 YOLOv10s 还具备较低后处理时延的工程优势。上述结论也与条形图对比结果(“AreaGarbage_n_type_comparison.png”“AreaGarbage_s_type_comparison.png”)保持一致:高代模型在 mAP50-95 上的优势更稳定,而不同模型在 F1 上的差异往往更多来自置信度阈值与召回策略的取舍。
6.系统设计与实现
6.1 系统设计思路
本系统面向“景区垃圾检测的实时巡检与可视化复核”需求,将算法推理与交互界面解耦为清晰的三层结构:界面层 Ui_MainWindow 负责控件布局、状态提示与结果展示;控制层 MainWindow 负责业务编排与状态机管理,通过 Qt 信号槽把“输入选择、阈值调节、模型切换、导出写库”等交互转译为可复现的流程;处理层 Detector 负责模型加载、推理与后处理,将输出统一封装为结构化结果(类别、置信度、框坐标、帧率与统计信息),并以信号的方式回传给控制层完成界面刷新。这样的分层使得 UI 逻辑不直接依赖深度学习框架细节,后续替换 YOLO 族权重或增加推理后端(ONNX/TensorRT)时,能够把改动稳定地限制在处理层内部。
在交互链路上,系统以“输入源多态化”与“参数可控化”为核心:输入可来自图片、图片文件夹、视频文件与摄像头视频流;推理过程中支持动态调整 conf 与 IoU 阈值以控制误检与漏检的权衡,并允许在界面内切换默认 YOLOv12n 或导入其它 YOLO 权重完成对比检测。为避免推理阻塞界面渲染,推理与解码通常在独立线程中执行,界面仅通过信号槽接收渲染帧与检测结果,从而保证按钮响应、播放控制与表格滚动的流畅性。
数据持久化由 SQLite 承担,贯穿“用户空间”和“检测空间”两类对象:用户空间保存账号信息、头像路径、主题偏好与默认模型等配置;检测空间保存每次检测的输入源信息、时间戳、阈值、检测结果明细与统计汇总,并通过 user_id 做隔离,实现每个用户独立的历史记录与导出空间。由此,系统从“启动—推理—展示”扩展为“检测—记录—检索—复核”的闭环,既满足演示,也便于实际巡检场景下的责任追溯与管理分析。
图 系统流程图
图注:系统从初始化到多源输入,完成预处理、推理与界面联动,并通过交互形成闭环。
6.2 登录与账户管理 — 流程图

登录与账户管理模块并非“附加功能”,而是把系统从一次性演示升级为可持续使用的关键支撑:用户在登录校验通过后,程序以 user_id 为锚点加载其主题、默认模型、阈值偏好与历史检测记录,使主界面的推理流程能够直接继承个性化配置;注册流程将新用户信息写入 SQLite,并在后续检测中为其创建独立的结果空间,避免多用户混用导致的数据污染;当用户在主界面修改头像、密码或偏好设置时,变更会即时持久化并在下次登录自动恢复,从而降低重复配置成本。更重要的是,检测结果的保存、导出与检索天然依赖用户身份这一“稳定索引”,因此账户体系与主检测流程在数据层紧密衔接,最终形成“登录进入工作台—检测产生记录—记录可追溯可复核—退出/切换账号”的连续交互体验。
7. 下载链接
若您想获得博文中涉及的实现完整全部资源文件(包括测试图片、视频,py, UI文件,训练数据集、训练代码、界面代码等),这里见可参考博客与视频,已将所有涉及的文件同时打包到里面,点击即可运行,完整文件截图如下:

完整资源中包含数据集及训练代码,环境配置与界面中文字、图片、logo等的修改方法请见视频,项目完整文件请见项目介绍及功能演示视频处给出:➷➷➷
详细介绍文档博客:YOLOv5至YOLOv12升级:景区垃圾识别系统的设计与实现(完整代码+界面+数据集项目)
环境配置博客教程:(1)Pycharm软件安装教程;(2)Anaconda软件安装教程;(3)Python环境配置教程;
或者环境配置视频教程:(1)Pycharm软件安装教程;(2)Anaconda软件安装教程;(3)Python环境依赖配置教程
数据集标注教程(如需自行标注数据):数据标注合集
8.参考文献
1 REDMON J, DIVVALA S, GIRSHICK R, et al. You Only Look Once: Unified, Real-Time Object Detection[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR). 2016: 779-788. (CV Foundation)
2 LIN T Y, MAIRE M, BELONGIE S, et al. Microsoft COCO: Common Objects in Context[C]//Computer Vision – ECCV 2014. Cham: Springer, 2014: 740-755. (Springer)
3 PROENÇA P F, SIMÕES P. TACO: Trash Annotations in Context for Litter Detection[EB/OL]. arXiv:2003.06975, 2020. (arXiv)
4 张伟, 刘娜, 江洋, 李清都. 基于YOLO神经网络的垃圾检测与分类[J]. 电子科技, 2022(10):45-50. DOI:10.16180/j.cnki.issn1007-7820.2022.10.008. (Xidian Journal)
5 雷建云, 邹金林, 夏梦, 梁钧. 基于改进YOLOv5s的可回收垃圾检测方法[J]. 纺织大学学报, 2023, 36(3). (Xuebao)
6 ZHU Z, SUN Y, DING Y. Research on High-Precision Detection Scheme for Scenic Area Garbage Based on Deep Learning[C]//2024 4th International Conference on Artificial Intelligence, Robotics, and Communication (ICAIRC). IEEE, 2024: 71-75. DOI:10.1109/ICAIRC64177.2024.10900133. (CoLab)
7 ZAILAN N A, MOHD KHAIRUDDIN A S, HASIKIN K, et al. An Automatic Garbage Detection Using Optimized YOLO Model[J]. Signal, Image and Video Processing, 2024, 18:315-323. (Springer)
8 BOCHKOVSKIY A, WANG C Y, LIAO H Y M. YOLOv4: Optimal Speed and Accuracy of Object Detection[EB/OL]. arXiv:2004.10934, 2020. (arXiv)
9 WANG C Y, BOCHKOVSKIY A, LIAO H Y M. YOLOv7: Trainable Bag-of-Freebies Sets New State-of-the-Art for Real-Time Object Detectors[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR). 2023. (CVF Open Access)
10 WANG A, CHEN H, LIU L, et al. YOLOv10: Real-Time End-to-End Object Detection[EB/OL]. arXiv:2405.14458, 2024. (arXiv)
11 TAN M, PANG R, LE Q V. EfficientDet: Scalable and Efficient Object Detection[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR). 2020. (CVF Open Access)
12 WOO S, PARK J, LEE J Y, et al. CBAM: Convolutional Block Attention Module[C]//Proceedings of the European Conference on Computer Vision (ECCV). 2018: 3-19. (ecva.net)
13 HAN K, WANG Y, QI T, et al. GhostNet: More Features from Cheap Operations[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR). 2020. (CVF Open Access)
14 CARION N, MASSA F, SYNNAEVE G, et al. End-to-End Object Detection with Transformers[C]//Computer Vision – ECCV 2020. Cham: Springer, 2020: 213-229. (Springer)
15 LIU Z, LIN Y, CAO Y, et al. Swin Transformer: Hierarchical Vision Transformer Using Shifted Windows[C]//Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV). 2021. (CVF Open Access)
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)