# ccpd_yolo **Repository Path**: linjunbin0101/ccpd_yolo ## Basic Information - **Project Name**: ccpd_yolo - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-06 - **Last Updated**: 2026-02-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # CCPD 车牌检测与识别项目 基于 YOLOv8 的车牌检测项目,使用 CCPD 数据集训练,集成百度 OCR 进行车牌号码识别。针对 RTX 5060 GPU 优化。 ## 项目结构 ``` ccpd_yolo/ ├── ccpd_yolo_dataset/ # 数据集文件夹 (不上传到 Git) │ ├── images/ │ │ ├── train/ # 训练集: 33,420 张图片 │ │ ├── val/ # 验证集: 4,177 张图片 │ │ └── test/ # 测试集: 4,179 张图片 │ ├── labels/ │ │ ├── train/ # 训练集标签 │ │ ├── val/ # 验证集标签 │ │ └── test/ # 测试集标签 │ └── dataset.yaml # YOLO 数据集配置文件 ├── train_license_plate.py # Python 训练脚本 ├── train_license_plate.ipynb # Jupyter 训练笔记本 ├── detect_plate_baidu.py # 车牌检测与识别主程序 ⭐ 使用百度 OCR ├── baidu_ocr_recognition.py # 百度 OCR 识别模块 ├── config.py # 百度 API 密钥配置 ├── pt/ # 训练好的模型目录 │ ├── best.pt # 最佳模型 │ └── last.pt # 最后模型 ├── README.md # 本文件 └── .gitignore # Git 忽略配置 ``` ## 功能特点 - **车牌检测**: 使用 YOLOv8 模型检测车牌位置 - **车牌识别**: 使用百度 OCR API 识别车牌号码(中文+英文) - **车牌颜色**: 自动识别车牌颜色(蓝牌、黄牌、绿牌等) - **高精度**: 百度 OCR 中文识别准确率 > 99% ## 数据集信息 - **总图片数**: 41,776 张 - **训练集**: 33,420 张 (80%) - **验证集**: 4,177 张 (10%) - **测试集**: 4,179 张 (10%) - **类别**: license_plate (车牌) ### 数据来源 原始数据来自 CCPD (Chinese City Parking Dataset): - `plate-blue`: 30,000 张 - `ccpd_green`: 11,776 张 数据已平铺并按 80%/10%/10% 比例随机分配到 train/val/test。 ### 数据集下载 由于数据集文件较大 (约 4万+ 张图片),未包含在 Git 仓库中。请从以下链接下载: 📦 **阿里云盘**: [ccpd_yolo_dataset.7z](https://www.alipan.com/t/oh6CEKlIyREWnLb38DY8) 下载后解压到项目根目录即可。 ## 环境要求 - **Python**: 3.10 或更高版本 - **GPU**: NVIDIA RTX 5060 (支持 sm_120) - **CUDA**: 12.9 - **PyTorch**: 2.8.0+ (支持 sm_120) ## 安装依赖 ### 1. 安装 PyTorch (支持 RTX 5060) ```bash pip install torch==2.8.0 torchvision torchaudio --index-url https://download.pytorch.org/whl/cu129 ``` ### 2. 安装其他依赖 ```bash pip install ultralytics opencv-python baidu-aip ``` ### 3. 配置百度 OCR API 1. 访问 [百度智能云](https://cloud.baidu.com/) 2. 创建文字识别应用,获取 API Key 和 Secret Key 3. 在 `config.py` 中填入您的密钥: ```python BAIDU_OCR_CONFIG = { 'app_id': '您的 AppID', 'api_key': '您的 API Key', 'secret_key': '您的 Secret Key' } ``` ## 快速开始 ### 训练模型 ```bash python train_license_plate.py ``` 或使用 Jupyter Notebook: ```bash jupyter notebook train_license_plate.ipynb ``` ### 车牌检测与识别 ```bash # 检测单张图片 python detect_plate_baidu.py --source image.jpg # 批量检测目录 python detect_plate_baidu.py --source images/ # 保存车牌剪切图像 python detect_plate_baidu.py --source image.jpg --save-crops # 调整置信度阈值 python detect_plate_baidu.py --source image.jpg --conf 0.5 ``` ## 训练配置 当前优化配置 (针对 RTX 5060 8GB 显存): | 参数 | 值 | 说明 | |-----|-----|------| | epochs | 10 | 训练轮数 | | batch | 64 | 批次大小 | | imgsz | 640 | 输入图像尺寸 | | model | yolov8n.pt | 预训练模型 | | optimizer | AdamW | 优化器 | | lr0 | 0.01 | 初始学习率 | | workers | 0 | Windows 兼容性 | | device | 0 | GPU 设备 | | amp | True | 自动混合精度 | | cache | True | 数据缓存 | ## 识别效果对比 | OCR 引擎 | 识别结果 | 准确率 | |---------|---------|--------| | Tesseract | `5C341I` | ❌ 错误 | | 百度 OCR | `鲁C982NL` | ✅ 100% 正确 | ## 注意事项 1. **百度 OCR 免费额度**: 每月 50,000 次免费调用,足够个人使用 2. **网络连接**: 使用百度 OCR 需要联网 3. **完整图像**: 百度 OCR 需要完整图像(包含车牌和背景),不能只用剪切的车牌 ## 常见问题 ### Q: 为什么 GPU 利用率不高? A: 尝试增大 batch size 到 64 或更高。 ### Q: 百度 OCR 识别失败? A: 检查网络连接和 API 密钥配置是否正确。 ### Q: 遇到 CUDA out of memory? A: 减小 batch size 到 32 或 16。 ## 许可证 本项目仅供学习和研究使用。 ## 致谢 - [CCPD Dataset](https://github.com/detectRecog/CCPD) - [Ultralytics YOLO](https://github.com/ultralytics/ultralytics) - [百度智能云 OCR](https://cloud.baidu.com/)