我毕业设计做的方向是微表情算法的研究,并且有幸听了王老师组织的《云上微表情》报告会并接触到了王老师(听的第一期是黄老师的前期工作介绍),前期看的大部分论文都是与图像特征提取 L B P − T O P LBP-TOP LBP−TOP相关的内容,听了报告会之后看到了黄老师和王老师的 R P C A RPCA RPCA的相关工作比较感兴趣,就开始了相关的漫漫长征路······欢迎各位同行私信我相互交流(但本人菜鸡一枚)。
上面说了我是看了黄老师和王老师的论文,才知道了这个流程,论文名称分别为《Discriminative Spatiotemporal Local Binary Pattern with Revisited Integral Projection for Spontaneous Facial Micro-Expression Recognition》、《Micro-expression Recognition using Robust Principal Component Analysis and Local Spatiotemporal Directional Features》的两篇文章。
R P C A RPCA RPCA被广泛应用于人脸识别、视频帧插值、脑成像和脑电图信号处理等, R P C A RPCA RPCA利用数据特征为低秩子空间这一事实,它将观测数据矩阵 D D D分解为两部分:
\quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad D = A + E D = A + E D=A+E
其中 A A A处于低秩子空间, E E E为误差项。在 R P C A RPCA RPCA的许多应用中, A A A是应有的数据,而 E E E通常作为噪声处理并去除。而在微表情识别中中,我们认为E包含了微表情中应有的细微运动信息,而 A A A中包含了每个人的身份信息,这与微表情信息的提取是无关的。
话不多说,我们开始介绍模型吧,在模型介绍中我就不掺杂微表情识别相关的背景了。
在上述 D = A + E D=A+E D=A+E成立的条件下,我们想要寻找每一列元素尽量相同的矩阵 A A A和能够产生尽量稀疏元素的矩阵 E E E,这就是想要建立 R P C A RPCA RPCA模型的初衷和背景。用数学模型表示出来就是如下的公式:
\quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad m i n A , E {min}_{A,E} minA,E r a n k ( A ) + ∣ ∣ E ∣ ∣ 0 rank(A)+||E||_0 rank(A)+∣∣E∣∣0 s . t . D = A + E \ \ \ s.t.\ D=A+E s.t. D=A+E
其中rank(·)表示矩阵的秩, ∣ ∣ ⋅ ∣ ∣ 0 || · ||_0 ∣∣⋅∣∣0表示矩阵的0范数,它表示的是矩阵E非零项数的个数。
由于上述优化问题是非凸的, R P C A RPCA RPCA将其转化为凸优化问题,便于求解。用数学模型表示出来就是如下的公式:
\quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad m i n A , E {min}_{A,E} minA,E ∣ ∣ A ∣ ∣ ∗ + λ ∣ ∣ E ∣ ∣ 1 ||A||_*+\lambda ||E||_1 ∣∣A∣∣∗+λ∣∣E∣∣1 s . t . D = A + E \ \ \ s.t.\ D=A+E s.t. D=A+E
其中, ∣ ∣ ⋅ ∣ ∣ ∗ ||·||_* ∣∣⋅∣∣∗代表矩阵的核范数,它等于矩阵所有奇异值的和,另外, ∣ ∣ ⋅ ∣ ∣ 1 ||· ||_1 ∣∣⋅∣∣1表示矩阵的1范数,它等于矩阵所有元素绝对值之和, λ \lambda λ表示噪声所占比重,是一个正的加权参数。
上述式子包括矩阵的 l 1 l1 l1-范数和核范数,求解过程中,需要使用迭代,然而,迭代阈值方案收敛非常缓慢,它不能用于处理大规模的微表情视频。Lin等采用增广拉格朗日乘子( A L M ALM ALM)的方法求解上述式子,效率提升了五倍以上。引入 A L M ALM ALM来解决以下约束优化问题:
为了求解在满足 h ( X ) = 0 h(X)=0 h(X)=0的条件下的优化问题 m i n f ( X ) min\ f(X) min f(X)(函数 f f f是一个从 n n n维到1维的映射,函数 h h h是一个从 n n n维到 m m m维的映射),并且将有约束 h ( X ) = 0 h(X)=0 h(X)=0问题转化为无约束问题(这种转化需要一定的代价的,所以构造的拉格朗日函数增加了惩罚项),构造的拉格朗日函数如下:
\quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad L ( X , Y , μ ) = f ( X ) + L(X,Y,\mu)=f(X)+ L(X,Y,μ)=f(X)+ ⟨ Y , h ( X ) ⟩ + μ 2 ∣ ∣ h ( X ) ∣ ∣ F 2 \langle Y,h(X) \rangle+\frac{\mu}{2}||h(X)||_F^2 ⟨Y,h(X)⟩+2μ∣∣h(X)∣∣F2
其中 Y Y Y是拉格朗日乘子, ∣ ∣ ⋅ ∣ ∣ F ||·||_F ∣∣⋅∣∣F代表矩阵的 F F F范数,它等于 ∑ i ∑ j X i j 2 \sqrt{\sum_i\sum_j X_{ij}^2} ∑i∑jXij2,矩阵各元素的平方和的平方根。
为了求解我们上述的 l 1 l1 l1-范数和核范数结合的优化问题,我们是由上述拉格朗日函数求解,所以 X X X即为 ( A , E ) (A,E) (A,E), f ( X ) f(X) f(X)即为 ∣ ∣ A ∣ ∣ ∗ + λ ∣ ∣ E ∣ ∣ 1 ||A||_*+\lambda ||E||_1 ∣∣A∣∣∗+λ∣∣E∣∣1, h ( X ) h(X) h(X)即为 D − E − A D-E-A D−E−A,拉格朗日函数即为
\quad \quad \quad \quad \quad \quad \quad \quad \quad L ( A , E , Y , μ ) = ∣ ∣ A ∣ ∣ ∗ + λ ∣ ∣ E ∣ ∣ 1 L(A,E,Y,\mu)= ||A||_*+\lambda ||E||_1 L(A,E,Y,μ)=∣∣A∣∣∗+λ∣∣E∣∣1+ ⟨ Y , D − E − A ⟩ + μ 2 ∣ ∣ D − E − A ∣ ∣ F 2 \langle Y,D-E-A \rangle+\frac{\mu}{2}||D-E-A||_F^2 ⟨Y,D−E−A⟩+2μ∣∣D−E−A∣∣F2
Lin等人在[1]中提出了两种算法:精确 A L M ALM ALM和不精确 A L M ALM ALM。对精确 A L M ALM ALM的轻微改进会导致不精确 A L M ALM ALM,它收敛的速度实际上与精确 A L M ALM ALM一样快,但是所需要的奇异值分解的数量要少很多。最后的迭代过程,是在一定误差阈值和最大迭代次数的控制下结束迭代,迭代过程如下:
下面给出这张图,说明 R P C A RPCA RPCA在微表情识别上的厉害之处,也是因为这张图激起了我想要做 R P C A RPCA RPCA的兴趣,不说了去看程序了,如果对我的博文排版有什么建议,欢迎私信我或者评论,如有错误也请批评指正,也非常希望读者可以关注我,看菜鸡是如何逆转翻盘的!
参考文献:
Lin, Z., Liu, R., Su, Z.: Linearized alternating direction method with adaptive penalty for low-rank representation. In: Neural Information Processing Systems (NIPS) (2011)
Wright, J., Ganesh, A., Rao, S., Peng, Y., Ma, Y.: Robust principal component analysis: Exact recovery of corrupted low-rank matrices via convex optimization. In: Advances in neural information processing systems. pp. 2080–2088 (2009)