一种遥感影像处理方法、装置、电子设备及存储介质转让专利

申请号 : CN202110594278.6

文献号 : CN113032604B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 马海波王宇翔钱晓明李世卫苏永恒廖芳芳刘富乾裴春营郭康廖通逵

申请人 : 航天宏图信息技术股份有限公司上海宏图空间网络科技有限公司

摘要 :

本申请实施例提供一种遥感影像处理方法、装置、电子设备及存储介质,涉及图像处理技术领域。该方法包括接收用户编写的脚本代码和用户指定的原始影像的感兴趣区域;根据所述脚本代码生成语法树;利用分块算法对感兴趣区域进行分块,以得到瓦片行列号层级参数;利用瓦片行列号层级参数获得图像块;执行所述语法树,以对所述图像块进行计算,并得到计算结果,在该方法中,用户可自定义算子,实现可在线编程的遥感影像处理、分析及可视化,从而解决现有方法以文件作为输入无法进行实时分块并行计算的问题。

权利要求 :

1.一种遥感影像处理方法,其特征在于,所述方法包括:接收用户编写的脚本代码和用户指定的原始影像的感兴趣区域;

根据所述脚本代码生成语法树:利用算子函数的函数类型、名称和参数信息构造对应的子语法树;

根据算子函数链式调用顺序把前一个算子函数的子语法树作为后一个算子函数的输入参数,以构建脚本代码的语法树;

利用分块算法对所述感兴趣区域进行分块,以得到瓦片行列号层级参数;

利用瓦片行列号层级参数获得图像块;

调用已有算法或解析所述语法树,以构成用户需求算法;

利用所述用户需求算法对所述图像块进行链式处理。

2.根据权利要求1所述的遥感影像处理方法,其特征在于,所述利用分块算法对所述感兴趣区域进行分块,以得到瓦片行列号层级参数,包括:计算所述原始影像的影像分辨率;

基于瓦片分辨率从全球剖分层级中获取所述影像分辨率的最接近层级;

计算所述最接近层级的瓦片行列号范围。

3.根据权利要求2所述的遥感影像处理方法,其特征在于,所述计算所述最接近层级的瓦片行列号范围,包括:

计算所述原始影像的地理范围转换成web墨卡托参考系下的投影范围,并计算角点的投影坐标,以获得对应的坐标范围;

计算单张瓦片的投影宽度和瓦片分辨率;

根据所述投影宽度和所述瓦片分辨率计算瓦片行列号范围。

4.根据权利要求1所述的遥感影像处理方法,其特征在于,所述利用瓦片行列号层级参数获得图像块,包括:

利用瓦片行列号层级参数在所述原始影像中进行查找,以获取对应的图像块。

5.一种遥感影像处理装置,其特征在于,所述装置包括:接收模块,用于接收用户编写的脚本代码和用户指定的原始影像的感兴趣区域;

语法树模块,用于根据所述脚本代码生成语法树;

所述语法树模块包括:

构造模块,用于利用算子函数的函数类型、名称和参数信息构造对应的子语法树;

语法树构建模块,用于根据算子函数链式调用顺序把前一个算子函数的子语法树作为后一个算子函数的输入参数,以构建脚本代码的语法树;

分块模块,用于利用分块算法对所述感兴趣区域进行分块,以得到瓦片行列号层级参数;

图像块获取模块,用于利用瓦片行列号层级参数获得图像块;

计算模块,用于调用已有算法或解析所述语法树,以构成用户需求算法;利用所述用户需求算法对所述图像块进行链式处理。

6.一种电子设备,其特征在于,所述电子设备包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述电子设备执行根据权利要求1至4任一项所述的遥感影像处理方法。

7.一种可读存储介质,其特征在于,所述可读存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行权利要求1至4任一项所述的遥感影像处理方法。

说明书 :

一种遥感影像处理方法、装置、电子设备及存储介质

技术领域

[0001] 本申请涉及图像处理技术领域,具体而言,涉及一种遥感影像处理方法、装置、电子设备及存储介质。

背景技术

[0002] 现有遥感影像处理方法一般采用数据处理工具集的方式,处理软件通过预留插件接口进行功能扩展,其处理能力受限于插件库中的插件种类。并且将遥感数据处理分析算
法封装成基础接口,并在服务端部署,用户通过网页端编写脚本,调用服务端执行程序,实
现处理和分析,但用户无法插入自定义算法。

发明内容

[0003] 本申请实施例的目的在于提供一种遥感影像处理方法、装置、电子设备及存储介质,用户可自定义算子,实现可在线编程的遥感影像的实时处理和分析,从而解决现有方法
以文件作为输入无法进行实时分块并行计算的问题。
[0004] 本申请实施例提供了一种遥感影像处理方法,该方法包括:
[0005] 接收用户编写的脚本代码和用户指定的原始影像的感兴趣区域;
[0006] 根据所述脚本代码生成语法树;
[0007] 利用分块算法对所述感兴趣区域进行分块,以得到瓦片行列号层级参数;
[0008] 利用瓦片行列号层级参数获得图像块;
[0009] 执行所述语法树,以对所述图像块进行计算,并得到计算结果。
[0010] 在上述实现过程中,通过链式计算,能够实时分析、处理及可视化显示,通过灵活弹性的计算流程,可在任意计算环节,插入算法库已有算法或用户自定义算法(用户输入的
脚本代码),从而实现可在线编程的遥感影像处理、分析及可视化显示,从而解决现有方法
以文件作为输入无法进行分块并行计算的问题。
[0011] 进一步地,所述根据所述脚本代码生成语法树,包括:
[0012] 利用算子函数的函数类型、名称和参数信息构造对应的子语法树;
[0013] 根据算子函数链式调用顺序把前一个算子函数的子语法树作为后一个算子函数的输入参数,以构建脚本代码的语法树。
[0014] 在上述实现过程中,通过编译用户编写的脚本代码生成语法树,以便于后台解析并执行语法树。
[0015] 进一步地,所述利用分块算法对所述感兴趣区域进行分块,以得到瓦片行列号层级参数,包括:
[0016] 计算所述原始影像的影像分辨率;
[0017] 基于瓦片分辨率从全球剖分层级中获取所述影像分辨率的最接近层级;
[0018] 计算所述最接近层级的瓦片行列号范围。
[0019] 在上述实现过程中,通过计算第n层级的瓦片行列号范围实现对原始影像的分块计算。
[0020] 进一步地,所述计算所述最接近层级的瓦片行列号范围,包括:
[0021] 计算所述原始影像的地理范围转换成web墨卡托参考系下的投影范围,并计算角点的投影坐标,以获得对应的坐标范围;
[0022] 计算单张瓦片的投影宽度和瓦片分辨率;
[0023] 根据所述投影宽度和所述瓦片分辨率计算瓦片行列号范围。
[0024] 在上述实现过程中,首先根据原始影像的四个角点的投影坐标计算其对应的坐标范围,从而根据坐标范围计算瓦片在第n层级的瓦片行列号范围。
[0025] 进一步地,利用瓦片行列号层级参数获得图像块,包括:
[0026] 利用瓦片行列号层级参数在所述原始影像中进行查找,以获取对应的图像块。
[0027] 在上述实现过程中,通过行列号层级信息即可从云存储中获取对应的图像块数据,因为预先对用户的感兴趣区域进行分块得到分块后的行列号层级信息,因此可根据行
列号层级信息得到对应的图像块。
[0028] 进一步地,所述调用已有算法或用户自定义算法对所述图像块进行计算,以得到计算结果,包括:
[0029] 调用已有算法或解析所述语法树,以构成用户需求算法;
[0030] 利用所述用户需求算法对所述图像块进行链式处理。
[0031] 在上述实现过程中,通过调用算法库算法或者各种遥感算法的函数表达式,组合出用户所需要的算法,进而对遥感影像进行计算分析并输出和显示结果。
[0032] 本申请实施例还提供一种遥感影像处理装置,所述装置包括:
[0033] 接收模块,用于接收用户编写的脚本代码和用户指定的原始影像的感兴趣区域;
[0034] 语法树模块,用于根据所述脚本代码生成语法树;
[0035] 分块模块,用于利用分块算法对所述感兴趣区域进行分块,以得到瓦片行列号层级参数;
[0036] 图像块获取模块,用于利用瓦片行列号层级参数获得图像块;
[0037] 计算模块,用于执行所述语法树,以对所述图像块进行计算,并得到计算结果。
[0038] 在上述实现过程中,通过链式计算,能够实时分析、处理及可视化显示,通过灵活弹性的计算流程,可在任意计算环节,插入算法库已有算法或用户自定义算法,从而实现可
在线编程的遥感影像处理、分析及可视化显示,从而解决现有方法以文件作为输入无法进
行分块并行计算的问题。
[0039] 进一步地,所述语法树模块包括:
[0040] 构造模块,用于利用算子函数的函数类型、名称和参数信息构造对应的子语法树;
[0041] 语法树构建模块,用于根据算子函数链式调用顺序把前一个算子函数的子语法树作为后一个算子函数的输入参数,以构建脚本代码的语法树。
[0042] 在上述实现过程中,通过编译用户编写的脚本代码生成语法树,以便于后台解析并执行语法树。
[0043] 本申请实施例还提供一种电子设备,所述电子设备包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述电子设备执行上述
中任一项所述的遥感影像处理方法。
[0044] 本申请实施例还提供一种可读存储介质,所述可读存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行上述中任一项所述的遥感影像
处理方法。

附图说明

[0045] 为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看
作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以
根据这些附图获得其他相关的附图。
[0046] 图1为本申请实施例提供的一种遥感影像处理方法的流程图;
[0047] 图2为本申请实施例提供的可在线编程的遥感影像处理方法得具体流程图;
[0048] 图3为本申请实施例提供的生成语法树的流程图;
[0049] 图4为本申请实施例提供的栅格构造函数生成语法树的流程图;
[0050] 图5为本申请实施例提供的乘法函数生成语法树的流程图;
[0051] 图6为本申请实施例提供的瓦片行列号层级参数的获取流程图;
[0052] 图7为本申请实施例提供的瓦片金字塔的构建流程图;
[0053] 图8为本申请实施例提供的接近层级的瓦片行列号范围的计算流程图;
[0054] 图9为本申请实施例提供的图像块的计算流程图;
[0055] 图10为本申请实施例提供的在任意计算过程中插入算子计算方法流程图;
[0056] 图11为本申请实施例提供的太湖区域叶绿素水平估算算法处理流程图;
[0057] 图12为本申请实施例提供的遥感影像处理装置的结构框图;
[0058] 图13为本申请实施例提供的遥感影像处理装置的整体结构框图。

具体实施方式

[0059] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
[0060] 应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的
描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
[0061] 实施例1
[0062] 请参看图1,图1为本申请实施例提供的一种遥感影像处理方法的流程图。该方法是一种可在线编程的遥感影像处理方法,具体包括以下步骤:
[0063] 步骤S100:接收用户编写的脚本代码和用户指定的原始影像的感兴趣区域;
[0064] 将原始影像存储至云端,用户可通过指定感兴趣区域,从而得到需要处理的数据范围。
[0065] 步骤S200:根据所述脚本代码生成语法树;
[0066] 如图2所示,为该可在线编程的遥感影像处理方法得具体流程图。脚本代码的编译过程是通过链式调用过程构建语法树,该语法树是与语言无关的JSON格式的语法树。如图3
所示,为生成语法树的流程图,具体包括以下步骤:
[0067] 步骤S201:利用算子函数的函数类型、名称和参数信息构造对应的子语法树;
[0068] 步骤S202:根据算子函数链式调用顺序把前一个算子函数的子语法树作为后一个算子函数的输入参数,以构建脚本代码的语法树。
[0069] 示例地,以栅格计算中的乘法函数为例,该函数由栅格构造函数和乘法函数两个函数构成,其中栅格构造函数的语法树由函数类型、函数名称和参数构成,乘法函数由函数
类型、函数名称和参数构成。
[0070] 如图4所示,为栅格构造函数生成语法树的流程图。如图5所示,为乘法函数生成语法树的流程图。乘法函数包括P1、P2两个参数,其中P1来自格栅构造函数,P2为乘法函数自
身参数;将格栅构造函数语法树作为乘法函数的输入参数P1,结合乘法函数的函数类型、名
称、参数P2,生成乘法函数语法树;生成的语法树以JSON字符串形式传递,语法树存储了函
数类型、名称及参数。
[0071] 步骤S300:利用分块算法对所述感兴趣区域进行分块,以得到瓦片行列号层级参数;
[0072] 如图6所示,为瓦片行列号层级参数的获取流程图,具体包括以下步骤:
[0073] 步骤S310:计算所述原始影像的影像分辨率;
[0074] 步骤S320:基于瓦片分辨率从全球剖分层级中获取所述影像分辨率的最接近层级;
[0075] 步骤S330:计算所述最接近层级的瓦片行列号范围。
[0076] 瓦片分辨率由瓦片层级、瓦片大小决定。瓦片大小一般为256*256像素,第n层级瓦n
片分辨率即为地球周长除以(2×256),如图7所示,为瓦片金字塔的构建流程图。
[0077] 如图8所示,为接近层级的瓦片行列号范围的计算流程图,具体可以包括以下步骤:
[0078] 步骤S331:计算所述原始影像的地理范围转换成web墨卡托参考系下的投影范围,并计算角点的投影坐标,以获得对应的坐标范围;
[0079] 步骤S332:计算单张瓦片的投影宽度和瓦片分辨率;
[0080] 地球周长除以2的n次方,得到第n级瓦片投影宽度;瓦片投影宽度除以256,可得到第n级瓦片分辨率。
[0081] 步骤S333:根据所述投影宽度和所述瓦片分辨率计算瓦片行列号范围。
[0082] web墨卡托地图投影起始点坐标为(‑20037508.342789243,20037508.342789243),假设地图某点坐标为(x,y),该点的行号为(x‑(‑
20037508.342789243)+瓦片分辨率)/瓦片投影宽度,对结果进行向下取整;同理,该点的列
号为(y‑20037508.342789243+瓦片分辨率)/瓦片投影宽度,对结果进行向下取整。对瓦片4
个点地理坐标范围分别进行上述计算,得到瓦片起始行、终止行、起始列、终止列数值结果。
[0083] 步骤S400:利用瓦片行列号层级参数获得图像块;
[0084] 通过动态回溯过程把JSON格式的语法树传递给后端解析,后端通过瓦片行列号层级信息作为参数执行代码,返回运行结果:
[0085] 具体地,获取集群中各服务器配置信息,确定各个服务器内存及其他配置信息,根据算法的复杂度对计算任务进行合理分配;将语法树传递给后端解析,后端通过瓦片行列
号层级信息作为参数在分配的计算节点上执行代码,返回运行结果。
[0086] 利用瓦片行列号层级参数和在所述原始影像中进行查找,以获取对应的图像块。
[0087] 由于预先会将原始影像分成多个块,每个块对应不同的瓦片行列号层级参数,因此可通过瓦片行列号层级参数查找到对应的图像块。
[0088] 步骤S500:执行所述语法树,以对所述图像块进行计算,并得到计算结果。
[0089] 如图9所示,为图像块的计算流程图,该步骤具体可以包括:
[0090] 步骤S501:调用已有算法或解析所述语法树,以构成用户需求算法;
[0091] 步骤S502:利用所述用户需求算法对所述图像块进行链式处理。
[0092] 调用算法库算法或者各种遥感算法的函数表达式,或者解析所述语法树,获得用户自定义算法,组合出用户需求算法,利用用户需求算法对遥感影像进行计算分析,并将分
析结果输出及显示,计算结果根据不同的算法可能有多种,比如,如果是波段运算算法,则
结果是图像像素块;如果是统计算法,则计算结果可能是统计值,如图10所示,为在任意计
算过程中插入算子计算方法流程图。
[0093] 该方法解决了传统流程编排不灵活,以文件作为输入无法进行分块并行计算的问题。用户通过可自定义算子,实现可在线编程的遥感影像处理、分析及可视化,其处理能力
完全不受时间和空间的限制,任意配置的终端都能处理遥感数据。
[0094] 该方法通过链式计算,能够实时分析、处理及可视化显示,并且具有灵活弹性的计算流程。
[0095] 示例地,如图11所示,为太湖区域叶绿素水平估算算法处理流程图,首先对用户编写的太湖区域叶绿素估算脚进行编译,生成JSON格式的语法树,传递给后端解析,后端通过
影像数据集ID、时间、区域信息、属性信息等参数查询计算需要的影像数据,如选择"LC08/
01/T1"数据集中"2019‑10‑01"到"2019‑12‑01"时间内的影像数据集合,对影像数据集合
中"B2, B3, B4"波段数据进行镶嵌融合,把镶嵌后的数据添加到地图中显示;再通过指定
区域过滤数据(对用户输入的感兴趣区域进行数据筛选),如选择"/PersonalGDB/Vector/
TaiHuShuiYu.geojson"矢量数据集合,获取集合中第一个几何要素对象,获取几何要素对
象中的几何对象,通过几何对象范围过滤影像数据集合;通过属性信息过滤数据,如构造属
性为"cloudCover"的数据字段值小于等于5的过滤条件,构造属性为"wrsPath"的数据字段
值等于119的过滤条件,构造属性为"wrsRow"的数据字段值等于38的过滤条件,通过构造的
多个查询条件对影像数据集合进行过滤。
[0096] 然后执行脚本定义的太湖叶绿素估算算法,后端通过瓦片行列号层级信息作为参数执行代码,对影像进行分块计算,返回运算结果,如自定义叶绿素算法,选择影像中的"
B4"波段数据和"B3"波段数据,返回"B4"波段和"B3"波段相除的像素数据。
[0097] 最后使用太湖矢量边界进行感兴趣区裁剪,将太湖叶绿素估算结果在前端进行显示,如获取影像数据集合中第0个影像数据,使用太湖区域进行范围裁剪,按照感兴趣区域
进行显示。
[0098] 实施例2
[0099] 本申请实施例提供一种遥感影像处理装置,如图12所示,为遥感影像处理装置的结构框图,所述装置包括:
[0100] 接收模块100,用于接收用户编写的脚本代码和用户指定的原始影像的感兴趣区域;
[0101] 语法树模块200,用于根据所述脚本代码生成语法树;
[0102] 分块模块300,用于利用分块算法对感兴趣区域进行分块,以得到瓦片行列号层级参数和图像块;
[0103] 图像块获取模块400,用于解析所述语法树并基于所述瓦片行列号层级参数执行所述语法树;
[0104] 计算模块500,用于执行所述语法树,以对所述图像块进行计算,并得到计算结果。
[0105] 如图13所示,为遥感影像处理装置的整体结构框图,其中,语法树模块200包括:
[0106] 构造模块201,用于利用算子函数的函数类型、名称和参数信息构造对应的子语法树;
[0107] 语法树构建模块202,用于根据算子函数链式调用顺序把前一个算子函数的子语法树作为后一个算子函数的输入参数,以构建脚本代码的语法树。
[0108] 所述分块模块300包括:
[0109] 影像分辨率计算模块310,用于计算所述原始影像的影像分辨率;
[0110] 最接近层级获取模块320,用于基于所述瓦片分辨率从全球层级中获取与所述影像分辨率最接近层级;
[0111] 行列号计算模块330,用于计算所述最接近层级的瓦片行列号范围。
[0112] 行列号计算模块330包括:
[0113] 坐标范围获取模块331,用于计算所述原始影像的地理范围转换成web墨卡托参考系下的投影范围,并计算角点的投影坐标,以获得对应的坐标范围;
[0114] 瓦片参数计算模块332,用于计算单张瓦片的投影宽度和瓦片分辨率;
[0115] 行列号范围获取模块333,用于根据所述投影宽度和所述瓦片分辨率计算瓦片行列号范围。
[0116] 计算模块500包括:
[0117] 算法构建模块501,用于调用已有算法或解析所述语法树,以构成用户需求算法;
[0118] 结果获取模块502,用于利用所述用户需求算法对所述图像块进行链式处理。
[0119] 本申请实施例还提供一种电子设备,所述电子设备包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述电子设备执行实施
例1所述的遥感影像处理方法。
[0120] 本申请实施例还提供一种可读存储介质,所述可读存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行实施例1所述的遥感影像处理方
法。
[0121] 在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图
显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、
功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一
部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执
行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于
附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也
可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每
个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基
于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0122] 另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
[0123] 所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说
对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计
算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个
人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。
而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read‑Only Memory)、随机存取存
储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0124] 以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的
任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和
字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图
中不需要对其进行进一步定义和解释。
[0125] 以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵
盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
[0126] 需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存
在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖
非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要
素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备
所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在
包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。