feat: 特殊车牌生成管线 + C++/多进程/色温校正
This commit is contained in:
1 parent
3808b9f035
commit
3101992f51
29 files changed
+2336
-80
No files matched your search
@@ -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 位) |
|
||||
Reference in new issue
Block a user