LoginSignup
1
0

Gemini Pro Visionモデルを使用してGoogle Cloudにアップロードした動画を解析してみた

Last updated at Posted at 2023-12-19

ゴール

Gemini Pro Visionモデルを使用してGoogle Cloudにアップロードした動画を解析します。

環境

  • Python 3.11.5
  • Google Cloud Storage
  • Google Cloud CLI

実装

Google Cloudに動画をアップロードする

image.png

Cloud Storageのバケットページに移動し、「作成」を選択します。

バケット名を入力し、「続行」します。

image.png
  
ロケーションタイプを選択し、「続行」します。

image.png
  
ストレージクラスを選択し、「続行」します。

image.png
  
オブジェクトのアクセスは、「このバケットに対する公開アクセス禁止を適用する」のチェックを外し、アクセス制御は「きめ細かい管理」を選択し、「続行」します。

image.png
  
保護方法を選択し、「作成」を選択します。

image.png

解析する動画はこちらです。
アップロードできる動画の長さの制限は2分となっています。
  
先ほど作成したバケット画面で、「ファイルをアップロード」を選択し、ダウンロードした動画をアップロードしてください。

image.png
  
アップロードした動画の右端の3点リーダーから「gsutil URLをコピー」を選択します。後ほどのPythonプログラムで子のURLは使用します。

image.png

Google Cloud CLIをインストールする

test.pyを作成し、以下のコマンドでgoogle-cloud-aiplatformをインストールします。

pip install --upgrade google-cloud-aiplatform

以下を参考にGoogle Cloud CLIをインストールします。

Google Cloud CLIのインストールが完了したら以下のコマンドを入力し、設定を進めます。

gcloud init

googleアカウントは動画をアップロードしたアカウント、projectは動画をアップロードしたプロジェクトのIDを選択してください。プロジェクトIDはGoogle Cloudの「ダッシュボード」から確認できます。

Pythonプログラムを実行する

test.pyに以下のコードを追加してください。

test.py
import vertexai
from vertexai.preview.generative_models import GenerativeModel, Part

PROJECT_ID = "プロジェクトID"
LOCATION = "asia-northeast1"
RESOURCE_ID = "gemini-pro-vision"

vertexai.init(project=PROJECT_ID, location=LOCATION)

VIDEO_FILE = "先ほどコピーしたgsutil URL"

model = GenerativeModel(RESOURCE_ID)
response = model.generate_content(
    [
        "この動画を詳しく解説してください。",
        Part.from_uri(
            VIDEO_FILE,
            mime_type="video/mp4",
        ),
    ]
)

print(response)

  
Pythonファイルを実行します。
実行結果は以下の通りです。

test.py
candidates {
  content {
    role: "model"
    parts {
      text: " この動画には、3匹のヒヒが暗闇の中でこちらを凝視しています。中央のヒヒは毛づくろいをしており、左のヒヒは右 のヒヒの背中をかいています。右のヒヒは、こちらをじっと見つめています。"
    }
  }
  finish_reason: STOP
  safety_ratings {
    category: HARM_CATEGORY_HARASSMENT
    probability: NEGLIGIBLE
  }
  safety_ratings {
    category: HARM_CATEGORY_HATE_SPEECH
    probability: NEGLIGIBLE
  }
  safety_ratings {
    category: HARM_CATEGORY_SEXUALLY_EXPLICIT
    probability: NEGLIGIBLE
  }
  safety_ratings {
    category: HARM_CATEGORY_DANGEROUS_CONTENT
    probability: NEGLIGIBLE
  }
}
usage_metadata {
  prompt_token_count: 1039
  candidates_token_count: 58
  total_token_count: 1097
}

ヒヒであることはもちろん、毛づくろいやそれぞれのヒヒの視線の解説までしてくれています。

終わりに

お疲れ様でした!
以下のXアカウウントで情報発信も行っています!

参考文献

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0