Files
ocr_macro/README.md
2025-08-12 16:59:40 +09:00

74 lines
2.7 KiB
Markdown

# 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` 파일 참조.
## 설치 및 실행
### 설치
프로젝트의 루트 디렉토리에서 다음 명령어를 실행하여 필요한 라이브러리를 설치합니다.
```bash
pip install -r requirements.txt
```
### 실행
#### OCR 자동화 스크립트
```bash
# 예시: upstage 모델을 사용하여 3초 간격으로 순차 처리
python workspace/run_ocr.py ./source_documents ./result_jsons/upstage --provider upstage --delay 3
```
#### 정답셋 생성 웹 애플리케이션
```dockerfile
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 # 본 파일
```