基于多模态信息融合的术后病人疼痛评估与管理系统研究 (作者:廖灵昀 学校:上海市青浦高级中学)

来源于:知识就是力量
发布时间:2025-10-23 16:03:49
    小字号

基于多模态信息融合的术后病人疼痛评估与管理系统研究
作者:廖灵昀    学校:上海市青浦高级中学
摘要:本研究致力于开发基于多模态信息融合的术后病人疼痛评估与管理系统,旨在通过整合生理信号、面部表情、皮肤电导等多种信息,实现对术后患者的疼痛实时监测。该系统的核心是基于ESP32单片机,结合GSR传感器、心率与血氧传感器、面部摄像头等设备,通过机器学习算法分析患者的生理与行为特征。在实验中通过GSR的峰值检测、变化率等指标,明确疼痛特征和严重程度。心率在疼痛刺激下表现出适度波动,血氧水平则基本保持稳定。系统还应用摄像头捕捉患者面部表情并通过机器学习模型进行分析,从而评估疼痛等级。该系统实现了低成本、无创、实时的术后疼痛监测,既为术后患者提供了更高效的疼痛管理手段,也为医护人员诊疗决策提供了更客观的依据。研究结果表明,结合多模态信息的疼痛监测系统能有效提高疼痛识别的准确性和及时性,对改善患者术后体验及促进医患关系具有积极意义。
关键词:人工智能;GSR传感器;单片机;心率;血氧

1.课题背景
        近年来,患者术后由于疼痛管理不足与评估不足的问题屡屡见诸新闻,其中一些严重的情况甚至引发了不良社会影响。不少报道提到,术后患者因无法忍受疼痛而影响康复进展,不仅易产生情绪波动和心理压力,更可能引发医患纠纷。尤其是一些患者因未能及时得到有效帮助,导致康复过程更加痛苦。一些案例显示,由于患者对疼痛的主观评估不够准确,未能引起医护人员足够重视,从而影响治疗效果。这些现象让我们意识到,在医疗资源相对紧张的情况下,如何高效帮助术前与术后患者缓解和管理疼痛,已成为一个亟待解决的问题。
        其实,类似问题在我生活中也有体会。去年,我奶奶因腿部手术住院一段时间。术后她常和我说腿很疼,有时一整夜睡不着。家人只能用简单的按摩和热敷帮她缓解,但效果并不显著。我印象最深的是,有一次奶奶疼得直掉眼泪,但她因不想“麻烦”医生,没有主动告诉医护人员。后来医生查房时发现她的情况后,才及时调整了止痛药物的剂量。虽问题得到解决,但这件事让我开始思考:如果奶奶的疼痛能被更早、更客观地发现,会不会就能少受一些痛苦呢?此外,我还记得有一次带奶奶去复诊,排队等候时,她因疼痛脸色苍白,甚至走路都很吃力。这样的场景让我意识到,患者的痛苦并不仅仅局限在住院期间,术后康复的全过程都需更科学的疼痛管理。因此,我们的疼痛监测平台也可延伸到家庭护理中,如通过智能设备将数据上传到医生端,实现远程监测和及时干预。
        作为高中生,我们在学习化学、生物、物理和信息技术等课程时,掌握了一些基础知识,如心率和血氧饱和度监测的原理、面部表情识别技术及声音分析的基本理论。当了解这些生理信号和行为特征可用于评估人的心理和身体状态时,我不禁想或许可利用这些知识为术后患者设计一套疼痛监测系统。虽然我们的知识储备还很有限,但通过查阅资料和向老师请教,我了解到一些关键技术,如生理信号的采集与分析、面部表情识别原理及利用机器学习进行数据处理的方法。
        结合生活经历,我希望设计一个平台,整合现有可行的多模态信息,用更客观的方式评估患者的疼痛程度。例如,普通人会在疼痛时不自觉地皱眉甚至低声呻吟。我设想通过摄像头捕捉患者的面部表情,利用开源机器学习模型分析表情特征,识别是否存在疼痛表情。同时,通过非接触式传感器监测心率和血氧水平,这种方式不仅精准,还不会打扰患者休息。结合这些信息来源,我希望开发一个自动化疼痛评估系统,帮医护人员实时掌握患者疼痛变化。最后,我们还希望实时监测病人皮肤电反应(GSR)传感器来实现更贴近皮肤的生理反应。
