APP下载

基于深度学习的心律失常分类系统设计

2023-02-12张鞠成王志康蒋明峰

软件工程 2023年2期
关键词:心电云端服务器

吕 杭,李 杨,张鞠成,王志康,蒋明峰

(1.浙江理工大学计算机科学与技术学院,浙江 杭州 310018;2.浙江大学医学院附属第二医院,浙江 杭州 310009)

1 引言(Introduction)

随着社会的发展,人口老龄化问题越来越突出,我国普通民众面临的健康压力空前巨大。我国60 岁及以上的老年人口将从2010 年的1.68 亿(占总人口的12.4%)增长到2040 年的4.02 亿(占总人口的28%)[1],尤其需要关注的是我国将在2050 年进入深度老龄化社会[2]。而老年人是心血管疾病的潜在人群,心血管疾病已成为目前全球非传染性疾病的主要致死风险[3]。心血管疾病主要表现为心律失常,具有隐蔽、突发、致死率高等特点。心电图(Electrocardiogram,ECG)的日常监测是诊断心血管疾病一个有效的方法,因此长时间的心电监护对尽早发现心血管疾病具有重要的研究意义[4]。

随着科技的迅猛发展[5],人工智能和ECG大数据结合的智慧医疗应运而生,它借助穿戴式心电采集设备,使实时监测和分析ECG数据成为可能[6]。同时,随着传输技术的日益成熟,将移动终端应用于人体健康监护悄然兴起。

AXISA等[7]提出了一种能实时监护人群健康状态的Web服务平台雏形,该平台通过穿戴式设备实时采集脑电信号、心电信号等反映人体状态的数据,同时借助移动终端实现体征信息的显示、分析和存储,并能上传数据到监护中心,实现对人群的身体风险筛查和健康管理。胡文博[8]将训练好的深度学习模型部署到Web平台中,构建了Restful(基于HTTP协议的网络应用程序设计格式的Web服务)标准的应用编程接口,通过对接ECG采集设备,结合心电图R波识别、ECG预处理、ECG分类等算法模块,提供心电诊断功能。MAJUMDER等[9]提出基于电容耦合电极的可穿戴无线心电监护系统,该系统可以透过人体身上不同类型的纺织材料,在身体运动的情况下完成心电图数据采集。

针对长时间的心电监护,开发一个基于深度学习方法实现心律失常实时监测、智能诊断的系统。系统通过Django(由Python写成的开放源代码Web应用)框架开发,同时使用MySQL数据库和Nginx部署在阿里云服务器上。该系统首先通过硬件传感器采集ECG心电信号,其次对数据进行预处理、特征提取,最后通过训练好的深度学习网络模型实现了ECG心律失常的自动诊断和实时动态心电数据监测。

2 系统设计(System design)

2.1 系统总体架构

系统架构如图1所示,主要分为硬件采集端、移动端和云端服务器三个部分。硬件采集端主要负责采集ECG数据;移动端包括手机App软件和PC(个人计算机),主要负责上传数据和可视化实时监护及管理用户数据。

图1 系统架构Fig.1 System architecture

系统运作流程为心电数据采集设备采集数据上传到移动端,移动端可视化数据并上传到云端服务器,云端服务器处理数据,然后调用部署的深度学习模型,将模型的输出生成检查报告反馈给移动端。

本系统的ECG数据上传到云端服务器主要有两个方法:通过蓝牙将ECG数据传到手机App,然后上传到云端服务器;将采集设备存储模块存储的数据直接导入PC端,然后上传到云端服务器。前面的方法适用于手机,而后面的方法适用于管理员,通过PC端后台管理系统直接上传数据到云端服务器。

2.2 云端服务器

随着云计算技术的快速进步,以阿里云、华为云为代表的公司纷纷推出自己的云服务器,方便用户开发,不再需要购买昂贵的服务器硬件设备,也不需要安装操作系统及搭建开发环境,只需在云服务器进行简单操作就能快速搭建适合自己的应用开发环境。本系统的云端服务器是使用阿里云的ECS轻量服务器,足以支持系统目前的访问量[10]。

云服务器处理数据流程如图2所示,用户将训练好的模型文件部署到云端后,系统即可工作。在确定该用户有ECG数据后,首先进入数据预处理阶段,包括对ECG数据进行去噪和分割,得到统计学上的信息;然后将预处理后的数据输入深度学习模型,模型会输出每个心拍的预测标签,即诊断结果。

图2 云服务器Fig.2 Cloud server

2.3 深度学习模型设计

心律失常分类系统的诊断性能主要取决于深度学习模型的性能。一般来说,深度神经网络层数越深,网络模型准确度越高,但是对资源的要求也更高。所以,研究人员根据识别心律失常种类的要求,提前训练符合要求的深度学习模型。云端服务器不训练模型,只运行训练好的模型,可以节省大量服务器资源。

云端平台存放的深度学习模型,是根据文献[11]中提出的方法训练模型,该模型是基于目前权威的深度残差网络构建的[12],网络结构如图3所示,该架构中主要有16 个残差块[13]。为了进一步提升网络性能,研究人员在残差块中构建了批归一化、激活函数及随机权重丢弃层。

图3 深度学习模型结构[11]Fig.3 Structure of deep learning model

本文采用2017心脏病学挑战赛(The physionet computing in cardiology challenge 2017,CinC2017)提供的数据对模型进行训练、测试;该数据集包含正常心律、房颤心律、其他和噪声四类ECG数据;该数据集总共有8,528 条单导联ECG记录,每条记录长度在9—61 s,采样频率为300 Hz。

2.4 云端管理系统设计

管理系统基于Django框架[14]开发,系统总体功能结构如图4所示。系统功能主要包含ECG诊断、诊断信息管理和用户管理等。

图4 系统总体功能结构Fig.4 Overall functional structure of the system

(1)ECG诊断。诊断ECG数据为本系统的核心功能,负责为用户提供实时心电图诊断服务。用户通过移动端向系统发送请求,系统收到请求后,接收数据、处理数据后调用ECG深度学习模型进行自动分类,并将分类结果返回。移动端经过可视化处理生成报告呈现给用户,报告包含诊断结果、心电图、心拍数、RR间期、心率变异性(HRV)等心电指标信息。

(2)诊断信息管理。医生和系统管理员可以查看诊断信息,但是操作权限不同,医生可以查看自己的诊断信息和删除自己的诊断信息;系统管理员能查看所有医生的诊断信息,也能删除本账户中任何一条诊断信息。诊断信息主要包含医生上传的数据,例如医生上传的心电原始数据、采样率等信息,也包含ECG诊断结果,例如心拍的分类结果和诊断报告等。

(3)用户管理。用户管理主要是对用户信息的“增、删、改、查”操作。在本系统中,用户分为Admin(系统管理员)和User(医生)两种角色。系统管理员拥有对所有用户“增、删、改、查”的权限,医生只能修改自己的信息,但是不能修改自己的用户名。系统管理员可以修改所有医生的密码而无须医生设定的当前密码,医生修改自己的密码时需要提供当前密码及新密码。

Django框架对数据库有比较好的封装,通过对象关系映射(Object_Relational Mapping,ORM)绑定数据模型与数据库表。在Django框架中,User表继承于Django的AbstractUser类,针对系统需求对用户表进行自定义设计。本系统在model层设计3 个表,分别是用户表、患者信息表和心电数据表。根据这几个主要模型,创建实体关系图(Entity Relationship Diagram),用于表示各个模型之间的关系,如图5所示。

图5 数据模型ER图Fig.5 ER diagram of data model

3 系统实现(System implementation)

3.1 云端管理系统的实现

管理系统实现如下功能:(1)用户注册登录;(2)管理移动端用户;(3)管理移动端ECG数据;(4)诊断心律失常;(5)生成诊断报告;(6)自动收集存储ECG数据,为优化深度学习模型提供数据。

管理系统登录页面如图6所示,管理员通过手机号或电子邮箱注册,注册后即可登录,同时具备查看用户信息及管理该账号下的移动端信息。登录后显示的页面如图7所示,该界面可以查看移动端的心电记录,可以管理移动端用户。管理用户界面如图8所示,可以选择添加用户或者退出编辑返回图7的界面。进入某用户信息界面中,可以查看该用户上传的所有ECG记录和对应的分析结果,若有未分析的ECG数据,也可以手动激活深度学习模型进行分析,如图9所示。在用户信息界面中,可以对该用户的数据进行管理,包括增加、修改和删除信息,如果想查看某一段心电记录经过深度学习模型分析的结果,也是从该页面跳转。如图10所示为深度学习模型分析的结果以及根据心电数据绘制的心电图,数据以单个心拍为单位,不同颜色的心电图表示深度学习模型对单个心拍预测的结果,例如黑色的心率变化曲线是表示心率正常。诊断报告页面如图11所示,包含ECG时长、心拍总数、平均心率和RR间期等特征,还包含深度学习模型预测的心率失常结果,图11中的“Normal”表示心率正常。

图6 管理系统登录页面Fig.6 The login page of management system

图7 手机App用户信息界面Fig.7 User information page of mobile App

图8 管理App用户界面Fig.8 Managing the App user page

图9 某App用户所有数据Fig.9 All data of an App user

图10 分类结果界面Fig.10 The page of classification results

图11 诊断报告内容Fig.11 Content of diagnostic report

3.2 深度学习模型实现

本文将CinC2017的数据集划分为10 份,其中训练集占比为90%,测试集占比为10%,具体训练集有7,676 条记录,共291,838 个样本;剩下852 条记录作为测试集,共有32,550 个样本。

模型输出结果如表1所示,四类样本的平均F1分数(评价分类问题的一个衡量指标)和平均准确率都超过85%。准确率(accuracy)定义如下:

表1 网络模型结果Tab.1 Results of network model

其中,TP为阳性样本的正确预测数,TN为阴性样本的正确预测数,FP为阴性样本的错误预测数,FN为阳性样本的错误预测数。F1定义如下:

precision和recall分别为精度和召回率,定义如下:

4 结论(Conclusion)

针对心率实时监护的问题,设计开发了一个基于深度学习的心律失常分类系统。该系统采用硬件传感器系统采集ECG心电信号,通过算法对实测心电数据进行预处理、特征提取,输入训练好的深度学习模型,经由深度学习模型输出结果,实现了对心电数据中心律失常的情况进行自动分类。系统基于Django框架Restful标准开发,对接心贴等心电采集设备,结合心电图QRS波群识别、ECG去噪及深度学习的心律失常诊断算法等模块,构建了一个实时监护心率、对心律失常类型进行自动分类的系统。

在数据足够的情况下,深度学习模型可以不断迭代训练提高模型性能。使用训练好的深度学习模型自动对ECG数据进行心律失常识别,取代传统模板匹配心律失常的方法,此方案比传统方法具有更低廉的成本及更好的诊断效果的优势。

猜你喜欢

心电云端服务器
心电向量图诊断高血压病左心室异常的临床应用
云端之城
通信控制服务器(CCS)维护终端的设计与实现
基于非接触式电极的心电监测系统
穿戴式心电:发展历程、核心技术与未来挑战
更正启事
美人如画隔云端
中国服务器市场份额出炉
行走在云端
云端创意