本方法涉及地理信息系统、计算机网络和深度学习技术领域,具体是一种将基于maskr-cnn的遥感影像地物检测实现为地理wps服务的方法。
背景技术:
maskr-cnn是一种图像识别检测深度学习模型,因为其优良的目标检测能力,也被拓展应用到遥感影像上,进行特定地物目标的检测识别,相比传统的遥感影像地物识别算法,取得了不错的应用效果。
尽管利用maskr-cnn模型进行遥感影像的地物检测具有较大应用优势,但是在目前具体实践中,存在着如下困难:
(1)利用maskr-cnn模型进行较快和较好的检测运算,需要配备高性能cpu和gpu的硬件平台,普通应用人员往往不具备这种条件;
(2)遥感影像的尺寸和文件大小远超过maskr-cnn模型通常检测的图像,所以现在常用的方法是将遥感影像裁剪成大小符合要求的小幅图像,再分别给与maskr-cnn模型进行检测,增加了很多额外的数据预处理工作量;
(3)maskr-cnn模型的检测结果是像素图像,没有地理坐标,不具有地理空间意义,还需要人工将其转换为空间矢量等地理数据才有实际应用价值;
(4)maskr-cnn模型的地物检测难以与其他相关的地理处理操作整合,形成统一的遥感影像地物检测流程。
技术实现要素:
针对上述maskr-cnn模型在遥感影像地物检测上应用的困难之处,本发明提出一种利用地理信息系统、计算机网络等技术,将基于maskr-cnn的遥感影像地物检测实现为地理wps服务的方法,可以实现maskr-cnn模型遥感影像地物检测的远程在线和多人共享应用。地理wps服务是一种用于在网络上提供和执行地理空间处理的规范服务,通过基于maskr-cnn的遥感影像地物检测的地理wps服务,使用人员仅需通过网络向服务器提交地物检测请求,就能同样通过网络得到maskr-cnn模型的地物检测结果数据,降低了地物检测过程中的人工工作量,扩大了maskr-cnn模型的应用范围和场景,这对于推动maskr-cnn模型在遥感影像地物检测方面的深入应用有着非常好的促进作用。
为了解决上述技术问题,本法采用的技术方案是:一种将基于maskr-cnn的遥感影像地物检测实现为地理wps服务的方法,包括如下步骤:
第一步、利用机器学习框架tensorflow实现maskr-cnn模型结构,并通过基于tcp/ip协议的socket网络通信实现对maskr-cnn模型的远程调用功能;
第二步、利用地理服务器提供的编程api,制作地理wps服务,地理wps服务可接受客户端的网络请求参数,然后向maskr-cnn模型发出远程调用请求;
第三步、利用gdal空间数据读取库,实现maskr-cnn模型对遥感影像数据的自动化地物检测识别计算;
第四步、利用gis空间处理和空间数据库,将maskr-cnn模型遥感影像地物检测的输出结果自动转换为空间矢量多边形数据并进行存储;
第五步、将地物检测的空间矢量结果转换为能进行网络传输的地理编码格式,通过地理wps服务返回至请求服务的客户端。
进一步的,在第一步中,利用机器学习框架tensorflow实现maskr-cnn模型结构具体为:利用tensorflow机器学习框架和python编程语言将maskr-cnn模型结构实现为可执行程序,并部署在配备有高性能cpu和gpu硬件环境的服务器上。
进一步的,在第一步中,maskr-cnn模型的远程调用功能实现方法是:利用python编程语言的socket模块,构建tcp/ip协议监听程序,循环等待监听特定网络端口;请求调用maskr-cnn模型的计算机或者程序通过该网络端口连接到监听程序,并将遥感影像的存储路径和地物检测的空间范围作为计算参数通过socket网络通信传输给监听程序;监听程序接收到调用请求后,以计算参数开启新线程执行maskr-cnn模型程序,生成36个字符的uuid(通用唯一识别码)作为当前计算任务的识别码返回给请求端,并在数据库中记录当前任务的识别码、开始时间和计算状态等信息。
进一步的,在第二步中,采用的地理服务器是geoserver,是一种满足规范要求的基于java环境的地理服务器。
进一步的,在第二步中,地理wps服务的制作方法是:利用地理服务器提供的编程api和java编程语言,制作wps程序插件,并部署在地理服务器中;wps程序插件接收wkt格式的检测范围矢量多边形和字符串格式的遥感影像存储路径作为客户端的网络请求参数;wps程序插件远程调用maskr-cnn模型,并根据收到的计算任务uuid,每隔t时间,并通过在数据库中查询任务计算状态判断maskr-cnn模型是否计算完毕,t为5秒。
进一步的,在第三步中,maskr-cnn模型对遥感影像进行自动化地物检测的方法是:以长为w、高为h的检测窗口,w、h一般为1024个栅格大小,从遥感影像的左上角开始,以从左到右,从上到下的顺序遍历移动;检测窗口每移动到某个位置,利用gdal库读取检测窗口范围内的遥感影像栅格数据,并调整图像通道,作为maskr-cnn模型的输入图像进行地物检测;检测窗口内的地物检测完毕后,若窗口右边还有遥感影像栅格数据,则窗口向右平行移动w-buffer距离,若窗口右边没有数据,则窗口回到影像最左边,并向下移动h-buffer距离,直到遍历完整个遥感影像,buffer是检测窗口前后移动的缓冲距离,是为了防止有横跨两次移动窗口范围之间的地物造成检测失效,buffer一般为w或h的1/5。
进一步的,在第四步中,将maskr-cnn模型遥感影像地物检测的输出结果自动转换为空间矢量多边形数据的方法是:在检测窗口内的地物检测完毕后,利用栅格矢量化gis处理,将maskr-cnn模型输出的像素图像转换为空间矢量多边形数据;将本窗口内得到的每个地物矢量多边形,与相邻的左上方、上方、右上方和左方的检测窗口得到的地物矢量多边形进行空间相交gis分析,若有重叠的多边形部分,则说明同一个地物因为面积大于检测窗口之间缓冲距离,被分割成了多个部分,此时将相交的地物矢量多边形进行空间合并gis处理,形成一个完整的地物矢量多边形;将通过gis空间处理完毕的地物矢量多边形存储至空间数据库。
进一步的,所述第四步中,对空间矢量多边形数据进行存储的空间数据库是基于postgis拓展的postgresql数据库。
进一步的,所述第五步具体为:地理服务器的wps程序插件根据计算任务uuid,在数据库中查询任务计算状态,在maskr-cnn模型对遥感影像地物检测完毕后,将存储在空间数据库中的地物空间矢量数据转换为规范的地理编码格式,并通过网络传输返回给请求服务的客户端,地物空间矢量数据被转换的地理编码格式包括ogc标准的wkt、wkb,以及ietf标准的geojson。
进一步的,在第五步中,将地物空间矢量数据转换为规范地理编码格式的方法是:利用空间数据库提供的postgis空间数据处理函数st_asgeojson、st_aswkt以及st_aswkb等,通过sql语句,将查询到的空间矢量数据输出为wkt、geojson字符串、或者wkb二进制数据。
本发明的创新点在于:
(1)通过地理信息系统、计算机网络等技术,将基于maskr-cnn模型的遥感影像地物检测实现为标准地理wps服务,并部署在服务器上,任何应用人员仅通过网络,采用统一的服务请求方式就能方便使用maskr-cnn模型对遥感影像进行检测识别任务,解除了maskr-cnn模型对应用人员硬件环境的限制;
(2)利用gdal库,实现了对整幅遥感影像数据的自动化地物检测识别,避免了将遥感影像先人工裁剪再给与maskr-cnn模型进行检测的过程,降低了数据预处理工作量;
(3)利用gis空间处理和空间数据库,实现了地物检测结果到空间矢量多边形数据的自动转换和空间数据库存储,并能经过地理wps服务以规范地理编码形式网络传输,避免了地物检测结果矢量化和格式转换的后处理人工工作量;
(4)实现为地理wps服务的maskr-cnn模型遥感影像地物检测是一种符合规范标准的地理服务,可以方便地与其他标准地理服务和空间操作整合,有助于使用人员构建新应用环境下的遥感影像地物检测框架。具体实践表明,该技术能够将基于maskr-cnn的遥感影像地物检测实现为规范标准的地理wps服务,降低了maskr-cnn模型在遥感影像应用难度,是一种效率高、人工干预少、可靠的技术方法。
附图说明
图1是本发明实现maskr-cnn模型远程调用功能的示意图;
图2是本发明制作wps程序插件,远程调用maskr-cnn模型的示意图;
图3是本发明实现maskr-cnn模型对遥感影像数据的自动化地物检测的示意图;
图4是本发明将地物检测输出结果自动转换为空间矢量多边形数据,并存储在空间数据库的示意图;
图5是本发明将地物检测结果转换为规范地理编码格式,通过地理wps服务网络传输返回给客户端的示意图。
具体实施方式
下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述。
本发明一种将基于maskr-cnn的遥感影像地物检测实现为地理wps服务的方法其中一个实施例,包括以下步骤:
第一步、利用tensorflow机器学习框架api和python编程语言,将maskr-cnn模型结构原理实现为可执行程序,并部署在配备有高性能cpu和gpu硬件环境的服务器上;通过基于tcp/ip协议的socket网络通信,实现其他计算机或者程序对maskr-cnn模型的远程调用功能(见图1)。
本步骤中,基于tcp/ip协议socket网络通信的maskr-cnn模型远程调用功能实现方法是:利用python编程语言的socket模块,构建tcp/ip协议监听程序,循环等待监听特定网络端口(本例采用9090端口);请求调用maskr-cnn模型的计算机或者程序通过该网络端口(9090端口)连接到监听程序,并将遥感影像的存储路径和地物检测的空间范围作为计算参数通过socket网络通信传输给监听程序;监听程序接收到调用请求后,以计算参数开启新线程执行maskr-cnn模型程序,生成36个字符的uuid(通用唯一识别码)作为当前计算任务的识别码返回给请求端,并在数据库中记录当前任务的识别码、开始时间和计算状态等信息。
第二步、利用地理服务器提供的编程api制作wps程序插件,形成地理wps服务;客户端通过网络向wps程序插件提出服务请求,并提交检测范围和遥感影像路径两项参数;wps程序插件接受到客户端的请求参数后,向maskr-cnn模型发出远程调用请求(见图2)。本实例采用的地理服务器是geoserver,是一种满足规范要求的基于java环境的地理服务器。
本步骤中,地理wps服务制作方法是:利用地理服务器提供的编程api和java编程语言,制作wps程序插件,并部署在地理服务器中运行接收网络请求;wps程序插件接收wkt格式的检测范围矢量多边形和字符串格式的遥感影像存储路径作为客户端的网络请求参数;wps程序插件利用maskr-cnn模型的远程调用功能,开始运行maskr-cnn模型,并根据收到的计算任务uuid,每隔t时间,在数据库中查询任务计算状态判断maskr-cnn模型是否检测识别完毕,t为5秒。
第三步、利用gdal空间数据读取库,实现maskr-cnn模型对遥感影像数据的自动化地物检测,对客户端指定的遥感影像在检测范围内进行地物检测识别计算(见图3)。
本步骤中,maskr-cnn模型对遥感影像进行自动化地物检测的实现方法是:以长为w、高为h的检测窗口,w、h一般为1024个栅格大小,从遥感影像的左上角开始,以从左到右,从上到下的顺序遍历移动;检测窗口每移动到某个位置,利用gdal库读取检测窗口范围内的遥感影像栅格数据,并调整图像通道,作为maskr-cnn模型的输入图像进行地物检测;检测窗口内的地物检测完毕后,若窗口右边还有遥感影像栅格数据,则窗口向右平行移动w-buffer距离,若窗口右边没有数据,则窗口回到影像最左边,并向下移动h-buffer距离,直到遍历完整个遥感影像,buffer是检测窗口前后移动的缓冲距离,是为了防止有横跨两次移动窗口范围之间的地物造成检测失效,buffer一般为w或h的1/5。
第四步、在maskr-cnn模型对遥感影像地物检测识别计算完毕后,利用gis空间处理和分析,将地物检测的输出结果自动转换为空间矢量多边形数据,并存储在空间数据库中,本实例采用基于postgis拓展的postgresql空间数据库。
见图4,本步骤中,maskr-cnn模型遥感影像地物检测结果自动转换为空间矢量数据并存储的方法是:在检测窗口内的地物检测完毕后,利用栅格矢量化gis处理,将maskr-cnn模型输出的像素图像转换为空间矢量多边形数据;将本窗口内得到的每个地物矢量多边形,与相邻的左上方、上方、右上方和左方的检测窗口得到的地物矢量多边形进行空间相交gis分析,若有重叠的多边形部分,则说明同一个地物因为面积大于检测窗口之间缓冲距离,被分割成了多个部分,此时将相交的地物矢量多边形进行空间合并gis处理,形成一个完整的地物矢量多边形;将通过gis空间处理完毕的地物矢量多边形存储至空间数据库。
第五步、地理wps服务确定maskr-cnn模型遥感影像地物检测完毕后,利用空间数据库提供的postgis空间数据处理函数,将地物检测结果转换为能进行网络传输的规范地理编码格式,通过网络传输返回给请求服务的客户端(见图5)。地理编码格式包括ogc标准的wkt、wkb,以及ietf标准的geojson。
本步骤中,地理wps服务返回地物检测结果的方法是:地理服务器的wps程序插件根据计算任务uuid,在数据库中查询任务计算状态,在maskr-cnn模型对遥感影像地物检测完毕后,将存储在空间数据库中的地物空间矢量数据转换为规范的地理编码格式,并通过网络传输返回给请求服务的客户端。将地物空间矢量数据转换为规范地理编码格式的方法是:利用空间数据库提供的postgis空间数据处理函数st_asgeojson、st_aswkt以及st_aswkb等,通过sql语句,将查询到的空间矢量数据输出为wkt、geojson字符串,或者wkb二进制数据。
经过上述步骤,可以将基于maskr-cnn的遥感影像地物检测实现为地理wps服务。图1-图5为运用本方法,将基于maskr-cnn的遥感影像地物检测实现为地理wps服务的各步骤效果图。可以看出各步骤分别实现了:
(1)利用机器学习框架tensorflow和python编程语言构建maskr-cnn可执行程序,利用基于tcp/ip协议的socket网络通信实现了maskr-cnn模型的远程调用功能;
(2)利用地理服务器及其api,实现了地理wps服务远程调用maskr-cnn模型进行遥感影像地物检测;
(3)利用gdal空间数据读取库,实现了maskr-cnn模型对遥感影像数据的自动化地物检测识别计算;
(4)利用gis空间处理分析和空间数据库,实现了地物检测输出结果的空间矢量多边形自动转换和空间数据库存储;
(5)利用postgis空间数据处理函数实现了地物检测结果到规范地理编码格式的转换,利用地理wps服务实现了地理编码格式的地物检测结果到客户端的网络返回。
上述步骤(3),实现了对整幅遥感影像数据的自动化地物检测识别,解决了遥感影像进行maskr-cnn模型检测的需要人工裁剪的应用难点;
步骤(4),实现了地物检测结果到空间矢量多边形数据的自动转换,解决了maskr-cnn模型地物检测结果需要人工矢量化的应用难点;
步骤(5),实现了地物检测结果的规范地理编码格式转换以及网络传输返回,解决了地物检测结果需要人工后处理的应用难点;步骤(1)到(5),最终实现了基于maskr-cnn的遥感影像地物检测地理wps服务,解决了maskr-cnn模型对于硬件平台限制以及与其他地理处理操作难以整合的应用难点。以上各步骤处理过程都很好地围绕将基于maskr-cnn的遥感影像地物检测实现为地理wps服务展开,没有出现明显偏离。
在具体的实验中,将上述步骤实现的maskr-cnn模型遥感影像地物检测地理wps服务部署在配备有nvidiartx1080tigpu和32gb内存的服务器上,通过geoserver地理服务器发布运行;利用openlayergis客户端框架、html5和javascript语言制作客户端页面,通过网络使用基于maskr-cnn的遥感影像地物检测地理wps服务。
以尺寸24000×12000的遥感影像作为测试,从地物检测请求发出到地物检测结果返回到客户端,全程自动化进行,所用时间大约为3分钟;传统maskr-cnn的遥感影像地物检测操作需要先裁剪分块,以1024×1024为裁剪大小,测试影像需要人工裁减大概288块图像,然后每块图像分别进行maskr-cnn模型检测识别计算、人工栅格矢量化、数据保存等操作,在相同硬件条件下,单块图像的完整地物检测操作需要近1分多钟,整幅遥感影像则至少需要6个多小时,还不包括数据汇总、格式转换等操作的时间,而且操作繁琐易出错;可见,相比传统maskr-cnn的遥感影像地物检测操作应用,本发明提出的方法人工工作量小、花费时间少且错误率低。因此,最终得到的将基于maskr-cnn的遥感影像地物检测实现为地理wps服务的方法能够满足实际需求,为maskr-cnn模型的推广应用做出了贡献。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何属于本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
1.一种将基于maskr-cnn的遥感影像地物检测实现为地理wps服务的方法,其特征在于包括如下步骤:
第一步、利用机器学习框架tensorflow实现maskr-cnn模型结构,并通过基于tcp/ip协议的socket网络通信实现对maskr-cnn模型的远程调用功能;
第二步、利用地理服务器提供的编程api,制作地理wps服务,地理wps服务可接受客户端的网络请求参数,然后向maskr-cnn模型发出远程调用请求;
第三步、利用gdal空间数据读取库,实现maskr-cnn模型对遥感影像数据的自动化地物检测识别计算;
第四步、利用gis空间处理和空间数据库,将maskr-cnn模型遥感影像地物检测的输出结果自动转换为空间矢量多边形数据并进行存储;
第五步、将地物检测的空间矢量结果转换为能进行网络传输的地理编码格式,通过地理wps服务返回至请求服务的客户端。
2.如权利要求1所述的基于maskr-cnn的遥感影像地物检测实现为地理wps服务的方法,其特征在于:在第一步中,利用机器学习框架tensorflow实现maskr-cnn模型结构具体为:利用tensorflow机器学习框架和python编程语言将maskr-cnn模型结构实现为可执行程序,并部署在配备有高性能cpu和gpu硬件环境的服务器上。
3.如权利要求1所述的基于maskr-cnn的遥感影像地物检测实现为地理wps服务的方法,其特征在于:在第一步中,maskr-cnn模型的远程调用功能实现方法是:利用python编程语言的socket模块,构建tcp/ip协议监听程序,循环等待监听特定网络端口;请求调用maskr-cnn模型的计算机或者程序通过该网络端口连接到监听程序,并将遥感影像的存储路径和地物检测的空间范围作为计算参数通过socket网络通信传输给监听程序;监听程序接收到调用请求后,以计算参数开启新线程执行maskr-cnn模型程序,生成36个字符的uuid作为当前计算任务的识别码返回给请求端,并在数据库中记录当前任务的识别码、开始时间和计算状态等信息。
4.如权利要求1所述的基于maskr-cnn的遥感影像地物检测实现为地理wps服务的方法,其特征在于:在第二步中,采用的地理服务器是geoserver。
5.如权利要求1所述的基于maskr-cnn的遥感影像地物检测实现为地理wps服务的方法,其特征在于:第二步中,地理wps服务的制作方法是:利用地理服务器提供的编程api和java编程语言,制作wps程序插件,并部署在地理服务器中;wps程序插件接收wkt格式的检测范围矢量多边形和字符串格式的遥感影像存储路径作为客户端的网络请求参数;wps程序插件远程调用maskr-cnn模型,并根据收到的计算任务uuid,每隔t时间,并通过在数据库中查询任务计算状态判断maskr-cnn模型是否计算完毕,t为5秒。
6.如权利要求1所述的基于maskr-cnn的遥感影像地物检测实现为地理wps服务的方法,其特征在于:在第三步中,maskr-cnn模型对遥感影像进行自动化地物检测的方法是:以长为w、高为h的检测窗口,w、h一般为1024个栅格大小,从遥感影像的左上角开始,以从左到右,从上到下的顺序遍历移动;检测窗口每移动到某个位置,利用gdal库读取检测窗口范围内的遥感影像栅格数据,并调整图像通道,作为maskr-cnn模型的输入图像进行地物检测;检测窗口内的地物检测完毕后,若窗口右边还有遥感影像栅格数据,则窗口向右平行移动w-buffer距离,若窗口右边没有数据,则窗口回到影像最左边,并向下移动h-buffer距离,直到遍历完整个遥感影像,buffer一般为w或h的1/5。
7.如权利要求1所述的基于maskr-cnn的遥感影像地物检测实现为地理wps服务的方法,其特征在于:在第四步中,将maskr-cnn模型遥感影像地物检测的输出结果自动转换为空间矢量多边形数据的方法是:在检测窗口内的地物检测完毕后,利用栅格矢量化gis处理,将maskr-cnn模型输出的像素图像转换为空间矢量多边形数据;将本窗口内得到的每个地物矢量多边形,与相邻的左上方、上方、右上方和左方的检测窗口得到的地物矢量多边形进行空间相交gis分析,若有重叠的多边形部分,则说明同一个地物因为面积大于检测窗口之间缓冲距离,被分割成了多个部分,此时将相交的地物矢量多边形进行空间合并gis处理,形成一个完整的地物矢量多边形;将通过gis空间处理完毕的地物矢量多边形存储至空间数据库。
8.如权利要求1所述的基于maskr-cnn的遥感影像地物检测实现为地理wps服务的方法,其特征在于:所述第四步中,对空间矢量多边形数据进行存储的空间数据库是基于postgis拓展的postgresql数据库。
9.如权利要求1所述的基于maskr-cnn的遥感影像地物检测实现为地理wps服务的方法,其特征在于:所述第五步具体为:地理服务器的wps程序插件根据计算任务uuid,在数据库中查询任务计算状态,在maskr-cnn模型对遥感影像地物检测完毕后,将存储在空间数据库中的地物空间矢量数据转换为规范的地理编码格式,并通过网络传输返回给请求服务的客户端,地物空间矢量数据被转换的地理编码格式包括ogc标准的wkt、wkb,以及ietf标准的geojson。
10.如权利要求1所述的基于maskr-cnn的遥感影像地物检测实现为地理wps服务的方法,其特征在于:在第五步中,将地物空间矢量数据转换为规范地理编码格式的方法是:利用空间数据库提供的postgis空间数据处理函数st_asgeojson、st_aswkt以及st_aswkb,通过sql语句,将查询到的空间矢量数据输出为wkt、geojson字符串、或者wkb二进制数据。
技术总结