本文整理自论文《Non-contact, automated cardiac pulse measurements using video imaging and blind source separation》及ICA相关资料。
独立成分分析(Independent Component Analysis,ICA),是一种数据驱动的信号分析方法,常用于盲源分离(Blind Source Separation,BSS)。
盲源分离是指在信号的理论模型和源信号无法精确获知的情况下,如何从混迭信号(观测信号)中分离出各源信号的过程。盲源分离和盲辨识是盲信号处理的两大类型。盲源分离的目的是求得源信号的最佳估计,盲辨识的目的是求得传输通道的混合矩阵。
最典型的盲源分离问题是鸡尾酒会问题(Cocktail Party Problem):给定混合信号,分离出鸡尾酒会中同时说话的每个人的独立信号。
预处理
在进行ICA之前通常对数据进行去均值和白化,使用PCA处理,以保证混合矩阵为正交矩阵,且可将采集信号数目降到与源信号数目相等。
算法目标
源信号 s = [ s 1 , s 2 , . . . , s i ] T s=[s_{1},s_{2},...,s_{i}]^{T} s=[s1,s2,...,si]T经过线性组合得到采集信号 x = [ x 1 , x 2 , . . . , x i ] T x=[x_{1},x_{2},...,x_{i}]^{T} x=[x1,x2,...,xi]T,其混合矩阵记为 W W W,即 x = W s x=Ws x=Ws。假设 W W W为满秩矩阵,则存在 W ′ = W − 1 W'=W^{-1} W′=W−1使 s = W ′ x s=W'x s=W′x,ICA的目标就是求出矩阵 W ′ W' W′,从而从 x x x中还原出源信号 s s s。
基本假设
主要思路
ICA方法没有参照目标,需要自组织学习过程。其主要思路为:
常使用的算法主要分为基于信息论方法和基于统计学方法。基于信息论方法主要有FastICA,Infomax,最大似然估计等方法,基于统计学方法主要有二阶累积量,四阶累积量等方法。下面简要介绍最大似然估计方法。
最大似然估计法
假设单个源信号 s i s_{i} si的概率密度为 p ( s i ) p(s_{i}) p(si),则全体源信号 s s s 的联合分布为:
p ( s ) = ∏ i = 1 n p ( s i ) p(s)=\prod_{i=1}^{n}p(s_{i}) p(s)=i=1∏np(si)则经过 x = A s = W − 1 s x=As=W^{-1}s x=As=W−1s变换后 x x x的概率分布为:
p ( x ) = ∏ i = 1 n p ( w i T x ) ⋅ ∣ W ∣ p(x)=\prod_{i=1}^{n}p(w_{i}^{T}x)\cdot|W| p(x)=i=1∏np(wiTx)⋅∣W∣由基本假设得知不能选用高斯累积分布函数,令 p ( x ) p(x) p(x)的累积分布函数为sigmoid函数 f ( s ) = 1 1 + e − s f(s)=\frac{1}{1+e^{-s}} f(s)=1+e−s1,则 p ( x ) = f ′ ( s ) = f ( s ) ( 1 − f ( s ) ) p(x)=f'(s)=f(s)(1-f(s)) p(x)=f′(s)=f(s)(1−f(s))。可得关于 W W W的似然函数,式中m表示时间序列。
l ( W ) = ∑ j = 1 m ( ∑ i = 1 n log p ( w i T x j ) + log ∣ W ∣ ) l(W)=\sum_{j=1}^{m}(\sum_{i=1}^{n}\log p(w_{i}^{T}x^{j})+\log|W|) l(W)=j=1∑m(i=1∑nlogp(wiTxj)+log∣W∣)将 l ( W ) l(W) l(W)关于W求导后可得到对于每一个x的梯度更新规则:
W : = W + α ( [ 1 − 2 f ( w 1 T x ) 1 − 2 f ( w 2 T x ) ⋮ 1 − 2 f ( w n T x ) ] x T + ( W T ) − 1 ) W:=W+\alpha \left ( \begin{bmatrix}1-2f(w_{1}^{T}x)\\ 1-2f(w_{2}^{T}x)\\ \vdots \\ 1-2f(w_{n}^{T}x)\end{bmatrix}x^{T}+(W^{T})^{-1}\right ) W:=W+α⎝⎜⎜⎜⎛⎣⎢⎢⎢⎡1−2f(w1Tx)1−2f(w2Tx)⋮1−2f(wnTx)⎦⎥⎥⎥⎤xT+(WT)−1⎠⎟⎟⎟⎞式中 α \alpha α为学习率,当 W W W收敛后可根据 s = W x s=Wx s=Wx由观测信号复原出源信号。
存在的问题
基于ICA的方法,论文《Non-contact, automated cardiac pulse measurements using video imaging and blind source separation》提出了一种通过分析视频中人脸变化从而估计心跳频率的方法,该方法准确率较高,且对于一定程度的缓慢移动具有鲁棒性,并且可以同时检测多人,可以用于远程医疗等。
该方法基本原理为,人心跳时产生的血液输送会使面部大小发生轻微变化,从而对自然光照产生不同的反射结果,并且对于不同波长光的变化情况不同,因此在RGB三通道中表现出的变化情况也不相同。通过记录彩色视频RGB通道的不同变化情况,使用ICA方法进行分析,得到最接近真实心跳频率的信号源。
基本步骤
相关实验结果
静止检测结果:
缓慢运动检测结果:
多人检测结果:
参考资料: