Google Geminiでは、写真の場所がわかるらしい
Google GeminiのプログラミングのWebサイトを調べていると、Google Geminiには、調査対象の写真の撮影場所を推定する機能があるらしいことがわかり、実際に行ってみました。
Google Geminiは、本当に写真の撮影場所がわかるのでしょうか?
今回のプログラムコードは、「Google Colabで、Google Gemini(AI)のプログラミング解説、初心者用(#5)」を、本当に少し改良したものです。「Google Colabで、Google Gemini(AI)のプログラミング解説、初心者用(#5)」で、すでにプログラムコードがある人は、そのプログラムの複製をGoogle Colab上で作成して、変更しても良いでしょう。
いつものGoogle Gemini初期設定から
Google Colabでのプログラミングスタートです。このBlogから読み始めた方も多いと思うので、初期設定から、手抜きなしに記述しますね。
まずは、テキスト欄を開けて、
# 初期設定
Gemini利用の
* SDKの導入
* パッケージのインストール
* API KEYの導入
* Geminiのモデル(gemini-pro-vision)の指定
を行います。
と入力します。次に、コード欄を開けて、
!pip install -q -U google-generativeai
import pathlib
import textwrap
import google.generativeai as genai
from IPython.display import display
from IPython.display import Markdown
def to_markdown(text):
text = text.replace('•', ' *')
return Markdown(textwrap.indent(text, '> ', predicate=lambda _: True))
# Used to securely store your API key
from google.colab import userdata
# Or use `os.getenv('GOOGLE_API_KEY')` to fetch an environment variable.
GOOGLE_API_KEY=userdata.get('GOOGLE_API_KEY')
genai.configure(api_key=GOOGLE_API_KEY)
model = genai.GenerativeModel('gemini-pro-vision')
と入力です。ちなみに、初めて、Google Colabで、Google Geminiのプログラミングをする人もいるでしょう。その人は、GOOGLE_API_KEYは、各自取得して、このGoogle Colabの左の🔑マークの中に書き込んでおいてださいね。と書いても、難しいことは、何もないので、「Google Colabで、Google Gemini(AI)のプログラミング解説、初心者用(#2)」を、参考にしてもらえれば、5分程度で終わると思います。
分析用の画像を指定しよう
Google Geminiの分析画像の指定方法は、ローカルな画像の分析方法と、インターネット空間上に公開されている画像の分析、両方が可能です。
ローカルの画像を分析する方法は、「Google Colabで、Google Gemini(AI)のプログラミング解説、初心者用(#3)」で解説しているので、参考にしてください。
今回のプログラムでは、インターネット空間上のファイルを分析する方法を行ってみます。
テキスト欄を開けて、
# 画像をインターネットから読む
インターネットから、画像を読み込ませ、image.jpgに格納する
と入力し、次にコード欄を開けて、
!curl -o image.jpg https://assets.st-note.com/production/uploads/images/97666431/rectangle_large_type_2_c58d23e66013e5cb7e3ebe3ba5551825.jpeg
と入力します。次に、この画像を、メモリイメージ(画像を記憶)に格納しましょう。テキスト欄を開けて、
Pythonの画像処理ライブラリPillow(PIL)の導入と、画像の表示
と入力し、コード欄に、
import PIL.Image
img = PIL.Image.open('image.jpg')
img
と入力します。
英語で、位置を聞く質問をしてみる
さて、写真の位置を調べられるサイトは、英語のサイトでした。"Introducing Google Gemini API: Discover the Power of the New Gemini AI Models" このサイトでは、当然Google Geminiへのプロンプト(質問)が英語なので、まずは、そのプログラムを拝借して、プログラムを書いてみましょう。
テキスト欄を開けて、
英語による、位置の質問
参照サイト:https://www.datacamp.com/tutorial/introducing-gemini-api
と入力し、コード欄に、
response = model.generate_content(["Can you provide the exact location with coordinates?", img]
)
response.resolve()
to_markdown(response.text)
と入力します。
日本語では、どう質問すれば良いの?
これで、英語で位置を知ることができるのですが、私たちは日本語で、情報取り出したいですよね。上記の英文の"exact location with coordinates"の日本語訳を使えば良いのですが、少しの単語の選び方で、答えが変わりそうなので、ここでは、2つのプロンプト(質問)を実行させることにしました。
テキスト欄を開けて、
# 日本語でのテスト
* 場所と聞く場合
* 位置、座標で聞く場合
次にコード欄を開けて、
response = model.generate_content(["この画像の正確な撮影場所を教えて?", img]
)
response.resolve()
to_markdown(response.text)
と入力し、その下に、再度コード欄を開けて、
response = model.generate_content(["この画像の正確な位置と座標を教えてください。", img]
)
response.resolve()
to_markdown(response.text)
と入力しました。
さぁ、これでプログラム終了です。
Google Geminiは、本当に写真の撮影場所を答えてくれるのか?
さぁ、では、Google Colabの上の方から、コード欄の左の「三角」マークを、順番に押していきましょう。
私の実行結果画面は、以下のようになりました。
この出力結果から、写真の撮影場所を、名称などで知りたい場合は、「場所」という質問で良さそうです。緯度・軽度という座標で知りたい場合は、「正確な位置と座標」で良さそうです。
さて、この英語で出力された、「33°27′19″N 112°15′45″W」は、Google Mapの検索欄に入力可能です。そこで、この井戸・経度が合っているのか調べてみました。
緯度・経度による指定ですので、この程度は、同じ範囲なのでしょうか。実際には、車で15分程度離れた場所です。あ、ちなミニ、この実際の撮影場所は、「ステートファーム・スタジアム」という場所で、このすぐ東が、グレンデール(Glendale) という場所で、大谷翔平選手がキャンプを行っている場所になります。蛇足ですが。
実は、AIをマーケティングに使いたくて研究中
今回のプログラムいかがでしたか?実は、私は、AIをマーケティングに使いたくて、その初期体験と実験のためにプログラミングを行っています。
実際に、コカコーラ、ユニリバー、スターバックスなど、多くのマーケティング・カンパニーでAIがすでに使われています。その研究の書籍もあり、AI Markeing Canvasというフレームワークもあります。少しだけ、エッセンスを整理してみたので、興味のある方は、ダウンロードしてみてください。感想などもあれば、教えて欲しいです。
Comentarios