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