相机姿态追踪过程的重定位方法、装置、设备及存储介质与流程

文档序号:15589947发布日期:2018-10-02 18:50阅读:219来源:国知局
本申请实施例涉及增强现实领域,特别涉及一种相机姿态追踪过程的重定位方法、装置、设备及存储介质。
背景技术
:视觉slam(simultaneouslocalizationandmapping,同时定位与地图构建)是指搭载相机的主体,在没有环境先验信息的情况下,于运动过程中建立环境的模型,同时估计自己的运动的技术。slam可以应用在ar(augmentedreality,增强显示)领域、机器人领域和无人驾驶领域中。以单目视觉slam为例,通常将相机采集的第一帧图像作为标记图像(anchor)。在相机后续采集到当前图像时,设备对当前图像与标记图像之间共同具有的特征点进行追踪,根据当前图像与标记图像之间的特征点位置变化计算得到相机在现实世界中的位姿变化。但某些场景下会发生当前图像中的特征点丢失(lost),无法继续追踪的情况。此时,需要使用slam重定位方法对当前图像进行重定位。但是在ar(augmentedreality,增强现实)领域进行相机姿态追踪时,比如使用手机拍摄桌面进行ar游戏的场景,由于ar使用场景存在其场景特殊性,直接使用相关技术中的slam重定位方法的效果较差,尚需提供一种适用于ar领域的重定位解决方案。技术实现要素:本申请实施例提供了一种相机姿态追踪过程的重定位方法、装置、设备及存储介质,可以解决ar使用场景中直接使用相关技术中的slam重定位方法的效果较差的问题。所述技术方案如下:根据本申请的一个方面,提供了一种相机姿态追踪过程的重定位方法,应用于具有相机的设备中,所述设备用于按序执行多个标记图像的相机姿态追踪,所述方法包括:获取所述多个标记图像中第i个标记图像之后采集的当前图像,i为大于1的整数;当所述当前图像符合重定位条件时,获取所述多个标记图像中的第一个标记图像的初始特征点和初始位姿参数,所述初始位姿参数用于指示所述相机采集所述第一个标记图像时的相机姿态;将所述当前图像相对于所述第一个标记图像进行特征点追踪,得到与所述初始特征点匹配的目标特征点;根据所述初始特征点和所述目标特征点,计算所述相机从所述第一相机姿态改变至目标相机姿态时的位姿变化量,所述目标相机姿态是所述相机在采集所述当前图像时的相机姿态;根据所述初始位姿参数和所述位姿变化量,重定位得到所述目标相机姿态对应的目标位姿参数。根据本申请的另一方面,提供了一种相机姿态追踪过程的重定位装置,应用于具有相机的设备中,所述装置用于按序执行多个标记图像的相机姿态追踪,所述装置包括:图像获取模块,用于获取所述多个标记图像中第i个标记图像之后采集的当前图像,i为大于1的整数;信息获取模块,用于当所述当前图像符合重定位条件时,获取所述多个标记图像中的第一个标记图像的初始特征点和初始位姿参数,所述初始位姿参数用于指示所述相机采集所述第一个标记图像时的相机姿态;特征点追踪模块,用于将所述当前图像相对于所述第一个标记图像进行特征点追踪,得到与所述初始特征点匹配的目标特征点;变化量计算模块,用于根据所述初始特征点和所述目标特征点,计算所述相机从所述第一相机姿态改变至目标相机姿态时的位姿变化量,所述目标相机姿态是所述相机在采集所述当前图像时的相机姿态;重定位模块,用于根据所述初始位姿参数和所述位姿变化量,重定位得到所述目标相机姿态对应的目标位姿参数。根据本申请实施例的另一方面,提供了一个电子设备,所述电子设备包括存储器和处理器;所述存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如上所述的重定位方法。根据本申请实施例的另一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述至少一条指令由处理器加载并执行以实现如上所述的重定位方法。本申请实施例提供的技术方案带来的有益效果至少包括:通过在当前图像符合重定位条件时,将当前图像与关键帧图像库中的关键帧图像进行重定位,能够在对连续多个标记图像进行追踪的anchor-slam算法中实现重定位,从而减少了追踪过程中断的可能性,由于关键帧图像库中的关键帧图像可以为多个,如果关键帧图像库包括有覆盖相机采集场景的四周区域的不同关键帧图像,则有极大概率能够重定位成功,从而提高了重定位过程的成功几率。附图说明为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本申请一个示例性实施例提供的ar应用场景的场景示意图;图2是本申请一个示例性实施例提供的ar应用场景的场景示意图;图3是本申请一个示例性实施例提供的anchor-switchingarsystem算法的原理示意图;图4是本申请一个示例性实施例提供的电子设备的结构框图;图5是本申请一个示例性实施例提供的相机姿态追踪过程的重定位方法的流程图;图6是本申请一个示例性实施例提供的第一个标记图像、当前图像和一阶关键帧图像的对比示意图;图7是本申请一个示例性实施例提供的相机姿态追踪过程的重定位方法的流程图;图8是本申请一个示例性实施例提供的哈希索引信息的数据结构示意图;图9是本申请一个示例性实施例提供的关键帧图像添加过程的流程图;图10是本申请一个示例性实施例提供的哈希分类过程的流程图;图11是本申请一个示例性实施例提供的关键帧图像查询过程的流程图;图12是本申请一个示例性实施例提供的关键帧图像删除过程的流程图;图13是本申请一个示例性实施例提供的特征点追踪方法的流程图;图14是本申请一个示例性实施例提供的特征点追踪方法的原理示意图;图15是本申请一个示例性实施例提供的相机姿态追踪过程的重定位方法的流程图;图16是本申请一个示例性实施例提供的相机姿态追踪过程的重定位装置的框图;图17是本申请一个示例性实施例提供的特征点追踪装置的框图;图18是本申请一个示例性实施例提供的电子设备的框图。具体实施方式首先对本申请涉及的若干个名词进行简介:ar(augmentedreality,增强现实):一种在相机采集图像的过程中,实时地计算相机在现实世界(或称三维世界、真实世界)中的相机姿态参数,根据该相机姿态参数在相机采集的图像上添加虚拟元素的技术。虚拟元素包括但不限于:图像、视频和三维模型。ar技术的目标是在屏幕上把虚拟世界套接在现实世界上进行互动。该相机姿态参数包括位移向量和旋转矩阵,位移向量用于表征相机在现实世界中发生的位移距离,旋转矩阵用于表征相机在现实世界中发生的旋转角度。例如,参见图1和参见图2,设备在相机拍摄到的图像中添加了一个虚拟人物形象。随着相机在现实世界中的运动,相机拍摄到的图像会发生变化,虚拟人物的拍摄方位也发生变化,模拟出了虚拟人物在图像中静止不动,而相机随着位置和姿态的变化同时拍摄图像和虚拟人物的效果,为用户呈现了一幅真实立体的画面。anchor-switchingarsystem:是基于连接多个标记图像(anchor)的相机姿态追踪来确定在自然场景下的相机姿态参数,进而根据相机姿态参数在相机采集的图像上叠加虚拟世界的ar系统。imu(inertialmeasurementunit,惯性测量单元):是用于测量物体的三轴姿态角(或角速率)以及加速度的装置。一般的,一个imu包含了三个单轴的加速度计和三个单轴的陀螺,加速度计用于检测物体在三维坐标系中每个坐标轴上的加速度信号,进而计算得到位移向量;而陀螺用于检测物体在三维坐标系中的旋转矩阵。可选地,imu包括陀螺仪、加速度计和地磁传感器。示意性的,三维坐标系的建立方式为:1、x轴使用向量积y*z来定义,在x轴在设备当前的位置上,沿与地面相切的方向指向东方;2、y轴在设备当前的位置上,沿与地面相切的方向指向地磁场的北极;3、z轴指向天空并垂直于地面。本申请提供了一种适用于anchor-switchingarsystem算法的重定位方法。anchor-switchingarsystem算法在确定相机姿态的过程中,将相机的运动过程划分为至少两段追踪过程进行追踪,每段追踪过程对应各自的标记图像。具体地,当第i个标记图像对应的追踪过程中,当当前图像相对于第i个标记图像的追踪效果差于预设条件(比如能够匹配到的特征点少于预设阈值)时,将当前图像的上一个图像确定为第i+1个标记图像,开启第i+1段追踪过程。其中,i为正整数。示意性的参考图3,其示出了本申请一个示例性实施例提供的anchor-switchingarsystem算法的原理示意图。在现实世界中存在物体320,设置有相机的设备340被用户手持进行移动,在移动过程中拍摄得到包括物体320的多帧图像1-6。设备将图像1确定为第1个标记图像(born-anchor或born-image)并记录初始位姿参数,该初始位姿参数可以是imu采集的,然后将图像2相对于图像1进行特征点追踪,根据初始位姿参数和特征点追踪结果计算出相机在拍摄图像2时的位姿参数;将图像3相对于图像1进行特征点追踪,根据初始位姿参数和特征点追踪结果计算出相机在拍摄图像3时的位姿参数;将图像4相对于图像1进行特征点追踪,根据初始位姿参数和特征点追踪结果计算出相机在拍摄图像4时的位姿参数。然后,将图像5相对于图像1进行特征点追踪,如果特征点追踪效果差于预设条件(比如匹配的特征点数量较少),则将图像4确定为第2个标记图像,将图像5相对于图像4进行特征点追踪,计算出相机在拍摄图像4至图像5之间的位移变化量,再结合相机在拍摄图像4至图像1之间的位移变化量以及初始位姿参数,计算出相机在拍摄图像5时的位姿参数。然后再将图像6相对于图像4进行特征点追踪,依次类推,若当前图像的特征点追踪效果变差时,即可将当前图像的上一帧图像确定为新的标记图像,切换新的标记图像后重新进行特征点追踪。可选地,特征点追踪可以采用基于视觉里程计原理的算法,比如特征点法或直接法。但是若相机在追踪过程中处于发生较为剧烈的运动、朝向强光源、朝向白色墙壁等各种异常场景时,上述anchor-switchingarsystem追踪过程可能会发生丢失(lost)现象。丢失现象是指在当前图像中无法匹配到足够多的特征点,导致追踪失败。参考图4,其示出了本申请一个示例性实施例提供的电子设备的结构框图。该设备包括:处理器420、存储器440、相机460和imu480。处理器420包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器420用于执行存储器440中存储的指令、代码、代码片段和程序中的至少一种。处理器420与存储器440电性相连。可选地,处理器420通过总线与存储器440相连。存储器440存储有一个或多个指令、代码、代码片段和/或程序。该指令、代码、代码片段和/或程序在被处理器420执行时,用于实现如下实施例中提供的slam重定位方法。处理器420还与相机460电性相连。可选地,处理器420通过总线与相机460相连。相机460是具有图像采集能力的传感器件。相机460还可称为摄像头、感光器件等其它名称。相机460具有连续采集图像或多次采集图像的能力。可选地,相机460设置在设备内部或设备外部。处理器420还与imu480电性相连。可选地,imu480用于每隔预定时间间隔采集相机的位姿参数,并记录每组位姿参数在采集时的时间戳。相机的位姿参数包括:位移向量和旋转矩阵。其中,imu480采集的旋转矩阵相对准确,采集的位移向量受实际环境可能会有较大的误差。参考图5,其示出了本申请一个示例性实施例中提供的相机姿态跟踪过程的重定位方法的流程图。本实施例以该重定位方法应用于图4所示的设备中来举例说明,该设备用于按序执行多个标记图像的相机姿态追踪。该方法包括:步骤502,获取多个标记图像中第i个标记图像之后采集的当前图像;设备内的相机按照预设时间间隔采集一帧帧图像,形成图像序列。可选地,相机是在运动(平移和/或旋转)过程中,按照预设时间间隔采集一帧帧图像形成图像序列。可选地,设备将图像序列中的第一帧图像(或前几帧图像中符合预定条件的一帧图像)确定为第一个标记图像,将后续采集的图像相对于第一个标记图像进行特征点追踪,并根据特征点追踪结果计算相机的相机姿态参数;若当前帧图像的特征点追踪效果差于预设条件时,将当前帧图像的上一帧图像确定为第二个标记图像,将后续采集的图像相对于第二个标记图像进行特征点追踪,并根据特征点追踪结果计算相机的相机姿态参数,依次类推。设备可以按序进行连续多个标记图像的相机姿态追踪。当处于第i个标记图像对应的第i个追踪过程时,相机会采集到当前图像。当前图像是第i个标记图像之后采集的某一帧图像,其中,i为大于1的整数。步骤504,当当前图像符合重定位条件时,获取多个标记图像中的第一个标记图像的初始特征点和初始位姿参数,初始位姿参数用于指示相机采集第一个标记图像时的相机姿态;设备会确定当前图像是否符合重定位条件。重定位条件用于指示当前图像相对于第i个标记图像的追踪过程失败,或者,重定位条件用于指示历史追踪过程中的累积误差已经高于预设条件。在一个可选的实施例中,设备对当前图像相对于第i个标记图像进行追踪,若当前图像中不存在与第i个标记图像匹配的特征点,或者,当前图像中与第i个标记图像匹配的特征点少于第一数量时,确定当前图像相对于第i个标记图像的追踪过程失败,符合重定位条件。在另一个可选的实施例中,设备确定当前图像与上一次重定位的图像之间的帧数大于第二数量时,确定历史追踪过程中的累积误差已经高于预设条件,或者,设备确定第i个标记图像和第一个标记图像之间的标记图像数量大于第三数量时,确定历史追踪过程中的累计误差已经高于预设条件。本实施例对重定位条件的具体条件内容不加以限定。当当前图像符合重定位条件时,设备尝试将当前图像相对于第一个标记图像进行特征点追踪。此时,设备获取缓存的第一个标记图像中的初始特征点以及初始位姿参数,该初始位姿参数用于指示相机采集第一个标记图像时的相机姿态。步骤506,将当前图像相对于第一个标记图像进行特征点追踪,得到与初始特征点匹配的目标特征点;可选地,每组匹配特征点对中包括两个互相匹配的初始特征点和目标特征点。特征点追踪可采用基于视觉里程计的追踪算法,本申请对此不加以限定。在一个实施例中,特征点追踪采用klt(kanade-lucas)光流追踪算法;在另一个实施例中,特征点追踪采用基于sift(scale-invariantfeaturetransform,尺度不变特征转换)算法提取的sift特征点描述子、orb(orientedfastandrotatedbrief,快速特征点提取和描述)算法提取的orb特征点描述子进行特征点跟踪。本申请对特征点追踪的具体算法不加以限定,特征点追踪过程可以采用特征点法或直接法。在一个实施例中,设备对第一个标记图像进行特征点提取,得到n个初始特征点;设备还对当前图像进行特征点提取,得到m个候选特征点;然后将m个候选特征点逐一与n个初始特征点进行匹配,确定出至少一组匹配特征点对。每组匹配特征点对包括:一个初始特征点和一个目标特征点。初始特征点是第1个标记图像上的特征点,目标特征点是当前图像上与该初始特征点匹配度最高的候选特征点。可选地,初始特征点的数量大于或等于目标特征点的数量。比如,初始特征点的数量是450个,目标特征点为320个。步骤508,根据初始特征点和目标特征点,计算相机从初始姿态参数改变至目标姿态参数时的位姿变化量,目标姿态参数用于表征相机在采集当前图像时的相机姿态;可选地,设备根据初始特征点和目标特征点计算两帧图像之间的单应性矩阵homography;对单应性矩阵homography进行分解,得到相机从初始姿态参数改变至目标姿态参数时的位姿变化量rrelocalize和trelocalize。单应性矩阵描述了两个平面之间的映射关系,若自然场景(现实环境)中的特征点都落在同一物理平面上,则可以通过单应性矩阵进行运动估计。当存在至少四对相匹配的初始特征点和目标特征点时,设备通过ransac对该单应性矩阵进行分解,得到旋转矩阵rrelocalize和平移向量trelocalize。其中,rrelocalize是相机从初始姿态参数改变至目标姿态参数时的旋转矩阵,trelocalize是相机从初始姿态参数改变至目标姿态参数时的位移向量。步骤510,根据初始位姿参数和位姿变化量,重定位得到目标位姿参数。设备将初始位姿参数利用位姿变化量进行变换后,重定位得到目标位姿参数,从而计算得到相机在采集当前图像时的相机姿态。综上所述,本实施例提供的重定位方法,通过在当前图像符合重定位条件时,将当前图像与第一个标记图像进行重定位,能够在连续多个标记图像进行追踪的anchor-switchingarsystem算法中实现重定位,从而减少了追踪过程中断的可能性,从而解决相关技术中的slam重定位方法并不适用于变种后的slam算法的问题。另外,由于重定位过程是将当前图像相对于第一个标记图像进行重定位,第一个标记图像可以认为是没有累积误差的,所以本实施例还能消除多个标记图像的追踪过程所产生的累积误差。图5所示出的重定位方法是将当前图像相当于第一个标记图像进行重定位,该方法在某些场景下会存在重定位失败的可能性。比如当前图像对应的拍摄姿态与第一个标记图像的拍摄姿态之间的差别较大时,直接将当前图像和第一个标记图像建立匹配来实现重定位会失败。示意性的,设图6的(1)图是第一个标记图像,图6的(2)图是当前图像,由于当前图像和第一个标记图像之间的重合区域太少,达不到足够的匹配度,因此直接将当前图像和第一个标记图像进行重定位会失败。本申请实施例中,引入图6的(3)图作为一阶关键帧图像,将当前图像相对于一阶关键帧图像的匹配结果,以及一阶关键帧图像相对于第一个标记图像的匹配结果(重定位结果)分别计算出旋转矩阵和平移向量,通过切换标记图像(将一阶关键帧图像作为一个标记图像)的方式将两个匹配结果联系在一起,进而得到当前图像相对于第一个标记图像的旋转矩阵和平移向量,从而重定位成功。参考图7,其示出了本申请另一个示例性实施例提供的相机姿态跟踪过程的重定位方法的流程图。本实施例以该重定位方法应用于图4所示的设备中来举例说明。该设备用于按序执行多个标记图像的相机姿态追踪。该方法包括:步骤701,获取多个标记图像中第i个标记图像后采集的当前图像,i>1;设备内的相机按照预设时间间隔采集一帧帧图像,形成图像序列。可选地,相机是在运动(平移和/或旋转)过程中,按照预设时间间隔采集一帧帧图像形成图像序列。可选地,设备将图像序列中的第一帧图像(或前几帧图像中符合预定条件的一帧图像)确定为第一个标记图像,将后续采集的图像相对于第一个标记图像进行特征点追踪,并根据特征点追踪结果计算相机的相机姿态参数;若当前帧图像的特征点追踪效果差于预设条件时,将当前帧图像的上一帧图像确定为第二个标记图像,将后续采集的图像相对于第二个标记图像进行特征点追踪,并根据特征点追踪结果计算相机的相机姿态参数,依次类推。设备可以按序进行连续多个标记图像的相机姿态追踪。当处于第i个标记图像对应的第i个追踪过程时,相机会采集到当前图像。当前图像是第i个标记图像之后采集的某一帧图像,其中,i为大于1的整数。步骤702,当当前图像符合重定位条件时,根据哈希索引信息从关键帧图像库中选择出目标关键帧图像;关键帧图像库中存储有至少一个关键帧图像的哈希索引信息,关键帧图像是在相机姿态追踪过程中缓存的相对于其它图像存在第一重定位成功的图像;在相机姿态追踪过程中会存在不止一次重定位过程。设备会在重定位成功的图像中挑选一些有代表性的图像作为关键帧图像保存至关键帧图像库。关键帧图像库是用于存储关键帧图像的相关信息的数据库。可选地,该相关信息包括:关键帧图像的哈希索引信息和关键帧图像对应的第一重定位结果。可选地,该相关信息还包括:关键帧图像的图像本身。设备会确定当前图像是否符合重定位条件。重定位条件用于指示当前图像相对于第i个标记图像的追踪过程失败,或者,重定位条件用于指示历史追踪过程中的累积误差已经高于预设条件。在一个可选的实施例中,设备对当前图像相对于第i个标记图像进行追踪,若当前图像中不存在与第i个标记图像匹配的特征点,或者,当前图像中与第i个标记图像匹配的特征点少于第一数量时,确定当前图像相对于第i个标记图像的追踪过程失败,符合重定位条件。在另一个可选的实施例中,设备确定当前图像与上一次重定位的图像之间的帧数大于第二数量时,确定历史追踪过程中的累积误差已经高于预设条件,或者,设备确定第i个标记图像和第一个标记图像之间的标记图像数量大于第三数量时,确定历史追踪过程中的累计误差已经高于预设条件。本实施例对重定位条件的具体条件内容不加以限定。当当前图像符合重定位条件时,设备从关键帧图像库中挑选出目标关键帧图像。可选地,目标关键帧图像是在关键帧图像库中与当前图像的图像距离最接近的图像(或最接近的图像或最相似的图像)。在本申请实施例中,关键帧图像库中存储有关键帧图像的哈希索引信息,设备根据哈希索引信息从关键帧图像库中挑选目标关键帧图像。步骤703,将当前图像相对于目标关键帧图像进行第二重定位;当设备在关键帧图像库中挑选出目标关键帧图像之后,将当前图像相对于目标关键帧图像进行重定位。可选地,重定位的过程包括如下步骤:1、获取目标关键帧图像的关键帧特征点和第一重定位的定位结果;关键帧图像库中存储有每个关键帧图像上的关键帧特征点和第一相机姿态追踪结果。可选地,关键帧特征点采用sift特征点描述子或orb特征点描述子来表征。第一重定位的定位结果是相机采集关键帧图像时的相机姿态参数(简称关键帧姿态参数),或者,第一相机姿态追踪结果是相机采集关键帧图像时的相机姿态参数相对于相机采集第一个标记图像时的相机姿态参数的姿态变化量(旋转矩阵和位移向量)。2、将当前图像相对于目标关键图像库进行特征点追踪,得到与关键帧特征点匹配的目标特征点;可选地,每组匹配特征点对中包括两个互相匹配的关键帧特征点和目标特征点。特征点追踪可采用基于视觉里程计的追踪算法,本申请对此不加以限定。在一个实施例中,特征点追踪采用klt(kanade-lucas)光流追踪算法;在另一个实施例中,特征点追踪采用基于orb(orientedfastandrotatedbrief,快速特征点提取和描述)算法提取的orb特征点描述子进行特征点跟踪。本申请对特征点追踪的具体算法不加以限定,特征点追踪过程可以采用特征点法或直接法。特征点还可以采用其它二进制表示的特征点描述子,本申请对此不加以限定。在一个实施例中,由于目标关键帧图像是已经重定位成功的图像,设备对目标关键帧图像进行特征点提取,得到n个关键帧特征点;设备还对当前图像进行特征点提取,得到m个候选特征点;然后将m个候选特征点逐一与n个初始特征点进行匹配,确定出至少一组匹配特征点对。每组匹配特征点对包括:一个关键帧特征点和一个目标特征点。关键帧特征点是目标关键帧图像上的特征点,目标特征点是当前图像上与该关键帧特征点匹配度最高的候选特征点。可选地,关键帧特征点的数量大于或等于目标特征点的数量。比如,关键帧特征点的数量是480个,目标特征点为350个。3、根据关键帧特征点和目标特征点,计算相机从关键帧姿态参数改变至目标姿态参数时的位姿变化量,目标姿态参数用于表征相机在采集当前图像时的相机姿态。可选地,设备根据关键帧特征点和目标特征点计算两帧图像之间的单应性矩阵homography;对单应性矩阵homography进行分解,得到相机从关键帧姿态参数改变至目标姿态参数时的位姿变化量rcm和tcm。其中,rcm是相机从关键帧姿态参数改变至目标姿态参数时的旋转矩阵,tcm是相机从关键帧姿态参数改变至目标姿态参数时的位移向量。步骤704,根据第一重定位的定位结果和第二重定位的定位结果,计算得到相机采集当前图像时的目标姿态参数。假设第一重定位的定位结果包括rmf和tmf。rmf是相机从初始姿态参数改变至关键帧姿态参数时的旋转矩阵,tmf是相机从初始姿态参数改变至关键帧姿态参数时的位移向量,采用如下公式计算得到相机采集当前图像时的目标姿态参数:其中,r和t是目标姿态参数,smf是目标关键帧图像的尺度。综上所述,本实施例提供的重定位方法,通过在当前图像符合重定位条件时,将当前图像与关键帧图像库中的关键帧图像进行重定位,能够在对连续多个标记图像进行追踪的anchor-switchingarsystem算法中实现重定位,从而减少了追踪过程中断的可能性,由于关键帧图像库中的关键帧图像可以为多个,如果关键帧图像库包括有覆盖相机采集场景的四周区域的不同关键帧图像,则有极大概率能够重定位成功,从而提高了重定位过程的成功几率。关键帧图像库(keyframedatabase)中的关键帧图像(keyframe)是在整个相机姿态追踪过程中逐渐增加和删除的。关键帧图像均为重定位成功的图像。可选地,关键帧图像包括如下两种图像中的至少一种:1、相对于多个标记图像中的第一个标记图像进行第一重定位成功的一阶关键帧图像;2、相对于关键帧图像库中的n-1阶关键帧图像进行第一重定位成功的n阶关键帧图像,n为大于1的整数。哈希索引信息:哈希索引信息(英文:hashbundle)又称哈希束、哈希索引阵列、哈希仓库等其它名称。由于每个关键帧图像上有很多个特征点描述子,比如100-500个特征点描述子,每个特征点描述子可以是sift特征点描述子或orb特征点描述子。以特征点描述子是orb特征点描述子为例,orb特征点描述子是一种256比特的二进制的描述子,具有旋转不变性。哈希索引信息包括m列*n行条目存储位(entry),多个关键帧图像上的各个第一特征点描述子按照哈希分类规则分类存储于m列*n行条目存储位中对应的第一条目存储位中。参考图8,以m=4,n=8为例,哈希索引信息包括4*8个条目存储位,每一列条目存储位可以是一张哈希表,共存在四个哈希表:哈希表1、哈希表2、哈希表3和哈希表4。哈希表1中具有8个条目存储位、哈希表2中具有8个条目存储位、哈希表3中具有8个条目存储位、哈希表4中具有8个条目存储位。每个条目存储位具有各自的条目标识,比如哈希表1中的8个条目存储位的条目标识依次为:000、001、010、011、100、101、110、111。每个条目存储位可以认为是一个“抽屉”,条目标识可以认为是“抽屉号”。在每i个哈希表中,第一特征点描述子的索引信息会被哈希分类规则分配至8个条目存储位中的一个条目存储位中进行存储,该条目存储位的条目标识与第一特征点描述子的第i个分段的哈希值相匹配。特征点描述子的索引信息包括:特征点描述子本身、特征点描述子所属关键帧图像的标识。可选地,该特征点描述子的索引信息中还包括:所属关键帧图像的阶数,也即一阶关键帧图像、二阶关键帧图像、三阶关键帧图像等。示意性的,假设关键帧图像n上的第i个特征点描述子fin为:001101011000,该特征点描述子fin被等分为4个描述子片段:001、101、011、000。由于描述子片段1的哈希值为001,则在第1列第2行条目存储位中存储特征点描述子fin的索引信息,该索引信息包括:(n,i,001101011000);由于描述子片段2的哈希值为101,则在第2列第6行条目存储位中存储特征点描述子fin的索引信息;由于描述子片段3的哈希值为011,则在第3列第4行条目存储位中存储特征点描述子fin的索引信息;由于描述子片段4的哈希值为000,则在第4列第1行条目存储位中存储特征点描述子fin的索引信息。上述以特征点描述子为12比特的信息、m=4、n=8来举例说明,但是在不同的实施例中可以采用不同的取值。比如,特征点描述子为256比特的信息、n=2(256/m),当m=16时,n=65536。关键帧图像的添加阶段:基于图7的可选实施例中,设备需要在历史重定位过程中向关键帧图像库添加关键帧图像。如图9所示,该方法还包括如下步骤:步骤901,获取最近一个重定位成功的候选图像;在初始状态下,关键帧图像库可以为空,设备仅使用第一个标记图像作为重定位时的标记图像。随着整个相机追踪过程的执行,会出现越来越多与第一个标记图像(或已加入关键帧图像库的关键帧图像)进行重定位成功的图像,设备在每次重定位成功时,将重定位成功的图像作为可能添加至关键帧图像库的候选图像。可选地,重定位成功包括:相对于第一个标记图像进行重定位成功,或者,相对于关键帧图像库中已有的关键帧图像进行重定位成功。设备从候选图像中挑选出一部分图像作为关键帧图像,添加至关键帧图像库中。需要说明的是,候选图像也可以采用其它方式进行选取,比如只要能够与第一个标记图像匹配成功,即便不是重定位成功的图像,也可以作为候选图像用于对关键帧图像库的扩展。步骤902,确定候选图像是否满足添加条件,添加条件包括:候选图像和第一个标记图像之间的第一距离大于第一阈值,和/或,候选图像与上一次加入的关键帧图像之间的第二距离大于第二阈值;可选地,本次添加的关键帧图像需要与第一个标记图像存在一定距离,因为如果两个图像比较接近,那么与直接用第一个标记图像进行重定位的效果没有明显差别。设备计算候选图像与第一个标记图像之间的第一距离,第一距离用于表示候选图像和第一个标记图像之间的图像相似度或者相机姿态相似度。本申请对第一距离的具体计算方式不加以限定,在一个可选的实施例中,对于第一个标记图像中的初始特征点,候选图像中存在与初始特征点匹配的目标特征点,一个初始特征点和对应的目标特征点构成一个匹配特征点对,根据每一组匹配特征点分别计算l2距离(对应l2范数的欧几里得距离),将所有l2距离的平均值作为候选图像和第一个标记图像之间的第一距离。以第一阈值为50个像素点为例,当候选图像和第一个标记图像之间的第一距离大于50个像素点时,将候选图像添加至关键帧图像库。可选地,本次添加的关键帧图像需要与上一次添加的关键帧图像存在一定距离,因为如果两个图像比较接近,那么与使用上一次添加的关键帧图像进行重定位的效果没有明显差别。设备计算候选图像与上一次添加的关键帧图像之间的第二距离,第二距离用于表示候选图像和上一次添加的关键帧图像之间的图像相似度或相机姿态相似度。本申请对第二距离的具体计算方式不加以限定,在一个可选的实施例中,采用候选图像和上一次添加的关键帧图像之间的重定位图像个数作为第二距离,以第二阈值为10为例,若候选图像和上一次添加的关键帧图像之间的重定位图像个数超过10帧,则将候选图像添加至关键帧图像库中。步骤903,当候选图像满足添加条件时,将候选图像加入关键帧图像库;当确定候选图像满足添加条件时,将候选图像作为关键帧图像添加至关键帧图像库。可选地,将关键帧图像的各个第一特征点描述子和第一重定位的定位结果存储至关键帧图像库。其中,各个第一特征点描述子可以存储至哈希索引信息中,第一重定位的定位结果可以使用相机采集关键帧图像时的关键帧姿态参数来表示,也可以采用相机从初始姿态参数改变至关键帧姿态参数时的姿态变化量来表示。本实施例中,以第一重定位的定位结果采用旋转矩阵和位移向量来表示进行举例说明。可选地,本步骤包括如下子步骤,如图10所示:步骤903a,对于关键帧图像上的每个第一特征点描述子,将第一特征点描述子划分为m个描述子片段;关键帧图像可以为多张,比如1-1000张。每个关键帧图像上又存在多个第一特征点,该第一特征点采用第一特征点描述子来表征,该第一特征点描述子为256比特的orb特征点描述子。对于每个关键帧图像上的每个第一特征点描述子,设备将第一特征点描述子划分为m个描述子片段。可选地,设备将第一特征点描述子按照等分原则划分为m个描述子片段。其中,m小于第一特征点描述子的总比特数,且m为2的幂。表一示意性的示出了该过程。表一索引信息第一特征点描述子拆分后的描述子片段关键帧图像a,点a1010000110101010000110101关键帧图像a,点a2001110101011001110101011关键帧图像b,点b1001110101010001110101010步骤903b,对于m个描述子片段中的第i个描述子片段,获取第i个描述子片段的第一哈希值;对于第i个描述子片段,将第i个描述子片段直接作为第一哈希值,或者经过预设哈希函数的计算后,得到第一哈希值。其中,0≤i≤m-1或1≤i≤m。步骤903c,在m列*n行条目存储位中,确定位于第i列第j行的条目存储位作为第一条目存储位。对于第i个描述子片段,设备在第i列条目存储位中,选择出与第一哈希值对应的第j行条目存储位作为第一条目存储位。其中,第i列第j行的条目存储位是位于第i列的n个条目存储位中与第一哈希值匹配的条目存储位。表二示意性的示出了将三个第一特征点描述子存储在哈希索引信息中的过程。其中的(点b1,图像b)代表关键帧图像b上的第一特征点描述子b1的索引信息。表二步骤904,当候选图像不满足添加条件时,将候选图像不加入关键帧图像库。当候选图像与第一个标记图像之间的第一距离小于第一阈值,或者,候选图像与上一次添加的关键帧图像之间的第二距离小于第二阈值,则不将该候选图像加入关键帧图像库。综上所述,本实施例提供的重定位方法,通过添加条件对候选图像进行选择,能够选择出具有代表性的关键帧图像,使得关键帧图像库中的关键帧图像能够尽量覆盖现实场景中的不同区域,从而保证当前图像相对于关键帧图像进行第二重定位时的成功率。本实施例提供的重定位方法,还通过将关键帧图像的各个第一特征点描述子分散地存储在哈希索引信息中,能够减少关键帧图像查询过程中需要匹配的第一特征点描述子的个数,不需要将所有第一特征点描述子都轮询匹配一遍,只需要按照哈希分类规则在同一个条目存储位中的多个第一特征点描述子中,就可以大概率匹配到最相似的第一特征点描述子。关键帧图像的查询阶段:在基于图7的可选实施例中,步骤702包括如下子步骤,如图11所示:步骤702a,获取当前图像上的各个第二特征点描述子;设备提取当前图像上的各个第二特征点描述子,第二特征点描述子和第一特征点描述子的提取方式相同。本申请中第一特征点描述子中的“第一”用于表示该特征点描述子属于关键帧图像,第二特征点描述子中的“第二”用于表示该特征点描述子属于当前图像。设备可以采用基于orb(orientedfastandrotatedbrief,快速特征点提取和描述)算法提取的orb特征点描述子,作为第二特征点描述子。或者,也可以采用其它二进制表示的特征点描述子。步骤702b,对于每个第二特征点描述子,根据哈希分类规则在m列*n行条目存储位中确定出与第二特征点描述子对应的第二条目存储位中;本步骤可以包括如下子步骤:1、将第二特征点描述子划分为m个描述子片段;2、对于m个描述子片段中的第i个描述子片段,获取第i个描述子片段的第二哈希值;3、在m列*n行条目存储位中,确定位于第i列第j行的条目存储位作为第二条目存储位;其中,第i列第j行的条目存储位是位于第i列的n个条目存储位中与第二哈希值匹配的条目存储位。需要说明的是,第二条目存储位和第一条目存储位仅是采用不同的描述方式,代表两次哈希分类过程的结果,但实质上可以是m列*n行条目存储位中的同一个条目存储位。步骤702c,在第二条目存储位中存储的第一特征点描述子中,确定出与第二特征点描述子相似度最高的目标第一特征点描述子,记录目标第一特征点描述子的相似分数和所属关键帧图像;可选地,第二条目存储位已存储有多个关键帧图像中的多个第一特征点描述子。这些第一特征点描述子是按照哈希分类规则被分类至同一类的特征点描述子。对于当前图像上的第二特征点描述子,若该第二特征点描述子的第i个描述子片段被分类至该第二条目存储位,则可以计算该第二特征点描述子与第二条目存储位中每个第一特征点描述子的相似程度。可选地,采用相同比特数量与总比特数量的比值来表征该相似程度。比如,假设当前图像上的第二特征点描述子为:010110100001,则划分为四个描述子片段:010110100001。对于描述子片段1:001,确定第1列第3行条目存储位是第二条目存储位,计算第二特征点描述子和存储在第1列第3行条目存储位中的各个第一特征点描述子的相似分数,将最高相似分数的第一特征点描述子确定为目标第一特征点描述子。记录该目标第一特征点描述子的相似分数和所属关键帧图像。由于划分为四个描述子片段,所以每个第二特征点描述子会对应有四个目标第一特征点描述子,这四个目标第一特征点描述子之间还可能存在重复。对于当前图像上的k个第二特征点描述子,均执行上述过程,最多能够得到k*m个目标第一特征点描述子、每个目标第一特征点描述子对应的相似分数以及每个目标第一特征点描述子所属的关键帧图像。步骤702d,对属于同一个关键帧图像的至少一个相似分数进行累加,将具有最高相似分数累加和的关键帧图像确定为目标关键帧图像。对于当前图像的最多k*m个目标第一特征点描述子,由于很多目标第一特征点描述子可能属于同一个关键帧图像,因此将属于同一个关键帧图像的各个目标第一特征点描述子的相似分数进行累加,得到多个关键帧图像各自的相似分数累加和。将其中具有最高相似分数累加和的关键帧图像,确定为与当前图像对应的目标关键帧图像。综上所述,本实施例提供的方法,能够利用哈希索引信息快速地从关键帧图像库中,查询到与当前图像匹配的目标关键帧图像,由于将关键帧图像的各个第一特征点描述子分散地存储在哈希索引信息中,能够减少查询与当前图像匹配的目标关键帧图像时需要匹配的第一特征点描述子的个数,不需要将所有第一特征点描述子都轮询匹配一遍,从而加速了整个匹配过程。同时,由于哈希索引信息的数据量较少,不会占用太多的存储空间,因此本申请实施例提供的方法可以适用于移动终端的ar应用程序中,从而减少对移动终端上有限存储空间的占用。关键帧图像的删除阶段:关键帧图像库中的关键帧图像不应当太多,太多的关键帧图像会造成重定位过程的计算量负担,导致难以搜索到理想的图像。在一个示意性的例子中,关键帧图像库中的关键帧图像不超过1000张。在基于图7的可选实施例中,还可包括如下步骤,如图12所示:步骤905,当关键帧图像库中的关键帧图像数量达到最大值时,从关键帧图像库中随机选择出第二关键帧图像;步骤906,将所述第二关键帧图像从关键帧图像库中删除。可选地,本步骤包括如下子步骤:1、获取第二关键帧图像的各个第一特征点描述子;2、对于每个第一特征点描述子,根据哈希分类规则在m列*n行条目存储位中确定出与第一特征点描述子对应的第一条目存储位中;3、将第一特征点描述子和第二关键帧图像的标识,从第一条目存储位中进行删除。也即,将第一特征点描述子的索引信息,从第一条目存储位中删除。本实施例提供的方法,还通过在关键帧图像库中的关键帧图像达到最大值(比如1000张)时,将与候选图像最近的一个关键帧图像进行删除,使得关键帧图像库中尽量保留具有代表性的关键帧图像,从而保证在关键帧图像库中查询关键帧图像时的效率。在基于图7的一个可选实施例中,若当前图像符合重定位条件,则设备优先将当前图像相对于第一个标记图像进行第三重定位;当第三重定位失败时,将当前图像尝试与关键帧图像库中的关键帧图像进行重定位。也即,优先进行零阶重定位,若零阶重定位成功,则使用零阶重定位结果,若零阶重定位不成功,则进行一阶重定位。在基于图7的另一个可选的实施例中,若当前图像符合重定位条件,则设备并行进行两个重定位过程。一方面,将当前图像相对于关键帧图像库中的关键帧图像进行第二重定位;另一方面,将当前图像相对于第一个标记图像进行第三重定位。也即,一阶重定位和零阶重定位是独立的,可以并行的执行,当其中一个重定位成功时,采用成功的重定位结果;如果两个重定位均成功,则优先使用零阶重定位结果。在基于图7的一个可选的实施例中,若上述方法应用于ar系统中,直接使用重定位的结果可能会导致跳变,设备可将计算得到目标姿态参数输入滤波器(卡尔曼滤波器或互补滤波器),将目标姿态参数作为观测值,利用运动模型估计一个预测值,使用预测值作为实际使用的目标姿态参数,也即大概率相信观测值的前提下进行后续处理。从而使得ar系统得到平滑的结果,所显示用户画面中不会出现跳变,保证更好的用户体验。在基于多个标记图像的相机姿态追踪过程中,还经常存在将当前图像相对于第i个标记图像进行特征点追踪的过程。上述哈希索引信息的快速索引方法还能够用于对两张图像之间的特征点匹配过程的加速。假设存在第一图像和第二图像,第一图像是第i个标记图像,第二图像是待匹配的当前图像。本申请实施例还提供有如下特征点匹配方法。请参考图13,其示出了本申请一个示例性实施例提供的特征点匹配方法的流程图。该方法可以应用于图4所示的设备中,例如可以应用对第i个标记图像进行特征点匹配的过程中。该方法包括:步骤1301,获取第一图像的哈希索引信息,哈希索引信息包括m列*n行条目存储位,第一图像上的各个第一特征点描述子按照哈希分类规则分类存储于m列*n行条目存储位中各自对应的第一条目存储位中;设第一图像是第i个标记图像,预先将第一图像上的各个第一特征点描述子按照哈希分类规则分类存储与m列*n行条目存储位中各自对应的第一条目存储位中。与上述实施例不同的是,上述实施例中是多张关键帧图像共同构建同一个哈希索引信息(hashbundle),本实施例中是第一图像单独构建一个哈希索引信息。也即该哈希索引信息中,仅存储有第一图像的哈希索引信息,如图14所示。或者说,当第一图像是标记图像时,每个标记图像对应有各自的哈希的索引信息。该第一图像的哈希索引信息的存储过程可以参考上述步骤903的描述(图10),本文不再赘述。步骤1302,获取第二图像的各个第二特征点描述子;设第二图像是待进行特征点追踪的图像,比如当前图像。设备可以采用基于sift(scale-invariantfeaturetransform,尺度不变特征转换)算法提取的sift特征点描述子、orb(orientedfastandrotatedbrief,快速特征点提取和描述)算法提取的orb特征点描述子,作为第二特征点描述子。步骤1303,对于每个第二特征点描述子,按照哈希分类规则在m列*n行条目存储位中确定出与第二特征点描述子对应的第二条目存储位;本步骤可以包括如下子步骤:1、将第二特征点描述子划分为m个描述子片段;2、对于m个描述子片段中的第i个描述子片段,获取第i个描述子片段的第二哈希值;3、在m列*n行条目存储位中,确定位于第i列第j行的条目存储位作为第二条目存储位;其中,第i列第j行的条目存储位是位于第i列的n个条目存储位中与第二哈希值匹配的条目存储位。需要说明的是,第二条目存储位和第一条目存储位仅是采用不同的描述方式,代表两次哈希分类过程的结果,但实质上可以是m列*n行条目存储位中的同一个条目存储位。步骤1304,在第二条目存储位中存储的各个第一特征点描述子中,确定出与第二特征点描述子匹配的第一特征点描述子。可选地,第二条目存储位已存储有多个关键帧图像中的多个第一特征点描述子。这些第一特征点描述子是按照哈希分类规则被分类至同一类的特征点描述子。对于当前图像上的第二特征点描述子,若该第二特征点描述子的第i个描述子片段被分类至该第二条目存储位,则可以计算该第二特征点描述子与第二条目存储位中每个第一特征点描述子的相似程度。可选地,采用相同比特数量与总比特数量的比值来表征该相似程度。将相似程度最高的第一特征点描述子,确定为与第二特征点描述子匹配的第一特征点描述子。综上所述,本实施例提供的特征点匹配方法,能够利用哈希索引信息减少第二特征点描述子需要匹配的候选第一特征点描述子的数量,不需要对第一图像上的所有第一特征点描述子均进行匹配,仅需要匹配一部分条目存储位中的第一特征点描述子即可,因此能够加速匹配过程。在一个示意性的例子中,如图15所示,s101,设备获取相机采集的当前图像;s102,若当前图像是用于扩展关键帧图像库的候选图像,将当前图像和born-image匹配(也即重定位),得到第一重定位结果;s103,若当前图像相对于born-image匹配成功,则将当前图像作为一阶重定位成功的图像;s104,对于一阶重定位成功的图像,对自身建一个匹配用的hash-bundle,也即哈希索引信息,相关细节可以参考图13所示实施例;s105,对于一阶重定位成功的图像,可以加入总数据库(所有关键帧图像共用的hash-bundle),根据情况增删查,详细过程可参考上述的关键帧图像增加、删除和查询过程;s106,若当前图像是用于重定位的图像,则在总数据库中查找最接近的一阶关键帧图像;s107,当前图像同时与born-image和最接近的一阶关键帧图像进行匹配(也即重定位);s108,根据匹配结果进行重定位,得到第二重定位结果。以下为本申请的装置实施例,对于装置实施例中未详细描述的细节,可以参考如上所述的方法实施例。请参考图16,其示出了本申请一个示例性实施例提供的相机姿态追踪过程的重定位装置的框图。该重定位装置可以通过软件、硬件或者两者的结合实现成为电子设备(或称移动终端)的全部或一部分,该重定位装置包括:图像获取模块1620、哈希查找模块1640、重定位模块1660和参数计算模块1680。图像获取模块1620,用于获取所述多个标记图像中第i个标记图像后采集的当前图像,i>1;哈希查找模块1640,用于当所述当前图像符合重定位条件时,根据哈希索引信息从关键帧图像库中选择出目标关键帧图像;所述关键帧图像库中存储有至少一个关键帧图像对应的哈希索引信息,所述关键帧图像是在所述相机姿态追踪过程中缓存的相对于其它图像进行第一重定位成功的图像;重定位模块1660,用于将所述当前图像相对于所述目标关键帧图像进行第二重定位;参数计算模块1680,用于根据所述第一重定位的定位结果和所述第二重定位的定位结果,计算得到所述相机采集所述当前图像时的相机姿态参数。在一个可选的实施例中,所述哈希索引信息包括m列*n行条目存储位,所述关键帧图像上的各个第一特征点描述子按照哈希分类规则分类存储于所述m列*n行条目存储位中对应的第一条目存储位中;所述哈希查找模块1640,用于获取所述当前图像上的各个第二特征点描述子;对于每个所述第二特征点描述子,根据所述哈希分类规则在所述m列*n行条目存储位中确定出与所述第二特征点描述子对应的第二条目存储位中;在所述第二条目存储位中存储的所述第一特征点描述子中,确定出与所述第二特征点描述子相似度最高的目标第一特征点描述子,记录所述目标第一特征点描述子的相似分数和所属关键帧图像;对属于同一个所述关键帧图像的至少一个相似分数进行累加,将具有最高相似分数累加和的关键帧图像确定为所述目标关键帧图像。在一个可选的实施例中,所述哈希查找模块1640,用于将所述第二特征点描述子划分为m个描述子片段;对于所述m个描述子片段中的第i个描述子片段,获取第i个描述子片段的第二哈希值;在所述m列*n行条目存储位中,确定位于第i列第j行的条目存储位作为所述第二条目存储位;其中,所述第i列第j行的条目存储位是位于第i列的n个条目存储位中与所述第二哈希值匹配的条目存储位。在一个可选的实施例中,所述装置还包括:关键帧添加模块1630;所述图像获取模块1620,还用于获取最近一个重定位成功的候选图像;所述关键帧添加模块1630,还用于确定所述候选图像是否满足添加条件,所述添加条件包括:所述候选图像和所述第一个标记图像之间的第一距离大于第一阈值,和/或,所述候选图像与上一次加入的关键帧图像之间的第二距离大于第二阈值;当所述候选图像满足所述添加条件时,将所述候选图像作为第一关键帧图像加入所述关键帧图像库。在一个可选的实施例中,所述关键帧添加模块1630,用于获取所述第一关键帧图像的各个第一特征点描述子;对于每个所述第一特征点描述子,根据所述哈希分类规则在所述m列*n行条目存储位中确定出与所述第一特征点描述子对应的第一条目存储位中;将所述第一特征点描述子和所述第一关键帧图像的标识,存储至所述第一条目存储位中。在一个可选的实施例中,所述关键帧添加模块1630,用于将所述第一特征点描述子划分为m个描述子片段;对于所述m个描述子片段中的第i个描述子片段,获取第i个描述子片段的第一哈希值;在所述m列*n行条目存储位中,确定位于第i列第j行的条目存储位作为所述第一条目存储位;其中,所述第i列第j行的条目存储位是位于第i列的n个条目存储位中与所述第一哈希值匹配的条目存储位。在一个可选的实施例中,所述装置还包括:关键帧删除模块1650,用于当所述关键帧图像库中的关键帧图像数量达到最大值时,从所述关键帧图像库中随机选择出第二关键帧图像;将所述第二关键帧图像从所述关键帧图像库中删除。在一个可选的实施例中,所述关键帧删除模块1650,用于获取所述第二关键帧图像的各个第一特征点描述子;对于每个所述第一特征点描述子,根据所述哈希分类规则在所述m列*n行条目存储位中确定出与所述第一特征点描述子对应的第一条目存储位中;将所述第一特征点描述子和所述第二关键帧图像的标识,从所述第一条目存储位中进行删除。在一个可选的实施例中,所述重定位模块1660,用于当所述当前图像符合重定位条件时,将所述当前图像相对于第一个标记图像进行第三重定位;所述哈希查找模块1640,用于当所述第三重定位失败时,执行根据所述哈希索引信息从所述关键图像库中选择出所述目标关键帧图像的步骤。需要说明的是:上述实施例提供的相机姿态追踪过程的重定位装置在实现重定位时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的重定位装置与重定位方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。请参考图17,其示出了本申请一个示例性实施例提供的特征点匹配装置的框图。该特征点匹配装置可以通过软件、硬件或者两者的结合实现成为电子设备(或称移动终端)的全部或一部分,该特征点匹配装置包括:第一获取模块1720、第二获取模块1740、哈希分类模块1760和特征点匹配模块1780。第一获取模块1720,用于获取第一图像的哈希索引信息,所述哈希索引信息包括m列*n行条目存储位,所述第一图像上的各个第一特征点描述子按照哈希分类规则分类存储于所述m列*n行条目存储位中各自对应的第一条目存储位中;第二获取模块1740,用于获取第二图像的各个第二特征点描述子;哈希分类模块1760,用于对于每个所述第二特征点描述子,按照所述哈希分类规则在所述m列*n行条目存储位中确定出与所述第二特征点描述子对应的第二条目存储位;特征点匹配模块1780,用于在所述第二条目存储位中存储的各个所述第一特征点描述子中,确定出与所述第二特征点描述子匹配的第一特征点描述子。在一个可选的实施例中,所述哈希分类模块1760,用于将所述第二特征点描述子划分为m个描述子片段;对于所述m个描述子片段中的第i个描述子片段,获取第i个描述子片段的第二哈希值;在所述m列*n行条目存储位中,确定位于第i列第j行的条目存储位作为所述第二条目存储位;其中,所述第i列第j行的条目存储位是位于第i列的n个条目存储位中与所述第二哈希值匹配的条目存储位。需要说明的是:上述实施例提供的特征点匹配装置在两帧图像之间匹配特征点时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的特征点匹配装置与特征点匹配方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。图18示出了本申请一个示例性实施例提供的终端1800的结构框图。该终端1800可以是:智能手机、平板电脑、mp3播放器(movingpictureexpertsgroupaudiolayeriii,动态影像专家压缩标准音频层面3)、mp4(movingpictureexpertsgroupaudiolayeriv,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。终端1800还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。通常,终端1800包括有:处理器1801和存储器1802。处理器1801可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1801可以采用dsp(digitalsignalprocessing,数字信号处理)、fpga(field-programmablegatearray,现场可编程门阵列)、pla(programmablelogicarray,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1801也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称cpu(centralprocessingunit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1801可以在集成有gpu(graphicsprocessingunit,图像处理器),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1801还可以包括ai(artificialintelligence,人工智能)处理器,该ai处理器用于处理有关机器学习的计算操作。存储器1802可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1802还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1802中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器1801所执行以实现本申请中方法实施例提供的相机姿态追踪过程的重定位方法。在一些实施例中,终端1800还可选包括有:外围设备接口1803和至少一个外围设备。处理器1801、存储器1802和外围设备接口1803之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口1803相连。具体地,外围设备包括:射频电路1804、触摸显示屏1805、摄像头1806、音频电路1807、定位组件1808和电源1809中的至少一种。外围设备接口1803可被用于将i/o(input/output,输入/输出)相关的至少一个外围设备连接到处理器1801和存储器1802。在一些实施例中,处理器1801、存储器1802和外围设备接口1803被集成在同一芯片或电路板上;在一些其他实施例中,处理器1801、存储器1802和外围设备接口1803中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。射频电路1804用于接收和发射rf(radiofrequency,射频)信号,也称电磁信号。射频电路1804通过电磁信号与通信网络以及其他通信设备进行通信。射频电路1804将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路1804包括:天线系统、rf收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路1804可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2g、3g、4g及5g)、无线局域网和/或wifi(wirelessfidelity,无线保真)网络。在一些实施例中,射频电路1804还可以包括nfc(nearfieldcommunication,近距离无线通信)有关的电路,本申请对此不加以限定。显示屏1805用于显示ui(userinterface,用户界面)。该ui可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏1805是触摸显示屏时,显示屏1805还具有采集在显示屏1805的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器1801进行处理。此时,显示屏1805还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏1805可以为一个,设置终端1800的前面板;在另一些实施例中,显示屏1805可以为至少两个,分别设置在终端1800的不同表面或呈折叠设计;在再一些实施例中,显示屏1805可以是柔性显示屏,设置在终端1800的弯曲表面上或折叠面上。甚至,显示屏1805还可以设置成非矩形的不规则图形,也即异形屏。显示屏1805可以采用lcd(liquidcrystaldisplay,液晶显示屏)、oled(organiclight-emittingdiode,有机发光二极管)等材质制备。摄像头组件1806用于采集图像或视频。可选地,摄像头组件1806包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及vr(virtualreality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件1806还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。音频电路1807可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器1801进行处理,或者输入至射频电路1804以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端1800的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器1801或射频电路1804的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路1807还可以包括耳机插孔。定位组件1808用于定位终端1800的当前地理位置,以实现导航或lbs(locationbasedservice,基于位置的服务)。定位组件1808可以是基于美国的gps(globalpositioningsystem,全球定位系统)、中国的北斗系统或俄罗斯的伽利略系统的定位组件。电源1809用于为终端1800中的各个组件进行供电。电源1809可以是交流电、直流电、一次性电池或可充电电池。当电源1809包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。在一些实施例中,终端1800还包括有一个或多个传感器1810。该一个或多个传感器1810包括但不限于:加速度传感器1811、陀螺仪传感器1812、压力传感器1818、指纹传感器1814、光学传感器1815以及接近传感器1816。加速度传感器1811可以检测以终端1800建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器1811可以用于检测重力加速度在三个坐标轴上的分量。处理器1801可以根据加速度传感器1811采集的重力加速度信号,控制触摸显示屏1805以横向视图或纵向视图进行用户界面的显示。加速度传感器1811还可以用于游戏或者用户的运动数据的采集。陀螺仪传感器1812可以检测终端1800的机体方向及转动角度,陀螺仪传感器1812可以与加速度传感器1811协同采集用户对终端1800的3d动作。处理器1801根据陀螺仪传感器1812采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变ui)、拍摄时的图像稳定、游戏控制以及惯性导航。压力传感器1818可以设置在终端1800的侧边框和/或触摸显示屏1805的下层。当压力传感器1818设置在终端1800的侧边框时,可以检测用户对终端1800的握持信号,由处理器1801根据压力传感器1818采集的握持信号进行左右手识别或快捷操作。当压力传感器1818设置在触摸显示屏1805的下层时,由处理器1801根据用户对触摸显示屏1805的压力操作,实现对ui界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。指纹传感器1814用于采集用户的指纹,由处理器1801根据指纹传感器1814采集到的指纹识别用户的身份,或者,由指纹传感器1814根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器1801授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器1814可以被设置终端1800的正面、背面或侧面。当终端1800上设置有物理按键或厂商logo时,指纹传感器1814可以与物理按键或厂商logo集成在一起。光学传感器1815用于采集环境光强度。在一个实施例中,处理器1801可以根据光学传感器1815采集的环境光强度,控制触摸显示屏1805的显示亮度。具体地,当环境光强度较高时,调高触摸显示屏1805的显示亮度;当环境光强度较低时,调低触摸显示屏1805的显示亮度。在另一个实施例中,处理器1801还可以根据光学传感器1815采集的环境光强度,动态调整摄像头组件1806的拍摄参数。接近传感器1816,也称距离传感器,通常设置在终端1800的前面板。接近传感器1816用于采集用户与终端1800的正面之间的距离。在一个实施例中,当接近传感器1816检测到用户与终端1800的正面之间的距离逐渐变小时,由处理器1801控制触摸显示屏1805从亮屏状态切换为息屏状态;当接近传感器1816检测到用户与终端1800的正面之间的距离逐渐变大时,由处理器1801控制触摸显示屏1805从息屏状态切换为亮屏状态。本领域技术人员可以理解,图18中示出的结构并不构成对终端1800的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1