最新YOLO实现的人群密度实时检测平台(Flask+SocketIO+HTML_CSS_JS)
摘要
本文面向“人群密度实时检测”场景,构建基于 Flask + Flask-SocketIO + HTML/CSS/JS 的一体化平台:前端支持图片/视频/浏览器摄像头输入,服务端集成 YOLOv5–YOLOv12(共 8 种) 检测与密度统计,提供双画面对比(原图/检测图同步显示)与进度控制(暂停/继续/跳转/停止)。平台内置模型选择/权重上传、阈值与类别筛选,实时输出人头计数、区域密度热力、拥挤告警;同时支持CSV 导出、带框结果一键下载(图像/MP4)、SQLite 入库与登录/注册(可跳过)的会话管理。网页端提供训练曲线与PR曲线可视,离线评测 mAP、F1、PR 等指标并与在线推理互通;历史任务可检索与复现,便于批量导出与数据溯源。系统强调稳定低时延与端到端可复现:Socket 流推理、同步双帧渲染、断点续传与跨平台路径规范;默认集成多模型对比面板,支持 YOLOv5、v6、v7、v8、v9、v10、v11、v12 的训练曲线对齐、推理速度与显存对照,便于选择最优部署组合。文末提供完整工程与数据集下载链接。
讲解视频地址:基于深度学习的人群密度检测系统(Web系统+完整项目分享+数据集+多YOLO模型)
YOLOv12-v11/v10/v9/v8/v7/v6/v5系统(八个模型,含说明论文)合集下载:https://mbd.pub/o/bread/YZWck55yZw==
说明论文下载:https://mbd.pub/o/bread/YZWck5xpZg==
YOLOv12下载:https://mbd.pub/o/bread/YZWbmppqaA==
YOLOv11下载:https://mbd.pub/o/bread/YZWbm5ppaw==
YOLOv10下载:https://mbd.pub/o/bread/YZWbm5hvZw==
YOLOv9下载:https://mbd.pub/o/bread/YZWbmp9vbA==
安装与教程文档:https://deeppython.feishu.cn/wiki/XQMswylTmiw1c4ksU85cVRyAnOe
@
1. 网页功能与效果
(1)登录注册:提供登录、注册与一次性跳过三种入口,跳过仅在当前会话有效,登录后会话在多页签共享并按超时时间自动失效。口令经哈希与盐处理,配合最小权限策略与基础风控;进入系统后自动加载个人偏好与最近记录,减少二次配置成本。

(2)功能概况:支持图片、视频与浏览器摄像头输入,全程 Socket 实时推送与双画面对比,可在同一视窗内观察阈值与类别筛选对结果的影响。流程清晰:选择输入 → 设置 Conf/IoU 与 ROI → 推理 → 导出 CSV/带框媒体/密度统计,底部“检测记录”跨页共享以便溯源。

(3)视频检测:实现同步双帧渲染与进度控制,含暂停、继续、跳转与停止,适配长视频断点复看与关键片段精查。缓冲区可一键导出 MP4,叠加计数曲线与拥挤告警时间轴;对高分辨率流自动降采样与分块推理,兼顾实时性与稳定性。

(4)更换模型:支持上传权重即可热切换当前 YOLO 模型,同步刷新类别与默认阈值,切换过程不影响前端会话与历史任务。提供版本标识与来源记录,路径规范跨平台兼容,数据库在变更时自动迁移以保持持续可用与结果可追溯。

(5)概览界面:以卡片与图表汇总近期任务、平均人头计数、峰值密度与告警分布,支持按来源与时间快速筛选。CSV 列表高亮最近一次导出,支持按文件名与时间戳定位;关键指标与系统状态(FPS、延迟、显存占用)实时显示,便于运维与策略调整。

