基于深度学习的人群密度检测系统(YOLOv12完整代码+论文示例+多算法对比)
摘要:本文面向安防巡检、场馆运营与应急疏散等场景,设计并实现一套基于深度学习的人群密度检测桌面系统,数据与代码均可下载复现。系统采用 PySide6/Qt 构建交互界面,支持图片/视频/本地摄像头输入,在主显示区实时叠加行人框(类别/置信度)并输出人数统计与密度表征;视频与批量任务提供进度显示/处理进度条与用时统计,结果可CSV 导出,并支持带框结果一键导出(单帧 PNG / 多帧 AVI)。为保证可追溯与离线可用,系统将检测记录与账户信息写入本地 SQLite,提供登录/注册(可跳过)以满足不同使用门槛;同时在界面侧支持模型选择/权重加载(.pt 热切换),覆盖 **YOLOv5–YOLOv12(共 8 种)**的统一对比评测与部署切换,输出 mAP、F1、PR、训练曲线 等指标用于综合分析与选型。文末提供完整工程与数据集链接。
文章目录
功能效果展示视频:热门实战|《基于深度学习的人群密度检测系统》YOLOv12-v8多版本合集:附论文/源码/PPT/数据集,支持图片/视频/摄像头输入、可视化界面、结果导出与权重切换
1. 系统功能与效果
(1)登录注册:系统启动后提供登录、注册与一次性跳过入口,跳过仅对当前会话生效,便于快速体验同时保留账户体系的安全边界。登录成功后会加载个人偏好与历史记录,用户可按“概览—检测入口—模型选择—导出视图”的动线完成完整流程。账户与检测记录统一由本地数据库管理,并进行口令校验与会话状态维护,兼顾便捷与安全。
(2)功能概况:主界面采用“左侧数据源与阈值控制—中部结果展示—右侧目标详情—底部记录与进度”的布局,首次上手即可形成稳定操作习惯。概览页集中呈现最近任务与统计摘要,支持快速回到最近一次检测并定位对应记录。底部检测记录在不同功能页间保持一致的呈现方式,方便跨页复盘与对照。
(3)选择模型:系统支持从本地选择权重文件并即时切换当前检测模型,切换后类别信息与可视化配色同步刷新,避免“模型变了但标签没变”的误读。常用配置会在本地持久化保存,包括阈值、主题风格与显示偏好,保证多次启动体验一致。模型切换与任务执行相互解耦,用户可以在不重启界面的情况下完成多模型对比与选型。
(4)图片检测:图片载入后可即时推理并在主显示区叠加检测框,框内展示类别与置信度,便于直观判断拥挤区域与个体分布。用户可调节 Conf/IoU 阈值并对目标进行选择与高亮查看,右侧详情区同步展示目标信息与统计结果。检测结果支持导出为结构化表格,便于后续客流分析与质检抽查。
(5)文件保存:系统对导出与归档采用统一的时间戳命名策略,自动将结果整理为可追溯、易检索的形式,适合批量管理与复查。支持保存带框图片,以及将多帧结果导出为视频文件,同时可一键导出 CSV 以便统计分析。检测记录与关键元数据会同步写入本地数据库,实现“看得见、找得到、可复盘”的闭环体验。
2. 绪论
2.1 研究背景及意义
在人群密度检测(亦常与人群计数、拥挤度评估并称)的工程场景中,系统往往需要在监控视频、航拍画面、公共场所摄像头等复杂输入下,稳定输出“人在哪里、密度有多大、数量大致多少”的可解释结果,从而服务于公共安全预警、客流调度、应急疏散与城市精细化治理等任务1。与一般目标检测相比,人群场景更容易出现严重遮挡、尺度跨度大(远处人头仅十余像素)、透视畸变强、光照与天气变化剧烈等问题,这使得算法在准确性与泛化性上更容易“掉链子”2。因此,把深度学习的表征能力与工程端的可视化、可追溯与可交互机制结合起来,构建“可用、可控、可复现”的桌面系统,是该方向落地的重要形态之一。 (arXiv)
从系统视角看,人群密度检测不仅要“算得准”,还要“算得快、看得懂、能复盘”:一方面,实际部署常常受限于边缘算力与实时性指标,要求模型推理与后处理在可接受延迟内完成;另一方面,业务方更关心可解释的框选结果、阈值可调的交互体验、历史记录的可检索性与数据的本地安全存储。基于此,本文以深度学习检测模型为核心,结合 Qt 桌面端交互与本地数据库管理,面向人群密度检测的常见痛点给出一套从算法到系统的完整实现思路。
2.2 国内外研究现状
在学术界,人群密度相关研究长期沿着“密度图回归”路线发展:典型工作通过多分支卷积提取不同感受野特征,将单幅图像映射到密度图并对其积分得到计数,从而缓解透视导致的尺度变化问题3。这类方法对极密集区域往往比直接检测更稳,但其输出主要是密度分布,个体级定位能力有限,且密度图生成与标注点的高斯建模会带来跨场景泛化的额外不确定性。与此同时,数据集侧也在不断补齐“密集、遮挡、分布长尾”的真实难度,为后续方法的可比性与可复现性提供基准。
为提升对拥挤场景的表征能力,研究者开始通过空洞卷积、保持高分辨率特征等方式增强密度图质量与感受野覆盖,代表性方法在高度拥挤场景上取得了更好的 MAE 表现并改善了密度图细节4。随后,有工作反思“固定高斯核平滑标注点”的假设,转而使用最优传输等分布匹配思想直接约束预测密度分布与标注分布的一致性,从理论与实验两端讨论了泛化误差的改进空间5。这一阶段的共识是:密度估计更擅长“数得稳”,但在需要个体级行为分析、目标高亮与可视化复核时,仍需要更强的定位输出作为系统交互的基础。
因此,个体定位与计数的统一成为重要分支:有代表性工作提出纯点级框架,直接学习从图像到个体点的映射,并引入面向定位与计数一体化的评测指标以支撑公平对比6。在另一条路线中,拥挤人群检测数据集推动了“面向遮挡”的检测器设计,数据集提供多层级标注以系统评估遮挡条件下的人体检测能力7。针对“高度重叠实例难以区分”的核心矛盾,也有方法让单个候选区域预测多个相关实例并配合改进的损失与抑制策略,在拥挤基准上带来可量化的 AP 提升8。
| 方法/工作 | 范式/家族 | 代表数据集 | 关键改进点 | 优势与局限 | 关键指标(可追溯) | 更适配的任务难点 | 引用 |
|---|---|---|---|---|---|---|---|
| MCNN3 | 密度图回归 | ShanghaiTech | 多列卷积、多尺度感受野 | 适合尺度变化;定位信息弱 | 引入并划分 PartA/PartB(482/716 张) | 透视与尺度变化 | 3 |
| CSRNet4 | 密度图回归 | ShanghaiTech、WorldExpo | 空洞卷积扩大感受野 | 细节更好;仍偏“密度”输出 | PartB MAE 相对降低 47.3%(论文表述) | 极密集区域 | 4 |
| DM-Count5 | 密度图回归 | UCF-QNRF、NWPU 等 | 最优传输分布匹配 | 泛化更强;实现复杂 | 报告相对误差下降约 16%(论文表述) | 跨场景泛化 | 5 |
| P2PNet6 | 点级定位+计数 | SHTech、QNRF 等 | 纯点级预测;提出 nAP 评测 | 同时输出位置;训练与匹配更敏感 | 提出 nAP 作为定位评测并用于多基准对比 | 个体定位需求 | 6 |
| CrowdHuman7 | 数据集/基准 | CrowdHuman | 头/可见/全身多层标注 | 真实遮挡丰富;标注成本高 | 训练/验证含约 47 万实例(论文表述) | 遮挡与拥挤 | 7 |
| CrowdDet8 | 拥挤检测 | CrowdHuman、CityPersons | 一候选多预测、Set NMS | 对重叠更友好;结构更重 | 在 CrowdHuman 上带来 4.9% AP 增益(论文表述) | 高重叠实例 | 8 |
| RT-DETR13 | Transformer 检测 | COCO | 高效混合编码器、查询选择 | 端到端、免 NMS;算力需求较高 | COCO AP 53.1%、T4 上 108 FPS(论文表述) | 端到端实时性 | 13 |
| YOLOv1219 | YOLO 系列 | COCO | 注意力中心架构 | 精度提升;注意力开销更大 | T4 上 1.64 ms、mAP 40.6%(N 规格,论文表述) | 精度/速度折中 | 19 |
从通用目标检测角度看,两阶段检测器以候选区域为核心,通常在遮挡与小目标上更稳健,但推理链路更长、部署代价更高9;单阶段检测器通过密集预测提升速度,并借助焦点损失缓解前景/背景不均衡问题10。进一步地,Anchor-free 思路以关键点或中心度建模替代锚框设计,降低超参数敏感性并改进密集场景下的匹配与回归稳定性11。与此同时,DETR 体系将检测改写为集合预测,减少手工后处理,但早期版本存在收敛慢与计算开销大等问题12,后续实时化改造工作则在端到端与速度之间给出更实用的工程折中13。
在“可部署的实时检测”方向,YOLO 家族因端到端流程清晰、生态完善而成为工业界常用底座,其中 YOLOv5 以软件与工程形态提供了可复用的训练、导出与推理链路14。面向工业部署与硬件友好设计,YOLOv6 系统性整合网络结构与训练技巧并给出高吞吐的量化版本报告15;YOLOv7 进一步总结可训练的 bag-of-freebies,在速度与精度区间内形成更强竞争力16;YOLOv9 通过可编程梯度信息与新骨干结构讨论信息瓶颈问题并在 COCO 上验证有效性17。近期工作中,YOLOv10 以 NMS-free 训练与效率驱动设计推进端到端部署18,而 YOLOv12 则探索注意力中心架构以在保持实时性的同时争取更高精度19;在实际工程选型上,Ultralytics 的模型文档也提示需要在稳定性、内存占用与 CPU 吞吐之间做权衡,并倾向在生产侧优先采用更成熟的版本20。 (CVF Open Access)
2.3 要解决的问题及其方案
面向“基于深度学习的人群密度检测系统”,本文关注的问题可归纳为四点:(1)在密集遮挡与小目标占比高的画面中,如何兼顾检测准确性与实时性,使系统在视频与摄像头输入下保持稳定帧率与可用延迟;(2)在跨场景变化显著(不同机位、光照、分辨率与人群分布)的条件下,如何提升模型的环境适应性与泛化能力,避免阈值或场景切换导致性能大幅波动;(3)在桌面端交互层面,如何提供直观一致的操作闭环,让用户完成加载输入、调参、选择模型、查看细节、导出与复盘的全过程;(4)在数据治理与安全性上,如何高效管理检测记录、导出文件与账号信息,保证本地存储可追溯、可检索且风险可控。
对应上述问题,本文的解决方案同样按四点展开:(1)以 YOLO 系列为核心检测模型,结合多版本(YOLOv5–YOLOv12)对比评测与阈值可调策略,在保证 mAP、F1 等指标的同时关注推理延迟与吞吐;(2)基于 PyTorch 训练与推理框架引入迁移学习与数据增强,并通过多模型对照与场景化测试提升泛化可靠性;(3)以前端 PySide6/Qt 构建桌面交互闭环,支持图片、视频与本地摄像头等多源输入,并提供模型权重加载与热切换以便快速试验与部署;(4)采用本地数据库与统一归档策略管理账户、记录与导出结果,通过时间戳命名、缓存序列与导出编排提升处理效率与可追溯性。 (Qt Documentation)
2.4 博文贡献与组织结构
本文的主要贡献概括如下:(1)围绕人群密度检测的真实难点与工程约束,给出从密度估计、点级定位到拥挤检测的文献脉络梳理,并明确各范式在“可解释可视化”与“实时部署”上的权衡;(2)以 YOLO 系列为主线组织训练、推理与对比实验,覆盖 YOLOv5–YOLOv12 多版本并基于统一指标体系进行分析;(3)实现一套面向实际使用的 Qt 桌面端交互方案,将多源输入、阈值调参与结果导出纳入一致的操作闭环;(4)在系统工程上强调可追溯与可复盘,通过本地持久化、历史记录管理与批量导出机制提升落地可用性;(5)在资源层面预留数据与工程下载入口,便于复现与二次开发。
全文组织结构上,绪论之后将依次介绍数据集与标注处理流程、YOLO 模型原理与关键设计、对比实验与结果分析、Qt 桌面系统的总体架构与关键流程,最后总结系统在真实场景中的有效性并展望模型轻量化、部署优化与持续学习等方向。 (Qt Documentation)
3. 数据集处理
本文系统以单类行人检测为目标,数据集共计 10,429 张图像,划分为 8,091 张训练集、1,558 张验证集与 780 张测试集,用于支撑从训练、调参到最终评测的完整闭环。结合样例可视化可以看到,图像覆盖了室内通道、车厢/站台、街景道路与商超等多种拍摄环境,光照从均匀室内到强逆光、阴影遮挡均有出现,同时存在明显的尺度跨度与遮挡重叠:近景行人框占比大、远处行人框密集且尺寸很小,这类分布对“密度检测”的鲁棒性提出了更高要求。类别层面仅包含 person,在界面与导出侧统一映射为中文“行人”,保证检测结果在可视化、记录表与 CSV 中语义一致,减少工程使用中的沟通成本。标签及其对应中文名如下:
Chinese_name = {'person': "行人"}

