CN116433830A - 一种三维地图的创建方法及电子设备 - Google Patents
一种三维地图的创建方法及电子设备 Download PDFInfo
- Publication number
- CN116433830A CN116433830A CN202111665748.XA CN202111665748A CN116433830A CN 116433830 A CN116433830 A CN 116433830A CN 202111665748 A CN202111665748 A CN 202111665748A CN 116433830 A CN116433830 A CN 116433830A
- Authority
- CN
- China
- Prior art keywords
- image
- frame
- target
- dimensional
- electronic device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 184
- 238000012545 processing Methods 0.000 claims abstract description 106
- 230000008569 process Effects 0.000 claims abstract description 89
- 238000003860 storage Methods 0.000 claims description 55
- 238000006243 chemical reaction Methods 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 19
- 239000011159 matrix material Substances 0.000 claims description 18
- 238000005259 measurement Methods 0.000 claims description 6
- 238000013507 mapping Methods 0.000 description 80
- 238000004422 calculation algorithm Methods 0.000 description 40
- 238000010586 diagram Methods 0.000 description 28
- 238000004891 communication Methods 0.000 description 26
- 230000006870 function Effects 0.000 description 18
- 238000013461 design Methods 0.000 description 12
- 239000000463 material Substances 0.000 description 11
- 239000013598 vector Substances 0.000 description 11
- 238000010295 mobile communication Methods 0.000 description 10
- 238000010276 construction Methods 0.000 description 9
- 239000000284 extract Substances 0.000 description 9
- 238000000605 extraction Methods 0.000 description 9
- 238000007726 management method Methods 0.000 description 9
- 230000003287 optical effect Effects 0.000 description 7
- 230000000007 visual effect Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 230000009466 transformation Effects 0.000 description 5
- 238000012795 verification Methods 0.000 description 5
- 230000003190 augmentative effect Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 230000004927 fusion Effects 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 229920001621 AMOLED Polymers 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013136 deep learning model Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 239000002096 quantum dot Substances 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 235000002245 Penicillium camembertii Nutrition 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000008034 disappearance Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 238000001356 surgical procedure Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/74—Image or video pattern matching; Proximity measures in feature spaces
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Software Systems (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Databases & Information Systems (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Multimedia (AREA)
- Processing Or Creating Images (AREA)
- Image Processing (AREA)
Abstract
本申请提供一种三维地图的创建方法及电子设备,应用于包含多个计算节点的分布式系统,该方法包括:每个计算节点从来自电子设备的多帧图像中选择一帧图像作为目标图像,对目标图像进行目标处理过程,至多帧图像均已进行目标处理过程;多帧图像为针对同一环境拍摄的图像;目标处理过程包括:提取目标图像的第一特征点;获取已进行目标处理过程的至少一帧图像的特征点;在至少一帧图像的特征点中选择至少一个第二特征点与第一特征点组成特征匹配对;第一特征点和至少一个第二特征点对应环境中同一点;目标计算节点获取对多帧图像进行目标处理过程后得到的多个特征匹配对,根据多个特征匹配对创建三维点云地图;目标计算节点为任一计算节点。
Description
技术领域
本申请涉及电子设备技术领域,尤其涉及一种三维地图的创建方法及电子设备。
背景技术
元宇宙/虚拟世界(metaverse)概念意在让人对世界的认识和感知方式提升到新的层次。数字世界是现有技术下主流的拓展人类认识和改造事物方法的新的维度。数字世界与真实世界的关键纽带在于高精度、等比例、高保真的三维地图。因此快速、高效、精确的创建三维(高精)地图是进入数字世界的首要和必要条件。三维地图的生产可能涉及地理测绘、计算机视觉等诸多领域,三维地图的应用涵盖增强现实(augmented reality,AR)游戏、虚拟现实(virtual reality,VR)游戏等虚拟世界相关的各类产品。
当前创建三维地图时,一种方案是可以通过实时差分定位(real-timekinematic,RTK)或城市控制点精确测量真实世界的真实坐标作为起始点或控制点,并通过激光扫描仪以及全景相机扫描得到彩色三维点云作为地图数据,再通过控制点对齐算法将真实世界的真实坐标与三维点云对齐后生成高精度带绝对位置的三维地图。该方案中需要专用的点云采集设备,因此对设备的依赖性较高,导致三维地图制作的成本也较高,不利于推广使用。此外,该方案中采集的点云一般比较稠密,会占用较大的存储空间,且处理点云数据的时间较长,因此创建三维地图的效率较低。
另一种方案是可以利用手机采集真实世界的图像后上传至云端服务器,云端服务器对手机上传的图片依次进行处理,通过稀疏重建产生稀疏三维点及相机视角,再结合三维点和相机视角进行稠密重建,最终生成三维地图。该方案中,云端服务器需要有手机上传的所有帧图像才可以进行三维地图的创建,且云端服务器对后一帧图像的处理过程依赖于对前一帧图像的处理结果,因此运算服务器需要按序处理手机上传的图片,导致处理效率较低。此外,该方案中,图像采集过程对使用手机的采集者有较高的技术要求,需要用户理解三维重建的概念才能采集到合适的、能够较好创建三维地图的图像,因此,该方案的通用性较差,不利于推广使用。
综上,当前创建三维地图的方法存在处理效率低、通用性差的问题,难以简便高效的进行三维地图的创建。
发明内容
本申请提供一种三维地图的创建方法及电子设备,用以提高创建三维地图的效率,降低创建三维地图的难度,能够简便快速的实现三维地图的创建。
第一方面,本申请提供一种三维地图的创建方法,应用于包含多个计算节点的分布式系统,该方法包括:每个计算节点分别从来自电子设备的多帧图像中选择待处理的一帧图像作为目标图像,并对所述目标图像进行目标处理过程,至所述多帧图像均已进行所述目标处理过程;其中,所述多帧图像为所述电子设备针对同一环境拍摄的图像;所述目标处理过程包括以下步骤:提取所述目标图像的第一特征点;获取已进行所述目标处理过程的至少一帧图像的特征点;在所述至少一帧图像的特征点中选择至少一个第二特征点与所述第一特征点组成特征匹配对;其中,所述第一特征点和所述至少一个第二特征点对应所述环境中的同一点;目标计算节点获取对所述多帧图像进行目标处理过程后得到的多个特征匹配对,并根据所述多个特征匹配对创建三维点云地图;其中,所述目标计算节点为所述多个计算节点中的任一计算节点。
在该方法中,分布式系统可以根据电子设备提供的多帧图像完成三维点云地图的创建,其中,分布式系统中的多个计算节点可以独立进行不同图像的处理过程,因此能够通过多节点支持大规模计算,进而提高处理效率,简便快速的实现三维地图的创建。
在一种可能的设计中,所述目标计算节点根据所述多个特征匹配对创建三维点云地图,包括:所述目标计算节点获取来自所述电子设备的多个第一位姿信息;其中,所述多个第一位姿信息与所述多帧图像一一对应,每个第一位姿信息用于指示所述电子设备拍摄相应第一位姿信息对应的图像时在第一三维空间中的位置和朝向,所述第一三维空间为所述三维点云地图对应的三维空间;所述目标计算节点根据所述多个第一位姿信息,确定所述多个特征匹配对在所述第一三维空间中对应的多个三维点,得到所述三维点云地图。
在该方法中,电子设备的第一位姿信息指示电子设备拍摄不同图像时在三维地图中对应的位姿即位置和朝向,而不同图像中存在对应环境中同一点的特征点即特征匹配对中的特征点,这些特征点在三维地图中也对应同一点,因此电子设备拍摄不同图像时在三维地图中对应的位姿是三维地图中同一点的不同视角下的位姿,因此,基于该关系,目标计算节点可以根据电子设备的位姿推导出三维点的位置,进而得到用于构成三维点云地图的多个三维点。
在一种可能的设计中,所述方法还包括:所述目标计算节点获取来自所述电子设备的多个第二位姿信息;其中,所述多个第二位姿信息与所述多帧图像一一对应,每个第二位姿信息用于指示所述电子设备拍摄相应第二位姿信息对应的图像时在第二三维空间中的位置和朝向,所述第二三维空间为所述环境对应的三维空间;所述目标计算节点根据所述多个第二位姿信息和所述多个第一位姿信息,对所述第一三维空间中三维点的坐标进行调整,得到与所述环境等比例的三维点云地图。
在该方法中,电子设备测得第一位姿信息与电子设备在真实环境中的位姿信息可能存在偏差,因此根据第一位姿信息确定的三维点云地图与真实环境地图可能存在偏差,因此,目标计算节点通过获取电子设备测得反映电子设备在真实环境中位姿的第二位姿信息,再根据第二位姿信息对三维点云地图进行调整,可以将三维点云地图与真实环境的地图进行对齐,进而得到与真实环境等比例的三维点云地图,提高获得的三维点云地图的精度。
在一种可能的设计中,所述目标计算节点根据所述多个第二位姿信息和所述多个第一位姿信息,对所述第一三维空间中三维点的坐标进行调整,包括:所述目标计算节点根据所述多个第二位姿信息和所述多个第一位姿信息,确定多个转换矩阵;其中,所述多个转换矩阵与所述多帧图像一一对应,每个转换矩阵用于表征同一图像对应的第二位姿信息与第一位姿信息之间的转换关系;所述目标计算节点对所述多个转换矩阵求平均得到目标转换矩阵;所述目标计算节点利用所述目标转换矩阵对所述第一三维空间中三维点的坐标进行转换处理。
在该方法中,目标计算节点根据电子设备在不同三维空间中的位姿之间的转换关系,对其中一个三维空间中的三维点进行坐标调整,可以将两个三维空间和对应的坐标系进行对齐。因此,基于该方式进行调整后得到的三维点云地图可以对齐至真实环境的三维空间,从而保证三维点云地图的还原度和精度。
在一种可能的设计中,每个第二位姿信息所指示的位置是所述电子设备通过进行全球定位系统GPS定位确定的;每个第二位姿信息所指示的朝向是所述电子设备通过进行惯性测量单元IMU测量确定的。
在该方法中,目标计算节点从电子设备获取的位姿信息为电子设备的GPS信息和IMU信息,而GPS信息和IMU信息可以准确反映电子设备在真实环境的位姿,因此该方法可以保证目标计算节点能够获取电子设备在真实环境的准确位姿,进而保证后续处理过程的准确度。
在一种可能的设计中,在获取已进行所述目标处理过程的至少一帧图像的特征点之前,所述方法还包括:确定所述至少一帧图像,包括:提取所述目标图像的全局特征;获取已进行所述目标处理过程的每帧图像的全局特征,并在获取的全局特征中选择与所述目标图像的全局特征相似度最高的至少一个全局特征;确定所述至少一个全局特征对应的图像为所述至少一帧图像。
在该方法中,全局特征相似度高的图像之间存在较多相同或类似的特征点,因此这些图像对应环境中相同或邻近区域的可能性较大,基于这些图像能够获得较多、较准确度的特征匹配对,以便根据特征匹配对进行三维地图的创建。
在一种可能的设计中,所述分布式系统中还包括队列节点,在每个计算节点分别从多帧图像中选择待处理的一帧图像作为目标图像之前,所述方法还包括:所述队列节点接收来自所述电子设备的所述多帧图像,并按照从所述电子设备接收图像的顺序,将所述多帧图像添加至目标图像队列中;每个计算节点分别从多帧图像中选择待处理的一帧图像作为目标图像,包括:每个计算节点从所述队列节点的目标图像队列中读取一帧图像,并将读取的图像作为所述目标图像。
在该方法中,分布式系统的多个计算节点可以从队列节点中依次读取图像并对读取的图像进行处理,可以保证不同节点之间有序的对多帧图像分别进行处理,提高处理效率。
在一种可能的设计中,所述目标处理过程还包括:在提取所述目标图像的第一特征点后,将所述第一特征点保存至存储节点;获取已进行所述目标处理过程的至少一帧图像的特征点,包括:从所述存储节点获取所述至少一帧图像的特征点。
在该方法中,每个计算节点从处理的图像中提取特征点后,将特征点保存到存储节点。则所有节点确定的特征点均保存在存储节点,这样每个计算节点可以从存储节点获取其它计算节点提取的其它图像的特征点并进行后续处理,提高了处理效率。
在一种可能的设计中,所述方法还包括:所述目标计算节点将所述三维点云地图发送到所述电子设备。
在该方法中,分布式系统三维地图后将三维地图发送到电子设备以供电子设备使用。其中,在建图过程中,电子设备仅需提供多帧图像和位姿等信息,而复杂的三维地图创建过程由分布式系统完成,因此可以降低电子设备侧获取三维地图的难度和成本。
第二方面,本申请提供一种电子设备,所述电子设备包括存储器和一个或多个处理器;
其中,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令;当所述计算机指令被所述一个或多个处理器执行时,使得所述电子设备执行上述第一方面或第一方面的任一可能的设计所描述的方法中由多个计算节点中的至少一个计算节点所执行的方法。
第三方面,本申请提供一种电子设备,所述电子设备包括用于执行第一方面或第一方面的任一可能的设计所描述的方法中由多个计算节点中的至少一个计算节点所执行的方法的模块/单元。
第四方面,本申请提供一种分布式系统,该分布式系统包括多个电子设备,其中,每个电子设备可通过上述第二方面的电子设备或第三方面的电子设备实现。
第五方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,当计算机程序在计算机上运行时,使得所述计算机执行上述第一方面或第一方面的任一可能的设计所描述的方法中由多个计算节点中的至少一个计算节点所执行的方法。
第六方面,本申请提供一种计算机程序产品,所述计算机程序产品包括计算机程序或指令,当所述计算机程序或指令在计算机上运行时,使得所述计算机执行上述第一方面或第一方面的任一可能的设计所描述的方法中由多个计算节点中的至少一个计算节点所执行的方法。
附图说明
图1为本申请实施例提供的一种电子设备的硬件架构示意图;
图2为本申请实施例提供的一种电子设备的软件架构示意图;
图3a为本申请实施例提供的方案适用的应用系统的架构示意图;
图3b为本申请实施例提供的方案的一种可能的应用系统的架构示意图;
图4为本申请实施例提供的一种电子设备建图初始化的界面示意图;
图5为本申请实施例提供的一种电子设备扫描环境时的显示界面的示意图;
图6a为本申请实施例提供的一种电子设备显示网格的界面的示意图;
图6b为本申请实施例提供的一种电子设备显示网格的界面的示意图;
图6c为本申请实施例提供的一种电子设备触发建图时的显示界面的示意图;
图7为本申请实施例提供的一种三维地图的示意图;
图8a为本申请实施例提供的一种电子设备显示三维地图信息的界面的示意图;
图8b为本申请实施例提供的一种电子设备显示三维地图信息的界面的示意图;
图9为本申请实施例提供的一种三维地图的创建方法的流程示意图;
图10a为本申请实施例提供的一种电子设备使用三维地图过程中的显示界面的示意图;
图10b为本申请实施例提供的一种电子设备结合显示真实场景图像和虚拟数字资源的界面的示意图;
图11为本申请实施例提供的一种三维地图的创建方法的示意图;
图12为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为了使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施例作进一步地详细描述。其中,在本申请实施例的描述中,以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。
为了便于理解,示例性的给出了与本申请相关概念的说明以供参考。
1)、电子设备,可以为具有无线连接功能的设备。在本申请一些实施例中,电子设备可以是具备显示屏、摄像头和传感器的设备。
本申请一些实施例中电子设备可以是便携式设备,诸如手机、平板电脑、具备无线通讯功能的可穿戴设备(例如,手表、手环、头盔、耳机等)、车载终端设备、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personaldigital assistant,PDA)等。电子设备还可以是智能家居设备(例如,智能电视、智能音箱等)、智能汽车、智能机器人、车间设备、无人驾驶(Self Driving)中的无线终端、远程手术(Remote Medical Surgery)中的无线终端、智能电网(Smart Grid)中的无线终端、运输安全(Transportation Safety)中的无线终端、智慧城市(Smart City)中的无线终端,或智慧家庭(Smart Home)中的无线终端、飞行设备(例如,智能机器人、热气球、无人机、飞机)等。
在本申请一些实施例中,电子设备还可以是还包含其它功能诸如个人数字助理和/或音乐播放器功能的便携式终端设备。便携式终端设备的示例性实施例包括但不限于搭载或者其它操作系统的便携式终端设备。上述便携式终端设备也可以是其它便携式终端设备,诸如具有触敏表面(例如触控面板)的膝上型计算机(Laptop)等。还应当理解的是,在本申请其它一些实施例中,上述电子设备也可以不是便携式终端设备,而是具有触敏表面(例如触控面板)的台式计算机。
2)、分布式(distribution)处理(分布式计算),是指将一个需要较大计算能力才能解决的任务分解成多个小的任务,然后把多个小的任务分别分配给多个计算节点进行处理,最后把多个计算节点的处理结果综合起来得到最终的处理结果。这样可以节约整体处理时间,大大提高计算效率。其中,多个计算节点组成的系统即为分布式系统。多个计算节点可以部署在同一设备上,也可以分别部署在通过网络连接起来的多个设备上。
本申请实施例中,计算节点可以是电子设备(例如服务器等),也可以是电子设备中的软件、程序、服务、器件等(例如中央处理器CPU、图像处理器GPU等)。
分布式存储,是将数据分散地存储于多个独立的存储节点中。分布式存储系统采用可扩展的系统结构,利用多个存储节点分担存储负荷,不但解决了传统集中式存储系统中单存储节点的瓶颈问题,还提高了系统的可靠性、可用性和扩展性。
本申请实施例中,存储节点可以是电子设备(例如服务器),也可以是电子设备中的软件程序、服务、器件等(例如临时存储器、永久性存储器等)。
3)、消息中间件,指面向消息的系统,是在分布式系统中完成消息的发送和接收的基础软件。消息中间件也可以称为消息队列,可以利用高效可靠的消息传递机制进行数据传输和交流,并基于数据通信进行分布式系统的集成。通过提供消息传递和消息队列模型,消息中间件可以在分布式环境下扩展系统进程的通信。
4)、局部图像特征(local image features):是图像特征的局部表达,反映了图像上具有的局部特性。局部图像特征可以是从图像局部区域中提取的特征,例如图像边缘、角点、线、曲线和特别属性的区域等区域中提取的特征。局部图像特征包括尺度不变特征变换(scale-invariant feature transform,SIFT)、加速稳健特征(speeded up robustfeatures,SURF)等特征。这些局部特征可以用于在图像中检测出关键点或特征点。局部图像特征具有在图像中蕴含数量丰富、特征间相关度小,遮挡情况下不会因为部分特征的消失而影响其他特征的检测和匹配等特点,因此适用于对图像进行匹配、检索等应用处理。
全局图像特征(global image features):指图像的整体属性,能表示整幅图像上的特征,全局特征是相对于图像局部特征而言的,可以用于描述图像或目标的颜色、形状等整体特征。常见的全局特征包括颜色特征、纹理特征和形状特征,例如局部特征聚类中心的加权残差和、词袋模型(bag of words,Bow)、局部积聚描述符(vector of locallyaggregated descriptors,VLAD)等。全局特征具有良好的不变性、计算简单、表示直观等特点。
为便于描述,本申请实施例中将局部图像特征简称为局部特征,将全局图像特征简称为全局特征。
5)、体素,是体积元素(volume pixel)的简称,是数字数据于三维空间分割上的最小单位,在概念上类似二维空间的最小单位即像素。体素能够用恒定的标量或者向量表示一个立体的区域。包含体素的立体可以通过立体渲染或者提取给定阈值轮廓的多边形等值面表现出来。
6)、白模(mesh),指模型的网格,三维模型是由多边形拼接而成的,而一个复杂的多边形实际上是由多个三角面拼接而成的。所以一个三维模型的表面是由多个彼此相连的三角面构成的。在三维空间中,构成这些三角面的点以及三角形的边的集合就是白模。
应理解,本申请实施例中“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A、B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一(项)个”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a、b或c中的至少一项(个),可以表示:a,b,c,a和b,a和c,b和c,或a、b和c,其中a、b、c可以是单个,也可以是多个。
本申请实施例提供一种三维地图的创建方法及电子设备,该方案能够简便快速的实现三维地图的创建,提高创建三维地图的效率,降低创建三维地图的难度。
本申请实施例提供的方案可以应用于电子设备和分布式建图系统组成的系统中。其中,电子设备用于采集环境图像和定位参数等信息并上报至分布式建图系统,分布式建图系统包含多个计算节点,多个计算节点用于根据电子设备上报的信息创建三维地图。多个计算节点可以部署在相同的电子设备或不同的电子设备上。
下面首先参阅图1,对本申请实施例提供的方法适用的电子设备的结构进行介绍。
如图1所示,电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,USB接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及SIM卡接口195等。
其中传感器模块180可以包括陀螺仪传感器、加速度传感器、接近光传感器、指纹传感器、触摸传感器、温度传感器、压力传感器、距离传感器、磁传感器、环境光传感器、气压传感器、骨传导传感器等。
可以理解的是,图1所示的电子设备100仅仅是一个范例,并不构成对电子设备的限定,并且电子设备可以具有比图中所示出的更多的或者更少的部件,可以组合两个或更多的部件,或者可以具有不同的部件配置。图1中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(Neural-network Processing Unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
本申请实施例提供的三维地图的创建方法的执行可以由处理器110来控制或调用其他部件来完成,比如调用内部存储器121中存储的本申请实施例的处理程序,或者通过外部存储器接口120调用第三方设备中存储的本申请实施例的处理程序,来控制无线通信模块160向其它设备进行数据通信,提高电子设备100的智能化、便捷化程度,提升用户的体验。处理器110可以包括不同的器件,比如集成CPU和GPU时,CPU和GPU可以配合执行本申请实施例提供的三维地图的创建方法,比如三维地图的创建方法中部分算法由CPU执行,另一部分算法由GPU执行,以得到较快的处理效率。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode的,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,电子设备100可以包括1个或N个显示屏194,N为大于1的正整数。显示屏194可用于显示由用户输入的信息或提供给用户的信息以及各种图形用户界面(graphical user interface,GUI)。例如,显示屏194可以显示照片、视频、网页、或者文件等。
在本申请实施例中,显示屏194可以是一个一体的柔性显示屏,也可以采用两个刚性屏以及位于两个刚性屏之间的一个柔性屏组成的拼接显示屏。
摄像头193(前置摄像头或者后置摄像头,或者一个摄像头既可作为前置摄像头,也可作为后置摄像头)用于捕获静态图像或视频。通常,摄像头193可以包括感光元件比如镜头组和图像传感器,其中,镜头组包括多个透镜(凸透镜或凹透镜),用于采集待拍摄物体反射的光信号,并将采集的光信号传递给图像传感器。图像传感器根据所述光信号生成待拍摄物体的原始图像。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行电子设备100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,应用程序(比如三维地图的创建功能等)的代码等。存储数据区可存储电子设备100使用过程中所创建的数据等。
内部存储器121还可以存储本申请实施例提供的三维地图的创建算法对应的一个或多个计算机程序。该一个或多个计算机程序被存储在上述内部存储器121中并被配置为被一个或多个处理器110执行,该一个或多个计算机程序包括指令,上述指令可以用于执行以下实施例中的各个步骤。
此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
当然,本申请实施例提供的三维地图的创建算法的代码还可以存储在外部存储器中。这种情况下,处理器110可以通过外部存储器接口120运行存储在外部存储器中的三维地图的创建算法的代码。
传感器模块180可以包括陀螺仪传感器、加速度传感器、接近光传感器、指纹传感器、触摸传感器等。
触摸传感器,也称“触控面板”。触摸传感器可以设置于显示屏194,由触摸传感器与显示屏194组成触摸显示屏,也称“触控屏”。触摸传感器用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器也可以设置于电子设备100的表面,与显示屏194所处的位置不同。
示例性的,电子设备100的显示屏194显示主界面,主界面中包括多个应用(比如相机应用、微信应用等)的图标。用户通过触摸传感器点击主界面中相机应用的图标,触发处理器110启动相机应用,打开摄像头193。显示屏194显示相机应用的界面,例如取景界面。
电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在电子设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。在本申请实施例中,移动通信模块150还可以用于与其它设备进行信息交互。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频装置(不限于扬声器170A,受话器170B等)输出声音信号,或通过显示屏194显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。本申请实施例中,无线通信模块160,用于与其它电子设备建立连接,进行数据交互。或者无线通信模块160可以用于接入接入点设备,向其它电子设备发送控制指令,或者接收来自其它电子设备发送的数据。
另外,电子设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。电子设备100可以接收按键190输入,产生与电子设备100的用户设置以及功能控制有关的键信号输入。电子设备100可以利用马达191产生振动提示(比如来电振动提示)。电子设备100中的指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。电子设备100中的SIM卡接口195用于连接SIM卡。SIM卡可以通过插入SIM卡接口195,或从SIM卡接口195拔出,实现和电子设备100的接触和分离。
应理解,在实际应用中,电子设备100可以包括比图1所示的更多或更少的部件,本申请实施例不作限定。图示电子设备100仅是一个范例,并且电子设备100可以具有比图中所示出的更多的或者更少的部件,可以组合两个或更多的部件,或者可以具有不同的部件配置。图中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
电子设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本申请实施例以分层架构的Android系统为例,示例性说明电子设备的软件结构。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。如图2所示,该软件架构可以分为四层,从上至下分别为应用程序层,应用程序框架层(framework,FWK),安卓运行时和系统库,以及Linux内核层。
应用程序层是操作系统的最上一层,包括操作系统的原生应用程序,例如相机、图库、日历、蓝牙、音乐、视频、信息等等。本申请实施例涉及的应用程序简称应用(application,APP),为能够实现某项或多项特定功能的软件程序。通常,电子设备中可以安装多个应用。比如,相机应用、邮箱应用、智能家居控制应用等。下文中提到的应用,可以是电子设备出厂时已安装的系统应用,也可以是用户在使用电子设备的过程中从网络下载或从其他电子设备获取的第三方应用。
当然,对于开发者来说,开发者可以编写应用程序并安装到该层。一种可能的实现方式中,应用程序可以使用Java语言开发,通过调用应用程序框架层所提供的应用程序编程接口(Application Programming Interface,API)来完成,开发者可以通过应用程序框架来与操作系统的底层(例如内核层等)进行交互,开发自己的应用程序。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层可以包括一些预先定义的函数。应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括文件(例如文档、视频、图像、音频),文本等信息。
视图系统包括可视控件,例如显示文字、图片、文档等内容的控件等。视图系统可用于构建应用程序。显示窗口中的界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
电话管理器用于提供电子设备的通信功能。通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。
安卓运行时包括核心库和虚拟机。安卓运行时负责安卓系统的调度和管理。
安卓系统的核心库包含两部分:一部分是Java语言需要调用的功能函数,另一部分是安卓系统的核心库。应用程序层和应用程序框架层运行在虚拟机中。以Java举例,虚拟机将应用程序层和应用程序框架层的Java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:表面管理器,媒体库,三维图形处理库(例如:OpenGL ES),二维图形引擎(例如:SGL)等。表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了二维和三维图层的融合。媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.564,MP3,AAC,AMR,JPG,PNG等。三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。二维图形引擎是二维绘图的绘图引擎。
内核(Kernel)层提供操作系统的核心系统服务,如安全性、内存管理、进程管理、网络协议栈和驱动模型等都基于内核层实现。内核层同时也作为硬件和软件栈之间的抽象层。该层有许多与电子设备相关的驱动程序,主要的驱动有:显示驱动;作为输入设备的键盘驱动;基于内存技术设备的Flash驱动;照相机驱动;音频驱动;蓝牙驱动;WiFi驱动等。
需要理解的是,如上所述的功能服务只是一种示例,在实际应用中,电子设备也可以按照其他因素来划分为更多或更少的功能服务,或者可以按照其他方式来划分各个服务的功能,或者也可以不划分功能服务,而是按照整体来工作。
需要说明的是,本申请实施例中所述的电子设备可以通过以上硬件架构和软件架构实现。
下面对本申请实施例提供的方案进行详细说明。
图3a为本申请实施例提供的方案的一种可能的应用系统的架构示意图。如图3a中所示,本申请提供的方案适用的应用系统中包含电子设备和分布式建图系统。
本申请实施例中,电子设备可以为具备显示屏、摄像头和传感器的设备。电子设备用于拍摄所在环境的图像或视频后,从中选择多帧图像上报至分布式建图系统,同时将电子设备自身采集的、多帧图像中每帧图像对应的定位参数上报至分布式建图系统,进而由分布式建图系统进行该环境对应的三维地图的创建。
在本申请一些实施例中,电子设备在采集所在环境的图像或视频并从中选择多帧图像后,还可以在获取多帧图像对应的深度图后,基于深度图进行体素提取、网格转换等处理,得到环境中三维物体对应的网格,并将该网格上传至分布式建图系统,由分布式建图系统基于该网格生成白模,以使电子设备在后续过程中基于白模进行虚拟数字世界与真实世界的融合。
分布式建图系统中至少包含N个计算节点(计算节点1~计算节点N),N为大于1的整数。可选的,所述N个计算节点中包含至少一个CPU计算节点和至少一个GPU计算节点。
其中,N个计算节点可以部署在同一电子设备中,也可以部署在不同的电子设备中。N个计算节点通过通信网络连接,不同计算节点之间可以进行无线通信。
示例性的,分布式建图系统可以部署在云端,可以通过一个或多个云端服务器实现。
N个计算节点用于基于分布式处理方式,根据电子设备上报的针对同一环境(场景)拍摄的多帧图像以及每帧图像对应的定位参数,创建该环境对应的三维地图。其中,不同计算节点可以执行三维地图创建过程中的不同处理任务,N个计算节点共同完成整个三维地图的创建过程。例如,不同计算节点可分别对不同的图像进行相同类型的处理,从而将多帧图像的处理任务分散到多个计算节点中同步进行,进而加快图像处理的速度。
在本申请一些实施例中,计算节点中可以包括白模处理服务,白模处理服务用于对电子设备上传的网格进行简化,并根据简化后的网格生成白模。
示例性的,N个计算节点可以包括图3b中所示的CPU算法组件和GPU算法组件。其中,分布式建图系统中的CPU算法组件可以有多个,GPU算法组件也可以有多个。GPU算法组件可以用于对多帧图像进行图像处理(如特征提取、匹配、检索等),CPU算法组件可以用于根据GPU算法组件的图像处理结果,生成三维地图。当然,计算节点也可以通过其它类型的算法处理组件实现,本申请实施例中不做具体限制。
在本申请一些实施例中,分布式建图系统中还可以包括任务队列节点。任务队列节点用于按队列缓存三维地图创建过程中的处理任务,每个计算节点可以从任务队列节点读取待执行的任务后进行相应处理,从而实现多处理任务的分布式按序执行。
示例性的,任务队列节点可以利用图3b中所示的消息中间件实现。该消息中间件可以用于异步缓存来自电子设备的三维地图创建指令、三维地图创建过程中的处理任务的指令等,并可以共享或分配给N个计算节点,以使N个计算节点分担执行任务,均衡系统负载。
在本申请一些实施例中,分布式建图系统中还可以包括至少一个存储节点。至少一个存储节点用于对三维地图创建过程相关的数据进行临时存储或永久性存储。例如,至少一个存储节点可以存储多帧图像、多个计算节点进行相应处理的中间数据和结果数据等。
示例性的,当分布式建图系统部署在云端时,如图3b中所示,分布式建图系统中的存储节点可以包括云端数据库、对象存储服务、弹性文件服务、缓存型消息中间件等。其中,云端数据库可以用于存储电子设备侧的用户信息、创建三维地图过程中任务处理情况的指示信息、对三维地图的修改信息等占用较小存储空间的序列化内容。对象存储服务可以用于存储电子设备中涉及的三维模型、高清图片、视频、动画等占用较大存储空间的非序列化内容。弹性文件服务可以用于存储利用三维地图创建算法所生成的三维地图的地图数据、以及占用存储空间较大的算法的中间变量等数据。缓存型消息中间件可以用于异步缓存算法处理过程中的可序列化且占用存储空间较小的中间变量等数据,并可以共享给N个计算节点。
在本申请一些实施例中,分布式建图系统中还可以包括至少一个调度节点。至少一个调度节点用于对N个计算节点、任务队列节点、至少一个存储节点中的部分或全部节点的调度进行统筹管理。
示例性的,如图3b中所示,分布式建图系统中的调度节点可以包括云端调度中心和算法调度中心。其中,云端调度中心可以对算法调度中心、存储节点、任务队列节点等节点进行管理和调度,并可以与电子设备进行信息和数据交互,可以作为高效的消息处理及分发节点,例如,云端调度中心能够向电子设备提供多帧图片的上传地址,进行电子设备侧的请求调度,云端数据库的请求及返回等。算法调度中心用于对N个计算节点进行管理和调度,还可以对其它的一些算法服务进行管理和调度。
在本申请一些实施例中,分布式建图系统中还可以包括定位节点。定位节点用于在构建三维地图后,根据该三维地图对电子设备进行定位。
示例性的,如图3b中所示,定位节点可以包括全局视觉定位系统(global visualpositioning system,GVPS)服务和向量检索系统(vector retrieval system,VRS)服务。其中,GVPS服务可以用于进行空间定位,确定电子设备当前所处位置在创建的三维地图中对应位置的6自由度坐标。VRS服务用于进行向量搜索。可选的,GVPS服务和VRS服务可以作为计算节点的子服务。
关于上述系统中各节点、服务或组件的具体功能,下文中会结合具体实施例进行说明,这里暂不详述。
需要说明的是,图3a或图3b所示的系统仅是对本申请实施例提供的方案适用的系统的一种示例性说明,并不对本申请实施例提供的方案适用的系统架构造成限制。本申请实施例提供的方案适用的系统与图3a或图3b所示的结构相比,也可以增加、删除或调整部分节点,本申请实施例中不进行具体限定。
下面结合具体实施例,对本申请实施例提供的方案进行说明。
本申请实施例提供的方案的执行过程至少包括建图初始化、数据采集、建图三个阶段。基于这三个阶段的方法创建三维地图后,还可以进一步包括定位、添加数字资源等阶段。下面分别对各个阶段的方法进行详细说明。
一、建图初始化
本申请实施例中,三维地图的创建由电子设备侧的用户触发。用户通过对电子设备进行操作,触发电子设备启动三维地图创建,电子设备响应于用户触发三维地图创建的操作,向分布式建图系统的调度节点发送建图初始化指令,分布式建图系统的调度节点接收到建图初始化指令后,可以为当前建图任务所要创建的三维地图分配地图标识(identity document,ID)并指示给电子设备。其中,分布式建图系统通过分配地图ID并指示给电子设备,可以对不同的三维地图进行统一管理,并可以与电子设备同步三维地图的信息,避免电子设备与分布式建图系统的信息不一致导致后续的地图处理或使用过程中出现问题。
示例性的,以电子设备为手机为例,进行建图初始化时,电子设备可以在显示屏显示如图4中所示的初始化控制界面,该界面中显示有用于触发建图流程的控件,还可以显示用于指示触发建图的方式的提示信息,例如“点击按钮开始录制”,则用户根据该提示信息,可以通过点击电子设备显示屏中显示的控件来触发建图流程。
示例性的,基于图3b所示的系统,用户触发建图流程后,电子设备可以将上述的建图初始化指令发送到分布式建图系统中的云端调度中心,云端调度中心向云端数据库请求得到地图ID后指示给电子设备。
二、数据采集
上述电子设备触发建图流程后,可以采集所在环境的多帧图像以及每帧图像对应的定位信息并上传至分布式建图系统,分布式建图系统可以通过对多帧图像进行图像处理确定多帧图像的特征信息,以进一步创建所述环境对应的三维地图。该过程主要包括以下步骤1~4:
步骤1:电子设备扫描拍摄所在的环境的视频。
具体的,电子设备可以将摄像头当前扫描到的环境图像实时显示在显示屏上,同时显示用于提示用户继续扫描的提示信息。则用户可以按照提示信息,通过移动电子设备继续扫描环境,在此过程中电子设备继续采集环境图像,直至用户指示电子设备停止扫描,则电子设备可以通过扫描得到反映环境中一定大小空间内真实场景的视频数据。
例如,上述用户点击图4中所示的触发建图流程的控件后,电子设备可以显示图5所示的界面。该界面中包括当前电子设备的摄像头扫描到的环境图像、用于提示用户继续扫描的提示信息以及用于触发停止扫描的控件。则用户可以通过移动电子设备进行更大范围空间的扫描拍摄,当用户确定停止扫描时,可以点击图5中所示的触发停止扫描的控件,则电子设备可以停止扫描,并根据已扫描的内容生成视频文件。
步骤2:电子设备从视频中提取满足关键帧要求的多帧图像,并将多帧图像上传至分布式建图系统。
在本申请一些实施例中,电子设备在扫描环境过程中,可以通过运行同步地图创建与定位(simultaneous localization and mapping,SLAM)算法,获取电子设备当前的位姿信息。其中,位姿信息用于表示电子设备在电子设备的坐标系(即电子设备运行SLAM算法时创建的坐标系)下的相机位姿,相机位姿包括位置和朝向。电子设备扫描得到不同图像时的拍摄角度不同,对应的相机坐标系不同,因此每帧图像对应的位姿信息不同。每帧图像对应的位姿信息为电子设备拍摄得到该帧图像时利用SLAM算法测得的位姿信息。
电子设备在获取视频后,可以采用如下任一种方式从视频中选择满足关键帧要求的图像:
1)根据视频中各帧图像对应的位姿之间的变化约束关系选择满足关键帧要求的图像。
在该方式中,针对视频中的每帧图像,电子设备获取采集到该帧图像时的位姿信息,将该位姿信息与采集到前一帧满足关键帧要求的图像时的位姿信息进行对比。若确定两个位姿信息所指示的相机坐标系之间的偏移量大于设定的偏移量阈值,则确定该帧图像为满足关键帧要求的图像,否则,确定该帧图像不满足关键帧要求,继续进行下一帧图像的判断,直至视频中所有图像均已确定是否满足关键帧要求,从而选择出满足关键帧要求的图像。
2)根据视频中各帧图像的局部特征选择满足关键帧要求的图像。
在该方式中,电子设备可以提取各帧图像的局部特征,并根据提取各帧图像的局部特征确定各帧图像中的特征点,然后利用光流跟踪法对局部特征点进行跟踪,根据对特征点的跟踪情况选择满足关键帧要求的图像。其中,利用光流跟踪法可以确定当前帧图像中的特征点是否存在于下一帧图像中,因此基于光流跟踪法可以判断两帧图像中包含的相同特征点的数量。针对视频中的每帧图像,电子设备提取该帧图像中的特征点后,确定该帧图像与前一帧满足关键帧要求的图像包含的相同特征点的数量,若该数量小于设定的数量阈值或者该数量与该帧图像中所有特征的数量之比小于设定的比例阈值,则确定该帧图像为满足关键帧要求的图像,否则,确定该帧图像不满足关键帧要求,继续进行下一帧图像的判断,直至视频中所有图像均已确定是否满足关键帧要求,从而选择出满足关键帧要求的图像。
可选的,上述两种方式中,电子设备可以将视频中的第一帧图像作为第一个满足关键帧要求的图像,从而基于该图像,在其余帧图像中继续选择满足关键帧要求的图像。
在本申请一些实施例中,电子设备在上传满足关键帧要求的图像时,可以采用逐帧上传的方式,即电子设备每选择到一帧满足关键帧要求的图像,就将该图像上传至分布式建图平台,同时继续进行下一帧满足关键帧要求的图像的选择过程。当然,电子设备也可以选择得到所有满足关键帧要求的图像后,再将这些图像一并上传至分布式建图平台。
电子设备从视频中选择满足关键帧要求的多帧图像后,将多帧图像上传到分布式建图系统,分布式建图系统可以对多帧图像进行存储和管理,并可以对多帧图像进行图像处理。
示例性的,基于图3b所示的系统,电子设备在选择满足关键帧要求的图像后,向云端调度中心发送图像传输请求,以请求上传图像。云端调度中心接收到图像传输请求后,向电子设备返回上传图像的URL,然后电子设备根据URL将图像上传到对象存储服务进行存储。
步骤3:电子设备采集每帧图像对应的定位信息并上传至分布式建图系统。
每帧图像对应的定位信息包括电子设备采集得到该帧图像时的位姿信息、全球定位系统(global positioning system,GPS)信息和惯性测量单元(inertial measurementunit,IMU)信息。其中,位姿信息为电子设备拍摄得到该帧图像时利用SLAM算法测得的,具体可参照上述实施例中的介绍,此处不再详述。GPS信息用于指示电子设备拍摄得到该帧图像时通过进行GPS定位确定的电子设备在真实环境中的位置。IMU信息用于指示电子设备拍摄得到该帧图像时基于IMU传感器测量到的电子设备的姿态特征,该姿态特征例如可以为姿态角等。电子设备还可以将摄像头的相机内参发送至分布式建图系统。
示例性的,电子设备可以将采集到的定位信息以元(meta)数据的形式上传至分布式建图系统。基于图3b中所示的分布式建图系统,电子设备可以将元数据发送至云端调度中心,云端调度中心接收到元数据后,将元数据发送至缓存型消息中间件进行缓存,以供CPU算法组件或GPU算法组件使用。同时,云端调度中心可以将元数据存储至弹性文件服务。
步骤4:分布式建图系统分别针对每帧图像进行图像处理过程。
上述电子设备将满足关键帧要求的多帧图像上传至分布式建图系统后,分布式建图系统中的多个计算节点分别针对每帧图像进行图像处理过程。具体的,每个计算节点可以从多帧图像中选择一帧未经处理的图像,并对该帧图像进行图像处理过程,在处理完毕后,继续选择下一帧未经处理的图像进行图像处理过程,直至确定所有图像均已被处理完毕。计算节点从多帧图像中选择一帧图像时可以采用随机选择的方式,也可以按照多帧图像的顺序(例如图像被上传至分布式建图系统的顺序)进行选择。
其中,上述图像处理过程包括以下步骤A1~A2:
A1:特征提取:计算节点提取图像的全局特征。
该步骤中,计算节点可以对图像进行局部特征提取和全局特征提取。其中,在进行局部特征提取时,计算节点可以对图像中各个区域的多尺度的灰度特征提取特征向量,得到图像的局部特征,并提取得到图像中的特征点。其中,特征向量可以用于表示图像中局部区域的纹理特征。在进行全局特征提取时,计算节点可以利用已训练的网络模型对图像中视觉稳定的区域(如建筑,道路)进行特征描述得到图像的全局特征。其中,全局特征可以用于表征图像的整体结构特征。
A2:序列化处理:计算节点根据图像的全局特征,从已处理图像中选择与该图像匹配的图像。
该步骤包括特征检索、特征匹配以及特征校验。其中,特征检索指计算节点根据该图像的全局特征,对从已处理图像(即已进行过上述的图像处理过程的图像)的全局特征进行检索,得到与该图像的全局特征距离最接近的设定数量个全局特征,并将检索得到的全局特征对应的图像作为候选帧图像。可选的,电子设备还可以同时采集时间早于该图像的采集时间且与该图像的采集时间最接近的设定数量帧图像作为候选帧图像。
特征匹配指计算节点将候选帧图像中的局部特征与该图像的局部特征进行匹配,从而选取满足设定匹配条件的至少一组匹配对,其中,每个匹配对包含满足设定匹配条件的多个特征点。其中,在进行匹配时,计算节点可以利用最近邻(k-nearest neighbor,KNN)匹配算法从候选帧图像局部特征点中选择与该图像中局部特征点匹配的特征点,并与该图像中局部特征点组成匹配对。计算节点也可以通过训练深度学习模型后利用深度学习模型进行匹配的方式选择匹配对。示例性的,设定匹配条件可以为以下任一种:特征点的局部特征描述子之间的向量距离小于或等于设定的阈值;特征点的特征描述子之间互为向量距离最近的特征描述子;特征点的特征描述子之间的最近向量距离与次近向量距离之间的比值大于或等于设定的阈值。其中,特征描述子用于描述局部特征。
特征校验指电子设备从特征匹配处理的结果中滤除错误匹配的信息。可选的,电子设备可以采用随机抽样一致性校验等算法进行特征校验处理。
基于以上图像处理过程,每个计算节点可以确定自身处理的图像与已处理的其它图像之间的匹配对关系(匹配或不匹配),因此,在所有图像的图像处理过程结束后,可以得到所有图像之间的匹配对关系。其中,同一组匹配对的多个特征点对应真实环境中的同一三维点。
示例性的,基于图3b中所示的分布式建图系统,电子设备根据URL将图像上传到对象存储服务后,云端调度中心可以向队列型消息中间件发送传图消息以指示每帧图像对应的传图任务,队列型消息中间件对传图任务的信息进行缓存。各GPU算法组件分别从队列型消息中间件中读取传图任务,并从对象存储服务读取传图任务对应的图像后,对读取的图像进行上述的图像处理过程,并将处理结果(即图像的匹配信息)保存至弹性文件服务中,同时把处理完成的标识符以及处理过程的中间结果(例如图像的全局特征等)发送到缓存型消息中间件进行缓存。则后续GPU算法节点进行图像处理过程中可以从缓存型消息中间件读取已处理图像的全局特征,以便进行序列化处理等。
需要说明的是,上述部分步骤的执行顺序并无严格的时序要求,可以根据实际情况进行调整。例如,对于同一计算节点来说,上述步骤3、4的执行依赖于上述步骤2中选取的图像,但是,上述步骤3、4之间可以无序,即该计算节点在执行上述步骤3、4时,可以先执行其中任一步骤,再执行另一步骤,也可以同时执行两个步骤。对于不同计算节点来说,每个计算节点执行上述步骤1~4的过程独立于其它计算节点,任意两个计算节点之间互不干扰。例如在电子设备上传2帧图像后,计算节点1可以按照上述步骤1~4执行对第1帧图像的处理过程,在此过程中,计算节点2也可以按照上述步骤1~4执行对第2帧图像的处理过程。再例如,电子设备在上传一帧图像后,计算节点即可对该帧图像执行上述步骤1~4的处理过程,同时,电子设备侧继续执行选择下一帧图像的过程。
在本申请一些实施例中,上述电子设备在扫描拍摄所在环境的过程中,还可以在显示屏上同时显示覆盖环境空间轮廓的网格,以提示和引导用户完成扫描过程。具体的,电子设备可以采用飞行时间(time of flight,TOF)方法采集满足关键帧要求的图像的深度图,或者,根据选择的满足关键帧要求的图像,采用多视立体匹配(multi-view stereo,MVS)得到对应的深度图。电子设备得到每帧图像的深度图后,可以采用基于截断的带符号距离函数(truncated signed distance function,TSDF)等算法,根据每帧图像提取体素并确定三维体素空间中各个体素的深度值。得到体素后,电子设备可以根据各个体素的深度值,利用移动立方体(marching cubes)算法将体素转换为网格并进行渲染,然后显示在显示屏所示的环境界面中的对应区域。
例如,电子设备当前扫描到的内容为图5中所示的内容时,电子设备可以对图5所示的界面对应的图像的深度图进行体素提取和网格转换得到网格。电子设备将该网格覆盖到图5所示的显示界面中的对应位置后,可以显示图6a所示的界面,该界面中,网格覆盖区域为已经扫描过的区域,未被网格覆盖的区域为待扫描区域或者无法生成对应网格的区域。基于此方式,电子设备可以在用户操作电子设备扫描环境空间过程时,将已扫描和未扫描过的区域实时呈现给用户,来引导用户根据网格提示继续操作电子设备针对未扫描的环境区域进行扫描,使得网格尽可能多的覆盖待扫描的真实环境空间中的三维物体,从而简便快速的完成扫描过程,降低采集环境图像的操作难度,提高用户的使用体验。其中,电子设备显示屏中同时显示有触发扫描结束的控件,因此当用户确定网格覆盖其感兴趣的区域后,或者当用户确定其感兴趣的各区域中均覆盖一定大小的网格时,可以通过对该控件进行操作来停止扫描。例如,如图6b中所示,当电子设备显示的网格覆盖一定范围的区域后,用户可以通过点击触发扫描结束的空间来结束扫描,电子设备响应于用户进行的操作可以显示如图6c所示的界面,该界面中包括提示用户开始生成地图的控件,用户可以通过对该控件进行操作来触发三维地图的创建任务,从而进一步根据用户操作电子设备扫描得到的内容生成环境空间对应的三维地图。
上述电子设备生成的网格的形状可以是任意形状,例如图6b中所示的三角形、矩形等规则形状,也可以是其它不规则的形状,本申请实施例中不做具体限定。
在本申请一些实施例中,在扫描结束后,电子设备可以将上述过程中得到的网格上传至分布式建图系统,由分布式建图系统中的计算节点对网格进行简化和对应的白模的生成,以便于在后续处理过程中使用该信息。其中,计算节点进行网格简化后,可以通过平面提取、相交计算、多面体拓扑构建及表面优化等算法生成对应的白模。
示例性的,基于图3b中所示的分布式建图系统,电子设备上传网格时,可以发送网格上传请求至云端调度中心,云端调度中心接收网格上传请求后,向电子设备返回网格上传地址的信息。电子设备可以根据网格上传地址将扫描结束时的网格上传到对象存储服务中进行存储。电子设备上传网格完毕后可以向云端服务中心发送网格上传完毕通知消息,云端服务接收到该通知消息后可以发送网格简化任务至队列型消息中间件。CPU算法组件中的白模处理服务可以监听队列型消息中间件中缓存的网格简化任务并领取任务后执行对应的网格简化任务。白模处理服务执行网格简化任务得到的结果可以发送至弹性文件存储服务进行存储,同时发送对应的网格简化完成通知消息至队列型消息中间件。云端服务中心监听到该网格简化完成通知消息后可以从弹性文件服务中获取简化后的网格,并将简化后的网格发送至对象存储服务进行存储,同时将网格简化结果(即简化后的网格)存储至云端数据库。
基于以上方式,电子设备可以通过可视化网格引导用户采集真实世界场景的图像,降低了用户侧进行图像采集的难度,进而提升了用户使用体验。
三、建图
上述电子设备结束扫描后,可以触发分布式建图系统启动建图任务,根据电子设备上传的满足关键帧要求的图像和每帧图像对应的定位信息进行三维地图的创建。具体的,在分布式建图系统的计算节点对电子设备上传的所有满足关键帧要求的图像进行上述步骤4中所述的图像处理过程后,可以按如下步骤B1~B4进行三维地图的创建:
B1:计算节点根据满足关键帧要求的多帧图像生成场景匹配关系图(scencegraph),其中,场景匹配关系图用于表征多帧图像之间局部特征点的匹配对关系。
计算节点可以根据所有满足关键帧要求的多帧图像之间的匹配关系确定多帧图像的共视关系,再通过对共视关系进行优化后得到场景匹配关系图。
其中,场景匹配关系图可以视为一种由“顶点”和“边”组成的抽象网络,网络中每个顶点可以代表一帧图像,每个边代表图像间的一对特征点匹配对。不同“顶点”可以通过“边”实现连接,表示通过“边”连接的两个顶点具有关联关系,即两个“顶点”代表的两帧图像的匹配关系。
B2:计算节点根据场景匹配关系图确定多帧图像中各特征点在三维空间中对应的三维点。
计算节点生成场景匹配关系图后,可以根据场景匹配关系图、来自电子设备的位姿信息(相机位姿)和来自电子设备的相机内参确定多帧图像中各特征点在三维空间中对应的三维点。其中,该三维空间对应的坐标系为上述的电子设备的坐标系。
针对场景匹配关系图中同一特征点的不同视角,计算节点可以通过诸如直接线性变换(direct linear transformation,DLT)等算法结合电子设备的相机位姿、相机内参求解该特征点在三维空间中对应的位置(即三角化),并将该位置处的点确定为该特征点在三维空间中对应的三维点。计算节点确定场景匹配关系图中所有特征点在三维空间中对应的三维点后,可以得到这些三维点组成的三维地图,该三维地图为三维点云地图。
B3:计算节点对三维点在三维空间中的坐标进行优化。
计算节点可以对上述求解得到的三维点进行光束平差法(bundle adjustment,BA)优化,即通过根据相机模型将三维空间中的三维点反投影回图像的位置误差,优化相机位姿、三维点位置以及电子设备摄像头的相机内参矩阵,从而得到精确的相机位姿、相机内参以及三维点的坐标,进而得到优化后的三维点云地图。
B4:计算节点根据优化后的三维点生成三维地图。
计算节点可以结合电子设备上传的每一帧图像对应的GPS信息、IMU信息进行平滑及去噪处理,得到图像对应的真实世界的相机位姿,即电子设备拍摄该图像时在环境中的位置及朝向(即电子设备摄像头相对环境的朝向),再根据图像对应的位置及朝向,将三维空间中三维点的坐标与真实世界的相机位姿进行对齐,从而将三维空间的坐标系调整至与真实环境空间的坐标系一致,进而得到与真实环境等比例的三维点云地图,该三维点云地图为真实环境场景对应的点云地图。
其中,计算节点将三维空间中三维点的坐标与真实世界的相机位姿进行对齐的过程中,计算节点首先分别确定每帧图像对应的、电子设备在电子设备的坐标系中的位姿和在真实世界的位姿之间的转换矩阵,然后对多帧图像对应的转换矩阵求平均后得到目标转换矩阵。再利用目标转换矩阵对三维空间中点云的坐标进行转换。
示例性的,图7为一种三维地图的示意图,如图7中所示的三维地图中的三维点分别对应电子设备扫描的真实环境中的三维点,每个三维点在三维空间中的位置用于表征该三维点对应的真实环境中的三维点在真实环境中的位置。
示例性的,上述图6c中,用户通过对电子设备显示的触发建图的控件进行操作来触发三维地图的创建任务后,电子设备请求分布式建图系统根据电子设备上传的内容创建三维地图,并可以显示用于提示地图创建进度的提示信息。例如,电子设备可以显示图8a中的(a)示意图所示的界面,该界面中可以包括待创建的三维地图的地图ID、缩略图、用于指示正在建图的提示信息以及时间等信息。例如,该提示信息可以为“建图中”,同时,三维地图对应的缩略图页面可以是未被点亮的状态,以提示用户此时正在建图过程中,且三维地图为不可编辑状态。分布式建图系统接收到电子设备的请求后,可以根据上述步骤完成三维地图的创建,并将创建完成的三维地图的信息发送给电子设备。电子设备确定三维地图创建完成后,可以将图8a中的(a)示意图中所示的缩略图页面点亮,以及去除用于指示正在建图的提示信息,即显示图8a中的(b)示意图所示的界面,以提示用户已完成建图,且当前地图为可编辑状态。再例如,电子设备也可以先显示图8b中的(a)示意图所示的界面,该界面中可以显示环境的图像,且其中与部分三维物体对应的区域处于未被点亮状态。电子设备在确定地图创建完成后,再显示图8b中的(b)示意图所示的界面,该界面中显示的环境中三维物体的区域变为点亮状态。又例如,电子设备也可以以百分比的方式或其它方式显示地图创建的进度等。
示例性的,基于图3b中所示的分布式建图系统,电子设备触发建图时,可以发送请求建图的指令及本次建图的图像扫描张数(即满足关键帧要求的图像的数量)等信息到云端调度中心,则云端调度中心发送建图任务到队列型消息中间件,同时本次建图的基本信息及用户属性信息到云端数据库进行保存。各CPU算法组件可以监听队列型消息中间件中的建图任务并进行处理,最终生成三维地图文件并存储到弹性文件服务。在建图过程中,各CPU算法组件可以将建图进度、建图成功或失败的信息、地图对齐矩阵(SLAM坐标系与真实世界坐标系之间的转换矩阵)等信息发送至队列型消息中间件,将建图结果(即创建的三维地图)保存到弹性文件服务中。云端调度中心可以监听队列型消息中间件中的建图进度的信息,从而获得当前建图任务的处理进度、状态、地图对齐矩阵等信息并将这些信息存储到云端数据库。
上述实施例中,在三维地图创建过程中,电子设备侧提供创建三维地图所需的真实世界场景相关的初始数据,分布式建图系统可以根据电子设备提供的初始数据完成三维地图的创建过程。因此,电子设备侧地图创建的难度和成本都较低,便于普及和推广。而分布式建图系统中多计算节点可以同时进行地图的创建任务,能够多节点支持大规模计算,因此具有较高的建图效率。此外,建图过程中充分使用了SLAM位姿、GPS、IMU等信息,进一步提高了创建的三维地图的精度。
图9为本申请实施例提供的一种三维地图的创建方法的流程示意图,如图9中所示,该方法的流程可以包括:
S901:电子设备在移动过程中扫描得到真实世界场景的视频,并从中选择满足关键帧要求的图像;以及,运行SLAM算法并提供每帧图像对应的定位信息。
其中,定位信息包括位姿信息、GPS信息、IMU信息。电子设备的移动过程由用户控制实现。
S902:电子设备将满足关键帧要求的图像分别上传至分布式建图系统中不同的计算节点。
S903:分布式建图系统中每个计算节点对来自电子设备的图像提取全局特征。
S904:分布式建图系统中每个计算节点根据提取全局特征进行特征检索、匹配及校验,确定所处理的图像与其它图像之间的匹配关系。
S905:在分布式建图系统中的计算节点对电子设备上传的所有图像均确定匹配关系后,分布式建图系统中的计算节点根据确定的匹配关系生成场景匹配关系图。
S906:分布式建图系统中的计算节点根据场景匹配关系图生成电子设备上传的图像中的特征点在三维空间中对应的三维点。
其中,特征点可以通过提取图像的局部特征得到。
S907:分布式建图系统中的计算节点通过BA算法对三维点在三维空间的坐标进行优化。
S908:分布式建图系统中的计算节点对电子设备上传的每帧图像对应的定位信息进行平滑去噪。
S909:分布式建图系统中的计算节点基于处理后的定位信息对电子设备的相机位姿和三维点进行坐标对齐,基于对齐后的三维点得到三维地图。
S910:分布式建图系统的计算节点将创建完成的三维地图的信息指示给电子设备。
可选的,电子设备执行上述步骤S901后,还可以执行以下步骤S911~S915来生成网格并上传至分布式建图系统进行处理:
S911:电子设备获取满足关键帧要求的图像对应的深度图。
S912:电子设备结合满足关键帧要求的图像中的特征点,对深度图像进行TSDF融合,生成体素。
S913:电子设备对融合后的体素进行网格提取并渲染,得到用于覆盖真实世界场景中三维物体的网格。
S914:电子设备将网格上传至分布式建图平台的计算节点。
S915:分布式建图平台的计算节点对网格进行简化,根据简化后的网格生成白模并保存。
上述步骤的具体执行可参照上述实施例中的相关介绍,本实例中不再赘述。
需要说明的是,上述实例提供的具体实施流程,仅是对本申请实施例适用方法流程的举例说明,其中各步骤的执行顺序可根据实际需求进行相应调整,还可以增加其它步骤,或减少部分步骤。
四、定位
本申请实施例中,电子设备获取分布式建图系统创建的三维地图后,可以使用该三维地图进行定位。
例如,对于图8a中的(b)示意图所示的三维地图,当用户和电子设备再次处于该三维地图对应的环境中时,电子设备可以响应于用户选择该三维地图的操作,采集当前环境的至少一帧图像并上传至分布式建图系统,分布式建图系统根据至少一帧图像及先前创建的该环境对应的三维地图,采用GVPS方法确定电子设备在三维地图中对应的位置,从而得到电子设备在该环境中的位置。分布式建图平台确定电子设备的位置后,将该位置指示给电子设备,则电子设备可以显示图10a所示的界面。该界面中的内容为电子设备当前扫描到的环境图像。此时,电子设备在环境中的位置已确定,因此用户可以在电子设备当前扫描到的环境图像中添加数字资源。
示例性的,基于图3b中所示的分布式建图系统,用户触发定位后,电子设备向云端调度中心发送定位请求和当前扫描到的至少一帧图像,云端调度中心将接收到的定位请求和至少一帧图像发送至GVPS定位服务。GVPS定位服务读取弹性文件服务中存储的三维地图的地图数据,根据该地图数据和至少一帧图像确定电子设备当前位姿在三维地图中对应的位置(该位置用于表示电子设备在环境中的位置),并将该位置的信息发送至云端调度中心。云端调度中心从云端数据库查询当前地图相关的兴趣点(point of interest)POI信息后,将该POI信息及来自GVPS服务的位置信息发送给电子设备。电子设备可以根据接收到的POI信息从对象存储服务下载三维数字资源模型并进行渲染后添加到电子设备显示的数字世界场景中。
五、添加数字资源
上述定位完成后,电子设备显示图10a所示的界面中包含三维数字资源模型的素材,用户可以从中选择素材后添加到图10a所示的数字世界场景中。例如,在用户选择添加某一素材后电子设备可以显示图10b中所示的添加三维数字资源模型后的界面,该界面中既包含真实环境场景的地图,又包含用户添加的虚拟资源模型,可以实现真实世界场景与虚拟数字场景的融合显示。其中,在添加素材过程中,当用户选中某一素材并移动至某一区域时,电子设备可以在该区域显示对应的白模,以引导用户选择合适的区域放置素材。当用户确定将素材放置在某一区域内时,电子设备确定放置区域在三维地图中对应的位置,并将该位置作为用户添加的素材在真实环境场景中对应的位置。
示例性的,基于图3b中所示的分布式建图系统,定位完成后,电子设备可以向云端调度中心请求三维数字资源模型对应的数字资源列表。云端调度中心通过查询云端数据库获取当前用户所对应的数字资源列表,并发送给电子设备。在用户选择素材后,电子设备通过URL到对象存储服务下载三维数字资源模型,并添加进数字世界场景。三维数字资源添加完成后,用户可以通过点击电子设备显示的保存的控件,触发电子设备上传当前三维数字资源模型的大小及位姿等信息给云端调度中心,云端调度中心发送该信息到云端数据库进行保存。
上述用户添加三维数字资源模型后,分布式建图平台可以对用户添加的三维数字资源模型的信息进行保存,当用户再次打开创建的三维地图并重新进行定位后,若定位至先前放置三维数字资源模型的区域中时,则电子设备在显示该区域对应的地图时,同时显示放置在其中的三维数字资源模型,使得用户仍可以看到先前在该区域内放置的三维资源模型。
基于以上方式,电子设备可以为用户提供使用、编辑创建的三维地图的功能,同时允许用户在创建的三维地图中添加虚拟数字资源,实现了真实环境场景与虚拟数字场景的融合应用。
基于以上实施例及相同构思,本申请实施例还提供一种三维地图的创建方法,该方法应用于包含多个计算节点的分布式系统,如图11中所示,该方法包括:
S1101:多个计算节点中的每个计算节点分别从来自电子设备的多帧图像中选择待处理的一帧图像作为目标图像,并对所述目标图像进行目标处理过程,至所述多帧图像均已进行所述目标处理过程;其中,所述多帧图像为所述电子设备针对同一环境拍摄的图像;所述目标处理过程包括以下步骤:提取所述目标图像的第一特征点;获取已进行所述目标处理过程的至少一帧图像的特征点;在所述至少一帧图像的特征点中选择至少一个第二特征点与所述第一特征点组成特征匹配对;其中,所述第一特征点和所述至少一个第二特征点对应所述环境中的同一点。
S1102:目标计算节点获取对所述多帧图像进行目标处理过程后得到的多个特征匹配对,并根据所述多个特征匹配对创建三维点云地图;其中,所述目标计算节点为所述多个计算节点中的任一计算节点。
具体的,该方法中各计算节点所执行的方法的具体实现可参阅前述实施例中的相关介绍,在此不再过多赘述。
基于以上实施例及相同构思,本申请实施例还提供一种电子设备,该电子设备用于实现本申请实施例提供的多个计算节点中的一个或多个计算节点所执行的方法,或者,该电子设备用于实现本申请实施例提供的电子设备所执行的方法。
如图12中所示,电子设备1200可以包括:存储器1201,一个或多个处理器1202,以及一个或多个计算机程序(图中未示出)。上述各器件可以通过一个或多个通信总线1203耦合。可选的,当电子设备1200用于实现本申请实施例提供的电子设备所执行的方法时,电子设备1200还可以包括显示屏1204。
其中,存储器1201中存储有一个或多个计算机程序(代码),一个或多个计算机程序包括计算机指令;一个或多个处理器1202调用存储器1201中存储的计算机指令,使得电子设备1200执行本申请实施例提供的三维地图的创建方法。显示屏1204用于显示图像、视频、应用界面等相关用户界面。
具体实现中,存储器1201可包括高速随机存取的存储器,并且也可包括非易失性存储器,例如一个或多个磁盘存储设备、闪存设备或其他非易失性固态存储设备。存储器1201可以存储操作系统(下述简称系统),例如ANDROID,IOS,WINDOWS,或者LINUX等嵌入式操作系统。存储器1201可用于存储本申请实施例的实现程序。存储器1201还可以存储网络通信程序,该网络通信程序可用于与一个或多个附加设备,一个或多个用户设备,一个或多个网络设备进行通信。一个或多个处理器1202可以是一个通用中央处理器(CentralProcessing Unit,CPU),微处理器,特定应用集成电路(Application-SpecificIntegrated Circuit,ASIC),或一个或多个用于控制本申请方案程序执行的集成电路。
需要说明的是,图12仅仅是本申请实施例提供的电子设备1200的一种实现方式,实际应用中,电子设备1200还可以包括更多或更少的部件,这里不作限制。
基于以上实施例及相同构思,本申请实施例还提供一种电子设备,所述电子设备包括用于执行上述实施例提供的方法中由多个计算节点中的至少一个计算节点所执行的方法的模块/单元。
基于以上实施例及相同构思,本申请实施例还提供一种分布式系统,该分布式系统包括多个电子设备,其中,每个电子设备可以通过上述的电子设备实现。
基于以上实施例及相同构思,本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,当计算机程序在计算机上运行时,使得计算机执行上述实施例提供的方法中由多个计算节点中的至少一个计算节点所执行的方法,或者执行上述实施例提供的方法中由电子设备所执行的方法。
基于以上实施例及相同构思,本申请实施例还提供一种计算机程序产品,该计算机程序产品包括计算机程序或指令,当计算机程序或指令在计算机上运行时,使得计算机执行上述实施例提供的方法中由多个计算节点中的至少一个计算节点所执行的方法,或者执行上述实施例提供的方法中由电子设备所执行的方法。
本申请实施例提供的方法中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本发明实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、网络设备、用户设备或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,简称DSL)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机可以存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,数字视频光盘(digital video disc,简称DVD)、或者半导体介质(例如,SSD)等。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (12)
1.一种三维地图的创建方法,应用于包含多个计算节点的分布式系统,其特征在于,所述方法包括:
每个计算节点分别从来自电子设备的多帧图像中选择待处理的一帧图像作为目标图像,并对所述目标图像进行目标处理过程,至所述多帧图像均已进行所述目标处理过程;其中,所述多帧图像为所述电子设备针对同一环境拍摄的图像;所述目标处理过程包括以下步骤:提取所述目标图像的第一特征点;获取已进行所述目标处理过程的至少一帧图像的特征点;在所述至少一帧图像的特征点中选择至少一个第二特征点与所述第一特征点组成特征匹配对;其中,所述第一特征点和所述至少一个第二特征点对应所述环境中的同一点;
目标计算节点获取对所述多帧图像进行目标处理过程后得到的多个特征匹配对,并根据所述多个特征匹配对创建三维点云地图;其中,所述目标计算节点为所述多个计算节点中的任一计算节点。
2.如权利要求1所述的方法,其特征在于,所述目标计算节点根据所述多个特征匹配对创建三维点云地图,包括:
所述目标计算节点获取来自所述电子设备的多个第一位姿信息;其中,所述多个第一位姿信息与所述多帧图像一一对应,每个第一位姿信息用于指示所述电子设备拍摄相应第一位姿信息对应的图像时在第一三维空间中的位置和朝向,所述第一三维空间为所述三维点云地图对应的三维空间;
所述目标计算节点根据所述多个第一位姿信息,确定所述多个特征匹配对在所述第一三维空间中对应的多个三维点,得到所述三维点云地图。
3.如权利要求2所述的方法,其特征在于,所述方法还包括:
所述目标计算节点获取来自所述电子设备的多个第二位姿信息;其中,所述多个第二位姿信息与所述多帧图像一一对应,每个第二位姿信息用于指示所述电子设备拍摄相应第二位姿信息对应的图像时在第二三维空间中的位置和朝向,所述第二三维空间为所述环境对应的三维空间;
所述目标计算节点根据所述多个第二位姿信息和所述多个第一位姿信息,对所述第一三维空间中三维点的坐标进行调整,得到与所述环境等比例的三维点云地图。
4.如权利要求3所述的方法,其特征在于,所述目标计算节点根据所述多个第二位姿信息和所述多个第一位姿信息,对所述第一三维空间中三维点的坐标进行调整,包括:
所述目标计算节点根据所述多个第二位姿信息和所述多个第一位姿信息,确定多个转换矩阵;其中,所述多个转换矩阵与所述多帧图像一一对应,每个转换矩阵用于表征同一图像对应的第二位姿信息与第一位姿信息之间的转换关系;
所述目标计算节点对所述多个转换矩阵求平均得到目标转换矩阵;
所述目标计算节点利用所述目标转换矩阵对所述第一三维空间中三维点的坐标进行转换处理。
5.如权利要求3或4所述的方法,其特征在于,
每个第二位姿信息所指示的位置是所述电子设备通过进行全球定位系统GPS定位确定的;
每个第二位姿信息所指示的朝向是所述电子设备通过进行惯性测量单元IMU测量确定的。
6.如权利要求1~5任一所述的方法,其特征在于,在获取已进行所述目标处理过程的至少一帧图像的特征点之前,所述方法还包括:
确定所述至少一帧图像,包括:
提取所述目标图像的全局特征;
获取已进行所述目标处理过程的每帧图像的全局特征,并在获取的全局特征中选择与所述目标图像的全局特征相似度最高的至少一个全局特征;
确定所述至少一个全局特征对应的图像为所述至少一帧图像。
7.如权利要求1~6任一所述的方法,其特征在于,所述分布式系统中还包括队列节点,在每个计算节点分别从多帧图像中选择待处理的一帧图像作为目标图像之前,所述方法还包括:
所述队列节点接收来自所述电子设备的所述多帧图像,并按照从所述电子设备接收图像的顺序,将所述多帧图像添加至目标图像队列中;
每个计算节点分别从多帧图像中选择待处理的一帧图像作为目标图像,包括:
每个计算节点从所述队列节点的目标图像队列中读取一帧图像,并将读取的图像作为所述目标图像。
8.如权利要求1~7任一所述的方法,其特征在于,所述目标处理过程还包括:
在提取所述目标图像的第一特征点后,将所述第一特征点保存至存储节点;
获取已进行所述目标处理过程的至少一帧图像的特征点,包括:
从所述存储节点获取所述至少一帧图像的特征点。
9.如权利要求1~8任一所述的方法,其特征在于,所述方法还包括:
所述目标计算节点将所述三维点云地图发送到所述电子设备。
10.一种电子设备,其特征在于,所述电子设备包括存储器和一个或多个处理器;
其中,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令;当所述计算机指令被所述一个或多个处理器执行时,使得所述电子设备执行如权利要求1~9任一所述的方法中由所述多个计算节点中的至少一个计算节点所执行的方法。
11.一种分布式系统,其特征在于,所述系统包括多个如权利要求10所述的电子设备。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,当计算机程序在计算机上运行时,使得所述计算机执行如权利要求1~9任一所述的方法中由所述多个计算节点中的至少一个计算节点所执行的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111665748.XA CN116433830A (zh) | 2021-12-31 | 2021-12-31 | 一种三维地图的创建方法及电子设备 |
PCT/CN2022/138459 WO2023124948A1 (zh) | 2021-12-31 | 2022-12-12 | 一种三维地图的创建方法及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111665748.XA CN116433830A (zh) | 2021-12-31 | 2021-12-31 | 一种三维地图的创建方法及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116433830A true CN116433830A (zh) | 2023-07-14 |
Family
ID=86997688
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111665748.XA Pending CN116433830A (zh) | 2021-12-31 | 2021-12-31 | 一种三维地图的创建方法及电子设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN116433830A (zh) |
WO (1) | WO2023124948A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116932802B (zh) * | 2023-07-10 | 2024-05-14 | 玩出梦想(上海)科技有限公司 | 一种图像检索方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019065546A1 (ja) * | 2017-09-29 | 2019-04-04 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 三次元データ作成方法、クライアント装置及びサーバ |
CN111046125A (zh) * | 2019-12-16 | 2020-04-21 | 视辰信息科技(上海)有限公司 | 一种视觉定位方法、系统及计算机可读存储介质 |
CN111368759B (zh) * | 2020-03-09 | 2022-08-30 | 河海大学常州校区 | 基于单目视觉的移动机器人语义地图构建系统 |
CN111652934B (zh) * | 2020-05-12 | 2023-04-18 | Oppo广东移动通信有限公司 | 定位方法及地图构建方法、装置、设备、存储介质 |
CN111833447A (zh) * | 2020-07-13 | 2020-10-27 | Oppo广东移动通信有限公司 | 三维地图构建方法、三维地图构建装置及终端设备 |
-
2021
- 2021-12-31 CN CN202111665748.XA patent/CN116433830A/zh active Pending
-
2022
- 2022-12-12 WO PCT/CN2022/138459 patent/WO2023124948A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2023124948A1 (zh) | 2023-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11869158B2 (en) | Cross reality system with localization service and shared location-based content | |
US11900547B2 (en) | Cross reality system for large scale environments | |
US11830149B2 (en) | Cross reality system with prioritization of geolocation information for localization | |
US10558896B2 (en) | Device and method for processing metadata | |
CN115151947B (zh) | 具有基于wifi/gps的地图合并的交叉现实系统 | |
CN115398314A (zh) | 使用多分辨率帧描述符进行地图处理的交叉现实系统 | |
US12020383B2 (en) | Facial synthesis in augmented reality content for third party applications | |
WO2023131090A1 (zh) | 一种增强现实系统、多设备构建三维地图的方法及设备 | |
CN113538227B (zh) | 一种基于语义分割的图像处理方法及相关设备 | |
WO2023124948A1 (zh) | 一种三维地图的创建方法及电子设备 | |
WO2023051383A1 (zh) | 一种设备定位方法、设备及系统 | |
CN115176285B (zh) | 利用缓冲的交叉现实系统用于定位精度 | |
CN117095319A (zh) | 一种目标定位方法、系统和电子设备 | |
WO2023131089A1 (zh) | 一种增强现实系统、增强现实场景定位方法及设备 | |
US20240071008A1 (en) | Generating immersive augmented reality experiences from existing images and videos | |
CN117152338A (zh) | 一种建模方法与电子设备 | |
CN117710786A (zh) | 图像处理方法、图像处理模型的优化方法及相关设备 | |
CN117727073A (zh) | 模型训练方法及相关设备 | |
CN116108118A (zh) | 一种生成热力地图的方法及终端设备 | |
CN117688195A (zh) | 一种图片推荐方法及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |