피드로 돌아가기
Deterministic OCR in JavaScript: PaddleOCR for Node, Bun, Deno, and the Browser
Dev.toDev.to
AI/ML

PP-OCRv5와 ONNX Runtime 기반의 99.22% 정확도 결정론적 OCR 구현

Deterministic OCR in JavaScript: PaddleOCR for Node, Bun, Deno, and the Browser

Awal Ariansyah2026년 5월 14일9intermediate

Context

LLM 기반 Vision 모델의 Stochastic한 특성으로 인한 데이터 불일치 및 Hallucination 발생. Cloud OCR의 높은 비용과 데이터 유출 리스크 및 Tesseract.js의 낮은 정확도와 레거시 아키텍처가 병목 지점으로 작용.

Technical Solution

  • PP-OCRv5 모델을 ONNX Runtime 상에서 구동하여 환경에 무관한 Deterministic 결과 보장
  • Node.js, Bun, Deno, Browser 등 다양한 JS 런타임을 단일 API로 지원하는 Unified SDK 구조 설계
  • ppu-ocv라는 경량 이미지 프로세싱 래퍼를 통해 OpenCV.js 의존성을 제거하고 번들 크기 최적화
  • Runtime별 Entry Point 분리 전략으로 Native 바인딩과 WebGPU 가속을 유연하게 선택하는 구조 채택
  • InferenceSession 인터페이스 기반 설계를 통한 실행 제공자(Execution Provider) 교체 가능성 확보
  • Peer Dependencies 설정을 통해 타겟 환경에 필요한 최소한의 ONNX 런타임만 설치하도록 강제

1. 동일 입력에 대해 항상 동일한 결과가 필요한지 확인하여 Deterministic 모델 선정

2. WASM/Native 바인딩 최적화를 위해 런타임별 Entry Point 분리 전략 검토

3. 번들 사이즈 최소화를 위해 무거운 라이브러리를 추상화한 자체 경량 래퍼 도입 고려

4. 실행 환경의 가속기(WebGPU 등) 활용 가능 여부에 따른 동적 런타임 전환 구조 설계

원문 읽기