AI

gpt-4-turbo-2024-04-09で手書き画像から文字認識を試してみた

みなさんおはようございます。

最近リリースされたOpenAI社の「gpt-4-turbo-2024-04-09」モデルについて、早速ためしてみました。

gpt-4-turbo-2024-04-09 について

機能

gpt-4-turbo-2024-04-09ではこれまでの文章生成に合わせて、Vision機能も搭載されたことにより、画像の内容を「見て」解釈できるようになりました。

また、Vision機能では、JSONモードとFunction callingも使用できるためサービス開発の観点などでも使用しやすくなっております。

精度

OpenAI社の検証結果を見る限り、ほとんどの項目でスコアが前バージョンと比較して向上しております。料金変わらず(インプット:100万とトークンあたり10ドル、アウトプット:100万トークンあたり30ドル)で良い精度を出せるのは非常にうれしいことですね。

特に今回は「MATH」にあたる数学的要素がかなり強化されております。ここに関しても是非後日試してみたいです。

文字を生成する際にもより直接的で無駄のない回答ができるようになっているため、より人間味が増しております。

精度向上

画像引用元:https://x.com/OpenAI/status/1778574613813006610

評価結果を深堀してみてみたい方は是非以下のGitHubページを参考にしてみてください。



手書き文字認識

インプット画像

今回は最近当社にも相談が多くなっている手書き文字が含まれる画像について検証してみます。

「ちらしです。OpenAI Vision」という内容です。(MSPaint使って手書きしたもので汚い字です、、、)

検証ソースコード

以下、ソースコード全文となります。ローカルPCの画像をアップロードするスタイルです。

事前準備として、.envファイルにOPENAI_API_KEYをセットし、image_pathの値を皆様のローカルパスに書き換えてください。

import os
from dotenv import load_dotenv
from openai import OpenAI
import base64
import requests

load_dotenv()

# OpenAI API Key
api_key = os.environ.get("OPENAI_API_KEY")

# Function to encode the image
def encode_image(image_path):
    with open(image_path, "rb") as image_file:
        return base64.b64encode(image_file.read()).decode('utf-8')

# Path to your image
image_path = "./image/tegaki.png"

# Getting the base64 string
base64_image = encode_image(image_path)

headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {api_key}"
}

payload = {
"model": "gpt-4-turbo", # gpt-4-turbo-2024-04-09 と同等
"messages": [
    {
    "role": "user",
    "content": [
        {
        "type": "text",
        "text": "画像に何がかかれている?"
        },
        {
        "type": "image_url",
        "image_url": {
            "url": f"data:image/jpeg;base64,{base64_image}"
        }
        }
    ]
    }
],
"max_tokens": 300
}

response = requests.post("https://api.openai.com/v1/chat/completions", headers=headers, json=payload)

response_json = response.json()
print(f"response_txt: ", response_json["choices"][0]["message"]["content"])

出力結果

さて、気になる結果は・・・

画像には「ちょこです。OpenAI Vision」と書かれています。

少しインプット内容とは異なりますが、近いところまでは行けてますね・・・!

最後に

生成AIの進化は止まることなく、日々驚かされるばかりです。

当社は生成AIを活用したサービス開発のプロフェッショナルとして日々様々な案件を実施しております。

生成AIに関するご相談は、下記リンクよりお気軽にご連絡ください。

https://www.atd-net.com/contact

お問い合わせ

  • この記事を書いた人
  • 最新記事

石川 侑扶(Yusuke Ishikawa)

IoT, AI, デジタルツイン等の最先端な開発経験とセキュリティコンサルティング経験を元に世の中を変えます!

-AI
-, ,