基于深度学习的密集人群行人检测系统演示与介绍(YOLOv12/v11/v8/v5模型+Pyqt5界面+训练代码+数据集)

news/2026/1/21 20:16:47/文章来源:https://www.cnblogs.com/codingtea/p/19513957

视频演示

基于深度学习的密集人群行人检测系统

1. 前言​

大家好,欢迎来到 Coding茶水间

在城市公共安全、大型活动保障以及智能监控等领域,密集人群的行人检测一直是极具挑战的任务——现实场景中,人群往往高度聚集、姿态多样、相互遮挡严重,传统检测方法在复杂背景下容易出现漏检或误检,且面对海量视频与图像数据时效率低下。目前多数系统只能处理稀疏场景或单帧静态图片,缺乏同时兼顾高精度、实时性与批量处理的能力,也难以满足对检测结果进行可视化标注、数据统计与多端导出的综合需求。

为此,我们基于 YOLO 系列目标检测算法,研发了一套 密集人群行人检测系统,能够在高密度的场景下准确定位并标记每一个行人,支持图片、视频、文件夹批量图片以及实时摄像头流的检测,并提供模型切换、置信度与交并比调节、检测耗时与目标统计、类别统计、检测结果可视化、语音播报、数据导出以及用户登录管理等完整功能。同时,系统还配套脚本化调用与模型训练模块,方便用户根据自有数据快速迭代优化模型。

今天,我们将带大家全面了解这套系统的界面设计、核心功能与实际演示效果,感受它在复杂密集人群场景下的检测能力与实用性。

业务介绍图

2. 项目演示

2.1 用户登录界面

登录界面布局简洁清晰,左侧展示系统主题,用户需输入用户名、密码及验证码完成身份验证后登录系统。

1

2.2 新用户注册

注册时可自定义用户名与密码,支持上传个人头像;如未上传,系统将自动使用默认头像完成账号创建。

ScreenShot_2025-12-29_115939_835

2.3 主界面布局

主界面采用三栏结构,左侧为功能操作区,中间用于展示检测画面,右侧呈现目标详细信息,布局合理,交互流畅。

2

2.4 个人信息管理

用户可在此模块中修改密码或更换头像,个人信息支持随时更新与保存。

ScreenShot_2025-12-29_120030_826

2.5 多模态检测展示

系统支持图片、视频及摄像头实时画面的目标检测。识别结果将在画面中标注显示,并且带有语音播报提醒,并在下方列表中逐项列出。点击具体目标可查看其类别、置信度及位置坐标等详细信息。

3

2.6 检测结果保存

可以将检测后的图片、视频进行保存,生成新的图片和视频,新生成的图片和视频中会带有检测结果的标注信息,并且还可以将所有检测结果的数据信息保存到excel中进行,方便查看检测结果。

003ScreenShot_2025-12-29_115905_723

2.7 多模型切换

系统内置多种已训练模型,用户可根据实际需求灵活切换,以适应不同检测场景或对比识别效果。

ScreenShot_2025-12-29_120042_821

3.模型训练核心代码

本脚本是YOLO模型批量训练工具,可自动修正数据集路径为绝对路径,从pretrained文件夹加载预训练模型,按设定参数(100轮/640尺寸/批次8)一键批量训练YOLOv5nu/v8n/v11n/v12n模型。