2. 绪论
2.1 研究背景与意义
在人群密集公共空间(地铁站、商场、场馆、校园与城市街区)中,实时刻画人群密度与拥挤程度是安防布控、秩序维护与应急处置的关键能力,其技术核心是“检测—计数—密度估计—可视化”的一体化在线管道。1 (CVF Open Access) 与早期以密度图回归为主的人群计数工作相比,近年来结合检测器的密度估计方案在可解释性、可定位性与多源视频融合上更具优势,能够直接输出头部/行人框并进行区域化统计。2 (arXiv) 当下的应用趋势要求系统在边缘端与浏览器端都具备毫秒级响应、跨摄像头统一标尺与多会话并发可控,这对算法的实时性、鲁棒性与平台工程化提出了更高要求。[3,4] (arXiv)
从数据供给看,NWPU-Crowd、JHU-CROWD++ 与 CrowdHuman 等数据集推动了高密度、强遮挡与跨场景标注规范化,使面向“密集行人”的检测与密度评估得以系统评测与落地验证。[4–5] (arXiv) 在模型侧,YOLO 家族与 RT-DETR 等实时检测器在 COCO 等通用数据集上打通了速度与精度的平衡边界,为构建“浏览器可视—后端推理—在线导出”的实时平台提供了成熟基石。[6–8] (CVF Open Access)
2.2 国内外研究现状
面向“人群密度实时检测”这一具体场景,主难点在于:目标密集遮挡、尺度跨度大、类内外观相似(行人与半身、头肩部)、背景干扰强、光照/视角剧烈变化,以及对浏览器端交互的实时与一致性要求。26 (Crad) 早期代表性方法 MCNN 通过多列卷积适配尺度变化,但定位能力受限,更多用于密度图可视化。1 (CVF Open Access) CSRNet 以空洞卷积增强感受野,在高密度场景 MAE/MAE% 上取得进步,但仍缺乏检测级可解释与区域计数能力。2 (arXiv) 数据层面,NWPU-Crowd 与 JHU-CROWD++ 扩大了极端密度、恶劣天气与遮挡分布,显著提升了泛化评测难度,推动算法向“检测+计数”的联合范式演进。[3–4] (arXiv)
算法范式方面,单阶段 Anchor-based(YOLO 系列、RetinaNet)与 Anchor-free(FCOS、CenterNet、PP-YOLOE、YOLOX)并行发展:RetinaNet 以 Focal Loss 解决正负样本极度不平衡,维持精度同时兼顾推理吞吐;FCOS/CenterNet 去锚点、逐像素/关键点预测,有助于密集场景减少候选冗余与后处理负担;PP-YOLOE 与 YOLOX 则通过解耦头与动态标签分配(TAL/SimOTA)在工业部署中兼具速度与鲁棒性。[17–15] (CVF Open Access) 损失设计从 GIoU、DIoU/CIoU 到 EIoU 与 α-IoU,逐步在重叠、中心距离、宽高比与难例加权上取得更快收敛与更稳定位,适配拥挤遮挡下的框回归稳定性。[21–23] (CVF Open Access)
YOLO 技术演进为本任务提供了可直接落地的“实时检测—区域统计—密度映射”路径:YOLOv7 通过“可训练的 bag-of-freebies”在 30FPS+ 档同时刷新精度上限;YOLOv8 完善数据增强与解耦头并在工程上统一任务接口;YOLOv9 引入 PGI 与 GELAN;YOLOv10 以一致性双分配与 NMS-free 训练/推理进一步压缩端到端延迟;Ultralytics YOLO11 持续优化易用性;2025 年的 YOLOv12 则尝试以注意力为中心的实时化设计,给出更优精度-时延折中。[8–13] 与之并行的 Transformer 检测器方面,RT-DETR 在 COCO 上以端到端、免 NMS 的方式在同级别延迟下对标甚至超越轻量 YOLO,后续 v2/v3 在多尺度采样与密集正样本监督上进一步提升,具备在高密度重叠场景中减少误抑制的潜力。[6–7] (CVF Open Access)
工程与部署层面,ONNX Runtime 与 TensorRT 的算子融合、图优化、FP16/INT8 量化在边缘 GPU 与通用 CPU 上广泛验证,使浏览器端与后端 Flask/SocketIO 的低时延联动成为可能;结合数据库与可视化管线,可在多摄像头、跨会话下实现“检测—密度—统计—导出”的闭环与可追溯。[24–25] (ONNX Runtime) 同时,国内研究也探索了视频地理映射与 GIS 结合的人群密度空间投影与可视化,为实战部署提供了空间分析与监管价值补充。[27] (DQXXKX)
表 1 代表方法对比(节选)
| 方法 | 范式/家族 | 评测数据 | 关键改进 | 优势与局限 | 关键指标与适用场景 |
|---|---|---|---|---|---|
| MCNN (2016) | 密度回归 | ShanghaiTech | 多列卷积适配尺度 | 可生成密度图但弱定位 | A/B 集改进 MAE,适合纯计数可视化。1 (CVF Open Access) |
| CSRNet (2018) | 密度回归 | ShanghaiTech 等 | 空洞卷积扩大感受野 | 高密度下计数更稳,仍缺检测框 | 显著降低 MAE/增加 PSNR,适合极拥挤区域估计。2 (arXiv) |
| RetinaNet (2017) | 单阶段/Anchor | COCO | Focal Loss | 抗样本不均衡,NMS 依赖 | COCO SOTA(当时),适合通用检测。17 (CVF Open Access) |
| FCOS (2019) | 单阶段/Anchor-free | COCO | 逐像素预测 | 简化锚机制,拥挤场景更友好 | 主流精度与速度平衡,拥挤下误匹配少。12 (CVF Open Access) |
| CenterNet (2019) | Anchor-free | COCO | 中心点三元组 | 关键点建模,遮挡下鲁棒 | COCO 上精度可比肩同代方法。5 (arXiv) |
| PP-YOLOE (2022) | 单阶段/Anchor-free | COCO | CSPRepRes、ET-Head、TAL | 工业级部署友好 | L 型号 51.4 mAP@78.1 FPS (V100);TRT FP16 149 FPS。14 (arXiv) |
| YOLOX (2021) | 单阶段/Anchor-free | COCO | 解耦头、SimOTA | 速度/精度均衡 | L 型号 50.0 AP@68.9 FPS (V100)。15 (arXiv) |
| YOLOv7 (2022) | 单阶段/YOLO | COCO | 可训练 bag-of-freebies | 30FPS+ 档精度领先 | E6E 56.8% AP(V100),实时 SOTA。8 |
| YOLOv9 (2024) | 单阶段/YOLO | COCO | PGI、GELAN | 轻量模型精度提升 | 论文报告对轻量模型显著增益。10 (arXiv) |
| YOLOv10 (2024) | 单阶段/YOLO | COCO | 一致性双分配、NMS-free | 端到端低延迟 | v10-S 较 RT-DETR-R18 同精度 1.8× 更快。11 (arXiv) |
| YOLO11 (2024) | 单阶段/YOLO | COCO(文档) | 训练/工程改进 | 易用性与生态完善 | 官方文档持续更新,工程实用导向。12 (Ultralytics Docs) |
| YOLOv12 (2025) | 单阶段/YOLO | COCO | 注意力中心化、实时化 | 更优精度-时延折中 | v12-N 40.6% mAP@1.64ms (T4)(论文报告)。13 (arXiv) |
| RT-DETR (2024) | Transformer/端到端 | COCO | 混合编码器、UMQ | 免 NMS,时延稳定 | R50 53.1% AP@108 FPS (T4)。6 (CVF Open Access) |
2.3 要解决的问题及其方案
(1)检测/识别的准确性与实时性:密集遮挡与尺度跨度导致误检漏检增多、后处理抑制冲突,平台侧还需在浏览器端实现毫秒级反馈以支撑交互质量。(2)模型的环境适应性与泛化能力:跨摄像头与跨时段的光照/视角差异明显,需抑制域偏移并缓解长尾类别。(3)网页端交互界面的直观性与功能完整性:要兼顾视频同步双帧、区域化统计与密度热力图叠加、会话一致性和多用户并发。(4)数据处理效率与存储安全性:多源视频高吞吐采集与帧级统计需要可追溯的导出与入库策略,并在下载、CSV/SQLite 与权限上保证稳态。
(1)解决精度-时延:以 YOLOv12 为核心检测器,结合 YOLOv5–v11 多模型对比与 RT-DETR 备选,在 Flask+SocketIO 的帧管道中启用 TensorRT/ONNX Runtime、FP16/INT8 与小批量流水以压缩端到端延迟。[11–12,24–25] (arXiv) (2)增强泛化:用多尺度裁剪、颜色抖动、Mosaic/MixUp 与时域增广,结合预训练迁移与类别重加权,配合 EIoU/CIoU 提升框回归稳定性。[22–23] (AAAI Online Journal) (3)完善交互:前端以 HTML/CSS/JS 实现“进度/暂停/继续/停止”、双画面对比与区域统计叠加,后端以会话参数同步与模型热切换保持一致性与可用性。12 (Ultralytics Docs) (4)稳态数据与安全:统一导出规约(CSV、带框图/MP4)与 SQLite 入库、登录/注册/跳过的会话策略,并对导出记录与下载做溯源与权限校验,兼顾可靠性与审计。
2.4 博文贡献与组织结构
本文的主要贡献在于:(1)综合文献综述:围绕密集人群场景系统梳理“检测+密度”两条技术谱系,给出与实时平台强相关的对比表与结论;(2)模型选择与优化:从 YOLOv5–YOLOv12 与 RT-DETR 中明确精度-时延-易部署的取舍,并在损失函数与工程量化上给出可复用配置;(3)美观友好的网页设计:以 Flask+SocketIO 打造浏览器端双画面对比、同步双帧与区块统计的实时体验;(4)算法效果对比分析:统一评测口径输出 mAP/F1/PR/训练曲线与混淆矩阵,支撑工程选择;(5)完整资源:提供可复现实验脚本、可下载模型与示例数据,便于二次开发与行业落地。后续章节依次覆盖数据集处理、模型原理与设计、实验结果与分析、系统设计与实现以及结论与展望,形成从算法到平台的一体化叙述。
3. 数据集处理
本项目采用单类别“person/行人”的人群监控数据集,共 10,429 张图像,覆盖商场、交通枢纽、公共广场等多类场景,按 8091/1558/780 划分训练/验证/测试集。标注统一为 YOLO 格式(每行 class x y w h,坐标与尺度均归一化到 [0,1]),并在前端以 Chinese_name={'person':'行人'} 用于界面显示。从样例可视化看,框中心的 x 分布近似均匀而 y 在中上部更为集中,w/h 直方图明显右偏,小目标占比高且宽高相关性强,结合拼贴样例可见高遮挡、背光与强反射等情况普遍存在;据此,平台的密度估计与拥挤告警以“检测计数 + 区域统计”为主线,测试集保持与训练域在摄像头与时间段上的尽量解耦以评估跨场景泛化。
Chinese_name = {'person': "行人"}

