96、基于多尺度块局部Gabor二值模式和二分依赖权重的表情识别

基于多尺度块局部Gabor二值模式和二分依赖权重的表情识别

1. 引言

近年来,面部表情识别在机器视觉领域成为了一个热门话题。根据所使用图像的特性,相关方法可分为两类:基于视频帧的方法和基于静态图像的方法。由于静态图像中表达动作的信息较少,从静态图像中识别表情比从图像序列中识别更具挑战性。不过,单张图像中的信息有时足以用于表情识别,并且在许多应用中,识别单张图像的表情也很有用。

在图像和信号处理技术不断发展的背景下,近年来提出了各种用于识别面部表情的特征。Gabor滤波器和小波因其出色的多尺度表示能力,被证明在表情识别中非常有效。同时,增强的局部二值模式(LBP)描述符也被用于编码局部整体纹理以进行面部表情识别。

一般来说,局部特征能反映表情变化,但容易受到噪声影响;整体特征更具鲁棒性,但易受主体差异的影响。当前的趋势是在多个尺度上提取特征并进行合理融合,以充分利用这些特征。因此,本文提出了多尺度块局部Gabor二值模式(MB - LGBP),用于从粗到细地描述面部表情的不同细节层次。具体步骤为:首先采用Gabor滤波器提取图像中表情区域的多尺度表示,然后利用具有特定块大小的MB - LBP对相应尺度的Gabor表示进行编码,从而得到MB - LGBP复合特征。在识别过程中,引入二分依赖权重用于支持向量机(SVM)分类,并将其性能与传统的基于加权卡方距离的K近邻(KNN)范式进行比较。

2. 面部表情数据库

实验使用的是日本女性面部表情(JAFFE)数据库。该数据库包含10位表达者的213张图像,每位表达者展示了7种基本表情(快乐、悲伤、惊讶、愤怒、厌恶、恐惧和中性)中的3或4个示例。

许多相关研究表明,嘴巴对面部表情的贡献最大,其次是眼角和眉毛。因此,在预处理阶段,交互式标记8个基准点,这些基准点周围的区域被称为表情区域(ROE)。在实验中,仅从这些ROE中提取MB - LGBP特征。

3. 特征
3.1 Gabor特征

与传统的傅里叶变换相比,Gabor变换具有一些理想的特性,使其在表情识别中得到广泛应用。例如,Gabor滤波器可以轻松调整,以在空间和频率域中实现详细的内容定位,具有多分辨率能力和可调节的焦点。可以使用一组具有不同空间频率特性的Gabor滤波器来提取表情特征,从而选择性地分析不同粒度的图像。

二维Gabor滤波器是一个以原点(0,0)为中心的二维高斯函数,由具有极坐标频率(F,W)和相位P的复正弦波调制,其表达式如下:
[G(x,y)=w(x,y)s(x,y)-DC]
其中,高斯包络定义为:
[w(x,y)=K\cdot e^{-\frac{(x^2 + y^2)\gamma_u}{2\pi}}]
这里,K用于缩放高斯包络的幅度;(\gamma_u)是高斯函数的缩放参数。

复正弦波(s(x,y))的表达式为:
[s(x,y)=e^{j2\pi(F_u\cos\theta_v x + F_u\sin\theta_v y + P)}]
其中,((F_u,\theta_v))是(s(x,y))的极坐标频率;P是正弦载波的相位。

项DC用于补偿高斯包络产生的固有直流分量,其表达式为:
[DC = -e^{jP}\frac{F_u}{\gamma_u}\frac{1}{2\pi}]

在本系统中,简单地设置(K = 1),相位(P = 0.7),同时(F_u=\frac{F_{max}}{2^u}),(\theta_v=\frac{v\pi}{8}),其中(F_{max}=0.1),u和v分别是方向因子和尺度因子。通过选择不同的u和v下标,可以得到不同的Gabor核。本文选择(u = 0,1,2,3,4)和(v = 0,1,\cdots,7),共使用40个Gabor滤波器。然后相应地设置(\gamma_u=\frac{1}{2 + u})。