# -*- coding: utf-8 -*-
"""
该脚本用于执行YOLO模型的训练。它会自动处理以下任务:
1. 动态修改数据集配置文件 (data.yaml),将相对路径更新为绝对路径,以确保训练时能正确找到数据。
2. 从 'pretrained' 文件夹加载指定的预训练模型。
3. 使用预设的参数(如epochs, imgsz, batch)启动训练过程。要开始训练,只需直接运行此脚本。
"""
import os
import yaml
from pathlib import Path
from ultralytics import YOLOdef main():"""主训练函数。该函数负责执行YOLO模型的训练流程,包括:1. 配置预训练模型。2. 动态修改数据集的YAML配置文件,确保路径为绝对路径。3. 加载预训练模型。4. 使用指定参数开始训练。"""# --- 1. 配置模型和路径 ---# 要训练的模型列表models_to_train = [{'name': 'yolov5nu.pt', 'train_name': 'train_yolov5nu'},{'name': 'yolov8n.pt', 'train_name': 'train_yolov8n'},{'name': 'yolo11n.pt', 'train_name': 'train_yolo11n'},{'name': 'yolo12n.pt', 'train_name': 'train_yolo12n'}]# 获取当前工作目录的绝对路径,以避免相对路径带来的问题current_dir = os.path.abspath(os.getcwd())# --- 2. 动态配置数据集YAML文件 ---# 构建数据集yaml文件的绝对路径data_yaml_path = os.path.join(current_dir, 'train_data', 'data.yaml')# 读取原始yaml文件内容with open(data_yaml_path, 'r', encoding='utf-8') as f:data_config = yaml.safe_load(f)# 将yaml文件中的 'path' 字段修改为数据集目录的绝对路径# 这是为了确保ultralytics库能正确定位到训练、验证和测试集data_config['path'] = os.path.join(current_dir, 'train_data')# 将修改后的配置写回yaml文件with open(data_yaml_path, 'w', encoding='utf-8') as f:yaml.dump(data_config, f, default_flow_style=False, allow_unicode=True)# --- 3. 循环训练每个模型 ---for model_info in models_to_train:model_name = model_info['name']train_name = model_info['train_name']print(f"\n{'='*60}")print(f"开始训练模型: {model_name}")print(f"训练名称: {train_name}")print(f"{'='*60}")# 构建预训练模型的完整路径pretrained_model_path = os.path.join(current_dir, 'pretrained', model_name)if not os.path.exists(pretrained_model_path):print(f"警告: 预训练模型文件不存在: {pretrained_model_path}")print(f"跳过模型 {model_name} 的训练")continuetry:# 加载指定的预训练模型model = YOLO(pretrained_model_path)# --- 4. 开始训练 ---print(f"开始训练 {model_name}...")# 调用train方法开始训练model.train(data=data_yaml_path,  # 数据集配置文件epochs=100,           # 训练轮次imgsz=640,            # 输入图像尺寸batch=8,             # 每批次的图像数量name=train_name,      # 模型名称)print(f"{model_name} 训练完成!")except Exception as e:print(f"训练 {model_name} 时出现错误: {str(e)}")print(f"跳过模型 {model_name},继续训练下一个模型")continueprint(f"\n{'='*60}")print("所有模型训练完成!")print(f"{'='*60}")if __name__ == "__main__":# 当该脚本被直接执行时,调用main函数main()

4. 技术栈

  • 语言:Python 3.10

  • 前端界面:PyQt5

  • 数据库:SQLite(存储用户信息)

  • 模型:YOLOv5、YOLOv8、YOLOv11、YOLOv12

5. YOLO模型对比与识别效果解析

5.1 YOLOv5/YOLOv8/YOLOv11/YOLOv12模型对比

基于Ultralytics官方COCO数据集训练结果:

模型

尺寸(像素)

mAPval 50-95

速度(CPU ONNX/毫秒)

参数(M)

FLOPs(B)

YOLO12n

640

40.6

-

2.6

6.5

YOLO11n

640

39.5

56.1 ± 0.8

2.6

6.5

YOLOv8n

640

37.3

80.4

3.2

8.7

YOLOv5nu

640

34.3

73.6

2.6

7.7

关键结论

  1. 精度最高:YOLO12n(mAP 40.6%),显著领先其他模型(较YOLOv5nu高约6.3个百分点);

  2. 速度最优:YOLO11n(CPU推理56.1ms),比YOLOv8n快42%,适合实时轻量部署;

  3. 效率均衡:YOLO12n/YOLO11n/YOLOv8n/YOLOv5nu参数量均为2.6M,FLOPs较低(YOLO12n/11n仅6.5B);YOLOv8n参数量(3.2M)与计算量(8.7B)最高,但精度优势不明显。

综合推荐

  • 追求高精度:优先选YOLO12n(精度与效率兼顾);

  • 需高速低耗:选YOLO11n(速度最快且精度接近YOLO12n);

  • YOLOv5nu/YOLOv8n因性能劣势,无特殊需求时不建议首选。

5.2 数据集分析

labels

数据集中训练集和验证集一共3900张图片,数据集目标类别1种:裂缝数据集配置代码如下:

names:
- person
nc: 1
path: D:\project\python\yolo_Dense_Crowd_Pedestrian_Detection\train_data
test: ../test/images
train: ../train/images
val: ../valid/images

train_batch0train_batch1

上面的图片就是部分样本集训练中经过数据增强后的效果标注。

5.3 训练结果

confusion_matrix_normalized

混淆矩阵显示中识别精准度显示是一条对角线,方块颜色越深代表对应的类别识别的精准度越高

BoxF1_curve

F1指数(F1 Score)是统计学和机器学习中用于评估分类模型性能的核心指标,综合了模型的精确率(Precision)和召回率(Recall),通过调和平均数平衡两者的表现。 

当置信度为0.311时,所有类别的综合F1值达到了0.71(蓝色曲线)。

BoxPR_curve

mAP@0.5:是目标检测任务中常用的评估指标,表示在交并比(IoU)阈值为0.5时计算的平均精度均值(mAP)。其核心含义是:只有当预测框与真实框的重叠面积(IoU)≥50%时,才认为检测结果正确。

图中可以看到综合mAP@0.5达到了0.726(72.6%),准确率非常高。

6. 源码获取方式

源码获取方式:https://www.bilibili.com/video/BV12YvaBXE2K

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1196147.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

0117模考

考时 开场1h纯在chatting with friends,1h后才开始写题。 开T1,这不是MST+倍增板子吗,直接写写写,调了几发,在10:40交了。 T2看了是个状压dp板子,感觉比较难写(之后发现代码只有1k),先看T3。 T3看了十分钟有了思…

ps命令

ps命令下面给你一组“更全、更强”的命令组合,用于 Kafka 进程性能分析。你可以把它们当作一套排查脚本:从线程、CPU、IO、网络、GC、JVM 堆、以及系统层面逐层分析。 我会按从轻量到重型排序,并且说明每条命令的用…

Docker 镜像启动失败时,如何用 --entrypoint 进入容器排障

# Docker 镜像启动即退出?使用 --entrypoint /bin/bash 进入容器排障 在日常使用 Docker 的过程中,经常会遇到这样一种情况: > 镜像可以正常 build > 但 `docker run` 一启动就退出 > 容器根本进不去,日…

打破屏幕的边界:实战 MCP 协议对接 Slack 与 Telegram,构建 7*24 小时随身待命的 AI 智能指挥中心

🚀 打破屏幕的边界:实战 MCP 协议对接 Slack 与 Telegram,构建 7*24 小时随身待命的 AI 智能指挥中心 💡 内容摘要 (Abstract) 在移动办公与分布式协作成为主流的今天,交互的“即时性”与“无处不在”是提升生产力的…

使用natapp实现内网穿透

1、由于在开发的时候需要接微信支付、支付宝支付等其他接口的时候,需要线上回调,这在本地开发测试的比较麻烦,所以就使用natapp内网穿透工具实现远程接口可以直接回调到本地 2、安装:#由于我是使用的linux环境,所…

含贵金属六元合金详解:成分、应用及本地合规回收攻略

在贵金属合金领域,六元合金因兼具多种贵金属的优异性能,成为电子、化工、航空航天等高端行业的核心材料,同时也是工业废料中极具回收价值的“隐形宝库”。本文结合本地行业实操经验,全面拆解含贵金属六元合金的成分…

【C++】网络编程 - hjk

前言 围绕Socket 的基础概念、I/O 模型,逐步实现阻塞 I/O 客户端 - 服务器、多进程 / 多线程服务端处理,以及基于 select、poll、epoll 的 I/O 多路复用服务端,侧重与如何实现。 什么是socket 在C++中,Socket编程是…

京东e卡回收,秒变实用零钱

不少人手里都攒着闲置的京东e卡,想把它们换成能随手花的日常零钱。就说楼下的张阿姨吧,去年她收到两张面值五百的京东e卡,可她平时很少在京东购物,便琢磨着换成零钱给孙子买零食、给老伴买茶。她跑了两家线下礼品回…

