見出し画像

Advanced Data Analysis(旧Code Interpreter)で日本語OCRを使用する方法

現在のCode Interpreter(CI)は、日本語OCRに対応していません。しかし、外部から必要なファイルを入手してアップロードすれば、対応する方法があります。
今回、このように日本語OCRを使用する方法について調べてみました。



1.そのまま日本語OCRを依頼した場合

先ず、CIをセットしたChatGPTに以下の画像ファイルをアップロードし、日本語の読み取りをお願いしました。

生成AIの爆発的な発展を予想した深津氏のnote記事

入力 pytesseractをインポートして、この日本語ファイルを読んでください。
日本語ノート.png

すみませんが、現在の環境ではインターネットアクセスが無効化されているため、必要なライブラリや日本語のOCRデータをダウンロードできません。

しかし、一般的にPythonのpytesseractライブラリを使って日本語の画像をテキストに変換する方法をお伝えすることは可能です。

まず、pytesseractとPIL(Python Imaging Library)をインストールします。次に、Tesseract OCRが日本語をサポートするように設定します。これは通常、対応する言語データをダウンロードしてTesseract OCRの'tessdata'ディレクトリに追加することで行います。日本語の場合、'jpn.traineddata'というファイルをダウンロードします。

それらがすべて整ったら、以下のようなコードを使用して画像からテキストを抽出します:

ChatGPTの回答
from PIL import Image
import pytesseract

# 画像を開く
img = Image.open('日本語ノート.png')

# pytesseractを使用して画像からテキストを抽出
# configの'-l jpn'部分で日本語を指定
text = pytesseract.image_to_string(img, config='-l jpn')

print(text)

このコードはローカル環境で動作しますが、このチャットの環境では動作しません。本当に申し訳ありませんが、ご了承ください。

ChatGPTの回答②

そのまま日本語OCRを依頼した場合は、以上のように、「必要なライブラリや日本語のOCRデータをダウンロードできません。」と依頼を断ってきます。
一方で、jpn.traineddataというファイルをダウンロードしてTesseract OCRのtessdataディレクトリに追加することによって、日本語OCRに対応できると教えてくれました。


2.日本語学習データの入手

日本語OCRの使用に必要な日本語学習データのjpn.traineddataのファイルは、Githubの以下のサイトから入手できます。

jpn.traineddataのファイルをダウンロードするには、ここをクリックしてください。


3.ファイルのアップロードとパスの設定

先程ダウンロードしたjpn.traineddataのファイルをCIをセットしたChatGPTにアップロードし、パスを設定することによって、日本語OCRが利用できるようになります。

入力 pytesseractは使用できることを確認していますので、必ずインポートしてください。その上で、このjpn.traineddataにパスを設定し、ファイルの内容を読んでください。
jpn.traineddata

筆者が入力したプロンプト

4.日本語OCRの実行結果

3.で入力した内容を受けて、CIが生成したコードは以下のとおりです。

# Let's import the required libraries
import pytesseract
from PIL import Image

# Let's set the path for the tesseract executable along with the language data
pytesseract.pytesseract.tesseract_cmd = '/usr/bin/tesseract'
tessdata_dir_config = r'--tessdata-dir "/mnt/data/"'

# Open the image file
img = Image.open('/mnt/data/日本語ノート.png')

# Use pytesseract to convert the image into text
text = pytesseract.image_to_string(img, lang='jpn', config=tessdata_dir_config)

text

そして、ChatGPTの回答は以下のとおりです。

画像から抽出したテキストは以下の通りです:

世 界 変 革 の 前 夜 は 思 っ つ た よ り 静 か

世 界 の ル ー ル が 根 本 的 に 変 わ っ て し ま う ‥ そ う い う 展 開 は 、 マ ン ガ や 映 画 で
は よ く 起 こ る 。 そ れ が 現 実 で も 起 き そ う だ 。

あ と 数 日 ( か ら 数 週 間 ) で ` ト ッ プ レ ベ ル の 画 像 生 成 AlJ が 、 世 界 中 に フ リ
ー で 配 布 さ れ る 。

イ ラ ス ト 、 マ ン ガ は お ろ か ③D CG や 建 築 、 動 画 、 映 像 . 果 て は フ ェ イ ク ニ ュ
ー ス か ら ポ ル ノ ま で ‥ あ ら ゆ る 創 作 に 携 わ る 全 て の 人 を 巻 き 込 み 、 歴 史 的 な
転 搬 点 が 訪 れ よ う と し て い る 。

凄 さ 的 に は 、 悪 魔 の 実 が メ ル カ リ で 質 え る よ う に な る 。 念 能 カ ト レ ー ニ ン グ
動 画 が Youtube に ア ッ プ さ れ る 。 そ れ ぐ ら い ヤ バ い 。

ChatGPTの回答①

OCRは結果をスペースで区切った形で出力しているため、日本語の文章が断片的になっています。この結果をスペースなしで連結することで、より自然な日本語の文章を得ることができます。それを行ってみましょう。

ChatGPTの回答②

スペースを取り除くためにCIが生成したコードは以下のとおりです。

# Remove the spaces between the characters to form more natural Japanese sentences
natural_text = text.replace(' ', '')

natural_text

スペースを取り除いた結果、以下のようになりました:

世界変革の前夜は思ったより静か

世界のルールが根本的に変わってしまう‥そういう展開は、マンガや映画ではよく起こる。それが現実でも起きそうだ。

あと数日(から数週間)で`トップレベルの画像生成AlJが、世界中にフリーで配布される。

