基于深度学习的教室人员检测与计数(YOLOv12完整代码+论文示例+多算法对比)
摘要:本文面向教室场景的人员检测与计数需求,构建了一套“训练评测 + 桌面端部署”的一体化系统:后端基于 PyTorch 训练与推理,前端采用 PySide6/Qt 实现可交互的可视化客户端,支持图片、视频与本地摄像头三类输入,并在主显示区实时叠加检测框(类别/置信度)与人数统计。系统提供视频处理进度显示与进度条控制,支持在线调节阈值参数、结果表格回溯与一键 CSV 导出,同时支持带框结果一键导出(单帧 PNG / 多帧 AVI),便于课堂巡检与留档复核。数据侧采用 SQLite 本地入库管理账户与检测记录,提供登录/注册与一次性跳过入口,保证会话范围内的功能一致性与操作安全;推理侧支持 模型选择/权重加载(.pt 热切换),切换后同步刷新类别与配色并保持交互连贯。算法层面覆盖 YOLOv5–YOLOv12(共 8 种)并进行系统化对比,输出 mAP、F1、PR 曲线与训练曲线等指标,用于在“精度—速度—可部署性”之间给出可复现的选择依据。文末提供完整工程与数据集下载链接。
文章目录
1. 系统功能与效果
(1)系统提供登录、注册与一次性跳过三种入口,用户可在进入主界面前完成身份校验,也可在临时体验场景下直接进入而不影响核心功能。登录态在本次会话范围内生效,退出或切换账号后自动失效,兼顾便捷与安全。进入系统后,整体动线从概览页出发,依次完成数据源选择、模型选择、检测执行与结果导出,并可在最近记录中快速回到上一次任务。
(2)主界面围绕“左侧控制—中部显示—右侧详情—底部记录”的交互逻辑组织,用户能够在同一视图内完成阈值调参、检测预览与结果核对。概览区域集中展示当前输入源状态、运行耗时与计数统计,降低首次使用的学习成本。底部记录区支持跨页面共享与回溯,配合关键字段高亮,便于定位异常帧或快速复查某次检测结论。
(3)系统支持从本地选择权重文件切换不同 YOLO 模型,并在切换后同步刷新类别信息、配色方案与推理配置,使不同模型的对比更直观。模型选择过程尽量减少打断:切换后可直接复用当前数据源与阈值设置,快速进入新一轮检测。常用偏好会在本地保存,便于下次启动时保持一致的视觉风格与操作习惯。
(4)图片检测支持单张与批量导入的即时推理,在主显示区叠加绘制边界框、类别名与置信度,同时给出人员数量统计,便于课堂出勤与密度评估。用户可随时调整置信度与 IoU 阈值,观察误检与漏检的变化,并通过目标选择与高亮机制聚焦某一类或某一目标。检测结果可同步写入记录区,支持一键导出为 CSV 以便后续分析或汇总。
(5)文件保存面向“可追溯与可管理”设计,统一采用时间戳命名与固定规则归档,方便按时间或文件名快速定位与复查。支持带框结果的一键导出,单帧保存为 PNG,多帧任务可汇出为 AVI,同时保留结构化统计以支撑批量管理。保存流程与检测流程解耦,用户可在复核确认后再导出,减少无效文件堆积并提升使用体验。
2. 绪论
2.1 研究背景及意义
智慧校园建设推动了课堂管理从“事后统计”走向“过程感知”,其中出勤核验、座位利用率分析与教学秩序辅助评估对数据的实时性与可追溯性提出了更高要求。1 传统人工点名与抽查式巡课不仅占用教学时间,还难以覆盖大班授课、跨楼层多教室等高频场景,且对异常情况(临时加座、迟到早退、遮挡躲避)缺乏一致的判定依据。1 因此,利用视频流对“教室内人员目标”进行检测并完成计数,成为兼顾效率与管理闭环的关键技术路径。1
与仅依赖门禁、Wi-Fi 或蓝牙等弱关联信号相比,基于视觉的人员检测与计数能够直接在图像证据上给出可解释的定位结果,并为后续的行为分析与异常复核提供依据。2 但教室场景同样具有典型挑战:摄像头机位较高且视角固定导致透视压缩,后排学生目标尺寸小、密集且易被遮挡,投影幕布反光与窗边强光会造成亮度分布剧烈变化。2 这些因素决定了算法不仅要“检得准”,还要在边缘侧或普通教学机上满足实时性与稳定性,避免因为延迟而破坏交互体验与统计可信度。2
从工程落地角度看,检测算法必须与可交互界面协同,才能在课堂管理中形成“参数可调、结果可查、证据可存”的闭环,尤其是对阈值敏感的小目标与遮挡场景,需要通过可视化反馈来快速校准系统工作点。3 同时,结果的结构化记录与本地化存储有助于在离线环境中完成统计汇总与审计复核,从而提升系统在校园网络条件不稳定时的可用性与安全边界。3
2.2 国内外研究现状
人员检测与计数可视为“从图像到人数”的映射问题,既可以通过目标检测直接计数,也可以通过密度估计回归得到人数分布,两类范式在遮挡与密集度不同的场景下呈现明显差异。8 早期密度估计方法通过多列卷积结构适配不同尺度目标,能够在极密集场景中缓解“框不出来”的困境,但其输出更偏统计意义而非实例级定位,因此在需要逐人复核的课堂管理中存在解释性不足。8 后续基于空洞卷积的密度网络进一步增强了大感受野建模能力并提升计数精度,但依然难以直接给出每个学生的可视化边界与类别信息。9
以检测为核心的计数路线强调实例级定位,典型代表是两阶段检测器与单阶段检测器两条技术脉络。5 两阶段方法通过候选区域机制在复杂背景中具有较强的精度上限,但在实时视频流上往往需要更高计算量与更复杂的部署栈,难以在通用教学设备上长期稳定运行。5 端到端的 Transformer 检测器通过集合预测机制弱化对后处理的依赖,提升了全局建模能力,但其计算开销与训练资源需求使其在“轻量化实时部署”上仍需权衡。6
在实时检测方向,YOLO 系列以较好的速度精度折中成为工程落地的主流选择,并围绕网络结构、训练策略与推理链路持续演进。4 工业化取向的 YOLOv6 在 COCO 上给出了高吞吐的轻量模型配置,显示了面向部署的结构与训练细节对实时性的重要作用。[13] YOLOv7 进一步以“可训练的免费增益”将精度推至实时检测器前列,体现了在不显著增加推理代价前提下提升特征表达与优化策略的有效性。[14] 近期工作也开始强调端到端与高效性边界的统一,例如 RT-DETR 在 COCO 上报告了较高的 AP 与较快的 T4 推理速度,说明 DETR 路线在实时场景同样具备竞争力。7
面向“部署友好”的趋势,YOLO 家族在 2024–2025 年出现了更强调效率边界与注意力机制融合的新分支。[16] YOLOv9 通过可编程梯度信息与轻量结构设计,在 COCO 验证集上给出了多尺度模型的 AP、参数量与 FLOPs 配置,为工程侧按算力选型提供了更清晰的参照。[15] YOLOv10 以端到端、低延迟为目标讨论了 NMS 相关瓶颈,并报告了在相近 AP 下较 RT-DETR 等模型更快的推理表现,体现了“减少后处理与冗余计算”的设计方向。[16] YOLOv12 则将注意力作为核心建模单元并给出 T4 上毫秒级延迟与精度提升的实验结论,提示在教室遮挡与尺度变化显著的场景中,注意力机制可能带来更强的全局关联建模能力。[17]
国内在课堂场景的研究更强调“数据采集受限、遮挡与小目标突出、边缘部署需求强”的组合约束,并往往将检测与跟踪结合以提升视频流统计稳定性。3 有研究将 YOLO 检测与 SORT 跟踪结合,实现动态课堂视频的目标关联与计数,从而缓解帧间漏检导致的计数抖动问题。3 也有学位工作围绕自建教室数据集与嵌入式端部署进行改进,在桌面端与嵌入式芯片上分别报告了可用的精度与帧率,说明“模型压缩与硬件适配”是课堂计数落地的重要方向。2 同时,课堂考勤类系统常结合目标检测与人脸识别以应对代签与身份核验需求,但其对隐私合规与多模块协同提出了更严格的系统设计要求。1
方法对比表(与教室人员检测与计数任务相关)
| 方法名称 | 范式/家族 | 数据集(指标来源) | 关键改进或机制 | 优势与局限 | 关键指标(示例) | 更适配的任务难点 |
|---|---|---|---|---|---|---|
| Faster R-CNN | 两阶段检测 | COCO(论文报告) | RPN + RoI 机制 | 精度上限高,但推理链路较重 | 代表性两阶段基线 | 复杂背景下的稳健定位5 |
| RT-DETR | Transformer 检测 | COCO val2017 | 混合编码器与查询选择 | 端到端思路清晰,但算力需求仍需权衡 | 53.1% AP,108 FPS(T4) | 遮挡下的全局关联建模7 |
| YOLOv6-S | YOLO 系列 | COCO(论文报告) | 部署友好结构与训练策略 | 吞吐高,适合实时,但极小目标仍需数据与增强配合 | 43.5% AP,495 FPS(T4) | 实时性约束下的稳定检测[13] |
| YOLOv7 | YOLO 系列 | COCO(论文报告) | Trainable BoF | 精度强,工程生态成熟,但需结合场景数据再适配 | 56.8% AP(V100 30 FPS+) | 精度与速度折中选型[14] |
| YOLOv9-C | YOLO 系列 | COCO val(代码库报告) | PGI + GELAN | 参数量与 FLOPs 公开,便于按算力选型 | 53.0% AP,25.3M 参数 | 多尺度选型与部署取舍[15] |
| YOLOv10-S | YOLO 系列 | COCO(论文报告) | NMS-free 训练与效率设计 | 强调端到端低延迟,但需验证不同硬件一致性 | 相近 AP 下更快(论文给出对比) | 低延迟与端到端部署[16] |
| YOLOv12-N | YOLO 系列 | COCO(论文报告) | 注意力中心架构 | 全局建模更强,但内存与 CPU 吞吐需评估 | 40.6% mAP,1.64 ms(T4) | 遮挡、密集与尺度变化[17] |
| YOLOv5-SPD-K210(教室) | YOLO 改进与嵌入式 | 自建教室数据集(论文报告) | 小目标增强与剪枝部署 | 面向教室落地,但数据集泛化需再验证 | 桌面端 mAP 97.6%,75 FPS;K210 端 mAP 82.8%,34 FPS | 小目标与边缘部署2 |
(关于 YOLOv9/YOLOv10/YOLOv12 的 COCO 指标与效率对比信息可见其公开论文与代码库描述。)(GitHub)
2.3 要解决的问题及其方案
围绕“教室人员检测与计数”的落地目标,本文系统需要同时解决算法性能与桌面端交互集成的双重约束。(1)在后排小目标、遮挡与强光反射并存的课堂画面中,检测准确性与计数稳定性容易下降,需兼顾 Precision、Recall 与计数误差的整体平衡。(2)不同教室机位、分辨率与光照条件差异明显,模型需要具备环境适应性与一定的跨场景泛化能力。(3)桌面端需要提供直观的可视化与低学习成本的交互流程,使用户能够完成数据源选择、阈值调参、结果核对与导出留档等操作。(4)批量处理与长期使用要求系统具备较高的数据处理效率与本地存储安全性,避免记录丢失与不可追溯。
为此,本文提出以 YOLO 系列模型为核心的端到端实现方案,并在训练评测与客户端部署两侧形成闭环。(1)以 YOLOv12 作为核心候选模型,同时纳入 YOLOv5 至 YOLOv12 的多模型对比训练与评测,通过数据增强与迁移学习提升对遮挡与小目标的鲁棒性,并以 mAP、F1、PR 曲线等指标指导选型。(2)后端基于 PyTorch 完成训练与推理封装,前端采用 PySide6/Qt 构建桌面交互界面,实现从图片、视频到本地摄像头输入的统一推理链路与可视化叠加。(3)支持模型权重的本地加载与热切换,使同一输入在不同模型间快速复测,并通过阈值参数同步保证对比的公平性与交互一致性。(4)通过缓存与统一的导出归档策略提升批处理效率,并以 SQLite 本地库管理账户与检测记录,确保结果可追溯与存储可靠。
2.4 博文贡献与组织结构
本文的主要贡献体现在以下四个方面。(1)围绕教室人员检测与计数的应用约束,梳理检测、计数与跟踪相关研究脉络,并给出与实时部署密切相关的范式对比与选型依据。(2)建立 YOLOv5 至 YOLOv12 的统一训练、推理与评测流程,面向课堂小目标与遮挡问题总结可复用的优化思路与指标解读方法。(3)完成基于 PySide6/Qt 的桌面端系统化实现,将多源输入、实时参数调节、记录回溯与导出留档集成到一致的交互动线中。(4)给出多模型效果对比与系统级落地策略,使“算法指标”与“可用体验”能够对应到同一套可复现流程之上。
在后续章节安排上,第 3 章将介绍教室数据集的采集、标注与增强处理,第 4 章围绕 YOLOv12 为主线阐述检测网络原理、损失建模与训练策略,第 5 章给出 YOLOv5 至 YOLOv12 的对比实验与结果分析,第 6 章从分层架构角度描述 Qt 桌面端的系统设计与关键流程实现,最后在第 7 章总结全文并讨论未来的模型轻量化、部署加速与持续学习方向。
3. 数据集处理
本项目数据集面向教室/自习室等室内固定机位场景的人员检测与计数,总计包含 8557 张图像,并按训练集、验证集、测试集细致划分为 5990 张、1712 张与 855 张,整体比例约为 7:2:1;这种划分方式既能保证训练阶段的样本覆盖,又能在验证与测试中较稳定地评估不同 YOLO 版本在“密集座位区、后排小目标、遮挡叠加与光照波动”等课堂常见扰动下的泛化表现。在标注规范上,采用与 YOLO 训练流程兼容的归一化边界框描述,确保训练、推理与界面叠框绘制在同一坐标体系下可无缝对齐,从而便于后续导出带框 PNG/AVI 与 CSV 结构化记录的闭环管理。标签及其对应中文名如下:
Chinese_name = {'person': "人"}

从样例可视化与标签统计图可以观察到,该数据集在“类别”维度并不存在多类长尾,但在“尺度”维度呈现显著长尾:大量目标框的宽高集中在较小区间,说明远距离后排与边缘区域的小目标占比高,同时密集就坐导致目标之间边界重叠与局部遮挡频繁出现。标签中心点分布也呈现固定机位下的区域聚集与透视偏移特征,这意味着模型不仅要学会“检出人”,还要在特定空间区域内保持更稳定的召回,避免在座位密集区因遮挡而漏检、在空旷区域因纹理/反光而误检;因此在数据检查阶段需要重点关注异常框(越界、极端宽高比、重复标注)与空标注样本,并对缓存与索引信息进行统一刷新,保证训练过程的收敛稳定性与评测一致性。
围绕上述难点,数据预处理与增强策略应以“尺度鲁棒性、遮挡鲁棒性与光照鲁棒性”为主线:在保持输入尺寸统一的前提下,采用随机缩放与轻量仿射扰动来模拟不同机位与透视变化,通过颜色抖动、亮度对比度扰动与适度模糊/噪声增强来覆盖投影反光、窗边强光与低照噪声等成像差异,并在密集场景中引入更有利于提升共现概率的拼接类增强以改善小目标召回;同时结合随机翻转与裁剪控制,避免对“课堂固定布局”先验的过拟合。通过“划分可复现、标注可对齐、增强可解释”的数据处理流程,能够为后续 YOLOv5–YOLOv12 的公平对比与桌面端实时计数部署提供更可靠的数据基础。
4. 模型原理与设计
本文面向“教室人员检测与计数”的高密度、小目标与遮挡场景,默认以 YOLOv12 作为主线模型进行原理阐述与系统落地。YOLO 系列整体遵循单阶段检测范式:通过端到端特征提取与多尺度预测,在较低延迟下同时输出目标类别与边界框位置;对教室场景而言,这种范式更易满足实时统计的交互需求(例如视频/摄像头帧流的连续计数)。在系统侧,我将输入统一规范到固定分辨率(如 640 × 640 640×640 640×640)并保持推理后坐标还原一致,从而保证“计数结果、框可视化与导出记录”在不同输入源之间具备可比性与可追溯性;在模型侧,则重点关注密集人群时的特征表达能力与误检漏检的权衡,避免“仅追求速度导致计数不稳”的问题。
从结构上看,YOLOv12 仍采用“Backbone–Neck–Head”主干:Backbone 负责由浅入深提取语义特征,Neck 通过金字塔式融合将不同尺度信息对齐,Head 在多个尺度上完成分类与回归预测。与传统纯 CNN 增强不同,YOLOv12 将高效注意力机制作为核心算子之一,用以提升遮挡与密集区域的全局建模能力;标准自注意力可写为
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,
其中 (Q,K,V) 分别为查询、键和值,( d d d) 为通道维度。为兼顾实时性,YOLOv12 通过更“轻”的注意力实现(例如以区域划分方式近似全局关联、并结合更高效的内存访问策略)减少注意力在高分辨率特征图上的开销,从而在教室视频中对“相邻座位密集、人体边界互相挤压”的局部模式更敏感,同时不至于让端到端延迟失控。Neck 部分可抽象为多尺度融合的递推:
P l = f l ! ( C l , U p ( P l + 1 ) ) , P_l = f_l!\big(C_l,\ \mathrm{Up}(P_{l+1})\big), Pl=fl!(Cl, Up(Pl+1)),
其中 ( C l C_l Cl) 表示 Backbone 的第 (l) 层特征,( U p ( ⋅ ) \mathrm{Up}(\cdot) Up(⋅)) 为上采样,( f l ( ⋅ ) f_l(\cdot) fl(⋅)) 为融合算子(卷积/注意力混合皆可);它直接对应教室场景的“远处小人头、近处半身大目标”并存问题。网络整体架构图如下图所示
在损失设计上,YOLO 系列通常将检测任务分解为分类、目标性(或置信度)与边框回归三部分。分类与目标性常用二元交叉熵或其变体(密集场景下可用 Focal Loss 抑制易分类样本的主导效应),其形式可写为
L ∗ B C E ( p , y ) = − y log p − ( 1 − y ) log ( 1 − p ) , L ∗ F o c a l = − ( 1 − p t ) γ log ( p t ) , \mathcal{L}*{\mathrm{BCE}}(p,y)= -y\log p-(1-y)\log(1-p), \qquad \mathcal{L}*{\mathrm{Focal}}=-(1-p_t)^\gamma \log(p_t), L∗BCE(p,y)=−ylogp−(1−y)log(1−p),L∗Focal=−(1−pt)γlog(pt),
其中 ( p p p) 为预测概率,( y ∈ 0 , 1 y\in{0,1} y∈0,1) 为标签,( p t ) p_t) pt) 为对真实类别的预测概率,( γ \gamma γ) 为聚焦参数。边框回归通常采用 IoU 系列损失以增强尺度与形状一致性,典型如 CIoU:
L C I o U = 1 − I o U + ρ 2 ( b , b ∗ ) c 2 + α v , \mathcal{L}_{\mathrm{CIoU}} = 1-\mathrm{IoU} + \frac{\rho^2(\mathbf{b},\mathbf{b}^*)}{c^2} + \alpha v, LCIoU=1−IoU+c2ρ2(b,b∗)+αv,
其中 ( ρ ( ⋅ ) \rho(\cdot) ρ(⋅)) 表示预测框 ( b \mathbf{b} b) 与真值框 ( b ∗ \mathbf{b}^* b∗) 的中心点距离,( c c c) 为最小外接框对角线长度,( v v v) 与 ( α \alpha α) 用于约束长宽比一致性。对“人员计数”而言,这类损失的价值在于:在遮挡导致框不完整时仍能稳定约束定位,使计数不因少量抖动而大幅波动;同时,采用解耦检测头(分类分支与回归分支分离)可降低梯度冲突,减少“分类更准但框更飘”或“框更准但漏检增多”的现象,更适合在教室这种背景复杂且对象相对单一(person)的场景做精细权衡。
训练与推理策略上,我更关注与场景难点强相关的几个点:其一是正则化与训练稳定性,包括合理的数据增强(遮挡、亮度变化、轻微透视与尺度扰动)以覆盖“背光投影、窗边强光、黑板反光”等教室常见光照域偏移,同时避免过强增强破坏人体细节导致小目标学习失败;其二是阈值与后处理一致性,推理阶段以置信度阈值 ( C o n f \mathrm{Conf} Conf) 与 IoU 阈值控制 NMS 抑制强度,NMS 可写为在候选集合中迭代保留最高分框并删除与其重叠过高的框:若 ( I o U ( b i , b ∗ ) > τ \mathrm{IoU}(b_i,b^*)>\tau IoU(bi,b∗)>τ) 则抑制 ( b i b_i bi)。在密集人群里,( τ \tau τ) 过低会误删相邻目标(漏计),过高会保留重复框(重计),因此本文将该阈值设计为可交互可调,并确保其与导出 CSV/可视化结果严格同源,从而使“统计、复查与溯源”形成闭环。最后,在部署侧通过统一预处理、固定 batch/输入尺度与可选硬件加速路径,保证不同模型(YOLOv5–YOLOv12)在同一教室数据上的对比公平,并为后续实验章节的 mAP、F1、PR 与延迟分析提供一致的评测基线。
5. 实验结果与分析
本章实验面向“教室/自习室人员检测与计数”的实际部署需求,目标是在同一数据集与统一推理链路下,比较 YOLOv5–YOLOv12 不同规模模型在精度、召回、综合指标与端到端延迟上的差异,从而为桌面端图片/视频/摄像头实时计数提供可落地的选型依据。数据集为单类检测任务(person→人),共 8557 张图像,按 5990/1712/855 划分为训练/验证/测试集;评测指标采用 Precision、Recall、F1、mAP@0.5(mAP50)与 mAP@[0.5:0.95](mAP50-95),并同时记录预处理、推理与后处理耗时(Pre/Inf/Post),硬件环境为 NVIDIA GeForce RTX 3070 Laptop GPU(8GB)。为保证公平性,各模型在相同输入尺寸与一致的后处理策略下进行测试,使得“精度差异”能更直接地反映网络结构与训练收敛的差别,“延迟差异”则可直接映射到桌面端帧率体验。
| 组别 | 模型 | Params(M) | FLOPs(G) | InfTime(ms) | Precision | Recall | F1 | mAP50 | mAP50-95 |
|---|---|---|---|---|---|---|---|---|---|
| n | YOLOv5nu | 2.6 | 7.7 | 7.73 | 0.9509 | 0.8975 | 0.9234 | 0.9539 | 0.6900 |
| n | YOLOv6n | 4.3 | 11.1 | 6.78 | 0.9510 | 0.9104 | 0.9303 | 0.9645 | 0.7004 |
| n | YOLOv7-tiny | 6.2 | 13.8 | 14.74 | 0.9591 | 0.9276 | 0.9431 | 0.9699 | 0.6462 |
| n | YOLOv8n | 3.2 | 8.7 | 6.83 | 0.9550 | 0.9176 | 0.9359 | 0.9698 | 0.7085 |
| n | YOLOv9t | 2.0 | 7.7 | 16.51 | 0.9561 | 0.9187 | 0.9370 | 0.9695 | 0.6978 |
| n | YOLOv10n | 2.3 | 6.7 | 11.24 | 0.9457 | 0.9103 | 0.9277 | 0.9689 | 0.7139 |
| n | YOLOv11n | 2.6 | 6.5 | 9.44 | 0.9525 | 0.9127 | 0.9322 | 0.9685 | 0.7072 |
| n | YOLOv12n | 2.6 | 6.5 | 12.47 | 0.9539 | 0.8963 | 0.9242 | 0.9513 | 0.6952 |
| s | YOLOv5su | 9.1 | 24.0 | 8.45 | 0.9673 | 0.9384 | 0.9526 | 0.9806 | 0.7507 |
| s | YOLOv6s | 17.2 | 44.2 | 8.59 | 0.9632 | 0.9383 | 0.9506 | 0.9783 | 0.7493 |
| s | YOLOv7 | 36.9 | 104.7 | 23.62 | 0.9756 | 0.9644 | 0.9699 | 0.9880 | 0.7523 |
| s | YOLOv8s | 11.2 | 28.6 | 7.66 | 0.9673 | 0.9453 | 0.9562 | 0.9816 | 0.7579 |
| s | YOLOv9s | 7.2 | 26.7 | 18.66 | 0.9660 | 0.9417 | 0.9537 | 0.9801 | 0.7487 |
| s | YOLOv10s | 7.2 | 21.6 | 11.38 | 0.9620 | 0.9317 | 0.9466 | 0.9806 | 0.7563 |
| s | YOLOv11s | 9.4 | 21.5 | 9.74 | 0.9666 | 0.9426 | 0.9545 | 0.9810 | 0.7565 |
| s | YOLOv12s | 9.3 | 21.4 | 13.23 | 0.9664 | 0.9219 | 0.9437 | 0.9636 | 0.7433 |

