【日本語版】ChatGPTで画像からテキストを抽出する方法

著者:
投稿日:
更新日:

この記事では現時点( 2023年11月14日 )では日本語のテキスト抽出ができないChatGPTにて無理矢理日本語のテキストを抽出する事に成功致しましたので、その方法をまとめました。

目次
  1. 事前概要
  2. 手順1 日本語データのインストール
    1. DL方法
  3. 手順2 フォルダを作る
  4. 手順3 テキストを抽出したい画像を準備する
  5. 手順4 ocr_testフォルダを圧縮
  6. 手順5 ChatGPTにお願いする
    1. 手順5-1 ocr_test.zipを添付してプロンプトを打つ
    2. 手順5-2 結果内容をコピーする
  7. テキストを抽出する際の注意点
  8. 成功したChatGPTの公開リンク
  9. 参考サイト

事前概要

  • ChatGPTは文字列の画像をOCRしてテキストを抽出している
  • OCRにはPythonのpytesseractが使われている
  • 標準では日本語はサポートされていない
  • トレーニング・データを画像と一緒にアップロードすることで対応可能

手順1 日本語データのインストール

日本語のデータをインストールします。

tesseract-ocr/tessdata_best: Best (most accurate) trained LSTM models.

へ飛んで


  • jpn_vert.traineddata
  • jpn.traineddata

というファイルをDLして下さい。

DL方法


手順2 フォルダを作る

"ocr_test"(名前はなんでもいい)というフォルダを作成して、その中に"htessdata"というフォルダを作ります。


"htessdata"というフォルダの中に手順1でDLした

  • jpn_vert.traineddata
  • jpn.traineddata

を入れて下さい。


構成としてはこうなります。

ocr_test(名前はなんでもいい)

 └htessdata(名前固定)

    ├jpn_vert.traineddata

    └jpn.traineddata

手順3 テキストを抽出したい画像を準備する

今回はBasicのトップページの画面をスクショした画像を使ってみたいと思います。


これ

手順2で作成した"ocr_test"のフォルダの中にテキストを抽出したい画像をぶち込みましょう。


こんな感じで

ocr_test(名前はなんでもいい)

 ├test.png(名前はなんでもいい)

 └htessdata(名前固定)

    ├jpn_vert.traineddata

    └jpn.traineddata

手順4 ocr_testフォルダを圧縮

画像の準備ができましたら

ocr_testのフォルダを圧縮しましょう。


Win、Macで圧縮方法は違いますが、適時圧縮をお願い致します。

手順5 ChatGPTにお願いする

手順5-1 ocr_test.zipを添付してプロンプトを打つ

プロンプト内容

添付のファイルをunzipしてから

pytesseractの日本語トレーニングデータが tessdata というフォルダに入っているので、 image_to_stringのオプションに lang=jpn を追加してください。その後、ocr_test 配下に入っている画像をOCRでテキストに変換してください。変換する際に不要なスペースも削除していただけますと助かります。


手順5-2 結果内容をコピーする

今回は何やらフォルダのパーミッション問題があったようですが、ChatGPTさんがよしなにしてくれて無事画像からテキストを抽出する事に成功致しました!感謝感激ですね。


抽出したテキスト内容

"世界で公開されているウェブの67%がCMSで構築されています。それらのCMSですが、私たちの目線からは大雑把だったり足りない機能が多いのが現状です。複雑なCMS、カスタマイズ、表示スピード、UX、最新画像フォーマットなどを解決するためにBasicを立ち上げました。OSSでライセンスはGPLv2です。個人でも法人でも完全無料のBasicで自由にサイトを構築してみませんか?"

元の画像

松岡宗谷

完璧ではありませんか!最高です

テキストを抽出する際の注意点

実はこの記事を書くにあたって、かなり日本語テキストの抽出に失敗しています。


その失敗例としては

  • 文字が大きすぎると失敗する
  • 特殊なフォントだと失敗する
  • バックカラーとテキストの色が近いと失敗する

というのがありまして、上記3点を気をつければ問題なくいけると思います。文字の大きさの定義としては「16px」の大きさはほぼ問題ない事までは突き止めました。

成功したChatGPTの公開リンク

https://chat.openai.com/share/238e5778-9409-44d9-bc8e-9a190d61e8ac

参考サイト

【第34回PYTHON講座】OCR(文字認識)Tesseractを使って日本語を認識テスト

CMSの悩みはBasicで一気に解決しましょう
  1. 完全無料
    Basicはオープンソースで運営されています。誰しもが自由にBasicを利用できます。
  2. 超軽量化で超高速配信
    通常のCMSよりページ容量を70%以上を自動で圧縮を行い更に自動で静的化・圧縮化されたページが配信されます。
  3. SEOにつよつよ
    70%以上軽量化に加えて最新SEOに対応した構造で静的化・圧縮化されたページはライバルサイトより圧倒的に評価されます
  4. ライバルサイトより一歩前にいけるCMSでサイトを構築しませんか?

    →より詳しく

著者プロフィール
松岡宗谷

Basic https://basic.dance/ を運営しています。スペースナビ 代表取締役。スタートアップ界隈でCTO→Sharetube創業→スペースナビ創業→UXSEOリリース、ResizeCDNリリース、あまてむリリース。世界で最もSEOに効くCMS Basicリリース。個人の夢は完全義体化。会社の夢は宇宙事業。プログラマーは死ぬまで現役でありたい