在过去的几个月里,我往自己的智能家居系统里塞进了不少新奇的玩意儿,从监控整个家庭实验室用电的智能插座,到用廉价ESP32开发板自己捣鼓出来的DIY气象站,折腾得不亦乐乎。安全防护方面也没落下,我给自己住的地方配了好几台TP Link安防摄像头。后来发现摄像头不够用,索性又拿手头一块ESP32-CAM模块自己拼了一个简易的FFMPEG摄像头出来应急。 不过,光是能看画面还不够,我还想让这套监控系统具备AI能力。具体来说,我希望当特定摄像头检测到人形或其他运动时,我能收到自动通知,同时系统还能生成一段简短的摘要,告诉我刚才那段录像里到底发生了什么。说白了,就是让监控学会“看懂”画面。 但我很快就被现实劝退了——那些云端的AI视觉模型服务,订阅价格是一个比一个贵,长期用下来是一笔不小的开销。算来算去,我决定走自托管路线。好在我的动手能力还算靠谱,花了不少力气折腾之后,终于在自己家里的设备上部署起了一条完整的AI监控流水线,全程不需要向任何云端服务商按月交钱。 这套系统里,Frigate承担了NVR(网络录像机)服务器的角色。当然,你也可以直接在Home Assistant上用MotionEye应用,甚至把摄像头直接接入Home Assistant管理。因为Home Assistant在我这套体系里扮演着中枢神经的角色,我所有智能家居设备以及一部分家庭实验室的设备都由它统一调度,所以我一开始就打算把安防系统也构建在这个平台之上。 不过需要注意的是,我当时已经有一个Frigate容器在管理这批安防摄像头了。这个容器没有跑在什么高性能服务器上,而是运行在一块小小的树莓派5(8GB内存版)上面,条件比较“艰苦”。可能是运气好,也可能是我没有把录像分辨率全部拉到最高,反正它就这么一直稳定跑着。 为了进一步提升运动检测能力,我把一块闲置已久的树莓派AI HAT装了上去。这块加速卡是我很久以前买的,一直没派上用场,这次正好物尽其用。装上之后,这块单板计算机在运动检测方面的表现有了明显提升。实测下来,即便是同时接入多路1080p视频流,这套配置的负载和响应速度都保持了不错的水平,并没有出现卡顿或者CPU占用长期飙满的情况。另外,我还针对那些噪声较多的区域设置了运动掩码,让系统跳过这些没必要反复检测的高频画面段,直接省下不少本来会被白白浪费的计算资源。 至于将Frigate和Home Assistant连起来,操作上其实并不复杂。我用的是Home Assistant自带的Frigate集成,不过在此之前需要在两边都配置好MQTT服务,才让两者之间的消息传递顺畅跑起来。配置完成后,Frigate检测到的事件就能实时同步到Home Assistant中,进而触发通知推送和信息摘要生成。 除了Frigate,我还安装了MotionEye进行对照测试,看看它能不能融入我这套自动化AI监控工作流。用下来感觉它表现也不错,界面直观,运动检测功能也能正常触发。但对于我的核心需求——AI事件摘要与智能通知联动——Frigate与Home Assistant的深度配合还是更顺手一些。所以最终我的主力方案依旧是Frigate,MotionEye则作为备用方案保留。整套系统跑下来,不仅达到了我最初的预期——收到运动检测通知、拿到画面摘要,还省下了一笔云服务订阅费用,算是很划算的投入了。
热门跟贴