はじめに
オーラマ OCRは、Ollamaプラットフォームが提供する最先端の視覚言語モデルを用いて画像からテキストを抽出する、強力な光学式文字認識(OCR)ツールキットです。このプロジェクトは、Pythonパッケージとしても、ユーザーフレンドリーなStreamlitウェブ・アプリケーション・インターフェイスとしても利用可能です。リアルタイム処理用のLLaVA 7Bや、複雑な文書用の高精度Llama 3.2ビジョンモデルなど、幅広いビジョンモデルをサポートしています。Ollama OCRの特徴は、Markdown、プレーンテキスト、JSONなど、幅広い出力形式をサポートしていることと、バッチ処理機能を備えていることです。このツールは、画像からテキストデータを抽出し、構造化する必要のある開発者や研究者に特に適しています。
機能一覧
- 複数の高度な視覚言語モデルをサポート(LLaVA 7BおよびLlama 3.2 Vision)
- 多様な出力形式を提供(Markdown、プレーンテキスト、JSON、構造化データ、キーと値のペア)
- バッチ画像処理機能をサポートし、複数の画像を並行して処理できる。
- 内蔵画像前処理(リサイズ、正規化など)
- 進捗管理と処理統計の提供
- 使いやすいStreamlitウェブ・インターフェースをサポート
- ドラッグ&ドロップによる画像アップロードとリアルタイム処理をサポート
- 抽出したテキストのダウンロード機能の提供
- 統合された画像プレビューと詳細情報表示
ヘルプの使用
1.インストール手順
- まずOllamaプラットフォームをインストールする必要がある:
- Ollamaの公式ウェブサイトから、お使いのシステムに合ったインストールパッケージをダウンロードしてください。
- Ollamaの基本的なインストールを完了する
- 必要なビジュアルモデルをインストールします:
ollama pull llama3.2-vision:11b
- Ollama OCRパッケージをインストールします:
pip install ollama-ocr
2.Pythonパッケージの使用
2.1 単一画像処理
from ollama_ocr import OCRProcessor
# OCRプロセッサを初期化する
ocr = OCRProcessor(model_name='ollama3.2-vision:11b')
# 一つの画像を処理する
result = ocr.process_image(
image_path="画像パス.png"、
format_type="markdown" # オプションのフォーマット:markdown、text、json、structured、key_value
)
print(result)
2.2 画像のバッチ処理
# OCRプロセッサの初期化と並列処理数の設定
ocr = OCRProcessor(model_name='llama3.2-vision:11b', max_workers=4)
#で画像をバッチ処理
batch_results = ocr.process_batch(
input_path="画像フォルダのパス"、
format_type="markdown"、
recursive=True, #検索サブディレクトリ
preprocess=True # 画像の前処理を有効にする
)
# 処理結果を表示
for file_path, text in batch_results['results'].items()::
print(f "ファイル:{file_path}")
print(f "抽出されたテキスト:{text}")
# 処理統計を見る
print(f "画像の合計: {batch_results['statistics']['total']}")
print(f "処理に成功しました: {batch_results['statistics']['successful']}")
print(f "処理に失敗しました: {batch_results['statistics']['failed']}")
3.Streamlitウェブ・アプリケーションの使用方法
- コードリポジトリをクローンする:
git clone https://github.com/imanoop7/Ollama-OCR.git
cd Ollama-OCR
- 依存関係をインストールします:
pip install -r requirements.txt
- ウェブアプリケーションを起動する:
cd src/ollama_ocr
streamlit run app.py
4.出力フォーマットの説明
- Markdownフォーマット: 見出しやリストを含むテキストのフォーマットを保持します。
- プレーンテキストフォーマット:クリーンでシンプルなテキスト抽出を提供します。
- JSON形式:構造化データ形式出力
- 構造化フォーマット:表と整理されたデータ
- キー・バリュー・ペア形式:ラベル付き情報の抽出
5.注意事項
- LLaVAモデルは、時折誤った出力をすることがあります。重要なシナリオには、Llama 3.2 Visionモデルを使用することをお勧めします。
- 画像の前処理は認識精度を向上させる
- バッチ処理を行う場合は、メモリの過剰消費を避けるため、並列数の妥当な設定に注意する。
- 大量の画像を処理する場合は、進行状況の追跡をオンにすることをお勧めします。