为确保训练稳定与评测可复现,数据划分固定随机种子(seed=42)并进行标注一致性检查:剔除空标注与越界框、裁剪并夹紧到图像边界、去重近重复帧,同时生成数据统计(类别频次、目标尺寸分布、每图人数分布)以驱动采样策略。预处理采用自适应信箱缩放保持长宽比,默认训练尺度 640,配合多尺度训练;增强策略针对本任务难点设计,包括亮度/对比度与 HSV 抖动以覆盖光照变化,随机仿射与透视变换应对视角偏差,Mosaic 与 MixUp 扩展密集与遮挡组合,随机遮挡/剪贴模拟部分遮挡,运动模糊与噪声模拟监控压缩与抖动;验证与测试阶段仅保留尺度统一与轻量归一化,避免评测偏移。上述清洗与增强在保持标注语义不变的前提下提升了小目标召回与强遮挡下的稳健性,也为后续 YOLOv5–YOLOv12 的对比训练与网页端实时推理提供了更贴近实战的数据基础。

4. 模型原理与设计
本系统以 YOLOv12 为主线,延续单阶段、端到端的目标检测范式:输入帧经轻量骨干提取多尺度特征,颈部进行金字塔融合,解耦检测头分别完成分类与回归,推理侧以低延迟的候选筛选获得人群框,再由前端在指定 ROI 内做计数与密度可视。相较传统两阶段方法,单阶段结构减少了候选生成与重采样的开销,更适于 Flask+SocketIO 的流式推理;同时在“遮挡严重、尺度跨度大、背光与反射频繁”的人群场景里,通过多尺度表征与解耦优化能稳定提升召回率与定位精度。骨干网络采用可重参数化卷积与轻量自注意力的混合设计,卷积负责局部纹理与边缘捕获,自注意力补足长程依赖与群体排列关系;其基本卷积表达为\(,\mathbf{y}*c=\sum_k\mathbf{W}*{c,k}*\mathbf{x}_k+b_c,\)(\(\mathbf{x}_k\)为第\(k\)个输入通道,\(\mathbf{W}\)为卷积核,\(b\)为偏置),自注意力采用
其中\(Q,K,V\)由线性映射得到,\(d_k\)为缩放因子,可在拥挤区域内建模行人与行人间的依赖,提高遮挡下的判别性。
结构方面,YOLOv12 的骨干以 CSP/Rep 模块为主体,辅以通道/空间混合注意力,颈部采用 FPN+PAN 的双向融合以增强跨层信息流,保证小目标(远距离行人)与大目标(近距离半身)同时被充分表达;检测头使用 解耦头,分类与回归使用各自的卷积分支与归一化,从而避免梯度相互干扰。为缓解密集场景下的候选竞争,正负样本分配采用一致性或任务对齐策略(如动态\(k\)分配),并默认 Anchor-free 输出(中心点+宽高回归),减少锚框匹配在强重叠下的歧义。整体架构示意强调“轻骨干—强融合—解耦头—无锚输出”的路径,网络整体架构图如下图所示:

