MugheesMehdi07/langvio
A powerful AI library that bridges Large Language Models (LLMs) with video processing frameworks like YOLO, enabling seamless integration of vision and language for advanced video understanding, object detection, and contextual analysis.
解決する課題
画像や動画の分析は通常、タスクごとに検出や追跡コードを書くことを意味します。Langvio はそのステップを排除します。英語で「赤い車をすべて数えて」や「黄色い服を着た人を見つけて」と質問すると、説明と注釈付きメディアを返します。クエリを理解するための言語モデルと、オブジェクトを検出・追跡するためのビジョンモデルを組み合わせることで、同じツールでカウント、属性検索、空間的質問、ビデオ要約を処理できます。
仕組み
Langvio は、協調する2つの部分からなるパイプラインを実行します。Qwen-VL 言語プロセッサは、クエリをターゲット、属性、タスクパラメータに解析し、その後検出結果を説明します。Qwen-VL ビジョンプロセッサは、画像とサンプリングされたビデオキーフレーム内のオブジェクトを接地し、バウンディングボックスを正規化し、重複検出を除去します。ビデオの場合、キーフレーム上の検出は、ラベル、ボックスオーバーラップ、予測モーションを使用してトラックにリンクされます。ボックスは CPU オプティカルフローでキーフレーム間を運ばれ、フォールバックとして補間が使用されます。「眼鏡をかけている人」のような記述的クエリは、各ビデオトラックの複数ビューを含む詳細なクロップに対してチェックされます。
「この駐車場には何台の車がありますか?」のようなクエリは、クエリ解析、オブジェクト接地(ビデオの場合はキーフレーム接地)、トラック関連付けとクロップマッチング、そして説明生成を経由します。結果には、注釈付き画像またはビデオ、自然言語の説明、要約付きの構造化検出データが含まれます。
Langvio はデフォルトで、API キーを使用してホスト型 OpenAI 互換 API(OpenRouter)上で実行されます。キーが設定されておらず、ローカルエクストラがインストールされている場合、HuggingFace を介してプロセス内で Qwen2.5-VL ウェイトをロードするフォールバックがあります。言語プロセッサとビジョンプロセッサは、バックエンドを独立して解決します。YOLO-World v2 と ByteTracker を使用するレガシーパスは、クラシックなオープンボキャブラリ検出のために引き続き利用可能です。
対象ユーザー
カスタム検出パイプラインを書かずにビジュアルメディアについて質問したい開発者や研究者。CLI や Flask Web アプリでのクイック実験、Python API による大規模アプリケーションへの組み込みに適しています。Python 3.10-3.12 に慣れており、OpenRouter API キーまたはローカルビジョン言語モデルを実行するのに十分な計算リソースを持つ人なら誰でも利用できます。
ハイライト
- 自然言語クエリ:「車を数えて」、「赤いオブジェクトをすべて見つけて」、「テーブルには何がありますか?」
- 画像とビデオのサポート、キーフレームベースのトラッキング、オプティカルフロー、補間フォールバック
- Qwen-VL がクエリ解析/説明とオブジェクト接地の両方を駆動し、プロセッサは独立して設定可能
- デフォルトでホスト型 API(OpenRouter)、キー未設定時はローカルプロセス内推論をフォールバック
- 記述的クエリの属性マッチング、クロップと複数トラックビューを使用
- ビデオ要約:推定異なるオブジェクト数、ピーク同時カウント、移動パターン、センターライン交差
- バウンディングボックスとトラッキングトレイル付きの注釈付き出力画像/ビデオ、Flask Web インターフェース
- YAML 設定で拡張可能;レガシー YOLO-World + ByteTracker パスも利用可能
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト