面向移动智能终端的人体心率监护系统设计与实现

2019-12-02 07:13琪1林增刚1郭阳明1孔德岐
计算机测量与控制 2019年11期
关键词:监护心率样本

魏 琪1,林增刚1,郭阳明1,孔德岐,张 双

(1.西北工业大学 计算机学院,西安 710072;2.航空工业西安航空计算技术研究所,西安 710068)

0 引言

随着医学的发展,医疗模式已经从传统的以发现病症再治疗为中心逐渐转变为预防、早诊、早治的模式。通过对采集的生理信息进行分析,可以详细了解人体健康状况,提前发现潜伏期的病发症,从而达到疾病预防和医疗保健的目的[1]。当前,心脏病已经成为威胁人类生命的主要因素之一,持续监护人体心脏功能,防止心脏疾病突发变得越发重要。因而,具有心脏监护功能的系统受到人们的广泛关注[2]。

目前,国内外众多研究团队提出了基于移动智能终端的人体心脏监护解决方案。如,Richer等人[3]提出了基于Android手机的心率反馈系统,并将其与Android wear相结合,取得了较大的用户满意度;Yen等人[4]、Makki等人[5]提出了基于心电异常检测的心电图分析方法;Gradl等人[6]提出一种基于Android移动设备的实时心电监测和心率异常检测算法;Hasan等人[7]提出了远程血压监测系统;Boudra等人[8]借助Android和Java技术开发了基于传感器和无线传感器网络的智能医疗监控系统。但这些现有的研究基本上都是围绕算法的开发,并且侧重点都是对当前时刻人体健康状况的评估,对用户未来的身体状况不具有预测和指导功能。

为此,针对现有人体心脏监护研究存在的问题,为有效预防突发心脏病带来的风险,本文选用随机森林预测模型,设计了一款在日常生活中可用的新型心率监护系统。该系统具有人体心电信号采集、心率异常检测、实时心率显示以及未来心率状态预测功能,能为用户提供有效的心率预测和健康指导,降低了心脏病带给用户的危害。

1 系统架构及原理

针对心率采集设备对电池续航、空间体积及检测精度的严格要求,设计低时延、高精度、交互友好的心率监护系统由心率采集模块、数据传输模块和Heart软件三部分组成。系统的总体架构设计如图1所示。

图1 心率监护系统总体架构

图1中,心率采集模块由心率传感器Pulse Sensor以及STM32核心板组成,佩戴于人体的Pulse Sensor采集到心率脉冲信号,通过STM32进行模数转换和降噪处理得到精确的心率值;数据传输模块采用当前流行的蓝牙低功耗传输模式[9],选取设备HC-05蓝牙模块与智能手机之间进行数据交互,数据传输速率可达2Mbps;Heart是基于Android平台开发的一款人机交互软件,该软件包括异常心率检测、心率预测和实时显示3个功能模块。

2 系统硬件设计

本文设计的硬件平台主要包含心率传感器Pulse Sensor、STM32核心开发板和HC-05模块3个组件。其中,STM32为控制核心,控制传感器实时采集人体心率信号,经过信号分析处理,由蓝牙模块将心率数据传输至移动端与用户进行交互。心率监护系统硬件平台完成的功能有,心电信号采集、信号处理以及数据传输,其总体架构如图2所示。

图2 系统硬件平台架构

2.1 心电信号采集

在对心率测量方法研究中发现,传统的测量方法会限制人体的活动,若长时间使用会增加用户生理和心理上的不适感。这对于心率监护系统来说,极大地影响了其应用效果,降低了系统可靠性。

为方便采集人体心电信号,增加硬件平台的续航能力和采集数据的真实性,本系统采用光电容积法进行脉搏测量,选用体积小,功耗低的心率传感器Pulse Sensor对心电信号进行采集,其基本原理是利用人体组织在血管搏动时所造成透光率的不同来采集心电信号。将传感器佩戴于手部,可完成心电信号的采集。Pulse Sensor内部结构如图3所示。

图3 Pulse Sensor内部结构

2.2 心电信号处理

利用心率传感器Pulse Sensor采集的人体心电信号是模拟信号,在原始信号中存在重搏波,会对心率统计产生较大的噪声干扰,如图4所示。因此,需要对原始信号进行降噪、模数转换和统计计算等处理过程,从而使统计结果更为准确。为此,本文结合STM32核心板低功耗、体积小和强抗干扰的特性,将STM32作为系统主控制器,接收Pulse Sensor采集到的心电信号并完成信号的处理。

图4 心电信号

首先STM32通过ADC单元采集传感器输出的脉搏模拟信号,根据心跳特性将采样率设为500 Hz。然后追踪脉搏波的上升,为使心跳检测更为精确,本系统每隔0.6个IBI(两次心跳时间间隔)才开始追踪脉搏信号,从而避开了重搏波的峰值。最后,考虑到突发干扰信号影响,心率计算根据脉搏波上升段的中间值之差来确定IBI数值,并将连续获得的10次IBI值进行平均,利用该均值来计算实际心率。假设当前心率为n,则心率计算公式如下:

(1)

STM32处理得到精确的心率数据,通过搭载的HC-05蓝牙模块传输至Android端的Heart软件,为心率异常检测和预测提供数据支持。

3 系统软件设计

3.1 心率异常检测

统计结果表明,在静息状态和运动状态下的正常心率范围各不相同,且范围幅值也参差不齐[10]。本系统为满足用户对于心率异常检测准确性的需求,对用户进行为期一周的心率数据建模,在建模过程中,系统会根据所统计用户每一时段内的运动步数,将静息与运动两种状态下的心率模型进行区分,以提高异常检测的精度。

采用心率数据建模的方式,能够得到正常心率范围的衡量标准,但是模型建立的准确性问题也是需要解决的一个难点,为防止在建模过程中某一时刻的异常心率被当作有效数据记录,用户可随时中止数据建模过程,并将异常时段数据从记录中删除,从而保证模型的准确性。

由于人体心率容易受到情绪、饮食等众多因素的影响,为了避免外界因素带来的异常检测错误,本文结合医学上对于心脏骤停期的分析[11-12],设计了如下异常检测策略,其伪代码如表1所示。

表1 心率异常检测策略

(1)系统对接收到的心率值进行判断,若超出正常阈值则对异常信号进行累加并执行(2),否则重置异常信号,继续执行(1);

(2)检测异常信号是否达到预先设定的门限值,若达到则执行(3),否则执行(1);

(3)系统发出预警信号,提示用户采取心肺复苏措施,并立即向预先设定的联系人发出求救信息,执行(4);

(4)重置异常信号,继续执行(1)。

3.2 心率预测

利用机器学习中的预测算法可以对心率进行预测,进而为用户提供正确的健康指导,避免突发心脏病带来的风险。然而,不同的预测模型在进行模型训练时,会存在如下问题[13-14]:(1)对训练集进行学习的过程中,计算成本大,内存占用高;(2)模型泛化能力较弱,对新加入样本不具有很强的适应能力,预测精度低;(3)存在过拟合及欠拟合现象。因此,对于不同的应用场景,预测模型的选择至关重要。

为此,为了实现心率预测的准确性和高效性,本文结合心率样本数据的特性,选择基于随机森林的心率预测模型。该模型的基本思想是:从训练样本中随机选取部分特征来构建独立的回归树,然后重复这个过程,且保证每次都是等概率地抽取特征,直到构建了足够多且相互独立的树,将所有回归树的预测结果求均值得到最终的心率预测结果[15-16]。随机森林心率预测模型实现步骤如下:

(1)从本系统的SQLite数据库中收集用户历史数据构成样本集;

