Files
ICE_Dataset/CCPD_SPE_GEN/cpp_pipeline/install

ICE Plate Swap — C++ 高性能特殊车牌替换引擎

基于 CCPD 真实街景照片,将普通蓝牌替换为 9 种特殊车牌。
C++ / OpenCV 实现,32 线程满血,~53 张/秒。


快速开始

1. 环境要求

组件 说明
Windows 10/11 x64 —
Visual Studio 2022 BuildTools 含 C++ 桌面开发 workload
OpenCV 4.10.0 解压到 C:\opencv

2. 预编译版 (推荐)

直接下载 plate_swap.exe(已通过 Git LFS 管理):

# 设置 OpenCV DLL 路径
$env:PATH = "C:\opencv\build\x64\vc16\bin;$env:PATH"

# 运行
.\install\plate_swap.exe --help

3. 从源码编译

# 打开 VS Developer Command Prompt
# 然后:
cd CCPD_SPE_GEN\cpp_pipeline
cmake -B build -G "Visual Studio 17 2022" -A x64 -DOpenCV_DIR=C:\opencv\build
cmake --build build --config Release --parallel

用法

$env:PATH = "C:\opencv\build\x64\vc16\bin;$env:PATH"

.\plate_swap.exe `
    --ccpd-dir ./CCPD/CCPD2019/ccpd_base,./CCPD/CCPD2019/ccpd_tilt `
    --plate-type police `
    --plate-pool ./output/plate_pool_v2 `
    --output ./CCPD_SPE `
    --num 1000 `
    --workers 24

参数

参数 必需 默认 说明
--ccpd-dir ✅ — CCPD 图片目录,多个用逗号分隔
--plate-type ✅ — 特殊车牌类型
--plate-pool ✅ — 预生成车牌池路径(含 pool.bin)
--output ✅ — 输出根目录
--num 500 生成图片数量
--workers 全部核心 并行线程数
--seed 42 随机种子
--fast false 快速模式(跳过退化模拟,不建议)
--h-shift 0 底板色相偏移 (GUI调色)
--s-scale 100 底板饱和度缩放%
--v-scale 100 底板明度缩放%

支持的类型

police      警用车牌 (白底, JING)
army        军车/武警 (白底)
gangao      港澳入出境 (黑底, GANG/AO)
shiguan_old 使馆旧版 (黑底, SHI)
shiguan_new 使馆新版 (黑底)
lingguan_old 领馆旧版 (黑底, LING)
lingguan_new 领馆新版 (黑底)
coach       教练车 (黄底, XUE)
new_energy  大型新能源 (黄绿双拼, 8位)

预生成车牌池

cd ICE_Dataset
python CCPD_SPE_GEN\cpp_pipeline\gen_plate_pool.py --num 1000 --output ./output/plate_pool_v2

生成 pool.bin (~1.6GB),含 9 种类型各 1000 张 + 车牌号元数据。


输出结构

CCPD_SPE/
├── ccpd_base/
│   ├── police/
│   ├── gangao/
│   └── ...
├── ccpd_tilt/
└── ...

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


性能

指标 值
单线程 ~7 张/秒
24 线程 ~53 张/秒
35.5 万张全量 ~1.9 小时

调色 GUI

python CCPD_SPE_GEN\cv_pipeline\color_tuner.py

H/S/V 滑块实时预览 → 按 S 保存 → plate_color_profile.py → C++ 管线 --h-shift --s-scale --v-scale 读取。


构建

# 安装 OpenCV
Invoke-WebRequest "https://github.com/opencv/opencv/releases/download/4.10.0/opencv-4.10.0-windows.exe" -OutFile "$env:TEMP\opencv.exe"
Start-Process "$env:TEMP\opencv.exe" -Args "-oC:\opencv -y" -Wait

# 编译
cd CCPD_SPE_GEN\cpp_pipeline
.\build.ps1