OCR Template Pipeline v2

범용 문서 OCR 자동 추출 시스템

어떤 서류든 템플릿을 만들면 자동으로 텍스트를 추출하고, 웹에서 검수하고, 데이터화합니다. 추출된 데이터는 분석과 시각화까지 연결됩니다.

7,000+Lines of Code
2.6%CER
22REST APIs
53Fields (농업인)
01 / Problem

문제 정의

종이 서류의 수기 입력은 느리고, 오류가 많고, 데이터 활용이 불가능합니다

AS-IS

  • 사람이 직접 타이핑 (1건 10-15분)
  • 수기 입력 오류율 3-5%
  • 50+개 필드를 일일이 확인
  • 특정 서류 양식에 종속
  • 데이터 분석/활용 불가 (종이 상태)
VS

TO-BE

  • 자동 OCR + 웹 검수 (1건 2-3분)
  • CER 2.6% (Fine-tuned TrOCR)
  • 문제 필드만 자동 하이라이트
  • 어떤 서류든 템플릿으로 적용
  • 구조화된 데이터로 분석/시각화 가능
02 / Architecture

시스템 아키텍처

모듈화된 구조로 모델/템플릿/검증 규칙을 독립적으로 교체 가능

Model Registry

YAML 설정으로 모델 교체. UI 드롭다운에서 클릭 한 번으로 전환.

📄Template Editor

PDF 위에 바운딩 박스를 그려 필드 정의. 엑셀 틀에서 자동 추출도 가능.

🔗Field Dependency

4가지 타입의 필드 연관성 규칙 자동 검증. 세트 누락 경고.

🔒Data Store

원자적 저장, PII 마스킹, JSONL 수정 이력, 경로 순회 방어.

🤖Active Learning

검수 수정 데이터 자동 수집. 500건 누적 시 재학습 알림.

🔃Correction Sync

교정 데이터 JSON 내보내기/가져오기. Git으로 팀 공유.

03 / Pipeline

데이터 흐름

PDF 입력부터 데이터 분석까지 End-to-End

1. 템플릿 생성 (최초 1회)

PDF 위에 바운딩 박스를 그려 필드 정의. 재사용 가능한 JSON으로 저장.

2. PDF 업로드 + Crop 생성

스캔 PDF와 템플릿을 로드. 필드별 crop 이미지 자동 추출.

3. OCR 배치 추론

선택된 모델로 배치 추론. 체크박스/서명은 CV 감지기로 처리.

4. 검증 + 연관성 체크

12가지 필드별 검증 규칙 + 필드 연관성 규칙으로 경고 생성.

5. 검수 UI + 엑셀 출력

웹에서 즉시 수정. 수정 데이터는 Active Learning으로 자동 수집.

6. 데이터 분석 + 시각화 (향후)

구조화된 데이터를 기반으로 통계 분석, 트렌드 시각화, 대시보드 생성.

04 / Model

모델 성능

AI Hub 한국어 글자체 데이터셋(23GB)으로 Fine-tuning한 TrOCR-small

2.648%
CER
97.35%
Exact Match
54.5M
Parameters
678.9
Samples/sec

모델 비교

모델파라미터CER크기
Fine-tuned TrOCR-small54.5M2.648%218 MB
ddobokki/ko-trocr213M-~850 MB
Qwen-VL (실험)9.6B-~18 GB

UI에서 모델 전환

검수 UI 헤더 드롭다운에서 클릭 한 번으로 교체

# model_config.yaml models: fine_tuned_trocr: engine: trocr model_path: ../handwriting_ocr/checkpoints/best/
default_model: fine_tuned_trocr
05 / CER Metric

CER이란?

OCR 모델의 정확도를 측정하는 핵심 평가 지표

Character Error Rate

OCR이 인식한 텍스트와 정답을 문자 단위로 비교하여, 잘못된 문자의 비율을 나타냅니다.

CER = S + D + I / N
기호의미설명
S (Substitution)대체잘못된 문자로 바뀜 ('동' -> '둥')
D (Deletion)누락문자가 빠짐 ('홍길동' -> '홍길')
I (Insertion)삽입없는 문자가 추가됨 ('홍길동' -> '홍길동이')
N (Total)전체정답 텍스트의 전체 문자 수
우리 모델
2.648%

100글자 중 2.6글자만 오류

일반적인 나쁜 CER
15-20%

100글자 중 15-20글자 오류

06 / Features

핵심 기능

통합 템플릿 편집기

메인 앱 내장 편집기(/editor). 기존 템플릿 자동 로드 + PDF 배경 즉시 표시. 바운딩 박스 드래그로 위치/크기 조정.

검수 UI + 실시간 조정

문서 이미지 위 필드 오버레이를 드래그로 미세 조정. 그룹별 7색 구분. crop 확대, 즉시 수정, 키보드 네비게이션.

