문서 내 이미지 데이터 처리

보고서나 비즈니스 매뉴얼 수치 데이터 등 정보 가치가 높은 문서에는 순수한 텍스트뿐만 아니라 중요한 로직을 담은 차트, 그래프, 다이어그램, 사진 등이 자주 포함되어 있습니다. 이러한 시각적 데이터를 단순히 누락시키지 않고 RAG(검색 증강 생성)에 완벽하게 녹여내기 위해 다음의 전략들을 단계별로 사용합니다.

1. 전통적인 OCR (Optical Character Recognition)

문서 이미지 내에 단순히 글자만 존재할 경우 가장 가벼운 기계적 처리 방법입니다.

  • Tesseract, EasyOCR: 이미지에 찍혀 있는 글자를 단순 텍스트 문자열(String)로 추출해 냅니다. 이렇게 추출된 텍스트는 일반 본문 텍스트와 동일한 방식으로 임베딩되어 벡터 DB에 들어갑니다.
  • 한계점: 그래프의 상승폭, 추세선 의미나 다이어그램의 논리적 연결성 같은 ‘시각적 형태의 문맥’은 전혀 파악하지 못합니다.

2. VLM을 활용한 이미지 캡셔닝 (Image Captioning)

기존 텍스트 중심 RAG의 한계를 효율적으로 극복하기 위해 실무에서 가장 많이 쓰이는 접근법입니다.

  • 문서 파싱 스크립트 도중 이미지가 등장하면, 해당 이미지를 크롭하여 GPT-4V, LLaVA, Claude 3.5 Sonnet 등 뛰어난 시각-언어 모델(VLM) API에 입력합니다.
  • 조작 프롬프트 예시: “제공된 표나 차트가 의미하는 바를 구체적인 데이터 수치와 전반적인 인사이트를 포함하여 매우 상세한 텍스트로 설명해 줘.”
  • 효용성: 생성된 상세한 텍스트 캡션(설명문)을 원본 텍스트 문서 중간에 삽입하거나 이미지 인덱스 파일 메타데이터로 벡터 DB에 넣습니다. 사용자가 관련 질문을 할 때 캡션 텍스트가 검색어와 매칭되어 이미지의 시각적 인사이트가 자연스럽게 답변에 활용됩니다.

3. 멀티모달 벡터 임베딩 보관 (Multimodal Embedding)

이미지를 텍스트로 억지로 풀어쓰는 정보 손실 과정 단계 없이 시각적 데이터 원본 그 자체의 피처(Feature) 벡터를 수치화하여 보관하는 가장 진보된 최신 형태입니다.

  • CLIP (Contrastive Language-Image Pre-training) 등 텍스트와 이미지를 동기화하는 멀티모달 임베딩 전용 모델을 사용합니다.
  • 사용자의 일상어인 “텍스트 쿼리”와 문서 속에 있던 “이미지 벡터 덩어리”를 직접 비교 계산하여 밀접한 연관성을 가진 이미지를 즉시 검색(Retrieve)할 수 있습니다.
  • 검색 후엔 원본 이미지 파일 자체를 LMM(Large Multimodal Model) 챗 프롬프트에 메인 컨텍스트 윈도우로 바로 던져주어, 왜곡이나 누락이 없는 최상의 답변을 생성합니다. (Multimodal RAG 문서 참고)

This site uses Just the Docs, a documentation theme for Jekyll.