動画をフレームに分割してLLMで解析する with Claude3 Opus
動画をLLMへ入力し、プロンプトで指示した条件に応じてコールバック関数を実行できるアプリのデモです。
紹介動画
概要
想定ユーザー
- 動画をLLMで解析するアプリケーションをStudioで実現したい利用者
テンプレート動作
- Input
-
解析したい動画ファイル
- .mp4形式
- サンプルファイルはWebアプリからダウンロード可能
-
環境変数
環境変数 内容 備考 AWS_ACCESS_KEY_ID Bedrock Claude3 Opusのアクセスキー AWS_SECRET_ACCESS_KEY Bedrock Claude3 Opusが利用可能のシークレットキー
-
- Output
- LLMにより解析された動画
利用方法
単体での動作確認
デプロイ方法
-
下記のシークレットをCanvasに設定する。
- AWS_ACCESS_KEY_ID
- AWS_SECRET_ACCESS_KEY
-
デプロイボタンを押す。
実行方法
-
Webアプリにアクセスする。
WebアプリURLは下記
https://studio.internal.studio.exabase.ai/92b41f91d8085d62/ws/ui/
-
動画のフレーム化
- 画面左の
Download the hand example video
をクリックし、サンプル動画ファイルを取得する。 - StreamlitのUI上からサンプル動画をアップロードし、Subsample amountを任意の値に設定し、
Parase frames
をクリックする。Subsample amount
は、LLMによる処理をいくつのフレームごとに行うかを表しています。値が小さいほど小刻みに解析を行うことができますが、API利用コストは高くなります。サンプル動画を用いる場合、3〜5で程よく解析が行われます。
- 画面左の
-
LLMへ入力する準備
- (オプション)変換したフレーム群のクロッピングを行う。
- LLMへ処理させたい部分にだけ各フレームを切り取ることができます。
- (オプション)コールバック関数を指定する。
- 本アプリではTrigger(boolean)とCounter(integer)の指定ができます。
- Trigger: プロンプトで指示した条件を満たしたときにtrue/falseを出力させる
- Counter: 上げられている指の本数や車の数をカウントする
- 本アプリではTrigger(boolean)とCounter(integer)の指定ができます。
- 各フレーム画像の処理について、LLMに指示を出すプロンプトの編集を行う。
- デフォルトで入力されているプロンプトをそのまま使用することも可能です。
- (オプション)変換したフレーム群のクロッピングを行う。
-
処理の開始と結果の確認
- 準備ができたら
Process
を クリックして処理を開始する。- 各フレーム画像は並列 処理されます。
- 処理が終わると、LLMからの回答とコールバック関数の出力がJSON形式で一覧表示される。
- 準備ができたら
-
字幕付き動画の生成
- (オプション)
Generate output
をクリックすると動画が生成される。- LLMからの回答とコールバック関数の実行結果が表示された字幕付き動画を再生できます。動画プレイヤーの
︙
から字幕の切り替えや再生速度の変更ができます。
- LLMからの回答とコールバック関数の実行結果が表示された字幕付き動画を再生できます。動画プレイヤーの
- (オプション)
他のアセットとの連携
本アセットは、単体での実行を想定しております。