필드 연관성 검증

linked_set, mixed, all_optional, conditional 4타입. 7그룹 색상 구분. 세트 누락 자동 경고.

빠른 수정 + 일괄 확인

공백/특수문자/하이픈 원클릭 수정. 80%+ 고신뢰도 필드 일괄 확인으로 검수 시간 단축.

웹 OCR 직접 실행

대시보드에서 PDF 업로드 + OCR 실행 + 검수까지 원스톱. CLI 불필요.

농업인 53필드 프리셋

기본직접지불금 등록신청서 전용 템플릿. 7그룹 색상 구분. 픽셀 정밀 좌표.

필드 타입검증 규칙예시
korean_name한글 2-5자홍길동
resident_number13자리, 항상 검수900101-1234567
phone한국 전화번호 패턴010-1234-5678
address최소 길이경기도 화성시...
date / date_or_birthYYYYMMDD 또는 6자리20260101
checkbox / signatureCV 기반 감지체크됨 / 서명있음
07 / Data Sync

원격 교정 데이터 동기화

다른 사용자가 수정한 데이터를 팀 전체가 공유

사용자 A
필드 수정 + 검수
->
교정 데이터 JSON
doc_id, field, text,
confidence, timestamp
->
Git / API
sync_corrections/
->
사용자 B
데이터 수신 + 학습

동기화 방식

JSON 내보내기검수 UI [동기화] 버튼 클릭
REST API 수신POST /api/sync-corrections
Git Pushsync_corrections/ 폴더 커밋
Active Learning교정 -> CSV -> 모델 재학습

저장 구조

work/ data_store/{doc}.json # 메인 (원자적 저장) data_store/{doc}_history.jsonl # 수정 이력 learning_data/ corrections.csv # AL 수집 데이터 images/*.png # crop 복사본 sync_corrections/ received_corrections.jsonl # 원격 수신
08 / Future

향후 계획: 데이터 분석 + 시각화

OCR로 추출한 구조화된 데이터를 기반으로 분석과 시각화까지 확장합니다

PHASE 1 - 데이터 분석

추출 데이터 통계 분석

OCR 파이프라인으로 수집된 구조화 데이터를 활용한 통계 분석

  • 필드별 입력 패턴 분석 (빈도, 분포)
  • 문서 유형별 오류 패턴 분석
  • 지역별/기간별 신청 현황 집계
  • 이상값 자동 탐지 (outlier detection)
PHASE 2 - 시각화 대시보드

실시간 데이터 시각화

추출된 데이터를 인터랙티브 차트와 대시보드로 시각화

  • 신청 현황 대시보드 (지도, 차트)
  • OCR 신뢰도 트렌드 그래프
  • 필드별 수정률 히트맵
  • 모델 성능 모니터링 시계열
PHASE 3 - 확장

시스템 확장

VLM 모델, 다중 페이지, 자동 재학습으로 시스템 고도화

  • VLM 모델 통합 (Qwen-VL, Varco)
  • 다중 페이지 서류 처리
  • Active Learning 자동 재학습
  • 다양한 행정/계약 서류 확장

데이터 활용 비전

현재 시스템은 종이 서류 -> 구조화된 디지털 데이터 변환에 집중하고 있습니다.
향후 이 데이터를 기반으로 Pandas/Plotly 기반 데이터 분석, 인터랙티브 시각화 대시보드, 리포트 자동 생성까지 연결하여, 단순 OCR을 넘어 데이터 기반 의사결정 지원 시스템으로 발전시킬 계획입니다. 수집된 데이터의 패턴 분석, 이상값 탐지, 트렌드 예측 등 데이터 사이언스 기법을 적용하여 실제 업무에 즉시 활용 가능한 인사이트를 제공합니다.

09 / Tech Stack

기술 스택

PyTorch 2.0+
딥러닝
Transformers
HuggingFace
TrOCR-small
Fine-tuned
Flask 3.0
웹 서버
PyMuPDF
PDF
OpenCV
이미지
openpyxl
엑셀
Vanilla JS
프론트엔드
AI Hub
학습 데이터
6,000+
Python (lines)
17
REST API
12
필드 타입
990
프론트엔드 (lines)
10 / Results

결과

달성 성과

모델 교체UI 클릭 1번으로 전환
CER2.648%
Exact Match97.35%
범용 템플릿어떤 문서든 적용 가능
원격 동기화JSON/Git 교정 데이터 공유
데이터 보안PII 마스킹 + 원자적 저장

데이터 활용 로드맵

현재OCR 추출 + 검수 + 엑셀 출력
Phase 1추출 데이터 통계 분석 + 패턴 탐지
Phase 2인터랙티브 시각화 대시보드
Phase 3자동 리포트 생성 + 예측 분석

Template -> OCR -> Review -> Data -> Analytics

종이에서 데이터로, 데이터에서 인사이트로

Thank you