郭 陽
(江西科技師范大學通信與電子學院,江西 南昌 330000)
目前高光譜遙感[1]混合像元分解所涉及的算法基本都是采用串行的處理思路。但由于高光譜遙感圖像自身空間分辨率、光譜分辨率等因素影響,造成其數據量巨大,包含的信息多,且算法計算過程復雜。如果采用傳統的串行處理辦法,執行過程中高達數百億次浮點運算會嚴重影響計算機執行速度,過長的耗時嚴重制約了混合像元分解的實時性。因此,必須找到提高處理速度的辦法,以解決實際應用中的海量數據處理效率的問題。而GPU的特點是處理數據密集型和計算密集型計算,非常適合需要大規模并行計算的領域。
隨著計算機技術的發展,人們一直追求更高的性能。并行計算的提出,滿足了我們提高程序執行效率的要求。隨著CPU工藝提升,單芯片多處理器同時并行的計算是實現超高速計算的一種主要方向,我們把它叫做并行計算。也就是說并行計算可以利用每個處理器核心,充分發揮多核CPU處理器的能力。2007年NVIDIA推出了當今最流行的GPGPU編程語言,CUDA(Computer Unified Device Architecture,統一計算設備架構)[2]。他是一種專業處理和管理GPU計算的編程語言,給開發者提供編譯器和開發工具,可以直接使用C語言進行CUDA程序開發。
混合像元分解[3]是高光譜解混技術的關鍵問題。高光譜混合像元分解主要分為線性混合模型和非線性模型,通常高光譜混合像元分解都是采用線性混合模型。由于現在資源探測、地物監測與地理導航等應用對遙感數據進行快速處理的要求越來越高,傳統的方法不能滿足實時性的要求,因此,采用GPU構架的編程模型在遙感圖像中廣泛應用。本文主要介紹GPU在高光譜遙感圖像解混算法上的應用[5]。
實驗采用AVIRIS高光譜圖像,光譜庫A采用的是美國地質勘探局USGS的礦物光譜庫splib06。,其光譜波段數L=224,包含了498不同的物質種類,反射值大小范圍為0.4-2.5um。表1主要是比較了CPU串行計算和GPU并行計算的時間和加速比。當像元增加到47750時,加速比達到了164。從表1我們可以得知,像元越多,加速比越高。
當n=1000時,CPU串行計算為0.845 s,GPU并行計算為0.036 s,加速比 23.4。
當n=10000時,CPU串行計算為19.333 s,GPU并行計算為 0.124 s,加速比 155.9。
當n=47750時,CPU串行計算為76.323 s,GPU并行計算為0.465 s,加速比 164.1。
本文主要是介紹了一種基于并行的方法來實現高光譜遙感圖像的解混。與傳統的高光譜遙感圖像解混采用的串行方法相比,基于GPU并行計算的方法加速效果較為顯著。實驗結果表明,基于GPU并行計算的高光譜混合像元分解方法可以達到一個較快的計算速度。
[1]張良培,張立福.高光譜遙感[M].武漢:武漢大學出版社,2005.
[2]NVIDIA Company.CUDA C Programming Guide[EB/OL].2012[2013-9-l].http://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html.
[3]N.Keshava.A survey of spectral unmixing [J].Lincoln Lab.J.,2003,14(4):55-73.
[4]M.D.Iordache,J.M.Dias,A.Plaza.Sparse unmixing of hyperspectral data[J].IEEE Trans.Geosci.Remote Sens.,2011,49(6):2014-2038.
[5]Sergio S,Gabriel M,Antonio Petal.GPU Implementation of Fully Constrained Linear Spectral Unmixing for Remotely Sensed Hyperspectral Data Exploitation[C].Satellite Data Compression,Communications,and Processing Vi,2010.