标注规范上,本项目采用目标检测常用的边界框标注方式,训练时将标注解析为统一的结构体 {class_name, bbox(xmin,ymin,xmax,ymax), score, class_id} 并在可视化阶段完成坐标还原与叠加绘制;从标注分布图(x、y、width、height 的联合分布)可以观察到,框的中心位置在画面中部与下半区域更为密集,宽高分布呈现“长尾”特征,小尺寸目标占比高且随场景透视变化显著,这与真实监控/街景的视角规律一致。数据集划分采用固定规则并保持训练、验证、测试集合之间的独立性,实践中通常会将划分随机性通过固定种子与配置记录下来,以便多次复现实验时能够在相同数据切分上公平对比不同 YOLO 版本的指标。
在预处理与增强方面,系统侧推理与训练侧输入保持一致,默认采用等比例缩放与填充的方式将图像对齐到统一分辨率(如 640×640),以稳定不同来源图像的尺度差异并简化批处理与实时推理链路。训练阶段通常配合颜色抖动、随机翻转、随机裁剪与多图拼接等增强策略,以覆盖强光、阴影、运动模糊与拥挤遮挡等典型难点,其中多尺度与拼接增强更有助于提升远处小目标与密集目标的召回,而适度的颜色与对比度扰动能缓解跨时段、跨相机的域偏移;与此同时,数据清洗会重点处理越界框、异常小框与重复标注等问题,必要时剔除明显失焦或严重噪声帧,从而降低误标对分类置信度与回归稳定性的干扰,为后续 YOLOv5–YOLOv12 的统一对比训练提供更可靠的数据基础。
4. 模型原理与设计
在人群密度检测场景里,系统的核心目标并不止于“检测到行人”,更关键的是把检测结果稳定地转化为可用的密度统计(如单位画面面积的人数、不同区域的拥挤程度趋势)。本文采用以 YOLOv12 为主线的单阶段检测范式:对输入图像进行统一尺度的预处理后,网络一次前向即可输出候选框与类别置信度,再经后处理得到最终行人框集合,从而可直接以计数(count)或“计数/面积”的方式形成密度指标;在遮挡密集、尺度跨度大、背景复杂的街景与室内场景中,检测器对多尺度细节与全局语义的兼顾,决定了“漏检导致低估、误检导致高估”的统计误差上限。
从结构上看,YOLOv12仍然沿用“Backbone–Neck–Head”的经典骨架,但在关键模块上引入了注意力中心(attention-centric)的设计以增强拥挤场景下的全局建模能力。其代表性改进包括:以“Area Attention”在保持大感受野的同时降低注意力计算开销;以 R-ELAN 强化特征聚合与优化稳定性;并结合 FlashAttention 等实现细节与对位置编码、MLP 比例的取舍,使注意力模块更贴近实时检测的工程约束。(arXiv) 以注意力为例,常用的缩放点积注意力可写为 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}(\frac{QK^\top}{\sqrt{d}})V Attn(Q,K,V)=Softmax(dQK⊤)V,其中 Q , K , V ∈ R N × d Q,K,V\in\mathbb{R}^{N\times d} Q,K,V∈RN×d 分别表示查询、键和值, d d d 为通道维度;而 Area Attention 可将特征图按水平或垂直方向划分为 l l l 个等尺寸区域,在区域内独立进行注意力计算,从复杂度角度可近似理解为把全局 O ( N 2 ) O(N^2) O(N2) 的相关性计算“分块稀释”为 l ⋅ O ( ( N / l ) 2 ) = O ( N 2 / l ) l\cdot O((N/l)^2)=O(N^2/l) l⋅O((N/l)2)=O(N2/l),在密集人群这类“需要更大上下文但又必须实时”的任务中更容易取得平衡。(Ultralytics Docs) 网络整体架构图如下图所示:

