대모델로 OCR을 할 때 왜 문자 좌표를 반드시 기록해야 하는가

문서 이해에서 「글자가 어디에 있는가」와 「글자가 무엇인가」는 동등하게 중요하다. 좌표는 이미지 내용을 검증 가능한 구조로 바꾸는 열쇠다.

좌표가 해결하는 세 가지 문제

문제설명좌표가 없을 때의 결과
읽기 순서 복원다단 문서는 인식 순서대로 이어붙이면 안 됨좌우 단의 텍스트가 뒤섞임
필드 관계 수립수치는 가장 가까운 표 헤더에 속할 가능성이 높음(공간 거리 계산 / 수치와 헤더의 근접 매칭)필드 귀속 판단 실패
사람의 재검토 지원사용자가 원본 이미지로 돌아가 증거를 볼 수 있음모델의 판단을 검증할 수 없음

두 가지 적용 장면

장면좌표의 역할가치
계약 심사모델이 결제 기한에 리스크가 있다고 발견하면 시스템이 원문 위치를 하이라이트법무가 보는 것이 「모델의 판단」 한 마디가 아니라 증거
영수증 정산금액, 날짜, 수취인을 각각 원본 이미지에 매핑검증이 편리

좌표계는 반드시 통일해야 한다

좌표계부제
픽셀 좌표절대 픽셀값 (x, y, w, h)
정규화 좌표상대 비율 (0.0 ~ 1.0)
페이지 내 좌표단일 페이지 기준의 국소 좌표
  • 다중 페이지 PDF → 페이지 번호도 기록해야 함
  • 표나 영수증 → 셀 관계도 기록해야 함

좌표는 기초일 뿐, 진짜 필요한 것은 「행 / 열 / 필드」 귀속이다

  • 어느 에 속하는가?
  • 어느 에 속하는가?
  • 어느 필드에 속하는가?

정리

멀티모달 대모델로 OCR을 할 때 문자 좌표를 기록해야 하는 이유는 레이아웃 관계가 필드 이해, 증거 위치 특정, 사람의 재검토에 영향을 주기 때문이다. 상용에서는 페이지 번호, 좌표, 읽기 순서, 필드 연관을 기록해야지 순수 텍스트만 남겨서는 안 된다.

