CN116452778A - 一种增强现实系统、多设备构建三维地图的方法及设备 - Google Patents
一种增强现实系统、多设备构建三维地图的方法及设备 Download PDFInfo
- Publication number
- CN116452778A CN116452778A CN202210010556.3A CN202210010556A CN116452778A CN 116452778 A CN116452778 A CN 116452778A CN 202210010556 A CN202210010556 A CN 202210010556A CN 116452778 A CN116452778 A CN 116452778A
- Authority
- CN
- China
- Prior art keywords
- image
- frame
- environment
- electronic device
- initial
- 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
- 230000003190 augmentative effect Effects 0.000 title claims abstract description 50
- 238000013507 mapping Methods 0.000 claims abstract description 302
- 238000006243 chemical reaction Methods 0.000 claims abstract description 108
- 230000007613 environmental effect Effects 0.000 claims abstract description 80
- 238000012545 processing Methods 0.000 claims description 103
- 230000008569 process Effects 0.000 claims description 74
- 238000004422 calculation algorithm Methods 0.000 claims description 54
- 238000003860 storage Methods 0.000 claims description 39
- 230000006870 function Effects 0.000 claims description 23
- 238000004590 computer program Methods 0.000 claims description 17
- 238000010276 construction Methods 0.000 claims description 12
- 238000007499 fusion processing Methods 0.000 claims description 7
- 230000009466 transformation Effects 0.000 claims description 5
- 238000005304 joining Methods 0.000 claims description 4
- 238000013461 design Methods 0.000 description 41
- 238000010586 diagram Methods 0.000 description 40
- 239000010410 layer Substances 0.000 description 21
- 238000004891 communication Methods 0.000 description 18
- 238000007726 management method Methods 0.000 description 14
- 239000000284 extract Substances 0.000 description 12
- 238000010295 mobile communication Methods 0.000 description 11
- 238000000605 extraction Methods 0.000 description 10
- 239000000463 material Substances 0.000 description 9
- 239000011159 matrix material Substances 0.000 description 9
- 230000002452 interceptive effect Effects 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 7
- 239000013598 vector Substances 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 230000001960 triggered effect Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 4
- 230000004927 fusion Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012795 verification Methods 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 4
- 229920001621 AMOLED Polymers 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000003416 augmentation Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013136 deep learning model Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000004807 localization Effects 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 239000002096 quantum dot Substances 0.000 description 2
- 230000001953 sensory effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 239000012792 core layer Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/006—Mixed reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请提供一种增强现实系统、多设备构建三维地图的方法及设备。在该方法中,分布式建图系统接收第一电子设备发送的多帧第一环境图像和每帧第一环境图像的位姿信息,接收第二电子设备发送的多帧第二环境图像和每帧第二环境图像的初始位姿信息;根据目标转换关系确定每帧第二环境图像在第一电子设备对应的三维坐标系中的目标位姿信息。根据每帧第一环境图像及其位姿信息、每帧第二环境图像及其目标位姿信息创建三维地图。通过该方案,分布式建图系统可以将不同电子设备上传的环境图像的位姿转换为同一三维坐标系下的位姿,进而根据多设备上传的环境图像构建三维地图,提升建图效率,同时增强多设备之间的交互性,提升用户体验。
Description
技术领域
本申请涉及增强现实技术领域,尤其涉及一种增强现实系统、多设备构建三维地图的方法及设备。
背景技术
增强现实(augmented reality,AR)是一种将真实世界信息和虚拟世界信息集成显示的技术。AR技术可以将原本在现实世界难以体验的实体信息进行模拟仿真得到虚拟信息,并将虚拟信息应用到真实世界,以使真实环境和虚拟物体实时叠加到同一个画面或空间同时被用户感知,以达到超越现实的感官体验。
用户可以在电子设备的显示屏中显示的AR场景中同时观察到真实世界和虚拟物品,如用户在电子设备的显示屏中观察到的真实世界的地面、桌子等物品,同时还可以观察到地面上放置的动漫人物等虚拟物品。
AR场景的三维地图可以用于表示真实世界的环境信息,进而电子设备可以基于三维地图构建AR场景。例如,当用户通过电子设备的摄像装置实时拍摄真实世界时,用户可以在电子设备的显示屏中显示的电子场景中添加虚拟物品,电子设备基于真实世界对应的三维地图将虚拟物体添加到AR场景中,用户可以在同一个画面中观察到真实世界和用户添加的虚拟物品。
发明内容
本申请提供一种增强现实系统、多设备构建三维地图的方法与设备。
第一方面,本申请提供一种增强现实系统,该增强现实系统包括第一电子设备、第二电子设备和分布式建图系统;
所述第一电子设备,用于向所述分布式建图系统发送多帧第一环境图像和每帧第一环境图像的位姿信息;所述第一环境图像为所述第一电子设备对所处环境拍摄得到的,每帧第一环境图像的位姿信息用于表示所述第一电子设备在拍摄第一环境图像时在所述第一电子设备对应的三维坐标系中的位置和朝向;
所述第二电子设备,用于向所述分布式建图系统发送多帧第二环境图像和每帧第二环境图像的初始位姿信息,所述第二环境图像为所述第二电子设备对所处环境拍摄得到的,每帧第二环境图像的初始位姿信息用于表示所述第二电子设备在拍摄第二环境图像时在所述第二电子设备对应的三维坐标系中的位置和朝向;
所述分布式建图系统,用于接收所述第一电子设备发送的所述多帧第一环境图像和每帧第一环境图像的位姿信息;接收所述第二电子设备发送的所述多帧第二环境图像和每帧第二环境图像的初始位姿信息;根据目标转换关系对所述多帧第二环境图像的初始位姿信息进行位姿转换,得到每帧第二环境图像的目标位姿信息,所述目标位姿信息用于表示所述第二电子设备在拍摄第二环境图像时在所述第一电子设备对应的三维坐标系中的位置和朝向;所述目标转换关系为所述第二电子设备对应的三维坐标系与所述第一电子设备对应的三维坐标系之间的转换关系;根据所述多帧第一环境图像、每帧第一环境图像的位姿信息、所述多帧第二环境图像以及每帧第二环境图像的目标位姿信息创建三维地图,所述三维地图用于构建增强现实场景。
基于上述增强现实系统,分布式建图系统在接收到多个电子设备上传的环境图像后,可以将不同电子设备上传的环境图像的位姿转换为同一三维坐标系下的位姿,分布式建图系统可以根据位姿转换后的环境图像生成三维地图,进而实现多设备构建三维地图,提升建图效率,同时增强多设备之间的交互性,提升用户体验。
在一个可能的设计中,所述第一电子设备还用于:在向所述分布式建图系统发送所述多帧第一环境图像和每帧第一环境图像的位姿信息之前,向所述分布式建图系统发送多设备建图请求,所述多设备建图请求中包括多帧第一初始图像以及每帧第一初始图像的定位信息;所述多帧第一初始图像为所述第一电子设备对所处环境拍摄得到的;
所述第二电子设备还用于:在向所述分布式建图系统发送所述多帧第二环境图像和每帧第二环境图像的初始位姿信息之前,向所述分布式建图系统发送加入建图请求,所述加入建图请求中包括多帧第二初始图像;所述多帧第二初始图像为所述第二电子设备对所处环境拍摄得到的;
所述分布式建图系统还用于:接收所述第一电子设备发送的所述多设备建图请求,根据所述多设备建图请求中的多帧第一初始图像以及每帧第一初始图像的定位信息生成初始三维地图;接收所述第二电子设备发送的加入建图请求,根据所述多帧第二初始图像和所述初始三维地图确定所述目标转换关系。
通过该设计,分布式建图系统可以接收第一电子设备发送的多设备建图请求,并根据多设备建图请求中的多帧第一初始图像生成初始三维地图,该初始三维地图可以用于对第二电子设备进行定位,还可以用于确定目标转换关系。分布式建图系统可以接收第二电子设备发送的加入建图请求,并根据加入建图请求中的多帧第二初始图像和初始三维地图确定目标转换关系,目标转换关系可以用于将第二电子设备采集到的图像的位姿信息转换到第一电子设备对应的三维坐标系下,以使分布式建图系统可以基于统一坐标系下的环境图像进行三维地图的创建。
在一个可能的设计中,所述分布式建图系统还用于:在接收到所述多帧第二初始图像之后,根据所述多帧第二初始图像和所述初始三维地图确定目标转换关系之前,对所述多帧第二初始图像进行图像处理,确定至少一帧第二初始图像与任一帧第一初始图像包含相同的图像内容。
通过该设计,第二电子设备需要对第一电子设备扫描过的区域进行再次扫描,以采集多帧第二初始图像,至少一帧第二初始图像中包括任一帧第一初始图像包含的图像内容时,分布式建图系统可以确认第二电子设备加入多设备建图任务,并且可以进一步基于第二初始图像和第一初始图像确定目标转换关系。
在一个可能的设计中,所述分布式建图系统具体用于:提取目标初始图像的全局特征和特征点,所述目标初始图像为任一帧第二初始图像;根据目标初始图像的全局特征确定与目标初始图像匹配的至少一帧第一初始图像,并确定与目标初始图像匹配的至少一帧第一初始图像中的特征点在三维地图中对应的三维点,将确定出的三维点作为目标初始图像的特征点对应的三维点;根据目标初始图像的特征点、目标初始图像的特征点对应的三维点以及第二电子设备的相机内参确定所述目标初始图像的目标位姿信息;根据所述目标初始图像的初始位姿信息和所述目标初始图像的目标位姿信息确定所述目标转换关系。
通过该设计,分布式建图系统在确定目标转换关系时,可以确定任一帧第二初始图像的特征点对应的三维地图中的三维点,进而根据第二初始图像的特征点、特征点对应的三维点以及第二电子设备的相机内参确定目标位姿信息,目标位姿信息为第二电子设备在拍摄第二初始图像时在初始三维地图对应的三维坐标系中的位姿信息,而初始三维地图的三维坐标系与第一电子设备对应的三维坐标系相同,初始位姿信息为第二电子设备对应的三维坐标系中的位姿信息,从而可以根据目标位姿信息和初始位姿信息确定出准确的第二电子设备对应的坐标系和第一电子设备对应的坐标系之间的目标转换关系。
在一个可能的设计中,所述分布式建图系统还用于:根据所述初始三维地图中的三维点生成点云资源;接收所述第一电子设备发送定位请求,所述定位请求中包括所述第一电子设备采集到的环境图像;根据所述定位请求中的环境图像和所述初始三维地图对所述第一电子设备进行定位,确定所述第一电子设备在所述初始三维地图的三维坐标系中的位姿;向所述第一电子设备发送所述第一电子设备在所述初始三维地图的三维坐标系中的位姿和所述点云资源;
所述第一电子设备还用于:向所述分布式建图系统发送定位请求;接收所述分布式建图系统发送的所述第一电子设备在所述初始三维地图的三维坐标系中的位姿和所述点云资源;根据所述第一电子设备在所述初始三维地图的三维坐标系中的位姿显示所述第一电子设备实时采集的环境图像和所述点云资源,以表示所述点云资源覆盖的区域已完成扫描。
通过该设计,分布式建图系统可以根据三维地图中的三维点生成点云资源并发送给第一电子设备,第一电子设备可以显示实时采集的环境图像和点云资源,以表示第一电子设备已完成扫描的区域,引导用户继续扫描其它区域,提升用户体验。
在一个可能的设计中,所述分布式建图系统具体用于:从所述多帧第一环境图像和所述多帧第二环境图像中选择待处理的一帧图像作为目标图像,并对所述目标图像进行目标处理过程,至所述多帧第一环境图像和所述多帧第二环境图像均已进行所述目标处理过程;所述目标处理过程包括以下步骤:提取所述目标图像的第一特征点;获取已进行所述目标处理过程的至少一帧图像的特征点;在所述至少一帧图像的特征点中选择至少一个第二特征点与所述第一特征点组成特征匹配对;其中,所述第一特征点和所述至少一个第二特征点对应所述环境中的同一点;所述已进行所述目标处理过程的至少一帧图像包括至少一帧第一环境图像和/或至少一帧第二环境图像;获取对所述多帧第一环境图像和所述多帧第二环境图像进行目标处理过程后得到的多个特征匹配对,并根据所述多个特征匹配对创建所述三维地图。
通过以上设计,分布式建图系统在创建三维地图时,可以提取每帧环境图像的特征点,并确定与其它已完成图像处理的图像的特征点之间组成的特征匹配对,特征匹配对为同一三维点对应的不同环境图像中的特征点,根据特征匹配对可以确定三维点,进而创建三维地图,使得三维地图与真实环境更加贴合。
在一个可能的设计中,所述分布式建图系统具体用于:根据所述多帧第一环境图像的位姿信息和所述多帧第二环境图像的目标位姿信息,确定所述多个特征匹配对在所述第一电子设备对应的三维坐标系中对应的多个三维点,得到所述三维地图。
通过以上设计,分布式建图系统可以根据特征匹配对、多帧第一环境图像的位姿信息和多帧第二环境图像的目标位姿信息,确定特征匹配对所对应的三维点。该方法是基于不同环境图像中的特征点组成的特征匹配对对应三维空间中的同一三维点,实现对三维点的位置进行定位,进而确定出三维点,保证三维地图是根据第一电子设备和第二电子设备实际采集到的环境图像生成的,可以准确表示真实环境中的特征。
在一个可能的设计中,所述第一电子设备还用于:向所述分布式建图系统发送每帧第一环境图像对应的定位信息;
所述第二电子设备还用于:向所述分布式建图系统发送每帧第二环境图像对应的定位信息;
所述分布式建图系统还用于:接收所述第一电子设备发送的每帧第一环境图像对应的定位信息;接收所述第二电子设备发送的每帧第二环境图像对应的定位信息;根据每帧第一环境图像对应的定位信息和每帧第二环境图像对应的定位信息对所述三维点的坐标进行调整,得到与真实环境等比例的三维地图。
通过该设计,分布式建图系统可以基于第一环境图像的定位信息和第二环境图像的定位信息调整三维地图中三维点的坐标,得到与真实环境等比例的三维地图,根据该三维地图向用户显示增强现实场景时,虚拟世界可以与真实环境融合显示,提升用户体验。
在一个可能的设计中,所述第一电子设备还用于:采集所述多帧第一环境图像对应的第一深度图,将所述第一深度图发送给所述分布式建图系统;
所述第二电子设备还用于:采集所述多帧第一环境图像对应的第二深度图,将所述第二深度图发送给所述分布式建图系统;
所述分布式建图系统还用于:接收所述第一电子设备发送的所述第一深度图;接收所述第二电子设备发送的所述第二深度图;根据所述目标转换关系对所述第二深度图进行坐标转换,对所述第一深度图和坐标转换后的第二深度图进行融合处理,得到完整深度图;根据所述完整深度图生成真实环境对应的白膜;其中,所述白膜用于表示所述真实环境中的各物体的表面。
在一个可能的设计中,所述分布式建图系统还用于:基于多视图立体匹配算法确定每帧第一环境图像的深度信息和每帧第二环境图像的深度信息,根据每帧第一环境图像的深度信息和每帧第二环境图像的深度信息生成真实环境对应的白膜;其中,所述白膜用于表示所述真实环境中的各物体的表面。
通过以上设计,本申请提供多种确定环境图像的深度信息的方式,一种方式中,电子设备可以确定环境图像对应的深度图并发送给分布式建图系统,分布式建图系统可以根据目标转换关系对深度图的坐标进行转换;另一种方式中,分布式建图系统可以基于多视图立体匹配算法确定每帧环境图像的深度信息。分布式建图系统可以根据每帧环境图像对应的深度图或深度信息确定真实环境对应的白膜,白膜可以表示真实环境中各物体的表面,从而当电子设备向用户显示增强现实场景时,用户选择添加三维数字资源模型时,电子设备可以根据白膜将三维数字资源模型放置在真实环境的物体表面,提高增强现实场景的真实性,提升用户体验。
在一个可能的设计中,所述分布式建图系统还用于:将所述三维地图发送给所述第一电子设备和所述第二电子设备;接收所述第一电子设备发送的定位请求,确定所述第一电子设备在所述三维地图的三维坐标系中的第一位姿,将所述第一位姿发送给所述第一电子设备和所述第二电子设备;接收所述第二电子设备发送的定位请求,确定所述第二电子设备在所述三维地图的三维坐标系中的第二位姿,将所述第二位姿发送给所述第一电子设备和所述第二电子设备;
所述第一电子设备还用于:接收所述分布式建图系统发送的所述三维地图;向所述分布式建图系统发送定位请求,接收所述分布式建图系统发送的所述第一位姿和所述第二位姿,根据所述第一位姿和所述三维地图显示增强现实场景,并根据所述第二位姿显示拍摄到的使用所述第二电子设备的用户的图像以及所述第二电子设备对应的三维数字资源模型。
通过该设计,多个用户操作多个电子设备显示目标场景时,可以进行交互游玩。如第一用户操作第一电子设备,第二用户操作第二电子设备,若第二用户持第二电子设备进入第一电子设备的可拍摄范围时,第一电子设备可以显示实时拍摄到的第二用户的图像,并显示第二电子设备对应的三维数字资源模型,以实现设备之间的交互游玩,提升增强现实场景用户之间的互动性,提升用户体验。
第二方面,本申请提供一种多设备构建三维地图的方法,应用于增强现实系统,所述增强现实系统包括第一电子设备、第二电子设备和服务器,该方法包括:
所述第一电子设备向所述分布式建图系统发送多帧第一环境图像和每帧第一环境图像的位姿信息;所述第一环境图像为所述第一电子设备对所处环境拍摄得到的,每帧第一环境图像的位姿信息用于表示所述第一电子设备在拍摄第一环境图像时在所述第一电子设备对应的三维坐标系中的位置和朝向;所述第二电子设备向所述分布式建图系统发送多帧第二环境图像和每帧第二环境图像的初始位姿信息,所述第二环境图像为所述第二电子设备对所处环境拍摄得到的,每帧第二环境图像的初始位姿信息用于表示所述第二电子设备在拍摄第二环境图像时在所述第二电子设备对应的三维坐标系中的位置和朝向;所述分布式建图系统根据目标转换关系对所述多帧第二环境图像的初始位姿信息进行位姿转换,得到每帧第二环境图像的目标位姿信息,所述目标位姿信息用于表示所述第二电子设备在拍摄第二环境图像时在所述第一电子设备对应的三维坐标系中的位置和朝向;所述目标转换关系为所述第二电子设备对应的三维坐标系与所述第一电子设备对应的三维坐标系之间的转换关系;所述分布式建图系统根据所述多帧第一环境图像、每帧第一环境图像的位姿信息、所述多帧第二环境图像以及每帧第二环境图像的目标位姿信息创建三维地图,所述三维地图用于构建增强现实场景。
在一个可能的设计中,所述方法还包括:所述第一电子设备在向所述分布式建图系统发送所述多帧第一环境图像和每帧第一环境图像的位姿信息之前,向所述分布式建图系统发送多设备建图请求,所述多设备建图请求中包括多帧第一初始图像以及每帧第一初始图像的定位信息;所述多帧第一初始图像为所述第一电子设备对所处环境拍摄得到的;所述第二电子设备在向所述分布式建图系统发送所述多帧第二环境图像和每帧第二环境图像的初始位姿信息之前,向所述分布式建图系统发送加入建图请求,所述加入建图请求中包括多帧第二初始图像;所述多帧第二初始图像为所述第二电子设备对所处环境拍摄得到的;所述分布式建图系统接收所述第一电子设备发送的所述多设备建图请求,根据所述多设备建图请求中的多帧第一初始图像以及每帧第一初始图像的定位信息生成初始三维地图;所述分布式建图系统接收所述第二电子设备发送的加入建图请求,根据所述多帧第二初始图像和所述初始三维地图确定所述目标转换关系。
在一个可能的设计中,在所述分布式建图系统在接收到所述多帧第二初始图像之后,根据所述多帧第二初始图像和所述初始三维地图确定目标转换关系之前,所述方法还包括:所述分布式建图系统对所述多帧第二初始图像进行图像处理,确定至少一帧第二初始图像与任一帧第一初始图像包含相同的图像内容。
在一个可能的设计中,所述分布式建图系统根据所述多帧第二初始图像和所述初始三维地图确定所述目标转换关系,包括:所述分布式建图系统提取目标初始图像的全局特征和特征点,所述目标初始图像为任一帧第二初始图像;所述分布式建图系统根据目标初始图像的全局特征确定与目标初始图像匹配的至少一帧第一初始图像,并确定与目标初始图像匹配的至少一帧第一初始图像中的特征点在三维地图中对应的三维点,将确定出的三维点作为目标初始图像的特征点对应的三维点;所述分布式建图系统根据目标初始图像的特征点、目标初始图像的特征点对应的三维点以及第二电子设备的相机内参确定所述目标初始图像的目标位姿信息;所述分布式建图系统根据所述目标初始图像的初始位姿信息和所述目标初始图像的目标位姿信息确定所述目标转换关系。
在一个可能的设计中,所述方法还包括:所述分布式建图系统根据所述初始三维地图中的三维点生成点云资源;所述分布式建图系统接收所述第一电子设备发送定位请求,所述定位请求中包括所述第一电子设备采集到的环境图像;根据所述定位请求中的环境图像和所述初始三维地图对所述第一电子设备进行定位,确定所述第一电子设备在所述初始三维地图的三维坐标系中的位姿;所述分布式建图系统向所述第一电子设备发送所述第一电子设备在所述初始三维地图的三维坐标系中的位姿和所述点云资源;所述第一电子设备根据所述第一电子设备在所述初始三维地图的三维坐标系中的位姿显示所述第一电子设备实时采集的环境图像和所述点云资源,以表示所述点云资源覆盖的区域已完成扫描。
在一个可能的设计中,所述分布式建图系统根据所述多帧第一环境图像、每帧第一环境图像的位姿信息、所述多帧第二环境图像以及每帧第二环境图像的目标位姿信息创建三维地图,包括:所述分布式建图系统从所述多帧第一环境图像和所述多帧第二环境图像中选择待处理的一帧图像作为目标图像,并对所述目标图像进行目标处理过程,至所述多帧第一环境图像和所述多帧第二环境图像均已进行所述目标处理过程;
所述目标处理过程包括以下步骤:提取所述目标图像的第一特征点;获取已进行所述目标处理过程的至少一帧图像的特征点;在所述至少一帧图像的特征点中选择至少一个第二特征点与所述第一特征点组成特征匹配对;其中,所述第一特征点和所述至少一个第二特征点对应所述环境中的同一点;所述已进行所述目标处理过程的至少一帧图像包括至少一帧第一环境图像和/或至少一帧第二环境图像;
所述分布式建图系统获取对所述多帧第一环境图像和所述多帧第二环境图像进行目标处理过程后得到的多个特征匹配对,并根据所述多个特征匹配对创建所述三维地图。
在一个可能的设计中,所述分布式建图系统根据所述多个特征匹配对创建所述三维地图,包括:所述分布式建图系统根据所述多帧第一环境图像的位姿信息和所述多帧第二环境图像的目标位姿信息,确定所述多个特征匹配对在所述第一电子设备对应的三维坐标系中对应的多个三维点,得到所述三维地图。
在一个可能的设计中,所述方法还包括:所述第一电子设备向所述分布式建图系统发送每帧第一环境图像对应的定位信息;所述第二电子设备向所述分布式建图系统发送每帧第二环境图像对应的定位信息;所述分布式建图系统根据每帧第一环境图像对应的定位信息和每帧第二环境图像对应的定位信息对所述三维点的坐标进行调整,得到与真实环境等比例的三维地图。
在一个可能的设计中,所述方法还包括:所述第一电子设备采集所述多帧第一环境图像对应的第一深度图,将所述第一深度图发送给所述分布式建图系统;所述第二电子设备采集所述多帧第一环境图像对应的第二深度图,将所述第二深度图发送给所述分布式建图系统;所述分布式建图系统根据所述目标转换关系对所述第二深度图进行坐标转换,对所述第一深度图和坐标转换后的第二深度图进行融合处理,得到完整深度图;所述分布式建图系统根据所述完整深度图生成真实环境对应的白膜;其中,所述白膜用于表示所述真实环境中的各物体的表面。
在一个可能的设计中,所述方法还包括:所述分布式建图系统基于多视图立体匹配算法确定每帧第一环境图像的深度信息和每帧第二环境图像的深度信息,根据每帧第一环境图像的深度信息和每帧第二环境图像的深度信息生成真实环境对应的白膜;其中,所述白膜用于表示所述真实环境中的各物体的表面。
在一个可能的设计中,所述方法还包括:所述分布式建图系统将所述三维地图发送给所述第一电子设备和所述第二电子设备;所述分布式建图系统接收所述第一电子设备发送的定位请求,确定所述第一电子设备在所述三维地图的三维坐标系中的第一位姿,将所述第一位姿发送给所述第一电子设备和所述第二电子设备;所述分布式建图系统接收所述第二电子设备发送的定位请求,确定所述第二电子设备在所述三维地图的三维坐标系中的第二位姿,将所述第二位姿发送给所述第一电子设备和所述第二电子设备;所述第一电子设备根据所述第一位姿和所述三维地图显示增强现实场景,并根据所述第二位姿显示拍摄到的使用所述第二电子设备的用户的图像以及所述第二电子设备对应的三维数字资源模型。
第三方面,本申请提供一种多设备构建三维地图的方法,应用于分布式建图系统,该方法包括:
接收第一电子设备发送的多帧第一环境图像和每帧第一环境图像的位姿信息;所述第一环境图像为所述第一电子设备对所处环境拍摄得到的,每帧第一环境图像的位姿信息用于表示所述第一电子设备在拍摄第一环境图像时在所述第一电子设备对应的三维坐标系中的位置和朝向;接收第二电子设备发送的多帧第二环境图像和每帧第二环境图像的初始位姿信息,所述第二环境图像为所述第二电子设备对所处环境拍摄得到的,每帧第二环境图像的初始位姿信息用于表示所述第二电子设备在拍摄第二环境图像时在所述第二电子设备对应的三维坐标系中的位置和朝向;根据目标转换关系对所述多帧第二环境图像的初始位姿信息进行位姿转换,得到每帧第二环境图像的目标位姿信息,所述目标位姿信息用于表示所述第二电子设备在拍摄第二环境图像时在所述第一电子设备对应的三维坐标系中的位置和朝向;所述目标转换关系为所述第二电子设备对应的三维坐标系与所述第一电子设备对应的三维坐标系之间的转换关系;根据所述多帧第一环境图像、每帧第一环境图像的位姿信息、所述多帧第二环境图像以及每帧第二环境图像的目标位姿信息创建三维地图,所述三维地图用于构建增强现实场景。
在一个可能的设计中,所述方法还包括:在接收所述第一电子设备发送的所述多帧第一环境图像和每帧第一环境图像的位姿信息之前,接收所述第一电子设备发送的多设备建图请求,所述多设备建图请求中包括多帧第一初始图像以及每帧第一初始图像的定位信息,所述多帧第一初始图像为所述第一电子设备对所处环境拍摄得到的;在接收所述第二电子设备发送的所述多帧第二环境图像和每帧第二环境图像的初始位姿信息之前,接收所述第二电子设备发送的加入建图请求,所述加入建图请求中包括多帧第二初始图像,所述多帧第二初始图像为所述第二电子设备对所处环境拍摄得到的;根据所述多设备建图请求中的多帧第一初始图像以及每帧第一初始图像的定位信息生成初始三维地图;根据所述多帧第二初始图像和所述初始三维地图确定所述目标转换关系。
在一个可能的设计中,在所述接收到所述多帧第二初始图像之后,根据所述多帧第二初始图像和所述初始三维地图确定目标转换关系之前,所述方法还包括:对所述多帧第二初始图像进行图像处理,确定至少一帧第二初始图像与任一帧第一初始图像包含相同的图像内容。
在一个可能的设计中,所述根据所述多帧第二初始图像和所述初始三维地图确定所述目标转换关系,包括:提取目标初始图像的全局特征和特征点,所述目标初始图像为任一帧第二初始图像;根据目标初始图像的全局特征确定与目标初始图像匹配的至少一帧第一初始图像,并确定与目标初始图像匹配的至少一帧第一初始图像中的特征点在三维地图中对应的三维点,将确定出的三维点作为目标初始图像的特征点对应的三维点;根据目标初始图像的特征点、目标初始图像的特征点对应的三维点以及第二电子设备的相机内参确定所述目标初始图像的目标位姿信息;根据所述目标初始图像的初始位姿信息和所述目标初始图像的目标位姿信息确定所述目标转换关系。
在一个可能的设计中,所述方法还包括:根据所述初始三维地图中的三维点生成点云资源;接收所述第一电子设备发送定位请求,所述定位请求中包括所述第一电子设备采集到的环境图像;根据所述定位请求中的环境图像和所述初始三维地图对所述第一电子设备进行定位,确定所述第一电子设备在所述初始三维地图的三维坐标系中的位姿;向所述第一电子设备发送所述第一电子设备在所述初始三维地图的三维坐标系中的位姿和所述点云资源,以使第一电子设备根据所述第一电子设备在所述初始三维地图的三维坐标系中的位姿显示所述第一电子设备实时采集的环境图像和所述点云资源,以表示所述点云资源覆盖的区域已完成扫描。
在一个可能的设计中,所述根据所述多帧第一环境图像、每帧第一环境图像的位姿信息、所述多帧第二环境图像以及每帧第二环境图像的目标位姿信息创建三维地图,包括:从所述多帧第一环境图像和所述多帧第二环境图像中选择待处理的一帧图像作为目标图像,并对所述目标图像进行目标处理过程,至所述多帧第一环境图像和所述多帧第二环境图像均已进行所述目标处理过程;
所述目标处理过程包括以下步骤:提取所述目标图像的第一特征点;获取已进行所述目标处理过程的至少一帧图像的特征点;在所述至少一帧图像的特征点中选择至少一个第二特征点与所述第一特征点组成特征匹配对;其中,所述第一特征点和所述至少一个第二特征点对应所述环境中的同一点;所述已进行所述目标处理过程的至少一帧图像包括至少一帧第一环境图像和/或至少一帧第二环境图像;
获取对所述多帧第一环境图像和所述多帧第二环境图像进行目标处理过程后得到的多个特征匹配对,并根据所述多个特征匹配对创建所述三维地图。
在一个可能的设计中,所述根据所述多个特征匹配对创建所述三维地图,包括:根据所述多帧第一环境图像的位姿信息和所述多帧第二环境图像的目标位姿信息,确定所述多个特征匹配对在所述第一电子设备对应的三维坐标系中对应的多个三维点,得到所述三维地图。
在一个可能的设计中,所述方法还包括:接收所述第一电子设备发送的每帧第一环境图像对应的定位信息;接收所述第二电子设备发送的每帧第二环境图像对应的定位信息;根据每帧第一环境图像对应的定位信息和每帧第二环境图像对应的定位信息对所述三维点的坐标进行调整,得到与真实环境等比例的三维地图。
在一个可能的设计中,所述方法还包括:接收所述第一电子设备发送的所述多帧第一环境图像对应的第一深度图;接收所述第二电子设备发送的所述多帧第一环境图像对应的第二深度图;根据所述目标转换关系对所述第二深度图进行坐标转换,对所述第一深度图和坐标转换后的第二深度图进行融合处理,得到完整深度图;根据所述完整深度图生成真实环境对应的白膜;其中,所述白膜用于表示所述真实环境中的各物体的表面。
在一个可能的设计中,所述方法还包括:基于多视图立体匹配算法确定每帧第一环境图像的深度信息和每帧第二环境图像的深度信息,根据每帧第一环境图像的深度信息和每帧第二环境图像的深度信息生成真实环境对应的白膜;其中,所述白膜用于表示所述真实环境中的各物体的表面。
在一个可能的设计中,所述方法还包括:将所述三维地图发送给所述第一电子设备和所述第二电子设备;接收所述第一电子设备发送的定位请求,确定所述第一电子设备在所述三维地图的三维坐标系中的第一位姿,将所述第一位姿发送给所述第一电子设备和所述第二电子设备;接收所述第二电子设备发送的定位请求,确定所述第二电子设备在所述三维地图的三维坐标系中的第二位姿,将所述第二位姿发送给所述第一电子设备和所述第二电子设备,以使第一电子设备根据所述第一位姿和所述三维地图显示增强现实场景,并根据所述第二位姿显示拍摄到的使用所述第二电子设备的用户的图像以及所述第二电子设备对应的三维数字资源模型。
第四方面,本申请提供一种电子设备,所述电子设备包括多个功能模块;所述多个功能模块相互作用,实现上述任一方面及其各实施方式中第一电子设备或第二电子设备所执行的方法。所述多个功能模块可以基于软件、硬件或软件和硬件的结合实现,且所述多个功能模块可以基于具体实现进行任意组合或分割。
第五方面,本申请提供一种电子设备,包括至少一个处理器和至少一个存储器,所述至少一个存储器中存储计算机程序指令,所述电子设备运行时,所述至少一个处理器执行上述任一方面及其各实施方式中第一电子设备或第二电子设备执行的方法。
第六方面,本申请实施例提供一种分布式建图系统,所述分布式建图系统包括多个计算节点,所述多个计算节点并行/串行处理数据,每个计算节点用于执行上述任一方面及其各实施方式中分布式执行系统所执行的方法。
第七方面,本申请还提供一种计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行上述任一方面及其各实施方式中第一电子设备、第二电子设备或分布式建图系统执行的方法。
第八方面,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当所述计算机程序被计算机执行时,使得所述计算机执行上述任一方面及其各实施方式中第一电子设备、第二电子设备或分布式建图系统执行的方法。
第九方面,本申请还提供一种芯片,所述芯片用于读取存储器中存储的计算机程序,执行上述任一方面及其各实施方式中第一电子设备、第二电子设备或分布式建图系统执行的方法。
第十方面,本申请还提供一种芯片系统,该芯片系统包括处理器,用于支持计算机装置实现上述任一方面及其各实施方式中第一电子设备、第二电子设备或分布式建图系统执行的方法。在一种可能的设计中,所述芯片系统还包括存储器,所述存储器用于保存该计算机装置必要的程序和数据。该芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。
附图说明
图1为本申请实施例提供的一种AR场景示意图;
图2为本申请实施例提供的一种增强现实系统的示意图;
图3本申请实施例提供的一种电子设备的结构示意图;
图4为本申请实施例提供的一种电子设备的软件结构框图;
图5为本申请实施例提供的一种分布式建图系统的结构示意图;
图6为本申请实施例提供的一种用户操作电子设备触发建图初始化指令的示意图;
图7为本申请实施例提供的一种第一电子设备显示的扫描界面示意图;
图8为本申请实施例提供的一种多人建图初始化的示意图;
图9为本申请实施例提供的一种多人建图界面的示意图;
图10为本申请实施例提供的一种多人建图中多个用户持电子设备扫描拍摄当前所处环境的示意图;
图11为本申请实施例提供的一种电子设备在扫描拍摄当前所处环境时的显示界面示意图;
图12为本申请实施例提供的一种网格示意图;
图13为本申请实施例提供的一种第一电子设备显示的扫描进度界面的示意图;
图14为本申请实施例提供的一种三维地图的示意图;
图15为本申请实施例提供的一种多设备构建三维地图方法的流程示意图;
图16a为本申请实施例提供的一种包含三维数字资源模型的素材的AR场景界面示意图;
图16b为本申请实施例提供的一种添加三维数字资源模型后的AR场景界面的示意图;
图17为本申请实施例提供的一种电子设备显示的多用户在AR场景中交互游玩的示意图;
图18为本申请实施例提供的一种电子设备显示的已创建的三维地图列表的示意图;
图19为本申请实施例提供的一种用户触发扩展三维地图的示意图;
图20为本申请实施例提供的一种多设备创建三维地图的方法流程图。
具体实施方式
为了使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施例作进一步地详细描述。其中,在本申请实施例的描述中,以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。
应理解,本申请实施例中“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,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可以是单个,也可以是多个。
增强现实(augmented reality,AR)是一种将真实世界信息和虚拟世界信息集成显示的技术。AR技术可以将原本在现实世界难以体验的实体信息进行模拟仿真得到虚拟信息,并将虚拟信息应用到真实世界,以使真实环境和虚拟物体实时叠加到同一个画面或空间同时被用户感知,以达到超越现实的感官体验。
AR场景的三维地图可以用于表示真实世界的环境信息,进而电子设备可以基于三维地图构建AR场景。例如,当用户通过电子设备的摄像装置实时拍摄真实世界时,用户可以在电子设备的显示屏中显示的电子场景中添加虚拟物品,电子设备基于真实世界对应的三维地图将虚拟物体添加到AR场景中,用户可以在同一个画面中观察到真实世界和用户添加的虚拟物品。例如,图1为本申请实施例提供的一种AR场景示意图。参考图1,图1中地面、道路为电子设备的摄像装置实际拍摄到的真实世界的画面,道路上的卡通人物则为用户在当前的AR场景中添加的虚拟物品,用户可以在电子设备的显示屏上同时观察到真实世界中的地面、道路和虚拟的卡通人物。
一种可选的实施方式中,可以由多个电子设备共同创建三维地图。具体的,每个电子设备都可以对真实世界的同一区域采集环境图像,并生成该区域对应的三维点云,如第一电子设备生成的三维点云为目标点云,第二电子设备生成的三维点云为参考点云。第一电子设备可以基于主方向贴合法预配准目标点云和参考点云,求取目标点云和参考点云中各点的曲率,并根据曲率相似分别得到特征匹配点对。利用特征匹配点对,实现目标点云和参考点云的精确配准,进而生成三维地图。通过该方式,可以将不同电子设备采集的环境图像得到的三维点云进行合并,实现多个电子设备共同创建三维地图,但该方法要求多个电子设备采集的环境图像的重叠率较高,进而导致生成三维地图的效率较低。
基于以上问题,本申请实施例提供一种三维地图创建方法,用于提供一种高效的多设备协同创建三维地图的方法。
图2为本申请实施例提供的一种增强现实系统的示意图。参考图2,该增强现实系统中包括第一电子设备、至少一个第二电子设备和分布式建图系统。其中,第一电子设备为主设备,第二电子设备为从设备。分布式建图系统可以部署在至少一个云端服务器中。作为示例而非限定,图2中以一个第一电子设备、一个第二电子设备以及部署在一个云端服务器中的分布式建图系列为例示出。
第一电子设备可以启动多设备构建地图任务,第二电子设备可以加入多设备构建地图任务。第一电子设备和第二电子设备可以同时对真实世界的环境图像进行采集,第一电子设备将采集到的多帧第一环境图像上传到分布式建图系统,第二电子设备将采集到的多帧第二环境图像上传至分布式建图系统。分布式建图系统可以确定多帧第二环境图像对应的目标转换关系,该目标转换关系为表示第二环境图像对应的三维坐标系和第一环境图像对应的三维坐标系之间的转换关系。分布式建图系统根据目标转换关系对第二环境图像的位姿信息进行位姿转换,得到第二环境图像的目标位姿信息。分布式系统可以根据第一环境图像和位姿转换后的第二环境图像生成三维地图,该三维地图可以用于构建AR场景。通过该方案,分布式建图系统在接收到多个电子设备上传的环境图像后,可以将不同电子设备上传的环境图像的位姿转换为同一三维坐标系下的位姿,分布式建图系统可以根据转换后的环境图像生成三维地图,进而实现多设备构建三维地图。
下面介绍电子设备、分布式建图系统和用于这样的电子设备和分布式建图系统的实施例。本申请实施例的电子设备可以具有摄像装置和显示装置,例如本申请实施例的电子设备可以为平板电脑、手机、车载设备、增强现实(augmented reality,AR)设备、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)、可穿戴设备等,本申请实施例对电子设备的具体类型不作任何限制。
图3为本申请实施例提供的一种电子设备100的结构示意图。如图3所示,电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universalserial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。
处理器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的等待时间,因而提高了系统的效率。
USB接口130是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。USB接口130可以用于连接充电器为电子设备100充电,也可以用于电子设备100与外围设备之间传输数据。充电管理模块140用于从充电器接收充电输入。电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏194,摄像头193,和无线通信模块160等供电。
电子设备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的至少部分模块被设置在同一个器件中。
无线通信模块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转为电磁波辐射出去。
在一些实施例中,电子设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备100可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(codedivision multiple access,CDMA),宽带码分多址(wideband code division multipleaccess,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。所述GNSS可以包括全球卫星定位系统(global positioning system,GPS),全球导航卫星系统(global navigation satellite system,GLONASS),北斗卫星导航系统(beidounavigation satellite system,BDS),准天顶卫星系统(quasi-zenith satellitesystem,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。
显示屏194用于显示应用的显示界面,例如显示电子设备100上安装的应用的显示页面等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystaldisplay,LCD),有机发光二极管(organic light-emitting diode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrix organic light emitting diode的,AMOLED),柔性发光二极管(flex light-emitting diode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot light emitting diodes,QLED)等。在一些实施例中,电子设备100可以包括1个或N个显示屏194,N为大于1的正整数。在本申请实施例中,显示屏194可以用于显示AR场景,显示屏194中显示的AR场景可以包括摄像头193实时拍摄得到的图像以及用户在AR场景中放置的虚拟物品。
摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,电子设备100可以包括1个或N个摄像头193,N为大于1的正整数。在本申请实施例中,摄像头193可以采集用于构建AR场景的三维地图的图像,摄像头193还可以用于拍摄全景图像,如用户持电子设备100水平旋转360度,摄像头193可以采集到一张电子设备100所处位置对应的全景图。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行电子设备100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,以及至少一个应用程序的软件代码等。存储数据区可存储电子设备100使用过程中所产生的数据(例如拍摄的图像、录制的视频等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将图片,视频等文件保存在外部存储卡中。
电子设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
其中,传感器模块180可以包括压力传感器180A,加速度传感器180B,触摸传感器180C等。
压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180A可以设置于显示屏194。
触摸传感器180C,也称“触控面板”。触摸传感器180C可以设置于显示屏194,由触摸传感器180C与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180C用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180C也可以设置于电子设备100的表面,与显示屏194所处的位置不同。
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。电子设备100可以接收按键输入,产生与电子设备100的用户设置以及功能控制有关的键信号输入。马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。例如,作用于不同应用(例如拍照,音频播放等)的触摸操作,可以对应不同的振动反馈效果。触摸振动反馈效果还可以支持自定义。指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。SIM卡接口195用于连接SIM卡。SIM卡可以通过插入SIM卡接口195,或从SIM卡接口195拔出,实现与电子设备100的接触和分离。
可以理解的是,图3所示的部件并不构成对电子设备100的具体限定,电子设备还可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。此外,图3中的部件之间的组合/连接关系也是可以调整修改的。
图4为本申请实施例提供的一种电子设备的软件结构框图。如图4所示,电子设备的软件结构可以是分层架构,例如可以将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将操作系统分为四层,从上至下分别为应用程序层,应用程序框架层(framework,FWK),运行时(runtime)和系统库,以及内核层。
应用程序层可以包括一系列应用程序包(application package)。如图4所示,应用程序层可以包括相机、设置、皮肤模块、用户界面(user interface,UI)、三方应用程序等。其中,三方应用程序可以包括图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息等。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层可以包括一些预先定义的函数。如图4所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
电话管理器用于提供电子设备的通信功能。例如通话状态的管理(包括接通,挂断等)。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
运行时包括核心库和虚拟机。运行时负责操作系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是操作系统的核心库。应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(media libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
2D图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
硬件层可以包括各类传感器,例如加速度传感器、陀螺仪传感器、触摸传感器等。
图5为本申请实施例提供的一种分布式建图系统的结构示意图。参考图5,本申请实施例中分布式建图系统可以包括多个计算节点(如图5所示的计算节点1~计算节点N,N为正整数)、至少一个存储节点、任务队列节点、至少一个调度节点以及定位节点。可选地,分布式建图系统可以部署在云端,如分布式建图系统的多个节点可以部署在一个云端服务器中,或者多个节点可以部署在多个云端服务器中。下面对图5所示的分布式建图系统中各个节点的功能进行介绍:
计算节点,用于基于分布式处理方式,根据多个电子设备上传的对真实世界的环境拍摄的多帧图像以及每帧图像对应的定位参数,创建该环境对应的三维地图。其中,不同计算节点可以执行三维地图创建过程中的不同处理任务,N个计算节点共同完成整个三维地图的创建过程。例如,不同计算节点可分别对不同的图像进行相同类型的处理,从而将多帧图像的处理任务分散到多个计算节点中同步进行,进而加快图像处理的速度。
参考图5,N个计算节点可以包括图5中所示的CPU算法组件和GPU算法组件。其中,分布式建图系统中的CPU算法组件可以有多个,GPU算法组件也可以有多个。GPU算法组件可以用于对多个电子设备上传的多帧图像进行图像处理(如特征提取、匹配、检索等),CPU算法组件可以用于将不同电子设备上传的环境图像的位姿转换至同一三维坐标系下,还可以用于根据GPU算法组件的图像处理结果,生成三维地图。GPU算法组件和CPU算法组件可以队列形消息中间件中的地图构建指令并进行算法自动处理。
本申请实施例中计算节点中还可以包括白模处理服务,白模处理服务用于对电子设备上传的网格进行简化,并根据简化后的网格生成白模。白膜处理服务还可以根据多个电子设备上传的深度图生成AR场景对应的完整白膜。
当然,计算节点也可以通过其它类型的算法处理组件实现,本申请实施例中不做具体限制。
任务队列节点,用于按队列缓存三维地图创建过程中的处理任务,每个计算节点可以从任务队列节点读取待执行的任务后进行相应处理,从而实现多处理任务的分布式按序执行。
示例性的,任务队列节点可以利用图5中所示的队列形消息中间件实现。该队列形消息中间件可以用于异步缓存来自多个电子设备的三维地图创建指令、三维地图创建过程中的处理任务的指令等,并可以共享或分配给N个计算节点,以使N个计算节点分担执行任务,均衡系统负载。
至少一个存储节点,用于对三维地图创建过程相关的数据进行临时存储或永久性存储。例如,至少一个存储节点可以存储多帧图像、多个计算节点进行相应处理的中间数据和结果数据等。
可选的,参考图5,存储节点可以包括云端数据库、对象存储服务、弹性文件服务、缓存形消息中间件等。其中,云端数据库可以用于存储电子设备侧的用户信息、创建三维地图过程中任务处理情况的指示信息、对三维地图的修改信息等占用较小存储空间的序列化内容。对象存储服务可以用于存储电子设备中涉及的三维模型、高清图片、视频、动画等占用较大存储空间的非序列化内容。弹性文件服务可以用于存储利用三维地图创建算法所生成的三维地图的地图数据、以及占用存储空间较大的算法的中间变量等数据。缓存形消息中间件可以用于异步缓存算法处理过程中的可序列化且占用存储空间较小的中间变量等数据,并可以共享给N个计算节点。
至少一个调度节点,用于对N个计算节点、任务队列节点、至少一个存储节点中的部分或全部节点的调度进行统筹管理。
示例性的,如图5中所示,分布式建图系统中的调度节点可以包括云端调度中心和算法调度中心。其中,云端调度中心可以对算法调度中心、存储节点、任务队列节点等节点进行管理和调度,并可以与电子设备进行信息和数据交互,可以作为高效的消息处理及分发节点,例如,云端调度中心能够向电子设备提供多帧图片的上传地址,进行电子设备侧的请求调度,云端数据库的请求及返回等。算法调度中心用于对N个计算节点进行管理和调度,还可以对其它的一些算法服务进行管理和调度。
定位节点,用于根据电子设备上传的图像对电子设备进行定位,以确定电子设备在三维地图的坐标系中的相对位置。
可选地,定位节点可以包括全局视觉定位系统(global visual positioningsystem,GVPS)服务和向量检索系统(vector retrieval system,VRS)服务。其中,GVPS服务可以用于进行空间定位,确定电子设备当前所处位置在创建的三维地图中对应位置的6自由度坐标。VRS服务用于进行向量搜索。可选的,GVPS服务和VRS服务可以作为计算节点的子服务。
关于上述系统中各节点、服务或组件的具体功能,下文中会结合具体实施例进行说明,这里暂不详述。
需要说明的是,图5所示的分布式建图系统仅是对本申请实施例提供的分布式建图系统的一种示例性说明,并不对本申请实施例提供的方案适用的分布式建图系统的架构造成限制。本申请实施例提供的方案适用的分布式建图系统与图5所示的结构相比,也可以增加、删除或调整部分节点,本申请实施例中不进行具体限定。
下面结合具体实施例,对本申请实施例提供的方案进行说明。
本申请实施例提供的方案的执行过程至少包括建图初始化、数据采集、建图三个阶段。基于这三个阶段的方法创建三维地图后,还可以进一步包括定位、添加数字资源等阶段。下面分别对各个阶段的方法进行详细说明。
一、建图初始化
本申请实施例中,第一电子设备可以向分布式建图系统发送三维地图的建图初始化指令。第一用户可以操作第一电子设备,触发第一电子设备启动创建三维地图,第一电子设备向分布式建图系统的调度节点发送建图初始化指令。分布式建图系统的调度节点接收到建图初始化指令后,可以为当前建图任务所要创建的三维地图分配地图标识(identitydocument,ID)并指示给电子设备。其中,分布式建图系统通过分配地图ID并指示给电子设备,可以对不同的三维地图进行统一管理,并可以与电子设备同步三维地图的信息,避免电子设备与分布式建图系统的信息不一致导致后续的地图处理或使用过程中出现问题。
例如,图6为本申请实施例提供的一种用户操作电子设备触发建图初始化指令的示意图。参考图6,电子设备在显示屏中显示初始化控制界面,该界面中显示有用于触发建图流程的控件,还可以显示用于指示触发建图的方式的提示信息,例如“点击按钮开始录制”,则第一用户根据该提示信息,通过点击电子设备显示屏中显示的控件来触发建图初始化指令。
第一电子设备在接收到调度节点发送的地图标识后,向分布式建图系统发送多设备建图请求。多设备建图请求中包括第一电子设备采集到的多帧第一初始图像以及每帧第一初始图像的定位信息。实施中,第一电子设备可以通过摄像装置对当前环境进行拍摄,并将拍摄得到的多帧第一初始图像发送给分布式建图系统,分布式建图系统的计算节点可以根据多帧第一初始图像以及每帧第一初始图像的定位信息生成初始三维地图。该初始三维地图可以用于对第一电子设备和第二电子设备进行定位。
需要说明的是,分布式建图系统根据多帧第一初始图像生成初始三维地图的方式与分布式建图系统根据第一电子设备采集的多帧第一环境图像和第二电子设备采集的多帧第二环境图像生成目标三维地图的方式相同,此处暂不详述,具体可以参见本申请实施例中数据采集阶段以及建图阶段的描述。
分布式建图系统在生成初始三维地图后,可以将初始三维地图发送给第一电子设备。第一电子设备在接收到初始三维地图后,可以向分布式建图系统发送定位请求,该定位请求中包括当前第一电子设备的摄像装置采集到的环境图像,分布式建图系统可以根据定位请求中的环境图像和初始三维地图对第一电子设备进行定位,确定第一电子设备在初始三维地图中的位姿。分布式建图系统向第一电子设备返回第一电子设备在初始三维地图中的位姿以及环境图像对应的点云资源。其中,点云资源为分布式建图系统在生成三维地图过程中确定的多帧第一初始图像中的特征点对应的三维点。第一电子设备在接收到点云资源后,可以在显示屏中将点云资源叠加显示到实时拍摄的环境图像中,以表示第一电子设备当前已完成扫描的区域。
例如,图7为本申请实施例提供的一种第一电子设备显示的扫描界面示意图。第一电子设备接收到分布式建图系统发送的点云资源后,将点云资源叠加显示到当前显示屏中显示的图像中点云资源对应的位置处。
一些实施例中,当第一电子设备显示叠加点云资源的环境图像时,第一电子设备可以获取包括点云资源和环境图像的视频流,并将该视频流发送给第二电子设备。第二电子设备在接收到视频流后可以将该视频流对应的视频播放给第二用户,第二用户为操作第二电子设备的用户。第二用户在查看视频后,可以获知第一电子设备已扫描的区域;或者第二用户可以查看第一用户的第一电子设备,获知第一电子设备已扫描的区域。
第二用户在获知第一电子设备已扫描的区域后,可以持第二电子设备移动到第一电子设备已扫描的区域,第二电子设备通过第二电子设备的摄像装置拍摄第一电子设备已扫描的区域,得到至少一帧第二初始图像。第二电子设备可以向分布式建图系统发送加入建图请求,该加入建图请求中包括第二电子设备采集到的多帧第二初始图像以及每帧第二初始图像的定位信息。其中,至少一帧第二初始图像包含任一帧第一初始图像中的图像内容。也就是说,第二用户可以通过操作第二电子设备拍摄第一电子设备拍摄过的环境的图像,以加入多设备建图任务。分布式建图系统接收到第二电子设备发送的加入建图请求后,计算节点可以对多帧第二初始图像进行图像处理,确定至少一帧第二初始图像与任一帧第一初始图像包含相同的图像内容,则分布式建图系统将地图标识发送给第二电子设备,第二电子设备加入第一电子设备的建图任务。
举例来说,图8为本申请实施例提供的一种多人建图初始化的示意图。第一电子设备采集多帧第一初始图像,如其中一帧第一初始图像为第一用户操作第一电子设备拍摄当前环境中的目标物品得到的。第二用户可以操作第二电子设备拍摄目标物品得到第二初始图像。第一电子设备将多帧第一初始图像发送给分布式建图系统,分布式建图系统根据多帧第一初始图像生成初始三维地图。第二电子设备将多帧第二初始图像发送给分布式建图系统,分布式建图系统对多帧第二初始图像进行图像处理,确定第二初始图像中包含目标物品,则分布式建图系统将地图标识发送给第二电子设备。
由于第一电子设备的相机坐标系与第二电子设备的相机坐标并不相同,分布式建图系统在接收到多帧第二初始图像后,可以根据初始三维地图和多帧第二初始图像确定多帧第二初始图像相对于初始三维地图的目标位姿信息,并根据多帧第二初始图像的初始位姿信息和目标位姿信息确定第二电子设备对应的三维坐标系与初始三维地图的三维坐标系之间的目标转换关系;其中,第二初始图像的初始位姿信息可以为第二电子设备拍摄第二初始图像时运行同步地图创建与定位(simultaneous localization and mapping,SLAM)算法得到的;第二电子设备对应的三维坐标系可以为第二电子设备在运行SLAM确定图像的位姿信息时创建的三维坐标系;初始三维地图的三维坐标系为第一电子设备对应的三维坐标系,可以为第一电子设备在运行SLAM确定图像的位姿信息时创建的三维坐标系。初始位姿信息所指示的位姿为第二电子设备在拍摄第二初始图像时在第二电子设备对应的三维坐标系中的位姿,目标位姿信息所指示的位姿为第二电子设备在拍摄第二初始图像时相对于初始三维地图的三维坐标系的位姿。分布式建图系统可以根据目标转换关系将第二电子设备上传的图像的位姿转换为在第一电子设备对应的三维坐标系中的位姿,进而可以根据第二电子设备上传的图像和第一电子设备上传的图像构建三维地图。
具体实施中,分布式建图系统的计算节点对每帧第二初始图像进行图像处理,对图像中各个区域的多尺度的灰度特征提取特征向量,得到图像的局部特征,并提取得到图像中的特征点。其中,特征向量可以用于表示图像中局部区域的纹理特征。计算节点确定第二初始图像中的特征点对应的第一初始图像中的特征点,根据初始三维地图确定第一初始图像中的特征点对应的三维点,则可以确定该三维点为第二初始图像中的特征点对应的三维点。计算节点可以根据第二初始图像中的特征点、特征点对应的三维点以及第二电子设备的摄像装置的相机内参求解第二初始图像的目标位姿信息。计算节点可以根据多帧第二初始图像的初始位姿信息和目标位姿信息确定第二初始图像对应的三维坐标系与初始三维地图的坐标系之间的转换关系。如计算节点可以根据每帧第二初始图像的初始位姿信息和目标位姿信息确定转换矩阵,在根据多帧第二初始图像确定出多个转换矩阵后,对多个转换矩阵进行计算平均数得到目标转换矩阵,该目标转换矩阵为第二初始图像对应的三维坐标系与初始三维地图的三维坐标系之间的目标转换关系。
一些实施方式中,第二电子设备在接收到分布式建图系统发送的地图标识后,还可以向分布式建图系统发送定位请求,该定位请求中包括当前第二电子设备的摄像装置采集到的环境图像,分布式建图系统可以根据目标转换关系对环境图像进行位姿转换,并根据位姿转换后的环境图像对第二电子设备进行定位,确定第二电子设备在初始三维地图中的位姿。分布式建图系统向第二电子设备返回第二电子设备在初始三维地图中的位姿以及环境图像对应的点云资源,其中,点云资源为分布式建图系统对第二电子设备上传的环境图像进行特征提取后得到的特征点对应的三维点。第二电子设备在接收到点云资源后,可以在显示屏中将点云资源叠加显示到实时拍摄的环境图像中,以表示当前已完成扫描的区域。
第二电子设备加入多人建图任务后,第一电子设备和第二电子设备可以显示如图9所示的多人建图界面,并在该多人建图界面中显示所有参与多人建图任务的用户标识。
通过以上方法,分布式建图系统可以确定第二电子设备采集的图像对应的三维坐标系和第一电子设备采集的图像对应的三维坐标系之间的转换关系,从而可以根据该转换关系将不同电子设备采集的图像的位姿转换为同一三维坐标系下的位姿,以便分布式建图系统根据多个电子设备采集的图像进行三维地图的构建。
二、数据采集
第一电子设备触发上述建图初始化流程后,第一电子设备可以采集所在环境的多帧第一环境图像及每帧第一环境图像对应的定位信息,并将采集到的第一环境图像上传到分布式建图系统。同样的,第二电子设备也可以采集所在环境的多帧第二环境图像及每帧第二环境图像对应的定位信息,并将采集到的第二环境图像上传到分布式建图系统。分布式建图系统可以分别对第一电子设备上传的多帧第一环境图像和第二电子设备上传的多帧第二环境图像进行图像处理,确定每帧图像的特征信息,以进一步创建所述环境对应的三维地图。该过程主要包括以下步骤1~4:
步骤1:第一电子设备和第二电子设备分别扫描拍摄所在的环境的视频。
实施中,第一电子设备和第二电子设备可以分别对所在的环境进行扫描拍摄,并将摄像装置当前拍摄到的环境图像实时显示在显示屏上,并且显示用于提示用户继续扫描的提示信息。用户在操作电子设备进行扫描时,可以按照显示屏上的提示信息,持电子设备移动持续扫描当前所处的环境,电子设备在接收到用户触发的结束扫描指令后,停止扫描。
例如,图10为本申请实施例提供的一种多人建图中多个用户持电子设备扫描拍摄当前所处环境的示意图。参见图10,两个用户可以持不同的电子设备对当前环境进行扫描拍摄。
图11为本申请实施例提供的一种电子设备在扫描拍摄当前所处环境时的显示界面示意图。参考图11,电子设备在显示屏中实时显示摄像装置拍摄到的环境图像,当用户确定停止扫描时,可以点击图11中所示的触发停止扫描的控件,则电子设备可以停止扫描,并根据已扫描的内容生成视频文件。
在多人建图任务中,第一电子设备和第二电子设备可以对相同环境中的不同区域进行扫描拍摄,从而实现多设备协同采集环境图像,增加用户之间互动性的同时提高环境图像的采集效率。
步骤2:第一电子设备从拍摄到的视频中提取满足关键帧要求的多帧第一环境图像,并将多帧第一环境图像上传至分布式建图系统;第二电子设备从拍摄到的视频中提取满足关键帧要求的多帧第二环境图像,并将多帧第二环境图像上传至分布式建图系统。
在本申请实施例中,第一电子设备和第二电子设备在对当前所处环境拍摄得到视频后,从视频中提取满足关键帧要求的环境图像,并将环境图像上传至分布式建图系统。该步骤中第一电子设备与第二电子设备所执行的功能相同,为便于描述,下面以第一电子设备为例对步骤2的具体内容进行介绍:
第一电子设备在扫描环境过程中,可以通过运行SLAM算法,获取每帧第一环境图像的位姿信息。每帧第一环境图像的位姿信息为第一电子设备在拍摄该帧图像时的位姿在目标三维地图的三维坐标系中对应的位姿,其中目标三维地图为分布式建图系统根据第一电子设备和第二电子设备采集的环境图像生成的三维地图。目标三维地图的三维坐标系与建图初始化中分布式建图系统生成的初始三维地图的三维坐标系相同。
第一电子设备在获取视频后,可以采用如下任一种方式从视频中选择满足关键帧要求的第一环境图像:
1)根据视频中各帧图像对应的位姿之间的变化约束关系选择满足关键帧要求的第一环境图像。
在该方式中,针对视频中的每帧图像,第一电子设备获取采集到该帧图像时的位姿信息,将该位姿信息与采集到前一帧满足关键帧要求的图像时的位姿信息进行对比。若确定两个位姿信息所指示的位姿之间的偏移量大于设定的偏移量阈值,则确定该帧图像为满足关键帧要求的第一环境图像,否则,确定该帧图像不满足关键帧要求,继续进行下一帧图像的判断,直至视频中所有图像均已确定是否满足关键帧要求,从而选择出满足关键帧要求的第一环境图像。
2)根据视频中各帧图像的局部特征选择满足关键帧要求的第一环境图像。
在该方式中,第一电子设备可以提取各帧图像的局部特征,并根据提取各帧图像的局部特征确定各帧图像中的特征点,然后利用光流跟踪法对特征点进行跟踪,根据对特征点的跟踪情况选择满足关键帧要求的图像。其中,利用光流跟踪法可以确定当前帧图像中的特征点是否存在于下一帧图像中,因此基于光流跟踪法可以判断两帧图像中包含的相同特征点的数量。针对视频中的每帧图像,第一电子设备提取该帧图像中的特征点后,确定该帧图像与前一帧满足关键帧要求的图像包含的相同特征点的数量,若该数量大于设定的数量阈值或者该数量与该帧图像中所有特征的数量之比小于设定的数量阈值,则确定该帧图像为满足关键帧要求的第一环境图像,否则,确定该帧图像不满足关键帧要求,继续进行下一帧图像的判断,直至视频中所有图像均已确定是否满足关键帧要求,从而选择出满足关键帧要求的第一环境图像。
可选的,上述两种方式中,第一电子设备可以将视频中的第一帧图像作为第一个满足关键帧要求的第一环境图像,从而基于该图像,在其余帧图像中继续选择满足关键帧要求的第一环境图像。
第一电子设备从视频中选择满足关键帧要求的多帧第一环境图像后,将多帧第一环境图像上传到分布式建图系统,分布式建图系统可以对多帧第一环境图像进行存储和管理,并可以对多帧第一环境图像进行图像处理。
例如,基于图5所示的分布式建图系统,第一电子设备在选择满足关键帧要求的第一环境图像后,向云端调度中心发送图像传输请求,以请求上传图像。云端调度中心接收到图像传输请求后,向电子设备返回上传图像的URL,然后电子设备根据URL将第一环境图像上传到对象存储服务进行存储。
可选地,第一电子设备在上传满足关键帧要求的第一环境图像时,可以采用逐帧上传的方式,即电子设备每选择到一帧满足关键帧要求的第一环境图像,就将该第一环境图像上传至分布式建图系统,同时继续进行下一帧满足关键帧要求的图像的选择过程。当然,电子设备也可以选择得到所有满足关键帧要求的第一环境图像后,再将这些第一环境图像一并上传至分布式建图系统。
步骤3:第一电子设备采集每帧第一环境图像对应的定位信息并上传至分布式建图系统;第二电子设备采集每帧第二环境图像对应的定位信息并上传至分布式建图系统。
在本申请实施例中,第一电子设备在向分布式建图系统上传第一环境图像时,还可以获取第一环境图像对应的定位信息,并将第一环境图像对应的定位信息也上传至分布式建图系统。该步骤中第一电子设备与第二电子设备所执行的功能相同,为便于描述,下面以第一电子设备为例对步骤2的具体内容进行介绍:
每帧第一环境图像对应的定位信息包括第一电子设备采集得到该帧第一环境图像时的位姿信息、全球定位系统(global positioning system,GPS)信息和惯性测量单元(inertial measurement unit,IMU)信息。其中,位姿信息为第一电子设备拍摄得到该帧第一环境图像时利用SLAM算法测得的。GPS信息用于指示第一电子设备拍摄得到该帧第一环境图像时通过进行GPS定位确定的位置。IMU信息用于指示第一电子设备拍摄得到该帧第一环境图像时基于IMU传感器测量到的第一电子设备的姿态特征。
示例性的,第一电子设备可以将采集到的定位信息以元(meta)数据的形式上传至分布式建图系统。基于图5所示的分布式建图系统,电子设备可以将元数据发送至云端调度中心,云端调度中心接收到元数据后,将元数据发送至缓存形消息中间件进行缓存,以供CPU算法组件或GPU算法组件使用。同时,云端调度中心可以将元数据存储至弹性文件服务。
步骤4:分布式建图系统分别针对第一电子设备上传的每帧第一环境图像和第二电子设备上传的每帧第二环境图像进行图像处理。
分布式建图系统在接收到第一电子设备上传的多帧第一环境图像和第二电子设备上传的多帧第二环境图像后,需要对第一环境图像和第二环境图像进行图像处理。具体的,每个计算节点可以从多帧第一环境图像或第二环境图像中选择一帧未经处理的图像,并对该帧图像进行图像处理过程,在处理完毕后,继续选择下一帧未经处理的图像进行图像处理过程,直至确定所有第一环境图像和第二环境图像均已被处理完毕。计算节点从多帧第一环境图像或第二环境图像中选择一帧图像时可以采用随机选择的方式,也可以按照多帧图像的顺序(例如图像被上传至分布式建图系统的顺序)进行选择。
一种可选的实施方式中,当计算节点在对第一环境图像进行图像处理时,可以直接对第一环境图像进行特征提取和序列化处理过程。当计算节点在对第二环境图像进行图像处理之前,可以先根据建图初始化过程中确定出的目标转换关系对第二环境图像对应的位姿信息进行转换,以确定第二环境图像对应的目标位姿信息,第二环境图像对应的目标位姿信息为第二电子设备拍摄第二环境图像时相对于目标三维地图的三维坐标系的位姿。通过对第二环境图像对应的位姿信息进行转换,可以使得第二环境图像和第一环境图像对应的位姿信息为相同坐标系下的位姿信息。计算节点对第二环境图像对应的位姿信息进行转换得到第二环境图像对应的目标位姿信息的过程,也可以称为将第二环境图像注册到第一环境图像所属的图像序列中。
下面对计算节点对第一环境图像或第二环境图像进行的图像处理过程进行介绍,实施中,计算节点对第一环境图像和第二环境图像进行的图像处理流程相同,为便于介绍,以计算节点对第一环境图像进行图像处理为例进行介绍,该图像处理过程包括以下步骤A1~A2:
A1:特征提取:计算节点提取第一环境图像的全局特征。
该步骤中,计算节点可以对第一环境图像进行局部特征提取和全局特征提取。其中,在进行局部特征提取时,计算节点可以对第一环境图像中各个区域的多尺度的灰度特征提取特征向量,得到第一环境图像的局部特征,并提取得到第一环境图像中的特征点。其中,特征向量可以用于表示第一环境图像中局部区域的纹理特征。在进行全局特征提取时,计算节点可以利用已训练的网络模型对图像中特征不变性较好(例如满足设定要求)的区域的局部特征进行聚类,并计算各个局部特征与聚类中心的加权残差和,得到第一环境图像的全局特征。其中,全局特征可以用于表征第一环境图像的整体结构特征。
A2:序列化处理:计算节点根据第一环境图像的全局特征,从已处理图像中选择与该图像匹配的图像。
该步骤包括特征检索、特征匹配以及特征校验。其中,特征检索指计算节点根据该第一环境图像的全局特征,对从已处理图像(即已进行过上述的图像处理过程的图像,包括已进行过上述的图像处理过程的第一环境图像和第二环境图像)的全局特征进行检索,得到与该第一环境图像的全局特征距离最接近的设定数量个全局特征,并将检索得到的全局特征对应的图像作为候选帧图像。可选的,电子设备还可以同时采集时间早于该第一环境图像的采集时间且与该第一环境图像的采集时间最接近的设定数量帧第一环境图像作为候选帧图像。特征匹配指计算节点将候选帧图像中的局部特征与该第一环境图像的局部特征进行匹配,从中选取满足一定阈值条件的N个匹配对。其中,在进行匹配时,计算节点可以利用最近邻(k-nearest neighbor,KNN)匹配算法从候选帧图像局部特征点中选择与该第一环境图像中局部特征点匹配的特征点,并与该第一环境图像中局部特征点组成匹配对。计算节点也可以通过训练深度学习模型后利用深度学习模型进行匹配的方式选择匹配对。特征校验指计算节点从特征匹配处理的结果中滤除错误匹配的信息。可选的,计算节点可以采用随机抽样一致性校验等算法进行特征校验处理。
基于以上图像处理过程,每个计算节点可以确定自身处理的图像与已处理的其它图像之间的匹配对关系(匹配或不匹配),因此,在所有第一环境图像和第二环境图像的图像处理过程结束后,可以得到所有图像之间的匹配对关系。其中,同一组匹配对的N个特征点对应三维地图中的同一三维点。
示例性的,基于图5中所示的分布式建图系统,第一电子设备根据URL将多帧第一环境图像上传到对象存储服务后,云端调度中心可以向队列形消息中间件发送传图消息以指示每帧图像对应的传图任务,队列形消息中间件对传图任务的信息进行缓存。各GPU算法组件分别从队列形消息中间件中读取传图任务,并从对象存储服务读取传图任务对应的第一环境图像后,对读取的第一环境图像进行上述的图像处理过程,并将处理结果(即图像的匹配信息)保存至弹性文件服务中,同时把处理完成的标识符以及处理过程的中间结果(例如图像的全局特征等)发送到缓存形消息中间件进行缓存。则后续GPU算法节点进行图像处理过程中可以从缓存形消息中间件读取已处理图像的全局特征,以便进行序列化处理等。
需要说明的是,上述部分步骤的执行顺序并无严格的时序要求,可以根据实际情况进行调整。例如,对于同一计算节点来说,上述步骤3、4的执行依赖于上述步骤2中选取的图像,但是,上述步骤3、4之间可以无序,即该计算节点在执行上述步骤3、4时,可以先执行其中任一步骤,再执行另一步骤,也可以同时执行两个步骤。对于不同计算节点来说,每个计算节点执行上述步骤1~4的过程独立于其它计算节点,任意两个计算节点之间互不干扰。
在本申请一些实施例中,第一电子设备和第二电子设备在扫描拍摄当前所处环境时,还可以在显示屏上显示覆盖环境轮廓的网格,以提示和引导用户完成扫描过程。具体的,电子设备可以采用飞行时间(time of flight,TOF)方法采集满足关键帧要求的图像的深度图,或者,根据选择的满足关键帧要求的图像,采用多视立体匹配(multi-viewstereo,MVS)得到对应的深度图。电子设备得到每帧图像的深度图后,可以采用基于截断的带符号距离函数(truncated signed distance function,TSDF)等算法,根据每帧图像提取体素并确定三维体素空间中各个体素的深度值。得到体素后,电子设备可以根据各个体素的深度值,利用移动立方体(marching cubes)算法将体素转换为网格并进行渲染,然后显示在显示屏所示的环境界面中的对应区域。
例如,当电子设备对图11所示的环境进行扫描时,电子设备可以对图11所示的界面对应的图像的深度图进行体素提取和网格转换得到网格。电子设备将该网格覆盖到图11所示的显示界面中的对应位置后,可以显示图12所示的界面,该界面中,网格覆盖区域为已经扫描过的区域,未被网格覆盖的区域为待扫描区域或者无法生成对应网格的区域。基于此方式,电子设备可以在用户操作电子设备扫描环境空间过程时,将已扫描和未扫描过的区域实时呈现给用户,来引导用户根据网格提示继续操作电子设备针对未扫描的环境区域进行扫描,使得网格尽可能多的覆盖待扫描的真实环境空间中的三维物体,从而简便快速的完成扫描过程,降低采集环境图像的操作难度,提高用户的使用体验。
本申请一些实施方式中,第一电子设备和第二电子设备在结束扫描后,可以将扫描过程中得到深度图上传至分布式建图系统。分布式建图系统在接收到第一电子设备上传的第一深度图和第二电子设备上传的第二深度图后,可以根据建图初始化中确定的目标转换关系对第二深度图对应的坐标系进行转换,并对转换坐标系后的第二深度图和第一深度图进行融合处理,得到当前环境对应的完整深度图。分布式建图系统可以根据当前环境对应的完整深度图生成当前环境对应的白膜,当前环境对应的白膜可以用于表示当前环境中的各物体的表面。实施中,分布式建图系统可以通过平面提取、相交计算、多面体拓扑构建及表面优化等算法生成当前环境对应的白模。
示例性的,基于图5中所示的分布式建图系统,第一电子设备上传第一深度图时,可以发送深度图上传请求至云端调度中心,云端调度中心接收深度图上传请求后,向第一电子设备返回深度图上传地址的信息。第一电子设备可以根据深度图上传地址将第一深度图上传到对象存储服务中进行存储。第一电子设备上传第一深度图完毕后可以向云端调度中心发送深度图上传完毕通知消息。同样的,第二电子设备也可以将第二深度图上传到对象存储服务中存储,并向云端调度中心发送深度图上传完毕通知消息。云端调度中心在接收到该通知消息后可以发送白膜创建任务至队列形消息中间件。CPU算法组件中的白模处理服务在监听队列形消息中间件中缓存的地图标识对应的所有白膜创建任务后,CPU算法组件领取任务后,根据目标转换关系对第二电子设备上传的第二深度图进行坐标转换,并对转换后的第二深度图和第一深度图进行融合处理,得到当前环境对应的完整深度图,再根据完整深度图生成当前场景对应的白膜。白模处理服务执行白膜创建任务得到的结果可以发送至弹性文件存储服务进行存储,同时发送对应的白膜创建完成通知消息至队列形消息中间件。云端调度中心监听到该白膜创建完成通知消息后可以从弹性文件服务中获取当前场景对应的白膜,并将白膜发送至对象存储服务进行存储,同时将白膜存储至云端数据库。
本申请另一些实施方式中,分布式建图系统在接收到第一电子设备上传的多帧第一环境图像和第二电子设备上传的多帧第二环境图像后,计算节点还可以基于多视图立体匹配(multi-view stereo,MVS)算法确定每帧第一环境图像的深度信息和每帧第二环境图像的深度信息,每帧图像的深度信息包括该帧图像中每个像素点的深度值。分布式建图系统可以根据每帧第一环境图像的深度信息和每帧第二环境图像的深度信息生成当前环境对应的白膜。
当分布式建图系统完成三维地图的建图任务后,用户操作电子设备在AR场景中游玩时,用户在电子设备的显示屏中显示的AR场景中放置虚拟物品时,分布式建图系统可以基于该AR场景对应的白膜,将虚拟物品放置到电子设备显示的当前环境中的物体的表面上,使得电子设备显示AR场景更真实,交互性也更强。
三、建图
第一电子设备在结束扫描后,第一电子设备可以向分布式建图系统发送建图指令。分布式建图系统在接收到第一电子设备发送的建图指令后,可以获取第二电子设备的扫描进度并发送给第一电子设备。第一电子设备可以在显示屏中显示第二电子设备的扫描进度。用户可以等待第二电子设备结束扫描,或者第一电子设备可以向第二电子设备发送结束扫描指令,第二电子设备接收到结束扫描指令后结束扫描。
例如,图13为本申请实施例提供的一种第一电子设备显示的扫描进度界面的示意图。参考图13,第一电子设备可以在图13所示的扫描进度界面中查看第二电子设备的扫描进度。例如,图13中包括第一电子设备(设备A)和两个第二电子设备(设备B和设备C)的扫描进度和状态,用户可以点击扫描进度界面中的结束扫描控件,强制结束设备B和设备C的扫描。
第二电子设备在结束扫描后,可以向分布式建图系统发送建图指令。分布式建图系统在接收到第一电子设备发送的建图指令和第二电子设备发送的建图指令后,可以根据第一电子设备上传的第一环境图像、第二电子设备上传的第二环境图像和每帧图像对应的定位信息进行三维地图的创建。具体的,在分布式建图系统的计算节点对第一电子设备和第二电子设备上传的所有图像进行上述步骤4中所述的图像处理过程后,可以按如下步骤B1~B4进行三维地图的创建:
B1:计算节点根据多帧第一环境图像和多帧第二环境图像生成场景匹配关系图(scence graph),其中,场景匹配关系图用于表征多帧图像之间的匹配关系。
计算节点可以根据多帧图像之间的匹配关系确定多帧图像的共视关系,再通过对共视关系进行优化后得到场景匹配关系图,其中,多帧图像包括多帧第一环境图像和多帧第二环境图像。
其中,场景匹配关系图可以视为一种由“顶点”和“边”组成的抽象网络,网络中每个顶点可以代表一帧图像,每个边代表图像间的一对特征点匹配对。不同“顶点”可以通过“边”实现连接,表示通过“边”连接的两个顶点具有关联关系,即两个“顶点”代表的两帧图像的匹配关系。
B2:计算节点根据场景匹配关系图确定多帧图像中各特征点在三维空间中对应的三维点。
计算节点生成场景匹配关系图后,可以根据场景匹配关系图、每帧第一环境图像的位姿信息、每帧第二环境图像的目标位姿信息以及相机内参确定多帧第一环境图像和多帧第二环境图像中的各特征点在三维空间中对应的三维点。其中,该三维空间的三维坐标系为第一电子设备对应的三维坐标系,与建图初始化过程中生成的初始三维地图的坐标系一致。
针对场景匹配关系图中同一特征点的不同视角,计算节点可以通过诸如直接线性变换(direct linear transformation,DLT)等算法结合环境图像的位姿信息、相机内参求解该特征点在三维空间中对应的位置(即三角化),并将该位置处的点确定为该特征点在三维空间中对应的三维点。计算节点确定场景匹配关系图中所有特征点在三维空间中对应的三维点后,可以得到这些三维点组成的三维地图,该三维地图为三维点云地图。
B3:计算节点对三维点在三维空间中的坐标进行优化。
计算节点可以对上述求解得到的三维点进行光束平差法(bundle adjustment,BA)优化,即通过根据相机模型将三维空间中的三维点反投影回图像的位置误差,优化环境图像的位姿信息、三维点位置以及电子设备的相机内参矩阵,从而得到精确的环境图像的位姿信息、相机内参以及三维点的坐标,进而得到优化后的三维地图。
B4:计算节点根据优化后的三维点生成三维地图。
计算节点可以结合相机位姿以及每一帧第一环境图像和每一帧第二环境图像对应的GPS信息、IMU信息进行平滑及去噪处理,得到每帧图像对应的真实世界的相机位姿,每帧图像对应的相机位姿可以为电子设备拍摄该帧图像时在真实环境中的位置及朝向。计算节点根据每帧图像对应的相机位姿,将三维空间中三维点的坐标与真实世界的坐标进行对齐,从而将三维空间的坐标系调整至与真实环境空间的坐标系一致,进而得到与真实环境等比例的三维地图,该三维地图为真实环境场景对应的点云地图。
例如,图14为本申请实施例提供的一种三维地图的示意图,如图14中所示的三维地图中的三维点分别对应电子设备扫描的真实环境中的三维点,每个三维点在三维空间中的位置用于表征该三维点对应的真实环境中的三维点在真实环境中的位置。
示例性的,基于图5中所示的分布式建图系统,第一电子设备触发建图时,可以发送建图指令及本次建图的图像扫描张数(即满足关键帧要求的第一环境图像的数量)等信息到云端调度中心。同样的,第二电子设备触发建图时,也可以发送建图指令及本次建图的图像扫描张数(即满足关键帧要求的第二环境图像的数量)等信息到云端调度中心,云端调度中心发送建图任务到队列形消息中间件,同时本次建图的基本信息及用户属性信息到云端数据库进行保存。各CPU算法组件可以监听队列形消息中间件中的建图任务并进行处理,最终生成三维地图文件并存储到弹性文件服务。在建图过程中,各CPU算法组件可以将建图进度、建图成功或失败的信息、地图对齐矩阵(SLAM坐标系与真实世界坐标系之间的转换矩阵)等信息发送至队列形消息中间件,将建图结果(即创建的三维地图)保存到弹性文件服务中。云端调度中心可以监听队列形消息中间件中的建图进度的信息,从而获得当前建图任务的处理进度、状态、地图对齐矩阵等信息并将这些信息存储到云端数据库。
通过以上方法,多个电子设备可以同时采集环境图像,分布式建图系统可以将多个电子设备采集的环境图像转换至同一三维坐标系中,并根据转换后的环境图像生成三维地图,从而实现多设备建图,提升AR场景的三维地图的创建效率,同时增强建图过程中多用户之间的互动性,提升用户体验。
图15为本申请实施例提供的一种多设备构建三维地图方法的流程示意图。该方法可以由图2所示的增强现实系统中的第一电子设备、第二电子设备以及分布式建图系统执行。
参考图15,该方法包括以下步骤:
S1501:第一电子设备扫描真实世界场景,采集多帧第一初始图像,以及,运行SLAM算法并提取每帧第一初始图像对应的定位信息。
其中,定位信息包括位姿信息、GPS信息、IMU信息。
S1502:第一电子设备向分布式建图系统发送多人建图请求。
其中,多人建图请求中包括多帧第一初始图像以及每帧第一初始图像的定位信息。
S1503:分布式建图系统中的计算节点根据多帧第一初始图像和每帧第一初始图像的定位信息构建初始三维地图。
S1504:第二电子设备扫描真实世界场景,采集多帧第二初始图像,以及,运行SLAM算法并提取每帧第二初始图像对应的定位信息。
S1505:第二电子设备向分布式建图系统发加入建图请求。
其中,加入建图请求中包括多帧第二初始图像和每帧第二初始图像的定位信息。
S1506:分布式建图系统中的计算节点对多帧第二初始图像进行图像处理,确定第二初始图像中包含任一帧第一初始图像中的图像内容。
S1507:分布式建图系统中的计算节点根据初始三维地图和多帧第二初始图像确定目标转换关系。
其中,目标转换关系为第二初始图像对应的三维坐标系与初始三维地图的三维坐标系之间的转换关系。
S1508:第一电子设备在移动过程中扫描得到真实世界场景的视频,并从中选择满足关键帧要求的第一环境图像;以及,运行SLAM算法并提取每帧第一环境图像对应的定位信息。
其中,定位信息包括位姿信息、GPS信息、IMU信息。第一电子设备的移动过程由第一用户控制实现。
S1509:第一电子设备将满足关键帧要求的多帧第一环境图像分别上传至分布式建图系统。
S1510:第二电子设备在移动过程中扫描得到真实世界场景的视频,并从中选择满足关键帧要求的第二环境图像;以及,运行SLAM算法并提取每帧第二环境图像对应的定位信息。
其中,定位信息包括位姿信息、GPS信息、IMU信息。第二电子设备的移动过程由第二用户控制实现。
S1511:第二电子设备将满足关键帧要求的多帧第二环境图像分别上传至分布式建图系统。
S1512:分布式建图系统中的计算节点根据目标转换关系对第二环境图像的位姿信息进行转换。
S1513:分布式建图系统中的计算节点根据多帧第一环境图像和位姿转换后的多帧第二环境图像生成目标三维地图。
S1514:分布式建图系统将目标三维地图发送给第一电子设备和第二电子设备。
S1515:第一电子设备获取多帧第一环境图像对应的第一深度图。
S1516:第一电子设备将第一深度图发送给分布式建图系统。
S1517:第二电子设备获取多帧第二环境图像对应的第二深度图。
S1518:第二电子设备将第二深度图发送给分布式建图系统。
S1519:分布式建图系统的计算节点根据目标转换矩阵对第二深度图对应的坐标系进行转换。
S1520:分布式建图系统的计算节点对第一深度图和转换坐标系后的第二深度图进行融合处理,得到当前环境对应的完整深度图。
S1521:分布式建图系统的计算节点根据完整深度图生成当前环境对应的白膜。
四、定位
本申请实施例中,分布式建图系统在完成三维地图的创建后,第一电子设备和第二电子设备可以在显示屏中显示AR场景,用户可以查看AR场景进行游玩。第一电子设备和第二电子设备在显示屏中显示AR场景之前,分布式建图系统可以根据三维地图对第一电子设备和第二电子设备进行定位。具体实施中,分布式建图系统对第一电子设备进行定位的方法和对第二电子设备进行定位的方法相同,为便于描述,下面以分布式建图系统对第一电子设备进行定位为例对本申请实施例提供的定位方法进行介绍:
当用户持第一电子设备处于该三维地图对应的环境中时,第一电子设备可以响应于用户选择该三维地图的操作,采集当前环境的至少一帧第一用户图像并上传至分布式建图系统,分布式建图系统根据至少一帧第一用户图像及先前创建的该环境对应的三维地图,采用GVPS方法确定第一电子设备在三维地图中的相对位置。分布式建图系统将确定出的相对位置发送给第一电子设备。此时,第一电子设备在三维地图中的位置已确定,用户可以在电子设备当前扫描到的环境图像中添加数字资源。第一电子设备可以基于第一相对位置在显示屏中显示AR场景,该AR场景中可以包括第一电子设备的摄像装置当前采集到的环境图像,以及用户在AR场景中添加的数字资源对应的虚拟物品。
示例性的,基于图5所示的分布式建图系统,用户触发定位后,第一电子设备向云端调度中心发送定位请求和当前扫描到的至少一帧第一用户图像,云端调度中心将接收到的定位请求和至少一帧第一用户图像发送至GVPS定位服务。GVPS定位服务读取弹性文件服务中存储的三维地图的地图数据,根据该地图数据和至少一帧第一用户图像确定第一电子设备当前位姿在三维地图中的相对位置,并将该相对位置的信息发送至云端调度中心。云端调度中心从云端数据库查询当前地图相关的兴趣点(point of interest)POI信息后,将该POI信息及来自GVPS服务的相对位置发送给第一电子设备。第一电子设备可以根据接收到的POI信息从对象存储服务下载三维数字资源模型并进行渲染后添加到第一电子设备显示的AR场景中。
五、添加数字资源
分布式建图系统在对第一电子设备完成定位后,第一电子设备可以在显示屏中查看AR场景,并在AR场景中添加数字资源,此时用户可以在第一电子设备显示的AR场景中观察到摄像装置实时拍摄的环境图像以及用户添加的三维数字资源模型。
例如,电子设备显示图16a所示的AR场景界面中包含三维数字资源模型的素材,用户可以从中选择素材后添加到图16a所示的数字世界场景中。例如,在用户选择添加某一素材后电子设备可以显示图16b中所示的添加三维数字资源模型后的AR场景界面,该AR场景界面中包括真实环境场景的图像和用户添加的三维数字资源模型,可以实现真实世界场景与虚拟数字资源的融合显示。其中,在添加素材过程中,当用户选中某一素材并移动至某一区域时,第一电子设备可以在该区域显示对应的白模,以引导用户选择合适的区域放置素材。当用户确定将虚三维数字资源模型放置在某一区域内时,第一电子设备可以确定放置区域在三维地图中对应的位置,并将数字资源的标识以及位置发送给分布式存储系统。分布式存储系统存储数字资源的标识和位置,以便于用户在下次持电子设备查看AR场景中,仍然可以显示用户之前添加的数字资源对应的虚拟物品。
示例性的,基于图5中所示的分布式建图系统,定位完成后,第一电子设备可以向云端调度中心请求三维数字资源模型对应的数字资源列表。云端调度中心通过查询云端数据库获取当前用户所对应的数字资源列表,并发送给第一电子设备。在用户选择素材后,第一电子设备通过URL到对象存储服务下载三维数字资源模型,并添加进AR场景。数字资源添加完成后,用户可以通过点击第一电子设备显示的保存的控件,触发第一电子设备上传当前数字资源模型的大小及位姿等信息给云端调度中心,云端调度中心发送该信息到云端数据库进行保存。
可以理解的是,第二电子设备也可以为在显示屏中显示AR场景以供用户游玩,具体实施可以参见上述实施例,重复之处不再赘述。
本申请一些实施例中,多个用户可以操作不同的电子设备同时在同一个AR场景中进行游玩。以第一用户操作第一电子设备和第二用户操作第二电子设备为例,在分布式建图系统创建三维地图并将三维地图发送给第一电子设备和第二电子设备之后,第一电子设备和第二电子设备可以显示AR场景并进行交互游玩;或者分布式建图系统在创建初始三维地图后,也可以将初始三维地图发送给第一电子设备和第二电子设备,此时第二电子设备可以选择进行扫描环境图像或直接基于初始三维地图显示AR场景进行游玩。如第二电子设备可以直接显示根据初始三维地图构建的AR场景供第二用户进行游玩,同样第一电子设备也可以显示根据初始三维地图构建的AR场景供第二用户进行游玩。具体的,第一电子设备可以在显示屏中显示AR场景,第二电子设备也可以在显示屏中显示AR场景,此时若第一用户持第一电子设备进入第二电子设备的摄像装置可以拍摄到的区域,则第二电子设备上可以在第一用户的图像上显示与第一用户相关的三维数字资源模型,进而实现第二电子设备与第一电子设备之间交互游玩。
例如,图17为本申请实施例提供的一种电子设备显示的多用户在AR场景中交互游玩的示意图。图17为第一电子设备的显示中显示的内容,第一电子设备显示AR场景,该AR场景包括第一电子设备实时拍摄的环境图像和三维数字资源模型。其中,第二用户持第二电子设备进入第一电子设备的摄像装置的可拍摄区域中,第一电子设备的显示屏中显示拍摄第二用户得到的图像,并在第二用户上方显示第二用户对应的“生命值”三维数字资源模型;其中,第二电子设备可以对实时采集到的图像运行SLAM算法确定第二电子设备的位姿信息,第二电子设备将位姿信息发送给分布式建图系统,分布式建图系统可以根据AR场景的三维地图或初始三维地图确定第二电子设备的目标位姿信息,目标位姿信息为第二电子设备在三维地图的三维坐标系中的位姿信息。分布式建图系统将第二电子设备的目标位姿信息发送给第一电子设备,第一电子设备根据第二电子设备的目标位姿信息确定第二用户对应的“生命值”三维数字资源模型在AR场景中的位置,并根据该位置在显示屏中显示第二用户对应的“生命值”三维数字资源模型。同样,第三用户持第三电子设备进入第一电子设备的摄像装置的可拍摄区域中,第一电子设备的显示屏中显示拍摄第三用户得到的图像,并在第三用户上方显示第三用户对应的“生命值”三维数字资源模型,第一用户、第二用户和第三用户可以在各自的电子设备上操作进行交互游玩。
基于以上方式,第一电子设备和第二电子设备可以为用户提供使用、编辑创建的三维地图的功能,同时允许用户在创建的三维地图中添加三维数字资源模型,实现了真实环境场景与虚拟数字场景的融合应用。
本申请实施例提供的多设备建图方法应用于图10所示的多设备扫描环境场景之外,还可以应用于合并多个三维地图、扩展三维地图等场景。下面分别对本申请实施例提供的多设备建图方法应用于合并多个三维地图和扩展三维地图的两个场景时的实施方式进行介绍:
1、合并多个三维地图的场景。
用户可以在电子设备中查看已创建的三维地图。例如,图18为本申请实施例提供的一种电子设备显示的已创建的三维地图列表的示意图。用户可以点击勾选其中的多个三维地图进行合并。
电子设备在接收到用户触发的地图合并指令后,向分布式建图系统发地图合并请求,该地图合并请求中包括用户选择的多个三维地图的标识。分布式建图系统接收到地图合并请求后,根据地图合并请求中的多个三维地图的标识获取每个三维地图对应的多帧环境图像。以用户选择两个三维地图(第一地图和第二地图)为例进行说明,分布式建图系统根据第一地图对应的多帧第一环境图像的全局特征和第二图像对应的多帧第二环境图像的全局特征确定多帧第一环境图像和多帧第二环境图像中的匹配图像对,其中,两帧图像匹配可以为两帧图像的全局特征相似(如两帧图像的全局特征之间的相似度大于预设阈值)。分布式建图系统根据匹配图像对确定第二环境图像对应的目标位姿信息,该目标位姿信息为第二环境图像相对于第一环境图像对应的三维坐标系的位姿信息。分布式建图系统根据第二环境图像的初始位姿信息和目标位姿信息确定第二环境图像对应的目标转换关系,该目标转换关系为第二环境图像对应的三维坐标系和第一环境图像对应的三维坐标系之间的转换关系。在确定出第二环境图像对应的目标转换关系后,分布式建图系统可以根据目标转换关系对多帧第二环境图像进行位姿转换。分布式建图系统可以根据多帧第一环境图像和位姿转换后的多帧第二环境图像生成目标三维地图,该目标三维地图可以看作对第一地图和第二地图进行合并后的三维地图。其中,分布式建图系统根据多帧第一环境图像和多帧第二环境图像生成目标三维地图的具体实施可以参见本申请实施例中数据采集和建图阶段的内容,重复之处不再赘述。
2、扩展三维地图的场景。
用户在电子设备显示的AR场景中游玩时,可以点击AR场景中的扩展控件,触发电子设备对当前AR场景对应的三维地图进行扩展。例如,图19为本申请实施例提供的一种用户触发扩展三维地图的示意图。参考图19,用户可以点击图19所示的显示界面中的扩展控件,以触发电子设备进行三维地图的扩展。
电子设备在接收到用户触发的扩展三维地图的指令后,向分布式建图系统发送扩展三维地图的请求消息,该请求消息中包括三维地图的标识以及第一用户图像。第一用户图像为电子设备在接收到用户触发的扩展三维地图的指令后对当前所处环境采集到的环境图像。分布式建图系统中的计算节点对第一用户图像进行图像处理,获取第一用户图像的全局特征和局部特征。计算节点根据三维地图的标识获取三维地图对应的多帧环境图像,并根据多帧环境图像的全局特征和第一用户图像的全局特征确定与第一用户图像匹配的环境图像。其中,与第一用户图像匹配的环境图像可以为全局特征与第一用户图像的全局特征相似的环境图像。计算节点根据第一用户图像和与第一用户图像匹配的环境图像确定第一用户图像相对于环境图像对应的三维坐标系的目标位姿信息,并根据第一用户图像的初始位姿信息和目标位姿信息确定第一用户图像对应的目标转换关系,该目标转换关系为第一环境图像对应的三维坐标系和环境图像对应的三维坐标系之间的转换关系。
电子设备可以显示引导用户扫描当前所处环境的信息,用户持电子设备对当前所处的环境进行扫描。电子设备将扫描拍摄得到的视频中满足关键帧要求的第一环境图像上传至分布式建图系统。分布式建图系统在接收到电子设备上传的第一环境图像后,根据目标转换关系对第一环境图像的位姿信息进行转换,得到第一环境图像的目标位姿信息,从而将电子设备上传的多帧第一环境图像注册到三维地图对应的多帧环境图像组成的图形序列中。分布式建图系统可以根据原三维地图对应的多帧环境图像和位姿转换后的多帧第一环境图像生成目标三维地图,该目标三维地图可以看作对用户选择的原三维地图进行扩展后的三维地图。其中,分布式建图系统根据原三维地图对应的多帧环境图像和位姿转换后的多帧第一环境图像生成目标三维地图的具体实施可以参见本申请实施例中数据采集和建图阶段的内容,重复之处不再赘述。
基于以上实施例,本申请还提供一种多设备创建三维地图的方法。该方法可以由图2所示的增强现实系统中的第一电子设备、第二电子设备和分布式建图系统执行,第一电子设备和第二电子设备可以具有本申请实施例中图3和/或图4所示的结构,分布式建图系统可以具有本申请实施例中图5所示的结构。图20为本申请实施例提供的一种多设备创建三维地图的方法流程图。参考图20,该方法包括以下步骤:
S2001:第一电子设备向分布式建图系统发送多帧第一环境图像和每帧第一环境图像的位姿信息。
其中,第一环境图像为第一电子设备对所处环境拍摄得到的,每帧第一环境图像的位姿信息用于表示第一电子设备在拍摄第一环境图像时在第一电子设备对应的三维坐标系中的位置和朝向。
S2002:第二电子设备向分布式建图系统发送多帧第二环境图像和每帧第二环境图像的初始位姿信息。
其中,第二环境图像为第二电子设备对所处环境拍摄得到的,每帧第二环境图像的初始位姿信息用于表示第二电子设备在拍摄第二环境图像时在第二电子设备对应的三维坐标系中的位置和朝向。
S2003:分布式建图系统根据目标转换关系对多帧第二环境图像的初始位姿信息进行位姿转换,得到每帧第二环境图像的目标位姿信息。
其中,目标位姿信息用于表示第二电子设备在拍摄第二环境图像时在第一电子设备对应的三维坐标系中的位置和朝向;目标转换关系为第二电子设备对应的三维坐标系与第一电子设备对应的三维坐标系之间的转换关系。
S2004:分布式建图系统根据多帧第一环境图像、每帧第一环境图像的位姿信息、多帧第二环境图像以及每帧第二环境图像的目标位姿信息创建三维地图。
其中,三维地图可以用于构建增强现实场景。
需要说明的是,本申请图20所示的多设备创建三维地图方法的具体实时可以参见以上各实施例实施,重复之处不再赘述。
基于以上实施例,本申请还提供一种电子设备,所述电子设备包括多个功能模块;所述多个功能模块相互作用,实现本申请实施例所描述的各方法中第一电子设备或第二电子设备所执行的功能。如执行图15所示实施例中第一电子设备执行的S1501-S1502、S1508-S1509、S1515-S1516,或执行图15所示实施例中第一电子设备执行的S1504-S1505、S1510-S1511、S1517-S1518。所述多个功能模块可以基于软件、硬件或软件和硬件的结合实现,且所述多个功能模块可以基于具体实现进行任意组合或分割。
基于以上实施例,本申请还提供一种电子设备,该电子设备包括至少一个处理器和至少一个存储器,所述至少一个存储器中存储计算机程序指令,所述电子设备运行时,所述至少一个处理器执行本申请实施例所描述的各方法中第一电子设备或第二电子设备所执行的功能。如执行图15所示实施例中第一电子设备执行的S1501-S1502、S1508-S1509、S1515-S1516,或执行图15所示实施例中第一电子设备执行的S1504-S1505、S1510-S1511、S1517-S1518。
基于以上实施例,本申请还提供一种分布式建图系统,所述分布式建图系统包括多个计算节点,所述多个计算节点并行/串行处理数据。每个计算节点用于执行本申请实施例所描述的各方法中分布式建图系统所执行的功能。如执行图15所示实施例中的S1503、S1506-S1507、S1512-S1513、S1519-S1521。
进一步地,多个计算节点可以包括多个CPU算法组件和多个GPU算法组件,其中,GPU算法组件可以执行图像处理等过程,CPU算法组件可以执行数据处理等过程。例如,GPU算法组件可以执行图15所示实施例中的S1506;CPU算法组件可以执行图15所示实施例中的S1507、S1512等步骤。
基于以上实施例,本申请还提供一种计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行本申请实施例所描述的各方法。
基于以上实施例,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当所述计算机程序被计算机执行时,使得所述计算机执行本申请实施例所描述的各方法。
基于以上实施例,本申请还提供了一种芯片,所述芯片用于读取存储器中存储的计算机程序,实现本申请实施例所描述的各方法。
基于以上实施例,本申请提供了一种芯片系统,该芯片系统包括处理器,用于支持计算机装置实现本申请实施例所描述的各方法。在一种可能的设计中,所述芯片系统还包括存储器,所述存储器用于保存该计算机装置必要的程序和数据。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的保护范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (25)
1.一种增强现实系统,其特征在于,所述增强现实系统包括第一电子设备、第二电子设备和分布式建图系统;
所述第一电子设备,用于向所述分布式建图系统发送多帧第一环境图像和每帧第一环境图像的位姿信息;所述第一环境图像为所述第一电子设备对所处环境拍摄得到的,每帧第一环境图像的位姿信息用于表示所述第一电子设备在拍摄第一环境图像时在所述第一电子设备对应的三维坐标系中的位置和朝向;
所述第二电子设备,用于向所述分布式建图系统发送多帧第二环境图像和每帧第二环境图像的初始位姿信息,所述第二环境图像为所述第二电子设备对所处环境拍摄得到的,每帧第二环境图像的初始位姿信息用于表示所述第二电子设备在拍摄第二环境图像时在所述第二电子设备对应的三维坐标系中的位置和朝向;
所述分布式建图系统,用于接收所述第一电子设备发送的所述多帧第一环境图像和每帧第一环境图像的位姿信息;接收所述第二电子设备发送的所述多帧第二环境图像和每帧第二环境图像的初始位姿信息;根据目标转换关系对所述多帧第二环境图像的初始位姿信息进行位姿转换,得到每帧第二环境图像的目标位姿信息,所述目标位姿信息用于表示所述第二电子设备在拍摄第二环境图像时在所述第一电子设备对应的三维坐标系中的位置和朝向;所述目标转换关系为所述第二电子设备对应的三维坐标系与所述第一电子设备对应的三维坐标系之间的转换关系;根据所述多帧第一环境图像、每帧第一环境图像的位姿信息、所述多帧第二环境图像以及每帧第二环境图像的目标位姿信息创建三维地图,所述三维地图用于构建增强现实场景。
2.如权利要求1所述的增强现实系统,其特征在于,
所述第一电子设备还用于:
在向所述分布式建图系统发送所述多帧第一环境图像和每帧第一环境图像的位姿信息之前,向所述分布式建图系统发送多设备建图请求,所述多设备建图请求中包括多帧第一初始图像以及每帧第一初始图像的定位信息;所述多帧第一初始图像为所述第一电子设备对所处环境拍摄得到的;
所述第二电子设备还用于:
在向所述分布式建图系统发送所述多帧第二环境图像和每帧第二环境图像的初始位姿信息之前,向所述分布式建图系统发送加入建图请求,所述加入建图请求中包括多帧第二初始图像;所述多帧第二初始图像为所述第二电子设备对所处环境拍摄得到的;
所述分布式建图系统还用于:
接收所述第一电子设备发送的所述多设备建图请求,根据所述多设备建图请求中的多帧第一初始图像以及每帧第一初始图像的定位信息生成初始三维地图;接收所述第二电子设备发送的加入建图请求,根据所述多帧第二初始图像和所述初始三维地图确定所述目标转换关系。
3.如权利要求2所述的增强现实系统,其特征在于,所述分布式建图系统还用于:
在接收到所述多帧第二初始图像之后,根据所述多帧第二初始图像和所述初始三维地图确定目标转换关系之前,对所述多帧第二初始图像进行图像处理,确定至少一帧第二初始图像与任一帧第一初始图像包含相同的图像内容。
4.如权利要求3所述的增强现实系统,其特征在于,所述分布式建图系统具体用于:
提取目标初始图像的全局特征和特征点,所述目标初始图像为任一帧第二初始图像;
根据所述目标初始图像的全局特征确定与所述目标初始图像匹配的至少一帧第一初始图像,并确定与所述目标初始图像匹配的至少一帧第一初始图像中的特征点在三维地图中对应的三维点,将确定出的三维点作为所述目标初始图像的特征点对应的三维点;
根据所述目标初始图像的特征点、所述目标初始图像的特征点对应的三维点以及第二电子设备的相机内参确定所述目标初始图像的目标位姿信息;
根据所述目标初始图像的初始位姿信息和所述目标初始图像的目标位姿信息确定所述目标转换关系。
5.如权利要求2-4任一项所述的增强现实系统,其特征在于,
所述分布式建图系统还用于:
根据所述初始三维地图中的三维点生成点云资源;
接收所述第一电子设备发送定位请求,所述定位请求中包括所述第一电子设备采集到的环境图像;根据所述定位请求中的环境图像和所述初始三维地图对所述第一电子设备进行定位,确定所述第一电子设备在所述初始三维地图的三维坐标系中的位姿;
向所述第一电子设备发送所述第一电子设备在所述初始三维地图的三维坐标系中的位姿和所述点云资源;
所述第一电子设备还用于:
向所述分布式建图系统发送定位请求;
接收所述分布式建图系统发送的所述第一电子设备在所述初始三维地图的三维坐标系中的位姿和所述点云资源;
根据所述第一电子设备在所述初始三维地图的三维坐标系中的位姿显示所述第一电子设备实时采集的环境图像和所述点云资源,以表示所述点云资源覆盖的区域已完成扫描。
6.如权利要求1所述的增强现实系统,其特征在于,所述分布式建图系统具体用于:
从所述多帧第一环境图像和所述多帧第二环境图像中选择待处理的一帧图像作为目标图像,并对所述目标图像进行目标处理过程,至所述多帧第一环境图像和所述多帧第二环境图像均已进行所述目标处理过程;
所述目标处理过程包括以下步骤:提取所述目标图像的第一特征点;获取已进行所述目标处理过程的至少一帧图像的特征点;在所述至少一帧图像的特征点中选择至少一个第二特征点与所述第一特征点组成特征匹配对;其中,所述第一特征点和所述至少一个第二特征点对应所述环境中的同一点;所述已进行所述目标处理过程的至少一帧图像包括已进行所述目标处理过程的至少一帧第一环境图像和/或至少一帧第二环境图像;
获取对所述多帧第一环境图像和所述多帧第二环境图像进行目标处理过程后得到的多个特征匹配对,并根据所述多个特征匹配对创建所述三维地图。
7.如权利要求6所述的增强现实系统,其特征在于,所述分布式建图系统具体用于:
根据所述多帧第一环境图像的位姿信息和所述多帧第二环境图像的目标位姿信息,确定所述多个特征匹配对在所述第一电子设备对应的三维坐标系中对应的多个三维点,得到所述三维地图。
8.如权利要求7所述的增强现实系统,其特征在于,
所述第一电子设备还用于:
向所述分布式建图系统发送每帧第一环境图像对应的定位信息;
所述第二电子设备还用于:
向所述分布式建图系统发送每帧第二环境图像对应的定位信息;
所述分布式建图系统还用于:
接收所述第一电子设备发送的每帧第一环境图像对应的定位信息;接收所述第二电子设备发送的每帧第二环境图像对应的定位信息;根据每帧第一环境图像对应的定位信息和每帧第二环境图像对应的定位信息对所述三维点的坐标进行调整,得到与真实环境等比例的三维地图。
9.如权利要求1-8任一项所述的增强现实系统,其特征在于,
所述第一电子设备还用于:
采集所述多帧第一环境图像对应的第一深度图,将所述第一深度图发送给所述分布式建图系统;
所述第二电子设备还用于:
采集所述多帧第一环境图像对应的第二深度图,将所述第二深度图发送给所述分布式建图系统;
所述分布式建图系统还用于:
接收所述第一电子设备发送的所述第一深度图;接收所述第二电子设备发送的所述第二深度图;根据所述目标转换关系对所述第二深度图进行坐标转换,对所述第一深度图和坐标转换后的第二深度图进行融合处理,得到完整深度图;根据所述完整深度图生成真实环境对应的白膜;其中,所述白膜用于表示所述真实环境中的各物体的表面。
10.如权利要求1-8任一项所述的增强现实系统,其特征在于,所述分布式建图系统还用于:
基于多视图立体匹配算法确定每帧第一环境图像的深度信息和每帧第二环境图像的深度信息,根据每帧第一环境图像的深度信息和每帧第二环境图像的深度信息生成真实环境对应的白膜;其中,所述白膜用于表示所述真实环境中的各物体的表面。
11.如权利要求1所述的增强现实系统,其特征在于,
所述分布式建图系统还用于:
将所述三维地图发送给所述第一电子设备和所述第二电子设备;
接收所述第一电子设备发送的定位请求,确定所述第一电子设备在所述三维地图的三维坐标系中的第一位姿,将所述第一位姿发送给所述第一电子设备和所述第二电子设备;
接收所述第二电子设备发送的定位请求,确定所述第二电子设备在所述三维地图的三维坐标系中的第二位姿,将所述第二位姿发送给所述第一电子设备和所述第二电子设备;
所述第一电子设备还用于:
接收所述分布式建图系统发送的所述三维地图;
向所述分布式建图系统发送定位请求,接收所述分布式建图系统发送的所述第一位姿和所述第二位姿,根据所述第一位姿和所述三维地图显示增强现实场景,并根据所述第二位姿显示拍摄到的使用所述第二电子设备的用户的图像以及所述第二电子设备对应的三维数字资源模型。
12.一种多设备创建三维地图的方法,其特征在于,应用于分布式建图系统,所述方法包括:
接收第一电子设备发送的多帧第一环境图像和每帧第一环境图像的位姿信息;所述第一环境图像为所述第一电子设备对所处环境拍摄得到的,每帧第一环境图像的位姿信息用于表示所述第一电子设备在拍摄第一环境图像时在所述第一电子设备对应的三维坐标系中的位置和朝向;
接收第二电子设备发送的多帧第二环境图像和每帧第二环境图像的初始位姿信息,所述第二环境图像为所述第二电子设备对所处环境拍摄得到的,每帧第二环境图像的初始位姿信息用于表示所述第二电子设备在拍摄第二环境图像时在所述第二电子设备对应的三维坐标系中的位置和朝向;
根据目标转换关系对所述多帧第二环境图像的初始位姿信息进行位姿转换,得到每帧第二环境图像的目标位姿信息,所述目标位姿信息用于表示所述第二电子设备在拍摄第二环境图像时在所述第一电子设备对应的三维坐标系中的位置和朝向;所述目标转换关系为所述第二电子设备对应的三维坐标系与所述第一电子设备对应的三维坐标系之间的转换关系;
根据所述多帧第一环境图像、每帧第一环境图像的位姿信息、所述多帧第二环境图像以及每帧第二环境图像的目标位姿信息创建三维地图,所述三维地图用于构建增强现实场景。
13.如权利要求12所述的方法,其特征在于,所述方法还包括:
在接收所述第一电子设备发送的所述多帧第一环境图像和每帧第一环境图像的位姿信息之前,接收所述第一电子设备发送的多设备建图请求,所述多设备建图请求中包括多帧第一初始图像以及每帧第一初始图像的定位信息,所述多帧第一初始图像为所述第一电子设备对所处环境拍摄得到的;
在接收所述第二电子设备发送的所述多帧第二环境图像和每帧第二环境图像的初始位姿信息之前,接收所述第二电子设备发送的加入建图请求,所述加入建图请求中包括多帧第二初始图像,所述多帧第二初始图像为所述第二电子设备对所处环境拍摄得到的;
根据所述多设备建图请求中的多帧第一初始图像以及每帧第一初始图像的定位信息生成初始三维地图;
根据所述多帧第二初始图像和所述初始三维地图确定所述目标转换关系。
14.如权利要求12所述的方法,其特征在于,在所述接收到所述多帧第二初始图像之后,根据所述多帧第二初始图像和所述初始三维地图确定目标转换关系之前,所述方法还包括:
对所述多帧第二初始图像进行图像处理,确定至少一帧第二初始图像与任一帧第一初始图像包含相同的图像内容。
15.如权利要求14所述的方法,其特征在于,所述根据所述多帧第二初始图像和所述初始三维地图确定所述目标转换关系,包括:
提取目标初始图像的全局特征和特征点,所述目标初始图像为任一帧第二初始图像;
根据所述目标初始图像的全局特征确定与所述目标初始图像匹配的至少一帧第一初始图像,并确定与所述目标初始图像匹配的至少一帧第一初始图像中的特征点在三维地图中对应的三维点,将确定出的三维点作为所述目标初始图像的特征点对应的三维点;
根据所述目标初始图像的特征点、所述目标初始图像的特征点对应的三维点以及第二电子设备的相机内参确定所述目标初始图像的目标位姿信息;
根据所述目标初始图像的初始位姿信息和所述目标初始图像的目标位姿信息确定所述目标转换关系。
16.如权利要求13-15任一项所述的方法,其特征在于,所述方法还包括:
根据所述初始三维地图中的三维点生成点云资源;
接收所述第一电子设备发送定位请求,所述定位请求中包括所述第一电子设备采集到的环境图像;根据所述定位请求中的环境图像和所述初始三维地图对所述第一电子设备进行定位,确定所述第一电子设备在所述初始三维地图的三维坐标系中的位姿;
向所述第一电子设备发送所述第一电子设备在所述初始三维地图的三维坐标系中的位姿和所述点云资源,以使第一电子设备根据所述第一电子设备在所述初始三维地图的三维坐标系中的位姿显示所述第一电子设备实时采集的环境图像和所述点云资源,以表示所述点云资源覆盖的区域已完成扫描。
17.如权利要求12所述的方法,其特征在于,所述根据所述多帧第一环境图像、每帧第一环境图像的位姿信息、所述多帧第二环境图像以及每帧第二环境图像的目标位姿信息创建三维地图,包括:
从所述多帧第一环境图像和所述多帧第二环境图像中选择待处理的一帧图像作为目标图像,并对所述目标图像进行目标处理过程,至所述多帧第一环境图像和所述多帧第二环境图像均已进行所述目标处理过程;
所述目标处理过程包括以下步骤:提取所述目标图像的第一特征点;获取已进行所述目标处理过程的至少一帧图像的特征点;在所述至少一帧图像的特征点中选择至少一个第二特征点与所述第一特征点组成特征匹配对;其中,所述第一特征点和所述至少一个第二特征点对应所述环境中的同一点;所述已进行所述目标处理过程的至少一帧图像包括至少一帧第一环境图像和/或至少一帧第二环境图像;
获取对所述多帧第一环境图像和所述多帧第二环境图像进行目标处理过程后得到的多个特征匹配对,并根据所述多个特征匹配对创建所述三维地图。
18.如权利要求17所述的方法,其特征在于,所述根据所述多个特征匹配对创建所述三维地图,包括:
根据所述多帧第一环境图像的位姿信息和所述多帧第二环境图像的目标位姿信息,确定所述多个特征匹配对在所述第一电子设备对应的三维坐标系中对应的多个三维点,得到所述三维地图。
19.如权利要求18所述的方法,其特征在于,所述方法还包括:
接收所述第一电子设备发送的每帧第一环境图像对应的定位信息;
接收所述第二电子设备发送的每帧第二环境图像对应的定位信息;
根据每帧第一环境图像对应的定位信息和每帧第二环境图像对应的定位信息对所述三维点的坐标进行调整,得到与真实环境等比例的三维地图。
20.如权利要求12-19任一项所述的方法,其特征在于,所述方法还包括:
接收所述第一电子设备发送的所述多帧第一环境图像对应的第一深度图;
接收所述第二电子设备发送的所述多帧第一环境图像对应的第二深度图;
根据所述目标转换关系对所述第二深度图进行坐标转换,对所述第一深度图和坐标转换后的第二深度图进行融合处理,得到完整深度图;
根据所述完整深度图生成真实环境对应的白膜;其中,所述白膜用于表示所述真实环境中的各物体的表面。
21.如权利要求12-19任一项所述的方法,其特征在于,所述方法还包括:
基于多视图立体匹配算法确定每帧第一环境图像的深度信息和每帧第二环境图像的深度信息,根据每帧第一环境图像的深度信息和每帧第二环境图像的深度信息生成真实环境对应的白膜;其中,所述白膜用于表示所述真实环境中的各物体的表面。
22.如权利要求12所述的方法,其特征在于,所述方法还包括:
将所述三维地图发送给所述第一电子设备和所述第二电子设备;
接收所述第一电子设备发送的定位请求,确定所述第一电子设备在所述三维地图的三维坐标系中的第一位姿,将所述第一位姿发送给所述第一电子设备和所述第二电子设备;
接收所述第二电子设备发送的定位请求,确定所述第二电子设备在所述三维地图的三维坐标系中的第二位姿,将所述第二位姿发送给所述第一电子设备和所述第二电子设备,以使第一电子设备根据所述第一位姿和所述三维地图显示增强现实场景,并根据所述第二位姿显示拍摄到的使用所述第二电子设备的用户的图像以及所述第二电子设备对应的三维数字资源模型。
23.一种分布式建图系统,其特征在于,所述分布式建图系统包括多个计算节点,所述多个计算节点并行/串行处理数据,每个计算节点用于执行如权利要求12-22任一项所述的方法。
24.一种电子设备,其特征在于,包括至少一个处理器,所述至少一个处理器与至少一个存储器耦合,所述至少一个处理器用于读取所述至少一个存储器所存储的计算机程序,以执行如权利要求1-11中任一所述的增强现实系统中第一电子设备或第二电子设备的功能。
25.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行如权利要求1-11中任一所述的增强现实系统中第一电子设备或第二电子设备所执行的方法,或执行如权利要求12-22中任一所述的分布式建图系统所执行的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210010556.3A CN116452778A (zh) | 2022-01-06 | 2022-01-06 | 一种增强现实系统、多设备构建三维地图的方法及设备 |
PCT/CN2022/144274 WO2023131090A1 (zh) | 2022-01-06 | 2022-12-30 | 一种增强现实系统、多设备构建三维地图的方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210010556.3A CN116452778A (zh) | 2022-01-06 | 2022-01-06 | 一种增强现实系统、多设备构建三维地图的方法及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116452778A true CN116452778A (zh) | 2023-07-18 |
Family
ID=87073175
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210010556.3A Pending CN116452778A (zh) | 2022-01-06 | 2022-01-06 | 一种增强现实系统、多设备构建三维地图的方法及设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN116452778A (zh) |
WO (1) | WO2023131090A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117369633A (zh) * | 2023-10-07 | 2024-01-09 | 上海铱奇科技有限公司 | 一种基于ar的信息交互方法及系统 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116738552B (zh) * | 2023-08-11 | 2023-10-27 | 和欣汇达(山东)科技有限公司 | 一种基于物联网的环境检测设备管理方法及系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107665506B (zh) * | 2016-07-29 | 2021-06-01 | 成都理想境界科技有限公司 | 实现增强现实的方法及系统 |
KR102647351B1 (ko) * | 2017-01-26 | 2024-03-13 | 삼성전자주식회사 | 3차원의 포인트 클라우드를 이용한 모델링 방법 및 모델링 장치 |
CN110163963B (zh) * | 2019-04-12 | 2023-06-20 | 南京华捷艾米软件科技有限公司 | 一种基于slam的建图装置和建图方法 |
CN111174799B (zh) * | 2019-12-24 | 2023-02-17 | Oppo广东移动通信有限公司 | 地图构建方法及装置、计算机可读介质、终端设备 |
-
2022
- 2022-01-06 CN CN202210010556.3A patent/CN116452778A/zh active Pending
- 2022-12-30 WO PCT/CN2022/144274 patent/WO2023131090A1/zh unknown
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117369633A (zh) * | 2023-10-07 | 2024-01-09 | 上海铱奇科技有限公司 | 一种基于ar的信息交互方法及系统 |
CN117369633B (zh) * | 2023-10-07 | 2024-08-23 | 九转棱镜(北京)科技有限公司 | 一种基于ar的信息交互方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2023131090A1 (zh) | 2023-07-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116320782B (zh) | 一种控制方法、电子设备、计算机可读存储介质、芯片 | |
CN111324327A (zh) | 投屏方法及终端设备 | |
WO2023131090A1 (zh) | 一种增强现实系统、多设备构建三维地图的方法及设备 | |
CN114168235B (zh) | 一种功能切换入口的确定方法与电子设备 | |
CN112287852B (zh) | 人脸图像的处理方法、显示方法、装置及设备 | |
WO2021115483A1 (zh) | 一种图像处理方法及相关装置 | |
WO2023124948A1 (zh) | 一种三维地图的创建方法及电子设备 | |
WO2023284715A1 (zh) | 一种物体重建方法以及相关设备 | |
CN112989092A (zh) | 一种图像处理方法及相关装置 | |
WO2022161386A1 (zh) | 一种位姿确定方法以及相关设备 | |
CN114970589A (zh) | 一种扫码方法及终端 | |
CN115147492A (zh) | 一种图像处理方法以及相关设备 | |
CN115147288A (zh) | 图像处理方法及电子设备 | |
WO2023231697A1 (zh) | 一种拍摄方法及相关设备 | |
WO2023051383A1 (zh) | 一种设备定位方法、设备及系统 | |
CN115499577B (zh) | 一种图像处理方法及终端设备 | |
CN116723383B (zh) | 一种拍摄方法及相关设备 | |
CN114615362B (zh) | 相机控制方法、装置和存储介质 | |
WO2023131089A1 (zh) | 一种增强现实系统、增强现实场景定位方法及设备 | |
CN112862977A (zh) | 数字空间的管理方法、装置与设备 | |
CN114827439A (zh) | 一种全景图像的拍摄方法及电子设备 | |
WO2024046162A1 (zh) | 一种图片推荐方法及电子设备 | |
CN116761082B (zh) | 图像处理方法及装置 | |
CN112783993B (zh) | 基于数字地图的多个授权空间的内容同步方法 | |
CN117152338A (zh) | 一种建模方法与电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |