Communitygithub.com

uglymie/real-offline-ocr

RapidOCR + PP-OCRv6 ベースのローカル画像テキスト抽出機能。完全オフライン動作、中国語・英語対応、API不要、GPU不要。

real-offline-ocr とは?

本スキルは、RapidOCR と PP-OCRv6 モデルを活用した完全オフラインの画像文字認識(OCR)機能です。インターネット接続やAPIキー、GPUを必要とせず、ローカル環境で画像からテキストを抽出します。主に、DeepSeek-V4 などマルチモーダル能力を持たない大規模言語モデル(LLM)と連携するために設計されており、画像を直接理解できないモデルに対して、事前に画像からテキストを抽出して提供します。対応プラットフォームは Windows、macOS、Linux で、Python 3.9 以降が必要です。セットアップは同梱の setup.py スクリプトが自動で行い、仮想環境と依存関係(onnxruntime または OpenVINO)を構築します。画像ファイルのパスを指定して ocr.py を実行するだけで、認識結果と信頼度が標準出力に表示され、信頼度が低いテキストには注意が促されます。また、モデルサイズ(tiny/small/medium)や推論エンジン(onnxruntime/openvino)を選択して、速度と精度のバランスを調整できます。

対応~Claude Code~Codex CLI~Cursor
npx skills add uglymie/real-offline-ocr

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

Offline OCR — オフライン画像文字抽出

RapidOCR + PP-OCRv6 ベースのローカル画像文字抽出機能。完全オフライン動作、中国語・英語対応。ネット接続不要、API登録不要、GPU不要。

いつ使うか

  • ユーザーが画像ファイル(スクリーンショット、写真、領収書、スキャン文書、ドキュメント画像、キャプチャ等)を提供し、画像内の文字を読み取りたい場合
  • 画像からテキスト内容を抽出したい場合(領収書情報のコピー、スクリーンショット内のコード/文字認識、表内テキストの抽出など)
  • 現在のモデルがマルチモーダル能力を持たない場合、「画像を見て文字を読む」代替として
  • DeepSeek-V4 などマルチモーダル能力がない大規模モデルとの連携:モデルの会話インターフェースが「画像を見られない」場合、本スキルで先に画像から文字を抽出し、その後モデルが理解・回答・処理する

初回インストール(1回のみ)

スクリプト実行には独立した Python 仮想環境が必要です。初めて本スキルを使用する際は、環境が整っているか確認してください:

# <SKILL_DIR>/.venv が存在しない、または rapidocr を import できない場合、以下を実行:
python <SKILL_DIR>/scripts/setup.py

# Intel CPU ユーザーでより高いパフォーマンス(約1.8倍)を希望する場合、追加で OpenVINO をインストール:
python <SKILL_DIR>/scripts/setup.py --with-openvino

コマンドはクロスプラットフォームで一貫しています(Windows/macOS/Linux で使用可能、bash不要)。python が見つからない場合、Linux/macOS では python3 に置き換えてください。

setup.py は冪等であり、繰り返し実行可能です。既にインストール済みの場合はスキップされます。このスクリプトは:

  • Python バージョンが 3.9 以上かを確認(不足する場合は各プラットフォーム向けのインストール手順を表示)
  • <SKILL_DIR>/.venv を作成し、rapidocr + onnxruntime(デフォルト)または + openvino(オプション)をインストール
  • Intel CPU を検出し、OpenVINO 未インストールの場合は約1.8倍高速化のオプションインストール方法を提案(自動インストールはしない)

<SKILL_DIR> は本スキルのディレクトリを指します。モデルは rapidocr パッケージに内蔵(PP-OCRv6 の3段階 det/rec)されており、別途ダウンロードは不要です。

初回実行から利用可能になるまでの完全な流れ: python <SKILL_DIR>/scripts/setup.py → 自動インストールを待つ(約1〜3分)→ 以下のコマンドで画像認識が可能。

使用方法

# 単一画像
python <SKILL_DIR>/scripts/ocr.py <画像パス>

# 複数画像
python <SKILL_DIR>/scripts/ocr.py <画像1> <画像2> ...

# よく使うパラメータ
--model tiny|small|medium      モデル段階(デフォルト small)
--engine onnxruntime|openvino  推論エンジン(デフォルト onnxruntime)
--use_cls                      テキスト行方向分類を有効化(回転・縦書きテキストに有用、やや遅い)
--save_vis                     可視化結果を output/ に保存

例:

python <SKILL_DIR>/scripts/ocr.py /path/to/screenshot.png
python <SKILL_DIR>/scripts/ocr.py --model tiny --save_vis /path/to/invoice.jpg
python <SKILL_DIR>/scripts/ocr.py --engine openvino /path/to/photo.png

説明:ocr.py は自動的に .venv 内の依存関係を使用して実行されます(Windows では .venv\Scripts\python.exe)。インタープリターのパスを気にする必要はありません。

出力形式

スクリプトは stdout に認識結果を以下の形式で出力します:

===== ファイル名.png =====
合計 N 個のテキストボックスを認識:
[1] 認識された最初の行のテキスト  (信頼度: 0.98)
[2] 認識された2行目のテキスト  (信頼度: 0.95)

認識終了後、[番号] 以降のプレーンテキスト内容を整理してユーザーに返し、信頼度が低い場合(例:<0.6)は認識が不正確である可能性があることを注意喚起します。

推論エンジンの選択

エンジンサイズ特徴
onnxruntime(デフォルト)小 (~52M)クロスプラットフォームで一貫、クリーンなインストール、汎用推奨
openvino大 (~+123M)Intel CPU でのみ高速(約1.8倍); AMD/Apple Silicon では利点なし

モデル段階の選択

段階det/rec モデルサイズ速度精度適用シーン
tiny1.8M / 4.5M最速低め単純なシーン、クイックプレビュー
small(デフォルト)9.9M / 21Mバランス良良好一般的なシーン
medium62M / 77M最遅最高複雑・ぼやけ・密集テキスト

画像が鮮明で文字が整っている場合は small を優先。認識が不正確な場合は medium にアップグレード。

注意事項

  • 画像が鮮明で文字が整っているほど認識精度が高い。斜体、装飾文字、複雑な背景は精度を低下させる
  • 方向が逆または縦書きのテキストには --use_cls パラメータを追加可能
  • 1画像あたり約0.1〜1秒(CPU)、画像サイズ、段階、エンジンにより変動
  • 必要なのは Python 3.9+ のみ。Python 環境がない場合、setup.py が各プラットフォーム向けのインストール手順を表示

関連スキル