記事検索

検索ワードを入力してください。
Sky Tech Blog
VLMを​使用した​動画の​説明文生成

VLMを​使用した​動画の​説明文生成

オープンソースのVLM(Vision Language Model)であるInternVL-3.5-Flashを使用して動画の説明文を生成する方法について説明しています。VLMは画像や動画とテキストを扱うマルチモーダルモデルで、InternVL-3.5-Flashはその最新モデルです。

ChatGPTやGeminiなどのクローズドなモデルを使用したサービスが普及する中で、現在はオープンなモデルでも高い精度を出すことができます。今回はオープンソースのVLM(Vision Language Model)であるInternVL-3.5-Flashを使用して動画の説明文を生成する方法を紹介します。

VLM​(Vision Language Model)とは

名前の通り、Vision(動画や画像)とLanguage(テキスト)を扱うことができるマルチモーダルと言われるモデルの種類です。VLMを使用することで「この画像について説明してください。」など、画像や動画を含めた会話が可能です。

InternVL-3.5-Flashの​紹介

オープンなVLMの中で精度が高く人気なInternVLシリーズの2025年11月20日時点で最も新しいモデルです。

説明文の​生成

以下、説明文を生成するコードです。

# 以下リンク先のクイックスタートに記載されている関数と定数を定義し、ライブラリをインポート
# https://huggingface.co/OpenGVLab/InternVL3_5-2B-Flash#quick-start

# モデルのパスの読み込み
path = "OpenGVLab/InternVL3_5-1B-Flash"

# モデルのインスタンス作成
model = AutoModel.from_pretrained(
    path,
    torch_dtype=torch.bfloat16,
    low_cpu_mem_usage=True,
    use_flash_attn=True,
    trust_remote_code=True).eval().cuda()

# 任意の動画のパスを指定(今回は https://github.com/OpenGVLab/InternVideo/tree/main/Data/InternVid 内の example1.mp4 を使用)
video_path = './examples/red-panda.mp4'

# 動画をモデルに入力するための変換処理
pixel_values, num_patches_list = load_video(video_path, num_segments=8, max_num=1)
pixel_values = pixel_values.to(torch.bfloat16).cuda()

# 入力するプロンプトの作成
video_prefix = ''.join([f'Frame{i+1}: \n' for i in range(len(num_patches_list))])
question = video_prefix + 'Please describe this video in one sentence.'

# 説明文の生成
response = model.chat(tokenizer, pixel_values, question, generation_config, num_patches_list=num_patches_list)

# 結果の表示
print(f'{response}')

出力結果

A man plays with a dog in his backyard. The man gets snow in his face and then buries and digs with his dog with a camera.

説明文を生成することができました。

最後に

オープンなモデルは学習させた自分だけのモデルを作ることやオフライン環境での推論など、クローズドなモデルにはない魅力が多くあります。ぜひ、活用してみてください。


\シェアをお願いします!/
  • X
  • Facebook
  • LINE
キャリア採用募集中!

入社後にスキルアップを目指す若手の方も、ご自身の経験を幅広いフィールドで生かしたいベテランの方も、お一人おひとりの経験に応じたキャリア採用を行っています。

Sky株式会社のソフトウェア開発や製品、採用に関するお問い合わせについては、下記のリンクをご確認ください。
お問い合わせ
ホーム