?

基于Matlab的遙感圖像IHS小波融合算法的并行化設計

2016-05-23 08:13王淼
科技視界 2016年11期
關鍵詞:圖像融合并行計算小波變換

王淼

【摘 要】隨著遙感圖像數據規模的不斷擴大與融合算法計算復雜度的增大,遙感圖像的快速融合成為很多遙感處理步驟的關鍵一環。計算機技術快速發展,CPU多核架構逐漸普及,為了充分利用多核處理器資源,Matlab提供了并行計算模型。本文選取了基于小波變換和IHS空間的圖像融合算法進行并行化設計,利用Matlab并行計算工具箱與分布式計算服務器進行任務分割,實現了算法的并行化。實驗結果表明,并行化處理可以有效縮短圖像融合的時間,獲得良好的加速比,驗證了并行算法的高效性,對進一步研究并行圖像處理有一定的指導意義。

【關鍵詞】Matlab;圖像融合;IHS;小波變換;并行計算

0 引言

隨著遙感技術的飛速發展,由于信息獲取的途徑越來越多,從而得到了各式各樣的遙感數據,而且數據量也越來越大。圖像融合技術的誕生使多源遙感數據得到了充分的利用,產生了比單一信息源更精確、更可靠的估計和判斷。由于數據規模的不斷增大,基于單處理器的傳統的串行圖像融合算法已經無法滿足計算量不斷增加的需求,基于多處理器或集群的并行計算使圖像的快速融合成為了可能,為高效地分析遙感圖像提供了有效的解決途徑。

當前流行的并行化工具與多核計算平臺有很多,如OpenMP、MPI等[1],還有基于GPU并行計算的GUDA語言[2]。為高效利用多核處理器進行并行計算,增強計算能力,Mathwork 公司推出了Matlab 分布式計算服務器與并行計算工具箱[3],可以實現對大規模數據進行快速、便捷地并行任務劃分,而且具有良好的可擴展性。

近年來,小波變換理論被廣泛應用于圖像融合并行處理當中,有基于MPI的復小波變換的遙感圖像并行融合算法[4],有基于GPU的小波變換圖像融合快速實現算法等[5]。本文在Matlab并行計算環境下,分析了基于小波變換與IHS空間的圖像融合算法流程,將讀入內存數據規模較大的遙感圖像像元矩陣進行均等任務劃分,分配給不同的處理單元進行融合計算,實現了算法的并行化,為提高大規模矩陣的計算速度與多核處理器的利用率提供了并行處理方法。

1 Matlab并行計算

Matlab并行計算架構主要依賴兩個工具:并行計算工具箱(PCT)和分布式計算服務器(MDCS)[6],用戶可以通過使用以上兩個工具完成多種并行計算任務,例如基于多核平臺、多處理器平臺的并行計算以及基于集群平臺的并行計算。PCT與MDCS可以自動幫助用戶完成參與計算的多個核、多個處理器或多個集群節點之間的底層數據通信,用戶則可以更加專注于并行算法的設計,于此同時,Matlab提供了各式各樣的函數工具箱,以便用戶高效便捷地完成并行計算任務。

典型的Matlab并行計算架構包含Client、Job Manager和Worker,它們既可以運行在網絡中的多臺計算機上,也可以運行在同一臺計算機上。用戶通過Client可以編輯代碼,輸入各種命令,將Job提交給Job Manager;Job Manager負責Worker的管理和Task分配,將Job中的Task分配到Worker上執行,并收集Worker的執行結果返回給Client;Worker負責執行由Job Manager分配的Task,并將執行結果返回Job Manager。其中,Job作為任務的基本單元,由Client向Job Manager提交,而Task則作為任務的基本單元被Job Manager分配到各個Worker中去,一個Job可以只包含一個Task,也可以包含多個Task。

2 IHS小波融合算法并行設計

2.1 基本原理

IHS小波融合算法1999年由Nunez 提出[7],通過將傳統的IHS變換與小波變換相結合,既有效地增強了融合圖像的空間分辨率,又較好的保持了融合圖像的光譜特性,減小了光譜失真。該方法先將待融合多光譜圖像作由RGB空間到IHS空間的轉換,然后利用小波變換將得到的多光譜圖像的I分量與全色圖像進行小波分解、融合與重構,最后將得到的新的Inew分量與原先的H、S分量進行IHS逆變換得到最終的融合結果。

2.2 并行算法實現

在進行并行IHS小波融合算法設計之前,首先需要分析在整個串行算法中各個函數調用的頻率以及函數執行消耗的時間,這個過程可以由Matlab提供的Profiler剖析器來完成,經過分析可知,程序中將多光譜圖像的I分量與高分辨率全色圖像進行小波融合花費處理器時間最多,這是由于進行逐層小波分解與重構時,計算復雜度不斷升高,計算量不斷加大。為了充分利用多核處理器資源,采用均等原則劃分計算量較大的復雜計算任務,使這部分過程可以在Matlab環境下實現并行化,該算法并行化過程見圖1。

