曹栢熙,施景瀚,趙東陽,許浩天,蔡文郁
(杭州電子科技大學 電子信息學院,浙江杭州,310018)
智能家居發(fā)展進程中,單品智能向場景智能再向全屋智能的過渡升級已經(jīng)成為了產(chǎn)業(yè)共識[1],各種家居設(shè)備的互聯(lián)互通是發(fā)展必然趨勢,作為能夠覆蓋全屋的地板也應(yīng)具有更加智能化的功能。地板作為承載結(jié)構(gòu),能直接采集到屋內(nèi)的壓力數(shù)據(jù),通過處理分析可以起到識別用戶姿勢及狀態(tài)的功能,并智能控制屋內(nèi)其他家居設(shè)備,以完善全屋智能體系。與基于圖像識別處理的方案[2]相比,通過地板壓力數(shù)據(jù)識別的方案具有一定的潛在優(yōu)勢,如:能夠提供全屋的完整覆蓋;減少了用戶之間互相遮擋造成的干擾的可能性;減少侵犯用戶隱私,容易被用戶接受等。
目前對大面積智能壓感地板的研究較少,Alan Br?nzel等[3]研發(fā)的GravitySpace 智能地板系統(tǒng)可以跟蹤和識別用戶的軌跡,其團隊使用了FTIR 攝像頭感知壓力,并使用GPU 進行SIFT 運算和壓力數(shù)據(jù)集群分類,該系統(tǒng)智能化程度高,但系統(tǒng)復(fù)雜,成本高昂且后期難以維護。張杰團隊[4]研發(fā)的多功能地板使用了壓力傳感器感知地板表面的壓力,與其他智能傳感器以及無線通信相結(jié)合,實現(xiàn)室內(nèi)近距離定位監(jiān)測功能。該系統(tǒng)將室內(nèi)地板串聯(lián)成有機整體,但功能性與智能化程度有待提升。
針對上述情況與問題,本文設(shè)計了一種壓感地板智能室內(nèi)檢測系統(tǒng),使用地板下的壓力傳感器[5~6]構(gòu)成陣列采集全屋壓力數(shù)據(jù),配合部署了邊緣機器學習識別算法模型[7]的MCU,在設(shè)備側(cè)實現(xiàn)用戶狀態(tài)識別并智能控制其他家居設(shè)備,并通過MQTT 協(xié)議將結(jié)果與數(shù)據(jù)上傳至云平臺[8]實現(xiàn)云端數(shù)據(jù)的可視化。該系統(tǒng)具有低成本低功耗,智能化程度高且交互性強的特點。
系統(tǒng)主要由壓力感知地板、數(shù)據(jù)分析與處理模塊和云端數(shù)據(jù)可視化系統(tǒng)構(gòu)成,如圖1 所示。
圖1 系統(tǒng)整體框圖
(1)壓力感知地板
設(shè)計的壓力感知地板模塊由多個放置于地板下的壓力傳感器組成的傳感器陣列與電阻電壓轉(zhuǎn)換電路構(gòu)成,通過對陣列高速掃描,實現(xiàn)電壓隨地板所受壓力變化而變化,并將采集的壓力變化數(shù)據(jù)傳至數(shù)據(jù)分析與處理模塊。
(2)數(shù)據(jù)分析與處理
獲得陣列壓力數(shù)據(jù)后,MCU 主控通過提前構(gòu)建好的邊緣模型算法對數(shù)據(jù)進行建模分析,計算得到評估結(jié)果后,對全屋內(nèi)相連接的各類智能家居外接設(shè)備進行控制調(diào)整與資源分配。
(3)云端數(shù)據(jù)可視化
主控MCU 完成分析后,將得到的數(shù)據(jù)與結(jié)果通過MQTT 協(xié)議[9~10]與云平臺對接,云平臺進行數(shù)據(jù)的存儲以及更新,并在家居控制終端上實現(xiàn)數(shù)據(jù)可視化,呈現(xiàn)屋內(nèi)環(huán)境情況以及用戶行為等。
系統(tǒng)硬件由數(shù)據(jù)采集模塊、MCU 控制器與WiFi 模塊構(gòu)成,如圖2 所示。
圖2 系統(tǒng)硬件設(shè)計結(jié)構(gòu)
其中在數(shù)據(jù)采集模塊中,于地板底層位置放置壓力傳感器,在全屋范圍內(nèi)整體構(gòu)成壓力數(shù)據(jù)采集陣列。采集得到的地板壓力數(shù)據(jù)矩陣傳至MCU 控制器,進行數(shù)據(jù)處理與分析。WiFi 模塊將處理后的數(shù)據(jù)與結(jié)果上傳至上位機和云端。
(1)數(shù)據(jù)采集模塊
數(shù)據(jù)采集模塊中使用壓阻式壓力傳感器采集壓力感知數(shù)據(jù)。壓阻式傳感器根據(jù)壓阻效應(yīng)測量壓力,因此需要設(shè)計電阻電壓轉(zhuǎn)換電路將原始輸出電阻值的變化轉(zhuǎn)化成電壓信號,以實現(xiàn)電壓隨著壓力變化而產(chǎn)生變化。電阻轉(zhuǎn)換電壓轉(zhuǎn)換電路的輸入端接到壓力傳感器兩端,輸出端直接接到單片機的I/O 口,對壓力值進行采集。
每個感應(yīng)點的輸出電壓Uo 和電阻Rij之間的關(guān)系表達式在公式(1)中進行了說明。
其中Vref為5V,阻抗匹配電阻RIM 為200kΩ,因此它具有良好的線性度和相對較寬的電壓范圍。電阻Rij的變化由相應(yīng)感應(yīng)點處的壓力決定,實際測量可表示為式(2)。
根據(jù)實驗得出壓力Pij與電阻Rij的關(guān)系如圖3 所示,實線表示壓力直接與電阻1/R 正比;虛線表示壓力與R 成反比。
圖3 壓阻式陣列壓力傳感器特性
為了簡化電路,提高資源的復(fù)用率,系統(tǒng)在壓感地板與數(shù)據(jù)處理模塊之間設(shè)置了多路模擬開關(guān)[11],如圖4 所示,利用處理器芯片控制多路模擬開關(guān)的通路打開或閉合,保證每次采樣過程中只有一個壓力傳感器連入電路,通過GPIO的I/O 控制可以實現(xiàn)對壓感模塊的高速掃描切換。
圖4 多路模擬開關(guān)選通示意圖
(2)MCU 控制器
在硬件邏輯控制方面上,MCU 控制器進行多路模擬開關(guān)驅(qū)動程序的執(zhí)行與進行數(shù)模轉(zhuǎn)換等工作。在軟件實現(xiàn)方面上,通過部署經(jīng)過訓練后的算法模型對采集的壓力數(shù)據(jù)進行分析得到識別結(jié)果。系統(tǒng)選擇使用STM32F4 處理器,該芯片性能滿足實現(xiàn)要求且工作功耗較低。
(3)WiFi 模塊
在本系統(tǒng)中WiFi 模塊通過MQTT 協(xié)議用于通信和數(shù)據(jù)交互,將數(shù)據(jù)傳至云端實現(xiàn)數(shù)據(jù)可視化并連接其他智能家居設(shè)備,共同構(gòu)成全屋智能家居系統(tǒng)。
為提升系統(tǒng)的穩(wěn)定性和準確性,本系統(tǒng)選擇使用邊緣機器學習算法處理分析壓感數(shù)據(jù)。通 過TensorFlow[12~13]構(gòu) 建、訓練、評估機器學習模型,并使用TensorFlow Lite[14]將訓練后的模型部署到主控MCU 中[15]運行模型,該過程如圖5所示。
圖5 系統(tǒng)搭建與程序運行過程
系統(tǒng)搭建后,使用壓感模塊采集得到日?;顒酉碌膲毫?shù)據(jù)P 和動作產(chǎn)生時間t,構(gòu)建動作向量P→,壓感模塊中第i 行第j 列壓力傳感器輸出的壓力數(shù)據(jù)稱為Pij:
樣本數(shù)據(jù)的豐富度決定了識別模型本身的效果,為使模型的表現(xiàn)力更強,模型的準確率更高,使用范圍更廣,在收集樣本數(shù)據(jù)時應(yīng)考慮各類情況,因此采集了多個日?;顒觿幼靼o止站立、摔倒、不同速度的走動、坐臥在不同家具上等對應(yīng)的動作向量數(shù)據(jù),構(gòu)建訓練數(shù)據(jù)集。
系統(tǒng)使用BP 神經(jīng)網(wǎng)絡(luò)[16~17]進行識別算法的構(gòu)建,算法具有較好的非線性映射能力和柔性可變的網(wǎng)絡(luò)結(jié)構(gòu),在模式識別、分類和數(shù)據(jù)壓縮方面有著廣泛的應(yīng)用和良好的性能。模型構(gòu)建完成后,將動作向量訓練數(shù)據(jù)集輸入機器學習模型中,輸出向量作為控制指令。
其 中,irm為 第m 個智能家具設(shè)備的控制指令。
將模型的輸出向量與期望輸出向量進行同或計算,計算機器學習模型的準確率,當機器學習模型的準確率大于要求準確率θ1時進行移植。首先使用TensorFlow Lite 對該機器學習模型進行轉(zhuǎn)換,生成體積小、效率高的模型(.tflite),再通過TFLm C++庫函數(shù)實現(xiàn)在MCU上裝載,模型的部署過程如圖6 所示。
圖6 模型部署過程
使用訓練數(shù)據(jù)輸入到移植在數(shù)據(jù)處理模塊上的機器學習模型中,計算其準確率,當移植后的機器學習模型的準確率大于要求準確率θ2時,完成訓練。
數(shù)據(jù)處理模塊對壓感模塊的輸出數(shù)據(jù)進行采樣,得到動作向量后通過訓練后的機器學習模型進行處理,將機器學習模型的輸出向量通過通信電路傳輸?shù)綄ν饨涌冢糜趯Νh(huán)境中的其他智能家居設(shè)備進行控制,實現(xiàn)基于邊緣機器學習的壓感地板室內(nèi)監(jiān)測。
云端數(shù)據(jù)可視化流程圖如圖7 所示。
圖7 數(shù)據(jù)可視化流程
為了實現(xiàn)系統(tǒng)數(shù)據(jù)的直觀觀測,本系統(tǒng)將壓力感知電路采集室內(nèi)壓感地板的數(shù)據(jù)并完成分析后,通過MQTT 協(xié)議與云平臺對接,并利用云平臺使用設(shè)備接入服務(wù)(IoT DA)將數(shù)據(jù)引入云平臺,通過對象存儲服務(wù)(OBS)實現(xiàn)對數(shù)據(jù)的存儲與更新。對象存儲服務(wù)(OBS)存儲的數(shù)據(jù)作為數(shù)據(jù)可視化的數(shù)據(jù)源,實現(xiàn)數(shù)據(jù)的實時顯示。
為了驗證理論與分析的可靠性與正確性同時方便系統(tǒng)的調(diào)試與優(yōu)化,通過模擬室內(nèi)的家居環(huán)境進行了系統(tǒng)模擬沙盤的制作,如圖8 所示。
圖8 系統(tǒng)模擬沙盤
依據(jù)前期設(shè)計,本系統(tǒng)通過TensorFlow Lite 框架成功將機器學習模型部署在了MCU 上,并進行了初步的機器學習。經(jīng)上位機測試證實了以MCU 為處理核心的設(shè)備上運行深度學習模型的可行性,如圖9 所示。
圖9 模型部署上位機測試
本文設(shè)計了基于邊緣機器學習與云平臺的壓感地板智能室內(nèi)檢測系統(tǒng)。系統(tǒng)經(jīng)實測表明,在所對應(yīng)的壓力軌跡下,本系統(tǒng)可以較為準確地識別到對應(yīng)活動狀態(tài),發(fā)送相應(yīng)指令對外設(shè)進行控制,同時可以在云可視化界面上進行數(shù)據(jù)的實時顯示。
模型部署完成后,本系統(tǒng)搭建了一個上位機模型,并通過人工模擬的方式采集數(shù)據(jù)用于訓練以及驗證。根據(jù)上位機的實時數(shù)據(jù)顯示,數(shù)據(jù)的準確率達到了98%以上。之后將數(shù)據(jù)存入在嵌入式設(shè)備中,驗證了模型在移植到微控制器上后的表現(xiàn),準確率達到了90%以上。
在確保了模型的可靠性之后,我們進行了實際的測試,通過壓力傳感器獲取數(shù)據(jù),并將運算識別結(jié)果反饋至各個外設(shè)模塊并上傳至云端。得到檢測準確度如表1 所示。
表1 模型準確率
云可視化界面實現(xiàn)了數(shù)據(jù)變化以及信息統(tǒng)計等更直觀的信息交互,各個狀態(tài)的可視化界面如圖10 所示。
圖10 可視化界面