결론 요약
PoC 적용 모델
서버 GPU 없이 브라우저에서 즉시 OCR 가능
번호판 탐지
업로드 이미지 전체를 대상으로 처리
후처리
한국 번호판 패턴으로 후보 보정
운영 권장
실서비스는 탐지 모델과 전용 OCR 모델 필요
현재 PoC에서 Tesseract.js를 선택한 이유
이번 요구사항은 서버에 빠르게 Docker 컨테이너를 배포하고 NPM 도메인으로 확인 가능한 샘플을 만드는 것입니다. 따라서 별도 GPU, 학습 데이터셋, 모델 가중치 파일 없이 동작하는 브라우저 OCR 방식이 가장 적합합니다.
Tesseract.js는 번호판 전용 모델은 아니지만, 샘플 이미지와 명확한 번호판 사진에서는 전처리와 후처리를 결합해 “사진 업로드 → 텍스트 후보 추출 → 번호판 형식 검증” 흐름을 설명하기 좋습니다.
모델 처리 구조
이미지 입력
브라우저에서 사진을 업로드합니다. 서버로 원본을 전송하지 않는 구조라 PoC 개인정보 노출 위험이 낮습니다.
전처리
grayscale, contrast, threshold를 적용해 번호판 문자를 더 뚜렷하게 만듭니다.
OCR
kor+eng 언어 모델로 숫자와 한글을 인식합니다.
후처리
공백, 특수문자, 혼동 문자(O/0, I/1 등)를 정리합니다.
검증
12가3456, 123가4567, 서울32바7890 형식을 검사합니다.
후보 모델 비교
| 모델/구조 | 장점 | 한계 | 이번 적용 판단 |
|---|---|---|---|
| Tesseract.js | 브라우저만으로 실행, Docker 단순, 데모 구축 빠름, 서버 비용 낮음 | 번호판 전용 인식률 낮음, 회전/반사/야간/오염에 취약 | PoC 샘플에 적합하여 선택 |
| YOLOv8 + Tesseract | 번호판 위치 탐지가 가능해 전체 이미지 OCR보다 안정적 | 탐지 모델 학습 또는 가중치 준비 필요, 후단 OCR 한계는 남음 | 2단계 PoC 확장안 |
| YOLO/RT-DETR + CRNN | 번호판 영역 탐지와 문자열 인식을 분리해 운영 안정성 높음 | 학습 데이터 구축, 라벨링, GPU 학습/추론 인프라 필요 | 실서비스 기본 권장안 |
| SVTR/TrOCR 계열 | Transformer 기반으로 다양한 글자 형태와 왜곡 대응력이 좋음 | 모델 크기와 추론 비용 증가, 현장 데이터 파인튜닝 필요 | 정확도 우선 운영안 |
실서비스 권장 아키텍처
- 카메라 입력 품질 점검: 해상도, 셔터속도, 야간 IR, 반사 억제.
- 번호판 탐지: YOLOv8 또는 RT-DETR로 번호판 bounding box 추출.
- 기하 보정: perspective transform으로 번호판을 정면 형태로 보정.
- 문자 인식: CRNN/SVTR/TrOCR을 한국 번호판 데이터로 파인튜닝.
- 후처리: 번호판 규칙, 지역명, 용도 문자, confidence ensemble 적용.
- 감사/보안: 원본 보관기간, 접근권한, 마스킹, 결과 수정 이력 관리.
성능 평가 기준
| Plate Detection mAP | 번호판 위치 탐지 정확도 |
| Character Accuracy | 문자 단위 정확도 |
| Full Plate Accuracy | 번호판 전체 문자열이 완전히 맞는 비율 |
| Reject Rate | 신뢰도 낮은 결과를 검토로 넘기는 비율 |
| Latency | 입차/출차 게이트에서 허용 가능한 응답시간 |
현재 구현의 한계와 보완 계획
한계 1. 탐지 모델 없음
현재는 이미지 전체를 OCR하므로 차량 배경, 조명, 글자 외 텍스트에 영향을 받을 수 있습니다.
한계 2. 전용 학습 없음
한국 번호판 전용 데이터로 학습한 모델이 아니므로 실제 현장 정확도는 보장할 수 없습니다.
한계 3. 개인정보 처리
운영 시스템에서는 차량번호를 개인정보성 데이터로 보고 보관기간과 접근권한을 제한해야 합니다.