物联网浏览器(IoTBrowser)-使用深度学习开发防浸水远程报警

一、起因

新房子买在2楼,反水概率较大,加上无良开发商的劣质材料,就我所在楼栋已经发生几起反水事件,而且是高层反水,有几户重复出现反水,原因是管道中间有一个钢筋 :(

二、解决方案

1.水浸传感器+Wifi模块(ESP8266)

    1. 优点:局域网内实时高报警效率快、成本相对低、声光报警
    2. 缺点:需要ESP8266二次开发,搭建开发环境比较麻烦

2.水浸报警器成品套件

    1. 优点:提供http接口,二次开发成本低。
    2. 缺点:实时性差需要不断轮询接口、成本高WiFi版要200以上、无声光报警。

3.水浸传感器+萤石云摄像头+边缘计算

    1. 优点:保留方案1的优势,另外通过采集报警声音识别,实现远程预警。
    2. 缺点:增加摄像头和边缘计算盒子,成本较高。

三、最终选型

最开始准备采用方案二,后面考虑到成本有点小贵,因为有2个卫生间,需要买2套。最后采用方案三,因为摄像头是开发商配置的,边缘计算盒子很早之前就买回来做测试和开发用。总体实现步骤,先预先训练好报警声波图,后期定时监测摄像头音频进行比对,如果发现声波异常就发送预警通知,之前早就有模拟发送微信自动化脚本。下面就是具体实现细节:

1.采集摄像头音频

使用ffmpeg命令提取摄像头音频文件

2.生成梅尔音谱图

这里花了一点时间,一开始准备直接采用梅尔特征值进行深度学习,后面找了不少资料都是将指标生成图,然后使用深度学习进行图像分类。

先用NWaves实现梅尔指标算法,然后用NPlot进行画图。

生成之后效果

3.机器学习训练音谱图

这里使用ML.NET进行图像分类模型训练。

4.模型测试


报警声谱图

非报警声谱图

整体测试效果还行,但是效率有点低,后面可能还是使用ONNX模型。

5.正式部署模型

采集摄像头和音频生成图片已经完成,推理模型还要再优化,下一步准备整合到智能家居平台。