ICE_Dataset

ICE 车牌检测/识别项目的数据集仓库,涵盖 CCPD 原始数据、特殊车牌生成、YOLO 训练数据构建。


目录总览

ICE_Dataset/
├── chinese_license_plate_generator/  ← 车牌底板渲染引擎(核心依赖)
├── CCPD/                             ← CCPD2019 & CCPD2020 原始街拍图片
├── CCPD_SPE_GEN/                     ← 特殊车牌生成工具集
│   ├── cv_pipeline/                  ← Python 原型管线(开发/调色/预览用)
│   ├── cpp_pipeline/                 ← ★ C++ 生产引擎(~53张/秒,实际全量生成用)
│   ├── gan_pipeline/                 ← GAN 纹理迁移实验(已废弃,未实际使用)
│   └── scripts/                      ← 一键运行脚本
├── CCPD_SPE/                         ← 特殊车牌数据集输出(C++ 管线全量生成)
├── ccpd_combined_5k5k_spe/           ← YOLO 训练用合并数据集
├── scripts/                          ← 数据集构建/统计工具
├── LP_Standard.md                    ← GA36-2018 中国车牌标准参考
└── output/                           ← 临时输出、调色预览

各部分说明

1. chinese_license_plate_generator/ — 车牌渲染引擎

第三方车牌图像生成器,提供 MultiPlateGenerator:

  • 按 GA36-2018 标准渲染 9 种特殊车牌底板
  • 输出纯车牌图像(无背景),作为后续管线的合成素材
  • 管线实际依赖:被 cv_pipeline/plate_swap.py 直接调用

2. CCPD/ — CCPD 原始数据集

子集 说明
CCPD2019/ccpd_base 标准街拍(主力)
CCPD2019/ccpd_tilt 倾斜视角
CCPD2019/ccpd_rotate 旋转视角
CCPD2019/ccpd_fn 远/近景(Far/Near)
CCPD2019/ccpd_weather 恶劣天气
CCPD2019/ccpd_blur 模糊
CCPD2019/ccpd_challenge 挑战性样本
CCPD2020/ CCPD2020 扩展集

CCPD 文件名自带角点标注(4 个角点 x&y_x&y_x&y_x&y),管线不依赖 YOLO 检测,直接解析文件名即可获取车牌坐标。

3. CCPD_SPE_GEN/ — 特殊车牌生成工具

3.1 cv_pipeline/ ★ 主力管线(实际使用)

文件 功能
plate_swap.py 核心:CCPD 原图 → 解析角点 → 生成特殊车牌 → Lab 色彩对齐 → 透视回贴 → 羽化 + 噪声匹配 → 输出
extract_real_plates.py 从 CCPD 提取真实车牌 ROI(用于 GAN 训练数据准备,实际未用)
gen_pure_plates.py 生成纯合成车牌(无背景)
color_tuner.py HSV 手动调色 GUI,保存参数到 plate_color_profile.py
plate_color_profile.py 底板色校正参数(由 color_tuner.py 生成,plate_swap.py 运行时读取)

特点:零训练成本,纯 OpenCV + NumPy,即开即用。

3.2 cpp_pipeline/ — C++ 高性能版

文件 功能
plate_swap.cpp/.hpp C++ 复刻 CV 管线核心逻辑
main.cpp 多线程入口(--workers 参数,默认自动检测全部 CPU 核心)
gen_plate_pool.py 预生成车牌池 .bin 供 C++ 读取
build.ps1 VS2022 + CMake 编译脚本
install/plate_swap.exe 预编译可执行文件(Git LFS)

当前状态:C++ 版是 CCPD_SPE 的实际生产引擎,当前生成 9000 张(9 类 × 1000 张,~53 张/秒,线程数按本机 CPU 核心自动分配),全量 35.5 万张预估 1.9 小时。 Python cv_pipeline 作为开发原型保留——用于初始验证、color_tuner.py 调色 GUI、以及单张预览/调试。 两套管线核心功能对齐(色温匹配、噪声匹配、退化模拟一致),羽化实现有差异:Python 用 distanceTransform 精确渐变,C++ 用 erode+GaussianBlur 近似(快 3 倍,肉眼几无区别)。

3.3 gan_pipeline/ — GAN 纹理迁移(已废弃)

文件 功能
models.py CUT (Contrastive Unpaired Translation) Generator + PatchGAN + PatchNCE Loss
dataset.py L 通道车牌 DataLoader
train.py 训练脚本

当前状态:❌ 未实际使用。设计目标是用 GAN 将合成车牌的 L (亮度) 通道纹理迁移为真实风格,替代硬编码的 JPEG 退化模拟。但因以下原因废弃:

  • CV 管线的 JPEG 降采样 + 模糊退化已能满足训练需要
  • GAN 训练需要额外 GPU 时间,收益不明确
  • YOLO 检测模型对退化模拟的敏感度不高

代码保留以供未来可能的实验。

3.4 scripts/ — 一键脚本

脚本 功能
quick_test.sh 快速测试:生成 20 张警车牌
preview_all.sh 预览全部 9 种类型(各 2 张 + 中间结果)
gan_data_prep.sh GAN 训练数据准备(当前无实际用途)

4. CCPD_SPE/ — 特殊车牌数据集(输出)

由 C++ 管线(cpp_pipeline/)生成,按 CCPD 子集 → 特殊车牌类型两级目录组织:

CCPD_SPE/
├── ccpd_base/
│   ├── police/  gangao/  coach/  new_energy/  ...
├── ccpd_tilt/
├── ccpd_weather/
...

文件命名:{CCPD原名}__{特殊车牌类型}__{车牌号拼音}.jpg

5. ccpd_combined_5k5k_spe/ — YOLO 训练数据集

由 scripts/build_ccpd_combined.py 构建,合并三部分:

  • CCPD2019 原始蓝牌(5k 张采样)
  • CCPD2020 原始蓝牌(5k 张采样)
  • CCPD_SPE 特殊车牌(全量)

输出标准 YOLO 格式:images/ + labels/(单类 license_plate),直接用于训练 yolov5t。

6. 其他

路径 说明
LP_Standard.md GA36-2018 中国机动车号牌标准全文参考(颜色、尺寸、字符集)
scripts/build_ccpd_combined.py YOLO 数据集构建脚本
output/ 临时输出目录(调色预览、调试中间结果),已在 .gitignore 中排除

数据流(实际使用)

chinese_license_plate_generator/          CCPD/ (CCPD2019/CCPD2020)
        │                                        │
        ▼                                        ▼
   MultiPlateGenerator              parse_ccpd_filename() 解析角点
        │                                        │
        ▼                                        ▼
  cpp_pipeline/plate_swap.cpp ─── 色温匹配 → 透视回贴 → 羽化 → 噪声 ──→ CCPD_SPE/
        │                                                                   │
  [预生成 .bin 池]                                                          │
                                                                             │
        CCPD (5k+5k 蓝牌) ─────────────────────────────────────────────────┤
                                                                             ▼
                                                           build_ccpd_combined.py
                                                                             │
                                                                             ▼
                                                               ccpd_combined_5k5k_spe/
                                                                             │
                                                                             ▼
                                                                     ICE_NNv2/yolov5t/

技术说明

项目 说明
角点来源 CCPD 文件名自带,无需 YOLO/ICE-COR 推理
色温匹配 Lab 空间白参考提取,每通道 clamp ±15%
羽化策略 纯内侧距离变换羽化,不做泊松融合(保护车牌本色)
噪声匹配 从原车牌区域估计 σ + Laplacian 模糊度,仅车牌区域叠加
退化模拟 JPEG Q=2 + 4×降采样→最近邻升采样 + GaussianBlur
GAN 未实际使用,代码保留在 gan_pipeline/
C++ 版 ★ 生产引擎,CCPD_SPE 全量由此生成;Python 版为开发原型
S
Description
No description provided
Readme
2.4 MiB
0 Stars 3 Watchers 0 Forks
Languages
Python 78.8%
C++ 15.8%
PowerShell 3.9%
Shell 1.3%
CMake 0.2%