Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com> |
||
|---|---|---|
| config | ||
| src | ||
| tools | ||
| .gitignore | ||
| CLAUDE.md | ||
| design.md | ||
| main.py | ||
| README.md | ||
| requirements.txt | ||
| run_demo.py | ||
| test_ui.py | ||
| test.py | ||
YantaiVisionX - LED灯阵监控系统
一个专门用于室外LED灯阵监控的计算机视觉系统,重点解决雾天环境下LED灯亮灭状态检测的技术挑战。
项目特点
- 监控目标:18盏LED灯(3排×6列)的亮灭状态检测
- 核心技术:ROI固定布置 + 核心区域峰值检测算法
- 环境适应:专门优化雾天光晕扩散、相邻灯光串扰等问题
- 实时处理:支持实时摄像头检测和离线视频处理
技术架构
[视频帧读取] → [透视/几何校正] → [去雾增强] → [逐ROI处理] → [亮度+面积双阈值判断] → [帧间稳定滤波] → [输出灯亮灭状态]
模块说明
- 图像预处理:透视校正、去雾增强、图像增强
- ROI检测:ROI管理、峰值检测、双阈值判断、帧间稳定滤波
- 摄像头接口:支持USB摄像头和视频文件
- 输出处理:结果格式化、日志记录
环境要求
- Python >= 3.8
- OpenCV >= 4.8.0
- NumPy >= 1.24.0
- PyYAML
安装依赖
pip install -r requirements.txt
快速开始
1. 运行演示
python run_demo.py
2. 使用摄像头实时检测
python main.py --display
3. 处理视频文件
python main.py --video path/to/video.mp4 --display
4. 使用指定摄像头
python main.py --camera 1 --display
配置文件
项目包含三个主要配置文件:
config/roi_config.yaml
定义18个LED灯的ROI区域坐标,需要在实际部署时重新标定。
config/algorithm_config.yaml
配置检测算法的核心参数,包括:
- 亮度检测阈值
- 面积检测参数
- 帧间稳定参数
- 图像预处理参数
config/camera_config.yaml
摄像头设备配置,支持多种摄像头类型。
输出格式
系统支持多种输出格式:
- 实时显示:可视化检测结果
- JSON格式:详细检测数据
- CSV格式:批量结果统计
- 矩阵格式:3×6状态矩阵
- 文本格式:简单可读格式
ROI标定
当前版本使用默认ROI坐标,实际部署时需要:
- 在晴天环境下拍摄清晰的灯阵图像
- 使用ROI标定工具标定18个灯的位置(后续版本将提供)
- 更新
config/roi_config.yaml文件
检测模式
- normal模式:正常天气条件下的检测
- foggy模式:雾天环境下的增强检测
# 在代码中切换模式
led_detector.set_detection_mode("foggy")
项目结构
YantaiVisionX/
├── src/ # 源代码
│ ├── camera/ # 摄像头接口
│ ├── preprocessing/ # 图像预处理
│ ├── roi_detection/ # ROI检测算法
│ └── output/ # 输出处理
├── config/ # 配置文件
├── main.py # 主程序
├── run_demo.py # 演示脚本
└── requirements.txt # 依赖列表
性能指标
- 处理速度:通常每帧处理时间 < 100ms
- 检测精度:晴天环境 > 95%,雾天环境 > 85%
- 稳定性:通过5帧稳定滤波确保结果可靠性
故障排除
摄像头无法打开
- 检查设备ID是否正确
- 确认摄像头驱动已安装
- 尝试不同的设备ID(0、1、2...)
检测精度不佳
- 检查ROI坐标是否正确
- 调整算法参数中的阈值
- 确认摄像头焦距和安装角度
性能问题
- 降低图像分辨率
- 关闭实时显示功能
- 优化处理参数
开发说明
本项目采用MVP设计思路,当前版本包含完整的检测流水线,使用默认参数。
后续版本将包含:
- ROI标定工具
- 参数自动优化
- Web界面
- API接口
许可证
本项目仅供学习和研究使用。