>_ DevTrendsja

言語

ホーム

言語

セクション

フロントエンド バックエンド モバイル DevOps AI / ML ゲーム開発 ブロックチェーン 組み込み セキュリティ
Python

ギガバイト単位の動画から全記録を視聴せずに適切な瞬間を見つける方法

想像してみてください:監視カメラの映像、テスラのダッシュカム映像、あるいは1ヶ月分のホームビデオを持っているとします。特定のクリップを見つける必要があります—例えば、「赤いトラックが通り過ぎた時」や「誰かがフェンスを駆け抜けた時」です。通常、これは数時間のうんざりする早送りを意味します。しかし、「赤いトラックが赤信号を無視した」と入力するだけで、即座に使用可能なトリム済みクリップが手に入ったらどうでしょうか?

それを可能にするのが、sentrysearchプロジェクトです。テキスト描述や手動のタグ付けなしで、フレーム内で何が起きているかを理解するセマンティック動画検索CLIツールです。

内部的动作原理

プロジェクトの開発者は、マルチモーダル埋め込みを使用する道を選びました。以前は動画を検索するために、まずニューラルネットワークで物体検出を行い、次にOCRでテキストを抽出し、それをすべてデータベースにまとめる必要がありました。ここでは、直接的なアプローチが使用されています。

SentrySearchは動画を小さな重なり合うチャンク(デフォルトでは30秒)に分割します。各ピースは、GoogleのGeminiモデルまたはローカルのQwen3-VLを使用して、ベクトル(埋め込み)に変換されます。これらのベクトルはローカルChromaDBデータベースに保存されます。

検索クエリを入力すると、同じ空間でベクトルに変換されます。システムは最も類似した動画ベクトルを検索し、特定の一致閾値を超えた場合、ffmpegを使用して必要なフラグメントを自動的に切り出します。

興味深いことに、ここにはテキストを介した中間ステップはありません。「犬がボールに飛びつく」というテキストクエリは、直接動画の特徴と比較されます。

ツールの機能

このプロジェクトは、そのシンプルさと、同様のユーティリティでは通常見落とされる細部への配慮で魅力を感じます。

クラウドなしのローカル実行

Gemini API経由で動画をGoogleに送信したくない場合は、ローカルバックエンドを使用できます。プロジェクトはQwen3-VLモデルファミリーをサポートしています。作成者はさまざまなシナリオを考慮しています:NVIDIA GPU搭載の高性能マシンからApple Silicon搭載のMacBookまで。例えば、24GB RAMのMacでは8Bバージョンを実行でき、より控えめな構成には2Bバージョンが動作します。

スマートなリソース節約

動画のインデックス作成は重いプロセスです。時間とコスト(APIの場合)を無駄にしないために、SentrySearchはいくつかのテクニックを使用しています:

  • 事前圧縮:動画をモデルに送信する前に480p、毎秒5フレームに縮小します。これは何が起きているかを理解するのに十分であり負荷が大幅に軽減されます。
  • 静的スキッピング:フレーム内で何も起きていない場合(例:空の敷地に車が停まっている場合)、スクリプトがフレームハッシュサイズを比較し、そのようなチャンクを単にスキップします。

Tesla所有者向け機能

作成者は明らかにTeslaのSentry Modeに触発されました。ツールにはTeslaダッシュカムファイルからメタデータ(速度、GPS座標)を抽出する отдельныйモードがあり、ビデオ上にHUDインターフェースとしてオーバーレイ表示されます。OpenStreetMap経由で逆ジオコーディングを行い、インシデントが発生した場所の道名を表示することすらできます。

tesla overlay

使用方法

依存関係の管理にはpipを使用しており、Pythonコミュニティの標準になりつつあります。インストールは簡単です:

git clone https://github.com/ssrajadh/sentrysearch.git
cd sentrysearch
uv tool install .

その後、設定を初期化し、APIキーを追加する必要があります(Geminiを使用する場合):

sentrysearch init

動画を含むフォルダのインデックス作成:

sentrysearch index /path/to/your/video

そして、実際の検索:

sentrysearch search "человек в синей куртке подходит к двери"

導入する価値はあるか

クラウドAPIを使用する場合の主な問題はコストです。作成者が計算したところ、Geminiで1時間の動画をインデックス作成するのには約$2.84かかります。テラバイト単位のアーカイブがある場合は無視できない金額ですが、特定のインシデントをすばやく確認するには十分に手頃です。

ローカルモデルを使用する場合、GPU時間で支払うだけです。NVIDIA RTX 4090では、30秒のチャンクを処理するのに数秒しかかかりません。

欠点としては、検索品質はチャンク境界が重要なイベントとどのように揃うかに大きく依存することが挙げられます。アクションが1つのピースの終わりから始まり、次のピースの始まりで終わった場合、モデルは「混乱する」可能性があります。しかし、重なりがこれを部分的に解決します。

SentrySearchは、最新のLLMとマルチモーダルモデルがチャットボットの玩具から日常的なタスクのための実際に役立つユーティリティに変わりつつある良い例です。カメラ記録で「あの正確な瞬間」を手動で検索したことがあるなら、このツールは確かに設定に15分を費やす価値があります。

関連プロジェクト