CN110956571B - 基于slam进行虚实融合的方法及电子设备 - Google Patents
基于slam进行虚实融合的方法及电子设备 Download PDFInfo
- Publication number
- CN110956571B CN110956571B CN201910958712.7A CN201910958712A CN110956571B CN 110956571 B CN110956571 B CN 110956571B CN 201910958712 A CN201910958712 A CN 201910958712A CN 110956571 B CN110956571 B CN 110956571B
- Authority
- CN
- China
- Prior art keywords
- image
- dimensional model
- cpu
- accelerator
- dimensional
- 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.)
- Active
Links
- 238000007500 overflow downdraw method Methods 0.000 title claims description 7
- 238000000034 method Methods 0.000 claims abstract description 95
- 230000004927 fusion Effects 0.000 claims abstract description 41
- 238000012545 processing Methods 0.000 claims abstract description 29
- 238000010276 construction Methods 0.000 claims abstract description 18
- 230000004807 localization Effects 0.000 claims abstract description 4
- 238000009877 rendering Methods 0.000 claims description 43
- 239000000284 extract Substances 0.000 claims description 35
- 230000033001 locomotion Effects 0.000 claims description 33
- 230000003190 augmentative effect Effects 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 8
- 238000004458 analytical method Methods 0.000 abstract description 24
- 238000005516 engineering process Methods 0.000 abstract description 17
- 238000013473 artificial intelligence Methods 0.000 abstract description 3
- 230000006854 communication Effects 0.000 description 41
- 238000004891 communication Methods 0.000 description 38
- 230000008569 process Effects 0.000 description 24
- 230000006870 function Effects 0.000 description 23
- 238000010586 diagram Methods 0.000 description 18
- 230000001133 acceleration Effects 0.000 description 14
- 230000006399 behavior Effects 0.000 description 14
- 238000010295 mobile communication Methods 0.000 description 13
- 230000005236 sound signal Effects 0.000 description 13
- 230000009471 action Effects 0.000 description 12
- 238000004422 calculation algorithm Methods 0.000 description 10
- 241000086550 Dinosauria Species 0.000 description 8
- 210000004027 cell Anatomy 0.000 description 8
- 230000008859 change Effects 0.000 description 8
- 238000007726 management method Methods 0.000 description 8
- 230000001815 facial effect Effects 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 6
- 230000001413 cellular effect Effects 0.000 description 5
- 229920001621 AMOLED Polymers 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000007613 environmental effect Effects 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- 230000007774 longterm Effects 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 241001465754 Metazoa Species 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000008921 facial expression Effects 0.000 description 2
- 230000005484 gravity Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 239000002096 quantum dot Substances 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 101100119135 Mus musculus Esrrb gene Proteins 0.000 description 1
- 208000006930 Pseudomyxoma Peritonei Diseases 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 230000007175 bidirectional communication Effects 0.000 description 1
- 238000013529 biological neural network Methods 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000704 physical effect Effects 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 229920000306 polymethylpentene Polymers 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001629 suppression Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Computer Hardware Design (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请公开了一种基于同时定位与地图构建SLAM进行虚实融合的方法及电子设备,涉及人工智能(Artificial Intelligence,AI)领域的计算机视觉技术,可以在进行虚实融合时,通过第一加速器、第二加速器、中央处理单元CPU和图形处理单元GPU的分工合作,解决常规技术中由于CPU负荷过高导致的电子设备温度过高,以及CPU被长时间占用导致的CPU无法支持用户发起的其他任务请求的问题。具体的,本申请将对用于描述第一对象的图像进行特征分析的任务分配给第一加速器,将确定具有匹配关系的特征点的任务分配给的第二加速器,将确定电子设备空间位姿,以及确定第一对象的三维点云的任务分配给CPU,将构建第一对象的三维模型以及基于第一对象的三维模型进行虚实融合的任务分配给GPU。
Description
技术领域
本申请实施例涉及AI领域的计算机视觉技术,尤其涉及一种基于同时定位与地图构建(Simultaneous Localization And Mapping,SLAM)进行虚实融合的方法及电子设备。
背景技术
目前,增强现实(Augmented Reality,AR)技术越来越多的应用在网络购物、教育、医疗、游戏、导航等领域。其中,AR技术是一种将虚拟数字内容(例如三维模型)和真实物理世界进行叠加显示的技术。例如,手机将虚拟家具与手机摄像头采集的用于描述用户家中客厅空间环境的预览图像叠加,在显示屏上展示虚拟家具摆放在客厅中的效果。
通常,手机可以通过中央处理单元(Central Processing Unit,CPU)分析得到的手机在客厅空间中的位置和姿态,以及CPU构建的客厅空间环境的三维模型,将虚拟家具以与客厅空间环境以及手机位置和姿态匹配的位置和朝向“摆放”在客厅中。
但是,由于上述AR技术所涉及的计算量过大,若由CPU完成上述AR技术所涉及的所有计算过程,会导致CPU负荷过高,导致手机温度过高。另外,上述AR技术所涉及的计算量过大会导致CPU资源被上述AR技术所涉及的计算长时间占用时,会导致用户在使用其他任务请求时,由于CPU资源被占用无法及时处理,影响用户体验。
发明内容
本申请实施例提供一种基于SLAM进行虚实融合的方法,可以解决由于CPU负荷过高导致的温度过高的问题,以及解决CPU被长时间占用导致的CPU无法支持用户发起的其他任务请求的问题。
为达到上述目的,本申请实施例采用如下技术方案:
第一方面,提供一种基于SLAM进行虚实融合的方法,该方法应用于电子设备,该电子设备包括CPU,第一加速器,第二加速器和GPU,该方法包括:第一加速器提取第一图像的特征点,第一加速器提取第二图像的特征点;该第一图像和第二图像由电子设备的摄像头采集得到;该第一图像和第二图像的特征点用于描述第一对象;第二加速器确定上述第二图像中,与第一图像具有匹配关系的特征点;CPU分析采集上述第二图像时电子设备的运动数据,确定采集上述第二图像时电子设备的空间位姿;CPU根据采集上述第二图像时电子设备的空间位姿,将第二图像中与第一图像具有匹配关系的特征点转换至预设三维坐标系中,得到第一对象的三维点云;GPU根据采集上述第二图像电子设备的空间位姿以及第一对象的三维点云渲染得到第一对象的三维模型;CPU获取第二对象的三维模型;GPU将第二对象的三维模型叠加至第一对象的三维模型中。
上述第一方面提供的技术方案,电子设备将对用于描述第一对象的第一图像和第二图像进行特征分析的任务分配给电子设备的第一加速器来完成,将确定第二图像中与第一图像具有匹配关系的特征点的任务分配给电子设备的第二加速器来完成,将确定采集第二图像时电子设备的空间位姿,以及将第二图像中与第一图像具有匹配关系的特征点转换至预设三维坐标系的任务分配给电子设备的CPU来完成,将构建第一对象的三维模型以及基于第一对象的三维模型进行虚实融合的任务分配给电子设备的GPU来完成。通过上述第一加速器、第二加速器、CPU和GPU的分工合作,可以解决由于CPU负荷过高导致的温度过高的问题,以及解决CPU被长时间占用导致的CPU无法支持用户发起的其他任务请求的问题。
结合第一方面,在第一种可能的实现方式中,在GPU将所述第二对象的三维模型叠加至第一对象的三维模型中之前,上述方法还包括:CPU确定第二对象的三维模型在第一对象的三维模型中的第一位置,以及第二对象的三维模型在第一对象的三维模型中的第一姿态;GPU将所述第二对象的三维模型叠加至第一对象的三维模型中,包括:GPU将第二对象的三维模型以第一姿态叠加至第一对象的三维模型中的第一位置。通过这样的处理,第二对象的三维模型可以以与第一对象的三维模型匹配的“摆放”姿态融合至第一对象的三维模型中。
结合第一方面以及第一方面第一种可能的实现方式,在第二种可能的实现方式中,第一加速器提取第一图像的特征点,包括:第一加速器确定上述第一图像中用于描述第一对象的特征点的坐标和特征描述子,该特征描述子用于表征对应特征点的灰度值;第一加速器提取第二图像的特征点,包括:第一加速器确定上述第二图像中用于描述所述第一对象的特征点的坐标和特征描述子,该特征描述子用于表征对应特征点的灰度值。通过提取第一对象的特征点的坐标和特征描述子,可以方便对第一对象特征点的跟踪,以及后续的三维点云的确定,使得第一对象的三维模型的构建更加接近于真实的第一对象。
结合第一方面以及第一方面第一种和第二种可能的实现方式,在第三种可能的实现方式中,上述第二图像中,与第一图像具有匹配关系的特征点包括上述第二图像中,与第一图像的特征匹配度大于预设阈值的特征点。
结合第一方面以及第一方面第一种至第三种可能的实现方式,在第四种可能的实现方式中,在GPU根据采集上述第二图像时电子设备的空间位姿以及第一对象的三维点云渲染得到第一对象的三维模型之前,上述方法还包括:CPU获取第一对象的深度信息;GPU根据采集上述第二图像时电子设备的空间位姿以及第一对象的三维点云渲染得到第一对象的三维模型,包括:GPU根据采集上述第二图像时电子设备的空间位姿以及第一对象的三维点云,结合上述第一对象的深度信息渲染得到第一对象的三维模型。通过结合第一对象的深度信息构建第一对象的三维模型,可以使得第一对象的三维模型的构建更加接近于真实的第一对象。
结合第一方面以及第一方面第一种至第四种可能的实现方式,在第五种可能的实现方式中,在CPU获取第二对象的三维模型之前,上述方法还包括:第一加速器提取第三图像的特征点,第一加速器提取第四图像的特征点;上述第三图像和第四图像由电子设备从第三方处获得;上述第三图像和第四图像的特征点用于描述第二对象;第二加速器确定所述上述第四图像中,与第三图像具有匹配关系的特征点;CPU将上述第四图像中与第三图像具有匹配关系的特征点转换至预设三维坐标系中,得到第二对象的三维点云;其中,上述第二对象的三维模型为增强现实AR模型;CPU获取第二对象的三维模型包括:CPU根据第二对象的三维点云渲染得到第二对象的AR模型。电子设备将对用于描述第二对象的第三图像和第四图像进行特征分析的任务分配给电子设备的第一加速器来完成,将确定第四图像中与第三图像具有匹配关系的特征点的任务分配给电子设备的第二加速器来完成,将确定采集第四图像时电子设备的空间位姿,以及将第四图像中与第三图像具有匹配关系的特征点转换至预设三维坐标系的任务分配给电子设备的CPU来完成,将构建第二对象的AR模型以及基于第二对象的AR模型进行虚实融合的任务分配给电子设备的GPU来完成。通过上述第一加速器、第二加速器、CPU和GPU的分工合作,可以解决由于CPU负荷过高导致的温度过高的问题,以及解决CPU被长时间占用导致的CPU无法支持用户发起的其他任务请求的问题。
结合第一方面以及第一方面第一种至第四种可能的实现方式,在第六种可能的实现方式中,在CPU获取第二对象的三维模型之前,上述方法还包括:第一加速器提取第三图像的特征点,第一加速器提取第四图像的特征点;上述第三图像和第四图像由电子设备的摄像头采集得到;上述第三图像和第四图像的特征点用于描述第二对象;CPU分析采集上述第四图像时电子设备的运动数据,确定电子设备采集上述第四图像时的空间位姿;CPU根据采集上述第四图像时电子设备的空间位姿,将上述第四图像中与第三图像具有匹配关系的特征点转换至预设三维坐标系中,得到第二对象的三维点云;其中,上述第二对象的三维模型为增强现实AR模型;CPU获取第二对象的三维模型包括:GPU根据采集上述第二图像时电子设备的空间位姿以及第二对象的三维点云渲染得到第二对象的AR模型。电子设备将对用于描述第二对象的第三图像和第四图像进行特征分析的任务分配给电子设备的第一加速器来完成,将确定第四图像中与第三图像具有匹配关系的特征点的任务分配给电子设备的第二加速器来完成,将确定采集第四图像时电子设备的空间位姿,以及将第四图像中与第三图像具有匹配关系的特征点转换至预设三维坐标系的任务分配给电子设备的CPU来完成,将构建第二对象的AR模型以及基于第二对象的AR模型进行虚实融合的任务分配给电子设备的GPU来完成。通过上述第一加速器、第二加速器、CPU和GPU的分工合作,可以解决由于CPU负荷过高导致的温度过高的问题,以及解决CPU被长时间占用导致的CPU无法支持用户发起的其他任务请求的问题。
第二方面,提供一种电子设备,该电子设备包括:图像采集单元,用于采集第一图像和第二图像;第一加速器,用于提取第一图像的特征点,以及提取第二图像的特征点;该第一图像和第二图像的特征点用于描述第一对象;第二加速器,用于确定上述第二图像中,与第一图像具有匹配关系的特征点;CPU,用于分析采集上述第二图像时电子设备的运动数据,确定采集上述第二图像时电子设备的空间位姿;以及,根据采集上述第二图像时电子设备的空间位姿,将第二图像中与第一图像具有匹配关系的特征点转换至预设三维坐标系中,得到第一对象的三维点云;GPU,用于根据采集上述第二图像电子设备的空间位姿以及第一对象的三维点云渲染得到第一对象的三维模型;CPU还用于,获取第二对象的三维模型;GPU还用于,将第二对象的三维模型叠加至第一对象的三维模型中。
上述第二方面提供的技术方案,电子设备将对用于描述第一对象的第一图像和第二图像进行特征分析的任务分配给电子设备的第一加速器来完成,将确定第二图像中与第一图像具有匹配关系的特征点的任务分配给电子设备的第二加速器来完成,将确定采集第二图像时电子设备的空间位姿,以及将第二图像中与第一图像具有匹配关系的特征点转换至预设三维坐标系的任务分配给电子设备的CPU来完成,将构建第一对象的三维模型以及基于第一对象的三维模型进行虚实融合的任务分配给电子设备的GPU来完成。通过上述第一加速器、第二加速器、CPU和GPU的分工合作,可以解决由于CPU负荷过高导致的温度过高的问题,以及解决CPU被长时间占用导致的CPU无法支持用户发起的其他任务请求的问题。
结合第二方面,在第一种可能的实现方式中,CPU还用于,在GPU将所述第二对象的三维模型叠加至第一对象的三维模型中之前,确定第二对象的三维模型在第一对象的三维模型中的第一位置,以及第二对象的三维模型在第一对象的三维模型中的第一姿态;GPU将所述第二对象的三维模型叠加至第一对象的三维模型中,包括:GPU将第二对象的三维模型以第一姿态叠加至第一对象的三维模型中的第一位置。通过这样的处理,第二对象的三维模型可以以与第一对象的三维模型匹配的“摆放”姿态融合至第一对象的三维模型中。
结合第二方面以及第二方面第一种可能的实现方式,在第二种可能的实现方式中,第一加速器提取第一图像的特征点,包括:第一加速器确定上述第一图像中用于描述第一对象的特征点的坐标和特征描述子,该特征描述子用于表征对应特征点的灰度值;第一加速器提取第二图像的特征点,包括:第一加速器确定上述第二图像中用于描述所述第一对象的特征点的坐标和特征描述子,该特征描述子用于表征对应特征点的灰度值。通过提取第一对象的特征点的坐标和特征描述子,可以方便对第一对象特征点的跟踪,以及后续的三维点云的确定,使得第一对象的三维模型的构建更加接近于真实的第一对象。
结合第二方面以及第二方面第一种和第二种可能的实现方式,在第三种可能的实现方式中,上述第二图像中,与第一图像具有匹配关系的特征点包括上述第二图像中,与第一图像的特征匹配度大于预设阈值的特征点。
结合第二方面以及第二方面第一种至第三种可能的实现方式,在第四种可能的实现方式中,CPU还用于,在GPU根据采集上述第二图像时电子设备的空间位姿以及第一对象的三维点云渲染得到第一对象的三维模型之前,获取第一对象的深度信息;GPU根据采集上述第二图像时电子设备的空间位姿以及第一对象的三维点云渲染得到第一对象的三维模型,包括:GPU根据采集上述第二图像时电子设备的空间位姿以及第一对象的三维点云,结合上述第一对象的深度信息渲染得到第一对象的三维模型。通过结合第一对象的深度信息构建第一对象的三维模型,可以使得第一对象的三维模型的构建更加接近于真实的第一对象。
结合第二方面以及第二方面第一种至第四种可能的实现方式,在第五种可能的实现方式中,电子设备还包括,接收单元,用于从第三方处获得第三图像和第四图像;第一加速器还用于,在CPU获取第二对象的三维模型之前,提取第三图像的特征点,以及提取第四图像的特征点;上述第三图像和第四图像的特征点用于描述第二对象;第二加速器确定所述上述第四图像中,与第三图像具有匹配关系的特征点;CPU还用于,将上述第四图像中与第三图像具有匹配关系的特征点转换至预设三维坐标系中,得到第二对象的三维点云;其中,上述第二对象的三维模型为增强现实AR模型;CPU获取第二对象的三维模型包括:CPU根据第二对象的三维点云渲染得到第二对象的AR模型。电子设备将对用于描述第二对象的第三图像和第四图像进行特征分析的任务分配给电子设备的第一加速器来完成,将确定第四图像中与第三图像具有匹配关系的特征点的任务分配给电子设备的第二加速器来完成,将确定采集第四图像时电子设备的空间位姿,以及将第四图像中与第三图像具有匹配关系的特征点转换至预设三维坐标系的任务分配给电子设备的CPU来完成,将构建第二对象的AR模型以及基于第二对象的AR模型进行虚实融合的任务分配给电子设备的GPU来完成。通过上述第一加速器、第二加速器、CPU和GPU的分工合作,可以解决由于CPU负荷过高导致的温度过高的问题,以及解决CPU被长时间占用导致的CPU无法支持用户发起的其他任务请求的问题。
结合第二方面以及第二方面第一种至第四种可能的实现方式,在第六种可能的实现方式中,图像采集单元还用于,采集第三图像和第四图像;第一加速器还用于,在CPU获取第二对象的三维模型之前,提取第三图像的特征点,以及提取第四图像的特征点;上述第三图像和第四图像的特征点用于描述第二对象;CPU还用于,分析采集上述第四图像时电子设备的运动数据,确定电子设备采集上述第四图像时的空间位姿;CPU根据采集上述第四图像时电子设备的空间位姿,将上述第四图像中与第三图像具有匹配关系的特征点转换至预设三维坐标系中,得到第二对象的三维点云;其中,上述第二对象的三维模型为增强现实AR模型;CPU获取第二对象的三维模型包括:GPU根据采集上述第二图像时电子设备的空间位姿以及第二对象的三维点云渲染得到第二对象的AR模型。电子设备将对用于描述第二对象的第三图像和第四图像进行特征分析的任务分配给电子设备的第一加速器来完成,将确定第四图像中与第三图像具有匹配关系的特征点的任务分配给电子设备的第二加速器来完成,将确定采集第四图像时电子设备的空间位姿,以及将第四图像中与第三图像具有匹配关系的特征点转换至预设三维坐标系的任务分配给电子设备的CPU来完成,将构建第二对象的AR模型以及基于第二对象的AR模型进行虚实融合的任务分配给电子设备的GPU来完成。通过上述第一加速器、第二加速器、CPU和GPU的分工合作,可以解决由于CPU负荷过高导致的温度过高的问题,以及解决CPU被长时间占用导致的CPU无法支持用户发起的其他任务请求的问题。
第三方面,提供一种电子设备,该电子设备包括:摄像头、处理器和存储器;该处理器包括CPU、第一加速器、第二加速器和GPU;上述存储器用于,存储计算机程序代码,该计算机程序代码包括指令;上述摄像头用于,执行上述指令,采集第一图像和第二图像;上述第一加速器用于,提取第一图像的特征点,以及提取第二图像的特征点;该第一图像和第二图像的特征点用于描述第一对象;上述第二加速器用于,执行上述指令,确定上述第二图像中,与第一图像具有匹配关系的特征点;上述CPU用于,执行上述指令,分析采集上述第二图像时电子设备的运动数据,确定采集上述第二图像时电子设备的空间位姿;以及,根据采集上述第二图像时电子设备的空间位姿,将第二图像中与第一图像具有匹配关系的特征点转换至预设三维坐标系中,得到第一对象的三维点云;上述GPU用于,执行上述指令,根据采集上述第二图像电子设备的空间位姿以及第一对象的三维点云渲染得到第一对象的三维模型;上述CPU还用于,执行上述指令,获取第二对象的三维模型;上述GPU还用于,执行上述指令,将第二对象的三维模型叠加至第一对象的三维模型中。
上述第三方面提供的技术方案,电子设备将对用于描述第一对象的第一图像和第二图像进行特征分析的任务分配给电子设备的第一加速器来完成,将确定第二图像中与第一图像具有匹配关系的特征点的任务分配给电子设备的第二加速器来完成,将确定采集第二图像时电子设备的空间位姿,以及将第二图像中与第一图像具有匹配关系的特征点转换至预设三维坐标系的任务分配给电子设备的CPU来完成,将构建第一对象的三维模型以及基于第一对象的三维模型进行虚实融合的任务分配给电子设备的GPU来完成。通过上述第一加速器、第二加速器、CPU和GPU的分工合作,可以解决由于CPU负荷过高导致的温度过高的问题,以及解决CPU被长时间占用导致的CPU无法支持用户发起的其他任务请求的问题。
结合第三方面,在第一种可能的实现方式中,上述CPU还用于,执行上述指令,在GPU将所述第二对象的三维模型叠加至第一对象的三维模型中之前,确定第二对象的三维模型在第一对象的三维模型中的第一位置,以及第二对象的三维模型在第一对象的三维模型中的第一姿态;GPU执行上述指令,将所述第二对象的三维模型叠加至第一对象的三维模型中,包括:GPU执行上述指令,将第二对象的三维模型以第一姿态叠加至第一对象的三维模型中的第一位置。通过这样的处理,第二对象的三维模型可以以与第一对象的三维模型匹配的“摆放”姿态融合至第一对象的三维模型中。
结合第三方面以及第三方面第一种可能的实现方式,在第二种可能的实现方式中,第一加速器执行上述指令,提取第一图像的特征点,包括:第一加速器执行上述指令,确定上述第一图像中用于描述第一对象的特征点的坐标和特征描述子,该特征描述子用于表征对应特征点的灰度值;第一加速器执行上述指令,提取第二图像的特征点,包括:第一加速器执行上述指令,确定上述第二图像中用于描述所述第一对象的特征点的坐标和特征描述子,该特征描述子用于表征对应特征点的灰度值。通过提取第一对象的特征点的坐标和特征描述子,可以方便对第一对象特征点的跟踪,以及后续的三维点云的确定,使得第一对象的三维模型的构建更加接近于真实的第一对象。
结合第三方面以及第三方面第一种和第二种可能的实现方式,在第三种可能的实现方式中,上述第二图像中,与第一图像具有匹配关系的特征点包括上述第二图像中,与第一图像的特征匹配度大于预设阈值的特征点。
结合第三方面以及第三方面第一种至第三种可能的实现方式,在第四种可能的实现方式中,CPU还用于,在GPU根据采集上述第二图像时电子设备的空间位姿以及第一对象的三维点云渲染得到第一对象的三维模型之前,获取第一对象的深度信息;GPU执行上述指令,根据采集上述第二图像时电子设备的空间位姿以及第一对象的三维点云渲染得到第一对象的三维模型,包括:GPU执行上述指令,根据采集上述第二图像时电子设备的空间位姿以及第一对象的三维点云,结合上述第一对象的深度信息渲染得到第一对象的三维模型。通过结合第一对象的深度信息构建第一对象的三维模型,可以使得第一对象的三维模型的构建更加接近于真实的第一对象。
结合第三方面以及第三方面第一种至第四种可能的实现方式,在第五种可能的实现方式中,电子设备还包括:射频电路,用于从第三方处获得第三图像和第四图像;第一加速器还用于,执行上述指令,在CPU获取第二对象的三维模型之前,提取第三图像的特征点,以及提取第四图像的特征点;上述第三图像和第四图像的特征点用于描述第二对象;第二加速器确定所述上述第四图像中,与第三图像具有匹配关系的特征点;CPU还用于,执行上述指令,将上述第四图像中与第三图像具有匹配关系的特征点转换至预设三维坐标系中,得到第二对象的三维点云;其中,上述第二对象的三维模型为增强现实AR模型;CPU执行上述指令,获取第二对象的三维模型包括:CPU执行上述指令,根据第二对象的三维点云渲染得到第二对象的AR模型。电子设备将对用于描述第二对象的第三图像和第四图像进行特征分析的任务分配给电子设备的第一加速器来完成,将确定第四图像中与第三图像具有匹配关系的特征点的任务分配给电子设备的第二加速器来完成,将确定采集第四图像时电子设备的空间位姿,以及将第四图像中与第三图像具有匹配关系的特征点转换至预设三维坐标系的任务分配给电子设备的CPU来完成,将构建第二对象的AR模型以及基于第二对象的AR模型进行虚实融合的任务分配给电子设备的GPU来完成。通过上述第一加速器、第二加速器、CPU和GPU的分工合作,可以解决由于CPU负荷过高导致的温度过高的问题,以及解决CPU被长时间占用导致的CPU无法支持用户发起的其他任务请求的问题。
结合第三方面以及第三方面第一种至第四种可能的实现方式,在第六种可能的实现方式中,摄像头还用于,执行上述指令,采集第三图像和第四图像;第一加速器还用于,执行上述指令,在CPU获取第二对象的三维模型之前,提取第三图像的特征点,以及提取第四图像的特征点;上述第三图像和第四图像的特征点用于描述第二对象;CPU还用于,执行上述指令,分析采集上述第四图像时电子设备的运动数据,确定电子设备采集上述第四图像时的空间位姿;CPU根据采集上述第四图像时电子设备的空间位姿,将上述第四图像中与第三图像具有匹配关系的特征点转换至预设三维坐标系中,得到第二对象的三维点云;其中,上述第二对象的三维模型为增强现实AR模型;CPU执行上述指令,获取第二对象的三维模型包括:GPU执行上述指令,根据采集上述第二图像时电子设备的空间位姿以及第二对象的三维点云渲染得到第二对象的AR模型。电子设备将对用于描述第二对象的第三图像和第四图像进行特征分析的任务分配给电子设备的第一加速器来完成,将确定第四图像中与第三图像具有匹配关系的特征点的任务分配给电子设备的第二加速器来完成,将确定采集第四图像时电子设备的空间位姿,以及将第四图像中与第三图像具有匹配关系的特征点转换至预设三维坐标系的任务分配给电子设备的CPU来完成,将构建第二对象的AR模型以及基于第二对象的AR模型进行虚实融合的任务分配给电子设备的GPU来完成。通过上述第一加速器、第二加速器、CPU和GPU的分工合作,可以解决由于CPU负荷过高导致的温度过高的问题,以及解决CPU被长时间占用导致的CPU无法支持用户发起的其他任务请求的问题。
第四方面,提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机执行指令,该计算机执行指令被处理器执行时实现如第一方面任一种可能的实现方式中的基于SLAM进行虚实融合的方法。
第五方面,提供一种芯片系统,该芯片系统可以包括存储介质,用于存储指令;处理电路,用于执行上述指令,实现如第一方面任一种可能的实现方式中的基于SLAM进行虚实融合的方法。该芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。
第六方面,提供一种计算机程序产品,提供一种计算机程序产品,该计算机程序产品包括程序指令,当程序指令在计算机上运行时,以实现如第一方面任一种可能的实现方式中的基于SLAM进行虚实融合的方法。例如,该计算机可以是至少一个存储节点。
附图说明
图1为本申请实施例提供的一种电子设备的预设坐标系示例图;
图2为本申请实施例提供的一种电子设备的预设坐标系相对于地面坐标系的欧拉角示意图;
图3A为本申请实施例提供的一种SLAM片上系统结构示意图;
图3B为本申请实施例提供的一种电子设备的硬件结构示意图;
图4A为本申请实施例提供的一种在视频通信过程中实现双方用户场景示意图;
图4B为本申请实施例提供的一种在视频通信过程中实现双方用户实景互动的示意图;
图5为本申请实施例提供的一种虚拟家具在实际空间中的模拟摆放的示意图;
图6A为本申请实施例提供的一种用户所在教室场景示意图;
图6B为本申请实施例提供的一种三维恐龙模型在教室中行走的场景示意图;
图7为本申请实施例提供的一种基于SLAM进行虚实融合的方法流程图一;
图8为本申请实施例提供的一种确定特征点的坐标的示意图;
图9为本申请实施例提供的一种特征点匹配结果示意图;
图10为本申请实施例提供的一种基于SLAM进行虚实融合的方法流程图二;
图11为本申请实施例提供的一种基于SLAM进行虚实融合的方法流程图三;
图12为本申请实施例提供的一种基于SLAM进行虚实融合的方法流程图四;
图13为本申请实施例提供的一种电子设备的结构示意图一;
图14为本申请实施例提供的一种电子设备的结构示意图二;
图15为本申请实施例提供的一种电子设备的结构示意图三。
具体实施方式
本申请实施例提供一种基于SLAM进行虚实融合的方法,该方法应用于将虚拟数字内容(例如三维模型)和真实物理世界进行叠加显示的过程中。
可以理解的是,基于SLAM进行虚实融合的原理是:电子设备分析通过摄像头采集的多帧真实物理世界的图像之间特征点的匹配关系,结合电子设备的传感器实时采集的电子设备的运动数据,得到电子设备在空间中的位置和姿态(以下简称空间位姿)以及构建多帧图像对应的真实物理世界的三维模型。然后基于构建的真实物理世界的三维模型和电子设备的空间位姿完成虚实融合。
其中,本申请实施例中,电子设备在空间中的位置可以用电子设备在地面坐标系中的坐标(x,y,z)来表示。电子设备在空间中的姿态可以用电子设备的预设坐标系相对于地面坐标系的欧拉角来表示。
以下结合附图说明电子设备的预设坐标系、地面坐标系以及电子设备的预设坐标系相对于地面坐标系的欧拉角。
(1)电子设备的预设坐标系。
以电子设备是手机为例。请参考图1,其示出手机的一种预设坐标系实例示意图。
如图1所示,以O为坐标原点的x轴,y轴和z轴构成右手直角坐标系。图1中所示的O可以是手机的重心。手机可以包括四条边:长边01,短边02,与长边01平行且等长度的另一条长边,以及与短边02平行且等长度的另一条短边。y轴平行于手机的短边02。x轴平行于手机的长边01向上。z轴垂直于yA轴,且垂直于x轴。其中,图1所示的坐标系是手机的预设坐标系。
(2)地面坐标系。
请参考图2,其示出本申请实施例提供的一种地面坐标系的实例示意图。如图2中的(a)或(b)所示,以O'为坐标原点的X轴,Y轴和Z轴构成右手直角坐标系。图2中的(a)所示的坐标原点O'可以为空间中的任意一点。X轴指向水平面内的任一方向。Z轴垂直于X轴所在的平面并指向地心。Y轴垂直于X轴,且垂直于Z轴。其中,图2中的(a)所示的坐标系是地面坐标系。
(3)电子设备的预设坐标系相对于地面坐标系的欧拉角。
电子设备的预设坐标系相对于地面坐标系的欧拉角包括:电子设备的预设坐标系相对于地面坐标系的俯仰角(pitch)θ、偏航角(yaw)和横滚角(roll)φ。
其中,电子设备的预设坐标系相对于地面坐标系的俯仰角θ可以是电子设备的预设坐标系的x轴与地面坐标系的XOY所在平面(即水平面)的夹角。示例性的,本申请实施例这里以图1所示的手机为例,对电子设备的预设坐标系相对于地面坐标系的欧拉角进行说明。例如,如图2中的(a)所示,手机的预设坐标系相对于地面坐标系的俯仰角θ是xA轴与水平面(即XOY所在平面)之间的夹角。如图2中的(a)所示,Ox'(即O'x')是x轴在水平面(即XOY所在平面)的垂直投影,可以理解的是,上述手机的预设坐标系相对于地面坐标系的俯仰角θ也就是Ox'(即O'x')与x轴之间的夹角。当x轴与Z轴之间的夹角大于90°时,俯仰角θ为正。
如图2中的(a)所示,手机的预设坐标系相对于地面坐标系的偏航角是手机的预设坐标系的x轴与地面坐标系的X轴之间的水平夹角,也就是Ox'(即O'x')与地面坐标系的X轴之间的夹角。当Ox'(即O'x')随着x轴的变化在XOY所在平面上顺时针偏转时,偏航角/>为正。
如图2中的(b)所示,手机的预设坐标系相对于地面坐标系的横滚角φ是手机的预设坐标系的z轴与通过x轴的铅垂面(即xOZ所在平面)之间的夹角。如图2中的(b)所示,Oz'(即O'z')是z轴在通过x轴的铅垂面(即xOZ所在平面)的垂直投影。可以理解的是,上述手机的预设坐标系相对于地面坐标系的横滚角φ也就是Oz'(即O'z')与z轴之间的夹角,当z轴顺时针旋转时,横滚角φ为正。
需要说明的是,上述图1仅作为示例介绍手机的预设坐标系。手机的预设坐标系还可以根据其他规则定义。例如,坐标原点还可以为手机上的其他任一点。预设坐标系的三轴方向也不限于图1所示的x轴,y轴和z轴所示的方向。本申请实施例对便携设备的预设坐标系的坐标原点位置和坐标轴方向设定不作限定。
根据上文中基于SLAM进行虚实融合的原理可以理解,基于SLAM进行虚实融合的过程可以包括以下五个阶段:(1)特征分析阶段,(2)特征跟踪阶段,(3)空间位姿确定阶段,(4)三维模型构建阶段和(5)虚实融合阶段。
其中,(1)特征分析阶段需要对大量的图像进行特征分析。(2)特征跟踪阶段需要对上述大量的图像进行特征匹配。(3)空间位姿确定阶段需要对大量的电子设备的运动数据进行分析。(4)三维模型构建阶段则需要融合前述(1)、(2)和(3)三个阶段的分析结果不断构建与之对应的三维模型。因此,(1)、(2)、(3)和(4)四个阶段通常是基于SLAM进行虚实融合的过程中占用资源最多的计算部分。本申请实施例根据上述基于SLAM进行虚实融合的方法的阶段化特征,将上述占用资源最多的计算部分(即(1)、(2)、(3)和(4)四个阶段)分散在多个计算单元进行(如图3A所示的第一加速器、第二加速器和CPU)。避免单纯由一个计算单元(如CPU)完成上述四个阶段的计算量时,电子设备由于CPU负荷过高导致的温度过高的问题;以及由于计算单元(如CPU)被上述四个阶段的计算任务长时间占用,导致的CPU无法支持用户发起的其他任务请求的问题。
请参考图3A,图3A提供了本申请实施例的一种SLAM片上系统结构示意图。电子设备可以包括SLAM片上系统,如图3A所示,SLAM片上系统可以包括第一加速器3001、第二加速器3002、CPU 3003和GPU 3004。第一加速器3001对输入的每一帧图像进行特征识别和特征分析,然后将分析结果传输给第二加速器3002。第二加速器3002基于输入的当前帧图像的特征分析结果,与前一帧图像的特征分析结果进行特征匹配,得到当前帧图像与前一帧图像的匹配关系。CPU 3003对输入的电子设备采集当前帧时,传感器采集的数据进行分析,结合当前帧图像与前一帧图像的匹配关系,得到电子设备采集当前帧时的空间位姿以及当前帧图像对应的三维点云。最后,图形处理单元(graphics processing unit,GPU)3004基于电子设备采集当前帧时的空间位姿以及当前帧图像对应的三维点云进行三维渲染与虚实叠加。其中,第一加速器3001、第二加速器3002、CPU 3003和GPU 3004之间,可以通过系统芯片(System on Chip,SoC)数据和控制总线3005互相通信。第一加速器3001和第二加速器3002可以是以专用集成电路(Application Specific Integrated Circuit,ASIC)实现的加速器。
本申请实施例提供的基于SLAM进行虚实融合的方法可以应用于手机、平板电脑或个人计算机(Ultra-mobile Personal Computer,UMPC)中。或者,还可以应用于其他桌面型设备、膝上型设备、手持型设备、可穿戴设备、智能家居设备和车载型设备等电子设备中,例如上网本、智能手表、智能相机、上网本、个人数字助理(Personal Digital Assistant,PDA)、便携式多媒体播放器(Portable Multimedia Player,PMP)、专用媒体播放器或AR(增强现实)/VR(虚拟现实)设备等。本申请实施例对电子设备的具体类型和结构等不作限定。
请参考图3B,如图3B所示,为本申请实施例提供的一种电子设备的硬件结构示意图。如图3B所示,电子设备100可以包括处理器310,存储器(包括外部存储器接口320和内部存储器321),通用串行总线(universal serial bus,USB)接口330,充电管理模块340,电源管理模块341,电池342,天线1,天线2,移动通信模块350,无线通信模块360,音频模块370,扬声器370A,受话器370B,麦克风370C,耳机接口370D,传感器模块380,按键390,马达391,指示器392,摄像头393,显示屏394,以及用户标识模块(subscriber identificationmodule,SIM)卡接口395等。其中,传感器模块380可以包括陀螺仪传感器380A,加速度传感器380B,环境光传感器380C,深度传感器380D,磁传感器,压力传感器,距离传感器,接近光传感器,心率传感器,气压传感器,指纹传感器,温度传感器,触摸传感器,骨传导传感器等。
可以理解的是,本发明实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器310可以包括一个或多个处理单元,例如:处理器310可以包括CPU,应用处理器(application processor,AP),调制解调处理器,GPU,图像信号处理器(image signalprocessor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,第一加速器,第二加速器。其中,第一加速器和第二加速器中可以集成有神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。处理器310中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器310中的存储器为高速缓冲存储器。该存储器可以保存处理器310刚用过或循环使用的指令或数据。如果处理器310需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器310的等待时间,因而提高了系统的效率。
在一些实施例中,处理器310可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
I2C接口是一种双向同步串行总线,包括一根串行数据线(serial data line,SDA)和一根串行时钟线(derail clock line,SCL)。在一些实施例中,处理器310可以包含多组I2C总线。处理器310可以通过不同的I2C总线接口分别耦合触摸传感器,充电器,闪光灯,摄像头393等。例如:处理器310可以通过I2C接口耦合触摸传感器,使处理器310与触摸传感器3通过I2C总线接口通信,实现电子设备100的触摸功能。
I2S接口可以用于音频通信。在一些实施例中,处理器310可以包含多组I2S总线。处理器310可以通过I2S总线与音频模块370耦合,实现处理器310与音频模块370之间的通信。在一些实施例中,音频模块370可以通过I2S接口向无线通信模块360传递音频信号,实现通过蓝牙耳机接听电话的功能。
PCM接口也可以用于音频通信,将模拟信号抽样,量化和编码。在一些实施例中,音频模块370与无线通信模块360可以通过PCM总线接口耦合。在一些实施例中,音频模块370也可以通过PCM接口向无线通信模块360传递音频信号,实现通过蓝牙耳机接听电话的功能。所述I2S接口和所述PCM接口都可以用于音频通信。
UART接口是一种通用串行数据总线,用于异步通信。该总线可以为双向通信总线。它将要传输的数据在串行通信与并行通信之间转换。在一些实施例中,UART接口通常被用于连接处理器310与无线通信模块360。例如:处理器310通过UART接口与无线通信模块360中的蓝牙模块通信,实现蓝牙功能。在一些实施例中,音频模块370可以通过UART接口向无线通信模块360传递音频信号,实现通过蓝牙耳机播放音乐的功能。
MIPI接口可以被用于连接处理器310与显示屏394,摄像头393等外围器件。MIPI接口包括摄像头串行接口(camera serial interface,CSI),显示屏串行接口(displayserial interface,DSI)等。在一些实施例中,处理器310和摄像头393通过CSI接口通信,实现电子设备100的拍摄功能。处理器310和显示屏394通过DSI接口通信,实现电子设备100的显示功能。
GPIO接口可以通过软件配置。GPIO接口可以被配置为控制信号,也可被配置为数据信号。在一些实施例中,GPIO接口可以用于连接处理器310与摄像头393,显示屏394,无线通信模块360,音频模块370,传感器模块380等。GPIO接口还可以被配置为I2C接口,I2S接口,UART接口,MIPI接口等。
可以理解的是,本发明实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在本申请另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块340用于从充电器接收充电输入。电源管理模块341用于连接电池342,充电管理模块340与处理器310。电源管理模块341接收电池342和/或充电管理模块340的输入,为处理器310,内部存储器321,显示屏394,摄像头393,和无线通信模块360等供电。电源管理模块341还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。
电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块350,无线通信模块360,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块350可以提供应用在电子设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块350可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块350可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块350还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块350的至少部分功能模块可以被设置于处理器310中。在一些实施例中,移动通信模块350的至少部分功能模块可以与处理器310的至少部分模块被设置在同一个器件中。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器370A,受话器370B等)输出声音信号,或通过显示屏394显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器310,与移动通信模块350或其他功能模块设置在同一个器件中。
无线通信模块360可以提供应用在电子设备100上的包括无线局域网(wirelesslocal area networks,WLAN)(如Wi-Fi网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块360可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块360经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器310。无线通信模块360还可以从处理器310接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,电子设备100的天线1和移动通信模块350耦合,天线2和无线通信模块360耦合,使得电子设备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),新无线(New Radio,NR),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。
电子设备100通过GPU,显示屏394,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏394和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。在本申请实施例中,GPU可以用于进行三维模型渲染和虚实叠加。处理器310可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏394用于显示图像,视频等。在本申请实施例中,显示屏394可以用于显示虚叠加后的图像。显示屏394包括显示面板。显示面板可以采用液晶显示屏(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个显示屏394,N为大于1的正整数。
电子设备100可以通过ISP,摄像头393,视频编解码器,GPU,显示屏394以及应用处理器等实现拍摄功能。
ISP用于处理摄像头393反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,肤色进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头393中。
摄像头393用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,电子设备100可以包括1个或N个摄像头393,N为大于1的正整数。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,电子设备100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
视频编解码器用于对数字视频压缩或解压缩。电子设备100可以支持一种或多种视频编解码器。这样,电子设备100可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,MPEG)1,MPEG2,MPEG3,MPEG4等。
NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现电子设备100的智能认知等应用,例如:特征识别,特征分析,特征匹配等。
外部存储器接口320可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口320与处理器310通信,实现数据存储功能。
内部存储器321可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。内部存储器321可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器321可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。处理器310通过运行存储在内部存储器321的指令,和/或存储在设置于处理器中的存储器的指令,执行电子设备100的各种功能应用以及数据处理。
电子设备100可以通过音频模块370,扬声器370A,受话器370B,麦克风370C,耳机接口370D,以及应用处理器等实现音频功能。例如,音乐播放,录音等。
音频模块370用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块370还可以用于对音频信号编码和解码。
扬声器370A,也称“喇叭”,用于将音频电信号转换为声音信号。电子设备100可以通过扬声器370A收听音乐,或收听免提通话。
受话器370B,也称“听筒”,用于将音频电信号转换成声音信号。当电子设备100接听电话或语音信息时,可以通过将受话器370B靠近人耳接听语音。
麦克风370C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。当拨打电话或发送语音信息时,用户可以通过人嘴靠近麦克风370C发声,将声音信号输入到麦克风370C。电子设备100可以设置至少一个麦克风370C。在另一些实施例中,电子设备100可以设置两个麦克风370C,除了采集声音信号,还可以实现降噪功能。在另一些实施例中,电子设备100还可以设置三个,四个或更多麦克风370C,实现采集声音信号,降噪,还可以识别声音来源,实现定向录音功能等。
陀螺仪传感器380A可以用于确定电子设备100的运动姿态。在一些实施例中,可以通过陀螺仪传感器380A确定电子设备100的旋转方向和旋转角速度。
加速度传感器380B可检测电子设备100的运动方向和运动加速度。当电子设备100静止时可检测出重力的大小及方向。还可以用于识别电子设备100的姿态,应用于横竖屏切换,计步器等应用。
环境光传感器380C用于感知环境光亮度。电子设备100可以根据感知的环境光亮度自适应调节显示屏394亮度。环境光传感器380C也可用于拍照时自动调节白平衡。在一些实施例中,环境光传感器380C还可以与接近光传感器配合,检测电子设备100是否在口袋里,以防误触。
深度传感器380D用于确定物体上每一个点到电子设备100的距离。在一些实施例中,深度传感器380D可以采集目标物体的深度数据,生成目标物体的深度图。其中,该深度图中每一个像素表示该像素点对应的物体上的点到电子设备100的距离。
指示器392可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
按键390包括开机键,音量键等。按键390可以是机械按键。也可以是触摸式按键。马达391可以产生振动提示。指示器392可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。SIM卡接口395用于连接SIM卡。SIM卡可以通过插入SIM卡接口395,或从SIM卡接口395拔出,实现和电子设备100的接触和分离。
本申请实施例提供的基于SLAM进行虚实融合的方法可以应用于AR场景中。示例性的,本申请实施例的方法可以应用于以下场景中:
场景(一):电子设备将二维图像描述的虚拟对象和真实物理世界进行叠加的场景。
在场景(一)中,电子设备可以根据多帧二维图像描述的对象,构建该对象的三维模型(如AR模型),然后将该AR模型和真实物理世界进行叠加。
请参考图4A和图4B,图4A和图4B示出了本申请实施例提供的一种在视频通信过程中实现双方用户实景互动的场景示意图。其中,第一电子设备(如手机a)与第二电子设备(如手机b)均包括第一摄像头(如前置摄像头)、第二摄像头(如后置摄像头)和显示屏。第一电子设备与第二电子设备的结构可以参考本申请实施例对图3B所示的电子设备100的描述,以下实施例中不再赘述。
假设用户A使用手机a与使用手机b的用户B进行视频通信。图4A所示的空间环境410为用户A使用手机a时所处的现实空间环境。图4A所示的空间环境420为用户B使用手机b时所处的现实空间环境。
在手机a与手机b视频通信的过程中,手机a的后置摄像头可以不断采集用于描述空间环境410的图像,构建关于空间环境410的三维模型。其中,手机a的后置摄像头可以采集用于描述空间环境410中的一部分环境区域的图像,也可以采集用于描述整个空间环境410的图像。并且,手机a可以接收来自手机b通过手机b的前置摄像头采集的用户B的行为动作信息(例如,面部特征信息或身体动作信息等),构建用户B的AR模型。然后将用户B的AR模型(如模型B)叠加在用于描绘空间环境410的三维模型430中的特定位置,显示在手机a的显示屏上,如图4B中的(a)所示。其中,用户B的面部特征信息用于表征用户B的面部表情和动作变化。用户B的身体动作信息可以用于表征用户B的身体动作变化。其中,用户B的AR模型(如模型B)可以根据用户B的行为动作信息做出相应的行为动作。
同样,在手机a与手机b视频通信的过程中,手机b的后置摄像头可以不断采集用于描述空间环境420的一部分环境区域或者全部空间环境420的图像,构建用于描述空间环境420的三维模型。并且,手机b可以接收来自手机a通过手机a的前置摄像头采集的用户A的行为动作信息(例如,面部特征信息或身体动作信息等),构建用户A的AR模型。然后将用户A的AR模型(如模型A)叠加在用于描述空间环境420的三维模型440中的特定位置,显示在手机b的显示屏上,如图4B中的(b)所示。其中,用户A的面部特征信息用于表征用户A的面部表情和动作变化。用户A的AR模型(如模型A)可以根据用户A的身体动作信息做出相应的行为动作。
可以理解,在图4A和图4B所示的场景中,手机a基于后置摄像头采集的用于描述空间环境410的图像,构建用于描述空间环境410的三维模型;以及,基于来自手机b的前置摄像头采集的用户B的行为动作信息,构建用户B的AR模型。手机b需要基于后置摄像头采集的用于描述空间环境420的图像,构建用于描述空间环境420的三维模型;以及,基于来自手机a的前置摄像头采集的用户A的行为动作信息,构建用户A的AR模型。在进行上述用于描述空间环境410的三维模型以及用户B的AR模型的构建时,均需要执行上文中的(1)特征分析阶段,(2)特征跟踪阶段,(3)空间位姿确定阶段和(4)三维模型构建阶段。并且,随着用户A手持手机a不断移动位置,以及用户B的行为动作不断发生变化,手机a可以不断的根据实时的用于描述空间环境的图像,以及实时的用户B的行为动作信息,构建用于描述空间环境的三维模型和用户B的AR模型。用户B的AR模型在用于描述空间环境的三维模型中的叠加位置和朝向也可以随着手机a的不断移动而适应性改变。
请参考图5,图5示出了本申请实施例提供的一种虚拟家具在实际空间中的模拟摆放的示意图。其中,手机包括摄像头和显示屏。手机的摄像头可以不断采集用于描述客厅空间环境的一部分环境区域或者全部环境区域的图像,构建用于描述客厅空间环境的三维模型(如图5中的(a)所示)。并且,手机可以根据多张不同角度(如图5中的(b)所示的角度1和角度2)的用于描述组合沙发的图像,构建组合沙发的AR模型。如图5中的(b)所示,组合沙发包括第一部分510和第二部分520。然后,手机将组合沙发的AR模型(包括AR模型的第一部分530和AR模型的第二部分540)叠加在用于描述客厅空间环境的三维模型中的特定位置,显示在手机的显示屏上,如图5中的(c)所示。
可以理解的,在图5所示的场景中,手机基于摄像头采集的用于描述空间环境410的图像,构建用于描述空间环境410的三维模型;以及,基于多张不同角度的用于描述组合沙发的图像,构建组合沙发的AR模型。在进行上述用于描述空间环境410的三维模型以及组合沙发的AR模型的构建时,均需要执行上文中的(1)特征分析阶段,(2)特征跟踪阶段,(3)空间位姿确定阶段和(4)三维模型构建阶段。并且,随着用户手持手机在客厅中不断移动,手机可以不断的根据实时的用于描述空间环境410的图像,构建用于描述空间环境410的三维模型。组合沙发的AR模型在用于描述空间环境410的三维模型中的叠加位置和朝向也可以随着手机的不断移动而适应性改变。
场景(二):电子设备将已有的虚拟对象和真实物理世界进行叠加的场景。
请参考图6A和图6B,图6A和图6B示出了本申请实施例提供的一种三维恐龙模型在教室中行走的场景示意图。其中,手机c包括摄像头和显示屏。假设用户C处于如图6A所示的教室空间环境610中,通过手机c的显示屏上显示的恐龙模型观察恐龙的身体结构。
在用户C使用手机c观察恐龙的身体结构时,手机c的摄像头(如后置摄像头)可以不断采集用于描述教室空间环境610的图像,构建用于描述教室空间环境610的三维模型。由于手机c的摄像头(如后置摄像头)仅采集了教室空间环境610的部分环境区域的图像,因此,基于摄像头(如后置摄像头)采集的图像可以构建出如图6B中所示的用于描述教室空间环境610的三维模型620。然后,手机c可以将恐龙模型630叠加在用于描述教室空间环境610的三维模型620中的特定位置,显示在手机c的显示屏上,如图6B所示。
可以理解的,在图6A和图6B所示的场景中,手机需要基于摄像头(如后置摄像头)采集的用于描述教室空间环境610的图像,构建用于描述教室空间环境610的三维模型。在进行上述用于描述教室空间环境610的三维模型的构建时,需要执行上文中的(1)特征分析阶段,(2)特征跟踪阶段,(3)空间位姿确定阶段和(4)三维模型构建阶段。并且,随着用户C改变手机c摄像头指向的方向,手机c可以不断的根据实时采集的用于描述教室空间环境610的图像,构建用于描述教室空间环境610的三维模型。恐龙模型630在用于描述教室空间环境610的三维模型中的叠加位置和朝向也可以随着手机c摄像头指向的改变而适应性改变。
需要说明的是,上述图4A和图4B、图5、图6A和图6B所示的场景,仅作为几种应用场景示例,本申请实施例提供的基于SLAM进行虚实融合的方法并不限于在上述场景中使用,还可以应用于其他AR场景中。例如,AR炫舞场景,AR量尺等场景中。
本申请实施例提供的基于SLAM进行虚实融合的方法可以应用于具有如图3B所示硬件结构的电子设备或者具有类似结构的电子设备。或者还可以应用于其他结构的电子设备中,本申请实施例对此不作限定。以下结合具有图3B所示硬件结构的手机,具体介绍本申请实施例提供的基于SLAM进行虚实融合的方法。其中,该手机包括第一加速器3001,第二加速器3002,CPU 3003,GPU 3004,显示屏和一个或多个摄像头。
如图7所示,本申请实施例提供的基于SLAM进行虚实融合的方法可以包括S701-S709:
S701、手机的第一加速器3001提取第一图像的特征点。
其中,第一图像的特征点用于描述第一对象。第一对象可以是一个开阔的空间,第一对象也可以由至少一个物体组成,或者第一对象还可以包括至少一个人物或者动物。第一图像是手机通过一个或多个摄像头采集得到的图像。
示例性的,第一图像可以是图4A和图4B所示的场景中,手机a通过后置摄像头采集到的用于描述空间环境410的图像;或者,手机b通过后置摄像头采集到的用于描述空间环境420的图像。或者,第一图像可以是图5所示的场景中,手机的摄像头采集到的用于描述客厅空间环境的一部分环境区域或者全部环境区域的图像。或者,第一图像可以是图6A和图6B所示的场景中,手机c的摄像头(如后置摄像头)采集到的用于描述教室空间环境610的图像。
可以理解的是,手机的一个或多个摄像头可以根据预设帧率和预设分辨率不断采集用于描述第一对象的图像。其中,根据预设帧率采集图像可以保证展示给用户的虚实融合图像是连贯和流畅的。根据预设分辨率采集图像可以保证基于用于描述第一对象的多帧图像的分析的可靠性是稳定的。示例性的,手机的一个或多个摄像头每秒钟采集30张用于描述第一对象的图像。其中,第一图像是手机的一个或多个摄像头采集的任一张图像。
在本申请实施例中,第一图像的特征点可以简单的理解为第一图像中比较显著的点。例如,轮廓点,较暗区域中的亮点,较亮区域中的暗点等。手机的第一加速器3001提取第一图像的特征点包括:手机的第一加速器3001提取第一图像中,用于描述第一对象的至少一个特征点的坐标和第一图像中至少一个特征点的特征描述子。
其中,第一图像的特征点的坐标是第一图像的特征点在预设二维坐标系中的坐标。如图8所示,预设二维坐标系可以是以第一图像的左下角为坐标原点O,以第一图像下边缘为X轴,以第一图像左边缘为Y轴的坐标系。第一图像中的特征点的特征描述子用于描述特征点的局部表现,用于后续根据特征点的特征描述子进行不同图像之间的特征匹配。
为方便理解,以下对(一)第一图像的特征点的坐标,以及(二)第一图像中的特征点的特征描述子进行简单介绍。
(一)、第一图像的特征点的坐标。
手机的第一加速器3001要确定第一图像中的特征点的坐标,首先需要确定第一图像中的特征点。
在一些实施例中,第一图像的特征点可以是第一图像的加速片段测试特征(Features fromaccelerated segment test,FAST)角点,哈里斯Harris角点或者二进制鲁棒不变可伸缩关键点(Binary Robust Invariant Scalable Keypoints,BRISK)角点等,对此,本发明实施例不进行限定。
在一些情况下,可以理解,人眼对图像的识别通常是在一个局部的小区域或小窗口完成的。如果在各个方向上小范围移动这个小窗口时,窗口内区域图像的灰度发生了较大的变化,那么就可以认为在窗口内存在特征点。如果在各个方向上小范围移动这个小窗口时,窗口内区域图像的灰度没有发生变化,那么就可以认为窗口内不存在特征点。如果在各个方向上小范围移动这个小窗口时,沿着窗口内某一方向的区域图像的灰度发生了较大的变化,而沿着窗口内另一方向的区域图像的灰度没有发生变化,那么,可以认为窗口内包括线型特征。
请参考图8,图8示出了一种图像的特征点示例图。如图8所示,在各个方向上小范围移动窗口810时,窗口内区域图像的灰度会发生较大的变化,则可以认为在窗口810内存在特征点。在各个方向上小范围移动窗口820时,沿着Y轴方向的区域图像的灰度发生了较大的变化,而沿着X轴方向的区域图像的灰度没有发生变化,则可以认为窗口820内的图像包括线型特征点。在各个方向上小范围移动窗口830时,窗口内区域图像的灰度未发生变化,则可以认为窗口830内不存在特征点。示例性的,窗口810中的特征点的坐标为(x810,y810),移动窗口820中的特征点的坐标为(x820,y820)。
基于上述原理,以手机的第一加速器3001提取第一图像的Harris角点为例,作为一种示例,手机的第一加速器3001提取第一图像的Harris角点可以包括:手机的第一加速器3001首先对第一图像的每一个像素点,执行以下步骤(1)-步骤(4),然后执行步骤(5):
步骤(1):手机的第一加速器3001计算第一图像的像素点I(x,y)在X方向和Y方向上的梯度Ix和Iy。
其中,
步骤(2):手机的第一加速器3001计算第一图像在两个方向上的梯度的乘积。
在一种可能的情况中,第一图像的像素点I(x,y)在两个方向上的梯度的乘积为Ix 2,Ix 2=Ix·Ix。
在一种可能的情况中,第一图像的像素点I(x,y)在两个方向上的梯度的乘积为Iy 2,Iy 2=Iy·Iy。
在一种可能的情况中,第一图像的像素点I(x,y)在两个方向上的梯度的乘积为,Ixy=Ix·Iy。
步骤(3):手机的第一加速器3001使用高斯函数w(x,y)对Ix 2,Ixy和Iy 2分别进行高斯加权,分别得到A,B和C。
其中,
步骤(4):手机的第一加速器3001计算像素点I(x,y)的Harris响应值R,若R<预设阈值t,将R置为零;若R≥预设阈值t,R不变。
其中,R=detM-α(traceM)2,detM为矩阵M的行列式,detM=AC-B2。traceM是矩阵M的直迹,traceM=A+C。α是常数,示例性的,α取值范围可以为0.04~0.06。
在对第一图像的每一个像素点,执行以下步骤(1)-步骤(4)得到每一个像素点的Harris响应值R后,手机的第一加速器3001执行步骤(5):
步骤(5):手机的第一加速器3001在以每一个像素点为中心的区域内进行非最大值抑制,确定局部最大值点为第一图像的Harris角点。
示例性的,每一个像素点为中心的区域可以是以该像素点为中心,3像素点×3像素点或者5像素点×5像素点的区域。
需要说明的是,本申请实施例上文中仅以Harris角点作为示例,简单介绍手机的第一加速器3001提取第一图像的特征点的过程。关于提取Harris角点的详细原理和过程,以及关于FAST角点或者BRISK角点等特征点的详细原理和提取过程,可以参考常规技术中的介绍和说明,本申请实施例这里不予赘述。另外,本申请实施例对具体的提取图像的特征点的原理和方法并不作具体限定,上述提取第一图像的Harris角点的介绍仅作为一种举例。
(二)、第一图像的特征点的特征描述子。
其中,特征描述子用于表征对应特征点的灰度值。可以理解,理想的特征描述子应该具备在大小、方向、明暗不同的图像中,同一特征点应具有足够相似(如特征匹配度大于预设阈值)的特征描述子,称之为特征描述子的可复现性。
在一些实施例中,第一图像的特征点的特征描述子可以是二进制鲁棒独立的基本特征(Binary Robust Independent Elementary Features,BRIEF)描述子,尺度不变特征变换(Scale Invariant Feature Transform,SIFT)描述子或者加速鲁棒特征(Speeded UpRobust Features,SURF)描述子等特征描述子,对此,本发明实施例不进行限定。
以BRIEF描述子为例,可以理解,BRIEF描述子是利用特征点的局部图像邻域内随机点对的灰度大小关系来建立的局部图像特征的描述子。BRIEF描述子是一种二进制描述子,BRIEF描述子由多个0和多个1组成的描述向量表示。其中,0和1编码了相邻两个像素点(比如像素点p和像素点q)的灰度值大小关系,若像素点p的灰度值小于像素点q的灰度值,像素点p用1编码,反之用0编码。
基于上述原理,作为一种示例,手机的第一加速器3001提取第一图像的特征点的BRIEF描述子可以包括:
步骤(a):手机的第一加速器3001对第一图像进行高斯滤波。
其中,高斯滤波用于滤除第一图像中的噪声。示例性的,可以使用方差σ=2,高斯窗口为9×9的窗口对第一图像进行高斯滤波。
关于高斯滤波的介绍,可以参考常规技术中对高斯滤波的解释和说明,本申请实施例这里不做赘述。
步骤(b):手机的第一加速器3001确定每一个特征点的邻域窗口Patch。
其中,特征点的邻域窗口Patch可以是以特征点为中心的,预设尺寸的窗口。例如,邻域窗口Patch的尺寸为5×5。或者,特征点的邻域窗口Patch还可以是按照其他规则确定的,本申请实施例对此不作限定。
步骤(c):手机的第一加速器3001在每一个邻域窗口Patch内随机选取n对像素点,根据n对像素点的灰度值编码成二进制串,得到n位(bit)特征描述子。
通常,n可以为128、256或者512等数值。
假设每一个特征点的邻域窗口Patch的尺寸为5×5,手机的第一加速器3001可以计算并比较每一个Patch内的n对像素点的灰度值之和,对每一对像素点的灰度值进行二进制编码。其中,若像素点p的灰度值I(p)小于像素点q的灰度值之和I(q),则像素点p的灰度值编码为1,反之编码为0。
需要说明的是,本申请实施例上文中仅以BRIEF描述子作为示例,简单介绍手机的第一加速器3001确定第一图像中特征点的特征描述子。关于确定BRIEF描述子的详细原理和过程,以及关于SIFT描述子或者SURF描述子等特征描述子的详细原理和提取过程,可以参考常规技术中的介绍和说明,本申请实施例这里不予赘述。
在一些实施例中,手机的第一加速器可以根据第一控制参数提取第一图像的特征点。第一控制参数可以包括像素值阈值和第一数量阈值等控制参数中的一种或多种。其中,像素值阈值用于判断像素点是否为特征点的像素值阈值;第一数量阈值用于规定对于每一帧图像需要确定的特征点的最小数目。
S702、手机的第一加速器3001提取第二图像的特征点。
其中,第二图像的特征点用于描述第一对象。第二图像是手机在通过一个或多个摄像头采集得到第一图像后,采集得到的图像。
示例性的,第一图像是图4A和图4B所示的场景中,手机a通过后置摄像头采集到的用于描述空间环境410的图像,则第二图像是图4A和图4B所示的场景中,在手机a通过后置摄像头采集到第一图像后,手机a通过后置摄像头采集到的,用于描述空间环境410的下一帧图像。或者,第一图像是图4A和图4B所示的场景中,手机b通过后置摄像头采集到的用于描述空间环境420的图像,则第二图像是图4A和图4B所示的场景中,在手机b通过后置摄像头采集到第一图像后,手机b通过后置摄像头采集到的,用于描述空间环境420的下一帧图像。或者,第一图像是图5所示的场景中,手机的摄像头采集到的用于描述客厅空间环境的图像,则第二图像是图5所示的场景中,在手机的摄像头采集到第一图像后,手机的摄像头采集到的用于描述客厅空间环境的下一帧图像。或者,第一图像是图6A和图6B所示的场景中,手机c的摄像头(如后置摄像头)采集到的用于描述教室空间环境610的图像,则第二图像图6A和图6B所示的场景中,手机c的摄像头(如后置摄像头)采集到的用于描述教室空间环境610的下一帧图像。
其中,手机的第一加速器3001提取第二图像的特征点包括:手机的第一加速器3001提取用于描述第一对象的至少一个特征点的坐标和第二图像中至少一个特征点的特征描述子。
在一些实施例中,第二图像的特征点可以是第二图像的FAST角点,Harris角点或者BRISK角点等特征点。第二图像的特征点的特征描述子可以是BRIEF描述子,SIFT描述子或者SURF描述子等特征描述子。对于第二图像的特征点的确定方法和第二图像的特征点的特征描述子的确定方法,本申请实施例不作限定。
关于手机的第一加速器3001提取第二图像的Harris角点的介绍,可以参考S701中,手机的第一加速器3001提取第一图像的Harris角点的介绍和说明。关于手机的第一加速器3001确定第二图像的特征点的BRIEF描述子的介绍,可以参考S701中,手机的第一加速器3001确定第一图像的特征点的BRIEF描述子的介绍和说明,这里不做赘述。
S703、手机的第二加速器3002确定第二图像中,与第一图像具有匹配关系的特征点。
其中,第二图像中,与第一图像具有匹配关系的特征点是指第二图像与第一图像中,用于描述第一对象同一位置处的同一特征的特征点。示例性的,如图9所示,示出了本申请实施例的特征点匹配结果示意图。如图9所示,第一图像中的特征点A与第二图像中的特征点B具有匹配关系,即第一图像中的特征点A与第二图像中的特征点B用于描述汽车同一位置处的同一特征。
在一些实施例中,手机的第二加速器3002中可以存储有第二加速器3002接收到的每一帧图像,第二加速器3002确定的每一帧图像的特征点的坐标和特征描述子。另外,手机的第二加速器3002中还可以存储有当前帧(如第二图像)与前一帧(如第一图像)具有匹配关系的特征点。
在一些实施例中,手机的第二加速器3002可以根据第一图像中特征点的特征描述子(如BRIEF描述子),以及第二图像中特征点的特征描述子(如BRIEF描述子)之间的匹配结果,确定第二图像中,与第一图像具有匹配关系的特征点。示例性的,第二加速器3002可以计算得到如下数据格式的匹配结果:
{(x1,y1),status1,err1;(x2,y2),status2,err2;……,(xm,ym),statusm,errm}。
其中,(x1,y1)为第一图像中的特征点在第一图像中的二维坐标,err1用于标识(x1,y1)位置处的特征点和在第一图像中与之匹配的特征点的特征匹配度,status1用于标识(x1,y1)位置处的特征点是否在第一图像中有与之匹配成功的特征点(即具有匹配关系的特征点)。手机的第二加速器3002可以通过判断err1是否大于预设阈值(如80%)确定(x1,y1)位置处的特征点是否在第一图像中有与之具有匹配关系的特征点。
示例性的,假设第一图像和第二图像中每一个特征点的BRIEF描述子都是用256bit的二进制编码来描述,例如,特征点A的BRIEF描述子为10101011,特征点B的BRIEF描述子为10101010。在一种可能的实现方式中,手机的第二加速器3002可以通过对特征点A和特征点B进行异或操作,确定特征点A和特征点B之间的特征匹配度为87.5%。可知,87.5%大于预设阈值(如80%),则可以认为特征点A和特征点B具有匹配关系,即可以认为特征点A和特征点B用于描述同一对象的同一特征。
在另一种可能的实现方式中,手机的第二加速器3002还可以通过确定特征点A和特征点B之间的汉明距离,确定特征点A和特征点B之间的特征匹配度。其中,汉明距离是两个字符串对应位置的不同字符的个数。换句话说,汉明距离就是将一个字符串变换成另外一个字符串所需要替换的字符个数。可知,特征点A的BRIEF描述子(10101011)与特征点B的BRIEF描述子(10101010)之间的汉明距离为1。则可以确定特征点A和特征点B之间的特征匹配度为87.5%。可知,87.5%大于预设阈值(如80%),则可以认为特征点A和特征点B具有匹配关系,即可以认为特征点A和特征点B用于描述同一对象的同一特征。
在一些实施例中,手机的第二加速器3002在确定完第二图像中,与第一图像具有匹配关系的所有特征点之后,可以输出每个特征点的坐标和每个特征点的特征描述子至CPU 3003,以便CPU 3003进行后续的分析和处理。
在一些实施例中,手机的第二加速器3002可以根据第二控制参数确定第二图像中,与第一图像具有匹配关系的特征点。第二控制参数可以包括邻域窗口Patch的尺寸参数,第二数量阈值和匹配度阈值等控制参数中的一种或多种。其中,邻域窗口Patch的尺寸参数用于确定特征点的邻域窗口Patch;第二数量阈值用于规定对于每一帧图像需要保存的特征点的最小数目;匹配度阈值用于判断特征点A和特征点B是否具有匹配关系。
可以理解,若手机的空间位姿发生大幅度变化,会导致第二图像与第一图像中具有匹配关系的特征点数量急剧下降,造成三维模型构建时依赖的三维点云中三维点数量过少。三维点数量过少,则构建的三维模型可靠性较低。为了解决上述问题,在一些实施例中,手机的第二加速器3002中还可以存储有当前帧(如第二图像)与前一帧(如第一图像)不具有匹配关系的特征点。对于第二加速器3002中存储的当前帧(如第二图像)与前一帧(如第一图像)不具有匹配关系的特征点的数量,可以依据第二控制参数(如第二数量阈值)确定。
S704、手机的CPU 3003分析采集第二图像时手机的运动数据,确定采集第二图像时手机的空间位姿。
其中,采集第二图像时手机的空间位姿包括采集第二图像时手机的空间位置和空间姿态。如上文所述,采集第二图像时手机的空间姿态可以用采集第二图像时手机的预设坐标系相对于地面坐标系的欧拉角(包括俯仰角θ、偏航角和横滚角φ)来表示。采集第二图像时手机的空间位置可以根据采集第二图像时手机的空间姿态,结合第二图像,采用计算机3维(3 dimension,3D)视觉算法计算得到,关于这部分内容,可以参考常规技术中的介绍和说明,这里不作赘述。
其中,运动数据是由手机的一个或多个传感器采集到的。该一个或多个传感器包括但不限于加速度传感器、陀螺仪传感器中的至少一种。手机的一个或多个传感器可以根据预设周期不断采集手机的运动数据。
可以理解的是,手机的CPU 3003根据加速度传感器采集到的手机的加速度数据(包括加速度大小和加速度方向)可以确定手机的预设坐标系的移动方向和移动的距离。具体的,手机的CPU 3003可以根据加速度传感器采集到的手机的加速度方向确定手机的预设坐标系的移动方向,手机的CPU 3003可以根据加速度传感器采集到的加速度大小确定手机的预设坐标系移动的距离。手机的CPU 3003根据陀螺仪传感器采集到的手机的旋转数据(包括旋转角速度和旋转方向)可以确定手机的预设坐标系的旋转方向和旋转的角度。手机的预设坐标系的移动方向、移动的距离、旋转方向和旋转角度确定了,便可以确定手机的预设坐标系相对于地面坐标系的欧拉角(如图2中的(a)和图2中的(b)所示的欧拉角)。关于欧拉角的具体说明,可以参考图2中的(a),图2中的(b),以及本申请实施例对图2中的(a)和图2中的(b)的介绍和说明,这里不再赘述。
S705、手机的CPU 3003根据采集第二图像时手机的空间位姿,将第二图像中与第一图像具有匹配关系的特征点,转换至预设三维坐标系中,得到第一对象的三维点云。
其中,预设三维坐标系可以是地球坐标系,也可以是如图2所示的地面坐标系,或者其他预设三维坐标系。
可以理解,已知第二图像中与第一图像具有匹配关系的特征点,便可以采用计算机3D视觉算法确定第一对象的三维点云。示例性的,手机的CPU 3003可以采用基于运动的重建(Structure From Motion,SfM)算法构建第一对象的三维点云。其中,SfM算法的核心是确定相机参数(包括相机内参和相机外参)以及确定特征点的三维坐标。手机的CPU 3003可以通过对第二图像中与第一图像具有匹配关系的每一个特征点进行三角测距和三角定位,得到每一个特征点的三维坐标,结合手机拍摄第二图像时的空间位姿,确定第一对象的三维点云。
需要说明的是,关于采用SfM算法构建第一对象的三维点云的过程,可以参考常规技术中的介绍和说明,本申请实施例不做赘述。另外,手机的CPU 3003还可以采用其他计算机3D视觉算法确定第一对象的三维点云,本申请实施例对具体的算法不作限定。
可以理解,本申请实施例是以手机根据摄像头采集到的连续两帧图像,经过特征分析,特征匹配和空间位姿确定完成确定第一对象的三维点云为例的。在实际应用中,手机还可以对摄像头采集到的连续N帧图像(N>2,N为整数)进行特征分析和特征匹配,对具有匹配关系的每一个特征点进行三角测距和三角定位,得到每一个特征点的三维坐标,结合手机拍摄最后一帧(即第N帧)图像时的空间位姿,确定第一对象的三维点云。
S706、手机的GPU 3004根据采集第二图像时手机的空间位姿以及第一对象的三维点云渲染得到第一对象的三维模型。
关于手机的GPU 3004根据采集第二图像时手机的空间位姿以及第一对象的三维点云渲染得到第一对象的三维模型的过程,可以参考常规技术中的对GPU进行三维模型渲染的介绍和说明,本申请实施例不做赘述。
S707、手机的CPU 3003获取第二对象的三维模型。
其中,第二对象可以包括至少一个人物、动物或者物体等。
在一些实施例中,第二对象的三维模型是已有的用于描述第二对象的三维模型。如图6B所示的恐龙模型630。
在另一些实施例中,第二对象的三维模型是手机或者其他电子设备构建的用于描述第二对象的AR模型。如图4B中的(a)中的用户B的AR模型(如模型B),又如4B中的(b)中的用户A的AR模型(如模型A),再如图5中的(c)所示的组合沙发的AR模型(包括AR模型的第一部分530和AR模型的第二部分540)。关于第二对象的AR模型由手机或者其他电子设备构建的情况,将在下文中具体介绍。
S708、手机的CPU 3003确定第二对象的三维模型在第一对象的三维模型中的第一位置和第二对象的三维模型在第一对象的三维模型中的第一姿态。
其中,第一位置为第二对象的三维模型叠加在第一对象的三维模型中的位置。第一姿态为第二对象的三维模型叠加至第一对象的三维模型中的第一位置时的空间姿态。手机的CPU3003确定的第一位置,使得第二对象的三维模型叠加至第一对象的三维模型时,与第一对象的三维模型在空间中不重叠。
S709、手机的GPU 3004将第二对象的三维模型以第一姿态叠加至第一对象的三维模型中的第一位置。
其中,第一对象的三维模型由手机的GPU 3004根据采集第二图像时手机的空间位姿以及第一对象的三维点云渲染得到。
可以理解,本申请实施例提供的基于SLAM进行虚实融合的方法可以通过人工智能AI技术来实现。示例性的,手机的第一加速器和第二加速器可以通过神经网络处理器NPU完成对图像的特征点提取以及确定具有匹配关系的特征点。以及,手机还可以通过NPU完成本申请实施例提供的基于SLAM进行虚实融合的方法中的其他过程。
在一些实施例中,如图10所示,本申请实施例提供的基于SLAM进行虚实融合的方法还可以包括S710,以及S706可以替换为S711:
S710、手机的CPU 3003获取第一对象的深度信息。
其中,第一对象的深度信息用于表征第一对象上的至少一个点到电子设备的距离。
在一些实施例中,手机的CPU 3003可以通过分析深度传感器380D采集到的第一对象的深度数据,生成第一对象的深度图。该深度图中每一个像素表示该像素点对应的第一对象上的点到手机的距离。通常,深度传感器380D可以设置在手机摄像头处,则该深度图中每一个像素表示该像素点对应的第一对象上的点到手机摄像头的距离。
在另一些实施例中,手机的CPU 3003可以通过分析手机中的深度摄像头采集到的用于描述第一对象深度信息的深度图像,获取第一对象的深度信息。
S711、手机的CPU 3003根据采集第二图像时手机的空间位姿以及第一对象的三维点云,结合第一对象的深度信息渲染得到第一对象的三维模型。
在一些实施例中,电子设备可以将第二对象的三维模型以第一姿态叠加至第一对象的三维模型中的第一位置,显示在电子设备的显示屏上,如图4A和图4B、图5、图6A和图6B所示的场景。
在另一些实施例中,电子设备还可以将第二对象的AR模型以第一姿态叠加至第一对象的三维模型中的第一位置的图像发送至其他设备进行显示。本申请实施例对基于SLAM进行虚实融合后的图像的展示形式不作限定。
在一些实施例中,手机还可以通过环境光传感器380C采集环境光亮度信息。在这种情况下,S706可以包括:手机的CPU 3003根据采集第二图像时手机的空间位姿以及第一对象的三维点云,结合第一对象的深度信息和环境光亮度信息渲染得到第一对象的三维模型。
在一些实施例中,如图11所示,在手机的GPU 3004获取第二对象的AR模型(即S707)之前,本申请实施例提供的基于SLAM进行虚实融合的方法还可以包括S1101-S1103,以及S1104-1。或者,如图12所示在手机的GPU 3004获取第二对象的AR模型(即S707)之前,本申请实施例提供的基于SLAM进行虚实融合的方法还可以包括S1101-S1103,以及S1104-2和S1105:
S1101、手机的第一加速器3001提取第三图像的特征点。
其中,第三图像的特征点用于描述第二对象。第三图像可以是手机通过一个或多个摄像头采集得到的图像,也可以是手机从第三方接收到的图像(如从网上下载的图片)等,对于第三图像的来源,本申请实施例不作限定。
示例性的,第三图像可以是图4A和图4B所示的场景中,手机a通过前置摄像头采集到的用户A的行为动作信息(例如,面部特征信息或身体动作信息等);或者,手机b通过前置摄像头采集到的用户B的行为动作信息(例如,面部特征信息或身体动作信息等)。或者,第三图像可以是图5中的(b)中角度1所示的用于描述组合沙发的图像或角度2所示的用于描述组合沙发的图像。
其中,手机的第一加速器3001提取第三图像的特征点包括:手机的第一加速器3001提取用于描述第二对象的第三图像中的至少一个特征点的坐标和至少一个特征点的特征描述子。关于特征点的坐标和特征点的特征描述子的介绍,可以参考上文中的描述明,这里不作赘述。
S1102、手机的第一加速器3001提取第四图像的特征点。
其中,第四图像的特征点用于描述第二对象。第四图像可以是手机通过一个或多个摄像头采集得到的图像,也可以是手机从第三方接收到的图像(如从网上下载的图片)等,对于第四图像的来源,本申请实施例不作限定。
若第三图像和第四图像是手机通过一个或多个摄像头采集得到的图像,那么第四图像是手机的一个或多个摄像头在采集得到第三图像之后,采集得到的图像。
示例性的,第三图像是图4A和图4B所示的场景中,手机a通过前置摄像头采集到的用于描述用户A的行为动作信息的图像,则第四图像是图4A和图4B所示的场景中,在手机a通过前置摄像头采集到第三图像后,手机a通过前置摄像头采集到的,用于描述用户A的行为动作信息的下一帧图像。或者,第三图像是图4A和图4B所示的场景中,手机b通过前置摄像头采集到的用于描述用户B的行为动作信息的图像,则第四图像是图4A和图4B所示的场景中,在手机b通过前置摄像头采集到第三图像后,手机b通过前置摄像头采集到的,用于描述用户B的行为动作信息的下一帧图像。或者,第三图像是图5中的(b)中角度1所示的用于描述组合沙发的图像,则第四图像是图5中的(b)中角度2所示的用于描述组合沙发的图像。或者,第三图像是图5中的(b)中角度2所示的用于描述组合沙发的图像,则第四图像是图5中的(b)中角度1所示的用于描述组合沙发的图像。
其中,手机的第一加速器3001提取第四图像的特征点包括:手机的第一加速器3001提取用于描述第二对象的第四图像中的至少一个特征点的坐标和至少一个特征点的特征描述子。关于确定特征点的坐标和特征点的特征描述子的方法,可以参考上文中的描述,这里不作赘述。
S1103、手机的第二加速器3002确定第四图像中,与第三图像具有匹配关系的特征点。
其中,第四图像中,与第三图像具有匹配关系的特征点是指第四图像与第三图像中,用于描述第二对象同一位置的同一特征的特征点。关于确定第四图像与第三图像中,具有匹配关系的特征点的方法,可以参考上文中的描述,这里不作赘述。
在一些实施例中,若第三图像和第四图像是手机从第三方接收到的图像(如从网上下载的图片),则在手机执行完1103之后,如图11所示,手机执行S1104-1。
S1104-1、手机的CPU 3003根据第四图像中与第三图像具有匹配关系的特征点,确定第二对象的三维点云。
其中,第二对象的三维点云包括第四图像中,与第三图像具有匹配关系的特征点。
如上文所述,已知第四图像中与第三图像具有匹配关系的特征点,手机的CPU3003可以采用计算机3维(3 dimension,3D)视觉算法确定第一对象的三维点云。关于根据第四图像中与第三图像具有匹配关系的特征点,确定第二对象的三维点云的具体的原理和过程,可以参考上文中的描述,这里不作赘述。
在手机执行S1104-1时,S707可以包括:手机的GPU 3004根据第二对象的三维点云渲染得到第二对象的AR模型。
在另一些实施例中。若第三图像和第四图像是手机通过一个或多个摄像头采集得到的图像,则在手机执行完1103之后,如图12所示,手机执行S1104-2和S1105:
S1104-2、手机的CPU 3003分析采集第四图像时手机的运动数据,确定采集第四图像时手机的空间位姿。
如上文所述,采集第四图像时手机的空间位姿包括采集第四图像时手机的空间位置和采集第四图像时手机的空间姿态。采集第四图像时手机的空间姿态可以用采集第四图像时手机的预设坐标系相对于地面坐标系的欧拉角来表示。采集第四图像时手机的空间位置可以根据采集第四图像时手机的空间姿态,结合第四图像,采用计算机3维(3dimension,3D)视觉算法计算得到。
其中,运动数据是由手机的一个或多个传感器采集到的。该一个或多个传感器包括但不限于加速度传感器、陀螺仪传感器中的至少一种。
S1105、手机的CPU 3003根据采集第四图像时手机的空间位姿,将第四图像中与第三图像具有匹配关系的特征点转换至预设三维坐标系中,得到第二对象的三维点云。
其中,第二对象的三维点云包括第四图像中与第三图像具有匹配关系的特征点。
在手机执行S1104-2和S1105时,在一些实施例中,S707可以包括:手机的GPU 3004根据采集第四图像时手机的空间位姿以及第二对象的三维点云渲染得到第二对象的AR模型。
在另一些实施例中,若在手机执行S707之前,手机获取了第二对象的深度信息,在这种情况下,S707可以包括:手机的GPU 3004根据采集第四图像时手机的空间位姿以及第二对象的三维点云,结合第二对象的深度信息渲染得到第二对象的AR模型。
在一些实施例中,手机还可以通过环境光传感器380C采集环境光亮度信息。在这种情况下,S707可以包括:手机的GPU 3004根据采集第四图像时手机的空间位姿以及第二对象的三维点云,结合第二对象的深度信息和环境光亮度信息渲染得到第二对象的AR模型。
可以理解的是,电子设备为了实现上述任一个实施例的功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以对电子设备进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
比如,以采用集成的方式划分各个功能模块的情况下,如图13所示,为本申请实施例提供的一种电子设备的结构示意图。该电子设备100可以包括图像采集单元1310、第一加速器1320、第二加速器1330、CPU 1340和GPU 1350。
其中,图像采集单元1310用于支持电子设备100采集用于构建第一对象三维模型的第一图像和第二图像。第一加速器1320用于支持电子设备100执行S701、S702、S1101和S1102,和/或用于本文所描述的技术的其他过程。第二加速器1330用于支持电子设备100执行S703和S1103,和/或用于本文所描述的技术的其他过程。CPU 1340用于支持电子设备100执行S704、S705、S706、S708、S710、S711、S1104-1、S1104-2和S1105,和/或用于本文所描述的技术的其他过程。GPU 1350用于支持电子设备100执行S707和S709,和/或用于本文所描述的技术的其他过程。
在一些情况下,图像采集单元1310还用于支持电子设备100采集第三图像和第四图像。
在另一些情况下,如图14所示,电子设备100还可以包括,接收单元1360,用于从第三方处得到第三图像和第四图像,和/或用于本文所描述的技术的其他过程。
在一些情况下,如图15所示,电子设备100还可以包括,信息获取单元1370,用于采集第一对象的深度信息,以及将第一对象的深度信息发送给CPU 1340。以及,在一些情况下,采集第二对象的深度信息,并将第二对象的深度信息发送给CPU 1340。和/或用于本文所描述的技术的其他过程。
需要说明的是,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
需要说明的是,在一种可能的结构中,接收单元1360可以包括射频电路。电子设备100可以通过射频电路进行无线信号的接收和发送。具体到本申请实施例中,电子设备100可以通过射频电路从第三方处得到用于构建第二对象三维模型的第三图像和第四图像。通常,射频电路包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器、双工器等。此外,射频电路还可以通过无线通信和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统、通用分组无线服务、码分多址、宽带码分多址、长期演进、电子邮件、短消息服务等。
在一种可选的方式中,当使用软件实现数据传输时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地实现本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如软盘、硬盘、磁带)、光介质(例如DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
结合本申请实施例所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、移动硬盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于探测装置中。当然,处理器和存储介质也可以作为分立组件存在于探测装置中。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的用户设备和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (23)
1.一种基于同时定位与地图构建SLAM进行虚实融合的方法,其特征在于,所述方法应用于电子设备,所述电子设备包括中央处理单元CPU,第一加速器,第二加速器和图形处理单元GPU,所述方法包括:
所述第一加速器提取第一图像的特征点,所述第一加速器提取第二图像的特征点;所述第一图像和所述第二图像由所述电子设备的摄像头采集得到;所述第一图像和所述第二图像的特征点用于描述第一对象;
所述第二加速器确定所述第二图像中,与所述第一图像具有匹配关系的特征点;
所述CPU分析采集所述第二图像时所述电子设备的运动数据,确定采集所述第二图像时所述电子设备的空间位姿;
所述CPU根据采集所述第二图像时所述电子设备的空间位姿,将所述第二图像中与所述第一图像具有匹配关系的特征点转换至预设三维坐标系中,得到所述第一对象的三维点云;
所述GPU根据采集所述第二图像时所述电子设备的空间位姿以及所述第一对象的三维点云渲染得到第一对象的三维模型;
所述CPU获取第二对象的三维模型;
所述GPU将所述第二对象的三维模型叠加至所述第一对象的三维模型中。
2.根据权利要求1所述的方法,其特征在于,在所述GPU将所述第二对象的三维模型叠加至所述第一对象的三维模型中之前,所述方法还包括:
所述CPU确定所述第二对象的三维模型在所述第一对象的三维模型中的第一位置,以及所述第二对象的三维模型在所述第一对象的三维模型中的第一姿态;
所述GPU将所述第二对象的三维模型叠加至所述第一对象的三维模型中,包括:
所述GPU将所述第二对象的三维模型以所述第一姿态叠加至所述第一对象的三维模型中的第一位置。
3.根据权利要求1或2所述的方法,其特征在于,所述第一加速器提取第一图像的特征点,包括:
所述第一加速器确定所述第一图像中用于描述所述第一对象的特征点的坐标和特征描述子,所述特征描述子用于表征对应特征点的灰度值;
所述第一加速器提取第二图像的特征点,包括:
所述第一加速器确定所述第二图像中用于描述所述第一对象的特征点的坐标和特征描述子,所述特征描述子用于表征对应特征点的灰度值。
4.根据权利要求1或2所述的方法,其特征在于,所述第二图像中,与所述第一图像具有匹配关系的特征点包括所述第二图像中,与所述第一图像的特征匹配度大于预设阈值的特征点。
5.根据权利要求1或2所述的方法,其特征在于,在所述GPU根据采集所述第二图像时所述电子设备的空间位姿以及所述第一对象的三维点云渲染得到第一对象的三维模型之前,所述方法还包括:
所述CPU获取所述第一对象的深度信息;
所述GPU根据采集所述第二图像时所述电子设备的空间位姿以及所述第一对象的三维点云渲染得到第一对象的三维模型,包括:
所述GPU根据采集所述第二图像时所述电子设备的空间位姿以及所述第一对象的三维点云,结合所述第一对象的深度信息渲染得到第一对象的三维模型。
6.根据权利要求1或2所述的方法,其特征在于,在所述CPU获取第二对象的三维模型之前,所述方法还包括:
所述第一加速器提取第三图像的特征点,所述第一加速器提取第四图像的特征点;所述第三图像和所述第四图像由所述电子设备从第三方处获得;所述第三图像和所述第四图像的特征点用于描述第二对象;
所述第二加速器确定所述第四图像中,与所述第三图像具有匹配关系的特征点;
所述CPU将所述第四图像中与所述第三图像具有匹配关系的特征点转换至预设三维坐标系中,得到所述第二对象的三维点云;
其中,所述第二对象的三维模型为增强现实AR模型;所述CPU获取第二对象的三维模型包括:
所述CPU根据所述第二对象的三维点云渲染得到所述第二对象的AR模型。
7.根据权利要求1或2所述的方法,其特征在于,在所述CPU获取第二对象的三维模型之前,所述方法还包括:
所述第一加速器提取第三图像的特征点,所述第一加速器提取第四图像的特征点;所述第三图像和所述第四图像由所述电子设备的摄像头采集得到;所述第三图像和所述第四图像的特征点用于描述第二对象;
所述CPU分析采集所述第四图像时所述电子设备的运动数据,确定所述电子设备采集所述第四图像时的空间位姿;
所述CPU根据采集所述第四图像时所述电子设备的空间位姿,将所述第四图像中与所述第三图像具有匹配关系的特征点转换至预设三维坐标系中,得到所述第二对象的三维点云;
其中,所述第二对象的三维模型为增强现实AR模型;所述CPU获取第二对象的三维模型包括:
所述GPU根据采集所述第二图像时所述电子设备的空间位姿以及所述第二对象的三维点云渲染得到第二对象的AR模型。
8.一种电子设备,其特征在于,所述电子设备包括:图像采集单元,用于采集第一图像和第二图像;
第一加速器,用于提取所述第一图像的特征点,以及提取所述第二图像的特征点;所述第一图像和所述第二图像的特征点用于描述第一对象;
第二加速器,用于确定所述第二图像中,与所述第一图像具有匹配关系的特征点;
中央处理单元CPU,用于分析采集所述第二图像时所述电子设备的运动数据,确定采集所述第二图像时所述电子设备的空间位姿;以及,根据采集所述第二图像时所述电子设备的空间位姿,将所述第二图像中与所述第一图像具有匹配关系的特征点转换至预设三维坐标系中,得到所述第一对象的三维点云;
图形处理单元GPU,用于根据采集所述第二图像时所述电子设备的空间位姿以及所述第一对象的三维点云渲染得到第一对象的三维模型;
所述CPU还用于,获取第二对象的三维模型;
所述GPU还用于,将所述第二对象的三维模型叠加至所述第一对象的三维模型中。
9.根据权利要求8所述的电子设备,其特征在于,所述CPU还用于,在所述GPU将所述第二对象的三维模型叠加至所述第一对象的三维模型中之前,确定所述第二对象的三维模型在所述第一对象的三维模型中的第一位置,以及所述第二对象的三维模型在所述第一对象的三维模型中的第一姿态;
所述GPU将所述第二对象的三维模型叠加至所述第一对象的三维模型中,包括:
所述GPU将所述第二对象的三维模型以所述第一姿态叠加至所述第一对象的三维模型中的第一位置。
10.根据权利要求8或9所述的电子设备,其特征在于,所述第一加速器提取第一图像的特征点,包括:
所述第一加速器确定所述第一图像中用于描述所述第一对象的特征点的坐标和特征描述子,所述特征描述子用于表征对应特征点的灰度值;
所述第一加速器提取第二图像的特征点,包括:
所述第一加速器确定所述第二图像中用于描述所述第一对象的特征点的坐标和特征描述子,所述特征描述子用于表征对应特征点的灰度值。
11.根据权利要求8或9所述的电子设备,其特征在于,所述第二图像中,与所述第一图像具有匹配关系的特征点包括所述第二图像中,与所述第一图像的特征匹配度大于预设阈值的特征点。
12.根据权利要求8或9所述的电子设备,其特征在于,所述CPU还用于,在所述GPU根据采集所述第二图像时所述电子设备的空间位姿以及所述第一对象的三维点云渲染得到第一对象的三维模型之前,获取所述第一对象的深度信息;
所述GPU根据采集所述第二图像时所述电子设备的空间位姿以及所述第一对象的三维点云渲染得到第一对象的三维模型,包括:
所述GPU根据采集所述第二图像时所述电子设备的空间位姿以及所述第一对象的三维点云,结合所述第一对象的深度信息渲染得到第一对象的三维模型。
13.根据权利要求8或9所述的电子设备,其特征在于,所述电子设备还包括,接收单元,用于从第三方处获得第三图像和第四图像;
所述第一加速器还用于,在所述CPU获取第二对象的三维模型之前,提取所述第三图像的特征点,以及提取所述第四图像的特征点;所述第三图像和所述第四图像的特征点用于描述第二对象;
所述第二加速器还用于,确定所述第四图像中,与所述第三图像具有匹配关系的特征点;
所述CPU还用于,将所述第四图像中与所述第三图像具有匹配关系的特征点转换至预设三维坐标系中,得到所述第二对象的三维点云;
其中,所述第二对象的三维模型为增强现实AR模型;所述CPU获取第二对象的三维模型包括:
所述CPU根据所述第二对象的三维点云渲染得到所述第二对象的AR模型。
14.根据权利要求8或9所述的电子设备,其特征在于,所述图像采集单元还用于,采集第三图像和第四图像;
所述第一加速器还用于,在所述CPU获取第二对象的三维模型之前,提取第三图像的特征点,以及提取第四图像的特征点;所述第三图像和所述第四图像的特征点用于描述第二对象;
所述CPU还用于,分析采集所述第四图像时所述电子设备的运动数据,确定所述电子设备采集所述第四图像时的空间位姿;以及,根据采集所述第四图像时所述电子设备的空间位姿,将所述第四图像中与所述第三图像具有匹配关系的特征点转换至预设三维坐标系中,得到所述第二对象的三维点云;
其中,所述第二对象的三维模型为增强现实AR模型;所述CPU获取第二对象的三维模型包括:
所述GPU根据采集所述第二图像时所述电子设备的空间位姿以及所述第二对象的三维点云渲染得到第二对象的AR模型。
15.一种电子设备,其特征在于,所述电子设备包括:摄像头、处理器和存储器;所述处理器包括中央处理单元CPU、第一加速器、第二加速器和图形处理单元GPU;
所述存储器用于,存储计算机程序代码,所述计算机程序代码包括指令;
所述摄像头用于,执行所述指令,采集第一图像和第二图像;
所述第一加速器用于,执行所述指令,提取所述第一图像的特征点,以及提取所述第二图像的特征点;所述第一图像和所述第二图像的特征点用于描述第一对象;
所述第二加速器用于,执行所述指令,确定所述第二图像中,与所述第一图像具有匹配关系的特征点;
所述CPU用于,执行所述指令,分析采集所述第二图像时所述电子设备的运动数据,确定采集所述第二图像时所述电子设备的空间位姿;以及,根据采集所述第二图像时所述电子设备的空间位姿,将所述第二图像中与所述第一图像具有匹配关系的特征点转换至预设三维坐标系中,得到所述第一对象的三维点云;
所述GPU用于,执行所述指令,根据采集所述第二图像时所述电子设备的空间位姿以及所述第一对象的三维点云渲染得到第一对象的三维模型;
所述CPU还用于,执行所述指令,获取第二对象的三维模型;
所述GPU还用于,执行所述指令,将所述第二对象的三维模型叠加至所述第一对象的三维模型中。
16.根据权利要求15所述的电子设备,其特征在于,所述CPU还用于,执行所述指令,在所述GPU将所述第二对象的三维模型叠加至所述第一对象的三维模型中之前,确定所述第二对象的三维模型在所述第一对象的三维模型中的第一位置,以及所述第二对象的三维模型在所述第一对象的三维模型中的第一姿态;
所述GPU执行所述指令,将所述第二对象的三维模型叠加至所述第一对象的三维模型中,包括:
所述GPU执行所述指令,将所述第二对象的三维模型以所述第一姿态叠加至所述第一对象的三维模型中的第一位置。
17.根据权利要求15或16所述的电子设备,其特征在于,所述第一加速器执行所述指令,提取第一图像的特征点,包括:
所述第一加速器执行所述指令,确定所述第一图像中用于描述所述第一对象的特征点的坐标和特征描述子,所述特征描述子用于表征对应特征点的灰度值;
所述第一加速器执行所述指令,提取第二图像的特征点,包括:
所述第一加速器执行所述指令,确定所述第二图像中用于描述所述第一对象的特征点的坐标和特征描述子,所述特征描述子用于表征对应特征点的灰度值。
18.根据权利要求15或16所述的电子设备,其特征在于,所述第二图像中,与所述第一图像具有匹配关系的特征点包括所述第二图像中,与所述第一图像的特征匹配度大于预设阈值的特征点。
19.根据权利要求15或16所述的电子设备,其特征在于,所述CPU还用于,在所述GPU根据采集所述第二图像时所述电子设备的空间位姿以及所述第一对象的三维点云渲染得到第一对象的三维模型之前,获取所述第一对象的深度信息;
所述GPU执行所述指令,根据采集所述第二图像时所述电子设备的空间位姿以及所述第一对象的三维点云渲染得到第一对象的三维模型,包括:
所述GPU执行所述指令,根据采集所述第二图像时所述电子设备的空间位姿以及所述第一对象的三维点云,结合所述第一对象的深度信息渲染得到第一对象的三维模型。
20.根据权利要求15或16所述的电子设备,其特征在于,所述电子设备还包括:射频电路,用于从第三方处获得第三图像和第四图像;
所述第一加速器还用于,执行所述指令,在所述CPU获取第二对象的三维模型之前,提取第三图像的特征点,以及提取第四图像的特征点;所述第三图像和所述第四图像的特征点用于描述第二对象;
所述第二加速器还用于,执行所述指令,确定所述第四图像中,与所述第三图像具有匹配关系的特征点;
所述CPU还用于,执行所述指令,将所述第四图像中与所述第三图像具有匹配关系的特征点转换至预设三维坐标系中,得到所述第二对象的三维点云;
其中,所述第二对象的三维模型为增强现实AR模型;所述CPU执行所述指令,获取第二对象的三维模型包括:
所述CPU执行所述指令,根据所述第二对象的三维点云渲染得到所述第二对象的AR模型。
21.根据权利要求15或16所述的电子设备,其特征在于,所述摄像头还用于,执行所述指令,采集第三图像和第四图像;
所述第一加速器还用于,执行所述指令,在所述CPU获取第二对象的三维模型之前,提取第三图像的特征点,以及提取第四图像的特征点;所述第三图像和所述第四图像的特征点用于描述第二对象;
所述CPU还用于,执行所述指令,分析采集所述第四图像时所述电子设备的运动数据,确定所述电子设备采集所述第四图像时的空间位姿;以及,根据采集所述第四图像时所述电子设备的空间位姿,将所述第四图像中与所述第三图像具有匹配关系的特征点转换至预设三维坐标系中,得到所述第二对象的三维点云;
其中,所述第二对象的三维模型为增强现实AR模型;所述CPU执行所述指令,获取第二对象的三维模型包括:
所述GPU执行所述指令,根据采集所述第二图像时所述电子设备的空间位姿以及所述第二对象的三维点云渲染得到第二对象的AR模型。
22.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机执行指令,所述计算机执行指令被执行时,以实现如权利要求1-7任一项所述的基于SLAM进行虚实融合的方法。
23.一种芯片系统,其特征在于,所述芯片系统包括:
存储介质,用于存储指令;
处理电路,用于执行所述指令,实现如权利要求1-7任一项所述的基于SLAM进行虚实融合的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910958712.7A CN110956571B (zh) | 2019-10-10 | 2019-10-10 | 基于slam进行虚实融合的方法及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910958712.7A CN110956571B (zh) | 2019-10-10 | 2019-10-10 | 基于slam进行虚实融合的方法及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110956571A CN110956571A (zh) | 2020-04-03 |
CN110956571B true CN110956571B (zh) | 2024-03-15 |
Family
ID=69975547
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910958712.7A Active CN110956571B (zh) | 2019-10-10 | 2019-10-10 | 基于slam进行虚实融合的方法及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110956571B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114812381B (zh) * | 2021-01-28 | 2023-07-18 | 华为技术有限公司 | 电子设备的定位方法及电子设备 |
CN113052750A (zh) * | 2021-03-31 | 2021-06-29 | 广东工业大学 | 一种用于vslam系统中任务跟踪的加速器及加速装置 |
CN114170366B (zh) * | 2022-02-08 | 2022-07-12 | 荣耀终端有限公司 | 基于点线特征融合的三维重建方法及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105900064A (zh) * | 2014-11-19 | 2016-08-24 | 华为技术有限公司 | 调度数据流任务的方法和装置 |
CN107358238A (zh) * | 2017-03-01 | 2017-11-17 | 郑州云海信息技术有限公司 | 一种提取图像特征信息的方法及系统 |
CN108629248A (zh) * | 2017-03-24 | 2018-10-09 | 成都理想境界科技有限公司 | 一种实现增强现实的方法及设备 |
CN109584355A (zh) * | 2018-11-07 | 2019-04-05 | 南京邮电大学 | 基于手机gpu的三维模型快速重建方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10235182B2 (en) * | 2017-06-20 | 2019-03-19 | Palo Alto Research Center Incorporated | System and method for hybrid task management across CPU and GPU for efficient data mining |
-
2019
- 2019-10-10 CN CN201910958712.7A patent/CN110956571B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105900064A (zh) * | 2014-11-19 | 2016-08-24 | 华为技术有限公司 | 调度数据流任务的方法和装置 |
CN107358238A (zh) * | 2017-03-01 | 2017-11-17 | 郑州云海信息技术有限公司 | 一种提取图像特征信息的方法及系统 |
CN108629248A (zh) * | 2017-03-24 | 2018-10-09 | 成都理想境界科技有限公司 | 一种实现增强现实的方法及设备 |
CN109584355A (zh) * | 2018-11-07 | 2019-04-05 | 南京邮电大学 | 基于手机gpu的三维模型快速重建方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110956571A (zh) | 2020-04-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110163048B (zh) | 手部关键点的识别模型训练方法、识别方法及设备 | |
CN108615248B (zh) | 相机姿态追踪过程的重定位方法、装置、设备及存储介质 | |
CN111724293B (zh) | 图像渲染方法及装置、电子设备 | |
CN110555883B (zh) | 相机姿态追踪过程的重定位方法、装置及存储介质 | |
CN108594997B (zh) | 手势骨架构建方法、装置、设备及存储介质 | |
WO2019223468A1 (zh) | 相机姿态追踪方法、装置、设备及系统 | |
CN110956571B (zh) | 基于slam进行虚实融合的方法及电子设备 | |
CN111476783B (zh) | 基于人工智能的图像处理方法、装置、设备及存储介质 | |
CN111091166B (zh) | 图像处理模型训练方法、图像处理方法、设备及存储介质 | |
CN108288032B (zh) | 动作特征获取方法、装置及存储介质 | |
CN108776822B (zh) | 目标区域检测方法、装置、终端及存储介质 | |
EP3364646A1 (en) | Electronic device and method for displaying 360-degree image in the electronic device | |
CN110544272A (zh) | 脸部跟踪方法、装置、计算机设备及存储介质 | |
CN112581358B (zh) | 图像处理模型的训练方法、图像处理方法及装置 | |
CN110991457B (zh) | 二维码处理方法、装置、电子设备及存储介质 | |
CN113129411A (zh) | 一种仿生动画生成方法及电子设备 | |
CN110705614A (zh) | 模型训练方法、装置、电子设备及存储介质 | |
CN115526983A (zh) | 一种三维重建方法及相关设备 | |
CN111104827A (zh) | 图像处理方法、装置、电子设备及可读存储介质 | |
CN113570645A (zh) | 图像配准方法、装置、计算机设备及介质 | |
CN111385481A (zh) | 图像处理方法及装置、电子设备及存储介质 | |
CN116824688A (zh) | 小腿动作捕捉方法、系统及存储介质 | |
CN113569822B (zh) | 图像分割方法、装置、计算机设备及存储介质 | |
CN114827442B (zh) | 生成图像的方法和电子设备 | |
CN114332118A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |