Joint Fine-Tuning in Deep Neural Networks for Facial Expression Recognition

论文链接:https://ieeexplore.ieee.org/document/7410698

Abstract

论文创新点:提出的深度网络(DTAGN)包括两个不同的子网络,第一个子网络(DTAN)从图像序列中提取时间外观特征,另一个深度网络(DTGN)从时间面部标志点中提取时间几何特征。为了提高面部表情识别的性能,使用新的集成方法将这两个模型结合起来。

DTAN(深层时间外观网络):Deep Temporal Appearance Network
DTGN(深层时间几何网络):Deep Temporal Geometry Network
DTAGN(深层时间外观几何网络):Deep Temporal Appearance-Geometry Network

使用数据集:CK+、Oulu-CASIA

Introduction

在论文中,作者对使用有限数量(通常是几百个)的带有深度网络的图像序列来识别面部表情感兴趣。为了克服数据量小的问题,作者构建了两个互为补充的小型深层网络。一个深度网络使用图像序列进行训练,更关注面部表情随时间的外观变化,而另一个深度网络学习面部标志点的时间轨迹,与面部部位的运动直接相关。此外,作者提出了一种新的积分方法,称为联合微调,其性能优于简单的加权求和方法。

论文的主要贡献:

  1. 为了从数据图像序列和标志点的轨迹两种序列中提取有用的时间表示,提出了两种深度网络模型。
  2. 观察到这两个网络分别自动检测面部运动部位和动作点。
  3. 提出了一种结合这两个具有不同特征的网络的联合微调方法,并在识别率方面实现了性能改进。

Approach

作者利用深度学习技术来识别面部表情。基本上,两个深层网络是结合在一起的:深层时间外观网络(DTAN)和深层时间几何网络(DTGN)。DTAN基于CNN,用于提取面部表情识别所需的时间外观特征。DTGN基于完全连接的DNN,捕捉关于面部标志点运动的几何信息。最后,为了提高表情识别性能,将这两个模型进行了集成。这种网络称为深层时间外观几何网络(DTAGN)。

图1 总体结构:

预处理:

  1. 采用CVPR2011 Towards a practical lipreading system中的方法,将图像序列转换为固定长度。然后,检测、裁剪输入图像序列中的人脸,并将其重新缩放为64×64。
  2. 使用CVPR2013 Supervised descent method and its applications to face alignment中的IntraFace算法,提取人脸标志点(共有49个标志点),包括两只眼睛、一个鼻子、一张嘴和两条眉毛。

DTAN:

在本文中,CNN用于捕捉外观的时间变化。传统的CNN使用静态图像作为输入,而3D CNN最近被提出用于处理图像序列,沿时间轴共享3D滤波器。但是,我们使用n图像序列,不沿时间轴共享权重。这意味着每个过滤器根据时间扮演不同的角色。第一层的激活值定义如下:

其中fx,y,if_{x,y,i}fx,y,i​是第iii个要素地图位置(x,y)(x,y)(x,y)的激活值。RRR和SSS分别是滤波器的行数和列数。TaT_aTa​是输入灰度图像序列的总帧数。Ix+r,y+stI_{x+r,y+s}^tIx+r,y+st​表示在时间t输入帧的位置(x+r,y+s)(x+r,y+s)(x+r,y+s)处的值。wr,s,itw_{r,s,i}^twr,s,it​是第t帧(r,s)(r,s)(r,s)处的第iii个滤波器系数,bib_ibi​是第iii个滤波器的偏置。σ(∙)σ(∙)σ(∙)是一个激活函数,通常是一个非线性函数。此外,我们使用ReLUReLUReLU,σ(x)=max⁡(0,x)σ(x)=max⁡(0,x)σ(x)=max⁡(0,x)作为激活函数,其中x是输入值。

其他层与传统CNN的区别如下:卷积层的输出在池化层中被重新缩放到一半大小,以实现高效计算。使用这些激活值,将再次执行卷积和池化操作。最后,这些输出值通过两个全连接层传递,然后使用softmaxsoftmaxsoftmax进行分类。为了训练我们的网络,使用随机梯度下降法进行优化,并使用DropoutDropoutDropout和权重衰减法进行正则化。

作者设计的网络具有中等深度和中等数量的参数,以避免过度拟合,因为面部表情识别数据库的大小太小——MMI数据库中只有205个序列。此外,如论文第4节中所讨论的,第一层被证明检测输入图像序列中外观的时间差异。

DTGN:

DTGN接收面部标志点的轨迹作为输入。这些轨迹可视为一维信号,定义如下:

其中n是第t帧处地标点的总数,XtX^tXt是第t帧处的2n维向量。xktx_k^txkt​ 和ykty_k^tykt​ 是第t帧处第k个面部标志点的坐标。

这些xyxyxy坐标不适合直接用作深度网络的输入,因为它们没有标准化。对于xyxyxy坐标的标准化,首先从每个点的xyxyxy坐标中减去鼻子位置的xyxyxy坐标(图1中带虚线的红色框中面部标志点之间的红点位置)。然后,将每个坐标除以每个帧中xyxyxy坐标的每个标准偏差,如下所示:


其中xitx_i^txit​ 是第t帧处第i个面部标志点的x坐标,xotx_o^txot​ 是第t帧处鼻子标志点的x坐标。σxtσ_x^tσxt​ 是帧t处x坐标的标准偏差。这个过程也适用于yity_i^tyit​。最后,这些规范化的点会随时间连接起来,这些点将用于$DTGN的输入。


其中Xˉ\bar{X}Xˉ是第2维输入向量,xˉkTg\bar{x}_k^{T_g}xˉkTg​​和yˉkTg\bar{y}_k^{T_g}yˉ​kTg​​是帧TgT_gTg​处第kkk个标准化标志点的坐标。

图1中带有虚线的红色框中的图说明了DTGNDTGNDTGN模型的体系结构。我们的网络接收连接的标志点XXX作为输入。基本上,我们使用两个隐藏层,顶层是softmaxsoftmaxsoftmax层。与DTANDTANDTAN类似,该网络也使用随机梯度下降法进行训练。每个隐藏层的激活功能为ReLUReLUReLU。此外,对于网络的正则化,使用了衰减和权重衰减。

数据增强:

首先,将整个图像序列水平翻转。然后,将每个图像按每个角度旋转{-15°,-10°,-5°,5°,10°,15°}。使得模型对输入图像的轻微变化具有鲁棒性。最后获得了14倍以上的数据:原始图像(1)、翻转图像(1)、具有六个角度的旋转图像及其翻转版本(12)。

与图像序列的增强类似,标准化的面部标志点也水平翻转。然后,将高斯噪声添加到原始地标点。


其中zitz_i^tzit​∼ N(0,σi2)N(0,σ_i^2)N(0,σi2​)是第ttt帧第iii个标志点xxx坐标的噪声级为σiσ_iσi​的加性噪声。
作者将σiσ_iσi​的值设为0.01。此外,还以同样的方式用噪声污染了yyy坐标。使用此方法,网络学习对轻微的姿势变化具有鲁棒性。为了准备旋转更改,作者按如下方式构造旋转数据:

i=1,…ni=1,…ni=1,…n。其中x~it\tilde{x}_i^tx~it​和y~it\tilde{y}_i^ty~​it​ 是时间ttt处xyxyxy坐标的2×2旋转矩阵,其具有角度θtθ^tθt。θtθ^tθt的值来自均匀分布,其中θtθ^tθt∼ Unit[β,γ]Unit[β,γ]Unit[β,γ]。我们将βββ和γγγ的值分别设置为π/10π/10π/10和π/10π/10π/10。

作者对方程(5)中的第一个数据扩充方法进行了三次,对方程(6)中的第二个数据扩充也进行了三次。因此,获得了六倍多的面部标志点。最终将训练数据增加了十四次:原始坐标(1)、翻转坐标(1)、六个增强坐标及其翻转版本(12)。

