APP下载

基于改进协作表示的人脸表情分类①

2021-05-21穆佳玮

计算机系统应用 2021年5期
关键词:分块特征向量人脸

李 莉,穆佳玮

(江苏大学 计算机科学与通信工程学院,镇江 212013)

1 引言

人脸作为重要的生物学特征,在人际交流中传达着丰富的信息.从面部表情的角度来看,人脸表情包含着丰富的情感以及心理信息,是一种重要的非语言交流方式.另外,还可以从人的面部识别出人的性别,年龄,种族和其他特征.目前,关于面部表情分类的研究已受到国内外许多著名大学,研究机构和公司的重视,这主要是由于其重要的理论研究意义和广泛的应用场景.20世纪60年代,国外学者提出了基于人脸的几何特征识别方法用于图像分类.在90年代由Belhumeur提出的线性判别分析(LDA)[1]成为了当时颇具代表性的人脸识别算法.研究者们在此算法基础上研究产生了许多改进算法,比如并行LDA 算法、基于概率延伸公式的LDA 算法、直接的LDA 判别方法以及近期的一些基于核学习的改进攻略[2].后来Yang 等[3]提出基于稀疏表示(SRC)理论的分类方法开始应用到了面部识别中.

在人脸表情分类的过程中,面部表情特征的提取将会很大程度地影响到最终的分类效果.常用的特征提取方法有基于几何特征的方法、模板匹配法(ASM)[4]、弹性图匹配(DLA)[5]、局部二值模式(LBP)[6]以及Gabor 小波变换[7]等方法.由于局部二值模式计算复杂度低以及能更好的体现图像纹理特征等优点,被广泛地应用于图像分类等领域中.在分类识别方面,常用的有K 最近邻(KNN)[8]、支持向量机(SVM)[9]、卷积神经网络[10]等分类器.2011年由国内学者Zhang 等[11]提出了协作表示分类算法,极大地提高了算法的识别速度使得基于表示的分类方法成为研究焦点.但是文献[8,9]均未对图像数据进行预处理而是直接采用相关算法进行分类,未能解决在图片分类时效率低下及准确率较低的问题.目前人脸表情分类存在着多种挑战,往往都是由于人脸表情的复杂度、多样性、多变性等造成人脸特征的显著改变.随着年龄的增加,人脸皱纹的出现和面部肌肉的松弛使得人脸的结构和纹理都将发生改变,另外人脸的部分遮掩也将会造成错误分类.同时由于光照、视角、摄取角度的不同,可能会造成图像的灰度畸变、角度旋转等,这些都极大地增大了分类的难度.

针对上述的缺点,本文提出了一种基于改进的协作表示人脸表情分类算法.其算法的主要步骤为:首先采用分块加权局部二值模式对图像进行分块预处理,得到每个子块的特征向量.为了避免维度灾难,接着使用主成分分析法对特征向量进行降维处理,最后使用竞争协作表示分类算法对图像进行分类.

竞争协作表示是在经典的协作表示算法中引入样本竞争的思想,增强训练样本与测试样本之间的关联,从而提高算法的学习能力,进而得到更高的分类精度.

2 局部二值模式(LBP)

LBP 算法的核心思想是,针对图像中的每一个像素点,以图像中心像素点的灰度值作为阈值进行编码,并用相邻像素点灰度值与其进行比较,将灰度值小于阈值的编码为0,大于阈值的则编码为1[12].然后按顺时针方向将编码后的二进制码组合排列,之后将二进制码转化为对应的十进制值,以该十进制值作为区域中心像素灰度值的编码.以3×3 区域为例由此可以计算得到LBP 编码如图1所示.

图1 LBP 编码计算

LBP 算法的优势在于对人脸的纹理特征有着较好的提取能力,特别是局部的一些暗点、亮点、边缘特征等有良好的表述性能[13].缺点是随着邻域内采样点的数量增加,经过编码后的模式种类会以指数形式增长,大大增加了存储空间,同时也会使计算效率大幅下降.

3 分块加权LBP

绝大多数LBP 模式最多只包含两次从1 到0 或从0 到1的跳变.因此“均匀模式”定义为:当某个LBP 所对应的循环二进制数从0 到1 或从1 到0 最多有两次跳变时,该LBP 所对应的二进制就称为一个均匀模式类[14].通过这样的改进,模式数量直接降为n(n-1)+2 种,其中n表示邻域内采样点的个数.对于3×3 邻域的8 个采样点来说,二进制模式由最初的256 种,减少为58 种.大大地减少了特征向量的维数.

在同一张人脸图片中,不同的区域所包含的纹理信息差异是非常大的.为了能进一步的区分不同区域的纹理信息从而体现更好的局部特征,对图像采取分块处理并对每个分块进行了加权,通过计算和比较块与块之间的纹理熵,将不同子块纹理熵的值作为加权因子以区分不同子块所代表的信息[15].最终将加权后各个子块的特征向量组合起来构成一个联合特征向量作为该图像的特征向量.

假设将图像分为n个子块,第i个子块的纹理熵可以表示为:

其中,k表示像素的灰度级,pki表示灰度级为k的像素点在第i个子块中出现的概率,因此定义第i个子块的权值为:

设hi为第i个子块的特征向量,由各个子块的特征向量构成最终的特征向量:

4 协作表示(CRC)

假设一共有n个训练样本可以被分成c类,属于第i类 (i∈[1,2,···,c])的训练样本有ni个,由第i类训练样本的特征向量构成的特征矩阵为Xi=[xi,1,xi,2,···,xi,ni]∈Rd*ni,xi,j∈Rd*1(j=1,2,···,ni)表示属于第i类的第j个训练样本的特征向量,d是每个训练样本的特征向量维数[16].

在基于协作表示的分类算法中,可以将d维n个特征表示成一个矩阵即y=Xα,X是包括c类所有n个训练样本的特征矩阵,X=[X1,X2,···,Xc]∈Rd×n.α表示测试样本重构系数向量.采用L2范数最小化来求解系数:

ε为指定的误差容限,为了进一步降低计算复杂度,将式(4)转化成正则化最小二乘法形式:

第1 项||y-Xα||22表示由系数α重建的预估值与实际输入值之差的2 范数的平方,第2 项 λ||α||22为算法模型引入的正则化约束条件,λ为可调整参数,整个第2 项的作用有两点,一是保证上述求解过程中的稳定性,二是为系数 α引入一定的稀疏性(用训练样本线性组合表示测试样本时,与测试样本有相近类别的训练样本前的系数不为0,其余类别的训练样本前的系数均为0 称为稀疏性).

将式(5)展开,得到:

对式(6)中的系数 α求导,并令导数为0,得到:

约去式(7)中的公因子:

对式(8)进行化简可得:

求解式(9)得到重构系数的最优解:

其中,I是一个单位矩阵,令P=(XT X+λI)-1XT,由于P与输入的测试样本特征向量y无关,所以可以预先计算P作为投影矩阵,这样每个测试样本特征向量y都可以通过式(10)直接计算其对应的重构系数向量,大大降低了计算复杂度.

αi=[αi,1,αi,2,···,αi,ni],重构误差定义为:

通过式(11)来衡量类别为i的训练样本与测试样本的相似度,当重构误差越小,则表明训练样本与测试样本之间的相似度越高,结果对应的就是测试样本属于第i类的可能性就越高,最终的测试样本的分类可以表示为:

5 竞争协作表示(CCRC)

竞争协作表示(CCRC)首先是由Yuan 等[17]提出.该算法针对在协作表示(CRC)中,由于是使用所有的训练样本来表示测试样本以及使用每一类中的训练样本表示测试样本是相互独立的过程从而忽略了它们之间的联系,即式(4)和式(11)是相互独立的,因此将其结合起来作为一个整体,在原有模型的基础上加入新的正则项,模型表示如下:

式(13)中,第1 项是用所有的训练样本来表示测试样本(称为协作性),第3 项是用每个类中的训练样本来重构测试样本(称为竞争性),λ1为可调整参数用来平衡类别之间的协作性与竞争性,当 λ1为0 时,式(13)即为协作表示(CRC),当 λ1逐渐增大时,能够稳定的提高表示的竞争性.对式(13)中的系数 α求导,并令导数为0可得:

将重构误差定义为:

运用式(10)计算测试样本和每一类别训练样本之间的重构误差,将重构误差ri(y)中最小的i所对应的类别作为相应测试样本所属于的类.

6 改进的协作表示分类算法

针对协作表示分类精度有待提高,本文提出一种改进的协作表示分类算法,算法首先采用均匀模式下的分块加权局部二值模式提取图像特征,接着使用主成分分析法对训练样本和测试样本的特征向量进行降维,最后运用竞争协作表示分类算法对图片进行分类.具体步骤如下:

步骤1.对所有图片样本进行归一化处理为130×130 像素大小.

步骤2.将预处理过后的图片样本划分成为互不重叠的3×3,4×4 以及5×5 三种分块方式,采用分块加权LBP 算法来提取特征向量.

步骤3.运用主成分分析法对特征向量进行降维构成最终的训练样本和测试样本矩阵.

步骤4.使用竞争协作表示分类器对图片进行分类.

步骤5.为了使实验的结果更具可靠性,使用10 次交叉验证的方法重复实验10 次得到最终分类的平均准确率.

7 实验结果与分析

7.1 实验环境

实验计算机配置:CPU Core(TM)3.40 GHz,内存16 GB,显存8 GB;操作系统:Windows7;软件环境:Matlab 2017.

7.2 实验数据获取

本次实验分为实验1和实验2.

实验1 选取的数据为日本女性面部表情数据库.该数据集中有7 种表情,每种表情大约有3-5 幅图片,总共有10 个个体样本总数为213 张图片.选取10 个个体每种表情各1 幅图片总共70 张图片作为测试样本,其余的143 张图片作为训练样本.部分图像样例如图2所示.

实验2的数据来源为瑞典斯德哥尔摩心理学科卡罗琳斯卡情绪导向人脸表情数据库.选取了其中的一个子集共计350 张图片构成了样本数据集.该数据集中有10 个个体,每个个体含有7 种表情,每种表情有5 幅图片.选取10 个个体每种表情各1 幅图片总共70 张图片作为测试样本,其余的280 张图片作为训练样本.部分图像样例如图3所示.

图2 实验1 数据库部分图像样例

图3 实验2 数据库部分图像样例

7.3 实验结果与分析

分别采用LBP+SRC,LBP+CRC,LBP+CCRC 算法测试在不同分块模式以及不同特征维数情况下对图像的分类性能.其中实验1的测试结果如图4至图6所示,实验2的测试结果如图7至图9所示.对测试结果展开分析.

图4 实验1 中3×3 分块模式下的算法对比

(1)由图4至图9横向对比可知LBP+CCRC的分类效果在两个数据集中均优于LBP+SRC和LBP+CRC两种算法,这是因为CCRC 考虑到样本之间的竞争性从而能更好的表示相似样本之间的线性关系.

图5 实验1 中4×4 分块模式下的算法对比

图6 实验1 中5×3 分块模式下的算法对比

图7 实验2 中3×3 分块模式下的算法对比

(2)同时从上述实验结果观察可以发现,在5×3 分块模式下各类算法的分类效果均优于3×3和4×4 分块模式下的分类效果,这是因为在5×3 分块模式下对于纹理特征贡献度更大的子模块赋予了更多的权重从而提升了对图像的分类性能.

图8 实验2 中4×4 分块模式下的算法对比

图9 实验2 中5×3 分块模式下的算法对比

将不同算法的分类结果进行统计,结果如表1.

为了说明分块加权LBP 与基于协作表示算法的结合有着良好的分类效率,将不同算法的运行时间进行统计,结果如表2所示.

表1 各数据集算法分类准确率对比(%)

表2 各数据集算法分类运行时间对比(单位:ms)

从表2的实验结果可以看出,LBP 与CRC 相结合的算法跟LBP 与CCRC 相结合的算法在运行时间上较为接近,相较于LBP 与SRC 相结合的算法缩短了将近50 倍,同时在不同分块模式下运行时间误差更小,稳定性更强.

8 结论

本文基于传统的CRC 分类模型,使用LBP+CCRC算法实现对原有算法的优化,进而使得分类更加精准.LBP+CCRC 算法在原有CRC 算法上提出了两点改进:(1)采用分块加权的LBP 算法对数据集中的训练样本和测试样本进行特征提取,从而更好地描述人脸表情的局部细节纹理.(2)由于同一类别中的不同样本具有一定的相似性,因此引入竞争的思想,使用每一个类中的训练样本来重构测试样本以提高分类的准确率.本文使用LBP+CCRC 算法对日本女性面部表情和瑞典心理学科情绪导向表情两个数据库中的图片进行分类,通过实验从表1可知LBP+CCRC 算法相较于其他算法分类效果更为精准.

虽然引入了竞争的思想提高了分类的准确率,但是在迭代的过程中也损耗了一定的时间,因此在时间的损耗上还有待改进.此外实验只考虑了3 种分块模式下的分类情况,未考虑其他的分块模式.下一步的工作需要考虑更多的分块模式对实验的影响,同时要将样本容量扩大,另外也要在数据集中加入噪声在更多的情形下进行试验.

猜你喜欢

分块特征向量人脸
面向量化分块压缩感知的区域层次化预测编码
钢结构工程分块滑移安装施工方法探讨
高中数学特征值和特征向量解题策略
玻璃窗上的人脸
分块矩阵初等变换的妙用
三个高阶微分方程的解法研究
智力考场:有趣的图片测试
分块NMF及其在图像压缩中的应用
氨基酸序列特征向量提取方法的探讨
“领家系”可爱脸VS“高冷系”美人脸