CN111161347B - 一种进行slam初始化的方法与设备 - Google Patents
一种进行slam初始化的方法与设备 Download PDFInfo
- Publication number
- CN111161347B CN111161347B CN202010251752.0A CN202010251752A CN111161347B CN 111161347 B CN111161347 B CN 111161347B CN 202010251752 A CN202010251752 A CN 202010251752A CN 111161347 B CN111161347 B CN 111161347B
- Authority
- CN
- China
- Prior art keywords
- point cloud
- information
- cloud information
- image frame
- initial point
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/246—Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10016—Video; Image sequence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10028—Range image; Depth image; 3D point clouds
Landscapes
- Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Studio Devices (AREA)
Abstract
本申请的目的是提供一种进行SLAM初始化的方法与设备,具体包括:建立或更新对应的点云数据库,其中,所述点云数据库中包含关于目标区域的一组或多组初始点云信息,每组初始点云信息包括该组点云信息对应的关键帧的光照度信息;通过摄像装置拍摄关于所述目标区域的当前图像帧;根据所述当前图像帧与所述点云数据库的所述一组或多组初始点云信息进行光照度信息匹配,确定该初始点云信息为对应的目标点云信息;根据所述当前图像帧与所述目标点云信息进行重定位以完成SLAM初始化。本申请结合光照度分布信息,提高SLAM初始化的鲁棒性和准确性。
Description
技术领域
本申请涉及图像领域,尤其涉及一种进行SLAM初始化的技术。
背景技术
增强现实技术(Augmented Reality,简称AR),是一种实时地计算摄影机影像的位置及角度并加上相应图像、视频、3D模型的技术,这种技术的目标是在屏幕上把虚拟世界叠加在显示界面并进行互动。它是一种将真实世界信息和虚拟世界信息"无缝"集成的新技术,该技术由1990年提出,随着随身电子产品CPU运算能力的提升,预期增强现实的用途将会越来越广。在运用增强现实技术时,通常需要进行同步定位与建图(SimultaneousLocalization and Mapping,简称SLAM),具体地,SLAM是指机器人在未知环境中从一个未知位置开始移动,在移动过程中根据位置估计和地图进行自身定位,同时在自身定位的基础上建造增量式地图,实现机器人的自主定位和导航。在复杂场景下通过纯视觉SLAM在制定目标上虚拟显示相关信息和模型,实现稳定的增强现实体验,是计算机视觉和增强现实领域富有挑战性的工作,它的困难之处在于视觉SLAM依靠图像中的特征实现跟踪和稀疏地图的构建,而图像中的特征一般受光照变化、运动变化、场景变化、遮挡、运动模糊等影响,造成视觉特征的不稳定。增强现实的应用要求对变化的场景具有一定的鲁棒性,尤其是在户外、家庭和公共场所受自然光影响的环境中。SLAM初始化的结果直接影响SLAM后续的跟踪精度和稳定性,因而初始化是SLAM比较重要的模块。
发明内容
本申请的一个目的是提供一种进行SLAM初始化的方法与设备。
根据本申请的一个方面,提供了一种进行SLAM初始化的方法,该方法包括:
建立或更新对应的点云数据库,其中,所述点云数据库中包含关于目标区域的一组或多组初始点云信息,每组初始点云信息包括该组点云信息对应的关键帧的光照度信息;
通过摄像装置拍摄关于所述目标区域的当前图像帧;
根据所述当前图像帧与所述点云数据库的所述一组或多组初始点云信息进行光照度信息匹配,若所述一组或多组初始点云信息中存在对应的某初始点云信息的关键帧的光照度信息与所述当前图像帧的光照度信息相匹配,则确定该初始点云信息为对应的目标点云信息;
根据所述当前图像帧与所述目标点云信息进行重定位以完成SLAM初始化。
根据本申请的一个方面,提供了一种进行SLAM初始化的设备,该设备包括:
一一模块,用于建立或更新对应的点云数据库,其中,所述点云数据库中包含关于目标区域的一组或多组初始点云信息,每组初始点云信息包括该组点云信息对应的关键帧的光照度信息;
一二模块,用于通过摄像装置拍摄关于所述目标区域的当前图像帧;
一三模块,用于根据所述当前图像帧与所述点云数据库的所述一组或多组初始点云信息进行光照度信息匹配,若所述一组或多组初始点云信息中存在对应的某初始点云信息的关键帧的光照度信息与所述当前图像帧的光照度信息相匹配,则确定该初始点云信息为对应的目标点云信息;
一四模块,用于根据所述当前图像帧与所述目标点云信息进行重定位以完成SLAM初始化。
根据本申请的一个方面,提供了一种进行SLAM初始化的设备,该设备包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行如上所述任一方法的操作。
根据本申请的另一个方面,提供了一种存储指令的计算机可读介质,所述指令在被执行时使得系统进行如上所述任一方法的操作。
与现有技术相比,本申请通过建立或更新对应的点云数据库,其中,所述点云数据库中包含关于目标区域的一组或多组初始点云信息,每组初始点云信息包括该组点云信息对应的关键帧的光照度信息;通过摄像装置拍摄关于所述目标区域的当前图像帧;根据所述当前图像帧与所述点云数据库的所述一组或多组初始点云信息进行光照度信息匹配,若所述一组或多组初始点云信息中存在对应的某初始点云信息的关键帧的光照度信息与所述当前图像帧的光照度信息相匹配,则确定该初始点云信息为对应的目标点云信息;根据所述当前图像帧与所述目标点云信息进行重定位以完成SLAM初始化。本申请能够适用于复杂度更高的场景,实现SLAM快速初始化。进一步地,在此基础上,能够结合光照度分布信息,解决光照变化场景下的SLAM初始化,从而提高了基于SLAM的增强现实应用的鲁棒性和准确性。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1示出根据本申请一个方面的一种进行SLAM初始化的方法流程图;
图2示出根据本申请一个方面的图1所示方法的步骤S105;
图3示出根据本申请一个实施例的一种中心布点法的布点示意图;
图4示出根据本申请另一个实施例的一种四角布点法的布点示意图;
图5示出根据本申请一个方面的图1示出的步骤S103的子步骤S1031和子步骤S1032;
图6示出根据本申请一个方面的图1示出的步骤S104的子步骤S1041和子步骤S1042;
图7示出根据本申请一个方面的图1所示方法的步骤S106;
图8示出根据本申请一个方面的图1所示方法的步骤S107;
图9示出根据本申请一个方面的图1所示方法的步骤S108;
图10示出根据本申请一个方面的一种进行SLAM算法的方法流程图;
图11示出根据本申请一个方面的图1所示方法的步骤S109;
图12示出根据本申请一个方面的一种计算设备的功能模块;
图13示出可被用于实施本申请中所述的各个实施例的示例性系统。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
下面结合附图对本申请作进一步详细描述。
在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(例如,中央处理器(Central Processing Unit,CPU))、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RandomAccess Memory,RAM)和/或非易失性内存等形式,如只读存储器(Read Only Memory,ROM)或闪存(Flash Memory)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(Phase-Change Memory,PCM)、可编程随机存取存储器(Programmable Random Access Memory,PRAM)、静态随机存取存储器(Static Random-Access Memory,SRAM)、动态随机存取存储器(Dynamic Random AccessMemory,DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(Electrically-Erasable Programmable Read-Only Memory,EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、数字多功能光盘(Digital Versatile Disc,DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
本申请所指设备包括但不限于用户设备、网络设备、或用户设备与网络设备通过网络相集成所构成的设备。所述用户设备包括但不限于任何一种可与用户进行人机交互(例如通过触摸板进行人机交互)的移动电子产品,例如智能手机、平板电脑等,所述移动电子产品可以采用任意操作系统,如Android操作系统、iOS操作系统等。其中,所述网络设备包括一种能够按照事先设定或存储的指令,自动进行数值计算和信息处理的电子设备,其硬件包括但不限于微处理器、专用集成电路(Application Specific IntegratedCircuit,ASIC)、可编程逻辑器件(Programmable Logic Device,PLD)、现场可编程门阵列(Field Programmable Gate Array,FPGA)、数字信号处理器(Digital Signal Processor,DSP)、嵌入式设备等。所述网络设备包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云;在此,云由基于云计算(Cloud Computing)的大量计算机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个虚拟超级计算机。所述网络包括但不限于互联网、广域网、城域网、局域网、VPN网络、无线自组织网络(Ad Hoc网络)等。优选地,所述设备还可以是运行于所述用户设备、网络设备、或用户设备与网络设备、网络设备、触摸终端或网络设备与触摸终端通过网络相集成所构成的设备上的程序。
当然,本领域技术人员应能理解上述设备仅为举例,其他现有的或今后可能出现的设备如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
在本申请的描述中,“多个”的含义是两个或者更多,除非另有明确具体的限定。
图1示出了根据本申请一个方面的一种进行SLAM初始化的方法,该方法应用于计算设备,具体包括步骤S101、步骤S102、步骤S103以及步骤S104。在步骤S101中,计算设备建立或更新对应的点云数据库,其中,所述点云数据库中包含关于目标区域的一组或多组初始点云信息,每组初始点云信息包括该组点云信息对应的关键帧的光照度信息;在步骤S102中,计算设备通过摄像装置拍摄关于所述目标区域的当前图像帧;在步骤S103中,计算设备根据所述当前图像帧与所述点云数据库的所述一组或多组初始点云信息进行光照度信息匹配,若所述一组或多组初始点云信息中存在对应的某初始点云信息的关键帧的光照度信息与所述当前图像帧的光照度信息相匹配,则确定该初始点云信息为对应的目标点云信息;在步骤S104中,计算设备根据所述当前图像帧与所述目标点云信息进行重定位以完成SLAM初始化。在此,计算设备包括但不限于用户设备、网络设备、用户设备与其他设备(如其他用户设备或者网络设备等)的结合等,其中,所述用户设备包括但不限于任何一种可与用户进行人机交互的移动电子产品,例如智能手机、平板电脑、智能眼镜、智能头盔等,所述网络设备包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云。例如,本方案可以是在用户设备端本地建立对应的点云数据库并基于此完成SLAM初始化;还如,本方案所指计算设备可以是用户设备与其他设备(例如,其他用户设备或者网络设备等)的结合,用户设备通过摄像装置采集图像帧,所述点云数据库由其他设备建立并存储,具体的初始化过程可以是在用户设备完成,也可以是在其他设备完成,例如,用户设备接收其他设备发送的点云数据库的相关信息(如点云数据库中所有点云信息或者关于目标区域的一组或多组初始点云信息),并基于图像帧在本地进行SLAM初始化;又例如,用户设备用于通过摄像装置采集关于目标区域的图像帧,并将该图像帧发送至其他设备,其他设备基于点云数据库及图像帧进行SLAM初始化,具体的后续处理过程(如跟踪或者建图等)可以在其他设备端完成,也可以是其他设备将SLAM初始化获取的位姿信息及地图点信息等发送至用户设备并在本地完成等。
具体而言,在步骤S101中,计算设备建立或更新对应的点云数据库,其中,所述点云数据库中包含关于目标区域的一组或多组初始点云信息,每组初始点云信息包括该组点云信息对应的关键帧的光照度信息。例如,所述点云信息包括3D点。例如,点云信息包括通过图像匹配和深度信息获取后确定的3D地图点,又例如,所述点云信息包括透过3D扫描仪所取得之资料形式,该扫描资料以点的型式记录,每一个点包含有三维坐标,有些可能含有颜色信息(R,G,B)或物体反射面强度。所述目标区域是指覆盖范围包含用户感兴趣或者将要进行拍摄或者将要进行SLAM初始化的区域,该目标区域可以是人为设定的,还可以摄像装置根据拍摄的图像智能控制的,如当前拍摄的图像纹理太少或者图像重复等则停止拍摄。所述初始点云信息是指点云信息对应的扫描范围包含该目标区域的3D地图点信息,对应点云数据库中包含一组或多组初始点云信息,换言之,点云数据库中除了包含目标区域对应的初始点云信息之外,还可以包含其他区域的点云信息等。每组初始点云信息包括该组初始点云信息的关键帧的光照度信息,所述关键帧的光照度信息包括但不限于该组点云信息的平均光照度(如将该点云信息的平均光照度作为该点云信息中关键帧的光照度)、对应每个关键帧的平均光照度信息、对应每个关键帧的光照分布信息等,其中,所述光照分布信息可以是该图像帧中全部像素点、部分特征点或者全部特征点对应的光照度,如对应全部像素点中每个像素点位置的光照度数值等,对应部分特征点或者全部特征点中每个特征点对应位置的光照度数值等,该数值可以是由仪器测量得到或者通过对图像帧进行处理得到等。当然,本领域技术人员应能理解上述点云信息的获取方法、光照度信息仅为举例,其他现有的或今后可能出现的点云信息的获取方法、光照度信息如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。例如,光照度信息还可以是基于平均值的其它统计值,例如方差、标准差等。在一些实施方式中,所述初始点云信息除了包含对应的3D地图点,还包括但不限于:点云信息对应的关键帧、点云信息对应的共视图信息、点云信息对应的生长树信息等。例如,所述关键帧信息是指SLAM系统中符合预设筛选条件的图像帧,考虑到图像帧获取过程中图像插入频率过高,经常会导致信息冗余快速增加,而这些冗余信息对SLAM系统的精度提升十分有限,甚至没有提高,反而会消耗更多的计算资源,所以我们利用关键帧,在计算过程中适当降低信息冗余度,减少计算机资源的消耗,保证系统的平稳运行。所述共视图信息包括与当前帧有共同观测的关键帧的集合,从而构建一个临时地图,通过构建更强和更多的约束条件来优化相机的位姿。所述生长树信息是指用来管理关键帧的数据结构,确保操作某一关键帧时,维护与之相关的子结点。本方案通过利用点云信息的多个因素进行SLAM初始化,能够适用于复杂度更高的场景,实现快速初始化。在此基础上,提高基于SLAM的增强现实应用的鲁棒性和准确性。所述初始点云信息的关键帧的光照度信息可以是通过仪器测量获得,如通过光照度仪器测量目标区域的光照度信息,根据测量值计算对应点云信息的平均光照度信息,将点云信息的平均光照度信息作为关键帧的光照度信息,或者,通过拍摄关键帧的测量值计算该关键帧的光照度信息,将各个关键帧的光照度信息作为关键帧的光照度信息等;所述初始点云信息的关键帧的光照度信息还可以是通过各个关键帧中特征点对应的像素位置的相关值(如灰度值等)计算的到,如根据各个关键帧的特征点对应像素位置的灰度值计算各个关键帧的平均光照度,将各个关键帧的平均光照度作为关键帧的光照度信息,或者根据各个关键帧中特征点对应像素位置的灰度值计算各特征点的光照度从而得到各个关键帧的光照分布信息,将各个关键帧的光照分布信息作为关键帧的光照度信息。
在步骤S102中,计算设备通过摄像装置拍摄关于所述目标区域的当前图像帧。例如,当事先建立了所述目标区域的点云数据库时,便可以进行SLAM的初始化。用户可以通过计算设备的摄像装置拍摄关于目标区域的图像帧,将当前拍摄的图像帧称为当前图像帧,并基于该当前图像帧进行SLAM初始化。其中,所述计算设备与初始点云/点云数据库生成设备可以是同一个设备,也可以是不同的设备。
在步骤S103中,计算设备根据所述当前图像帧与所述点云数据库的所述一组或多组初始点云信息进行光照度信息匹配,若所述一组或多组初始点云信息中存在对应的某初始点云信息的关键帧的光照度信息与所述当前图像帧的光照度信息相匹配,则确定该初始点云信息为对应的目标点云信息。例如,计算设备根据所述当前图像帧与一组或多组初始点云信息进行光照度匹配,若所述一组或多组初始点云信息中存在对应的某初始点云信息的关键帧的光照度信息与所述当前图像帧的光照度信息相匹配,则确定该匹配的初始点云信息为对应的目标点云信息。所述光照度信息匹配根据所述光照度信息的表现形式不同对应的匹配方式也有所区别,如将光照平均值等统计值作为对应光照度信息时,对应的光照度匹配通过光照度平均值等统计值进行匹配,如计算当前图像帧的光照度平均值与初始点云信息的各个关键帧光照度平均值的光照差值,若该光照度差值小于或等于预设的光照度差值阈值,则将该初始点云信息作为目标点云信息。若将特征点对应的光照分布作为各点云的光照度信息,则对应的光照度匹配包括通过特征点或者特征点对的光照分布进行匹配等。在此,所述目标点云信息可以是从一组或多组初始点云中确定的一组或多组点云信息等,如计算设备根据所述当前图像帧的数据等依据对应光照度匹配方式遍历所述点云数据库中的一组或多组初始点云信息,从所述一组或多组初始点云信息中匹配确定对应的一组或多组目标点云信息,若确定对应的一组或多组目标点云信息,则根据一组或多组目标点云进行重定位,并根据多个重定位结果确定最优结果等,或者,若确定对应的一组或多组目标点云信息,则任意选择其中一组目标点云信息进行重定位从而完成初始化,等等;当然,所述目标点云信息还可以是依次匹配所述一组或多组初始点云信息中确定的第一组满足光照度匹配条件的初始点云信息,后续基于该目标点云信息进行重定位从而完成初始化。其中,计算设备可以是用户设备,还可以是用设备与其他设备(其他用户设备或网络设备)的结合,如初始点云/点云数据库可以存储在用户设备本地,也可以存储在云端服务器或其他用户设备上。当前图像帧与初始点云信息进行匹配时,若初始点云/点云数据库存储在云端服务器或其他用户设备上时,可以将初始点云/点云数据库下载到用户设备本地,在用户设备本地进行匹配,或者将当前图像帧发送到云端服务器或其他用户设备上进行匹配,并将匹配结果返回给用户设备。
在步骤S104中,计算设备根据所述当前图像帧与所述目标点云信息进行重定位以完成SLAM初始化。例如,所述重定位是指根据当前图像帧与目标点云信息中多个关键帧的特征点匹配找出一些候选关键帧,对每个候选关键帧,用RANSAC和PnP估计位姿,然后更新地图点,然后优化位姿,如果内点较少,则重复上述过程,直到有足够的内点支持,从而完成重定位。完成重定位后能够获取到对应的地图点和当前图像帧的位姿信息等,该位姿信息可以是当前帧与关键帧的相对位置关系,还可以是摄像装置的当前相机位姿信息。其中,当前图像帧与目标点云信息进行重定位时,若目标点云信息存储在云端服务器或其他用户设备上时,可以将目标点云信息下载到用户设备本地,在用户设备本地进行重定位,或者将当前图像帧发送到云端服务器或其他用户设备上进行重定位,并将重定位结果返回给用户设备。
在一些实施方式中,如图2所示,所述方法还包括步骤S105。在步骤S105中,计算设备获取所述当前图像帧对应的光照度信息。例如,计算设备在通过摄像装置拍摄关于目标区域的当前图像帧后,还会获取所述当前图像帧的光照度信息,如根据图像帧的灰度值或者在测量时通过光照测量装置确定对应的光照度信息等。在一些实施方式中,在步骤S105中,计算设备通过对应的光照测量装置确定所述当前图像帧的光照度信息。例如,所述计算设备还包括光照测量装置,用于测量对应区域的光照度等,如光照测量仪等。计算设备可以在拍摄当前图像帧的同时通过光照测量装置测量当前图像帧所拍摄区域的光照度,例如,测量该拍摄区域的一个光照度,将该光照度作为当前图像帧的光照度信息,或者测量该拍摄区域的多个光照度,通过统计平均得到平均光照度,将该平均光照度作为当前图像帧的光照度信息;还如,将该拍摄区域划分为多个子区域,并测量各子区域的光照度,并基于各子区域的位置与子区域的光照度建立当前图像帧的光照分布信息,将该光照分布信息作为当前图像帧的光照度信息。再如,将该拍摄区域划分为多个子区域,并测量各子区域的光照度,并基于各子区域的光照度计算平均光照度,将该平均光照度作为当前图像帧的光照度信息。在此,对应光照度测量方法包括但不限于:中心布点法、四角布点法等。具体计算如下:
1)中心布点法
如图3所示的布点示意图,此方法中平均照度计算方法如下:
其中,Eav为平均照度,单位为勒克斯(lx);Ei为第i个测点上的照度测量值,单位为勒克斯(lx);M为纵向测点数;N为横向测点数。
(2)四角布点法
如图4所示的布点在照度测量的区域一般将测量区域划分成矩形网格,网格宜为正方形,应在矩形网格4个角点上测量照度。该布点方法适用于水平照度、垂直照度或摄像机方向的垂直照度的测量。四角布点的平均照度计算公式如下:
其中,
Eav为平均照度,单位为勒克斯(lx);Eθ为四个角点处的测点照度,单位为勒克斯(lx);E1为Eθ除外,四条外边上的测点照度,单位为勒克斯(lx);E为四条外面以内的测点的照度,单位为勒克斯(lx)。M为纵向测点数;N为横向测点数。
当然,本领域技术人员应能理解上述照度计算方法仅为举例,其他现有的或今后可能出现的照度计算方法如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
在一些实施方式中,如图5所示,所述步骤S103包括子步骤S1031和子步骤S1032,在步骤S1031中,计算设备提取所述当前图像帧的特征点;在步骤S1032中,计算设备根据所述当前图像帧的特征点与所述点云数据库的所述一组或多组初始点云信息进行光照度匹配,若所述一组或多组初始点云信息中存在对应的某初始点云信息的关键帧的光照度信息与所述当前图像帧的光照度信息相匹配,则确定该初始点云信息为对应的目标点云信息。例如,计算设备在进行光照度匹配之前还会提取所述当前图像帧的特征点,并基于对应特征点进行光照度匹配,如根据特征点与每组初始点云信息中关键帧的特征点进行匹配,然后基于匹配的特征点对进行光照度相似度的计算,若匹配到合适的初始点云信息,则将该初始点云信息作为目标点云信息,其中,合适的初始点云信息包括与当前帧的光照度相似度大于或等于一定光照度相似度阈值的点云信息或者光照相似度最高的点云信息,或者满足特征匹配且满足光照度相似度阈值的特征点数量满足一定数量的点云信息,或者满足特征匹配且满足光照度相似度阈值的特征点数量最多的点云信息,或者满足光照度相似度大于或等于一定光照度相似度阈值且特征匹配的特征点数量满足一定数量的点云信息或者满足光照度相似度最高且特征匹配的特征点数量满足一定数量的点云信息等。当然,为了简化计算量提高匹配效率等,我们取每个初始点云信息的关键帧的特征点进行匹配。如在一些实施方式中,在步骤S1032中,计算设备根据所述当前图像帧的特征点与所述点云数据库的所述一组或多组初始点云信息的关键帧进行特征点匹配,确定每组初始点云信息与所述当前图像帧的特征点对;根据所述每组初始点云信息与所述当前图像帧的特征点对进行光照相似度匹配,若所述一组或多组初始点云信息中存在对应的某初始点云信息的关键帧的光照度信息与所述当前图像帧的光照度信息相匹配,则确定该初始点云信息为对应的目标点云信息。例如,计算设备通过进行特征点匹配确定每组初始点云信息的关键帧与当前图像帧之间的特征点对等,如采用BoW(Bag-of-Words)模型计算当前图像帧特征点与初始点云信息中多个关键帧的特征点之间的匹配的特征点对,若某初始点云信息的关键帧与当前图像帧之间未存在特征点对,则将该初始点云信息剔除,基于剩余的初始点云信息进一步完成特征点匹配过程。随后,计算设备根据各初始点云信息的关键帧与当前图像帧的特征点对进行光照度匹配,例如,光照相似度根据欧几里德距离(Euclidean Distance)描述为:
其中,Xi表示当前图像帧中的特征点,Yi表示初始点云信息中关键帧中的特征点,Xi和Yi是匹配的特征点对。是Xi对应的光照度,是Yi对应的光照度。当然,光照相似度也可以是夹角余弦、欧氏距离、曼哈顿距离、切比雪夫距离、平均值等统计值等其它测算方法。基于上述方式,计算设备可以确定特征点对的光照相似度阈值,基于相似度阈值信息,可以确定匹配的目标点云信息,如对于每组初始点云信息,若某组初始点云信息的关键帧与当前图像帧的特征点对的对应的光照相似度满足第一相似度阈值,则确定该初始点云信息为目标点云信息;还可以基于各初始点云信息中光照相似度信息的排序取相似度最高的作为目标点云信息,如若某组初始点云信息的关键帧与当前图像帧的特征点对的对应的光照相似度最高,则确定该初始点云信息为目标点云信息。当然,为了提高匹配的精度,我们还可以综合光照相似度和特征点对的数量确定对应的目标点云信息,如若初始点云信息的关键帧中与当前图像帧的特征点对的光照相似度满足第二光照相似度阈值,则确定该初始点云信息的关键帧与当前图像帧中的特征点对为相似特征点对,若某初始点云信息匹配确定的相似特征点对数量最大或者满足第一数量阈值,则确定该初始点云信息为目标点云信息;或者先从一组或多组初始点云信息的关键帧中确定与当前图像帧的特征点对数量满足第二数量阈值的候选点云信息,再利用候选点云信息的关键帧中与当前图像帧的特征点对进行光照相似度匹配,若某候选点云信息的关键帧中与当前图像帧的特征点对的光照相似度最大或者满足第三光照相似度阈值等,确定该候选点云信息为目标点云信息。当然,本领域技术人员应能理解上述匹配特征点对的光照相似度的计算方法仅为举例,其他现有的或今后可能出现的特征点对的光照相似度的计算方法如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
如在一些实施方式中,所述若所述一组或多组初始点云信息中存在对应的某初始点云信息的关键帧的光照度信息与所述当前图像帧的光照度信息相匹配,则确定该初始点云信息为对应的目标点云信息,包括但不限于:若所述一组或多组初始点云信息中存在某初始点云信息的关键帧与所述当前图像帧的特征点对的光照相似度大于或等于第一光照相似度阈值;若所述一组或多组初始点云信息中存在某初始点云信息的关键帧与所述当前图像帧的特征点对的光照相似度最大;若所述一组或多组初始点云信息中存在某初始点云信息的关键帧与所述当前图像帧的相似特征点对数量大于或等于第一数量阈值,其中,所述相似特征点对包括光照相似度大于或等于第二光照相似度阈值的特征点对;若所述一组或多组初始点云信息中存在某初始点云信息的关键帧与所述当前图像帧的相似特征点对数量最大,其中,所述相似特征点对包括光照相似度大于或等于第二光照相似度阈值的特征点对;若所述一组或多组初始点云信息中存在某候选点云信息的关键帧与所述当前图像帧的特征点对的光照相似度大于或等于第三光照相似度阈值,其中,所述候选点云信息包括与所述当前图像帧的特征点对数量大于或等于第二数量阈值的初始点云信息;若所述一组或多组初始点云信息中存在某候选点云信息的关键帧与所述当前图像帧的特征点对的光照相似度最大,其中,所述候选点云信息包括与所述当前图像帧的特征点对数量大于或等于第二数量阈值的初始点云信息。其中,所述特征点可以包括但不限于SIFT、SURF、FAST、BRIEF、ORB等,特征的匹配是针对特征描述子的进行的,上面提到特征描述子通常是一个向量,两个特征描述子的之间的距离可以反应出其相似的程度,也就是这两个特征点是不是同一个。根据描述子的不同,可以选择不同的距离度量。如果是浮点类型的描述子,可以使用其欧式距离;对于二进制的描述子(BRIEF)可以使用其汉明距离(两个不同二进制之间的汉明距离指的是两个二进制串不同位的个数)。有了计算描述子相似度的方法,那么在特征点的集合中如何寻找和其最相似的特征点,这就是特征点的匹配了。常用的匹配方式包括但不限于暴力匹配方法、较差匹配、K近邻匹配等。最简单直观的方法就是暴力匹配方法(Brute-Froce Matcher),计算某一个特征点描述子与其他所有特征点描述子之间的距离,然后将得到的距离进行排序,取距离最近的一个作为匹配点。交叉匹配:针对暴力匹配,可以使用交叉匹配的方法来过滤错误的匹配。交叉过滤的是想很简单,再进行一次匹配,反过来使用被匹配到的点进行匹配,如果匹配到的仍然是第一次匹配的点的话,就认为这是一个正确的匹配。举例来说就是,假如第一次特征点A使用暴力匹配的方法,匹配到的特征点是特征点B;反过来,使用特征点B进行匹配,如果匹配到的仍然是特征点A,则就认为这是一个正确的匹配,否则就是一个错误的匹配。K近邻匹配:在匹配的时候选择K个和特征点最相似的点,如果这K个点之间的区别足够大,则选择最相似的那个点作为匹配点,通常选择K=2,也就是最近邻匹配。对每个匹配返回两个最近邻的匹配,如果第一匹配和第二匹配距离比率足够大(向量距离足够远),则认为这是一个正确的匹配,比率的阈值通常在2左右。另外还可采用随机采样一致性(RANSAC)来过滤掉错误的匹配,该方法利用匹配点计算两个图像之间单应矩阵,然后利用重投影误差来判定某一个匹配是不是正确的匹配。
当然,本领域技术人员应能理解上述特征点以及特征点匹配方式仅为举例,其他现有的或今后可能出现的特征点匹配方式的获取方法如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
基于前述匹配过程,计算设备可以在不同的时机计算当前图像帧的光照度信息,如计算设备拍摄当前图像帧后即根据各特征点所处位置(如该特征点所在点的图像位置或者该特征点所在邻域的图像位置)的灰度值计算该特征点的光照度信息,并基于各特征点的光照度信息组成当前特征帧的光照度分布,从而将该光照度分布作为当前图像帧的光照度信息。在一些实施方式中,在步骤S105中,计算设备根据所述当前图像帧的特征点的灰度值计算各特征点对应的光照度信息。例如,计算设备提取图像特征点后,基于该特征点对应的像素的灰度,转化为光照度的关系如下:
其中,Er为单一像素对应的光照度,G为图像像素灰度值,gv为是模拟前端(AFE)中可变增益放大器(VGA)的增益,t为曝光时间,ov是根据gv变化的直流偏置。根据当前图像帧中各特征点的光照度信息可以确定对应当前图像帧的光照分布信息。在一些实施方式中,在步骤S105中,计算设备根据所述每组初始点云信息与所述当前图像帧的特征点对中所述当前图像帧对应的匹配特征点的灰度值,计算各匹配特征点对应的光照度信息。例如,计算设备还可以在与初始点云信息匹配确定对应的特征点对后,根据当前图像帧中各特征点对所对应的特征点所处位置(如该特征点所在点的图像位置或者该特征点所在邻域的图像位置)的灰度值计算该特征点的光照度信息,并基于各特征点对对应的特征点的光照度信息组成当前特征帧的光照度分布,从而将该光照度分布作为当前图像帧的光照度信息。基于该方法可以节约计算成本,提高匹配效率。
在一些实施方式中,如图6所示,所述步骤S104包括子步骤S1041和子步骤S1042。在步骤S1041中,计算设备将所述当前图像帧的特征点与所述目标点云信息的关键帧中特征点进行匹配,若目标点云信息中的某关键帧中匹配的特征点的数量大于或等于预设数量阈值,将该关键帧作为候选关键帧;在步骤S1042中,计算设备根据所述候选关键帧获取所述摄像装置的位姿信息,以完成SLAM初始化。例如,计算设备对获取到的当前图像帧提取ORB特征,采用BoW模型计算当前图像帧特征点与目标点云信息中多个关键帧之间的匹配点,若匹配数量满足一定数量阈值则视为候选关键帧,并在后续基于该候选关键帧获取地图点和当前图像帧的位姿信息等。当然,本领域技术人员应能理解上述特征点匹配方式仅为举例,其他现有的或今后可能出现的特征点匹配方式的获取方法如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。在一些实施方式中,在步骤S1042中,计算设备对所述候选关键帧中每个候选关键帧进行随机采样一致性算法和PnP估计确定对应的内点及所述摄像装置的当前位姿信息;将所述候选关键帧的内点更新为地图点,利用图优化理论优化所述摄像装置的当前位姿信息;重复上述步骤,直至所述内点数量满足预定数量阈值,确定所述摄像装置的位姿信息,以完成SLAM初始化。例如,对于每个候选关键帧通过RANSAC(随机采样一致性算法)和PnP估计当前图像帧的当前位姿信息,然后更新估计得到的内点为地图点,进而利用图优化理论优化当前图像帧的当前位姿信息,如果优化后的内点较少,则重复上述步骤,对选择的多个候选关键帧的地图点进行更多的匹配,最后再次优化位姿,内点满足一定阈值时,重定位成功,从而建立与地图点云中的坐标系一致的SLAM坐标系,完成初始化。在此,所述RANSAC算法的输入是一组观测数据,一个可以解释或者适应于观测数据的参数化模型,一些可信的参数。RANSAC通过反复选择数据中的一组随机子集来达成目标。被选取的子集被假设为局内点,并用下述方法进行验证:
1.有一个模型适应于假设的局内点,即所有的未知参数都能从假设的局内点计算得出。
2.用1中得到的模型去测试所有的其它数据,如果某个点适用于估计的模型,认为它也是局内点。
3.如果有足够多的点被归类为假设的局内点,那么估计的模型就足够合理。
4.然后,用所有假设的局内点去重新估计模型,因为它仅仅被初始的假设局内点估计过。
5.最后,通过估计局内点与模型的错误率来评估模型。
这个过程被重复执行固定的次数,每次产生的模型要么因为局内点太少而被舍弃,要么因为比现有的模型更好而被选用。
在一些实施方式中,如图7所示,所述方法还包括步骤S106。在步骤S106中,计算设备若经过预定次数的重复后,所述内点数量不满足所述预定数量阈值,通过所述摄像装置扫描所述目标区域获取对应的第一图像帧,直至所述第一图像帧与一组或多组初始点云信息中某组初始点云信息计算后的内点数满足所述预定数量阈值,则重定位成功,从而确定摄像装置的位姿信息,以完成SLAM初始化。例如,重定位过程中,若经过预定次数(如5次等)的重复后,得到的内点数量仍不满足预定数量阈值,则计算设备确定当前图像帧与目标点云信息重定位失败,继续通过摄像装置拍摄关于目标区域的图像帧,直至存在第一图像帧,该第一图像帧在点云数据库中存在对应的第一目标点云信息,并与第一目标点云信息中第一目标关键帧确定对应候选关键帧后能够计算得到足够的内点数满足所述预定数量阈值,所述第一图像帧中第一不代表顺序,仅用于与前文当前图像帧进行名称区别,该第一图像帧可以是当前图像帧的下一帧图像帧,若下一帧图像帧仍不匹配,该第一图像帧表示所述摄像装置采集到的第一个与点云数据库中初始点云信息匹配后计算的内点数满足预定数量阈值的图像帧,即第一个能够完成重定位的图像帧。在一些实施方式中,若当前图像帧的SLAM初始化完成,所述摄像装置继续扫描关于所述目标区域的多个图像帧,基于SLAM初始化获取的位姿信息,生成对应的一组扫描点云信息;并根据所述扫描点云信息更新所述点云数据库。例如,计算设备完成此次扫描的SLAM初始化后,获取到对应的当前位姿信息和地图点信息,并通过摄像装置继续采集关于所述目标区域的多个图像帧,随后,根据SLAM跟踪和建图方法等获得此次扫描的图像帧对应的扫描点云信息。计算设备可以将该扫描点云信息存储至点云数据库,基于该扫描点云信息更新所述点云数据库。所述点云数据库中保存了多个离线点云数据,可以确保SLAM初始化的快速、准确地进行。
在一些实施方式中,如图8所示,所述方法还包括步骤S107。在步骤S107中,计算设备若所述一组或多组初始点云信息中不存在对应的初始点云信息的关键帧的光照度信息与所述当前图像帧的光照度信息相匹配,继续通过所述摄像装置拍摄关于所述目标区域的第二图像帧,直至所述一组或多组初始点云信息中存在与所述第二图像帧匹配的目标点云信息;其中,在步骤S104中,计算设备根据所述第二图像帧与所述目标点云信息进行重定位以完成SLAM初始化。例如,若根据所述当前图像帧的特征点与所述一组或多组初始点云信息中关键帧的特征点进行匹配时,未匹配到满足前述预设条件的目标点云信息,则认为当前图像帧不满足初始化要求,继续通过摄像装置采集关于所述目标区域的图像帧,如第二图像帧等,并根据该第二图像帧继续匹配直至该第二图像帧在所述点云数据库中匹配到满足预设条件的对应的第二目标点云信息,所述第二图像帧中第二不代表顺序,仅用于与前文当前图像帧/第一图像帧进行区别,该第二图像帧可以是当前图像帧的下一帧图像帧,若下一帧图像帧仍不匹配,该第二图像帧表示所述摄像装置采集到的第一个与点云数据库中初始点云信息满足预设条件的图像帧。随后,计算设备根据该匹配的第二图像帧与对应第二目标点云信息进行重定位以完成SLAM初始化。
在一些实施方式中,如图9所示,所述方法还包括步骤S108。在步骤S108中,计算设备通过所述摄像装置扫描所述目标区域获取对应的初始点云信息,其中,所述初始点云信息包括该组点云信息对应的关键帧的光照度信息;其中,在步骤S101中,计算设备根据所述获取的初始点云信息建立或更新对应的点云数据库,其中,所述点云数据库中包含关于目标区域的一组或多组初始点云信息,每组初始点云信息包括该组点云信息对应的关键帧的光照度信息。例如,所述点云数据库可以保存在用户设备本地,也可以存储在云端设备或其他用户设备中。例如,所述计算设备包括对应的摄像装置,用于拍摄当前目标区域的图像帧,如摄像头、跟踪摄像机等。通常基于点云数据库进行初始化需要先获取一组或多组初始点云信息,基于该一组或多组初始点云信息建立或更新对应的点云数据库,随后,基于该点云数据库对当前图像帧进行匹配,得到最佳点云用于SLAM初始化,其中,每组初始点云信息包括对应的关键帧的光照度信息,每组初始点云信息的光照度信息的获取方式与前述当前帧的光照度信息的获取方式相同或相似,在此不再赘述。例如,计算设备获取该摄像装置的初始位姿信息,并基于该初始位姿信息通过摄像装置可以拍摄获取关于目标区域的多个图像帧,并基于该多个图像帧得到对应的初始点云信息。在一些实施方式中,在步骤S108中,计算设备确定用于扫描所述目标区域的所述摄像装置的初始位姿信息;基于所述初始位姿信息通过所述摄像装置拍摄关于所述目标区域的多个图像帧,根据所述多个图像帧生成关于所述目标区域的初始点云信息,其中,所述初始点云信息包括该组点云信息对应的关键帧的光照度信息。例如,计算设备先通过初始化获取对应的扫描目标区域的摄像装置的初始位姿信息,如通过2D识别初始化、单帧初始化、双帧初始化、3D模型初始化等。获取对应的初始位姿信息后,计算设备继续通过摄像装置扫描所述目标区域得到关于目标区域的多个图像帧,根据该多个图像帧,计算设备执行SLAM算法获得对应的3D地图点,或者获得对应的3D地图点、关键帧、共视图、生长树等点云信息,例如执行SLAM算法中跟踪线程、局部建图线程,又例如执行SLAM算法中跟踪线程、局部建图线程、闭环检测线程,以获得点云信息,从而得到初始点云信息。在此,图10示出了SLAM算法利用三个线程进行三维跟踪和建图的过程,具体如下:
1)跟踪线程
这一部分主要工作是从图像中提取ORB(Oriented FAST and RotatedBRIEF,快速特征点提取和描述算法)特征、根据上一帧或重定位初始化位姿、跟踪局部地图、确定新的关键帧等。
跟踪算法的主要实现方式有两种:1跟踪运动模型;2跟踪关键帧。
一、跟踪运动模型。当前一图像帧成功跟踪之后,算法使用与之前速率相同的运动模式来预测当前帧的相机姿态,这个模型是假设相机处于匀速运动状态,例如使用者在观察物体时处于匀速移动状态等(静止不动为一种特殊的匀速移动状态,此时速度为0),就可以用上一帧的位姿和速度来估计当前帧的位姿。
如果当前帧使用运动模型计算得到的位姿不满足预先设置的精度要求时,则选择使用跟踪关键帧来计算当前帧的位姿。
二、跟踪关键帧。当使用运动模型无法匹配到足够数量的特征点时,就会选择使用跟踪关键帧。算法尝试和最近的一个关键帧做匹配,并利用匹配到的特征优化位姿。
跟踪成功以后,需要判断当前帧是否是新的关键帧。如果是新的关键帧,将其加入并更新地图,建立当前关键帧与其它关键帧的连接关系,更新当前关键帧与其它关键帧之间的特征点匹配关系,用于优化位姿。
由于地图的作用,当碰到跟踪画面丢失的情况时,可以做到在非初始视角或者非初始画面重定位成功。首先,计算当前帧的词袋向量,在关键帧词典数据库中选取若干关键帧作为候选。其次,寻找有足够多的特征点匹配的关键帧。最后,利用随机抽样一致算法迭代,使用投影特征点算法优化位姿。
2)局部地图构建线程
这一部分主要完成局部地图构建,包括插入关键帧、筛选最近的地图点、生成新地图点、局部BA(Bundle Adjustment,光束平差法)、筛选关键帧等,去除多余的关键帧。
在关键帧进行跟踪的同时,需要创建地图,以便扩展跟踪区域,同时提高跟踪精度。通过之前的跟踪计算结果,已经得到一个对位姿的初始估计。而地图的作用是提供了地图点云与当前图像画面中的提取到的特征点的匹配关系(3D地图点-2D特征点匹配)。根据匹配关系,可以在初始位姿的基础上,通过投影关系剔除误匹配,从而更精确地计算位姿,防止跟踪时虚拟物体漂移。
地图是将匹配到的特征点使用三角测量的方法建立起来的。对特征点使用三角测量法后,检查正向景深、视差、反投影误差和尺度一致性,这时才得到地图点。一个地图点是通过两个关键帧观察到的,而它也可以投影到与之相连的其他关键帧中。在地图点建立起来之后,使用光束平差算法优化地图点和关键帧的位姿。
3)闭环检测线程
闭环检测线程包括检测候选帧、计算Sim3、闭环融合以及优化本质图等。
在关键帧进行跟踪的同时,需要检测闭环,以便提高跟踪精度。检测闭环的目的是减小运行时的累积误差,防止跟踪时虚拟物体漂移。这一部分主要分为两个过程,分别是闭环探测和闭环校正。
闭环检测先使用词袋进行探测,当相机再次来到之前到过的场景时,就会因为看到相同的景物,得到类似的词袋描述,从而检测到闭环。然后计算相似变换。
闭环校正目的是融合重复的点云,并且在共视图中插入新的边以连接闭环。所有的被闭环处的关键帧观察到的地图点会通过映射在一个小范围里,然后去搜索它的近邻匹配。这样就可以对所有匹配的点云进行更加有效的数据融合,并更新关键帧位姿,以及在所述共视图中的边。
在一些实施方式中,所述初始位姿信息的获取方法包括但不限于:通过识别对应初始区域中预设的2D标识物完成初始化;单帧初始化;双帧初始化;3D模型初始化。例如,摄像装置的初始位姿信息的获取方法包括但不限于以下四种方法:
1)通过2D识别SLAM初始化扫描应用场景;
首先,在现实目标的对应位置上放置2D识别图。2D图像识别初始化SLAM过程如下:
将2D识别图提取2D特征并保存为文件,形成2D特征库。搭载SLAM算法的设备通过摄像装置获取放置有2D识别图的目标设备图像It后,提取图像It特征并与存储的特征库进行匹配,进行识别。同时,根据真实目标在屏幕中的位置,以及相机的内参矩阵,确定摄像装置相对于真实目标的位姿,即摄像装置的外参矩阵。然后,根据识别结果,将识别算法得到的信息(摄像装置位姿)发送给SLAM算法,完成初始化。通过2D识别初始化SLAM后,用于扫描目标场景,在目标场景中实时跟踪和建图。
2)单帧初始化
单帧初始化在图像传感器(即摄像装置)获取到一个近似平面场景的条件下,利用单应性矩阵得到对应的旋转和平移矩阵。从而初始化地图点和摄像装置的姿态。
3)双帧初始化
选取两个特征点数目大于一定阈值的两个连续帧进行匹配,匹配点数大于一定阈值视为匹配成功,然后计算两帧之间的单应性矩阵homography matrix和基本矩阵(fundamental matrix),根据情况选择使用单应性矩阵或者基本矩阵恢复位姿RT(两个图像帧的相对位姿),将初始化成功的第一帧(拍摄的第一帧)作为世界坐标系,得到第一帧到第二帧的相对位姿,然后通过三角化得到深度,计算得到地图点。更新关键帧之间的关系进而执行BA(Bundle Adjustment)优化,以优化地图点。最后将地图点的深度归一化后,添加初始化关键帧和当前关键帧到地图中,完成初始化。
4)3D模型初始化
该方法首先需要获取跟踪目标的3D模型,利用3D模型来获取3D边缘特征,然后获取跟踪目标的初始位姿。在应用界面渲染初始位姿下的3D边缘特征,拍摄含跟踪目标的视频,读取视频的图像帧,用户通过3D模型边缘特征对准场景中的目标,进行跟踪匹配,跟踪到目标后,获得当前的位姿和特征点信息,完成初始化。
当然,本领域技术人员应能理解上述初始位姿信息的获取方法仅为举例,其他现有的或今后可能出现的初始位姿信息的获取方法如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
在一些实施方式中,如图11所示,所述方法还包括步骤S109。在步骤S109中,计算设备若获取到关于所述摄像装置的启动指令,启动所述摄像装置获取关于所述目标区域的多个图像帧,若最新采集到的图像帧满足预定条件,生成对应的停止采集指令;根据所述停止采集指令暂停所述摄像装置的采集过程,并将采集过的区域作为对应的目标区域。例如,用户持有计算设备,计算设备包括对应的摄像装置,用户可以通过启动操作向计算设备发送启动指令,计算设备若获取到关于摄像装置的启动指令,则启动该摄像装置拍摄当前场景相关的多个图像帧,基于用户或者系统的控制,摄像装置持续拍摄当前场景的图像帧,若摄像装置获取的最新图像帧满足预定条件,则生成对应的停止采集指令,将采集过的区域作为目标区域,并根据在所述目标区域采集的多个图像帧生成关于所述目标区域的初始点云信息。在一些实施方式中,预定条件包括但不限于:所述最新采集到的图像帧中特征点的数量小于或等于第四数量阈值;所述最新采集到的图像帧的光照度信息大于或等于第一光照度阈值,或小于或等于第二光照度阈值,其中,所述第一光照度阈值大于所述第二光照度阈值;所述最新采集到的图像帧中的匹配特征点的数量小于或等于第五数量阈值,其中,所述匹配特征点包括光照度信息大于或等于第三光照度阈值,小于或等于第四光照度阈值的特征点,其中,所述第三光照度阈值小于所述第四光照度阈值;所述最新采集到的图像帧的采集时间与所述摄像装置基于所述启动指令的启动时间之差大于或等于预设时间阈值。例如,对应的目标区域通常满足纹理丰富、分布均匀的特点,当最新采集的图像帧中的特征点数量不满足对应第四数量阈值时,我们认为拍摄的区域不是目标区域,采集到的图像帧数据没有意义,则生成对应的停止采集指令。又如,摄像装置在启动时设置了对应的采集时长,当当前最新图像帧的采集时间与启动时间之差超过采集时长时,生成对应的停止采集指令。还如,当最新采集的图像帧中对应的光照度信息(如图像帧的平均光照度信息等,该光照平均度信息可以是由光照测量装置测量得到,还可以是由图像帧的像素点或者特征点的光照度统计计算得到等),若该光照度信息大于或等于第一光照度阈值,或小于或等于第二光照度阈值,我们认为该图像帧采集的区域没有意义,不符合目标区域的数据要求,生成对应的停止采集指令,其中,所述第一光照度阈值大于所述第二光照度阈值。还如,当最新采集的图像帧中对应的光照度信息(如各特征点的光照度信息等)满足对应光照度度阈值(光照度信息大于或等于第三光照度阈值,小于或等于第四光照度阈值等)的特征点记为匹配特征点,匹配特征点的数量小于或等于第五数量阈值等,则我们认为该图像帧采集的区域没有意义,不符合目标区域的数据要求,生成对应的停止采集指令。在此,第一、第二、第三、第四、第五仅用于区别名字本身,并不对名词间的顺序进行限定,各数量阈值对应的阈值大小除了已限定的特殊情况之外也没有必要关联等。当然,本领域技术人员应能理解上述预定条件仅为举例,其他现有的或今后可能出现的预定条件的获取方法如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
上文主要结合计算设备介绍了本申请的一种进行SLAM初始化的方法对应的各实施例,此外,本申请还提供了能够实施前述各实施例的计算设备,下面结合图12进行介绍。
图12示出了根据本申请一个方面的一种进行SLAM初始化的计算设备,具体包括一一模块101、一二模块102、一三模块103以及一四模块104。一一模块101,用于建立或更新对应的点云数据库,其中,所述点云数据库中包含关于目标区域的一组或多组初始点云信息,每组初始点云信息包括该组点云信息对应的关键帧的光照度信息;一二模块102,用于通过摄像装置拍摄关于所述目标区域的当前图像帧;一三模块103,用于根据所述当前图像帧与所述点云数据库的所述一组或多组初始点云信息进行光照度信息匹配,若所述一组或多组初始点云信息中存在对应的某初始点云信息的关键帧的光照度信息与所述当前图像帧的光照度信息相匹配,则确定该初始点云信息为对应的目标点云信息;一四模块104,用于根据所述当前图像帧与所述目标点云信息进行重定位以完成SLAM初始化。在此,所述图12示出的一一模块101、一二模块102、一三模块103以及一四模块104对应的实施方式与前述所述图1示出的步骤S101、步骤S102、步骤S103以及步骤S104对应的实施例相同或相似,因而不再赘述,以引用的方式包含与此。
在一些实施方式中,所述设备还包括一五模块(未示出),用于获取所述当前图像帧对应的光照度信息。在一些实施方式中,一五模块,用于通过对应的光照测量装置确定所述当前图像帧的光照度信息。在此,所述一五模块对应的实施方式与前述所述步骤S105对应的实施例相同或相似,因而不再赘述,以引用的方式包含与此。
在一些实施方式中,一三模块包括一三一单元(未示出)和一三二单元(未示出),一三一单元,用于提取所述当前图像帧的特征点;一三二单元,用于根据所述当前图像帧的特征点与所述点云数据库的所述一组或多组初始点云信息进行光照度匹配,若所述一组或多组初始点云信息中存在对应的某初始点云信息的光照度信息与所述当前图像帧的关键帧的光照度信息相匹配,则确定该初始点云信息为对应的目标点云信息。如在一些实施方式中;其中,一三二单元,用于根据所述当前图像帧的特征点与所述点云数据库的所述一组或多组初始点云信息的关键帧进行特征点匹配,确定每组初始点云信息与所述当前图像帧的特征点对;根据所述每组初始点云信息与所述当前图像帧的特征点对进行光照相似度匹配,若所述一组或多组初始点云信息中存在对应的某初始点云信息的关键帧的光照度信息与所述当前图像帧的光照度信息相匹配,则确定该初始点云信息为对应的目标点云信息。如在一些实施方式中,所述若所述一组或多组初始点云信息中存在对应的某初始点云信息的关键帧的光照度信息与所述当前图像帧的光照度信息相匹配,则确定该初始点云信息为对应的目标点云信息,包括但不限于:若所述一组或多组初始点云信息中存在某初始点云信息的关键帧与所述当前图像帧的特征点对的光照相似度大于或等于第一光照相似度阈值;若所述一组或多组初始点云信息中存在某初始点云信息的关键帧与所述当前图像帧的特征点对的光照相似度最大;若所述一组或多组初始点云信息中存在某初始点云信息的关键帧与所述当前图像帧的相似特征点对数量大于或等于第一数量阈值,其中,所述相似特征点对包括光照相似度大于或等于第二光照相似度阈值的特征点对;若所述一组或多组初始点云信息中存在某初始点云信息的关键帧与所述当前图像帧的相似特征点对数量最大,其中,所述相似特征点对包括光照相似度大于或等于第二光照相似度阈值的特征点对;若所述一组或多组初始点云信息中存在某候选点云信息的关键帧与所述当前图像帧的特征点对的光照相似度大于或等于第三光照相似度阈值,其中,所述候选点云信息包括与所述当前图像帧的特征点对数量大于或等于第二数量阈值的初始点云信息;若所述一组或多组初始点云信息中存在某候选点云信息的关键帧与所述当前图像帧的特征点对的光照相似度最大,其中,所述候选点云信息包括与所述当前图像帧的特征点对数量大于或等于第二数量阈值的初始点云信息。在此,所述一三一单元和一三二单元对应的实施方式与前述所述步骤S1031和步骤S1032对应的实施例相同或相似,因而不再赘述,以引用的方式包含与此。
在一些实施方式中,一五模块,用于根据所述当前图像帧的特征点的灰度值计算各特征点对应的光照度信息。在一些实施方式中,一五模块,用于根据所述每组初始点云信息与所述当前图像帧的特征点对中所述当前图像帧对应的匹配特征点的灰度值,计算各匹配特征点对应的光照度信息。在此,所述一五模块对应的实施方式与前述所述步骤S105对应的实施例相同或相似,因而不再赘述,以引用的方式包含与此。
在一些实施方式中,所述一四模块包括一四一单元(未示出)和一四二单元(未示出),一四一单元,用于将所述当前图像帧的特征点与所述目标点云信息的关键帧中特征点进行匹配,若目标点云信息中的某关键帧中匹配的特征点的数量大于或等于预设数量阈值,将该关键帧作为候选关键帧;一四二单元,用于根据所述候选关键帧获取所述摄像装置的位姿信息,以完成SLAM初始化。在此,所述一四一单元和一四二单元对应的实施方式与前述所述步骤S1041和步骤S1042对应的实施例相同或相似,因而不再赘述,以引用的方式包含与此。
在一些实施方式中,所述设备还包括一六模块(未示出),用于若经过预定次数的重复后,所述内点数量不满足所述预定数量阈值,通过所述摄像装置扫描所述目标区域获取对应的第一图像帧,直至所述第一图像帧与一组或多组初始点云信息中某组初始点云信息计算后的内点数满足所述预定数量阈值,则重定位成功,从而确定摄像装置的位姿信息,以完成SLAM初始化。在此,所述一六模块对应的实施方式与前述所述步骤S106对应的实施例相同或相似,因而不再赘述,以引用的方式包含与此。
在一些实施方式中,所述设备还包括一七模块(未示出),用于若所述一组或多组初始点云信息中不存在对应的初始点云信息的关键帧的光照度信息与所述当前图像帧的光照度信息相匹配,继续通过所述摄像装置拍摄关于所述目标区域的第二图像帧,直至所述一组或多组初始点云信息中存在与所述第二图像帧匹配的目标点云信息;其中,一四模块中,用于根据所述第二图像帧与所述目标点云信息进行重定位以完成SLAM初始化。在此,所述一七模块对应的实施方式与前述所述步骤S107对应的实施例相同或相似,因而不再赘述,以引用的方式包含与此。
在一些实施方式中,所述设备还包括一八模块(未示出),用于通过所述摄像装置扫描所述目标区域获取对应的初始点云信息,其中,所述初始点云信息包括该组点云信息对应的关键帧的光照度信息;其中,一一模块,用于根据所述获取的初始点云信息建立或更新对应的点云数据库,其中,所述点云数据库中包含关于目标区域的一组或多组初始点云信息,每组初始点云信息包括该组点云信息对应的关键帧的光照度信息。在一些实施方式中,一八模块,用于确定用于扫描所述目标区域的所述摄像装置的初始位姿信息;基于所述初始位姿信息通过所述摄像装置拍摄关于所述目标区域的多个图像帧,根据所述多个图像帧生成关于所述目标区域的初始点云信息,其中,所述初始点云信息包括该组点云信息对应的关键帧的光照度信息。在一些实施方式中,所述初始位姿信息的获取方法包括但不限于:通过识别对应初始区域中预设的2D标识物完成初始化;单帧初始化;双帧初始化;3D模型初始化。在此,所述一八模块对应的实施方式与前述所述步骤S108对应的实施例相同或相似,因而不再赘述,以引用的方式包含与此。
在一些实施方式中,所述设备还包括一九模块(未示出),若获取到关于所述摄像装置的启动指令,启动所述摄像装置获取关于所述目标区域的多个图像帧,若最新采集到的图像帧满足预定条件,生成对应的停止采集指令;根据所述停止采集指令暂停所述摄像装置的采集过程,并将采集过的区域作为对应的目标区域。在一些实施方式中,预定条件包括但不限于:所述最新采集到的图像帧中特征点的数量小于或等于第四数量阈值;所述最新采集到的图像帧的光照度信息大于或等于第一光照度阈值,或小于或等于第二光照度阈值,其中,所述第一光照度阈值大于所述第二光照度阈值;所述最新采集到的图像帧中的匹配特征点的数量小于或等于第五数量阈值,其中,所述匹配特征点包括光照度信息大于或等于第三光照度阈值,小于或等于第四光照度阈值的特征点,其中,所述第三光照度阈值小于所述第四光照度阈值;所述最新采集到的图像帧的采集时间与所述摄像装置基于所述启动指令的启动时间之差大于或等于预设时间阈值。在此,所述一九模块对应的实施方式与前述所述步骤S109对应的实施例相同或相似,因而不再赘述,以引用的方式包含与此。
除上述各实施例介绍的方法和设备外,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机代码,当所述计算机代码被执行时,如前任一项所述的方法被执行。
本申请还提供了一种计算机程序产品,当所述计算机程序产品被计算机设备执行时,如前任一项所述的方法被执行。
本申请还提供了一种计算机设备,所述计算机设备包括:
一个或多个处理器;
存储器,用于存储一个或多个计算机程序;
当所述一个或多个计算机程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如前任一项所述的方法。
图13示出了可被用于实施本申请中所述的各个实施例的示例性系统;
如图13所示在一些实施例中,系统300能够作为各所述实施例中的任意一个上述设备。在一些实施例中,系统300可包括具有指令的一个或多个计算机可读介质(例如,系统存储器或NVM/存储设备320)以及与该一个或多个计算机可读介质耦合并被配置为执行指令以实现模块从而执行本申请中所述的动作的一个或多个处理器(例如,(一个或多个)处理器305)。
对于一个实施例,系统控制模块310可包括任意适当的接口控制器,以向(一个或多个)处理器305中的至少一个和/或与系统控制模块310通信的任意适当的设备或组件提供任意适当的接口。
系统控制模块310可包括存储器控制器模块330,以向系统存储器315提供接口。存储器控制器模块330可以是硬件模块、软件模块和/或固件模块。
系统存储器315可被用于例如为系统300加载和存储数据和/或指令。对于一个实施例,系统存储器315可包括任意适当的易失性存储器,例如,适当的DRAM。在一些实施例中,系统存储器315可包括双倍数据速率类型四同步动态随机存取存储器(DDR4SDRAM)。
对于一个实施例,系统控制模块310可包括一个或多个输入/输出(I/O)控制器,以向NVM/存储设备320及(一个或多个)通信接口325提供接口。
例如,NVM/存储设备320可被用于存储数据和/或指令。NVM/存储设备320可包括任意适当的非易失性存储器(例如,闪存)和/或可包括任意适当的(一个或多个)非易失性存储设备(例如,一个或多个硬盘驱动器(HDD)、一个或多个光盘(CD)驱动器和/或一个或多个数字通用光盘(DVD)驱动器)。
NVM/存储设备320可包括在物理上作为系统300被安装在其上的设备的一部分的存储资源,或者其可被该设备访问而不必作为该设备的一部分。例如,NVM/存储设备320可通过网络经由(一个或多个)通信接口325进行访问。
(一个或多个)通信接口325可为系统300提供接口以通过一个或多个网络和/或与任意其他适当的设备通信。系统300可根据一个或多个无线网络标准和/或协议中的任意标准和/或协议来与无线网络的一个或多个组件进行无线通信。
对于一个实施例,(一个或多个)处理器305中的至少一个可与系统控制模块310的一个或多个控制器(例如,存储器控制器模块330)的逻辑封装在一起。对于一个实施例,(一个或多个)处理器305中的至少一个可与系统控制模块310的一个或多个控制器的逻辑封装在一起以形成系统级封装(SiP)。对于一个实施例,(一个或多个)处理器305中的至少一个可与系统控制模块310的一个或多个控制器的逻辑集成在同一模具上。对于一个实施例,(一个或多个)处理器305中的至少一个可与系统控制模块310的一个或多个控制器的逻辑集成在同一模具上以形成片上系统(SoC)。
在各个实施例中,系统300可以但不限于是:服务器、工作站、台式计算设备或移动计算设备(例如,膝上型计算设备、手持计算设备、平板电脑、上网本等)。在各个实施例中,系统300可具有更多或更少的组件和/或不同的架构。例如,在一些实施例中,系统300包括一个或多个摄像机、键盘、液晶显示器(LCD)屏幕(包括触屏显示器)、非易失性存储器端口、多个天线、图形芯片、专用集成电路(ASIC)和扬声器。
需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。本领域技术人员应能理解,计算机程序指令在计算机可读介质中的存在形式包括但不限于源文件、可执行文件、安装包文件等,相应地,计算机程序指令被计算机执行的方式包括但不限于:该计算机直接执行该指令,或者该计算机编译该指令后再执行对应的编译后程序,或者该计算机读取并执行该指令,或者该计算机读取并安装该指令后再执行对应的安装后程序。在此,计算机可读介质可以是可供计算机访问的任意可用的计算机可读存储介质或通信介质。
通信介质包括藉此包含例如计算机可读指令、数据结构、程序模块或其他数据的通信信号被从一个系统传送到另一系统的介质。通信介质可包括有导的传输介质(诸如电缆和线(例如,光纤、同轴等))和能传播能量波的无线(未有导的传输)介质,诸如声音、电磁、RF、微波和红外。计算机可读指令、数据结构、程序模块或其他数据可被体现为例如无线介质(诸如载波或诸如被体现为扩展频谱技术的一部分的类似机制)中的已调制数据信号。术语“已调制数据信号”指的是其一个或多个特征以在信号中编码信息的方式被更改或设定的信号。调制可以是模拟的、数字的或混合调制技术。
作为示例而非限制,计算机可读存储介质可包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据的信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动的介质。例如,计算机可读存储介质包括,但不限于,易失性存储器,诸如随机存储器(RAM,DRAM,SRAM);以及非易失性存储器,诸如闪存、各种只读存储器(ROM,PROM,EPROM,EEPROM)、磁性和铁磁/铁电存储器(MRAM,FeRAM);以及磁性和光学存储设备(硬盘、磁带、CD、DVD);或其它现在已知的介质或今后开发的能够存储供计算机系统使用的计算机可读信息/数据。
在此,根据本申请的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本申请的多个实施例的方法和/或技术方案。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
Claims (20)
1.一种进行SLAM初始化的方法,其中,该方法包括:
建立或更新对应的点云数据库,其中,所述点云数据库中包含关于目标区域的一组或多组初始点云信息,每组初始点云信息包括所述目标区域的3D地图点信息,每组初始点云信息包括该组点云信息对应的关键帧的光照度信息;
通过摄像装置拍摄关于所述目标区域的当前图像帧;
根据所述当前图像帧与所述点云数据库的所述一组或多组初始点云信息进行光照度信息匹配,若所述一组或多组初始点云信息中存在对应的某初始点云信息的关键帧的光照度信息与所述当前图像帧的光照度信息相匹配,则确定该初始点云信息为对应的目标点云信息;
根据所述当前图像帧与所述目标点云信息进行重定位以完成SLAM初始化。
2.根据权利要求1所述的方法,其中,所述方法还包括:
获取所述当前图像帧对应的光照度信息。
3.根据权利要求2所述的方法,其中,所述获取所述当前图像帧对应的光照度信息,包括:
通过对应的光照测量装置确定所述当前图像帧的光照度信息。
4.根据权利要求2所述的方法,其中,所述根据所述当前图像帧与所述点云数据库的所述一组或多组初始点云信息进行光照度信息匹配,若所述一组或多组初始点云信息中存在对应的某初始点云信息的关键帧的光照度信息与所述当前图像帧的光照度信息相匹配,则确定该初始点云信息为对应的目标点云信息,包括:
提取所述当前图像帧的特征点;
根据所述当前图像帧的特征点与所述点云数据库的所述一组或多组初始点云信息进行光照度信息匹配,若所述一组或多组初始点云信息中存在对应的某初始点云信息的关键帧的光照度信息与所述当前图像帧的光照度信息相匹配,则确定该初始点云信息为对应的目标点云信息。
5.根据权利要求4所述的方法,其中所述根据所述当前图像帧的特征点与所述点云数据库的所述一组或多组初始点云信息进行光照度信息匹配,若所述一组或多组初始点云信息中存在对应的某初始点云信息的关键帧的光照度信息与所述当前图像帧的光照度信息相匹配,则确定该初始点云信息为对应的目标点云信息,包括:
根据所述当前图像帧的特征点与所述点云数据库的所述一组或多组初始点云信息的关键帧进行特征点匹配,确定每组初始点云信息与所述当前图像帧的特征点对;
根据所述每组初始点云信息与所述当前图像帧的特征点对进行光照相似度匹配,若所述一组或多组初始点云信息中存在对应的某初始点云信息的关键帧的光照度信息与所述当前图像帧的光照度信息相匹配,则确定该初始点云信息为对应的目标点云信息。
6.根据权利要求5所述的方法,其中,所述获取所述当前图像帧对应的光照度信息,包括:
根据所述当前图像帧的特征点的灰度值计算各特征点对应的光照度信息。
7.根据权利要求5所述的方法,其中,所述获取所述当前图像帧对应的光照度信息,包括:
根据所述每组初始点云信息的关键帧与所述当前图像帧的特征点对中所述当前图像帧对应的匹配特征点的灰度值,计算各匹配特征点对应的光照度信息。
8.根据权利要求4至7中任一项所述的方法,其中,所述若所述一组或多组初始点云信息中存在对应的某初始点云信息的关键帧的光照度信息与所述当前图像帧的光照度信息相匹配,则确定该初始点云信息为对应的目标点云信息,包括以下至少任一项:
若所述一组或多组初始点云信息中存在某初始点云信息的关键帧与所述当前图像帧的特征点对的光照相似度大于或等于第一光照相似度阈值;
若所述一组或多组初始点云信息中存在某初始点云信息的关键帧与所述当前图像帧的特征点对的光照相似度最大;
若所述一组或多组初始点云信息中存在某初始点云信息的关键帧与所述当前图像帧的相似特征点对数量大于或等于第一数量阈值,其中,所述相似特征点对包括光照相似度大于或等于第二光照相似度阈值的特征点对;
若所述一组或多组初始点云信息中存在某初始点云信息的关键帧与所述当前图像帧的相似特征点对数量最大,其中,所述相似特征点对包括光照相似度大于或等于第二光照相似度阈值的特征点对;
若所述一组或多组初始点云信息中存在某候选点云信息的关键帧与所述当前图像帧的特征点对的光照相似度大于或等于第三光照相似度阈值,其中,所述候选点云信息包括与所述当前图像帧的特征点对数量大于或等于第二数量阈值的初始点云信息;
若所述一组或多组初始点云信息中存在某候选点云信息的关键帧与所述当前图像帧的特征点对的光照相似度最大,其中,所述候选点云信息包括与所述当前图像帧的特征点对数量大于或等于第二数量阈值的初始点云信息。
9.根据权利要求5至7中任一项所述的方法,其中,所述根据所述当前图像帧与所述目标点云信息进行重定位以完成SLAM初始化,包括:
将所述当前图像帧的特征点与所述目标点云信息的关键帧中特征点进行匹配,若目标点云信息中的某关键帧中匹配的特征点的数量大于或等于预设数量阈值,将该关键帧作为候选关键帧;
根据所述候选关键帧获取所述摄像装置的位姿信息,以完成SLAM初始化。
10.根据权利要求9所述的方法,其中,所述根据所述候选关键帧获取所述摄像装置的位姿信息,以完成SLAM初始化,包括:
对所述候选关键帧中每个候选关键帧进行随机采样一致性算法和PnP估计确定对应的内点及所述摄像装置的当前位姿信息;
将所述候选关键帧的内点更新为地图点,利用图优化理论优化所述摄像装置的当前位姿信息;
重复上述步骤,直至所述内点数量满足预定数量阈值,确定所述摄像装置的位姿信息,以完成SLAM初始化。
11.根据权利要求10所述的方法,其中,所述方法还包括:
若经过预定次数的重复后,所述内点数量不满足所述预定数量阈值,通过所述摄像装置扫描所述目标区域获取对应的第一图像帧,直至所述第一图像帧与一组或多组初始点云信息中某组初始点云信息计算后的内点数满足所述预定数量阈值,则重定位成功,从而确定摄像装置的位姿信息,以完成SLAM初始化。
12.根据权利要求1所述的方法,其中,所述方法还包括:
若所述一组或多组初始点云信息中不存在对应的初始点云信息的关键帧的光照度信息与所述当前图像帧的光照度信息相匹配,继续通过所述摄像装置拍摄关于所述目标区域的第二图像帧,直至所述一组或多组初始点云信息中存在与所述第二图像帧匹配的目标点云信息;
其中,所述根据所述当前图像帧与所述目标点云信息进行重定位以完成SLAM初始化,包括:
根据所述第二图像帧与所述目标点云信息进行重定位以完成SLAM初始化。
13.根据权利要求1所述的方法,其中,所述方法还包括:
通过所述摄像装置扫描所述目标区域获取对应的初始点云信息,其中,所述初始点云信息包括该组点云信息对应的关键帧的光照度信息;
其中,所述建立或更新对应的点云数据库,其中,所述点云数据库中包含关于目标区域的一组或多组初始点云信息,每组初始点云信息包括该组点云信息对应的光照度信息,包括:
根据所述获取的初始点云信息建立或更新对应的点云数据库,其中,所述点云数据库中包含关于目标区域的一组或多组初始点云信息,每组初始点云信息包括该组点云信息对应的关键帧的光照度信息。
14.根据权利要求13所述的方法,其中,所述通过所述摄像装置扫描所述目标区域获取对应的初始点云信息,其中,所述初始点云信息包括该组点云信息对应的关键帧的光照度信息,包括:
确定用于扫描所述目标区域的所述摄像装置的初始位姿信息;
基于所述初始位姿信息通过所述摄像装置拍摄关于所述目标区域的多个图像帧,根据所述多个图像帧生成关于所述目标区域的初始点云信息,其中,所述初始点云信息包括该组点云信息对应的关键帧的光照度信息。
15.根据权利要求14所述的方法,其中,所述初始位姿信息的获取方法包括以下至少任一项:
通过识别对应初始区域中预设的2D标识物完成初始化;
单帧初始化;
双帧初始化;
3D模型初始化。
16.根据权利要求14或15所述的方法,其中,所述方法还包括:
若获取到关于所述摄像装置的启动指令,启动所述摄像装置获取关于所述目标区域的多个图像帧,若最新采集到的图像帧满足预定条件,生成对应的停止采集指令;
根据所述停止采集指令暂停所述摄像装置的采集过程,并将采集过的区域作为对应的目标区域。
17.根据权利要求16所述的方法,其中,所述预定条件包括以下至少任一项:
所述最新采集到的图像帧中特征点的数量小于或等于第四数量阈值;
所述最新采集到的图像帧的光照度信息大于或等于第一光照度阈值,或小于或等于第二光照度阈值,其中,所述第一光照度阈值大于所述第二光照度阈值;
所述最新采集到的图像帧中的匹配特征点的数量小于或等于第五数量阈值,其中,所述匹配特征点包括光照度信息大于或等于第三光照度阈值,小于或等于第四光照度阈值的特征点,其中,所述第三光照度阈值小于所述第四光照度阈值;
所述最新采集到的图像帧的采集时间与所述摄像装置基于所述启动指令的启动时间之差大于或等于预设时间阈值。
18.一种进行SLAM初始化的设备,其中,该设备包括:
一一模块,用于建立或更新对应的点云数据库,其中,所述点云数据库中包含关于目标区域的一组或多组初始点云信息,每组初始点云信息包括所述目标区域的3D地图点信息,每组初始点云信息包括该组点云信息对应的关键帧的光照度信息;
一二模块,用于通过摄像装置拍摄关于所述目标区域的当前图像帧;
一三模块,用于根据所述当前图像帧与所述点云数据库的所述一组或多组初始点云信息进行光照度信息匹配,若所述一组或多组初始点云信息中存在对应的某初始点云信息的关键帧的光照度信息与所述当前图像帧的光照度信息相匹配,则确定该初始点云信息为对应的目标点云信息;
一四模块,用于根据所述当前图像帧与所述目标点云信息进行重定位以完成SLAM初始化。
19.一种进行SLAM初始化的设备,其中,该设备包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行如权利要求1至17中任一项所述方法的操作。
20.一种存储指令的计算机可读介质,所述指令在被执行时使得系统进行如权利要求1至17中任一项所述方法的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010251752.0A CN111161347B (zh) | 2020-04-01 | 2020-04-01 | 一种进行slam初始化的方法与设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010251752.0A CN111161347B (zh) | 2020-04-01 | 2020-04-01 | 一种进行slam初始化的方法与设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111161347A CN111161347A (zh) | 2020-05-15 |
CN111161347B true CN111161347B (zh) | 2020-09-29 |
Family
ID=70567670
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010251752.0A Active CN111161347B (zh) | 2020-04-01 | 2020-04-01 | 一种进行slam初始化的方法与设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111161347B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111784841A (zh) * | 2020-06-05 | 2020-10-16 | 中国人民解放军军事科学院国防科技创新研究院 | 重建三维图像的方法、装置、电子设备及介质 |
CN112543859B (zh) * | 2020-10-28 | 2022-07-15 | 华为技术有限公司 | 定位方法、装置、电子设备和存储介质 |
WO2022116156A1 (zh) * | 2020-12-04 | 2022-06-09 | 深圳市优必选科技股份有限公司 | 视觉定位方法、机器人及存储介质 |
CN112837424B (zh) * | 2021-02-04 | 2024-02-06 | 脸萌有限公司 | 图像处理方法、装置、设备和计算机可读存储介质 |
CN116030212B (zh) * | 2023-03-28 | 2023-06-02 | 北京集度科技有限公司 | 一种建图方法、设备、车辆及存储介质 |
CN116523970B (zh) * | 2023-07-05 | 2023-10-20 | 之江实验室 | 基于二次隐式匹配的动态三维目标跟踪方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017130042A (ja) * | 2016-01-20 | 2017-07-27 | 株式会社リコー | 映像処理装置、映像処理方法、及びプログラム |
CN109887053A (zh) * | 2019-02-01 | 2019-06-14 | 广州小鹏汽车科技有限公司 | 一种slam地图拼接方法及系统 |
CN110070615A (zh) * | 2019-04-12 | 2019-07-30 | 北京理工大学 | 一种基于多相机协同的全景视觉slam方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101373135B (zh) * | 2008-07-01 | 2010-06-23 | 南京航空航天大学 | 基于瞬时随机光照的三维曲面测量装置及方法 |
JP7109253B2 (ja) * | 2018-05-17 | 2022-07-29 | 三菱重工業株式会社 | 地図情報作成装置、地図情報表示システム、及び、地図情報表示方法 |
-
2020
- 2020-04-01 CN CN202010251752.0A patent/CN111161347B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017130042A (ja) * | 2016-01-20 | 2017-07-27 | 株式会社リコー | 映像処理装置、映像処理方法、及びプログラム |
CN109887053A (zh) * | 2019-02-01 | 2019-06-14 | 广州小鹏汽车科技有限公司 | 一种slam地图拼接方法及系统 |
CN110070615A (zh) * | 2019-04-12 | 2019-07-30 | 北京理工大学 | 一种基于多相机协同的全景视觉slam方法 |
Non-Patent Citations (1)
Title |
---|
一种改进的面向SLAM系统的相机位姿估计方法;孔德慧等;《华南理工大学学报(自然科学版)》;20181215;第12-13页 * |
Also Published As
Publication number | Publication date |
---|---|
CN111161347A (zh) | 2020-05-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111311684B (zh) | 一种进行slam初始化的方法与设备 | |
CN111161347B (zh) | 一种进行slam初始化的方法与设备 | |
US11605214B2 (en) | Method, device and storage medium for determining camera posture information | |
CN110349213B (zh) | 基于深度信息的位姿确定方法、装置、介质与电子设备 | |
CN109887003B (zh) | 一种用于进行三维跟踪初始化的方法与设备 | |
CN107909612B (zh) | 一种基于3d点云的视觉即时定位与建图的方法与系统 | |
JP5950973B2 (ja) | フレームを選択する方法、装置、及びシステム | |
KR101532864B1 (ko) | 모바일 디바이스들에 대한 평면 맵핑 및 트래킹 | |
CN113741698B (zh) | 一种确定和呈现目标标记信息的方法与设备 | |
CN111344746A (zh) | 一种利用可重构混合成像系统的动态场景的三维3d重建方法 | |
US11636610B2 (en) | Determining multiple camera positions from multiple videos | |
Barandiaran et al. | Real-time optical markerless tracking for augmented reality applications | |
CN107784671B (zh) | 一种用于视觉即时定位与建图的方法与系统 | |
WO2014022036A1 (en) | Fast 3-d point cloud generation on mobile devices | |
US20140270362A1 (en) | Fast edge-based object relocalization and detection using contextual filtering | |
US9665978B2 (en) | Consistent tessellation via topology-aware surface tracking | |
CN110648363A (zh) | 相机姿态确定方法、装置、存储介质及电子设备 | |
US9129375B1 (en) | Pose detection | |
Ljubičić et al. | A comparison of tools and techniques for stabilising UAS imagery for surface flow observations | |
CN110849380B (zh) | 一种基于协同vslam的地图对齐方法及系统 | |
Araar et al. | PDCAT: a framework for fast, robust, and occlusion resilient fiducial marker tracking | |
CN112288817B (zh) | 基于图像的三维重建处理方法及装置 | |
WO2013173383A1 (en) | Methods and apparatus for processing image streams | |
EP2953096A1 (en) | Information processing device, information processing method, system and carrier means | |
AU2016273872A1 (en) | Method, system and apparatus for determining a pose of an object |
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 | ||
CP02 | Change in the address of a patent holder |
Address after: 201210 7th Floor, No. 1, Lane 5005, Shenjiang Road, China (Shanghai) Pilot Free Trade Zone, Pudong New Area, Shanghai Patentee after: HISCENE INFORMATION TECHNOLOGY Co.,Ltd. Address before: Room 501 / 503-505, 570 shengxia Road, China (Shanghai) pilot Free Trade Zone, Pudong New Area, Shanghai, 201203 Patentee before: HISCENE INFORMATION TECHNOLOGY Co.,Ltd. |
|
CP02 | Change in the address of a patent holder |