从 n 系列(默认对比:yolov5nu、yolov6n、yolov7-tiny、yolov8n、yolov9t、yolov10n、yolo11n、yolo12n)的结果看,模型间差异主要体现在“高召回与低延迟的取舍”以及“mAP50-95 对定位精细度的分辨能力”两点:YOLOv7-tiny 在 Precision=0.9591、Recall=0.9276 下取得最高 F1=0.9431,但其推理与后处理耗时明显偏高(Inf 14.74ms、Post 4.06ms),更像是以更密集的候选框与更重的后处理换取了召回优势;YOLOv10n 在 mAP50-95 上达到 0.7139,为 n 组最优,说明其在更严格 IoU 阈值下的定位质量更稳定,但端到端延迟会高于 YOLOv6n/YOLOv8n。若面向桌面端摄像头实时计数更强调“帧率与交互响应”,YOLOv6n(Inf 6.78ms)与 YOLOv8n(Inf 6.83ms)在速度上最占优势,同时 mAP50 已接近 0.97 且 mAP50-95 均超过 0.70(YOLOv8n 为 0.7085),更符合“足够准且更流畅”的部署直觉;在 Qt 客户端中结合可调 Conf/IoU 阈值与目标高亮复核,通常能在密集遮挡场景下进一步把计数误差控制在可接受范围内。上图给出了 n 组模型的 F1 与 mAP50 双指标对比,能直观看到 YOLOv7-tiny 的 F1 优势与 YOLOv10n/YOLOv8n 在 mAP50 上的贴近关系。
在 s 系列(yolov5su、yolov6s、yolov7、yolov8s、yolov9s、yolov10s、yolo11s、yolo12s)中,精度上限继续抬升,但“速度代价”开始成为主要矛盾:YOLOv7 的 Precision/Recall/F1 与 mAP50 都达到该组最高(F1=0.9699,mAP50=0.9880),但推理耗时 23.62ms 且后处理 3.46ms,若叠加视频解码与界面渲染,实际帧率会更受影响;相对而言,YOLOv8s 在 InfTime=7.66ms 的同时取得最高 mAP50-95=0.7579,体现出更均衡的“精细定位质量—实时性”折中,适合作为桌面端默认 s 级部署方案。YOLOv10s 与 YOLOv11s 的 mAP50-95 紧随其后(0.7563/0.7565),并且 YOLOv10s 的后处理耗时最低(0.6ms),在候选框较多、密集遮挡导致 NMS 压力上升的画面中更不容易出现“导出与显示卡顿”;上图展示了 s 组模型的 F1 与 mAP50 对比,其差异虽小但对“长时间运行的交互流畅度”会产生累积影响。值得注意的是 YOLOv12n/YOLOv12s 在本数据上 mAP50 与 Recall 相对偏低(例如 YOLOv12s 的 Recall=0.9219、mAP50=0.9636),结合训练曲线与 PR 曲线的形态,更像是“在当前训练配置与数据分布下尚未完全发挥结构优势”,后续可优先从训练轮数、学习率日程、正负样本分配、增强强度与小目标采样策略等方向做针对性调优,再评估其注意力建模对遮挡密集区域的真实增益。


从收敛与阈值选择角度,mAP50 随 epoch 的曲线整体呈现“前期快速上升、后期缓慢逼近”的典型形态,约在 40–60 epoch 后进入平台期,说明当前数据规模与单类任务设定下多数模型已经稳定收敛;PR 曲线在 Recall 接近 0.95 之前普遍能维持较高 Precision,意味着误检主要集中在“极高召回工作点”或“密集遮挡导致的边界重叠区域”。在实际部署中,计数任务更怕“重复框导致重计”和“漏检导致少计”交替出现,因此需要用 F1-Confidence 曲线来选取更稳的默认阈值:给出的曲线显示全类别 F1 在置信度约 0.402 处达到峰值约 0.94,这与桌面端提供 Conf/IoU 滑块的设计是一致的——默认设置可以更偏向稳定的综合点(如 0.35–0.45 区间),并在强反光、远距离小目标较多时适度下调 Conf 以提升召回,在背景干扰或边缘区域误检增多时上调 Conf 并略提高 IoU 抑制重复框。

最后,单类任务的混淆矩阵更适合用于观察“漏检与误检的相对趋势”而非多类互相混淆,当前归一化结果显示 person 与 background 的主要差异来自漏检占比与背景误触发,结合密集遮挡与小目标长尾分布的先验,后续可通过更强的小目标增强、适度提高输入分辨率或引入视频流的轻量跟踪/时间一致性约束来进一步提升计数稳定性与导出结果的可复核性。
6. 系统设计与实现
6.1 系统设计思路
本系统采用分层架构组织桌面端与检测算法的协同关系,核心目标是在保证实时性的前提下实现“可视化可解释、可追溯可导出”的闭环体验。整体上将功能划分为表现与交互层(Qt 客户端)、业务与会话管理层、推理与任务调度层、数据持久化层四部分:Qt 客户端负责多源输入选择、阈值调参、结果展示与导出触发;业务层负责源互斥、会话状态、统计与导出编排;推理层对媒体帧进行预处理、YOLO 推理与后处理;数据层将账户、配置与检测记录进行本地持久化并提供检索与导出接口。这样的划分能够把“界面可用性”和“算法可复现性”解耦,使算法评测逻辑与部署交互保持一致,而不会被具体界面细节牵制。
在跨层协同流程上,系统将图片、视频与本地摄像头统一抽象为帧流输入,并以事件驱动方式推进“读取—预处理—推理—后处理—可视化”的帧级闭环。预处理阶段将输入规范到统一尺度(如 640×640)并完成归一化与张量转换;推理阶段调用当前选择的 YOLO 模型(v5–v12)输出候选框;后处理阶段执行置信度与 IoU 过滤及 NMS,并完成坐标还原以保证叠框与导出结果一致。为保障交互一致性,Conf/IoU 等阈值参数由业务层集中管理并同步到推理与展示两端,同时在视频模式提供进度条与用时显示,使用户能够把“统计波动”与“阈值改变”建立直接对应关系,从而更快找到适合密集遮挡、小目标场景的工作点。
在可扩展性方面,系统将“模型权重管理、统计与导出、主题与配置本地化、异常恢复”作为独立能力设计:模型权重通过本地选择即可热切换,并触发类别信息与配色刷新;导出侧将 CSV/PNG/AVI 与日志归档为统一命名规则以增强可追溯性;配置侧将标题文本、主题样式与默认阈值等持久化,保证多次启动体验一致;同时在多源互斥与任务调度层加入状态机式控制,避免摄像头与视频并行导致的资源争用与帧序错乱。上述策略使系统能够在不改变算法核心的情况下平滑扩展输入源、模型版本与导出格式,并为后续的性能优化与工程化部署留下接口空间。

