表情识别FER | 局部特征学习和Handcrafted特征结合

简介: 作者的BOVW模型,分测试和训练两个阶段。在训练阶段,作者对所有训练图片,提取了稠密SIFT特征,然后用K-mean聚类的方式,量化这些描述子,成为visual word(VW),视觉词汇,个人认为主要是针对bag这种投票集成算法,针对视觉图像定义的。这些VW存储在k-d树形成的随机森林里以减少搜索代价。在建立好词汇表后,训练和测试等价,意思就是训练和测试没有之前离线分类那种明显的区分了,后面有用到KNN,所以,训练和测试没有明显区分。

作者基于局部特征学习和手工特征,集成模型(BOVW)的方式,在FER2013上达到75.42%的精度,在FER+上达到86.71%的精度。超过所有比赛结果,目前最好。


640.png



本文主要包含:多CNN模型特征提取、手工特征提取,两者模型集成、混合两种类型的特征之后,作者设计了一个局部学习框架,分如下三步:


   1.采用KNN模型,针对每张测试图片,选择与其最类似的训练样本(若干)


   2.利用上面1得到的样本数据,训练出1:N的多分类器SVM,


   3.该SVM用来预测每张测试图片的类别。


下面具体说明:


1.多CNN模型特征提取


作者采用了VGG-Face,VGG-13,VGG-f三种CNN网络模型,其中,VGG-f,VGG-Face作者采用预训练结果进行,之后三种模型训练,采用SGD,batch 512,动量0.9,所有模型基于数据水平翻转做了增强。


VGG-Face16层,是作者采用的最深的一个网络结构,因为该网络结构预训练的网络权重是用作人脸识别,因此,作者固定了卷积层参数,只训练全连接层参数来适应面部表示识别,并修改了最后的softmax输出类别数,作者采用一个0均值单位方差的高斯分布随机初始化该层。学习速率0.0001,学习策略为验证误差不在下降超过10个epoch时下降10%。作者采用DSD方式fineturn了VGG-Face网络模型,在FER2013数据集上,第一次训练采用Dense方式训练110epoch,然后采用 sparse方式训练40个epoch,稀疏比0.6,之后,再用Dense方式,训练了40个epoch,接着又做了一次sparse训练10次epoch,还是0.6稀疏比。同样,作者也在FER+数据集上训练了FC层,8类,DSD训练过程为:250个Dense epoch->60个Sparse  epoch->30个Dense epoch->60个Sparse epoch。


VGG-F,8层,预训练为物体分类网络,作者fineturn全层,学习速率0.0001,学习策略为验证误差不在下降超过10个epoch时下降10%。作者在每个FC后面,增加一个dropout(0.5),同时也在最后两个卷积层后增加了dropout(0.35)。(话说,都18年的论文了,怎么还有人改这种模型,用这种思路),同样,也采用DSD的方式 ,训练。但是,不同的地方在于,作者对VGG-F的前两个卷积层,在Sparse阶段,做了部分抑制,因为这两层对验证误差,有较高的负面影响,如下图:


640.png


因此,作者采用分段稀疏比的方式,每层的最高稀疏比,在{0.3,0.4,0.5,0.6}。这种方式,在FER2013上,对验证集的精度影响不超过0.5%。最终的DSD训练方式:300个Dense epoch->50个Sparse  epoch->50个Dense epoch->50个Sparse epoch->100个Dense epoch->150个Sparse epoch->50个Dense epoch,共750个epoch。在FER+上,学习速率0.001,同样采用DSD,但是没有使用权重抑制,采用一样的dropout机制,但是卷积层后面的占比下降到0.25,DSD过程为:



60个Dense epoch->20个Sparse  epoch->20个Dense epoch


VGG-13该网络结构,只在FER+数据集上重新设计,主要的参数,不在多说了,作者也没啥提升,尤其是DSD没有帮助,因此,没有使用DSD方式fineturn。有兴趣的可以看论文。


2.手动特征提取


作者的BOVW模型,分测试和训练两个阶段。在训练阶段,作者对所有训练图片,提取了稠密SIFT特征,然后用K-mean聚类的方式,量化这些描述子,成为visual word(VW),视觉词汇,个人认为主要是针对bag这种投票集成算法,针对视觉图像定义的。这些VW存储在k-d树形成的随机森林里以减少搜索代价。在建立好词汇表后,训练和测试等价,意思就是训练和测试没有之前离线分类那种明显的区分了,后面有用到KNN,所以,训练和测试没有明显区分。


对每张测试/训练图像,存储每张图片上,是否存在每个VW元素的状态,形成二值特征值向量。标准的BOVW模型,没有考虑VW元素之间的空间信息,所以作者通过将图片分块,针对每块提取上面的二值向量特征,然后把每个块得到的二值特征联合起来,形成最终的特征表示。这么做的原因,通俗的解释就是人脸特征表示,尤其是表示的特征,实际上只跟五官等关键区域有关。例如AUs,所以,作者,通过这种方式建立起二值特征之间的空间联系。


3.特征融合与学习


模型融合,作者在学习阶段之前,通过联合自动和手动特征,实现模型融合。其中,自动特征,采用多个CNN网络模型生成,去除了softmax层,即最后的FC层特征,作为输入图片的自动特征表示,并用L2-norm归一化。BOVW只有手动特征,即上面生成的二值向量,也用L2-norm归一化。


  • 全局学习,作者采用线性SVM进行1:N分类。


  • 局部学习,局部学习的目的在于,针对每个类别下的分类效果,进行局部调整,即相对于全部类别一起分,作者分解成针对每个类别,与其他类别的分类训练独立的分类器,以此提高性能。局部学习算法如下:


1.针对每张测试图片,选择与其特征类似的训练样本,这里采用KNN实现。    


2.针对1选择的这些图片,训练一个线性SVM分类器,1:N。    


3.根据上面2得到的SVM,预测测试图片的类别。


需要注意的是,相似度度量,不是欧式距离,而是余弦距离。


巧合的是,这些每个输入空间的线性SVM分类器,形成的局部学习框架,在整体上来看,却变成了非线性的。这种结构的好处如下:


640.png


4.FER结果


从结果可以看出:


  1. VGG-Face,原始版本,单模型加上局部SVM,已经到达68.96%。作者fineturn后,增加数据增强,结果达到72.11%,但是移除softmax,用局部SVM代替后,精度反而下降了0.61%。


  1. VGG-F,原始版本,实际效果只有59.38%,在此基础上增加SVM,也只有66.09%,这应该是局部SVM的作用。作者fineturn后,达到70.30%。移除softmax后,增加SVM,70.60%。


  1. VGG-1366.87%比其他都低。


其他结果如下图:


640.png

640.png


最终的最佳效果,是多个模型融合出来的特征组合,即BOVW特征向量,预训练VGG-Face, Fineturn VGG-Face,fineturn VGG-F,VGG-13四个CNN网络结构提取出的深度特征,最终采用局部SVM的方式,达到75.42.


其他基于FER+的,不在赘述。有兴趣的可以看论文。

相关文章
|
2月前
|
人工智能 自然语言处理 文字识别
【新手入门级操作open claw】新手入门 OpenClaw 2.6.2 技能选择推荐
OpenClaw 2.6.2(小龙虾)是一款AI驱动的电脑自动化工具,内置5大类实用Skill技能:文件管理、办公自动化、浏览器操作、系统管理与内容处理。支持自然语言指令,如“整理桌面”“生成周报”“抓取网页数据”,零代码上手。新手推荐启用5项核心技能,一键提升办公效率。
|
3月前
|
人工智能 安全 JavaScript
OpenClaw有什么用?本地/阿里云部署+百炼集成+个股分析实战盈利及避坑指南
OpenClaw是2026年首个开源、可本地/云端部署的AI Agent平台,不止聊天,更能自动抓新闻、分邮件、写代码、建个股模型;支持飞书/微信等20+平台,数据全链路本地化,真正让AI替你闭环干活。
606 7
|
5月前
|
机器学习/深度学习 数据采集 人工智能
吃透 PPO 算法!零基础也能懂的原理 + 可直接运行的代码实战
PPO(近端策略优化)是强化学习中稳定高效的核心算法。它通过Actor-Critic架构与关键的Clipping截断机制(如ε=0.2),在保障策略更新稳定性的同时提升样本效率,实现“稳中求进”。代码简洁、适用广泛,已成为工业落地首选Baseline。
1334 2
|
10月前
|
人工智能 边缘计算 搜索推荐
从经验管理到智能分析:2025年健身房会员运营的数字化转型及工具选型
本简介介绍了健身房会员管理系统的四代技术演进,从纸质档案到AIoT智能系统的发展路径。分析了当前数字化管理的新需求,如多模态交互、智能合约与数字孪生等前沿技术应用。同时,系统讲解了智能会员管理系统的核心功能模块、关键技术实现与主流工具选型评估体系,并提出了系统实施策略与常见问题解决方案。展望未来,元宇宙、生成式AI和边缘计算将推动健身管理向更智能、个性化的方向发展,全面提升运营效率与会员体验。
617 0
|
8月前
|
计算机视觉
MATLAB实现图像分割:Otsu阈值法
Otsu方法(大津法)是一种广泛使用的自动图像阈值分割技术,它通过最大化类间方差来确定最佳阈值。
|
机器学习/深度学习 计算机视觉
RT-DETR改进策略【模型轻量化】| 替换骨干网络为 MobileViTv1高效的信息编码与融合模块,获取局部和全局信息
RT-DETR改进策略【模型轻量化】| 替换骨干网络为 MobileViTv1高效的信息编码与融合模块,获取局部和全局信息
738 62
RT-DETR改进策略【模型轻量化】| 替换骨干网络为 MobileViTv1高效的信息编码与融合模块,获取局部和全局信息
|
机器学习/深度学习 存储 算法
回声状态网络(Echo State Networks,ESN)详细原理讲解及Python代码实现
本文详细介绍了回声状态网络(Echo State Networks, ESN)的基本概念、优点、缺点、储层计算范式,并提供了ESN的Python代码实现,包括不考虑和考虑超参数的两种ESN实现方式,以及使用ESN进行时间序列预测的示例。
1484 4
回声状态网络(Echo State Networks,ESN)详细原理讲解及Python代码实现
|
网络协议 安全 网络性能优化
|
消息中间件 存储 运维
更优性能与性价比,从自建 ELK 迁移到 SLS 开始
本文介绍了 SLS 基本能力,并和开源自建 ELK 做了对比,可以看到 SLS 相比开源 ELK 有较大优势。
56480 254
|
机器学习/深度学习 算法 索引
Transformer中解码器decoder的详细讲解(图文解释)
Transformer中解码器decoder的详细讲解(图文解释)
2426 0
Transformer中解码器decoder的详细讲解(图文解释)