一、起因
新房子買在2樓,反水概率較大,加上無良開發商的劣質材料,就我所在樓棟已經發生幾起反水事件,而且是高層反水,有幾戶重複出現反水,原因是管道中間有一個鋼筋 :(
二、解決方案
1.水浸傳感器+Wifi模塊(ESP8266)
- 優點:局域網內實時高報警效率快、成本相對低、聲光報警
- 缺點:需要ESP8266二次開發,搭建開發環境比較麻煩
2.水浸報警器成品套件
- 優點:提供http接口,二次開發成本低。
- 缺點:實時性差需要不斷輪詢接口、成本高WiFi版要200以上、無聲光報警。
3.水浸傳感器+螢石雲攝像頭+邊緣計算
- 優點:保留方案1的優勢,另外通過採集報警聲音識別,實現遠程預警。
- 缺點:增加攝像頭和邊緣計算盒子,成本較高。
三、最終選型
最開始準備採用方案二,後面考慮到成本有點小貴,因爲有2個衛生間,需要買2套。最後採用方案三,因爲攝像頭是開發商配置的,邊緣計算盒子很早之前就買回來做測試和開發用。總體實現步驟,先預先訓練好報警聲波圖,後期定時監測攝像頭音頻進行比對,如果發現聲波異常就發送預警通知,之前早就有模擬發送微信自動化腳本。下面就是具體實現細節:
1.採集攝像頭音頻
使用ffmpeg命令提取攝像頭音頻文件
2.生成梅爾音譜圖
這裏花了一點時間,一開始準備直接採用梅爾特徵值進行深度學習,後面找了不少資料都是將指標生成圖,然後使用深度學習進行圖像分類。
先用NWaves實現梅爾指標算法,然後用NPlot進行畫圖。
生成之後效果
3.機器學習訓練音譜圖
這裏使用ML.NET進行圖像分類模型訓練。
4.模型測試
整體測試效果還行,但是效率有點低,後面可能還是使用ONNX模型。
5.正式部署模型
採集攝像頭和音頻生成圖片已經完成,推理模型還要再優化,下一步準備整合到智能家居平臺。