Skip to content

jayn2u/ocr-review-pipeline

Repository files navigation

OCR Review Pipeline

이 프로젝트는 OCR(Optical Character Recognition) 및 ROI(Region of Interest) 인식을 위한 통합 파이프라인입니다.

프로젝트 구조

이 저장소는 다음 서브모듈들을 포함하고 있습니다:

📋 Submodules

1. OCR Review (ocr-review)

2. ROI Recognizer (roi-recognizer)

🚀 시작하기

1. 저장소 클론

git clone --recursive https://github.com/jayn2u/ocr-review-pipeline.git
cd ocr-review-pipeline

2. 서브모듈 초기화 (이미 클론한 경우)

git submodule update --init --recursive

3. 의존성 설치

OCR Review 모듈 설정

cd ocr-review
pip install -r requirements.txt

ROI Recognizer 모듈 설정

cd ../roi-recognizer
pip install -r requirements.txt

📁 디렉터리 구조

ocr-review-pipeline/
├── .gitmodules
├── .github/
│   ├── workflows/
│   │   └── update-submodules.yml  # 자동화 워크플로우
│   └── README.md
├── docs/
│   └── AUTOMATION.md              # 자동화 시스템 문서
├── scripts/
│   ├── config.sh                  # 설정 파일
│   ├── trigger-submodule-update.sh # 수동 트리거 스크립트
│   └── webhook-receiver.sh        # 웹훅 수신기
├── ocr-review/          # OCR 텍스트 인식 서브모듈
│   ├── src/
│   │   ├── main.py
│   │   ├── roi_1.py
│   │   ├── roi_2.py
│   │   ├── roi_3.py
│   │   └── roi_4.py
│   └── requirements.txt
└── roi-recognizer/      # ROI 감지 서브모듈
    ├── src/
    │   └── main.py
    └── requirements.txt

🔧 사용법

각 서브모듈은 독립적으로 실행할 수 있습니다:

OCR Review 실행

cd ocr-review/src
python main.py

ROI Recognizer 실행

cd roi-recognizer/src
python main.py

🔄 서브모듈 업데이트

자동 업데이트 (권장)

이 프로젝트는 서브모듈에서 태그가 푸시될 때 자동으로 메인 저장소의 서브모듈 포인터를 업데이트하는 시스템을 제공합니다.

1. 수동 트리거

GitHub Actions를 통해 수동으로 서브모듈을 업데이트할 수 있습니다:

# 스크립트를 사용한 트리거 (GitHub 토큰 필요)
./scripts/trigger-submodule-update.sh ocr-review v1.0.0
./scripts/trigger-submodule-update.sh roi-recognizer v2.1.0

또는 GitHub 웹 인터페이스에서:

  1. Actions 탭 이동
  2. "Update Submodules on Tag Push" 워크플로우 선택
  3. "Run workflow" 클릭
  4. 서브모듈 이름과 태그 입력

2. 웹훅을 통한 자동 트리거

서브모듈 저장소에서 태그가 푸시될 때 자동으로 업데이트되도록 웹훅을 설정할 수 있습니다:

  1. 서브모듈 저장소(ocr-review, roi-recognizer)의 Settings → Webhooks에서 웹훅 추가
  2. Payload URL을 웹훅 서버 주소로 설정
  3. Content type: application/json
  4. Events: "Just the push event" 선택
  5. 웹훅 서버에서 scripts/webhook-receiver.sh 스크립트 실행

수동 업데이트

기존 방식으로 서브모듈을 수동 업데이트할 수도 있습니다:

# 모든 서브모듈을 최신 버전으로 업데이트
git submodule update --remote

# 특정 서브모듈만 업데이트
git submodule update --remote ocr-review
git submodule update --remote roi-recognizer

⚠️ 주의사항

  • PaddlePaddle GPU 버전을 사용하는 경우 CUDA 호환성을 확인하세요
  • Tesseract OCR 엔진이 시스템에 설치되어 있는지 확인하세요
  • 각 서브모듈의 Python 버전 호환성을 확인하세요

📚 문서

🤖 자동화 시스템

이 저장소는 서브모듈의 태그 푸시 시 자동으로 메인 저장소를 업데이트하는 시스템을 포함하고 있습니다.

작동 방식

  1. 태그 푸시 감지: 서브모듈(ocr-review, roi-recognizer)에서 새 태그가 푸시됨
  2. 웹훅/수동 트리거: GitHub 웹훅 또는 수동으로 업데이트 워크플로우 실행
  3. 자동 업데이트: GitHub Actions가 해당 서브모듈을 새 태그로 업데이트
  4. 커밋 생성: 변경사항을 자동으로 커밋하고 푸시
  5. PR 생성: 메인 브랜치가 아닌 경우 자동으로 Pull Request 생성

구성 요소

  • .github/workflows/update-submodules.yml: 메인 자동화 워크플로우
  • scripts/trigger-submodule-update.sh: 수동 트리거 스크립트
  • scripts/webhook-receiver.sh: 웹훅 수신기 (선택사항)

보안 고려사항

  • GitHub 토큰이 필요한 작업에는 적절한 권한 설정
  • 웹훅 사용 시 시크릿 키를 통한 서명 검증 권장
  • 자동화된 커밋은 github-actions[bot] 계정으로 수행

🤝 기여하기

  1. 이 저장소를 포크합니다
  2. 기능 브랜치를 생성합니다 (git checkout -b feature/amazing-feature)
  3. 변경사항을 커밋합니다 (git commit -m 'Add amazing feature')
  4. 브랜치에 푸시합니다 (git push origin feature/amazing-feature)
  5. Pull Request를 생성합니다

📄 라이선스

이 프로젝트는 각 서브모듈의 라이선스를 따릅니다.

About

2025년 7월 3주차 연구과제 : 스크린샷에 기재된 데이터 추출 파이프라인

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages