首页 > 如何通过改进VGG算法实现表情分析?
头像
hello_world、
编辑于 2021-04-17 13:06
+ 关注

如何通过改进VGG算法实现表情分析?

前言

我们知道 VGGNet探索了卷积神经网络的深度与其性能之间的关系,成功地构筑了16~19层深的卷积神经网络,证明了增加网络的深度能够在一定程度上影响网络最终的性能,使错误率大幅下降,同时拓展性又很强,迁移到其它图片数据上的泛化性也非常好。但是到目前为止,VGG仍然被用来提取图像特征。 VGGNet可以看成是加深版本的AlexNet,都是由卷积层、全连接层两大部分构成。

浅谈实现原理

VGG使用多个较小卷积核(3x3)的卷积层代替一个卷积核较大的卷积层,一方面可以减少参数,另一方面相当于进行了更多的非线性映射,可以增加网络的拟合/表达能力。小卷积核是VGG的一个重要特点,虽然VGG是在模仿AlexNet的网络结构,但没有采用AlexNet中比较大的卷积核尺寸(如7x7),而是通过降低卷积核的大小(3x3),增加卷积子层数来达到同样的性能(VGG:从1到4卷积子层,AlexNet:1子层)。众所周知,VGG是一个良好的特征提取器,其与训练好的模型也经常被用来做其他事情,比如计算perceptual loss(风格迁移和超分辨率任务中),尽管现在resnet和inception网络等等具有很高的精度和更加简便的网络结构,但是在特征提取上,VGG一直是一个很好的网络。VGG之所以是一个很好的特征提取器,除了和它的网络结构有关,我认为还和它的训练方式有关系,VGG并不是直接训练完成的,它使用了逐层训练的方法。

具体实验

采用国际官方数据集亚洲人脸数据集,训练集与测试集:
Asian-Celeb 93,979 ids/2,830,146 aligned images.
验证集:
AgeDB-30 (570 ids/12,240 images/6K pairs);CFP-FP (500 ids/7K images/7K pairs);LFW (5749 ids/13233 images/6K pairs)。
构建IR-SE50网络框架
对比consineFace,ArcFac在训练前期对margin的惩罚比consineFace更大,而到最后ArcFace收敛的角度区间位置比ConsineFace更小,这样可以让收敛的更好一些。

在表情识别上采用的网络VGG19结构,训练使用的是fer2013表情数据集。Fer2013人脸表情数据集由35886张人脸表情图片组成,其中,测试图(Training)28708张,公共验证图(PublicTest)和私有验证图(PrivateTest)各3589张,每张图片是由大小固定为48×48的灰度图像组成,共有7种表情,分别对应于数字标签0-6,具体表情对应的标签和中英文如下:0 anger 生气; 1 disgust 厌恶; 2 fear 恐惧; 3 happy 开心; 4 sad 伤心;5 surprised 惊讶; 6 neutral 中性。

小结:

数据集虽然是公开的比较权威的数据,但是在使用过程中仍然有瑕疵,因为数据集本身对表情的分类并不明显,人工标注有些许粗糙,还有其他一些不标准的图片,人脸不全,表情不符合等等,所以会有正常的误差,这点不需要太过于纠结。

全部评论

(1) 回帖
加载中...
话题 回帖

相关热帖

近期精华帖

热门推荐