repocompass.
← 一覧へ

Unlimited-OCR|長尺ドキュメントを一度に解析するOCR

Unlimited-OCRは、単一画像・複数ページ・PDFから長文を一度に抽出するOne-shot長尺OCRツールです。

ツール Python ★ 8.4k ライセンス MIT 記事公開 (注目度4位)

ポイント

  • 長尺ドキュメント(最大32768トークン)をワンショットでパースします。
  • Hugging Face TransformersとSGLangの2通りで推論を実行できます。
  • 単一画像、複数ページ、PDFファイル形式に対応します。

概要・解決する課題

従来のOCRでは、長文コンテンツを含むドキュメントからの情報抽出に課題がありました。Unlimited-OCRは、画像、複数ページ、PDFといった様々な形式から、一度の処理で長尺のドキュメントを解析します。これにより、複雑なドキュメントからのデータ抽出における手動での介入を減らし、プロセスを自動化できます。

制約: 推論にはNVIDIA GPUおよび特定のPython/CUDAバージョンが必要です。

なぜ注目されているか

既存のOCRモデルであるDeepseek-OCRをさらに発展させることを目指したモデルで、長尺ドキュメントを一度に解析できる点が特徴です。公開直後からHugging Face Spacesでのデモ提供やModelScopeでの配布が進むなど、コミュニティでの展開が活発です。

主なユースケース

  • 長文のレポートや契約書からのキー情報抽出: PDFのような複数ページ文書から、max_length=32768トークンまでの長尺テキストを一度に解析し、必要な情報を抽出できます。

    import tempfile, fitz
    
    # ... (pdf_to_images関数定義は省略) ...
    
    model.infer_multi(
        tokenizer,
        prompt='<image>Multi page parsing.',
        image_files=pdf_to_images('your_doc.pdf', dpi=300),
        output_path='your/output/dir',
        image_size=1024, max_length=32768,
        save_results=True,
    )
  • 大量の文書画像からのバッチ処理: SGLangを用いたサーバーを立ち上げ、指定されたディレクトリ内の画像を並行処理することで、大量の文書からデータを取得できます。

    python infer.py \
        --image_dir ./examples/images \
        --output_dir ./outputs \
        --concurrency 8 \
        --image_mode gundam
始め方(クイックスタート)

Hugging Face Transformersを利用する場合、以下のコマンドでモデルをロードし、推論を実行できます。

import torch
from transformers import AutoModel, AutoTokenizer

model_name = 'baidu/Unlimited-OCR'
tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)
model = AutoModel.from_pretrained(
    model_name,
    trust_remote_code=True,
    torch_dtype=torch.bfloat16,
).eval().cuda()
model.infer(tokenizer, prompt='<image>document parsing.', image_file='your_image.jpg', output_path='your/output/dir')

GPU環境を用意せずに動きを確かめたい場合は、Hugging Face Spacesの公式デモからブラウザ上で画像やPDFをアップロードしてOCRを試せます。詳細は公式リポジトリを参照してください。

こんな人におすすめ

  • 大量の紙文書やPDFからテキスト情報を抽出し、構造化したいエンジニア。
  • 既存のOCRツールでは長文ドキュメントの処理に課題を感じている開発者。
  • Hugging Face TransformersやSGLangエコシステムを活用したOCRシステムを構築したい方。

関連リソース [PR]

※ Amazon アソシエイト・リンクを含みます。リンク経由の購入で当サイトが収益を得る場合があります。

本記事は GitHub Trending を元に自動生成しています。最新情報は公式リポジトリをご確認ください。