用于面瘫分级的自监督非对称特征学习方法

2021-07-01 13:21孙豪杰李苗钰章盼盼许鹏飞
西安电子科技大学学报 2021年3期
关键词:面瘫时序分级

孙豪杰,李苗钰,章盼盼,许鹏飞

(西北大学 信息科学与技术学院,陕西 西安 710127)

面瘫是一种较为常见的面部肌肉运动障碍的疾病。由于不健康的生活方式和精神压力,越来越多的年轻人患有面瘫疾病。面瘫的主要症状是患者面部表情肌肉丧失了正常的运动功能。患者无法正常表达出常见的面部表情。面瘫对患者的身心健康以及正常生活会产生不利影响。

大多数面瘫患者的临床特征是单侧性面瘫[1]。因此,面瘫评估主要是依据面部运动的不对称性和面部肌肉运动模式[1]。目前面瘫的诊断和分级评估基本都是由专科医生根据医学经验和相关标准进行的,诊断结果很大程度上受医生主观医学经验的影响,且效率低下。而利用计算机视觉技术的辅助诊断可以减轻医生的工作量,提高工作效率,减少诊断结果受主观因素的影响,提升准确性。

目前,利用计算机视觉技术的面瘫分级评估方法主要分为:① 基于静态面部图像的非对称性的评价方法,主要依据面部形状和纹理信息的不对称性[1-2]。这种方法高度依赖于关键点检测的准确性,而具有多种面部状态和复杂面部运动的患者面部关键点难以准确定位。此外,依据静态面部图像进行面瘫分级评估忽略了面部肌肉的运动特征,不能准确地表达面部运动的时序特征信息;② 难以通过多个相邻帧的级联而获得的特征向量来表达面部运动的时序特征[3-4];③ 现有的基于深度模型的面瘫分级评估(GoogleNet),主要是依据静态面部图像的特征信息来评估面瘫等级[5-6]。但是,该方法仅关注静态面部的全局特征,却忽略了面部运动的时序特征,以及面部的非对称运动。

通过对现有的面瘫评估方法的分析,并借鉴计算机视觉在相关领域的成功应用,例如行为识别、表情和微表情识别等,可利用先进的计算机视觉技术,并结合专业医生在面瘫诊断和分级评估的医疗经验,设计新的网络模型来有效解决面瘫分级评估问题。例如,可利用经典的分类模型,如GoogleNet[5]、VGG-16[7]、Resnet 34、Resnet 50和Resnet 101[8]来提取全局面部视觉特征,还可使用长短期记忆网络(Long Short-Term Memory,LSTM)[9]、CNN-LSTM[10]、三维卷积神经网络(3 Dimensional Convolutional Neural Networks,3D-CNN)[11]以及用于表情识别的卷积神经网络(Convolutional Neural Networks for Facial Expression Recognition,CNN-FER)[12]和微表情时空卷积神经网络(Micro Exp Spatial and Temporal Convolutional Neural Networks,Micro ExpSTCNN)[13]等提取面部运动的时序特征。但是,这些方法难以有效提取面部肌肉运动的非对称性特征,而这一特征又是面瘫分级评估的关键性特征。为此,提出双通道神经网络模型以提取面部两侧运动特征的差异信息。面瘫数据采集和标注成本高,数据量小,深度神经网络难以有效提取特征信息[14]。而自监督学习[15]能够利用大量无标签的数据在相关任务基础上对模型进行预训练,以提升模型的特征学习能力。因此,提出了一种用于面瘫分级评估的自监督面部非对称特征学习方法。该方法利用视频段的序列预测作为上游任务对3D-CNNs(C3D,R3D和R(2+1)D)模型进行预训练,以提高模型对面部运动时序特征的学习能力。与传统的面瘫评估方法中的特征提取不同,经预训练的3D-CNN模型可提取面部运动的时序特征,而非人工特征或基于二维卷积神经网络(2D-CNN)提取的二维特征。此外,在视频序列预测的上游任务中,可以利用大量无标签数据对3D-CNN模型进行预训练。且该上游任务并非传统的分类或评估任务,不同于模型迁移的下游任务。与视频分类任务相比,序列预测包含更丰富的监督信息,3D-CNN模型可以利用众多无标签视频数据,并且预训练后模型可较为容易地迁移到新的应用领域,例如面瘫分级评估任务。此外,笔者提出的方法重点关注整个面部和面部相关局部区域的面部非对称性运动特征,并将整体与局部的时序特征相结合,以用于最终的面瘫分级评估。

1 现有的相关研究

面瘫是指一种面部表情肌肉失去正常的运动功能,导致无法做出正常表情的疾病[16-17]。现有的基于计算机视觉技术的面瘫分级评估方法主要包括:基于静态图像的面部非对称性特征、面部运动的非对称性特征和深度模型提取的全局面部特征的方法。面瘫患者在进行面部诊断运动时,面部状态可以很好地反映面瘫的症状和严重程度。因此,基于静态面部差异特征的面瘫分级评估方法有:LIU等[18]通过比较面部两侧某些区域内的像素数来估计面瘫的严重程度;MODERSOHN等[19]提出了一种改进的主动外观规模(Active Appearance Model,AAM),用于检测患者的面部关键点信息,以提取面部形态差异特征;林杨[2]提出了一种基于Gabor特征和支持向量机的面部运动功能分类的面瘫评估方法;MA[20]提出了基于面部关键点与区域的面部神经功能评估方法;NGO等[21]通过结合Gabor和局部二值模式(Local Binary Pattern,LBP)功能对面瘫进行定量评估。后来,他们利用同心调制滤波器来测量滤波后图像两侧之间的不对称性,并实现面瘫评估[22]。尽管这些面瘫分级评估方法取得了较好的效果,但又高度依赖于关键点检测的准确性。此外,这些方法中使用面部的静态特征,难以很好表达面部运动的时序特征。

基于面部运动特征信息的面瘫分级评估方法有:NISHIDA等[23]通过计算面部关键点的运动距离以定量评估面瘫的严重程度;BARBOSA等[24]使用混合分类模型检测面部关键点,并通过跟踪面部关键点的变化信息实现面瘫分级评估;LIU等[25]从红外图像的相关面部区域提取面部温度分布特征,以进行面瘫评估。

深度神经网络学习特征的性能很大程度上取决于模型本身以及所用到的训练数据量[15]。然而,实际情况中难以获得与当前任务直接相关的大规模数据集,即使拥有这样的大规模数据集,对数据的标记也耗时耗力。而自监督学习方法能够从大量无标签的相关数据中学习视觉特征,一种流行的解决方案就是为网络模型提出多种相对应的上游任务。目前,已有较多的基于自监督学习方法已从大规模未标记图像或视频数据中学习视觉特征的方法和模型。例如,可以利用视频本身的时间连贯性与动态性,自动生成大量带标签的图像或视频数据对相关模型进行预训练。WANG等[26]采用了自监督学习方法来学习目标区域的视觉表示,而这些目标区域又是从无标签视频中提取获得的。其中,层次聚类法用于捕获帧之间的外观演变特征[26],预训练后的模型可用于学习视频特征表示。在文献[26]中,帧序列预测方法用来判断视频帧序列是否有序。XU等[27]引入了视频段序列预测任务作为行为识别的上游任务以利用视频的内部动态特性,此上游任务适合使用3D-CNNs模型从视频中学习时序特征信息。

2 用于面瘫分级评估的自监督面部非对称特征学习

在面瘫诊断过程中,患者需要根据医生的指示做出若干相应的诊断动作,以便医生根据患者面部运动的不对称性来评估面瘫的严重程度。因此,应重点关注面瘫患者面部运动的非对称性特征。另外,为能够使得深度网络模型能够从相对较少的面瘫视频数据中有效提取面部运动的时序特征,引入了“预训练-迁移”的策略,采用自监督学习的方法,通过视频序列预测的上游任务对模型进行预训练,以提高模型有效提取时序特征的能力,从而提高下游任务面瘫分级评估的性能。

如图1所示,所提出的面瘫分级评估方法主要包括视频序列预测的上游任务和面瘫分级评估的下游任务两个阶段。为进行视频序列预测,首先将面瘫的诊断视频中人脸对称地划分为左侧脸和右侧脸,并将这些单侧脸的视频采样为若干个视频片段,再按其可能的顺序打乱;然后利用3D-CNNs (C3D、R3D和R(2+1)D)模型进行视频序列预测任务的预训练。预训练后的3D-CNN模型就具有能够学习面部运动时序特征的能力。接着,将预训练后的模型迁移到面瘫分级评估的下游任务,利用面瘫诊断视频对预训练后的3D-CNN模型进行微调。最后,利用3D-CNN模型提取的时序特征的差异信息进行面瘫分级评估。此外,整个模型结合了面部整体的非对称性特征和局部非对称性特征进行面瘫分级评估。

2.1 视频预处理与人脸对称分离

图2 面部对称分离

对于选取后的每一个视频帧,首先采用Faster RCNN[28]进行人脸检测,然后利用AAM算法检测人脸关键点,并通过计算面部中轴线实现面部对称分离。但由于面瘫患者的面部差异大,AAM算法难以准确检测面部关键点。因此,选择两个位置相对稳定的关键点进行面部对称分离,即关键点P1(x1,y1)和关键点P2(x2,y2),如图2所示。

2.2 基于视频序列预测任务的3D-CNN网络模型的预训练

图3是面瘫视频序列预测任务的模型预训练的整体框架。首先,根据2.1节所描述的方法将所有视频帧中患者面部对称分割为左、右两个侧面。然后,将所有的单侧面部视频统一进行帧采样为多个子视频段,并按照可能存在的顺序重新打乱。例如,对于一个面瘫诊断视频,可以采样为3个子视频段,则有6个可能的序列关系。当然,还可以采样为更多的子视频段和更多可能存在的序列。但对于面瘫诊断,部分患者的面部动作非常迅速,导致只能采集到短暂的面瘫诊断视频;这些视频的帧数较少,不适合采样为多个子视频段。

对每一个视频采样后的多个子视频段的顺序进行随机置乱处理,形成多个可能的子视频段序列,以作为视频序列预测[27]上游任务的输入数据。使用3D-CNN模型提取每个子视频段的时序特征信息,并进行子视频段的序列预测。如图3所示,对一个视频的多个子视频段使用相同的3D-CNN模型提取特征信息,并使用多个3D-CNNs(C3D、R3D和R(2+1)D)模型进行实验以验证自监督方法的可行性。通过上游任务,可以得到相应的3D-CNN预训练模型。这些模型具有学习面部运动特征的能力。将这些模型迁移到面瘫分级评估的下游任务中。

图3 面瘫视频的子视频段的序列预测框架

2.3 基于预训练模型的面瘫分级评估

面瘫诊断时,专业医生需要通过观察患者面部肌肉在整个运动过程中的状态变化来评估面瘫的严重程度。而面瘫的症状主要表现为单侧性面瘫,患者在做面部诊断动作时,两侧面部的状态变化不一致,呈现面部运动的不对称性。这反映了面部表情肌肉的运动功能的不协调性,也是面瘫的严重程度评估的重要依据。因此,面瘫分级评估应该重点关注面部表情肌肉运动的不对称性特征。此外,医生进行面瘫诊断和评估时,不仅关注患者面部整体的变化信息,同时还关注与诊断动作相关的局部面部区域的运动特征。因此,可以结合整体面部和相关面部局部区域的运动差异特征来进行最终的面瘫分级评估。

通过子视频段序列预测的上游任务所获得的预训练后的3D-CNN模型,已经具有一定的学习人脸动态特征的能力。然后,将这些模型迁移到面瘫分级评估的下游任务中,使用记录完整面部运动的视频对这些预训练模型进行调优训练,如图4所示。

图4 基于预训练模型的面瘫分级评估的框架

在图4中,使用两路3D-CNN模型提取面部两侧的运动特征,并通过FD=(Fl-Fr)2计算运动特征的差异信息,Fl和Fr分别是提取的面部左、右两侧的运动特征。因此,对于全局面部非对称性特征的提取,使用面部整体运动的帧序列X=(x1,x2,x3,…,xi,…,xT)作为输入数据,xi为第i帧。对人脸进行对称分离,并将人脸的对称两侧输入到3D-CNN模型中,提取其时序特征。利用FD,g=(Fl,g-Fr,g)2计算面部整体的非对称性特征。而针对与面部诊断动作相对应的面部局部区域非对称性特征的提取,计算方法类似。可利用FD,lr=(Fl,lr-Fr,lr)2得到局部面部运动的非对称性特征。最后,将FD,g与FD,lr级联融合,形成一个新的特征向量,用于最终的面瘫分级评估。

3 实验与讨论

3.1 实验设置

为了实现面瘫的自动分级评估,采集了面瘫患者的面部诊断动作的视频数据。数据集有117名面瘫患者的视频,40名志愿者的视频。每个人都要做7个面部动作,包括抬眉、闭眼、耸鼻、鼓腮、示齿、微笑和皱眉。且每个人都要重复3次这7个面部动作。

请专业医生给这些视频数据按面瘫分级情况进行标注,将面瘫的严重程度分为正常、轻度、中度和危重4个等级,并用0、1、2、3表示。所有视频数据的70%用于模型训练,训练数据按5∶1分配作为训练集和验证集;剩余的30%视频数据作为测试集。另外,还使用一些传统的需要使用静态的面部图片来评估面瘫的严重程度的方法作为对比实验,因此从所有视频片段中选取关键帧作为对比实验的数据,这些关键帧反映了面部诊断动作最大的动作状态。此外,准确率(Acc)、精确率(Pre)、召回率(Recall)和F1用于不同方法性能的评价参数。

3.2 实验结果与分析

为验证笔者提出的面瘫分级评估方法的有效性和先进性,采用了5类面瘫分级评估方法进行对比:传统的基于人工特征的方法、基于卷积神经网络的方法、用于表情识别方法、基于LSTM的方法和基于3D-CNN的方法。实验结果如表1所示。

表1 与目前最先进的方法进行比较

对于面瘫分级评估,WANG[1]的方法是采用静态面部非对称性特征的经典方法(LBP+SVM)。在实验数据上,利用视频中挑选出来的表情最大程度的静态面部图像进行测试,该方法的平均精度约为56.73%。而基于Gabor特征和支持向量机[2]的方法准确率更低,但是在召回率和F1评分上有更好的结果。这两种方法的性能整体上都低于基于卷积神经网络的方法。其原因在于人工特征难以准确表达深层的面部非对称性特征,且这些方法主要关注全局的面部特征,没有考虑局部的面部运动特征,且这些方法对实验图像有更严格的要求。

基于卷积神经网络的方法也可以应用于面瘫分级评估任务中,并在从视频中挑选出表情最大程度的静态面部图像上进行测试。与传统方法[1-2]相比,GoogleNet[5]和VGG-16[9]的面瘫分级评估方法在准确率和精确率方面表现相似,但在召回率和F1方面表现更好。而基于Resnets[10]的方法在4个评价参数上都有大幅度提升。其中,Resnet 50的性能优于传统方法[1-2],准确率约为66.67%,F1得分约为67.90%。这些实验结果表明,基于卷积神经网络的模型可以捕获到更有效的面部非对称性特征。

将面部表情和微表情识别方法应用于面瘫分级评估。由表1可以看出,其效果欠佳。其中,MicroExpSTCNN[13]在准确率、召回率和F1得分上都优于CNN-FER[12]。但由于这些方法主要关注面部整体运动特征,而不是面部运动的非对称性特征,因此,难以取得良好的面瘫评估效果。相比之下,文中提出的方法充分考虑了面部整体和局部运动的非对称性特征,同时通过自监督训练的策略提高模型特征提取的能力,从而在最终的目标任务中取得了最佳的性能。与MicroExpSTCNN[13]相比,笔者提出方法(R3D(自监督))在准确率、平均精度、召回率和F1评分上分别约有39.37%、38.02%、40.04%和29.31%的提升。

最后,利用基于LSTM[11]和CNN-LSTM[12]的模型以及基于3D-CNN的模型进行面瘫分级评估。与传统的基于人工特征的评估方法、基于卷积神经网络的方法以及用于表情识别的方法相比,基于LSTM的方法总体上具有更好的性能。原因在于这些方法能够更有效地提取面部肌肉运动的时序特征。而未经过自监督预训练的3D-CNN模型进行面瘫评估的性能仍然较差,原因在于随机初始化的网络模型难以在小规模的面瘫视频数据中学习到有效的面部动态特征。此外,这些方法侧重于面部运动的整体特征,而不是面部运动的非对称性特征,而这又是面瘫评估的关键性特征。而笔者提出的方法在视频序列预测的上游任务中预训练的3D-CNN模型具有提取面部两侧的动态特征的能力,并将其迁移到面瘫分级评估的下游任务中,通过利用面部运动的差异特征来评估面瘫的严重程度。此外,提出方法还结合了面部的全局和局部运动的时序特征,进一步提高了面瘫分级评估的准确性。实验结果表明,笔者提出的方法在准确率、精确率、召回率和F1方面均具有最优的性能。

4 结束语

笔者提出了一种用于面瘫分级评估的自监督面部非对称特征学习方法。该方法以视频序列预测为上游任务对3D-CNNs(C3D、R3D和R(2+1)D)模型进行预训练;然后,将预训练后的3D-CNN模型迁移到面瘫分级评估的下游任务中。利用自监督学习的3D-CNN模型可以利用大量无标签视频数据在上游任务中学习视频的时序特征信息,很大程度上解决了小规模面瘫视频数据的有效特征难以准确提取的问题。此外,结合面部整体和局部运动的时序特征来评估面瘫的严重程度,符合专业医生通过观察患者的整个面部和面部相关局部区域的运动信息来评估面瘫的严重程度的原则。实验结果表明,笔者提出的方法比现有面瘫分级评估方法具有更好的性能。然而,笔者提出的方法以及现有的面瘫评估方法是通过视频分类的方式进行面瘫严重程度分级的,这一方式难以很好处理面瘫严重程度相邻水平之间的模糊性,这也将是面瘫分级评估研究中需要解决的一大挑战。

猜你喜欢
面瘫时序分级
顾及多种弛豫模型的GNSS坐标时序分析软件GTSA
中医针灸推拿与中药联用治疗面瘫的临床分析
周围性面瘫应用针刺联合雷火灸治疗的效果评价
清明
基于GEE平台与Sentinel-NDVI时序数据江汉平原种植模式提取
针灸联合面部推拿治疗面瘫效果好
你不能把整个春天都搬到冬天来
2016年年末净值规模低于5000万元的分级基金
完形填空分级演练
完形填空分级演练