python-ocr-expertise
PyTesseract、PaddleOCR、EasyOCR、docTR、keras-ocr、TrOCRを使ったPython OCR。 画像やドキュメントからのテキスト抽出、OCRパイプラインの構築、OCRライブラリの選定、OCR精度のデバッグが必要な場合に活用できます。9つのOCRライブラリ(3つのレベル別)、前処理パイプライン、PSMモード、GPU加速、信頼度フィルタリング、ライブラリ選定ガイドを網羅しています。 キーワード:OCR、Tesseract、PyTesseract、PaddleOCR、EasyOCR、テキスト抽出、画像、ドキュメント
description の原文を見る
Python OCR with PyTesseract, PaddleOCR, EasyOCR, docTR, keras-ocr, TrOCR. Use when: Extracting text from images/documents, building OCR pipelines, choosing between OCR libraries, debugging OCR accuracy. Covers: 9 OCR libraries (3 tiers), preprocessing pipeline, PSM modes, GPU acceleration, confidence filtering, library selection guide. Keywords: ocr, tesseract, pytesseract, paddleocr, easyocr, text extraction, image, document
SKILL.md 本文
Python OCR専門知識
適用範囲ガード
Pythonに固有。Python OCRライブラリまたはPythonベースのテキスト抽出パイプラインにのみアクティベートします。
使用する場合
- 画像またはスキャンドキュメントからテキストを抽出する
- 本番環境のOCRパイプラインを構築する
- OCRライブラリ間で選択・比較する
- OCR精度の問題をデバッグする
使用しない場合
- テキスト抽出を超えたドキュメント理解(
ai-multimodalを使用) - デジタルPDFからのPDFテキスト抽出(
pdfスキルを使用——OCRは不要) - Python以外のOCR実装
- シンプルなスクリーンショットのテキスト読み取り(Claudeのビジョン機能を直接使用)
アンチパターン
| しないこと | 理由 | 修正方法 |
|---|---|---|
| 画像前処理をスキップする | OCR精度が生画像で30~50%低下する | 常に適用:グレースケール → ブラー → 大津の二値化 → 傾き補正 |
| 単一行テキストでデフォルトPSMモードを使用する | PSM 3(自動)は単純な入力に対してレイアウト分析に時間を無駄にする | 対象を絞った抽出にはPSM 7(単一行)またはPSM 8(単一単語)を使用 |
| 信頼度スコアを無視する | 低信頼度の結果がサイレントにゴミテキストを導入する | 最小0.7の閾値でフィルタリング;ユースケースごとに調整 |
| 多言語本番環境でPyTesseractを使用する | Tesseract精度はディープラーニングオプションより大幅に遅れている | 多言語にはPaddleOCR(最高精度)またはEasyOCR(最も簡単なセットアップ)を使用 |
| WebサービスでリクエストごとにOCRモデルを読み込む | モデル読み込みに2~10秒かかり;レスポンス時間が致命的 | モデルを起動時に1回初期化;リクエスト全体で再利用 |
競合
pdfスキル:デジタルPDFテキストにはpdfスキルを使用;スキャン画像/ドキュメントのOCRにはこのスキルを使用。ai-multimodal:ドキュメント理解にはai-multimodalを使用;生テキスト抽出にはこのスキルを使用。
ライブラリ選択
| ユースケース | ライブラリ | 理由 |
|---|---|---|
| シンプルなテキスト抽出 | PyTesseract | 最も軽量なセットアップ;クリーン画像で十分 |
| 最高精度(多言語) | PaddleOCR | 最先端のPP-OCRv4/v5 |
| 迅速なセットアップ、80以上の言語 | EasyOCR | ワンライナーセットアップ;良好な精度 |
| ドキュメント理解 | docTR | 1つのパイプラインでレイアウト+テキスト |
| 手書きテキスト | TrOCR | Transformerベース;手書き用として最適 |
| エッジ/モバイル展開 | RapidOCR | ONNXベース;軽量 |
精度階層: PaddleOCR >= docTR > EasyOCR > PyTesseract
必須前処理
import cv2
def preprocess_for_ocr(image_path):
img = cv2.imread(image_path)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
blur = cv2.GaussianBlur(gray, (5, 5), 0)
_, binary = cv2.threshold(blur, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)
return binary
PyTesseract PSMモード(エキスパート知識)
| PSM | ユースケース |
|---|---|
| 3 | 完全自動(デフォルト) |
| 4 | 単一列、可変サイズ |
| 6 | 均一なテキストブロック |
| 7 | 単一テキスト行 |
| 8 | 単一単語 |
| 11 | スパーステキスト(可能な限り検出) |
| 13 | 生行(ハック回避) |
取り込みとルーティング
| タスク | 参照ファイル |
|---|---|
| 新しいOCRパイプラインを構築する | workflows/build-ocr-pipeline.md |
| ライブラリを選択・比較する | workflows/library-selection.md |
| 精度の問題をデバッグする | references/troubleshooting.md |
| 画像前処理 | references/preprocessing.md |
| PyTesseract深掘り | references/pytesseract.md |
| PaddleOCR深掘り | references/paddleocr.md |
| EasyOCR深掘り | references/easyocr.md |
| docTR/keras-ocr/TrOCR | references/doctr.md |
関連スキル
ai-multimodal— OCRを超えたドキュメント理解pdf— PDFテキスト抽出(デジタル、スキャンなし)media-processing— 画像前処理パイプライン
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- krzemienski
- ライセンス
- MIT
- 最終更新
- 2026/5/2
Source: https://github.com/krzemienski/awesome-list-site / ライセンス: MIT