결론 요약
가전 패널 UI는 기종마다 달라 공개 데이터가 사실상 전무했다.
그래서 직접 다양한 종류의 패널을 촬영하고, 자주 등장하는 텍스트를 크롭글레어(눈뽕)·고스트·스트릭스현실적 노이즈로 증강한 뒤
무작위 분할(7:2:1)라벨 후처리를 자동화해 학습 가능한 코퍼스를 만들었다.
과정에서 만난 문제는 아래와 같다.


1) 배경: 왜 직접 찍고, 왜 글레어까지 시뮬레이션했나?

  • 시각장애인 터치스크린 도우미(Hover AI)버튼 텍스트 OCR손가락 근접 탐지의 결합이 핵심이다.
  • 실제 환경에서는 LED 번짐(글레어), 반사(고스트), 광량 과다, 기기별 폰트·간격 차이가 잦다.
  • 인터넷 상에 공개된 “세탁기/가전 패널” OCR 데이터는 거의 없어서 패널 직접 촬영이 필요했고,
    현장 노이즈를 인공적으로 재현해 일반화 성능을 높여야 했다.

2) 어려움 & 해결

A. 기종마다 UI가 달라 표준 라벨링이 불가

  • 같은 의미라도 표준/쾌속/탈수 세기표기·배치·폰트가 상이하다.
  • 해결:
    • 라벨은 “텍스트의 첫 토큰”만 취급하는 규칙으로 단순화 → 표준_0001표준

B. 파일/폴더 체계가 자꾸 깨지고, 한글 경로로 인한 오류

  • 팀별 공유·이동을 하다 보면 이름 충돌/경로 인코딩 이슈 발생.
  • 해결:
    • 폴더별 일괄 리네임 스크립트로 폴더명_0001.ext 규칙 강제
    • 증강 전 ASCII 임시폴더로 복사 후 처리 → 한글 경로 안전

C. 글레어·고스트·스트릭스가 OCR을 크게 흔듦

  • 실제 촬영 시 LED 주변 번짐과 반사가 인식률 급락의 주원인.
  • 해결:
    • glare_augmentor.pyBloom/Glow/Stripes/Ghost확률·강도·반복 수까지 세밀 제어
    • 과다노출 방지를 위해 master_strength와 각 *_gain낮추고 범위 분산
    • 결과: 동일 텍스트라도 다양한 광학 조건을 학습

D. 증강 산출물이 많아져서 스플릿/경로/라벨 관리가 힘듦

  • 수만 장 생성 후 train/val/test 혼합, 경로·라벨 불일치로 모델 학습 실패.
  • 해결:
    • 일괄 무작위 섞기 → 7:2:1 분할 → txt 생성 스크립트 작성
    • txt는 images/<파일명>\t<라벨> 포맷으로 단일 루트 기준 유지
    • 마지막에 라벨 꼬리 숫자 제거 스크립트로 정합성 보장

3) 무엇이 개선되었나?

  • 동일 문구(예: 표준, 강력, 헹굼)에 대해 광학 조건 다양성 학습 →
    LED 점등/반사 상황에서도 OCR 안정성이 개선되었다.
  • 스플릿/라벨/경로를 스크립트로 규격화
    팀원이 환경만 맞추면 즉시 재현 가능하다.
  • txt 기반 파이프라인으로 후속 모델(경량 OCR/온디바이스) 실험이 쉬워진다.