邹宗庆
【摘要】本文主要对基于云平台的卫星遥感图像处理进行研究,在把握卫星遥感图像处理流程以及分析Hadoop云平台重要组件的基础之上,明确基于Hadoop的图像处理与MeanShift图像分割具体操作步骤与要点,以期实现对卫星遥感图像大数据的有效解决。
【关键词】云平台;Hadoop;卫星遥感图像;MeanShift图像分割
中图分类号:TN92 文献标识码:A DOI:10.12246/j.issn.1673-0348.2021.17.005
卫星遥感是对地球数据信息进行采集的一项技术,有着非常突出的重要作用,以无国界限制、覆盖范围大、观测存在周期性以及数据的采集可符合客观性要求等特点为其主要表现。基于卫星遥感所获得的遥感图像数据,又有很明显的四高特征,也就是空间分辨率高、时间分辨率高、光谱分辨率高以及辐射分辨率高,本文对基于云平台的卫星遥感图像处理方法展开研究。
1. 卫星遥感图像处理流程
以抽象程度及研究方法等的不同作为划分依据,数据图像的处理主要有3个层次的划分,分别为数据处理层、图像分析层(也就是信息提取层)以及图像理解层(对应的为知识层),进一步对数据图像处理层次的划分进行参考与借鉴,与卫星遥感自身所具有的特点相结合,卫星遥感图像的处理流程通常被划分为4个主要层次,分别为预处理层、数据处理层、信息提取层以及分析决策层(该层与知识层,也就是图像理解层相对应),如图1所示。根据层次划分可以清楚地发现,预处理层被独立了出来,对其原因进行分析,可大致归纳为以下几点。
预处理作业同卫星遥感图像的获取方式有着非常密切的联系,且该项作业是必须经历的一个步骤,相较于其他领域的图像预处理而言,卫星遥感图像的预处理算法原理及实现过程表现出较为明显的不同。
尽管算法在一定程度上将数据处理层的特性彰显了出来,不过因为处理之前与之后图像区域内的像素位置出现了迁移的情况,这在一定程度上增加了邻域及边界的不确定性,由此一来,处理难度也会相应加大。
在卫星遥感传感器愈发向星载——陆地同步实时处理的宏观趋势下,预处理功能的顺利与高效发挥能够在较大程度上缓解地面处理压力。所以,卫星遥感图像的预处理工作需要被单独执行,也就是做好辐射定标以及大气校正算法分析。不过,因为本文重点放在云平台应用下的卫星遥感图像处理上,因而不对预处理以及后期的信息提取与分析决策作过多研究,仅针对基于Hadoop云平台的卫星遥感图像分割进行具体分析。
2. Hadoop云平台
Hadoop是分布式存储计算框架,它是以云体系为基础的一种云计算平台,能够提供分布式存储及计算的编程环境。对Hadoop平台的总体构成进行分析,主要涉及到HDFS、MapReduce以及Hive等重要组件。
2.1 HDFS
属于一种具有分布式特点的文件系统,当处于一个集群网络中时,计算机的数量往往会很多,对于任何一台能够正常运行的计算机而言,它们的存储量都是比较大的,可进行海量差异化数据的存储。以HDFS系统为支持,海量差异化数据的管理任务可以高效地被完成。
2.2 MapReduce
MapReduce是一种数据模型,图2所示为其主要框架,可以将对数据的并行化处理功能很好地发挥出来,对于多个计算节点而言,此数据模型具有能够分配大规模计算分析任务的优势,对于统计分析任务效率的提升具有显著的积极意义。当完成对数据的输入作业以后,系统执行对所输入各类数据的分片处理操作,针对每一个输入分片,都会有一个对应的Map任务被单独启动,这时,又会有一些键值对生成,本地硬盘又会进一步执行对它们的存储任务。Map对之后所得结果进行处理,基于网络传输技术的支持,由具体运行Reduce任务的相应节点接收。这一环节,Reduce函数所发挥的作用体现在可以对它们进行合并处理之上,基于这一操作可以将所得最终结果存储于HDFS中。
2.3 Hive
这是一种构建在Hadoop上的数据仓库框架,对其功能进行分析,体现在能够对HiveQl查询进行有效转换之上,用具体的MapReduce来表示,这种操作可以在一定程度上降低HiveQL程序向Hadoop平台移植的难度。
3. 基于Hadoop云平台的卫星遥感图像分割
3.1 基于Hadoop的图像处理
借助于基于Hadoop的图像处理云平台,将由HDFS执行存储任务的、已经经过预处理的数据作为卫星遥感图像数据输入至此Hadoop云平台,MapReduce框架会从HDFS中进行对所需图像数据的加载。MapReduce编程模型中对用于程序开发的各种类型的实体类与接口均有涉及,其中,InputFormat类可完成对所输入数据信息有效性的检查工作,之后执行对这些信息的逻辑切片处理,并向不同的mapper分发作进一步处理。此外,由前文可知,MapReduce还提供RecordReader的实现,结合对数据切片的读取,会有相应的键值对生成。
为了实现对卫星遥感图像数据更加高效的处理,需要对图像处理接口进行自定义改写,也就是自定义改写ImageInputFormat与ImageRecordReader。这么做的目的在于让ImageInputFormat与ImageRecordReader分别继承InpurFormat与RecordReader,前者的作用在于查验与校验输入的卫星遥感图像数据,进行isSplitable()方法的重写,同时,设置此方法的返回值为False,这种做法可以将整幅图视作一个split,對图像切分情况的出现加以规避,由此一来,图像信息的完整性会得到很好的保证。Hadoop框架会对ImageRecordReader进行调用,针对读入的各个图像文件,都会有相应的键值对生成,而对于map函数,则执行对图像处理相关算法的调用任务,以此完成对图像的处理。
在读入图像之时,其读取形式为二进制数据流形式,而与之相对应的,图像的输出则需要作业人员采用可视化的方式将图像存储下来,这能够为后期的查看提供便利,因而应进行图像输出类型的自定义,该操作对于图像在HDFS中的顺利存储具有一定的推动作用。通过对圖像输出类的自定义,用ImageRecordWriter类将抽象类RecordWrite
3.2 基于Hadoop的MeanShift图像分割
MeanShift是一种以聚类为基础的迭代式算法,表现出很高的复杂性特点,而其这一复杂性又对计算机的性能提出严格的要求。Hadoop云平台集群作为一种分布式数据处理系统,从理论层面上看,能够实现对自身计算能力的无限扩展,因而对于MeanShift聚类算法而言有着非常好的适用性。借助Hadoop云平台,MeanShift图像分割算法可以按照以下几个步骤来实现:
(1)执行对图像输入类型ImageInputFormat的自定义任务,同时,做好对图像文件切割方法的自定义工作;
(2)对图像的输出类型进行设计,执行对ImageRecordWriter类的自定义任务,同时,以图像形式将数据存储下来;
(3)在图像数据特征空间内部,将点x作为中心,同时,长度h作为半径进行一个高纬球的绘制,得到落于该高纬球内部的全部点xi;
(4)将x像素点处的均值飘移向量求解出来,其中G所表示的是核函数;
(5)若所得(注:ε表示的是容许误差,取值在0-1之间),则退出程序;
(6)若,则进一步求解新圆心的坐标x,并向步骤(3)返回。
在以上迭代计算及赋值操作的基础上,均值漂移窗口会呈现出逐渐移动的态势,经过窗口变换,收敛到数据峰值的全部点均会连通起来,实现图像分割,同时,在Reduce环节输出数据到HDFS执行保存操作。
参考文献:
[1]赵忠明,高连如,陈东,等.卫星遥感及图像处理平台发展[J].中国图象图形学报,2019,24(12):2098-2110.
[2]王小凯.基于云平台的遥感图像处理方法研究[D].辽宁:东北大学,2015.