车牌检测系统
基于YOLO11s模型的实时车牌检测应用,支持摄像头和视频文件输入,具备GPU加速和车牌识别接口。
功能特性
- ✅ 实时车牌检测: 基于YOLO11s ONNX模型
 - ✅ GPU加速: 支持CUDA GPU推理加速
 - ✅ 多视频源: 支持摄像头和视频文件切换
 - ✅ 实时显示: 显示检测框、置信度和实时FPS
 - ✅ 图像切割: 自动切割检测到的车牌区域
 - ✅ 识别接口: 预留车牌号识别接口,可接入OCR模型
 - ✅ 友好界面: 基于PyQt5的现代化用户界面
 
系统要求
- Python 3.7+
 - Windows/Linux/macOS
 - 摄像头(可选)
 - NVIDIA GPU(可选,用于加速)
 
安装依赖
# 安装基础依赖
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. 运行应用
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计算窗口大小
 - 视频文件路径
 
扩展开发
添加新的车牌识别器
- 继承
PlateRecognizerInterface基类 - 实现
recognize和batch_recognize方法 - 在
PlateRecognizerManager中注册新识别器 
添加新功能
- 检测结果保存
 - 车牌数据库管理
 - 网络接口API
 - 多摄像头支持
 
故障排除
常见问题
- 
模型加载失败
- 检查
last.onnx文件是否存在 - 确认onnxruntime版本兼容性
 
 - 检查
 - 
摄像头无法打开
- 检查摄像头是否被其他程序占用
 - 尝试不同的摄像头索引
 
 - 
GPU加速不生效
- 确认安装了
onnxruntime-gpu - 检查CUDA环境配置
 
 - 确认安装了
 - 
车牌识别失败
- 检查OCR依赖是否正确安装
 - 尝试切换不同的识别器
 
 
性能优化
- 使用GPU加速推理
 - 调整检测阈值减少误检
 - 优化图像预处理流程
 - 使用多线程处理
 
许可证
本项目仅供学习和研究使用。
更新日志
v1.0.0
- 初始版本发布
 - 支持YOLO11s车牌检测
 - 实现基础UI界面
 - 预留车牌识别接口