You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
surya-ocr(전용 OCR 엔진, PyTorch, 한국어)로 문서 이미지에서 텍스트 추출
출력은 (text, bbox, polygon, confidence)라인 단위 구조로 보존(이어붙인 한 덩어리 금지) — 텍스트 마스킹 + 이미지 마스킹([Sub] PII 마스킹 (정규식 + NER-ready 심) #18) 양쪽에서 bbox/polygon 재사용, confidence는 QA·ocr_results 적재
서빙: surya 0.17.x는 FoundationPredictor로 in-process(PyTorch) 로드 가능(GPU 노드). 0.18+/0.20은 별도 추론 서버(vllm/llama.cpp) 필요 → 배포 버전 결정 시 in-process(0.17) vs 서버(0.18+) 트레이드오프 반영
테스트는 우선 Google Colab GPU에서 한국어 정확도 검증 후 배포 (완료: surya-ocr==0.17.0+transformers==4.56.1로 한국어 보험증권 인식·좌표 검증, 평균 conf 0.98)
OCR 모델/디바이스/버전은 env 주입, 하드코딩 금지
외부 OCR API 금지(개인정보보호) — 자체 호스팅만
2026-06-26 변경: Qwen2.5-VL(VLM) → surya-ocr. surya는 전용 OCR 엔진이라 텍스트+bbox만 추출하고 분류·필드추출은 못 함 → #16과 #17(분류·추출) 통합안 폐기, #17은 surya 추출 텍스트 위의 별도 LLM/룰 단계로 분리.
OCR=PyTorch·NER=PyTorch로 프레임워크 통일(이전 paddle↔torch CUDA 충돌 소멸).
2026-06-30: 서빙 버전 정정. 0.14~0.17은 in-process(FoundationPredictor), 0.18+는 추론 서버(SuryaInferenceManager) 구조. 이전 "in-process 기본" 전제는 ≤0.17에서만 성립. confidence도 라인 출력에 포함해 ocr_results에 적재.
Activity
[-][Sub] S3 GetObject + PaddleOCR 텍스트 추출[/-][+][Sub] S3 GetObject + Qwen2.5-VL OCR/추출[/+][-][Sub] S3 GetObject + Qwen2.5-VL OCR/추출[/-][+][Sub] S3 GetObject + surya-ocr 텍스트/bbox 추출[/+]donghoong2 commentedon Jun 30, 2026
구현 완료 (commit d397c49) —
src/ocr_worker/ocr.py+storage.py+core/exceptions.py.완료:
asyncio.to_thread격리, 로컬 디스크 미잔류) —storage.get_objectrender_to_images(content_type 라우팅)FoundationPredictor주입, lazy 로드) —SuryaEngine(text, bbox, polygon, confidence)라인 단위 보존 —OcrLine/OcrPage/OcrResultAppError → OcrError도메인 예외 계층 신설ocrextra paddle→surya 교체, mypy overrides 추가남은 항목:
SuryaEngine은 surya 기본(디바이스 자동). config 필드(ocr_model·ocr_device) 추가는 후속.ocr_confidence등 ocr_results 적재는 [Sub] ocr_results 저장 + 마이그레이션 #19, 호출 배선은 [Sub] Kafka consume→produce 배선 (DLQ·멱등·우아한 종료) #15.feat(ocr): S3 다운로드 + surya-ocr 라인 추출 구현 (#16)