YOLOv5至YOLOv12升级:口罩识别系统的设计与实现(完整代码+界面+数据集项目)
摘要:口罩佩戴检测是公共卫生场景与人群密集场所视频智能分析中的典型需求,面向复杂光照、遮挡、姿态变化与小目标等挑战,本文构建了一套基于 YOLOv12 的口罩识别系统,实现对“佩戴口罩/未佩戴口罩/佩戴不规范(露鼻、下拉等)”等状态的实时检测与统计。系统以 YOLOv12 为核心检测器,结合针对性数据增强与训练策略优化,兼顾精度与速度,并在多源输入(图片、视频流、摄像头)下提供稳定推理与可视化呈现。工程实现方面,采用 PySide6 搭建交互式桌面端界面,支持模型权重切换、阈值(Conf/IoU)调节、检测框与置信度展示、类别计数与结果导出;同时可扩展接入数据库实现记录留存与检索,便于部署到校园/园区/交通枢纽等实际应用环境。本文给出了从数据集构建、模型训练到系统落地的完整实现思路,可为轻量化目标检测在安防与合规监测任务中的应用提供参考。
文章目录
功能效果展示视频:YOLOv5至YOLOv12升级:口罩识别系统的设计与实现(完整代码+界面+数据集项目)
1. 前言综述
在公共空间与生产作业场景中,基于视频流的合规行为自动监管已逐渐从“可选功能”转向“基础能力”,其中口罩佩戴识别属于典型的细粒度目标检测任务:目标尺寸常小、遮挡频繁、头部姿态变化大,且“未佩戴—规范佩戴—不规范佩戴(露鼻/下拉/仅遮口)”之间的视觉差异往往集中在局部区域,这使得检测器既要具备高分辨率细节建模能力,又要能在边缘设备或普通GPU上保持低延迟。YOLO 将检测问题重写为端到端的单阶段回归并奠定了实时检测范式,为这类任务提供了天然的工程可用性与部署优势。(CV Foundation)
在早期研究中,大量口罩检测系统采用“人脸检测/跟踪 + 局部分类”的两段式流程,但该流程对人脸框质量高度敏感,且在密集人群、侧脸与遮挡条件下易产生误检与漏检;为提高鲁棒性,近年来更常见的路径是直接将“口罩/人脸/佩戴状态”作为统一检测目标进行端到端学习,并围绕复杂场景(弱光、模糊、遮挡、远距离小目标)设计数据增强与网络改造策略。针对口罩检测方法与数据集的系统性梳理也指出,数据分布偏移与遮挡导致的特征缺失,是制约泛化性能的重要因素。(arXiv) 典型的工程化工作表明,基于 YOLO 系列的小模型在保证实时性的同时,可以在测试集上取得具有实用价值的精度指标,并显著优于更早版本的 YOLO 检测器。(computing.hit.edu.cn) 与此同时,面向真实场景的人脸尺度、姿态与遮挡变化,WIDER FACE 等高难度基准揭示了“检测器需要对极端遮挡与尺度变化保持稳定”的本质要求,这一点在口罩佩戴识别中同样成立。(CVF Open Access)
从国内外研究现状来看,实时目标检测的主线演进大体沿着两条方向推进:一方面是 YOLO 系列在骨干网络、特征融合、标签分配与损失设计上的持续迭代,例如 YOLOX 通过 anchor-free 与解耦头等改进提升了训练与推理的稳定性,为小目标与密集目标提供了更可控的优化入口。(arXiv) 另一方面是 Transformer 检测器试图以集合预测统一检测流程,DETR 通过二分图匹配与端到端训练减少了人为后处理,但其计算开销与收敛效率在实时场景中长期受限。(ECVA) Vision Transformer 在视觉任务中验证了注意力机制对全局建模与可扩展性的优势,也为“用注意力替代部分卷积归纳偏置”提供了理论与经验基础。(ICLR) 为弥合注意力模型的速度短板,FlashAttention 等高效注意力实现从内存访问与算子层面降低了注意力计算的墙钟时间,为实时检测引入更强的注意力模块创造了条件。(arXiv)
在 YOLO 家族内部,近两年的代表性工作进一步强化了“性能—效率”边界的探索:YOLOv9 通过可编程梯度信息与网络结构设计,强调在深层特征传递过程中的信息保真与梯度可靠性,从而提升轻量模型的参数利用率。(arXiv) YOLOv10 则聚焦于端到端部署瓶颈,围绕 NMS-free 训练与整体结构冗余进行系统性优化,以降低端到端延迟并提升效率。(arXiv) 与 YOLO 的“卷积优先”路线相比,RT-DETR 代表了“以端到端 Transformer 替代 NMS 后处理”的实时化尝试,其通过高效混合编码器与查询选择机制在速度与精度之间取得了较强竞争力。(CVF Open Access) 最新的 YOLOv12 更进一步提出注意力中心的实时检测框架,在保持与 CNN 系列相近速度的同时引入更强的注意力建模能力,为复杂遮挡与局部细粒度差异显著的任务提供了新的结构选择。(arXiv) 同期综述性研究也明确将 YOLOv12 视为“将注意力机制实质性引入 YOLO 实时框架”的关键节点,并总结了其相对前代在结构与效率权衡上的变化趋势。(Springer)
聚焦到口罩佩戴识别这一具体任务,现有工作普遍表明“单阶段检测 + 场景化数据增强 + 轻量化部署”是落地效率最高的路线,其中不少研究在工程系统层面已形成从数据采集标注到实时推理提醒的完整闭环。(ScienceDirect) 国内也有面向口罩检测系统化实现的研究,围绕弱光适配、遮挡增强与端侧实时性提出了可复用的模块设计与实验验证思路。(service.jices.cn) 另一类系统工作则强调对“规范佩戴/不规范佩戴”的细粒度划分,并将其集成到实时提醒与监管流程中,体现了从检测指标走向业务闭环的工程价值。(Wanfang Data)
综合而言,口罩识别系统的技术难点主要集中在三方面:其一是密集人群与遮挡导致的局部可见区域不足,使得分类边界高度依赖高质量特征表达与多尺度融合;其二是小目标与远距离人脸带来的分辨率受限问题,要求在输入尺度、特征金字塔与训练策略之间做精细权衡;其三是端到端部署的时延约束与多源输入的不确定性,要求从模型结构到推理管线都保持稳定可控。基于此,老思在本文中以 YOLOv12 为核心检测器,面向口罩佩戴状态识别构建可落地的端侧系统,并对 YOLO 家族不同版本在同一数据集上的效果进行对比分析。本文同时完成了面向口罩佩戴状态的专用数据集构建与标注、训练与评估流程整理,并以 PySide6 设计交互友好的桌面端界面,提供从多源输入到可视化、统计与结果导出的完整工程链路。
主要功能演示:
注册与登录模块承担了系统入口与个性化空间的初始化职责。用户启动程序后首先进入登录界面,若为新用户则通过注册流程写入 SQLite 用户表,注册信息通常包含用户名、密码摘要、头像路径与创建时间等字段;登录时系统对输入凭据进行查询校验,通过后加载该用户的历史检测记录、界面偏好参数(例如默认模型、置信度阈值、主题样式)并切换至主界面。这样的设计使不同用户在同一台设备上使用时能够隔离配置与结果数据,既满足管理需求,也避免在演示中出现“设置相互覆盖”的现象。注册/登录完成后的状态栏一般会提示当前用户与加载配置结果,便于观众确认系统确实进入了个性化工作区。
页面布局围绕“输入—推理—展示—统计/管理”的最短交互链组织。主界面通常采用左侧控制面板与右侧可视化区域的结构:控制区提供输入源切换(图片、视频、摄像头)、开始/暂停/停止、保存与导出等操作,推理参数(Conf、IoU、最大检测数)以滑块或输入框呈现;可视化区展示原始帧与叠加检测框后的结果帧,并在下方或侧边以表格列出目标类别、置信度与坐标信息。为了提升演示的可读性,界面还会提供实时统计卡片或图表区域,汇总“佩戴口罩/未佩戴/不规范佩戴”的计数与占比,同时将关键状态信息(当前输入源、帧率、推理耗时、保存路径)集中在底部状态栏,形成清晰的工作流闭环:用户每一次点击都会在界面上看到即时反馈,从而降低学习成本。
模型选择功能强调系统对不同 YOLO 权重的兼容性与实验对比的可复现性。在演示时可以先展示模型下拉框或权重管理面板:默认加载 YOLOv12n(或 YOLOv12s)作为主力模型,同时允许用户导入其它 YOLO 家族权重文件并一键切换。切换过程中系统会执行权重校验、推理后端初始化与类别映射检查,并在界面提示“加载成功/失败原因”,避免因类别不一致或权重损坏导致的静默错误。完成切换后,用户在同一输入视频上即可对比不同模型的检测框稳定性、误检漏检情况以及推理速度变化;若配合统计区的实时计数与结果导出,就能把“算法差异”直接落到“业务指标可解释”的层面,便于在论文或答辩中说明选择 YOLOv12 的理由以及改进策略带来的收益。
主题修改功能面向长期使用体验与演示观感,体现 PySide6 在界面皮肤与资源管理上的优势。系统一般提供浅色/深色两套主题(或多套配色方案),并支持在运行时即时切换:切换动作通过 Qt 样式表(QSS)动态加载,联动更新按钮、表格、进度条、状态栏与提示框的样式,同时保持控件层级与布局不变,保证交互一致性。更进一步,主题模块往往与“图标/背景/字体大小”配置联动,并将用户选择写入本地配置表或 SQLite,使得下次登录时自动恢复到上次主题与布局偏好。这样在演示中可以直观展示系统不仅“能跑模型”,还具备可持续使用的界面工程能力,尤其适合在不同光照环境(投影/会议室/实验室显示器)下快速调整对比度,提高可读性。
2. 数据集介绍
本文面向口罩佩戴检测任务构建了一个两类目标检测数据集,总计 2,000 张图像,类别定义为“佩戴口罩(mask)”与“未戴口罩(no-mask)”。从你给出的训练/验证可视化样例可以看出,数据覆盖了室内外多种真实拍摄与视频帧抽取场景,包含电视新闻画面、公共场所密集人群、近景与远景人脸等复杂情况;同时存在遮挡、侧脸、尺度差异显著与光照变化等典型难点,这类分布能够较好检验模型在小目标与拥挤场景下的稳定性。训练集中可见 Mosaic 拼接式增强的样例(如训练批次拼图图所示),说明数据管线在训练阶段引入了多图融合以提升密集目标与尺度泛化能力;而从标注统计相关图(如标注分布相关图所示)可观察到目标中心更集中在图像中部区域,且目标框的宽高整体偏小,符合“口罩/人脸区域相对小、局部信息决定类别”的任务特点,因此在训练时通常需要在输入分辨率、特征金字塔与数据增强强度之间做更谨慎的折中。
在标注与格式方面,数据集采用 YOLO 系列通用的 TXT 标注(归一化坐标),类别编码与中文释义关系为:mask → 佩戴口罩、no-mask → 未戴口罩(你提供的 Chinese_name 映射可直接用于界面显示与结果导出)。数据集划分遵循训练/验证/测试相对均衡的原则:训练集用于参数学习,验证集用于超参数选择与早停依据,测试集用于最终泛化评估;这种划分能避免在同一视频源或相似帧上产生评估偏乐观的问题。后续实验中,系统侧会将检测结果与类别中文名绑定,实现界面端的框选显示、置信度呈现与类别统计,从而将数据集标注体系与工程输出保持一致。
📊 数据集规格说明 (Dataset Specification)
| 维度 | 参数项 | 详细数据 |
|---|---|---|
| 基础信息 | 标注软件 | LabelImg |
| 标注格式 | YOLO TXT (Normalized) | |
| 数量统计 | 训练集 (Train) | 1,200 张 (60%) |
| 验证集 (Val) | 400 张 (20%) | |
| 测试集 (Test) | 400 张 (20%) | |
| 总计 (Total) | 2,000 张 | |
| 类别清单 | Class ID: 0 | mask(佩戴口罩) |
| Class ID: 1 | no-mask(未戴口罩) |
|
| 图像规格 | 输入尺寸 | 640 * 640 |
| 数据来源 | 视频帧抽取 / 网络公开素材(人工清洗)/ 多场景混合 |
3. 模型设计与实现
口罩识别属于典型的细粒度实时检测任务:目标尺度常偏小(口罩区域通常只占人脸局部),且在监控视频中伴随运动模糊、侧脸、遮挡与密集人群等因素,模型既要有较强的局部判别能力,也要在推理端保持可用的延迟。基于这一约束,本文以 YOLOv12n 作为默认基线模型:其在 YOLO 系列的实时框架内引入注意力中心的结构设计,通过更高效的注意力实现逼近卷积网络的速度上限,同时提升对复杂背景与遮挡条件下目标的表征能力;在 COCO 基准上,YOLOv12n 被报告在保持低延迟的同时取得更优的精度边界,这也为面向口罩检测的迁移训练提供了可靠的工程起点。(arXiv)
从网络结构上看,YOLOv12 仍沿用“Backbone–Neck–Head”的单阶段检测范式,但其关键变化集中在 backbone 的注意力化与聚合模块的可优化性设计上。其一是 Area Attention(A2):将特征图按水平方向或垂直方向等分为若干区域(常用默认分块数为 4),以极低的重排代价实现局部化的注意力计算,从而在保持较大有效感受野的同时,将标准全局注意力的计算与访存开销显著压缩。其二是 R-ELAN:在 ELAN 的聚合思路上加入块级残差与缩放项,并重新组织特征聚合路径,使注意力骨干在更大规模下训练更加稳定,缓解梯度阻塞与收敛不稳问题。Ultralytics 的 YOLO12 文档也明确将 A2、R-ELAN 与 FlashAttention 兼容的注意力实现视为其核心特征,并指出其通过弱化显式位置编码、调整 MLP 比例等手段进一步平衡速度与精度。(Ultralytics Docs)
在检测头与任务建模层面,本文采用 Ultralytics YOLO 的检测范式进行实现:模型在多尺度特征(如 P3/P4/P5)上同时预测边界框与类别概率,训练时以分类损失与定位损失共同驱动端到端优化。本文将整体损失写为
L = λ box L ∗ IoU + λ ∗ dfl L ∗ DFL + λ ∗ cls L ∗ cls , \mathcal{L}=\lambda_{\text{box}}\mathcal{L}*{\text{IoU}}+\lambda*{\text{dfl}}\mathcal{L}*{\text{DFL}}+\lambda*{\text{cls}}\mathcal{L}*{\text{cls}}, L=λboxL∗IoU+λ∗dflL∗DFL+λ∗clsL∗cls,
其中 L ∗ cls \mathcal{L}*{\text{cls}} L∗cls 通常采用基于 logits 的二元交叉熵(或其变体如 VFL/Focal), L ∗ IoU \mathcal{L}*{\text{IoU}} L∗IoU 以 IoU 家族(如 CIoU 等)刻画预测框与真实框的一致性, L ∗ DFL \mathcal{L}*{\text{DFL}} L∗DFL(Distribution Focal Loss)将边界回归转写为离散分布学习以获得更细粒度的定位梯度,从而提升小目标定位的稳定性。上述损失项在 Ultralytics 框架的 loss.py 中以可复用形式实现,便于在口罩检测的迁移训练中直接复用并通过超参数权重实现任务适配。(Ultralytics Docs)
工程实现上,本文采用“配置文件定义结构 + 预训练权重迁移”的方式落地 YOLOv12:结构侧以 yolov12n.yaml 描述 backbone/neck/head 的层级与通道规模,权重侧加载在 COCO 等数据上预训练的 yolov12n.pt,再在口罩两类数据集上进行微调。推理阶段输出类别 id 后,再通过你给出的映射 Chinese_name = {'mask': '佩戴口罩', 'no-mask': '未戴口罩'} 完成界面中文显示、统计计数与导出字段一致性,确保“训练标签—推理输出—UI呈现”三者语义对齐。(Ultralytics Docs)
上述设计使得本文后续的系统开发可以聚焦于两条主线:其一是在 YOLOv12 的注意力骨干上获得更强的复杂场景泛化能力,其二是借助 Ultralytics 统一的训练/导出接口(ONNX/TensorRT 等)缩短从实验到 PySide6 桌面端部署的实现路径。(Ultralytics Docs)
4. 训练策略与模型优化
口罩佩戴检测在工程上最容易“掉坑”的地方,并不在于模型能否收敛,而在于模型是否能在真实视频域里稳定工作:同一类目标在不同拍摄距离下的像素占比差异极大,密集人群时目标框高度重叠,且口罩类别的判别信息集中于鼻口局部区域,稍有模糊或遮挡就会造成分类置信度波动。基于这一任务属性,老思在训练阶段优先采用“预训练迁移 + 适度增强 + 稳定收敛”的策略,即以 YOLOv12n 的 COCO 预训练权重作为初始化,通过较短 warmup 与余弦退火学习率保证早期训练不过拟合,同时保留足够的多尺度扰动来增强小目标与拥挤场景下的鲁棒性。对于两类(mask / no-mask)任务,迁移学习通常会显著缩短收敛时间,并降低对数据规模的敏感性,尤其在你的数据集中包含大量视频帧与新闻画面时,预训练特征能够更稳健地对抗背景噪声与压缩伪影。
训练环境与流程上,本文以单卡 RTX 4090 作为默认硬件配置,采用 Ultralytics YOLO 训练管线完成数据加载、增强、前向推理与反向传播。训练输入统一缩放到 640 × 640 640\times640 640×640,一方面保证小目标在特征金字塔的高分辨率层(如 P3)上仍有足够像素支持,另一方面兼顾推理端延迟与显存占用。优化器由框架自动选择(通常在 SGD/AdamW 之间按模型与超参自适配),学习率采用 warmup 预热后进入余弦退火或多段下降,以避免注意力骨干在训练早期梯度震荡;同时启用早停机制(patience)以防止验证集指标在后期反复波动而带来无效训练。对于口罩检测这类“类别数少但场景复杂”的任务,早停往往比盲目拉长 epochs 更有效,因为模型在中后期更容易学到场景背景相关的伪相关特征,从而损害跨场景泛化。
数据增强与正则化是本任务优化的关键抓手。你给出的训练批次可视化中已经出现 Mosaic 拼接,这种增强能显著提高模型对密集目标与尺度变化的适应能力,但它也会引入几何拼接边界与局部纹理不连续,若训练末期仍保持较高 Mosaic 强度,可能导致推理时对“真实连续画面”的定位稳定性下降。因此本文采用“前强后弱”的增强调度:训练前期保持较高 Mosaic 概率以扩充分布覆盖,训练后期在 close_mosaic 指定轮数内逐渐关闭 Mosaic,让模型回到更接近真实分布的样本上做精修收敛,从而提升预测框抖动抑制与置信度稳定性。与此同时,常规增强(随机缩放、水平翻转、色彩扰动、轻量模糊)用于覆盖监控画面常见的亮度变化与压缩噪声;当数据集中“新闻字幕条/台标”等强干扰背景较多时,适度的随机裁剪与仿射变换也能降低模型对固定位置纹理的依赖。
面向部署的模型优化主要围绕“稳定输出”和“低延迟”两类目标展开。稳定输出方面,推理阶段的 conf 与 iou 阈值并非越高越好:口罩区域在远景中往往只占极少像素,置信度分布会天然偏低,若阈值设得过高会显著增加漏检;相反,在密集人群场景中,较低 iou 可能导致同一目标产生多框,从而干扰计数与告警。因此本文在 UI 侧将 conf 与 iou 作为可调参数,并建议在测试集与典型视频片段上做网格搜索,选择使 F1 或 mAP@0.5 最稳定的配置作为默认值。低延迟方面,YOLOv12n 本身面向实时场景,工程上更重要的是避免重复加载权重与重复初始化后端:在 PySide6 系统中应将模型加载封装为 Detector 单例,并在切换权重时做显式释放与热身推理;若后续需要进一步压缩时延,可将权重导出为 ONNX 并使用 TensorRT 加速,但这属于“部署后优化”,不影响本文训练阶段的可复现性。
若按本文默认超参进行训练,推荐的一组可复现实验配置如下(可直接写入博客或附录作为训练记录),其核心思想是:保证 640 输入、较充分的训练轮次上限与早停、前期强 Mosaic 后期关闭、以及与 YOLO 系列经验相符的动量与权重衰减范围,从而在 2,000 张规模的数据集上获得较稳定的泛化表现。
| 名称 | 作用(简述) | 数值 |
|---|---|---|
| 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 |
整体而言,本文的训练策略并未追求“极端调参”,而是以任务特性为中心,把优化重点放在可复现的收敛稳定性与跨场景泛化上:通过预训练迁移降低小数据训练不确定性,通过增强调度提升密集小目标鲁棒性,并通过推理阈值与后处理参数的可控化保证系统在真实视频流中输出稳定、计数可信,最终为 PySide6 桌面端的实时交互体验提供可靠的模型支撑。
5. 实验与结果分析
本节围绕口罩两类检测任务(mask/no-mask),在同一数据集划分与统一训练策略下,对 YOLO 家族多种轻量模型进行横向对比,重点考察检测精度、召回能力与端侧推理效率之间的权衡关系。老思将实验分为两组:其一是 n 系列轻量模型(YOLOv5nu、YOLOv6n、YOLOv7-tiny、YOLOv8n、YOLOv9t、YOLOv10n、YOLOv11n、YOLOv12n),其二是 s 系列中等规模模型(YOLOv5su、YOLOv6s、YOLOv7、YOLOv8s、YOLOv9s、YOLOv10s、YOLOv11s、YOLOv12s)。所有结果均在同一硬件平台 NVIDIA GeForce RTX 3070 Laptop GPU(8GB)上测得,并统一记录预处理耗时(PreTime)、推理耗时(InfTime)与后处理耗时(PostTime),以保证可复现实验比较。
实验度量指标采用目标检测的标准组合:Precision、Recall、F1 Score,以及 mAP@0.5 与 mAP@0.5:0.95。Precision 衡量“报出来的框有多准”,Recall 衡量“真实目标被找回的比例”,二者在阈值变化时存在天然对立,因此本文同时引入 F 1 F_1 F1 作为折中指标,
F 1 = 2 P R P + R , F_1=\frac{2PR}{P+R}, F1=P+R2PR,
并结合 PR 曲线与 F1-Confidence 曲线来确定推理端默认阈值,使系统在真实视频流中兼顾“少漏检”和“少误检”。
从单模型(以 YOLOv12 训练结果为例)的类别层面分析可见,PR 曲线呈现出明显的类别差异:no-mask 的 AP@0.5 达到 0.968,而 mask 的 AP@0.5 为 0.761,全类别 mAP@0.5 为 0.864(如下 PR 曲线图所示)。这一现象与任务本身的可分性一致:未戴口罩时鼻口区域边界、肤色与纹理特征更“完整”,判别线索丰富;而佩戴口罩在不同材质、遮挡、压缩噪声、侧脸与小尺度条件下更容易出现“局部信息缺失”,模型对 mask 的召回与精度更容易受到影响。与之呼应的是混淆矩阵的归一化结果(如下混淆矩阵图所示):no-mask 的正确识别比例约 0.97,mask 的正确识别比例约 0.80,同时仍存在一定比例的 mask 被归入背景(漏检)或被误判为 no-mask 的情况,这意味着系统上线时若更关注“未戴口罩告警”的严格性,需要额外关注 mask 类的漏检风险,避免因漏检导致“误报未戴”。
训练动态方面,从训练曲线可以看到三项训练损失(box/cls/dfl)整体单调下降,验证集损失在中后期存在一定幅度回升,而 mAP 曲线在前 20–40 epoch 快速提升后进入平台期(如下训练曲线图所示)。这是一种较典型的“小中规模数据集 + 强数据增强”训练形态:前期模型迅速学习到与人脸/口罩相关的主导特征,后期继续训练更多是在做边界样本的拟合,验证损失波动提示继续拉长训练并不一定带来等比例收益。因此在工程上更建议以验证集 mAP 或 F1 作为早停依据,并把精力投入到难例补充与标注一致性上,而不是一味增加 epoch。
更具工程价值的是横向对比结论。对 n 系列而言,YOLOv9t 在精度上表现最突出,mAP@0.5 达到 0.910,F1 达到 0.882,同时 Precision 也最高(0.927),说明它在本数据集上能有效压制误检并保持较高召回;但其推理耗时 16.51 ms 明显高于 v8n(6.83 ms)与 v6n(6.78 ms),如果部署场景对实时性更敏感(例如摄像头多路输入或低功耗边缘端),YOLOv9t 的“高精度”可能需要用吞吐量来交换。相对地,YOLOv8n 在速度与精度之间更均衡:mAP@0.5 为 0.890,F1 为 0.869,推理耗时 6.83 ms 接近本组最快水平;而 YOLOv12n 在本任务上的 mAP@0.5 为 0.851、F1 为 0.838,并未取得精度最优,其推理耗时 12.47 ms 也高于 v8n/v6n,这提示注意力中心骨干在小数据集与两类任务中可能更依赖“难例覆盖与更长的有效训练”才能体现结构优势,或者需要针对性地做输入分辨率与增强调度的再权衡。对 YOLOv7-tiny 而言,尽管其结构轻量,但在该数据集上 mAP@0.5 仅 0.710 且推理耗时 14.74 ms,表现出“既不够准也不够快”的不利形态,说明其在当前框架与后处理设置下并不适合作为优先部署方案。
对 s 系列而言,YOLOv8s 的整体优势更明显:mAP@0.5 达到 0.916、F1 达到 0.893,推理耗时 7.66 ms 仍保持在可实时范围内,体现了中等参数规模对特征表达能力的直接增益。YOLOv6s 与 YOLOv5su 在精度上也具备竞争力(mAP@0.5 分别为 0.896 与 0.865),但在参数量与 FLOPs 上显著更大(尤其 v6s 的 17.2M 参数与 44.2G FLOPs),对于资源受限平台可能带来更高的显存与功耗压力。YOLOv12s 的 mAP@0.5 为 0.864、F1 为 0.845,与 v5su、v11s 相近但推理耗时 13.23 ms 偏高,这再次说明在当前两类口罩任务与数据规模条件下,v12 的结构优势尚未充分转化为该组最优精度或最优速度,后续若希望以 v12 为主模型,训练侧更建议增强 mask 类的难例覆盖(遮挡、远距离小目标、侧脸与低清视频帧),并结合 F1-Confidence 曲线对阈值进行任务化设定。
结合 F1-Confidence 曲线可以给出一个直接可落地的部署建议:全类别 F1 在置信度阈值约 0.420 时达到峰值 0.84(如下 F1 曲线图所示)。因此在 UI 系统中,老思更建议将默认 conf 设置在 0.40–0.45 区间,并允许用户根据场景切换策略:在“严控漏检”的安防告警场景可适当下调 conf 并提高 iou 以减少重复框,在“严控误报”的通行核验场景可上调 conf 并结合结果平滑(例如连续帧一致性投票)降低抖动与误触发。整体而言,本实验的结论并非单纯追求某个模型的绝对最优,而是明确给出“精度—速度”的可选边界:若以精度为先,n 组优选 YOLOv9t、s 组优选 YOLOv8s;若以实时性与通用部署为先,YOLOv8n 仍是更稳妥的均衡基线;若坚持以 YOLOv12 作为主干,则应把优化重点放在 mask 类难例与训练策略微调上,以充分释放注意力骨干在复杂遮挡场景中的潜力。
6.系统设计与实现
6.1 系统设计思路
老思把系统按“界面层—控制层—处理层”三层解耦,实现上以 PySide6 的信号-槽作为跨层通信主干,并以对象组合而非继承堆叠来组织模块,保证界面迭代与算法替换互不牵连。界面层由 Ui_MainWindow 承担,负责按钮、标签、表格、滑块等控件的布局与样式;控制层由 MainWindow 作为中枢调度,统一管理槽函数、状态机(播放/暂停/停止)、输入源切换与资源释放;处理层以 Detector 封装 YOLO 权重加载、推理、阈值过滤与 NMS 等后处理逻辑,并对外提供稳定的 infer(frame, conf, iou) 接口,使 UI 侧只需要关心“输入一帧、输出结构化结果”。
主检测流程沿着“输入源→预处理→推理→后处理/统计→界面更新”的最短路径闭环展开。输入源支持图片、视频与摄像头三种模式:图片模式为单帧推理,视频/摄像头模式由 QTimer 或独立线程驱动逐帧读取;预处理包含 Letterbox 等比缩放、颜色空间转换与归一化,确保推理端输入尺度与训练一致;推理输出的框、类别与置信度进入后处理模块完成阈值过滤与 NMS,并同步更新类别计数与告警状态。为避免 UI 卡顿,推理通常在工作线程执行,结果通过信号回传主线程刷新界面,从而保持 Qt 事件循环的响应性。
在数据管理与可追溯性方面,系统将“检测记录”与“用户配置”持久化到 SQLite:检测记录包含时间戳、输入源信息、类别、置信度、框坐标、截图路径等字段;用户配置保存默认模型、conf/iou、主题皮肤、导出目录等偏好,确保重新登录后可恢复个性化空间。输出侧提供两条通路:一是结果可视化(叠加检测框、表格明细、统计面板),二是结果导出(图片/视频保存、CSV/JSON 导出、入库检索),从而把算法输出转化为可复用的工程资产。

6.2 登录与账户管理 — 流程图

登录与账户管理模块在系统中不仅承担“入口校验”,更承担“个性化空间的装配与持久化”。用户从登录页进入后,若无账号则通过注册流程将用户名、密码摘要与头像等信息写入 SQLite;登录校验通过后,系统会加载该用户的默认模型选择、Conf/IoU 阈值、主题皮肤与历史检测记录,并将这些配置同步到主界面的控件状态,使用户在进入检测流程时立刻获得与其习惯一致的工作环境。后续的资料修改(头像/密码)与注销/切换账号,分别对应“个体身份的维护”和“多用户共用设备的隔离需求”,其核心价值在于把检测结果、导出记录与界面偏好绑定到用户维度,既提升可用性,也让系统在实际部署中具备更强的管理与审计便利性。
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 CARION N, MASSA F, SYNNAEVE G, et al. End-to-End Object Detection with Transformers[C]//Computer Vision – ECCV 2020. Lecture Notes in Computer Science. Springer, 2020: 213-229. (Springer)
3 DOSOVITSKIY A, BEYER L, KOLESNIKOV A, et al. An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale[C]//International Conference on Learning Representations (ICLR). 2021. (ICLR)
4 DAO T, FU D Y, ERMON S, et al. FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness[C]//Advances in Neural Information Processing Systems (NeurIPS). 2022. (NeurIPS Proceedings)
5 GE Z, LIU S, WANG F, et al. YOLOX: Exceeding YOLO Series in 2021[EB/OL]. arXiv:2107.08430, 2021. (arXiv)
6 WANG C Y, YEH I H, LIAO H Y M. YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information[EB/OL]. arXiv:2402.13616, 2024. (arXiv)
7 WANG A, CHEN H, LIU L, et al. YOLOv10: Real-Time End-to-End Object Detection[EB/OL]. arXiv:2405.14458, 2024. (arXiv)
8 ZHAO Y, LV W, XU S, et al. DETRs Beat YOLOs on Real-time Object Detection[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR). 2024. (CVF Open Access)
9 TIAN Y, YE Q, DOERMANN D. YOLOv12: Attention-Centric Real-Time Object Detectors[EB/OL]. arXiv:2502.12524, 2025. (arXiv)
10 (IEEE TAI Survey) Masked facial detection methods and datasets survey[EB/OL]. arXiv:2201.04777, 2022. (arXiv)
11 (Elsevier) Face mask detection using deep learning: An approach to reduce risk of COVID-19 transmission[J]. Computer Methods and Programs in Biomedicine, 2021. (ScienceDirect)
12 YANG S, LUO P, LOY C C, et al. WIDER FACE: A Face Detection Benchmark[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR). 2016. (CVF Open Access)
13 SAPKOTA R, et al. YOLO advances to its genesis: a decadal and comprehensive review of the You Only Look Once (YOLO) series[J]. Artificial Intelligence Review, 2025. (Springer)
14 张路遥, 韩华. 基于YOLOv5s的人脸是否佩戴口罩检测[J]. 智能计算机与应用, 2021, 11(9): 196-199. (computing.hit.edu.cn)
15 刘颖, 张雪松, 刘吉越. 基于YOLOx目标检测算法的口罩佩戴检测系统设计[J]. 集成电路与嵌入式系统, 2022, 22(6): 87-91. (service.jices.cn)
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐

所有评论(0)