Oracle 迁移至 KingbaseES 实战指南(最佳实践)

Oracle 迁移至 KingbaseES 实战指南(最佳实践) 随着国产数据库生态逐步成熟,越来越多企业开始将核心业务系统从 Oracle 等商业数据库迁移至国产数据库平台。其中,KingbaseES 作为国产关系型数据库中对 Oracle 兼容度较高的产品之…

day7 454.383.15.18

day7 454.383.15.18Leetcode 454 四数相加Ⅱ unordered_map使用的练习,一次通过,但是定义了两个unordered_map,并且需要经过两次遍历,空间和时间消耗都增加了 int fourSumCount(vector<int>& nums1, vec…

使用 Python 将 PowerPoint 转换为 Word 文档 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

SDK location not found. Define a valid SDK location with an ANDROID_HOME environment variable or by

Android React Native 异常处理 异常信息 FAILURE: Build failed with an exception.* Where: Build file D:\Git\Tencent\odin-client\android\build.gradle line: 25* What went wrong: A problem occurred evaluating root project odin-client. > Failed to apply plu…

论文重复率突破30%?5个实用策略迅速达标

学术论文重复率超标是研究者常见的挑战&#xff0c;当查重结果显示超过30%时&#xff0c;建议采用以下5种核心策略进行优化处理&#xff1a;运用语义替换工具对原有表述进行创新性重构&#xff1b;对文章框架进行系统性调整以改变内容呈现顺序&#xff1b;将直接引文转换为释义…

智能降重新体验:8款AI论文查重工具实测对比

在学术写作过程中&#xff0c;查重率往往成为研究者必须面对的关键指标&#xff0c;既反映了学术规范性要求&#xff0c;又可能带来修改压力。为有效应对这一挑战&#xff0c;当前已有多种智能辅助工具可供选择&#xff0c;能够帮助用户在保持学术严谨性的前提下优化文本原创性…

高效论文查重:8款AI工具功能与改写效果评测

学术写作中&#xff0c;查重率是衡量研究规范性的重要指标&#xff0c;但也常引发文本修改的困扰。现代自然语言处理技术驱动的智能工具能够精准识别文本相似度&#xff0c;并通过语义保留的重构算法提升内容原创性。这类解决方案既满足学术机构的规范性要求&#xff0c;又能显…

A problem occurred starting process ‘command ‘bash‘‘

Android React Native 异常处理 异常信息 > Task :react-native-audio-api:downloadPrebuiltBinaries FAILED> Task :posthog-react-native-session-replay:generateCodegenSchemaFromJavaScript …

hipDF AMD GPU 支持的Pandas,类似cuDF

AMD 有完全对标 CUDA 的开源异构计算方案 ROCm(Radeon Open Compute Platform),核心由 HIP 编程接口、编译器 / 库 / 运行时及工具链组成,可替代 CUDA 用于 HPC、AI 训练推理与通用并行计算。 关键优势与限制优势开…

洛谷B3731 [信息与未来 2017] 房屋积水 题解

本文已同步至洛谷专栏。 思路 第一步肯定是处理出 \(R\) 数列和 \(a\) 数列。 接着对于每个 \(i \in [1,n]\),考虑位置 \(i\) 上面水的高度。 \(i\) 上面水的高度一定是左边有一个 \(j<i\) 且 \(a_j>a_i\) 的 \…

大数据领域数据中台的航空行业运营优化

大数据领域数据中台的航空行业运营优化 关键词:数据中台、航空运营优化、实时数据处理、主数据管理、机器学习预测、数字化转型、智能决策支持 摘要:本文深入探讨数据中台在航空行业运营优化中的核心价值与实施路径。通过构建航空数据中台的技术架构,解析数据采集治理、实时…

一些经常出现的主题词用简写,引言和正文翻译部分可以找一些英语时态技巧

一些经常出现的主题词用简写,类似倒伏甘蔗、螺旋式扶蔗器、质心垂直高度这些词,翻译时候把这些主题词用字母替换,引言和正文翻译部分可以找一些英语时态技巧,英文翻译后再翻译成中文看下语言意思有没有变,有变的可…