🔍

Gemini-2.5-flash-lite-preview-06-17 APIで栄養成分表をOCRしてみた

に公開

結論を3行で

  • SNSで「早い!」と話題の「gemini-2.5-flash-lite-preview-06-17」で、「OCR→得られたテキストの擬人化」を試してみた
  • OCRの精度は良好。OCRと擬人化テキストの生成で4秒ほど
  • 「gpt-4.1-nano」「gemini-2.5-flash」と比較した。OCRに絞って複数回実行したところ、gpt-4.1-nano:約2.3秒、gemini-2.5-flash:約11秒。gemini-2.5-flash-lite-preview-06-17は約1.8秒で早さが際立つ

gemini-2.5-flash-lite-preview-06-17のモデル詳細はここでは省きますので、詳しくは以下をご覧ください。

https://ai.google.dev/gemini-api/docs/models?hl=ja#gemini-2.5-flash-lite

事の経緯

OCR + 擬人化してみた

Geminiから新しいモデルとして、「gemini-2.5-flash-lite-preview-06-17」が登場しました。SNSで評判を見ると、処理がすごい早いらしい・・・!

ってわけで、「なんか試しに作れないかなー」と周囲を見渡した時、お菓子替わりに食べてるミックスナッツの袋がふと目に。そこで「画像を入力してOCRでもやらせてみようか」と試してみました。

ただのOCRだとつまらないため、「栄養成分表に自己紹介させる」という意味のない擬人化も一緒に紹介しますね。

実際に使った写真はこちら

ちなみに実際に使った写真はこちら。

ソースコード

「動けばいいや」のスタイルです。すみません汗

なお、使った環境はGoogle Colabです。

ソースコード例

import os
from google import genai
from google.genai import types
from google.colab import userdata

os.environ['GEMINI_API_KEY'] = userdata.get("GEMINI_API_KEY")
client = genai.Client(http_options= {'api_version': 'v1beta'})

GEMINI_LIGHT_MODEL = 'gemini-2.5-flash-lite-preview-06-17'

with open('sample.jpg', 'rb') as f:
    image_bytes = f.read()

# OCR
image_response = client.models.generate_content(
  model=GEMINI_LIGHT_MODEL,
  contents=[
    types.Part.from_bytes(
      data=image_bytes,
      mime_type='image/jpeg',
    ),
    '入力された画像を説明して'
  ]
)

imageinfo = image_response.text

# 得られたテキストを元に自己紹介させる
response = client.models.generate_content(
  model=GEMINI_LIGHT_MODEL,
    contents=f"ちょっとおしゃべりな自己紹介して!\n【あなたの正体は・・・】→{imageinfo}"
)

print(response.text)

実際に試してみた

まずOCRの結果

まず純粋に読み取った文字はこんな感じ。もともとの画像をOCR前提でできるだけ意識して写真を撮ったというのもあると思いますが、誤植もなく、素晴らしい精度です。

せっかくなので擬人化

無駄機能ですが、擬人化も。単純に先ほどの栄養成分表のテキストを「おしゃべりに自己紹介して」というプロンプトとともに渡しただけです。

おしゃべりなだけあってよくしゃべりますw

処理時間

と、こんな感じで2回処理したわけですが、OCR→擬人化テキスト生成のこの一連の動作時間はだいたい4秒前後。めっちゃ早いです。

同じことを「gemini-2.5-flash」にやらせたところ、約20秒超もかかりました。さすがに20秒もかかると「長いな」と感じますよね。

参考までに、OCR部分だけに絞って、「gpt-4.1-nano」と「gemini-2.5-flash」比較してみました。

  • gemini-2.5-flash-lite-preview-06-17:約1.8秒
  • gpt-4.1-nano:約2.3秒
  • (参考)gemini-2.5-flash:約11秒

複数回繰り返したところでは、gemini-2.5-flash-lite-preview-06-17がほんのり早そうに思います。

ソースコード例(比較に使ったgpt-4.1-nano用のコード)

import os
import base64
from openai import OpenAI
from google.colab import userdata

os.environ['OPENAI_API_KEY'] = userdata.get("OPENAI_API_KEY")

client = OpenAI()

# 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 = "sample.jpg"

# Getting the Base64 string
base64_image = encode_image(image_path)


response = client.responses.create(
    model="gpt-4.1-nano",
    input=[
        {
            "role": "user",
            "content": [
                { "type": "input_text", "text": "入力された画像を説明して" },
                {
                    "type": "input_image",
                    "image_url": f"data:image/jpeg;base64,{base64_image}",
                },
            ],
        }
    ],
)

print(response.output_text)

実際使ってみて

今までOCRはTesseractを使っていたのですが、画質の悪い画像などでうまく読み込めないケースが多々ありました。

コストも安いですし、「gemini-2.5-flash-lite-preview-06-17」に置き換えようかな、とは思ったところです。

Gemini関連の記事

Gemini APIを使った話題はこちらでも紹介しています。

https://zenn.dev/mirai_asset/articles/95e12acdc41030

https://zenn.dev/mirai_asset/articles/2d813cec0e63fa

また見てね!

また、記事を書くのでフォローしてね!

Xはお金の話中心です
https://x.com/instockexnet

Discussion