基于gpu的遥感图像几何校正算法设计与实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于GPU的遥感图像几何校正算法设计与实现
吴 敌 汪红强 邹同元
(中国空间技术研究院第503研究所,北京 100095)
摘 要:随着遥感卫星分辨率的不断提高和卫星数量急剧增加,遥感卫星图像处理的数据量越来越庞大,同时对于卫星数据处理的精度和速度的要求不断提高,面对如此庞大的计算量,传统的CPU处理已经不能够满足更高的需求。

针对遥感图像处理中几何校正的重采样过程,对每个像素点都要进行重采样处理,需要进行大量重复计算,通过使用GPU 进行并行化处理可以显著提高重采样处理速度。

基于CUDA编程模型,GPU可以看作一个执行效率非常高的并行线程设备,它作为CPU的一个协处理器,可以充分利用CPU和GPU的资源。

关键词:遥感图像数据;并行计算;几何校正;CUDA
中图分类号:TP751.1 文献标识码:A 文章编号:1003-9767(2020)03-038-04
Design and Implementation of Geometric Correction Algorithm for Remote
Sensing Image Based on GPU
Wu Di, Wang Hongqiang, Zou Tongyuan
(503 Institute of China Academy of Space Technology, Beijing 100095, China)
Abstract: With the continuous improvement of the resolution of remote sensing satellites and the sharp increase in the number of satellites, the amount of data for remote sensing satellite image processing is getting larger and larger, and at the same time, the requirements for the accuracy and speed of satellite data processing are constantly increasing. Such a huge amount of calculation is traditional CPU processing Can no longer meet the higher demand. In the resampling process for geometric correction in remote sensing image processing, each pixel must be resampled, which requires a lot of repetitive calculations. The parallel processing using GPU can significantly improve the resampling processing speed. This article is based on the CUDA programming model. The GPU can be regarded as a device that executes a very high number of parallel threads. As a coprocessor of the CPU, it can make full use of the resources of the CPU and GPU.
Key words: remote sensing image data; parallel computing; geometric correction; CUDA
0 引言
目前,我国遥感卫星的分辨率不断提高,产生的数据量越来越大,如何实时、快速、高效地处理不断增长的海量数据,成为目前遥感图像处理新的挑战[1]。

2018年7月,我国成功发射了巴基斯坦遥感卫星一号,这是一颗空间分辨率为1 m的太阳同步轨道对地观测卫星,其中全色分辨率为1 m、多光谱分辨率为4 m的光学相机,组合幅宽有60 km。

巴遥一号传回的单轨全色图像数据大小达到10 GB左右,传统几何校正使用计算机的中央处理器(Central Processing Unit,CPU)处理,通过将处理从CPU移植到图形处理器(Graphics Processing Unit,GPU)上,可节省大量时间[2]。

GPU拥有上千颗核心,通过使用统一计算设备架构(Compute Unified Device Architecture,CUDA)编程语言,将几何校正中的重采样处理中的大量数据计算移植到GPU上计算,通过GPU 加速能够显著节省几何校正处理时间[2-3]。

1 遥感影像几何校正处理
遥感影像的处理流程为预处理、数据处理、信息提取、知识层和应用层等,如图1所示。

从卫星接收的原始遥感影像经过以上处理,最终提供给用户使用,其中预处理是对影像像元级进行处理,根据遥感的辅助信息,对影像进行辐射校正、几何校正、传感器校正、正射校正等处理成初级的产品[4-5]。

根据不同的处理阶段可以将产品分为不同等级。

0级图像:原始遥感图像指从卫星下传到地面,通过去格式、解压缩按条带或按景分发的数据产品。

1级图像:对图像进行
作者简介:吴敌(1994—),男,黑龙江肇源人,硕士研究生在读(通讯作者)。

研究方向:软件工程。

E-mail:813988727@qq. com。

辐射校正后的图像。

2级图像:采用传感器校正和几何校正后的图像。

3级图像:进行几何精校正后的图像。

4级图像:采用数字高程模型纠正后的影像[6]。

图1 遥感影像处理流程图本次实验采用非严格的数学模型(Rational Polynomial Coefficients ,RPC )模式对传感器校正后的数据进行几何校正,RPC 模型模式几何校正利用传感器校正模块生成的RPC 参数,进行投影及图像重采样。

系统几何校正模块的内部设计如图2所示。

图2 系统几何校正内部设计图
输入文件解析主要是将流程调度模块输入给几何校正(Geometric Correction ,GC )模块进行解析,将解析结果存储到产品信息数据结构中。

解析辅助数据文件是解析辐射校正(Radiometric Correction ,RC )模块输出的报告文件及RPC 等辅助数据文件,获得所需参数。

图像重采样以指定的投影方式、指向以及像元分辨率,利用RPC 及辅助数据对辐射校正后的图像进行重采样,生产几何校正图像数据,最后将GC 模块的运行结果输出,上报给流程调度模块。

2 并行计算架构设计
多核
CPU 并行计算和众核GPU 并行计算是目前比较流行的高性能计算架构,其中CPU 和GPU 是面向不同的并行计算任务而设计的,CPU 主要为串行指令、任务调度、程序控制等通用计算而设计的,而GPU 则是基于大量吞吐量计算而设计的,能实现大规模数据量计算[7]。

GPU 的主要优势体现在高效的并行性、超长的图形流水线、高密度的运算、控制简单和多个阶段执行等方面。

因此在CPU+GPU 的混合架构中,不同的任务分配到不同的区域来完成。

CPU 主要负责任务的分配和调度,而GPU 负责资源分配、数据计算和
并行任务计算[8]。

图3为CPU+GPU 混合架构。

图3 CPU+GPU 混合架构
CUDA 并行计算架构,就是典型的CPU 和GPU 协同处理编程模型。

CUDA 和目前广泛使用的GPU 设备是由英伟达公司开发的,采用了统一的处理架构,CUDA 不需要借助图形学应用程序编程接口(Application Programming Interface ,API ),而是采用类C 语言进行开发,降低了编程难度。

英伟达的GPU 引入了片内共享存储器,提高了计算效率[9]。

一般而言,CUDA 程序运行时的基本模式如下:(1)分配内存空间和显存空间;(2)初始化内存空间;(3)将
要计算的数据从内存上复制到显存上;(4)执行kernel (内核)计算;(5)将计算后显存数据复制到内存上;(6)处理复制到内存上的数据。

CUDA 支持大量的线程并行,并在查看硬件动态时执行这些线程,在CPU 中,这些操作是重量级的,但是在CUDA 中,这些操作是轻量级的。

CUDA 中将CPU 看作Host 端(主机端),将GPU 看作Device 端(设备端)。

Device 端执行的代码块称为kernel (内核)函数,通过英伟达指定编译器进行编译,并在程序执行时连接CUDA 运行时库,调用CUDA 驱动实现在GPU 上并行计算。

3 几何校正并行化设计
几何校正利用图像周围像元的亮度值进行插值,来求出新的像元亮度值,即所谓的重采样,数据量巨大并且计算密集,适合使用并行处理[10]。

常见的重采样方法有最邻近插值法、双线性插值法及三次卷积。

最邻近插值法仅以离被计算点最近的一个像元的亮度作为输出像元的亮度,该方法运算量小,效率高,但是精度低,图像的连续性会遭到破坏。

双线性插值法需要使用计算点周围4个像元的亮度值进行插值获得,分别在行和列方向各插值一次。

该方法的精度明显提高,具有平均化滤波的效果,但是在一定程度上会破坏原始数据。

为了提高采样精度,三次卷积法使用计算点周围相邻的16个点的亮度值,利用卷积函数对所求像元的亮度值进行内插,通过三次卷积,图像相邻像素更加平滑,图像质量更高,但是算法复杂计算
量大[11]。

根据几何校正处理流程,将全波段重采样代码进行并行化处理,将重采样阶段的计算通过GPU 进行并行化处理,处理流程图如图4所示。

