본문 바로가기

일상

PDF를 AI로 읽을 때 한 가지 방법만 믿으면 안 되는 이유 (이미지 판독과 OCR 교차검증)

반응형

화면 설계서나 서식처럼 텍스트 추출이 잘 안 되는 PDF는 페이지를 이미지로 렌더링해서 읽는 방법을 씁니다. 그런데 그렇게 읽어낸 결과를 그대로 믿어도 될까요. 원리가 다른 두 가지 방법으로 같은 문서를 읽어 서로 대조해본 기록입니다.


1. 한 가지 방법만 쓸 때의 위험

이미지로 렌더링해서 읽는 방식은 레이아웃과 표 구조, 여백의 주석까지 맥락째로 파악됩니다. 텍스트 추출이 깨지는 문서에서는 사실상 유일한 대안이기도 합니다.

문제는 이 방식이 틀렸을 때 티가 안 난다는 점입니다. 흐릿한 숫자나 잘린 글자를 만나면 문맥상 그럴듯한 값으로 채워 넣을 수 있고, 결과만 봐서는 그게 실제로 읽은 것인지 추론한 것인지 구분되지 않습니다. 화면 설계서라면 컬럼명 하나, 상태값 하나가 틀려도 그대로 개발에 반영됩니다.

그래서 원리가 다른 두 번째 눈이 필요합니다.


2. 방법 A - 이미지로 렌더링해서 읽기

먼저 페이지를 이미지로 만듭니다. 외부 프로그램 설치 없이 PyMuPDF로 처리할 수 있습니다.

배율을 높여두면 표의 작은 글씨까지 알아볼 수 있습니다. 이 이미지를 사람이 보거나 비전 모델에 넘겨 내용을 파악합니다.


3. 방법 B - 같은 이미지를 OCR에 넣기

두 번째 눈으로 OCR을 씁니다. 무거운 딥러닝 프레임워크 없이 설치되는 경량 도구를 골랐습니다.

여기서 중요한 것은 정확도가 아니라 원리가 다르다는 점입니다. 이미지 판독은 내용을 이해해서 읽고, OCR은 픽셀에서 글자 모양을 찾아냅니다. 원리가 다르면 틀리는 방식도 달라집니다. 두 결과가 같은 답을 내놓는다면 우연일 가능성이 낮아집니다.


4. 대조 결과 - 예상과 달랐습니다

실제로 돌려보니 결과가 흥미로웠습니다. 인식된 48개 블록 중 한글이 포함된 것은 하나도 없었습니다.

이 문서는 디자인 도구에서 내보낸 PDF였는데, 글자가 벡터 형태로 렌더링되어 OCR이 한글을 거의 잡아내지 못했습니다. 게다가 잡아낸 것들도 이상했습니다.

- "수" 를 한자 "今" 으로

- admin 을 acmin 으로

- 한글 라벨들을 品, 章, 典 같은 한자로

즉 한글은 못 읽은 게 아니라 그럴듯한 다른 글자로 바뀌어 나왔습니다. OCR 결과만 봤다면 "今"을 실제 내용으로 착각했을 것입니다.

반면 영문과 숫자는 정확했고, 그 48개 전부가 이미지 판독 결과와 일치했습니다. 날짜, 코드값, 연락처 형식, 계정명이 모두 같았습니다.


5. 그래서 무엇을 얻었나

교차검증의 목적이 "두 결과가 완벽히 같은지 확인하는 것"이라고 생각하기 쉽습니다. 실제로 해보면 다릅니다.

- 겹치는 영역(영문·숫자·코드값)은 두 방법이 독립적으로 같은 답을 냈으므로 신뢰 구간이 됩니다

- 겹치지 않는 영역(한글 라벨)은 한 방법에만 의존해야 한다는 사실이 드러납니다

- 그 한계를 알고 있는 것과 모르는 것의 차이가 이 작업의 진짜 소득입니다

두 번째 방법이 실패했다고 해서 검증이 무의미해진 것이 아닙니다. 어디까지 믿어도 되는지 경계가 그어진 것입니다. 이 경계를 모른 채 결과를 넘기면, 잘못된 값이 어디에 숨어 있는지 알 수 없습니다.


6. 실무에서 쓸 때

문서 전체를 두 번 읽는 것은 비용이 큽니다. 저는 이렇게 나눕니다.

- 전체는 이미지 판독으로 한 번 읽어 구조와 흐름을 파악

- 숫자·코드·컬럼명이 있는 핵심 페이지만 골라 OCR로 대조

- 두 결과가 어긋나는 지점은 원본을 열어 직접 확인

마지막 항목이 핵심입니다. 교차검증의 산출물은 "검증 완료"라는 도장이 아니라 확인이 필요한 지점의 목록입니다.


7. 정리

원리가 같은 방법을 두 번 쓰는 것은 검증이 아닙니다. 같은 실수를 두 번 할 뿐입니다. 이미지 판독과 OCR처럼 실패하는 방식이 서로 다른 조합이라야 의미가 있습니다.

그리고 두 방법이 어긋났을 때 당황할 필요도 없습니다. 어긋난 지점이 바로, 원래대로라면 조용히 넘어갔을 위험한 곳입니다.


여기까지 PDF 판독의 교차검증에 대해서 작성해봤습니다. 여기까지 읽어주셔서 감사합니다!

반응형