[Python] Chrome画面をOCRで日本語抽出しChatGPT(LLM)に渡す

AI技術の発達が凄まじく、昔やりたかった事が色々と実現できるようになってきた。

今回実験するステップは次のとおり。

  • 背面にあってもChrome画面を自動的にキャプチャする
  • キャプチャ画像にOCRを実施して日本語を抽出
  • ③ 抽出した日本語をLLMに渡す
  • ④ LLMからのフィードバックを得る

これが1ページ10秒~30秒もかからないスピードで実施できれば、多くの事ができるようになる。

  • YouTubeなどの動画の文字抽出してコメントや要約出力
  • 購入株画面キャプチャ画像から銘柄を抽出してシミュレーション
  • デジタル書籍画像からの自動文字抽出
  • オンライン試験・アンケート等の自動回答
  • 社内のデジタル業務自動化
  • その他、社内ハッカソンのデモ機作成

LLMは要約したり、OCRが誤っている部分を修正したり、問題を回答する目的で使っている。

最近は既に画像をアップロードするだけでChatGPTは返答できてしまうので、OCRを実施する行為自体が無駄な気もする。

ゼロから調査すると超面倒くさいけど、ChatGPTがコードはサクッと作ってくれるのでアイデア次第で何でもできる。

各種OCRの日本語抽出 精度確認

既に多くのサイトを徘徊し「Google Vision API」「Azure AI Vision」が使いやすいとの事前調査は済んでいる。

サービス名 内容 備考欄
Tesseract-ocr OSSで利用
PaddleOCR OSSで利用
Amazon Textract Amazon提供、日本語非対応 無料枠 1,000 ページ/月
Azure AI Vision Microsoft 提供 無料枠 5,000 無料トランザクション/月
Google Cloud Vision API Google 提供 無料枠 1,000 ユニット(画像)/月

実用に向けて「Tesseract-ocr」と「Google Cloud Vision API」使った日本語抽出を実装した。

精度が悪いと知ってる「Tesseract-ocr」を選んだ理由はGoogle Cloudは金がかかるのでプロト実装の間はTesseract-ocrで代行するため(無料OCRではそこそこ性能は高い)だ。

実験に使う画像はオンラインSPI試験の例題。

これをOCRにかけてLLMが正しく回答できるならオンライン試験や就職活動までやり方を変える必要がありそうだ。

Tesseract-ocr

次のページにアクセスしてWindows用のインストーラーをダウンロード&インストール。

Home
Tesseract Open Source OCR Engine (main repository) - UB-Mannheim/tesseract

その際にインストールオプションで次の項目から「Japanese ~」を選択しておくこと。

  • Additional script data (download
  • Additional language data (download)
Tesseract OCR をWindowsにインストールする方法 - ガンマソフト
OCRをPythonで操作できれば大量の紙資料の読み取りも自動化できます。特に郵便番号や請求書番号など定型書類の番号を読み取る作業は代表的な活用例です。 普段のオフィスワークではOCRソフトウェアを用...

あとはWindows環境変数でPATHを設定する。

【実行結果(実行時間 1秒未満)】

例題(構造把握

Q:次のアオは、ある美術館の意見箱に入っていた要望で
ある。 これらを要望の種類によってAグループ (3つ) と
Bグループ (2つ) に分けることができる。 Bグループに分類
されるものを下の選択肢の中から選びなさい。

美大生の割引特典などとつけてほしい。
休憩スペースがあるといい。

出口にゴミ箱を設置してほしい。

OOの展示スペースをもっと広くしたほうがいい。
入場制限時間を延ばしてほしい。

ロロへ

A アとイ F イとエ
B アとウ G イとオ
C アとエ H ウとエ
D アとオ 1 ウとオ
E _イとウ J エとオ

なかなか精度が高い。でも肝心の選択肢の冒頭のカタカナが消えてしまっている。

Google Cloud Vision API

新規契約をすると「90 日間 $300 相当の無料トライアル」が付いてきた。

月1000回を超えなければ無問題だと思われるので、とりあえず料金は無視する。

【実行結果(実行時間 1秒未満)】

例題(構造把握 : 言語)
Q:次のア~オは、 ある美術館の意見箱に入っていた要望で
ある。 これらを要望の種類によってAグループ (3つ) と
Bグループ (2つ) に分けることができる。 Bグループに分類
されるものを下の選択肢の中から選びなさい。
ア 美大生の割引特典などとつけてほしい。
イ休憩スペースがあるといい。
ウ 出口にゴミ箱を設置してほしい。
エオ
○○の展示スペースをもっと広くしたほうがいい。
才入場制限時間を延ばしてほしい。
A アとイ
B アとウ
C アとエ
F イとエ
G イとオ
H9
ウとエ
D アとオ
E イとウ
| ウとオ
Jエとオ

非常に精度が高い。選択肢の「H」が失敗しているが、LLMで理解できるレベルと思う。

背面にあるChromeブラウザの画像取得方法

OCRが動作することが分かったが、Chromeブラウザから画像取得しなければ話は始まらない。

Chromeブラウザがスクリーンの後ろに存在していても、Chromeのプロセス番号を指定して画面キャプチャするスクリプトがこれ。

おわりに

AI技術の進歩は凄まじい。

ChatGPTで画像認識から含めて何でもできてしまう。

ネットで同じような事を考えている人がいたけど、そもそもスマホで画面をキャプチャしてChatGPTに画像を送ってた。

確かに、そのレベルで同じことが出来てしまうね。

タイトルとURLをコピーしました