基于LabVIEW的智能腕表监测系统设计
2018-01-12
(武汉科技大学 信息科学与工程学院,武汉 430081)
据统计,目前我国60岁以上人口占总人口的13.5%,在今后较长的一段时期内,老年人口将以年均约3%的速度增长。从2001年~2020年,预计平均每年将有596万人进入老龄群体,到2050年我国老龄化将达到顶峰。这意味着老年人的身体健康问题将成为社会重点关注的热点[1]。
随着互联网技术的高速发展,智能腕表设备层出不穷,如 iwatch,小米watch,华为 watch等,这类腕表既具有手机通讯功能,同时兼具心率监测、运动监测或睡眠监测等功能,在青年人群中广受喜爱。然而,由于其操作的复杂性和健康数据的单一性,难以在老年群体中普及。
本文所涉及的智能腕表是专门针对老年群体而自主开发的,它兼具了定位、紧急通讯、脉搏监测、心电监测、预警等功能,并且可与电脑端进行通讯,能够将腕表采集的用户健康数据实时上传到电脑端,供远程专家深入分析和诊断,同时可以根据健康状况对家属和用户本人进行紧急通讯。
腕表经用户实名授权后,无需任何操作即可读取腕表用户的实时健康数据、实时位置、用户基本资料及病史等;可并行传输多个用户的数据并自动根据预警程度进行先后诊断。该系统可为老年人身体健康状态监测提供有效的分析工具和诊断依据。
1 系统软件设计
1.1 系统的功能及流程
老年群体健康监测智能腕表,可将用户实名注册信息和授权的健康数据直接传输到云服务器中,电脑端可通过访问云服务器获取腕表用户的基本信息和健康数据,同时也可将专家诊断信息上传至云服务器中以供下次诊断参考。系统的主要功能包括五大模块:
腕表用户数据的实时获取远程专家诊断,需要依赖大量的历史健康数据和当前健康数据。由于云端服务器数据是根据腕表用户上传数据实时更新的,为避免数据的重复读取和遗漏,本系统每间隔一定时间对服务器数据进行扫描和判别,只读取更新后的数据。并根据自动报警信号和用户主动请求信号,将数据分为两大类:后台数据和前端数据。后台数据为未报警且用户未主动请求诊断的腕表数据,该类数据通过指定的参数计算后直接保存至历史数据中;前端数据为自动报警或用户主动请求诊断的腕表数据,该类数据将直接下载至电脑端并自动加载至系统主界面中。
多用户时的优先级判断随着腕表用户的增加,数据的多线程处理势必受到制约,因此需要对数据进行优先级判断,并按照优先级的顺序依次对用户数据进行处理。数据按照优先级高低主要分为4级:I报警且用户请求的数据;II报警数据;III未报警用户请求的数据;IV未报警用户未请求的数据。报警的阈值根据脉搏、心电信号计算而得的幅值和脉率、心率等综合考虑设置。
基于脉搏、心电信号的基本参数计算主要用于计算脉率、心率、最大幅值、最小幅值、平均幅值等指标,可为用户数据进行初步的健康状况筛选和提供历史参考[2-4]。
历史数据查询功能主要包括历史波形数据和历史病例数据查询,为专家的精准诊断提供连续有效的数据。
腕表用户定位功能主要是针对老年人突发疾病或走失而设计的,通过腕表GPS模块上传的经纬度信息,可调用地图显示用户的当前位置,为快速寻找腕表用户提供有效途径。
由这五大模块构成的电脑端系统流程如图1所示。
图1 系统流程Fig.1 System flow chart
如图可见,系统会实时自动扫描云端服务器数据,并根据优先级对数据进行归类和分析,对用户主动请求诊断和健康状况报警用户数据会进一步提交给专家进行诊断,并及时将当前诊断信息和定位信息反馈给家属及用户本人,避免突发疾病和耽误病情治疗。
采用了LabVIEW平台进行系统开发,整体框架采用生产者-消费者框架模式,其优势在于生成数据和下载数据独立进行,避免了下载数据速度低于生成数据速度而导致的数据流失[5-6]。
1.2 实时数据更新模块设计
云端服务器实时存储的用户数据是以一定规则编码后存储的,调用时需要解码再将数据转换成.txt格式的文本文件存储在本地电脑中。主要有以下3个步骤:扫描服务器列出未解码的用户数据文件名;对用户数据文件进行解码;将解码后文件转换成.txt格式并保存至本地计算机。解析云服务器用户数据文件流程如图2所示。
图2 解析云服务器用户数据文件流程Fig.2 Analysis cloud server user data file flow chart
1.3 历史数据和基本信息查询模块设计
经过优先级判断划分的前端数据以小波形窗的形式呈现在电脑端系统主界面中,诊断医生可根据概况打开需要查看的数据。在数据打开的同时,后台将自动调用该用户注册时预留的基本信息和历史数据,供诊断医生参考。历史数据和基本信息查询模块,主要通过腕表ID在用户基本信息文件夹和用户数据文件夹中搜索对应的文件和数据。
1.4 定位模块设计
当出现紧急病情时,专家会紧急联系用户家属通知病情,为避免无法联系用户本人,需要根据腕表实时上传的经纬度信息定位其所在位置。该模块通过调用百度地图静态地图API,并根据实际需求调整缩放系数进行精准定位。定位模块主要通过用户经纬度信息和调整的缩放系数显示用户当前位置。
2 基于击中击不中算法的脉搏波识别技术
采集的脉搏波形需要通过一定的算法得到所需的脉率、幅值等信息,尽管脉搏波的特征比较明显,但是在外界噪声的干扰下,仅通过设置幅值的阈值来计算脉率仍有不足之处。利用形态学中的击中击不中变换,可以准确识别出脉搏波中的冲击部分,从而准确计算出脉率和对应的幅值。
2.1 击中击不中变换原理
击中击不中变换是数学形态学识别的一个重要方法,对特定形状图像的识别非常实用。该方法在一次变换的同时能够获得图像的内外标记。定义A被B击中击不中,则用符号A⊗B表示,其中,B为结构元素对 B=(B1,B2),而不是单个元素,其中一个检测图像内部,另一个检测图像外部[7]。即:
式中:AC为A的补集;Θ为形态腐蚀运算。因此,当且仅当B1平移到某点可击中A的内部,B2平移到该点可击中A的外部时,该点才为击中击不中变换的输出,图像A和结构元素对(B1,B2)如图3所示。根据式(1),图像A左边的阴影部分既被B1击中,其外部(补集)又被B2击中。因此,该部分符合输出范围,而右边的阴影部分则不符合。图4所示为图像A击中击不中变换的结果[8]。
图3 图像A和结构元素对(B1,B2)Fig.3 Image A and structural elements pair(B1,B2)
图4 图像A击中击不中变换的结果Fig.4 Image A hit-miss transform results
2.2 结构元素选取
针对脉搏波形的脉冲形状类似于三角波,结构元素的选择可采用三角形。图5(a)为结构元素对(B1,B2),图 5(b)为脉搏信号击中击不中变换结果。
图5 结构元素和待分析脉搏波Fig.5 Structural elements and to be analysed pulse wave
通过平移图5(a)所示的结构元素对可实现对指定形状的脉搏信号进行识别,而结构元素对的幅值差可直接影响其对噪声的容纳程度,幅值差越大,对噪声容纳程度越大,适用于低信噪比的脉搏波;幅值差越小,对噪声容纳程度越低,适用于识别指定要求的脉搏波。被图5(a)所示结构元素对波形卡住的脉冲即为结构元素对(B1,B2)击中击不中变换后的输出脉冲,即有效脉搏信号;反之,则为噪声信号。
3 系统测试结果
图6所示为系统主界面。主界面左边是数据待分析区,可以同时呈现8个腕表用户的脉搏波形简图,按照优先级的先后进行排列;主界面右边包含有位置、用户基本信息、脉搏/心电图、初步诊断、专家诊断等信息,诊断医生选择左边的脉搏小波形图,即可调出该用户的历史所有数据和个人基本信息显示在该区域。
图6 系统主界面Fig.6 Main interface of system
通过对系统数据导出测试、优先级测试、基本信息和历史数据调出测试和诊断信息更新测试,均达到预定要求。且基于击中击不中变换的脉搏波识别技术输出的脉率与专业医生通过波形给出的结论完全一致。
4 结语
基于LabVIEW的智能腕表监测系统,通过间隔性扫描云服务器实时存储的腕表用户数据,并将数据按优先级分类,将优先级高的数据归类为前端数据供诊断医生进一步深入诊断。基于该系统的定位、历史数据和专家诊断意见等功能,可实现对老年群体健康状态的实时监控,尽可能减小突发疾病发生的几率和突发疾病时无人知晓的危险。经过试验证明,该系统界面友好、操作简单、数据存取便捷,稳定性强。
[1]王奇武,周凤星.可穿戴式无线脉搏监测系统前端设计[J].计算机测量与控制,2014,22(10):3135-3137.
[2]韩君.基于LabVIEW的脉搏信号检测系统[J].微计算机信息,2011,27(5):58-59.
[3]兰羽.基于HK-2000A传感器的脉搏测量系统设计[J].自动化技术与应用,2013,32(9):118-120.
[4]侯海良,成运,陈洁.便携式远程脉搏采集系统的设计[J].计算机测量与控制,2012,20(2):544-547.
[5]来鑫,陈辛波,方淑德.基于LabVIEW的双横臂独立悬架运动特性测试系统[J].仪表技术与传感器,2016,53(7):64-67.
[6]Bishop R H.Learning with LabVIEW 7 Express[M].Pearson Education,2005.
[7]范新南,郭建甲,苏丽媛.基于数学形态学的数字仪表数码识别快速算法[J].计算机测量与控制,2006,14(11):1589-1590.
[8]王军敏,卞和营.基于直方图调整和击中击不中变换的弱小目标检测[J].光电工程,2013,40(6):26-30.