zibo-chen/ocr-rs

高性能OCR识别库,支持上百种语言,提供命令行、图形界面及C API多种调用方式,使用便捷高效。 High-performance OCR library powered by PaddleOCR v4/v5/v6 with MNN backend. Supports 10+ languages (Chinese, English, Japanese, Korean, Arabic, Cyrillic, Thai, etc). Provides Rust crate + C API + CLI tools. Fast, lightweight, easy-to-integrate.

해결하는 문제

ocr-rs는 광학 문자 인식(OCR) 기능을 제공하는 경량 Rust 라이브러리입니다. 개발자가 이미지에서 텍스트를 추출할 수 있으며, 중국어, 영어, 일본어 및 다양한 라틴 문자 기반 언어를 포함한 다양한 언어를 지원하면서 MNN 추론 런타임을 사용하여 높은 성능을 유지합니다.

작동 방식

이 라이브러리는 PaddleOCR 모델을 래핑하고, 실행에 MNN 추론 런타임을 사용합니다. 크기와 정확도의 트레이드오프를 고려한 여러 모델 버전(v4, v5, v6)을 지원합니다. 시스템은 주로 두 가지 구성 요소로 구성됩니다: 텍스트 검출 모델(텍스트 위치를 찾는 역할)과 텍스트 인식 모델(해당 영역을 문자로 변환하는 역할).

주요 기술적 특징:

  • 모델 변환: PaddlePaddle 모델을 MNN 형식으로 변환하는 Python 스크립트를 제공하며, 일반적으로 FP16를 사용하여 크기를 줄입니다.
  • 하드웨어 가속: CPU, CUDA, Vulkan, Metal 등 여러 백엔드를 지원하며, 가능한 경우 사전 빌드된 버전을 자동 선택합니다.
  • 강건 모드: 수평과 수직 텍스트가 혼합된 이미지를 처리하기 위해 이미지를 회전시킨 복사본에서 검출을 실행하는 옵션 모드입니다.
  • 문자 정렬: CTC 타임스텝에서 유도된 각 문자의 정확한 좌표를 제공하는 API로, 추가 추론 단계가 필요하지 않습니다.

대상 사용자

외부 클라우드 API에 의존하지 않고 애플리케이션에 고성능 로컬 OCR 기능을 통합하고자 하는 Rust 개발자들.

주요 특징

  • 다국어 지원: 다양한 모델 버전을 통해 50개 이상의 언어를 지원하며, 한국어, 아랍어, 키릴 문자 등 전용 스크립트도 포함합니다.
  • 유연한 추론: 엔드투엔드 OCR, 검출 전용, 인식 전용 엔진을 모두 제공합니다.
  • GPU 가속: Metal, Vulkan, CUDA의 네이티브 지원으로 처리 속도를 향상시킵니다.
  • 메모리 최적화: 매우 넓은 텍스트 영역을 처리하기 위해 기본적으로 OpenCL 버퍼 메모리를 사용하여 GPU 이미지 너비 제한을 초과하는 문제를 해결합니다.
  • 성능 가드레일: 내장된 Criterion 벤치마크와 CI 스타일의 성능 스모크 테스트를 통해 성능 저하를 방지합니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트