前回までおさらい
日曜プログラマーの本間により、本当に初心者プログラマーのためのAIプログラミングBlogも、今回で3回目です。
今までのおさらいをすると、
Google Colabで、Google Gemini(AI)のプログラミング解説、初心者用(#1)
Google Colabというプログラミング環境の構築。そして、AIにプログラミングさせる方法の紹介
Google Colabで、Google Gemini(AI)のプログラミング解説、初心者用(#2)
Google Geminiを、Google Colabで利用するための、初期設定。そして、テキストのみの生成AIとの質問入力と、回答の出力方法の紹介。
となりました。実は、ここまでの手法は、標準のGoogle GeminiのWebサービスと違いはありません。
せっかくプログラムを使っているので、複雑なこともさせてみましょう。
今回は、画像の認識を行ってみよう
今回は、画像をAIに認識させて、文章を生成させてみましょう。
Google Colabの事前準備
今回は、Google Colabに別なファイルを準備させて、新しいプログラミングを行いましょう。
この例では、Gemini_Pro_Vision.ipynb というファイル名にしています。ちなみに、この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]として保存してください。次に、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にファイルが保管されているか。また、アップロードしたファイル名と、プログラムの中のファイル名が同じか、確認してください。特に、ファイル名は、大文字、小文字の区別があるので、気をつけてください。
この例では、画像だけの分析では、英語で、[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に渡して、その画像の共通や相違について、推論させてみましょう。
Comments