基于无人机航拍图的虚拟航道绘制方法、装置及存储介质与流程

文档序号:32496799发布日期:2022-12-10 04:38阅读:64来源:国知局
基于无人机航拍图的虚拟航道绘制方法、装置及存储介质与流程

1.本发明涉及航道绘制技术领域,尤其是一种基于无人机航拍图的虚拟航道绘制方法、计算机装置及存储介质。


背景技术:

2.船舶在航道中航行时需要注意避让桥梁等物体,以保障航行安全以及建筑物等的安全,从而带来了桥梁主动防撞的需求。在桥梁主动防撞的执行过程中需要实现偏航检测,具体地,偏航检测的方式大多数都是在地图上绘制虚拟航道,但是不同地图厂商所使用的坐标系不同,加上随机算法偏移以及误差等因素的影响,会导致偏航精度的缺失,使得后续偏航算法所使用的数据精度受到限制。


技术实现要素:

3.针对目前的偏航精度的缺失,影响桥梁主动防撞的实现等技术问题,本发明的目的在于提供一种基于无人机航拍图的虚拟航道绘制方法、计算机装置及存储介质。
4.一方面,本发明实施例包括一种基于无人机航拍图的虚拟航道绘制方法,包括:
5.获取无人机从实际航道采集得到的航拍图数据;
6.对由所述航拍图数据合并得到的大图进行切片,获得切片数据;
7.根据所述切片数据绘制虚拟航道;
8.跟踪所述航拍图数据中的特征点的像素变化信息;
9.将所述像素变化信息从像素坐标系反推到经纬度坐标系,获得特征点位置变化信息;
10.根据所述特征点位置变化信息对所述虚拟航道进行修正。
11.进一步地,所述获取无人机从实际航道采集得到的航拍图数据,包括:
12.控制所述无人机沿所述实际航道航行;
13.控制所述无人机对所述实际航道进行拍摄,获得所述航拍图数据;
14.控制所述无人机对所述实际航道中的特征点进行拍摄,获得特征点数据。
15.进一步地,所述获取无人机从实际航道采集得到的航拍图数据,还包括:
16.将各所述航拍图数据合并为大图。
17.进一步地,所述对由所述航拍图数据合并得到的大图进行切片,获得切片数据,包括:
18.获取geoserver的war包进行部署;
19.访问geoserver页面,在所述geoserver页面中对所述大图进行切片,获得所述切片数据;
20.切片成功后通过geoserver分布wmts服务。
21.进一步地,所述根据所述切片数据绘制虚拟航道,包括:
22.wmts服务通过openlayers加载地图瓦片;
23.使用openlayers中的polygon类绘制所述虚拟航道。
24.进一步地,所述使用openlayers中的polygon类绘制所述虚拟航道,包括:
25.获取所述虚拟航道的经纬度数据;
26.将所述虚拟航道的经纬度数据添加到polygon中;
27.将polygon添加到feature中;
28.将feature添加到vector中;
29.将vector加入到地图实例map显示所述虚拟航道。
30.进一步地,所述跟踪所述航拍图数据中的特征点的像素变化信息,包括:
31.根据所述特征点在航拍图数据中的位置,确定所述航拍图数据中所述特征点的经纬度坐标;
32.对所述实际航道定时进行摄像头截图,获得包含所述特征点的截图;
33.确定截图中所述特征点的像素坐标;
34.根据相同所述特征点的经纬度和像素坐标,建立经纬度坐标-像素坐标之间的转换关系;
35.根据所述航拍图数据中所述特征点的经纬度坐标与所述截图中所述特征点的像素坐标,确定所述像素变化信息。
36.进一步地,所述将所述像素变化信息从所述像素坐标系反推到所述经纬度坐标系,获得特征点位置变化信息,包括:
37.获取像素-实际距离比例尺;
38.根据所述像素变化信息和所述像素-实际距离比例尺,确定所述经纬度坐标系中的坐标变化;
39.获取无人机相机中心点到画面中心目标点的距离;
40.根据所述经纬度坐标系中的坐标变化以及所述无人机相机中心点到画面中心目标点的距离,确定所述特征点位置变化信息。
41.另一方面,本发明实施例还包括一种计算机装置,包括存储器和处理器,所述存储器用于存储至少一个程序,所述处理器用于加载所述至少一个程序以执行实施例中的基于无人机航拍图的虚拟航道绘制方法。
42.另一方面,本发明实施例还包括一种存储介质,其中存储有处理器可执行的程序,所述处理器可执行的程序在由处理器执行时用于执行实施例中的基于无人机航拍图的虚拟航道绘制方法。
43.本发明的有益效果是:实施例中的基于无人机航拍图的虚拟航道绘制方法,利用无人机得到高精度的实际场景图层,在该图层下绘制虚拟航道可以尽可能的保证航道准确性,每隔一段时间校准一次航道,尽可能减少虚拟航道与实际航道之间的误差,提高偏航算法的准确率。
附图说明
44.图1为实施例中的基于无人机航拍图的虚拟航道绘制方法的各步骤示意图;
45.图2为实施例中经纬度坐标与像素坐标系之间的映射关系示意图;
46.图3为实施例中将像素变化信息从像素坐标系反推到经纬度坐标系这一步骤的原
理示意图。
具体实施方式
47.本实施例中,参照图1,基于无人机航拍图的虚拟航道绘制方法包括以下步骤:
48.s1.获取无人机从实际航道采集得到的航拍图数据;
49.s2.对由航拍图数据合并得到的大图进行切片,获得切片数据;
50.s3.根据切片数据绘制虚拟航道;
51.s4.跟踪航拍图数据中的特征点的像素变化信息;
52.s5.将像素变化信息从像素坐标系反推到经纬度坐标系,获得特征点位置变化信息;
53.s6.根据特征点位置变化信息对虚拟航道进行修正。
54.本实施例中,在执行步骤s1,也就是获取无人机从实际航道采集得到的航拍图数据这一步骤时,具体可以执行以下步骤:
55.s101.控制无人机沿实际航道航行;
56.s102.控制无人机对实际航道进行拍摄,获得航拍图数据;
57.s103.控制无人机对实际航道中的特征点进行拍摄,获得特征点数据;
58.s104.将各航拍图数据合并为大图。
59.在执行步骤s101时,无人机坐标系可以选择wgs-84坐标系,在开船沿航道航向的同时,使用无人机采集航道数据,使用航标与比较具体特征的建筑、事物作为特征点,采集特征点的经纬度坐标。
60.步骤s102中,实际航道中的特征点可以是安放了浮标的位置,以及码头等标志性的建筑物。
61.步骤s103中,特征点数据可以是表示浮标、码头等特征点的位置的经纬度坐标。
62.本实施例中,实际航道可以通过经纬度坐标系来标识,例如实际航道中的各个点的位置可以通过经纬度坐标系中的经纬度坐标来表示;摄像机截图也可以通过经纬度坐标系标识,例如摄像机截图中的每个像素点都有对应的经纬度坐标。
63.本实施例中,经纬度坐标与像素坐标系之间的映射关系如图2所示。参照图2,abcd是经纬度坐标系面,abcd是像素坐标系面,abcd中的点可以映射到abcd中,abcd中的点也可以映射到abcd中。
64.在步骤s102拍摄了多张航拍图数据的情况下,在执行步骤s103时,可以使用大疆智图等软件,将无人机拍摄的多张航拍图合成为一张完整的大图,合成之后导出tif图片备用。
65.本实施例中,在执行步骤s2,也就是对由航拍图数据合并得到的大图进行切片,获得切片数据这一步骤时,具体可以执行以下步骤:
66.s201.获取geoserver的war包进行部署;
67.s202.访问geoserver页面,在geoserver页面中对大图进行切片,获得切片数据;
68.s203.切片成功后通过geoserver分布wmts服务。
69.在执行步骤s201-s203时,可以在官网下载geoserver的war包进行部署,部署成功后启动该服务,通过服务提供的ip访问geoserver页面,在页面中进行切片、服务服务等,
geoserver切片流程如下所示:点击新建工作区创建工作区,工作区新建成功后新建数据源,导入步骤s103所得的tif图片进行切片,切片成功后通过geoserver发布wmts服务。
70.本实施例中,在执行步骤s3,也就是根据切片数据绘制虚拟航道这一步骤时,具体可以执行以下步骤:
71.s301.wmts服务通过openlayers加载地图瓦片;
72.s302.使用openlayers中的polygon类绘制虚拟航道。
73.在执行步骤s203发布wmts服务后,页面通过openlayers加载地图瓦片,地图瓦片是一系列的带有经纬度的图片,加载地图瓦片的实质就是请求图片后将图片渲染到页面中。openlayers通过http协议请求地图瓦片时需要传一系列参数,参数如下:layer(图层名称)、tilematrixset(坐标系编号)、service(服务类型)、request(请求类型)、version(版本)、format(切片文件类型)、tilematrix(当前的的切片层级)、tilecol(切片后的x)、tilerow(切片后的y),通过上述的参数就可以拿到对应的地图瓦片。页面加载瓦片数据后,使用openlayers中的polygon类绘制航道。
74.本实施例中,在执行步骤s302,也就是使用openlayers中的polygon类绘制虚拟航道这一步骤时,具体可以执行以下步骤:
75.s30201.获取虚拟航道的经纬度数据;
76.s30202.将虚拟航道的经纬度数据添加到polygon中;
77.s30203.将polygon添加到feature中;
78.s30204.将feature添加到vector中;
79.s30205.将vector加入到地图实例map显示虚拟航道。
80.在执行步骤s30201-s30205时,绘制航道流程如下所示:首先通过http查询是否拥有该实际航道对应的虚拟航道的经纬度数据,如果虚拟航道的经纬度数据存在,就直接将数据添加到polygon类中,不存在就通过鼠标点击地图获取虚拟航道的数据,再将数据添加到polygon中,下一步是将polygon添加到feature中,feature是具有几何特征和其他属性特征的地理要素的矢量对象,类似于矢量文件格式中的要素。构建feature后会将feature添加到vector中,vector是由要素组成的矢量图层。最后将vector加入到地图实例map中即可显示虚拟航道。
81.本实施例中,在执行步骤s4,也就是跟踪航拍图数据中的特征点的像素变化信息这一步骤时,具体可以执行以下步骤:
82.s401.根据特征点在航拍图数据中的位置,确定航拍图数据中特征点的经纬度坐标;
83.s402.对实际航道定时进行摄像头截图,获得包含特征点的截图;
84.s403.确定截图中特征点的像素坐标;
85.s404.根据相同特征点的经纬度和像素坐标,建立经纬度坐标-像素坐标之间的转换关系;
86.s405.根据航拍图数据中特征点的经纬度坐标与截图中特征点的像素坐标,确定像素变化信息。
87.步骤s401中,可以使用大疆智图、webodm等建模软件获取特征点的经纬度坐标。
88.步骤s402中,可以使用对着实际航道的摄像头进行拍摄,获得视频流;对视频流进
行截图,识别出截图中的特征点。
89.步骤s403中,对截图中特征点的位置进行识别,根据截图中的分辨率等数据可以得到截图中特征点的像素坐标。
90.步骤s404中,根据相同特征点的经纬度和像素坐标,建立经纬度坐标-像素坐标之间的转换关系。即对于同一特征点,建立的经纬度坐标-像素坐标之间的转换关系,能够将这个特征点的经纬度坐标转换成像素坐标,相应的逆转换关系也能够将这个特征点的像素坐标转换成经纬度坐标。经纬度坐标-像素坐标之间的转换关系可以是线性映射关系。
91.步骤s405中,根据航拍图数据中特征点的像素坐标与截图中特征点的像素坐标,确定像素变化信息。本实施例中,可以计算航拍图数据中特征点的像素坐标与截图中特征点的像素坐标的差值,作为特征点的像素变化信息。具体地,在计算差值时,可以将截图中特征点的像素坐标减去航拍图数据中特征点的像素坐标。
92.本实施例中,在执行步骤s5,也就是将像素变化信息从像素坐标系反推到经纬度坐标系,获得特征点位置变化信息这一步骤时,具体可以执行以下步骤:
93.s501.获取像素-实际距离比例尺;
94.s502.根据像素变化信息和像素-实际距离比例尺,确定经纬度坐标系中的坐标变化;
95.s503.获取无人机相机中心点到画面中心目标点的距离;
96.s504.根据经纬度坐标系中的坐标变化以及无人机相机中心点到画面中心目标点的距离,确定特征点位置变化信息。
97.步骤s501-s504的原理如图3所示。
98.步骤s501中,像素-实际距离比例尺可以表示像素变化信息所对应的像素变化值,与实际航道中的实际距离变化值之间的比例。因此,步骤s502中,可以将像素变化信息乘以像素-实际距离比例尺(当像素-实际距离比例尺表示实际航道中的实际距离变化值与像素变化信息所对应的像素变化值之比),或者将像素变化信息除以像素-实际距离比例尺(当像素-实际距离比例尺表示像素变化信息所对应的像素变化值与实际航道中的实际距离变化值之比),计算得到的结果为经纬度坐标系中的坐标变化[其含义为在水平(或垂直)像素方向上的变化],对应图3中的线段p_w o_w。
[0099]
步骤s503中,可以由rtk坐标计算得到无人机相机中心点到画面中心目标点的距离,对应图3中的线段o_w o_c。
[0100]
参照图3,β为水面和相机成像平面的在水平(或垂直)像素方向上的夹角。由于线段o_w o_c以及夹角β已知,因此可以计算出线段o’o_c和o’o_w的长度。
[0101]
步骤s504中,根据线段o_w o_c与线段p_w o_w的长度比,可以确定角度α,而夹角β为已知,则被γ=α+β也是已知的,根据已知的夹角γ和线段o’o_c的长度,可以计算出线段po’的长度;根据已知的线段po’以及o’o_w的长度,可以计算出线段po_w的长度。线段po_w的长度的意义为航拍图数据中的特征点,在水平(或垂直)像素方向上的变化对应在世界坐标系下的移动距离,即实际航道中的浮标位置变化(具体可以是实际浮标经纬度发生的变化)。
[0102]
执行步骤s6时,可以根据实际航道中的浮标位置变化,相应调增或者调减虚拟航道中的各个经纬坐标值,从而实现对虚拟航道的修正,也可以在使用调增或者调减后的各
个经纬坐标值重新绘制虚拟航道。
[0103]
执行步骤s1-s6的原理在于:利用无人机得到高精度的实际场景图层,在该图层下绘制虚拟航道可以尽可能的保证航道准确性,每隔一段时间校准一次航道,尽可能减少虚拟航道与实际航道之间的误差,提高偏航算法的准确率;其中,使用无人机航拍图采集实际场景的方式可以保证最终的航拍合成图的坐标系与硬件厂商使用的是同一个坐标系,去除了坐标系转换带来的误差,为后续偏航算法提供了高精度的数据。
[0104]
可以通过编写执行本实施例中的基于无人机航拍图的虚拟航道绘制方法的计算机程序,将该计算机程序写入至计算机装置或者存储介质中,当计算机程序被读取出来运行时,执行本实施例中的基于无人机航拍图的虚拟航道绘制方法,从而实现与实施例中的基于无人机航拍图的虚拟航道绘制方法相同的技术效果。
[0105]
需要说明的是,如无特殊说明,当某一特征被称为“固定”、“连接”在另一个特征,它可以直接固定、连接在另一个特征上,也可以间接地固定、连接在另一个特征上。此外,本公开中所使用的上、下、左、右等描述仅仅是相对于附图中本公开各组成部分的相互位置关系来说的。在本公开中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。此外,除非另有定义,本实施例所使用的所有的技术和科学术语与本技术领域的技术人员通常理解的含义相同。本实施例说明书中所使用的术语只是为了描述具体的实施例,而不是为了限制本发明。本实施例所使用的术语“和/或”包括一个或多个相关的所列项目的任意的组合。
[0106]
应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种元件,但这些元件不应限于这些术语。这些术语仅用来将同一类型的元件彼此区分开。例如,在不脱离本公开范围的情况下,第一元件也可以被称为第二元件,类似地,第二元件也可以被称为第一元件。本实施例所提供的任何以及所有实例或示例性语言(“例如”、“如”等)的使用仅意图更好地说明本发明的实施例,并且除非另外要求,否则不会对本发明的范围施加限制。
[0107]
应当认识到,本发明的实施例可以由计算机硬件、硬件和软件的组合、或者通过存储在非暂时性计算机可读存储器中的计算机指令来实现或实施。所述方法可以使用标准编程技术-包括配置有计算机程序的非暂时性计算机可读存储介质在计算机程序中实现,其中如此配置的存储介质使得计算机以特定和预定义的方式操作——根据在具体实施例中描述的方法和附图。每个程序可以以高级过程或面向对象的编程语言来实现以与计算机系统通信。然而,若需要,该程序可以以汇编或机器语言实现。在任何情况下,该语言可以是编译或解释的语言。此外,为此目的该程序能够在编程的专用集成电路上运行。
[0108]
此外,可按任何合适的顺序来执行本实施例描述的过程的操作,除非本实施例另外指示或以其他方式明显地与上下文矛盾。本实施例描述的过程(或变型和/或其组合)可在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可作为共同地在一个或多个处理器上执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)、由硬件或其组合来实现。所述计算机程序包括可由一个或多个处理器执行的多个指令。
[0109]
进一步,所述方法可以在可操作地连接至合适的任何类型的计算平台中实现,包括但不限于个人电脑、迷你计算机、主框架、工作站、网络或分布式计算环境、单独的或集成的计算机平台、或者与带电粒子工具或其它成像装置通信等等。本发明的各方面可以以存储在非暂时性存储介质或设备上的机器可读代码来实现,无论是可移动的还是集成至计算
平台,如硬盘、光学读取和/或写入存储介质、ram、rom等,使得其可由可编程计算机读取,当存储介质或设备由计算机读取时可用于配置和操作计算机以执行在此所描述的过程。此外,机器可读代码,或其部分可以通过有线或无线网络传输。当此类媒体包括结合微处理器或其他数据处理器实现上文所述步骤的指令或程序时,本实施例所述的发明包括这些和其他不同类型的非暂时性计算机可读存储介质。当根据本发明所述的方法和技术编程时,本发明还包括计算机本身。
[0110]
计算机程序能够应用于输入数据以执行本实施例所述的功能,从而转换输入数据以生成存储至非易失性存储器的输出数据。输出信息还可以应用于一个或多个输出设备如显示器。在本发明优选的实施例中,转换的数据表示物理和有形的对象,包括显示器上产生的物理和有形对象的特定视觉描绘。
[0111]
以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。在本发明的保护范围内其技术方案和/或实施方式可以有各种不同的修改和变化。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1