>_ DevTrendsja

言語

ホーム

言語

セクション

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

Unblinkでニューラルネットワークビジョンをホームカメラに接続する方法

Deploy to Render

よくある話ですが、家庭やオフィスにRTSPカメラが2〜3台あり、ギガバイト単位のビデオをディスクに記録しているのに、配達員がドアに荷物を置いていった瞬間を見つけるには、8倍速でタイムラインを手動でスクラブする必要があります。従来のモーション検知器はほとんど役に立ちません。飛ぶ昆虫、木の影、対向車のヘッドライトに反応して、アーカイブに何百もの誤ったマーカーを作成してしまいます。

最近、Unblinkリポジトリ(バージョンV2)を見つけました。zapdos-labsの開発者は、マルチモーダルビジョンバージョン言語モデル(VLM)を使ってこの課題を解決しようと試みました。考え方はシンプルです。ニューラルネットワークにビデオストリームを入力し、ユーザーは通常のチャットでカメラと通信したり、テキストで特定のクリップを検索したりできます。

このプロジェクトは、ローカルエージェント、管理サーバー、Qwen3-VLモデルの組み合わせで構築されています。実際のシステム動作は次のとおりです:

  • テキストベースのアーカイブ検索。「赤いジャケットを着た人が建物に入った」や「荷物を持った配達員」などのクエリを入力すると、5時間分の映像を手動で見る代わりに、一致するフレームのタイムスタンプを返します。
  • カメラとのチャット。ビデオストリームへのQ&Aインターフェースとして動作します。「午後6時以降に訪問者は来たか」と尋ねると、モデルは保存されたフレームを分析して首尾一貫したテキストで応答します。
  • フレーム分析と要約。ニューラルネットワークがビデオ映像を何が起きているかのテキスト説明に圧縮し、初期のインシデント確認の時間を節約します。
  • ポート転送なしの relais 経由の操作。ローカルネットワーク上で動作するコンパクトなノードが、管理サーバーへの独自の接続を維持します。

アーキテクチャの動作

アーキテクチャ的に、Unblinkは2つの部分に分かれています。管理サーバーと、カメラ旁边に配置する軽量ノードです。

+-------------------------------------------------------+
|                     Public Server                     |
|  (Auth, DB PostgreSQL, Web UI SolidJS, VLM Analysis)  |
+-------------------------------------------------------+
                           
                            Безопасный туннель
                           
+-------------------------------------------------------+
|                   Local Network Node                  |
|                   (unblink-node CLI)                  |
+-------------------------------------------------------+
                                            
         RTSP                                MJPEG
   [ Камера 1 ]                         [ Камера 2 ]

サーバー側は認証、データストレージ、ウェブインターフェースを処理します。フロントエンドはTypeScript、Vite、Ark UIコンポーネントを使用してSolidJSで書かれています。データベースにはpgx経由のPostgreSQLが使用されています。ビデオストリームの処理には、開発者は実績のあるgo2rtcエンジンを選択し、ブラウザへのRTSPとWebRTCの変換を優れています。

unblink-nodeノードはGoで書かれています。ローカルネットワーク内で動作し、カメラからのRTSPまたはMJPEGストリームに接続して、サーバーにプロキシします。これは、ルーターのポートを開いたり、カメラをインターネットに直接公開したりする必要がないことを意味します。

ノードのクイックスタートアップ

サーバーがすでに実行されている場合(またはクラウドデプロイメントを使用している場合)、数分でローカルカメラを接続できます。

プレビルドバイナリ

GitHubリリースには、LinuxとWindows(x86_64とARM64の両方)のコンパイル済みファイルが含まれています。アーカイブをダウンロードして展開し、実行します:

# Для Linux
tar -xzf unblink-node_linux_amd64.tar.gz
./unblink-node

Windowsでは、PowerShell介して同様の起動になります:

.\unblink-node.exe

初回起動時に、ユーティリティはターミナルにURLを出力します。ブラウザで開いて、コントロールパネルでノードを認証します。

ソースからのビルド

マシンにGoがインストールされている場合、ユーティリティをインストールする最も簡単な方法は次のgo installコマンドです:

go install github.com/zapdos-labs/unblink/cmd/unblink-node@main
unblink-node

フルスタックのローカル開発

より深く掘り下げたい人やサーバー側をローカルにデプロイしたい人のために、リポジトリには便利なMakefileが含まれています。tmuxが必要です。サーバー、ノード、ウェブインターフェースを1つのウィンドウで起動します:

# Ставим зависимости
make install

# Копируем конфиг окружения
cp .env.example .env

# Запускаем все компоненты в dev-режиме
make dev

リポジトリには、フロントエンドの型チェック用と、ネットワークコントラクトが変更されたときにProtobufファイルを再生成するためのmake typecheckコマンドとmake protoコマンドもあります。

便利な活用場面

このプロジェクトは、FrigateやShinobiなどの標準的なNVRがセマンティック検索機能で具体的に不足している、高度なホームビデオ監視と小規模オフィス環境のニッチを明確にターゲットにしています。

良い例として、家の前の駐車場の監視があります。検出ゾーンを設定する代わりに、チャットで「青い車はいつ出発したか」と尋ねるだけです別のシナリオは倉庫エリアの制御で、テラバイトの空の映像を見ることなく積載 моментовを迅速に見つけることが重要です。

玉に傷と結論

READMEドキュメントはまだ最小限です。自分のハードウェアでQwen3-VL推論を実行するためのシステム要件の詳細な説明がないため、重いモデルはGPU搭載のサーバーまたは外部APIに接続する必要があるでしょう。

それでも、GoとSolidJSのコードベースはクリーンに見え、go2rtcをメディアエンジンとして選んだことはビデオ処理の詳細に対する堅実な理解を示しています。ホームカメラにVLMを接続する方法を探していて、ラッパーをゼロから書きたくない場合、Unblinkは確かに検討する価値があります。ソースコードはAGPL-3.0ライセンスの下で公開されています。

関連プロジェクト