首页> 中国专利> 基于CPU和GPU协同处理的遥感影像正射校正方法

基于CPU和GPU协同处理的遥感影像正射校正方法

摘要

一种基于CPU和GPU协同处理的遥感影像正射校正方法,包括将待校正影像和DEM从主机端内存拷贝至GPU全局存储器中;将校正变换模型参数拷贝至常数存储器中;动态调整片上缓存,将更多片上缓存分配给一级cache;设置GPU线程块大小,确定GPU线程块数目;在GPU上进行正射校正;校正完毕后将校正后影像从GPU全局存储器中拷贝回主机端内存。该方法针对海量光学卫星遥感影像,基于CPU和GPU协同处理理论,提出了一种可以满足近实时处理需求的快速正射校正方法。该方法在保证算法正确性的前提下,大幅提高了光学卫星遥感影像正射校正效率。

著录项

  • 公开/公告号CN103020620A

    专利类型发明专利

  • 公开/公告日2013-04-03

    原文格式PDF

  • 申请/专利权人 武汉大学;

    申请/专利号CN201210544790.0

  • 发明设计人 王密;方留杨;李德仁;龚健雅;

    申请日2012-12-14

  • 分类号G06K9/32(20060101);

  • 代理机构武汉科皓知识产权代理事务所(特殊普通合伙);

  • 代理人严彦

  • 地址 430072 湖北省武汉市武昌区珞珈山武汉大学

  • 入库时间 2024-02-19 18:53:05

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-04-18

    专利权的转移 IPC(主分类):G06K 9/32 专利号:ZL2012105447900 登记生效日:20230407 变更事项:专利权人 变更前权利人:武汉大学 变更后权利人:移动广播与信息服务产业创新研究院(武汉)有限公司 变更事项:地址 变更前权利人:430072 湖北省武汉市武昌区珞珈山武汉大学 变更后权利人:430022 湖北省武汉市东湖新技术开发区高新大道888号A区高农生物园总部一区19栋2层

    专利申请权、专利权的转移

  • 2016-01-20

    授权

    授权

  • 2013-05-01

    实质审查的生效 IPC(主分类):G06K9/32 申请日:20121214

    实质审查的生效

  • 2013-04-03

    公开

    公开

说明书

技术领域

本发明属于遥感影像高性能处理领域,涉及一种基于CPU(中央处理器)和GPU(图 像处理器)协同处理的光学卫星遥感影像正射校正方法。

背景技术

正射校正是光学卫星遥感影像用于灾害防治、抢险救灾等具体应用的关键处理环节,也 是整个遥感数据处理过程中计算最密集、耗时最长的步骤之一。近年来,随着对地观测技术 的飞速发展,光学遥感卫星数据源迅速增加,影像分辨率大幅提高,获取的影像数据量快速 增长,对这些海量数据光学卫星遥感影像进行正射校正所需的计算量非常巨大。传统的光学 卫星数据处理架构主要考虑数据处理的质量和精度,并未顾及计算效率,已无法满足对海量 数据光学卫星遥感影像进行快速正射校正的处理要求。

目前,国内外相关学者和研究机构对在GPU上进行正射(几何)校正开展了一定的研 究,使用GPU提高大数据遥感影像的正射(几何)校正效率逐渐成为共识。著名的影像处 理软件PCI Geomatics在2009年4月发行了Pro-Lines GeoImaging server系统,该系统使用 GPU并行计算技术对遥感影像进行几何校正,获得了较高的加速比;德国宇航中心通过研 究正射校正等遥感数据处理算法在GPU硬件上的映射方法,实现了对航拍数据的高效处理, 从而为在轨近实时灾害监测提供支持。在国内,陈超、陈彬等以仿射变换几何校正方法为例 介绍了在GPU上进行几何校正的方法,较传统的几何校正算法加速2-3倍;侯毅、沈彦男 等在保证影像正射校正精度的基础上测试基于GPU的数字影像正射校正的速率,证明了基 于GPU的数字影像正射校正的性能相对于CPU有较大的提高,算法加速比达到3-5倍。由 于算法设计和实现较为简单,上述校正方法并没有完全发挥GPU的优势。杨靖宇、张永生 等搭建了CPU-GPU协同并行计算平台并完成了正射校正的CPU-GPU协同处理和性能优化, 利用GeForce 9500GT显卡对大小为6000像素×6000像素的全色影像进行多项式纠正对比 实验,证明GPU处理效率优于CPU处理效率,最邻近内插和双线性内插的最终加速比分别 为8.45倍和10.91倍,但由于使用的GPU芯片较老,该实验并未涉及对当前主流的基于Fermi 架构GPU的性能优化策略,且在数据量快速增长的背景下,该算法加速比不甚理想,无法 完全满足对海量光学卫星影像进行近实时正射校正的需求。

发明内容

本发明所要解决的问题是,针对海量数据光学卫星遥感影像,提出一种可以满足近实时 处理需求的快速正射校正方法。

本发明的技术方案为一种基于CPU和GPU协同处理的遥感影像正射校正方法,包括以 下步骤:

步骤1,将待校正影像和DEM从主机端内存拷贝至GPU的全局存储器中;

步骤2,将校正变换模型参数拷贝至GPU的常数存储器中;

步骤3,动态调整片上缓存,包括在共享存储器不可用时将更多片上缓存分配给一级 cache;

步骤4,设置GPU线程块大小,确定GPU线程块数目;

步骤5,在GPU上对待校正影像进行正射校正,得到校正后影像;

步骤6,将校正后影像从GPU全局存储器中拷贝回主机端内存;

其中,步骤1、2、3、4、6由CPU执行,步骤5由GPU执行。

而且,步骤3中,在共享存储器不可用时将48KB片上缓存分配给一级cache。

而且,步骤4中,设置GPU线程块大小、确定GPU线程块数目按照以下准则进行,

(1)线程块中线程数小于1024;

(2)流式多处理器中线程块数量小于8;

(3)流式多处理器中线程数等于1536。

本发明针对海量光学卫星遥感影像,基于CPU和GPU协同处理理论,提出了一种可以 满足近实时处理需求的快速正射校正方法。该方法在保证算法正确性的前提下,大幅提高了 光学卫星遥感影像正射校正效率。

附图说明

图1为本发明实施例的流程示意图;

图2为本发明实施例的常数存储器中校正变换模型参数命中情况示意图;

图3为本发明实施例的动态调整片上缓存后Fermi架构GPU存储结构示意图;

图4为本发明实施例的线程块大小变化时流式多处理器中线程块和线程数量的变化情 况示意图。

具体实施方式

根据映射关系的不同,正射校正方案可分为两种,分别称为直接法方案和间接法方案。 由于直接法不能直接得到校正结果影像上的每个点的灰度值,需要利用灰度值分配的思路来 简化处理流程以达到和间接法同等规模的计算复杂度,因此在GPU上容易出现严重的存储 器写访问冲突和数据不一致等问题,降低GPU的计算效率。采用基于输出影像进行任务划 分的间接法校正方案则不存在上述问题,该方法计算过程简单,可以直接得到校正结果影像 上每个点的灰度值,比较容易映射到GPU上进行处理。因此,本发明采用具有先天并行性 的间接法方案作为校正方案,保证GPU的计算效率。

本发明技术方案具体实施时可采用计算机软件技术实现自动运行。实施例使用通用统一 设备架构(Compute Unified Device Architecture,CUDA)提供的扩展C语言作为开发工具, 并使用新一代基于Fermi架构的GPU实施和运行。以下结合附图和实施例详细说明本发明 技术方案。

如图1所示,实施例包括以下步骤:

步骤1,将待校正影像和DEM从主机端内存拷贝至GPU的全局存储器中。

本步骤具体实施时可使用cudaMalloc()函数为待校正影像和对应的DEM(数字高程模 型)在GPU的全局存储器上分配存储空间,并使用cudaMemCpy()函数将其拷贝至全局存储 器上。cudaMalloc()函数和cudaMemCpy()函数为现有技术,可参见CUDA下的GPU编程相 关文献。

步骤2,将校正变换模型参数拷贝至GPU的常数存储器中。本发明为了达到更高的处 理效率,使用GPU常数存储器代替全局存储器存储校正变换模型参数,以减少算法访问全 局存储器的次数。

除全局存储器外,GPU上还有一个大小为64KB的常数存储器。该存储器存储空间小, 且为只读存储器,但由于设计有8KB的cache(高速缓冲存储器),因此在满足特定的访问 模式时,访存速度明显优于全局存储器。在正射校正过程中,校正变换模型参数较少,且计 算完成后不再改变,满足常数存储器对存储空间和数据只读的要求;此外,在通过地面点坐 标反算像点坐标时,同步执行的所有线程在同一时刻将访问同一个校正变换模型参数,因此, 当第一个线程(未命中cache)访问常数存储器获得校正变换模型参数并将其载入到cache 后,后面的所有线程都可直接命中cache,从而提高算法的执行效率。如附图2所示:常数 存储器存储多个校正变换模型参数1、2…n,例如当第一个线程访问常数存储器获得校正变 换模型参数1并将其载入到cache后,同步执行的所有线程在同一时刻都将访问校正变换模 型参数1。因此,按步骤2所述,本实施例将校正变换模型参数载入常数存储器中,以提高 算法的计算访存比,从而提高算法的执行效率。具体实施步骤可为:

1)使用constant修饰符修饰校正变换模型参数结构体;

2)调用cudaMemoryCpyToSymbol()函数将校正变换模型参数从主机内存载入至GPU 常数存储器中。

步骤3,动态调整片上缓存,将更多片上缓存分配给一级cache。本发明针对目前广泛 使用的新一代Fermi架构GPU,将更多的片上缓存分配给Fermi GPU特有的一级cache,以 缓存更多待校正影像,进一步减少算法访问全局存储器的次数。