在检测头与任务建模层面,本文采用解耦思路将分类与回归分支的优化目标分离:分类分支学习“该位置是否为行人”的语义置信,回归分支学习边界框 B = ( x m i n , y m i n , x m a x , y m a x ) B=(x_{min},y_{min},x_{max},y_{max}) B=(xmin,ymin,xmax,ymax) 的几何参数。边界框质量通常用 IoU 家族度量,基础定义为 I o U = ∣ B ∩ G ∣ ∣ B ∪ G ∣ \mathrm{IoU}=\frac{|B\cap G|}{|B\cup G|} IoU=∣B∪G∣∣B∩G∣;为提升收敛稳定性与定位精度,可使用更强的几何约束(如 CIoU)进行回归监督: L C I o U = 1 − I o U + ρ 2 ( b , g ) c 2 + α v , L_{\mathrm{CIoU}}=1-\mathrm{IoU}+\frac{\rho^2(b,g)}{c^2}+\alpha v, LCIoU=1−IoU+c2ρ2(b,g)+αv,其中 b , g b,g b,g 为预测框与真值框中心点, ρ ( ⋅ ) \rho(\cdot) ρ(⋅) 为欧氏距离, c c c 为最小外接框对角线长度, v v v 描述宽高比一致性, α \alpha α 为平衡系数。密集遮挡下,后处理仍需抑制高度重叠候选框,常见的 NMS 可表述为:对候选集合按分数排序,若两框 I o U ( B i , B j ) > τ \mathrm{IoU}(B_i,B_j)>\tau IoU(Bi,Bj)>τ 则抑制低分框,以减少重复计数带来的密度虚高;而阈值 τ \tau τ 与置信度门限的联动,会直接影响“拥挤区域的漏检率与误检率”的权衡。
训练与正则化策略上,本文遵循“先保证可收敛与可泛化,再追求极致精度”的原则:在人群数据中常见的尺度变化与遮挡,依赖多样化的数据增强来覆盖分布外情况;YOLOv12 的训练细节中通常会采用 Mosaic、Mixup、Copy-Paste 等增强以提升鲁棒性,并配合 SGD 与线性学习率衰减等策略稳定优化过程。(arXiv) 在工程落地时,推理侧的 Conf/IoU(或 NMS 阈值)应与“密度统计口径”一致:例如在强调安全预警的场景,可适度降低置信度门限以减少漏检,再用更严格的重叠抑制避免重复计数;在强调统计准确的离线分析场景,则可提高门限并结合更稳健的回归损失与多尺度特征融合,以降低背景误检对密度曲线的扰动。
–
5. 实验结果与分析
本章实验旨在评估 YOLOv5–YOLOv12 系列在“单类行人(person)”检测任务上的精度、稳定性与推理效率,并为 Qt 桌面端的实时推理与离线复盘提供选型依据。数据集共 10,429 张图像,按 8,091/1,558/780 划分为训练/验证/测试集;评测指标采用 Precision、Recall、F1,以及 COCO 风格的 mAP@0.5(mAP50)与 mAP@0.5:0.95(mAP50-95),推理效率分解为预处理、模型前向与后处理耗时。测试硬件为 NVIDIA GeForce RTX 3070 Laptop GPU(8GB),因此在工程上更关注“吞吐是否足以支撑视频与摄像头帧流”以及“漏检/误检对人数与密度估计的偏差方向”。
从给出的 F1-Confidence 曲线可见,F1 在置信度约 0.366 处达到峰值约 0.89,这意味着桌面端默认阈值更适合落在 0.35–0.40 区间以获得较均衡的精确率与召回率;
对应 PR 曲线整体贴近左上角且在高召回末端出现陡降,通常反映了“为追求极高召回而纳入低置信候选框”时误检显著增加的现象,这与密集遮挡场景中的难负样本分布一致。
为保证对比公平,本文默认对比 8 个轻量模型(yolov5nu、yolov6n、yolov7-tiny、yolov8n、yolov9t、yolov10n、yolo11n、yolo12n),并补充对比 8 个中等规模模型(v5su、v6s、v7、v8s、v9s、v10s、v11s、v12s),综合结果如下表所示。整体来看,n 系列模型在精度端已达到较高水平,F1 大多集中在 0.882–0.890,mAP50 集中在 0.932–0.945,而 mAP50-95 在 0.679–0.730 区间内拉开差距;其中 YOLOv8n 取得最高的 mAP50=0.9447 且 F1=0.8899,体现了较强的综合检测能力,适合作为默认部署权重;若更强调严格 IoU 下的定位质量(对应密集行人框重叠时的“框是否更贴合”),YOLOv6n 的 mAP50-95=0.7301 更突出;在速度端,v6n 与 v8n 的前向推理分别为 6.78ms 与 6.83ms,叠加约 2ms 的预处理与 1.4ms 左右的后处理后,单帧端到端仍可维持较高吞吐,更契合 Qt 桌面端的视频与摄像头实时显示。与之相对,YOLOv7-tiny 与 YOLOv9t 虽在召回或 mAP50 上并不弱,但推理耗时(14.74ms、16.51ms)明显增大,更适合在“离线批处理但追求稳定召回”的任务中使用。
| 模型 | Params(M) | FLOPs(G) | Pre(ms) | Inf(ms) | Post(ms) | Precision | Recall | F1 | mAP50 | mAP50-95 |
|---|---|---|---|---|---|---|---|---|---|---|
| YOLOv5nu | 2.6 | 7.7 | 1.90 | 7.73 | 1.31 | 0.9140 | 0.8634 | 0.8880 | 0.9411 | 0.7120 |
| YOLOv6n | 4.3 | 11.1 | 2.17 | 6.78 | 1.39 | 0.9023 | 0.8631 | 0.8823 | 0.9319 | 0.7301 |
| YOLOv7-tiny | 6.2 | 13.8 | 2.28 | 14.74 | 4.06 | 0.8909 | 0.8873 | 0.8891 | 0.9425 | 0.6793 |
| YOLOv8n | 3.2 | 8.7 | 1.95 | 6.83 | 1.39 | 0.8995 | 0.8806 | 0.8899 | 0.9447 | 0.7255 |
| YOLOv9t | 2.0 | 7.7 | 1.87 | 16.51 | 1.29 | 0.9076 | 0.8706 | 0.8887 | 0.9428 | 0.7272 |
| YOLOv10n | 2.3 | 6.7 | 2.08 | 11.24 | 0.63 | 0.9080 | 0.8571 | 0.8818 | 0.9343 | 0.7256 |
| YOLOv11n | 2.6 | 6.5 | 2.11 | 9.44 | 1.42 | 0.8938 | 0.8778 | 0.8857 | 0.9402 | 0.7253 |
| YOLOv12n | 2.6 | 6.5 | 1.91 | 12.47 | 1.37 | 0.9000 | 0.8792 | 0.8895 | 0.9416 | 0.7282 |
| YOLOv5su | 9.1 | 24.0 | 2.28 | 8.45 | 1.51 | 0.8984 | 0.8778 | 0.8880 | 0.9409 | 0.7256 |
| YOLOv6s | 17.2 | 44.2 | 2.22 | 8.59 | 1.45 | 0.9001 | 0.8494 | 0.8740 | 0.9209 | 0.7354 |
| YOLOv7 | 36.9 | 104.7 | 2.44 | 23.62 | 3.46 | 0.8933 | 0.8996 | 0.8964 | 0.9402 | 0.7263 |
| YOLOv8s | 11.2 | 28.6 | 2.31 | 7.66 | 1.42 | 0.8891 | 0.8815 | 0.8853 | 0.9395 | 0.7325 |
| YOLOv9s | 7.2 | 26.7 | 2.12 | 18.66 | 1.39 | 0.9066 | 0.8803 | 0.8932 | 0.9468 | 0.7411 |
| YOLOv10s | 7.2 | 21.6 | 2.21 | 11.38 | 0.60 | 0.9103 | 0.8641 | 0.8866 | 0.9359 | 0.7422 |
| YOLOv11s | 9.4 | 21.5 | 2.37 | 9.74 | 1.36 | 0.9090 | 0.8713 | 0.8898 | 0.9408 | 0.7450 |
| YOLOv12s | 9.3 | 21.4 | 2.09 | 13.23 | 1.42 | 0.8979 | 0.8746 | 0.8861 | 0.9325 | 0.7394 |
从 s 系列模型看,参数量与 FLOPs 上升并未带来“线性精度收益”,但在更严格的 mAP50-95 指标上确实出现整体抬升:例如 YOLOv11s 的 mAP50-95=0.7450 为该组最高,说明其在边界框定位质量与跨 IoU 阈值的一致性上更占优;同时 YOLOv9s 的 mAP50=0.9468 为全表最高,结合 Precision=0.9066 与 F1=0.8932,在“误检控制较好且总体召回不低”的口径下更适合离线统计分析。代价在于推理耗时差异非常明显:YOLOv8s 的前向仅 7.66ms,接近 n 系列的实时水平,而 YOLOv9s 与 YOLOv7 的前向分别达到 18.66ms 与 23.62ms,若叠加解码与渲染,在桌面端视频推理中更容易出现帧率不稳定;因此在系统部署上更合理的策略是“实时交互用 v8n/v6n/v8s,离线复盘与高精度统计用 v11s/v9s”,并在界面侧通过 Conf/IoU 滑块让用户根据场景目标(保守统计或安全预警)调整漏检与误检的权衡。
训练过程与误差来源方面,从训练曲线可以观察到 box/cls/dfl 等损失整体单调下降,Precision 与 Recall 快速上升后在中后期进入平台区,mAP50 与 mAP50-95 同样在若干轮后趋于稳定,说明在当前数据规模与增强配置下模型已完成有效收敛且过拟合迹象不强。结合归一化混淆矩阵可以将主要风险归纳为两类:其一是密集遮挡与远距离小目标导致的漏检(直接造成计数与密度低估),其二是复杂背景纹理与局部相似结构引起的误检(造成局部密度虚高),前者更依赖高分辨率训练、多尺度特征与更强的定位监督来改善,后者则更依赖难负样本挖掘、阈值设定与后处理策略来抑制。就本文的系统目标而言,博主更倾向将“默认配置”设置为接近 F1 峰值的置信度区间,并在导出与复核环节保留可追溯的带框结果,这样既能在实时端保证体验,又能在离线端对误差样本进行快速定位与迭代。
6. 系统设计与实现
6.1 系统设计思路
本文系统面向“人群密度检测”的在线推理与可追溯分析需求,整体采用分层架构组织各模块职责边界:表现与交互层以 PySide6/Qt 客户端为核心,承载多源输入选择、阈值滑块调参、结果可视化与导出触发;业务与会话管理层负责源互斥、参数同步、记录编排与用户偏好管理;推理与任务调度层围绕事件驱动的帧流组织预处理、YOLO 推理与后处理,并以异步队列隔离界面线程与计算线程;数据持久化层在本地维护账户与检测记录,并统一管理导出归档与日志,以保证离线可用与复盘能力。该分层方式的关键价值在于将“实时交互”与“推理计算”解耦:界面始终围绕用户操作与可视反馈稳定运行,推理侧则以可控的节拍拉取帧并回传结果,避免高负载场景下界面卡顿或状态错乱。
跨层协同流程上,系统从初始化开始加载配置与模型列表,随后进入多源输入阶段(图片、视频、摄像头三者互斥)。对于图片任务,单帧流程在一次推理闭环内完成;对于视频与摄像头任务,媒体接入模块以事件驱动方式持续产生帧,推理调度器以队列缓冲实现“读取—推理—渲染”的流水化,并将推理耗时与进度信息回写至底部进度条与统计面板。预处理阶段统一将图像缩放到 640×640 并完成归一化与张量转换,以确保不同输入源的尺度一致性;推理阶段支持 YOLOv5–YOLOv12 的权重热切换;后处理阶段通过 Conf/IoU 过滤与 NMS 抑制重复框,并将检测框从网络输入坐标还原到原图坐标系,保证叠加显示与导出结果在几何意义上可复核。
一致性与可扩展性方面,系统通过“参数单源”策略保持 Conf/IoU 等关键阈值在界面与推理端的同步生效,同时以源互斥与状态机约束输入切换,避免同一时刻对多个媒体流并发推理造成资源争用。面向扩展,模型权重管理与结果导出编排被抽象为独立服务:前者负责权重加载、类别与配色刷新以及错误回退,后者负责 CSV/PNG/AVI 的统一命名与归档,并与本地数据库记录保持一致索引,从而形成“实时展示—历史可检索—文件可追溯”的闭环。

