13.11.2 이미지 내 Bounding Box 좌표(Coordinate) 정합성을 판별하는 물리적 오라클

13.11.2 이미지 내 Bounding Box 좌표(Coordinate) 정합성을 판별하는 물리적 오라클

최신 VLM(Vision Large Language Model)을 이용해 텍스트를 추출할 때는, 최신 프롬프팅 기법인 Visual Grounding 혹은 VQA(Visual Question Answering)를 사용하여, 모델로 하여금 단순히 텍스트 값(Value) 자체를 뱉어내는 것을 넘어 그 값이 원본 종이 이미지 위의 정확히 어느 픽셀 위치에 존재하는지 X, Y 좌표 평면 스팬(Bounding Box, [x_min, y_min, x_max, y_max])을 배열(Array) 형태로 함께 반환하도록 강제할 수 있다.
이렇게 추출된 좌표 정보는 추후 13.8.3절에서 구현했던 인간 통제관용 대시보드 UI에 노란색 형광펜 하이라이트를 실시간으로 그려주어(Auditing) 인간의 인지 부하를 줄이는 데 핵심적인 역할을 한다.

그러나 AI가 주도하는 혼돈의 세계에서 가장 기괴하고 무서운 환각(Hallucination)은 바로 이 좌표 공간에서도 파멸적으로 발생한다. 모델이 추출한 ’글자(Text)’는 정규식을 통과할 정도로 완벽한데, 정작 모델이 그 글자가 위치한다고 자신 있게 지목한 ’좌표(Coordinate)’를 열어보니 영수증에 어떠한 잉크도 묻어있지 않은 **‘새하얀 허공 여백(Blank Space)’**을 기리키고 있는 소름 끼치는 현상. 이른바 ‘좌표 환각(Coordinate Hallucination)’ 사태다. 멀티모달 오라클은 기하학적 픽셀 수학을 동원해 이를 잔혹하게 도살해야만 한다.

1. 지식과 픽셀의 소름 끼치는 괴리 현상 (Dissociation of Knowledge and Pixel)

*“이 벤더 청구서의 발행 날짜(Invoice Date)와 그 좌표를 찾아라”*라는 프롬프트가 주어졌다. 그런데 원본 영수증 이미지의 발급일 영역이 스캔 과정에서 심각하게 훼손되어 날짜가 아예 증발해 버린 상황이라 가정해 보자.
가장 이상적인 100점짜리 AI라면 *“날짜가 훼손되어 보이지 않음(Null)”*이라고 항복해야 맞다. 하지만 지능이 과도하게 높은 거대 VLM은 텅 빈 화면 앞에서 당황한 나머지, 자신의 거대한 뇌수(과거 프리트레이닝 된 벤더 영수증들의 통계적 평균 날짜 지식)를 뒤져 2023-10-25라는 완벽하게 그럴듯한 환각을 지어내어 반환해 버린다.
심지어 모델 체면을 차리느라, 뻔뻔하게도 그 값이 이미지의 우측 상단 [X_min: 800, Y_min: 50, X_max: 950, Y_max: 80] 어딘가에 분명히 적혀 있다고 가상의 Bounding Box 좌표까지 정밀하게 날조하여 반환한다.

자, 여기서 기존의 1차원 텍스트 오라클의 참담한 맹점이 폭발한다. 값으로 넘어온 2023-10-25라는 문자열은 날짜 형식(YYYY-MM-DD)을 완벽히 만족하므로, 우리의 Pydantic 타입 오라클은 아무런 의심 없이 녹색 승인 도장을 찍고 이 치명적인 환각 문서를 파이프라인 뒤로 통과시켜 버린다.

2. 외부 기계식 OCR 기반의 물리적 면적 교차(IoU) 오라클망 구축

VLM의 이 뻔뻔한 가상 좌표 날조를 도살하기 위해, 시스템 엔지니어는 절대 스스로 소설(환각)을 쓰지 않는 바보 같지만 우직한 고전적 컴퓨터 비전 기술, 즉 Tesseract 나 AWS Textract 같은 결정론적 베이스라인 기계식 OCR 엔진을 ‘가혹한 물리적 픽셀 심판관’ 자격으로 파이프라인 밑단에 배치하여 십자포화(Cross-fire) 검증을 구성해야 한다.

멀티모달 픽셀 오라클의 검증 로직은 런타임 공간에서 다음과 같이 기하학적 수학으로 전개된다.

  1. [면적 산출]: VLM이 뱉어낸 특정 필드의 환각 Bounding Box 좌표 면적 지역(Area of Box_{VLM})을 폴리곤 객체로 생성한다.
  2. [진실의 그물망 로드]: 파이프라인 맨 앞 단에서 기계식 고전 OCR 엔진이 영수증 전체 이미지를 무식하고 정직하게 스와이프 하며 긁어모아 둔 ’글자로 추정되는 모든 잉크 픽셀 좌표 뭉치 리스트(List of Box_{OCR})’를 메모리로 불러온다.
  3. [공간 교차 검증 (IoU 연산)]: VLM이 지목한 허상의 박스(Box_{VLM})와 기계식 OCR이 보장하는 진실의 박스들(Box_{OCR}) 위로 수학적인 **IoU (Intersection over Union, 교집합/합집합 면적 비율)**를 연산하여 크로스체크한다.
  4. [단두대 판결]: 만약 IoU 공간 교차 계산 결과, VLM이 텍스트가 있다고 지목한 그 네모 박스(Box_{VLM}) 영역 안에 기계식 OCR이 인식한 어떠한 파편적인 먹물 픽셀 조각(Box_{OCR})도 교집합으로 겹치지 않는다면 (즉, IoU \approx 0 이라면), 모델이 지목한 그곳은 물리적 잉크가 묻지 않은 완전한 ’새하얀 허공(Blank Space)’임이 수학적으로 증명된 것이다.
  5. [파이프라인 킬 스위치 (Kill-switch)]: 이 멀티모달 오라클은 즉시 텍스트 로직의 통과 결과를 강제로 뒤집어 버리며, ValidationError: 물리적 Bounding Box 픽셀 교차(IoU) 실패 - 허공 환각 지목 의심 현상 포착 이라는 레드 알람을 뿜어내고 파이프라인의 숨통을 단칼에 끊어버린다.

이러한 기하학적 픽셀 방어망이 완성되는 순간, 앞으로 생성형 VLM이 그 어떤 화려한 사기극의 수학적 거짓말(Hallucination)을 문자열로 뱉어내더라도, **“픽셀상에 묻어나는 물리적 잉크의 진실(Physical Visual Ground Truth)과 일치하지 않는 텐서(데이터)”**는 우리 기업 백엔드 마스터 시스템의 뒷단으로 단 1바이트도 넘어갈 수 없게 되는 완벽한 난공불락의 데이터 요새가 축조된 것이다.