핵심 통찰

  1. OCR의 산출물은 텍스트가 아니라 공간 구조를 가진 기록이어야 한다 — OCR을 「이미지를 문자열로」로 여기는 것이 이 문제의 모든 오답의 공통 근원이다. 올바른 멘탈 모델은 이렇다: OCR은 구조 테이블(텍스트 + 위치 + 페이지 + 행·열 귀속)을 출력하며, 텍스트는 그중 한 열일 뿐이다.
  2. 위치 정보는 「검증 가능성」의 매개체이지 편의 기능이 아니다 — 좌표가 있어야 원본 이미지로 되돌아갈 수 있고, 원본 이미지가 있어야 사람이 재검토할 수 있고, 재검토가 있어야 계약이나 영수증 같은 고위험 장면에 적용할 수 있다. 사슬은 이렇다: 좌표 → 증거 → 감사 가능. 첫 고리를 없애면 뒤의 두 고리가 전부 무너진다.
  3. 「증거 vs 결론」이 AI를 진지한 업무에 적용할 때의 분수령이다 — 법무는 「모델이 리스크가 있다고 말한다」를 받아들이지 않고 「3페이지 2단락의 이 문장에 리스크가 있다」만 받아들인다. 전문 사용자를 대상으로 하는 모든 AI 제품은 출력을 「결론」에서 「결론 + 위치」로 업그레이드해야 한다.
  4. 읽기 순서는 심각하게 과소평가된 오류 원천이다 — 다단 레이아웃을 인식 순서대로 이어붙이면 좌우 단이 교차하는데, 산출된 텍스트는 표면상 매끄러워 보이지만 의미는 이미 뒤엉켜 있다. 이런 오류는 에러도 안 나고 크래시도 안 나며, 조용히 하류의 모든 작업 품질을 떨어뜨린다.
  5. 필드 귀속은 공간 거리에 의존하고, 공간 거리는 통일된 좌표계에 의존한다 — 「수치와 헤더의 근접 매칭」은 소박하지만 극히 효과적인 휴리스틱이며, 그 전제는 모든 박스가 같은 측정 공간에 있는 것이다. 픽셀 좌표와 정규화 좌표를 섞어 쓰면 「근접」이라는 개념 자체가 무효화된다.
  6. 좌표는 기하학일 뿐이고 구조가 의미다 — 마지막 층위의 진전이 중요하다: 어떤 숫자가 (x, y)에 있다는 것을 안다고 그것이 「세액」인지 「총액」인지 아는 것은 아니다. 표 장면에서는 셀/행·열 관계를 추가로 유지해야 근접 모호성을 없앨 수 있다.
  7. 좌표계 불일치는 전형적인 「통합 시점에야 터지는」 결함이다 — 단일 엔진으로 자체 테스트할 때는 전부 정상이지만, 여러 엔진을 섞어 쓰거나 엔진을 교체하는 순간 하이라이트 어긋남, 크롭 이탈, 필드 오매칭이 동시에 발생한다. 데이터 계약 계층에서 정규화를 강제해야지 렌더링 계층에서 임시 환산하면 안 된다.
  8. 다중 페이지 문서는 「페이지」를 좌표의 일부로 삼아야 한다 — 페이지 번호가 없으면 같은 PDF의 서로 다른 페이지에 있는 동일한 (x, y)를 구분할 수 없다. 좌표의 완전한 기본키는 「페이지 번호 + 좌표계 + 박스」이며 셋 중 하나도 빠지면 안 된다.

엔지니어링 실전 Tips

  • 내부 표준으로는 정규화 좌표(0.0~1.0)를 우선할 것: 이미지는 스케일링되고 PDF는 서로 다른 DPI로 렌더링되므로, 절대 픽셀값은 한 번의 스케일링 후 무효가 된다.
  • 좌표는 반드시 「페이지 번호」와 복합 키로 묶을 것: 다중 페이지 PDF 장면에서 가장 흔한 조용한 버그의 원인이다.
  • 원본 bbox와 정규화 bbox 두 벌을 모두 보존할 것: 디버깅 시 엔진의 원본 출력과 대조할 수 있어야 하며, 변환 후 값만 저장하면 트러블슈팅이 어려워진다.
  • 「근접 헤더 매칭」은 수평 거리와 수직 거리를 함께 볼 것: 유클리드 거리만 보면 넓은 표에서 인접 열의 헤더에 매칭되기 쉽다. 보통 열 정렬을 먼저 하고 행 정렬을 나중에 해야 한다.
  • 병합 셀이 표 구조의 주요 함정이다: 하나의 값이 여러 열에 동시에 속할 수 있어 단순한 행·열 인덱스로는 표현이 부족하므로 rowspan/colspan을 명시적으로 기록해야 한다.
  • 하이라이트 기능을 종단간 검수 항목으로 만들 것: 좌표계, 페이지 번호, 스케일 비율 셋이 모두 올바른지에 동시에 의존하므로 가장 경제적인 「좌표 건강도」 탐침이다.
  • 사람의 재검토 입구를 결론 옆에 만들 것: 사용자가 「결제 기한에 리스크 있음」에서 원본 이미지의 해당 위치로 원클릭 이동할 수 있게 하라. 재검토 비용이 낮을수록 업무 부서가 과감히 쓴다.
  • 순수 텍스트 prompt로 OCR 결과를 대모델에 먹이지 말 것: 한 단락 텍스트로 이어붙이면 레이아웃 정보가 전부 사라져, 이 문서가 비판하는 문제를 인위적으로 만들어내는 셈이다. 구조화된 (텍스트 + 위치 + 행·열) 표현을 전달해야 한다.