位姿处理方法、装置、电子设备及存储介质转让专利

申请号 : CN202311223904.6

文献号 : CN116958267B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 蔡行刘浩

申请人 : 腾讯科技(深圳)有限公司

摘要 :

本申请实施例提供了一种位姿处理方法、装置、电子设备以及存储介质,涉及图像处理技术领域。确定出与当前关键帧图像相匹配的回环帧图像;确定采集设备对应的当前关键帧图像与回环帧图像之间的相对位姿;将当前关键帧图像作为新的历史关键帧图像添加至历史关键帧集合中,若历史关键帧集合中的图像数量超过预设阈值,则基于图像数量从历史关键帧集合中删除至少一帧历史关键帧图像,得到更新后的历史关键帧集合;对采集设备对应当前关键帧图像的位姿信息进行校正,得到采集设备对应当前关键帧图像的校正位姿信息;校正位姿信息用于对当前关键帧图像中进行空间定位,从而实现虚拟现实相关功能。

权利要求 :

1.一种位姿处理方法,其特征在于,所述方法包括:

获取当前关键帧图像的描述信息,基于所述描述信息从历史关键帧集合的多个历史关键帧图像中确定出与所述当前关键帧图像相匹配的回环帧图像;

确定采集设备对应的所述当前关键帧图像与所述回环帧图像之间的相对位姿;

将当前关键帧图像作为新的历史关键帧图像添加至所述历史关键帧集合中,若历史关键帧集合中的图像数量超过预设阈值,则基于各历史关键帧图像的三维坐标信息,确定各历史关键帧图像所属的空间范围;所述空间范围覆盖各历史关键帧图像;将所述空间范围划分为多个子区域,从多个子区域中确定出包含历史关键帧图像的数量最多的目标子区域;从所述目标子区域中确定待删除的第一关键帧图像,并删除所述第一关键帧图像,得到更新后的历史关键帧集合;

将更新后的历史关键帧集合中,时间戳位于所述当前关键帧图像和所述回环帧图像之间的图像确定为参考图像;

基于所述相对位姿以及所述采集设备对应各所述参考图像的位姿信息,对所述采集设备对应当前所述关键帧图像的位姿信息进行校正,得到所述采集设备对应所述当前关键帧图像的校正位姿信息;所述校正位姿信息用于在所述当前关键帧图像中进行虚拟物体放置。

2.根据权利要求1所述的位姿处理方法,其特征在于,所述从所述目标子区域中确定待删除的第一关键帧图像,包括:基于各历史关键帧图像的三维坐标信息对目标子区域中各个历史关键帧图像进行聚类,得到聚类中心;

基于所述目标子区域中各个历史关键帧图像的三维坐标信息,从所述目标子区域中各个历史关键帧图像中确定出与所述聚类中心最近的历史关键帧图像,将所确定的历史关键帧图像作为所述第一关键帧图像。

3.根据权利要求1所述的位姿处理方法,其特征在于,所述描述信息包括所述当前关键帧图像的至少一个第一描述词;

所述获取当前关键帧图像的描述信息,基于所述描述信息从历史关键帧集合的多个历史关键帧图像中确定出与所述当前关键帧图像相匹配的回环帧图像,包括:获取所述当前关键帧图像中多个特征点的特征描述符;

通过训练后的识别模型基于所述特征描述符,确定所述当前关键帧图像的至少一个第一描述词,并确定多个历史关键帧图像分别对应的第二描述词;

通过将所述至少一个第一描述词与多个历史关键帧图像分别对应的第二描述词进行匹配,从多个历史关键帧图像中确定与所述当前关键帧图像相匹配的回环帧图像。

4.根据权利要求3所述的位姿处理方法,其特征在于,所述通过将所述至少一个第一描述词与多个历史关键帧图像分别对应的第二描述词进行匹配,从多个历史关键帧图像中确定与所述当前关键帧图像相匹配的回环帧图像,包括:将所述至少一个第一描述词与多个历史关键帧图像分别对应的第二描述词进行匹配,从多个历史关键帧图像中确定与所述当前关键帧图像相匹配的多个第二关键帧图像;

基于所述采集设备分别对应各第二关键帧图像的位姿信息,对各第二关键帧图像进行聚类,得到多个类别分别对应的第二关键帧图像;

将第二关键帧图像的数量最多的类别中,时间戳最早的第二关键帧图像作为所述回环帧图像。

5.根据权利要求3所述的位姿处理方法,其特征在于,所述获取所述当前关键帧图像中多个特征点的特征描述符,包括:获取所述当前关键帧图像中第一特征点的三维坐标信息;所述三维坐标信息包括所述第一特征点的世界坐标位置和所述第一特征点在所述当前关键帧图像中的二维特征位置;

对所述第一特征点在所述当前关键帧图像中的二维特征位置计算描述子,得到特征描述子;

将所述特征描述子添加至所述三维坐标信息中,得到针对所述第一特征点的三维描述符;

对所述当前关键帧图像进行特征点提取,得到所述当前关键帧图像中第二特征点的二维描述符;

基于所述第一特征点的三维描述符和所述第二特征点的二维描述符生成所述特征描述符。

6.根据权利要求5所述的位姿处理方法,其特征在于,所述基于所述描述信息从历史关键帧集合的多个历史关键帧图像中确定出与所述当前关键帧图像相匹配的回环帧图像,包括:从所述历史关键帧集合的多个历史关键帧图像中确定出距离当前关键帧图像的时间戳最近的第一预设数量的第三关键帧图像;

将所述多个历史关键帧图像中除所述第三关键帧图像以外的多个图像作为第四关键帧图像;

基于所述描述信息从多个第四关键帧图像中确定出与所述当前关键帧图像相匹配的回环帧图像。

7.根据权利要求6所述的位姿处理方法,其特征在于,所述获取所述当前关键帧图像中第一特征点的三维坐标信息,包括:获取当前关键帧图像的多个第一初始特征点的二维坐标信息和多个第二初始特征点的三维坐标信息;所述第一初始特征点包括所述第二初始特征点;

将所述当前关键帧图像的多个第一初始特征点的二维坐标信息分别与所述第一预设数量的第三关键帧图像中的第一特征点的三维坐标信息进行匹配,得到与所述第一初始特征点相匹配的第二预设数量的第三特征点;

基于所述当前关键帧图像的多个第二初始特征点的三维坐标信息,以及每一第三特征点的三维坐标信息,确定当前关键帧图像中第一特征点的三维坐标信息。

8.根据权利要求7所述的位姿处理方法,其特征在于,所述将所述当前关键帧图像的多个第一初始特征点的二维坐标信息分别与所述第一预设数量的第三关键帧图像中的第一特征点的三维坐标信息进行匹配,得到与所述第一初始特征点相匹配的第二预设数量的第三特征点,包括:基于所述采集设备对应当前关键帧图像的位姿信息,以及所述采集设备分别对应各所述第三关键帧图像的位姿信息,从多个第三关键帧图像中确定出与所述当前关键帧图像之间的间隔距离小于或等于预设阈值的多个候选帧图像;

将所述当前关键帧图像的多个第一初始特征点的二维坐标信息分别与所述多个候选帧图像中的第一特征点的三维坐标信息进行匹配,得到与所述第一初始特征点相匹配的第二预设数量的第三特征点。

9.根据权利要求8所述的位姿处理方法,其特征在于,所述将所述当前关键帧图像的多个第一初始特征点的二维坐标信息分别与所述多个候选帧图像中的第一特征点的三维坐标信息进行匹配,得到与所述第一初始特征点相匹配的第二预设数量的第三特征点,包括:针对每一候选帧图像,基于所述采集设备对应当前关键帧图像的位姿信息,将所述候选帧图像中的各第一特征点投影到当前关键帧图像中,得到各候选帧图像的第一特征点在所述当前关键帧图像中的二维预测像素坐标;

针对每一第一初始特征点,基于所述第一初始特征点的二维坐标信息与各个候选帧图像的第一特征点的二维预测像素坐标,从多个第一特征点中筛选出坐标距离小于或等于预设距离的多个第四特征点;

确定各个第四特征点与所述第一初始特征点之间的描述子距离,基于所确定的描述子距离从多个第四特征点中确定与所述第一初始特征点相匹配的至少一个第五特征点;

基于每一第五特征点与对应的第一初始特征点之间的描述子距离,从各个第一初始特征点分别相匹配的至少一个第五特征点中,筛选出所述第二预设数量的第三特征点。

10.一种位姿处理装置,其特征在于,所述装置包括:

第一获取模块,用于获取当前关键帧图像的描述信息,基于所述描述信息从历史关键帧集合的多个历史关键帧图像中确定出与所述当前关键帧图像相匹配的回环帧图像;

第一确定模块,用于确定采集设备对应的所述当前关键帧图像与所述回环帧图像之间的相对位姿;

删除模块,用于将当前关键帧图像作为新的历史关键帧图像添加至所述历史关键帧集合中,若历史关键帧集合中的图像数量超过预设阈值,则基于各历史关键帧图像的三维坐标信息,确定各历史关键帧图像所属的空间范围;所述空间范围覆盖各历史关键帧图像;将所述空间范围划分为多个子区域,从多个子区域中确定出包含历史关键帧图像的数量最多的目标子区域;从所述目标子区域中确定待删除的第一关键帧图像,并删除所述第一关键帧图像,得到更新后的历史关键帧集合;

第二确定模块,用于将更新后的历史关键帧集合中,时间戳位于所述当前关键帧图像和所述回环帧图像之间的图像确定为参考图像;

校正模块,用于基于所述相对位姿以及所述采集设备对应各所述参考图像的位姿信息,对所述采集设备对应当前所述关键帧图像的位姿信息进行校正,得到所述采集设备对应所述当前关键帧图像的校正位姿信息;所述校正位姿信息用于在所述当前关键帧图像中进行虚拟物体放置。

11.一种电子设备,其特征在于,所述电子设备包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序以实现权利要求1至9中任一项所述的方法。

12.一种计算机可读存储介质,其特征在于,所述存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至9中任一项所述的方法。

说明书 :

位姿处理方法、装置、电子设备及存储介质

技术领域

[0001] 本申请涉及图像处理技术领域,具体而言,本申请涉及一种位姿处理方法、装置、电子设备及存储介质。

背景技术

[0002] 视频AR(Augmented Reality,增强现实)功能在各个短视频、游戏、UI(User Interface,用户界面)交互等领域广泛应用,AR虚拟物体放置作为新的交互方式被多个应用采用,AR能力实现的核心是进行相机实时定位。
[0003] 目前对相机进行定位的方案中,利用VIO(visual‑inertial odometry,视觉惯性里程计)系统的关键帧及地图点信息输出,独立维护后端地图,即历史关键帧集合,后端地图不支持关键帧删除,地图会无限增长,定位耗时较长,效率较低,不利于移动端运行。

发明内容

[0004] 本申请实施例的目的旨在提供一种位姿处理方法、装置及电子设备,本申请实施例提供的技术方案如下:
[0005] 一方面,本申请实施例提供了一种位姿处理的方法,该方法包括:
[0006] 获取当前关键帧图像的描述信息,基于描述信息从历史关键帧集合的多个历史关键帧图像中确定出与当前关键帧图像相匹配的回环帧图像;
[0007] 确定采集设备对应的当前关键帧图像与回环帧图像之间的相对位姿;
[0008] 将当前关键帧图像作为新的历史关键帧图像添加至历史关键帧集合中,若历史关键帧集合中的图像数量超过预设阈值,则基于图像数量从历史关键帧集合中删除至少一帧历史关键帧图像,得到更新后的历史关键帧集合;
[0009] 将更新后的图像数据库中,时间戳位于当前关键帧图像和回环帧图像之间的图像确定为参考图像;
[0010] 基于相对位姿以及采集设备对应各参考图像的位姿信息,对采集设备对应当前关键帧图像的位姿信息进行校正,得到采集设备对应当前关键帧图像的校正位姿信息;校正位姿信息用于在当前关键帧图像中进行虚拟物体放置。
[0011] 在一些可能的实施方式中,基于图像数量从历史关键帧集合中删除至少一帧历史关键帧图像,得到更新后的历史关键帧集合,包括:
[0012] 基于各历史关键帧图像的三维坐标信息,确定各历史关键帧图像所属的空间范围;空间范围覆盖各历史关键帧图像;
[0013] 将空间范围划分为多个子区域,从多个子区域中确定出包含历史关键帧图像的数量最多的目标子区域;
[0014] 从目标子区域中确定待删除的第一关键帧图像,并删除第一关键帧图像,得到更新后的历史关键帧集合。
[0015] 在一些可能的实施方式中,从目标子区域中确定待删除的第一关键帧图像,包括:
[0016] 基于各历史关键帧图像的三维坐标信息对目标子区域中各个历史关键帧图像进行聚类,得到聚类中心;
[0017] 基于目标子区域中各个历史关键帧图像的三维坐标信息,从目标子区域中各个历史关键帧图像中确定出与聚类中心最近的历史关键帧图像,将所确定的历史关键帧图像作为第一关键帧图像。
[0018] 在一些可能的实施方式中,描述信息包括当前关键帧图像的至少一个第一描述词;
[0019] 获取当前关键帧图像的描述信息,基于描述信息从历史关键帧集合的多个历史关键帧图像中确定出与当前关键帧图像相匹配的回环帧图像,包括:
[0020] 获取当前关键帧图像中多个特征点的特征描述符;
[0021] 通过训练后的识别模型基于特征描述符,确定当前关键帧图像的至少一个第一描述词,并确定多个历史关键帧图像分别对应的第二描述词;
[0022] 通过将至少一个描述词与多个历史关键帧图像分别对应的第二描述词进行匹配,从多个历史关键帧图像中确定与当前关键帧图像相匹配的回环帧图像。
[0023] 在一些可能的实施方式中,通过将至少一个描述词与多个历史关键帧图像分别对应的第二描述词进行匹配,从多个历史关键帧图像中确定与当前关键帧图像相匹配的回环帧图像,包括:
[0024] 将至少一个描述词与多个历史关键帧图像分别对应的第二描述词进行匹配,从多个历史关键帧图像中确定与当前关键帧图像相匹配的多个第二关键帧图像;
[0025] 基于采集设备分别对应各第二关键帧图像的位姿信息,对各第二关键帧图像进行聚类,得到多个类别分别对应的第二关键帧图像;
[0026] 将第二关键帧图像的数量最多的类别中,时间戳最早的第二关键帧图像作为回环帧图像。
[0027] 在一些可能的实施方式中,获取当前关键帧图像中多个特征点的特征描述符,包括:
[0028] 获取当前关键帧图像中第一特征点的三维坐标信息;三维坐标信息包括第一特征点的世界坐标位置和第一特征点在当前关键帧图像中的二维特征位置;
[0029] 对第一特征点在当前关键帧图像中的二维特征位置计算描述子,得到特征描述子;
[0030] 将特征描述子添加至坐标位置信息中,得到针对第一特征点的三维描述符;
[0031] 对当前关键帧图像进行特征点提取,得到当前关键帧图像中第二特征点的二维描述符;
[0032] 基于第一特征点的三维描述符和第二特征点的二维描述符生成特征描述符。
[0033] 在一些可能的实施方式中,基于描述信息从历史关键帧集合的多个历史关键帧图像中确定出与当前关键帧图像相匹配的回环帧图像,包括:
[0034] 从历史关键帧集合的多个历史关键帧图像中确定出距离当前关键帧图像的时间戳最近的第一预设数量的第三关键帧图像;
[0035] 将多个历史关键帧图像中除第三关键帧图像以外的多个图像作为第四关键帧图像;
[0036] 基于描述信息从多个第四关键帧图像中确定出与当前关键帧图像相匹配的回环帧图像。
[0037] 在一些可能的实施方式中,获取当前关键帧图像中第一特征点的三维坐标信息,包括:
[0038] 获取当前关键帧图像的多个第一初始特征点的二维坐标信息和多个第二初始特征点的三维坐标信息;第一初始特征点包括第二初始特征点;
[0039] 将当前关键帧图像的多个第一初始特征点的二维坐标信息分别与第一预设数量的第三关键帧图像中的第一特征点的三维坐标信息进行匹配,得到与第一初始特征点相匹配的第二预设数量的第三特征点;
[0040] 基于当前关键帧图像的多个第二初始特征点的三维坐标信息,以及每一第三特征点的三维坐标信息,确定当前关键帧图像中第一特征点的三维坐标信息。
[0041] 在一些可能的实施方式中,将当前关键帧图像的多个第一初始特征点的二维坐标信息分别与第一预设数量的第三关键帧图像中的第一特征点的三维坐标信息进行匹配,得到与第一初始特征点相匹配的第二预设数量的第三特征点,包括:
[0042] 基于采集设备对应当前关键帧图像的位姿信息,以及采集设备分别对应各第三关键帧图像的位姿信息,从多个第三关键帧图像中确定出与当前关键帧图像之间的间隔距离小于或等于预设阈值的多个候选帧图像;
[0043] 将当前关键帧图像的多个第一初始特征点的二维坐标信息分别与多个候选帧图像中的第一特征点的三维坐标信息进行匹配,得到与第一初始特征点相匹配的第二预设数量的第三特征点。
[0044] 在一些可能的实施方式中,将当前关键帧图像的多个第一初始特征点的二维坐标信息分别与多个候选帧图像中的第一特征点的三维坐标信息进行匹配,得到与第一初始特征点相匹配的第二预设数量的第三特征点,包括:
[0045] 针对每一候选帧图像,基于采集设备对应当前关键帧图像的位姿信息,将候选帧图像中的各第一特征点投影到当前关键帧图像中,得到各候选帧图像的第一特征点在当前关键帧图像中的二维预测像素坐标;
[0046] 针对每一第一初始特征点,基于第一初始特征点的二维坐标信息与各个候选帧图像的第一特征点的二维预测像素坐标,从多个第一特征点中筛选出坐标距离小于或等于预设距离的多个第四特征点;
[0047] 确定各个候选特征点与第一初始特征点之间的描述子距离,基于所确定的描述子距离从多个候选特征点中确定与第一初始特征点相匹配的至少一个第五特征点;
[0048] 基于每一第五特征点与对应的第一初始特征点之间的描述子距离,从各个第一初始特征点分别相匹配的至少一个第五特征点中,筛选出第二预设数量的第三特征点。
[0049] 另一方面,本申请实施例提供了一种位姿处理装置,包括:
[0050] 第一获取模块,用于获取当前关键帧图像的描述信息,基于描述信息从历史关键帧集合的多个历史关键帧图像中确定出与当前关键帧图像相匹配的回环帧图像;
[0051] 第一确定模块,用于确定采集设备对应的当前关键帧图像与回环帧图像之间的相对位姿;
[0052] 删除模块,用于将当前关键帧图像作为新的历史关键帧图像添加至历史关键帧集合中,若历史关键帧集合中的图像数量超过预设阈值,则基于图像数量从历史关键帧集合中删除至少一帧历史关键帧图像,得到更新后的历史关键帧集合;
[0053] 第二确定模块,用于将更新后的图像数据库中,时间戳位于当前关键帧图像和回环帧图像之间的图像确定为参考图像;
[0054] 校正模块,用于基于相对位姿以及采集设备对应各参考图像的位姿信息,对采集设备对应当前关键帧图像的位姿信息进行校正,得到采集设备对应当前关键帧图像的校正位姿信息;校正位姿信息用于在当前关键帧图像中进行虚拟物体放置。
[0055] 在一些可能的实施方式中,删除模块在基于图像数量从历史关键帧集合中删除至少一帧历史关键帧图像,得到更新后的历史关键帧集合时,具体用于:
[0056] 基于各历史关键帧图像的三维坐标信息,确定各历史关键帧图像所属的空间范围;空间范围覆盖各历史关键帧图像;
[0057] 将空间范围划分为多个子区域,从多个子区域中确定出包含历史关键帧图像的数量最多的目标子区域;
[0058] 从目标子区域中确定待删除的第一关键帧图像,并删除第一关键帧图像,得到更新后的历史关键帧集合。
[0059] 在一些可能的实施方式中,删除模块在从目标子区域中确定待删除的第一关键帧图像时,具体用于:
[0060] 基于各历史关键帧图像的三维坐标信息对目标子区域中各个历史关键帧图像进行聚类,得到聚类中心;
[0061] 基于目标子区域中各个历史关键帧图像的三维坐标信息,从目标子区域中各个历史关键帧图像中确定出与聚类中心最近的历史关键帧图像,将所确定的历史关键帧图像作为第一关键帧图像。
[0062] 在一些可能的实施方式中,描述信息包括当前关键帧图像的至少一个第一描述词;
[0063] 第一获取模块在获取当前关键帧图像的描述信息,基于描述信息从历史关键帧集合的多个历史关键帧图像中确定出与当前关键帧图像相匹配的回环帧图像时,具体用于:
[0064] 获取当前关键帧图像中多个特征点的特征描述符;
[0065] 通过训练后的识别模型基于特征描述符,确定当前关键帧图像的至少一个第一描述词,并确定多个历史关键帧图像分别对应的第二描述词;
[0066] 通过将至少一个描述词与多个历史关键帧图像分别对应的第二描述词进行匹配,从多个历史关键帧图像中确定与当前关键帧图像相匹配的回环帧图像。
[0067] 在一些可能的实施方式中,第一获取模块在通过将至少一个描述词与多个历史关键帧图像分别对应的第二描述词进行匹配,从多个历史关键帧图像中确定与当前关键帧图像相匹配的回环帧图像时,具体用于:
[0068] 将至少一个描述词与多个历史关键帧图像分别对应的第二描述词进行匹配,从多个历史关键帧图像中确定与当前关键帧图像相匹配的多个第二关键帧图像;
[0069] 基于采集设备分别对应各第二关键帧图像的位姿信息,对各第二关键帧图像进行聚类,得到多个类别分别对应的第二关键帧图像;
[0070] 将第二关键帧图像的数量最多的类别中,时间戳最早的第二关键帧图像作为回环帧图像。
[0071] 在一些可能的实施方式中,第一获取模块在获取当前关键帧图像中多个特征点的特征描述符时,具体用于:
[0072] 获取当前关键帧图像中第一特征点的三维坐标信息;三维坐标信息包括第一特征点的世界坐标位置和第一特征点在当前关键帧图像中的二维特征位置;
[0073] 对第一特征点在当前关键帧图像中的二维特征位置计算描述子,得到特征描述子;
[0074] 将特征描述子添加至坐标位置信息中,得到针对第一特征点的三维描述符;
[0075] 对当前关键帧图像进行特征点提取,得到当前关键帧图像中第二特征点的二维描述符;
[0076] 基于第一特征点的三维描述符和第二特征点的二维描述符生成特征描述符。
[0077] 在一些可能的实施方式中,第一获取模块在基于描述信息从历史关键帧集合的多个历史关键帧图像中确定出与当前关键帧图像相匹配的回环帧图像时,具体用于:
[0078] 从历史关键帧集合的多个历史关键帧图像中确定出距离当前关键帧图像的时间戳最近的第一预设数量的第三关键帧图像;
[0079] 将多个历史关键帧图像中除第三关键帧图像以外的多个图像作为第四关键帧图像;
[0080] 基于描述信息从多个第四关键帧图像中确定出与当前关键帧图像相匹配的回环帧图像。
[0081] 在一些可能的实施方式中,第一获取模块在获取当前关键帧图像中第一特征点的三维坐标信息时,具体用于:
[0082] 获取当前关键帧图像的多个第一初始特征点的二维坐标信息和多个第二初始特征点的三维坐标信息;第一初始特征点包括第二初始特征点;
[0083] 将当前关键帧图像的多个第一初始特征点的二维坐标信息分别与第一预设数量的第三关键帧图像中的第一特征点的三维坐标信息进行匹配,得到与第一初始特征点相匹配的第二预设数量的第三特征点;
[0084] 基于当前关键帧图像的多个第二初始特征点的三维坐标信息,以及每一第三特征点的三维坐标信息,确定当前关键帧图像中第一特征点的三维坐标信息。
[0085] 在一些可能的实施方式中,第一获取模块在将当前关键帧图像的多个第一初始特征点的二维坐标信息分别与第一预设数量的第三关键帧图像中的第一特征点的三维坐标信息进行匹配,得到与第一初始特征点相匹配的第二预设数量的第三特征点时,具体用于:
[0086] 基于采集设备对应当前关键帧图像的位姿信息,以及采集设备分别对应各第三关键帧图像的位姿信息,从多个第三关键帧图像中确定出与当前关键帧图像之间的间隔距离小于或等于预设阈值的多个候选帧图像;
[0087] 将当前关键帧图像的多个第一初始特征点的二维坐标信息分别与多个候选帧图像中的第一特征点的三维坐标信息进行匹配,得到与第一初始特征点相匹配的第二预设数量的第三特征点。
[0088] 在一些可能的实施方式中,第一获取模块在将当前关键帧图像的多个第一初始特征点的二维坐标信息分别与多个候选帧图像中的第一特征点的三维坐标信息进行匹配,得到与第一初始特征点相匹配的第二预设数量的第三特征点时,具体用于:
[0089] 针对每一候选帧图像,基于采集设备对应当前关键帧图像的位姿信息,将候选帧图像中的各第一特征点投影到当前关键帧图像中,得到各候选帧图像的第一特征点在当前关键帧图像中的二维预测像素坐标;
[0090] 针对每一第一初始特征点,基于第一初始特征点的二维坐标信息与各个候选帧图像的第一特征点的二维预测像素坐标,从多个第一特征点中筛选出坐标距离小于或等于预设距离的多个第四特征点;
[0091] 确定各个候选特征点与第一初始特征点之间的描述子距离,基于所确定的描述子距离从多个候选特征点中确定与第一初始特征点相匹配的至少一个第五特征点;
[0092] 基于每一第五特征点与对应的第一初始特征点之间的描述子距离,从各个第一初始特征点分别相匹配的至少一个第五特征点中,筛选出第二预设数量的第三特征点。
[0093] 另一方面,本申请实施例还提供了一种电子设备,该电子设备包括存储器和处理器,存储器中存储有计算机程序,处理器执行该计算机程序以实现本申请任一可选实施例中提供的方法。
[0094] 另一方面,本申请实施例还提供了一种计算机可读存储介质,该存储介质中存储有计算机程序,该计算机程序被处理器执行时实现本申请任一可选实施例中提供的方法。
[0095] 另一方面,本申请实施例还提供了一种计算机程序产品,该计算机产品包括计算机程序,该计算机程序被处理器执行时实现本申请任一可选实施例中提供的方法。
[0096] 本申请实施例提供的技术方案带来的有益效果如下:
[0097] 通过从历史关键帧集合中确定出与当前关键帧图像相匹配的回环帧图像,并确定采集设备对应的当前关键帧图像与回环帧图像之间的相对位姿,将当前关键帧图像作为新的历史关键帧图像添加至历史关键帧集合中,若历史关键帧集合中的图像数量超过预设阈值,则基于图像数量从历史关键帧集合中删除至少一帧历史关键帧图像,得到更新后的历史关键帧集合,再结合更新后的历史关键帧集合中的参考帧图像对当前关键帧图像的位姿信息进行校正,能够保持历史关键帧集合中的历史关键帧图像的数量小于或等于预设阈值,可以避免地图规模无限增大导致资源消耗更大,有效减少确定采集设备的校正位姿信息的耗时,提高确定采集设备的校正位姿信息的效率,从而更高效的在当前关键帧图像中进行虚拟物体放置。

附图说明

[0098] 为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
[0099] 图1为一个示例中提供的位姿处理方法的应用环境示意图;
[0100] 图2为本申请实施例提供的一种位姿处理方法的流程示意图;
[0101] 图3为本申请一个示例提供的位姿处理的方案的示意图;
[0102] 图4为本申请一个示例提供的确定回环帧图像的方案的示意图;
[0103] 图5为本申请一个示例提供的短时匹配的方案的示意图;
[0104] 图6为本申请一个示例提供的基于历史关键帧图像进行长时匹配和短时匹配的方案的示意图;
[0105] 图7为本申请一个示例提供的针对空间范围进行划分的示意图;
[0106] 图8为本申请一个示例提供的位姿处理的方案的示意图;
[0107] 图9为本申请实施例提供的一种位姿处理装置的结构示意图;
[0108] 图10为本申请实施例所适用的一种电子设备的结构示意图。

具体实施方式

[0109] 下面结合本申请中的附图描述本申请的实施例。应理解,下面结合附图所阐述的实施方式,是用于解释本申请实施例的技术方案的示例性描述,对本申请实施例的技术方案不构成限制。
[0110] 本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请实施例所使用的术语“包括”以及“包含”是指相应特征可以实现为所呈现的特征、信息、数据、步骤、操作、元件和/或组件,但不排除实现为本技术领域所支持其他特征、信息、数据、步骤、操作、元件、组件和/或它们的组合等。应该理解,当我们称一个元件被“连接”或“耦接”到另一元件时,该一个元件可以直接连接或耦接到另一元件,也可以指该一个元件和另一元件通过中间元件建立连接关系。此外,这里使用的“连接”或 “耦接”可以包括无线连接或无线耦接。这里使用的术语“和/或”指示该术语所限定的项目中的至少一个,例如“A和/或B”可以实现为“A”,或者实现为“B”,或者实现为“A和B”。在描述多个(两个或两个以上)项目时,如果没有明确限定多个项目之间的关系,这多个项目之间可以是指多个项目中的一个、多个或者全部,例如,对于“参数A包括A1、A2、A3”的描述,可以实现为参数A包括A1或A2或A3,还可以实现为参数A包括参数A1、A2、A3这三项中的至少两项。
[0111] 为了更好的说明和理解本申请实施例提供的方案,首先对本申请实施例中所涉及的一些相关的技术用语进行介绍:
[0112] 位姿:包括图像采集设备,如相机相对于世界坐标系的旋转R及位移t,6个自由度(6‑Dof),旋转3个,位移3个;
[0113] 重定位:利用地图历史信息,计算出当前相机在历史地图的位置;
[0114] 回环检测:当前帧和历史位姿相近帧的匹配,理解为检测当前图像(相机)运行到了历史来过的邻近位置。
[0115] 视频AR功能在各个短视频、游戏、UI交互等领域广泛应用,AR虚拟物体放置作为新的交互方式被多个应用采用。其中,AR能力实现的核心是进行相机实时定位,其核心算法是VIO系统利用原始的相机及传感器输入,VIO系统实时计算相机的位姿和相关点云,以满足定位需求。
[0116] 由于VIO系统的算法定位精度和算力与设备运动快慢相关,在有限算力条件下(移动端及嵌入式设备,例如手机端,AR眼镜端),为了消除VIO系统在运动过程中的累计误差,通常需要一个全局的后端增量地图记录历史轨迹,然后利用重定位能力,计算当前相机在历史地图的位姿,从而修正当前位姿,达到消除算法定位过程中的累计误差。
[0117] 目前VIO后端定位的开源方案中,按数据结构及交互模式可大致分为松耦合和紧耦合两种类型,紧耦合方案和自身框架耦合严重,数据结构共享,优化结果和其他模块相互影响,不利于迁移,同时对移动端不友好,耗时较高。对于松耦合方案,即将后端模块较为独立的加入VIO系统,利用VIO系统的关键帧及地图点信息输出,独立维护后端地图,同时和VIO系统进行一定的数据交互。
[0118] 对比这些开源方案,其后端地图不支持关键帧删除,地图会无限增长,不利于移动端运行,同时匹配精度和耗时性能均不理想,本专利较好的解决了匹配精度和耗时的平衡,在移动端取得了较好的效果。
[0119] 本申请的位姿处理方法,如通过训练后的识别模型基于所述特征描述符,确定所述当前关键帧图像的至少一个第一描述词的过程,可以基于人工智能(Artificial Intelligence,AI)中的机器学习(Machine Learning,ML)来实现。
[0120] 人工智能是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
[0121] 人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大位姿处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、位姿处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
[0122] 机器学习(Machine Learning,ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、式教学习等技术。预训练模型是深度学习的最新发展成果,融合了以上技术。
[0123] 随着人工智能技术研究和进步,人工智能技术在多个领域展开研究和应用,例如常见的智能家居、智能穿戴设备、虚拟助理、智能音箱、智能营销、无人驾驶、自动驾驶、无人机、数字孪生、虚拟人、机器人、人工智能生成内容(AIGC)、对话式交互、智能医疗、智能客服、游戏AI等,相信随着技术的发展,人工智能技术将在更多的领域得到应用,并发挥越来越重要的价值。
[0124] 本申请实施例提供的方案涉及人工智能的位姿处理等技术,具体通过如下实施例进行说明。
[0125] 下面通过对几个可选的实施例的描述,对本申请提供的技术方案以及本申请的技术方案产生的技术效果进行说明。需要指出的是,下述实施方式之间可以相互参考、借鉴或结合,对于不同实施方式中相同的术语、相似的特征以及相似的实施步骤等,不再重复描述。
[0126] 本申请实施例提供的位姿处理方法,可以由任意的计算机设备执行,可选的,可以由服务器执行,其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器。
[0127] 图1为本申请实施例提供的位姿处理方法的应用环境示意图。其中,应用环境可以包括服务器101和终端102,其中,服务器101中包括VIO系统。具体的,VIO系统获取当前关键帧图像的描述信息,基于所述描述信息从历史关键帧集合的多个历史关键帧图像中确定出与所述当前关键帧图像相匹配的回环帧图像;确定采集设备对应的所述当前关键帧图像与所述回环帧图像之间的相对位姿;将当前关键帧图像作为新的历史关键帧图像添加至所述历史关键帧集合中,若历史关键帧集合中的图像数量超过预设阈值,则基于所述图像数量从所述历史关键帧集合中删除至少一帧历史关键帧图像,得到更新后的历史关键帧集合;将更新后的图像数据库中,时间戳位于所述当前关键帧图像和所述回环帧图像之间的图像确定为参考图像;基于所述相对位姿以及所述采集设备对应各所述参考图像的位姿信息,对所述采集设备对应当前所述关键帧图像的位姿信息进行校正,得到所述采集设备对应所述当前关键帧图像的校正位姿信息;获取终端102发送的点击位置信息,基于所述点击位置信息以及所述校正位姿信息,在所述当前关键帧图像中进行虚拟物体放置。
[0128] 上述应用场景中,是服务器中包括VIO系统,在其他应用场景中,也可以是终端中包括VIO系统。
[0129] 本技术领域技术人员可以理解,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器或服务器集群。终端可以是智能手机(如Android手机、iOS手机等)、平板电脑、笔记本电脑、数字广播接收器、MID(Mobile Internet Devices,移动互联网设备)、PDA(个人数字助理)、台式计算机、智能家电、车载终端(例如车载导航终端、车载电脑等)、智能音箱、智能手表等,终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,但并不局限于此。本发明实施例可应用于各种场景,包括但不限于云技术、人工智能、智慧交通、辅助驾驶等。具体也可基于实际应用场景需求确定,在此不作限定。
[0130] 终端(也可以称为用户终端或用户设备)可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能语音交互设备(例如智能音箱)、可穿戴电子设备(例如智能手表)、车载终端、智能家电(例如智能电视)、AR/VR设备、飞行器等,但并不局限于此。本发明实施例可应用于各种场景,包括但不限于云技术、人工智能、智慧交通、辅助驾驶等。
[0131] 在一些可能的实施方式中,提供了一种位姿处理方法,可以由服务器执行。
[0132] 图2示出了本申请实施例提供的一种位姿处理方法的流程示意图,以执行主体为VIO系统为例,本申请提供的位姿处理方法,可以包括如下步骤:
[0133] 步骤S201,获取当前关键帧图像的描述信息,基于描述信息从历史关键帧集合的多个历史关键帧图像中确定出与当前关键帧图像相匹配的回环帧图像。
[0134] 具体的,VIO系统获取终端发送的当前帧图像,先判断当前帧图像是否为关键帧图像,若是,则当前帧图像即为当前关键帧图像;若当前帧图像不是关键帧图像,则不需要进行后续的位姿校正处理。
[0135] 在具体实施过程中,若当前帧图像所观测的三维(3D)特征点的数量大于第一阈值,且距离上一关键帧图像的时间戳、距离、角度其中至少一种大于对应的第二阈值,则判定当前帧图像为关键帧图像,即获取到当前关键帧图像。
[0136] 其中,描述信息可以是通过当前关键帧图像中的二维特征点和三维特征点的描述符所确定的描述文本信息,描述文本信息可以包括至少一个描述词,具体确定描述信息的过程将在下文进行进一步阐述。
[0137] 其中,采集设备对应回环帧图像的位置与采集设备对应的当前关键帧图像的位置邻近。
[0138] 具体的,可以通过将当前关键帧图像的描述信息和多个历史关键帧图像的描述信息进行匹配,从而确定出回环帧图像,具体确定回环帧图像的过程将在下文进行进一步详细阐述。
[0139] 步骤S202,确定采集设备对应的当前关键帧图像与回环帧图像之间的相对位姿。
[0140] 具体的,通过将当前关键帧图像中的三维特征点与回环帧图像中的二维特征点进行匹配,得到当前帧图像中的三维特征点与回环帧图像中的二维特征点之间的匹配对,基于得到的匹配对确定当前关键帧图像与回环帧图像之间的相对位移,再基于相对位移确定出当前关键帧图像与回环帧图像之间的相对位姿。
[0141] 具体的针对相对位姿的确定过程,将在下文进行进一步详细阐述。
[0142] 步骤S203,将当前关键帧图像作为新的历史关键帧图像添加至历史关键帧集合中,若历史关键帧集合中的图像数量超过预设阈值,则基于图像数量从历史关键帧集合中删除至少一帧历史关键帧图像,得到更新后的历史关键帧集合。
[0143] 在具体实施过程中,将当前关键帧图像插入历史关键帧集合中,即需要从历史关键帧集合中删除一帧历史关键帧图像。
[0144] 在一些实施方式中,可以选取时间戳最早的历史关键帧图像删除。
[0145] 在另一些实施方式中,可以根据各个历史关键帧图像的三维坐标信息,统计各个历史关键帧图像的空间分布信息,即哪些位置分布的历史关键帧图像比较密集,从密集的区域中的多个历史关键帧图像中选取一帧历史关键帧图像进行删除。
[0146] 具体的,对历史关键帧集合进行清理,保持历史关键帧集合中的历史关键帧图像的数量小于或等于预设阈值,可以避免地图规模无限增大导致资源消耗更大,定位耗时长,效率低的问题。
[0147] 步骤S204,将更新后的图像数据库中,时间戳位于当前关键帧图像和回环帧图像之间的图像确定为参考图像;基于相对位姿以及采集设备对应各参考图像的位姿信息,对采集设备对应当前关键帧图像的位姿信息进行校正,得到采集设备对应当前关键帧图像的校正位姿信息。
[0148] 其中,校正位姿信息用于修正当前关键帧图像的位姿,提供更准确的位姿信息,从而实现AR相关能力,例如虚拟放置。
[0149] 具体的,可以将参考图像以及当前关键帧图像作为待优化图像,针对每一帧待优化图像,以该待优化图像的相邻预设帧数的图像的位姿信息作为约束,限制相邻帧之间的相对位置,并结合采集设备对应的当前关键帧图像与回环帧图像之间的相对位姿,对各个参考图像和当前关键帧图像进行至少一次全局位姿图优化,得到每一参考图像和当前关键帧图像的优化后的位姿。
[0150] 在具体实施过程中,理论上来说,如果VIO系统定位精度完全准确,那么回环帧图像的位姿信息加上相对位姿,得到的修正后的当前帧位姿 ,则应完全等于当前帧VIO位姿 ,然后实际由于算法精度以及快速运动,传感器误差等影响,两者往往有差距,本步骤目的即修正回环帧图像到当前关键帧图像的VIO这段位移中带来的累计误差。
[0151] 具体的,将回环帧图像与当前关键帧图像之间的所有历史关键帧图像作为参考图像,相邻的 帧的VIO原始的相对位姿作为约束,限制相邻帧之间的相对位置,同时加入回环检测中的相对位姿 约束,进行一次全局位姿图优化,得到每个关键帧修正后的后端位姿,同时为了保证每次优化结果的稳定,会将后端位姿作为优化初始值,加快优化的同时,也防止每次优化后位姿变化过大,导致定位效果抖动。
[0152] 在具体实施过程中,优化过程可采用任意开源优化库。优化完成后,得到当前帧的后端位姿,即校正位姿信息,与VIO位姿比较得到差值,该差值用于补偿后续帧的VIO位姿,从而提供消除累计误差后的位姿,直到下一次位姿图优化得到新的差值。
[0153] 如图3所示,在一个示例中,位姿处理方法可以包括:
[0154] 获取当前关键帧图像的描述信息;
[0155] 从历史关键帧集合中确定出回环帧图像,即图中的进行回环检测;
[0156] 确定采集设备对应的当前关键帧图像与回环帧图像之间的相对位姿;即图中所示的进行特征点匹配和位姿恢复;
[0157] 将当前关键帧图像作为新的历史关键帧图像添加至历史关键帧集合中,若历史关键帧集合中的图像数量超过预设阈值,则基于图像数量从历史关键帧集合中删除至少一帧历史关键帧图像,得到更新后的历史关键帧集合;即图中所示的插入关键帧,并进行地图规模优化;
[0158] 基于更新后的历史关键帧集合和所确定的相对位姿信息,对当前关键帧进行的位姿信息进行校正。
[0159] 上述实施例中,通过从历史关键帧集合中确定出与当前关键帧图像相匹配的回环帧图像,并确定采集设备对应的当前关键帧图像与回环帧图像之间的相对位姿,将当前关键帧图像作为新的历史关键帧图像添加至历史关键帧集合中,若历史关键帧集合中的图像数量超过预设阈值,则基于图像数量从历史关键帧集合中删除至少一帧历史关键帧图像,得到更新后的历史关键帧集合,再结合更新后的历史关键帧集合中的参考帧图像对当前关键帧图像的位姿信息进行校正,能够保持历史关键帧集合中的历史关键帧图像的数量小于或等于预设阈值,可以避免地图规模无限增大导致资源消耗更大,有效减少确定采集设备的校正位姿信息的耗时,提高确定采集设备的校正位姿信息的效率,从而更高效的在当前关键帧图像中进行虚拟物体放置。
[0160] 以下将结合实施例进一步阐述获取当前关键帧图像的描述信息并确定回环帧的具体过程。
[0161] 在一些可能的实施方式中,确定回环帧图像之前,可以先确定最近的指定时间段内是否进行过位姿图优化,若已经进行过位姿图优化,则不需要再确定回环帧图像,也不需要进行位姿校正;若最近的指定时间段内没有进行过位姿图优化,则确定回环帧图像,可以有效避免高计算量和重复计算。
[0162] 在一些可能的实施方式中,描述信息包括当前关键帧图像的至少一个第一描述词;
[0163] 步骤S201获取当前关键帧图像的描述信息,基于描述信息从历史关键帧集合的多个历史关键帧图像中确定出与当前关键帧图像相匹配的回环帧图像,可以包括:
[0164] (1)获取当前关键帧图像中多个特征点的特征描述符。
[0165] 其中,特征描述符可以包括二维特征描述符和三维特征描述符。
[0166] 具体的,获取当前关键帧图像中多个特征点的特征描述符,可以包括:
[0167] ①获取当前关键帧图像中第一特征点的三维坐标信息;
[0168] ②对第一特征点在当前关键帧图像中的二维特征位置计算描述子,得到特征描述子;
[0169] ③将特征描述子添加至坐标位置信息中,得到针对第一特征点的三维描述符;
[0170] ④对当前关键帧图像进行特征点提取,得到当前关键帧图像中第二特征点的二维描述符;
[0171] ⑤基于第一特征点的三维描述符和第二特征点的二维描述符生成特征描述符。
[0172] 其中,三维坐标信息包括第一特征点的世界坐标位置和第一特征点在当前关键帧图像中的二维特征位置。
[0173] 具体的,第一特征点的三维坐标信息可以是当前关键帧图像中观测到得到的,也可以是结合直接观测得到的以及短时匹配确定的三维坐标信息得到的,具体确定第一特征点的三维坐标信息的过程将在下文进行进一步详细阐述。
[0174] 在本申请实施例中,第一特征点也可以称为3D特征点,第二特征点可以称为2D(二维)特征点。
[0175] 在具体实施过程中,获取当前关键帧图像中观测到的第一特征点,本申请中也可称为地图点 n个,n为正整数,地图点信息包括世界坐标点位置以及在当前关键帧图像中的2D特征位置,关键帧信息包括当前图像数据、时间戳以及采集设备对应当前关键帧图像的位姿信息,即VIO位姿。
[0176] 具体的,对所有 在当前关键帧图像的2D位置计算描述子,加入到 信息中,作为3D特征点存储,即三维描述符。同时对关键帧图像全图进行特征点提取,提取结果记录为 ,即二维描述符。
[0177] 具体的,可以采用指令集加速的fast(快速)特征点网格提取,具体是加入网格参数,限制同一图像区域提点数量,一方面能够快速提取特征点,一方面网格提取方法能够放置2d特征点过于密集,影响后续匹配效果。
[0178] 对于弱纹理情况,即根据所提取的特征点数量判断纹理不够丰富的情况下,需要降低特征点筛选阈值,进行二次提取,尽量提取足够特征点。通常来来说,第二特征点的数量远大于第一特征点的数量,即2d特征点数量远大于3D特征点,由于3D特征点数量由VIO系统决定,维护生成过多的3D点会增加耗时。此时,当前帧的3D点和2D点特征均有了描述符,可用于后续特征点匹配。
[0179] 在具体实施过程中,本申请采用的是二进制描述子,也可以采用其他描述子,对此本申请不进行限制,但是速度和效果需要不差于ORB(Oriented FAST and Rotated BRIEF,方向性FAST特征点检测和旋转BRIEF描述子)描述符的效果。
[0180] (2)通过训练后的识别模型基于特征描述符,确定当前关键帧图像的至少一个第一描述词,并确定多个历史关键帧图像分别对应的第二描述词。
[0181] 其中,识别模型可以为训练好的词袋模型。
[0182] 具体的,词袋模型通过对大量样本特征点描述符进行多层级聚类,得到多叉树结构,每个树节点即特征聚类中心,即描述符单词,也可称为描述词,使用时直接与各个树节点深度搜索遍历得到描述符对应的描述词。
[0183] (3)通过将至少一个描述词与多个历史关键帧图像分别对应的第二描述词进行匹配,从多个历史关键帧图像中确定与当前关键帧图像相匹配的回环帧图像。
[0184] 具体的,通过将至少一个描述词与多个历史关键帧图像分别对应的第二描述词进行匹配,从多个历史关键帧图像中确定与当前关键帧图像相匹配的回环帧图像,包括:
[0185] ①将至少一个描述词与多个历史关键帧图像分别对应的第二描述词进行匹配,从多个历史关键帧图像中确定与当前关键帧图像相匹配的多个第二关键帧图像;
[0186] ②基于采集设备分别对应各第二关键帧图像的位姿信息,对各第二关键帧图像进行聚类,得到多个类别分别对应的第二关键帧图像;
[0187] ③将第二关键帧图像的数量最多的类别中,时间戳最早的第二关键帧图像作为回环帧图像。
[0188] 具体的,通过将至少一个描述词与多个历史关键帧图像分别对应的第二描述词进行匹配,筛选出与当关键帧图像距离最近的多个历史关键帧图像,然后基于所筛选出的多个历史关键帧图像的位姿信息,对所筛选出的多个历史关键帧图像进行聚类,在位姿距离和角度分别在距离阈值 和角度阈值 内的历史关键帧图像归为一类,可以设置多个不同的距离阈值和角度阈值,得到多个不同的类别分别对应的多个历史关键帧图像,然后从数量最多的类别中选取时间戳最早的历史关键帧图像作为回环帧图像。
[0189] 上述实施例中,通过获取当前关键帧图像的二维描述符和三维描述符,通过训练后的识别模型基于二维描述符和三维描述符,确定当前关键帧图像的至少一个第一描述词,并确定多个历史关键帧图像分别对应的第二描述词,再基于第一描述词和第二描述词确定出回环帧图像,可以提高回环帧图像的准确性,进一步提高校正位姿信息的准确性,从而更准确的在当前关键帧图像中进行虚拟物体放置。
[0190] 在一些实施过程中,步骤S201基于描述信息从历史关键帧集合的多个历史关键帧图像中确定出与当前关键帧图像相匹配的回环帧图像,可以包括:
[0191] (1)从历史关键帧集合的多个历史关键帧图像中确定出距离当前关键帧图像的时间戳最近的第一预设数量的第三关键帧图像;
[0192] (2)将多个历史关键帧图像中除第三关键帧图像以外的多个图像作为第四关键帧图像;
[0193] (3)基于描述信息从多个第四关键帧图像中确定出与当前关键帧图像相匹配的回环帧图像。
[0194] 在具体实施过程中,重定位只用于修正长时的累计误差,所以这里会跳过时间戳最近的第一预设数量的第三关键帧图像,如图4所示,即跳过时间戳邻近的 个历史关键帧图像,只返回较远时间戳的历史关键帧图像,也就是从第三关键帧图像以外的多个第四关键帧图像中确定出回环帧图像。
[0195] 上述实施例中,跳过时间戳邻近的个历史关键帧图像,即跳过第三关键帧图像,只返回较远时间戳的历史关键帧图像,即从多个第四关键帧图像中确定出回环帧图像,可以修正长时的累计误差。
[0196] 上述实施例中,跳过时间戳邻近的个历史关键帧图像,从多个第四关键帧图像中确定出回环帧图像,并基于回环帧图像和当前关键帧图像进行特征点匹配的过程,可以称为长时匹配。
[0197] 在一些实施方式中,还可以结合时间戳邻近的个历史关键帧图像,即第三关键帧图像对当前关键帧图像的位姿信息进行校正。
[0198] 以下将结合实施例阐述结合时间戳邻近的个历史关键帧图像进行短时匹配的具体过程。
[0199] 在一些可能的实施方式中,获取当前关键帧图像中第一特征点的三维坐标信息,可以包括:
[0200] (1)获取当前关键帧图像的多个第一初始特征点的二维坐标信息和多个第二初始特征点的三维坐标信息。
[0201] 其中,第一初始特征点和第二初始特征点为在当前关键帧图像中直接观测到的特征点,第一初始特征点可以是直接观测的2D特征点,第二初始特征点可以是直接观测的3D特征点。
[0202] 其中,第一初始特征点包括第二初始特征点。
[0203] 也就是说,直接观测的第一初始特征点中,部分第一初始特征点即第二初始特征点具有三维坐标信息。
[0204] (2)将当前关键帧图像的多个第一初始特征点的二维坐标信息分别与第一预设数量的第三关键帧图像中的第一特征点的三维坐标信息进行匹配,得到与第一初始特征点相匹配的第二预设数量的第三特征点。
[0205] 具体的,将当前关键帧图像的多个第一初始特征点的二维坐标信息分别与第一预设数量的第三关键帧图像中的第一特征点的三维坐标信息进行匹配,得到与第一初始特征点相匹配的第二预设数量的第三特征点,可以包括:
[0206] ①基于采集设备对应当前关键帧图像的位姿信息,以及采集设备分别对应各第三关键帧图像的位姿信息,从多个第三关键帧图像中确定出与当前关键帧图像之间的间隔距离小于或等于预设阈值的多个候选帧图像。
[0207] 其中,间隔距离可以包括基于位姿信息确定的位置和角度的差异信息。
[0208] 在具体实施过程中,取时间戳最新的 个关键帧,即第一预设数量的第三关键帧图像;在 个关键帧中,分别计算和当前帧的位置差异 和角度差异,设置最大位置间隔阈值 和 ,分别确定阈
值范围内的第三关键帧图像的位置和角度加权和,将位置和加权和最小的多个第三关键帧图像作为多个候选帧图像。
[0209] ②将当前关键帧图像的多个第一初始特征点的二维坐标信息分别与多个候选帧图像中的第一特征点的三维坐标信息进行匹配,得到与第一初始特征点相匹配的第二预设数量的第三特征点。
[0210] 具体的,将当前关键帧图像的多个第一初始特征点的二维坐标信息分别与多个候选帧图像中的第一特征点的三维坐标信息进行匹配,得到与第一初始特征点相匹配的第二预设数量的第三特征点,可以包括:
[0211] A、针对每一候选帧图像,基于采集设备对应当前关键帧图像的位姿信息,将候选帧图像中的各第一特征点投影到当前关键帧图像中,得到各候选帧图像的第一特征点在当前关键帧图像中的二维预测像素坐标。
[0212] 具体的,把多个候选帧图像的各第一特征点投影到当前关键帧图像中,即将候选帧图像中的3D点投影到当前关键帧图像中,得到二维预测像素坐标,即预测的2D点像素坐标( )。
[0213] B、针对每一第一初始特征点,基于第一初始特征点的二维坐标信息与各个候选帧图像的第一特征点的二维预测像素坐标,从多个第一特征点中筛选出坐标距离小于或等于预设距离的多个第四特征点。
[0214] 具体的,将当前关键帧图像的第一初始特征点的二维坐标信息,即当前关键帧图像已有的2D特征点( ),筛选出坐标距离小于或等于预设距离,即选取在邻近范围阈值内的第四特征点。
[0215] C、确定各个候选特征点与第一初始特征点之间的描述子距离,基于所确定的描述子距离从多个候选特征点中确定与第一初始特征点相匹配的至少一个第五特征点。
[0216] 具体的,针对每一个第一初始特征点,确定与第一初始特征点的描述子距离最近的第一候选特征点,并确定除第一候选特征点之外与第一初始特征点的描述子距离最近的第二候选特征点,也就是确定与第一初始特征点的描述子距离第二近的第二候选特征点,若第一候选特征点与第一初始特征点的之间的描述子距离小于或等于第一距离阈值,且第二候选特征点与第一初始特征点的之间的描述子距离大于第二距离阈值,第二距离阈值大于第一距离阈值,则第一候选特征点可以作为与第一初始特征点相匹配的第五特征点。
[0217] D、基于每一第五特征点与对应的第一初始特征点之间的描述子距离,从各个第一初始特征点分别相匹配的至少一个第五特征点中,筛选出第二预设数量的第三特征点。
[0218] 具体的,不同的第一初始特征点可能匹配到同一第五特征点,需要比较每一第一初始特征点与第五特征点之间的描述子距离,确定出一对匹配对,即同一第五特征点对应一个最小描述子距离的第一初始特征点。
[0219] 若得到的第一初始特征点与第五特征点形成的匹配点对的数量较大,可以利用基础矩阵校验的方法,对特征点对进行外点剔除,进一步保证匹配点对的正确性。如果VIO统限制了获取的第三特征点的最大数量,则可以基于匹配点对之间的描述子距离对匹配点对进行排序,返回距离最近的K个匹配点对,从而得到最终的多个第三特征点。
[0220] (3)基于当前关键帧图像的多个第二初始特征点的三维坐标信息,以及每一第三特征点的三维坐标信息,确定当前关键帧图像中第一特征点的三维坐标信息。
[0221] 在具体实施过程中,VIO系统可以直接将当前关键帧图像的多个第二初始特征点的三维坐标信息作为当前关键帧图像中第一特征点的三维坐标信息;也可以利用最终匹配得到的第三特征点进行地图点检测,基于当前关键帧图像的多个第二初始特征点的三维坐标信息,并参考每一第三特征点的三维坐标信息,确定当前关键帧图像中第一特征点的三维坐标信息。
[0222] 上述实施例中将当前关键帧图像的多个第一初始特征点的二维坐标信息分别与第一预设数量的第三关键帧图像中的第一特征点的三维坐标信息进行匹配的过程,可以称为短时匹配。
[0223] 如图5所示,上述的短时匹配过程,可以包括:
[0224] 获取当前关键帧图像的多个第一初始特征点的二维坐标信息和多个第二初始特征点的三维坐标信息;即图中所示的关键帧以及当前帧2D特征点;
[0225] 从多个第三关键帧图像中确定出与当前关键帧图像之间的间隔距离小于或等于预设阈值的多个候选帧图像;即图中所示的当前帧描述子计算;
[0226] 基于每一第五特征点与对应的第一初始特征点之间的描述子距离,从各个第一初始特征点分别相匹配的至少一个第五特征点中,筛选出第二预设数量的第三特征点;即图中所示的邻近帧筛选以及特征点匹配和过滤,并返回匹配的3D地图点。
[0227] 如图6所示,可以理解为将历史关键帧集合中的多个历史关键帧图像分为两部分,时间戳邻近的个历史关键帧图像用于短时匹配过程,另一部分历史关键帧图像用于长时匹配过程。
[0228] 上述实施例中,采用时间戳邻近的个历史关键帧图像用于短时匹配过程,并结合另一部分历史关键帧图像进行长时匹配,可以基于时间戳利用不同的历史关键帧图像,提高最终得到的校正位姿信息的准确性,从而更准确的在当前关键帧图像中进行虚拟物体放置。
[0229] 以下将结合实施例详细阐述确定采集设备对应的当前关键帧图像与回环帧图像之间的相对位姿的具体过程。
[0230] 在一些可能的实施方式中,步骤S202确定采集设备对应的当前关键帧图像与回环帧图像之间的相对位姿,可以包括:
[0231] 获取回环帧图像的后端位姿信息;回环帧图像属于历史关键帧图像中的,因此,回环帧图像与当前关键帧图像一样,均有对应的2D特征点和3D特征点;
[0232] 若当前关键帧图像的位姿信息与回环帧图像的后端位姿信息差距较大,即位移和旋转角都差距大于 和 ,则不进行回环校验,放置后续位姿图优化误差较大,导致优化失败,也就是不再对当前关键帧图像的位姿信息进行校正;
[0233] 若判断需要进行回环校验,则利用当前关键帧图像的(第一特征点)3D特征点与回环帧图像的2D特征点进行匹配,这里首先利用特征点像素位置剔除外点,即假设当前关键帧图像和回环帧图像的同一特征点的像素位置较为接近,直接剔除掉像素位置距离在外的特征点,避免特征点误匹配,同时减少描述子计算的耗时,对于通过了像素距离判定的点,再利用特征点的描述符距离匹配;
[0234] 在本申请实施例中,可以采用二进制距离计算描述符距离;描述符距离在阈值内的判定为内点,并记录匹配关系,可以得到若干当前关键帧图像3D特征点与回环帧图像的2D特征点形成的匹配点对,如果匹配点对数量大于阈值 ,则继续进
行回环校正,否则不再继续对当前关键帧图像进行回环校正;
[0235] 利用匹配点对中当前关键帧图像的3D特征点的2D像素坐标和回环帧图像的2D坐标信息,采用基础矩阵校验的方法,进一步剔除掉异常匹配点,如果匹配对剩余数量小于阈值 ,则匹配失败,不再继续对当前关键帧图像进行回环校正;
[0236] 如果匹配对剩余数量大于或等于阈值 ,则继续对当前关键帧图像进行回环校正,对仍然成立的匹配点对,利用Ransac PNP(Perspective‑n‑Points,一种三维物体位姿估计的方法)算法求得回环帧图像与当前关键帧图像的相对位移 ,这里PNP算法同样也会进行内外点判断,如果内点数量少于 ,则匹配失败,不再继续
对当前关键帧图像进行回环校正;否则继续进行回环校正;
[0237] 对pnp算法计算得到的相对位移 ,计算当前关键帧图像修正后的初始校正位姿信息和当前位姿位置和角度差距,即位移和旋转角都差距小于 和
,则认为回环匹配成功,同时恢复出了当前帧相对回环帧的初始校正位姿;具体
采用如下公式进行计算:
[0238] * (1)
[0239] 式中: 表示当前帧经过回环修正后的初始校正位姿; 表示回环帧图像与当前关键帧图像的相对位移; 表示回环帧图像与当前关键帧图像的相对位移的逆变换; 表示回环帧图像的位姿信息。
[0240] 通过上述公式计算出采集设备对应的当前关键帧图像与回环帧图像之间的相对位姿。
[0241] 以下将结合实施例进一步阐述对历史关键帧集合进行清理的具体过程。
[0242] 在一些可能的实施方式中,步骤S203述图像数量从历史关键帧集合中删除至少一帧历史关键帧图像,得到更新后的历史关键帧集合,可以包括:
[0243] (1)基于各历史关键帧图像的三维坐标信息,确定各历史关键帧图像所属的空间范围。
[0244] 其中,空间范围覆盖各历史关键帧图像,也就是按照各个历史关键帧图像的三维坐标信息,确定每一维度的最大最小距离,得到覆盖各个历史关键帧图像的空间范围。
[0245] (2)将空间范围划分为多个子区域,从多个子区域中确定出包含历史关键帧图像的数量最多的目标子区域。
[0246] 具体的,网格的大小可以为时间戳相邻的两个历史关键帧图像的平均距离的两倍。
[0247] 在具体实施过程中,可以统计每一子区域中包括的历史关键帧图像的数量,从而确定目标子区域。
[0248] (3)从目标子区域中确定待删除的第一关键帧图像,并删除第一关键帧图像,得到更新后的历史关键帧集合。
[0249] 在一些实施方式中,可以从目标子区域中随机选取第一关键帧图像。
[0250] 如图7所示,图中以点的形式代表一个历史关键帧图像,基于各个关键帧图像的三维坐标信息确定图中的空间范围701,再将空间范围701划分为多个子区域702,并删除目标子区域中的任一历史关键帧图像。
[0251] 在另一些实施方式中,从目标子区域中确定待删除的第一关键帧图像,可以包括:
[0252] 基于各历史关键帧图像的三维坐标信息对目标子区域中各个历史关键帧图像进行聚类,得到聚类中心;
[0253] 基于目标子区域中各个历史关键帧图像的三维坐标信息,从目标子区域中各个历史关键帧图像中确定出与聚类中心最近的历史关键帧图像,将所确定的历史关键帧图像作为第一关键帧图像。
[0254] 具体的,可以基于各历史关键帧图像的三维坐标信息,确定出距离聚类中心最近的历史关键帧图像,得到第一关键帧图像进行删除。
[0255] 以下将结合附图进一步阐述本申请的位姿处理方法。
[0256] 如图8所示,在一个示例中,本申请的位姿处理方法,可以包括如下步骤:
[0257] 获取当前关键帧图像的多个第一初始特征点的二维坐标信息和多个第二初始特征点的三维坐标信息;即图中所示的关键帧以及当前帧2D特征点;
[0258] 从多个第三关键帧图像中确定出与当前关键帧图像之间的间隔距离小于或等于预设阈值的多个候选帧图像;即图中所示的当前帧描述子计算;
[0259] 基于每一第五特征点与对应的第一初始特征点之间的描述子距离,从各个第一初始特征点分别相匹配的至少一个第五特征点中,筛选出第二预设数量的第三特征点;即图中所示的邻近帧筛选以及特征点匹配和过滤,并返回匹配的3D地图点;
[0260] 获取当前关键帧图像中第一特征点的三维坐标信息;即图中所示的当前关键帧图像的3D地图点;其中,第一特征点的三维坐标信息可以是当前关键帧图像中观测到得到的,也可以是结合直接观测得到的以及短时匹配确定的三维坐标信息得到的;
[0261] 获取当前关键帧图像的特征描述符,并提取第二特征点;第二特征点包括二维坐标信息;即图中所示的当前帧特征点提取以及描述子计算;
[0262] 若最近时间 内进行过位姿图优化,则不进行回环检测;否则进行回环检测;
[0263] 通过将至少一个描述词与多个历史关键帧图像分别对应的第二描述词进行匹配,从多个历史关键帧图像中确定与当前关键帧图像相匹配的回环帧图像;即图中所示的回环检测即校验;
[0264] 确定采集设备对应的当前关键帧图像与回环帧图像之间的相对位姿;即图中所示的特征点匹配及位姿恢复;
[0265] 将当前关键帧图像作为新的历史关键帧图像添加至历史关键帧集合中;即图中所示的插入关键帧;
[0266] 若历史关键帧集合中的图像数量超过预设阈值,则基于图像数量从历史关键帧集合中删除至少一帧历史关键帧图像,得到更新后的历史关键帧集合;即图中所示的地图规模优化;
[0267] 将更新后的图像数据库中,时间戳位于当前关键帧图像和回环帧图像之间的图像确定为参考图像;基于相对位姿以及采集设备对应各参考图像的位姿信息,对采集设备对应当前关键帧图像的位姿信息进行校正,得到采集设备对应当前关键帧图像的校正位姿信息;即图中所示的位姿图优化以及更新位姿纠偏结果。
[0268] 上述的位姿处理方法,通过从历史关键帧集合中确定出与当前关键帧图像相匹配的回环帧图像,并确定采集设备对应的当前关键帧图像与回环帧图像之间的相对位姿,将当前关键帧图像作为新的历史关键帧图像添加至历史关键帧集合中,若历史关键帧集合中的图像数量超过预设阈值,则基于图像数量从历史关键帧集合中删除至少一帧历史关键帧图像,得到更新后的历史关键帧集合,再结合更新后的历史关键帧集合中的参考帧图像对当前关键帧图像的位姿信息进行校正,能够保持历史关键帧集合中的历史关键帧图像的数量小于或等于预设阈值,可以避免地图规模无限增大导致资源消耗更大,有效减少确定采集设备的校正位姿信息的耗时,提高确定采集设备的校正位姿信息的效率,从而更高效的在当前关键帧图像中进行虚拟物体放置。
[0269] 进一步的,通过获取当前关键帧图像的二维描述符和三维描述符,通过训练后的识别模型基于二维描述符和三维描述符,确定当前关键帧图像的至少一个第一描述词,并确定多个历史关键帧图像分别对应的第二描述词,再基于第一描述词和第二描述词确定出回环帧图像,可以提高回环帧图像的准确性,进一步提高校正位姿信息的准确性,从而更准确的在当前关键帧图像中进行虚拟物体放置。
[0270] 进一步的,采用时间戳邻近的个历史关键帧图像用于短时匹配过程,并结合另一部分历史关键帧图像进行长时匹配,可以基于时间戳利用不同的历史关键帧图像,提高最终得到的校正位姿信息的准确性,从而更准确的在当前关键帧图像中进行虚拟物体放置。
[0271] 如图9所示,在一些可能的实施方式中,提供了一种位姿处理装置,包括:
[0272] 第一获取模块901,用于获取当前关键帧图像的描述信息,基于描述信息从历史关键帧集合的多个历史关键帧图像中确定出与当前关键帧图像相匹配的回环帧图像;
[0273] 第一确定模块902,用于确定采集设备对应的当前关键帧图像与回环帧图像之间的相对位姿;
[0274] 删除模块903,用于将当前关键帧图像作为新的历史关键帧图像添加至历史关键帧集合中,若历史关键帧集合中的图像数量超过预设阈值,则基于图像数量从历史关键帧集合中删除至少一帧历史关键帧图像,得到更新后的历史关键帧集合;
[0275] 第二确定模块904,用于将更新后的图像数据库中,时间戳位于当前关键帧图像和回环帧图像之间的图像确定为参考图像;
[0276] 校正模块905,用于基于相对位姿以及采集设备对应各参考图像的位姿信息,对采集设备对应当前关键帧图像的位姿信息进行校正,得到采集设备对应当前关键帧图像的校正位姿信息;校正位姿信息用于在当前关键帧图像中进行虚拟物体放置。
[0277] 在一些可能的实施方式中,删除模块903在基于图像数量从历史关键帧集合中删除至少一帧历史关键帧图像,得到更新后的历史关键帧集合时,具体用于:
[0278] 基于各历史关键帧图像的三维坐标信息,确定各历史关键帧图像所属的空间范围;空间范围覆盖各历史关键帧图像;
[0279] 将空间范围划分为多个子区域,从多个子区域中确定出包含历史关键帧图像的数量最多的目标子区域;
[0280] 从目标子区域中确定待删除的第一关键帧图像,并删除第一关键帧图像,得到更新后的历史关键帧集合。
[0281] 在一些可能的实施方式中,删除模块903在从目标子区域中确定待删除的第一关键帧图像时,具体用于:
[0282] 基于各历史关键帧图像的三维坐标信息对目标子区域中各个历史关键帧图像进行聚类,得到聚类中心;
[0283] 基于目标子区域中各个历史关键帧图像的三维坐标信息,从目标子区域中各个历史关键帧图像中确定出与聚类中心最近的历史关键帧图像,将所确定的历史关键帧图像作为第一关键帧图像。
[0284] 在一些可能的实施方式中,描述信息包括当前关键帧图像的至少一个第一描述词;
[0285] 第一获取模块901在获取当前关键帧图像的描述信息,基于描述信息从历史关键帧集合的多个历史关键帧图像中确定出与当前关键帧图像相匹配的回环帧图像时,具体用于:
[0286] 获取当前关键帧图像中多个特征点的特征描述符;
[0287] 通过训练后的识别模型基于特征描述符,确定当前关键帧图像的至少一个第一描述词,并确定多个历史关键帧图像分别对应的第二描述词;
[0288] 通过将至少一个描述词与多个历史关键帧图像分别对应的第二描述词进行匹配,从多个历史关键帧图像中确定与当前关键帧图像相匹配的回环帧图像。
[0289] 在一些可能的实施方式中,第一获取模块901在通过将至少一个描述词与多个历史关键帧图像分别对应的第二描述词进行匹配,从多个历史关键帧图像中确定与当前关键帧图像相匹配的回环帧图像时,具体用于:
[0290] 将至少一个描述词与多个历史关键帧图像分别对应的第二描述词进行匹配,从多个历史关键帧图像中确定与当前关键帧图像相匹配的多个第二关键帧图像;
[0291] 基于采集设备分别对应各第二关键帧图像的位姿信息,对各第二关键帧图像进行聚类,得到多个类别分别对应的第二关键帧图像;
[0292] 将第二关键帧图像的数量最多的类别中,时间戳最早的第二关键帧图像作为回环帧图像。
[0293] 在一些可能的实施方式中,第一获取模块901在获取当前关键帧图像中多个特征点的特征描述符时,具体用于:
[0294] 获取当前关键帧图像中第一特征点的三维坐标信息;三维坐标信息包括第一特征点的世界坐标位置和第一特征点在当前关键帧图像中的二维特征位置;
[0295] 对第一特征点在当前关键帧图像中的二维特征位置计算描述子,得到特征描述子;
[0296] 将特征描述子添加至坐标位置信息中,得到针对第一特征点的三维描述符;
[0297] 对当前关键帧图像进行特征点提取,得到当前关键帧图像中第二特征点的二维描述符;
[0298] 基于第一特征点的三维描述符和第二特征点的二维描述符生成特征描述符。
[0299] 在一些可能的实施方式中,第一获取模块901在基于描述信息从历史关键帧集合的多个历史关键帧图像中确定出与当前关键帧图像相匹配的回环帧图像时,具体用于:
[0300] 从历史关键帧集合的多个历史关键帧图像中确定出距离当前关键帧图像的时间戳最近的第一预设数量的第三关键帧图像;
[0301] 将多个历史关键帧图像中除第三关键帧图像以外的多个图像作为第四关键帧图像;
[0302] 基于描述信息从多个第四关键帧图像中确定出与当前关键帧图像相匹配的回环帧图像。
[0303] 在一些可能的实施方式中,第一获取模块901在获取当前关键帧图像中第一特征点的三维坐标信息时,具体用于:
[0304] 获取当前关键帧图像的多个第一初始特征点的二维坐标信息和多个第二初始特征点的三维坐标信息;第一初始特征点包括第二初始特征点;
[0305] 将当前关键帧图像的多个第一初始特征点的二维坐标信息分别与第一预设数量的第三关键帧图像中的第一特征点的三维坐标信息进行匹配,得到与第一初始特征点相匹配的第二预设数量的第三特征点;
[0306] 基于当前关键帧图像的多个第二初始特征点的三维坐标信息,以及每一第三特征点的三维坐标信息,确定当前关键帧图像中第一特征点的三维坐标信息。
[0307] 在一些可能的实施方式中,第一获取模块901在将当前关键帧图像的多个第一初始特征点的二维坐标信息分别与第一预设数量的第三关键帧图像中的第一特征点的三维坐标信息进行匹配,得到与第一初始特征点相匹配的第二预设数量的第三特征点时,具体用于:
[0308] 基于采集设备对应当前关键帧图像的位姿信息,以及采集设备分别对应各第三关键帧图像的位姿信息,从多个第三关键帧图像中确定出与当前关键帧图像之间的间隔距离小于或等于预设阈值的多个候选帧图像;
[0309] 将当前关键帧图像的多个第一初始特征点的二维坐标信息分别与多个候选帧图像中的第一特征点的三维坐标信息进行匹配,得到与第一初始特征点相匹配的第二预设数量的第三特征点。
[0310] 在一些可能的实施方式中,第一获取模块901在将当前关键帧图像的多个第一初始特征点的二维坐标信息分别与多个候选帧图像中的第一特征点的三维坐标信息进行匹配,得到与第一初始特征点相匹配的第二预设数量的第三特征点时,具体用于:
[0311] 针对每一候选帧图像,基于采集设备对应当前关键帧图像的位姿信息,将候选帧图像中的各第一特征点投影到当前关键帧图像中,得到各候选帧图像的第一特征点在当前关键帧图像中的二维预测像素坐标;
[0312] 针对每一第一初始特征点,基于第一初始特征点的二维坐标信息与各个候选帧图像的第一特征点的二维预测像素坐标,从多个第一特征点中筛选出坐标距离小于或等于预设距离的多个第四特征点;
[0313] 确定各个候选特征点与第一初始特征点之间的描述子距离,基于所确定的描述子距离从多个候选特征点中确定与第一初始特征点相匹配的至少一个第五特征点;
[0314] 基于每一第五特征点与对应的第一初始特征点之间的描述子距离,从各个第一初始特征点分别相匹配的至少一个第五特征点中,筛选出第二预设数量的第三特征点。
[0315] 上述的位姿处理装置,通过从历史关键帧集合中确定出与当前关键帧图像相匹配的回环帧图像,并确定采集设备对应的当前关键帧图像与回环帧图像之间的相对位姿,将当前关键帧图像作为新的历史关键帧图像添加至历史关键帧集合中,若历史关键帧集合中的图像数量超过预设阈值,则基于图像数量从历史关键帧集合中删除至少一帧历史关键帧图像,得到更新后的历史关键帧集合,再结合更新后的历史关键帧集合中的参考帧图像对当前关键帧图像的位姿信息进行校正,能够保持历史关键帧集合中的历史关键帧图像的数量小于或等于预设阈值,可以避免地图规模无限增大导致资源消耗更大,有效减少确定采集设备的校正位姿信息的耗时,提高确定采集设备的校正位姿信息的效率,从而更高效的在当前关键帧图像中进行虚拟物体放置。
[0316] 进一步的,通过获取当前关键帧图像的二维描述符和三维描述符,通过训练后的识别模型基于二维描述符和三维描述符,确定当前关键帧图像的至少一个第一描述词,并确定多个历史关键帧图像分别对应的第二描述词,再基于第一描述词和第二描述词确定出回环帧图像,可以提高回环帧图像的准确性,进一步提高校正位姿信息的准确性,从而更准确的在当前关键帧图像中进行虚拟物体放置。
[0317] 进一步的,采用时间戳邻近的个历史关键帧图像用于短时匹配过程,并结合另一部分历史关键帧图像进行长时匹配,可以基于时间戳利用不同的历史关键帧图像,提高最终得到的校正位姿信息的准确性,从而更准确的在当前关键帧图像中进行虚拟物体放置。
[0318] 本申请实施例的装置可执行本申请实施例所提供的方法,其实现原理相类似,本申请各实施例的装置中的各模块所执行的动作是与本申请各实施例的方法中的步骤相对应的,对于装置的各模块的详细功能描述具体可以参见前文中所示的对应方法中的描述,此处不再赘述。
[0319] 本申请实施例中提供了一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,该处理器执行存储器中存储的计算机程序时可实现本申请任一可选实施例中的方法。
[0320] 图10示出了本发明实施例所适用的一种电子设备的结构示意图,如图10所示,该电子设备可以为服务器或者用户终端,该电子设备可以用于实施本发明任一实施例中提供的方法。
[0321] 如图10中所示,该电子设备1000主要可以包括至少一个处理器1001(图10中示出了一个)、存储器1002、通信模块1003和输入/输出接口1004等组件,可选的,各组件之间可以通过总线1005实现连接通信。需要说明的是,图10中示出的该电子设备1000的结构只是示意性的,并不构成对本申请实施例提供的方法所适用的电子设备的限定。
[0322] 其中,存储器1002可以用于存储操作系统和应用程序等,应用程序可以包括在被处理器1001调用时实现本发明实施例所示方法的计算机程序,还可以包括用于实现其他功能或服务的程序。存储器1002可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和计算机程序的其他类型的动态存储设备,也可以是EEPROM(Electrically Erasable Programmable Read Only Memory,电可擦可编程只读存储器)、CD‑ROM(Compact Disc Read Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
[0323] 处理器1001通过总线1005与存储器1002连接,通过调用存储器1002中所存储的应用程序实现相应的功能。其中,处理器1001可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital  Signal Processor,数据信号处理器),ASIC(Application  Specific Integrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合,其可以实现或执行结合本发明公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器1001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
[0324] 电子设备1000可以通过通信模块1003(可以包括但不限于网络接口等组件)连接到网络,以通过网络与其它设备(如用户终端或服务器等)的通信,实现数据的交互,如向其他设备发送数据或从其他设备接收数据。其中,通信模块1003可以包括有线网络接口和/或无线网络接口等,即通信模块可以包括有线通信模块或无线通信模块中的至少一项。
[0325] 电子设备1000可以通过输入/输出接口1004可以连接所需要的输入/输出设备,如键盘、显示设备等,电子设备100自身可以具有显示设备,还可以通过接口1004外接其他显示设备。可选的,通过该接口1004还可以连接存储装置,如硬盘等,以可以将电子设备1000中的数据存储到存储装置中,或者读取存储装置中的数据,还可以将存储装置中的数据存储到存储器1002中。可以理解的,输入/输出接口1004可以是有线接口,也可以是无线接口。根据实际应用场景的不同,与输入/输出接口1004连接的设备,可以是电子设备1000的组成部分,也可以是在需要时与电子设备1000连接的外接设备。
[0326] 用于连接各组件的总线1005可以包括一通路,在上述组件之间传送信息。总线1005可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(Extended Industry Standard Architecture,扩展工业标准结构)总线等。根据功能的不同,总线1005可以分为地址总线、数据总线、控制总线等。
[0327] 可选的,对于本发明实施例所提供的方案而言,存储器1002可以用于存储执行本发明方案的计算机程序,并由处理器1001来运行,处理器1001运行该计算机程序时实现本发明实施例提供的方法或装置的动作。
[0328] 基于与本申请实施例提供的方法相同的原理,本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现前述方法实施例的相应内容。
[0329] 本申请实施例还提供了一种计算机程序产品,该产品包括计算机程序,该计算机程序被处理器执行时可实现前述方法实施例的相应内容。
[0330] 需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”、“1”、“2”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除图示或文字描述以外的顺序实施。
[0331] 应该理解的是,虽然本申请实施例的流程图中通过箭头指示各个操作步骤,但是这些步骤的实施顺序并不受限于箭头所指示的顺序。除非本文中有明确的说明,否则在本申请实施例的一些实施场景中,各流程图中的实施步骤可以按照需求以其他的顺序执行。此外,各流程图中的部分或全部步骤基于实际的实施场景,可以包括多个子步骤或者多个阶段。这些子步骤或者阶段中的部分或全部可以在同一时刻被执行,这些子步骤或者阶段中的每个子步骤或者阶段也可以分别在不同的时刻被执行。在执行时刻不同的场景下,这些子步骤或者阶段的执行顺序可以根据需求灵活配置,本申请实施例对此不限制。
[0332] 以上所述仅是本申请部分实施场景的可选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请的方案技术构思的前提下,采用基于本申请技术思想的其他类似实施手段,同样属于本申请实施例的保护范畴。