掌桥专利:专业的专利平台
掌桥专利
首页

基于云平台的高光谱遥感大数据奇异值分解的分布式并行优化方法

文献发布时间:2023-06-19 11:57:35


基于云平台的高光谱遥感大数据奇异值分解的分布式并行优化方法

技术领域

本发明属于遥感图像分布式并行处理技术领域,特别是一种基于云平台的高光谱遥感大数据奇异值分解的分布式并行优化方法。

背景技术

高光谱传感器使用数十个甚至数百个狭窄的电磁波段来获取地面物体的近连续光谱曲线,并将反映遥感物体反射特性的光谱信息和反映遥感物体空间位置关系的图像组合在一起。高光谱图像可以在空间,光谱和时间的三个维度上提供丰富的信息,自1980年代问世以来,高光谱遥感技术已广泛应用于矿产测量,精密农业和军事等各个领域。

高光谱遥感图像波段数众多,含有丰富的光谱信息,但相邻光谱之间的相关度较高,造成了原始高光谱图像含有大量的冗余信息,因此从海量高光谱遥感数据中提取关键信息是很有必要的。国内外学者对此进行了大量的研究。其中,奇异值分解(SVD)在高光谱遥感图像处理中有着广泛的应用。奇异值分解是线性代数中一种经典的矩阵分解方法,多数情况下,矩阵的奇异值下降的速度很快,前1%-10%的奇异值之和几乎等于全部奇异值之和,因此选取前k个奇异值以及其对应的奇异矩阵便可对原始矩阵进行近似表达。奇异值可以反映高光谱图像的内在属性,对于高光谱图像的后续处理有着重要的作用。

高光谱图像奇异值分解算法具有计算复杂度高,数据量大的特点,为此,研究人员利用高性能并行计算技术提高了奇异值分解算法的计算效率,例如GPU、多核计算等。但是这些方法不能解决硬盘存储和单机内存等瓶颈问题,随着高光谱图像空间和光谱分辨率的提高,高光谱数据量呈几何级数增长,传统单机处理模式已不再适合当前的海量数据规模,迫切需要将数据处理模式转换为分布式并行模式。光谱特征信息也是高光谱图像提供的最直接的信息,然而高光谱图像具有许多波段,并且包含许多冗余信息。如果直接处理,很容易导致Hughes现象的发生,不便于数据处理。因此,需要一种合适的方法来减小高光谱数据的维数。

发明内容

本发明的目的在于提供一种速度快、精度高的基于云平台的高光谱遥感大数据奇异值分解的分布式并行优化方法。

实现本发明目的的技术解决方案为:一种基于云平台的高光谱遥感大数据奇异值分解的分布式并行优化方法,所述方法包括:

将高光谱原始图像分块上传至HDFS分布式文件系统中,使用Spark云计算框架进行分布式并行读取;

将读取结果封装成矩阵形式,并执行双边Jacobi算法;

将所有分块数据的计算结果进行合并,对合并矩阵执行双边Jacobi算法。

作为本发明的一种优选方式,将高光谱原始图像分块上传至HDFS分布式文件系统中,包括:

HDFS的数据上传流程是按照设置的blockSize将高光谱数据切割成一系列的block,然后将这些block存储至分布式的文件系统中,blockSize需要根据内存大小设置为合适的值;对于高光谱数据而言,上传过程中要确保每块block的数据完整性。

作为本发明的一种优选方式,blockSize根据内存大小设置为合适的值,该值是Hadoop参数checksum的整数倍。

作为本发明的一种优选方式,使用Spark云计算框架进行分布式并行读取,包括:

Spark通过Spark上下文对象调用newAPIHadoopFile方法读取存储在HDFS上的高光谱数据生成RDD,每一个block与RDD中一个分区相对应,高光谱数据的分片数即为Spark处理该数据的程序的并行度。

作为本发明的一种优选方式,RDD类型为NewHadoopRDD,是一个键值对RDD,key为block在原始高光谱数据中的偏移量,value为Byte数组,即原始高光谱数据,在map算子中将key转换为该block中首个像素在原始数据像素向量中的偏移量,value转换为一个二维数组Data

作为本发明的一种优选方式,将读取结果封装成矩阵形式,并执行双边Jacobi算法,具体步骤如下:

S201、对于高光谱数据A∈R

S202、初始化单位矩阵V=I

S203、在H的非主对角线元素中,找到绝对值最大元素H(i,j);

S204、构造Jacobi旋转矩阵

其中

S205、矩阵H与矩阵V分别与Jacobi旋转矩阵U

S206、判定当前矩阵H的非主对角线元素最大值是否小于阈值e,是则执行下一步骤,否则回到步骤S203;

S207、将原始矩阵A与步骤S206中得到的计算结果V相乘得到矩阵U,并执行归一化操作,即令U的每一列向量除以该列向量的二范数;

S208、将步骤S207中得到的计算结果左奇异矩阵U、奇异值矩阵Σ、右奇异矩阵V进行适当的列截取,得到分块数据的最终计算结果。

作为本发明的一种优选方式,将所有分块数据的计算结果进行合并,对合并矩阵执行双边Jacobi算法,具体如下:

S301、将上一步中得到的所有分块数据执行双边Jacobi的计算结果collect至driver端,将各个block的Svd计算结果中的VΣ矩阵沿水平方向进行拼接,将U矩阵沿对角线的方向进行拼接,得到拼接矩阵:

S302、将步骤S301得到的拼接矩阵M进行转置操作得到矩阵M

S303、拼接矩阵M与V′相乘,用得到的结果更新拼接矩阵M,使得M的任意列对均满足正交性质;

S304、拼接矩阵V与V′相乘,用得到的结果更新拼接矩阵V;

S305、对矩阵V做归一化操作,按照奇异值大小重新排列列向量,并进行一定的截取操作;

S306、交换左奇异矩阵M和右奇异矩阵V的位置。

一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述的基于云平台的高光谱遥感大数据奇异值分解的分布式并行优化方法。

一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述的基于云平台的高光谱遥感大数据奇异值分解的分布式并行优化方法。

本发明与现有技术相比,其显著优点在于:(1)根据高光谱图像存储格式设置合理的块大小,将原始高光谱图像切割成一系列的block上传至Hadoop分布式文件系统(HDFS)进行存储和管理。根据不同高光谱图像文件格式所对应的数据组织方式,设计相应的高光谱图像读取类,减少了移动数据带来的开销,提高算法的效率;(2)针对高光谱数据组织方式,采用双边Jacobi迭代Svd算法,以提高计算节点的内存利用率;(3)将小型矩阵转移到每个计算节点,设计合理的任务分解和中间数据存储结构,减少了数据传输和中间数据混洗和带来的时间消耗。

下面结合附图详细说明本发明提供的基于云平台的高光谱遥感大数据奇异值分解的分布式并行优化方法。

附图说明

图1为本发明基于云平台的高光谱遥感大数据奇异值分解的分布式并行优化方法的流程图。

图2为并行算法在不同并行度下的运行时间。

具体实施方式

结合图1,本发明基于云平台的高光谱遥感大数据奇异值分解的分布式并行优化方法,具体过程为:

步骤1,将高光谱原始图像分块上传至HDFS分布式文件系统中,使用Spark云计算框架进行分布式并行读取,具体如下:

由于高光谱图像数据量较大,并且为了减少移动数据所带来的开销,本实施例采用HDFS分布式文件系统来存储高光谱数据。HDFS的数据上传流程是按照设置的blockSize将高光谱数据切割成一系列的block,然后将这些block存储至分布式的文件系统中,blockSize需要根据内存大小设置为合适的值(必须是Hadoop参数checksum的整数倍,不然会报错),同时为了避免数据倾斜,均衡利用每个计算节点的资源,需要尽量保证每一个block存储的数据大小相近。对于高光谱数据而言,上传过程中要确保每块block的数据完整性。以BIP格式的高光谱数据为例,因为是按像素顺序存储,所以blockSize要设置为一个像素所有波段数据所占大小的整数倍。

Spark通过Spark上下文对象调用newAPIHadoopFile方法读取存储在HDFS上的高光谱数据生成RDD,每一个block与RDD中一个分区相对应,高光谱数据的分片数即为Spark处理该数据的程序的并行度。该RDD类型为NewHadoopRDD,是一个键值对RDD,key为block在原始高光谱数据中的偏移量,value为Byte数组,即原始高光谱数据,在map算子中将key转换为该block中首个像素在原始数据像素向量中的偏移量,value转换为一个二维数组Data

步骤2,将步骤1的读取结果封装成矩阵形式,并执行双边Jacobi方法,具体步骤如下:

(2.1)对于高光谱数据A∈R

(2.2)初始化单位矩阵V=I

(2.3)在H的非主对角线元素中,找到绝对值最大元素H(i,j);

(2.4)构造Jacobi旋转矩阵

其中

(2.5)矩阵H与矩阵V分别与Jacobi旋转矩阵U

(2.6)判定当前矩阵H的非主对角线元素最大值是否小于阈值e,是则执行下一步骤,否则回到步骤(2.3);

(2.7)将原始矩阵A与步骤(2.6)中得到的计算结果V相乘得到矩阵U,并执行归一化操作,即令U的每一列向量除以该列向量的二范数;

(2.8)将步骤(2.7)中得到的计算结果左奇异矩阵U、奇异值矩阵Σ、右奇异矩阵V进行适当的列截取,得到分块数据的最终计算结果。

步骤3,将所有分块数据的计算结果进行合并,对合并矩阵执行双边Jacobi算法,具体如下:

(3.1)将步骤2中得到的所有分块数据执行双边Jacobi的计算结果collect至driver端,将各个block的Svd计算结果中的VΣ矩阵沿水平方向进行拼接,将U矩阵沿对角线的方向进行拼接,可以得到拼接矩阵:

(3.2)将步骤(3.1)得到的拼接矩阵M进行转置操作得到矩阵M

(3.3)拼接矩阵M与V′相乘,用得到的结果更新拼接矩阵M,使得M的任意列对均满足正交性质;

(3.4)拼接矩阵V与V′相乘,用得到的结果更新拼接矩阵V;

(3.5)对矩阵V做归一化操作,按照奇异值大小重新排列列向量,并进行一定的截取操作;

(3.6)交换左奇异矩阵M和右奇异矩阵V的位置;

综上所述,本发明区别于传统单机遥感图像奇异值分解方法,对基于双边JacobiSVD算法进行了基于Spark的分布式并行优化。为了减少移动数据所带来的开销,以及提高数据读取速度,算法对高光谱图像数据的存储进行合理设计,设计了高光谱图像的分布式读取策略,并对算法的逻辑进行划分,将计算量较大的操作通过分布式并行的方式进行执行,优化了双边Jacobi方法的计算逻辑,减少了大量非必要的计算。

表1串行算法和Spark并行算法求得的奇异值的比较

由表1与图2所展示的实验结果可得,优化后的算法在确保奇异值分解结果精度的基础上,速度也得到明显提升。

相关技术
  • 基于云平台的高光谱遥感大数据奇异值分解的分布式并行优化方法
  • 基于并行超算网格云平台的GRAPES系统优化方法
技术分类

06120113117318