← 返回工作坊
日常工具

Home Monitor

你家里的摄像头:熟悉的面孔在你自己的服务器上识别,一条安静的时间线告诉你谁来过。

Home Monitor 采用自托管方式:每个人运行自己的私有副本。

概览页面,显示提醒设置、摄像头状态,以及三个演示摄像头的快照

关于该应用程序

Home Monitor 是一个自托管的家庭摄像头查看应用。放在摄像头旁边的一个小型采集器获取摄像头快照,有动静时就发送画面。然后你自己的服务器查找人和人脸,并在可安装的网页应用中显示结果,附带当天的时间线。

连续录像保留在摄像头的 SD 卡上;服务器只保存选中的快照。人和人脸识别都在服务器自己的处理器上运行,因此不会有任何外部服务收到你的图片。

识别只是一种估计。Home Monitor 会谨慎地比对人脸,看不清的人脸不做识别,但它不检查人脸是否为真人,不保证一定能认出身份,也不会在不同摄像头之间跟踪某个人。只登记同意的人,遇到意外的匹配请自行核实。

图片集

这些截图中的场景、人物和事件都由应用的演示生成,没有使用任何真实的摄像头图像。

它是如何运作的

  1. 在摄像头旁采集。 摄像头附近的一台小设备每两秒检查一次各摄像头的快照,只在有动静时上传画面,另外每 15 秒上传一张。
  2. 在你的服务器上识别。 服务器不用显卡,用处理器找出人和人脸,并将人脸与你登记的人员的私有库进行比对。
  3. 在应用中查看。 可安装的网页应用会显示最新的快照、识别出了谁,以及每个摄像头当天的时间线。
  4. 收到低调的提醒。 可选的通知只说明发生了什么,不含图片或姓名;你在院子里时,可以在所有设备上一次性暂停提醒。

功能

  • 熟悉的面孔: 在征得本人同意后登记人员,每个事件都会被标记为已识别、未识别的人脸,或看不清脸的人。
  • 一天一目了然: 活动时间线显示每个摄像头全天的事件,可按摄像头、结果和时间筛选,并同时显示摄像头离线或提醒暂停的时段。
  • 不泄露任何信息的提醒: 推送通知经过加密,不含图片或姓名。你可以只在出现未识别人脸时收到提醒,也可以在所有设备上一次性暂停。
  • 仅限邀请访问: 每部手机或电脑都通过邀请激活,并可随时撤销。目前,每台受邀设备都拥有完整权限,包括人脸库。
  • 始终精简的存储: 事件会按时间和总大小删除,登记的人脸单独保存,私密图片绝不会进入应用的离线缓存。
  • 无需摄像头即可试用: 本地演示会绘制虚构的场景和人物,不使用真实识别,停止后会自动删除。

在引擎盖下

Home Monitor 由两部分组成。采集器只需要 Python 和 Pillow。服务器运行 Python 3.12、FastAPI 和 SQLite,并通过 OpenCV 和 ONNX Runtime 使用三个小模型:YOLOX-Nano 找人,YuNet 找人脸,SFace 比对人脸。它专为没有显卡的 ARM64 处理器设计。你和采集器通过 Tailscale 私密访问服务器;可选的公开访问经过 Cloudflare Tunnel 和一个加固的 Caddy 监听器。该项目以 GPL-3.0-or-later 许可证开源。