郑建伟,刘新妹,殷俊龄
(中北大学 电子测试技术国家重点实验室,太原 030051)
在临床医疗中,疼痛是病人一个极其常见的问题.鉴于疼痛给病人所带来的伤害,它被定义为继四大生命体征—体温、脉搏、呼吸、血压之后的第五大生命体征[1].然而,如果在医疗机构中没有一个有效的疼痛评估方式,盲目地采取一些治疗手段,那么极有可能导致医疗事故的产生.疼痛评估是控制疼痛的重要一环[2],对于那些有语言功能障碍的人群(如痴呆症患者、脑损伤病人等)来说,正确的疼痛评估直接会影响治疗的选择和治疗的效果.在疼痛评估中,针对健康的人自我评估作为最有效的方法,为了最大化治疗人群,尤其对难以表达自我感受的特别人群,科学的对疼痛程度做出估计具有重要的临床意义[2].
2007年,Littlewort 等[3]则应用一个联合Gabor 特征和支持向量机(SVM)面部表情的识别系统去区分疼痛的真假,并给出了与疼痛最相关的脸部运动单元(Action Units,AU);2009年,Ashraf 等[4]利用主动表观模型(Active Appearance Models,AAM)提取出形状和表观特征,并利用SVM 来对这些特征进行分类.国内南京邮电大学卢官明等[5]在2008年提出利用支持向量机(SVM)技术对新生儿疼痛与非疼痛面部表情进行分类识别,比较了不同核函数的分类器性能;2015年,该团队提出一种基于加权局部二元模式(LBP)特征描述符和稀疏表示分类器的新生儿疼痛表情识别方法[6].在其自建的新生儿面部图像数据库上进行了实验.
疼痛表情是疼痛评估的可靠指标之一[7,8].在疼痛表情的识别中,人脸表情分析最主要的环节是特征提取和分类识别.目前,常用的特征提取方法有主成分分析(Principal Component Analysis,PCA)[9]、线性判别分析(Linear Discriminant Analysis,LDA)[10,11]、AAM[12]、Gabor 小波变换[13]、局部二元模式(Local Binary Pattern,LBP)[14]和LBP的改进方法[5,6,11,12,15]等.其中,基于PCA的方法忽略了整体的关联信息,且需要参数化数据来达到高效的结果,效率较低;基于LDA的方法要花费时间来进行图像矩阵特征值的计算,耗时较长;基于AAM的方法计算量大、其中的参数需要人为的计算[13];基于Gabor 小波变换的方法在获取多个方向尺度的信息时,所用时间太长,占用的内存较其他方法明显大,且提取的向量多余信息较多[16];相比之下,基于LBP的方法以其运算速度快、所占内存小、旋转不变性和灰度不变性等优点,已在面部识别领域广泛使用[17,18].
本文在多尺度分区结合局部加权的LBP 特征基础上对疼痛表情进行识别.将预处理后的灰度图像通过级联分块加权的LBP 特征直方图和多尺度分区的特征直方图,用PCA 降维得到整体的特征向量,输入SVM分类器进行训练和测试,判断样本所处的表情类别.
LBP 由Ojala 等人提出[14],用于提取图像的局部的纹理特征,对光照变化和灰度变化有很好的鲁棒性;LBP 特征能有效快速地提取待测图像的纹理信息,所需存储空间小、计算速度快.
针对原始的LBP 算子只是由一个半径不变的区域构成的缺陷,Ojala 等[14]对LBP 算子进行了改进,将方形邻域扩展到圆形邻域,并且在该圆形邻域内可以包含任意个像素点,以适应不同频率和不同尺度的纹理特征,改进后的LBP 算子可以计算半径为R大小的邻域内所包含的任意多个像素点的特征值.改进后的LBP 算子邻域半径为R,采样点个数为P,如图1为不同的圆形邻域图.
图1 不同和的算子的圆形邻域图
用不同半径的圆编码邻近像素可得到它的近邻图,如图2.
图2 近邻图
对于点(xc,yc),它的近邻点用以下公式计算:
其中,R圆形邻域的半径,p是像素点的个数.使用双线性插值对计算结果进行处理,确保上述结果处于像素所在的坐标.用以下公式计算:
图像的LBP 特征图就是将原始图像的像素值用LBP 特征值表示,这种对每个像素都求取特征值的做法,如果直接用来作为特征向量进行分类识别的话会丢失局部的空间结构信息.而在表情分类、人脸识别等更加注重局部的纹理特征的实际应用中,都不能直接将LBP 特征图作为整幅图像的特征向量用于后续的分类.为提取有效的局部纹理特征,拟采用分块LBP 灰度直方图的方法完成后续的工作.
按以下步骤进行:对预处理后的表情图像采用LBP算子进行运算,得到LBP 特征图,将LBP 特征图划分为若干个子块,计算出每个子块的LBP 特征灰度直方图,将图像所有子块的局部LBP 灰度直方图串接起来,作为整个图像的特征向量.图3是原始LBP和圆形LBP对同一幅图像的纹理特征提取前后图像,对比可看出圆形LBP的纹理特征提取效果明显优于原始LBP.
图3 纹理特征提取效果对比图
本文疼痛表情识别主要过程是获取图像、提取不同尺度分区LBP 灰度统计特征和分块加权的灰度直方图、串接得到完整特征向量、输入分类器进行训练、最终得到分类结果,流程框图如图4.
由于图像中的关键信息可能存在位置距离等几何性质的偏差,以免仅用单一尺度的分区可能造成缺失而得不到完整的特征信息,加之,人脸疼痛表情本身就是多个尺度的特征细节相关联的,所以本文综合表情的多个细节和总体特征来提高分类识别的准确率,采用多尺度的特征提取结合LBP 分块加权获得一种更好的特征提取方法.
本方法特征提取步骤为:
(1)将一幅图像划分为若干块区域,采用固定值加权方法给予不同区域不同的权重,如图5.
(2)分块提取LBP 灰度直方图后,对按步骤(1)的设置的权重加权各子块的直方图.
(3)串接所有子块的直方图特征,生成整幅图像的特征向量.
(4)再对整幅图像进行不同尺度的分区,由小尺度分区逐步扩展到大尺度分区,具体如图6.
(5)串接各个层级的灰度直方图特征,组成整幅图像的特征向量.
(6)级联步骤(3)和步骤(5)生成的特征向量,用PCA 降维之后作为下一步要识别的特征向量.
图4 图像特征提取与结果分类流程框图
图5 5×3 分块中每个子块的权重设置
图6 多尺度分区图
图5中,对嘴、鼻这类分类识别贡献较大的区域给予权值3,对眼睛、眉这类分类识别贡献一般的区域给予权值2,对于额头这类分类识别贡献较小的其他区域权值为1.
以图6为例,先对图像进行3×3 小尺度分区,再由2×2个3×3 尺度分区窗口组成一个个6×6 尺度窗口得到下一层级的灰度统计直方图;要注意选择合适的尺度窗口搭配,首先不可以扩展到整个图像大小的尺度窗口,以刚好大于分块之后的子块大小为最佳,可以在不增加太多冗余信息的同时最大程度的包括整体相关信息;其次,最小的尺度分区也不宜过小,以分块的尺度为最佳,可以很好的表述局部信息;最后,尺度窗口的数目不宜太多,太多会导致维数太大,不利于下一步的工作.
通过本方法提取的特征向量在加强局部重点区域的同时又不忽略整体的相关性,较好地改善了单一尺度LBP 造成的整体信息可能被切割的缺点,并且较好地增强了局部信息.若避免所生成的特征向量维数过大,可采用PCA的方法进行降维,来降低计算的复杂度.
SVM是在1995年由Corinna Cortes 等首次提出的一种学习能力很强的浅层学习算法,在解决高维识别上具备明显优势,比神经网络能在学习样本比较少的情况下实现很好的机器学习,训练速度快.因此,本文采用SVM 用于疼痛表情分类,同时为保证实验结果不因分类器而出现误差,将所有的实验都是在多项式核函数阶数d=3的SVM 分类器下完成分类.
为验证本文设计的方法可行与有效,仿真的实验条件为Windows 8.1 操作系统、Intel Pentium Dual CPU、主频为1.86 GHz、内存8 GB,用Visual Studio 2015+OpenCV 3.4.0 进行编程.然后利用本文设计的特征提取方法,在自建的疼痛表情数据库进行实验,分别使用疼痛表情和平静表情特征数据样本,进行10 组实验,得到每一组的识别率后求得其平均识别率.最后分析采用本文的特征提取方法与传统的特征提取方法、不同的分块模式、不同的分区模式以及后两者结合对疼痛表情识别率的影响的情况.
依据被测人员表情程度的变化来判断外部刺激力度的变化,因此获取准确的实验表情是本课题的关键技术的一个重要指标.因此课题组将使用本实验室的开通经络头痛治疗仪治疗在过程中,对被测人员拍摄了一系列的视频,读取视频帧图像,并对照面部编码系统(FACS)和疼痛强度(PSPI)分数的表达式筛选出了不同状态下的面部表情图像,建立了一个痛苦表情数据库.
疼痛强度计算的数学模型表达式为:
式中,AU4表示眉毛聚拢、AU6和AU7为眼窝收紧、AU9和AU10为提肌收缩以及AU43为闭眼;其中AU43 取值为0 或1表示睁眼或者闭眼,其他运动单元取值范围均是0~5,PSPI的取值范围为0~16.
图7是一个评分示例,在该图中可看出疼痛强度PSPI=4+max(4,3)+max(2,4)+1=13.
图7 面部活动单元疼痛评分
所建数据库包含3 类图像:平静、一般疼痛、非常疼痛,每类包括10 名男性和10 名女性,每个人每类表情各由10 张图像构成,共计600 张图像.这些视频是在有充足光照的密闭房间里拍摄的,将所有人脸图像经过眼睛定位、标准、剪切、去噪,最后归一化到112×92,预处理后的图像作为实验的数据样本.需要指出的是,人的面部表情很丰富,为了实验结果的精确,在视频帧图像的筛选阶段就需要最大化的去筛选出其他出现的表情的干扰(尤其是与疼痛表情特征相似的表情如哭、生气等).列出3 类表情图像,如图8.
实验使用90个疼痛表情和180个平静表情图像用于下面的实验.
具体如下:
(1)从自建表情库中随机选取90 张疼痛表情图像和180 张平静表情图像,等分成10 份,每份包含9个疼痛表情图像和18个平静表情图像,取其中的9 份作为训练样本集,剩下的1 份作为测试样本集.
(2)对每一个样本提取LBP 特征,对得到LBP 特征图进行分块,将其分成X×Y个子块,对每一个子块求取灰度直方图并加权后串接各子块的灰度直方图,得到该样本的特征向量,采用LBP 算子提取的特征向量维数为59×X×Y,若该维数大于2×(90+180)=540,采用PCA 方法降维到d(d<540).
(3)将图像进行多尺度的分区,统计特征直方图后,串接各分区特征直方图作为特征向量.当其特征维数大于整幅图像维数的1/4 时,截止到当前的分区尺度.
(4)串接步骤(2)和(3)的特征直方图作为整幅图像的特征向量,直至得到所有表情样本的特征向量.
(5)将步骤(4)得到的9 组训练样本集的特征向量作为训练样本输入SVM 分类器训练,再用最后一组测试样本输入SVM 分类器观察计算出分类识别率,并记录识别耗费的时间.如27个测试样本中有22个样本被正确分类,则识别率为22/27=81.48%.
(6)对步骤(5)重复10 次,计算10 次实验的平均识别率和平均识别时间.
图8 自建表情库中的3 类表情图像样例
本方法和部分传统的特征提取方法的分类识别率情况,见表1.
由表1中的数据结果可看出:
(1)采用原始的LBP、Gabor 小波、AAM 特征提取方法对疼痛和安静的平均分类识别率分别是82.59%、86.30%、91.48%,而本文的特征提取方法的平均分类识别率是95.56%,优于单独的LBP和Gabor 小波以及AAM 特征提取方法.
(2)不足之处,表中识别率在88.89%~100%,表明本方法的识别率有一定的波动.
表1 平静与疼痛的几种分类识别率(%)
通过分析研究,由于人的表情很丰富,出现了与疼痛表情相近的其他表情,需在筛选样本的表情时参考专业医护人员的判断,融合被测人员的主观表达和疼痛度量公式以及疼痛度量表等方法,更准确的对样本做出筛选,挑选出精确地有利于实验的疼痛表情数据样本.
表1中4 种方法的平均时间分别为:5.27 s,3.25 s,4.26 s,8.93 s,可看出采用本文的特征提取方法平均识别的时间长于其它方法.原因是在采用特征融合时,计算比单独的特征提取方法更耗时,包括多个尺度分区的直方图的计算,分块加权直方图的计算,均花费了一定的时间,但由于进行了PCA 特征降维,其识别时间在可接受范围内,表明可行性和优越性.
本方法结合LBP 分块加权和多尺度分区来获得比单一方法更好的特征提取,表2是通过不同分块和不同尺度分区搭配获取的识别率情况表.
由表2中识别的结果可看出:
(1)不分块不分区识别率是82.59%,为最低;采取5×3 分块加权级联10×6和40×24 多尺度分区可得到95.56%的识别率为最高;
原因:主要是不分区不分块的LBP的直方图只用一个59 维的特征直方图表示待测图像的面部表情,由于维数较低不可避免的造成一些细节信息的丢失.
(2)只分块不分区的识别率最高为88.30%,只分区不分块的识别率最高为90.32%,都低于两者级联后的识别率95.56%.
原因:在两者级联后的特征既能很好的描述局部信息,又包括相关联区域的整体信息,弥补了单一特征提取的造成的信息损失.
(3)多尺度分区的窗口不宜太多,太多会使信息冗余,特征维数增大,会造成识别时间和识别错误的增加.
通过以上实验本方法在基于阶数d=3的多项式核函数SVM 分类器上取得了95.56%的平均识别率,高于单独的LBP和Gabor 小波以及AAM 特征提取方法;并且采取分块加权级联多尺度分区可得到的识别率与单独的分块加权方法和单独的多尺度分区特征提取方法相比较是最高的.表明文中所采取的基于LBP和SVM的疼痛表情识别方法是有效、可行的.
表2 不同分块和分区结合的识别情况汇总表
文中采用的基于LBP和SVM的疼痛表情识别方法,是在LBP 特征提取方法的基础上加以改进,融合了多尺度分区和加权分块的优点而设计,且在自建的疼痛表情数据库中,对平静和疼痛进行了分类识别,通过对表情库中选取的270 张图片的实验,得到的平均识别率高于3 种传统和融合之前单一的特征提取方法,并且在采取分块加权融合多尺度分区的特征提取方法后,得到的识别率为最高.结果表明:所采取的基于LBP和SVM的疼痛表情识别方法是行之有效,为课题组的进一步研究工作打下了基础,也为目前对疼痛表情的识别与研究提供了一条有效的途径,且在对表达主观意识有障碍病人的临床辅助诊断起到重要的作用.下一步的工作是,引入多分类器进行疼痛程度分级识别,并提高鲁棒性,对识别过程中出现的其他表情如哭泣等表情有效的区分.