3、睡眠监测原理:常见睡眠阶段、生理信号与监测方法
在进入TinyML模型部署之前,必须首先理解我们正在处理的数据从何而来、代表什么生理含义,以及如何被划分为不同的睡眠阶段。睡眠监测并非简单的“睡着/清醒”二分类,而是一个涉及多通道生理信号采集、特征提取与时序状态判别的复杂过程。本章将系统梳理睡眠阶段的划分标准、核心生理信号的特征与采集方式,以及从信号到睡眠分期的工程化方法,为后续ONNX模型转换中的输入张量设计、预处理算子嵌入和输出标签映射奠定生理学与信号处理基础。
3.1 睡眠阶段的生理学基础与AASM分期标准
睡眠并非一个均一的静止状态,而是由多个具有不同神经生理特征的阶段循环组成的动态过程。根据美国睡眠医学会(AASM)发布的最新版《睡眠及其相关事件判读手册》,成年人的睡眠被划分为清醒期(Wake, W)、非快速眼动睡眠期(NREM)和快速眼动睡眠期(REM)。其中NREM期又进一步细分为N1、N2、N3三个阶段,N3即通常所说的深睡期或慢波睡眠期。每个阶段都具有独特的脑电、眼电和肌电特征,这些特征构成了自动睡眠分期算法的生理学依据。
从神经机制来看,清醒期以高频低幅的β波(>13 Hz)为主,伴随持续的颏肌张力与快速眼球运动;N1期是从清醒到睡眠的过渡阶段,脑电以α波(8-13 Hz)减弱、θ波(4-8 Hz)出现为标志,眼球运动变为缓慢滚动;N2期以睡眠纺锤波(sigma波,12-14 Hz)和K复合波为特征性事件,肌电进一步降低;N3期则以高幅慢波(δ波,0.5-4 Hz)占比超过20%为判读标准,此时肌电处于全天最低水平;REM期脑电呈现类似清醒的混合频率模式,但肌电显著抑制(张力消失),并伴随快速眼球运动。整夜睡眠通常以约90分钟为一个周期,在NREM与REM之间交替,前半夜以深睡为主,后半夜REM期逐渐延长。
| 睡眠阶段 | EEG特征 | EOG特征 | EMG特征 | 典型占比(成人) |
|---|---|---|---|---|
| 清醒(W) | β波为主,α波(闭眼) | 快速眨眼/扫视 | 高张力,活动频繁 | 5-10% |
| N1(浅睡1期) | α波消退,θ波出现 | 缓慢眼球滚动 | 张力较清醒降低 | 2-5% |
| N2(浅睡2期) | 睡眠纺锤波、K复合波 | 无眼球运动 | 张力进一步降低 | 45-55% |
| N3(深睡) | δ波占比≥20% | 无眼球运动 | 张力最低 | 13-23% |
| REM(快速眼动) | 混合频率,类似N1 | 快速眼球运动 | 张力显著抑制 | 20-25% |
理解这些生理特征对于TinyML模型设计至关重要。例如,N2期的睡眠纺锤波频率集中在12-14 Hz,这要求模型输入特征在频域上具有足够的频率分辨率;而REM期的肌电抑制特征则提示我们,在特征融合时应当将EMG通道的时域能量作为重要判别维度。在后续ONNX模型转换中,输入张量的通道顺序、特征组合方式都需要与这些生理学先验知识保持一致。
3.2 核心生理信号:EEG、EOG、EMG与加速度
多导睡眠监测(PSG)是临床睡眠分期的金标准,其核心信号包括脑电图(EEG)、眼电图(EOG)、肌电图(EMG)以及用于辅助判断体动和睡眠姿势的加速度信号。在可穿戴TinyML场景中,信号通道数量往往被大幅缩减,但理解每种信号的生理意义和采集要点仍然是构建可靠模型的前提。
EEG(脑电图)是睡眠分期最核心的信号来源。标准PSG采用国际10-20系统放置电极,睡眠分期通常使用C3-A2、C4-A1等中央区导联。EEG信号幅度通常在10-100 μV之间,主要频率成分集中在0.5-35 Hz。在TinyML应用中,考虑到电极数量和佩戴舒适性,常采用单通道或双通道干电极EEG。采样率方面,根据奈奎斯特定理,要捕捉到35 Hz以内的EEG成分,采样率至少需要70 Hz,实际设备通常设置为128 Hz或256 Hz以留出滤波余量。EEG信号极易受到眼电、肌电和工频干扰,预处理阶段需要设计带通滤波器和陷波器。
EOG(眼电图)记录的是角膜-视网膜电位差随眼球运动产生的变化。在睡眠分期中,EOG主要用于识别REM期的快速眼球运动和N1期的缓慢眼球运动。标准EOG采集使用左右眼外侧1 cm处的电极,参考点为同侧耳垂。EOG信号幅度较大(50-200 μV),频率较低(0.5-5 Hz),与EEG的δ波和θ波频段存在重叠,这也是EOG伪迹容易污染EEG信号的原因。在可穿戴设备中,EOG通道常被用于辅助判别REM期,但并非所有设备都包含此通道。
EMG(肌电图)在睡眠分期中主要记录颏下肌群的电活动。EMG信号幅度与肌肉张力直接相关,清醒期张力高,NREM期逐渐降低,REM期则出现特征性的张力消失。EMG信号的频率范围较宽(10-200 Hz),幅度变化大。在TinyML模型中,EMG通道的时域能量(如均方根值)和频域特征(如高频功率占比)是区分REM期与其他阶段的重要线索。值得注意的是,EMG信号容易受到吞咽、磨牙等动作的干扰,需要结合加速度信号进行联合判断。
加速度信号来自可穿戴设备内置的三轴加速度计,用于检测体动和睡眠姿势变化。虽然加速度信号不直接参与AASM标准分期,但在实际睡眠监测中具有重要价值:体动事件可以帮助识别清醒期与睡眠期的边界;在TinyML边缘设备中,加速度信号可以作为低功耗的预筛选条件——当检测到持续体动时,可以唤醒EEG采集和模型推理,否则进入低功耗模式。加速度信号的采样率通常较低(25-50 Hz),计算特征包括合成向量幅度(SVM)、倾角变化和体动计数等。
信号采集要点总结:
- EEG采样率建议≥128 Hz,带通滤波0.5-35 Hz,工频陷波50/60 Hz
- EOG采样率可低至64 Hz,带通滤波0.5-5 Hz,注意与EEG低频段区分
- EMG采样率建议≥256 Hz,带通滤波10-100 Hz,避免与ECG信号混淆
- 加速度采样率25-50 Hz即可,使用低通滤波去除高频抖动
- 所有通道需保持时间同步,TinyML设备需考虑时钟漂移补偿
3.3 睡眠监测方法与自动分期流程
传统睡眠监测依赖睡眠技师人工判读整夜PSG记录,每30秒为一个分期窗口(称为一帧),整夜8小时睡眠共产生约960帧数据。人工判读不仅耗时(约需2-4小时),且不同技师之间的判读一致性仅为80%左右。自动睡眠分期算法旨在通过信号处理和机器学习方法,实现客观、高效、可重复的分期结果。
自动睡眠分期的标准流程包括四个主要环节:信号预处理、特征提取、模型推理和后处理。在信号预处理阶段,原始信号经过带通滤波去除噪声和伪迹,然后被切分为30秒的连续窗口。特征提取阶段从每个窗口中计算多维特征,包括频域特征(各频段功率谱密度、谱熵、频谱边缘频率)、时域特征(幅度均值、方差、过零率、Hjorth参数)以及非线性特征(样本熵、去趋势波动分析)。在传统机器学习方法中,这些特征被输入到分类器(如随机森林、支持向量机)中进行分期;而在深度学习方法中,原始波形或时频图直接作为卷积神经网络或循环神经网络的输入,特征提取由模型自动完成。
对于TinyML部署场景,模型输入的设计需要特别考虑边缘设备的计算和存储约束。以ONNX转换为例,如果采用1D-CNN模型,输入张量形状通常为[batch, channels, time_steps],其中channels对应EEG、EOG、EMG等信号通道数,time_steps对应30秒窗口内的采样点数(例如128 Hz采样率下为3840点)。如果采用2D-CNN处理时频图,输入张量则为[batch, channels, freq_bins, time_frames]。在ONNX转换时,需要确保输入张量的形状、数据类型(float32或量化后的int8)和通道顺序与训练时完全一致。
// 以128 Hz采样率、30秒窗口、3通道(EEG+EOG+EMG)为例
// 输入张量形状: [1, 3, 3840]
// ONNX 模型输入定义示例
input: name = "input_signal"
type = float32[1, 3, 3840]
// 输出张量形状: [1, 5] 对应 W/N1/N2/N3/REM 的概率
output: name = "sleep_stage_prob"
type = float32[1, 5]
后处理阶段通常包括平滑滤波和规则约束。由于睡眠阶段在时间上具有连续性,单帧分类结果中偶尔出现的孤立跳变(如N2中单帧判为REM)可以通过多数投票或隐马尔可夫模型进行平滑。在TinyML设备上,后处理逻辑通常以C语言实现,部署在MCU端,与ONNX模型推理结果串联。
3.4 案例拆解:从PSG到可穿戴TinyML的简化实践
为帮助理解上述原理在实际项目中的应用,这里以一个简化的可穿戴睡眠监测设备开发案例进行拆解。该案例的目标是在一颗Cortex-M4内核的MCU(主频80 MHz,RAM 256 KB,Flash 1 MB)上实现实时睡眠分期,模型需通过ONNX转换并量化为INT8格式。
项目背景与约束:设备采用单通道EEG(干电极,采样率128 Hz)+ 三轴加速度(采样率25 Hz)。由于MCU资源有限,无法运行复杂的深度学习模型,因此采用轻量级1D-CNN,参数量控制在50K以内。训练数据来自公开数据集Sleep-EDF,包含78名受试者的整夜PSG记录,划分为训练集(60人)、验证集(9人)和测试集(9人)。
初始现象与目标:初始模型在PC端(Python环境)的测试准确率为82%,但直接转换为ONNX并部署到MCU后,推理时间长达3.2秒/帧,远超30秒的实时要求。目标是将单帧推理时间压缩至200毫秒以内,同时保持准确率不低于78%。
关键参数与指标:模型输入为1×1×3840的EEG窗口(单通道),输出为5类概率。ONNX模型原始大小为1.8 MB,量化后目标为200 KB以内。MCU的Flash空间有限,需要将模型和推理代码整体控制在512 KB以内。
分析判断过程:通过ONNX Runtime的profiling工具分析,发现模型推理时间主要消耗在大量浮点卷积运算上。进一步分析模型结构,发现第一层卷积核尺寸为64,步长为1,导致计算量过大。同时,模型使用float32权重,在MCU上需要软件模拟浮点运算,效率低下。
实际操作步骤:
- 将模型第一层卷积核从64缩减至32,步长调整为2,降低输入分辨率。
- 使用ONNX Runtime的量化工具,将模型权重从float32量化为int8,激活值使用动态量化。
- 将模型中的BatchNorm层与卷积层融合,减少推理时的计算分支。
- 在MCU上使用CMSIS-NN优化库进行推理加速。
结果对比:优化后模型大小降至180 KB,单帧推理时间降至180毫秒,满足实时性要求。测试集准确率为79.2%,略高于78%的目标线。量化带来的精度损失约为2.8个百分点,在可接受范围内。
风险与代价:模型压缩导致对N1期的识别准确率下降明显(从65%降至52%),这是因为N1期与清醒期和N2期的边界模糊,特征区分度低。后续通过增加数据增强(对N1期样本进行时域扭曲)和调整损失函数权重(提高N1期权重)来缓解。
复盘经验:在TinyML场景中,模型设计必须从一开始就考虑硬件约束,而不是在训练完成后再进行压缩。ONNX转换和量化不是简单的格式转换,而是需要与模型结构优化、硬件特性适配协同进行的系统工程。睡眠分期的生理学先验知识(如N1期难分、REM期依赖EMG特征)应当指导模型设计和训练策略。
常见误区提醒:
- 误区一:认为采样率越高越好。高采样率导致数据量增大,增加MCU的存储和计算负担,应根据信号最高频率成分合理选择采样率。
- 误区二:忽略通道间同步。EEG和加速度信号如果时间不同步,会导致体动事件与脑电特征错位,影响分期准确性。
- 误区三:直接使用PC端模型的ONNX导出结果。PC端模型可能包含MCU不支持的算子(如某些高级激活函数),需要检查算子兼容性。
- 误区四:忽视数据分布偏移。公开数据集(如Sleep-EDF)与真实可穿戴设备采集的信号在噪声水平、电极位置、采样率方面存在差异,需要进行域适应或微调。
睡眠监测原理是TinyML模型设计和部署的生理学基石。只有深入理解各睡眠阶段的信号特征、掌握多通道生理信号的采集要点、熟悉自动分期的标准流程,才能在ONNX转换和边缘部署中做出合理的工程决策。下一环节中,我们将基于本章的生理信号基础,进一步探讨如何将训练好的睡眠分期模型转换为ONNX格式,并针对MCU平台进行优化。