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)をサポートしています。システムは主に2つのコンポーネントから構成されています:テキスト検出モデル(テキストの位置を特定)とテキスト認識モデル(その領域を文字に変換)。

主な技術的特徴:

  • モデル変換:PaddlePaddleモデルをMNN形式に変換するPythonスクリプトを提供(通常、FP16を使用してサイズを削減)。
  • ハードウェアアクセラレーション:CPU、CUDA、Vulkan、Metalなど複数のバックエンドをサポートし、可能な場合はプリビルドを自動選択。
  • ロバストモード:水平と垂直のテキストが混在する画像を処理するためのオプトインモード。画像を回転させたコピー上で検出を実行。
  • 文字の位置合わせ:CTCのタイムステップから導出された各文字の正確な座標を提供するAPI。追加の推論パスは不要。

対象ユーザー

外部クラウドAPIに依存せずに、アプリケーションに高性能でローカルなOCR機能を統合したいRust開発者。

主な特徴

  • 多言語対応:50以上の言語をサポート。モデルバージョンによって異なり、韓国語、アラビア語、キリル文字など専用スクリプトも含む。
  • 柔軟な推論:エンドツーエンドOCR、検出のみ、認識のみのエンジンを提供。
  • GPUアクセラレーション:Metal、Vulkan、CUDAのネイティブサポートで処理を高速化。
  • メモリ最適化:非常に幅広いテキスト領域を処理するために、デフォルトでOpenCLバッファメモリを使用。これによりGPUの画像幅制限を超える問題を回避。
  • パフォーマンスのガードレール:内部にCriterionベンチマークとCIスタイルのパフォーマンススモークテストを備え、パフォーマンスの低下を防止。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト