なぜGPT-4 VisionベースのOCRツールが必要だったのか
ビジネスシーンでは、手書きのメモやドキュメントをデジタル化する需要が依然として高く存在します。従来のOCRツールでは、特にTesseractのような無料のオープンソースソリューションでは、期待する精度が得られないケースが多々ありました。
この課題に対して、私たちは最新のGPT-4oのVision APIを活用した新しいアプローチを採用しました。
生成AIの優れた画像認識能力により、従来のOCRでは難しかった手書き文字や複雑なレイアウトでも高精度な文字認識が可能になります。
技術的特徴とアーキテクチャ
クロスプラットフォーム対応
- PyQt6を使用したGUIインターフェース
- Windows/macOS両対応の画面キャプチャ機能
- 直感的な領域選択とOCR実行
OpenAI API活用
- GPT-4oのVision APIを使用した高精度OCR
- 環境変数による安全なAPI認証管理
- 非同期処理による快適な操作性
ユーザビリティ重視の機能
- ドラッグ&ドロップによる領域選択
- ワンクリックでクリップボードにコピー
- シンプルで分かりやすいインターフェース
実装のポイント
コードのポイントをピックアップして紹介します。
def perform_ocr(self, image_path):
base64_image = self.image_to_base64(image_path)
response = self.client.chat.completions.create(
model="gpt-4o",
messages=[
{
"role": "user",
"content": [
{
"type": "text",
"text": "この画像内のテキストを抽出してください。"
},
{
"type": "image_url",
"image_url": {
"url": f"data:image/png;base64,{base64_image}"
}
}
]
}
],
max_tokens=1000
)
このコードでは、キャプチャした画像をbase64エンコードし、GPT-4oのAPIに送信して文字認識を行っています。シンプルな実装ながら、高い認識精度を実現しています。
リポジトリ
本記事で紹介したOCRツールに興味を持たれた方は、GitHubリポジトリからソースコードを取得いただけます。
使い方
詳細はGithubのリポジトリを確認してください。
試しに以下のサイトのレシートのサンプルを読み込んでみました。
起動すると以下の画面が表示されます。
利用する際は「Capture OCR」をクリックします。あとはエリアを選ぶだけでテキストボックスにテキストが出力されます。
その他に取得したテキストをクリップボードにコピーする「Copy to Clipboard」と、OCR結果をクリアする「Clear Text」を備えました。
元のレシート画像に対して出力されたテキストは、以下の内容です。
・レシート画像
・OCRテキスト
ほぼ完璧です!が、1箇所値引き 20% −¥30のマイナスが右矢印になっていました。その他はしっかりと認識できていました。本当に生成AIの性能進化はすごいです。
I SHOP
神奈川県横浜市西区みなとみらい
みなとみらい店 TEL045-222-6549
営業時間: 10:00-19:00
**春の大セール開催中**
20XX年 3月22日(金)11:32
1100 大根 ¥105
1100 たまねぎ ¥105
1100 チョコパンBB ¥200
1100 ISPポテトS ¥150
1100 はまソーダ500ML
¥98 2個 ¥196
1200 姫かま ¥150
値引 20% →¥30
小計 / 7点 ¥876
合 計 ¥876
お預り ¥1,000
お釣り ¥124
ISPポイント 10ポイント
支払方法 クレジットM
まとめ
今回は実際に業務の中でちょっとツールが欲しい!という場面があり、すぐにAI(Perplexity)に相談して作ってみました。生成AIの進化により、本当に短時間でツールの開発が可能になり、日々の仕事の質も効率も大きく向上したと時間しています。
非常にシンプルですが、これほどの高性能のOCRツールを簡単に作ることができるのも生成AIのおかげですし、その性能の高さも生成AIの恩恵を受けています。数年前には想像もしていなかった状況です。
今後も身近な業務効率化へのAI活用術について紹介していきたいと思います。日々の業務の効率化に何か役にたつツールがあればぜひご活用ください。
コメント