郭文强,李梦然,侯勇严,肖秦琨
(1.陕西科技大学电子信息与人工智能学院,西安 710021;2.陕西科技大学电气与控制工程学院,西安 710021;3.西安工业大学电子信息工程学院,西安 710021)
随着人工智能技术的快速发展,智能化系统对人脸特征识别的性能要求日益提高。人脸面部表情在日常生活交流中扮演重要的角色[1-2],是人们在用非语言形式交流时传递情感信息和表达情绪的有效方式,蕴含丰富的情感资源。在早期人类面部表情研究中,文献[3]通过对面部肌肉运动与人类表情的关系进行研究,提出面部动作编码系统FACS,并根据不同的动作单元组合定义出开心、悲伤、生气、厌恶、恐惧和惊讶6 种人类的基本表情[4]。后期的人类表情识别研究均是在6 种基本表情基础上进行的[5-6],但这些基本表情仅是最基本的面部表现方式,不能涵盖人类所有的心理和情感。如疼痛虽然不属于上述6 种基本的面部表现方式,但它也是人类表情的一种[7]。因此,利用人类面部肌肉运动信息进行疼痛识别是一种可行方案。
疼痛表情识别技术对于无法通过自然语言表达疼痛状态的特殊人群(如婴幼儿患者、痴呆病患与重症病人)的诊疗和护理具有重要的临床意义,该技术在医疗领域[8-10]中具有广阔的应用前景,已经逐渐成为研究的热点。文献[11]提出一种基于概率潜在语义分析(Probabilistic Latent Semantic Analysis,PLSA)模型的疼痛表情识别方法。该方法采用光流技术提取疼痛表情特征,利用词包模型将面部运动信息转换为视觉文字来表示疼痛表情,但是将PLSA 模型用于表情识别时,样本数据的增加使得模型中的参数也呈线性增长,导致容易出现模型的过拟合问题。文献[12]提出一种基于监督型局部保留映射(Supervised Local Preserving Mapping,SLPP)和多核支持向量机(Multiple Kernels Support Vector Machines,MKSVM)的疼痛表情识别方法,采用SLPP 算法提取疼痛表情特征,并利用MKSVM 识别痛觉表情。文献[13]利用主动外观模型(Active Appearance Model,AAM)提取形状和外观特征,再用SVM 识别疼痛表情。文献[14]在纹理描述子LBP 的基础上,使用其变体新纹理描述符细长二元模式提取痛苦特征,并采用SVM 对痛苦表情进行识别。上述方法都使用SVM 对表情进行识别,但SVM 通常用于二值分类问题,当用于表情多分类问题时,存在不能有效识别表情多样性的局限性。文献[15]提出一种基于局部二值体(Local Binary Volume,LBV)三维卷积层的卷积神经网络,将其用于时间图像序列的面部表情识别。虽然LBV 三维卷积层的训练参数数量和传统三维卷积层相比较少,但是该方法仅直接在图像序列上执行表情识别,并未提取人脸面部特征,导致疼痛识别的准确率降低。贝叶斯网络(Bayesian Network,BN)利用概率图模型的方式能够清楚地表达分析对象的结构和机理关系,使得问题得以简化,具有一定的直观性和灵活性[16],这说明BN 在描述和推理不确定性问题上具有一定的优势。针对表情识别模型建模精度较低以及表情状态的不确定性问题,采用BN 进行表情分类是有效的途径之一。
本文提出一种融合约束局部神经域(Constrained Local Neural Field,CLNF)模型和BN 模型的疼痛表情识别方法。利用CLNF 模型对疼痛表情图像进行面部特征点定位,得到携带疼痛信息的面部活动单元(Action Unit,AU),对相关AU 加标签处理得到样品数据集。通过对AU 标签数据样本以及约束扩展参数集进行变权重融合,训练得到BN 模型,再使用联合树推理算法进行推理,从而实现疼痛表情的有效识别。
在构建表情识别模型过程中,先对获取的疼痛表情帧图像进行预处理,再进行表情特征提取。即对提取出感兴趣的面部表情区域图像去除冗余信息,利用CLNF 模型对图像进行特征点定位。
为提高表情的识别效果,采用V-J(Viola-Jones)算法对图像进行人脸检测。利用Harr-like 特征表示人脸的共同特性,然后在积分图思想的基础上建立一种称为积分图像的特征,通过快速计算获取几种不同的矩形特征。利用AdaBoost 算法对矩形特征进行选取,选出人类面部最具有代表性的特征,接着进行弱分类器的训练,并计算相应的权重,通过不断更新训练进行迭代,将弱分类器按照加权表决的方式进行组合后得到一个强分类器。接下来对数个强分类器进行串联,建立一个具有级联结构的层级分类器。
在对疼痛表情图像进行预处理时,可裁剪出感兴趣的面部区域,也能去除额外的背景信息。人脸疼痛表情检测流程如图1 所示,图中的表情帧图像来源于UNBC-McMaster Shoulder Pain 数据库[17]。
图1 人脸疼痛表情检测流程Fig.1 Procedure of face pain expression detection
1.2.1 CLNF 模型
CLNF 模型是在约束局部模型(Constrained Local Model,CLM)基础上进行改进得到的,两者均使用相同的框架[18]。该模型通过对人脸的位置进行初始化,获取每张图像人脸的特征点,将特征点在其邻域位置内进行搜索匹配,实现人脸面部特征点的检测。检测过程主要包括模型构建和点拟合2 个阶段。模型构建阶段又可分为点分布模型(Point Distribution Model,PDM)构建和Patch 模型构建这2 个构建步骤。PDM 构建是基于非刚性形状和刚性全局变换参数对人脸特征点进行定位,而Patch 模型构建则是对人脸上每一个特征点周围的图像块区域进行建模。
1)PDM 模型构建。在对PDM 模型进行构建时,其形状模型函数可用式(1)表示:
假设有m张图像,每张图像有n个特征点,每个特征点的坐标假设为(xi,yi),每张图像上的n个特征点坐标组成的向量用x=[x1y1x2y2…xn yn]T表示,则所有图像的人脸表情平均值可用式(2)进行求解。
采用主成分分析(Principal Component Analysis,PCA)方法对X与X,进行分析,获取形状变化的决定性成分,即特征向量Φj及对应的特征值λj。将特征值按大小顺序进行排序,选取其中最大的q个特征值,将其对应的特征向量按照列排放方式进行组合,得到的矩阵Φ作为所有样本变换的基,其可对每个样本的任意变换进行表述。
m维权重向量B决定图像中哪些特征点起关键作用,具体可通过式(4)得出:
因此,点分布模型可用式(5)表示:
其中:s、R、h分别用来表示缩放量、旋转矩阵和平移量,旋转矩阵R由旋转参数w控制表示人脸表情图像的平均值,Φi为形状变化主成分矩阵,B为对应的权重向量,其主要针对非刚性形状参数而变化。整个点分布模型的形状可用P={s,w,h,B}描述。
2)Patch 模型构建。在PDM 模型构建完成后,可以对检测到的人脸图像进行初始化,得到人脸形状模型。接下来让每个点在其周围的邻域范围内进行最佳匹配特征点搜寻,对候选匹配点邻域位置内的图像块实现Patch 建模。CLNF 模型包括一个基于局部神经域(Local Neural Field,LNF)[19]的新型Patch 模型。LNF 是一种无向图模型,表示输入(感兴趣区域中的像素强度值)和输出结果(Patch 排列概率)间的复杂非线性关系。图2 表示LNF 的结构模型图,图中的实线表示顶点特征,用fk表示。虚线表示边缘特征,用gk与lk分别表示相似性和稀疏度。从输入向量xi到相关输出向量yi,中间通过顶点特征fk和神经层相连接。LNF 的新型Patch 模型通过学习输出向量的边缘特征情况进而获取输入像素(相邻和较远距离)间的关系。
图2 LNF 结构模型Fig.2 LNF structure model
LNF 根据连续输入向量x对连续输出向量y的条件概率进行建模,模型满足条件概率分布[19],具体如下式所示:
其中:X={x1,x2,…,xn}表示一组输入变量,xi∈ℝm表示Patch 模型感兴趣区域内的矢量化像素强度;Y={y1,y2,…,yn}表示一组输出变量,yi∈ℝ,n表示Patch 模型可能区域的估计量;是一个归一化函数,Ψ为势函数。
在势函数Ψ的表达式(7)中,fk为顶点特征,其表示输入xi通过单神经网络层到输出yi的映射关系;θk表示第k个神经元的权重;fk对应的αk表示神经元k的可靠度;边缘特征gk用来表示输出yi和yj(直线关系情况)之间的相似性,边缘特征lk可用来表示输出yi和yj(距离较远关系情况)之间的稀疏约束,βk和γk的含义为边缘特征关系对应的可靠度。对这些不同可靠度的响应进行加权处理时,可看出模型输出结果并不是仅有y参与计算,还有y在网格结构之间的关系,即边缘特征也参与计算。
1.2.2 基于CLNF 模型的疼痛表情特征点定位
步骤1先对给定图像进行检测,确定出该图像中是否存在人脸以及人脸的位置和大小。再按照如图1 所示的流程对图像进行预处理,去除部分不相关的信息,得到实验所需的面部区域图像。
步骤2按照如图3 所示的关键特征点检测流程对裁取后的面部区域图像进行关键特征提取。
图3 关键特征点检测流程Fig.3 Procedure of key feature point detection
1)在PDM 模型的基础上得到形状模型,在表情图像上标记出关键特征点坐标,利用式(2)求取图像平均脸,并得到相应的形状变化矩阵。图3 所示表情(双唇紧闭时的表情有65 个特征点,当为嘴巴张开或露出牙齿时的表情有68 个特征点)的形状变化矩阵可由式(8)表示,再进一步得到形状变化主成分构成的矩阵以及对应的权重系数。
2)在表情图像上标定特征点之后,接下来在每个特征点的周围区域实现Patch 建模,以获取面部纹理特征。在已建立的LNF Patch 模型基础上,完成最佳匹配点的搜寻,经过对Patch 模型可能区域输入量与输出量之间非线性关系的分析,得到提取特征点更详尽的面部信息,进而更快速精准地定位关键特征点。
3)利用线性逻辑回归的方法进行拟合优化,实现面部特征关键点的提取。
1.2.3 疼痛表情相关AU 的获取
由面部特征提取的关键点可进一步获取与疼痛表情相关的AU。其中可能与疼痛有关的信息集中[20]在以下11 个AU 上:AU4(眉毛降低)、AU6(脸颊升高)、AU7(眼角收紧)、AU9(鼻子褶皱)、AU10(上唇升高)、AU12(唇角拉伸)、AU20(嘴唇水平伸展)、AU25(双唇分开)、AU26(下巴下垂)、AU27(嘴巴张开)、AU43(闭起眼睛)。文献[21]于1992 年开始发现并证实了AU4、AU6、AU7、AU9、AU10、AU43 这6 个动作单元携带了大量关于疼痛的信息,并定义了普卡钦所罗门疼痛强度(Prkachin and Soloman Pain Intensity,PSPI)度量公式,通过评估每个AU 的疼痛强度并对这些AU 进行求和,以得到疼痛PSPI 强度值。PSPI 度量表达式如式(9)所示:
其中,除了AU43 仅有不发生为0 和发生为1 这2 个评估值之外,其他AU 都有0~5 这6 个强度评估值,且求和式中的AU6 和AU7、AU9 和AU10 是分别取这两组AU 动作中的疼痛程度最大值,因此PSPI 值的评估范围为0~16。
2.6 真菌对抗菌药物的敏感性 培养出白色念珠菌292株,占分离细菌株的11.50%。对氟康唑、伊曲康唑、伏立康唑、两性霉素B、5-氟胞嘧啶均敏感。
图4 展示了携带大量疼痛信息的6 个AU 在人脸面部的表现情况。
图4 6 个不同的疼痛AUs 在面部上的表现情况Fig.4 Expression of six different pain AUs on the face
每种PSPI 状态值可用6 个AU 在不同强度评估值下的组合来表现,当PSPI 值分别为1、2、4、6 时,AU 强度评估值的组合情况如表1~表4 所示。当PSPI 值为其他状态值时,AU 评估值的组合情况与表1 类似。
表1 PSPI=1 时AU 评估值组合情况Table 1 Combination of AU evaluation values when PSPI=1
表2 PSPI=2 时AU 评估值组合情况Table 2 Combination of AU evaluation values when PSPI=2
表3 PSPI=4 时AU 评估值组合情况Table 3 Combination of AU evaluation values when PSPI=4
表4 PSPI=6 时AU 评估值组合情况Table 4 Combination of AU evaluation values when PSPI=6
BN 可定义为一个有向无环图(Directed Acyclic Graph,DAG)与一个条件概率表(Conditional Probability Tables,CPTs)构成的集合。其中,DAG 中的每个节点都表示一个随机变量,而有向边可用来描述变量间的条件依赖关系。CPTs 可由DAG 中每个节点事件发生与否的概率来获得,表中的每个元素都与DAG 中唯一的节点对于其所有直接父节点的联合条件概率相对应,CPT 中的概率值表示变量间条件关系的强弱。贝叶斯网络包括学习模块和推理模块两大模块,而学习模块又包含结构学习和参数学习。结构学习是指找到与实际问题最匹配的BN 结构,即发现这些变量之间的关系。参数学习是指在结构学习完成的前提条件下,确定BN 模型中每个网络节点的CPT,参数学习决定了节点变量间的具体量化关系。
2.1.1 贝叶斯网络结构构建
在疼痛表情识别中,由于表情状态的不确定性、涉及到的相关疼痛AU 状态的不确定性以及表情与AU 之间概率关系强弱的不确定性的影响,本文选择利用具有较强的处理不确定性问题能力的概率图模型BN 来完成疼痛表情的建模推理。
图5 所示为构建的疼痛表情识别BN 模型。其中,Pain Expression 节点表示表情疼痛程度PSPI 状态,每个AU 节点表示的是可能当某种疼痛表情发生时的相关活动单元强度评估值状态。子节点中除了AU43 节点有2 种状态之外,其余AU 节点均有6 种状态,Pain Expression 节点按照疼痛PSPI 计算值有17 种状态,可以将最终的表情疼痛程度划分为以下4 种状态:不痛(PSPI=0)、微弱疼痛(PSPI=1~5)、中度疼痛(PSPI=6~10)、强烈疼痛(PSPI=11~16)。
图5 疼痛表情识别BN 模型Fig.5 BN model for pain expression recognition
不同的疼痛表情状态可用多种不同的AU 强度评估值组合表示,AU 组合表示形式如表5 所示。
表5 不同疼痛表情状态的AU 评估值组合Table 5 Combination of AU evaluation values of different pain expression states
2.1.2 贝叶斯网络参数学习
BN 模型的参数估计可用式(10)表示:
其中,θijk是在第i个节点Xi的父节点Pa(Xi)取值为j的条件下,Xi取值为k时条件概率参数的取值。
在样本数据充足的情况下,通常采用最大似然估计(Maximal Likelihood Estimate,MLE)方法[22]学习BN 参数。在实际应用中,用式(11)估计每个参数的最大似然估计:
其中,Nijk表示样本中第i个节点取值为k及其父节点取值为j时训练数据出现的频数,Nij表示父节点Pa(Xi)取第j个组合状态的频数,即,ri表示每个子节点变量的取值数,η为一个接近于0 的很小常数,c=qi⋅ri,qi表示父节点变量的取值。
基于变权重融合进行参数学习的基本思想是根据数据的变化情况,不断调整参数估计中各学习数据集的权重系数,最终加权融合确定出参数估算结果。基于加权融合的参数学习问题可以转化为如式(12)、式(13)的问题。
其中,ωi(t)为权重系数,θijk(ωi(t))为对应的数据集合,d和T取不为0 的自然数。
由文献[23]可知BN 参数估算如式(14)所示:
其中,θprior表示由先验知识得到的参数集,θdata表示由样本数据集得到的参数集,ω和(1-ω)分别表示参数集的权重系数,θ表示最终的参数学习结果。
本文选择基于变权重融合的方法进行BN 参数学习,可以通过先计算样本数据和约束扩展参数集的权重,再求出加权融合后的参数估算值。随着数据量的变化,权重可以作出相应的调整,因此能够获得更好的学习效果。
根据BN 结构模型中Pain Expression 节点状态与AU 节点状态的关系,并结合领域专家的经验可获取以下类似的约束:P(AU43=0|PSPI=1)>P(AU43=1|PSPI=1)。该含义为在表情疼痛程度PSPI=1 的条件下,AU43 强度评估值为0 的概率大于其强度评估值为1 的概率。将该约束条件引入BN 参数学习机制,并通过改变权重加权的方式与样本数据融合进行参数学习,从而缩小寻优空间,并提高参数估算的精度。
基于以上分析,利用BN 建模方法进行疼痛表情识别的具体步骤为:
步骤1根据上文得到疼痛表情识别所需的关键特征点,将携带大量疼痛信息的AU 特征点经过加标签(疼痛强度评估值)后构成样本数据集D。
步骤2判断贝叶斯网络是否已构建结构模型,若已构建,则继续后续步骤;否则根据2.1.1 节描述构建疼痛表情识别贝叶斯网络模型。
步骤3完成贝叶斯网络参数建模。
1)根据样本数据集D统计Nijk,再根据式(11)计算得出参数集(s)。
2)结合领域专家经验确定出约束集合Ω,并通过Bootstrap 方法[24]进行参数扩展得到Q组候选参数集θijk(Ω)。
3)利用贝叶斯网络变权重参数计算方法式(15)进行加权融合,并计算得出参数学习结果。
步骤4利用联合树推理方法进行贝叶斯网络推理,得出面部疼痛表情PSPI 状态值,判别表情疼痛程度属于不痛、微弱疼痛、中度疼痛、强烈疼痛4 种状态的哪种状态,即得到最终疼痛表情识别结果。
实验使用UNBC-McMaster Shoulder Pain 数据库[17],该数据库公开数据包含25 位志愿者的200个视频序列,视频分辨率为320×240,共有48 398 张图片,包括13 名女性的24 361 张表情图像帧和12 名男性的24 037 张表情图像帧。本文实验的软件环境为Windows7 系统下的MATLAB R2014a,处理器为Intel®Celeron®CPU N3160@1.60 GHz。
为了验证CLNF 模型与BN 建模方法相结合后的识别疼痛表情性能,实验选取4 000 幅图像样本作为训练集,并分为10 组,每组包含400 幅图像,依次分别进行10 次训练实验。在剩下的图像样本中随机选取1 000 张图像作为测试集,并将判别每种疼痛表情类型时的概率置信度取0.7。
根据本文所提方法获取实验所需的疼痛表情AU 状态样本集,结合领域专家经验确定出约束集合Ω,再利用图5 所示的BN 结构进行疼痛表情识别。表6 为以AU43 为例得到BN 参数模型的约束集合。
表6 AU43 节点状态参数的约束集合Table 6 Constraint sets of AU43 node state parameter
采用本文方法对不同等级的疼痛表情进行识别,结果如表7 所示。从表7 可以看出,本文方法对不同级别的疼痛表情识别率均在85%以上,说明本文方法可有效对疼痛表情进行识别。
表7 本文方法对不同疼痛表情类型的识别率Table 7 Recognition rate of different pain expression types by the proposed method %
为验证本文方法的有效性,实验对本文方法与PLSA模型[11]、SLPP+MKSVM[12]、AAM+SVM[13]、ELBP+SVM[14]、LBVCNN[15]的平均识别率进行对比,结果如表8 所示。从表8 可以看出,与其他5 种方法相比,本文方法可显著提高疼痛表情识别率。这是因为本文方法通过CLNF 模型有效提取疼痛表情特征,再利用相关AU 进行BN 建模更能有效描述出表情的状态,并充分利用建模参数间的约束关系与样本数据集进行变权重融合参数学习,缩小参数寻优空间,从而提高识别率并使得分类更加明确。
表8 6 种方法的平均识别率对比Table 8 Comparison of average recognition rate of six methods %
为了进一步验证本文方法的性能,实验对不同方法的运行时间进行对比,结果如图6 所示。从图6 可以看出,本文方法的运行速度比其他5 种方法快。
图6 6 种方法的运行时间对比Fig.6 Comparison of running time of six methods
除此之外,实验还引入了皮尔逊相关系数(Pearson Correlation Coefficient,PCC)与平均绝对误差(Mean Absolute Error,MAE)2 个评价指标对不同方法进行对比分析。PCC 是对不同变量间的相关程度进行衡量,计算方法如式(16)所示:
其中,n为样本数量,、yi分别表示变量、y的i点预测值和实际值,分别表示样本中元素的平均值。PCC 的取值范围为-1~1,计算数值的绝对值越大,则预测值与实际值的相关性越高。
MAE 是对预测值与实际值之间绝对误差的平均值进行衡量,计算方法如式(17)所示,且MAE 的取值范围为0~+∞,其数值越小,则该方法的效果越好。
表9 给出了6 种方法的PCC 与MAE 对比结果。从中可以看出,本文方法的PCC 取值较大,而MAE取值较低,这说明该方法可以准确地得出疼痛表情的识别结果。
表9 6 种方法的PCC 和MAE 对比Table 9 Comparison of PCC and MAE of six methods
通过数据库上的实验结果以及与其他方法的对比结果可知,本文方法具有一定的应用价值,但是通过BN 进行建模分类存在计算较为复杂的局限性。在实验过程中,本文未考虑部分个体特征如不同人的脸型以及相邻疼痛强度之间的差异对识别结果造成的影响,而这些均可作为辅助判断疼痛表情的依据。
针对在疼痛表情识别过程中,用于建模的有效疼痛特征样本数量较少的问题,本文将CLNF 模型与BN 模型相结合,提出一种疼痛表情识别方法。由约束局部神经域方法获取疼痛表情关键特征点,再进一步得到AU 标签样本集以及BN 条件概率之间的约束集合。利用变权重融合方法进行BN 模型参数估算,通过BN 推理实现疼痛表情的识别。在UNBC-McMaster Shoulder Pain 数据库上的实验结果表明,该方法可有效提高疼痛表情识别准确性与分类效率。下一步将通过研究相同表情下的不同人脸面部形状,以及相邻疼痛强度水平差异对疼痛表情识别准确性的影响,以得到鲁棒性更强的识别模型。