✏️

GPT-4Vで手書き文字をOCRしてもらう

2023/10/18に公開

実現したいこと

GPT-4Vの中でも、画像をもとにデータ化するというのは、基本的な機能の1つかと思います。
今回は、その中でも手書き文字をOCRすることを試してみようと思います。

利用するデータ

お見せするのも恥ずかしいですが、今回は私自身の手書き文字を認識してもらおうと思います。

1行目は、日本語で普段書いているレベルの(汚)文字を書きました。
2行目は、それをさらに汚くした感じです。ギリギリ読めるでしょうか。
3行目は、英語で普段書いているレベルの(汚)文字を書きました。
4行目は、それをさらに汚くした感じです。ギリギリ読めるでしょうか。

これをChatGPTのGPT-4Vを用いて、データ化が簡単にできるのかを検証していきます。

検証

できること

まずは単純に、画像を渡して「この写真から文字を読み取ってください」としてみました。そこででてきたのが、次の通りです。

おお、結構読み取ってくれています。
特に英語は完璧ですね。「How will be tomorrow?」なんて、手書きの文字崩れて"tomnorrw"みたいなスペルになってしまっているにも関わらず、ちゃんと読み取ってくれています。

日本語も、凡そ読み取れていますね。
”晴れる”の部分が、”どうなる”になっていますが、まあ意味合いはわかるし許容範囲化かと。

まだできないこと

次に、タスクリスト的なものを読み取ってもらいました。依頼文は同じで、「この写真から文字を読み取ってください」として出してもらった結果がこちらです。

全然違う!
京都、大阪、神戸ってどこの三都物語だ!?(谷村新司さんのご冥福をお祈りいたします)
そして、4番目が大分県。もはや、どう突っ込めばいいのかわからないですね。

その後、色々と「これは今日のタスクです」とか、「2行目は掃除です」とかヒントを出してみましたが、残念ながら全問正解どころか、1行も正しく予測することができませんでした。

ちなみに、以前の記事で、印刷された「排出量」という文字を読めずに「番号」と誤認していたような例もあるので、決して、私の字が汚いこと(だけ)が問題ではないはずです。

まとめ

手書き文字のOCRというのは、昔からあるテーマで、GPT-4Vが出たらぜひ試してみようと思っていました。
結果は、文章であれば普通に返してくれるが、単語レベルだと惨敗という結果でした。

文章なら上手くいくというのは、文章をしっかりと読み取ってOCRしているのではなく、「学習の結果として予測している」ためと考えられます。

もう少し詳しくいうと、正しく読み取れた文章の中で「今日はいい天気ですね」というのがありましたが、「今日は」という文字があると、次にどういう候補が来るのが文章として一般的化を学習した結果から考え、その中で最も適切なものを返してくれているという仕組みです。

そのために、「明日はどうなるでしょうか?」のような正しく文字を読み取れていないのに、文意としては間違っていないものが出力されたと想定されます。

一方で、今日のタスクリストは、単語の羅列で前後の文脈があるわけではないので、予測することが非常に難しいんですね。
ですので、予測ができなかったのではないかと考えられます。

この辺り、まだまだ生成AIの得手不得手がある部分かなと思いますので、それらを理解した上で使いこなすことが必要になってきますね。

Discussion