A Compact Deep Learning Model for Robust Facial Expression Recognition 阅读笔记
1,论文主要贡献
- 提出一种精简的CNN模型来协调在人脸表情识别任务中的“识别正确率”和“模型大小“。
- 在两个标准的数据集上评估提出的网络模型,并展示相较于现阶段方法的优越性。
- 收集了三个不同场景的数据集用于验证模型在多场景的性能。
- 采用增强光照的方法来减轻用不同来源的图片训练模型时产生的过拟合问题。
2,模型结构
模型由两部分组成:脸部的预处理和CNN分类器。
2.1 预处理
首先通过 IntraFace 的方法来找出定位点(landmark points),然后根据定位点框出图片人脸的部分,框的边长为 L。
L
=
α
∗
m
a
x
(
d
v
,
d
h
)
L = \alpha * max(d_{v},d_{h})
L=α∗max(dv,dh)
其中, dv 表示最上方定位点到最下方定位点的距离,dh 表示最左方定位点到最右方定位点的距离,
α
\alpha
α 在这篇文章中设置为1.05。
将 crop 出来的脸部图片 resize 成 120x120 的图片,最后将其 96x96 的中心区域作为卷积网络的输入进行预测。
2.2网络机构
模型的开始是两个 block ,每个 block 都有两个卷积层和一个池化层,接着是两个全连接层。 每个卷积层的激活函数都是ReLU,Dropout 策略也用于全连接层来防止过拟合。
2.3 Frame-to-Sequence 模型
首先,我们希望能够得到一个模型
S
(
x
)
S(x)
S(x) ,能够根据我们输入的表情图片流,得到一个对表情的预测
Y
i
~
\tilde{Y_i}
Yi~,使其尽可能接近真实数据 yi
T 表示图片序列的长度,
θ
\theta
θ 表示模型的一组参数,我们希望能够调节
θ
\theta
θ 拾起达到最大的对数似然概率。
但是这个问题难以直接解决,所以论文采用了一个 pre-trained CNN 来作为特征提取器。我们可以理解为用一个映射函数
F
(
x
)
F(x)
F(x) , 将每个sample
x
i
t
x_i^t
xit 映射到一个概率分布
{
p
1
t
(
j
)
,
j
=
1
,
.
.
.
,
m
}
\{p^t_1(j),j=1,...,m\}
{p1t(j),j=1,...,m}。即有
其中
所以,我们用CNN得到一串概率分布,来代替原来的图片流作为预测模型的输入,即原式化为
模型
S
(
x
)
S(x)
S(x) 可用GRU(Gated Recurrent Units)来训练。论文将GRU连接在一串预测的概率之后,再接一个softmax层,如下图所示:
3,训练结果
论文提出的模型在两个数据集上都有不错的表现,切模型的参数远低于效果最好的Peak-Piloted, 然后作者又将参数进行缩减,在参数缩减一般后,性能的下降并不是特别明显。
4,光照增强方案
该论文采用的方案为直方图均衡和线性映射相结合的方法。即在数据扩增时采用直方图均衡、线性映射和两者相结合的方法(见下图的公式,论文中lamda的值设置为0.5)。论文中使用该数据扩增方法在RAF数据集上的测试结果能够达到0.67,DLP-CNN可以达到0.74,但是论文方法的参数量比其少87.45%。
5,在github上找到的一个代码实现
代码链接:https://github.com/yh1226/CompactFER
来源于参考:https://blog.csdn.net/yh1226/article/details/85622369