2.国内外研究现状
        近年来,国内外在术后疼痛监测领域取得显著进展,尤其在多模态信息融合技术的应用上,表现出良好的前景。国外研究中,许多团队以心率、血氧饱和度等生理信号分析为核心方法,已能较准确地评估疼痛状态。同时,结合面部表情识别技术和深度学习算法,进一步提高评估的客观性和实时性。此外,一些医疗设备公司探索了基于多模态数据的疼痛监测平台,并在远程医疗和非接触式监测技术上取得突破。然而,这些研究多集中于发达国家的医院环境,设备成本较高,缺乏适用于广泛推广的经济性方案,同时对术后患者出院后的家庭场景覆盖不足。
        与此同时,国内研究则多集中在技术的单一环节上,如生理信号采集设备的开发或面部表情数据库的建设,尽管近年来多模态技术融合也逐渐受到关注,但尚未形成成熟的整体解决方案。此外,国内技术应用还面临数据标准化不足的问题,各机构间的数据孤岛现象显著,影响了疼痛监测技术的普及与推广。整体来看,当前国内外的研究在技术综合性、应用场景拓展和成本优化方面仍存在显著不足。
        针对这些问题,我们的课题聚焦于开发一种低成本、无创、实时的多模态术后疼痛监测平台,将生理信号与面部表情等行为特征相结合,通过人工智能技术实现更高效、全面的疼痛评估。通过创新设计,我们希望弥补现有研究在家庭护理场景和推广适应性上的不足,为术后患者提供更广泛、便捷的疼痛管理解决方案,同时推动医疗资源的优化利用,彰显这一课题的社会意义与实际价值。
3.研究方案
        本项目旨在开发一种基于ESP32单片机的术后疼痛监测平台,利用皮肤电反应传感器、面部摄像头、心率和血氧监测等多种传感器手段,实时监测患者的疼痛等级。ESP32单片机将作为核心控制单元,负责多模态数据的采集、处理和传输,为医护人员提供实时疼痛监测支持。其主要硬件部分逻辑以ESP32作为核心处理器,同时具有多路ADC(模数转换器)和GPIO(通用输入输出)接口,能同时接入多种传感器并进行数据采集。其系统框架图如下: 

        3.1  ESP32单片机核心模块
        ESP32单片机作为核心控制单元,具备高性能的处理能力和丰富的外设接口,支持多模态传感器数据的并行采集与传输。其硬件架构中包含多路ADC(模数转换器)和GPIO(通用输入输出)接口,能轻松连接多种传感器。通过其内置的Wi-Fi和蓝牙,数据可实时传输到上位机或云端进行分析。其主要结构图如下: 

        3.2  皮肤电反应(GSR)传感器皮肤电反应传感器
        通过ESP32的ADC通道接入系统,用于采集皮肤电导率的细微变化。项目将ADC通道设置为12位分辨率,采样率为50 Hz,确保足够的精度和采样速度。采集的数据每秒传输至数据分析模块,通过对皮肤电信号的实时波动监测,评估患者的紧张或疼痛状态。
        GSR(皮肤电反应)是指皮肤电导率随情绪、压力或兴奋状态的变化而发生的反应。它通过测量皮肤的导电性,尤其是在手掌或脚底等部位,来监测由汗腺活动引起的变化。当一个人感到紧张、焦虑或兴奋时,汗腺会分泌更多汗液,导致皮肤电导率增加。GSR常用于心理学研究、生物反馈疗法及测谎仪等设备中,作为评估情绪和压力状态的一个生理指标。
        我们购置的GSR传感器如下所示: 

        基于ESP32单片机的设计方案,硬件连接如下:
        GSR传感器的信号输出端接入ESP32的ADC通道,如GPIO34。ESP32的ADC模块具有较高的分辨率和灵敏度,能有效捕捉皮肤电信号的细微波动。GSR传感器的电源输入端(VCC)连接到ESP32的3.3V输出引脚。同时,传感器的GND引脚与ESP32的GND引脚相连,确保电位一致以降低噪声干扰。为进一步提高信号稳定性,在信号输出与ADC输入间可添加一个小容量去耦电容(如10nF)以滤除高频噪声。
        其控制代码如下:
        from machine import ADC, Pin
        from time import sleep_ms
        # 初始化ADC模块,选择GPIO34作为输入通道
        adc = ADC(Pin(34))
        adc.atten(ADC.ATTN_11DB)  # 设置输入电压范围为0-3.3V
        adc.width(ADC.WIDTH_12BIT)  # 配置ADC为12位分辨率(0-4095)
        #采样参数配置
        sampling_rate = 50  # 采样率设定为50 Hz
        sampling_interval = int(1000 / sampling_rate)  # 采样时间间隔为20 ms
        # 数据采集与输出
        print("开始采集GSR传感器数据...")
        try:       
        while True:      
        gsr_raw = adc.read()  # 获取原始ADC值(0-4095)        
        gsr_voltage = gsr_raw * (3.3 / 4095)  # 转换为电压值(单位:V)        
        print("GSR电压值: {:.3f} V".format(gsr_voltage))       
        sleep_ms(sampling_interval)  # 等待下一个采样周期
        except KeyboardInterrupt:
        print("数据采集停止。")

        3.3  心率与血氧传感器
        通过I2C协议将MAX30102传感器与ESP32连接,实时读取心率和血氧数据。ESP32的I2C接口具有较强的抗干扰性,确保数据采集的稳定性。心率和血氧的采样频率为100 Hz,以便准确追踪患者状态。
        首先,将MAX30102的VCC接ESP32的3.3V电源引脚。GND引脚接ESP32的GND。SCL端连接到ESP32的GPIO22(默认的I2C时钟线)。连SDA端接到ESP32的GPIO21(默认的I2C数据线)。连接后效果图如下: 

        其控制代码如下:
        from machine import Pin, I2C
        import time
        import max30102  # 假设已安装适配MAX30102的MicroPython库
        # 初始化I2C接口
        i2c = I2C(0, scl=Pin(22), sda=Pin(21), freq=400000)  # 配置SCL和SDA引脚,频率400kHz
        # 初始化MAX30102
        m = max30102.MAX30102(i2c)
        # 配置采样率
        sampling_rate = 100  # 采样频率 100 Hz
        sampling_interval = 1 / sampling_rate  # 每次采样间隔 (秒)
        print("开始采集心率和血氧数据...")
        try:   
        while True:       
        # 读取心率和血氧数据        
        data = m.read_sensor()       
        if data:           
         heart_rate = data['heart_rate']  # 心率数据           
         spo2 = data['spo2']  # 血氧数据           
         print("心率: {:.2f} bpm, 血氧: {:.2f} %".format(heart_rate, spo2))         
        else:            
         print("数据读取失败,请检查传感器连接或参数配置。")       
       # 控制采样间隔       
        time.sleep(sampling_interval)
        except KeyboardInterrupt:        
        print("数据采集停止。")
        3.4  面部摄像头
        使用电脑直连的摄像头模块实现面部表情的拍摄与传输。面部摄像头模块通过电脑直连方式获取患者表情数据,实时拍摄患者面部表情图像或视频。这些数据将在后续分析模块中,通过机器学习算法提取与疼痛相关的面部特征,为疼痛等级评估提供视觉支持。
        在这里,我们使用经典的卷积神经网络,模型的构建主要参考2018年CVPR几篇论文及谷歌的Going Deeper设计如下网络结构,输入层后加入(1,1)卷积层增加非线性表示且模型层次较浅,参数较少(大量参数集中在全连接层)。人脸表情识别模块:                                                                        https://github.com/luanshiyinyang/FacialExpressionRecognition?tab=readme-ov-file 

