1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【ChatGPT】ChatGPT、実はかなりOCRできる(けど時々“できないフリ”をする)

Posted at

gpt-4-miniの画像認識を試していて思ったんですが、
ChatGPTって実は結構OCR(文字認識)ができますよね。
しかも、単純なテキストじゃなくて複雑なレイアウトのPDFや歪んだ写真の文字とかも、それなりに読み取れます。

でも、ここでひとつ問題が。
たまにぜんぜんできなくなるんです。

「できないフリ」をするChatGPT

ChatGPTにOCRを命じて画像を渡すと、よくこんなやり取りになります。

ChatGPT「わかりました、いろいろインストールしてやってみます」
ChatGPT「……あれれ?できないですね」
ChatGPT「だめでした」

どうも内部的に「英語向けのOCRモード」を動かしてるらしく、日本語のOCRだと急にポンコツになることがあるみたいなんです。

なぜ「できないフリ」をするのか

ChatGPTの内部にはCode Interpreter(コードインタプリタ) とか ツール実行(function calling) と呼ばれる機能があります。
これは「Pythonで実際にコードを実行してみる」ための仕組みで、OCRを頼むとこんなコードを勝手に動かそうとします。

import pytesseract
from PIL import Image

text = pytesseract.image_to_string(Image.open("sample.png"))

ここで使われているのが、Tesseract(Google製OCR)。
多言語対応ですが、デフォルトは英語(eng)モデルなんです。

つまりChatGPTは、

「英語OCRで日本語を読もうとしてる」
ので、うまくいかずに「できません」と言ってしまうわけです。

魔法の呪文:「LLMの画像認識能力でやれ」

でもここで諦めてはいけません。

すっげえヘナチョコな結果が出ても、
「LLMの画像認識能力でやれ」
と命じると、なぜか普通に読めるようになることがあります。

これは「Python(Tesseract)を使わずに、ChatGPT自身のマルチモーダル認識能力で画像を読む」ように切り替わるためです。
実際これで、日本語OCRの精度がかなり上がることがあります。

「おい、できるだろ?知ってんだぞ。やれよ」
って言うと、ちゃんとやる。
騙されてはいけない。

まとめ

  • 普通にやらせると、内部で英語用Tesseractを呼んで失敗する
  • 「LLMの画像認識能力でやれ」と言うと、日本語でもかなり読める

もし日本語の画像をOCRしたい人がいたら、ぜひ試してみてください。
思ったよりも 「読めるじゃん!」 ってなるかもしれません。あいつサボってるだけだよ。

1
2
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
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?