AIパーソナル・ラーニング
と実践的なガイダンス
サイバーナイフ用ドローイングミラー

uniOCR: クロスプラットフォームのオープンソーステキスト認識ツール

はじめに

uniOCRはmediar-aiチームによって開発されたオープンソースのテキスト認識ツールです。Rust言語をベースにしており、macOS、Windows、Linuxをサポートしている。uniOCRの主な特徴は、クロスプラットフォームのサポートと統一されたインターフェースデザインです。Vision Kit for macOS、Windows OCR、Tesseractなど複数のOCRエンジンを統合し、クラウドOCRもサポートしている。プロジェクトのコードは公開されており、ユーザーが自由に修正・拡張することができます。

uniOCR: クロスプラットフォームのオープンソーステキスト認識ツール-1


 

機能一覧

  • macOS、Windows、Linuxシステムをサポートし、クロスプラットフォームで動作します。
  • macOS Vision、Windows OCR、Tesseract、Cloud OCRなど、複数のOCRエンジンオプションが利用可能です。
  • 単一画像または複数画像からのテキスト抽出をサポートします。
  • 異なるOCRエンジン間の切り替えを容易にする統一されたAPIインターフェースを提供する。
  • 認識効率を高めるため、非同期操作とバッチ処理をサポート。
  • 言語、信頼度のしきい値、タイムアウトなどの設定をカスタマイズできる。
  • オープンソースプロジェクトで、ユーザーはコードを閲覧し、修正することができる。

 

ヘルプの使用

設置プロセス

uniOCRの実行には、Rust環境と関連する依存関係が必要です。以下はその詳細な手順です:

  1. 錆の設置
    • ターミナルを開き、以下のコマンドを入力してRustをインストールする:
      curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
      
    • インストールが完了したら rustc --version バージョンを確認し、インストールが成功したことを確認する。
  2. uniOCRソースコードダウンロード
    • Gitを使ってプロジェクトをローカルにクローンする:
      git clone https://github.com/mediar-ai/uniOCR.git
      
    • プロジェクト・カタログにアクセスする:
      cd uniOCR
      
  3. テッセラクトのインストール(オプション)
    • Tesseractエンジンを使用したい場合は、追加でインストールする必要があります:
      • macOS: 実行中 brew install tesseract
      • Ubuntu:実行中 apt-get install tesseract-ocr
      • ウィンドウズ:実行中 winget install tesseract または手動でインストールパッケージをダウンロードしてください。
    • macOS VisionとWindows OCRには追加のインストールは必要ありません。
  4. プロジェクトのコンパイル
    • プロジェクト・ディレクトリで実行する:
      cargo build --release
      
    • コンパイル後、実行ファイルは <项目目录>/target/release/.
  5. ランニングプログラム
    • 次のコマンドを入力して開始する:
      cargo run --release
      

使用方法

uniOCRは、コード呼び出しによるテキスト認識を可能にします。基本的な操作は以下の通り:

  1. 写真を準備する
    • 認識する画像を配置する(例 test.png)をプロジェクト・カタログに追加する。
  2. 基本的な例を実行する
    • コンパイラ <项目目录>/examples/basic.rsコードは以下の通り:
      use uniocr::{OcrEngine, OcrProvider};
      use anyhow::Result;
      #[tokio::main]
      async fn main() -> Result<()> {
      let engine = OcrEngine::new(OcrProvider::Auto)?;
      let text = engine.recognize_file("test.png").await?;
      println!("提取的文字: {}", text);
      Ok(())
      }
      
    • 例を実行する:
      cargo run --example basic
      
    • プログラムは画像内のテキストを出力する。
  3. OCRエンジンの選択
    • 修正 OcrProvider パラメータでエンジンを切り替える:
      • macOSビジョン:OcrProvider::MacOS
      • Windows OCR:OcrProvider::Windows
      • テッセラクトOcrProvider::Tesseract
    • サンプルコード:
      let engine = OcrEngine::new(OcrProvider::Tesseract)?;
      
  4. バッチファイル
    • コンパイラ <项目目录>/examples/batch_processing.rs::
      use uniocr::{OcrEngine, OcrProvider};
      use anyhow::Result;
      #[tokio::main]
      async fn main() -> Result<()> {
      let engine = OcrEngine::new(OcrProvider::Auto)?;
      let images = vec!["img1.png", "img2.png", "img3.png"];
      let results = engine.recognize_batch(images).await?;
      for (i, text) in results.iter().enumerate() {
      println!("图片 {} 提取的文字: {}", i + 1, text);
      }
      Ok(())
      }
      
    • 走っている:
      cargo run --example batch_processing
      

注目の機能操作

カスタマイズされた設定

  • uniOCRは認識パラメーターの調整に対応しています。サンプルコード
use uniocr::{OcrEngine, OcrProvider, OcrOptions};
let options = OcrOptions::default()
.languages(vec!["eng", "chi_sim"])  // 设置英文和简体中文
.confidence_threshold(0.8)         // 置信度阈值
.timeout(std::time::Duration::from_secs(30));  // 超时 30 秒
let engine = OcrEngine::new(OcrProvider::Auto)?.with_options(options);
  • 実行後、認識は設定されたとおりに実行される。

多言語サポート

  • 中国語がわかる場合は、Tesseract用の中国語言語パックをインストールする必要があります:
  • macOS/Ubuntu: を実行する。 brew install tesseract-lang もしかしたら apt-get install tesseract-ocr-chi-sim
  • Windows: ダウンロード chi_sim.traineddata をTesseractのインストールディレクトリに追加します。 tessdata フォルダー
  • 言語パラメータを vec!["chi_sim"].

パフォーマンス最適化

  • uniOCRは、非同期処理と並列処理を採用しています。バッチ認識では、複数の画像を同時に処理し、時間を節約します。
  • M4 MacBook Proのような高性能デバイスでは、macOS Visionは毎秒3.2枚の画像を90%の精度で処理できる。

ほら

  • 画像は鮮明である必要があり、不鮮明であったり、光が弱かったりすると認識に影響することがある。
  • WindowsシステムはWindows 10以上である必要があります。
  • クラウドOCR(例:Google Cloud Vision)は、設定に追加の認証情報を必要とし、現時点では完全な公式例は利用できません。

 

アプリケーションシナリオ

  1. 文書スキャン
    ユーザーは紙文書を撮影し、uniOCRを使ってテキストを抽出し、電子版として保存することができる。
  2. 多言語翻訳
    画像内の外国語を認識した後、翻訳ツールと連携して多言語テキストを生成する。
  3. 自動化されたワークフロー
    開発者は、uniOCRをスクリプトに統合して、画像をバッチ処理し、テキストを抽出することができます。

 

品質保証

  1. どのシステムがuniOCRをサポートしていますか?
    macOS、Windows 10+、Linuxをサポートし、追加のハードウェアは必要ありません。
  2. 認識精度を高めるには?
    高品質の画像を使用する、信頼度のしきい値を調整する、または適切なOCRエンジンを選択する。
  3. Tesseractが中国語を認識しない場合はどうすればよいですか?
    中国語の言語パックをインストールし、設定する必要があります。 languages(vec!["chi_sim"]).
無断転載を禁じます:チーフAIシェアリングサークル " uniOCR: クロスプラットフォームのオープンソーステキスト認識ツール
ja日本語