段群, 郭新明, 黄素萍, 谢飞
(1.咸阳师范学院 计算机学院,陕西 咸阳 712000;2.西北工业大学 计算机学院,陕西 西安 710129;3.西安电子科技大学 前沿交叉研究院,陕西 西安 710068)
面瘫是以面部表情肌群运动功能障碍为主要特征的一种疾病,面瘫病症的诊断目前主要还是依靠医生通过“望闻问切”的诊断方法来对病人的病情进行诊断并评估面瘫病症的严重程度。随着计算机视觉技术的发展,相关学者开始探索能否利用计算机视觉的相关方法来协助、甚至代替医生“望”诊的工作。此外,利用计算机视觉技术进行诊断还能够较大程度上避免医生在诊断时受主观因素的影响。
关于面瘫的自动分级与评价,国内外学者已进行了许多该方面的研究。王倩倩等[1]基于AAM关键点定位的算法提出了一种面神经运动功能评价方法,徐峰等[2-4]主要提出了人脸微表情的识别方法,此方法不能直接应用于面瘫病症诊断过程中的等级评估。现有的研究成果基本都集中在面瘫检测和面部不对称性评价的相关研究。大部分的研究缺乏对这种面部不对称性评价进行进一步量化和分级评估,而且没有建立一套完整的评价准则,不能切实地应用于临床。
针对此问题,本研究引入深度学习在视频处理与分析中的相关理论和方法,探索设计能够学习更本质、更有效的人脸运动特征信息的深层非线性网络结构。
针对面瘫病症严重程度的自动评估的相关研究,由于研究对象涉及个人隐私问题,目前国际上还没有公开的数据集。为此,与陕西省中医医院针灸医疗科室合作,协调患者关于面部数据隐私的相关问题,制定相应的数据采集标准与规范,进行数据采集。主要包括如下。
1)图像和视频拍摄要求
关于拍摄设备:手机即可,拍摄图像或者视频中人脸区域的分辨率在200×200像素以上即可。
关于数据的存储格式:每个病人样例的数据放置在同一个文件夹下,文件夹中包含无面部动作的照片以及7种面部动作(微笑、抬眉、皱眉、闭眼、耸鼻、示齿、鼓腮)的照片和短视频,每种面部动作的数据用其动作名称作为短视频和照片的文件名。此外,还应适当考虑数据的多样性,即人员的胖瘦、不同的年龄阶段、性别等因素。
对于相应视频数据的获取方式:每个动作让志愿者做2次,第一次拍该动作短视频;第二次拍对应的静态图像。然后对每个样例(“样例”指的是某个病人/正常人的一次测试。对于正常人,只需测试一次,而对于病人,可测试2到3次,记录康复过程中的不同阶段。)进行标注(无面部动作以及7个动作中每个动作是否属于面瘫症状;以及此面瘫症状的严重程度应该属于的级别)。
2)数据标注的要求
医生的标注判断必须要明确,不能模糊。如果对于同样一个表情,有的医生认为是中度,有的认为是重度,当这种情况常常发生时,会严重影响计算机作出有效的模型!在对面部动作进行标注时,需要根据不同的面部动作所关注的不同的区域分别予以标注。例如耸鼻时,主要标注耸鼻运动时面部的异常程度,可对相应关注的区域进行标记,标签主要分为:正常=0,轻度=1,中度=2和重度=3这4个标准。其他面部动作的数据标注与之类似。
针对利用计算机视觉技术进行面瘫病症诊断的任务场景,设计一种可以同时提取面瘫患者面部动作的空间特征与时域特征的深层神经网络模型,以完成在面瘫诊断时对面部动作开始与结束状态的识别,实现对面瘫诊断视频按面部动作类型进行的划分。该网络结构的关键在于卷积层的设计,由于任务场景中,视频帧之间的差异,主要在于面部皮肤运动的变化,相对于图像整体来说变化微小,空间特征之间的差异信息难以提取。具有高分辨率的视频帧序列带来的卷积层的参数太多,计算复杂度太高。而传统CNN一般每层仅包含一个局部感受野较大的卷积核,或者局部感受野较小的卷积核。然而,大尺寸的卷积核,参数规模大,计算成本高,特征表达能力有限,获取了整体运动信息,但忽略了面部变化的细节。而小卷积核只能提取面部运动过程中的细节特征,却无法提取面部整体特征。
针对这些问题,将大的卷积核分解为若干个小型卷积核叠加。使用多个较小的卷积核的卷积层代替一个卷积核较大的卷积层,使得网络的层次更深,不仅可以减少参数,并且进行了更多的非线性映射,可以增加网络的拟合表达能力。不仅可以提取面部运动的整体运动信息,并且也可以提取过程中的细节特征。由此设计了多重卷积神经网络结构:包含4组卷积层,3个全连接层,一个softmax层,描述网络的整体结构如图1所示。
图1 多重卷积神经网络框架及设置
首先将序列视频帧经过多重卷积神经网络的一系列处理得到的特征向量。然后,将特征序列带入LSTM中,进而对面瘫诊断动作的开始和结束状态进行准确识别。在整个过程中,视频帧序列的长度T的选择直接影响了动作状态识别的准确率。序列长度足够短,运算速度快,但是面部动作变化细微,需要足够长的序列,获取充足的信息才能进行有效动作识别。完整的算法框架如图2所示。
图2 基于多重卷积神经网络模型的面瘫动作开始与结束状态识别框架
基本思想是融合人脸图像的结构特征与纹理信息,然后利用LSTM神经网络进行面瘫等级评估。特征参数主要分为两部分:特征点矢量和纹理特征变化信息。在获取特征点矢量与特征块之前,首先利用主动外观模型(Active Appear-ance Model, AAM)对人脸进行特征点进行定位。如图3所示。
(a)面瘫患者面部图像
1)基于特征点矢量的特征提取
个体之间存在很大差异,在脸型和器官形状上表现尤为突出。面部各器官的不同导致个体在做同一个面部动作时都具有很大的差异。人在做微笑的面部动作时不同个体嘴巴变化的程度都不一样。因此,在基于结构特征的面瘫识别研究中,应考虑个体差异对识别结果的影响。利用AAM 算法对人脸共计68 个特征点进行定位,如图4所示。将选取的特征点记为pi(i=1,2,…,68)。在人脸关键点中,当面部进行不同的面部动作时。多数关键点都会发生位置变化,但是鼻梁上的3个关键点几乎不变,我们称此3个关键点为主关键点,如图4中红色标记的关键点。因此,我们定义面部各特征点与鼻梁3个主关键点之间两两构成的矢量为特征点矢量,那么每个关键点在每张静态帧中都有3个特征矢量,构成自身的特征信息。基于特征点矢量,计算特征点之间的欧氏距离,那么每个关键点在每张静态帧中都有3个特征矢量的欧式距离。整个面部共有68-3=65个关键点的欧式距离向量,共65×3维。定义矢量距离特征向量为Df(f=1,2,…),f为视频帧序号。
图4 面部特征点运动矢量分析
然后基于视频信息,每两个连续帧之间特征矢量的距离会发生变化,我们计算连续两帧之间的距离变化参数Pn,n-1=Dn-Dn-1,2≤n≤N,N为整个视频的帧数。随着视频的持续,可以得到一个N×195的距离矩阵P。
2)纹理形变参数
人在做某些面部动作时,总会伴随着面部纹理的变化,从而使原本平滑的皮肤表面变得复杂。如何利用面部纹理的变化进行面瘫等级的评估是我们关注的研究点。例如微笑主要是嘴和面颊的运动,并产生纹理变化,如图5所示。2个特征块记为Mn-1和Mn,其中下标代表帧序号。然后计算特征块的纹理特征,例如LBP特征。患者做面部动作时,相应的肌肉均在运动,导致相应区域的纹理发生变化,我们计算Qn,n-1=LBPn/LBPn-1,2≤n≤N,N为整个视频的帧数。随着视频的持续,可以得到N个纹理差异矩阵Q。
图5 纹理变化参数的提取
最后,对P和Q进行归一化,获得最后的特征向量,并将其作为LSTM的特征输入,最后得到面瘫等级的评估结果。
在本研究的任务场景中,视频帧之间的差异,主要在于人脸皮肤运动的微小变化,特别是轻微面瘫患者的面部动作与正常人面部运动之间的差异,以及患者在恢复过程中面部状态之间的差异非常微小,运动细节差异特征难以准确提取。为此,结合可见光和深度视频两种类型的视频数据,提出融合多特征的多任务深度神经网络模型,由2个通道时域卷积神经网络组成。
不同于传统的卷积神经网络,该网络是在时间维度上有2个相互关联的通道构成,利用了多任务训练的方法把2种数据源联合起来,用于提取视频中面部动作的运动特征。网络框架图如图6所示。该网络主体部分由2个通道组成,其中,通道一是对可见光时序RGB图像提取面部运动状态特征的卷积神经网络,输入是原始视频数据的序列帧;通道二主要关注深度视频中面部运动特征的提取,网络输入为深度视频序列帧中面部运动差异信息。2个通道之间通过交叉链接层对各通道进行正则化,使得各通道间参数协调优化。
图6 多源视频融合的多通道神经网络框架图
由于网络模型中各通道的网络架构和数据类型不同,学习的特性具有有利于处理运动数据流中细微差别的特性。为对网络关注机制进行建模,需要对网路模型中的各通道间建立正则化约束,一般在整个网的前一到两层的范围内。建立该正则化约束包括以下3个步骤:减小流特征张量x_flowl的维度、均方差归一化和注意力预测。
令x_rgbl∈iCl×Tl×Hl×Wl,x_flowl∈iCl×Tl×Hl×Wl分别为空间和时间上的l∈{0,1,…,L}层的特征映射,Cl,Tl,Hl,Wl表示特征图的通道数,时间长度,高度和宽度。使用一个3维卷积层将特征张量x_flowl的维度减少到x_linkl,如式(1)。
x_linkl=W3D_link⊗x_flowl
(1)
然后,用x_linkl中的所有空间时间特征的均值μ和方差σ对特征张量x_linkl进行归一化,如式(2)。
(2)
(3)
最后,每个通道都会有一个输出层,需要通过利用一种方法将2个输出层进行融合,并利用融合后特征进行面瘫识别及分级评估。在此,可以通过提供两个输出层相当于正则化的过程,训练一个以这些输出作为特征的SVM。
在利用面瘫患者的面部动作视频进行面瘫分级评估的应用背景下,本研究试图利用高清可见光和深度摄像机全面记录面瘫患者在做相关面部动作时的视频信息。针对利用计算机视觉技术进行面瘫等级自动评估过程中存在的对相邻等级准确评估难度大的挑战,建立面瘫患者面部动作视频数据库,为基于计算机视觉技术的面瘫等级自动评估研究提供可靠的数据支持;融合人脸关键点的运动矢量特征和纹理变化特征参数,以解决不同患者在做相同面部动作时的个体差异问题;利用深度卷积神经网络提取面瘫图像的空域特征信息,利用时间递归神经网络提取面部动作的运动信息,充分利用面瘫视频中所包含的上下文信息和运动特征信息,以更准确地实现面瘫患者病症严重程度的自动评估。本研究为面瘫病症的临床诊断、病情严重程度的自动评估提供先进的理论、方法和技术支持,并为其他类似病症的诊断、医疗智能化奠定基础。