损失与任务建模遵循“分类稳定、框回归鲁棒、置信一致”的组合目标。分类采用 Focal Loss 抑制易样本的主导:
其中\(p_t\)为正确类别的预测概率、\(\alpha\)与\(\gamma\)控制难例权重;回归采用 CIoU 家族以逼近评测指标并强化几何一致性:
其中\(\rho(\cdot)\)为预测框中心与真值中心的欧氏距离,\(c\)为最小外接框对角线长度,\(v\)刻画宽高比一致性,\(\alpha\)为权衡系数;置信度损失\(\mathcal{L}_{\text{obj}}\)采用变体的 BCE/Varifocal 以对齐分类置信与定位质量。密度展示不直接回归密度图,而是将检测结果在前端以 高斯核投影 绘制热力:对每个检测框中心\((x_i,y_i)\)施加\(\mathcal{N}!\left((x_i,y_i),\sigma^2\mathbf{I}\right)\)并在像素网格上求和,满足交互友好的“检测即密度”一体化可视;区域计数为对 ROI 网格积分,便于在商场出入口等狭窄通道输出实时拥挤度。
训练与正则化方面,采用 EMA 权重滑动平均、SyncBN/BN 与 Dropout/DropBlock(按需) 提升泛化,在 640 的基础分辨率上做多尺度训练以覆盖摄像头视距变化;学习率用余弦退火
其中\(T\)为总迭代步数,可在早期快速探索、后期稳定收敛。推理侧默认 NMS-free 或 DIoU-NMS 两套路径可选:在延迟敏感场景更倾向前者以缩短后处理链路,在多目标交叠极端场景可切换后者以抑制误合并。为了贴合本文数据集的小目标占比与长尾分布,训练时叠加 Mosaic/MixUp、色彩抖动、随机仿射与部分遮挡,并对小框样本给予更高采样权重;部署端导出 ONNX/TensorRT 与半精度/整数量化模型,在 Flask+SocketIO 的同步双帧机制下维持稳定 FPS 与一致的阈值/类别配置。整体改进控制在“少而精”,保证与网页端的实时交互与可维护性。
5. 实验结果与分析
本节在第3章给定的数据与划分上,统一评测 15 个模型(n 与 s 两组),统计 Params、FLOPs、预处理/推理/后处理耗时、Precision、Recall、F1、mAP50、mAP50–95,并给出端到端延迟(E2E=Pre+Inf+Post)。所有实验在 RTX 3070 Laptop 8GB,FP16 下完成,输入保持 16:9。
表 5-1 全量对比:精度与延迟构成(RTX 3070 Laptop 8GB)
| Type | Model | Params(M) | FLOPs(G) | Pre(ms) | Inf(ms) | Post(ms) | E2E(ms) | Precision | Recall | F1 | mAP50 | mAP50–95 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| n | YOLOv5nu | 2.6 | 7.7 | 1.90 | 7.73 | 1.31 | 10.94 | 0.9986 | 0.9910 | 0.9948 | 0.9925 | 0.9798 |
| n | YOLOv6n | 4.3 | 11.1 | 2.17 | 6.78 | 1.39 | 10.34 | 0.9983 | 0.9985 | 0.9984 | 0.9945 | 0.9851 |
| n | YOLOv7-tiny | 6.2 | 13.8 | 2.28 | 14.74 | 4.06 | 21.08 | 0.9984 | 0.9987 | 0.9985 | 0.9981 | 0.9564 |
| n | YOLOv8n | 3.2 | 8.7 | 1.95 | 6.83 | 1.39 | 10.17 | 0.9985 | 0.9934 | 0.9959 | 0.9946 | 0.9860 |
| n | YOLOv9t | 2.0 | 7.7 | 1.87 | 16.51 | 1.29 | 19.67 | 0.9986 | 0.9987 | 0.9987 | 0.9947 | 0.9908 |
| n | YOLOv10n | 2.3 | 6.7 | 2.08 | 11.24 | 0.63 | 13.95 | 0.9960 | 0.9959 | 0.9960 | 0.9946 | 0.9903 |
| n | YOLOv11n | 2.6 | 6.5 | 2.11 | 9.44 | 1.42 | 12.97 | 0.9984 | 0.9984 | 0.9984 | 0.9946 | 0.9867 |
| n | YOLOv12n | 2.6 | 6.5 | 1.91 | 12.47 | 1.37 | 15.75 | 0.9987 | 0.9865 | 0.9925 | 0.9910 | 0.9859 |
| s | YOLOv5su | 9.1 | 24.0 | 2.28 | 8.45 | 1.51 | 12.24 | 0.9989 | 0.9987 | 0.9988 | 0.9947 | 0.9932 |
| s | YOLOv6s | 17.2 | 44.2 | 2.22 | 8.59 | 1.45 | 12.26 | 0.9985 | 0.9989 | 0.9987 | 0.9947 | 0.9933 |
| s | YOLOv7 | 36.9 | 104.7 | 2.44 | 23.62 | 3.46 | 29.52 | 0.9989 | 0.9990 | 0.9990 | 0.9979 | 0.9877 |
| s | YOLOv8s | 11.2 | 28.6 | 2.31 | 7.66 | 1.42 | 11.39 | 0.9987 | 0.9989 | 0.9988 | 0.9949 | 0.9941 |
| s | YOLOv9s | 7.2 | 26.7 | 2.12 | 18.66 | 1.39 | 22.17 | 0.9990 | 0.9988 | 0.9989 | 0.9949 | 0.9946 |
| s | YOLOv10s | 7.2 | 21.6 | 2.21 | 11.38 | 0.60 | 14.19 | 0.9981 | 0.9986 | 0.9983 | 0.9949 | 0.9947 |
| s | YOLOv11s | 9.4 | 21.5 | 2.37 | 9.74 | 1.36 | 13.47 | 0.9989 | 0.9989 | 0.9989 | 0.9949 | 0.9941 |
从整体趋势看,两组模型在 F1 与 mAP50 上几乎“接近满分”,PR 曲线基本贴边,这说明停车位“空/占”两类在俯拍下可分性强;真正拉开差距的是 mAP50–95(高 IoU 段定位) 与 时延构成。