(2)利用Bootstrap自助采样方法从原始心率样本集中所有n个样本中抽取k(k

(3)重复步骤2,产生T个训练集,用于构建T棵回归树,组成一片“森林”。回归树生长过程中,在每个非叶子节点进行分支前,选择全部p个属性中的m(m

(4)每棵树都完全生长,直到叶子节点;

(5)利用“森林”中每棵回归树对测试样本进行测试,得到N个对应的预测结果,所有预测结果取均值即为最终的预测结果。

本文采用的随机森林预测模型,利用Bootstrap抽样得到不同的样本集分别构建回归树模型,增加了模型间的差异,从而提高了模型的外推预测能力。

3.3 数据可视化

为了满足用户对于系统高响应、低时延、操作便捷的要求,本系统可视化功能基于Android SDK 8.1开发实现。该系统提供了友好的用户交互功能,能够为用户提供直观的心率变化状态以及正确的健康指导。本文列出了部分功能模块的截图,如图5所示。

蓝牙连接完成Heart软件与下位机间通信链路的建立;联系人设置需要用户指定至少一个联系人作为心率异常时的求助对象;心率显示可以从数据库中读取当前时刻的心率进行显示,并对心脏跳动波形进行了模拟仿真;心率历史变化通过统计用户每小时的平均心率,利用MPAndroidChart绘制出心率变化图,使用户更加直观的了解24小时内自身心率的变化情况。

图5 心率监护系统功能图

自左向右依次为:主菜单;蓝牙连接界面;联系人设置界面;心率显示界面;心率历史状态变化界面

4 实验结果与分析

4.1 心率测量准确性分析

为了验证本系统人体心率测量的准确性和实用性,将心率监护系统与智能穿戴中的光学心率传感器进行了对比实验。实验分为5个不同时段进行,每个时段连续采集10组心率数据,共计50组。从图6的实验结果可知,本系统心率测量结果与光学心率传感器保持了较高的契合度。

采用均方误差MSE作为本系统心率测量准确度的量化评估依据,定义为:

(2)

式中,fi为心率监护系统的测量值,为光学心率传感器的测量值,n取50。经计算,本系统与光学心率传感器两组测量结果的均方误差仅为17.56。由此可见,本系统作为心率测量具有一定的实用价值。

图6 心率测量准确性评估

4.2 心率预测准确性分析

心率预测实验选取用户SQLite数据库8天的心率值、步行数、同时段最高和最低心率等数据共计1 152条作为样本,采集的时间间隔为1次/10 min。选取样本集的97%作为训练集,3%作为测试集。为使心率预测模型简单高效,且具有较高的精确度,子树的数量选择为100,树的深度不做限制。实验结果如图7所示。

图7 心率预测结果

由图7可以看出,本系统很好的拟合了心率数据的周期性,准确地判断出了心率数据起伏趋势。

采用均方误差MSE和决定系数R2两个指标作为模型预测性能量化评估的依据,分别定义为:

(3)

(4)

5 结束语

本文设计并开发了一款基于Android平台的新型人体心率监护系统,该系统在移动终端为用户提供了友好的交互功能,使用户在日常生活中即可随时随地了解自身的心脏健康状况。针对突发心脏疾病带来的风险,该系统结合了医学上关于心脏骤停期的分析研究,提出了心率异常检测策略,当系统检测到异常发生时会向紧急联系人发送求救信号,以避免意外的发生。此外,该系统选用随机森林的心率预测模型对用户心率变化状态进行预测,利用sklearn框架进行算法仿真,模型预测准确度达到86.67%。因此,该系统对人体健康管理具有指导意义,满足了用户当前的需求。后续的工作中将在实时性方面做进一步完善,同时加入陀螺仪等传感器,对人体行为特征进行识别,进一步提高模型的预测精度。

猜你喜欢
监护心率样本
心率多少才健康
护娃成长尽责监护 有法相伴安全为重
用样本估计总体复习点拨
离心率
我国成年监护制度之探讨与展望
规划·样本
探索圆锥曲线离心率的求解
随机微分方程的样本Lyapunov二次型估计
神奇的太阳
“官员写作”的四个样本