将闲置安卓手机转化为网络摄像头,实现实时监控和图像采集
家里有部吃灰的旧安卓手机,想把它改成监控摄像头,但市面上的 App 基本都要把视频流传到云端,不仅有隐私泄露的风险,还得交云存储订阅费。
GitHub 上有个叫 Sentinel 的开源局域网实时视觉系统框架,能把安卓手机转化为网络摄像头节点。
它的数据流 100% 在本地局域网内传输,而且接入了多模态 AI 模型,能真正“看懂”画面里发生了什么,而不是盲目地录制一堆毫无用处的“静止视频”。
系统架构
项目采用了“移动端采集 + PC 端处理 + 浏览器控制”的解耦架构:
-
数据采集层 (安卓客户端 CamFlow):利用普通的安卓手机摄像头实时采集画面,将画面以单帧 JPEG 格式通过 HTTP POST 接口连续上传至服务器。支持局域网内的 UDP 自动发现服务器连接。
-
服务处理层 (PC 端服务器):基于 Python 和 Flask 构建。所有的图像数据汇入核心共享数据结构 FrameBuffer 中,避免重复解码。该层负责处理录像、截图、AI 分析以及日志记录,且各模块之间互不干扰。
-
展示控制层 (浏览器控制台 Dashboard):提供基于 Web UI 的交互界面,免安装插件即可通过浏览器查看低延迟的实时 MJPEG 视频流,并对整个系统进行参数控制。
核心功能
-
纯本地化与隐私保护:所有的图像数据流转和存储(如分段生成的 MP4 视频文件)完全在本地局域网和 PC 磁盘上进行,不依赖云端存储或第三方监控平台。
-
AI 双层触发式监控:系统不会对每一帧画面都进行昂贵的 AI 推理,而是采用“传统 CV 运动检测 + 大模型推理”的双层触发机制。只有在画面发生运动变化满足设定阈值时,状态机会从 SLEEP 切换到 OBSERVE 状态,并调用多模态视觉大模型进行分析,大幅降低 API 成本和 Token 消耗。
-
结构化的视觉认知输出:大模型(项目推荐使用高性价比的 Doubao-Seed-2.0-mini)会通过严格的输出契约 (Output Contract),生成格式化的 JSON 数据。包含:是否检测到人、人数、行为描述、风险等级(如 info/warn/critical)、置信度以及自然语言摘要。这为后续规则处理和数据统计提供了极大便利。
-
细粒度系统参数定制:通过 Dashboard 可以细粒度调节各类参数:
-
视频流参数:预览帧率、JPEG 压缩质量。
-
录制策略:录制帧率、分段时长、视频编码格式。
-
AI 行为参数:检测间隔、运动阈值、大模型角色定义 Prompt、场景长期背景描述等。
应用场景
这个架构设计不仅是个监控工具,还胜任以下场景:
-
家庭、实验室或工作室的本地隐私监控方案。
-
AI 行为分析与风险评估的研究实验平台。
-
视觉数据采集原型系统(自动生成结构化的 JSON 事件记录,方便模型优化和统计分析)。
-
分布式视觉系统与状态机架构的教学演示。
注意事项
-
环境与硬件依赖:PC 端需要 Python 3.9 及以上版本(支持 Windows/macOS/Linux);安卓端需要 Android 8.0 及以上版本。
-
技术栈构成:项目主要使用 Python (45.5%) 作为后端逻辑处理,JavaScript (19.8%)、HTML、CSS 用于前端 Dashboard,以及 Kotlin (18.4%) 用于安卓端 App 开发。
-
生产环境安全预警:当前版本为 v1.0.0-beta,采用 MIT 开源协议发布,官方定位为学习、研究和技术验证的原型系统。如果打算用于商业生产环境,强烈建议开发者自行补充访问认证、传输加密等安全机制。
项目地址:
https://github.com/suzuran0y/CCTV-Smartphone-AI-Monitoring
夜雨聆风