对于给定的图像(I(x,y)),其在特定位置的Gabor变换可以通过与Gabor核的实部进行卷积来计算:
[\psi_{u,v}(x,y)=I(x,y)\ast G_{u,v}(x,y)]

在[3]中,一组具有相同尺度或方向的Gabor滤波器被称为一个通道。这里,将具有相同尺度的一组Gabor滤波器归类为一个频率通道。然后将每个频率通道中8个方向的所有图像求和,作为该尺度的表示。最终,得到了所有5个尺度的5个代表性图像。

下面是Gabor特征提取的流程:

graph TD;
    A[输入图像] --> B[选择Gabor滤波器组];
    B --> C[对图像进行卷积操作];
    C --> D[按频率通道求和];
    D --> E[得到5个尺度的代表性图像];
3.2 MB - LBP

由于局部二值模式(LBP)在描述局部纹理方面具有出色的能力,因此在许多领域得到了应用。传统的LBP算子通过将每个像素的n×n邻域与中心值进行阈值比较,并将结果视为二进制数来标记图像的像素。然后,这些标记的直方图可以用作纹理描述符。

后来,LBP算子得到了改进,使用了不同大小的邻域。通过使用圆形邻域并对像素值进行双边插值,可以实现任意半径和邻域像素数量。

LBP的一个重大改进是引入了所谓的均匀模式。如果一个局部二值模式在循环考虑时,其二进制模式中从0到1或从1到0的位转换最多有两次,则称该模式为均匀模式。在计算LBP直方图时,使用均匀模式,使得直方图为每个均匀模式设置一个单独的bin,所有非均匀模式分配到一个单独的bin,这大大减少了标准LBP代码的数量。

本文使用(LBP_{P,R}^{u2})表示LBP算子,其中上标(u2)表示仅使用均匀模式,下标表示在(P, R)邻域中使用该算子。(P, R)表示像素邻域,即半径为R的圆上有P个采样点。

然而,上述LBP算子过于局部,缺乏鲁棒性。在[9]和[10]中,引入了多尺度块LBP作为基本3×3 LBP的扩展,考虑了不同大小的邻域。在MB - LBP中,LBP中单个像素之间的比较算子被替换为子块平均灰度值之间的比较。在实验中,使用多尺度块的(LBP_{8,2}^{u2})比基本的3×3 LBP取得了更好的性能。使用(MB - LBP_{S,8,2}^{u2})表示具有块大小S的多尺度块(LBP_{8,2}^{u2})。

3.3 复合特征

为了充分利用5尺度的Gabor表示,将多尺度Gabor表示的思想与MB - LBP编码的概念相结合。具体来说,对于较粗的Gabor尺度,使用相对较大块的LBP;对于较细的尺度,则通常选择小块的LBP。块大小S可以看作是尺度(\gamma_u)的函数。在实验中,当使用(MB - LBP_{1,8,2}^{u2})对通道1和2的Gabor表示进行编码,使用(MB - LBP_{2,8,2}^{u2})对通道3进行编码,使用(MB - LBP_{3,8,2}^{u2})对通道4和5进行编码时,取得了最佳结果。

另一个关键的实现问题是LBP分区的选择。从不同图像区域提取的局部特征可能有显著差异,如果仅构建全局直方图,这种差异将丢失。因此,将图像划分为P×Q个不同的窗口,以保留全局和局部特征。分区的数量由提取特征的Gabor尺度决定。具体来说,在最粗的尺度上,使用相对较大的LBP块,每个ROE的1×1分区就足够了,因为粗滤波器只提取全局结构;而在较细的尺度上,通常每个ROE需要更多的分区。由于使用了不同的LBP块大小,每个分区中的LBP块数量大致相同。这里选择具有约10×15个块的(MB - LBP_{S,8,2}^{u2})算子,因为它在识别性能和特征向量长度之间取得了较好的平衡。

最后,定义MB - LGBP复合特征(\varphi),它是从每个ROE的所有分区在所有5个Gabor尺度上提取的全局和局部(MB - LGBP_{S(u),8,2}^{u2}(\gamma_u))特征的串联。

下面是复合特征提取的步骤总结:
1. 对不同尺度的Gabor表示选择合适的MB - LBP块大小进行编码。
2. 根据Gabor尺度确定图像的分区数量。
3. 提取每个分区的(MB - LGBP_{S(u),8,2}^{u2}(\gamma_u))特征。
4. 将所有特征串联得到MB - LGBP复合特征(\varphi)。

4. 用于SVM分类的二分依赖权重

在表情识别中,由于某些面部特征比其他特征更重要,加权卡方距离常被用于LBP特征。在本次实验中,并非每个表情区域(ROE)或每个分区都包含相同数量的判别信息。因此,应给在分类中贡献更大的分区分配更高的权重。同时,不同区域在区分不同表情对时的重要性可能不同。例如,眉毛在区分恐惧和快乐时是有用的特征,而在区分恐惧和厌恶时,嘴巴显然比眉毛更合适。

因此,为每个不同的二分法采用不同的权重分布组。对于一个n类问题,总共需要(\frac{n(n - 1)}{2})组权重。在实验中,使用具有投票策略的C - SVM作为分类器。由于SVM本质上是一个二分类器,它可以很容易地与二分依赖权重机制集成。因此,使用具有这种加权特征的SVM分类器,而不是传统的基于加权卡方距离的范式(如KNN)。

具体操作步骤如下:
1. 将训练集Train划分为两个子集:subTrain和subTest。
2. 为了找到用于区分第i类和第j类的总D个LBP分区中第k个分区的权重([w_{i,j}] k),采用以下过程:使用仅包含一个LBP分区的数据,通过使用([subTrain] {i,j})训练的SVM二分法对([subTest] {i,j})进行分类,并根据识别率为分区分配权重。这里,([SET] {i,j})表示集合SET中属于第i类和第j类的样本。
3. 在分类时,首先将特征向量缩放到[-1, 1],然后在通过使用([Train] {i,j})训练的SVM分类器进行二分时,将第k个LBP分区乘以([w {i,j}]_k)((k = 1,2,\cdots,D))进行加权。

下面是二分依赖权重确定的流程图:

graph TD;
    A[划分训练集为subTrain和subTest] --> B[选择第i类和第j类样本];
    B --> C[依次使用单个LBP分区训练SVM二分法];
    C --> D[对subTest进行分类并计算识别率];
    D --> E[根据识别率分配权重];
5. 实验结果

为了更客观地评估本文提出的表情识别算法,进行了两类实验。

实验一 :固定数据预处理和分类方法,测试MB - LGBP复合特征的有效性,不涉及特征加权。比较了几种不同类型的特征(如LBP、Gabor和Gabor直方图)的性能,结果如图6所示。

实验二 :比较基于二分依赖权重的SVM分类器与传统的基于加权卡方距离的KNN范式。给出了使用MB - LGBP复合特征时它们的识别准确率,结果如图7所示。

在两个实验中,都使用留一组交叉验证方法,以充分利用标准数据库进行测试。即根据数据库中的人员将整个数据库分为10折。在每一折中,仅选择一个人的图像作为测试集,其余九组用于训练。在进行特征加权时,将测试人员之后的6个人用作subTest。例如,如果第i个人用作测试集,则第((i + 1)\bmod{10})到((i + 6)\bmod{10})个人用作subTest。

