yolorestart
This commit is contained in:
		
							
								
								
									
										155
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										155
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,155 @@
 | 
			
		||||
# 车牌识别系统
 | 
			
		||||
 | 
			
		||||
基于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
 | 
			
		||||
# OCR接口
 | 
			
		||||
from OCR_part.ocr_interface import ocr_predict
 | 
			
		||||
result = ocr_predict(corrected_image)  # 返回7个字符的列表
 | 
			
		||||
 | 
			
		||||
# CRNN接口  
 | 
			
		||||
from CRNN_part.crnn_interface import crnn_predict
 | 
			
		||||
result = crnn_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. 根据需要调整类别名称和数量
 | 
			
		||||
 | 
			
		||||
## 注意事项
 | 
			
		||||
 | 
			
		||||
1. **模型文件**:确保YOLO模型文件路径正确
 | 
			
		||||
2. **摄像头权限**:程序需要摄像头访问权限
 | 
			
		||||
3. **光照条件**:良好的光照有助于提高检测精度
 | 
			
		||||
4. **车牌角度**:尽量保持车牌完整出现在画面中
 | 
			
		||||
5. **性能优化**:可根据硬件配置调整检测参数
 | 
			
		||||
 | 
			
		||||
## 故障排除
 | 
			
		||||
 | 
			
		||||
### 常见问题
 | 
			
		||||
1. **摄像头无法启动**:检查摄像头是否被其他程序占用
 | 
			
		||||
2. **模型加载失败**:确认模型文件路径和格式正确
 | 
			
		||||
3. **检测效果差**:调整光照条件或摄像头角度
 | 
			
		||||
4. **界面显示异常**:检查PyQt5安装是否完整
 | 
			
		||||
 | 
			
		||||
### 调试模式
 | 
			
		||||
在代码中设置调试标志可以输出更多信息:
 | 
			
		||||
```python
 | 
			
		||||
# 在detector.py中设置verbose=True
 | 
			
		||||
results = self.model(image, conf=conf_threshold, verbose=True)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## 扩展功能
 | 
			
		||||
 | 
			
		||||
系统设计支持以下扩展:
 | 
			
		||||
- 多摄像头支持
 | 
			
		||||
- 批量图像处理
 | 
			
		||||
- 检测结果保存
 | 
			
		||||
- 网络API接口
 | 
			
		||||
- 数据库集成
 | 
			
		||||
- 性能统计和分析
 | 
			
		||||
		Reference in New Issue
	
	Block a user