🅰️

世界初?Claude3を使った動画解析 - claude3-video-analyzer

2024/03/13に公開

こちらの記事はもちろんClaude3Opusによる生成が80%を占めています。

はじめに

こんにちは!今日は、私が最近作成したPythonプロジェクト「claude3-video-analyzer」
について紹介したいと思います。
このプロジェクトは、Anthropic社のClaude-3モデルのマルチモーダル機能を利用して、MP4形式の動画をプロンプトに基づいて解析するものです。

世界初?

Claude-3はまだリリースされたばかりの最新のAIモデルですが、そのマルチモーダル機能を活用した動画解析の実装は、おそらく世界初ではないでしょうか。
私が知る限り、他に同様のプロジェクトを見たことがありません。
このプロジェクトはGPT4Visionのように動画を解析でき、Claude-3の可能性を探る一つの試みであり、今後の発展に期待が持てます。

使用例

prompt

これは動画のフレーム画像です。動画の最初から最後の流れ、動作を微分して日本語で解説してください。


https://cdn.openai.com/sora/videos/tokyo-walk.mp4

Claude3-Opus出力

この画像シーリズは、日本の東京のような都市の賑やかな通りを歩く女性を撮影したファッションスナップ動画のようです。

最初は女性が通りの中心を颯爽と歩いている様子から始まります。周りには多くの人通りや看板、ネオンサインが見えて活気に溢れています。女
性はレザージャケットに赤いワンピース、ブーツというスタイリッシュな装いで、サングラスをかけ、手にバッグを持っています。

次第にカメラが女性に寄っていき、横顔や正面のアップが映し出されます。赤い唇が印象的で、堂々とした表情でまっすぐ前を見据えて歩いてい
ます。スローモーションも使われ、髪がなびく様子なども捉えられています。

最後は再び引きの映像に戻り、女性が通りを歩いて行く後ろ姿で動画が締めくくられるのではないでしょうか。都会的でファッショナブルな雰囲
気の中で、自信に満ちた女性の颯爽とした歩みが印象的な作品だと思われます。モデルの表情、スタイリング、ロケーションが見事に調和して、
ダイナミックかつ洗練された映像美を生み出しているのが伝わってきます。


https://cdn.openai.com/sora/videos/gold-rush.mp4
Claude3-Opus出力

これは古いアメリカの西部の町の情景を捉えた動画のようです。

動画は遠景から始まり、のどかな山あいの町並みが映し出されています。狭い土の道路の両脇には木造の家屋が建ち並び、馬に乗った人々が行き
交っています。

徐々に町の中心部に近づいていくと、にぎやかな通りが見えてきます。道の両側には商店や酒場が立ち並び、荷馬車や馬に乗った人々で賑わって
います。道路の真ん中を青い川が流れ、木製の橋が架かっています。

町を行き交う人々の姿が次第にアップで映し出されます。カウボーイハットにブーツ姿の男性、長いスカートを着た女性、荷物を運ぶロバなどが
行き交っています。

最後は再び町並みを見下ろす構図に戻り、雄大な景色の中にたたずむ昔ながらの西部の町の風景で締めくくられます。

全体的に、19世紀のアメリカ西部の典型的な町の日常風景を丁寧に描写した、情緒あふれる映像となっています。時代を感じさせるセピア調の色
合いも、ノスタルジックな雰囲気を醸し出しています。


https://cdn.openai.com/sora/videos/zen-garden-gnome.mp4

Claude3-Sonnet出力

この動画は、庭園の小さな噴水池を映しています。池の中央には、らせん状の模様が描かれた砂紋があり、その中に小さな妖精の置物が座ってい
ます。周りには小石やベンチ、植栽などの庭園の風景が映っています。

動画の最初のフレームでは、池の全体が映し出されています。次に、カメラが徐々に池の中央部分に近づき、妖精の置物とその周りの砂紋の模様 がクローズアップされていきます。その後、カメラは池の周りを円を描くように動き、異なる角度から池の様子を捉えています。

中盤では、カメラが少し引いて全体像を映し出しながら、水平方向に動いて池の様子を見渡しています。そして最後に、カメラが再び池の中央部 分に近づき、妖精の置物とその周りの砂紋がクローズアップされて動画が終了します。

全体を通して、静かな庭園の雰囲気とともに、池の中の小さな世界観が丁寧に描かれています。滑らかなカメラワークによって、観る者の視点が 自然に誘導されるよう工夫されています。

使い方

claude3-video-analyzerを使用するには、以下の手順に従ってください。

  1. リポジトリのクローン
    まず、リポジトリをローカルマシンにクローンします。
git clone https://github.com/Olemi-llm-apprentice/claude3-video-analyzer.git
  1. 必要なパッケージのインストール
    プロジェクトディレクトリに移動し、requirements.txtに記載されているPythonパッケージをインストールします。
cd claude3-video-analyzer
pip install -r requirements.txt
  1. APIキーの設定
    AnthropicのAPIキーを設定します。環境変数ANTHROPIC_API_KEYにAPIキーを設定するか、プロジェクトのルートディレクトリに.envファイルを作成し、ANTHROPIC_API_KEY=your_api_key_hereのように記述します。

  2. 動画ファイルの配置
    解析したい動画ファイル(MP4形式)をresourcesディレクトリに配置します。

  3. プロンプトとモデルの設定
    main.pyの以下の部分を編集します。

Copy code
if __name__ == "__main__":
    video_file_path = os.path.join("resources", "video_name.mp4")  # ビデオファイルのパスを指定
    prompt = "これは動画のフレーム画像です。動画の最初から最後の流れ、動作を微分して日本語で解説してください。"  # プロンプトを指定
    model = "claude-3-sonnet-20240229"  # モデルを指定 "claude-3-opus-20240229" or "claude-3-sonnet-20240229"

    get_text_from_video(video_file_path, prompt, model)

video_file_pathに解析したい動画ファイルのパスを指定します。
promptに動画解析のためのプロンプトを指定します。
modelに使用するClaude-3モデルを指定します。
6. 実行
以下のコマンドでスクリプトを実行します。

python main.py

解析結果がコンソールに出力されます。

注意点

  • 現在、このプロジェクトでは、動画から抽出できるフレーム数が最大20枚に制限されています。そのため、1~2分程度の短い動画の解析に最適です。
  • AWS Bedrockでの動作は未検証ですが、利用できる可能性は高いと考えられます。

ぜひ、皆さんもclaude3-video-analyzerを試してみてください!
https://github.com/Olemi-llm-apprentice/claude3-video-analyzer

Discussion