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 (靜態資源) |
運作方式
- 資料取得層 – 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