はじめに
オーラマ 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='llama3.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"\n文件: {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モデルを使用することをお勧めします。
- 画像の前処理は認識精度を向上させる
- バッチ処理を行う場合は、メモリの過剰消費を避けるため、並列数の妥当な設定に注意する。
- 大量の画像を処理する場合は、進行状況の追跡をオンにすることをお勧めします。