"OCR 하시는 회사죠?"라는 말을 자주 들어요. 맞기도 하고 아니기도 해요. OCR은 저희가 하는 일의 한 부분이고, 지금은 그보다 훨씬 많은 걸 해요. 오늘은 OCR이 어떻게 변해 왔는지 세대별로 정리하고, "문서 이해"가 뭐가 다른지 설명해 볼게요.
1세대: 글자 모양 맞추기
1990~2000년대 OCR은 글자 하나하나를 잘라서 미리 저장한 글자 모양과 비교했어요. 인쇄체, 정해진 글꼴, 깨끗한 스캔에서는 잘 됐어요. 글꼴이 바뀌거나 글자가 붙어 있거나 기울어지면 바로 무너졌고요. 한글은 자모 조합이라 글자 수가 많아서 특히 힘들었어요.
2세대: 딥러닝 글자 인식
2010년대 중반부터 합성곱 신경망과 순환 신경망(CRNN 계열)이 글자 인식을 맡았어요. 글자를 하나씩 자르지 않고 줄 단위 이미지를 통째로 넣어서 글자 열을 뽑아요. 글꼴·기울기·약간의 노이즈에 강해졌고, 손글씨도 어느 정도 되기 시작했어요.
여기까지가 대부분 사람이 생각하는 "OCR"이에요. 입력은 이미지, 출력은 글자열과 위치예요.
3세대: 레이아웃을 같이 보기
글자를 잘 읽어도 문서의 구조는 몰라요. 어디가 제목이고, 어디가 표고, 어느 칸이 어느 열인지요. 2020년 전후로 레이아웃 검출(표·그림·제목·본문 영역 찾기)과 표 구조 인식 모델이 OCR과 결합되면서, 출력이 "글자열"에서 "구조화된 문서"로 바뀌었어요.
저희가 2월에 쓴 표제란·부품표·치수 글이 다 이 세대 기술이에요. 글자는 2세대 모델이 읽고, 구조는 3세대 모델이 잡아요.
4세대: 멀티모달 문서 이해
이미지와 글자를 한 모델이 같이 보는 VLM(비전-언어 모델)이 나오면서, "이 계약서의 해지 조건은?" 같은 질문에 이미지에서 바로 답하는 게 가능해졌어요. 6월 16일 글이에요. 구조를 명시적으로 뽑지 않아도 이해해요.
대신 좌표가 없고, 흐린 글자를 지어내고, 비싸고, 문서가 외부로 나가요. 6월 9일 비교 실험에서 쓴 것처럼, 정해진 문서 종류에서는 3세대 조합이 더 정확했어요.
"문서 이해"는 뭐가 다르냐면요
OCR(2세대)과 문서 이해(3·4세대)의 차이를 한 줄로 하면, 출력이 글자냐 데이터냐예요.
| OCR | 문서 이해 | |
|---|---|---|
| 입력 | 이미지 | 이미지 (+ 원본 파일 구조) |
| 출력 | 글자열 + 위치 | 필드, 표, 관계, 판정 |
| "수량 4"를 | "수량", "4" 두 글자열로 | 부품표 10번 행의 수량 열 = 4 로 |
| 틀렸을 때 | 글자가 틀림 | 값이 틀리거나, 모른다고 함 |
문서 이해는 OCR 위에 구조 인식, 관계 연결, 검증, 신뢰도 보정이 올라간 거예요. 이 블로그에서 반년 동안 쓴 게 대부분 그 "위에 올라간" 부분이에요.
저희는 뭘 쓰냐면요
- 원본 파일이 있으면 OCR을 안 해요. HWP·HWPX는 네이티브 파싱(1월), 텍스트 레이어 있는 PDF는 텍스트를 바로 뽑아요. OCR은 추측이고, 원본은 사실이에요.
- 스캔본은 2세대 인식 + 3세대 구조. 저희 문서 종류로 학습한 작은 모델들이에요.
- 저신뢰 영역만 4세대에 물어봐요. 전부 보내면 비싸고, 일부만 보내면 괜찮아요. 답은 "추정" 표시예요.
- 그 위에 검증과 판정. 합계 검증, 교차 대조, 보류. 5월 26일 거버넌스 글이에요.
OCR 제품을 고르실 때
"OCR 정확도 99%"는 글자 단위 정확도예요. 글자 100개 중 1개 틀리면 금액 하나가 틀린 거예요. 업무에 필요한 건 필드 단위, 값 단위 정확도고, 더 나아가서 틀렸을 때 모른다고 하는지예요. 세대가 아니라 이 질문으로 고르시면 돼요.
다음 주는 저희 도면 판정 리포트의 뼈대인 "근거·대조·원칙·신뢰도" 네 요소 이야기예요.