Forces one image per region key (A..P) on both yellow and green plates. Filename embeds our guessed Korean region name so a human reviewer can compare the rendered region tile. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>main
parent
d314415503
commit
b31024907a
@ -0,0 +1,59 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
"""REGION_MAP 시각 검증용 — region 16종 각 1장씩 합성 (yellow + green)."""
|
||||||
|
|
||||||
|
import random
|
||||||
|
import sys
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
import cv2
|
||||||
|
|
||||||
|
sys.path.insert(0, str(Path(__file__).parent.parent / "data_gen"))
|
||||||
|
from generate_synthetic import LPGenerator, REGION_MAP, HANGUL_CHAR_MAP # noqa: E402
|
||||||
|
|
||||||
|
|
||||||
|
def gen_with_region(gen, plate_bg, num_src, char_src, region_src, rkey):
|
||||||
|
plate = cv2.resize(plate_bg, (336, 170))
|
||||||
|
num1 = gen._resize_dict(num_src, 44, 60)
|
||||||
|
num2 = gen._resize_dict(num_src, 64, 90)
|
||||||
|
region = gen._resize_dict(region_src, 88, 60)
|
||||||
|
char = gen._resize_dict(char_src, 64, 62)
|
||||||
|
|
||||||
|
d = [random.choice("0123456789") for _ in range(2)]
|
||||||
|
ch = random.choice(list(HANGUL_CHAR_MAP))
|
||||||
|
e = [random.choice("0123456789") for _ in range(4)]
|
||||||
|
|
||||||
|
row, col = 8, 76
|
||||||
|
plate[row:row+60, col:col+88] = region[rkey]; col += 88 + 8
|
||||||
|
for x in d:
|
||||||
|
plate[row:row+60, col:col+44] = num1[x]; col += 44
|
||||||
|
|
||||||
|
row, col = 72, 8
|
||||||
|
plate[row:row+62, col:col+64] = char[ch]; col += 64
|
||||||
|
for x in e:
|
||||||
|
plate[row:row+90, col:col+64] = num2[x]; col += 64
|
||||||
|
return plate
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
random.seed(0)
|
||||||
|
asset_dir = Path("/workspace/kr_lp_pgnet/data_gen/Korean-license-plate-Generator")
|
||||||
|
out_root = Path("/workspace/train_data")
|
||||||
|
|
||||||
|
gen = LPGenerator(asset_dir)
|
||||||
|
|
||||||
|
for color, plate_bg, num_src, char_src, region_src in [
|
||||||
|
("y", gen.plate_y, gen.num_y, gen.char_y, gen.region_y_imgs),
|
||||||
|
("g", gen.plate_g, gen.num_g, gen.char_g, gen.region_g_imgs),
|
||||||
|
]:
|
||||||
|
out = out_root / f"region_check_{color}"
|
||||||
|
out.mkdir(parents=True, exist_ok=True)
|
||||||
|
for k in sorted(region_src.keys()):
|
||||||
|
img = gen_with_region(gen, plate_bg, num_src, char_src, region_src, k)
|
||||||
|
label = REGION_MAP.get(k, "?")
|
||||||
|
name = f"{color}_{k}_OUR_GUESS={label}.jpg"
|
||||||
|
cv2.imwrite(str(out / name), img)
|
||||||
|
print(f" {color}: {len(region_src)} 장 → {out}")
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
Loading…
Reference in new issue