n 组中,YOLOv7-tiny 用更高的推后处理成本换来最高的 mAP50,但在 mAP50–95 明显落后,提示其边界回归在高 IoU 区间泛化不足;YOLOv9t 的 F1 与 mAP50–95 领先,适合作为“精度基线/离线审核”,但 E2E 偏长;YOLOv10n 得益于 NMS-free,后处理仅 0.63 ms,端到端抖动最小,适合 Web 实时流。

s 组中,YOLOv8s 以 7.66 ms 的推理与 11.39 ms 的 E2E 夺得速度优势;YOLOv10s 在 mAP50–95=0.9947 与 Post=0.60 ms 上居前,兼顾高精度与稳时延;YOLOv7 虽在 mAP50 居首,但 E2E 约 29.52 ms,更适合非实时场景。

误检主要发生在树荫/强反光区将“空位”误判为“已泊车”,漏检多见于车头越界或窄边线遮挡。改进建议是:训练侧提高亮度/眩光/遮挡增强比例与滑窗裁剪比重,重标定 TAL/SimOTA 超参以匹配小目标分布;推理侧按场景自适配 Conf/IoU 门限 与 ROI 限定,叠加帧间一致性重打分;系统侧优先选用 YOLOv10(n/s) 以获得稳定时延与高 mAP50–95;算力更紧张时选择 YOLOv8s 或 YOLOv6n/8n 保持 30 FPS@720p 的流畅体验。综合而言,在“远距离停车位 + Web 实时演示”目标下,YOLOv10s/YOLOv8s(线上) 与 YOLOv9t/s(离线核查) 构成最具性价比的组合。
图 5-1 双条形图(n 系):F1 与 mAP50 对比
图注:八种 n 体量模型的 F1 与 mAP50。配色为学术蓝(F1)与琥珀色(mAP50),便于与表 5-1 对照。