如图5所示,几何校正并行化处理具体流程如下:(1)首先需要读取输入配置文件,读取辅助数据文件;(2)进行投影变换,建立重采样模型,根据配置文件读取分块大小并进行分块处理;(3)使用GPU 进行重采样,首先将内存中的影像数据传输到显存中,将要处理的影像参数传给kernel 函数;(4)执行kernel (内核)函数,对影像进行重采样计
算;(5)计算结束后将结果传递给CPU 端进行输出。

本次采用的巴遥一号数据图像大小达到60 000×60 000像素,单幅影像大小达到8 GB ,因此对影像可以根据硬件信息选择分块尺寸,并可以根据生产需求对影像重采样分辨率进行选择。

4 实验结果与分析
根据以上的处理过程,将遥感图像预处理过程中的几何校正模块进行了GPU 加速处理,实验选取了巴遥一号的卫星数据进行处理,采用了全色影像。

实验室采用的硬件配置如表1
所示。

图4 基于GPU 几何校正流程图
表1 硬件配置信息
CPU 配置参数
GPU 配置参数型号Intel Xeon E5-2650 v4(x2)
型号Nvidia TITAN x(Pascal)
核心数量24核流处理器数量 3 584核时钟频率 2.20 GHz 时钟频率 1.5 GHz 内存大小
128 GB
显存大小
12 GB
实验室的使用的环境:CUDA 版本为10.1,编译器为VS2015,操作系统为windows10 v1903。

输入图像选取巴遥一号单景影像像素大小为64 500×67 281个像素点的全色影像,影像经过传感器校正处理。

输入的辅助数据文件为传感器校正后的报告文件、RPC 文件、辅助数据文件、控制点等。

通过对比使用GPU 进行加速处理之后所用的时间与没有使用GPU 加速处理的时间进行对比。

由于单幅影像较大,选取了不同重采样尺寸进行处理。

实验结果对比图如图5
所示。

图5 几何校正中CPU 与GPU 处理时间对比图
通过上述的实验数据对比可知,使用GPU 进行并行化处理数据,可以显著提高重采样的计算速度,尤其对于高分辨率的图像对比效果明显,节省了大量的计算时间,但是由于数据量大,显存和内存数据之间的拷贝也占用了一定的时间,所以对于低分辨率的影像,时间主要花费在数据的拷贝过程中,处理计算时间占用较少,所以对比效果不够明显。

综上,CPU+GPU 架构对于几何校正处理速度的提升明显,尤其对于需要处理大量数据的高分辨率影像,几何校正适合进行并行化处理,实验数据充分验证了GPU 的加速处理效果。

5 结 语
本次实验基于遥感图像预处理中的校正处理模块进行了GPU 并行加速处理,采用了CPU+GPU 异构的处理模式,其中控制流程和构建重采样模型过程中使用了CPU 进行处理,将原本在CPU 端处理的重采样移植到GPU 上进行并行化处理。

通过实验对比分析可以看出,GPU 对于处理大规模重复计算相对于CPU 有着明显的优势,尤其对于遥感图像这类数据,可以显著减少数据处理时间。

CPU+GPU 的模式具有低功耗、低成本和高性能的优点,这种计算模型可以充分发挥CPU 和GPU 的优势,因此将GPU 加入遥感图像处理也越来越流行。

本文主要研究了遥感图像预处理中的几何校正算法的并行处理,未来的工作中还
可以对传感器校正、图像匹配等算法进行验证,由于成本限制遥感图像的加速处理还可以在集群上处理。

参考文献
[1]朱建章,石强,陈凤娥.遥感大数据研究现状与发展趋势[J].中国图象图形学报,2016(21):14-19.
(下转第43页)
运用疑问对象、疑问运算符、疑问运算等处理现代汉语语句时,本文引入了一种数据结构,即疑问语义树[6]。

疑问语义树是一种树形结构,节点用疑问对象表示,边用疑问运算符表示。

