Google Geminiに、少し慣れてくると、AIに行わせてみたいプログラムのアイディアが、少しずつ私の頭に浮かんできます。今回は、AIに2つの画像を提供して、その画像の「共通点」「相違点」を教えてもらうプログラムを考えてみました。
今回も、Google Colabを使い、初心者にわかるように、説明します。もちろん、私(本間 充)も、Google Geminiのプログラムは初心者なので、安心してください。
2つの画像の共通点・相違点をAI推移論させるGoogle Geminiのプログラム
まずは、Google Geminiの初期設定
この部分は、今回までと全く違いはありません。今回、こ「本間 充/マーケティングサイエンスラボ所長Blog」を初めて訪問された方には、「Google Colabで、Google Gemini(AI)のプログラミング解説、初心者用(#2)」に、初期設定の方法を書いてあるので、参考にしてください。
もう、慣れてきたので、初期設定は、コード欄に、以下のプログラムを書きましょう。
# パッケージのインストール
!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)
サンプル画像の準備
画像は、皆さんが自分の画像を使っても良いのですが、私が好きなビールの画像を2つ用意しました。
この2つの画像を、ダウンロードして、それぞれ、[sample-1.jpg][sample-2.jpg]と保存して、Google Colabのデータ・フォルダーに同じファイル名でuploadしておきましょう。
画像の、Google Colabへのアップロードの方法は、「Google Colabで、Google Gemini(AI)のプログラミング解説、初心者用(#3)」で、説明していますので、参考にしてください。
なお、Google Colabでは、プログラムのセッションを終了ともに、使用したファイルは、消去されるので、このプログラムを数日経って、実行する場合は、ファイルは再度uploadしてくださいね。
画像の読み込みと確認
では、Google ColabのプログラムWindowに戻って、Google Geminiのプログラミングを続けましょう。
テキスト欄に、
画像の読み込み。画像はimagesという配列に格納。
コード欄に、
from PIL import Image
# 画像の読み込み
images = [
Image.open("sample-1.jpg"),
Image.open("sample-2.jpg")
]
from IPython.display import display
display(*images)
と、入力しましょう。
Google Gemini のモデルの準備
次に、AIのモデルの読み込みです。
テキスト欄に、
モデルの準備。
コード欄に、
# モデルの読み込み
model = genai.GenerativeModel('gemini-pro-vision')
と入力しましょう。
2つの画像の共通点の推論実行
いよいよ、本題の推論の実行プログラムです。このプログラムでは、Pythonを使ってプログラミングしているので、配列は[*]という文字を使えば、配列数が何個か知らなくても、プログラムが書けます。まぁ、この場合は、配列は、0番目と1番目の2個しか使っていないのですけどね。
テキスト欄に、
2つの画像の共通点の推論の実行。
コード欄に、
# 推論の実行
response = model.generate_content([
"この2つの画像の共通点を教えてください",
*images
], stream=True)
response.resolve()
to_markdown(response.text)
と、入力しておきましょう。
2つの画像の相違点の推論実行
続いて、相違点の指示をプログラムするのですが、AIの面白いところは、このような昔のC言語やPerl言語では、難しいプログラムを、日本語という「自然言語」で行えるところですね。
テキスト欄に、
2つの画像の相違点の推論の実行。
コード欄に、
response = model.generate_content([
"この2つの画像の違いを教えてください",
*images
], stream=True)
response.resolve()
to_markdown(response.text)
と、入力。これで、プログラミング終了です!
2つの画像の共通点・相違点をAI推移論させるGoogle Geminiのプログラムの実行イメージ
さぁ、ではいつものように、プログラムを上の方から、順番に「三角」ボタンを押して、実行させていきましょう。
私の実行イメージのスクリーン・ショットを残しておきますが、AIは、実行するタイミングで、推論が異なるので、皆さんの推論結果と必ずしも同じではありません。参考程度に、確認してください。
次回は、「Google Colabで、Google Gemini(AI)のプログラミング解説、初心者用(#5)」で、インターネット(Web)に公開されている画像を、Google Geminiに分析させるプログラムに挑戦します。
Comments