基于OpenCL的遥感影像算法设计

时间:2024-03-19 点赞:46975 浏览:92470 作者原创标记本站原创

这是一篇遥感有关学士学位论文范文,与基于OpenCL的遥感影像算法设计相关函授毕业论文。是论文总结专业与遥感及数据及计算机方面相关的免费优秀学术论文范文资料,可作为遥感方面的大学硕士与本科毕业论文开题报告范文和职称论文论文写作参考文献下载。

摘 要 : 介绍以OpenCL为基础,探讨以GPU对遥感影像进行处理的方法.首先介绍利用OpenCL进行GPU运算的一般性概念,对比GPU运算给遥感影像处理算法带来的影响;其次以实际的遥感影像为例,探讨在使用GPU处理遥感影像时,如何应对前一步所述的影响;接着根据实验结果给出在遥感影像算法中使用OpenCL利用GPU进行运算的总结性经验.最后,对比分别采用GPU和CPU的算法,总结出GPU算法在遥感影像处理方面的方法.

Abstract: This paper introduces a way to process remote sense image(RS) based on GPU. Firstly, it introduces the mon concept of GPU puting based on OpenCL, finds out the impact of GPU on RS image process algorithms; Secondly, it uses a real RS image as experiment data, finds out how to acmodate this impact when using GPU. Thirdly, according the experiment result, it gives the experiences of RS image process based on GPU. At the end, it summarizes the method of using GPU to process RS image.

关 键 词 : OpenCL;GPU;遥感影像;算法设计

Key words: OpenCL;GPU;remote sensing;algorithm design

中图分类号:TP302 文献标识码:A 文章编号:1006-4311(2014)29-0236-02

1.简介

随着机载和星载设备的发展,遥感影像的分辨率和数据量会逐步提高.随着这些需要处理的任务数量和复杂度的增加,其对计算机的处理能力提出了更高的要求.向量架构的GPU比CPU更适合进行图像处理的任务.本文探讨使用OpenCL作为工具对遥感影像进行处理.OpenCL是一个为异构平台编写程序的框架.利用OpenCL可以让GPU来完成特定的运算任务.本文介绍并总结利用OpenCL使用GPU进行遥感影像处理的一般性原理和

方法.

2.OpenCL与遥感影像处理

首先介绍给出以OpenCL使用GPU进行数值运算的一般性框架.接着以GPU计算NDVI,并于基于CPU的算法进行性能上的对比.

2.1 OpenCL基本使用及与CPU计算的差别 传统的CPU计算中,待处理的数据装载到内存中,然后由CPU进行运算,运算结果也会返回到内存中.最后在内存中的数据就是处理结果.而在GPU运算中,待处理的数据首先装载在内存中,接着需要将其打包装载到GPU的显存中,GPU只对显存中的数据进行处理.处理的结果也会存在显存中,为了得到处理结果,必须将数据从显存转到内存中.由于这种特殊的处理方式,所以传统的算法编写要进行一些调整.本文中使用NDVI作为测试算法.NDVI是遥感影像处理中常见的处理方式.首先以传统的CPU计算同一幅图的NDVI,接着以GPU计算这幅图的NDVI.为了方便比较,以CPU和GPU运算的代码会尽量消除无关的代码差异.以便尽可能的显示出CPU和GPU运算上的区别.因此,两段代码中,实验影像的近红外波段和可见光的红色波段都已经储存在red和infrared这两个数组中,并且有一个数组ndvi用于存储计算结果,3个数组的长度均为n.NDVI CPU和GPU版的差别仅限于对这些数组的运算方式.同时,测试计算机上使用核心显卡为屏幕提供显示工作,独立显卡只承担测试代码的运算任务,以消除无关因素的影响.

2.2 CPU和GPU运算代码 由于使用GPU运算会比CPU运算多出一些额外的初始化、数据传输、清理及还原操作.因此需要讨论在不同情况下这些操作对运算效率的影响.两者差异可见表1.

表2是以昆明-玉溪附近30米分辨率的Landsat 7 ETM SLC-off数据作为测试样例,对CPU和GPU的NDVI计算程序进行测试的耗时结果.在表格中,由于GPU平台、设备、环境的初始化代码是个常量过程,所以不予以考虑.从表2中的数据可以看出,在本实验中,即使算上数据传输的时间,使用GPU处理的耗时远远低于使用CPU运算的耗时.不过也可以从中看出,在GPU运算中,数据在显存和内存之间的传输耗时在GPU任务计算的总时间的比例相对来说比较高.因此在设计遥感影像处理算法时需要考虑数据的优化问题.


3.实验分析

从前面的实验可以看出,GPU运算中,参与计算的数据在内存和显存的传输占用了相当的比例.因此需要考虑如何让数据的传输最优化.

3.1 分块对处理效率的影响 对于数据集无法一次性装入显存的影像,必须先对其进行分块.假设在显存可以承受的情况下,相比较多的传输次数与每次相对较少的数据传输量来说,减少数据传输次数并增加每次传输的数据量更加有利.同时在显存允许的情况下,应尽量将数据计算的中间结果驻留在显存中,直到得到最终结果时再一并取出转移至内存.因此,在GPU运算中,数据分块越大,则会降低数据传输在整个GPU处理流程中的比例,这样能充分利用GPU性能提升的优势.

从上面的分析可以得出,虽然显存的大小对实际运算并没有直接的影响.但由于越大的显存能容纳更多的数据,而遥感影像相对来说数据量较大.因此即使显存大小对GPU运算没有直接影像,但更大的显存能为GPU运算提供更高的收益. 3.2 GPU遥感处理算法设计 对于遥感影像,多波段和大容量数据是必须要考虑的.对于无法一次性放入显存的遥感影像数据,应以切分成尽量大的数据块,减少GPU和CPU之间的IO次数.同时如果GPU自带的数据格式通常不能满足处理需要,因此在处理数据之前,需要在CPU中将遥感影像数据剖分成熵值较低的一维数组.

4.讨论

通过对GPU对遥感影像处理的实验,这里总结出一般性处理方法.在使用GPU对遥感影像处理中,主要应有3部分:

①环境(context)相关部分.

这一部分有两个阶段,分别用于GPU环境的初始化及清理.

②驱动部分.

这一部分负责对遥感影像的数据进行预处理,以适应GPU的运算需要.同时也负责处理GPU返回的数据.

③GPU运算部分.

GPU运算部分负责进行运算,这一部分不应了解外部图像的复杂性,而只进行特定的矩阵运算.

在实际处理中,首先对GPU环境进行初始化.接着待处理的图像数据传入驱动部分.由驱动部分负责进行预处理(如分块、分离波段).预处理完成的数据传入GPU运算部分.GPU运算部分进行运算,并将运算结果返回给驱动部分.返回的依然是抽象的数据集,驱动部分会对其进行处理及合并,最后得到完整的结果.当数据集已经返回给驱动部分后,环境相关部分进行相关的清理工作.示意图如图2.

5.结论

本文运用GPU以NDVI为例进行遥感影像处理.从实验的分析中可以看出,较大的显存容量可降低数据存储和读取次数,进而提高运算效率.同时在数据分块中,大数据块可减少数据IO次数,可提高GPU利用率.实现结果证明与CPU运算相比,GPU拥有非常大的优势.最后总结出以OpenCL为开发平台处理遥感影像的一般性方法.

相关论文

遥感影像解译样本数据采集

这篇数据库论文范文属于论文格式免费优秀学术论文范文,数据库类有关本科毕业论文,与遥感影像解译样本数据采集相关论文引用格式。适合数据库。

基于LANDSAT/TM遥感影像监督分类方法

本论文是一篇关于地物论文参考文献代码,关于基于LANDSAT TM遥感影像监督分类方法相关大学毕业论文范文。免费优秀的关于地物及可靠性及参考。

航测内业中遥感影像融合的要点

关于遥感及影像及数据方面的免费优秀学术论文范文,遥感相关论文目录格式,关于航测内业中遥感影像融合的要点相关论文范文文献,对写作遥感。

基于网页结构的网页去噪算法设计

本文是一篇链接论文范文,关于链接学年毕业论文,关于基于网页结构的网页去噪算法设计相关毕业论文开题报告范文。适合链接及节点及网页方面的。

基于计算机图形学的多类型算法设计

本文是一篇计算机图形学论文范文,计算机图形学类本科毕业论文,关于基于计算机图形学的多类型算法设计相关毕业论文参考文献格式范文。适合计。

智能小车寻迹记忆算法设计

本文是一篇计算机信息论文范文,关于计算机信息毕业论文格式范文,关于智能小车寻迹记忆算法设计相关毕业论文模板范文。适合计算机信息及参考。

计算机算法设计与

本文是一篇计算机算法论文范文,关于计算机算法方面硕士毕业论文,关于计算机算法设计与相关电大毕业论文范文。适合计算机算法及信息技术及数。

中国昆曲艺术影像资源库设计与实现

本文是一篇数据库论文范文,关于数据库相关函授毕业论文,关于中国昆曲艺术影像资源库设计与实现相关毕业论文题目范文。适合数据库及艺术教育。