張海軍,陳圣波,張旭晴,王亞楠
(吉林大學地球探測科學與技術學院,吉林長春 130026)
基于GPU的遙感圖像快速去噪處理
張海軍?,陳圣波,張旭晴,王亞楠
(吉林大學地球探測科學與技術學院,吉林長春 130026)
遙感圖像在數據采集和傳輸過程中受到各種噪聲干擾,影響了圖像本身的質量,不利于遙感圖像的應用。本文利用最鄰近算法(KNN算法),在基于圖像處理器(Graphic Processing Unit,GPU)的統一計算設備架構(CUDA)架構下,實現了對遙感圖像進行了去噪聲的并行處理,并與在CPU下的串行處理做了對比,處理速度平均提高近3 000倍。遙感圖像的其他處理也可以基于GPU實現。
遙感圖像去噪;GPU;KNN;并行處理
遙感圖像在數據采集和傳輸的過程中受大氣和傳感器等外界因素的影響,產生各種外部和內部噪聲,為了達到應用分析遙感圖像的目的,需要對遙感圖像做各種預處理,噪聲處理是其中的一個重要步驟?,F有圖像處理算法一般都是串行算法,隨著衛星遙感技術的發展與進步,遙感圖像的分辨率也在不斷提高,伴隨著數據量也越來越大,因此在處理稍大圖像時,串行處理速度顯得較慢,如何提高處理速度已是人們亟待解決的問題[1]。圖像處理需要大規模的矩陣運算,因此可以考慮通過并行處理來提高處理速度[2]。現有的圖像并行處理方法有基于單指令多數據流(SIMD)技術的并行處理結構[3],針對SIMD的并行圖像處理算法,多集中在底層信號或圖像處理過程中,并行粒度小,主要是操作級的并行,不能滿足復雜任務需求,也難以掌握。另一種并行處理方法是基于多指令多數據流(MIMD)的并行處理技術,典型的MIMD系統由多臺處理機、多個存儲塊和一個互聯網絡組成,每臺處理機執行各自的指令處理數據[4]。此外,還有一種應用廣泛的并行處理技術,即網格技術。網格技術能利用廣域范圍內閑置的高性能并行計算機、集群和工作站,以充分滿足圖像處理應用中對高性能計算資源的需求[5]。
這些并行計算都是基于集群和工作站,體系龐大,不便于操作。伴隨著集成電路和計算機技術的進步,新一代的圖形處理器(GPU)以其優越的并行計算性能和出色的可編程特性,成了圖像計算和處理的新利器[6]。GPU具有強大的數據并行計算能力,特別適合做運算相同而運算數據不同的運算,當執行具有SIMT (單指令多線程)運算時,顯卡內存訪問的延遲可以忽略[7],提高了數據處理的速度。本文即是利用NVIDIA公司的GPU快速并行計算能力,進行KNN濾波器的遙感圖像去噪聲,與完全在單CPU下進行串行的圖像去噪聲相比,效率有了很大的提高。
GPU它是顯卡的“大腦”。簡單來說,GPU相當于專用于圖像處理的CPU。在技術的推動下,GPU的應用領域得到了極大的拓展,可以進行視頻轉碼、圖形處理加速和各種科學運算,已經成為高性能計算的一個重要工具。近年來,GPU的性能有了顯著的提高,其通用計算能力已經遠遠超過CPU。為滿足消費者對圖像快速處理的需求,可編程GPU已發展成為一種具有杰出計算能力的高性能計算機平臺[8]。NVIDIA推出CUDA(Compute Unified Device Architecture,統一計算設備架構),是一種新型的計算模式,用于將GPU上作為數據并行計算設備在GPU上進行計算的發放和管理,而無需將其映射到圖像API[8]。
CUDA的基本思想是支持大量的線程級并行,并在硬件中動態的調度和執行這些線程。進行CUDA編程時,將GPU看作可以并行執行多個線程的計算設備,它作為CPU的協處理器或者主機來運作。在CPU上運行的應用程序中數據并行的、計算密集的部分卸載到此設備上,運行在GPU上的函數稱為內核函數,即kernel函數,一個完整的程序由若干個內核函數以及運行在CPU上的串行處理共同組成。
KNN(K-Nearest Neighbor,k-最鄰近算法),就是取未知樣本x的k個近鄰,判斷k個近鄰中多數屬于哪一類,就將x歸于哪一類。具體說,在N個已知樣本中,來自ω1類的樣本有N1個,來自ω2類的樣本有N2個,來自ωc類的樣本有Nc個,若k1,k2,…,kc分別是k個近鄰中屬于ω1,ω2,ωc類的樣本數,則我們可以定義判別函數為:

若gi(x)=maxki,則決策x∈ωj。KNN方法是一種典型的監督學習技術,在模式識別中被廣泛應用于分類器設計。所謂監督學習,具體到KNN方法,是指在利用KNN方法對圖像進行分類時,首先從原始圖像中選取部分像素,并對這些像素進行標記作為訓練樣本,利用這些訓練樣本對未分像素進行分類[9]。K-鄰近算法是基于距離的局部最優算法,當數據中存在噪聲時,局部最優的基于距離的算法會受到明顯的影響,合適的參數k能夠減弱噪聲數據對分類效果的影響[10]。KNN算法已經廣泛應用于分類、回歸、圖像處理和模式識別等。
4.1 實驗平臺和數據
實驗平臺包括硬件平臺和軟件平臺,其中硬件平臺為IntelTMCoreTM2 Duo 2.10GHz的CPU,系統內存大小為2G,GPU為NVIDIA Quadro NVS 140M;軟件平臺為Microsoft Visual Studio 2005,MATLAB R2007b,NVIDIA_SDK10_CUDA軟件開發包。用到的實驗數據為2006年第273天的MODIS遙感數據,裁剪選取一幅大小為400 ×200的圖像,對此幅圖像進行重采樣,得到600×300、800×400、1 000×500、1 200×600四幅圖像。
4.2 圖像去噪GPU下的并行實驗
運行在GPU上的程序被稱為核(Kernel)。核并不是完整的程序,而是整個程序中的若干基本的關鍵數據并行計算步驟。核以網格(Grid)的形式執行,每個網格由若干個線程塊(block)組成,線程塊中存放的是線程(thread)。設大小為imageW ×imageH的圖像數據從CPU拷到GPU顯存中,將圖像切塊,設置每塊大小為8×8個像素,開 ceil(imageW/8)×ceil(imageH/8)個線程塊,每個線程塊負責這樣一個數據區的計算。每個block里開的線程也是8×8的,那么每個線程負責一個像素點的計算,其線程配置和執行如圖1所示。降噪過程由式(2)表示,u(x)為原始噪聲圖像,KNNh,ru(x)是在參數h、r下經過KNN濾波后的圖像,Ω(p)是在像素p的一個N×N鄰域,這里N=2M+1。M為整數,以保證p為Ω(p)的中心像素。

式中,C(x)為歸一化系數,此處取r=N,在本實驗中,取Ω(p)為5×5的鄰域。其程序處理流程如圖2所示。

圖1 線程分配和執行

圖2 程序流程圖
4.3 實驗結果分析
實驗主要是來測試用KNN濾波算法在GPU上處理遙感噪聲速度和在CPU上處理速度的比較,因為是相同的算法,他們去噪聲的效果是相同的,進行去噪聲后的原始遙感圖像和處理后的遙感圖像如圖3所示。

圖3 原始圖像和去噪聲后圖像
對在CPU和GPU上的5幅分辨率不同的遙感圖像做去噪聲的時間測試,經過多次的時間測試,得出平均去噪時間(見表1)。從表1可以看出,對于同一幅大小的圖像,GPU處理時間明顯遠遠快于CPU處理時間,突顯出GPU并行處理的強大優勢,而且隨著像素數量的不斷增大,加速比也在不斷的提高。實驗表明并行計算比串行計算性能有很大提高。

去噪時間對比 表1
遙感圖像并行處理技術是目前遙感技術應用的熱點,本文針對遙感圖像的去噪問題,應用KNN濾波算法,在GPU上遵循CUDA計算架構設計實現了并行圖像處理,并與基于CPU串行算法處理時間進行了對比分析。通過實驗和數據說明了GPU在處理大規模數據時,相對CPU在運算能力和速度上有著絕對優勢,效果令人滿意。但基于GPU的程序設計比較復雜,而且有很多限制條件,缺乏像CPU那樣的靈活性和可理解性,這使其應用受到了一定的限制。利用基于GPU的圖像快速去噪聲,為以后的遙感圖像的模式識別、特征提取奠定了前期的基礎,對遙感數據的其他處理,如邊緣檢測、圖像分割等,也可用利用GPU的并行快速處理能力,達到預期目的。
[1]陸衛中.MODIS數據預處理的并行算法設計[D].武漢:華中科技大學,2007
[2]Honghoon Jang,Anjin Park,Keechul Jung.Digital Image Computing:Techniques and Applications[J].DOI 10.1109/ DICTA.2008.82,155~161
[3]辛明瑞,高德遠,佟鳳輝.SIMD技術在數字圖像處理中的應用研究[J].微電子學與計算機,2004,21(11),164~168
[4]溫培剛,劉濤.并行圖像處理機技術[J].上海航天,2005 (2),17~21
[5]王述振.圖像處理網格相關技術的研究[D].武漢:華中科技大學,2006
[6]張加萬,楊甲東,孫濟州,張紅穎.基于GPU的彈性圖像配準方法[J].天津大學學報,2008,41(8),946~950
[7]李軍,李艷輝,陳雙平.CUDA架構下的快速圖像去噪[J].計算機工程與應用,2009,45(11),183~185
[8]Nivida.NVIDIA CUDA programming guide.(2009-04-02) http://developer.download.nvidia.com/compute/cuda/2_2/ toolkit/docs/NVIDIA_CUDA_Programming_Guide_2.2.pdf
[9]王清,馬華,孫靜等.改進的KNN算法及其在醫學圖像處理中的應用[J].泰山醫學院學報,2006,27(6),564~566
[10]倪艾玲.一種改進的應用于噪聲數據中的KNN算法[J].計算機與現代化,2008(7),75~78
GPU-Based Denoising to Remotely Sensing Images
Zhang HaiJun,Chen ShengBo,Zhang XuQing,Wang YaNan
(College of geoexploration science and technology,Jilin university,Changchun 130026,China)
The remote sensing data are influenced by many kinds of noises during the data collecting and transmitting,which is bound to decrease the quality of the image and isn’t contributing to the application of the remote sensing technique.In this paper,the KNN(K-Nearest Neighbor)algorithm is employed to wipe off the noise of remote sensing image with parallel process based on the CUDA(Compute Unified Device Architecture)architecture of GPU(Graphic Processing Unit).Compared to the serial processing on the CPU,the average processing speed is enhanced to nearly 3000 times.The other processing of the remote sensing image can also be completed based on the GPU techniques.
remote sensing image;GPU(Graphic Processing Unit);KNN(K-Nearest Neighbor);parallel processing
1672-8262(2010)02-96-03
P237
A
2009—09—10
張海軍(1984—),男,碩士研究生,研究方向:地圖學與地理信息系統。