本文將并行小波融合算法設計成一個獨立的模塊函數P-Fusion()[8],該模塊函數主要完成的工作是:圖像像元矩陣的小波分解與重構、由小波系數陣以3X3為窗口大小計算像元梯度矩陣和融合圖像小波系數陣的計算。

作為實現并行計算的獨立模塊函數P-Fusion(),其輸入參數為過IHS變換后提取的I分量像元矩陣與經配準后的全色圖像像元矩陣,函數執行完成后,將輸出參量作為新的Inew通道信息與H、S通道信息作IHS逆變換即可得到融合圖像。在Matlab多核處理器并行計算平臺下實現基于均等任務劃分原則的并行計算,其主要步驟如下:

(1)調用FindResource()函數創建對象Job Manager,并將該對象命名為Jm,它作為一個調度器負責整個并行計算程序的調度工作。

(2)通過createJob()函數在對象Jm上創建一個作業,命名為Job,并完成定義并行小波融合模塊函數P-Fusion()。

(3)設置該作業的文件關聯,讓所有Workers都可以找到原程序文件。

(4)通過createTask()函數將作業Job進行任務劃分,P-Fusion()作為函數句柄,并設置好函數的輸入參數與輸出參數。

(5)利用Submit()函數完成作業Job的提交,Job Manager調度后臺可用于計算的處理器核心完成作業任務的分配,各工作核獲取任務后執行模塊函數P-Fusion()完成各自計算任務,此時各個核同時工作,互不干擾,完成并行計算。

(6)當所有任務全部完成后,將計算結果通過GetAllOutputArguments()函數回收并整理后返回給客戶端Client。

完成該并行計算過程的主要代碼如下:

3 實驗及結果分析

本文選擇的實驗數據為北京地區Landset8遙感影像,將2048X2048大小的空間分辨率為30m的多光譜圖像與空間分辨率為15m的全色圖像進行融合。

3.1 實驗環境

硬件配置:節點Intel Core i5-4590 CPU,四核,4GB內存;

軟件配置:Windows 7專業版64位操作系統,Matlab2010a(并行計算工具箱Parallel Computing Toolbox 4.3和分布式計算服務器Matlab Distributed Computing Server 4.3)。

3.2 結果分析

在多核處理器并行環境下完成了圖像像元矩陣的小波分解與重構、像元梯度矩陣和融合圖像小波系數陣的計算,且融合結果基本穩定,其結果如圖2-4圖所示:

通過對串行融合程序與并行融合程序的執行時間進行測試,對比分析了并行計算的優化效果,其測試性能對比如表1所示:

表1 IHS小波融合并行化性能對比

由表1可知:在進行相同任務量的計算時,參與計算的內核數不同,程序的執行時間也會隨之改變,其具體表現為Worker數目增加,運行時間變短,但減小趨勢變緩,這是因為計算機在執行并行程序時會產生額外的通訊開銷。并行算法的加速比大致呈線性增長,當開啟Worker數為4,即等于處理器的最大內核數時,并行程序加速比達到2.2。算法的并行化設計,能有效的縮短程序執行的時間,充分利用多處理器資源,滿足了快速處理的需要。

4 結語

本文針對IHS小波融合算法,利用Matlab并行環境進行了算法并行化設計與實現,有效的提高了程序的運行速度并充分運用了多核處理器資源,均等的任務劃分、模塊化的處理方法為處理大規模遙感數據提供了可能。相較于其他并行模式,Matlab并行計算程序設計更為簡便,豐富的函數工具箱能滿足不同的應用需求,將會在不同的鄰域有著廣闊的應用前景。

【參考文獻】

[1]王鵬,等.并行計算應用及實戰[M].北京:機械工業出版社,2009.

[2]劉金碩,等.基于CUDA的并行程序設計[M].北京:科學出版社,2015.

[3]MathWorks. Matlab distributed computing server [EB/OL] [2009-10-01] http://www.mathworks.com/help/toolbox/mdce/index.html.

[4]王攀峰,杜云飛,周海芳,楊學軍.基于復小波變換的遙感圖像并行融合算法[J].計算機工程與科學.2008.30(3):35-39.

[5]閆鈞華,杭誼青,孫思佳. 基于GPU的可見光與紅外圖像融合快速實現[J].計算機工程.2013.39(11):249-253.

[6]劉維.實戰Matlab之并行程序設計[M].北京:北京航空航天大學出版社,2012.

[7]Jorge Nunez, Xavier Otazu, Octavi Fors. Multiresolution Based Image Fusion with Additive Wavelet Decomposition[J].IEEE Transactions on Geoscience and Remote-sensing.1999(3):1204-1211.

[8]鄭曉薇,于夢玲.基于Matlab多核集群的人臉識別算法的并行化設計[J].計算機應用.2011.31(10):2597-2599.

[責任編輯:張濤]

猜你喜歡
圖像融合并行計算小波變換
基于小波變換的多模態醫學圖像的融合方法
基于自適應線程束的GPU并行粒子群優化算法
云計算中MapReduce分布式并行處理框架的研究與搭建
并行硬件簡介
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合