2025-08-12 16:59:40 +09:00
2025-08-12 16:59:40 +09:00
2025-08-12 16:59:34 +09:00
2025-08-12 16:58:38 +09:00
2025-08-01 11:23:40 +09:00
2025-08-12 16:59:40 +09:00

OCR Macro: 정답셋 워크플로우

이 프로젝트는 여러 OCR 모델의 결과물을 효율적으로 비교하고 수정하여, 고품질의 정답셋(Ground Truth) 데이터셋을 구축하기 위한 일련의 도구와 워크플로우를 제공합니다.

프로젝트 개요

프로젝트는 크게 두 가지 핵심 도구로 구성됩니다.

  1. run_ocr.py: 대량의 문서를 OCR API로 보내고 결과를 자동으로 저장하는 CLI 스크립트.
  2. app.py: OCR 결과물을 원본과 비교하며 수정하고, 정답셋을 생성하는 Streamlit 기반 웹 애플리케이션.

구성 요소 상세

1. workspace/run_ocr.py

대량의 문서에 대한 OCR을 자동화하는 커맨드 라인 인터페이스(CLI) 스크립트입니다.

  • 주요 기능: 병렬 처리, 자동 재시도(Exponential Backoff), OCR 공급자 선택(paddle/upstage), 순차 처리 모드(API의 RPS 제한 대응).
  • 사용법: run_ocr_readme.md 파일 참조.

2. workspace/app.py

OCR 결과물을 시각적으로 비교하고 수정하여 정답셋을 생성하는 Streamlit 기반 웹 애플리케이션입니다.

  • 주요 기능: 세션 기반 협업, 3-Way 비교 뷰, 동적 레이아웃, 작업 완료 상태 추적, 정답셋 재수정, 결과물 zip 다운로드.
  • 사용법: workspace/app_readme.md 파일 참조.

설치 및 실행

설치

프로젝트의 루트 디렉토리에서 다음 명령어를 실행하여 필요한 라이브러리를 설치합니다.

pip install -r requirements.txt

실행

OCR 자동화 스크립트

# 예시: upstage 모델을 사용하여 3초 간격으로 순차 처리
python workspace/run_ocr.py ./source_documents ./result_jsons/upstage --provider upstage --delay 3

정답셋 생성 웹 애플리케이션

docker compose up

디렉토리 구조 (권장)

ocr_macro/
├── source_documents/      # 원본 이미지/PDF 파일
├── result_jsons/
│   ├── paddle_ocr/        # paddle_ocr 결과 JSON 파일
│   └── upstage/           # upstage 결과 JSON 파일
├── workspace/
│   ├── app.py             # 정답셋 생성 웹 앱
│   ├── run_ocr.py         # OCR 자동화 스크립트
│   ├── shared_sessions/   # app.py의 작업 세션 데이터 (자동 생성)
│   │   └── {seed}/
│   │       ├── docs/
│   │       ├── jsons_paddle_ocr/
│   │       ├── jsons_upstage/
│   │       └── groundtruth/     # 최종 정답셋 (자동 생성)
│   └── ...
├── requirements.txt
└── README.md              # 본 파일
Description
No description provided
Readme 192 MiB
Languages
Python 100%