イラスト、マンガはおろかDCGや建築、動画、映.果てはフェイクニュースからポルノまで‥あらゆる創作に携わる全ての人を巻き込、歴史的な転点が訪れようとしている。

凄さ的には、悪魔の実がメルカリで質えるようになる。念能カトレーニング動画がYoutubeにアップされる。それぐらいヤバい。

OCRの結果は完全ではありませんが、大まかな内容は読み取ることができます。

ChatGPTの回答③

jpn.traineddataのファイルをアップロードし、パスを設定するだけで、簡単に日本語OCRを使用することができました。
なお、「現在の環境ではプログラムを実行できない」とCIが対応を拒否してくることがありますが、あきらめずに何度も強く頼んでみましょう。

漢字や文字を正確に読み取れていないところが何か所かありますが、内容を理解するには、ほぼ問題がないくらいには読み取れているようです。


5.日本語OCRの性能

日本語OCRの性能を確かめるために、他の画像も読み取れるか試してみました。

(1) note記事その2

筆者が書いたCode Interpreterでの地図描画に関するnote記事


CIのTesseractエンジンが画像から抽出したテキストは以下の通りです。

wwkwcnenks

ChatGPTのCodeInterpreterで外部ライブラリを利用して地図を描いてみた

CodeInterpreter(CDはネットにアクセスできないため、通常は、が最初から採用していないライブラリを使用することはできません。

しかし、ユーザーが自分でライブラリのファイルなどをアップロードすることにより、これらを使用する方法があるという情報をSNSで見つけたので、地図を描くライブラリで試してみました。

ChatGPTの回答①

一部、OCRが完全に文字を認識できていない箇所がありますが、全体の内容は以下のように理解できます:
・ユーザーは、ChatGPTのCodeInterpreterを使用して外部ライブラリを利用し、地図を描く試みを行った。
・CodeInterpreterは通常、インターネットにアクセスできず、最初から採用していないライブラリを使用することはできない。
・しかし、ユーザー自身がライブラリのファイル等をアップロードすることで、これらのライブラリを使用する方法があるとSNSで情報を得た。
・それに基づいて、地図を描くライブラリを試してみた。

ChatGPTの回答②

一部、読み取れていないアルファベットなどがありましたが、ほぼ正確でした。

(2) note記事その3

筆者が書いたCode Interpreterの機能や利用方法に関するnote記事


CIのTesseractエンジンが画像から抽出したテキストは以下の通りです。

CodeInterpreter
ChatGPTPlus
OfficialPlugin

ChatGPTの新機能CodeInterpreterで何ができるのか試してみた

Q③④④

⑦月⑦日、OpenAlがchatePTPlusの公式プラブインとしてCodseInterpreterの提供を開始しました。

CodeInterpreterを利用することにより、ChatGPT上でPythonコードを生成、実行したり、ファイルをアップロード・ダウンロードしたりすることができます。

以前、ChatGPTのデータ分析プラグインのNoteableで、単な数の題を解いたり、データ分析をしたりしましたが、CodeInterpreterでも同じことができるのかどうか確かめてみました。

ChatGPTの回答①

一部、OCRが完全に文字を認識できていない箇所がありますが、全体の内容は以下のように理解できます:
・ChatGPTの新機能であるCodeInterpreterを試してみた。
・OpenAIがChatGPT Plusの公式プラグインとしてCodeInterpreterの提供を開始した(具体的な日付は不明)。
・CodeInterpreterを利用することにより、ChatGPT上でPythonコードを生成・実行したり、ファイルをアップロード・ダウンロードしたりすることが可能。
・以前、ChatGPTのデータ分析プラグインであるNoteableを用いて、データ分析や問題解決を行った。今回はCodeInterpreterでも同様の事ができるかを試してみた。

ChatGPTの回答②

表紙絵中の英語もきちんと読み取れています。一方で、読み取れていない漢字がいくつかあります。また、数字が丸数字の記号に変わってしまい、数字として理解されていないようです。

(3) Webサイトの画像

OpenAIのサイトを日本語訳したもの

CIのTesseractエンジンが画像から抽出したテキストは以下の通りです。

GPT④APIの一般提供と入力候補APIでの古いモデルの



GPT③.⑤ター,ダEおよびWhisperAPIも一般提供されており、②0②④年の初めに廃止される完了APIの古いモデルの非推奨プランをリリースしています。

ChatGPTの回答①

一部、OCRが完全に文字を認識できていない箇所がありますが、全体の内容は以下のように理解できます:
・GPT-4 APIの一般提供と、古いモデルの入力候補APIがある。
・GPT-3.5-Turbo, DareおよびWhisperAPIも一般提供されている。
・2024年の初めに、古いモデルの完了APIが廃止される。
・非推奨となるプラグインがリリースされている。

正確な解釈には原文やより詳細な情報が必要です。特に、いくつかのモデル名やAPI名が正確に読み取れていない可能性があります。

ChatGPTの回答②

最初の「非推奨」という単語が読み取れなかったために、文章の意味が十分にくみ取れていないようです。


6.まとめ

漢字や数字など、いくつか読み取れていない文字がありましたが、全体としては、よく読み取れており、日本語OCRとして十分機能しそうです。

皆さんも是非、CIの日本語OCRについて活用してみてください。
また、Pythonの機能を拡張する外部ライブラリなどの導入についても、是非、色々とチャレンジしてみてください。便利な利用法や面白い利用法が新たに見つかるかもしれません。


この記事が参加している募集

この記事が気に入ったらサポートをしてみませんか?