基于线性光谱模型的混合像元分解高性能计算研究
2013-08-07罗耀华赵仕波
罗耀华 ,郭 科,赵仕波
(1.成都理工大学 网络与教育技术中心,四川 成都 610059;2.成都理工大学 数学地质四川省重点实验室,四川 成都 610059;3.成都理工大学 管理科学学院,四川 成都 610059)
0 前言
高光谱遥感[2]影像包含了丰富的空间、辐射、光谱信息,光谱分辨率能达到几纳米,同时可以提供地物的连续光谱。相对多光谱影像,它是以光谱分析为主要的处理模式。高光谱遥感的每个像元都是地物光谱信息的综合,不同地物有不同的光谱特征。由于空间分辨率限制以及地物的多样性,使得在单像元点处得到的光谱一般是几种不同物质光谱的混合,称为混合像元。光谱混合从本质上可以分为线性与非线性混合二种模式。线性模式假设物体间没有相互作用,每个光子仅能“看到”一种物质,并将其信号叠加到像元光谱中。目前使用的端元提取方法大部份都基于线性模型,每个像元都可近似为图像各个端元的线性混合。常用的混合像元分解方法[3]有最小二乘法、端元投影向量法、单形体体积法等。
目前针对大数据量高光谱遥感影像的处理,主要采用多核CPU 或者集群模式,该模式对于环境配置和硬件要求较高,运算速度的提升空间也不理想,很难实现对海量数据高光谱遥感影像的实时处理。高性能计算技术是图像处理技术发展的重要方向,可编程图形处理器(GPU)[4]技术发展极为迅速。从并行的角度来看,现代的多核CPU 针对地是指令集并行(ILP)和任务并行(TLP),而GPU 则是数据并行(DLP)。在同样面积的芯片之上,CPU 更多地放置了多级缓存(L1/L2/LLC)和指令并行相关的控制部件,而GPU 上则更多的是运算单元。此外,GPU的显存带宽更大,在大数据量地处理中性能更高。因此,作者在本文中提出一种在GPU 框架下,对端元投影向量法进行并行优化的高性能计算算法。
1 CUDA 计算框架
1.1 CUDA 框架
现代的显示芯片拥有较高的内存带宽以及大量执行单元,具备高度的可程序化能力。CUDA 是NVIDIA的新一代显示芯片框架,GPU 程序包括二部份[5]:①设备(device)端;②服务器(host)端。其中,“device”端程序控制显卡的运算部份,“host”端控制CPU 上计算的部份。数据由“host”端提出,复制到显卡开辟的内存空间中,执行device端程序,计算结束后由host端将结果从显卡内存中读回。
1.2 CUDA 执行模式[6]
(1)内存存取等待。为了减少内存空闲等待时间,CPU 采用缓存技术,通过降低内存操作的次数来提高执行效率。CUDA 则采用并行执行的模式来减少内存的等待时间,其基本原理是当前一个线程处于等待内存读取结果的空闲期时,下一个线程开始执行。
(2)分支指令。由于显示芯片处理多分支的效率不高,因此CPU 的模式采用分支预测来减少分支指令的运算流水线通道。而CUDA 可以实现上千个线程同时执行,最适合解决并行化的问题。
1.3 CUDA 优势
使用显示芯片来进行运算工作的优势是十分明显的,以GeForce 8800GTX 为例[7]:①显卡芯片拥有较大内存带宽。目前比较高级的CPU,内存带宽一般为10GB/s左右,而GeForce 8800GTX 有50 GB/s以上的内存带宽;②显卡芯片的执行单元数更多。GeForce 8800GTX包含128个流处理器,频率达到1.35GHz,相对于CPU 的执行单元数目要高很多;③显卡芯片的性价比高。GeForce 8800GT价格要低于2.4GHz四核心CPU 的价格[8]。
GPU 被定义为“一个单芯片的处理器,集成了几何变换、光照、三角形构造、裁剪和绘制引擎等功能,并具有每秒至少一千万个多边形的处理能力”。它极大地提升了图形的处理速度,并使图形的质量得到增强,推进了图形处理相关领域的迅速发展。作者在本次实验采用NVIDIAGeForce GT540M显卡,包含96个CUDA 处理器核心,处理器频率为1 344 MHz,纹理填充速率10.8billion/sec。
2 端元投影向量法模型
在高光谱遥感图像中,每个像元都是其L维特征空间的一个点(L为图像波段数),并由端元构成了其基本元素。从数学的角度,像元点都可以转换成端元的线性组合(省略去误差项n),在此基础上,所有像元点集合构成一个n-1维空间凸集,端元点的位置在该凸面单形体的顶面。这就是以高光谱遥感数据在特征空间凸面几何学模型的基本依据[9]。图1是一个二维空间下由三个端元构成的单形体。
根据图1所示光谱的凸面几何模型[10],我们设第i个端元以外所有端元构成的超平面为第i个超平面。由图1可知:第i个端元是到这第i个超平面最远的点。因此,可以根据每个像元与第i个超平面的距离,判断该像元中所含第i个端元的组份。以第2波段第3端元为例,端元A、B、C是构成三角形的三个顶点,点D、E、F是各自对应边的垂足,如图2所示(见下页),由此可以得到三个单位矢量:
在式(1)中,线段AD、BE、CF作为矢量处理,也就是所要获得的端元投影向量,对其进行投影处理得到地物与背景的最佳分离效果。在矢量AD方向上进行投影,则可以将A 点对应的地物信息与点B点、C点所组成的背景信息作最大区分(见下页图2)。具体算法过程如下:
(1)假设(e1,e2,…,eN)是从图像中求出的所有端元,下面以端元eN为例,介绍从图像获取出对应目标的具体算法(对其它端元同理):
再对(b1,b2,…,bN-1)进行正交化,得到lN:
图1 二维空间(平面)上的凸面单形体Fig.1 Convex simplex in two-dimensional space
图2 端元投影向量Fig.2 Endmembers projection vector
(2)然后将所有像元投影到lN,计算出到端元eN对应的地物,在整个图像中的分布情况,即:
gij=rij·lN(5)
式中rij为原始高光谱遥感图像中第i行、第j列像元点的光谱向量;G为端元eN对应地物的分布图。
(3)再对N个端元进行投影变换,就可以得到N个端元投影向量。在对N个单位向量作投影操作,可以计算出图像中的各种地物的分布图。并且缩小了背景地物间的区别,最大程度地区分了地物与背景。其基本算法流程如图3所示。
3 端元投影向量法并行算法及实验
3.1 并行设计思路
结合线性光谱算法分析我们可以看到,由于通常所选取的端元数目较少,一般(ETE)-1ET的计算量很小,故作者在本项目中不对它们的计算进行并行化。见下页图4,在本项目中采用的并行化原则,是以像元点为基准产生相应的进程数,每个进程负责一个像元点的计算。设T=(ETE)-1ET,则每个像元点对应的GPU 进程只计算TX。
图3 端元投影向量法流程图Fig.3 Flow chart of endmembers projection vector
3.2 实验结果与分析
实验采用的数据为我国东天山地区高光谱遥感图像。为了进行多组数据的对比实验,作者首先对原始影像数据进行预处理,通过裁减获得影像的像幅分别为140像素×170像素×229;279像素×201像素×229;1 036像素×235像素×229共三组实验数据。实验所用的平台环境为:Intel(R)CoreI7-2630QM 2.0GHZ,系统内存为2GB,显卡为NVIDIA 公司的GeForce GT540M。这三组不同大小的实验数据串行计算和并行计算时间如下页表1所示,加速比见图5(见下页)。
经实验结果表明,当影像像素低于279像素×201像素×229时,GPU 并行算法的加速比曲线斜率略微下降较大,而当影像的像素增大到1 036像素×235像素×229时,曲线表现得十分陡峭,表明并行算法加速效果十分明显。这说明整个计算时间包括CPU 交换数据的通信时间和GPU 并行计算时间,且通信时间相对固定,当数据量较小时,GPU 处理时间相对整个计算时间比例较小,效果不明显。随着处理影像像素的不断增大,GPU 并行算法配合系统丰富的并行计算资源,显示出了强大的并行计算优势。它既有效地躲避了创建CPU线程时花费的时间,也成功地克服了系统交换数据带来的巨大传输延迟。当然,随着数据量持续增大时,考虑带宽限制问题,加速比又会呈现平缓趋势。
图4 并行算法设计图Fig.4 Design chart of parallel algorithm
表1 实验结果Tab.1 Experimental result
图5 并行加速比Fig.5 The speedup of parallel computing
3.3 相关实验及分析
为了对GPU 并行在高光谱遥感中的其它处理进行验证,在相同实验环境条件下,对无约束的最小二乘法以及和为“1”的部份约束最小二乘法进行了并行优化,实验结果与端元投影向量法的提速效果接近,这说明了利用GPU 并行优化在高光谱遥感应用是可行且有效的。同时,在实验过程中我们也发现,对于高光谱遥感而言,像元之间的相互关系对于数据的解译非常重要,而目前设计的并行方法是逐个像元的处理,像元间以及波谱间的数据关联性需要人为的进行控制,这将是影响并行效果的瓶颈问题,也是后续研究的重点。
4 总结
作者利用GPU 的片元处理器,实现高光谱遥感影像的端元投影向量法主要有两个优点:
(1)减轻CPU 的计算负担。
(2)提高混合像元分解的处理速度。
当CPU 将系统内存中的影像数据交给GPU之后,既可以清除在内存中的影像数据,又可以将计算过程完全交由GPU 处理,CPU 就能专注于控制和调度工作,使整个计算更为合理。
图形硬件的飞速发展,为解决大数据量的遥感影像处理问题带来了一种解决思路,也将是海量高光谱遥感数据处理的方向之一。
[1]耿修瑞.高光谱遥感图像目标探测与分类技术研究[D].北京:中国科学院遥感应用研究所,2005.
[2]耿修瑞,童庆禧,郑兰芬.一种基于端元投影向量的高光谱图像地物提取算法[J].自然科学进展,2005,15(4):509.
[3]童庆禧,张兵,郑兰芬.高光谱遥感—原理、技术与应用[M].北京:高等教育出版社,2006.
[4]郭雷,刘进锋.GPU 上实现的向量点积的性能分析[J].计算机工程与应用,2012,48(2):201.
[5]YAOHUA LUO,KE GUO,DAMING WANG,et al.Hyperspectral remote sensing classification processing parallel computing research based on GPU[C].Proceedings of the 2012International Conference on Computer Science and Electronic Engineering,2012.
[6]SONG JI,ZHOU SONG-TAO.Fast Image Matching Based on GPU Parallel Computing[J].Journal of Hubei University for Nationalities(Natural Science Edition),2011(9):306.
[7]张舒,褚艳利.GPU 高性能计算之CUDA[M].北京:中国水利水电出版社,2009.
[8]吴恩华,柳有权.基于图形处理器(GPU)的通用计算[J].计算机辅助设计与图形学学报,2004,16(5):601.
[9]陈峰,邱全毅,熊永柱,等.基于线性光谱模型的混合像元分解方法与比较[J].遥感信息,2010(4):22.
[10]薛彬,赵葆常,杨建峰,等.改进的线性混合模型用于高光谱分离实验模型[J].光子学报,2004,33(6):689.
[11]游晓斌,游先祥,相莹莹.混合像元及混合像元分析[J].北京林业大学学报,2003(25):28.