0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

無料AIでPDFと画像をOCRする

Last updated at Posted at 2025-02-03

はじめに

PDFまたは画像を無料のAIでOCRするPythonコードを作ったので共有します。
なお、この投稿のソースおよび参考情報は https://github.com/katsu-yoshimu/AI_OCR/ をご確認ください。

機能概要

入力ファイルで指定したPDFファイルまたは画像ファイルをAI(gemini-2.0-flash-exp)でOCRして出力ファイルに出力する。

環境構築

前提:ローカルPCに git、ptyhon3.12 がインストール済 & Gemini APIキー 取得済

  1. ローカルPCにリポジトリのクーロン作成:

    git clone https://github.com/katsu-yoshimu/AI_OCR.git
    
  2. ローカルPCに仮想完了作成と仮想環境アクティベート:

    cd AI_OCR
    python -m venv .venv
    .venv\Scripts\activate
    
  3. ローカルPCに必要なPythonパッケージをインストール:

    python -m pip install --upgrade pip
    pip install -r requirements.txt
    
  4. Gemini APIキー値を環境変数に設定:

    コマンドプロンプト
    set GEMINI_API_KEY=(ここは取得したAPIキー値で置き換えてください)
    
    PowerShell
    $Env:GEMINI_API_KEY = "(ここは取得したAPIキー値で置き換えてください)"
    

実行

  1. Pythonスクリプト実行

    python ai_ocr.py -infile サンプル.bmp -outfile サンプル.xlsx
    

    「ai_ocr.py」の使い方は「-h」でご確認ください。

    使い方の表示例
     (.venv) c:\work\AI_OCR>python ai_ocr.py -h
     usage: ai_ocr.py [-h] -infile INFILE [-outfile OUTFILE] [-outfiletype OUTFILETYPE]
    
     PDF/画像ファイルをOCRして出力します。
    
     options:
     -h, --help            show this help message and exit
     -infile INFILE        入力ファイル (PDFまたは画像)
     -outfile OUTFILE      出力ファイル (省略時は標準出力)
     -outfiletype OUTFILETYPE
                             出力ファイル形式 (txt, md, csv, html, xlsx) (省略時は出力ファイルの拡張子)
    

注意事項

  • Gemini API 追加利用規約の『プライベート情報、機密情報、または個人情報を送信 しないでください。』が許容できるか?
  • 使いどころに注意。AIは実行のときどきでOCRの答えが揺れるっぽい。PDFは単純にテキスト抽出した方が正確性は高い
  • 無料枠なので1分間に15回。1日に1500回の実行上限がある
  • xlsx出力する際に、サフィックス「.temp.md」をつけた中間ファイルを作成する。AIが直接xlsxを作成しないため、AIでマークダウン形式のテキストを作って、それを元にxlsx出力する。xlsx出力とmd出力の結果が不一致となることがあるため、その確認が目的

補足:作成経緯

PDF の OOR を検討していた。
ChatGPT APIは有料、Gemini APIは無料のため、Gemini APIを選択した。DeepSeekは出始めだったので選考外とした。
Gemini はチャット形式で、画像を入力可能。だたし、PDFは入力できない。
Vertex AI Studio はチャット形式で、PDFを入力可能。無料っぽいけど、クレジットカードの登録が必要だったので断念した。
ChatGPT はチャット形式で、PDF を入力可能。現状無料で利用できる範囲では PDF の中の画像は OCR してくれないっぽい。
ついでに python コードも AI に作ってもらったが、完全に動作するものにならず、自分でデバックした。部分的な改善も AI でやった。最後に、AI にコードレビューした。

参考リンク

0
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?