一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

立体影像自动跨像对漫游的方法、装置、设备和存储介质与流程

2022-12-20 01:57:32 来源:中国专利 TAG:


1.本技术的实施例涉及测绘遥感领域,尤其涉及立体影像自动跨像对漫游的方法、装置、设备和计算机可读存储介质。


背景技术:

2.在航空摄影测量内业流程中,需要对整个测区航拍的大量立体像对进行加载处理。目前市面上的处理软件只能每次加载处理单个像对,然后再通过人工切换到其他像对,处理时会耗费大量时间,生产效率极下;少数软件具备自动跨像对漫游功能,但是针对gb级以上的影像数据,跨像对漫游的过程会出现卡顿、延迟等现象,会为数字地形图的快速制图造成了一定的障碍。


技术实现要素:

3.根据本技术的实施例,提供了一种立体影像自动跨像对漫游的方案。
4.在本技术的第一方面,提供了一种立体影像自动跨像对漫游的方法。该方法包括:
5.基于立体像对的数据,确定其相邻的影像列表;
6.基于所述影像列表,计算所述立体像对的漫游缓冲区;
7.通过cpu主线程对所述立体像对进行漫游,当漫游到缓冲区时,释放当前立体像对的数据,同时读取通过多个子线程调取的所述漫游缓冲区中的数据,重复上述步骤,直至完成对所述立体像对的漫游。
8.进一步地,所述基于立体像对的数据,确定其相邻的影像列表包括:
9.基于所述立体像对的坐标范围,确定其相邻的影像列表。
10.进一步地,所述影像列表包括所述立体像对相邻周边的一张或多张连续的图像。
11.进一步地,所述读取通过多个子线程调取的所述漫游缓冲区中的数据包括:
12.将所述立体像对的漫游缓冲区加载到内存中;
13.读取通过多个子线程动态调取的所述漫游缓冲区中的数据,同时重新计算各个子线程的缓存区数据并进行更新。
14.在本技术的第二方面,提供了一种立体影像自动跨像对漫游的装置。该装置包括:
15.确定模块,用于基于立体像对的数据,确定其相邻的影像列表;
16.计算模块,用于基于所述影像列表,计算所述立体像对的漫游缓冲区;
17.漫游模块,用于通过cpu主线程对所述立体像对进行漫游,当漫游到缓冲区时,释放当前立体像对的数据,同时读取通过多个子线程调取的所述漫游缓冲区中的数据,重复上述步骤,直至完成对所述立体像对的漫游。
18.进一步地所述基于立体像对的数据,确定其相邻的影像列表包括:
19.基于所述立体像对的坐标范围,确定其相邻的影像列表。
20.进一步地,所述影像列表包括所述立体像对相邻周边的一张或多张连续的图像。
21.进一步地,所述读取通过多个子线程调取的所述漫游缓冲区中的数据包括:
22.将所述立体像对的漫游缓冲区加载到内存中;
23.读取通过多个子线程动态调取的所述漫游缓冲区中的数据,同时重新计算各个子线程的缓存区数据并进行更新。
24.在本技术的第三方面,提供了一种电子设备。该电子设备包括:存储器和处理器,所述存储器上存储有计算机程序,所述处理器执行所述程序时实现如以上所述的方法。
25.在本技术的第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如根据本技术的第一方面的方法。
26.本技术实施例提供的立体影像自动跨像对漫游的方法,通过基于立体像对的数据,确定其相邻的影像列表;基于所述影像列表,计算所述立体像对的漫游缓冲区;通过cpu主线程对所述立体像对进行漫游,当漫游到缓冲区时,释放当前立体像对的数据,同时读取通过多个子线程调取的所述漫游缓冲区中的数据,重复上述步骤,直至完成对所述立体像对的漫游,彻底消除了立体像对漫游过程中的卡顿、延迟等现象,大幅度提高了数字地形图的制图效率。
27.应当理解,发明内容部分中所描述的内容并非旨在限定本技术的实施例的关键或重要特征,亦非用于限制本技术的范围。本技术的其它特征将通过以下的描述变得容易理解。
附图说明
28.结合附图并参考以下详细说明,本技术各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标记表示相同或相似的元素,其中:
29.图1示出了本技术的一个实施例可以应用于其中的示例性系统架构图;
30.图2示出了根据本技术的实施例的立体影像自动跨像对漫游的方法的流程图;
31.图3示出了根据本技术的实施例的立体影像跨像对漫游示意图;
32.图4示出了根据本技术的实施例的立体影像自动跨像对漫游的装置的方框图;
33.图5示出了适于用来实现本技术实施例的终端设备或服务器的结构示意图。
具体实施方式
34.为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的全部其他实施例,都属于本公开保护的范围。
35.另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
36.图1示出了可以应用本技术的立体影像自动跨像对漫游的方法或立体影像自动跨像对漫游的装置的实施例的示例性系统架构100。
37.如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
38.用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如模型训练类应用、视频识别类应用、网页浏览器应用、社交平台软件等。
39.终端设备101、102、103可以是硬件,也可以是软件。当终端设备101、102、103为硬件时,可以是具有显示屏的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、mp3播放器(moving picture experts group audio layer iii,动态影像专家压缩标准音频层面3)、mp4(moving picture experts group audio layer iv,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。当终端设备101、102、103为软件时,可以安装在上述所列举的电子设备中。其可以实现成多个软件或软件模块(例如用来提供分布式服务的多个软件或软件模块),也可以实现成单个软件或软件模块。在此不做具体限定。
40.当终端设备101、102、103为硬件时,其上还可以安装有视频采集设备。视频采集设备可以是各种能实现采集视频功能的设备,如摄像头、传感器等等。用户可以利用终端101、102、103上的视频采集设备来采集视频。
41.服务器105可以是提供各种服务的服务器,例如对终端设备101、102、103上显示的数据处理的后台服务器。后台服务器可以对接收到的数据进行分析等处理,并可以将处理结果反馈给终端设备。
42.需要说明的是,服务器可以是硬件,也可以是软件。当服务器为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当服务器为软件时,可以实现成多个软件或软件模块(例如用来提供分布式服务的多个软件或软件模块),也可以实现成单个软件或软件模块。在此不做具体限定。
43.应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。特别地,在目标数据不需要从远程获取的情况下,上述系统架构可以不包括网络,而只包括终端设备或服务器。
44.如图2所示,是本技术实施例立体影像自动跨像对漫游的方法的流程图。从图2中可以看出,本实施例的立体影像自动跨像对漫游的方法,包括以下步骤:
45.s210,获取立体像对的数据。
46.在本实施例中,用于立体影像自动跨像对漫游方法的执行主体(例如图1所示的服务器)可以通过有线方式或者无线连接的方式获取立体像对的数据。
47.进一步地,上述执行主体可以获取与之通信连接的电子设备(例如图1所示的终端设备)发送的立体像对的数据,也可以是预先存储于本地的立体像对的数据。
48.在本公开中,所述立体像对通常指航摄立体像对,即由飞机上的航摄仪沿航线定时启动快门,从两个不同位置对同一地区所摄取的一对相片。
49.s220,基于立体像对的数据,确定其相邻的影像列表。
50.在一些实施例中,基于立体像对的坐标范围x
max
、x
min
,y
max
和y
min
,确定当前立体像对数据周边相邻的影像列表imagelist;
51.其中,所述相邻的影像通常是指,在当前立体像对各方向连续的一张或多张图像。
52.s230,基于所述影像列表,计算所述立体像对的漫游缓冲区。
53.在一些实施例中,通过如下方式计算每个缓冲区的大小:
54.每个缓冲区的x方向大小为(x
max-x
min
)*p;
55.y方向大小为(y
max-y
min
)*p;
56.其中,所述p为根据实际应用场景设置的影像数据的范围百分比,例如,将缓冲区的大小设置为影像数据(从相邻像对中读取的漫游缓冲区影像)范围的30%,即p=30%。
57.进一步地,将所有的缓冲区均存入内存数组bufferarea。
58.s240,通过cpu主线程对所述立体像对进行漫游,当漫游到缓冲区时,释放当前立体像对的数据,同时读取通过多个子线程调取的所述漫游缓冲区中的数据,重复上述步骤,直至完成对所述立体像对的漫游
59.在一些实施例中,将所有缓存区影像数据bufferarea加载到内存中,通过cpu主线程ptrmain对当前立体像对进行漫游,通过多个子线程ptr动态调用内存中的缓冲区数据数组bufferarea;
60.进一步地,在当前立体像对漫游到缓冲区时,操控cpu主线程ptrmain实时释放当前立体像对数据,并读取缓冲区数据bufferarea,同时将其他多个子线程ptr的缓存区数据进行重新计算并更新。
61.重复上述步骤s220-s240,直至漫游结束。
62.具体地,参考图3,当前立体影像窗口为一个立体像对的区域。当前立体影像窗口加载时,首先计算当前像对的周边相邻的缓冲区影像范围,例如向上进行漫游时,主线程会调用缓冲区3的影像加载到当前立体影像窗口,同时会卸载掉当前立体影像下方区域的部分影像(位于当前显示器外的部分),从而完成整个当前立体窗口影像的更新,随着连续不断的漫游,重复进行上述步骤,直至漫游完成。其他方向的漫游同理在此不再赘述。其漫游的方向可通过鼠标拖动当前立体窗口影像或外接设备等(比如手轮)进行确定。
63.其中,图3中的矢量窗口,用于通过观测立体影像的窗口进行画图,在画的过程中,矢量图形会在矢量窗口中同步实时显示。通常可设置一个子线程处理。
64.综上,设置多个专门的子线程读取漫游缓冲区影像,以8线程为例,可设置3-5个子线程用于读取漫游缓冲区影像。在影像需要跨像对漫游时,可做到各线程之间彼此独立,除了共享资源外互不干扰,能够充分利用多核cpu的性能。
65.因此,用于漫游的影像无需裁切,可根据漫游方向实时调度,直接从硬盘中读取动态范围内的局部影像,避免了因数据量大、处理时间长而产生的卡顿、延迟等现象。
66.根据本公开的实施例,实现了以下技术效果:
67.本公开采用多线程技术调度漫游数据,可以更好地利用系统资源,充分利用了cpu的空闲时间片,可以用尽可能少的时间来对用户的要求做出响应,使得进程的整体运行效率得到较大提高,同时增强了应用程序的灵活性。尤其是针对gb级以上的影像数据跨像对漫游,通过计算机cpu的多线程动态调度,实现了大数据量跨像对漫游的平稳过渡,彻底消除了漫游过程中的卡顿、延迟等现象,大幅度提高了数字地形图的制图效率。
68.需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本技术并不受所描述的动作顺序的限制,因为依据本技术,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本技术所必须的。
69.以上是关于方法实施例的介绍,以下通过装置实施例,对本技术所述方案进行进一步说明。
70.图4示出了根据本技术的实施例的立体影像自动跨像对漫游的装置400的方框图如图4所示,装置400包括:
71.获取模块410,用于获取立体像对的数据;
72.确定模块420,用于基于立体像对的数据,确定其相邻的影像列表;
73.计算模块430,用于基于所述影像列表,计算所述立体像对的漫游缓冲区;
74.漫游模块440,用于通过cpu主线程对所述立体像对进行漫游,当漫游到缓冲区时,释放当前立体像对的数据,同时读取通过多个子线程调取的所述漫游缓冲区中的数据,重复上述步骤,直至完成对所述立体像对的漫游。
75.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,所述描述的模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
76.图5示出了适于用来实现本技术实施例的终端设备或服务器的结构示意图。
77.如图5所示,终端设备或服务器包括中央处理单元(cpu)501,其可以根据存储在只读存储器(rom)502中的程序或者从存储部分508加载到随机访问存储器(ram)503中的程序而执行各种适当的动作和处理。在ram 503中,还存储有终端设备或服务器操作所需的各种程序和数据。cpu 501、rom 502以及ram 503通过总线504彼此相连。输入/输出(i/o)接口505也连接至总线504。
78.以下部件连接至i/o接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至i/o接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。
79.特别地,根据本技术的实施例,上文方法流程步骤可以被实现为计算机软件程序。例如,本技术的实施例包括一种计算机程序产品,其包括承载在机器可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。在该计算机程序被中央处理单元(cpu)501执行时,执行本技术的系统中限定的上述功能。
80.需要说明的是,本技术所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本技术中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本技术中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限
于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。
81.附图中的流程图和框图,图示了按照本技术各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,前述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
82.描述于本技术实施例中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中。其中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。
83.作为另一方面,本技术还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中的。上述计算机可读存储介质存储有一个或者多个程序,当上述前述程序被一个或者一个以上的处理器用来执行描述于本技术的方法。
84.以上描述仅为本技术的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本技术中所涉及的申请范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离前述申请构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本技术中申请的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献