64704fd3fec80c1d5963c05704dc3452b3f04446
行人识别与闯红灯检测系统
这是一个基于OpenCV的行人识别与闯红灯检测系统,提供了用户友好的可视化界面。系统能够通过摄像头或视频文件实时检测行人,并在开启红绿灯检测功能后识别行人闯红灯行为。
功能特性
- 行人检测:使用基于OpenCV dnn模块的YOLOv3-tiny模型检测画面中的行人
- 红绿灯识别:通过颜色识别检测红绿灯状态
- 闯红灯检测:当检测到红灯且有行人在道路区域时,标记为闯红灯
- 可视化界面:提供了PyQt5实现的图形界面,支持摄像头和视频文件输入
- 实时统计:显示检测到的行人数量和闯红灯人数
- 自动模型下载:首次运行时自动下载YOLOv3-tiny模型文件
安装要求
- Python 3.6+
- 所需依赖包见requirements.txt
安装步骤
- 克隆或下载本项目到本地
- 安装所需依赖:
pip install -r requirements.txt
使用方法
-
运行主程序:
python pedestrian_recognition.py -
在界面中可以:
- 点击"使用摄像头"按钮启动摄像头实时检测
- 点击"打开视频文件"按钮选择本地视频文件进行检测
- 勾选"开启闯红灯检测"复选框启用红绿灯识别和闯红灯检测功能
- 点击"停止"按钮停止当前视频流
技术说明
- 行人检测:使用基于OpenCV dnn模块的YOLOv3-tiny模型进行行人检测,比传统HOG+SVM方法具有更高的检测精度和抗干扰能力
- 红绿灯识别:通过HSV颜色空间分析识别红色和绿色交通灯
- 界面实现:使用PyQt5构建图形界面,实现视频显示和用户交互
- 视频处理:使用OpenCV进行视频帧处理,PyQt5进行界面渲染
- 模型管理:自动下载和管理YOLOv3-tiny模型文件,包括配置文件、权重文件和类别名称文件
注意事项
- 行人检测在光线充足的环境下效果更好,YOLOv3-tiny模型相比传统方法具有更好的抗干扰能力
- 红绿灯识别依赖于清晰可见的交通灯颜色,请确保画面中红绿灯区域足够明显
- 当前实现的闯红灯检测基于简单的位置判断,可能需要根据实际场景调整参数以提高准确性
- 首次运行时会自动下载YOLOv3-tiny模型文件,需要网络连接
- 模型文件默认保存在项目目录下的yolo_models文件夹中
扩展可能性
- 添加深度学习模型以提高行人检测和红绿灯识别的准确性
- 实现多目标跟踪功能
- 添加违规行为记录和报警功能
- 集成声音提示功能
- 支持多摄像头监控
许可证
本项目采用MIT许可证。
源代码和编译的可执行文件(可能是老版本,)
通过网盘分享的文件:opencv-pedestrian-recognition.zip 链接: https://pan.baidu.com/s/1D4dYF_k6PXVrZgEzGA7XVg?pwd=mfxh 提取码: mfxh --来自百度网盘超级会员v9的分享
Description
Languages
Python
100%