基于ICA的混合图像盲分离算法
扫描二维码
随时随地手机看文章
盲信号处理(BSP)是目前信号处理中最热门的学科之一,它具有可靠的理论基础和许多方面的应用潜力。事实上,BSP已成为重要的研究课题,并在许多领域得到发展。多源混合信号的盲分离技术在通讯、语音信号处理、生物医学信号处理、阵列信号处理以及通用信号分析等方面有着非常重要的应用价值。独立分量分析(Independent Component-Analysis,简称ICA)是近年来由盲信源分解技术发展而来的多道信号处理办法。通过假定传感器阵列所采集到的信号是多个具有统计独立性的内在信源信号的线性叠加,再采用某种特定的优化准则将所谓的独立分量一一分解出来。该方法的基本思路是以非高斯信号为研究对象,在独立性假设的前提下,对多路观测信号进行盲源分离。在满足一定的条件下,能够从多路观测信号中,较好地分离出隐含的独立源信号。盲信号分离可以用于对二维数据,如图像的处理。在图像恢复和重构问题中,主要任务就是从被污染的图像中恢复出原本的面目。有各种可能造成图像的污染,如相机抖动、镜头变换、传输噪声叠加等,这些因素都是未知的。本研究在仿真试验中,用ICA成功分离出原始图像。
1 ICA基本原理
独立分量分析旨在对独立信源产生且经过未知混合的观测信号进行盲分离,从而重现原独立信源,其应用主要集中在盲源分离和特征提取两方面。ICA问题可简单描述为:
设有N个未知的源信号Si(t),i=1,…,N构成一个列向量S(t)=[S1(t),…,SN(t)]T,其中,t是离散时刻,取值为0,1,2,…。设A是一个M×N维矩阵,一般称为混合矩阵(mixing matrix)。设X(t)=[Xl(t),…,XM(t)]T是由M个可观察信号Xi(t),i=1,…,M,构成的列向量,且满足下列方程:
X(t)=AS(t),M≥N (1)
BSS的问题是,对任意t,根据已知的X(t)在A未知的条件下求未知的S(t)。这构成一个无噪声的盲分离问题。设N(t)=[Nl(t),…,NM(t)]T是由M个白色、高斯、统计独立噪声信号Ni(t)构成的列向量,且X(t)满足下列方程:
X(t)=AS(t)+N(t),M≥N (2)
则由已知的X(t)在A未知时求S(t)的问题是一个有噪声盲分离问题。
ICA的目的是对任何t,根据已知的X(t)在A未知的情况下求未知的S(t),ICA的思路是设置一个N×N维反混合阵W=(wij),X(t)经过W变换后得到N维输出列向量Y(t)=[Yl(t),…,YN(t)]T,即有
Y(t)=WX(t)=WAS(t) (3)
整个过程可以表示成如图l:
如果通过学习得以实现WA=I(I是N×N维单位阵),则Y(t)=S(t),从而达到了源信号分离目标。
2 FastICA算法
FastICA算法本质上是一种最小化估计分量互信息的神经网络方法,利用最大熵原理来近似负熵,并通过一个合适的非线性函数g使其达到最优。其算法具有很多神经算法里的优点:并行的、分布的、计算简单、要求内存小。如果要估计多个分量,我们可以按如下步骤计算:
1)对观测数据进行中心化,使它的均值为0;
2)对数据进行白化,X→Z。
3)选择需要估计的分量的个数m,设迭代次数p←1。
4)选择一个初始权矢量(随机的)Wp。
5)令Wp=E{Zg(WTpZ)}一E{g’(WTpZ)}W,非线性函数g的选取见前文。
8)假如Wp不收敛的话,返回第5步。
9)令p=p十l,如果p≤m,返回第4步。
3 试验仿真结果及主要Matlab代码
盲源分离已经在图像处理领域得以应用,在仿真数据下验证FastICA算法对图像盲分离的效果如图2所示。原始图像为3幅彩色图像,产生随机混合矩阵,将原始图像混合后得到混合图像,可见原始图像已经看不出来。用FastICA对上面的混合图像进行盲分离,即假定在未知源图像和混合矩阵下对混合图像进行分离,得到分离后的结果,由于ICA问题本身具有一些不确定因素,包括:1)分离后结果的排序与源信号会不一致;2)分离后的信号可能会与源信号相差一个负号。由于仿真实验在源图像未知情况下进行,因此我们在分离后的图形中可能会发现图像的排序发生变化,不过这些不会影响该算法对实际问题的处理。
附主要算法代码和说明如下:
初始化后读入原始图像,混合,并输出混合图像,计算图片数据的维数,将其重新排列为一维行向量并组成矩阵,图片个数即为变量数,图片的像素数即为采样数,将图像数据转换为双精度格式。取一随机矩阵,作为信号混合的权矩阵,得到三个图像的混合信号矩阵,将混合矩阵重新排列为原始的图片矩阵并输出。
%数据复原并构图
ICAedS=B’*Q*MixedS_bak;
ICAedS_bak=ICAedS;
ICAedS=abs(55*ICAedS);
最后将计算后的混合矩阵重新排列为图片矩阵并输出。
4 结束语
在分析独立分量分析(ICA)的基本模型和方法的基础上,详细地探讨了FastICA算法,并通过仿真试验,成功地用该算法将3幅混合图像有效地分离出来,但是在自然界中需要处理许多被污染的图像,这些图像含有众多未知的噪声,我们如何利用压缩稀疏编码进行图像去噪,使得基本的ICA模型可用,是我们下一步的工作。