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