图 6-1 系统流程图
图注:系统自初始化到多源输入,完成预处理、推理与界面联动,并在交互控制中形成闭环;突出 Conf/IoU 滑块、目标高亮选择、CSV/PNG/AVI 导出与时间戳命名。

图 6-2 系统设计框图
图注:框图明确表现与交互层(Qt 客户端)、业务控制与会话层、推理与任务调度层、数据持久化层的模块边界,并用数据流与信号流串联“多源输入—推理—可视化—记录导出”的闭环。
6.2 登录与账户管理 — 流程图

系统登录与账户管理以“启动即校验、会话内生效、本地可追溯”为设计原则:应用启动后首先呈现登录入口,用户可选择直接登录或注册新账号完成身份建立,注册信息写入本地数据库以形成可审计的账户记录;登录阶段对口令进行校验并据此建立会话状态,失败则回到输入环节以避免错误会话进入主流程,成功后载入个性化配置(如主题偏好、默认模型与最近检测记录)并进入主界面,从而保证用户在多源检测与模型热切换过程中保持一致的交互体验。进入主界面后,用户可进行资料修改以更新口令与偏好设置,并通过注销或切换账号重置会话边界,使检测记录、导出归档与界面偏好在本地持久化的同时仍能保持清晰的权限隔离与追溯链路。
7. 下载链接
若您想获得博文中涉及的实现完整全部资源文件(包括测试图片、视频,py, UI文件,训练数据集、训练代码、界面代码等),这里见可参考博客与视频,已将所有涉及的文件同时打包到里面,点击即可运行,完整文件截图如下:

