top of page

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

更新日:2月24日

インターネットに公開されている画像を、Google Geminiで分析してみよう

さて、Google Geminiを、Google Colaboratory でプログラミングすることに、私も慣れてきました。

また、Google Geminiに関する情報も増えてきて、やはり生成系AIを活用したプログラミングや、プロジェクトの注目度の高さもわかりますよね。このページの最後の方に、私が見つけることができた、主要な参照先も、まとめておくので、参考にしてください。もし、他に有用な情報があれば、私も知りたいです。


前回の、「Google Colabで、Google Gemini(AI)のプログラミング解説、初心者用(#4)(2つの画像のAI推論)」では、自分の手元に使う画像がある場合の、画像の分析を行いました。この場合、インターネットに公開されている画像を、自分で一度ダウンロードしないと分析できません。


しかし、インターネットに公開されているデータをそのまま分析したいということは、多いはずです。そこで、今回は、Webサイトなど、インターネットに公開されている画像を、直接分析する方法を考えましょう。


Google Geminiの初期設定

ここは、いつものセクションですが、少しGoogle Colabのテキスト記述を、見やすく工夫しましょう。まずは、テキスト欄を開けて、

# 初期設定

Gemini利用の

* SDKの導入
* パッケージのインストール
* API KEYの導入
* Geminiのモデル(gemini-pro-vision)の指定
を行います。

と、記入します。実は、Google Colabのテキスト欄にも、簡単なマークアップの機能があります。このマークアップを上手に使うと、Google Colab内のノートブックに、目次を自動生成することができて、長いプログラムを書くときに、読み返しやすくなります。


次に、コード欄を開けて、

!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')

と入力します。入力と言っていながら、皆さんは、上記のコード欄のテキストを、コピペするだけですよ。


画像をインターネットから読むには?

画像を、インターネットから読み込むコマンドは、Geminiのプログラムではなく、Google Colabで使えるコンピューターのshellコマンドで、curlを使います。


まずは、テキスト欄を開けて、

# 画像をインターネットから読む(1)

インターネットから、画像を読み込ませ、image.jpgに格納する

と入力します。


次にコード欄を開けて、

と入力します。このプログラムのURLの部分を変えると、自分で行いたい画像を、image.jpgに保存することができます。


読み込んだ画像の確認

実際に画像が、インターネットから読み込まれているか確認しましょう。

テキスト欄に、

 Pythonの画像処理ライブラリPillow(PIL)の導入と、画像の表示

コード欄に、

import PIL.Image

img = PIL.Image.open('image.jpg')
img

と、入力しましょう。


画像のGeminiによる分析プログラム

いよいよ、プログラムも最終パートです。

テキスト欄に、

Geminiによる画像分析

コード欄に、

response = model.generate_content(["この写真に基づいて、短くて魅力的なブログ記事を書いてください。写真に写っている食事の説明と、私の食事の下ごしらえの方法についてを含めること。", img], stream=True)
response.resolve()
to_markdown(response.text)

と入力して、プログラムは完了です。


インターネットに公開されている画像の、Google Gemini分析プログラムの実行結果例

いつものように、プログラムの上の方から、順番に「三角」ボタンを押して実行していってみましょう。

私の実行画面の一部と、分析の出力結果を、残しておきますね。


Google Geminiの出力例
Google Geminiの出力例

以下が、分析の出力例です。

ヘルシーな食事をしましょう!

食事制限をしている人でも、そうでない人でも、ヘルシーな食事は誰もが心がけたいものです。

そこで今回は、ヘルシーな食事を簡単に実現できるレシピをご紹介します。

このレシピは、鶏肉、ブロッコリー、ニンジン、ご飯を組み合わせたものです。

鶏肉は、タンパク質が豊富で、脂肪分が少ないので、ダイエットに最適です。

ブロッコリーは、ビタミンCが豊富で、抗酸化作用があります。

ニンジンは、βカロテンが豊富で、目の健康に効果的です。

ご飯は、炭水化物が豊富で、エネルギーを補給することができます。

このレシピは、これらの食材を組み合わせることで、栄養バランスの良い食事を実現しています。

また、調理も簡単なので、忙しい人でも無理なく続けることができます。

ぜひ、このレシピを参考にして、ヘルシーな食事を実現しましょう。

作り方

  1. 鶏肉を一口大に切り、塩コショウで下味をつける。

  2. フライパンに油を熱し、鶏肉を炒める。

  3. 鶏肉に火が通ったら、ブロッコリー、ニンジンを加えて炒める。

  4. 野菜がしんなりしたら、ご飯を加えて炒める。

  5. 全体に味がなじんだら、完成。

ポイント

  • 鶏肉は、皮を取り除いてから調理すると、よりヘルシーになります。

  • 野菜は、季節のものを選ぶと、より栄養価が高くなります。

  • ご飯は、玄米や雑穀米を使うと、より腹持ちが良くなります。

  • このレシピは、作り置きにもおすすめです。冷蔵保存しておけば、いつでも食べることができます。


とっても、丁寧に出力してくれていますね。では、次は、少しGoogle Geminiに難題を出してみることにしましょう。


Google Geminiは、農林水産省の寿司の写真を分析できるか?

このプログラムは、応用するのが簡単なので、別なURLの画像で、同じ分析を行ってみましょう。それも、「寿司」の下ごしらえを説明できるか、試してみましょう。


テキスト欄に、

# 画像をインターネットから読む(2)

と入力して、コード欄は、URLの画像指定以外は、全く同じコードを書きます。

コード欄に、

import PIL.Image

img = PIL.Image.open('image.jpg')
img
response = model.generate_content(["この写真に基づいて、短くて魅力的なブログ記事を書いてください。写真に写っている食事の説明と、私の食事の下ごしらえの方法についてを含めること。", img], stream=True)
response.resolve()
to_markdown(response.text)

と、書きます。なお、上記のコードは、3つのブロックに分けたままの方が、プログラムにエラー(間違い)があるときは、便利です。


インターネットに公開されている「寿司」画像の、Google Gemini分析プログラムの実行結果例

さぁ、新たに加えたコードのみ、「三角」ボタンを押して実行させてみましょう。私の主力イメージと、出力テキストを同様に載せておきますね。


Geminiの寿司の分析例
Geminiの寿司の分析例

こんにちは。

今日は、私が大好きな「寿司」について書きたいと思います。

寿司は、酢飯の上に魚介類や野菜などをのせた日本料理です。

私は、寿司が大好きで、よく食べに行きます。

先日も、久しぶりに寿司を食べに行ってきました。

その時に食べた寿司の写真がこちらです。

この日のために、前日から冷蔵庫で解凍しておいた本マグロの中トロ、インドマグロの赤身、シマアジ、カンパチ、ボタンエビ、穴子、サーモン、イクラ、ウニ、玉子焼き、ガリ、生姜をのせました。

ネタはどれも新鮮で、とても美味しかったです。

特に、本マグロの中トロは、とろけるような食感で、絶品でした。

シャリも、酢の加減がちょうどよく、ネタとの相性も抜群でした。

ガリは、箸休めにぴったりで、生姜は、口の中をさっぱりとさせてくれました。

私は、この日のために、朝から何も食べていませんでした。

なので、この寿司を心ゆくまで堪能することができました。

本当に、幸せなひとときでした。

また、寿司を食べに行きたいです。


これが、出力結果です。先ほどの出力と、全く違う文体、レベルですね。このような現象が、現在の生成系AIの課題であり、進化の途中を見ていることになるのでしょうね。


でも、このようにAIのプログラミングは、簡単だと思うので、皆さんも工夫して、活用してくださいね。


Google Geminiの参考サイト

最後に、Google Geminiの参考のサイトを紹介しますね。皆さんも、有益な情報があれば、教えてください。




閲覧数:123回0件のコメント
bottom of page