このプロジェクトについて

SentrySearchは、セマンティックな動画検索を行うためのコマンドラインツールです。動画ファイルを重複のあるチャンク(デフォルトでは5秒の重複を持つ30秒)に分割して処理し、GoogleのGemini Embedding API、Alibaba DashScopeのQwen3-VL-Embedding(qwen-cloud)、またはローカルのQwen3-VLモデルのいずれかを使用して各チャンクの埋め込みを生成し、それらのベクトルをローカルのChromaDBデータベースに保存します。その後、ユーザーは自然言語クエリや参照画像で検索を行い、一致する動画セグメントを取得できます。これらのセグメントは元のファイルから自動的にトリミングされ、クリップとして保存されます。 主な機能には以下が含まれます: - 動画に対するテキストベースおよび画像ベースのセマンティック検索 - 複数の埋め込みバックエンド:Gemini API(デフォルト)、Qwen Cloud(DashScope)、ローカルのQwen3-VL(8Bまたは2Bバリアント、オプションで4ビット量子化) - ローカルモデル選択のための自動ハードウェア検出(NVIDIA GPUでVRAM 18GB以上またはApple SiliconでRAM 24GB以上の場合はqwen8b、より小規模な構成の場合はqwen2b) - 埋め込み前にffmpegを通じてチャンクを480p、5fpsにダウンスケールする前処理パイプラインにより、ペイロードサイズと推論時間を削減 - 視覚的に静的なチャンクの埋め込みを避けるため静止フレームスキップ - 信頼度閾値設定と、VLMベースのリランキングのオプション(クラウドバックエンドにはGemini 2.5 Flash、ローカルにはローカルのQwen3-VL Instructを使用) - コサイン類似度の上限によるほぼ重複した結果の除外 - 統計的に異常なクリップを表示するハイライトモード(knn、centroid、LOF手法) - トリミングされたクリップへのTeslaダッシュカムメタデータオーバーレイ(速度、GPS、リバースジオコーディング) - マルチカメライベントのステッチング用にSentryMerge、顔/ナンバープレート/プロンプトに基づく編集用にSentryBlurとの統合 - リトライアビリティ付き失敗したチャンクのデッドレターキュー - インデックス管理コマンド(stats、remove、reset) インストールにはuvを使用します(Python 3.11/3.12が必要)。ローカルバックエンドにはmacOS上でffmpeg、NVIDIA上ではCUDA対応PyTorchが必要です。異なるバックエンド/モデルからの埋め込みは別々のインデックスに分離されます。Geminiバックエンドのコストは、約$2.84 per hour of footage indexed(デフォルト設定)。DashScopeはモダリティごとに1k入力トークン単位で課金されます。ローカルバックエンドは完全にオフラインで動作し、APIコストはありません。 このツールはダッシュカム/セキュリティフッテージワークフロー向けに設計されていますが、あらゆる動画ファイルに対応します。出力されるのはどこでも再生可能な標準MP4クリップです。