时间:2024-05-04
文/李霖 王燕 李光丽 田维
遥感影像瓦片化调度技术主要的技术方向是构建一个数据级并行处理集成开发框架,首先根据具体的业务运行算法采用合适的切片策略对大数据进行切片,然后采用并行计算技术分别对各片数据进行业务处理,最后根据切片策略并结合算法本身特性对各个处理结果进行规约合并以得到最终的结果。具体如图1所示。
针对遥感影像的特点,影像瓦片化的算法可包括如下几种类型:均匀划分法,有效区域划分法,不规则划分法等。
平均划分模式主要针对快速计算的优化,适用于对信息量分布比较均匀的遥感图像。这种分配方式下,所适用的图像算法应具有在计算时对像素间的关联距离不大这一特点,如图2(a)所示。在该方法的指导下,提出了若干种具体的分配方式,如按块状进行划分,按行条状进行划分以及按列状进行划分等等。
在遥感图像中还有一类很常见的图像如图2(b)所示。经过几何校正后的图像在边缘都会有大量的无效数据,因此需要把无效数据剔除,并按有效区域等面积进行均匀划分,使P1=P2=P3=P4=P5,这样瓦片数据在进行分布式并行计算时就能尽可能让数据的计算量保持一致。
图1:遥感影像瓦片化调度技术思路
冗余划分模式主要针对图像处理算法中,像素间关联距离很大,例如基于窗口和模板的图像处理算法。因此,为了在获得快速图像处理的同时,获取较好的处理效果,在数据划分的时候要充分考虑像素间关联问题,即划分数据需要一定的重叠,如图2(c)所示。这种数据划分模式其实就是在图2(c)模式的基础上考虑边界的数据重叠问题,控制重叠区域的大小是其中的关键点,也是难点。假如重叠区域大小控制的较差,非但不会提升遥感影像计算的效率,反而将增加计算的通信量,加剧遥感影像计算的系统开销。根据以往经验,一般建议冗余总体窗口宽度的1/10到1/20像素数据。
不平均划分模式主要针对快速计算的优化,适用于目标提取等应用。它的情况比较复杂,需要在分配前粗略的计算划分的边界,与均匀划分不同,是信息量分布不均衡的遥感图像,即在遥感图像上我们感兴趣的信息所占整个图像的比例较小,集中在一个较小的区域内,如图2(d)所示。假如系统想要在某一遥感影像数据中获取相关水域中的船体信息,但影像并非整个包含水域信息,可能其中绝大部分是陆地信息,水域信息只占据了一部分,所占区域非常小。而由于我们希望获取的船体的信息,一般位于水域信息中,因此在对船体进行信息提取时,就没有必要对陆地区域进行计算,只需对影像的水域信息进行处理。这样系统就可以进行预处理获取两个区域间的边界,明确需要计算的部分。在有效区域占比不高的情况下,边界统计会增加开销,但可以大大减少后期复杂度较高的遥感计算算法的开销,非常有益。
遥感影像瓦片化调度平台是在传统的工作流调度平台的基础上扩展实现的,通过扩展影像瓦片化插件实现不同类型的影像分割,通过扩展瓦片数据管理实现数据在分布式文件系统上的并行计算。下面将按照平台的层次分工作流引擎、分布式瓦片数据管理、瓦片化插件三部分进行介绍如下:
工作流引擎采用我公司自研的DOMINI流程调度引擎,其主要是通过建模、自动化、管理和优化流程,打破跨系统跨流程业务过程依赖,提高业务效率和效果。它的基本内容是管理既定工作的流程,通过服务编排,统一调控各个流程,以确保工作在正确的时间被正确的执行,达到优化整体业务过程的目的。DOMINI流程调度引擎以BPMN2.0规范为支撑,进行深度优化与扩展,利用标准的图元去描述真实的业务发生过程,采用B/S模式实现了模块组件化及流程可视化托拉拽的方式建模,并实现了并行控制及监控过程。其特点如下:
2.1.1 流程建模
符合BPMN2.0的流程组件建模界面包括BPMN2.0组件库、算法组件库、流程可视化配置区与流程参数配置。在BPMN2.0组件库、算法组件库的支撑下设计人员在流程可视化配置区采用托、拉、拽的方式实现流程建模及流程相关参数配置。
2.1.2 影像瓦片化处理流程扩展
引擎扩展出了遥感影像瓦片化处理流程,方便使用者编排分布式并行数据处理流程。
2.1.3 流程的脚本编辑技术
支持流程的脚本编辑,能够通过脚本的方式将复杂流程串联起来,整个引擎通过可视化的流程编排加脚本交互就能完成业务流程开发。
2.1.4 可扩展的负载均衡策略
可扩展的负载均衡策略,除了常规的均衡流转算法等,还可以支持基于机器学习的负载均衡策略等。
遥感影像瓦片化实现是一个物理过程,瓦片化后的多块切片数据需要存储,在云端生产中采用分布式文件系统HDFS作为存储框架。在数据处理过程中,根据参数判断是否进行进行瓦片化处理,需要则由调度系统调用瓦片化算法对数据进行切块,将切块后的n块数据调用HDFS存储接口存储数据,并且将数据的存储信息存储在数据库中。根据数据库中记录的n块切片数据所在的节点位置调用算法组件集用于实现数据并行。在算法组件集处理完成后由调度系统调用数据合并算法将n块处理后的切片合并成一块完整数据。如果不要切片则按照常规处理过程处理数据。
下面以客户端运行一个作业为例,介绍作业运行的流程:
(1)由用户发起运行作业的指令;
(2)客户端从作业管理节点获得作业ID。作业管理节点的作业控制模块会记录这个ID,用于以后作业的维护;
(3)作业客户端把作业文件和作业运行的必要文件上传到分布式系统中,这样做的好处是其它任务节点可以方便地获取到这些文件;
(4)作业客户端上传分片信息到作业管理节点,并提交作业;
(5)作业管理节点对作业进行初始化;
(6)作业管理节点根据分片信息,可以获得输入分片所在的数据节点的信息,根据这些信息将作业分解成多个任务,准备下发给任务节点;
(7)作业管理节点通过任务节点上传负载信息的应答消息返回任务;
(8)接收到任务的任务节点从分布式系统中得到作业资源,准备执行任务;
(9)执行任务;
(10)将执行完任务产生的输出文件上传到分布式系统中。
图2:影像瓦片化算法
瓦片化插件提供各种类型的影像分割和合并的算法,并且能够根据处理算法的需求进行扩展。具体算法包括:
(1)均匀划分算法:按行均匀划分算法,按列均匀划分算法,按块均匀划分算法,按面积均匀划分算法;
(2)冗余划分算法:按行冗余划分算法,按列冗余划分算法,按块冗余划分算法,按面积冗余划分算法;
(3)不均匀划分算法:按水体划分算法,按植被划分算法,按大气划分算法,按居民地划分算法等。
在实验中以高分2号遥感数据为例进行研究。
卫星:GF-2;
载荷:全色PAN;
数据格式:原始数据格式;
分辨率:8192*32768;
文件大小:512MB。
算法模块:MTFC,遥感图像相位补偿。
测试环境:服务器3台,处理器1*4核,内存4.0GB,硬盘100GB,安装分布式环境hadoop。
测试结果:未进行瓦片化的处理耗时238s,按行分2片的处理耗时154s,按行分4片的处理耗时86s,按行分8片的处理耗时58s。
结论:根据测试结果可以看到,对比传统的单线程算法,经过影像瓦片化调度的算法处理速度得到了成倍的提升,最大加速比达到了4以上,其提升效率与服务器数量、瓦片化数量、网络速度等均有密切关系。通过采用影像瓦片化调度技术,能够充分提高软硬件资源使用效率,提高遥感影像处理算法的处理速度,更好的为当前遥感数据处理业务服务。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!