本文涉及到的完整全部程序文件: 包括环境配置文档说明、python源码、数据集、训练代码、UI文件、测试图片视频等:
详细介绍文档博客: 基于深度学习的教室人员检测与计数(YOLOv12完整代码+论文示例+多算法对比)
环境配置博客教程:https://deeppython.feishu.cn/wiki/EwnTwJ2H3iLF6VkNG6ccgZYrnvd;
或者环境配置视频教程:Pycharm软件安装视频教程;(2)Anaconda软件安装视频教程;(3)Python环境配置视频教程;
数据集标注教程(如需自行标注数据):数据标注合集
参考文献(GB/T 7714)
1 付迎迎, 林治, 吴承鑫, 薛金水, 杨吉. 基于目标检测与人脸识别相结合的课堂考勤智能识别系统[J]. 电子产品世界, 2024(1): 67-70. (Qikan)
2 杨子文. 基于嵌入式深度学习图像识别的教室人数检测系统[D]. 呼和浩特: 内蒙古大学, 2023. (Wanfang Data)
3 王一磊, 刘小军, 余成锟, 唐笋, 何一驰, 刘磊, 王波. 基于多目标跟踪的课堂人数自动统计算法研究[J]. 人工智能与机器人研究, 2025, 14(3): 783-798. (Hans Publishers)
4 Redmon J, Farhadi A. You Only Look Once: Unified, Real-Time Object Detection[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2016: 779-788.
5 Ren S, He K, Girshick R, et al. Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2017, 39(6): 1137-1149.
6 Carion N, Massa F, Synnaeve G, et al. End-to-End Object Detection with Transformers[C]//Proceedings of the European Conference on Computer Vision. 2020: 213-229.
7 Zhao Y, Lv W, Xu S, et al. DETRs Beat YOLOs on Real-time Object Detection[EB/OL]. arXiv:2304.08069, 2023. (arXiv)
8 Zhang Y, Zhou D, Chen S, et al. Single-Image Crowd Counting via Multi-Column Convolutional Neural Network[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2016: 589-597.
9 Li Y, Zhang X, Chen D. CSRNet: Dilated Convolutional Neural Networks for Understanding the Highly Congested Scenes[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2018: 1091-1100.
10 Bewley A, Ge Z, Ott L, et al. Simple Online and Realtime Tracking[C]//2016 IEEE International Conference on Image Processing. 2016: 3464-3468.
11 Wojke N, Bewley A, Paulus D. Simple Online and Realtime Tracking with a Deep Association Metric[C]//2017 IEEE International Conference on Image Processing. 2017: 3645-3649.
[12] Lin T Y, Goyal P, Girshick R, et al. Focal Loss for Dense Object Detection[C]//Proceedings of the IEEE International Conference on Computer Vision. 2017: 2980-2988.
[13] Li C, Li L, Jiang H, et al. YOLOv6: A Single-Stage Object Detection Framework for Industrial Applications[EB/OL]. arXiv:2209.02976, 2022. (arXiv)
[14] 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[EB/OL]. arXiv:2207.02696, 2022. (arXiv)
[15] Wang C Y, Liao H Y M. YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information[EB/OL]. arXiv:2402.13616, 2024. (arXiv)
[16] Wang A, Chen H, Liu L, et al. YOLOv10: Real-Time End-to-End Object Detection[EB/OL]. arXiv:2405.14458, 2024. (arXiv)
[17] Tian Y, Ye Q, Doermann D. YOLOv12: Attention-Centric Real-Time Object Detectors[EB/OL]. arXiv:2502.12524, 2025. (arXiv)
[18] Ultralytics. Ultralytics YOLO11 Documentation[EB/OL]. (2025-12-23)[2025-12-23]. (docs.ultralytics.com)
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐
所有评论(0)