表情识别(四)--多网络级联表情识别
- EmotiW2015比赛静态表情识别的亚军,采用的方法为cnn的级联,人脸检测方面也采用了当时3种算法的共同检测,通过在FER2013数据库上进行模型预训练,并在SFEW2.0(比赛数据)上fine-tune,从而在比赛的验证集和测试集上取得55.96%和61.29%的准确率,远远超过比赛的baseline(35.96%,39.13%)。
作者本文主要贡献如下:
- 1.实现了CNN架构,在表情识别方面性能卓越。
- 2.提出了一种数据增强和投票模式,应有提高CNN的性能。
- 3.提出了一种优化方法自动的决定级联CNN的权重分配问题。
- 多种串联方式检测人脸
由于SFEW数据库给出的静态图像,背景非常复杂,同时为了后续的CNN表情分类,人脸的检测与对齐是非常重要的,因此作者级联了三个state-of-the-art的人脸检测算法,从而保证人脸检测的正确性.三种检测算法为(JDA,DCNN,MoT),图像事先resize为1024x576.总共帧为372,实验结果如下表所示:
Method JDA DCNN MoT JDA+DCNN JDA+DCNN+MoT Det # 333 358 352 363 371
- 2 五个卷积层,三个随机池层和三个完全连接的层的网络结构。
- 3 较完整地对训练图片进行随机裁剪、翻转、旋转、倾斜等等。
- 数据预处理对后续的识别有极大的影响,良好的数据预处理可以去除样本间的无关噪声,并能够一定程度的做到数据增强。图像尺寸归一化(48x48)直方图均衡化,去均值除方差。样本扩增(论文5.2),由于FER数据库包含35000+的图片,因此作者采用fer数据库进行预训练,作者对数据进行了随机的旋转,从而生成了更多的样本,使得网络训练的结果更具有鲁棒性。,样本生成公式以及效果图如下图所示:
- 其中θ是从三个不同值随机采样的旋转角度:{ - π/18,0,π/18}。
- s1和s2是沿着x和y方向的偏斜参数,并且都是从{-0.1,0,0.1}随机采样的。
- c是随机尺度参数。定义为c = 47 /(47 - δ),其中δ是[0,4]上随机采样的整数。
- 实际上,用下面的逆映射产生变形的图像:
- 其中A是歪斜,旋转和缩放矩阵的组成。输入(x'∈[0,47],y'∈[0,47])是变形图像的像素坐标。简单地计算逆映射以找到对应的(x,y)。由于所计算的映射大多包含非整数坐标,因此使用双线性插值来获得扰动的图像像素值
- t1和t2是两个平移参数,其值从{0,δ}被采样并且与c耦合。
- 4 扰动的学习和投票:
- 架构最后有P个Dense(7),这P个扰动样本的输出结果的平均投票,(合并后)作为该图像的预测值。
- 5 预训练:
- 样本随机扰动
- 训练时候增加了超过25%或者连续5次增加train loss ,则降低学习率为之前的一半,并重新加载之前损失最好的模型,继续训练.
- 6 克服过拟合问题:
- 冻结所有卷积图层的参数,只允许在完全连接的图层上更新参数。
- 7 上述都是单一网络,现采用集成多网络方式。
- 常用方法是对输出响应进行简单平均。
- 此处采用自适应地为每个网络分配不同的权重,即要学习集合权重w。采用独立地训练多个不同初始化的CNN并输出他们的训练响应。在加权的集合响应上定义了损失,其中w优化以最小化这种损失。在测试中,学习的w也被用来计算整体的测试响应。
- 在本文中,我们考虑以下两个优化框架:
- 最大似然方法
- 最小化Hinge loss
实验结果
作者分别列出了在FER,SFEW上数据库的单独训练结果以及,采用提升的级联方式对最终结果的提高。
FER数据集trainval结果FER数据集trainval结果
FER数据集不同Loss与级联方式的结果FER数据集不同Loss与级联方式的结果
SFEW数据集VoteNoVote的结果SFEW数据集VoteNoVote的结果
SFEW数据集不同Loss与级联方式的结果SFEW数据集不同Loss与级联方式的结果
SFEW数据库上的测试混淆矩阵SFEW数据库上的测试混淆矩阵
结论
预训练+提升的级联方式对最终的识别效果有效。同时,样本扩增对实验提升也是有作用的。
《Hierarchical Committee of Deep CNNs with Exponentially-Weighted Decision Fusion for Static Facial Expression Recognition》
EmotiW 2015的冠军,和《2015-Image based Static Facial Expression Recognition with Multiple Deep Network Learning》类似的方法。
- 先对图片做align,
- 然后设计了三种CNN,由不同的输入,不同的训练数据和不同的初始化训练了216个model,
- 然后用自己提出的方法将这些model组合起来
- 都是想办法增加训练集,让一张图片生成多张,
- 又比如训练多个model结合起来
- 就经常见到的那些方法。
表情识别(四)--多网络级联表情识别相关推荐
- 如何识别哭泣csdn_网络表情NLP(一)︱颜文字表情实体识别、属性检测、新颜发现
这是一篇一本正经无聊的小研究项目.. 互联网现在面临很多新网络文体,比如弹幕文体.小红书的种草文体.网名等,这些超短文本中本身字符特征就比较少,但是表情包占比却很多,这是重要信息呀. 之前参加比赛, ...
- 【计算视觉】人脸属性识别算法 | 性别+种族+年龄+表情
随着社会的发展,快速有效的自动身份验证在安防领域变的越来越迫切.由于生物特性是人的内在属性,具有很强的自身稳定性和个体差异性,是身份验证的最理想依据.利用人脸属性进行身份验证又是最自然直接的手段,相比 ...
- 面部表情识别3:Android实现表情识别(含源码,可实时检测)
面部表情识别3:Android实现表情识别(含源码,可实时检测) 目录 面部表情识别3:Android实现表情识别(含源码,可实时检测) 1.面部表情识别方法 2.人脸检测方法 3.面部表情识别模型训 ...
- 面部表情识别2:Pytorch实现表情识别(含表情识别数据集和训练代码)
面部表情识别2:Pytorch实现表情识别(含表情识别数据集和训练代码) 目录 面部表情识别2:Pytorch实现表情识别(含表情识别数据集和训练代码) 1.面部表情识别方法 2.面部表情识别数据集 ...
- android实现基于表情识别和敲击识别的认证系统,表情识别支持自动的连续隐藏式拍照
一个演示用的基于表情识别和敲击识别的App 演示用app,表情识别基于微软人脸识别API,可以在点击表情后自动多次拍照,拍照界面已经做了隐藏处理,当与预定义的表情序列匹配后人之成功. 敲击识别的功能上 ...
- 【LSTM】基于LSTM网络的人脸识别算法的MATLAB仿真
1.软件版本 matlab2021a 2.本算法理论知识 长短时记忆模型LSTM是由Hochreiter等人在1997年首次提出的,其主要原理是通过一种特殊的神经元结构用来长时间存储信息.LSTM网络 ...
- 创业基础-乐训课堂-第四章 创业风险及识别与管理-习题
第四章 创业风险及识别与管理 ---------------------------建议使用CTRI+F,在页面中搜索 P.S.此答案为本人自写,不保证完全正确,尤其是简答题 ...
- 创业基础-乐训课堂-第四章 创业风险及识别与管理-课堂笔记
第四章 创业风险及识别与管理 4.1 4.2 创业风险的基本内容 要点: 理解创业风险的含义.构成与分类 树立科学的创业风险意识 创业就是创业过程中损失的不确定性 产生风险的因素: 政策的变 ...
- 全卷积网络用于手语识别
Fully Convolutional Networks for Continuous Sign Language Recognition 年份 识别类型 输入数据类型 手动特征 非手动特征 Full ...
最新文章
- 热敏电阻如何查表计算温度_如何为温度传感器选择正确的热敏电阻
- .NET Framework总结二
- Android Ap 开发 设计模式第七篇:生成器模式
- 正式发布!Azure Functions OpenAPI Extension
- Logstash配置语法及相关命令
- 论文浅尝 - AAAI2020 | 从异质外部知识库中进行基于图的推理实现常识知识问答...
- qt.pro转成vs程序
- 干掉项目中杂乱的 if-else,试试状态模式,这才是优雅的实现方式!
- 零基础想学Python,明白这2点,越快年薪30W!
- 程序员编程艺术:第五章、寻找满足和为定值的两个或多个数
- warning: left shift count = width of type
- python 数据处理(以Pandas为主)
- Janis—CCR闭循环系列探针台
- 原生html5时间组件,amazeui时间组件的实现示例
- 计算机主板大小性能区别,电脑主板是大板好还是小板好 主板中大板和小板的区别介绍...
- 在新加坡工作会是一个什么体验
- 在线打包app平台以及流程平台分析(AndroidiOS)
- onnxruntime.capi.onnxruntime_pybind11_state.InvalidProtobuf: [ONNXRuntimeError] : 7 : INVALID_PROTOB
- 点击苹果手机计算机页面慢,苹果平板电脑浏览器打开慢怎么办
- 维基百科创建需要注意哪些问题?
热门文章
- dumpsys使用方法
- repo/git下载android源码断后重新下载
- tensorflow之安装PIL
- Linux主机无法安装软件故障排查
- CentOS虚拟机 Device eth0 does not seem to be present
- linux PE制作ramdisk,PE怎样在中建立一个Ramdisk盘
- java 容易犯错_写Java程序最容易犯错误有哪些呢?
- python 全部缩进一行_每天三分钟一起学python之(三)python的基本语法
- 搜索很久_装了SSD你还需要这个软件才更快,搜索查找文件数据从此不再等待
- MySQL中查询字段为空或者为null方法