基于惯性传感器的人体行为数据采集系统

时间:2023-10-07 09:36:02 来源:网友投稿

龙霄汉 常兴治 花 健

(常州信息职业技术学院 江苏常州 213164)

近年来,随着人机交互手段的飞速发展,通信技术的日趋多样,传感器技术的不断更新,基于传感器实现的人体行为识别技术(Human Activity Recognition,HAR)不但广泛应用于军事、反恐、国家安全等领域,也越来越多地渗透老年医疗监护、运动健康监测、康复医疗等医疗场景的各个环节[1]。新兴技术时代中,利用人工智能技术和云计算技术实现人体行为分析已经成为热点话题[2]。随着智能穿戴设备出现在市场上,人体行为数据有了大量的数据来源,基于多传感器采集人体行为的实时数据,并结合智能穿戴设备采集的心率、步数等不同的人体行为数据,对人的整体状态进行研究分析[3],不仅适用于负重步态的分析[4],更能融入智能家居、VR游戏[5]、健康监护[6]等众多领域。

本文设计并实现了基于惯性传感器的人体行为数据采集系统,通过将可穿戴传感器绑定在人体关键部位上,获取使用者行为数据,根据不同的采集需要,可以有针对性地挑选绑定的部位。本系统设备简单易用,方便获取和穿戴,成本低廉,同时有效降低了对人的隐私权侵入性,采集的数据信息还具有针对性,极大地利于后期的数据分析工作。

在国际研究领域中,HAR的主要目的在于通过传感器获取对应的数据并识别、分析人类的活动[7],现在前沿HAR技术包括三种模式:基于视觉、基于信号和基于传感器的分析模式[8]。其中,虽然基于视觉的模式显有成效,分析精准度高,但是缺陷很大,易被遮挡、对光照敏感,且容易泄露人员的隐私;
而基于信号的分析模式虽然能很好地保护隐私,但对环境噪声极其敏感,不适合人员密集的场景[9];
相较于以上两种模式,基于传感器的分析模式有着诸多优势,适应面更广。随着近十年微电子领域的攻坚克难,目前的传感器设备具有体积小、成本低、高度灵活、资源消耗少等特性[10],常应用于手机、汽车等行业,但也普遍存在着缺陷,如识别精准度低、稳定性和容错性不高等问题,而且大部分的研究方案都是基于理想环境下运行的,并没有考虑方案在实际中的应用情况。

2.1 系统分析

本文的基于惯性传感器的人体行为数据采集系统由数据采集平台和数据分析平台构成,整体系统分为四大块功能,即数据采集、数据发送、数据展示以及数据分析。其中数据采集功能为本系统核心部分,用户可以采集三轴加速度、三轴角速度等人体行为信息;
数据发送功能指系统把采集的行为数据通过网络发送到服务器,供后续的提取分析;
数据展示是将采集的行为数据以图表化或者数字化的形式直观地展示给用户;
不论人体进行平缓运动(如走路、上下楼、站立、坐下等行为活动),还是进行剧烈运动(如跑步、跳舞),本系统都能准确采集过程中的行为数据,并在这些数据的基础上获取所需的步态数据样本进行分析。

2.2 系统设计

2.2.1 整体架构

本系统数据采集平台分为传感器端、服务器端和数据库端三大部分,其结构如图1所示。用户将传感器绑定到身体特定关节点上,打开开关进行运动时的数据采集;
传感器端通过无线网络将采集的数据发送到服务器(测试时使用本地搭建的私有云服务器);
本地私有云服务器接收传感器端发送的数据,先转发到服务端的缓存数据库中,再存入持久化数据库中,最后通过网页进行数据展示。

图1 系统整体架构

2.2.2 服务器

服务器的硬件性能越高,系统运行越流畅。结合期望的功能、需求和已有物理设备,选择一台型号为FX86FE8300-1C8AXHA4X10的华硕牌笔记本电脑作为本系统的本地服务器:处理器型号为Intel(R) Core(TM) i5-8300H CPU;
基准速度为 2.30 GHz;
内核为4个;
机带RAM为8 GB;
有线网卡采用1 000 Mbps以太网卡。测试时使用本地服务器,实际部署时可以通过本地服务器、云服务器等作为系统服务器。

2.2.3 姿态传感器

姿态传感器通过内嵌的低消耗ARM处理器得到经过温度补偿的三维姿态和方位等数据,目前市场上常见的姿态检测传感器有MPU6050和MPU9250,两者参数对比如表1所示。

表1 姿态传感器对比

从表1中可以看出,MPU9250的供能电压相对较低,通信速率、输出速率比MPU6050高,模板尺寸比MPU6050小。经过对比,本系统选择姿态传感器MPU9250作为9轴运动姿态检测传感器,该传感器尺寸较小,解决了一般多传感器组合间轴间差的问题,同时在一定程度上降低了系统的能耗。从传输速率上,其通过集成电路总线接口I2C和单片机交互数据,传输速率高达400 kHZ/s。从测量准度上,陀螺仪的角速度测量范围高达±2 000°/s,动态测量精度高;
加速度计的范围测量范围达±16 g(g为重力加速度),静态测量精度高。同时,该传感器带有三轴磁场数据,不需要额外连接磁力计即可够获得九轴运动数据。

应当指出,即使姿态传感器的尺寸较小,物理设备固定在身体上总会对相关人员的运动造成一定的影响。同时,姿态传感器本身有一定的大小,因此,在小微动作(如采集用户敲击键盘时的手指动作)的场景下,使用姿态传感器进行行为数据采集会带来一定的误差,在这些场景下,使用其他无接触的采集方式(如视频采集)可以避免物理设备对相关人员的影响。

2.2.4 采集开发板

采集开发板选用ESP32嵌入式开发板及ESP32-WROVER-B模组,姿态传感器连接在采集开发板上,接收传感器采集的人体行为数据,通过采集开发板进行数据格式化、数据上传等操作。从集成度上,ESP32-WROVER-B模组集成了多IO接口、低功耗蓝牙和Wi-Fi,具有更广泛的用途;
从性能上,该模组具有双核处理器,数据发送频率高达240 MHZ、运算能力可达600 MIPS,足够适配系统数据采集的需求;
从Wi-Fi覆盖范围上,ESP32内置Wi-Fi模组支持的数据传输率高达150 Mbps,天线输出率达20 dBm,可以实现最大范围的无线通信;
从灵活性上,ESP32内置芯片的睡眠电流接近10 μA,对人体无伤害,适用于可穿戴的电子设备;
从自适应性上,ESP32芯片集成了先进的自校准电路,实现了动态自动调整,可以消除外部电路的缺陷,更好地适应外部环境的变化。因此ESP32在高集成度、无线传输距离、功耗及可穿戴性等方面都适合本系统。

2.2.5 软件设计方案

基于上述的硬件设计方案,结合系统需求,设计软件方案如图2所示,本系统软件设计方案包括系统环境、语言、协议三大方面。

图2 软件设计方案

系统环境选择基于Linux的Ubuntu发行版作为底层操作系统,相对于Windows系统,Linux系统更具拓展性、操作性和可开发性,便于系统的开发、调试和服务搭建。同时,使用Docker技术,通过编写脚本及配置文件实现服务的快速部署。

为实现对数据的持久化存储,使用MySQL作为持久化数据库服务,MySQL具有运行速度快、使用成本低、部署和使用较简单等优点,适合中小型场景中的数据存储,相比SQL Server、Oracle等数据库系统,MySQL更适合应用在本系统中。

另外,由于人体行为数据的数据量较大,对数据库的高并发请求会造成数据库系统的不稳定,甚至导致数据库服务的崩溃,所以添加缓存数据库增加MySQL数据库的读写能力,其结构如图3所示,传感器的数据先发送到缓存数据库进行暂存,再由缓存数据库同步到MySQL中;
数据展示、分析程序也是先从缓存数据库中查询想要的数据,如果没有找到,则再从MySQL中读取,并将数据写入缓存数据库中。通过在应用程序与MySQL数据库之间增加一个缓存层,提升系统的数据吞吐量,增强系统应对高并发场景的能力。

图3 缓存层设计

为保证数据安全,提高服务的高可用性,使用RAID技术提供底层的数据存储,使用数据库集群提供数据库服务,数据库的存储结构如图4所示,为保证数据安全,数据库容器中的数据保存在容器所在的宿主机中,通过绑定挂载映射到容器中供数据库服务使用。宿主机上的数据库数据存储在RAID磁盘阵列(级别5)中,使用3块磁盘组成RAID 5阵列,磁盘分为数据盘1、数据盘2、校验盘,数据以块的形式存储在数据盘1、数据盘2上,同时以数据盘1、数据盘2上的数据进行异或(XOR)运算,运算结果写入校验盘,3块磁盘轮流作为校验盘。当一块磁盘出现问题,替换新磁盘后,通过另外两块磁盘中的数据可以重建问题磁盘的数据,有效保证数据安全。

图4 数据存储结构

同时,数据库服务通过MyCAT、MySQL服务实现数据库的主从同步和读写分离,每个节点都是一个运行的容器。来自数据库客户端的数据库请求发送至MyCAT服务,如果是读请求,则请求被转发至从节点;
写请求则转发至主节点,主节点与从节点之间进行数据的同步,保证数据的一致性。当某一个数据库节点出现问题,MyCAT会将数据库请求转发至其他正常的节点,容器服务会尝试自动重启出现问题的数据库节点,并将数据绑定挂载到新启动的数据库节点中。

同时,为Docker服务创建一个守护进程,该进程会周期性检查Docker服务的状态,如果检测到Docker服务异常中止,则尝试重新启动Docker服务,如果多次启动仍不成功,则以短信、邮件等形式告知系统管理员。

2.3 系统实现

2.3.1 边缘端实现

边缘端由硬件和软件两部分组成,其架构如图5所示,边缘端硬件分为MPU9250姿态传感器、ESP32嵌入式开发板、18650锂电池和杜邦线四部分,姿态传感器MPU9250通过10~15 cm的杜邦线进行连接,VCC、GND、SCL、SDA四个接口依次与ESP32嵌入式开发板的3 V3、GND、22、21接口相焊接,以实现传感器和开发板间的物理通信。

图5 边缘端架构

ESP32-WROVER-B嵌入式开发板接收姿态传感器MPU9250采集并发送的人体行为数据,通过内置Wi-Fi模块再将数据转发至服务器。

2.3.2 服务器

系统的服务整体运行在Ubuntu系统内搭建的Docker容器中,通过打开特定的端口对外映射服务,开发板通过请求端口与对应的服务通信。系统的服务通过Docker Compose配置文件定义,在配置好Docker环境和Docker Compose环境后,通过docker-compose up-d即可启动服务。

服务器中主要运行两个后端程序,程序一的功能是读取缓存数据库中的数据并将之存入MySQL数据库中;
程序二的功能是启动一个Web服务,用户可以通过浏览器访问该Web服务对应端口,可视化查看人体行为数据。

2.3.3 数据库端

本系统的数据库运行在Docker容器中,数据库容器通过3306端口映射至服务器。使用Redis作为缓存数据库,通过拉取Redis镜像进行搭建,并映射6379端口进行数据接收。

此外,本系统选用的ESP32开发板的主频是240 MHZ,其中一组数据中包含9个采样数据(即ax、ay、az、gx、gy、gz、mx、my、mz),由于网络传输速率的限制,采集一组数据后立即发送是不可行的,所以本系统每隔20组发送一次数据;
同时,为了保证数据的时序性,在每一组发送的数据里插入一个时间戳数据。

传输的数据以20个采样信息为一组,每个采样信息包括9个采样数据和采样时的时间戳,使用JSON语法进行格式化,在数据传输过程中,考虑数据传输性能,使用gzip压缩算法对数据进行压缩,数据的一个示例如下,示例中仅展示第一个和最后一个采样信息:

"[{"ax":-0.019019, "ay": 0.085654, "az":-1.03575, "gx":-15.5659, "gy":-36.1782, "gz":-12.3673, "mx":-36.5582, "my": 103.521, "mz":-45.0309, "timestamp": 1635290692130}, …, {"ax": 0.352081, "ay":-0.30842, "az":-1.04983, "gx": 10.0613, "gy": 38.1485, "gz": 22.4548, "mx":-19.1749, "my": 93.1781, "mz":-55.3897, "timestamp": 1635290694030}]"

在创建使用Redis容器时要考虑,Redis不仅可作为缓存服务器,还可用于消息队列,因为其本身的列表使用双向链表实现的,保存了头尾节点,因此在列表头尾插入元素的效率较高,可以直接作为消息队列。同时,Redis还提供了发布/订阅的指令,可以实现消息传输和进程间的通信。因此,当系统需要查询数据时,先到Redis缓存中查看,如果数据未找到,再到MySQL中查看,同时将查到的数据更新到Redis缓存中。

在接收人体行为数据时,系统会以一定的速率将格式化后的数据并行插入数据库中,只要保证数据库服务的稳定性和本地私有云服务器的硬件性能达到标准,就不会出现数据堵塞。

2.3.4 数据可视化

数据展示是动态的过程,系统使用数据队列模式维护需要展示的数据,当有新的数据发来时,如果数据队列已满,则旧的数据会被丢弃,新的数据填充在队列中,用来实现数据的动态变化。本系统采用HTML、CSS、JavaScript编写前端界面,同时,使用Echarts进行数据的可视化,其遵循Apache-2.0开源协议,免费使用,且兼容当前绝大部分浏览器,能满足数据展示的功能需求,从官网下载安装完成之后,通过标签的方式直接引入构建好的Echarts文件中。

3.1 系统运行

首先将系统各端全部启动,然后将一个传感器穿戴在身体关节点上,打开传感器的开关,进行实际运动实验,在Ubuntu系统中运行对应的程序文件,连接登入MySQL数据库,查看数据库中确实插入了多条人体行为的数据,数据库的信息如图6所示。

图6 数据库信息

然后打开数据可视化仪表盘,可以查看对应的人体行为数据,证明数据从传感器端到私有云服务器最后到数据库端成功传输,系统已完整运行,数据可视化仪表盘的页面如图7所示。

图7 数据可视化仪表盘页面

3.2 可靠性测试

假如在实际采集行为数据时,发生断电、断网的意外情况,能否将已经采集的人体行为数据进行发送,是衡量本系统可靠性的重要指标。针对这一指标开展性能测试,受试者在右小腿部位正常穿戴一个惯性传感器,进行走路的行为模式,运行脚本文件,系统正常启动,在数据可视化界面中发现可以正常采集和发送数据,等待10秒钟后,将路由器电源断开,传感器已将10秒钟内采集的数据全部发送至数据库中,但由于没有网络,不再采集数据也无法发送数据,随后将路由器接入电源,在数据可视化界面又能看到正常采集和发送数据,则说明本采集系统的可靠性高。

3.3 采集频率测试

如果不进行通信,每个传感器自身可以每秒采集300组数据。如果一边采集一边发送,经过行走测试发现:如果只穿戴一个传感器,发现数据库中1秒大约接收105条数据、5秒约接收550条、10秒约接收1 100条、50秒约接收5 600条,因此一个传感器可以大约采集并发送120组数据;
如果穿戴两个传感器进行活动,5秒内共采集并发送大约580组数据,因此穿戴两个传感器一秒钟采集的频率为115组/s;
同理,穿戴三个传感器进行活动,采集频率约为110组/s;
穿戴四个传感器进行活动,采集频率约为103组/s;
穿戴五个传感器进行活动,采集频率约为100组/s;
穿戴六个传感器进行活动,此时采集频率约为80组/s,频率降低,因此本系统最多只能穿戴5个传感器,否则将会导致数据通信的堵塞。

3.4 采集系统续航测试

本系统所选择的电源为18 650锂电池,为测试系统续航情况,通过模拟走路、跳舞等活动,使系统不间断采集并发送数据。测试结果发现,一节18 650锂电池可以为本采集系统连续供电约70小时,能满足基本的采集需求。

3.5 压缩性能测试

以一组数据(20次采样信息)为样本,测试压缩算法的性能,压缩前后的数据对比如图8 所示,经过测试,数据压缩前大小为3 504 bytes,压缩后,数据的大小为1 066 bytes,压缩时间耗时0.012 49 秒,压缩率为30.42%。

图8 一组数据压缩对比

本文对基于传感器的人体行为采数据集技术进行研究,同时搭建独特的基于惯性传感器的人体行为数据采集系统,该系统可以完成对人体行为数据的采集、发送、存储和展示。本系统使用低成本设备,减小采集设备体积和重量,提高采集精度,使用服务端存储和处理方式,降低硬件成本,提高采集性能,使用应用层与数据库之间增加缓存层的设计,提高系统的吞吐量,减轻服务器的负载。通过测试,本系统可以连续采集人体行为数据并实时显示,系统的稳定性、可靠性较高,可以为医疗监护、运动健康监测、康复医疗等应用场景提供数据支撑。

猜你喜欢开发板服务器人体人体“修补匠”小哥白尼(趣味科学)(2022年1期)2022-04-26人体冷知识(一)大科技·百科新说(2021年10期)2021-12-31服务器组功能的使用网络安全和信息化(2020年9期)2020-12-31基于STM32H7的FDCAN通信系统设计与实现∗舰船电子工程(2020年5期)2020-07-09通信控制服务器(CCS)维护终端的设计与实现铁道通信信号(2019年9期)2019-11-25PowerTCP Server Tool网络安全和信息化(2019年8期)2019-08-28人体可笑堂小猕猴学习画刊·下半月(2019年6期)2019-08-13浅析单片机开发板的设计与制作电子制作(2017年22期)2017-02-02计算机网络安全服务器入侵与防御网络空间安全(2016年3期)2016-06-15ARM宣布mbed Enabled Freescale FRDM—K64F开发板通过微软认证物联网技术(2015年11期)2015-11-26

推荐访问:惯性 传感器 采集系统

版权所有:天海范文网 2010-2024 未经授权禁止复制或建立镜像[天海范文网]所有资源完全免费共享

Powered by 天海范文网 © All Rights Reserved.。鲁ICP备10209932号