はじめに
Versatile OCR Programは、複雑な学術・教育文書を処理するために設計された、オープンソースの光学式文字認識(OCR)ツールです。PDF、画像、その他の文書からテキスト、表、数式、グラフ、回路図を抽出し、機械学習の学習に適した構造化データを生成することができます。英語、日本語、韓国語など多言語に対応し、出力形式は開発者に便利なJSONまたはMarkdownです。
機能一覧
- 多言語のテキストを抽出し、英語、日本語、韓国語などをサポートし、他の言語に拡張することができます。
- 数式を認識し、LaTeXコードと自然言語記述を生成します。
- テーブルを解析し、行と列の構造を保持し、構造化データを出力する。
- 図や回路図を分析し、意味的な注釈や説明を生成する(例:「この図は細胞分裂の4つの段階を示しています」)。
- 複雑なレイアウトのPDFを処理し、数式を多用する段落やビジュアル要素を正確に識別。
- AIトレーニングを最適化するためのセマンティックコンテキストを含むJSONまたはMarkdownフォーマットを出力します。
- DocLayout-YOLO、Google Vision API、MathPix、その他のテクノロジーを使用して認識精度を向上させます。
- 実際の学術データセット(例:日本留学試験生物学、東洋大学数学)に対して90-95%の高精度を提供。
- 複数のファイル入力を処理するバッチ処理をサポート。
ヘルプの使用
設置プロセス
Versatile OCR Programを使用するには、リポジトリをクローンし、環境を設定する必要があります。以下はその詳細な手順です:
- クローン倉庫
ターミナルで実行:git clone https://github.com/ses4255/Versatile-OCR-Program.git cd Versatile-OCR-Program
- 仮想環境の構築
Python 3.8以上を推奨。仮想環境を作成し、有効化する:python -m venv venv source venv/bin/activate # Linux/Mac venv\Scripts\activate # Windows
- 依存関係のインストール
プロジェクトに必要なライブラリをインストールする:pip install -r requirements.txt
依存関係には以下が含まれる。
opencv-python
そしてgoogle-cloud-vision
そしてmathpix
そしてpillow
など。ネットワーク接続が安定していることを確認してください。 - APIキーの設定
このプロジェクトは、高度なOCR処理のために外部API(Google VisionやMathPixなど)に依存している:- グーグルビジョンAPIで
config/
ディレクトリにgoogle_credentials.json
サービス・アカウント・キーを記入してください。キーを取得するにはGoogleクラウドコンソール. - MathPix APIで
config/
ディレクトリにmathpix_config.json
記入app_id
歌で応えるapp_key
.キーを取得するには、MathPixアカウントに登録してください。 - 設定ファイルのテンプレートはプロジェクト
README.md
.
- グーグルビジョンAPIで
- インストールの確認
テストスクリプトを実行し、環境が正しいことを確認する:python test_setup.py
エラーがなければ、インストールは完了です。
ワークフロー
多用途OCRプログラムは、初期抽出と意味処理の2段階で実行されます。
1.初期OCR抽出
うごきだすocr_stage1.py
生の要素(テキスト、表、グラフなど)を抽出します:
python ocr_stage1.py --input sample.pdf --output temp/
--input
入力ファイル(PDFまたは画像、例えばPNG、JPEG)を指定します。--output
座標やトリミング画像などを含む中間結果ディレクトリを指定する。- バッチ処理のサポート
--input_dir
フォルダを指定する。
2.意味処理と最終出力
うごきだすocr_stage2.py
中間データを構造化出力に変換する:
python ocr_stage2.py --input temp/ --output final/ --format json
--input
第1ステージの出力ディレクトリを指定する。--format
出力フォーマット (json
もしかしたらmarkdown
).- 出力には、テキスト、数式の説明、表データ、チャートのセマンティック・ラベル付けが含まれる。
主な機能
1.多言語テキスト抽出
PDFや画像からテキストを抽出します:
python ocr_stage1.py --input document.pdf --lang eng+jpn+kor --output temp/
python ocr_stage2.py --input temp/ --output final/ --format markdown
--lang
言語をフォーマットで指定するeng
(英語)、jpn
(日本語)、kor
(韓国語)、多言語+
コネクションだ。- 出力ファイルにはテキストコンテンツとセマンティックコンテキストが含まれ、MarkdownまたはJSONとして保存される。
2.数式識別
数式を識別し、LaTeXコードと説明を生成します。例えばx^2 + y = 5
出力は「変数xとyを持つ二次方程式」。操作
python ocr_stage1.py --input math.pdf --mode math --output temp/
python ocr_stage2.py --input temp/ --output final/ --format json
--mode math
活性化式の認識。- 出力にはLaTeXコードと自然言語による説明が含まれる。
3.テーブルの分析
行と列の構造を保持したままテーブルを取り出す:
python ocr_stage1.py --input table.pdf --mode table --output temp/
python ocr_stage2.py --input temp/ --output final/ --format json
--mode table
フォーム処理を専門とする。- 出力はJSONで、行と列のデータと要約が記述されている。
4.グラフィカルで概略的な分析
意味的注釈を生成するために、図表を分析する。例えば、折れ線グラフは「2010年から2020年までの気温の変化を示す折れ線グラフ」を出力するかもしれない。アクション
python ocr_stage1.py --input diagram.pdf --mode figure --output temp/
python ocr_stage2.py --input temp/ --output final/ --format markdown
--mode figure
チャート分析を有効にする。- 出力には、画像の説明、データポイントの抽出、およびコンテキストが含まれます。
ヒントとコツ
- 精度の向上高解像度ファイル(300DPI推奨)を入力します。実行時に追加
--dpi 300
画像解析を最適化する。 - バッチファイルの使用
--input_dir data/
フォルダ内のすべてのファイルを処理します。 - カスタム言語:: 編集部
config/languages.json
言語を追加するには、対応するOCRモデル(Tesseract言語パックなど)をインストールする必要があります。 - デバッグ・ログ追加
--verbose
詳細な操作情報を表示します。 - 圧縮出力の使用
--compress
JSONファイルのサイズを小さくする。
ほら
- 入力文書が明瞭であることを確認する。低品質の文書は認識精度を低下させる可能性がある。
- 外部APIには安定したネットワークが必要であり、スペアキーを設定することを推奨する。
- 出力デ ィ レ ク ト リ には十分なデ ィ ス ク 容量が必要であ り 、 大 き な PDF は大 き な フ ァ イ ルを生成す る 可能性があ り ます。
- GNU AGPL-3.0ライセンスでは、派生プロジェクトはソースコードを公開しなければなりません。
- プロジェクトでは、AIパイプラインの統合を1カ月以内にリリースする予定なので、期待していてほしい。
これらのステップにより、ユーザーはすぐに開始し、複雑な文書を処理し、AIのトレーニングデータを生成することができる。
アプリケーションシナリオ
- 学術研究データ抽出
研究者は、試験問題や小論文から数式、表、グラフを抽出し、意味的な注釈を持つデータセットを生成することができる。例えば、東洋大学の数学の試験問題は、幾何モデルのトレーニングのためにJSONに変換された。 - 教育資料のデジタル化
紙の教科書や試験問題を電子化し、多言語のテキストやグラフィックを抽出し、検索可能なアーカイブを作成することができます。国際的なプログラムの多言語処理に適しています。 - 機械学習データセットの構築
開発者は学術文書から構造化データを抽出し、高品質のトレーニングセットを生成することができる。例えば、生物学の論文から細胞分裂図を抽出したり、ステージの説明をラベル付けしたり、画像認識モデルをトレーニングしたりすることができる。 - 文書処理
歴史的な学術文書を電子化し、数式や表構造を保持して検索効率を向上。複雑なレイアウトのPDF処理をサポート。 - 検査分析ツール
教育機関は、問題用紙の内容を分析し、問題の種類や図表を抽出し、統計レポートを作成し、教育設計を最適化することができます。
品質保証
- どのような入力フォーマットに対応していますか?
PDFおよび画像(PNG、JPEG)に対応しています。精度を確保するため、高解像度のPDFを推奨します。 - フォームの認識精度を向上させるには?
以下のことを可能にするために、明確な文書を使用する。--dpi 300
.日本語の表については、Google Vision API は MathPix よりも優れており、次のように使用できます。config/
ミディアム調整。 - 有料のAPIを使用する必要がありますか?
Google VisionとMathPix APIは有料アカウントが必要ですが、DocLayout-YOLOのようなオープンソースのモジュールは無料です。最良の結果を得るためには、APIを設定することをお勧めします。 - 新しい言語を追加するには?
コンパイラconfig/languages.json
言語コードとOCRモデル(Tesseract言語パックなど)を追加します。プログラムを再起動してください。 - 出力ファイルが大きすぎる場合は?
支出--compress
JSONを圧縮するか、Markdown形式を選択する。出力モジュールを制限することも可能で、例えばテキストだけを抽出する (--mode text
). - プロジェクト改善に参加するには?
プルリクエストはGitHubから、または作者 ses425500000@gmail.com までご連絡ください。コードへの貢献や問題へのフィードバックもお気軽にどうぞ。