feat: 特殊车牌生成管线 + C++/多进程/色温校正

This commit is contained in:
kirl committed 2026-06-21 10:32:37 +08:00
1 parent 3808b9f035
commit 3101992f51
29 files changed
+2336 -80

No files matched your search

+83
View File
@@ -0,0 +1,83 @@
# CCPD_SPE_GEN — 特殊车牌数据集生成工具
基于 CCPD 真实车辆照片,将普通蓝牌替换为 9 种特殊车牌(警车/军车/港澳/使馆/领馆/教练/新能源)。
---
## 目录结构
```
CCPD_SPE_GEN/
├── README.md
│
├── cv_pipeline/ # 传统 CV 管线(无需 GPU/训练)
│ ├── plate_swap.py # 主体:车牌替换全流程
│ ├── extract_real_plates.py # 从 CCPD 提取真实车牌 ROI
│ └── gen_pure_plates.py # 生成纯合成车牌(无背景)
│
├── gan_pipeline/ # GAN 管线(CUT 纹理迁移)
│ ├── dataset.py # L 通道 DataLoader + 推理封装
│ ├── models.py # Generator + PatchGAN + PatchNCE Loss
│ ├── train.py # 训练脚本
│ └── requirements.txt # PyTorch 依赖
│
└── scripts/ # 一键运行脚本
├── quick_test.sh # 快速测试 20 张警车牌
├── preview_all.sh # 预览全部 9 种类型
└── gan_data_prep.sh # GAN 训练数据准备
```
## 两套算法
### CV 管线 (`cv_pipeline/`)
**经典计算机视觉,零训练成本,即开即用。**
流程:CCPD 原图 → 解析文件名角点 → 生成特殊车牌 → Lab 色彩对齐 → 透视回贴 → 距离变换羽化 → 噪声/模糊匹配 → JPEG 退化模拟 → 输出
```bash
cd ICE_Dataset
python CCPD_SPE_GEN/cv_pipeline/plate_swap.py \
--ccpd-dir ./CCPD/CCPD2019/ccpd_base \
--plate-type police \
--num 500 \
--output ./output/police_dataset
```
### GAN 管线 (`gan_pipeline/`)
**基于 CUT (Contrastive Unpaired Translation),需 PyTorch + GPU 训练。**
仅对车牌 L (亮度) 通道做纹理迁移,保留 AB 颜色通道不变。训练后将 GAN 推理接入 CV 管线,替换硬编码的退化模拟步骤。
```bash
# 训练
cd CCPD_SPE_GEN/gan_pipeline
python train.py \
--domain-a ../../gan_data/domain_A_synthetic/police \
--domain-b ../../gan_data/domain_B_real \
--epochs 100 --batch 4 \
--output ../../output/cut_police
# 推理 (在 CV 管线中调用)
# from CCPD_SPE_GEN.gan_pipeline.dataset import LChannelInference
```
## 依赖
| 管线 | 依赖 |
|------|------|
| CV | `numpy`, `opencv-python`, `tqdm`, `chinese_license_plate_generator/` |
| GAN | 以上 + `torch>=1.12`, `torchvision`, `tensorboard` |
## 支持的特殊车牌类型
| 类型 | 底板 | 说明 |
|------|------|------|
| `police` | 白底 | 警用车牌 (末位"警"红字) |
| `army` | 白底 | 军车/武警 |
| `gangao` | 黑底 | 港澳入出境 |
| `shiguan_old` | 黑底 | 使馆旧版 ("使"红字) |
| `shiguan_new` | 黑底 | 使馆新版 (白字) |
| `lingguan_old` | 黑底 | 领馆旧版 ("领"红字) |
| `lingguan_new` | 黑底 | 领馆新版 (白字) |
| `coach` | 黄底 | 教练车 (末位"学") |
| `new_energy` | 黄绿双拼 | 大型新能源 (8 位) |