Show HN: LLM-Aided OCR – LLMでTesseract OCRのエラーを修正
(github.com/Dicklesworthstone)- 光学文字認識(OCR)出力の品質を大幅に向上させるために設計
- 最新の自然言語処理技術と大規模言語モデル(LLM)を活用し、生のOCRテキストを非常に高精度で整形された読みやすい文書へ変換
機能
- PDFを画像に変換
- Tesseractを使用したOCR
- LLM(ローカルまたはAPIベース)を使用した高度なエラー修正
- 効率的な処理のためのスマートなテキスト分割
- Markdown形式オプション
- ヘッダーとページ番号の抑制(任意)
- 最終出力の品質評価
- ローカルLLMおよびクラウドベースのAPIプロバイダー(OpenAI、Anthropic)をサポート
- パフォーマンス向上のための非同期処理
- プロセス追跡とデバッグのための詳細なロギング
- ローカルLLM推論のためのGPUアクセラレーション
要件
- Python 3.12+
- Tesseract OCRエンジン
- PDF2Imageライブラリ
- PyTesseract
- OpenAI API(任意)
- Anthropic API(任意)
- ローカルLLMサポート(任意、互換性のあるGGUFモデルが必要)
使い方
- プロジェクトディレクトリにPDFファイルを配置
main()関数のinput_pdf_file_path変数をPDFファイル名に更新- スクリプトを実行:
python llm_aided_ocr.py - スクリプトは最終的な後処理済みテキストを含む複数の出力ファイルを生成
動作の仕組み
LLM-Aided OCRプロジェクトは、生のOCR出力を高品質で読みやすいテキストへ変換するために多段階プロセスを使用:
- PDF変換:
pdf2imageを使用して入力PDFを画像に変換 - OCR: Tesseract OCRを適用して画像からテキストを抽出
- テキスト分割: 生のOCR出力を扱いやすいチャンクに分割
- エラー修正: 各チャンクをLLMベースの処理でOCRエラーを修正し、可読性を向上
- Markdown整形(任意): 修正済みテキストをクリーンで一貫性のあるMarkdownに再整形
- 品質評価: LLMベースの評価により、最終出力品質を元のOCRテキストと比較
GN⁺の要約
- LLM-Aided OCRプロジェクトは、最新の自然言語処理技術と大規模言語モデルを活用してOCR出力の品質を大幅に向上させるシステム
- PDFを画像に変換し、Tesseractでテキストを抽出した後、LLMでエラーを修正し、Markdown形式に再構成
- ローカルおよびクラウドベースのLLMの両方をサポートし、非同期処理によって性能を最適化
- このプロジェクトは、OCR出力の精度と可読性を高める多様な高度機能を提供し、特に大規模文書の処理に有用
- 類似の機能を提供するプロジェクトとして、ABBYY FineReader、Adobe Acrobat OCRなどがある
1件のコメント
Hacker Newsの意見
新しい schnell モデルの登場により、SOTA のビジョンモデルを生み出せるデータセットを確保できる可能性がある
科学論文では Meta の nougat モデルが最も適している
過去に試した結果、90% のケースではうまく動作した
PDF ページを PNG に変換し、gpt4 に画像の転写を依頼すると非常に正確だった
10 年前に Tesseract を使って中国語の OCR を試したことがある
PaddlePaddle を使ってより良い結果を得た
他の OCR パッケージを使ってみたかと質問している
プロンプトを調整して、モデルがより明確に理解できるようにすることが重要だ
rubrics と学生の提出物をパースする類似の作業をしている
OCR エラーを修正するために "fix this text" プロンプトを使うアプローチについて質問している