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