模型集成:

  1. 加权求和
    使用方程7对两个网络顶层的输出进行积分。

    i=1,...ci=1,...ci=1,...c。其中ccc是情感类的总数,pip_ipi​,qiq_iqi​是DTANDTANDTAN和DTGNDTGNDTGN的输出,oio_ioi​是最终得分。最后,具有最大值的指标是最终预测。参数ααα通常取决于每个网络的性能。对于本文中的所有实验,作者将ααα的值设置为0.5,这是最佳值。

  2. 联合微调法
    上述方法使用简单,但可能无法充分利用两个模型的能力。因此,作者提出了一种使用联合微调方法的两个网络的替代集成方法,该方法比上述方法获得了更好的结果。
    图2 联合微调法:

    首先,重复使用两个经过训练的网络,如图2所示。接下来,重新训练线性全连接网络,该网络位于softmaxsoftmaxsoftmax激活函数下方, DTAGNDTAGNDTAGN的损耗函数LDTAGNL_DT AGNLD​TAGN定义如下:

    其中,L1L1L1、L2L2L2和L3L3L3分别是由DTANDTANDTAN、DTGNDTGNDTGN和两者计算的损失函数。λ1λ_1λ1​、λ2λ_2λ2​和λ3λ_3λ3​是调谐参数。通常, λ1λ_1λ1​和λ2λ_2λ2​的值是一样的,λ3λ_3λ3​的值小于两个调谐参数的值。对于本文执行的所有实验,我们分别将λ1λ_1λ1​、λ2λ_2λ2​和λ3λ_3λ3​设置为1、1和0.1。参数的选择是直观的。每个损失函数都是一个交叉熵损失函数,定义如下:

    其中yjy_jyj​是标志真值标签的第jjj个值,而y~(i,j)\tilde{y}_(i,j)y~​(​i,j)是网络iii的softmaxsoftmaxsoftmax的第jjj个输出值(为了方便起见,我们将DTANDTANDTAN、DTGNDTGNDTGN和集成网络分别称为网络1、2和3)。使用网络1和2的logitlogitlogit值定义的y~(3,j)\tilde{y}_(3,j)y~​(​3,j)如下:

    其中l(1,j)l_(1,j)l(​1,j)和l(2,j)l_(2,j)l(​2,j)是分别为网络1和2的第jjj个logitlogitlogit值。σs(∙)σ_s (∙)σs​(∙)是一个softmaxsoftmaxsoftmax激活函数。
    最后,使用网络3的softmaxsoftmaxsoftmax的输出获得最终决策ooo,如下所示:

    因此,作者在训练步骤中使用了三个损失函数,并且仅使用综合结果进行预测。在使用联合微调方法时,作者使用每个网络训练中使用的相同训练数据集。此外,还使用了衰减法来减少过拟合。

图3 DTAN特征图:

图4 DTGN特征图:

DTAN结构:输入64×64图像→5×5×64卷积核→5×5局部对比度归一化层(Local Contrast Normalization Layer)→500个结点的全连接层→500节点的全连接层→七个输出的softmax层;

DTGN结构:输入1176维输入向量→100个节点的全连接层→600个节点的全连接层→七个输出的SoftMax层;

融合网络将DTGN和DTAN的softmax层输出结果求均值(Weighted Sum)或:将DTAN和DTGN交叉熵之和作为融合网络的损失函数,使得该损失函数最大的标签即为输入图片的表情。

