• Paper-[acmi 2015]Image based Static Facial Expression Recognition with Multiple Deep Network Learning


    [acmi 2015]Image based Static Facial Expression Recognition with Multiple Deep Network Learning

    ABSTRACT

    该文章作者为EmotiW2015比赛静态表情识别的亚军,采用的方法为cnn的级联,人脸检测方面也采用了当时3种算法的共同检测,
    通过在FER2013数据库上进行模型预训练,并在SFEW2.0(比赛数据)上fine-tune,从而在比赛的验证集和测试集上取得55.96%和61.29%
    的准确率,远远超过比赛的baseline(35.96%,39.13%)。
    作者本文主要贡献如下:

    • 1.实现了CNN架构,在表情识别方面性能卓越。
    • 2.提出了一种数据增强和投票模式,应有提高CNN的性能。
    • 3.提出了一种优化方法自动的决定级联CNN的权重分配问题。

    FaceDetection

    由于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

    FacePreprocessing

    数据预处理对后续的识别有极大的影响,良好的数据预处理可以去除样本间的无关噪声,并能够一定程度的做到数据增强。图像尺寸归一化(48x48)
    直方图均衡化,去均值除方差。
    样本扩增(论文5.2),由于FER数据库包含35000+的图片,因此作者采用fer数据库进行预训练,作者对数据进行了随机的旋转,从而生成了更多的样本,使得网络训练的结果更具有鲁棒性。,样本生成公式以及效果图如下图所示:


    [样本添加扰动后生成的图样与原始图样的对比 ]

    CNNModel

    基本网络结构

    5个conv+relu(step:1),3个stochastic pooling层(kernel_size:3*3,step:2),3个全连接层次(带relu+dropout)+softmax,随机初始化参数.
    采用sgd优化方式,batch_size:128.

    [CNN网络结构图 ]

    损失函数与级联思想

    损失函数为softmaxWithLoss,只不过计算的时候一个样本会与其生成的样本loss一起计算,整个网络用FER数据库进行预训练(base_lr:0.005),当loss突然增加25%或者连续5次观察loss发现loss上升,则手动的减小学习率,最小的学习率设置为0.0001.
    由于随机初始化参数,因此作者测试的时候,对多个网络进行级联,从而提高测试的准确率.

    [测试时级联CNN网络结构图 ]

    相比较简单的加权投票平均的思想,作者认为可以通过学习策略,来决定网络的具体权重。所以提出了一个级联的似然函数,实际可以理解为根据各个网络的输出去学习一个全连接层.其中||w|| == 1.

    实验结果

    作者分别列出了在FER,SFEW上数据库的单独训练结果以及,采用提升的级联方式对最终结果的提高。

    [FER数据集train \, val结果 ]

    [FER数据集不同Loss与级联方式的结果 ]

    [SFEW数据集Vote \, No Vote的结果 ]

    [SFEW数据集不同Loss与级联方式的结果 ]

    [SFEW数据库上的测试混淆矩阵 ]

    结论

    预训练+提升的级联方式对最终的识别效果有效。同时,样本扩增对实验提升也是有作用的。

    本文作者: 张峰
    本文链接: http://www.enjoyai.site/2018/01/08/
    版权声明: 本博客所有文章,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!

  • 相关阅读:
    Laravel5.0学习--01 入门
    MySQL账户安全设置
    360路由器c301最新固件支持万能中继
    PsySH:PHP交互运行环境
    PHP-CS-Fixer:格式化你的PHP代码
    JVM 类加载机制详解
    Java虚拟机(JVM)概述
    聊一聊 Spring 中的线程安全性
    Java 里如何实现线程间通信
    Java 数据结构
  • 原文地址:https://www.cnblogs.com/LaplaceAkuir/p/8241739.html
Copyright © 2020-2023  润新知