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 並透過 HTTP POST /upload 傳送到伺服器。 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 裝置上安裝 CamFlowPhoneCamSender/ 中提供 APK 或從原始碼建置),並輸入輸出的位址。
  4. 在瀏覽器中開啟輸出的 URL,查看即時 MJPEG 流,開始錄製或啟用 AI 監控。
  5. (可選)透過儀表板編輯 config/config.json,調整串流 FPS、錄製編碼器、運動閾值或 AI 提示範本。

授權 – MIT(參見 LICENSE)。


總結 – Sentinel 是一個真正自包含的視覺監控框架,利用智慧型手機作為低成本攝影機,並提供具備可選大模型推論能力的 Python 伺服器。它完全契合 AI/ML/LLM 支援的監控領域,既適用於愛好者家庭安全設定,也適用於多模態視覺資料收集的研究原型。

相關

  • 專案
  • 專案
  • 專案
  • Dispatch