4.实验结果
        首先,需对正常状态下的基线指标进行测量。基线是个体在放松状态下的皮肤电导值。由于个体的GSR基线可能因情绪、环境、体温等因素变化,监测基线水平的波动可帮助识别疼痛趋势。
        实验开始时,记录被测者安静状态下的GSR基线值。通常通过1~2分钟的静息期来建立基线。该基线应反映皮肤电导的正常波动范围,以便在实验过程中对比分析,然后建立疼痛升级的判断依据,其平静期的基线图如下: 

        基线数据的平均值、标准差、最小值、最大值和其他指标都显示出数据的波动幅度非常小且分布接近对称。这表明在测量过程中,个体处于稳定放松状态,皮肤电导水平几乎没有受到外界因素或情绪波动影响。
        我们也建立了自己的痛苦判断标准,判断依据如下:
        如果基线水平在一段时间内持续上升,可能代表一种长期的疼痛趋势。例如,若基线从最初的200单位逐渐上升到300单位,且持续波动在高基线值范围,可能是持续疼痛的表现。这种长期上升的基线可帮助区分疼痛加剧和单一的短时疼痛事件。基线的动态调整:基线可根据用户的情绪和环境变化动态调整。例如在每次疼痛事件后重新评估基线,以免错将情绪波动误判为疼痛。
        首先,我们采用了峰值检测方案对疼痛进行评估。当个体感受到疼痛刺激时,GSR信号通常会在短时间内迅速上升,并形成一个较高的峰值。可设定一个“峰值阈值”,该阈值略高于基线信号的正常波动范围。例如,如果基线在200~300范围内波动,可以设定350或400为峰值阈值。信号超过该阈值并持续几秒可能表明疼痛加剧。如果GSR在峰值以上持续一段时间,可能说明疼痛并非瞬间产生,而是持续的。这种“高峰持续时间”可作为一个附加指标,帮助区分瞬时疼痛和持续性疼痛。通过设定峰值持续时间(如2秒以上),可进一步提高疼痛检测准确性。如果在短时间内(如1分钟内)出现多个峰值,可将这些峰值次数作为判断疼痛频率和强度的依据。峰值频率越高,可能代表疼痛感越强。
        然后,进一步采用变化率指标评估疼痛变化情况。变化率是指GSR信号在单位时间内的变化量。疼痛引起的GSR变化率通常较大,因此可通过计算变化率来判断疼痛的加剧情况。其具体评估指标方案如下:
        单位时间变化率:例如,计算每秒或每半秒GSR信号的变化量。当单位时间内的变化量超过一定阈值(如每秒增加30~50个单位),可认为皮肤电导发生显著波动。这样可捕捉到疼痛发生的瞬时反应,不必等待信号达到峰值。
        波动趋势:如果GSR信号变化率在一定时间内(如10秒)保持较高水平,则可能表示疼痛处于持续状态。例如,可将每秒的GSR变化率与基线变化率进行比较,若超过正常基线变化率的1.5~2倍,可视为疼痛反应。
        异常变化点检测:通过检测信号变化中的异常点(如快速上升点),可提高检测灵敏度。例如使用滚动平均和标准差,当新值超过滚动平均的2倍标准差时,可标记为异常变化点,可能对应疼痛加剧。
        其测试GSR信号变化如图所示: 

        我们发现,在前120秒的基线期内,GSR的均值保持在200单位附近,表现出相对稳定的波动。这表明在无外界刺激的放松状态下,个体的皮肤电导水平趋于稳定。与此同时,这一阶段的标准差较低,表明在放松状态下,GSR波动较小,数据基本呈规律性变化。
        从120秒之后的时间段开始,可以观察到8次间歇性的明显GSR峰值,这些峰值表示在间隔时间内施加了疼痛刺激(掐了自己一下)。峰值的增加幅度在50~100单位之间,相比基线的正常波动范围(200~300单位),这些峰值显著高于基线水平,明确显示了刺激引起的生理反应。每个峰值持续的时间在3~10秒之间。持续时间的长短与疼痛刺激的强度和个体的反应有关。持续时间较长的峰值可能代表较强的疼痛体验或延迟的生理反应。持续时间作为指标可帮助区分疼痛事件的强度和性质,例如短暂但尖锐的疼痛与长时间的钝痛。
        根据图中的数据,若设定350单位作为疼痛峰值阈值,可看到明显的超阈值反应。图中的多个峰值超过350单位,且在短时间内达到高峰后逐渐回落,符合疼痛刺激后的典型皮肤电导变化模式。这种峰值检测方案在判断疼痛是否发生及疼痛的强度方面非常有效。在单位时间变化率方面,对于每个疼痛刺激事件,GSR信号在数秒内出现了显著上升,变化率明显高于基线期的正常变化率。每秒的变化量在50~100单位,显著超过基线期间的5~10单位的波动范围。因此,变化率的迅速增加可用于检测瞬时疼痛反应,而无需等待信号达到峰值。这样可在疼痛事件刚刚发生时进行快速检测,提高响应及时性。
        我们又进行了3次相同的实验,其结果如下所示: 

5.心率与血氧传感器
        按照相同的实验方法,我们对心率与血氧进行了实时监测。发现心率在受到疼痛刺激时表现出适度的波动,而血氧水平变化较小,整体保持在正常范围内。这种心率和血氧的变化模式符合典型的生理反应特征,反映出不同生理参数对疼痛的反应特点。其分析数据如下:
        数据集 1:
        心率——均值:75.13 bpm;标准差:1.47 bpm;最小值:71.35 bpm;最大值:83.71 bpm。
        血氧——均值:98.00%;标准差:0.32%;最小值:96.81%;最大值:98.87%。
        数据集2:
        心率——均值:75.13 bpm;标准差:1.60 bpm;最小值:71.24 bpm;最大值:84.28 bpm。
        血氧——均值:97.99%;标准差:0.30%;最小值:97.06%;最大值:98.79%。
        数据集3:
        心率——均值:75.14 bpm;标准差:1.65 bpm;最小值:71.27 bpm;最大值:84.59 bpm。
        血氧——均值:98.00%;标准差:0.29%;最小值:97.30%;最大值:98.81%。 

6.摄像头表情判断
        在分辨率与帧率设置方面,USB摄像头连接电脑后,设置分辨率为640x480,以确保面部表情的细节清晰度,且最大限度提升运算速度。帧率设定为每秒10帧,以平衡采集频率与数据量,使面部表情变化可以被充分捕捉,同时减轻处理负担。其读取示例代码如下:
        import cv2# 初始化摄像头,设置分辨率和帧率
        cap= cv2.VideoCapture(0) # 0 表示默认摄像头
        cap.set(cv2.CAP_PROP_FRAME_WIDTH, 640)
        cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 480)
        cap.set(cv2.CAP_PROP_FPS, 10)
        在电脑端进行初步的图像处理,使用OpenCV实现人脸检测和图像灰度化,以优化后续特征提取的效率:
        import cv2
        # 加载人脸检测的预训练模型
        face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')
        while True:       
        ret, frame = cap.read()  # 读取帧        
        if not ret:        
        break        
        gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)  # 将图像转为灰度图       
        faces = face_cascade.detectMultiScale(gray, 1.1, 4)  # 检测人脸        
        for (x, y, w, h) in faces:        
        cv2.rectangle(frame, (x, y), (x + w, y + h), (255, 0, 0), 2)  # 在人脸区域画矩形       
        cv2.imshow('Face Detection', frame)       
        if cv2.waitKey(1) & 0xFF == ord('q'):        
        break
        cap.release()
        cv2.destroyAllWindows()
        然后,把识别出来的脸部信息传入表情识别模块中。这个模块使用fer2013/IMDB数据集及 keras CNN模型和openCV进行实时人脸检测和情感/性别分类。在两个开源的表情识别数据库中分别取得了IMDB性别分类测试准确率:96%。er2013情绪分类测试准确率:66%的成绩。其示例结果如下: 

纹理图提取后的表达图如下: 

5.课题讨论
        作为高中生,我们开发的术后疼痛监测平台基于多模态信息融合,通过整合GSR、心率、血氧及面部表情等多种生理和行为数据,实现对患者疼痛的实时评估。通过同时采集皮肤电导、心率、血氧及面部表情等信息,系统可在不同维度上捕捉疼痛引起的生理和行为反应,提升疼痛监测的准确性和可靠性。实验结果显示,GSR的峰值检测能准确反映疼痛的发生和持续情况,心率的波动也提供了疼痛刺激下自主神经系统的反应信息。相比单一信号的监测,多模态融合显著降低了误判的可能性,尤其是在面对环境干扰或个体差异时表现出较强的稳定性。
        系统采用的GSR传感器、心率和血氧监测等手段均为无创技术,避免了传统侵入性监测对患者的额外不适。这一设计使该系统在住院和家庭康复中的应用具有较大优势。然而,技术上的挑战主要在于传感器数据的准确性与稳定性。例如,皮肤电导值可能因环境温度、湿度等因素发生波动,导致结果偏差。因此,未来研究可考虑加入环境参数的监测与修正算法,以提高数据可靠性。
        本系统在设计时充分考虑了家庭护理场景的需求,通过低成本、无创的监测设备和便携式硬件设计,实现对术后患者的日常疼痛监测。然而,目前系统的普及性还受到一定限制,尤其是在传感器的可及性和易用性方面。未来工作可集中在设备的小型化和简易化,使其更适于家庭使用。此外,通过数据的云端共享,医生可远程监控患者的康复进展,从而提升术后护理的效率和效果。
        因系统涉及面部摄像头监测和生理数据采集,因此在实际应用中,患者隐私保护尤为重要。在未来的应用中,应严格遵循数据隐私保护的相关法规,确保患者的数据安全和使用透明,增加患者对系统的信任感。同时,可考虑通过本地化数据处理,减少云端传输的数据量,以进一步保护患者隐私。
责任编辑:李银慧