除全局存储器和常数存储器外,基于Fermi架构的GPU在每一组处理核心中放置了 64KB的片上缓存,作为共享缓存和一级cache使用;此外,在片上缓存和全局存储器之间 还放置了768KB的二级cache。二级cache为系统级cache,由GPU硬件负责数据调度和缓 存;片上缓存则可根据需要柔性重组,通过动态调整共享缓存和一级cache的大小,可以提 高算法和程序的执行效率。本实施例使用间接法方案对光学卫星遥感影像进行正射校正,虽 然每个线程块对应的校正后虚拟影像块为规则块,但该虚拟影像块对应的输入影像块并不为 规则块,在单程序多数据流程序设计中,将边界动态变化的、不规则的输入影像块载入到共 享存储器中存在困难。由于Fermi架构GPU可动态调整片上缓存,因此本实施例在共享存 储器不可用时,将更多的片上缓存(48KB)分配给一级cache,如附图3所示:一级cache 动态调整后缓存48KB待校正影像,二级cache缓存768KB待校正影像,全局存储器存储整 幅待校正影像。由于相邻线程进行灰度重采样时读取的输入影像像素间隔不大,如果将更多 的片上缓存分配给一级cache,缓存更多的待校正影像,可以增加线程块灰度重采样时命中 一级cache的几率。片上缓存动态分配具体可通过cudaFuncSetCacheConfig()函数实现,具 体实施时可参见CUDA下的GPU编程相关文献。

步骤4,设置GPU线程块大小,确定GPU线程块数目。合理设置线程块大小,并根据 影像大小确定线程块数目,可以保证整幅影像被GPU线程块完全覆盖。设置线程块大小的 时候使用“配置选择优化”策略提高GPU流式多处理器中GPU线程的占有率,从而提高 GPU硬件调度线程的效率,更好地隐藏访问延迟。

在GPU中,线程块被映射到流式多处理器中调度执行。在基于Fermi架构的GPU中, 当满足如下三个准则时,流式多处理器的调度性能达到最优:

准则1:线程块中线程数小于1024;

准则2:流式多处理器中线程块数量小于8;

准则3:流式多处理器中线程数等于1536。

附图4列出了当线程块大小(线程块中线程数)变化时,流式多处理器中线程块数量和 线程数量的变化情况。从图中可知,当GPU线程块大小为256和512时,流式多处理器中 线程块数量分别为6个和3个,在这两种情况下,流式多处理器中的线程数都达到1536个, 同时满足准则1、准则2和准则3,调度性能达到最优。因此,对执行正射校正算法的GPU 线程块进行配置选择优化,将其大小设置为256或512,可以提高流式多处理器的调度性能, 从而提高算法的执行效率。在本实施例中,将GPU线程块大小设置为256(16×16)。在这 种情况下,设校正后虚拟影像大小为M×N,且每个GPU线程对一个像素进行正射校正, 则GPU线程块个数为(进行向上取整是为了保证所有的像素皆被GPU线 程覆盖)。具体实施时也可以将GPU线程块大小设置为512(32×16或16×32),则GPU 线程块个数为或

步骤5,在GPU上对待校正影像进行正射校正,得到校正后影像。

在GPU上进行正射校正的主要步骤包括:1)GPU上线程按索引号计算对应的地面点 坐标;2)GPU上线程按索引号将地面点坐标和DEM代入校正变换模型反算地面点对应的 像点坐标;3)GPU上线程按索引号进行灰度重采样;4)GPU上线程按索引号进行灰度赋 值。在具体实施时,可将上述算法步骤封装成一个GPU核函数(关于核函数编写的方法可 参见CUDA下的GPU编程相关文献)。需要注意的是,由于在步骤4中对线程块个数进行 了向上取整,因此在最后一行和最后一列的线程块中,可能会出现某些线程未分配到像素的 情况。在本实施例中,通过分支逻辑处理这种情况:对未分配到像素的线程,不进行任何处 理而直接返回。

步骤6,将校正后影像从GPU的全局存储器中拷贝回主机端内存。

本步骤使用cudaMemCpy()函数将步骤5校正完毕后所得校正后影像拷贝回主机端内存 中,具体实施时可参见CUDA下的GPU编程相关文献。

其中,步骤1、2、3、4、6在CPU上运行,即CPU执行部分;步骤5在GPU上运行, 即GPU执行部分。

搭建实验环境对本实施例进行性能和正确性验证,其中CPU型号为Intel Xeon E5650, GPU型号为NVIDIA Tesla M2050,实验数据为资源三号下视标准景影像(校正前数据量 1.12GB,校正后数据量1.49GB)。按照如附图1所示流程对实验数据进行基于CPU和GPU 协同处理的正射校正,采用双三次插值法作为重采样方法时,校正时间压缩至10s以下;与 传统串行逐点正射校正算法相比,算法加速比达到44.79倍,可以满足对海量光学卫星遥感 影像进行近实时正射校正的需求。此外,经过验证,使用本实施例校正后的影像与在CPU 上使用逐点正射校正获取的校正后影像的灰度值完全相同,说明了本实施例的正确性。

本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技 术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不 会偏离本发明的精神或者超越所附权利要求书所定义的范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号