Beat FER :LBVCNN -- CVPR2019
LBVCNN:
Local Binary Volume Convolutional Neural Network for Facial
Expression Recognition from Image Sequences
Abstract
对于表情识别,时间图像序列可以提供很好的时空特征,本文提出了一个新的3DCNN,可以完成端到端的基于时间图像序列的模型,同时他不需要面部关键点。
简单说,LBVCNN添加了一个新的层,Local Binary Volume(LBV)解释为局部二值流
而他的优点就是不需要面部关键点,同时LVB层相对于3*3*3 3D层训练参数少27倍,也就是训练一个参数
本文的基准采用的是
1.CK+
2.Oulu-CASIA
3.UNBC McMaster shoulder pain datasets
Introduction
人们在表达自己的感觉的时候通常会伴有面部肌肉的变动
一部分研究通过静态图来进行表情的识别,虽然这种方式可以提取到不错的空间特征,但是提取不到形态学和上下文信息,最近的方法使用时间图像序列来捕获时空同步信息
有人在时间图像序列上利用面部关键点来达到了不错的效果,但是关键点的定位本身就是一个难题,他会受到环境问题的影响,最近一篇文章研究了角度和高斯噪声这种细微的失真对关键点检测算法的影响,表明了确实存在影响。
本文提出了的3DCNN的灵感来自于VLBP和LBCNN
Volume Local Binary Patterns:对于每一帧每一个像素,都有一个3D邻域,然后生成相应的3D LBP
LBCNN:用LBC层取代CNN中的conv 2D层
本文的LBVCNN通过三个小的网络来分别捕获三个方向上的变化(X,Y,T)LBVCNN-XY,LBVCNN-XT,LBVCNN-YT,每个小模型都用到了LBV层
why:局部纹理信息在空间结构和轻微时空变换都很有用
Related Work
手工制作的特征:
LOB-TOP,ITBN等,主要体现在特征上
深度学习方法:
基于3DCNN,利用关键点,分时间空间多任务,之后再结合微调,如DTAN和DTGN,或者对人脸区域分区域做
Our Approach
本文以3DCNN为基础,idea基于VLBP和LBCNN
简单来说,
LBP:
Loacl Binary Pattern,局部二值化,只在二维空间上,xy上做局部二值化,做单图
LBP-TOP:
针对LBP,为了得到时间特征,而不仅仅局限于空间特征,他在XY,XT,YT三个方向提取特征,然后在结合
VLBP:
对于图片序列,方式类似LBP-TOP,但是LBP-TOP用的LBP,VLBP考虑了3D特性,局部二值化的时候邻居是3D的
LBCNN:
他把LBP引入到CNN里,用LBC层代替卷积层,LBC层分两步,第一步是多个3*3的filter,filter的参数符合{-1,0,1}的伯努利分布,然后用这个filter来做卷积,同时这部分的参数是不用训练的,然后做RELU,第二步,接一个1*1的卷积层,这个参数是可训练的,所以在训练参数上少很多
LBV层:
相当于VLBP引入CNN,也是分开两步,训练参数少了27倍
LBVCNN:
整体结构和LBP-TOP差不多,分XY,XT,YT来提出时空特征,局部二值化也是在3D上做,然后每个子网络和LBCNN一样,LBV层代替LB层,然后把三个子网络的输出结合在微调
Fusion fine-tuning:
三个子网络的输出是FC的输出,然后把三个输出取平均,然后接一个softmax
Experiments
数据预处理:
将图片序列的长度固定为11,然后对于每个图截取人脸图,然后resize到64,所以输入时64*64*11
数据增强:
原图+原图六个角度的旋转+翻转图+翻转图的六个角度旋转
LVB层的参数:
伯努利分布非零值为90%
网络结构:
训练:
子网络Adam,微调SGD
测试:
K折