top of page

Google Colabで、Google Gemini(AI)のプログラミング解説、初心者用(#3)

更新日:2月11日

前回までおさらい

日曜プログラマーの本間により、本当に初心者プログラマーのためのAIプログラミングBlogも、今回で3回目です。


今までのおさらいをすると、

となりました。実は、ここまでの手法は、標準のGoogle GeminiのWebサービスと違いはありません。


せっかくプログラムを使っているので、複雑なこともさせてみましょう。


今回は、画像の認識を行ってみよう

今回は、画像をAIに認識させて、文章を生成させてみましょう。


Google Colabの事前準備

今回は、Google Colabに別なファイルを準備させて、新しいプログラミングを行いましょう。


Google Colabの画面
Google Colabの画面

この例では、Gemini_Pro_Vision.ipynb というファイル名にしています。ちなみに、このGoogle Colabは、このページ自体が、一つの仮想コンピューター空間になっています。プログラムを実行し始めると、些細な変化ですが、画面の上部に変化があります。


Google Colabの仮想端末の状況
Google Colabの仮想端末の状況

メモリー空間の利用状況などが、表示されています。そして、この仮想コンピューター、Google Colabではセッションと言いますが、そのセッション数には制限があります。たまに、「セッションが多すぎます」というメッセージに出会うことがあります。その時は、上部のメニューの「ランタイム」→「セッションの管理」の画面を開きましょう。


セッションの管理メニュー
セッションの管理メニュー

すると、現在使っているセッション一覧が、Google Colabのファイル名(実際には、セッション名)で表示されるので、不要なセッションをゴミ箱ボタンを押して、停止しましょう。


セッションの管理
セッションの管理

さて、本題に戻り、Google Colabに、Google Gemini利用の初期設定をしましょう。コード入力「+コード」を開き、以下の3つのブロックを作りましょう。

# パッケージのインストール
!pip install -q -U google-generativeai
import pathlib
import textwrap
import google.generativeai as genai
from google.colab import userdata
from IPython.display import display
from IPython.display import Markdown

# Markdown出力
def to_markdown(text):
    text = text.replace("•", "  *")
    return Markdown(textwrap.indent(text, "> ", predicate=lambda _: True))
# APIキーの準備
GOOGLE_API_KEY=userdata.get("GOOGLE_API_KEY")
genai.configure(api_key=GOOGLE_API_KEY)

ここまでは、前回と同じなので、前回のファイルを複製して、利用しても良いですし、この「所長のBlog|マーケティングサイエンスラボ」から、コピペしても、どちらで良いです。


AI分析用の画像の準備

次に、Google GeminiのAI分析用の画像を、Google Colabにアップロードします。ここでは、以下の写真をサンプルとして用意しました。


sample.png
sample.png

このファイルを、ダウンロードして、[sample.png]として保存してください。次に、Google Colabの左メニューのフォルダーマークを押して、ファイルをアップロードしましょう。


Google Colabのファイル管理メニュー
Google Colabのファイル管理メニュー

ファイルのアップロード・ボタン
ファイルのアップロード・ボタン

ファイルのアップロード後の状況
ファイルのアップロード後の状況

ここまで、準備ができたら、本題のプログラミングです。


Google Gemini での、画像取り込み

Google Colabのメイン画面に戻り、テキスト欄に

画像の読み込み。画像は、左メニューのフォルダーマークの配下に事前に配置すること

と入力しておきましょう。次に、コード欄に、

import PIL.Image

# 画像の読み込み
img = PIL.Image.open('sample.png')
img

と入力します。


Google Geminiの画像分析モデルの指定

次に、今回入力するデータのためのモデルを指定します。

テキスト欄に、

モデルの準備。

コード欄に、

# モデルの読み込み
model = genai.GenerativeModel('gemini-pro-vision')

と入力します。ちなみに、前回のGoogle Colabで、Google Gemini(AI)のプログラミング解説、初心者用(#2)では、[gemini-pro]と指定していました。

この2つのモデルの違いは、

  • gemini-pro

    • テキストフィールドのみが有効です。トークンの上限は32kです。

  • gemini-pro-vision

    • テキストのみ、テキストと最大16の画像、またはテキストと1つのビデオのいずれかを指定できます。トークンの上限は16kです。

と違いがあります。今回は、画像を使うので、[gemini-pro-vision]を選択しています。


画像のみの分析

最初に、この写真のみで、Google Geminiは、画像の説明ができるか、実行してみましょう。テキスト欄に、

画像のみでの推論の実行。

コード欄に、

# 推論の実行
response = model.generate_content(img)
to_markdown(response.text)

と入力します。


画像とテキストの分析

次に、この画像について、聞きたいことをテキストで加えた分析を作成しましょう。テキスト欄に、

画像とテキストでの推論の実行。

コード欄に、

response = model.generate_content([
    "この画像に基づいて、この写っている動物の説明を、小学生として、400文字程度のブログ記事にしてください。",
    img
], stream=True)
response.resolve()
to_markdown(response.text)

と、入力しましょう。これで、今回のプログラミンは、終了です。


Google Geminiの画像分析AIを実行してみよう!

さぁ、プログラムを、いつものように、上の方から実行させましょう。参考に私の実行時の画面を載せておきますが、プログラムの実行時期によって、分析(推論)の部分の出力は、異なりますので、あくまで参考程度に確認してください。


画像読み込み実行画面
画像読み込み実行画面

画像読み込みを実行させると、画像がこのように表示されます。表示されていない時は、Google Colabにファイルが保管されているか。また、アップロードしたファイル名と、プログラムの中のファイル名が同じか、確認してください。特に、ファイル名は、大文字、小文字の区別があるので、気をつけてください。



Google Geminiの画像分析例
Google Geminiの画像分析例

この例では、画像だけの分析では、英語で、[A squirrel is sitting on the grass. It is looking at the camera. It has a gray body and a bushy tail. Its feet are white.]と答えてくれていますね。


そして、日本語で、聞きたいことを入力すると、この場合、小学生の文章の雰囲気の文章が出力されていますね。


このように、プログラムからAIにアクセスすると、少し複雑な分析も簡単に行ってくれます。


今回は、1つの画像のGoogle GeminiによるAI推測でした。次回の「Google Colabで、Google Gemini(AI)のプログラミング解説、初心者用(#4)(2つの画像のAI推論)」では、複数の画像をGoogle Geminiに渡して、その画像の共通や相違について、推論させてみましょう。

閲覧数:843回0件のコメント

Comments


bottom of page