이 프로젝트는 OCR(Optical Character Recognition) 및 ROI(Region of Interest) 인식을 위한 통합 파이프라인입니다.
이 저장소는 다음 서브모듈들을 포함하고 있습니다:
- URL: https://github.com/jayn2u/ocr-review
- 목적: OCR 텍스트 인식 및 검토 기능
- 주요 기술:
- PaddleOCR (v3.1.0)
- OpenCV (v4.9.0.80)
- PyTorch (v2.2.0)
- Pandas (v2.2.0)
- URL: https://github.com/jayn2u/roi-recognizer
- 목적: 관심 영역(ROI) 감지 및 인식
- 주요 기술:
- OpenCV (v4.12.0.88)
- Pytesseract (v0.3.13)
- Pandas (v2.3.1)
- Pillow (v11.3.0)
git clone --recursive https://github.com/jayn2u/ocr-review-pipeline.git
cd ocr-review-pipelinegit submodule update --init --recursivecd ocr-review
pip install -r requirements.txtcd ../roi-recognizer
pip install -r requirements.txtocr-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
각 서브모듈은 독립적으로 실행할 수 있습니다:
cd ocr-review/src
python main.pycd roi-recognizer/src
python main.py이 프로젝트는 서브모듈에서 태그가 푸시될 때 자동으로 메인 저장소의 서브모듈 포인터를 업데이트하는 시스템을 제공합니다.
GitHub Actions를 통해 수동으로 서브모듈을 업데이트할 수 있습니다:
# 스크립트를 사용한 트리거 (GitHub 토큰 필요)
./scripts/trigger-submodule-update.sh ocr-review v1.0.0
./scripts/trigger-submodule-update.sh roi-recognizer v2.1.0또는 GitHub 웹 인터페이스에서:
- Actions 탭 이동
- "Update Submodules on Tag Push" 워크플로우 선택
- "Run workflow" 클릭
- 서브모듈 이름과 태그 입력
서브모듈 저장소에서 태그가 푸시될 때 자동으로 업데이트되도록 웹훅을 설정할 수 있습니다:
- 서브모듈 저장소(
ocr-review,roi-recognizer)의 Settings → Webhooks에서 웹훅 추가 - Payload URL을 웹훅 서버 주소로 설정
- Content type:
application/json - Events: "Just the push event" 선택
- 웹훅 서버에서
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 버전 호환성을 확인하세요
- 자동화 시스템 가이드: 서브모듈 자동 업데이트 시스템에 대한 상세한 문서
이 저장소는 서브모듈의 태그 푸시 시 자동으로 메인 저장소를 업데이트하는 시스템을 포함하고 있습니다.
- 태그 푸시 감지: 서브모듈(
ocr-review,roi-recognizer)에서 새 태그가 푸시됨 - 웹훅/수동 트리거: GitHub 웹훅 또는 수동으로 업데이트 워크플로우 실행
- 자동 업데이트: GitHub Actions가 해당 서브모듈을 새 태그로 업데이트
- 커밋 생성: 변경사항을 자동으로 커밋하고 푸시
- PR 생성: 메인 브랜치가 아닌 경우 자동으로 Pull Request 생성
.github/workflows/update-submodules.yml: 메인 자동화 워크플로우scripts/trigger-submodule-update.sh: 수동 트리거 스크립트scripts/webhook-receiver.sh: 웹훅 수신기 (선택사항)
- GitHub 토큰이 필요한 작업에는 적절한 권한 설정
- 웹훅 사용 시 시크릿 키를 통한 서명 검증 권장
- 자동화된 커밋은
github-actions[bot]계정으로 수행
- 이 저장소를 포크합니다
- 기능 브랜치를 생성합니다 (
git checkout -b feature/amazing-feature) - 변경사항을 커밋합니다 (
git commit -m 'Add amazing feature') - 브랜치에 푸시합니다 (
git push origin feature/amazing-feature) - Pull Request를 생성합니다
이 프로젝트는 각 서브모듈의 라이선스를 따릅니다.