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

@@ -0,0 +1,45 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
生成纯合成车牌(无场景背景)作为 CUT Domain A
============================================
独立于 CCPD 原图,直接调用车牌生成器渲染纯车牌图像。
"""
import sys
import os
import random
from pathlib import Path
import cv2
import numpy as np
# 路径解析:定位 chinese_license_plate_generator
_SCRIPT_DIR = Path(__file__).resolve().parent # .../CCPD_SPE_GEN/cv_pipeline/
_PROJECT_DIR = _SCRIPT_DIR.parent.parent # .../ICE_Dataset/
_GENERATOR_DIR = _PROJECT_DIR / 'chinese_license_plate_generator'
if str(_GENERATOR_DIR) not in sys.path:
sys.path.insert(0, str(_GENERATOR_DIR))
from generate_multi_plate import MultiPlateGenerator
random.seed(42)
np.random.seed(42)
g = MultiPlateGenerator(
str(_GENERATOR_DIR / 'plate_model'),
str(_GENERATOR_DIR / 'font_model')
)
out = 'gan_data/domain_A_synthetic/police_pure'
os.makedirs(out, exist_ok=True)
for i in range(500):
num, bg, _ = g.generate_plate_number()
# 强制police类型
if '警' not in num:
num = num[:6] + '警'
img = g.generate_plate_special(num, 'white', False)
cv2.imwrite(f'{out}/synth_{i:04d}.jpg', img)
print(f'Done: {out} ({len(os.listdir(out))} images)')