对于疑问语义树的计算,可以从深度优先、广度优先或递归的方法进行处理。

对于疑问语义树来说,它的节点体现了语句中可能存在的疑问点,而边可以用来表示可能的提问方式。

由疑问语义树的边组成的、用来表达语句疑问语义的句模,称为疑问语义句模,可以用若干疑问语义句模构建疑问语义句模库[7]。

在处理疑问语义时,疑问语义句模库的主要功能为:(1)作为生成汉语语句的语义规则驱动库;(2)辅助切分和标注语句中的字符块;(3)检索语句中的疑问点;(4)分解和合成疑问语义树;(5)计算语句间的疑问语义相似度;(6)实现多语种语句间的疑问语义计算。

为了进一步说明前面的论述,下面用一个示例来说明疑问语义运算处理现代汉语语句的主要过程。

(1)待处理的语句为:明天你和张三一块去上海。

(2)用前面提到的疑问语义标注集进行处理的结果为:明天/几时 你和张三/谁 一块去/怎样 上海/哪里。

/疑问运算符
(3)用疑问语义树表示该处理过程产生的结果如图1
所示。

图1 疑问语义树
(4)上面的疑问语义树可以生成的疑问语义句模有:几时 谁 怎样 哪里 疑问运算符谁 疑问运算符 谁怎样 怎样
(5)为后续的自然语言处理提供数据支持。

3 结 语
在自然语言处理领域,语义计算是一个复杂而又暂未获得圆满解决的问题。

本文以现代汉语为研究对象,提出的这种面向疑问语义的计算方法,对于解决现代汉语或其他语种的语义计算问题来说只能是一种尝试。

这种方法难免存在诸多不足之处,有些问题仍有待于进一步深入探索,本文的论述只是抛砖引玉,希望得到各位读者、专家的批评和指正。

参考文献
[1]赵元任,汉语口语语法[M].吕叔湘,译.北京:商务印书馆,1979:64.
[2]玛琳娜·吉布拉泽.现代汉语疑问代词的多视角研究[D].江苏:南京师范大学,2005:23.
[3]倪兰.现代汉语疑问代词的基本语义分析[J].北方论丛,2005(4):60-62.
[4][瑞士]费尔迪南·德·索绪尔.普通语言学教程[M].高名凯,译.北京:商务印书馆,1980:154.
[5]苗力田.亚里士多德全集(第一卷)[M].北京:中国人民大学出版社,1990:246.
[6][美]布隆菲尔德.语言论[M].袁家骅,译.北京:商务印书馆,1997:37.
[7][美]诺姆·乔姆斯基.句法结构[M].邢公畹,译.北京:中国社会科学出版社,1979:482.
[2]秦臻.基于集群的遥感并行处理技术浅析[J].电光系统,2015(3):11-14.
[3]白洪涛.基于GPU 的高性能并行算法研究[D].长春:吉林大学,2010:26.
[4]王化喆,魏先勇.基于GPU 的遥感图像前期处理算法研究与应用[J].现代电子技术,2016(3):55-58.
[5]汤竞煌,聂智龙.遥感图像的几何校正[J].测绘与空间地理信息,2007(2):106-108.
[6]何海涛.高分辨率遥感影像的几何校正方法研究[D].武汉:华中科技大学,2015:34.
[7]杨景辉,张继贤.遥感影像融合的GPU 加速及性能分析[J].小型微型计算机系统,2016,37(3):603-607.
[8]陈昕,胡杰,李映.基于CUDA 的遥感图像快速超分辨率重建算法研究[J].火控雷达技术,2014(4):5-10.
[9]董荦,葛万成,陈康力.CUDA 并行计算的应用研究[J].信息技术,2010(4):257.
[10]陈国强.基于GPU 的图像处理算法研究[J].软件,2014(2):141-142.
[11]于寅平.基于GPU 的重采样并行算法的研究与实现[D].沈阳:东北大学,2013:15.
(上接第40页)。

相关文档
最新文档