基于嵌入式AI的癫痫发作监测系统实现
2022-10-09张宣刘安康张培玲
张宣,刘安康,张培玲
河南理工大学物理与电子信息学院,河南焦作 454000
前言
癫痫是一种慢性、复发性和非传染性的神经系统疾病,由大脑神经细胞异常放电引起[1]。如今,癫痫已成为最常见的疾病之一,其发作不规律,常伴有意识丧失、持续严重的惊厥、心率加快、血压升高等临床表现,甚至危及患者生命安全[2]。
虽然大多数患者能使用抗癫痫药物来控制癫痫发作,但约30%的患者对抗癫痫药物反应不佳,称为难治性癫痫[3]。对于此类患者,一般用长程视频脑电监测的方式进行治疗,通过观察患者的临床反应并分析癫痫发作时的脑电图(Electroencephalogram,EEG)异常波形来评估病情的发展,但这种方法有很多弊端,并不适合长期的监测[4]。
如今癫痫发作检测受到许多学者的关注,各种癫痫检测技术纷纷被提出。目前,深度学习被认为是较为先进的模型,普遍应用于模式识别和机器学习方面,特别是在医学EEG 信号方面取得了显著的成就[5]。Acharya 等[6]开发了一种深度卷积神经网络(Convolutional Neural Network, CNN)来检测癫痫的发作,大大提升了检测的性能和准确率;Petrosian等[7]利用循环神经网络(Recurrent Neural Network,RNN)与小波分解系数相结合的方法进行癫痫预测;Ruben 等[8]分别使用傅里叶变换、小波变换和经验模式分解处理EEG 信号,然后使用两层CNN 进行特征提取和分类。目前,各种癫痫发作预测算法被提出以期达到高精度、低误报率的预测结果[9]。但癫痫预测的最终目的是应用于临床,所以硬件的实现也极为重要。有研究表明实时嵌入式系统是可以实现的,结合人工智能(Artificial Intelligence,AI)算法与单片机或FPGA 能为患者提供实时监测并报警的功能[10-12]。 目前,已有相关设备流入市场,如SmartMonitor 生产的一款智能手表可以在患者睡眠或工作中进行监测,若癫痫发作,手表会向家属发出报警信号,其检出率可达92.3%,但误报率为1.3次/d[11]。癫痫发作检测系统在准确率、检测时延、误检率、功耗等方面不能达到临床要求,还需要进一步的研究。此外,关于可穿戴式设备虽然研究众多,但在应用方面仍有很多弊端,与临床的结合度还有待提高[13]。本研究提出一种软硬件混合架构的实时癫痫发作监测系统,与以往研究不同,本研究采用单极片EEG 电极接收的信号进行癫痫发作检测,同时采用可穿戴式设计,使其真正应用于实践,且不会影响患者的日常生活。为癫痫发作监测设计的可穿戴系统的最重要特征之一应该是系统上尽可能少的电极,因为患者将全天携带这样的系统在颅骨周围,而且考虑到脑电波传感器领域的发展,其目标也是使用单个电极。因此,本研究目的是开发一种在患者体内引起最小视觉差异并且注意力不集中的系统。该系统运用嵌入式AI技术,为患者提供精准检测、实时报警的癫痫监护。一方面,通过癫痫发作日志记录患者发作信息,为医生分析患者病情、评估病情发展提供参考依据;另一方面,癫痫发作报警为难治性癫痫患者提供一定安全保障、降低癫痫猝死风险。
1 整体设计
目前,AI备受关注,而嵌入式AI是在嵌入式设备中执行AI算法,可以使设备更加智能,可实现对健康的实时监测[14]。人的EEG 波可按频率分为δ 波、θ波、α 波、β 波、γ 波5 种基本波形,不同的波形支配着不同的心理状态。当相对高频成分的频率强度大且重复时,EEG 波呈现“棘波”和“尖波”,癫痫发生的概率很大[10]。
基于此,该系统使用嵌入式AI技术,在单片机平台上开发,融合神经网络算法,并使用微信小程序进行实时监控、报警以及应急处理。整体的流程图见图1,分成3个模块:(1)训练模块。采用波恩数据集,基于小波包分解和一维CNN的混合算法对模型进行训练,并将训练好的模型移植到单片机上。(2)测试模块。使用脑电波传感器采集受试者EEG 信号,其传感器内部经小波包分解等操作后,可以提取出δ波、θ波等8种波形特征以及专注度、放松度和信号质量,并经蓝牙模块将数据传输给单片机,在单片机上对其进行与训练模块中类似的处理,最后检测是否异常,并将结果通过蓝牙反馈至手机的微信小程序。(3)报警模块。通过手机开发的微信小程序,分析由测试模块反馈来的结果,分为两个等级,一级:当检测到EEG 信号处于兴奋状态时,手机发出振动以提示患者放松;二级:当频繁检测到高频波(或“棘波”)时,即有可能发生癫痫,此时会通过短信通知家属并发送位置信息[15]。此外,小程序里还有患者的基本信息和发作日志,以便于医院及时掌握患者的情况并制定相应的治疗方案。
图1 癫痫发作监测系统整体流程图Figure 1 Overall flowchart of the epileptic seizure monitoring system
2 癫痫发作检测算法研究
2.1 数据集
本研究使用波恩数据集,共包含5 组数据(分别命名为A 组到E 组),每组数据包含100 个单通道EEG 信号段,长度为23.6 s,每段有4 097 个采样频率为173.61 Hz 的采样点[16-17]。本研究使用数据集A、D、E,其中A 组为健康者睁眼时测量,D 组为癫痫患者发作间期测量,E 组为癫痫患者发作期测量。将以上每段信号分成4 部分,获得正常EEG 400 例、癫痫发作间期EEG 400例和癫痫发作期EEG 400例,每个样本的数据长度为1 024个采样点[18]。其中训练集占70%,测试集占30%。
2.2 癫痫EEG信号特征
EEG 信号是检测癫痫发作的重要手段,分析EEG 信号特征有利于癫痫的检测。图2 为A、D 和E组随机提取的单信道EEG 信号。可以看出,相比于其他两种信号,癫痫发作期信号的波形、幅度、周期、节律都有较大的差异,并且常伴随着一些异常波形,癫痫发作期EEG信号异常波形及其特征见表1[19]。
表1 癫痫发作期EEG信号异常波形及其特征Table 1 Abnormal EEG waveform and its characteristics during epileptic seizure
图2 A、D、E组单信道EEG对比Figure 2 Comparison of single-channel EEG among groups A,D and E
2.3 数据处理
癫痫发作检测算法旨在区分正常人EEG信号、癫痫发作间期与发作期的EEG信号,属于多分类问题[11]。将正常EEG信号标记为0,癫痫发作间期标记为1,癫痫发作期标记为2。在训练模块中,对波恩数据集处理之后,经小波包分解和一维CNN以生成训练模型。
2.4 癫痫发作检测原理
2.4.1 小波包分解小波包分解是一种基于小波变换的信号分解与重构方法[20]。小波变换可用于信号定位和多尺度分析,具有一定适应性[21]。然而小波变换只能对低频部分信号进行分解和重构,而小波包变换是将频带多层次划分,不仅可以对以低频信息为主的癫痫EEG 信号进行表征,还可以对高频信号进行更精确的分解[22]。然后按照被分析信号的特点来选择相应的频带,使得信号的频带与频谱相匹配,从而提高信号的时频分辨率,是一种适用于癫痫EEG信号的分析方法[23]。
EEG信号主要分成5个子频带:δ波(1~4 Hz)、θ波(4~7 Hz)、α 波(7~12 Hz)、β 波(12~30 Hz)、γ 波(30 Hz~)[12]。小波包可以对信号进行分解和重构,提取所需的信号频带特征[24]。图3为3层小波包分解图,其中的每一层信号都被分解成低频和高频部分。
图3 3层小波包分解示意图Figure 3 Schematic diagram of 3-layer wavelet packet decomposition
2.4.2 一维CNN一维CNN 模型的主要部分是卷积层,由多个通道构成,对前一层的输入信号或者特征映射与固定感受野的卷积核进行卷积运算的结果就是每个通道的输出神经元,通过这种信号分析方法,可以了解表征信息的层次结构[25]。除此以外还有池化层,它将输入数据分成许多小的子区域,每次只提取子区域的最大值的方法称为最大池化。池化层的意义在于从数据中提取显著特征,忽略细节特征,从而减少网络中的参数和计算,控制过拟合[26]。
如图4 所示,本研究的模型结构主要是由一维卷积层(conv1D)、线性整流函数(ReLU)、最大池化层(max_pooling1D) 、全局平均池化层(global_average_pooling1D)、dropout 层和全连接层(dense)等构成。将上述小波包分解后的波形输入,经一维CNN 训练后输出。表2 为实验中模型结构的具体参数,其总参数、训练参数和非训练参数个数分别为342 435、342 435和0。
表2 模型结构参数Table 2 Model structural parameters
图4 多输入多输出一维CNNFigure 4 Multi-input and multi-output one-dimensional convolutional neural network
3 硬件设计
由于单片机常以其低功耗的优势用于穿戴式设备,且成本低、易开发,因此,在癫痫监测算法的硬件设计上,采用以STM32单片机为核心实现算法映射。在测试模块中,重点是如何将AI 训练模型移植到STM32 单片机上以及如何将单片机上的检测结果通过蓝牙传输到微信小程序。
首先,将训练好的AI 模型提前移植到STM32 单片机上。将python 语言转换成可以烧录到单片机上的C 语言,利用STM32 Cube.AI 工具包就可以在STM32 Nucleo 上实现CNN[27]。其次,采集受试者的EEG 信号。受试者佩戴好EEG 波传感器,其传感器内部经小波包分解等操作,提取出δ 波、θ 波等8 种波形特征,而癫痫信号的异常波也主要集中在δ 波和θ波,所以可以通过提取的特征检测癫痫发生与否。将采集的波形通过提前配对好的蓝牙模块传输到单片机上,在单片机上对其进行与训练模块类似的处理,再与提前移植的训练模型比对,判断是健康、发作间期还是发作期。最后,将上述结果通过蓝牙模块反馈到微信小程序。图5 为单片机与蓝牙模块的实物图,鉴于单片机的性能、闪存、成本以及传输能力等多方面因素,本研究使用的型号是STM32-H743ZI2,而蓝牙模块是HC-08,它可以处于低功耗模式,连接到微信小程序。
图5 单片机与蓝牙模块Figure 5 MCU and Bluetooth module
但如果直接在STM32单片机上烧录串口通信程序会覆盖原有的AI模型,所以需要利用Cube.AI工具包,基于RT-Thread 系统,在单片机上部署预先训练好的AI模型[28],然后将预测模型导入单片机,用手机的蓝牙调试器来接收预测信号,发作期和发作间期的预测值如图6所示,其中癫痫发作间期标记为1,癫痫发作期标记为2(本实验中,发作间期和发作期的信号由数据集导入)。
图6 蓝牙调试器接收的预测信号Figure 6 Predictive signal received by Bluetooth debugger
4 微信小程序
微信小程序的开发设计至关重要,它需要通过低功耗的蓝牙模块接收到STM32 单片机的反馈信息,对其进行分析,并分成两个等级,一级:稍有异常,手机发出振动提示患者放松;二级:即将发作,短信通知家属并发送位置信息。
报警模块采用数据监听器,通过蓝牙传输到小程序的数据如果发生变化,会唤醒数据监听器[29]。根据收到的信息,微信小程序会自行判断是一级指令还是二级指令。
当患者首次进入微信小程序时,需提前完善包括姓名、电话等个人信息,这些信息存入后台后,在需要时供系统查询和显示[30]。此外,微信小程序里还有患者的发作日志和位置信息,日历上记录患者发病的时间,如图7所示,当患者发作时,获取到的位置信息就可以通过短信发送给患者家属,使其采取相应的措施。
图7 微信小程序界面Figure 7 WeChat applet interface
5 测试与分析
系统测试分为3 部分:训练模型的准确率、采集的受试者EEG信号以及微信小程序的监测。
(1)训练模型的准确率。本研究使用小波包分解提取信号特征,采用一维CNN特征分类来对模型进行训练,其模型准确率和误差见图8、图9。随着样本训练次数的增加,模型的准确率也随之提高,但不能无限制地训练,否则会导致过拟合,其最终的准确率为98.3%;同样,随着训练次数的增加,模型的误差也随之减小。
图8 模型准确率Figure 8 Model accuracy
图9 模型误差Figure 9 Model error
表3 为本文方法和其它方法的对比。本研究采用的EEG 数据种类较多,对数据集采用三分类的方法有更好的鲁棒性[18],分析结果表明本文方法相比于其它方法准确率稍有提升,更适合于移动设备和嵌入式设备。
表3 本文方法与其它的对比Figure3 Comparison between the proposed method and others
(2)采集的受试者EEG 信号。由受试者佩戴好脑电波传感器,如图10 所示,通过单极片、干电极来采集信号,其传感器内部经小波包分解等操作后,不仅能保留原始的EEG 波形,还可以提取出δ 波等8 种波形特征以及专注度、放松度和信号质量,便于后续分析,如图11所示。
图10 受试者佩戴EEG波传感器Figure 10 Subject wearing EEG sensors
图11 受试者的EEG波形Figure 11 EEG waveform of the subject
(3)微信小程序的监测。一级报警模块:采用小程序含有的API 指令,使手机发出较长时间的振动;二级报警模块:通过微信小程序向HTTP 服务器发送请求指令,收到指令后向指定的用户发送短信通知。
6 结语
本研究提出的系统针对癫痫突发性和随机性的特点,解决了家属对患者实时有效护理的问题,且操作简单、易于携带,不会影响患者的日常生活,其市场的应用前景巨大。同时,微信小程序里还有患者的基本信息和发作日志,便于医院及时掌握患者的情况并制定相应的治疗方案。
目前,基于嵌入式AI的癫痫监测研究越来越多,本研究也只实现了一些基本功能,在某些方面还存在不足,实际运用普适应还有待提高,因此,后续的研究将从以下几个方面开展:(1)目前使用蓝牙进行通信,覆盖范围太小,时而不稳定,接下来会尝试使用WIFI 或5G 模块,通过WIFI 模块将数据发送到MQTT 服务器,可以更好地实现实时监控,并推送给多个用户。(2)穿戴式癫痫监测的最终目标是将其应用于临床实践,未来的研究将与医用的设备相结合,往高质量、高效率、深层次的方向发展,从而更好地为患者服务。(3)AI 在智慧医疗领域应用广泛,但应用于临床仍有许多困难需要克服。为了获得患者及其家属的认可,需要更权威、更丰富的临床实验验证,并提供更好的医疗服务。