基于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)分離后的信號可能會與源信號相差一個負號。由于仿真實驗在源圖像未知情況下進行,因此我們在分離后的圖形中可能會發現圖像的排序發生變化,不過這些不會影響該算法對實際問題的處理。
評論