曹栢熙,施景瀚,趙東陽,許浩天,蔡文郁
(杭州電子科技大學 電子信息學院,浙江杭州,310018)
智能家居發展進程中,單品智能向場景智能再向全屋智能的過渡升級已經成為了產業共識[1],各種家居設備的互聯互通是發展必然趨勢,作為能夠覆蓋全屋的地板也應具有更加智能化的功能。地板作為承載結構,能直接采集到屋內的壓力數據,通過處理分析可以起到識別用戶姿勢及狀態的功能,并智能控制屋內其他家居設備,以完善全屋智能體系。與基于圖像識別處理的方案[2]相比,通過地板壓力數據識別的方案具有一定的潛在優勢,如:能夠提供全屋的完整覆蓋;減少了用戶之間互相遮擋造成的干擾的可能性;減少侵犯用戶隱私,容易被用戶接受等。
目前對大面積智能壓感地板的研究較少,Alan Br?nzel等[3]研發的GravitySpace 智能地板系統可以跟蹤和識別用戶的軌跡,其團隊使用了FTIR 攝像頭感知壓力,并使用GPU 進行SIFT 運算和壓力數據集群分類,該系統智能化程度高,但系統復雜,成本高昂且后期難以維護。張杰團隊[4]研發的多功能地板使用了壓力傳感器感知地板表面的壓力,與其他智能傳感器以及無線通信相結合,實現室內近距離定位監測功能。該系統將室內地板串聯成有機整體,但功能性與智能化程度有待提升。
針對上述情況與問題,本文設計了一種壓感地板智能室內檢測系統,使用地板下的壓力傳感器[5~6]構成陣列采集全屋壓力數據,配合部署了邊緣機器學習識別算法模型[7]的MCU,在設備側實現用戶狀態識別并智能控制其他家居設備,并通過MQTT 協議將結果與數據上傳至云平臺[8]實現云端數據的可視化。該系統具有低成本低功耗,智能化程度高且交互性強的特點。
系統主要由壓力感知地板、數據分析與處理模塊和云端數據可視化系統構成,如圖1 所示。

圖1 系統整體框圖
(1)壓力感知地板
設計的壓力感知地板模塊由多個放置于地板下的壓力傳感器組成的傳感器陣列與電阻電壓轉換電路構成,通過對陣列高速掃描,實現電壓隨地板所受壓力變化而變化,并將采集的壓力變化數據傳至數據分析與處理模塊。
(2)數據分析與處理
獲得陣列壓力數據后,MCU 主控通過提前構建好的邊緣模型算法對數據進行建模分析,計算得到評估結果后,對全屋內相連接的各類智能家居外接設備進行控制調整與資源分配。
(3)云端數據可視化
主控MCU 完成分析后,將得到的數據與結果通過MQTT 協議[9~10]與云平臺對接,云平臺進行數據的存儲以及更新,并在家居控制終端上實現數據可視化,呈現屋內環境情況以及用戶行為等。
系統硬件由數據采集模塊、MCU 控制器與WiFi 模塊構成,如圖2 所示。

圖2 系統硬件設計結構
其中在數據采集模塊中,于地板底層位置放置壓力傳感器,在全屋范圍內整體構成壓力數據采集陣列。采集得到的地板壓力數據矩陣傳至MCU 控制器,進行數據處理與分析。WiFi 模塊將處理后的數據與結果上傳至上位機和云端。
(1)數據采集模塊
數據采集模塊中使用壓阻式壓力傳感器采集壓力感知數據。壓阻式傳感器根據壓阻效應測量壓力,因此需要設計電阻電壓轉換電路將原始輸出電阻值的變化轉化成電壓信號,以實現電壓隨著壓力變化而產生變化。電阻轉換電壓轉換電路的輸入端接到壓力傳感器兩端,輸出端直接接到單片機的I/O 口,對壓力值進行采集。
每個感應點的輸出電壓Uo 和電阻Rij之間的關系表達式在公式(1)中進行了說明。
其中Vref為5V,阻抗匹配電阻RIM 為200kΩ,因此它具有良好的線性度和相對較寬的電壓范圍。電阻Rij的變化由相應感應點處的壓力決定,實際測量可表示為式(2)。
根據實驗得出壓力Pij與電阻Rij的關系如圖3 所示,實線表示壓力直接與電阻1/R 正比;虛線表示壓力與R 成反比。

圖3 壓阻式陣列壓力傳感器特性
為了簡化電路,提高資源的復用率,系統在壓感地板與數據處理模塊之間設置了多路模擬開關[11],如圖4 所示,利用處理器芯片控制多路模擬開關的通路打開或閉合,保證每次采樣過程中只有一個壓力傳感器連入電路,通過GPIO的I/O 控制可以實現對壓感模塊的高速掃描切換。