以下是实验设置的表格总结:
| 实验类型 | 目的 | 涉及操作 | 验证方法 |
| ---- | ---- | ---- | ---- |
| 实验一 | 测试MB - LGBP复合特征有效性 | 不涉及特征加权,比较多种特征性能 | 留一组交叉验证 |
| 实验二 | 比较SVM和KNN分类器性能 | 使用二分依赖权重的SVM和加权卡方距离的KNN,基于MB - LGBP特征 | 留一组交叉验证 |

6. 结论

本文提出了一种基于多尺度块局部Gabor二值模式和二分依赖权重的表情识别框架,并设计了两类实验来验证该方法的有效性。

实验一表明,MB - LGBP复合特征在表情识别方面优于其他一些流行的特征。实验二显示,对于一些典型的人员,如KM、MK、NM和YM,通过加权可以大大提高识别准确率。然而,这三种算法的总准确率相当,这可能是由于JAFFE数据库中的样本数量较少。

综上所述,只要待分类的对象与subTest中的对象相似,或者说subTest中的对象具有足够的代表性,二分依赖权重机制就可以很好地工作。不过,所采用的特征加权方法可能过于简单,如果精心设计每个弱分类器,Adaboost有望实现更好的特征加权。未来可以进一步探索如何优化特征加权方法,以及在更大规模的数据集上验证该方法的性能。

根据原作 https://pan.quark.cn/s/459657bcfd45 的源码改编 Classic-ML-Methods-Algo 引言 建立这个项目,是为了梳理总结传统机器学习(Machine Learning)方法(methods)或者算法(algo),各位同仁相互学习交流. 现在的深度学习本质上来自于传统的神经网络模型,很大程度上是传统机器学习的延续,同时也在不少时候需要结合传统方法来实现. 任何机器学习方法基本的流程结构都是通用的;使用的评价方法也基本通用;使用的一些数学知识也是通用的. 本文在梳理传统机器学习方法算法的同时也会顺便补充这些流程,数学上的知识以供参考. 机器学习 机器学习是人工智能(Artificial Intelligence)的一个分支,也是实现人工智能最重要的手段.区别于传统的基于规则(rule-based)的算法,机器学习可以从数据中获取知识,从而实现规定的任务[Ian Goodfellow and Yoshua Bengio and Aaron Courville的Deep Learning].这些知识可以分为四种: 总结(summarization) 预测(prediction) 估计(estimation) 假想验证(hypothesis testing) 机器学习主要关心的是预测[Varian在Big Data : New Tricks for Econometrics],预测的可以是连续性的输出变量,分类,聚类或者物品之间的有趣关联. 机器学习分类 根据数据配置(setting,是否有标签,可以是连续的也可以是离散的)任务目标,我们可以将机器学习方法分为四种: 无监督(unsupervised) 训练数据没有给定...
本系统采用微信小程序作为前端交互界面,结合Spring Boot与Vue.js框架实现后端服务及管理后台的构建,形成一套完整的电子商务解决方案。该系统架构支持单一商户独立运营,亦兼容多商户入驻的平台模式,具备高度的灵活性与扩展性。 在技术实现上,后端以Java语言为核心,依托Spring Boot框架提供稳定的业务逻辑处理与数据接口服务;管理后台采用Vue.js进行开发,实现了直观高效的操作界面;前端微信小程序则为用户提供了便捷的移动端购物体验。整套系统各模间紧密协作,功能链路完整闭环,已通过严格测试与优化,符合商业应用的标准要求。 系统设计注重业务场景的全面覆盖,不仅包含商品展示、交易流程、订单处理等核心电商功能,还集成了会员管理、营销工具、数据统计等辅助模,能够满足不同规模商户的日常运营需求。其多店铺支持机制允许平台方对入驻商户进行统一管理,同时保障各店铺在品牌展示、商品销售及客户服务方面的独立运作空间。 该解决方案强调代码结构的规范性与可维护性,遵循企业级开发标准,确保了系统的长期稳定运行与后续功能迭代的可行性。整体而言,这是一套技术选型成熟、架构清晰、功能完备且可直接投入商用的电商平台系统。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值