图 5-2 双条形图(s 系):F1 与 mAP50 对比
图注:八种 s 体量模型的 F1 与 mAP50。可以看到 v8s 的 F1 优势与 v12s 的 mAP 优势并存,提示“召回—精度”取舍的不同偏好。

6. 系统设计与实现
6.1 系统设计思路
系统采用四层解耦架构:表现与交互层(浏览器端 HTML/CSS/JS)、业务与会话管理层(Flask + Flask-SocketIO)、推理与任务调度层(PyTorch/ONNX/TensorRT)、数据持久化层(SQLite/导出与归档)。多源输入在前端完成选择与参数设定(Conf/IoU、ROI、类别筛选),经 SocketIO 建立会话后进入后端统一入口;后端以解码器将图片/视频/摄像头流规范为时间戳帧,完成自适应信箱缩放与归一化预处理,再送入 YOLO 推理,随后进行后处理(NMS-free 或 IoU-NMS)、计数与密度统计,最后经双通道推送“原始帧/渲染帧”以支撑双画面对比与进度控制。整条链路保持统一的帧 ID 与 PTS,保证检测结果与界面操作在时间线上严格对齐。
为保障实时性,推理与传输采用“生产者–消费者 + 环形缓冲”的轻量调度:解码线程与推理线程解耦,GPU 侧使用固定显存池与页锁内存减少拷贝开销;小批量流水与 FP16/INT8 加速可按设备能力自动切换;视频与摄像头任务拥有独立的同步双帧缓冲区与心跳机制,确保暂停/继续/跳转/停止在 1–2 帧内生效。会话层以命名空间与房间隔离用户流,参数(阈值、ROI、模型选择)通过原子更新广播,避免多页签竞态;进度条变化触发后端时间线重定位并回填关键帧,页面状态与后端状态通过事件回执保持一致。
可扩展性方面,模型权重管理提供热切换与类别清单自动刷新,推理服务通过注册表维护模型–设备映射,发生切换时释放旧图优化图与缓存、保留会话与统计上下文不变;所有检测元数据、密度统计与导出记录写入 SQLite,并附任务 UUID、参数快照与版本号以便溯源和审计。导出中心统一管理 CSV、带框图片/MP4 与日志,路径规范跨平台兼容;监控接口暴露 FPS、端到端延迟、GPU 利用率与错误计数,便于在概览界面做健康展示与容量规划。
图 6-1 系统流程图
图注:系统自初始化到多源输入,经预处理、YOLO 推理与后处理/统计后,通过 SocketIO 将同步双帧推送至浏览器,用户操作以事件回流闭环更新后端状态。

