# 车牌检测系统 基于YOLO11s模型的实时车牌检测应用,支持摄像头和视频文件输入,具备GPU加速和车牌识别接口。 ## 功能特性 - ✅ **实时车牌检测**: 基于YOLO11s ONNX模型 - ✅ **GPU加速**: 支持CUDA GPU推理加速 - ✅ **多视频源**: 支持摄像头和视频文件切换 - ✅ **实时显示**: 显示检测框、置信度和实时FPS - ✅ **图像切割**: 自动切割检测到的车牌区域 - ✅ **识别接口**: 预留车牌号识别接口,可接入OCR模型 - ✅ **友好界面**: 基于PyQt5的现代化用户界面 ## 系统要求 - Python 3.7+ - Windows/Linux/macOS - 摄像头(可选) - NVIDIA GPU(可选,用于加速) ## 安装依赖 ```bash # 安装基础依赖 pip install -r requirements.txt # 如果需要CPU版本的onnxruntime pip uninstall onnxruntime-gpu pip install onnxruntime # 可选:安装车牌识别依赖 # PaddleOCR pip install paddlepaddle paddleocr # 或者 Tesseract pip install pytesseract ``` ## 使用方法 ### 1. 准备模型文件 确保项目根目录下有以下文件: - `last.onnx`: YOLO11s车牌检测模型 - `video.mp4`: 测试视频文件(可选) ### 2. 运行应用 ```bash python main.py ``` ### 3. 界面操作 - **开始检测**: 点击"开始检测"按钮启动实时检测 - **切换视频源**: 勾选/取消"使用摄像头"切换视频源 - **启用检测**: 勾选/取消"启用检测"开关检测功能 - **查看结果**: 右侧面板显示检测信息和车牌识别结果 ## 项目结构 ``` yolopart/ ├── main.py # 主程序入口 ├── requirements.txt # 依赖包列表 ├── README.md # 项目说明 ├── last.onnx # YOLO11s模型文件 ├── video.mp4 # 测试视频文件 ├── ui/ # 用户界面模块 │ ├── __init__.py │ ├── main_window.py # 主窗口 │ └── video_widget.py # 视频显示组件 ├── models/ # 模型模块 │ ├── __init__.py │ ├── yolo_detector.py # YOLO检测器 │ └── plate_recognizer.py # 车牌识别接口 └── utils/ # 工具模块 ├── __init__.py └── video_capture.py # 视频捕获管理 ``` ## 核心功能说明 ### YOLO检测器 (`models/yolo_detector.py`) - 支持ONNX格式的YOLO11s模型 - 自动GPU/CPU推理选择 - 640x640输入尺寸 - NMS后处理 - 检测框绘制和车牌切割 ### 视频捕获 (`utils/video_capture.py`) - 摄像头自动检测和配置 - 视频文件循环播放 - 实时FPS计算和显示 - 线程安全的帧获取 ### 车牌识别接口 (`models/plate_recognizer.py`) 提供了多种识别器实现: - `MockPlateRecognizer`: 模拟识别器(用于测试) - `PaddleOCRRecognizer`: PaddleOCR识别器 - `TesseractRecognizer`: Tesseract识别器 可通过`PlateRecognizerManager`轻松切换不同的识别引擎。 ## 配置说明 ### 检测参数调整 在`models/yolo_detector.py`中可以调整: - `conf_threshold`: 置信度阈值(默认0.5) - `nms_threshold`: NMS阈值(默认0.4) - `input_size`: 输入尺寸(默认640x640) ### 视频参数调整 在`utils/video_capture.py`中可以调整: - 摄像头分辨率和帧率 - FPS计算窗口大小 - 视频文件路径 ## 扩展开发 ### 添加新的车牌识别器 1. 继承`PlateRecognizerInterface`基类 2. 实现`recognize`和`batch_recognize`方法 3. 在`PlateRecognizerManager`中注册新识别器 ### 添加新功能 - 检测结果保存 - 车牌数据库管理 - 网络接口API - 多摄像头支持 ## 故障排除 ### 常见问题 1. **模型加载失败** - 检查`last.onnx`文件是否存在 - 确认onnxruntime版本兼容性 2. **摄像头无法打开** - 检查摄像头是否被其他程序占用 - 尝试不同的摄像头索引 3. **GPU加速不生效** - 确认安装了`onnxruntime-gpu` - 检查CUDA环境配置 4. **车牌识别失败** - 检查OCR依赖是否正确安装 - 尝试切换不同的识别器 ### 性能优化 - 使用GPU加速推理 - 调整检测阈值减少误检 - 优化图像预处理流程 - 使用多线程处理 ## 许可证 本项目仅供学习和研究使用。 ## 更新日志 ### v1.0.0 - 初始版本发布 - 支持YOLO11s车牌检测 - 实现基础UI界面 - 预留车牌识别接口