[论文阅读] ICCV2015 Joint Fine-Tuning in Deep Neural Networks for Facial Expression Recognition相关推荐

  1. 论文阅读 (69):Collaborative Learning for Deep Neural Networks

    文章目录 1 引入 1.1 题目 1.2 摘要 1.3 Bib 2 协作学习 2.1 训练图的生成 2.2 学习目标 2.3 一组分类器头的优化 2.3.1 同步SGD 2.3.2 反向传播重缩放 2 ...

  2. 论文阅读:Aggregated Residual Transformations for Deep Neural Networks

    本萌新记录一下看过的论文,如果理解有误大佬们体谅下QAQ. 摘要: 作者提出一个用于图像分类的.简单.高度模块化的网络结构.该网络是通过重复一个构建块(building block)来构建的,该构建块 ...

  3. 【论文阅读】A Gentle Introduction to Graph Neural Networks [图神经网络入门](7)

    [论文阅读]A Gentle Introduction to Graph Neural Networks [图神经网络入门](7) Into the Weeds Other types of grap ...

  4. 【论文阅读】A Gentle Introduction to Graph Neural Networks [图神经网络入门](5)

    [论文阅读]A Gentle Introduction to Graph Neural Networks [图神经网络入门](5) Graph Neural Networks 图神经网络 Now th ...

  5. 【论文阅读】A Gentle Introduction to Graph Neural Networks [图神经网络入门](4)

    [论文阅读]A Gentle Introduction to Graph Neural Networks [图神经网络入门](4) The challenges of using graphs in ...

  6. 【论文阅读】A Gentle Introduction to Graph Neural Networks [图神经网络入门](3)

    [论文阅读]A Gentle Introduction to Graph Neural Networks [图神经网络入门](3) What types of problems have graph ...

  7. 【论文阅读】A Gentle Introduction to Graph Neural Networks [图神经网络入门](2)

    [论文阅读]A Gentle Introduction to Graph Neural Networks [图神经网络入门](2) Graphs and where to find them 图以及在 ...

  8. 【论文阅读】A Gentle Introduction to Graph Neural Networks [图神经网络入门](1)

    [论文阅读]A Gentle Introduction to Graph Neural Networks [图神经网络入门](1) 最近读了一篇Distill网站上的一篇文章,讲的是图神经网络的入门, ...

  9. Do Deep Neural Networks Learn Facial Action Units When Doing Expression Recognition?阅读笔记

    Do Deep Neural Networks Learn Facial Action Units When Doing Expression Recognition?阅读笔记 前言 Abstract ...

最新文章

  1. 如何在电脑桌面添加计算机网络等,如何实现在电脑桌面上添加文字提醒
  2. Windows系统内存分析工具的介绍
  3. 【分享】博客美化(6)为你的博文自动添加目录【转】
  4. 优雅的使用 PhpStorm 来开发 Laravel 项目
  5. Java黑皮书课后题第9章:*9.6(秒表)设计一个名为StopWatch的类,该类包含……。编写一个测试程序,用于测量使用选择排序对100000个数字进行排序的执行时间
  6. Java中如何获得集合变量的集合中的类型参数
  7. 微信AI联手惠普、英特尔,打造PC端人工智能语音助手
  8. netfilter 和 iptables
  9. 计算机科学导论定理八,计算机科学导论:思想与方法
  10. 【转】Nero v9.4.26.0 多语(简体中文)版+完美破解(世界上最多人使用的烧录软体)...
  11. windows/Linux网络工具
  12. 【数据结构 严蔚敏版】 顺序表基本操作
  13. 2021年度 | FISCO BCOS贡献者榜单
  14. 蓝牙5最大速率分析报告
  15. 手把手教你如何在Innovus中解决local congestion问题
  16. php apply filters,apply_filters()应用过滤器
  17. 微信有趣的“隐身”功能!关掉这几个开关,别人怎么都搜不到你
  18. vue怎么vw布局好用_Vue 实现 rem 布局或vw 布局的方法_晴枙_前端开发者
  19. 重带电粒子的能量歧离(energy straggling)
  20. 国内外php主流开源cms、商城、点评、SNS、DIGG、RSS、分类信息、Wiki汇总

热门文章

  1. 阿里云的大数据ACP认证含金量高吗?
  2. fortify源代码扫描问题分析汇总
  3. 数据库SQL查询练习
  4. php mysql bootstart_PHP+MySQL+Bootstrap 美食主题博客项目
  5. 跳槽入职字节跳动,给到20K16薪,只因比别人更懂多线程与高并发
  6. Wireshark入门与进阶---Capture Options各项的含义与设定
  7. 【STM32 HAL库+STM32CUBEMX】使用usart1打印串口数据
  8. STM32之SWD连接配置说明
  9. 大多数程序员都懂的java虚拟机:C1编译器从字节码到HIR
  10. 代码仓库已移步http://202.119.84.104:8088/Socialbiao/bookdinner