遥感影像处理中的高性能计算——以国产MASI软件为例
为满足遥感影像处理需求,至少以下两个方面需要高性能计算技术。一方面,遥感影像获取系统朝着多星、多传感器、高空间分辨率、高光谱分辨率和短回访周期方向发展,必将造成获取的数据呈爆炸性增长;如近些年遥感影像空间分辨率越来越高,目前商业卫星影像最高分辨率30 cm已经很普遍;近年来我们国家也发射了不少的高光谱卫星,如自然资源领域和生态环保领域发射了5米星系列卫星,德国的EnMAP,我国的珠海一号等;大量的影像数据处理与分析对计算技术提出了更高的要求。另一方面,空间应用需求对数据处理的精度和时间提出了新的要求,处理的精度要求越来越高,而处理的时间却要求越来越短。尤其有的应用对时间较敏感,需要在一定时间内完成大量的数据处理与分析,如防灾减灾、灾害应急响应、星/机上快速影像分析、卫星地面站批量数据处理、快速制图与变化检测、交通实时监测、公共安全事件处置、等等。
以下一个例子阐述大量遥感影像的快速处理具有一定的挑战性。遥感影像空间分辨率的提高造成数据量呈二次方倍增长,即分辨率提高至n倍,数据量将增至n的平方倍,尤其影像达到亚米分辨率后,数据量非常巨大。
如图1,覆盖同一区域的不同分辨率影像的尺寸差别非常大,分辨率为30米的TM影像仅需要的尺寸为40 × 32,分辨率为10米的SPOT 5影像需要的尺寸为96 ×
75,而分辨率为2.4米的QuickBird影像需要的尺寸则为485 ×
371,如将分辨率提高至0.15米,将需要尺寸为7760
× 5936的影像覆盖该区域。目前的发展趋势是卫星影像分辨率越来越高,10米->5米->2.5米->1米
->0.5米,WorldView-3, Pleiades NEO影像的分辨率更是达到了0.3米。且单幅遥感影像动辄包含30000
× 30000以上像素,我国天绘三号卫星单角度标准幅影像已经约70000 x 70000像素。
(a)
(b)
(c)
图1 覆盖同一区域的不同分辨率影像对应的影像尺寸。(a)
分辨率为28.5米的TM:40
× 32;(b) 分辨率为12米SPOT
5:96 × 75;(c)
分辨率为2.4米的QuickBird:485
× 371。
处理速度和处理能力如得不到有效提升,必将造成大量遥感数据积压,无法发挥遥感对地观测技术所具有的宏观、综合的优势。大量的数据处理需求给遥感影像处理与分析这种计算与数据密集型的计算带来极大地挑战,为提高遥感技术的可用性,应尽量将高性能计算和遥感影像处理充分结合起来,采用多种计算效率高,扩展性强、低碳环保的高性能计算技术。
目前应用于遥感影像处理的主流高性能计算技术主要分成三个大类:(1)基于多核的并行处理技术;(2)网络环境下的多机分布式处理技术;(3)基于协处理器的快速处理技术。
基于多核并行处理技术利用目前应用非常广泛的多核计算机为计算平台,如台式计算机和单机服务器等,处理过程中通过多核并行的方式提高处理效率,一方面可以提高处理效率,另一方面有效利用计算平台提供的资源,计算效能(计算能力与能耗比)相对比较高。主要应用的并行技术和编程模型主要有PThread, OpenMP, MPI等,该类技术发展时间已经较长,相对比较成熟,也是在各行各业应用较多并行处理技术分支。其优点是支持平台广泛,所用平台一般性价比高,能源消耗低,用户编程实现较简单;缺点主要是扩展性不强,可取的最高计算效率往往容易受到待解问题不易均衡分解、计算机各部件运行速度差别大(如存储墙问题等)、并行编程模型扩展性受限等因素影响。一个常见的例子,用户在使用多核计算机进行空三解算时(如倾斜影像实景三维建模过程中的空三解算步骤)采用更多计算机CPU核(如超过16核)反而会带来效率下降。目前遥感数据处理领域软件大多会不同程度采用该并行处理技术,如ContextCapture(以下称CC)软件在空三解算步骤使用了多核并行处理;MASI软件中各主要步骤均采用了多核并行技术。
网络环境下的多机分布式处理技术主要利用网络互连环境下多计算机进行单任务的并行(将单任务分成若干子任务,然后均衡分配至多计算机)或多任务的并发处理(将多个任务均衡分布至多台计算机同时进行处理),主要以多任务的均衡分布至多台计算机方式较为常见。网络环境下的多机分布式处理技术的突出特点是可以利用多台计算机提高数据的吞吐量,尤其适合大数据量的批量处理,如采用InSAR技术进行大区域的地表形变监测、全国一张图影像纠正、地面接收站各级影像的批量处理、大范围地形信息的自动化提取、等等。网络互连环境下多计算机可以是通过高速网络互连的配置相同且应用于专门目的一群计算机(称之为集群计算机或机群),通过作业调度系统和行业软件的支持,实现多任务均衡分布至多台计算机、灵活调度和资源分配等。也可以是在弹性云计算环境下虚拟出的若干计算机,其本质无区别,均为多台互联的计算机,至于计算机是虚拟机还是物理机,是在不知道何处的云计算中心还是近在咫尺的计算机机房,对最终用户来讲无差别。使用云计算资源需要考虑数据从本地传输至云端的成本,如果数据就在云端,就无需远程数据传输。目前在遥感影像处理领域,考虑数据量大、数据价值较高及安全性、保密等问题,大多具有批量数据处理需求的行业用户都会选择自己构建集群计算环境,专门用于遥感数据处理与分析。网络环境下的多机分布式处理技术优点是数据处理吞吐量大、配合流程化和自动化处理方法可实现计算资源的均衡利用;对规模化、范围广、常态化的遥感数据处理应用具有无可比拟的优势。这也是很多遥感数据处理单位和应用单位大多建有不同规模的集群计算环境的原因。其缺点主要是投资较大、需要专门场地、运行维护成本较高,用户使用门槛较高。遥感影像处理领域很多软件均具有多机分布式处理能力,如Pixel Factory, PhotoMOD, eCognition, 三维建模软件CC等。MASI软件各模块如航空、ADS、无人机和卫星均具有分布式处理能力,且配置与操作使用非常简单。
基于协处理器的快速处理技术主要利用图形处理器(Graphics Processing Unit, GPU),现场可编程门阵列(Field Programmable Gate Array, FPGA)专业处理单元对运算量大的步骤进行加速处理。目前尤其以GPU作为协处理形式较常见,GPU针对以下处理需求可取得非常高的处理效率。每个像素(或影像块)对应的处理步骤都一致,属于典型的单指令流多数据流(Single Instruction Multiple Data, SIMD)计算模式,且数据处理的运算量远大于数据调度和传输需求,此种计算特点能充分发挥现代GPU的计算潜能,处理性能大大超越了传统的中央处理器应用程序。使用GPU进行加速处理时,需要将数据从内存传输至GPU,然后将结果再传回内存,因此数据传输成本也是一个不小的开销。目前遥感数据处理领域采用GPU软件也不少,尤其以自动三维建模软件居多,几乎所有实景三维建模软件均在一个或者多个步骤采用了GPU进行加速。其它软件如PCI
GXL和Correlator3D等软件也支持GPU。采用GPU协处理器一般只在某些步骤取得较好加速,不可能也没有必要在每个处理步骤采用GPU进行加速。随着多核CPU的发展,在很多运算需求较大处理步骤采用CPU已经可以达到与GPU相当的处理效率,在某些特定步骤GPU仍然具有效率优势,如三维建模、深度学习。GPU能源消耗较高,可用于遥感影像处理加速目的的GPU功耗一般均在主流CPU的2倍以上,且价格不菲。FPGA协处理器一般针对特殊计算环境下、流程固定的处理需求进行专门开发,通用性一般较差,开发周期较长,但FPGA独特的优势是功耗低,适合空间和能源受限的特殊计算环境,如星上处理等。
国产MASI软件开发之初就完全支持高性能计算,目前具备上述提及的基于多核的并行处理和网络环境下的多机分布式处理。各模块主要步骤具备上述两种中一种或两种均具备。以下分模块阐述MASI软件具备的高性能计算能力。
(1)框幅式航空模块与无人机模块
框幅式航空主要模块的立体匹配和DSM生成、正射纠正、纹理映射等均具有高性能计算能力。其中立体匹配和DSM生成步骤具有基于CPU的多个层级并行处理技术和多机分布式处理。整个处理流程过程中立体匹配和DSM生成步骤运算量较大,通过基于CPU的多个层级并行处理进一步提升效率和优化计算平台使用效率。基于CPU的多个层级并行处理可设置单机CPU核使用个数(根据分组和每组使用核数确定总使用核数),这些使用的核数再进行平均分组,每组使用若干CPU核对单个立体像对进行处理,这样在一台计算机内就可以同时对多个立体像对进行处理。且同时具备多机分布式处理,使用多机进行处理时,可设置将多个任务均匀划分配至多台计算机,提高整体数据处理吞吐量。
因MASI软件支持图形操作和命令行操作两种模式,熟练用户还可以自己编写处理脚步实现流程化处理,或者与作业调度工具结合,将作业调度和任务分配交给功能更强大的作业调度器。该模块还提供自动生成批处理命令工具,将一个大的处理需求分成多个小规模处理需求,用户可根据需要灵活地将这些小规模处理需求分配至不同计算机。
该模块中正射纠正、纹理映射步骤均具备多核并行处理,用户可设置使用CPU核个数。以上步骤均可设置采用的CPU核个数,是为避免有的情况下使用的核数超过一定个数其效率反而下降问题。用户根据其计算平台特点及处理步骤计算需求,进行一定实验后可优化选取采用的CPU核数,取得一个最佳的处理效率。
无人机模块与航空模块采用的高性能处理策略基本一致,但无人机因重叠度高,采用多视立体匹配算法,其计算量进一步增加。上述提到的可设置采用的核数进一步增加灵活性,可充分利用各种配置的多核计算机的计算资源。
(2)ADS航空模块
因ADS航空数据独特性,如数据量大,一个航带包含多个视角影像,辅助文件多(ODF文件、SUP文件、ADS文件等),我们为其添加了一些适合其特点的数据管理与处理策略。因数据量大很多用户会选择在网络环境下集中存储ADS数据,单机存储和管理这些数据会带来极大不便。针对这个特点,数据处理过程中,用户可通过选项设置实现以下功能。某台机器处理任务所需所有数据在处理前会自动传送至本地工作目录,在本地工作目录上进行处理(使用本地存储处理效率更高,如网络存储性能高且高速网络互联也可在网络存储下直接处理),处理后的结果自动回传至网络存储,整个过程全自动,用户无需增加任何人工操作。
使用多机分布式处理过程时,用户可为每台机器选择所需处理条带,处理结果自动回传至网络存储下。处理过程中主要步骤均是一键式操作。每台机器具有基于CPU的多个层级并行处理能力,且可设置该机使用CPU核个数(根据分组和每组使用核数确定总使用核数)及分组数。这些使用的核数按照分组数分成多组,每组使用若干CPU核对单个立体像对中一个数据块进行处理。单台机器中单个立体像对进行分块并行处理。该模块GUI如下:
图2 ADS立体匹配和DSM生成步骤中高性能计算
与框幅式航空模块一样,ADS模块中正射纠正、纹理映射步骤均具备多核并行处理,用户可设置使用CPU核个数。
(3)卫星模块
除具备上述基于CPU的多个层级并行处理和分布式处理等策略外,根据卫星影像单幅数据量特别大特点,针对单个立体像对或者单幅影像具备分块并行处理能力。每台机器具有基于CPU的多个层级并行处理能力,且可设置该机使用CPU核个数(根据分组和每组使用核数确定总使用核数)及分组数。这些使用的核数按照分组数分成多组,每组使用若干CPU核对单个立体像对中一个数据块进行处理,使用单台机器对单个立体像对进行分块并行处理。这样在立体像对或者影像不多情况下,可高效并行处理。基于CPU的多个层级并行处理与ADS模块基本一致。
图3 卫星影像立体匹配和DSM生成步骤中高性能计算与批量处理
图4 卫星影像正射纠正步骤中高性能计算与批量处理
多机分布式处理时卫星影像数据可以存储在网络存储环境下,如图5模式,但要求网络存储性能高且存储与计算节点通过高速网络进行互联。
图5 网络环境下遥感数据存储与数据访问网络结构
另外,卫星模块中影像融合、纹理映射及影像拼接步骤均具备多核并行处理,用户可设置使用CPU核个数。
图6 框幅式航空影像处理得到的DSM,网格间距10 cm
图7 Pleiades NEO卫星影像处理得到的DSM,网格间距50 cm
图8 ADS 80影像处理得到的DSM,网格间距20 cm
图9 无人机处理得到的DSM(道路转盘中植物盆景),网格间距5 cm
图10 处理平台与处理效率
同样利用上述图10中计算机平台,对3个视角的Pleiades(下视分辨率约70 cm)两两组合形成的3个像对分别进行立体匹配,然后是DSM拼接融合处理,生成1 m网格间距DSM,单机一天处理能力可达800平方公里的DSM。因上述处理平台较老旧,目前主流工作站可达每台每天约1000平方公里的DSM生产能力。
本文分析了遥感影像处理高性能计算需求及目前应用于遥感影像处理的三类主流高性能计算技术。最后以国产MASI软件为例,深入详细地阐述该软件采用的基于CPU的多个层级并行处理技术和分布式处理处理技术。关于MASI软件详细信息请访问visiononsky.com网站。
作者简介:
杨景辉博士具有超过18年从事摄影测量、遥感影像处理、高性能计算等方面的科学研究与软件开发工作经历。曾获得德国宇航中心(DLR)和德意志学术交流中心(DAAD)联合奖学金,在德国宇航中心遥感技术研究所从事博士后合作研究。中国测绘科学研究院摄影测量与遥感研究所原副研究员。于2014年获得武汉大学理学博士学位,分别于2005年和2002年在东北大学计算机系获得工学硕士和工学学士学位。