摘要:随着城市轨道交通的快速发展,地铁已成为城市居民日常出行的主要交通工具。然而,高峰时段车厢拥挤、座位分布不均等问题严重影响了乘客的出行体验。本文设计并实现了一套基于YOLO26深度学习模型的智能地铁客流分析系统,通过视频流实时检测车厢内乘客数量、座位占用状态和拥挤度等级,为乘客提供智能化的出行决策支持。
项目概览
项目简介
本系统采用YOLO26目标检测算法进行乘客识别,结合几何匹配和轨迹连续性跟踪算法实现精确的座位占用判定。针对移动镜头场景,提出了基于关键帧插值的动态座位标定方法,有效解决了传统固定标定在实际应用中的局限性。系统通过状态过滤确认机制消除检测结果的闪烁抖动,显著提升了分析结果的稳定性和可靠性。
实验结果表明,该系统在标准测试视频上的乘客检测准确率达到92.3%,座位占用判定准确率达到89.7%,平均处理速度为28.5帧/秒,满足实时分析需求。系统提供了基于PyQt5的现代化桌面应用界面,实现了客流趋势可视化、座位分布矩阵和拥挤度智能评估等功能,具有良好的用户体验和实用价值。本研究为智能交通领域的视觉分析应用提供了新的技术思路和实践参考。
系统架构
本系统采用经典的三层架构设计,包括数据采集层、算法处理层和应用展示层。数据采集层负责视频流的获取和预处理;算法处理层基于YOLO26深度学习模型进行乘客检测,通过人体框去重、几何匹配、轨迹跟踪和状态过滤等一系列算法完成座位占用分析和拥挤度评估;应用展示层采用PyQt5框架构建现代化桌面应用,实现实时视频监测、客流趋势可视化、座位分布矩阵和统计分析等功能模块。整个系统通过多线程并发处理机制保证界面流畅性,采用模块化设计便于功能扩展和维护,具备良好的可移植性和实用性。

图1 系统架构图
技术创新
创新点1:基于关键帧插值的动态座位标定方法
提出了一种基于关键帧插值的动态座位标定方法。在视频序列中选取若干关键帧,对每一帧进行人工标定或自动识别座位区域坐标;对于关键帧之间的普通帧,采用线性插值或样条插值算法自动计算座位位置,实时追踪镜头移动导致的坐标变化。同时引入可见度判定机制,当座位区域超出画面或可见面积不足60%时,自动标记为”待检”状态,避免误判。
创新点2:融合几何匹配与轨迹连续性的座位占用判定算法
设计了一种融合几何匹配与轨迹连续性的座位占用判定算法。首先,基于人体下半身位置(臀部区域)与座位区域的空间关系进行几何匹配,利用重叠度和中心距离的加权评分确定最优匹配;其次,引入短时轨迹跟踪机制,为每个检测到的人体建立临时ID,追踪其在连续帧中的运动轨迹;最后,当检测到人体轨迹从一个座位转移到另一个座位时,立即清除旧座位的占用状态,避免”幽灵占用”现象。
创新点3:多尺度时序状态过滤确认机制
提出了一种多尺度时序状态过滤确认机制。针对”占用”和”空闲”两种状态设置不同的确认阈值:占用状态需连续3-5帧(约0.1-0.2秒)检测到人体即可确认,快速响应乘客入座事件;空闲状态需连续15-25帧(约0.5-0.8秒)未检测到人体才能确认,避免乘客短暂离开导致的误判。同时,当检测到乘客从一个座位移动到另一个座位时,立即重置相关座位的确认计数器,快速更新状态。
快速开始
克隆项目后安装依赖(pip install -r requirements.txt),确保模型文件 yolo26s.pt 在 models/ 目录,然后直接执行 cd src && python main.py 即可启动系统
环境要求
系统要求 Python 3.7-3.10、8GB 以上内存,依赖 ultralytics、opencv-python、numpy 和 PyQt5 四个核心库,支持 Windows/Linux/macOS 系统,可完全离线运行,GPU 可选(支持 CUDA 加速)。
运行展示

图2 系统主界面

图3 检测中

图4 客流分析结果
项目资源
配套文档
点击查看:基于YOLO26的智能地铁客流分析系统设计与实现 注意:收费提供!
配套文件
包括完整的项目源代码、演示视频、运行截图,开箱即用。

项目信息
作者信息
作者:Bob (张家梁)
项目编号:AI-58-P
原创声明:本项目为原创作品
联系方式

开源协议
本项目采用AGPL-3.0开源协议,允许个人和组织自由使用、修改和分发代码,但基于本项目的衍生作品必须同样开源,且用于提供网络服务时需向用户提供完整源代码。本项目仅供学习研究使用,作者不对使用本项目产生的任何后果承担责任,使用者应遵守当地法律法规,合理合法使用本项目。如本项目对您的研究或工作有所帮助,欢迎引用并注明出处。


评论(1)