图 6-1 系统流程图
图注:系统自初始化到多源输入,完成预处理、YOLO 推理与界面联动,并在 Conf/IoU 滑块、目标高亮与 CSV/PNG/AVI 导出触发下形成交互闭环;视频/摄像头以事件驱动帧流与“是否继续获取下一帧”实现稳定节拍控制。

图 6-2 系统设计框图
图注:框图按“表现与交互层—业务与会话管理层—推理与任务调度层—数据持久化层”组织模块边界,数据流由上至下贯通,控制流由交互层向下触发并在结果回传后闭环。
6.2 登录与账户管理 — 流程图

图 6-3 登录与账户管理流程图
图注:流程覆盖登录、注册与会话载入三类关键路径,强调本地数据库的账户写入与口令校验,并与主检测流程在“个性化配置与历史记录载入”处完成衔接。
登录与账户管理流程从应用启动进入登录界面开始,用户可选择已有账号直接登录,或在无账号时进入注册流程并将账户信息写入本地数据库;登录阶段通过口令校验决定会话是否建立,失败则返回重新输入,成功则载入该用户的个性化配置(如主题、默认模型与最近记录)并进入主检测界面。该流程在系统层面的意义不仅是权限边界与使用门槛控制,更关键的是把“个性化设置、历史检测记录与导出索引”与后续多源检测功能绑定到同一会话空间,从而使结果的检索、复盘与追溯具有稳定一致的语义。
7. 项目资源链接
若您想获得博文中涉及的实现完整全部资源文件(包括测试图片、视频,py, UI文件,训练数据集、训练代码、界面代码等),这里见可参考博客与视频,已将所有涉及的文件同时打包到里面,点击即可运行,完整文件截图如下:

功能效果展示视频:热门实战|《基于深度学习的人群密度检测系统》YOLOv12-v8多版本合集:附论文/源码/PPT/数据集,支持图片/视频/摄像头输入、可视化界面、结果导出与权重切换
环境配置博客教程:https://deeppython.feishu.cn/wiki/EwnTwJ2H3iLF6VkNG6ccgZYrnvd;
或者环境配置视频教程:Pycharm软件安装视频教程;(2)Anaconda软件安装视频教程;(3)Python环境配置视频教程;
数据集标注教程(如需自行标注数据):数据标注合集
参考文献(GB/T 7714)
1 余鹰, 等. 深度学习人群计数算法研究进展[J]. 计算机研究与发展, 2021. (arXiv)
2 田月媛, 等. 基于深度学习的人群密度估计研究进展[J]. 电子测量技术, 2022. (Ultralytics Docs)
3 ZHANG Y Y, ZHOU D S, CHEN S Q, et al. Single-Image Crowd Counting via Multi-Column Convolutional Neural Network[C]//Proceedings of CVPR. 2016. (CVF Open Access)
4 LI Y H, ZHANG X F, CHEN D M. CSRNet: Dilated Convolutional Neural Networks for Understanding the Highly Congested Scenes[C]//Proceedings of CVPR. 2018: 1091-1100. (CVF Open Access)
5 WANG B Y, LIU H D, SAMARAS D, et al. Distribution Matching for Crowd Counting[C]//Proceedings of NeurIPS. 2020. (arXiv)
6 SONG Q, et al. Rethinking Counting and Localization in Crowds: A Purely Point-Based Framework[C]//Proceedings of ICCV. 2021. (CVF Open Access)
7 SHAO S, ZHAO Z J, LI B X, et al. CrowdHuman: A Benchmark for Detecting Human in a Crowd[EB/OL]. arXiv:1805.00123, 2018-04-30[2025-12-23]. (arXiv)
8 CHU X G, ZHENG A L, ZHANG X Y, et al. Detection in Crowded Scenes: One Proposal, Multiple Predictions[C]//Proceedings of CVPR. 2020: 12214-12223. (CVF Open Access)
9 REN S Q, HE K M, GIRSHICK R, et al. Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks[J/OL]. arXiv:1506.01497, 2015-06-04[2025-12-23]. (arXiv)
10 LIN T Y, GOYAL P, GIRSHICK R, et al. Focal Loss for Dense Object Detection[C]//Proceedings of ICCV. 2017. (arXiv)
11 TIAN Z, SHEN C, CHEN H, et al. FCOS: Fully Convolutional One-Stage Object Detection[C]//Proceedings of ICCV. 2019.
12 CARION N, MASSA F, SYNNAEVE G, et al. End-to-End Object Detection with Transformers[C]//Proceedings of ECCV. 2020. (arXiv)
13 ZHAO Y, LV W, XU S, et al. DETRs Beat YOLOs on Real-time Object Detection[EB/OL]. arXiv:2304.08069, 2023-04-17[2025-12-23]. (arXiv)
14 JOCHER G. YOLOv5 by Ultralytics[DB/OL]. Zenodo, 2020-05-29[2025-12-23]. DOI:10.5281/zenodo.3908559. (GitHub)
15 LI C Y, LI L L, JIANG H L, et al. YOLOv6: A Single-Stage Object Detection Framework for Industrial Applications[EB/OL]. arXiv:2209.02976, 2022-09-07[2025-12-23]. (arXiv)
16 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 CVPR. 2023: 7464-7475. (CVF Open Access)
17 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-02-21[2025-12-23]. (arXiv)
18 WANG A, CHEN H, LIU L H, et al. YOLOv10: Real-Time End-to-End Object Detection[EB/OL]. arXiv:2405.14458, 2024-05-23[2025-12-23]. (arXiv)
19 TIAN Y J, YE Q X, DOERMANN D S. YOLOv12: Attention-Centric Real-Time Object Detectors[EB/OL]. arXiv:2502.12524, 2025-02-18[2025-12-23]. (arXiv)
20 Ultralytics. Ultralytics YOLO11 Models Documentation[EB/OL]. [2025-12-23]. (Ultralytics Docs)
21 The Qt Company. Qt for Python (PySide6) Documentation[EB/OL]. [2025-12-23]. (Qt Documentation)
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐

所有评论(0)