圖4 多路模擬開關選通示意圖
(2)MCU 控制器
在硬件邏輯控制方面上,MCU 控制器進行多路模擬開關驅動程序的執行與進行數模轉換等工作。在軟件實現方面上,通過部署經過訓練后的算法模型對采集的壓力數據進行分析得到識別結果。系統選擇使用STM32F4 處理器,該芯片性能滿足實現要求且工作功耗較低。
(3)WiFi 模塊
在本系統中WiFi 模塊通過MQTT 協議用于通信和數據交互,將數據傳至云端實現數據可視化并連接其他智能家居設備,共同構成全屋智能家居系統。
為提升系統的穩定性和準確性,本系統選擇使用邊緣機器學習算法處理分析壓感數據。通 過TensorFlow[12~13]構 建、訓練、評估機器學習模型,并使用TensorFlow Lite[14]將訓練后的模型部署到主控MCU 中[15]運行模型,該過程如圖5所示。

圖5 系統搭建與程序運行過程
系統搭建后,使用壓感模塊采集得到日常活動下的壓力數據P 和動作產生時間t,構建動作向量P→,壓感模塊中第i 行第j 列壓力傳感器輸出的壓力數據稱為Pij:
樣本數據的豐富度決定了識別模型本身的效果,為使模型的表現力更強,模型的準確率更高,使用范圍更廣,在收集樣本數據時應考慮各類情況,因此采集了多個日常活動動作包括靜止站立、摔倒、不同速度的走動、坐臥在不同家具上等對應的動作向量數據,構建訓練數據集。
系統使用BP 神經網絡[16~17]進行識別算法的構建,算法具有較好的非線性映射能力和柔性可變的網絡結構,在模式識別、分類和數據壓縮方面有著廣泛的應用和良好的性能。模型構建完成后,將動作向量訓練數據集輸入機器學習模型中,輸出向量作為控制指令。
其 中,irm為 第m 個智能家具設備的控制指令。
將模型的輸出向量與期望輸出向量進行同或計算,計算機器學習模型的準確率,當機器學習模型的準確率大于要求準確率θ1時進行移植。首先使用TensorFlow Lite 對該機器學習模型進行轉換,生成體積小、效率高的模型(.tflite),再通過TFLm C++庫函數實現在MCU上裝載,模型的部署過程如圖6 所示。

圖6 模型部署過程
使用訓練數據輸入到移植在數據處理模塊上的機器學習模型中,計算其準確率,當移植后的機器學習模型的準確率大于要求準確率θ2時,完成訓練。
數據處理模塊對壓感模塊的輸出數據進行采樣,得到動作向量后通過訓練后的機器學習模型進行處理,將機器學習模型的輸出向量通過通信電路傳輸到對外接口,用于對環境中的其他智能家居設備進行控制,實現基于邊緣機器學習的壓感地板室內監測。
云端數據可視化流程圖如圖7 所示。

圖7 數據可視化流程
為了實現系統數據的直觀觀測,本系統將壓力感知電路采集室內壓感地板的數據并完成分析后,通過MQTT 協議與云平臺對接,并利用云平臺使用設備接入服務(IoT DA)將數據引入云平臺,通過對象存儲服務(OBS)實現對數據的存儲與更新。對象存儲服務(OBS)存儲的數據作為數據可視化的數據源,實現數據的實時顯示。
為了驗證理論與分析的可靠性與正確性同時方便系統的調試與優化,通過模擬室內的家居環境進行了系統模擬沙盤的制作,如圖8 所示。

圖8 系統模擬沙盤
依據前期設計,本系統通過TensorFlow Lite 框架成功將機器學習模型部署在了MCU 上,并進行了初步的機器學習。經上位機測試證實了以MCU 為處理核心的設備上運行深度學習模型的可行性,如圖9 所示。

圖9 模型部署上位機測試
本文設計了基于邊緣機器學習與云平臺的壓感地板智能室內檢測系統。系統經實測表明,在所對應的壓力軌跡下,本系統可以較為準確地識別到對應活動狀態,發送相應指令對外設進行控制,同時可以在云可視化界面上進行數據的實時顯示。
模型部署完成后,本系統搭建了一個上位機模型,并通過人工模擬的方式采集數據用于訓練以及驗證。根據上位機的實時數據顯示,數據的準確率達到了98%以上。之后將數據存入在嵌入式設備中,驗證了模型在移植到微控制器上后的表現,準確率達到了90%以上。
在確保了模型的可靠性之后,我們進行了實際的測試,通過壓力傳感器獲取數據,并將運算識別結果反饋至各個外設模塊并上傳至云端。得到檢測準確度如表1 所示。

表1 模型準確率
云可視化界面實現了數據變化以及信息統計等更直觀的信息交互,各個狀態的可視化界面如圖10 所示。

圖10 可視化界面