はじめに
コンシューマ用)GPUで動作するVLM(Vision Language Model)を用い、実用的なレベルで動画のリアルタイム分析が可能かを検証した。本記事では、その検証のために試作した「USBカメラの映像をVLMでリアルタイム分析するアプリ」について紹介する。
試作物
動作の様子:
ソースコード:
筆者はローカル環境のVLM(Qwen3-VL-30B-A3B、Qwen3-VL-2B-Instruct-GGUFなど)で動作確認を行ったが、OpenAI互換のAPIを備えていれば、どのAPI経由でも動作するよう実装している。
仕組み
本アプリの処理フローは以下の通りである。
- 映像キャプチャ: OpenCVを利用してUSBカメラから映像を取得。
- セグメント化: 映像を一定時間(セグメント)ごとにまとめる。
- キーフレーム抽出: 各セグメントからffmpegを用いてキーフレーム(Iフレーム)を抽出する。
- VLM分析: 抽出したキーフレームをVLMへ送信し、内容を分析。
- 結果表示: 分析結果を画面上に表示する。
実装のポイント
VLMへのリクエスト時に、動画の全フレームではなくキーフレームのみを対象としている点がポイントである。
動画分析において、高性能なクラウド型VLMであっても全フレームを処理することは難しく、通常はサンプリングが行われる。特にOpenAIのAPIなどは動画ファイルを直接入力できないため、クライアント側で適切なフレームを抽出し、リクエストパラメータとして送信する必要がある。
検証:コンシューマ用GPUでリアルタイム分析は可能か
結論:十分に可能
今回は「1セグメント5秒」とし、その間から5枚のキーフレームを抽出してローカルVLMで分析を行った。検証条件は以下の通りである。
| 項目 | 設定値 |
|---|---|
| 1セグメントの長さ | 5秒 |
| キーフレーム数 | 5枚 |
| プロンプト | 動画の内容を簡潔に200文字以内で説明してください。 |
測定結果
上記条件において、VLMの1回あたりの分析所要時間を測定した。
| モデル | 量子化 | 所要時間 | 使用GPU |
|---|---|---|---|
| Qwen3-VL-2B-Instruct | Q8_0 | 0.9秒 | RTX 5060 Ti |
| Qwen3-VL-30B-A3B-Instruct | UD-Q4_K_XL | 2.8秒 | RTX 5060 Ti + RTX 3060 (Dual) |
5秒間の動画セグメントに対し、分析がいずれも3秒未満で完了している。処理速度が入力動画の長さを下回っているため、実用的な「リアルタイム分析」が成立していると言える。
まとめ
本記事では、コンシューマ用GPUで動作するVLMを利用し、USBカメラ映像のリアルタイム分析を試みた。
検証の結果、Qwen3-VLシリーズのような軽量かつ高性能なモデルを活用することで、家庭用PC環境でも実用レベルの動画監視や分析アプリが構築可能であることが確認できた。

