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

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

Info

Publication number
CN108682037A
CN108682037A CN201810392852.8A CN201810392852A CN108682037A CN 108682037 A CN108682037 A CN 108682037A CN 201810392852 A CN201810392852 A CN 201810392852A CN 108682037 A CN108682037 A CN 108682037A
Authority
CN
China
Prior art keywords
image
homography matrix
target image
tag
key frame
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.)
Granted
Application number
CN201810392852.8A
Other languages
English (en)
Other versions
CN108682037B (zh
Inventor
林祥凯
凌永根
暴林超
刘威
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201810392852.8A priority Critical patent/CN108682037B/zh
Publication of CN108682037A publication Critical patent/CN108682037A/zh
Application granted granted Critical
Publication of CN108682037B publication Critical patent/CN108682037B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/80Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30244Camera pose

Abstract

本申请公开了一种相机姿态追踪过程的重定位方法、装置、设备及存储介质,属于计算机领域。所述方法包括:前端程序获取所述多个标记图像中第i个标记图像后采集的目标图像;当目标图像符合重定位条件时,前端程序将目标图像发送给后端程序;前端程序将当前图像进行特征点追踪得到第一单应性矩阵;后端程序将目标图像进行重定位得到第二单应性矩阵;前端程序根据第一单应性矩阵和第二单应性矩阵计算得到第三单应性矩阵,将第三单应性矩阵进行分解得到当前图像的当前相机姿态参数。本申请解决了后端程序无法控制重定位结果成功的时间,得到的好几帧图像之前的重定位结果不能直接用于当前图像的重定位的问题。

Description

相机姿态追踪过程的重定位方法、装置、设备及存储介质
技术领域
本申请实施例涉及计算机技术领域,特别涉及一种相机姿态追踪过程的重定位方法、装置、设备及存储介质。
背景技术
在AR(Augmented Reality,增强显示)领域,搭载相机的主体需要在没有环境先验信息的情况下,于运动过程中追踪相机在现实环境中的运动姿态。
在相关技术中将相机的运动过程划分为至少两段追踪过程进行追踪,每段追踪过程对应各自的标记图像(Anchor)。通常将相机采集的第一帧图像作为第1个标记图像,在相机后续采集到当前图像时,设备对当前图像与第1个标记图像之间共同具有的特征点进行追踪,根据当前图像与第1个标记图像之间的特征点位置变化计算得到相机在现实世界中的相机姿态变化。当当前图像相对于第i个标记图像的追踪效果差于预设条件时,将当前图像的上一个图像切换为第i+1个标记图像,开启第i+1段追踪过程。其中,i为正整数。
但某些场景下会发生当前图像中的特征点丢失(Lost),无法继续追踪的情况。此时需要使用重定位方法对当前图像进行重定位,但重定位过程耗时较高,不仅可能会阻塞主线程,还可能会在若干帧图像以后才得到重定位结果。
发明内容
本申请实施例提供了一种相机姿态追踪过程的重定位方法、装置、设备及存储介质,可以用于解决重定位过程耗时较高,不仅可能会阻塞主线程,还可能会在若干帧图像以后才得到重定位结果的问题。所述技术方案如下:
根据本申请的一个方面,提供了一种相机姿态追踪过程的重定位方法,应用于运行有前端程序和后端程序的设备中,所述前端程序用于按序执行多个标记图像的相机姿态追踪过程,所述方法包括:
所述前端程序获取所述多个标记图像中第i个标记图像后采集的目标图像,i为正整数;
当所述目标图像符合重定位条件时,所述前端程序将所述目标图像发送给所述后端程序;
所述前端程序获取在所述目标图像后采集的当前图像,将所述当前图像进行特征点追踪得到第一单应性矩阵,所述第一单应性矩阵用于计算从所述目标图像至所述当前图像之间的相机姿态变化量;
所述后端程序将所述目标图像进行重定位得到第二单应性矩阵,向所述前端程序发送所述第二单应性矩阵,所述第二单应性矩阵用于计算从第一个标记图像至所述目标图像之间的相机姿态变化量;
所述前端程序根据所述第一单应性矩阵和所述第二单应性矩阵计算得到第三单应性矩阵,将所述第三单应性矩阵进行分解得到所述当前图像的当前相机姿态参数。
根据本申请的另一方面,提供了一种相机姿态追踪过程的重定位装置,所述装置包括:前端程序模块和后端程序模块的设备中,所述前端程序模块用于按序执行多个标记图像的相机姿态追踪过程,
所述前端程序模块,还用于获取所述多个标记图像中第i个标记图像后采集的目标图像,i为正整数;
所述前端程序模块,还用于当所述目标图像符合重定位条件时,将所述目标图像发送给所述后端程序模块;
所述前端程序模块,还用于获取在所述目标图像后采集的当前图像,将所述当前图像进行特征点追踪得到第一单应性矩阵,所述第一单应性矩阵用于计算从所述目标图像至所述当前图像之间的相机姿态变化量;
所述后端程序模块,还用于将所述目标图像进行重定位得到第二单应性矩阵,向所述前端程序模块发送所述第二单应性矩阵,所述第二单应性矩阵用于计算从第一个标记图像至所述目标图像之间的相机姿态变化量;
所述前端程序模块,还用于根据所述第一单应性矩阵和所述第二单应性矩阵计算得到第三单应性矩阵,将所述第三单应性矩阵进行分解得到所述当前图像的当前相机姿态参数。
根据本申请的另一方面,提供了一种电子设备,所述电子设备包括存储器和处理器;
所述存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如上所述的重定位方法。
根据本申请的另一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述至少一条指令由处理器加载并执行以实现如上所述的重定位方法。
本申请实施例提供的技术方案带来的有益效果是:
通过前端程序在目标图像的重定位过程中,将当前图像进行特征点追踪得到第一单应性矩阵,由后端程序对目标图像进行重定位得到第二单应性矩阵,根据第一单应性矩阵和第二单应性矩阵计算得到第三单应性矩阵,分解第三单应性矩阵得到当前图像的当前相机姿态参数,不仅解决了后端程序无法控制重定位结果成功的时间,则得到的好几帧图像之前的重定位结果不能直接用于当前图像的重定位的问题,还由于该第三单应性矩阵用于表征当前图像相对于第一个标记图像的相机姿态变化,而第一个标记图像的尺度默认为1,所以能够消除多次单应性矩阵分解时因实际尺度参数的变化所带来的误差,提高重定位的精度。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一个示例性实施例提供的AR应用场景的场景示意图;
图2是本申请一个示例性实施例提供的AR应用场景的场景示意图;
图3是本申请一个示例性实施例提供的Anchor-Switching AR System算法的原理示意图;
图4是本申请一个示例性实施例提供的电子设备的结构框图;
图5是本申请一个示例性实施例提供的重定位过程的时序示意图;
图6是本申请一个示例性实施例提供的相机姿态追踪过程的重定位方法的流程图;
图7是本申请另一个示例性实施例提供的相机姿态追踪过程的重定位方法的流程图;
图8是本申请另一个示例性实施例提供的相机姿态追踪过程的重定位方法的原理示意图;
图9是本申请另一个示例性实施例提供的相机姿态追踪过程的重定位方法的流程图;
图10是本申请另一个示例性实施例提供的相机姿态追踪过程的重定位方法的原理示意图;
图11是本申请另一个示例性实施例提供的相机姿态追踪过程的重定位方法的流程图;
图12是本申请一个示例性实施例提供的第一个标记图像、目标图像和一阶关键帧图像的对比示意图;
图13是本申请一个示例性实施例提供的相机姿态追踪过程的重定位方法的流程图;
图14是本申请一个示例性实施例提供的结果模块的框图;
图15是本申请一个示例性实施例提供的后端程序的工作流程图;
图16是本申请一个示例性实施例提供的前端程序的工作流程图;
图17是本申请一个示例性实施例提供的相机姿态追踪过程的重定位方法的流程图;
图18是本申请一个示例性实施例提供的相机姿态追踪过程的重定位装置的框图;
图19是本申请一个示例性实施例提供的电子设备的框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
首先对本申请涉及的若干个名词进行简介:
AR:一种在相机采集图像的过程中,实时地计算相机在现实世界(或称三维世界、真实世界)中的相机姿态参数,根据该相机姿态参数在相机采集的图像上添加虚拟元素的技术。虚拟元素包括但不限于:图像、视频和三维模型。AR技术的目标是在屏幕上把虚拟世界套接在现实世界上进行互动。该相机姿态参数包括旋转矩阵和位移向量,旋转矩阵用于表征相机在现实世界中发生的旋转角度,位移向量用于表征相机在现实世界中发生的位移距离。
例如,参见图1和参见图2,设备在相机拍摄到的图像中添加了一个虚拟人物形象。随着相机在现实世界中的运动,相机拍摄到的图像会发生变化,虚拟人物的拍摄方位也发生变化,模拟出了虚拟人物在图像中静止不动,而相机随着位置和姿态的变化同时拍摄图像和虚拟人物的效果,为用户呈现了一幅真实立体的画面。
Anchor-Switching AR System:是基于连接多个标记图像(Anchor)的相机姿态追踪来确定在自然场景下的相机姿态参数,进而根据相机姿态参数在相机采集的图像上叠加虚拟世界的AR系统。
IMU(Inertial Measurement Unit,惯性测量单元):是用于测量物体的三轴姿态角(或角速率)以及加速度的装置。一般的,一个IMU包含了三个单轴的加速度计和三个单轴的陀螺,加速度计用于检测物体在三维坐标系中每个坐标轴上的加速度信号,进而计算得到位移向量(可能会跟随时间的增加累积误差);而陀螺用于检测物体在三维坐标系中的旋转矩阵。可选地,IMU包括陀螺仪、加速度计和地磁传感器。
示意性的,三维坐标系的建立方式为:1、X轴使用向量积Y*Z来定义,在X轴在设备当前的位置上,沿与地面相切的方向指向东方;2、Y轴在设备当前的位置上,沿与地面相切的方向指向地磁场的北极;3、Z轴指向天空并垂直于地面。
重定位:在基于第i个标记图像的相机姿态追踪过程中,若目标图像相对于第i个标记图像进行特征点追踪失败,无法顺利进行相机姿态追踪过程时,将目标图像相对于其它图像(第1个标记图像或其它有代表性的关键帧图像)重新进行特征点追踪,以便在特征点追踪成功时,根据重新得到的追踪过程实现相机采集对目标图像时的相机姿态进行定位的技术。
本申请提供了一种适用于Anchor-Switching AR System算法的重定位方法。Anchor-Switching AR System算法在确定相机姿态的过程中,将相机的运动过程划分为至少两段追踪过程进行追踪,每段追踪过程对应各自的标记图像。具体地,当第i个标记图像对应的追踪过程中,当当前图像相对于第i个标记图像的追踪效果差于预设条件(比如能够匹配到的特征点少于预设阈值)时,将当前图像的上一个图像确定为第i+1个标记图像,开启第i+1段追踪过程。其中,i为正整数。示意性的参考图3,其示出了本申请一个示例性实施例提供的Anchor-Switching AR System算法的原理示意图。在现实世界中存在物体320,设置有相机的设备340被用户手持进行移动,在移动过程中拍摄得到包括物体320的多帧图像1-6。设备将图像1确定为第1个标记图像(born-anchor或born-image)并记录初始位姿参数,该初始位姿参数可以是IMU采集的相机采集图像1时的位姿参数。然后将图像2相对于图像1进行特征点追踪,根据初始位姿参数和特征点追踪结果计算出相机在拍摄图像2时的位姿参数;将图像3相对于图像1进行特征点追踪,根据初始位姿参数和特征点追踪结果计算出相机在拍摄图像3时的位姿参数;将图像4相对于图像1进行特征点追踪,根据初始位姿参数和特征点追踪结果计算出相机在拍摄图像4时的位姿参数。
然后,将图像5相对于图像1进行特征点追踪,如果特征点追踪效果差于预设条件(比如匹配的特征点数量较少),则将图像4确定为第2个标记图像,将图像5相对于图像4进行特征点追踪,计算出相机在拍摄图像4至图像5之间的位移变化量,再结合相机在拍摄图像4至图像1之间的位移变化量以及初始位姿参数,计算出相机在拍摄图像5时的位姿参数。然后再将图像6相对于图像4进行特征点追踪,以此类推,若当前图像的特征点追踪效果变差时,即可将当前图像的上一帧图像确定为新的标记图像,切换新的标记图像后重新进行特征点追踪。
可选地,特征点追踪可以采用基于视觉里程计原理的算法,比如特征点法或直接法。但是若相机在追踪过程中处于发生较为剧烈的运动、朝向强光源、朝向白色墙壁等各种异常场景时,上述Anchor-Switching AR System追踪过程可能会发生丢失(Lost)现象。丢失现象是指在目标图像中无法匹配到足够多的特征点,导致特征点追踪失败。此时,需要对目标图像进行重定位。
参考图4,其示出了本申请一个示例性实施例提供的电子设备的结构框图。该电子设备包括:处理器420、存储器440、相机460和IMU 480。
处理器420包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器420用于执行存储器440中存储的指令、代码、代码片段和程序中的至少一种。
处理器420与存储器440电性相连。可选地,处理器420通过总线与存储器440相连。存储器440存储有一个或多个指令、代码、代码片段和/或程序。该指令、代码、代码片段和/或程序在被处理器420执行时,用于实现如下实施例中提供的相机姿态追踪过程的重定位方法。
处理器420还与相机460电性相连。可选地,处理器420通过总线与相机460相连。相机460是具有图像采集能力的传感器件。相机460还可称为摄像头、感光器件等其它名称。相机460具有连续采集图像或多次采集图像的能力。可选地,相机460设置在设备内部或设备外部。
处理器420还与IMU480电性相连。可选地,IMU480用于每隔预定时间间隔采集相机的位姿向量,并记录每组位姿参数在采集时的时间戳。相机的位姿参数包括:位移向量和旋转矩阵。其中,IMU480采集的旋转矩阵相对准确,采集的位移向量受实际环境可能会有较大的误差。
本申请实施例提供了“前端程序+后端程序”的重定位架构。其中,前端程序运行在主线程中,后端程序运行在另一线程中。前端程序用于按序执行多个标记图像的相机姿态追踪过程;后端程序用于在目标图像满足重定位条件时,对目标图像进行重定位。前端程序和后端程序之间通过结果模块(Result module)实现进程间的通信。在实现本申请的过程中,发明人发现若将重定位过程放在前端程序中执行,由于重定位过程的时间通常较长,可能会出现阻塞前端程序的正常运行;但若将重定位过程放在后端程序中执行,由于后端程序无法控制重定位结果成功的时间,则得到的可能是好几帧图像之前的重定位结果,不能直接用于当前图像的重定位。如图5所示,假设在前端程序处理图像帧m(下文实施例中称为目标图像)时,图像帧m发生了丢失现象,后端程序开始对图像帧m进行重定位。后端程序得到图像帧m的重定位结果时,也即重定位结束时,前端程序已经开始处理图像帧m+k了,图像帧m的重定位结果无法直接作为修正图像帧m+k的结果。为此,本申请提供有如下实施例。
请参考图6,其示出了本申请一个实施例提供的相机姿态追踪过程的重定位方法的流程图。本实施例以该重定位方法应用于图4所示的设备中来举例说明。该方法包括:
步骤601,前端程序获取多个标记图像中第i个标记图像后采集的目标图像,i为正整数;
设备内的相机按照预设时间间隔采集一帧帧图像,形成图像序列。可选地,相机是在运动(平移和/或旋转)过程中,按照预设时间间隔采集一帧帧图像形成图像序列。
可选地,前端程序将图像序列中的第一帧图像(或前几帧图像中符合预定条件的一帧图像)确定为第一个标记图像,将后续采集的图像相对于第一个标记图像进行特征点追踪,并根据特征点追踪结果计算相机的相机姿态参数;若当前处理的图像的特征点追踪效果差于预设条件(比如匹配到的特征点数量较少)时,将当前处理的图像的上一帧图像确定为第二个标记图像,将后续采集的图像相对于第二个标记图像进行特征点追踪,并根据特征点追踪结果计算相机的相机姿态参数,以此类推。前端程序可以按序进行连续多个标记图像的相机姿态追踪。
假设当前时刻正处于基于第i个标记图像进行相机姿态追踪的过程中,相机会在第i个标记图像后采集目标图像。前端程序获取该目标图像,第i个标记图像和目标图像之间存在零到多张图像。
步骤602,当目标图像符合重定位条件时,前端程序将目标图像发送给后端程序;
设备会确定目标图像是否符合重定位条件。重定位条件用于指示当前图像相对于第i个标记图像的追踪过程失败,或者,重定位条件用于指示历史追踪过程中的累积误差已经高于预设条件。
在一个可选的实施例中,设备对目标图像相对于第i个标记图像进行追踪,若目标图像中不存在与第i个标记图像匹配的特征点,或者,目标图像中与第i个标记图像匹配的特征点少于第一数量时,确定目标图像相对于第i个标记图像的追踪过程失败,符合重定位条件。
在另一个可选的实施例中,设备确定目标图像与上一次重定位的图像之间的帧数大于第二数量时,确定历史追踪过程中的累积误差已经高于预设条件,或者,设备确定第i个标记图像和第一个标记图像之间的标记图像数量大于第三数量时,确定历史追踪过程中的累计误差已经高于预设条件。
本实施例对重定位条件的具体条件内容不加以限定。
若前端程序确定目标图像满足重定位条件,则前端程序将目标图像发送给后端程序。
可选地,前端程序利用结果模块将目标图像发送给后端程序。该结果模块是前端程序和后端程序共享的存储空间。
步骤603,前端程序获取在目标图像后采集的当前图像,将当前图像进行特征点追踪得到第一单应性矩阵;
该第一单应性矩阵用于计算从目标图像至当前图像之间的相机姿态变化量。
特征点追踪可采用基于视觉里程计的追踪算法,本申请对此不加以限定。在一个实施例中,特征点追踪采用KLT(Kanade-Lucas)光流追踪算法;在另一个实施例中,特征点追踪采用基于ORB(Oriented FAST and Rotated BRIEF,快速特征点提取和描述)算法提取的ORB特征描述子进行特征点跟踪。本申请对特征点追踪的具体算法不加以限定。
可选地,前端程序将当前图像相对于当前标记图像进行特征点追踪得到第一单应性矩阵,当前标记图像是第i个标记图像或者第i+1个标记图像。在一个实施例中,前端程序在步骤602中将目标图像切换为第i+1个标记图像,此时当前标记图像是第i+1个标记图像(目标图像);在另一个实施例中,前端程序未切换标记图像,则当前标记图像仍然是第i个标记图像,前端程序能够根据当前图像相对于第i个标记图像的特征点追踪结果,以及根据目标图像相对于第i个标记图像的特征点追踪结果,结合计算得到第一单应性矩阵。
步骤604,后端程序将目标图像进行重定位得到第二单应性矩阵;
后端程序用于对目标图像相对于其它图像进行重定位。其它图像包括:第1个标记图像,和/或,曾经重定位成功且具有代表性的关键帧图像。
与步骤603并列的,后端程序将目标图像相对于其它图像进行重定位得到第二单应性矩阵。其中,第二单应性矩阵用于计算从第一个标记图像至目标图像之间的相机姿态变化量。
步骤605,后端程序向前端程序发送第二单应性矩阵;
当后端程序对目标图像进行重定位成功时,将重定位得到的第二单应性矩阵,通过结果模块发送至前端程序。
步骤606,前端程序根据第一单应性矩阵和第二单应性矩阵,计算得到第三单应性矩阵;
前端程序将第一单应性矩阵和第二单应性矩阵进行相乘,得到第三单应性矩阵。第三单应性矩阵用于计算从第一个标记图像至当前图像之间的相机姿态变化量。
步骤607,前端程序将第三单应性矩阵进行分解得到当前图像的当前相机姿态参数。
单应性矩阵描述了两个平面之间的映射关系,若自然场景(现实环境)中的特征点都落在同一物理平面上,则可以通过单应性矩阵进行运动估计。
当计算得到第三单应性矩阵之后,前端程序通过ransac对第三单应性矩阵进行分解,得到当前图像的当前相机姿态参数。当前相机姿态参数包括相机采集当前图像时的旋转矩阵Rcf和平移向量Tcf
综上所述,本实施例提供的重定位方法,通过前端程序在目标图像的重定位过程中,将当前图像进行特征点追踪得到第一单应性矩阵,由后端程序对目标图像进行重定位得到第二单应性矩阵,根据第一单应性矩阵和第二单应性矩阵计算得到第三单应性矩阵,分解第三单应性矩阵得到当前图像的当前相机姿态参数,不仅解决了后端程序无法控制重定位结果成功的时间,则得到的好几帧图像之前的重定位结果不能直接用于当前图像的重定位的问题,还由于该第三单应性矩阵用于表征当前图像相对于第一个标记图像的相机姿态变化,而第一个标记图像的尺度默认为1,所以能够消除多次单应性矩阵分解时因实际尺度参数的变化所带来的误差,提高重定位的精度。
图6示出的实施例存在至少两种不同的实现方式:
一、前端程序将目标图像切换为第i+1个标记图像,如图7和图8所示;
二、前端程序未将目标图像切换为第i+1个标记图像,如图9和图10所示。
在基于图6的一个可选实施例中,前端程序还会在步骤602时将目标图像切换为第i+1个标记图像,如图7所示,步骤602和步骤603可替代实现成为如下步骤:
步骤6021,当目标图像符合重定位条件时,前端程序将目标图像切换为第i+1个标记图像,且将目标图像通过结果模块发送给后端程序;
当目标图像符合重定位条件时,前端程序将目标图像切换为第i+1个标记图像。也即,前端程序会将需要重定位的图像进行一次切换标记图像的步骤。
另外,前端程序还会利用结果模块将目标图像发送给后端程序。该结果模块是前端程序和后端程序共享的存储空间,以便后端程序对目标图像相对于其它图像进行重定位。
步骤6031,前端程序获取在目标图像后采集的当前图像;
在将目标图像提供给后端程序后,前端程序获取第i+1个标记图像(目标图像)后采集的当前图像,前端程序获取该当前图像,目标图像和当前图像之间存在零到多张图像。
步骤6032,前端程序将当前图像相对于第i+1个标记图像进行特征点追踪得到第一单应性矩阵;
前端程序可以采用KLT光流追踪算法将当前图像相对于第i+1个标记图像(目标图像)进行特征点追踪,根据当前图像和第i+1个标记图像的追踪结果中的至少四对匹配特征点计算得到第一单应性矩阵hcl
在本实施例中,图6中的步骤606可被替代实现成为如下步骤:
步骤6061,前端程序将第一单应性矩阵和第二单应性矩阵相乘后,得到第三单应性矩阵;
根据如下公式计算得到第三单应性矩阵hca
hcf=hcl*hrelocalization
其中,hcl是第一单应性矩阵,hrelocalization是第二单应性矩阵,该过程的原理示意性的如图8所示。
在基于图6的另一个可选实施例中,前端程序确定对目标图像需要进行重定位时,不需要进行切换标记图像的操作。如图9所示,步骤602和步骤603可替代实现成为如下步骤:
步骤602a,当目标图像符合重定位条件时,前端程序将目标图像通过结果模块发送给后端程序;
当目标图像符合重定位条件(比如累积误差已经高于预设条件)时,前端程序利用结果模块将目标图像发送给后端程序。该结果模块是前端程序和后端程序共享的存储空间,以便后端程序对目标图像相对于其它图像进行重定位。
步骤602b,前端程序获取第四单应性矩阵H4,第四单应性矩阵H4是目标图像相对于第i个标记图像进行特征点追踪得到的;
前端程序将目标图像相对于第i个标记图像进行特征点追踪,得到第四单应性矩阵H4。前端程序可以采用KLT光流追踪算法将目标图像相对于第i个标记图像(目标图像)进行特征点追踪,根据目标图像和第i个标记图像的追踪结果中的至少四对匹配特征点计算得到第四单应性矩阵h4
需要说明的是,该步骤可以与步骤602a并列执行,或者在步骤602a之前执行,本申请不限定步骤602a和步骤602b之间的执行顺序关系。
步骤603a,前端程序将当前图像相对于第i个标记图像进行特征点追踪,得到第五单应性矩阵H5
前端程序还将当前图像相对于第i个标记图像进行特征点追踪,得到第五单应性矩阵H4。前端程序可以采用KLT光流追踪算法将目标图像相对于第i个标记图像(目标图像)进行特征点追踪,根据目标图像和第i个标记图像的追踪结果中的至少四对匹配特征点计算得到第四单应性矩阵h4
步骤603b,根据第四单应性矩阵H4和第五单应性矩阵H5,计算得到第一单应性矩阵。
前端程序按照如下公式计算得到第一单应性矩阵hcl
hcl=h5*h4 -1
在本实施例中,图6中的步骤606可被替代实现成为如下步骤:
步骤606a,前端程序将第一单应性矩阵和第二单应性矩阵相乘后,得到第三单应性矩阵;
前端程序按照如下公式计算得到第三单应性矩阵:
hcf=hcl*hrelocalization=h5*h4 -1*hrelocalization
该过程的原理示意性的如图10所示。
在基于图6至图10所示的可选实施例中,后端程序将目标图像相对于第一个标记图像进行重定位,得到第二位姿参数。如图11所示,上述步骤604包括如下子步骤:
步骤604a,获取第一个标记图像的初始特征点;
后端程序尝试将目标图像相对于第一个标记图像进行特征点追踪。此时,设备获取缓存的第一个标记图像中的初始特征点。
步骤604b,将目标图像相对于第一个标记图像进行特征点追踪,得到与初始特征点匹配的目标特征点;
可选地,每组匹配特征点对中包括两个互相匹配的初始特征点和目标特征点。
特征点追踪可采用基于视觉里程计的追踪算法,本申请对此不加以限定。在一个实施例中,特征点追踪采用KLT(Kanade-Lucas)光流追踪算法;在另一个实施例中,特征点追踪采用基于SIFT(Scale-Invariant Feature Transform,尺度不变特征转换)算法提取的SIFT特征描述子、ORB(Oriented FAST and Rotated BRIEF,快速特征点提取和描述)算法提取的ORB特征描述子进行特征点跟踪。本申请对特征点追踪的具体算法不加以限定,特征点追踪过程可以采用特征点法或直接法。
在一个实施例中,后端程序对第一个标记图像进行特征点提取,得到N个初始特征点;设备还对目标图像进行特征点提取,得到M个候选特征点;然后将M个候选特征点逐一与N个初始特征点进行匹配,确定出至少一组匹配特征点对。每组匹配特征点对包括:一个初始特征点和一个目标特征点。初始特征点是第1个标记图像上的特征点,目标特征点是目标图像上与该初始特征点匹配度最高的候选特征点。
可选地,初始特征点的数量大于或等于目标特征点的数量。比如,初始特征点的数量是450个,目标特征点为320个。
步骤604c,根据初始特征点和目标特征点,计算第二单应性矩阵;
可选地,设备根据初始特征点和目标特征点计算两帧图像之间的第二单应性矩阵homography。前端程序可以采用KLT光流追踪算法将目标图像相对于第一个标记图像进行特征点追踪,根据目标图像和第1个标记图像的追踪结果中的至少四对匹配特征点计算得到第二单应性矩阵。
图11所示出的重定位方法是将目标图像相当于第一个标记图像进行重定位,该方法在某些场景下会存在重定位失败的可能性。比如目标图像对应的拍摄姿态与第一个标记图像的拍摄姿态之间的差别较大时,直接将目标图像和第一个标记图像建立匹配来实现重定位会失败。示意性的,设图12的(1)图是第一个标记图像,图12的(2)图是目标图像,由于目标图像和第一个标记图像之间的重合区域太少,达不到足够的匹配度,因此直接将目标图像和第一个标记图像进行重定位会失败。本申请的可选实施例中,引入图12的(3)图作为一阶关键帧图像,将目标图像相对于一阶关键帧图像进行重定位,能够提高重定位的成功概率。
在基于图6至图10的实施例中,后端程序将目标图像相对于第一个标记图像进行重定位,得到第二单应性矩阵。如图13所示,上述步骤604包括如下子步骤:
步骤6041,从关键帧图像库中选择出目标关键帧图像;
关键帧图像库中存储有至少一个关键帧图像的图像信息,关键帧图像是在历史相机姿态追踪过程中重定位成功且相对于第一个标记图像存在第一重定位结果的图像;
在相机姿态追踪过程中会存在不止一次重定位过程。设备会在重定位成功的图像中挑选一些有代表性的图像作为关键帧图像保存至关键帧图像库。关键帧图像库是用于存储关键帧图像的数据库。关键帧图像库中存储有多个关键帧图像的图像信息。该图像信息包括:关键帧图像的图像本身、关键帧图像中的特征点和关键帧图像对应的第一重定位结果。可选地,图像信息还包括:关键帧图像的第一全局描述子,第一全局描述子用于以简要的数据量表示关键帧图像的图像特征。或者,第一全局描述子用于以简要的数据量唯一性地表示关键帧图像的图像特征。
当对目标图像进行重定位时,后端程序从关键帧图像库中挑选出目标关键帧图像。可选地,目标关键帧图像是在关键帧图像库中与目标图像的图像距离最接近的图像。在不同实施例中,图像距离能够采用图像相似度、图像特征相似度、相匹配的特征点之间的距离中的任意一种形式来表征,本申请实施例对此不加以限定。
在一个实施例中,设备从关键帧图像库中通过关键帧图像的第一全局描述子和目标图像的第二全局描述子之间的相似度,来挑选目标关键帧图像;在另一个实施例中,由于IMU能够采集到相机采集目标图像时的参考姿态参数(可能存在误差),设备从关键帧图像库中通过关键帧图像的第一姿态参数和目标图像的参考姿态参数之间的相似度,来挑选目标关键帧图像。
步骤6042,将目标图像相对于目标关键帧图像进行重定位,得到第二单应性矩阵;
当设备在关键帧图像库中挑选出目标关键帧图像之后,将目标图像相对于目标关键帧图像进行重定位。可选地,重定位的过程包括如下步骤:
1、获取目标关键帧图像的关键帧特征点和第六单应性矩阵;
关键帧图像库中存储有每个关键帧图像上的关键帧特征点和第六单应性矩阵。可选地,关键帧特征点采用SIFT特征描述子或ORB特征描述子来表征。第六单应性矩阵是目标关键帧图像和第1个标记图像之间的单应性矩阵,用于表征(或计算)从第1个标记图像至目标关键帧图像之间的相机姿态变化。可选地,第六单应性矩阵是通过目标关键帧图像和第1个标记图像之间的至少四对匹配特征点对计算到的。
2、将目标图像相对于目标关键图像库进行特征点追踪,得到与关键帧特征点匹配的目标特征点;
可选地,每组匹配特征点对中包括两个互相匹配的关键帧特征点和目标特征点。
特征点追踪可采用基于视觉里程计的追踪算法,本申请对此不加以限定。在一个实施例中,特征点追踪采用KLT光流追踪算法;在另一个实施例中,特征点追踪采用基于SIFT算法提取的SIFT特征描述子、ORB算法提取的ORB特征描述子进行特征点跟踪。本申请对特征点追踪的具体算法不加以限定,特征点追踪过程可以采用特征点法或直接法。
在一个实施例中,由于目标关键帧图像是已经重定位成功的图像,设备在历史过程已经对目标关键帧图像进行特征点提取,得到N个关键帧特征点;设备还对目标图像进行特征点提取,得到M个候选特征点;然后将M个候选特征点逐一与N个初始特征点进行匹配,确定出至少一组匹配特征点对。每组匹配特征点对包括:一个关键帧特征点和一个目标特征点。关键帧特征点是目标关键帧图像上的特征点,目标特征点是目标图像上与该关键帧特征点匹配度最高的候选特征点。
可选地,关键帧特征点的数量大于或等于目标特征点的数量。比如,关键帧特征点的数量是480个,目标特征点为350个。
3、根据关键帧特征点和目标特征点计算第七单应性矩阵,该第七单应性矩阵用于表征相机从关键帧姿态参数改变至目标相机姿态参数时的相机姿态变化,目标相机姿态参数用于表征相机在采集目标图像时的相机姿态。
可选地,前端程序根据至少四组匹配的关键帧特征点和目标特征点计算两帧图像之间的第七单应性矩阵homography。
步骤6043,将第六单应性矩阵和第七单应性矩阵相乘,得到第二单应性矩阵。
前端程序按照如下公式计算得到第二单应性矩阵h2
h2=h6*h7
其中,h6是第六单应性矩阵,h7是第七单应性矩阵。
需要说明的是,关键帧图像库包括:相对于第一个标记图像进行一阶重定位成功的一阶关键帧图像,和/或,相对关键帧图像库中的n-1阶关键帧图像进行n阶重定位成功的n阶关键帧图像,n为大于1的整数。上述仅以一阶重定位图像进行举例说明,对于n阶关键帧图像的第一重定位结果,可以将多个位姿变化量进行累乘得到,本申请对此不再赘述。
在基于图6至图10的可选实施例中,前端程序和后端程序之间通过结果模块(Result Module),结果模块是前端程序和后端程序共享的存储空间。如图14所示,结果模块包括:重定位列表(Relocalization list)、结果标签(Result-flag)、结果存储位。可选地,结果模块还包括:扩展图列表(Expand-map list)、最近一次切换时间(Abandon Time)。
重定位列表用于存储需要进行重定位的目标图像。可选地,同一时间内重定位列表中最多有一张目标图像。当前端程序需要进行重定位时,将目标图像写入重定位列表。
结果标签用于存储后端程序的工作状态,包括:ready(准备)、have-result(得到结果)、still-sunning(正在计算)三种。Ready表示后端程序为已启动且空闲的状态;have-result表示后端程序对最近一次重定位已经计算完毕,存在重定位成功(OK)或重定位失败(Fail)两种情形;still-sunning表示正在计算且尚未计算完毕。
结果存储位用于在重定位成功时,存储第二单应性矩阵。
扩展图列表用于存储关键帧图像库的候选图像。当前端程序在正常相机追踪过程时,将图像传入扩展图列表,供后端程序对关键帧图像库进行扩展。
最近一次切换时间用于存储前端程序最近一次切换标记图像时的时间。比如,前端程序将目标图像设置为第i+1个标记图像时,记录该第i+1个标记图像的切换时间至Abandon Time。
在一个结合图14的实施例里,后端程序是一个持续在后台运行的线程,后端程序与前台程序运行在不同的线程中,通过结果模块实现进程间的通信。后端程序通过while(1)循环运行图15中的步骤:
步骤1500,等待新图像;
后端程序监测结果模块中的重定位列表以及扩展图列表。
步骤1501,判断重定位列表为空?
当重定位列表为空时,确定前台程序没有需要重定位的目标图像,进入步骤1502;当重定位列表不为空时,确定前台程序存在需要重定位的目标图像,进入步骤1504。
步骤1502,判断扩展图列表是否为空?
当扩展图列表不为空,进入步骤1503;当扩展图列表为空时,回到步骤1500。
步骤1503,扩展关键帧图像库;
后端程序利用扩展图列表中的候选图像对关键帧图像库(keyframe database)中的关键帧图像进行扩展,使得关键帧图像库中的关键帧图像得到添加或更新。
步骤1504,设置结果标签为正在运行(still-running);
后端程序将result flag设置为still-running,然后开始对目标图像进行重定位。
步骤1505,对需要进行重定位的目标图像进行重定位;
参考图6或图13的描述,本实施例不再赘述。可选地,后端程序对目标图像先相对于第一个标记图像进行重定位,重定位失败时再对目标图像相对于关键帧图像库进行重定位。或者,后端程序并行地对目标图像相对于第一个标记图像进行重定位,以及对目标图像相对于关键帧图像库进行重定位。
步骤1506,判断重定位过程是否成功?
当重定位成功时,进入步骤1507;当重定位失败时,进入步骤1508;
步骤1507,重定位成功时间是否早于最近一次切换时间;
最近一次切换时间,用于指示前端程序最近一次切换标记图像时的时间。
当重定位成功时间早于最近一次切换时间时,说明前台程序在将目标图像切换为第i+1个标记图像后,已经又切换了一次或多次标记图像,本次重定位结果为无效状态,进入步骤1508;当重定位成功时间晚于最近一次切换时间时,本次重定位结果为有效状态,进入步骤1509。
步骤1508,设置结果标签为失败;
后端程序将result flag设置为fail。
步骤1509,设置结果标签为成功。
后端程序将result flag设置为OK,并将第二单应性矩阵写入结果模块中。
在一个结合图14的实施例里,前端程序运行在主线程中,负责依序进行多个标记图像的相机追踪过程,后端程序与前台程序运行在不同的线程中,通过结果模块实现进程间的通信。前端程序中设置有两个标签:flag1和flag2,flag1用于表示是否需要进行重定位,flag2用于表示重定位失败,需要再次切换marker。前端程序用于执行如下步骤:
步骤1600,基于多个标记图像的相机姿态追踪;
前端程序负责基于多个标记图像的相机姿态追踪过程。示意性的,假设前端程序正在进行第i个标记图像的相机姿态追踪过程。
步骤1601,是否存在追踪结果;
前端程序获取第i个标记图像之后采集的目标图像,在将目标图像相对于第i个标记图像进行特征点追踪后,判断是否存在追踪结果。若存在追踪结果,则进入步骤1602;若不存在追踪结果,则进入步骤1603。
步骤1602,设置flag1为假;
继续进行步骤1600的相机姿态追踪过程。
步骤1603,设置flag1为真;
前端程序设置flag1为真,表示需要对目标图像进行重定位。
步骤1604,检测flag1的状态;
前端程序还会在每帧图像处理时,检测flag1的状态;若flag1的状态为假,则执行步骤1605,前端程序将目标图像发送至扩展图列表,供后端程序在扩展关键帧图像库时使用;若flag1的状态为真,则进入步骤1606,前端程序认为正在处理的目标图像需要进行重定位,检测flag2的状态。
若flag2的状态为否,表示上一次重定位成功,进入步骤1607;若flag2的状态为是,表示最近一次重定位失败,进入步骤1613。
步骤1607,检测后端程序的运行状态是否为ready?
前端程序读取结果模块中的结果标签,若结果标签为ready,说明后端程序处于空闲态,可以对目标图像进行重定位。
步骤1608,切换第i+1个标记图像,发送最近一次修改时间,将目标图像发送至重定位列表;
前端程序将目标图像切换为第i+1个标记图像,并将切换时间写入结果模块中的abandoned time。
步骤1609,尝试获取后端程序的重定位结果;
前端程序读取结果模块中的结果标签,若结果标签为still-running,则进入步骤1610;若结果标签为have result_ok,则进入步骤1611;若结果标签为have result_fail,则进入步骤1612。
步骤1610,做其它事务;
在后端程序对目标图像进行重定位的计算过程中,前端程序可以对目标图像之后的当前图像进行特征点追踪过程。
步骤1611,设置flag1为失败;
当对目标图像的重定位成功时,设置flag1为失败,表示不需要进行重定位,进行基于第i+1个标记图像的相机追踪过程。
步骤1612,设置flag2为成功;
当对目标图像的重定位失败时,设置flag2为成功。
步骤1613,切换至第i+2个标记图像,发送最近一次修改时间。
当前端程序获取到目标图像之后的当前图像时,若flag1为真且flag2为真时,表示后端程序的最近一次重定位过程失败,比如对目标图像的重定位过程失败,前端程序需要将目标图像之后的当前图像发送至重定位列表,以便后端程序对当前图像启动重定位过程。此时,前端程序将当前图像切换为第i+2个标记图像,再次将切换时间写入结果模块中的abandoned time。
在基于图15的可选实施例中,参考图17,后端程序利用扩展图列表中的候选图像对关键帧图像库中的关键帧图像进行扩展,包括如下步骤:
步骤71,获取最近一个重定位成功的候选图像;
在初始状态下,扩展图列表可以为空。随着整个相机追踪过程的执行,会出现越来越多与第一个标记图像(或已加入关键帧图像库的关键帧图像)进行重定位成功的图像,
后端程序在每次重定位成功时,将重定位成功的图像作为可能添加至关键帧图像库的候选图像。可选地,重定位成功包括:相对于第一个标记图像进行重定位成功,或者,相对于关键帧图像库中已有的关键帧图像进行重定位成功。
后端程序从候选图像中挑选出一部分图像作为关键帧图像,添加至关键帧图像库中。
步骤72,确定候选图像是否满足添加条件,添加条件包括:候选图像和第一个标记图像之间的第一距离大于第一阈值,和/或,候选图像与上一次加入的关键帧图像之间的第二距离大于第二阈值;
可选地,本次添加的关键帧图像需要与第一个标记图像存在一定距离,因为如果两个图像比较接近,那么与直接用第一个标记图像进行重定位的效果没有明显差别。
后端程序计算候选图像与第一个标记图像之间的第一距离,第一距离用于表示候选图像和第一个标记图像之间的图像相似度或者相机姿态相似度。本申请对第一距离的具体计算方式不加以限定,在一个可选的实施例中,对于第一个标记图像中的初始特征点,候选图像中存在与初始特征点匹配的目标特征点,一个初始特征点和对应的目标特征点构成一个匹配特征点对,根据每一组匹配特征点分别计算L2距离(对应L2范数的欧几里得距离),将所有L2距离的平均值作为候选图像和第一个标记图像之间的第一距离。以第一阈值为50个像素点为例,当候选图像和第一个标记图像之间的第一距离大于50个像素点时,将候选图像添加至关键帧图像库。
可选地,本次添加的关键帧图像需要与上一次添加的关键帧图像存在一定距离,因为如果两个图像比较接近,那么与使用上一次添加的关键帧图像进行重定位的效果没有明显差别。
后端程序计算候选图像与上一次添加的关键帧图像之间的第二距离,第二距离用于表示候选图像和上一次添加的关键帧图像之间的图像相似度或相机姿态相似度。本申请对第二距离的具体计算方式不加以限定,在一个可选的实施例中,采用候选图像和上一次添加的关键帧图像之间的重定位图像个数作为第二距离,以第二阈值为10为例,若候选图像和上一次添加的关键帧图像之间的重定位图像个数超过10帧,则将候选图像添加至关键帧图像库中。
步骤73,当候选图像满足添加条件时,将候选图像加入关键帧图像库;
当确定候选图像满足添加条件时,将候选图像作为关键帧图像添加至关键帧图像库。可选地,将关键帧图像的第一全局描述子、关键帧特征点、第一重定位的定位结果存储至关键帧图像库。其中,第一全局描述子用于以简要的数据量表示关键帧图像的图像特征,第一重定位的定位结果可以使用相机采集关键帧图像时的关键帧姿态参数来表示,也可以采用相机从初始姿态参数改变至关键帧姿态参数时的姿态变化量来表示。
步骤74,当候选图像不满足添加条件时,将候选图像不加入关键帧图像库。
当候选图像与第一个标记图像之间的第一距离小于第一阈值,或者,候选图像与上一次添加的关键帧图像之间的第二距离小于第二阈值,则不将该候选图像加入关键帧图像库。
可选地,满足上述添加条件的关键帧图像可以用来扩展关键帧图像库,但是关键帧图像库中的关键帧图像不应当太多,太多的关键帧图像会造成重定位过程的计算量负担,导致难以搜索到理想的图像。在一个示意性的例子中,关键帧图像库中的关键帧图像不超过1000张。
当候选图像满足添加条件且关键帧图像库中的关键帧图像数量达到最大值(比如1000张)时,计算该候选图像和已有关键帧图像之间的相似度。将具有最大相似度的关键帧图像从关键帧图像库中删除,将候选图像加入关键帧图像库中。
以下为本申请的装置实施例,对于装置实施例中未详细描述的技术细节,可以参考上述方法实施例中的描述。
请参考图18,其示出了本申请一个示例性实施例提供的相机姿态追踪过程的重定位装置的结构框图。该重定位装置可以通过软件、硬件或者两者的结合实现成为电子设备的全部或一部分。该装置包括:前端程序模块1820和后端程序模块1840,所述前端程序模块1820用于按序执行多个标记图像的相机姿态追踪过程,
所述前端程序模块1820,还用于获取所述多个标记图像中第i个标记图像后采集的目标图像,i为正整数;
所述前端程序模块1820,还用于当所述目标图像符合重定位条件时,将所述目标图像发送给所述后端程序模块;
所述前端程序模块1820,还用于获取在所述目标图像后采集的当前图像,将所述当前图像进行特征点追踪得到第一单应性矩阵,所述第一单应性矩阵用于计算从所述目标图像至所述当前图像之间的相机姿态变化量;
所述后端程序模块1840,还用于将所述目标图像进行重定位得到第二单应性矩阵,向所述前端程序模块发送所述第二单应性矩阵,所述第二单应性矩阵用于计算从第一个标记图像至所述目标图像之间的相机姿态变化量;
所述前端程序模块1820,还用于根据所述第一单应性矩阵和所述第二单应性矩阵计算得到第三单应性矩阵,将所述第三单应性矩阵进行分解得到所述当前图像的当前相机姿态参数。
在一个可选的实施例中,所述前端程序模块1820,用于将所述目标图像切换为第i+1个标记图像,将所述当前图像相对于所述第i+1个标记图像进行特征点追踪,得到所述第一单应性矩阵。
在一个可选的实施例中,所述前端程序模块1820,用于根据如下公式计算得到所述第三单应性矩阵hcf
hcf=hcl*hrelocalization
其中,hcf是所述第一单应性矩阵,hrelocalization是所述第二单应性矩阵。
在一个可选的实施例中,所述前端程序模块1820,还用于获取第四单应性矩阵H4,所述第四单应性矩阵H4是所述目标图像相对于所述第i个标记图像进行特征点追踪得到的;
所述前端程序模块1820,还用于将所述当前图像相对于所述第i个标记图像进行特征点追踪,得到第五单应性矩阵H5
所述前端程序模块1820,还用于根据所述第四单应性矩阵H4和所述第五单应性矩阵H5,计算得到所述第一单应性矩阵。
在一个可选的实施例中,所述前端程序模块1820,还用于按照如下公式计算得到所述第一单应性矩阵hcl
hcl=h5*h4 -1
所述前端程序模块1820,还用于按照如下公式计算得到所述第三单应性矩阵:
hcf=hcl*hrelocalization=h5*h4 -1*hrelocalization
其中,hrelocalization是所述第二单应性矩阵。
在一个可选的实施例中,所述后端程序模块1840,还用于将所述目标图像相对于所述第一个标记图像进行重定位,得到所述第二位姿参数;和/或,所述后端程序模块1840,还用于将所述目标图像相对于关键帧图像库中的关键帧图像进行重定位,得到所述第二位姿参数;所述关键帧图像是重定位成功且相对于所述第一个标记图像存在重定位结果的图像。
在一个可选的实施例中,所述装置还包括结果模块1860,所述结果模块1860是所述前端程序模块和所述后端程序模块共享的存储空间;
所述前端程序模块1820,用于将所述目标图像写入所述结果模块1860中的重定位图像列表;
所述后端程序模块1840,用于从所述重定位图像列表中读取所述目标图像。
在一个可选的实施例中,所述前端程序模块1820,用于检测所述结果模块1860中的结果状态位是否为准备状态;所述前端程序模块1820,用于当检测结果为所述结果状态位是准备状态时,将所述目标图像写入所述结果模块1860中的重定位图像列表。
在一个可选的实施例中,所述后端程序模块1840,用于将所述第二单应性矩阵写入所述结果模块中的结果存储位,所述结果模块1860是所述前端程序模块1820和所述后端程序模块1840共享的存储空间;所述前端程序模块1820,用于从所述结果存储位中读取所述第二位姿参数。
在一个可选的实施例中,所述前端程序模块1820,用于将所述目标图像写入所述结果模块中的扩展图列表;所述后端程序模块1840,用于在所述目标图像重定位成功且符合预设条件时,从所述扩展图列表读取所述目标图像添加至关键帧图像库中。
需要说明的是:上述实施例提供的相机姿态追踪过程的重定位装置在实现重定位时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的重定位装置与重定位方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图19示出了本发明一个示例性实施例提供的终端1900的结构框图。该终端1900可以是:智能手机、平板电脑、MP3播放器(Moving Picture Experts Group Audio LayerIII,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group AudioLayer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。终端1900还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,终端1900包括有:处理器1901和存储器1902。
处理器1901可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1901可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1901也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1901可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1901还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器1902可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1902还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1902中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器1901所执行以实现本申请中方法实施例提供的相机姿态追踪过程的重定位方法。
在一些实施例中,终端1900还可选包括有:外围设备接口1903和至少一个外围设备。处理器1901、存储器1902和外围设备接口1903之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口1903相连。具体地,外围设备包括:射频电路1904、触摸显示屏1905、摄像头1906、音频电路1907、定位组件1908和电源1909中的至少一种。
外围设备接口1903可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器1901和存储器1902。在一些实施例中,处理器1901、存储器1902和外围设备接口1903被集成在同一芯片或电路板上;在一些其他实施例中,处理器1901、存储器1902和外围设备接口1903中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路1904用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路1904通过电磁信号与通信网络以及其他通信设备进行通信。射频电路1904将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路1904包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路1904可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路1904还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏1905用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏1905是触摸显示屏时,显示屏1905还具有采集在显示屏1905的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器1901进行处理。此时,显示屏1905还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏1905可以为一个,设置终端1900的前面板;在另一些实施例中,显示屏1905可以为至少两个,分别设置在终端1900的不同表面或呈折叠设计;在再一些实施例中,显示屏1905可以是柔性显示屏,设置在终端1900的弯曲表面上或折叠面上。甚至,显示屏1905还可以设置成非矩形的不规则图形,也即异形屏。显示屏1905可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件1906用于采集图像或视频。可选地,摄像头组件1906包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件1906还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路1907可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器1901进行处理,或者输入至射频电路1904以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端1900的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器1901或射频电路1904的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路1907还可以包括耳机插孔。
定位组件1908用于定位终端1900的当前地理位置,以实现导航或LBS(LocationBased Service,基于位置的服务)。定位组件1908可以是基于美国的GPS(GlobalPositioning System,全球定位系统)、中国的北斗系统或俄罗斯的伽利略系统的定位组件。
电源1909用于为终端1900中的各个组件进行供电。电源1909可以是交流电、直流电、一次性电池或可充电电池。当电源1909包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
在一些实施例中,终端1900还包括有一个或多个传感器1910。该一个或多个传感器1910包括但不限于:加速度传感器1911、陀螺仪传感器1912、压力传感器1913、指纹传感器1914、光学传感器1915以及接近传感器1916。
加速度传感器1911可以检测以终端1900建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器1911可以用于检测重力加速度在三个坐标轴上的分量。处理器1901可以根据加速度传感器1911采集的重力加速度信号,控制触摸显示屏1905以横向视图或纵向视图进行用户界面的显示。加速度传感器1911还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器1912可以检测终端1900的机体方向及转动角度,陀螺仪传感器1912可以与加速度传感器1911协同采集用户对终端1900的3D动作。处理器1901根据陀螺仪传感器1912采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器1913可以设置在终端1900的侧边框和/或触摸显示屏1905的下层。当压力传感器1913设置在终端1900的侧边框时,可以检测用户对终端1900的握持信号,由处理器1901根据压力传感器1913采集的握持信号进行左右手识别或快捷操作。当压力传感器1913设置在触摸显示屏1905的下层时,由处理器1901根据用户对触摸显示屏1905的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
指纹传感器1914用于采集用户的指纹,由处理器1901根据指纹传感器1914采集到的指纹识别用户的身份,或者,由指纹传感器1914根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器1901授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器1914可以被设置终端1900的正面、背面或侧面。当终端1900上设置有物理按键或厂商Logo时,指纹传感器1914可以与物理按键或厂商Logo集成在一起。
光学传感器1915用于采集环境光强度。在一个实施例中,处理器1901可以根据光学传感器1915采集的环境光强度,控制触摸显示屏1905的显示亮度。具体地,当环境光强度较高时,调高触摸显示屏1905的显示亮度;当环境光强度较低时,调低触摸显示屏1905的显示亮度。在另一个实施例中,处理器1901还可以根据光学传感器1915采集的环境光强度,动态调整摄像头组件1906的拍摄参数。
接近传感器1916,也称距离传感器,通常设置在终端1900的前面板。接近传感器1916用于采集用户与终端1900的正面之间的距离。在一个实施例中,当接近传感器1916检测到用户与终端1900的正面之间的距离逐渐变小时,由处理器1901控制触摸显示屏1905从亮屏状态切换为息屏状态;当接近传感器1916检测到用户与终端1900的正面之间的距离逐渐变大时,由处理器1901控制触摸显示屏1905从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图19中示出的结构并不构成对终端1900的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
本申请还提供一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现上述方法实施例提供的重定位方法。
本申请还提供了一种计算机程序产品,当其在电子设备上运行时,使得电子设备执行上述各个方法实施例所述的重定位方法。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (15)

1.一种相机姿态追踪过程的重定位方法,其特征在于,应用于运行有前端程序和后端程序的设备中,所述前端程序用于按序执行多个标记图像的相机姿态追踪过程,所述方法包括:
所述前端程序获取所述多个标记图像中第i个标记图像后采集的目标图像,i为正整数;
当所述目标图像符合重定位条件时,所述前端程序将所述目标图像发送给所述后端程序;
所述前端程序获取在所述目标图像后采集的当前图像,将所述当前图像进行特征点追踪得到第一单应性矩阵;
所述后端程序将所述目标图像进行重定位得到第二单应性矩阵,向所述前端程序发送所述第二单应性矩阵;
所述前端程序根据所述第一单应性矩阵和所述第二单应性矩阵计算得到第三单应性矩阵,将所述第三单应性矩阵进行分解得到所述当前图像的当前相机姿态参数。
2.根据权利要求1所述的方法,其特征在于,所述将所述当前图像进行特征点追踪得到第一单应性矩阵之前,还包括:
将所述目标图像切换为第i+1个标记图像;
所述将所述当前图像进行特征点追踪得到第一单应性矩阵,包括:
将所述当前图像相对于所述第i+1个标记图像进行特征点追踪,得到所述第一单应性矩阵。
3.根据权利要求2所述的方法,其特征在于,所述前端程序根据所述第一单应性矩阵和所述第二单应性矩阵计算得到第三单应性矩阵,包括:
所述前端程序根据如下公式计算得到所述第三单应性矩阵hcf
hcf=hcl*hrelocalization
其中,hcf是所述第一单应性矩阵,hrelocalization是所述第二单应性矩阵。
4.根据权利要求1所述的方法,其特征在于,所述将所述当前图像进行特征点追踪得到第一单应性矩阵之前,还包括:
获取第四单应性矩阵H4,所述第四单应性矩阵H4是所述目标图像相对于所述第i个标记图像进行特征点追踪得到的;
所述将所述当前图像进行特征点追踪得到第一单应性矩阵,包括:
将所述当前图像相对于所述第i个标记图像进行特征点追踪,得到第五单应性矩阵H5
根据所述第四单应性矩阵H4和所述第五单应性矩阵H5,计算得到所述第一单应性矩阵。
5.根据权利要求4所述的方法,其特征在于,所述根据所述第四单应性矩阵H4和所述第五单应性矩阵H5,计算得到所述第一单应性矩阵,包括:
所述前端程序按照如下公式计算得到所述第一单应性矩阵hcl
hcl=h5*h4 -1
所述前端程序根据所述第一单应性矩阵和所述第二单应性矩阵计算得到第三单应性矩阵,包括:
所述前端程序按照如下公式计算得到所述第三单应性矩阵:
hcf=hcl*hrelocalization=h5*h4 -1*hrelocalization
其中,hrelocalization是所述第二单应性矩阵。
6.根据权利要求1至5任一所述的方法,其特征在于,所述后端程序将所述目标图像进行重定位得到第二位姿参数,包括:
所述后端程序将所述目标图像相对于所述第一个标记图像进行重定位,得到所述第二位姿参数;
和/或,
所述后端程序将所述目标图像相对于关键帧图像库中的关键帧图像进行重定位,得到所述第二位姿参数;所述关键帧图像是重定位成功且相对于所述第一个标记图像存在重定位结果的图像。
7.根据权利要求6所述的方法,其特征在于,所述关键帧图像库包括:
相对于所述第一个标记图像进行一阶重定位成功的一阶关键帧图像;
和/或,
相对于所述关键帧图像库中的n-1阶关键帧图像进行n阶重定位成功的n阶关键帧图像,n为大于1的整数。
8.一种相机姿态追踪过程的重定位装置,其特征在于,所述装置包括:前端程序模块和后端程序模块,所述前端程序模块用于按序执行多个标记图像的相机姿态追踪过程,
所述前端程序模块,还用于获取所述多个标记图像中第i个标记图像后采集的目标图像,i为正整数;
所述前端程序模块,还用于当所述目标图像符合重定位条件时,将所述目标图像发送给所述后端程序模块;
所述前端程序模块,还用于获取在所述目标图像后采集的当前图像,将所述当前图像进行特征点追踪得到第一单应性矩阵;
所述后端程序模块,还用于将所述目标图像进行重定位得到第二单应性矩阵,向所述前端程序模块发送所述第二单应性矩阵;
所述前端程序模块,还用于根据所述第一单应性矩阵和所述第二单应性矩阵计算得到第三单应性矩阵,将所述第三单应性矩阵进行分解得到所述当前图像的当前相机姿态参数。
9.根据权利要求8所述的装置,其特征在于,
所述前端程序模块,用于将所述目标图像切换为第i+1个标记图像,将所述当前图像相对于所述第i+1个标记图像进行特征点追踪,得到所述第一单应性矩阵。
10.根据权利要求9所述的装置,其特征在于,
所述前端程序模块,用于根据如下公式计算得到所述第三单应性矩阵hcf
hcf=hcl*hrelocalization
其中,hcf是所述第一单应性矩阵,hrelocalization是所述第二单应性矩阵。
11.根据权利要求8所述的装置,其特征在于,
所述前端程序模块,还用于获取第四单应性矩阵H4,所述第四单应性矩阵H4是所述目标图像相对于所述第i个标记图像进行特征点追踪得到的;
所述前端程序模块,还用于将所述当前图像相对于所述第i个标记图像进行特征点追踪,得到第五单应性矩阵H5
所述前端程序模块,还用于根据所述第四单应性矩阵H4和所述第五单应性矩阵H5,计算得到所述第一单应性矩阵。
12.根据权利要求11所述的装置,其特征在于,
所述前端程序模块,还用于按照如下公式计算得到所述第一单应性矩阵hcl
hcl=h5*h4 -1
所述前端程序模块,还用于按照如下公式计算得到所述第三单应性矩阵:
hcf=hcl*hrelocalization=h5*h4 -1*hrelocalization
其中,hrelocalization是所述第二单应性矩阵。
13.根据权利要求1至5任一所述的装置,其特征在于,
所述后端程序模块,还用于将所述目标图像相对于所述第一个标记图像进行重定位,得到所述第二位姿参数;
和/或,
所述后端程序模块,还用于将所述目标图像相对于关键帧图像库中的关键帧图像进行重定位,得到所述第二位姿参数;所述关键帧图像是重定位成功且相对于所述第一个标记图像存在重定位结果的图像。
14.一种电子设备,其特征在于,所述电子设备包括存储器和处理器;
所述存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如权利要求1至7任一所述的重定位方法。
15.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令,所述至少一条指令由处理器加载并执行以实现如权利要求1至7任一所述的重定位方法。
CN201810392852.8A 2018-04-27 2018-04-27 相机姿态追踪过程的重定位方法、装置、设备及存储介质 Active CN108682037B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810392852.8A CN108682037B (zh) 2018-04-27 2018-04-27 相机姿态追踪过程的重定位方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810392852.8A CN108682037B (zh) 2018-04-27 2018-04-27 相机姿态追踪过程的重定位方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN108682037A true CN108682037A (zh) 2018-10-19
CN108682037B CN108682037B (zh) 2022-03-08

Family

ID=63802601

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810392852.8A Active CN108682037B (zh) 2018-04-27 2018-04-27 相机姿态追踪过程的重定位方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN108682037B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110097061A (zh) * 2019-04-16 2019-08-06 聚好看科技股份有限公司 一种图像显示方法及装置
CN110134532A (zh) * 2019-05-13 2019-08-16 浙江商汤科技开发有限公司 一种信息交互方法及装置、电子设备和存储介质
CN110147288A (zh) * 2019-05-13 2019-08-20 浙江商汤科技开发有限公司 信息交互方法及装置、电子设备和存储介质
CN111950642A (zh) * 2020-08-17 2020-11-17 联想(北京)有限公司 一种重定位方法及电子设备
US11321870B2 (en) 2018-05-22 2022-05-03 Tencent Technology (Shenzhen) Company Limited Camera attitude tracking method and apparatus, device, and system

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106595601A (zh) * 2016-12-12 2017-04-26 天津大学 一种无需手眼标定的相机六自由度位姿精确重定位方法
CN106708048A (zh) * 2016-12-22 2017-05-24 清华大学 机器人的天花板图像定位方法和系统
CN107300917A (zh) * 2017-05-23 2017-10-27 北京理工大学 一种基于分层架构的视觉slam后端优化方法
US20170374256A1 (en) * 2016-06-24 2017-12-28 Qualcomm Incorporated Method and apparatus for rolling shutter compensation
CN107633536A (zh) * 2017-08-09 2018-01-26 武汉科技大学 一种基于二维平面模板的相机标定方法及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170374256A1 (en) * 2016-06-24 2017-12-28 Qualcomm Incorporated Method and apparatus for rolling shutter compensation
CN106595601A (zh) * 2016-12-12 2017-04-26 天津大学 一种无需手眼标定的相机六自由度位姿精确重定位方法
CN106708048A (zh) * 2016-12-22 2017-05-24 清华大学 机器人的天花板图像定位方法和系统
CN107300917A (zh) * 2017-05-23 2017-10-27 北京理工大学 一种基于分层架构的视觉slam后端优化方法
CN107633536A (zh) * 2017-08-09 2018-01-26 武汉科技大学 一种基于二维平面模板的相机标定方法及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
何芳: "基于双目视觉的四旋翼无人机定位系统设计与实现", 《中国优秀硕士学位论文全文数据库工程科技Ⅱ辑》 *
曹恒: "基于单目视觉的SLAM算法研究", 《中国优秀硕士学位论文全文数据库信息科技辑》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11321870B2 (en) 2018-05-22 2022-05-03 Tencent Technology (Shenzhen) Company Limited Camera attitude tracking method and apparatus, device, and system
CN110097061A (zh) * 2019-04-16 2019-08-06 聚好看科技股份有限公司 一种图像显示方法及装置
CN110134532A (zh) * 2019-05-13 2019-08-16 浙江商汤科技开发有限公司 一种信息交互方法及装置、电子设备和存储介质
CN110147288A (zh) * 2019-05-13 2019-08-20 浙江商汤科技开发有限公司 信息交互方法及装置、电子设备和存储介质
CN111950642A (zh) * 2020-08-17 2020-11-17 联想(北京)有限公司 一种重定位方法及电子设备

Also Published As

Publication number Publication date
CN108682037B (zh) 2022-03-08

Similar Documents

Publication Publication Date Title
CN108615247A (zh) 相机姿态追踪过程的重定位方法、装置、设备及存储介质
CN110555883B (zh) 相机姿态追踪过程的重定位方法、装置及存储介质
CN108876854A (zh) 相机姿态追踪过程的重定位方法、装置、设备及存储介质
CN108596976B (zh) 相机姿态追踪过程的重定位方法、装置、设备及存储介质
CN108734736A (zh) 相机姿态追踪方法、装置、设备及存储介质
CN108615248B (zh) 相机姿态追踪过程的重定位方法、装置、设备及存储介质
CN108682037A (zh) 相机姿态追踪过程的重定位方法、装置、设备及存储介质
CN108682038B (zh) 位姿确定方法、装置及存储介质
CN109947886B (zh) 图像处理方法、装置、电子设备及存储介质
CN108682036A (zh) 位姿确定方法、装置及存储介质
CN108537845A (zh) 位姿确定方法、装置及存储介质
CN110148178B (zh) 相机定位方法、装置、终端及存储介质
CN109976930A (zh) 异常数据的检测方法、系统及存储介质
CN110222789A (zh) 图像识别方法及存储介质
CN109712224A (zh) 虚拟场景的渲染方法、装置及智能设备
CN109815150A (zh) 应用测试方法、装置、电子设备及存储介质
CN110064200A (zh) 基于虚拟环境的物体构建方法、装置及可读存储介质
CN110059686A (zh) 字符识别方法、装置、设备及可读存储介质
CN108776822A (zh) 目标区域检测方法、装置、终端及存储介质
CN110942046A (zh) 图像检索方法、装置、设备及存储介质
WO2019192061A1 (zh) 图形码的识别及生成方法、装置及计算机可读存储介质
CN108196701A (zh) 确定姿态的方法、装置及vr设备
CN110152293A (zh) 操控对象的定位方法及装置、游戏对象的定位方法及装置
CN110443841A (zh) 地面深度的测量方法、装置及系统
CN112733895B (zh) 确定图像相似度的方法、装置及计算机存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant