# 车牌识别系统 基于YOLO11 Pose模型的实时车牌检测与识别系统,支持蓝牌和绿牌的检测、四角点定位、透视矫正和车牌号识别。 ## 项目结构 ``` License_plate_recognition/ ├── main.py # 主程序入口,PyQt界面 ├── requirements.txt # 依赖包列表 ├── README.md # 项目说明文档 ├── yolopart/ # YOLO检测模块 │ ├── detector.py # YOLO检测器类 │ └── yolo11s-pose42.pt # YOLO pose模型文件 ├── OCR_part/ # OCR识别模块 │ └── ocr_interface.py # OCR接口(占位) └── CRNN_part/ # CRNN识别模块 └── crnn_interface.py # CRNN ``` ## 功能特性 ### 1. 实时车牌检测 - 基于YOLO11 Pose模型进行车牌检测 - 支持蓝牌(类别0)和绿牌(类别1)识别 - 实时摄像头画面处理 ### 2. 四角点定位 - 检测车牌的四个角点:right_bottom, left_bottom, left_top, right_top - 只有检测到完整四个角点的车牌才进行后续处理 - 用黄色线条连接四个角点显示检测结果 ### 3. 透视矫正 - 使用四个角点进行透视变换 - 将倾斜的车牌矫正为标准矩形 - 输出标准尺寸的车牌图像供识别使用 ### 4. PyQt界面 - 左侧:实时摄像头画面显示 - 右侧:检测结果展示区域 - 顶部显示识别到的车牌数量 - 每行显示:车牌类型、矫正后图像、车牌号 - 美观的现代化界面设计 ### 5. 模块化设计 - yolopart:负责车牌定位和矫正 - OCR_part/CRNN_part:负责车牌号识别(接口已预留) - 各模块独立,便于维护和扩展 ## 安装和使用 ### 1. 环境要求 - Python 3.7+ - Windows/Linux/macOS - 摄像头设备 ### 2. 安装依赖 ```bash pip install -r requirements.txt ``` ### 3. 模型文件 确保 `yolopart/yolo11s-pose42.pt` 模型文件存在。这是一个YOLO11 Pose模型,专门训练用于车牌的四角点检测。 ### 4. 运行程序 ```bash python main.py ``` ### 5. 使用说明 1. 点击"启动摄像头"按钮开始检测 2. 将车牌对准摄像头 3. 系统会自动检测车牌并显示: - 检测框和角点连线 - 右侧显示车牌类型、矫正图像和车牌号 4. 点击"停止摄像头"结束检测 ## 模型输出格式 YOLO Pose模型输出包含: - **检测框**:车牌的边界框坐标 - **类别**:0=蓝牌,1=绿牌 - **置信度**:检测置信度分数 - **关键点**:四个角点坐标 - right_bottom:右下角 - left_bottom:左下角 - left_top:左上角 - right_top:右上角 ## 接口说明 ### OCR/CRNN接口 车牌号识别部分使用统一接口: ```python # 接口函数名(导入所需模块,每个模块统一函数名) # 初始化 from 对应模块 import LPRNinitialize_model LPRNinitialize_model() # 预测主函数 from 对应模块 import LPRNmodel_predict result = LPRNmodel_predict(corrected_image) # 返回7个字符的列表 ### 输入参数 - `corrected_image`:numpy数组格式的矫正后车牌图像 ### 返回值 - 长度为7的字符列表,包含车牌号的每个字符 - 例如:`['京', 'A', '1', '2', '3', '4', '5']` ## 开发说明 ### 添加新的识别算法 1. 在对应目录(OCR_part或CRNN_part)实现识别函数 2. 确保函数签名与接口一致 3. 在main.py中导入对应模块即可 ### 自定义模型 1. 替换 `yolopart/yolo11s-pose42.pt` 文件 2. 确保新模型输出格式与现有接口兼容 3. 根据需要调整类别名称和数量 ### 调试模式 在代码中设置调试标志可以输出更多信息: ```python # 在detector.py中设置verbose=True results = self.model(image, conf=conf_threshold, verbose=True) ``` ## 扩展功能 系统设计支持以下扩展: - 多摄像头支持 - 批量图像处理 - 检测结果保存 - 网络API接口 - 数据库集成 - 性能统计和分析