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

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图像序列,不沿时间轴共享权重。这意味着每个过滤器根据时间扮演不同的角色。第一层的激活值定义如下:
在这里插入图片描述
其中 f x , y , i f_{x,y,i} fx,y,i是第 i i i个要素地图位置 ( x , y ) (x,y) (x,y)的激活值。 R R R S S S分别是滤波器的行数和列数。 T a T_a Ta是输入灰度图像序列的总帧数。 I x + r , y + s t I_{x+r,y+s}^t Ix+r,y+st表示在时间t输入帧的位置 ( x + r , y + s ) (x+r,y+s) (x+r,y+s)处的值。 w r , s , i t w_{r,s,i}^t wr,s,it是第t帧 ( r , s ) (r,s) (r,s)处的第 i i i个滤波器系数, b i b_i bi是第 i i i个滤波器的偏置。 σ ( ∙ ) σ(∙) σ()是一个激活函数,通常是一个非线性函数。此外,我们使用 R e L U ReLU ReLU σ ( x ) = m a x ⁡ ( 0 , x ) σ(x)=max⁡(0,x) σ(x)=max(0,x)作为激活函数,其中x是输入值。

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

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

DTGN:

DTGN接收面部标志点的轨迹作为输入。这些轨迹可视为一维信号,定义如下:
在这里插入图片描述
其中n是第t帧处地标点的总数, X t X^t Xt是第t帧处的2n维向量。 x k t x_k^t xkt y k t y_k^t ykt 是第t帧处第k个面部标志点的坐标。

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

在这里插入图片描述
其中 x i t x_i^t xit 是第t帧处第i个面部标志点的x坐标, x o t x_o^t xot 是第t帧处鼻子标志点的x坐标。 σ x t σ_x^t σxt 是帧t处x坐标的标准偏差。这个过程也适用于 y i t y_i^t yit。最后,这些规范化的点会随时间连接起来,这些点将用于$DTGN的输入。

在这里插入图片描述
其中 X ˉ \bar{X} Xˉ是第2维输入向量, x ˉ k T g \bar{x}_k^{T_g} xˉkTg y ˉ k T g \bar{y}_k^{T_g} yˉkTg是帧 T g T_g Tg处第 k k k个标准化标志点的坐标。

图1中带有虚线的红色框中的图说明了 D T G N DTGN DTGN模型的体系结构。我们的网络接收连接的标志点 X X X作为输入。基本上,我们使用两个隐藏层,顶层是 s o f t m a x softmax softmax层。与 D T A N DTAN DTAN类似,该网络也使用随机梯度下降法进行训练。每个隐藏层的激活功能为 R e L U ReLU ReLU。此外,对于网络的正则化,使用了衰减和权重衰减。

数据增强:

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

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

在这里插入图片描述
其中 z i t z_i^t zit N ( 0 , σ i 2 ) N(0,σ_i^2) N(0,σi2)是第 t t t帧第 i i i个标志点 x x x坐标的噪声级为 σ i σ_i σi的加性噪声。
作者将 σ i σ_i σi的值设为0.01。此外,还以同样的方式用噪声污染了 y y y坐标。使用此方法,网络学习对轻微的姿势变化具有鲁棒性。为了准备旋转更改,作者按如下方式构造旋转数据:
在这里插入图片描述
i = 1 , … n i=1,…n i=1,n。其中 x ~ i t \tilde{x}_i^t x~it y ~ i t \tilde{y}_i^t y~it 是时间 t t t x y xy xy坐标的2×2旋转矩阵,其具有角度 θ t θ^t θt θ t θ^t θt的值来自均匀分布,其中 θ t θ^t θt U n i t [ β , γ ] Unit[β,γ] Unit[β,γ]。我们将 β β β γ γ γ的值分别设置为 π / 10 π/10 π/10 π / 10 π/10 π/10

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

模型集成:

  1. 加权求和
    使用方程7对两个网络顶层的输出进行积分。
    在这里插入图片描述
    i = 1 , . . . c i=1,...c i=1,...c。其中 c c c是情感类的总数, p i p_i pi q i q_i qi D T A N DTAN DTAN D T G N DTGN DTGN的输出, o i o_i oi是最终得分。最后,具有最大值的指标是最终预测。参数 α α α通常取决于每个网络的性能。对于本文中的所有实验,作者将 α α α的值设置为0.5,这是最佳值。

  2. 联合微调法
    上述方法使用简单,但可能无法充分利用两个模型的能力。因此,作者提出了一种使用联合微调方法的两个网络的替代集成方法,该方法比上述方法获得了更好的结果。
    图2 联合微调法:
    在这里插入图片描述
    首先,重复使用两个经过训练的网络,如图2所示。接下来,重新训练线性全连接网络,该网络位于 s o f t m a x softmax softmax激活函数下方, D T A G N DTAGN DTAGN的损耗函数 L D T A G N L_DT AGN LDTAGN定义如下:
    在这里插入图片描述
    其中, L 1 L1 L1 L 2 L2 L2 L 3 L3 L3分别是由 D T A N DTAN DTAN D T G N DTGN DTGN和两者计算的损失函数。 λ 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。参数的选择是直观的。每个损失函数都是一个交叉熵损失函数,定义如下:
    在这里插入图片描述
    其中 y j y_j yj是标志真值标签的第 j j j个值,而 y ~ ( i , j ) \tilde{y}_(i,j) y~(i,j)是网络 i i i s o f t m a x softmax softmax的第 j j j个输出值(为了方便起见,我们将 D T A N DTAN DTAN D T G N DTGN DTGN和集成网络分别称为网络1、2和3)。使用网络1和2的 l o g i t logit logit值定义的 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的第 j j j l o g i t logit logit值。 σ s ( ∙ ) σ_s (∙) σs()是一个 s o f t m a x softmax softmax激活函数。
    最后,使用网络3的 s o f t m a x softmax softmax的输出获得最终决策 o o o,如下所示:
    在这里插入图片描述
    因此,作者在训练步骤中使用了三个损失函数,并且仅使用综合结果进行预测。在使用联合微调方法时,作者使用每个网络训练中使用的相同训练数据集。此外,还使用了衰减法来减少过拟合。

图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交叉熵之和作为融合网络的损失函数,使得该损失函数最大的标签即为输入图片的表情。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值