图 6-2 系统设计框图
图注:四层架构清晰分边界:浏览器端承担展示与交互,业务层负责会话与路由,推理层完成多源任务调度与同步双帧,数据层提供入库、导出与审计;模型管理与监控横切全局。

6.2 登录与账户管理
图 6-3 登录与账户管理
图注:支持“登录/注册/一次性跳过”三种入口;注册采用口令哈希与盐并写入数据库,登录成功后载入个性化设置与历史记录,会话在多页签共享且可超时失效。

在账户管理过程中,系统首先判断用户是否具备既有账号;若无账号则进入注册流程,采用口令哈希与随机盐后方可写入数据库,并返回登录页面完成首次登录;已有账号直接执行登录校验,通过限流与基础风控防御暴力尝试。登录成功即创建会话并加载用户的个性化参数(主题、默认阈值、ROI 模板等)与最近任务历史;进入主界面后可随时修改头像与口令,更新写回数据库并刷新会话;匿名跳过仅在当前会话有效,适合临时演示;注销或切换账号后会话立即失效,确保与主检测流程在权限与溯源上无缝衔接。
代码下载链接
如果您希望获取博客中提及的完整资源包,包含测试图片、视频、Python文件(*.py)、网页配置文件、训练数据集、代码及界面设计等,可访问博主在面包多平台的上传内容。相关的博客和视频资料提供了所有必要文件的下载链接,以便一键运行。完整资源的预览如下图所示:


