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 (静的アセット)

動作方法

  1. データ取得レイヤー – CamFlowはHTTP POST /upload経由で継続的に単一フレームJPEGをアップロードします。
  2. サービス処理レイヤー – Flaskサーバーは最新のフレームをFrameBufferに保存します。別々のワーカーがこのバッファから読み取り、以下の処理を実行します:
    • MJPEGストリーミング (/stream)
    • セグメント化されたビデオ録画
    • オプションのAI監視
  3. プレゼンテーションレイヤー – ブラウザダッシュボードは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ユーザー向けガイド、および将来の機能(例:マルチカメラ集約、デバイス内推論)のロードマップが含まれます。

導入方法

  1. リポジトリをクローンし、requirements.txtからPython依存関係をインストールします。
  2. PCでserver.pyを実行(Python 3.9+)。コンソールにAndroidクライアント用のアドレス(IP:PORT)が出力されます。
  3. AndroidデバイスにCamFlowをインストールPhoneCamSender/に提供されているAPKまたはソースからビルド)し、出力されたアドレスを入力します。
  4. ブラウザで出力されたURLを開き、ライブMJPEGフィードを表示、録画を開始、またはAIモニタを有効化します。
  5. (オプション)ダッシュボードからconfig/config.jsonを編集して、ストリームFPS、録画コーデック、モーション閾値、AIプロンプトテンプレートを調整します。

ライセンス – MIT(LICENSEを参照)。


結論 – Sentinelは、スマートフォンを安価なカメラとして活用し、オプションの大規模モデル推論を備えたPythonベースのサーバーを提供する本格的で自己完結型の視覚監視フレームワークです。AI/ML/LLM対応監視分野に完全に適合しており、ハッカー向けのホームセキュリティ構成から、マルチモーダル視覚データ収集の研究プロトタイプまで幅広く活用可能です。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • Dispatch