时间:
1 引言
疼痛是一种包含感官、情感、认知和社会因素的、与实际或潜在的组织损伤相关的痛苦体验。同时,疼痛也是最常见的临床症状之一,在当前的医疗保健、康复医学中具有巨大的应用潜力和医疗意义。目前临床上疼痛检测主要依靠患者的主观报告,即在指定的时间内报告当前疼痛的等级(如 0~10)。然而,自我报告可能受到病人主观性和心理因素的影响,缺乏统一的评判标准。对于一些如婴幼儿或意识障碍患者等无法清晰表达自身疼痛等级的群体,这种方法也失去了作用。因此,自动疼痛识别技术就成为研究者探索的热点领域。
在过去几十年中,科研工作者从各个方面对疼痛识别进行了研究。一部分研究者通过生理信号提取相关的疼痛特征,如心电(ECG)、脑电(EEG)和肌电(EMG)等,取得了显著的进展。但这些生理反应的获取往往需要复杂的设备,不利于大规模应用,并且有可能加重患者的不适体验。因此,为提供更便捷、舒适的疼痛评估方法,基于人脸的无感疼痛分析具有其合理性和可行性。
传统的人脸疼痛识别方法主要对人脸的纹理、几何特征建模,从而挖掘蕴含的疼痛信息。主流的方法包括主成分分析(Principal Component Analysis,PCA)和局部二元模式(Local Binary Patterns,LBP)。另外,还可以通过主动外观模型 (Active Apperance Model,AAM)或主动形状模型 (Active Shape Model,ASM)来捕捉像素点的数学变化。然而,传统的手工特征无法得到深层次的空间信息以及时序信息。因此,如今人们更倾向于采用具有强大表征能力的深度学习方法来进行面部疼痛识别。El Morabit 等和 Ye 等通过卷积神经网络(Convolutional Neural Networks,CNN)和局部注意力聚焦更细致的静态表征;Zhou 等和 Rodriguez 等将多帧图像的静态特征送入循环神经网络(Recurrent Neural Network,RNN)进行时序建模。de Melo 等和 Huang 等进而使用 3D CNN 直接提取视频序列中的时序信息,捕捉更多的和疼痛表情相关的动态特征。然而,这些研究均未对动态和静态疼痛特征进行融合。为了解决这个问题,一些工作同时考虑了动态和静态特征,并纳入了面部关键点,以获取更全面的特征描述。尽管如此,这些研究仅从特征提取角度出发,并未考虑不同程度疼痛之间的差异。不同等级的疼痛(如 1 级和 10 级)通常对应不同的面部特征,这种差异特征则是区分不同疼痛等级的关键。因此,在疼痛评估的过程中将这种面部差异纳入考虑具有充足的可行性。
受到上述工作的启发,本文提出了一种基于对比学习的面部疼痛评估方法。首先,提取同一样本不同模态的信息,包括时序特征、面部外观特征和面部关键点的几何特征,得到全面的疼痛信息表征;其次,通过引入对比学习的思想学习不同疼痛程度间特征的差异性,更有效地对疼痛等级进行区分;最后,设计了一种损失函数学习方法,自动学习对比学习损失和传统均方误差损失的比重。本文在 UNBC-McMaster 数据集上进行实验,和现有方法相比具有最好的性能,证明了本文方法的有效性。
2 相关工作
2.1 面部疼痛识别
面部表情可以最直观地反应人类所承受的疼痛状况,因而成为研究疼痛的重要手段。早期研究者将其视为 1 个二分类问题,即只判断有无疼痛。Ashraf 等使用支持向量机(SVM)对通过 AAM 获得的相似归一化形状、相似归一化外观和规范外观进行分类,证明了自动识别疼痛的可行性。
Lucey 等使用相同的方法在他们提出的 UNBC-McMaster 数据集上进行了实验,通过识别面部动作单元(Action Units,AUs)计算 PSPI 评分(Prkachin and Solomon Pain Intensity,PSPI)作为度量指标。PSPI 将疼痛分为 16 个等级,其中 0 表示无痛,15 表示最强的疼痛等级。Khan 等通过分层梯度方向直方图(Pyramid Histogram of Oriented Gradients,PHOG)和分层局部二值模式(Pyramid Local Binary Pattern,PLBP)提取有区分性的面部形状与外观特征。Zafar 等使用 KNN 对建立的面部几何特征集进行分类。
然而,只判断有无疼痛是非常粗糙的,无法满足实际的应用。因此,越来越多的研究人员开始对疼痛的强度进行估计。最初研究者使用传统手工特征如离散余弦变化(Discrete Cosine Transform,DCT)和 LBP、形状直方图(Histograms of Topographical,HoT)、尺度不变特征变化(Scale Invariant Feature Transform,SIFT)等来挖掘疼痛特征。近年来,基于深度学习的方法已经成为主流。Thiam 等设计了一个双流网络,通过注意力机制关注光流和历史运动图像中的特征。一些方法通过分析视频序列中的时序信息,学习疼痛产生时面部表情的变化。文献提取了面部关键点的位置和几何信息,进而对疼痛特征进行表征。另外,静态的面部图像也蕴含丰富的疼痛信息,研究者们以全局和局部的角度作为切入点,通过注意力机制深入挖掘疼痛信息,展开了相关的工作。Huang 等和 Wang 等将上述的时序、关键点和面部图像信息整合起来以得到更全面的特征。然而,以上工作都忽略了不同强度疼痛对应面部特征的差异,因此本文借助对比学习的思想来解决这个问题。
2.2 计算机视觉中的对比学习
对比学习作为一个新兴的领域,近年来也被引入到计算机视觉的相关任务中。Wu 等把数据集中的每一个样本都看作一个类别,通过这种个体判别任务将对比学习引入到计算机视觉中。He 等在此基础上进行改进,通过队列和动量编码器来提升对比学习的性能。由于将每一个样本都当成一种类别需要占用额外的计算资源,Ye 等和 Chen 等在一批数据中定义正负样本,通过最大化正样本特征的一致性进行训练。Tian 等将同一个场景的不同视角作为正样本来增大不同视图下的互信息,从而学习一种具有视角不变性的本质特征。
传统的对比学习都是基于无监督的范式,无法有效利用标签中的信息。Khosla 等首先对无监督的方法进行扩展,提出一个有监督且易于实现的损失函数来利用标签信息。Ma 等提出了一种有监督的对比学习框架,利用多头自注意力区分不同视图不同模态的相对重要性。Yuan 等使用数据增强的方式学习模态类内的本质特征,同时通过模态类间的对比提取跨模态的语义特征。Mai 等通过探索音频、视觉和文本信息的类间关系,获得了更充分的联合嵌入特征,以进行更深入的情感分析。Mustafa 等利用图像和文本对稀疏混合专家模型进行训练,并提出了一个基于熵的正则化方案用来稳定训练。然而,这些方法没有关注与任务相关的损失函数,因此,本文设计了一种联合优化对比学习和与任务相关的损失函数的方法。
3 算法设计
3.1 整体结构
针对目前工作没有对比不同疼痛等级的特征差异,无法有效区分疼痛等级的问题,本文提出了基于对比学习的面部疼痛评估方法。首先,为了得到更加全面的疼痛特征,本文对视频序列中的多模态信息进行提取。对于视频序列中任意一帧静态图像 i,利用带有预训练权重的 ResNet-50 网络作为特征提取器提取静态的面部外观特征;然后通过堆叠标签相同的视频帧形成时序通道输入,利用 S3D-G 网络提取其中的时序信息,捕捉更多的面部动态特征;随后,使用一维卷积来提取经过处理后的人脸关键点数据(AAM),得到面部的几何特征,最终形成样本 i 的特征集。对于一个批次的数据来说,对其中的每一个样本做相同的处理,得到这个批次中所有样本特征的集合 F。之后通过对比学习区分 F 中不同疼痛等级样本的嵌入特征,学习更丰富的疼痛信息,提高视觉表征的质量。最后,通过自适应权重更新的方法联合优化对比学习损失和均方误差损失,增强网络的性能。
3.2 多模态特征提取
为了更充分地利用已有信息,本文分别利用三维(3D)、二维(2D)和一维(1D)卷积网络提取样本中的疼痛信息。由于面部表情的动态变化是人类表达疼痛的重要区别特征,所以本文使用 S3D-G 网络来提取图像序列中的时序特征,S3D-G 网络在计算复杂度和准确率上达到了平衡。Zhou 等的研究表明,在 3D 特征中引入 2D 特征可以得到更深、信息量更大的特征图。因此,本文利用 2D 的 ResNet 网络提取静态图像中的面部外观特征,得到局部疼痛特征。另外,通过面部关键点的识别,可计算出客观的 PSPI 评分,证实了它与疼痛表达的关联性。因此本文首先参照文献中的方法对关键点数据进行归一化,然后利用 5 层 1D 卷积提取面部关键点中的几何特征,与上述的 3D、2D 特征构成完备的特征集合。最后,将得到的特征拼接后通过全连接层得到疼痛评估分数,并使用均方误差损失(mse loss)对模型进行优化。
3.3 疼痛对比损失函数
不同程度的疼痛通常对应着不同的面部表情,因此,对面部表情加以区分对于疼痛识别至关重要。然而,现有的工作多关注于疼痛特征的提取,无法有效区分疼痛等级。为此,本文提出了一种疼痛对比损失函数(con loss),通过对比具有不同 PSPI 评分的样本来学习不同疼痛程度对应面部特征的差异,提升了网络的泛化性和鲁棒性。
本文使用有监督的对比损失函数来利用标签中的信息。有监督对比学习将具有相同标签的数据视为正样本,因此可以学到更高阶的语义信息。本文将数据集中的静态图像视为样本 i,将由其得到的时序信息和面部关键点数据作为数据增强方式,以此得到对比学习所需的正样本。分别提取特征后,在对比不同疼痛等级所对应的面部特征时融合多模态的疼痛数据。
3.4 自适应损失函数权重更新
在一次前向传播中,模型只能得到当前批次的数据,无法得到整个数据集全面的特征,因而计算出的损失函数具有局限性。为了在模型迭代过程中更严谨地约束模型的更新,本文设计了一种权重更新方法(Weight Update,WU)融合 con loss 和 mse loss 。权重的计算通过 Sigmoid 激活函数,由此学习到的权重范围就在 0 到 1 之间,通过持续地从不同批次样本中学习,可以不断更新两种损失函数在整个数据集下的权重,使得计算出的总损失函数更具有代表性。随着模型不断更新迭代,得到的损失函数更能准确体现预测值与真实标签的差异,从而更好地利用这种信息。
4 实验结果与分析
4.1 实验数据集
本文在 UNBC-McMaster 数据集上对提出的方法进行验证。UNBC-McMaste 是一个肩痛表情数据集,也是疼痛识别领域最常用的数据集。其中包含了 200 个视频序列,记录了 25 个成年肩痛患者的面部表情。该数据集每一帧都提供了 66 点的面部关键点坐标,并且用 0~15 的 PSPI 评分作为真实标签。
对于不同通道数据的获取,本文遵循文献中的方法。即抽取视频序列中的一帧得到静态图像,通过面部关键点坐标和仿射变换进行人脸裁剪及对齐,作为外观支路的输入。随机选取和当前帧疼痛等级相同的 15 帧和当前帧拼接成 16 帧作为时序支路的输入。使用距离归一化方法处理关键点信息,得到一维的特征向量,并将其作为关键点支路的输入,进而对所有的视频帧进行评估。
4.2 实验设置及指标计算
在数据预处理时,本文将裁剪后的人脸图像缩放至 112×112,并进行随机水平翻转。为了在对比不同疼痛程度时得到更全面的特征,将 3 个通道的输出维度都调整为 2048 维。网络使用 SGD 算法进行优化,初始学习率为 0.0001,使用余弦退火调整学习率,总训练迭代数为 40。实验环境为 Ubuntu 20.04,NVIDIA GeForce RTX 4×3090。
参照之前的工作,本文使用留一验证法(Leave One Subject Out)进行实验,即选取数据集 中的每一位受试者作为测试集,其余的受试者作为训练集进行训练,如此重复 25 次,最终以 25 次实验结果的平均值作为指标结果。本文采用平均绝对误差(Mean Absolute Error,MAE)、均方误差(Mean Square Error,MSE)和皮尔逊相关系数(Pearson Correlation Coefficient,PCC)。MAE 和 MSE 表示预测值和真实标签的距离,越小越好。PCC 可以反映变量间的相关度,越大越好。
4.3 实验结果及分析
本文和目前最先进的方法进行了比较,结果显示本文方法 MAE 和 PCC 上达到了最好的效果,在 MSE 上基本与最先进的方法持平。使用传统手工特征进行疼痛识别的方法存在特征单一、泛化性差以及准确率较低的问题。具有强大的表征能力、可以端到端学习的深度学习方法逐渐成为主流。有的方法通过捕获面部变化探索多尺度时间信息 ,再使用卷积网络提取面部的静态特征,然后将得到的特征送入循环神经网络中表征时序信息,从而构建时空模型。有的方法使用更强大的 3D 卷积网络直接提取视频序列中的时序特征,同时将静态图像特征和关键点特征也纳入考虑,取得了更好的效果。本文与性能较好的方法均提取了面部图像的时序信息、外观信息和关键点信息。与这些方法相比,本文在 3 个指标上均有较大的提升,说明通过对比学习的方法,能够充分学习到不同疼痛等级对应面部特征的差异,从而在疼痛评估时更好地区分疼痛等级。另外,之前的方法仅使用单一的损失函数,无法有效指导网络训练。本文提出的损失函数权重更新方法可以动态地结合对比损失和均方误差损失,充分利用数据集中的信息。
为了更直观地展示文本方法在数据集上的效果,进行了可视化实验对比疼痛标签的真实值和预测值,加入对比学习的损失函数以及自适应权重更新后的结果,可见预测结果更加接近真实值,且对于无疼痛的预测非常准确,证明了本文方法的有效性。
4.4 消融实验
本文还开展了一系列消融实验来验证网络中各个模块的有效性。以单支路的关键点几何特征(AAM)作为比较基准,在加入用 Res50 提取的外观特征后,所有指标均得到改善,说明结合几何特征和面部外观特征可以更精确地评估疼痛等级。加入用 S3D-G 提取的时序特征时,所有指标也得到改善,说明捕捉时序信息可以获得和疼痛相关的面部动态特征,有助于疼痛识别。此外,在加入基于对比学习的损失函数(CL)后,MAE 指标有较大提升,MSE 和 PCC 基本保持不变,说明对比不同疼痛等级下的特征可以减小预测误差,使结果更为拟合。最后,在引入损失函数权重更新方法(WU)后,所有指标均有提升,说明在更全面地利用数据集中的信息后可以提升疼痛识别效果。本文采取留一验证法进行实验,所以学习到的权重 r 随着不同子集而变化。除去一个标签全部为无痛的子集,r 的值都在 0.3~0.7 的范围内,验证了联合优化基于对比学习的损失和均方误差损失的有效性。
5 结论
疼痛等级具有类间差异大的特点,考虑到现有方法不能有效区分不同疼痛等级下的面部差异,本文提出了一种基于对比学习的面部疼痛评估方法。首先分别提取了面部的多模态特征,随后将其作为正样本对进行疼痛等级的对比学习,最后设计了权重更新方法自动学习对比学习损失和均方误差的比例,更有效地利用预测值和真实值的误差信息。在 UNBC-McMaster 数据集上的实验表明,将不同程度疼痛间的差异纳入考虑可以提升评估性能,证明了本文方法的有效性。
另外,本文研究还有一些可扩展的方面。首先,不同模态特征虽具有差异,但其代表的本质是一致的,如何在学习本质特征的同时消除模态差异是一项关键任务。此外,疼痛等级之间的差异应有所区别,相近疼痛等级的差异应相对较小,如何考虑这种差异也是今后的研究方向。
徐日升;卿粼波;熊昆洪;高 峰,四川大学电子信息学院,202501