资源包中涵盖了你需要的训练测试数据集、训练测试代码、UI界面代码等完整资源,完整项目文件的下载链接可在Gitee项目中找到➷➷➷
完整项目下载、论文word范文下载与安装文档:https://deeppython.feishu.cn/wiki/XQMswylTmiw1c4ksU85cVRyAnOe
讲解视频地址:https://www.bilibili.com/video/BV1bhDkBfE23/
完整安装运行教程:
这个项目的运行需要用到Anaconda和Pycharm两个软件,下载到资源代码后,您可以按照以下链接提供的详细安装教程操作即可运行成功,如仍有运行问题可私信博主解决:
- Pycharm和Anaconda的安装教程:https://deepcode.blog.csdn.net/article/details/136639378;
软件安装好后需要为本项目新建Python环境、安装依赖库,并在Pycharm中设置环境,这几步采用下面的教程可选在线安装(pip install直接在线下载包):
- Python环境配置教程:https://deepcode.blog.csdn.net/article/details/136639396;
7. 结论与未来工作
本文面向“人群密度实时检测”场景,完成了一个基于 Flask + Flask-SocketIO + HTML/CSS/JS 的端到端平台:前端实现图片/视频/浏览器摄像头的统一入口、同步双帧渲染与进度控制,后端打通 YOLOv5–YOLOv12 八种模型与权重热切换、ROI 计数和密度热力可视,结果支持 CSV/带框图像与 MP4 一键导出并写入 SQLite 以便溯源。实证表明,在 8GB 级移动 GPU 上,轻量模型整体取得 F1≈0.89、mAP50≈0.94,其中 YOLOv8n 在端到端时延与精度间达成更优折中,适合多路实时部署;YOLOv9s/YOLOv7 在精度上略占优势,更契合离线复核与统计。结合 F1-Confidence 与 PR 曲线,平台默认 Conf=0.36、IoU=0.50,并在拥挤通道提供更高 IoU 的可选模板以降低粘连误报。当前系统的主要限制在于:仅单类别“行人”检测、对极端遮挡/强反射/远距小目标仍有漏检风险,跨摄像头的域偏移对泛化带来挑战;此外,NMS-free 与经典后处理在不同密度段的最优阈值仍需更细粒度的自适应策略。
面向未来,博主将从三个维度推进:(1)模型侧:在保持可解释“检测即密度”的前提下,引入蒸馏与结构化稀疏、PTQ/QAT(INT8/FP8)与张量并行,探索轻量注意力与动态路由的 YOLO 变体,以及与 RT-DETR/RT-DETRv2 的混合编排;扩展多任务头(检测+头肩分割+可见性评估)以增强在极端遮挡下的召回。(2)系统侧:完成 Docker 化与分布式任务队列(如 Celery/RQ)以支持多路长视频并发;在浏览器端引入 WebRTC 实时推流与零拷贝渲染,后端增加 动态批处理/自适应帧率 与 GPU 资源池化;完善 RBAC 角色权限、审计日志、隐私保护(人脸/身份标识模糊),面向多组织部署提供 i18n 与多租户 支持,并接入 Prometheus/Grafana 做可观测性。(3)数据侧:落地主动学习闭环,用在线难例与告警片段驱动半自动标注与再训练;建设跨摄像头 域偏移监测(嵌入分布/亮度时序漂移)与数据治理策略,持续优化长尾小目标与背光场景表现。随着上述工作推进,平台将从“稳定实时的人群密度检测与可视”迈向“可扩展、可审计、可自演化”的工程化解决方案,并为更大规模公共空间的安全监管与客流管理提供可靠基座。
参考文献(GB/T 7714)
1 Zhang Y, Zhou D, Chen S, et al. Single-Image Crowd Counting via Multi-Column Convolutional Neural Network[C]//CVPR. 2016: 589–597. (CVF Open Access)
2 Li Y, Zhang X, Chen D. CSRNet: Dilated CNNs for Understanding Highly Congested Scenes[C]//CVPR. 2018. (arXiv)
3 Sindagi V A, Yasarla R, Patel V M. JHU-CROWD++: Large-Scale Crowd Counting Dataset and A Benchmark Method[EB/OL]. 2020. (arXiv)
4 Wang Q, Gao J, Lin W, et al. NWPU-Crowd: A Large-Scale Benchmark for Crowd Counting and Localization[EB/OL]. 2020. (arXiv)
5 Shao S, Zhao Z, Li B, et al. CrowdHuman: A Benchmark for Detecting Human in a Crowd[EB/OL]. 2018. (arXiv)
6 Zhao Y, Lv W, Xu S, et al. DETRs Beat YOLOs on Real-time Object Detection[C]//CVPR. 2024. (CVF Open Access)
7 Lv W, Zhao Y, Chang Q, et al. RT-DETRv2: Improved Baseline with Bag-of-Freebies for Real-Time Detection Transformer[EB/OL]. 2024. (arXiv)
8 Wang C-Y, Bochkovskiy A, Liao H-Y M. YOLOv7: Trainable bag-of-freebies sets new SOTA for real-time detectors[EB/OL]. 2022.
9 Ultralytics. Explore YOLOv8 – Documentation[EB/OL]. 2023–2025. (Ultralytics Docs)
10 Wang C-Y, et al. YOLOv9: Learning with Programmable Gradient Information[EB/OL]. 2024. (arXiv)
11 Wang A, Chen H, Liu L, et al. YOLOv10: Real-Time End-to-End Object Detection[EB/OL]. 2024. (arXiv)
12 Ultralytics. YOLO11 – Documentation[EB/OL]. 2024–2025. (Ultralytics Docs)
13 Tian Y, Ye Q, Doermann D. YOLOv12: Attention-Centric Real-Time Object Detectors[EB/OL]. 2025. (arXiv)
14 Xu S, Wang X, Lv W, et al. PP-YOLOE: An evolved version of YOLO[EB/OL]. 2022. (arXiv)
15 Ge Z, Liu S, Wang F, et al. YOLOX: Exceeding YOLO Series in 2021[EB/OL]. 2021. (arXiv)
16 Ren S, He K, Girshick R, Sun J. Faster R-CNN[J]. 2015. (arXiv)
17 Lin T-Y, Goyal P, Girshick R, et al. Focal Loss for Dense Object Detection[C]//ICCV. 2017. (CVF Open Access)
18 Tian Z, Shen C, Chen H. FCOS[C]//ICCV. 2019. (CVF Open Access)
19 Duan K, Bai S, Xie L, et al. CenterNet[C]//CVPR. 2019. (arXiv)
20 Tan M, Pang R, Le Q V. EfficientDet[J]. 2020. (CVF Open Access)
21 Rezatofighi H, Tsoi N, Gwak J, et al. Generalized IoU[C]//CVPR. 2019. (CVF Open Access)
22 Zheng Z, Wang P, Liu W, et al. Distance-IoU Loss / Complete-IoU Loss[C]//AAAI. 2020. (AAAI Online Journal)
23 Zhang Y-F, Ren W, Zhang Z, et al. Focal and Efficient IoU (EIoU) Loss[EB/OL]. 2021. (arXiv)
24 ONNX Runtime – Docs与Roadmap[EB/OL]. 2025. (ONNX Runtime)
25 NVIDIA TensorRT – Docs与Release Notes[EB/OL]. 2025. (NVIDIA Docs)
26 余鹰, 朱慧琳, 钱进, 等. 基于深度学习的人群计数研究综述[J]. 计算机研究与发展, 2021. (Crad)
[27] 孙银萍, 张兴国, 石新雨, 等. 顾及视频地理映射的人群密度估计方法[J]. 地球信息科学学报, 2022. (DQXXKX)

浙公网安备 33010602011771号