基于边缘机器学习与云平台的压感地板室内检测系统设计
2023-07-13曹栢熙施景瀚赵东阳许浩天蔡文郁
曹栢熙,施景瀚,赵东阳,许浩天,蔡文郁
(杭州电子科技大学 电子信息学院,浙江杭州,310018)
0 引言
智能家居发展进程中,单品智能向场景智能再向全屋智能的过渡升级已经成为了产业共识[1],各种家居设备的互联互通是发展必然趋势,作为能够覆盖全屋的地板也应具有更加智能化的功能。地板作为承载结构,能直接采集到屋内的压力数据,通过处理分析可以起到识别用户姿势及状态的功能,并智能控制屋内其他家居设备,以完善全屋智能体系。与基于图像识别处理的方案[2]相比,通过地板压力数据识别的方案具有一定的潜在优势,如:能够提供全屋的完整覆盖;减少了用户之间互相遮挡造成的干扰的可能性;减少侵犯用户隐私,容易被用户接受等。
目前对大面积智能压感地板的研究较少,Alan Bränzel等[3]研发的GravitySpace 智能地板系统可以跟踪和识别用户的轨迹,其团队使用了FTIR 摄像头感知压力,并使用GPU 进行SIFT 运算和压力数据集群分类,该系统智能化程度高,但系统复杂,成本高昂且后期难以维护。张杰团队[4]研发的多功能地板使用了压力传感器感知地板表面的压力,与其他智能传感器以及无线通信相结合,实现室内近距离定位监测功能。该系统将室内地板串联成有机整体,但功能性与智能化程度有待提升。
针对上述情况与问题,本文设计了一种压感地板智能室内检测系统,使用地板下的压力传感器[5~6]构成阵列采集全屋压力数据,配合部署了边缘机器学习识别算法模型[7]的MCU,在设备侧实现用户状态识别并智能控制其他家居设备,并通过MQTT 协议将结果与数据上传至云平台[8]实现云端数据的可视化。该系统具有低成本低功耗,智能化程度高且交互性强的特点。
1 整体设计方案
系统主要由压力感知地板、数据分析与处理模块和云端数据可视化系统构成,如图1 所示。
图1 系统整体框图
(1)压力感知地板
设计的压力感知地板模块由多个放置于地板下的压力传感器组成的传感器阵列与电阻电压转换电路构成,通过对阵列高速扫描,实现电压随地板所受压力变化而变化,并将采集的压力变化数据传至数据分析与处理模块。
(2)数据分析与处理
获得阵列压力数据后,MCU 主控通过提前构建好的边缘模型算法对数据进行建模分析,计算得到评估结果后,对全屋内相连接的各类智能家居外接设备进行控制调整与资源分配。
(3)云端数据可视化
主控MCU 完成分析后,将得到的数据与结果通过MQTT 协议[9~10]与云平台对接,云平台进行数据的存储以及更新,并在家居控制终端上实现数据可视化,呈现屋内环境情况以及用户行为等。
2 核心设计与实现
■2.1 原理与硬件设计
系统硬件由数据采集模块、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 协议用于通信和数据交互,将数据传至云端实现数据可视化并连接其他智能家居设备,共同构成全屋智能家居系统。
■2.2 数据处理分析与识别
为提升系统的稳定性和准确性,本系统选择使用边缘机器学习算法处理分析压感数据。通 过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时,完成训练。
数据处理模块对压感模块的输出数据进行采样,得到动作向量后通过训练后的机器学习模型进行处理,将机器学习模型的输出向量通过通信电路传输到对外接口,用于对环境中的其他智能家居设备进行控制,实现基于边缘机器学习的压感地板室内监测。
■2.3 云端数据可视化
云端数据可视化流程图如图7 所示。
图7 数据可视化流程
为了实现系统数据的直观观测,本系统将压力感知电路采集室内压感地板的数据并完成分析后,通过MQTT 协议与云平台对接,并利用云平台使用设备接入服务(IoT DA)将数据引入云平台,通过对象存储服务(OBS)实现对数据的存储与更新。对象存储服务(OBS)存储的数据作为数据可视化的数据源,实现数据的实时显示。
3 测试结果与分析
■3.1 系统模拟沙盘
为了验证理论与分析的可靠性与正确性同时方便系统的调试与优化,通过模拟室内的家居环境进行了系统模拟沙盘的制作,如图8 所示。
图8 系统模拟沙盘
■3.2 模型部署测试
依据前期设计,本系统通过TensorFlow Lite 框架成功将机器学习模型部署在了MCU 上,并进行了初步的机器学习。经上位机测试证实了以MCU 为处理核心的设备上运行深度学习模型的可行性,如图9 所示。
图9 模型部署上位机测试
4 结束语
本文设计了基于边缘机器学习与云平台的压感地板智能室内检测系统。系统经实测表明,在所对应的压力轨迹下,本系统可以较为准确地识别到对应活动状态,发送相应指令对外设进行控制,同时可以在云可视化界面上进行数据的实时显示。
■3.3 识别分析测试
模型部署完成后,本系统搭建了一个上位机模型,并通过人工模拟的方式采集数据用于训练以及验证。根据上位机的实时数据显示,数据的准确率达到了98%以上。之后将数据存入在嵌入式设备中,验证了模型在移植到微控制器上后的表现,准确率达到了90%以上。
在确保了模型的可靠性之后,我们进行了实际的测试,通过压力传感器获取数据,并将运算识别结果反馈至各个外设模块并上传至云端。得到检测准确度如表1 所示。
表1 模型准确率
■3.4 可视化界面
云可视化界面实现了数据变化以及信息统计等更直观的信息交互,各个状态的可视化界面如图10 所示。
图10 可视化界面