74 lines
2.7 KiB
Markdown
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 제한 대응).
|
|
- **사용법**: `docs/run_ocr_readme.md` 파일 참조.
|
|
|
|
### 2. `workspace/app.py`
|
|
|
|
OCR 결과물을 시각적으로 비교하고 수정하여 정답셋을 생성하는 Streamlit 기반 웹 애플리케이션입니다.
|
|
|
|
- **주요 기능**: 세션 기반 협업, 3-Way 비교 뷰, 동적 레이아웃, 작업 완료 상태 추적, 정답셋 재수정, 결과물 zip 다운로드.
|
|
- **사용법**: `docs/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 # 본 파일
|
|
```
|