CN117474992A - 头戴式设备追踪定位方法、装置、头戴式设备及介质 - Google Patents
头戴式设备追踪定位方法、装置、头戴式设备及介质 Download PDFInfo
- Publication number
- CN117474992A CN117474992A CN202311384414.4A CN202311384414A CN117474992A CN 117474992 A CN117474992 A CN 117474992A CN 202311384414 A CN202311384414 A CN 202311384414A CN 117474992 A CN117474992 A CN 117474992A
- Authority
- CN
- China
- Prior art keywords
- head
- map
- key frame
- tracking
- positioning
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 69
- 238000004891 communication Methods 0.000 claims description 81
- 238000004422 calculation algorithm Methods 0.000 claims description 62
- 239000013598 vector Substances 0.000 claims description 47
- 238000004364 calculation method Methods 0.000 claims description 6
- 238000010276 construction Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 10
- 238000004590 computer program Methods 0.000 description 3
- 230000007547 defect Effects 0.000 description 2
- 230000004807 localization Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000036316 preload Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Landscapes
- Image Analysis (AREA)
Abstract
本申请公开了一种头戴式设备追踪定位方法、装置、头戴式设备及介质,涉及地图构建与定位技术领域,该方法通过载入与头戴式设备采集到的图像数据匹配的地图集;根据所述头戴式设备对应的IMU陀螺仪数据确定当前帧对应的当前帧四元数;将所述当前帧对应的特征点词袋模型与所述地图集中的关键帧进行匹配,确定地图关键帧以及对应的关键帧四元数;当所述当前帧四元数与所述关键帧四元数之间的差值小于预设阈值时,基于所述地图关键帧对所述头戴式设备进行追踪定位,输出当前设备位姿。采用本申请技术方案提升追踪过程中的环境适应能力并减少计算量,从而提高追踪定位信息的精度和实时性。
Description
技术领域
本申请属于地图构建与定位技术领域,尤其涉及一种头戴式设备追踪定位方法、装置、头戴式设备以及计算机可读存储介质。
背景技术
在VR(Virtual Reality,虚拟现实)和AR(Augmented Reality,增强现实)领域,在通过SLAM(Simultaneous Localization and Mapping,即时定位与地图构建)算法在室内的使用场景中进行追踪时,需要进行关键帧匹配,而且常用的关键帧的匹配方案包括跟踪恒速运动模型、跟踪参考关键帧以及重定位等。
但是,在传统的SLAM追踪定位方案中,需要实时监测地图集是否改变,对设备的运算量占用较大,较为费时。另外,在上述各关键帧匹配方案中,在头戴式设备佩戴者的头部快速转动的情况下,场景变换过快,这种情况下恒速追踪模型易失效,难以输出有效的设备位姿,另外跟踪参考关键帧算法和重定位追踪算法较为复杂,计算量大。综上所述,现有的SLAM追踪定位方案过于费时,导致位姿输出的实时性偏低。
发明内容
本申请的主要目的在于提供一种头戴式设备追踪定位方法、装置、头戴式设备以及计算机可读存储介质。旨在通过这种头戴式设备追踪定位方法提升追踪过程中的环境适应能力并减少计算量,从而提高追踪定位信息的精度和实时性。
为了实现上述目的,本申请提供一种头戴式设备追踪定位方法,所述头戴式设备追踪定位方法包括:
载入与头戴式设备采集到的图像数据匹配的地图集;
根据所述头戴式设备对应的IMU陀螺仪数据确定当前帧对应的当前帧四元数;
将所述当前帧对应的特征点词袋模型与所述地图集中的关键帧进行匹配,确定地图关键帧以及对应的关键帧四元数;
当所述当前帧四元数与所述关键帧四元数之间的差值小于预设阈值时,基于所述地图关键帧对所述头戴式设备进行追踪定位,输出当前设备位姿。
可选地,所述将所述当前帧对应的特征点词袋模型与所述地图集中的关键帧进行匹配,确定地图关键帧以及对应的关键帧四元数的步骤,包括:
将所述特征点词袋模型中的特征向量与所述地图集中对应的各关键帧分别对应的词袋模型中的特征向量分别进行匹配,得到各关键帧分别对应的成功匹配数量;
将成功匹配数量最多的关键帧置为地图关键帧,并根据所述地图关键帧和所述特征点词袋模型中匹配成功的特征点,定位所述头戴式设备的初始位姿;
基于所述当前帧四元数与所述初始位姿,获取所述地图关键帧对应的关键帧四元数。
可选地,在所述基于所述地图关键帧对所述头戴式设备进行追踪定位的步骤之前,还包括:
将所述地图集投影至所述头戴式设备所在的坐标系,得到更新后的关键帧四元数;
基于所述坐标系,计算所述当前帧四元数与所述关键帧四元数之间的角度差值和向量差值;
判断所述角度差值和所述向量差值是否分别小于预设的角度差值阈值和向量差值阈值;
若不小于,则判定关键帧匹配失败,并通过预设的恒速运动模型算法、参照关键帧算法和/或重定位算法进行关键帧匹配,获得更新后的地图关键帧;
基于所述地图关键帧对所述头戴式设备进行追踪定位,输出当前设备位姿。
可选地,所述通过预设的恒速运动模型算法、参照关键帧算法和/或重定位算法进行关键帧匹配,获得更新后的地图关键帧的步骤,包括:
通过所述重定位算法对所述头戴式设备进行重定位,并判断所述头戴式设备的速度是否为零或重定位是否成功;
若所述头戴式设备的速度为零或重定位成功,则通过预设的参照关键帧算法匹配地图关键帧,获得地图关键帧;
若所述头戴式设备的速度不为零且重定位失败,则通过预设的恒速运动模型算法匹配地图关键帧,获得地图关键帧。
可选地,在所述载入与头戴式设备采集到的图像数据匹配的地图集的步骤之前,所述方法还包括:
通过所述头戴式设备采集当前场景对应的图像数据,判断在预设的地图集库中否存在与所述图像数据匹配的地图集;
若存在,则载入所述图像数据对应的地图集;
若不存在,则根据预设的SLAM算法对所述头戴式设备进行追踪定位。
可选地,在所述输出当前设备位姿的步骤之后,所述方法还包括:
判断所述当前设备位姿是否位于所述地图集对应的安全区内;
若所述当前设备位姿位于所述安全区之外,则判断所述当前设备位姿是否位于所述地图集中预设的地图连通区域内;
若所述当前设备位姿位于所述地图连通区域内,则将所述地图连通区域对应的连通地图加入到所述地图集中。
可选地,所述头戴式设备追踪定位方法还包括:
获取连通位置标记指令,根据所述连通位置标记指令在所述地图集中标记出具有连通属性的相邻地图区域之间的连通位置;
根据所述连通位置,生成对应的连通区域。
此外,为实现上述目的,本申请还提供一种头戴式设备追踪定位装置,所述装置应用于头戴式设备;
所述头戴式设备追踪定位装置包括:
地图载入模块,用于载入与头戴式设备采集到的图像数据匹配的地图集;
四元数计算模块,用于根据所述头戴式设备对应的IMU陀螺仪数据确定当前帧对应的当前帧四元数;
关键帧匹配模块,用于将所述当前帧对应的特征点词袋模型与所述地图集中的关键帧进行匹配,确定地图关键帧以及对应的关键帧四元数;
追踪定位模块,用于当所述当前帧四元数与所述关键帧四元数之间的差值小于预设阈值时,基于所述地图关键帧对所述头戴式设备进行追踪定位,输出当前设备位姿。
此外,为实现上述目的,本申请还提供一种头戴式设备,所述头戴式设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的头戴式设备追踪定位程序,所述头戴式设备追踪定位程序被所述处理器执行时实现如上所述的头戴式设备追踪定位方法的步骤。
此外,为实现上述目的,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有头戴式设备追踪定位程序,所述头戴式设备追踪定位程序被处理器执行时实现如上所述的头戴式设备追踪定位方法的步骤。
本申请实施例提出的一种头戴式设备追踪定位方法、装置、头戴式设备以及计算机可读存储介质,首先通过载入与头戴式设备采集到的图像数据匹配的地图集;根据所述头戴式设备对应的IMU陀螺仪数据确定当前帧对应的当前帧四元数;将所述当前帧对应的特征点词袋模型与所述地图集中的关键帧进行匹配,确定地图关键帧以及对应的关键帧四元数;当所述当前帧四元数与所述关键帧四元数之间的差值小于预设阈值时,基于所述地图关键帧对所述头戴式设备进行追踪定位,输出当前设备位姿。
如此,本申请实施例的技术方案中在对头戴式设备进行定位追踪前,先载入了与图像数据匹配的地图集,相对于传统SLAM追踪定位方案无需实时监测地图集是否改变,因为地图集是预先直接载入的,有效地降低了计算量,提高了追踪速度。
另外,本申请的技术方案通过IMU陀螺仪数据确定的当前帧四元数与地图关键帧进行匹配判断,从而匹配出符合预期要求的地图关键帧,克服了在头部快速转动场景下恒速追踪模型易失效的技术缺陷,而且匹配方法简单易行,降低了关键帧匹配方案的复杂度和计算量,提高了当前设备位姿输出的实时性。
附图说明
图1是本申请实施例方案涉及的头戴式设备硬件运行环境的设备结构示意图;
图2为本申请头戴式设备追踪定位方法第一实施例的步骤流程示意图;
图3为本申请头戴式设备追踪定位方法的总体发明构思示意图;
图4为本申请头戴式设备追踪定位方法中的分离式SLAM追踪流程示意图;
图5为本申请头戴式设备追踪定位方法第二实施例中安全区判断流程示意图;
图6为本申请头戴式设备追踪定位方法第二实施例中的地图中的连通区域示意图;
图7为本申请头戴式设备追踪定位装置一实施例的功能模块示意图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
参照图1,图1为本申请实施例方案涉及头戴式设备的硬件运行环境的设备结构示意图。
需要说明的是,本申请实施例头戴式设备可以是执行本申请头戴式设备追踪定位方法的摄像设备、显示设备以及定位设备,此外,本申请实施例终端设备也可以是与上述这些终端设备相连接的PC、智能手机、平板等计算单元。
应当理解的是,基于实际应用的不同设计需要,本申请实施例终端设备当然还可以其它设备或者装置模块,例如,该终端设备具体还可以是数据存储控制终端或者便携计算机等可移动或者不可移动的终端设备。
如图1所示,该头戴式设备可以包括:处理器1001,例如CPU,通信总线1002,用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如Wi-Fi接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的头戴式设备结构并不构成对头戴式设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及头戴式设备追踪定位程序。
在图1所示的终端中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端,与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的头戴式设备追踪定位程序,并执行如下操作:
载入与头戴式设备采集到的图像数据匹配的地图集;
根据所述头戴式设备对应的IMU陀螺仪数据确定当前帧对应的当前帧四元数;
将所述当前帧对应的特征点词袋模型与所述地图集中的关键帧进行匹配,确定地图关键帧以及对应的关键帧四元数;
当所述当前帧四元数与所述关键帧四元数之间的差值小于预设阈值时,基于所述地图关键帧对所述头戴式设备进行追踪定位,输出当前设备位姿。
可选地,处理器1001还可以用于调用存储器1005中存储的头戴式设备追踪定位程序,并执行如下操作:
将所述特征点词袋模型中的特征向量与所述地图集中对应的各关键帧分别对应的词袋模型中的特征向量分别进行匹配,得到各关键帧分别对应的成功匹配数量;
将成功匹配数量最多的关键帧置为地图关键帧,并根据所述地图关键帧和所述特征点词袋模型中匹配成功的特征点,定位所述头戴式设备的初始位姿;
基于所述当前帧四元数与所述初始位姿,获取所述地图关键帧对应的关键帧四元数。
可选地,处理器1001还可以用于调用存储器1005中存储的头戴式设备追踪定位程序,基于所述地图关键帧对所述头戴式设备进行追踪定位的步骤之前,还执行如下操作:
将所述地图集投影至所述头戴式设备所在的坐标系,得到更新后的关键帧四元数;
基于所述坐标系,计算所述当前帧四元数与所述关键帧四元数之间的角度差值和向量差值;
判断所述角度差值和所述向量差值是否分别小于预设的角度差值阈值和向量差值阈值;
若不小于,则判定关键帧匹配失败,并通过预设的恒速运动模型算法、参照关键帧算法和/或重定位算法进行关键帧匹配,获得更新后的地图关键帧;
基于所述地图关键帧对所述头戴式设备进行追踪定位,输出当前设备位姿。
可选地,处理器1001还可以用于调用存储器1005中存储的头戴式设备追踪定位程序,并执行如下操作:
通过所述重定位算法对所述头戴式设备进行重定位,并判断所述头戴式设备的速度是否为零或重定位是否成功;
若所述头戴式设备的速度为零或重定位成功,则通过预设的参照关键帧算法匹配地图关键帧,获得地图关键帧;
若所述头戴式设备的速度不为零且重定位失败,则通过预设的恒速运动模型算法匹配地图关键帧,获得地图关键帧。
可选地,处理器1001还可以用于调用存储器1005中存储的头戴式设备追踪定位程序,在载入与头戴式设备采集到的图像数据匹配的地图集的步骤之前,还执行如下操作:
通过所述头戴式设备采集当前场景对应的图像数据,判断在预设的地图集库中否存在与所述图像数据匹配的地图集;
若存在,则载入所述图像数据对应的地图集;
若不存在,则根据预设的SLAM算法对所述头戴式设备进行追踪定位。
可选地,处理器1001还可以用于调用存储器1005中存储的头戴式设备追踪定位程序,在输出当前设备位姿的步骤之后,还执行如下操作:
判断所述当前设备位姿是否位于所述地图集对应的安全区内;
若所述当前设备位姿位于所述安全区之外,则判断所述当前设备位姿是否位于所述地图集中预设的地图连通区域内;
若所述当前设备位姿位于所述地图连通区域内,则将所述地图连通区域对应的连通地图加入到所述地图集中。
可选地,处理器1001还可以用于调用存储器1005中存储的头戴式设备追踪定位程序,并执行如下操作:
获取连通位置标记指令,根据所述连通位置标记指令在所述地图集中标记出具有连通属性的相邻地图区域之间的连通位置;
根据所述连通位置,生成对应的连通区域。
基于上述的头戴式设备,提出本申请头戴式设备追踪定位方法的各实施例。
请参照图2,图2为本申请头戴式设备追踪定位方法第一实施例的流程示意图。在本申请头戴式设备追踪定位方法的第一实施例中,本申请头戴式设备追踪定位方法包括:
步骤S10,载入与头戴式设备采集到的图像数据匹配的地图集;
本申请实施例中需要说明的是,头戴式设备的存储单元中已预先存储了多个场景下的地图集组成的地图集库,在用户输入SLAM指令时,首先通过头戴式设备采集到的图像数据与地图集库中的地图集进行特征点匹配,从而获取与图像数据最匹配的地图集,所述地图集可以用于在SLAM算法中以供对头戴式设备进行追踪定位。
在一种可行的实施例中,本申请的技术方案中采用了预先存储地图集并在使用时载入地图集的方式,提出了一种分离式SLAM追踪策略,使得头戴式设备追踪定位过程中无需时刻对当前地图进行检测与更新,参照图3,首先用户启动SLAM,再进行SLAM算法初始化,然后在初始化地图集成功后,通过特征点匹配求解地图集四元数姿态并完成地图集四元数初始化,再执行分离式SLAM追踪策略(即后续的步骤S20至步骤S40),从而降低了头戴式设备中CPU的计算量。另一方面,在地图集初始化失败后(即没有匹配到对应的地图集),这是可以采用传统的SLAM追踪策略来完成对头戴式设备的追踪定位,本领域内已公开成熟的技术方案与执行步骤,在此不做赘述。
步骤S20,根据所述头戴式设备对应的IMU陀螺仪数据确定当前帧对应的当前帧四元数;
本申请实施例中,利用了头戴式设备自身所搭载的IMU中的陀螺仪数据来计算出当前帧的四元数,四元数是一种超复数,可以理解的是,四元数是由实数a加上三个虚数单位i、j和k组成,而且它们有如下的关系:i2=j2=k2=-1,i°=j°=k°=1,每个四元数都是1、i、j和k的线性组合,即是四元数一般可表示为a+bi+cj+dk,其中a、b、c、d是实数。
在本申请实施例中,对于i、j和k本身的几何意义可以理解为一种旋转,其中i旋转代表Z轴与Y轴相交平面中Z轴正向向Y轴正向的旋转,j旋转代表X轴与Z轴相交平面中X轴正向向Z轴正向的旋转,k旋转代表Y轴与X轴相交平面中Y轴正向向X轴正向的旋转,-i、-j、-k分别代表i、j、k旋转的反向旋转,所以当前帧的四元数可以用于表征头戴式设备的当前位姿。具体地,IMU数据是由Accelerometer(加速度计)和Gyroscope(陀螺仪)两部分构成,其中,陀螺仪数据用于表示绕IMU坐标系x,y,z轴旋转的角速度。在本申请实施例中,可以对所述陀螺仪进行积分,从而获得当前帧四元数。表达式如下:
其中,q当前帧为当前帧四元数,为当前帧四元数中的实数,/>和/>为当前帧四元数中的虚数。
步骤S30,将所述当前帧对应的特征点词袋模型与所述地图集中的关键帧进行匹配,确定地图关键帧以及对应的关键帧四元数;
本申请实施例中,首先需要根据当前帧对应的图像数据确定其对应的特征点词袋模型,词袋模型用来对当前帧进行向量化表达,即所述特征点词袋模型中包括了当前帧对应的多个特征点向量。同样的,在地图集中,预设有多个关键帧,且每个关键帧也具有对应的多个特征点向量。在匹配过程中,需要寻找到与所述当前帧之间的特征点向量匹配成功数量最多的关键帧来作为地图关键帧,以供后续以该地图关键帧作为基准来判断追踪定位过程中的关键帧是否匹配成功。
步骤S40,当所述当前帧四元数与所述关键帧四元数之间的差值小于预设阈值时,基于所述地图关键帧对所述头戴式设备进行追踪定位,输出当前设备位姿。
本申请实施例中,需要说明的是,在步骤S40之前,在获得了当前帧的当前帧四元数以及关键帧四元数之后,即可通过计算两者之间的差值来判断所述当前帧四元数与所述关键帧四元数之间的差值是否小于预设阈值。其中,所述预设阈值包括角度差阈值和向量差阈值,可以对于头戴式设备的定位精度需求具体设置,所述角度差阈值和向量差阈值越大,定位精度越低,所述角度差阈值和向量差阈值越小,定位精度越高。在所述当前帧四元数与所述关键帧四元数之间的差值小于预设阈值时,说明当前帧与所述地图关键帧之间的相对位姿的差别在可接受范围内,可以用该地图关键帧作为匹配的关键帧并进行追踪定位。在所述当前帧四元数与所述关键帧四元数之间的差值不小于预设阈值时,说明当前帧与所述地图关键帧之间的相对位姿的差别已超出可接受范围,不能用该地图关键帧作为匹配的关键帧并进行追踪定位,这是可以采用传统的关键帧匹配方法来确定地图关键帧。
进一步地,在一种可行的实施例中,步骤S30中,将所述当前帧对应的特征点词袋模型与所述地图集中的关键帧进行匹配,确定地图关键帧以及对应的关键帧四元数的步骤,可以包括:
步骤S31,将所述特征点词袋模型中的特征向量与所述地图集中对应的各关键帧分别对应的词袋模型中的特征向量分别进行匹配,得到各关键帧分别对应的成功匹配数量;
步骤S32,将成功匹配数量最多的关键帧置为地图关键帧,并根据所述地图关键帧和所述特征点词袋模型中匹配成功的特征点,定位所述头戴式设备的初始位姿;
步骤S33,基于所述当前帧四元数与所述初始位姿,获取所述地图关键帧对应的关键帧四元数。
在本申请实施例中,需要依次将所述特征点词袋模型中的特征向量与地图集中预设的多个关键帧对应的词袋模型中的特征向量进行匹配,若两特征向量之间的差值小于预设向量阈值,可以认定关键帧对应的词袋模型中的该特征向量为与所述特征点词袋模型中的特征向量匹配成功的特征向量,最终得到地图集中每个关键帧所分别对应的成功匹配数量。本申请实施例中,所述成功匹配数量表征了关键帧与所述当前帧之间的相近程度,所以成功匹配数量最多的关键帧为各所述关键帧中与所述当前帧最相近的关键帧,可以用于作为地图关键帧。
此外,在确定地图关键帧后,可以根据所述地图关键帧的成功匹配数量中的各特征点的位置以及所述当前帧中与之对应的各特征点的位置之间的相对位置关系,以所述地图关键帧所处的坐标系为准,计算出初始化完成后的头戴式设备的初始位姿,其中,所述初始位姿为在所述地图集中的坐标位置和所处角度。进一步地,在确定了头戴式设备的初始位姿后,即可获得头戴式设备的当前视角和位置与地图关键帧之间的旋转矩阵和相对位置关系,由于四元数本身就是用于表征位置和旋转角度之间的变化,所以可以直接获取到所述地图关键帧对应的关键帧四元数。
示例性地,所述关键帧四元数表达式如下:
其中q关键帧为关键帧四元数,为关键帧四元数中的实数,/>以及为关键帧四元数中的虚数。
在一种可行的实施例中,在步骤S40,基于所述地图关键帧对所述头戴式设备进行追踪定位之前,所述头戴式设备追踪定位方法还包括:
步骤S41,将所述地图集投影至所述头戴式设备所在的坐标系,得到更新后的关键帧四元数;
本申请实施例中,将所述地图集投影至所述头戴式设备所在的坐标系,使得地图关键帧的关键帧四元数也变换成所述头戴式设备所在的坐标系所表述的形式,得到更新后的关键帧四元数,让关键帧四元数和当前帧四元数能在同一坐标系下进行比较,有利于计算出两者之间的差值。
步骤S42,基于所述坐标系,计算所述当前帧四元数与所述关键帧四元数之间的角度差值和向量差值;
本申请实施例中,在同一个坐标系下,可以通过当前帧四元数和关键帧四元数中的实数计算出角度差值,并通过当前帧四元数和关键帧四元数中的虚数计算出向量差值。
示例性地,计算角度差的表达式为:
计算向量差值的表达式为
步骤S43,判断所述角度差值和所述向量差值是否分别小于预设的角度差值阈值和向量差值阈值;
步骤S44,若不小于,则判定关键帧匹配失败,并通过预设的恒速运动模型算法、参照关键帧算法和/或重定位算法进行关键帧匹配,获得更新后的地图关键帧;
步骤S45,基于所述地图关键帧对所述头戴式设备进行追踪定位,输出当前设备位姿。
本申请实施例中,在获得角度差值和向量差值后,可以通过预设的角度差值阈值和向量差值阈值与所述角度差值和向量差值之间的大小来判断通过四元数方案来进行关键帧匹配是否成功。若所述角度差值不小于角度差值阈值或所述向量差值不小于向量差值阈值,则可以确定关键帧匹配失败,即该地图关键帧与当前帧之间的差别过大,不能用于进行对头戴式设备的追踪定位。此时需要结合传统方案中的恒速运动模型算法、参照关键帧算法和/或重定位算法在此进行关键帧匹配,得到符合要求的地图关键帧,最后通过获得的地图关键帧对所述头戴式设备进行追踪定位,以输出当前设备位姿。
可以理解的是,在步骤S43之后,若所述角度差值和所述向量差值分别小于预设的角度差值阈值和向量差值阈值,则执行步骤S40。
进一步地,所述通过预设的恒速运动模型算法、参照关键帧算法和/或重定位算法进行关键帧匹配,获得更新后的地图关键帧的步骤,可以包括:
步骤S441,通过所述重定位算法对所述头戴式设备进行重定位,并判断所述头戴式设备的速度是否为零或重定位是否成功;
步骤S442,若所述头戴式设备的速度为零或重定位成功,则通过预设的参照关键帧算法匹配地图关键帧,获得地图关键帧;
步骤S443,若所述头戴式设备的速度不为零且重定位失败,则通过预设的恒速运动模型算法匹配地图关键帧,获得地图关键帧。
在本实施例中,在通过四元数法进行关键帧匹配失败后,需要结合传统的各种关键帧匹配算法来获取地图关键帧,从而获取较为精准的可用于对头戴式设备进行定位的地图关键帧。
示例性地,参照图4所述通过预设的恒速运动模型算法、参照关键帧算法和/或重定位算法进行关键帧匹配,获得更新后的地图关键帧的步骤可以包括:首先输入当前帧,再通过四元数追踪关键帧,成功后,即可通过跟踪局部地图完成对头戴式设备的定位;若失败,则判断速度是否为空或刚重定位(刚重定位是指刚成功完成重定位),若是,则判断追踪参考帧是否成功;若追踪参考帧成功,则直接执行跟踪局部地图步骤,最后进行安全区判断,根据地图集中的安全区和输出的当前设备位姿判断用户是否走出了安全区;若追踪参考帧失败,则再次判断是否刚重定位;若是刚重定位成功,则将输出状态为4(相当于跟踪丢失);若重定位失败或未重定位,则判断地图集关键帧数量是否大于预设数量(如10),若是,则输出状态为3(相当于近期丢失);当速度不为空切没有刚重定位时,则通过等速模型(相当于恒速运动模型)进行关键帧匹配追踪;若追踪失败,则判断追踪参考帧是否成功;若追踪成功,则执行跟踪局部地图步骤。
此外,在步骤S10中,载入与头戴式设备采集到的图像数据匹配的地图集的步骤之前,所述方法还可以包括:
步骤A10,通过所述头戴式设备采集当前场景对应的图像数据,判断在预设的地图集库中否存在与所述图像数据匹配的地图集;
步骤A20,若存在,则载入所述图像数据对应的地图集;
步骤A30,若不存在,则根据预设的SLAM算法对所述头戴式设备进行追踪定位。
本申请实施例中通过头戴式设备上的摄像头采集当前场景的图像数据,随着用户的头部转动,可以采集在当前室内场景下的各个角度的图像数据。另外,预设的地图集库中包括头戴式设备在历史使用过程中所存储的多个场景分别对应的地图集,每个地图集包括对应的场景在各个角度下的地图数据。在判断在预设的地图集库中否存在与所述图像数据匹配的目标场景地图集时,可以通过图像数据中的特征点与地图集库中各地图集的特征点进行匹配,从而匹配到与当前场景最符合的目标场景地图集。
示例性地,判断在预设的地图集库中否存在与所述图像数据匹配的地图集的步骤包括:通过预设特征提取算法,如ORB(Oriented FAST and Rotated)算法,提取所述图像数据中的各特征点;再依次在所述地图集库中的各地图集中匹配各所述特征点,得到各所述地图集分别对应的特征点匹配数量;进而判断特征点匹配数量最多的地图集对应的特征点匹配数量与特征点总数量之间的比值是否大于预设比值;若大于,则将所述特征点匹配数量最多的地图集置为所述图像数据对应的地图集;若不大于,则确定地图集库中不存在所述图像数据对应的地图集,即按照传统的SLAM算法执行对头戴式设备的定位即可。
本申请实施例中首先通过载入与头戴式设备采集到的图像数据匹配的地图集;根据所述头戴式设备对应的IMU陀螺仪数据确定当前帧对应的当前帧四元数;将所述当前帧对应的特征点词袋模型与所述地图集中的关键帧进行匹配,确定地图关键帧以及对应的关键帧四元数;当所述当前帧四元数与所述关键帧四元数之间的差值小于预设阈值时,基于所述地图关键帧对所述头戴式设备进行追踪定位,输出当前设备位姿。
如此,本申请实施例的技术方案中在对头戴式设备进行定位追踪前,先载入了与图像数据匹配的地图集,相对于传统SLAM追踪定位方案无需实时监测地图集是否改变,因为地图集是预先直接载入的,有效地降低了计算量,提高了追踪速度。
另外,本申请实施例的技术方案通过IMU陀螺仪数据确定的当前帧四元数与地图关键帧进行匹配判断,从而匹配出符合预期要求的地图关键帧,克服了在头部快速转动场景下恒速追踪模型易失效的技术缺陷,而且匹配方法简单易行,降低了关键帧匹配方案的复杂度和计算量,提高了当前设备位姿输出的实时性。
进一步地,基于上述本申请头戴式设备追踪定位方法的第一实施例,提出本申请头戴式设备追踪定位方法的第二实施例。
在本实施例中,在步骤S40,输出当前设备位姿的步骤之后,所述方法还可以包括:
步骤S50,判断所述当前设备位姿是否位于所述地图集对应的安全区内;
步骤S60,若所述当前设备位姿位于所述安全区之外,则判断所述当前设备位姿是否位于所述地图集中预设的地图连通区域内;
步骤S70,若所述当前设备位姿位于所述地图连通区域内,则将所述地图连通区域对应的连通地图加入到所述地图集中。
本申请实施例中,为了进一步提升SLAM算法的执行效率,提供了一种基于地图连通区域的地图唤醒方法,参照图5,执行步骤具体包括在获得头戴式设备的当前设备位姿T后,首先判断所述当前位姿是否位于安全区内,即当前情况下用户是否离开了地图集中预设的安全区,并在用户离开安全区后向用户发出语音或可视化提示,以提示用户已经离开安全区;接着进一步判断所述当前设备位姿T是否在地图连通结合区域(即地图连通区域)内,若在,可以判断用户当前正从一个地图区域进入到与之连通的另一个地图区域,此时即可触发连通地图唤醒线程,从而将用户即将进入的地图加载到现有的地图集中,以供接下来在用户进入连通地图对应的区域中移动时对头戴式设备进行定位。
本申请实施例中将地图集的各区域分开加载,从而使得每次加载的地图范围较小,让SLAM算法在有限地图点内进行追踪,减小计算量,提高追踪效率。另外,还引入地图连通区域来确定用户是否正在进行地图区域切换,以便及时进行地图预加载,让用户在进入新的地图区域后能立刻基于已加载的地图进行追踪定位,进一步提升定位效率,完善分离式SLAM整体算法框架。
示例性地,本申请实施例中的地图集如图6所示,该地图集可以为一个住宅内部房间分布图,其中,房间A中的圆形区域1为该房间中的安全区域,B和C为另外两个房间,D为客厅区域,2为地图连通区域,当用户位于该区域时,表明用户即将从房间A进入客厅区域D,3、4、5分别用于表征A与D、B与D、C与D之间的连通口(例如房门)。
进一步地,所述头戴式设备追踪定位方法还可以包括:
步骤A10,获取连通位置标记指令,根据所述连通位置标记指令在所述地图集中标记出具有连通属性的相邻地图区域之间的连通位置;
步骤A20,根据所述连通位置,生成对应的连通区域。
本申请实施例中,在地图集存储到头戴式设备之后,可以在显示屏幕上向用户展示该地图集中各地图区域的屏幕示意图,再获取用户通过VR手柄等输入设备输入的连通位置标记指令,将地图集中各地图区域之间的连通位置标记出来,如图6中的3、4、5等位置,在连通位置标记完毕后,可以根据预设的连通区域范围值自动生成对应的连通区域,也可以根据用户输入的连通区域划分指令来在地图集中划分出相应的连通区域。
本申请实施例中在地图集建立后根据用户输入的指令来划分出对应的连通位置和连通区域,为后续追踪定位过程中用户走出安全区后的连通位置判断提供了基础,以在用户即将进入新的连通区域时提前唤醒连通区域地图使能,提高地图载入效率。
本申请实施例中,在获取到当前设备位姿的情况下,根据所述当前设备位姿与预设的安全区区域来判断用户是否离开安全区,从而在离开时及时提醒用户,另外还在用户离开安全区后判断是否位于连通区域,并在处于连通区域时及时唤醒并加载连通区域对应的区域地图,提高地图加载与追踪定位效率。
此外,本申请实施例还提供一种头戴式设备追踪定位装置,请参照图7,图7为本申请头戴式设备追踪定位装置一实施例的功能模块示意图,如图7所示,本申请头戴式设备追踪定位装置包括:
地图载入模块10,用于载入与头戴式设备采集到的图像数据匹配的地图集;
四元数计算模块20,用于根据所述头戴式设备对应的IMU陀螺仪数据确定当前帧对应的当前帧四元数;
关键帧匹配模块30,用于将所述当前帧对应的特征点词袋模型与所述地图集中的关键帧进行匹配,确定地图关键帧以及对应的关键帧四元数;
追踪定位模块40,用于当所述当前帧四元数与所述关键帧四元数之间的差值小于预设阈值时,基于所述地图关键帧对所述头戴式设备进行追踪定位,输出当前设备位姿。
可选地,所述关键帧匹配模块30还用于:
将所述特征点词袋模型中的特征向量与所述地图集中对应的各关键帧分别对应的词袋模型中的特征向量分别进行匹配,得到各关键帧分别对应的成功匹配数量;
将成功匹配数量最多的关键帧置为地图关键帧,并根据所述地图关键帧和所述特征点词袋模型中匹配成功的特征点,定位所述头戴式设备的初始位姿;
基于所述当前帧四元数与所述初始位姿,获取所述地图关键帧对应的关键帧四元数。
可选地,所述追踪定位模块40还用于:
将所述地图集投影至所述头戴式设备所在的坐标系,得到更新后的关键帧四元数;
基于所述坐标系,计算所述当前帧四元数与所述关键帧四元数之间的角度差值和向量差值;
判断所述角度差值和所述向量差值是否分别小于预设的角度差值阈值和向量差值阈值;
若不小于,则判定关键帧匹配失败,并通过预设的恒速运动模型算法、参照关键帧算法和/或重定位算法进行关键帧匹配,获得更新后的地图关键帧;
基于所述地图关键帧对所述头戴式设备进行追踪定位,输出当前设备位姿。
可选地,所述追踪定位模块40还用于:
通过所述重定位算法对所述头戴式设备进行重定位,并判断所述头戴式设备的速度是否为零或重定位是否成功;
若所述头戴式设备的速度为零或重定位成功,则通过预设的参照关键帧算法匹配地图关键帧,获得地图关键帧;
若所述头戴式设备的速度不为零且重定位失败,则通过预设的恒速运动模型算法匹配地图关键帧,获得地图关键帧。
可选地,所述地图载入模块10还用于:
通过所述头戴式设备采集当前场景对应的图像数据,判断在预设的地图集库中否存在与所述图像数据匹配的地图集;
若存在,则载入所述图像数据对应的地图集;
若不存在,则根据预设的SLAM算法对所述头戴式设备进行追踪定位。
可选地,所述头戴式设备追踪定位装置还包括连通地图唤醒模块,所述连通地图唤醒模块用于:
判断所述当前设备位姿是否位于所述地图集对应的安全区内;
若所述当前设备位姿位于所述安全区之外,则判断所述当前设备位姿是否位于所述地图集中预设的地图连通区域内;
若所述当前设备位姿位于所述地图连通区域内,则将所述地图连通区域对应的连通地图加入到所述地图集中。
可选地,所述头戴式设备追踪定位装置还包括连通地图输入模块,所述连通地图输入模块用于:
获取连通位置标记指令,根据所述连通位置标记指令在所述地图集中标记出具有连通属性的相邻地图区域之间的连通位置;
根据所述连通位置,生成对应的连通区域。
本申请头戴式设备追踪定位装置的各个功能模块在运行时的具体实施例与上述本申请头戴式设备追踪定位方法各实施例基本相同,在此不作赘述。
本申请还提供一种计算机存储介质,该计算机存储介质上存储有头戴式设备追踪定位程序,上述头戴式设备追踪定位程序被处理器执行时实现如以上任一项实施例所述的头戴式设备追踪定位程序方法的步骤。
本申请计算机存储介质的具体实施例与上述本申请头戴式设备追踪定位程序方法各实施例基本相同,在此不作赘述。
本申请还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现如以上任一项实施例所述的本申请头戴式设备追踪定位方法的步骤,在此不作赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台头戴式设备(可以是TWS耳机等)执行本申请各个实施例所述的方法。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (10)
1.一种头戴式设备追踪定位方法,其特征在于,所述头戴式设备追踪定位方法包括:
载入与头戴式设备采集到的图像数据匹配的地图集;
根据所述头戴式设备对应的IMU陀螺仪数据确定当前帧对应的当前帧四元数;
将所述当前帧对应的特征点词袋模型与所述地图集中的关键帧进行匹配,确定地图关键帧以及对应的关键帧四元数;
当所述当前帧四元数与所述关键帧四元数之间的差值小于预设阈值时,基于所述地图关键帧对所述头戴式设备进行追踪定位,输出当前设备位姿。
2.如权利要求1所述的头戴式设备追踪定位方法,其特征在于,所述将所述当前帧对应的特征点词袋模型与所述地图集中的关键帧进行匹配,确定地图关键帧以及对应的关键帧四元数的步骤,包括:
将所述特征点词袋模型中的特征向量与所述地图集中对应的各关键帧分别对应的词袋模型中的特征向量分别进行匹配,得到各关键帧分别对应的成功匹配数量;
将成功匹配数量最多的关键帧置为地图关键帧,并根据所述地图关键帧和所述特征点词袋模型中匹配成功的特征点,定位所述头戴式设备的初始位姿;
基于所述当前帧四元数与所述初始位姿,获取所述地图关键帧对应的关键帧四元数。
3.如权利要求2所述的头戴式设备追踪定位方法,其特征在于,在所述基于所述地图关键帧对所述头戴式设备进行追踪定位的步骤之前,还包括:
将所述地图集投影至所述头戴式设备所在的坐标系,得到更新后的关键帧四元数;
基于所述坐标系,计算所述当前帧四元数与所述关键帧四元数之间的角度差值和向量差值;
判断所述角度差值和所述向量差值是否分别小于预设的角度差值阈值和向量差值阈值;
若不小于,则判定关键帧匹配失败,并通过预设的恒速运动模型算法、参照关键帧算法和/或重定位算法进行关键帧匹配,获得更新后的地图关键帧;
基于所述地图关键帧对所述头戴式设备进行追踪定位,输出当前设备位姿。
4.如权利要求3所述的头戴式设备追踪定位方法,其特征在于,所述通过预设的恒速运动模型算法、参照关键帧算法和/或重定位算法进行关键帧匹配,获得更新后的地图关键帧的步骤,包括:
通过所述重定位算法对所述头戴式设备进行重定位,并判断所述头戴式设备的速度是否为零或重定位是否成功;
若所述头戴式设备的速度为零或重定位成功,则通过预设的参照关键帧算法匹配地图关键帧,获得地图关键帧;
若所述头戴式设备的速度不为零且重定位失败,则通过预设的恒速运动模型算法匹配地图关键帧,获得地图关键帧。
5.如权利要求1所述的头戴式设备追踪定位方法,其特征在于,在所述载入与头戴式设备采集到的图像数据匹配的地图集的步骤之前,所述方法还包括:
通过所述头戴式设备采集当前场景对应的图像数据,判断在预设的地图集库中否存在与所述图像数据匹配的地图集;
若存在,则载入所述图像数据对应的地图集;
若不存在,则根据预设的SLAM算法对所述头戴式设备进行追踪定位。
6.如权利要求1-5任一项所述的头戴式设备追踪定位方法,其特征在于,在所述输出当前设备位姿的步骤之后,所述方法还包括:
判断所述当前设备位姿是否位于所述地图集对应的安全区内;
若所述当前设备位姿位于所述安全区之外,则判断所述当前设备位姿是否位于所述地图集中预设的地图连通区域内;
若所述当前设备位姿位于所述地图连通区域内,则将所述地图连通区域对应的连通地图加入到所述地图集中。
7.如权利要求6所述的头戴式设备追踪定位方法,其特征在于,所述头戴式设备追踪定位方法还包括:
获取连通位置标记指令,根据所述连通位置标记指令在所述地图集中标记出具有连通属性的相邻地图区域之间的连通位置;
根据所述连通位置,生成对应的连通区域。
8.一种头戴式设备追踪定位装置,其特征在于,所述头戴式设备追踪定位装置包括:
地图载入模块,用于载入与头戴式设备采集到的图像数据匹配的地图集;
四元数计算模块,用于根据所述头戴式设备对应的IMU陀螺仪数据确定当前帧对应的当前帧四元数;
关键帧匹配模块,用于将所述当前帧对应的特征点词袋模型与所述地图集中的关键帧进行匹配,确定地图关键帧以及对应的关键帧四元数;
追踪定位模块,用于当所述当前帧四元数与所述关键帧四元数之间的差值小于预设阈值时,基于所述地图关键帧对所述头戴式设备进行追踪定位,输出当前设备位姿。
9.一种头戴式设备,其特征在于,所述头戴式设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的头戴式设备追踪定位程序,所述头戴式设备追踪定位程序被所述处理器执行时实现如权利要求1至7中任一项所述的头戴式设备追踪定位方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有头戴式设备追踪定位程序,所述头戴式设备追踪定位程序被处理器执行时实现如权利要求1至7中任一项所述的头戴式设备追踪定位方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311384414.4A CN117474992A (zh) | 2023-10-24 | 2023-10-24 | 头戴式设备追踪定位方法、装置、头戴式设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311384414.4A CN117474992A (zh) | 2023-10-24 | 2023-10-24 | 头戴式设备追踪定位方法、装置、头戴式设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117474992A true CN117474992A (zh) | 2024-01-30 |
Family
ID=89626707
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311384414.4A Pending CN117474992A (zh) | 2023-10-24 | 2023-10-24 | 头戴式设备追踪定位方法、装置、头戴式设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117474992A (zh) |
-
2023
- 2023-10-24 CN CN202311384414.4A patent/CN117474992A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11443772B2 (en) | Method for triggering events in a video | |
US11403757B2 (en) | Sight line detection method and sight line detection device | |
US11715224B2 (en) | Three-dimensional object reconstruction method and apparatus | |
Memo et al. | Head-mounted gesture controlled interface for human-computer interaction | |
CN110457414B (zh) | 离线地图处理、虚拟对象显示方法、装置、介质和设备 | |
WO2019153824A1 (zh) | 虚拟对象控制方法、装置、计算机设备及存储介质 | |
TWI678099B (zh) | 視頻處理方法、裝置和儲存介質 | |
JP7030854B2 (ja) | 仮想現実システム内の仮想コントローラの位置および向きの追跡 | |
CN109635752B (zh) | 人脸关键点的定位方法、人脸图像处理方法和相关装置 | |
CN109544615A (zh) | 基于图像的重定位方法、装置、终端及存储介质 | |
EP3628380B1 (en) | Method for controlling virtual objects, computer readable storage medium and electronic device | |
US20140009384A1 (en) | Methods and systems for determining location of handheld device within 3d environment | |
CN111273772B (zh) | 基于slam测绘方法的增强现实交互方法、装置 | |
US11886167B2 (en) | Method, system, and non-transitory computer-readable recording medium for supporting object control | |
CN112181141B (zh) | Ar定位的方法、装置、电子设备及存储介质 | |
WO2018161893A1 (zh) | 用户身份识别方法及装置 | |
CN112766027A (zh) | 图像处理方法、装置、设备及存储介质 | |
JP2021185498A (ja) | 拡張現実空間に配置される3dオブジェクトを生成する方法 | |
CN112257645A (zh) | 人脸的关键点定位方法和装置、存储介质及电子装置 | |
CN117455989A (zh) | 室内场景slam追踪方法、装置、头戴式设备及介质 | |
CN106681506B (zh) | 一种终端设备中非vr应用的交互方法及终端设备 | |
CN111444928A (zh) | 关键点检测的方法、装置、电子设备及存储介质 | |
US10551195B2 (en) | Portable device with improved sensor position change detection | |
KR102101512B1 (ko) | 회전체의 회전량 산정 장치 및 서버 | |
CN117474992A (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 |