← 목록으로AI

AI Document Processing Pipeline (OCR + LayoutLM)

인보이스 및 물류 문서에서 구조화된 데이터를 자동 추출하는 end-to-end AI 문서 처리 파이프라인 구축

AIAWSDevOpsPython
2025-04-18

Overview

인보이스 및 물류 문서에서 구조화된 데이터를 자동으로 추출하는 end-to-end AI 문서 처리 파이프라인을 구축했습니다.

문서 수집, 전처리, OCR, 문서 이해, 구조화된 데이터 추출까지 전 과정을 자동화하여 클라우드 환경에서 확장 가능하고 효율적인 문서 처리를 가능하게 했습니다.


Architecture

PDF Upload (S3)
    ↓
Preprocessing (PyMuPDF, OpenCV)
    ↓
OCR (EasyOCR / Tesseract)
    ↓
Document Understanding (LayoutLM)
    ↓
Inference (SageMaker / Local)
    ↓
JSON Output
    ↓
API Serving (FastAPI)

Tech Stack

AI / ML

  • LayoutLM (Document Understanding)
  • PyTorch, HuggingFace Transformers
  • OCR (EasyOCR, Tesseract)
  • Amazon SageMaker (Model Training / Inference)
  • SageMaker Studio (Jupyter Notebook 기반 실험 환경)
  • SageMaker Training Jobs (분산 학습 및 하이퍼파라미터 튜닝)
  • SageMaker Endpoints (실시간 추론 배포)

Data Processing

  • OpenCV (Image preprocessing)
  • PyMuPDF (PDF parsing)
  • Label Studio (Data annotation)

Backend

  • Python, FastAPI
  • REST API for AI inference
  • Batch processing pipeline

Cloud / Infrastructure

  • AWS S3 (Data storage)
  • AWS ECS (Containerized service)
  • AWS Lambda (Preprocessing)
  • AWS CloudFront (Distribution)
  • AWS IAM (Access control)

DevOps

  • Docker
  • Jenkins (CI/CD)
  • GitHub

Monitoring

  • CloudWatch
  • Logging & Debugging

My Role

  • End-to-end AI 파이프라인 설계 및 구현
  • PDF 및 이미지 입력에 대한 데이터 전처리 로직 개발
  • EasyOCR, Tesseract를 활용한 OCR 파이프라인 구축
  • LayoutLM 기반 문서 이해 및 추론 로직 구현
  • Amazon SageMaker를 활용한 모델 학습 및 추론 워크플로우 구성
  • SageMaker Studio Jupyter Notebook 기반 실험 환경 구성 및 데이터 탐색
  • SageMaker Training Jobs를 활용한 분산 학습 및 하이퍼파라미터 튜닝
  • SageMaker Endpoints를 통한 실시간 추론 API 배포
  • FastAPI 기반 추론 API 개발
  • AWS 인프라 설계 및 운영 (S3, ECS, Lambda)
  • Jenkins를 활용한 CI/CD 파이프라인 구현
  • 시스템 성능 모니터링 및 안정성 개선

Key Features

End-to-End Automation 문서 업로드부터 구조화된 JSON 출력까지 전 과정 자동화

Scalable Architecture AWS(S3, ECS, Lambda)를 활용한 클라우드 네이티브 설계

AI-Based Document Understanding LayoutLM을 활용한 key-value 추출

Flexible OCR Pipeline EasyOCR, Tesseract 멀티 엔진 OCR 지원

API-Based Integration 외부 연동을 위한 FastAPI 기반 추론 API 제공


Challenges & Solutions

Problem 1: OCR 정확도 문제

노이즈가 많거나 품질이 낮은 PDF에서 OCR 정확도가 낮은 문제가 발생했습니다.

Solution

  • 이미지 전처리 적용 (thresholding, denoising)
  • 여러 OCR 엔진을 조합하여 정확도 향상
# 이미지 전처리 예시
import cv2
import numpy as np
 
def preprocess_image(image):
    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    denoised = cv2.fastNlMeansDenoising(gray, h=10)
    _, thresh = cv2.threshold(denoised, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)
    return thresh

Problem 2: 모델 추론 성능 문제

대용량 모델로 인해 추론 속도가 느린 문제가 발생했습니다.

Solution

  • 추론 파이프라인 최적화
  • 배치 추론과 실시간 추론 분리
  • SageMaker를 활용한 확장 가능한 추론 환경 구성

Problem 3: 데이터 어노테이션 품질 문제

학습 데이터의 레이블링이 일관되지 않는 문제가 있었습니다.

Solution

  • Label Studio 워크플로우 도입
  • 구조화된 레이블링 가이드라인 정의

Results

  • 문서 처리 파이프라인 자동화 구축 완료
  • 수동 작업 감소 및 처리 속도 개선
  • 안정적인 AI 추론 서비스 운영 가능

What I Learned

  • End-to-end AI 시스템 설계 (데이터 → 모델 → 배포)
  • 실전 MLOps 개념 (학습, 추론, 배포)
  • 실제 환경에서의 OCR 한계 처리 방법
  • 확장 가능한 클라우드 기반 AI 서비스 설계