suzuran0y/CCTV-Smartphone-AI-Monitoring
本地监控 + AI 视觉 — LAN-based smartphone-powered AI monitoring framework with structured event output for data acquisition and analysis.
Sentinel – 実時間LANベースの視覚監視システム
何であるか – Sentinelは、通常のAndroidスマートフォンをネットワークカメラノードに、PC側のFlaskサーバーをライブプレビュー、録画、AI分析ダッシュボードに変えるオープンソースフレームワークです。すべてのビデオトラフィックはローカルLAN内に留まります;クラウドサービスは、外部の推論APIを接続する場合を除き必要ありません。
主要コンポーネント
| コンポーネント | 役割 | 主要技術 |
|---|---|---|
| CamFlow (Androidアプリ) | スマートフォンのカメラをキャプチャし、各フレームをJPEGに圧縮してサーバーにPOSTします。 | Java/Kotlin, Android SDK |
| PCダッシュボード | フレームを受信し、最新の画像をバッファに保持し、MJPEGストリームを提供し、セグメント化されたMP4/AVIファイルを録画し、オプションのAIモジュールを実行します。 | Python 3.9+, Flask, OpenCV, ffmpeg |
| ブラウザUI | ライブビデオを表示し、録画の開始/停止、パラメータの調整、ログやAIイベントJSONの表示を可能にします。 | HTML/JS (静的アセット) |
動作方法
- データ取得レイヤー – CamFlowは
HTTP POST /upload経由で継続的に単一フレームJPEGをアップロードします。 - サービス処理レイヤー – Flaskサーバーは最新のフレームを
FrameBufferに保存します。別々のワーカーがこのバッファから読み取り、以下の処理を実行します:- MJPEGストリーミング (
/stream) - セグメント化されたビデオ録画
- オプションのAI監視
- MJPEGストリーミング (
- プレゼンテーションレイヤー – ブラウザダッシュボードはMJPEGストリームを読み取り、ストリームFPS、JPEG品質、録画コーデック、モーショントリガー閾値、AIプロンプトテンプレートなどのコントロールを公開します。
AIトリガー監視
- 低負荷のモーション検出器(従来のCV)が各フレームで実行されます。
- モーションが設定可能な閾値を超えると、システムはOBSERVE状態に切り替わり、プラグイン可能なビジョンモデル(例:OpenAI、Claude、または任意のHTTPベースの推論サービス)を呼び出します。
- モデルの応答は固定JSONスキーマ(
has_person,risk_level,confidence,summary, …)に解析され、後続の分析のためにログに記録されます。 - プロンプトテンプレート、シーンプロファイル、追加ルールパラメータはダッシュボードから編集可能で、モデルの振る舞いをプログラム可能にします。
なぜ有用なのか
- プライバシー最優先:すべてのビデオとログはローカルPCに留まります;SDカードや第三者クラウドストレージは不要です。
- 低コスト:不要なAndroidスマートフォンをカメラノードとして利用可能;専用IPカメラは不要です。
- 拡張性:AIモジュールはインターフェースとして設計されており、任意のビジョンモデルに交換可能、またはカスタムCVパイプラインを追加できます。
- 研究用に最適:構造化されたJSONイベントログにより、後続のモデル訓練や統計的調査のためのデータセット収集が容易です。
現在の成熟度
- バージョン v1.1.3 (2026-08-20) – Windows対応コーデックフォールバック、APIキーのマスキング、アドレス検証の改善、拡張されたテストスイートを備えた安定版。
- コア機能(実時間プレビュー、セグメント録画、モーショントリガー、AIフック)はLAN展開用にプロダクションレベルで利用可能。
- ドキュメントにはステップバイステップのデプロイガイド、Androidユーザー向けガイド、および将来の機能(例:マルチカメラ集約、デバイス内推論)のロードマップが含まれます。
導入方法
- リポジトリをクローンし、
requirements.txtからPython依存関係をインストールします。 - PCで
server.pyを実行(Python 3.9+)。コンソールにAndroidクライアント用のアドレス(IP:PORT)が出力されます。 - AndroidデバイスにCamFlowをインストール(
PhoneCamSender/に提供されているAPKまたはソースからビルド)し、出力されたアドレスを入力します。 - ブラウザで出力されたURLを開き、ライブMJPEGフィードを表示、録画を開始、またはAIモニタを有効化します。
- (オプション)ダッシュボードから
config/config.jsonを編集して、ストリームFPS、録画コーデック、モーション閾値、AIプロンプトテンプレートを調整します。
ライセンス – MIT(LICENSEを参照)。
結論 – Sentinelは、スマートフォンを安価なカメラとして活用し、オプションの大規模モデル推論を備えたPythonベースのサーバーを提供する本格的で自己完結型の視覚監視フレームワークです。AI/ML/LLM対応監視分野に完全に適合しており、ハッカー向けのホームセキュリティ構成から、マルチモーダル視覚データ収集の研究プロトタイプまで幅広く活用可能です。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- Dispatch