CN108876854A - 相机姿态追踪过程的重定位方法、装置、设备及存储介质 - Google Patents
相机姿态追踪过程的重定位方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN108876854A CN108876854A CN201810392872.5A CN201810392872A CN108876854A CN 108876854 A CN108876854 A CN 108876854A CN 201810392872 A CN201810392872 A CN 201810392872A CN 108876854 A CN108876854 A CN 108876854A
- Authority
- CN
- China
- Prior art keywords
- image
- target image
- pose parameter
- key frame
- rear end
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
- G06T7/74—Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/246—Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
- G06T7/248—Analysis of motion using feature-based methods, e.g. the tracking of corners or segments involving reference images or patches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/269—Analysis of motion using gradient-based methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10016—Video; Image sequence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30204—Marker
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30244—Camera pose
Landscapes
- Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Studio Devices (AREA)
- Image Analysis (AREA)
Abstract
本申请公开了一种相机姿态追踪过程的重定位方法、装置、设备及存储介质,属于增强现实领域。方法包括:当目标图像符合重定位条件时,前端程序将目标图像切换为第i+1个标记图像,并将目标图像发送给后端程序;前端程序获取在目标图像后采集的当前图像,将当前图像相对于目标图像进行特征点追踪得到第一位姿参数;后端程序将目标图像进行重定位得到第二位姿参数,向前端程序发送第二位姿参数;前端程序根据第一位姿参数和第二位姿参数,计算得到当前图像的当前位姿参数。本申请能够达到即便后端程序对目标图像的重定位结果的时间较长,也能够实现对当前图像的定位结果的修正,从而保证较好的重定位效果。
Description
技术领域
本申请实施例涉及增强现实技术领域,特别涉及一种相机姿态追踪过程的重定位方法、装置、设备及存储介质。
背景技术
在AR(Augmented Reality,增强显示)领域,搭载相机的主体需要在没有环境先验信息的情况下,于运动过程中追踪相机在现实环境中的运动姿态。
在相关技术中将相机的运动过程划分为至少两段追踪过程进行追踪,每段追踪过程对应各自的标记图像(Anchor)。通常将相机采集的第一帧图像作为第1个标记图像,在相机后续采集到当前图像时,设备对当前图像与第1个标记图像之间共同具有的特征点进行追踪,根据当前图像与第1个标记图像之间的特征点位置变化计算得到相机在现实世界中的相机姿态变化。当当前图像相对于第i个标记图像的追踪效果差于预设条件时,将当前图像的上一个图像切换为第i+1个标记图像,开启第i+1段追踪过程。其中,i为正整数。
但某些场景下会发生当前图像中的特征点丢失(Lost),无法继续追踪的情况。此时需要使用重定位方法对当前图像进行重定位,但重定位过程耗时较高,不仅可能会阻塞主线程,还可能会在若干帧图像以后才得到重定位结果。
发明内容
本申请实施例提供了一种相机姿态追踪过程的重定位方法、装置、设备及存储介质,可以用于解决重定位过程耗时较高,不仅可能会阻塞主线程,还可能会在若干帧图像以后才得到重定位结果的问题。所述技术方案如下:
根据本申请的一个方面,提供了一种相机姿态追踪过程的重定位方法,应用于运行有前端程序和后端程序的设备中,所述前端程序用于按序执行多个标记图像的相机姿态追踪过程,所述方法包括:
所述前端程序获取所述多个标记图像中第i个标记图像后采集的目标图像,i为正整数;
当所述目标图像符合重定位条件时,所述前端程序将所述目标图像切换为第i+1个标记图像,并将所述目标图像发送给所述后端程序;
所述前端程序获取在所述目标图像后采集的当前图像,将所述当前图像相对于所述目标图像进行特征点追踪得到第一位姿参数,所述第一位姿参数用于表示从所述目标图像至所述当前图像之间的相机姿态变化量;
所述后端程序将所述目标图像进行重定位得到第二位姿参数,向所述前端程序发送所述第二位姿参数,所述第二位姿参数用于表示从第一个标记图像至所述目标图像之间的相机姿态变化量;
所述前端程序根据所述第一位姿参数和所述第二位姿参数,计算得到所述当前图像的当前位姿参数。
根据本申请的另一方面,提供了一种相机姿态追踪过程的重定位装置,其特征在于,所述装置包括:前端程序模块和后端程序模块,所述前端程序模块用于按序执行多个标记图像的相机姿态追踪过程;
所述前端程序模块,还用于获取所述多个标记图像中第i个标记图像后采集的目标图像,i为正整数;
所述前端程序模块,还用于当所述目标图像符合重定位条件时,将所述目标图像切换为第i+1个标记图像,并将所述目标图像发送给所述后端程序模块;
所述前端程序模块,还用于获取在所述目标图像后采集的当前图像,将所述当前图像相对于所述目标图像进行特征点追踪得到第一位姿参数,所述第一位姿参数用于表示从所述目标图像至所述当前图像之间的相机姿态变化量;
所述后端程序模块,用于将所述目标图像进行重定位得到第二位姿参数,向所述前端程序发送所述第二位姿参数,所述第二位姿参数用于表示从第一个标记图像至所述目标图像之间的相机姿态变化量;
所述前端程序模块,用于根据所述第一位姿参数和所述第二位姿参数,计算得到所述当前图像的当前位姿参数。
根据本申请的另一方面,提供了一种电子设备,所述电子设备包括存储器和处理器;
所述存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如上所述的重定位方法。
根据本申请的另一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述至少一条指令由处理器加载并执行以实现如上所述的重定位方法。
本申请实施例提供的技术方案带来的有益效果至少包括:
通过前端程序将目标图像切换为第i+1个标记图像,在后端程序对目标图像进行重定位的过程中,由前端程序并行进行基于第i+1个标记图像的相机姿态追踪得到第一位姿参数,若在前端程序处理当前图像时得到重定位结果(第二位姿参数),则使用第一位姿参数和第二位姿参数修正当前图像的定位结果,从而解决了后端程序无法控制重定位结果成功的时间,则得到的好几帧图像之前的重定位结果不能直接用于当前图像的重定位的问题;达到了即便后端程序的重定位结果的时间较长,也能够通过叠加两个位姿变化量,来实现对当前图像的定位结果的修正,从而保证较好的重定位效果。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一个示例性实施例提供的AR应用场景的场景示意图;
图2是本申请一个示例性实施例提供的AR应用场景的场景示意图;
图3是本申请一个示例性实施例提供的Anchor-Switching AR System算法的原理示意图;
图4是本申请一个示例性实施例提供的电子设备的结构框图;
图5是本申请一个示例性实施例提供的重定位过程的时序示意图;
图6是本申请一个示例性实施例提供的相机姿态追踪过程的重定位方法的流程图;
图7是本申请一个示例性实施例提供的正常追踪过程的计算原理图;
图8是本申请一个示例性实施例提供的重定位过程的计算原理图;
图9是本申请一个示例性实施例提供的相机姿态追踪过程的重定位方法的流程图;
图10是本申请一个示例性实施例提供的第一个标记图像、目标图像和一阶关键帧图像的对比示意图;
图11是本申请一个示例性实施例提供的相机姿态追踪过程的重定位方法的流程图;
图12是本申请一个示例性实施例提供的重定位方法的原理示意图;
图13是本申请一个示例性实施例提供的后端程序的工作原理示意图;
图14是本申请一个示例性实施例提供的前端程序的工作原理示意图;
图15是本申请一个示例性实施例提供的相机姿态追踪过程的重定位装置的框图;
图16是本申请一个示例性实施例提供的电子设备的框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
首先对本申请涉及的若干个名词进行简介:
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为正整数;
设备内的相机按照预设时间间隔采集一帧帧图像,形成图像序列。可选地,相机是在运动(平移和/或旋转)过程中,按照预设时间间隔采集一帧帧图像形成图像序列。
可选地,前端程序将图像序列中的第一帧图像(或前几帧图像中符合预定条件的一帧图像)确定为第一个标记图像,将后续采集的图像相对于第一个标记图像进行特征点追踪,并根据特征点追踪结果计算相机的相机姿态参数;若当前图像的特征点追踪效果差于预设条件(比如匹配到的特征点数量较少)时,将当前图像的上一帧图像确定为第二个标记图像,将后续采集的图像相对于第二个标记图像进行特征点追踪,并根据特征点追踪结果计算相机的相机姿态参数,以此类推。前端程序可以按序进行连续多个标记图像的相机姿态追踪。
步骤602,当目标图像符合重定位条件时,前端程序将目标图像切换为第i+1个标记图像;
设备会确定当前图像是否符合重定位条件。重定位条件用于指示当前图像相对于第i个标记图像的追踪过程失败,或者,重定位条件用于指示历史追踪过程中的累积误差已经高于预设条件。
在一个可选的实施例中,设备对当前图像相对于第i个标记图像进行追踪,若当前图像中不存在与第i个标记图像匹配的特征点,或者,当前图像中与第i个标记图像匹配的特征点少于第一数量时,确定当前图像相对于第i个标记图像的追踪过程失败,符合重定位条件。
在另一个可选的实施例中,设备确定当前图像与上一次重定位的图像之间的帧数大于第二数量时,确定历史追踪过程中的累积误差已经高于预设条件,或者,设备确定第i个标记图像和第一个标记图像之间的标记图像数量大于第三数量时,确定历史追踪过程中的累计误差已经高于预设条件。
本实施例对重定位条件的具体条件内容不加以限定。
若前端程序确定目标图像满足重定位条件,则前端程序将目标图像切换为第i+1个标记图像,并将IMU采集的相机位姿参数Rold和Told(可能存在误差)暂时作为第i+1个标记图像的参考位姿参数。其中,Rold用于表示相机从第1个标记图像至第i+1个标记图像(目标图像)之间的旋转矩阵,Told用于表示相机从第1个标记图像至第i+1个标记图像(目标图像)之间的位移向量。
步骤603,前端程序将目标图像发送给后端程序;
可选地,前端程序利用结果模块将目标图像发送给后端程序。该结果模块是前端程序和后端程序共享的存储空间。后端程序用于对目标图像相对于其它图像进行重定位。其它图像包括:第1个标记图像,和/或,曾经重定位成功且具有代表性的关键帧图像。
步骤604,前端程序获取在目标图像后采集的当前图像,将当前图像相对于目标图像进行特征点追踪得到第一位姿参数;
在将目标图像提供给后端程序后,前端程序获取第i+1个标记图像(目标图像)后采集的当前图像,将当前图像相对于目标图像进行特征点追踪,得到第一位姿参数。
其中,第一位姿参数用于表示从目标图像至当前图像之间的相机姿态变化量。第一位姿参数包括第一旋转矩阵Rca和第一位移向量Tca,Rca用于表示相机从第i+1个标记图像(目标图像)至当前图像之间的旋转矩阵,Tca用于表示相机从第i+1个标记图像(目标图像)至当前图像之间的位移向量。
步骤605,后端程序将目标图像进行重定位得到第二位姿参数;
与步骤604并列的,后端程序将目标图像相对于其它图像进行重定位得到第二位姿参数。
其中,第二位姿参数用于表示从第一个标记图像至目标图像之间的相机姿态变化量。第二位姿参数包括第二旋转矩阵Rrelocalize和第二位移向量Trelocalice。Rrelocalice用于表示相机从第1个标记图像至第i+1个标记图像(目标图像)的旋转矩阵,是通过重定位得到的对上述Rold的修正值;Trelocalice用于表示相机从第1个标记图像至第i+1个标记图像(目标图像)之间的位移向量,是通过重定位得到的对上述Told的修正值。
步骤606,后端程序向前端程序发送第二位姿参数;
可选地,当后端程序对目标图像进行重定位过程后,将重定位得到的第二位姿参数,通过结果模块发送至第二位姿参数。
步骤607,前端程序根据第一位姿参数和第二位姿参数,计算得到当前图像的当前位姿参数。
可选地,前端程序按照如下公式计算得到当前位姿参数Rm+k和Tm+k如下:
其中,第一位姿参数包括第一旋转矩阵Rca和第一位移向量Tca,所述第二位姿参数包括第二旋转矩阵Rrelocalize和第二位移向量Trelocalice,s为目标图像对应的尺度。
可选地,s为预设值,或者,s为前端程序将第一个标记图像上的初始特征点映射至目标图像上得到投影特征点,根据投影特征点的平均深度计算得到所述目标图像对应的尺度。
综上所述,本实施例提供的重定位方法,通过前端程序将目标图像切换为第i+1个标记图像,在后端程序对目标图像进行重定位的过程中,由前端程序并行进行基于第i+1个标记图像的相机姿态追踪得到第一位姿参数,若在前端程序处理当前图像时得到重定位结果(第二位姿参数),则使用第一位姿参数和第二位姿参数修正当前图像的定位结果,从而解决了后端程序无法控制重定位结果成功的时间,则得到的好几帧图像之前的重定位结果不能直接用于当前图像的重定位的问题;达到了即便后端程序的重定位结果的时间较长,也能够通过叠加两个位姿变化量,来实现对当前图像的定位结果的修正,从而保证较好的重定位效果。
为了从另一角度来阐述上述重定位原理,结合图7和图8来对正常追踪过程和重定位成功过程进行说明。
正常追踪过程(图7):在基于第i个标记图像进行相机姿态追踪过程中,设第i个标记图像相对于第1个标记图像存在位姿变化量R_i_old和T_i_old,若图像帧m相对于第i个标记图像进行特征点追踪成功,得到位姿变化量Rca1和Tca1,则通过如下公式,计算得到图像帧m的相机位姿参数:
其中,si为所述第i个标记图像对应的尺度。
若图像帧m+k相对于第i个标记图像进行特征点追踪成功,得到位姿变化量Rca2和Tca2,则通过如下公式,计算得到图像帧m+k的相机位姿参数:
重定位成功(图8):在基于第i个标记图像进行相机姿态追踪过程中,目标图像发生了lost,则前端程序将目标图像切换为第i+1个标记图像,利用IMU采集到的参考位姿参数作为第i+1个标记图像相对于第1个标记图像的位姿变化量Rold和Told,若后端程序对目标图像的重定位成功,得到重定位结果Rrelocalize和Trelocalice,则通过如下公式,计算得到当前图像(图像帧m+k)的相机位姿参数:
在基于图6所示的可选实施例中,后端程序将目标图像相对于第一个标记图像进行重定位,得到第二位姿参数。如图9所示,上述步骤605包括如下子步骤:
步骤605a,获取第一个标记图像的初始特征点和初始位姿参数,初始位姿参数用于指示相机采集第一个标记图像时的相机姿态;
后端程序尝试将当前图像相对于第一个标记图像进行特征点追踪。此时,设备获取缓存的第一个标记图像中的初始特征点以及初始位姿参数,该初始位姿参数用于指示相机采集第一个标记图像时的相机姿态。
步骤605b,将目标图像相对于第一个标记图像进行特征点追踪,得到与初始特征点匹配的目标特征点;
可选地,每组匹配特征点对中包括两个互相匹配的初始特征点和目标特征点。
特征点追踪可采用基于视觉里程计的追踪算法,本申请对此不加以限定。在一个实施例中,特征点追踪采用KLT(Kanade-Lucas)光流追踪算法;在另一个实施例中,特征点追踪采用基于SIFT(Scale-Invariant Feature Transform,尺度不变特征转换)算法提取的SIFT特征描述子、ORB(Oriented FAST and Rotated BRIEF,快速特征点提取和描述)算法提取的ORB特征描述子进行特征点跟踪。本申请对特征点追踪的具体算法不加以限定,特征点追踪过程可以采用特征点法或直接法。
在一个实施例中,后端程序对第一个标记图像进行特征点提取,得到N个初始特征点;设备还对目标图像进行特征点提取,得到M个候选特征点;然后将M个候选特征点逐一与N个初始特征点进行匹配,确定出至少一组匹配特征点对。每组匹配特征点对包括:一个初始特征点和一个目标特征点。初始特征点是第1个标记图像上的特征点,目标特征点是目标图像上与该初始特征点匹配度最高的候选特征点。
可选地,初始特征点的数量大于或等于目标特征点的数量。比如,初始特征点的数量是450个,目标特征点为320个。
步骤605c,根据初始特征点和目标特征点,计算相机从初始姿态参数改变至目标姿态参数时的第二位姿参数,目标姿态参数用于表征相机在采集目标图像时的相机姿态;
可选地,设备根据初始特征点和目标特征点计算两帧图像之间的单应性矩阵homography;对单应性矩阵homography进行分解,得到相机从初始姿态参数改变至目标姿态参数时的位姿变化量Rrelocalize和Trelocalize。
单应性矩阵描述了两个平面之间的映射关系,若自然场景(现实环境)中的特征点都落在同一物理平面上,则可以通过单应性矩阵进行运动估计。当存在至少四对相匹配的初始特征点和目标特征点时,设备通过ransac对该单应性矩阵进行分解,得到旋转矩阵Rrelocalize和平移向量Trelocalize。
其中,Rrelocalize是相机从初始姿态参数改变至目标姿态参数时的旋转矩阵,Trelocalize是相机从初始姿态参数改变至目标姿态参数时的位移参数。
步骤605d,根据初始位姿参数和位姿变化量,重定位得到第二位姿参数。
设备将初始位姿参数利用位姿变化量进行变换后,重定位得到第二位姿参数Rrelocalize和Trelocalice,从而计算得到相机在采集目标图像时的相机姿态。
图8所示出的重定位方法是将目标图像相当于第一个标记图像进行重定位,该方法在某些场景下会存在重定位失败的可能性。比如目标图像对应的拍摄姿态与第一个标记图像的拍摄姿态之间的差别较大时,直接将目标图像和第一个标记图像建立匹配来实现重定位会失败。示意性的,设图10的(1)图是第一个标记图像,图10的(2)图是目标图像,由于目标图像和第一个标记图像之间的重合区域太少,达不到足够的匹配度,因此直接将目标图像和第一个标记图像进行重定位会失败。本申请的可选实施例中,引入图10的(3)图作为一阶关键帧图像,将目标图像相对于一阶关键帧图像进行重定位,能够提高重定位的成功概率。
在基于图6的实施例中,后端程序将目标图像相对于第一个标记图像进行重定位,得到第二位姿参数。如图11所示,上述步骤605包括如下子步骤:
步骤6051,从关键帧图像库中选择出目标关键帧图像;
关键帧图像库中存储有至少一个关键帧图像的图像信息,关键帧图像是在历史相机姿态追踪过程中重定位成功且相对于第一个标记图像存在第一重定位结果的图像;
在相机姿态追踪过程中会存在不止一次重定位过程。设备会在重定位成功的图像中挑选一些有代表性的图像作为关键帧图像保存至关键帧图像库。关键帧图像库是用于存储关键帧图像的数据库。关键帧图像库中存储有多个关键帧图像的图像信息。该图像信息包括:关键帧图像的图像本身、关键帧图像中的特征点和关键帧图像对应的第一重定位结果。可选地,图像信息还包括:关键帧图像的第一全局描述子,第一全局描述子用于以简要的数据量表示关键帧图像的图像特征。或者,第一全局描述子用于以简要的数据量唯一性地表示关键帧图像的图像特征。
当对目标图像进行重定位时,后端程序从关键帧图像库中挑选出目标关键帧图像。可选地,目标关键帧图像是在关键帧图像库中与目标图像的图像距离最接近的图像。在不同实施例中,图像距离能够采用图像相似度、图像特征相似度、相匹配的特征点之间的距离中的任意一种形式来表征,本申请实施例对此不加以限定。
在一个实施例中,设备从关键帧图像库中通过关键帧图像的第一全局描述子和目标图像的第二全局描述子之间的相似度,来挑选目标关键帧图像;在另一个实施例中,由于IMU能够采集到相机采集目标图像时的参考姿态参数(可能存在误差),设备从关键帧图像库中通过关键帧图像的第一姿态参数和目标图像的参考姿态参数之间的相似度,来挑选目标关键帧图像。
步骤6052,将目标图像相对于目标关键帧图像进行重定位,得到第二重定位结果;
当设备在关键帧图像库中挑选出目标关键帧图像之后,将目标图像相对于目标关键帧图像进行重定位。可选地,重定位的过程包括如下步骤:
1、获取目标关键帧图像的关键帧特征点和第一重定位结果;
关键帧图像库中存储有每个关键帧图像上的关键帧特征点和第一相机姿态追踪结果。可选地,关键帧特征点采用SIFT特征描述子或ORB特征描述子来表征。第一重定位结果是相机采集关键帧图像时的相机姿态参数(简称关键帧姿态参数),或者,第一重定位结果是相机采集关键帧图像时的相机姿态参数相对于相机采集第一个标记图像时的相机姿态参数的姿态变化量(旋转矩阵和位移向量)。
2、将目标图像相对于目标关键图像库进行特征点追踪,得到与关键帧特征点匹配的目标特征点;
可选地,每组匹配特征点对中包括两个互相匹配的关键帧特征点和目标特征点。
特征点追踪可采用基于视觉里程计的追踪算法,本申请对此不加以限定。在一个实施例中,特征点追踪采用KLT光流追踪算法;在另一个实施例中,特征点追踪采用基于SIFT算法提取的SIFT特征描述子、ORB算法提取的ORB特征描述子进行特征点跟踪。本申请对特征点追踪的具体算法不加以限定,特征点追踪过程可以采用特征点法或直接法。
在一个实施例中,由于目标关键帧图像是已经重定位成功的图像,设备在历史过程已经对目标关键帧图像进行特征点提取,得到N个关键帧特征点;设备还对目标图像进行特征点提取,得到M个候选特征点;然后将M个候选特征点逐一与N个初始特征点进行匹配,确定出至少一组匹配特征点对。每组匹配特征点对包括:一个关键帧特征点和一个目标特征点。关键帧特征点是目标关键帧图像上的特征点,目标特征点是目标图像上与该关键帧特征点匹配度最高的候选特征点。
可选地,关键帧特征点的数量大于或等于目标特征点的数量。比如,关键帧特征点的数量是480个,目标特征点为350个。
3、根据关键帧特征点和目标特征点,计算相机从关键帧姿态参数改变至第二姿态参数时的位姿变化量,第二姿态参数用于表征相机在采集目标图像时的相机姿态。
可选地,设备根据关键帧特征点和目标特征点计算两帧图像之间的单应性矩阵homography;对单应性矩阵homography进行分解,得到相机从关键帧姿态参数改变至第二姿态参数时的位姿变化量Rcm和Tcm,将位姿变化量Rcm和Tcm作为第二重定位结果。
其中,Rcm是相机从关键帧姿态参数改变至第二姿态参数时的旋转矩阵,Tcm是相机从关键帧姿态参数改变至第二姿态参数时的位移向量。
步骤6053,根据第一重定位结果和第二重定位结果,计算得到相机采集目标图像时的第二姿态参数。
假设第一重定位结果包括Rmf和Tmf。Rmf是相机从初始姿态参数改变至关键帧姿态参数时的旋转矩阵,Tmf是相机从初始姿态参数改变至关键帧姿态参数时的位移向量,第二重定位结果包括Rcm和Tcm。Rcm是相机从关键帧姿态参数改变至第二姿态参数时的旋转矩阵,Tcm是相机从关键帧姿态参数改变至第二姿态参数时的位移向量。采用如下公式计算得到相机采集目标图像时的目标姿态参数:
其中,Smf是目标关键帧图像的尺度。
需要说明的是,关键帧图像库包括:相对于第一个标记图像进行一阶重定位成功的一阶关键帧图像,和/或,相对关键帧图像库中的n-1阶关键帧图像进行n阶重定位成功的n阶关键帧图像,n为大于1的整数。上述仅以一阶重定位图像进行举例说明,对于n阶关键帧图像的第一重定位结果,可以将多个位姿变化量进行累乘得到,本申请对此不再赘述。
在基于图6的可选实施例中,前端程序将第一个标记图像上的初始特征点映射至目标图像上得到投影特征点,根据投影特征点的平均深度计算得到目标图像对应的尺度的过程如下:
1、获取第一个标记图像中的初始特征点的二维坐标;
前端程序预先提取和缓存有第一个标记图像中的初始特征点的二维坐标。该二维坐标采用齐次表示。
2、对初始特征点的二维坐标进行反投影,得到初始特征点在三维空间中的第一三维坐标Xborn;
前端程序通过如下公式将初始特征点的二维坐标变换至三维空间,得到这些初始特征点在三维空间中的第一三维坐标Xborn。
其中,fx、fy、cx、cy为相机的内置参数。初始特征点的二维坐标xborn是第一个标记图像上的layer-keyPoints的齐次表示,三维点xborn是非齐次表示。假设第一个标记图像的初始深度d为1。
3、将第一三维坐标Xborn通过如下公式进行三维旋转平移,得到初始特征点在目标图像上对应的第二三维坐标Xcurrent;
Xcurrent=R*Xborn+T;
其中,R是IMU采集的参考位姿变化量中的旋转矩阵,T是IMU采集的参考位姿变化量中的位移向量。
4、将第二三维坐标Xcurrent投影至目标图像,得到投影特征点在目标图像中的二维坐标;
前端程序通过如下公式将第二三维坐标Xcurrent投影至目标图像,得到投影特征点在目标图像中的二维坐标xcurrent:
其中,fx、fy、cx、cy为相机的内置参数。
5、根据投影特征点在目标图像中的平均深度,计算得到目标图像的尺度s。
在基于图6的可选实施例中,前端程序和后端程序之间通过结果模块(ResultModule),结果模块是前端程序和后端程序共享的存储空间。如图12所示,结果模块包括:重定位列表(Relocalization list)、结果标签(Result-flag)、结果存储位。可选地,结果模块还包括:扩展图列表(Expand-map list)、最近一次切换时间(Abandon Time)。
重定位列表用于存储需要进行重定位的目标图像。可选地,同一时间内重定位列表中最多有一张目标图像。当前端程序需要进行重定位时,将目标图像写入重定位列表。
结果标签用于存储后端程序的工作状态,包括:ready(准备)、have-result(得到结果)、still-sunning(正在计算)三种。Ready表示后端程序为已启动且空闲的状态;have-result表示后端程序对最近一次重定位已经计算完毕,存在重定位成功(OK)或重定位失败(Fail)两种情形;still-sunning表示正在计算且尚未计算完毕。
结果存储位用于在重定位成功时,存储第二位姿参数Rrelocalize和Trelocalice。
扩展图列表用于存储关键帧图像库的候选图像。当前端程序在正常相机追踪过程时,将图像传入扩展图列表,供后端程序对关键帧图像库进行扩展。
最近一次切换时间用于存储前端程序最近一次切换标记图像时的时间。比如,前端程序将目标图像设置为第i+1个标记图像时,记录该第i+1个标记图像的切换时间至Abandon Time。
在一个结合图12的实施例里,后端程序是一个持续在后台运行的线程,后端程序与前台程序运行在不同的线程中,通过结果模块实现进程间的通信。后端程序通过while(1)循环运行图13中的步骤:
步骤1200,等待新图像;
后端程序监测结果模块中的重定位列表以及扩展图列表。
步骤1201,判断重定位列表为空?
当重定位列表为空时,确定前台程序没有需要重定位的目标图像,进入步骤1202;当重定位列表不为空时,确定前台程序存在需要重定位的目标图像,进入步骤1204。
步骤1202,判断扩展图列表是否为空?
当扩展图列表不为空,进入步骤1203;当扩展图列表为空时,回到步骤1200。
步骤1203,扩展关键帧图像库;
后端程序利用扩展图列表中的候选图像对关键帧图像库(keyframe database)中的关键帧图像进行扩展,使得关键帧图像库中的关键帧图像得到添加或更新。
步骤1204,设置结果标签为正在运行(still-running);
后端程序将result flag设置为still-running,然后开始对目标图像进行重定位。
步骤1205,对需要进行重定位的目标图像进行重定位;
参考图9或图11的描述,本实施例不再赘述。可选地,后端程序对目标图像先相对于第一个标记图像进行重定位,重定位失败时再对目标图像相对于关键帧图像库进行重定位。或者,后端程序并行地对目标图像相对于第一个标记图像进行重定位,以及对目标图像相对于关键帧图像库进行重定位。
步骤1206,判断重定位过程是否成功?
当重定位成功时,进入步骤1207;当重定位失败时,进入步骤1208;
步骤1207,重定位成功时间是否早于最近一次切换时间;
最近一次切换时间,用于指示前端程序最近一次切换标记图像时的时间。
当重定位成功时间早于最近一次切换时间时,说明前台程序在将目标图像切换为第i+1个标记图像后,已经又切换了一次或多次标记图像,本次重定位结果为无效状态,进入步骤1208;当重定位成功时间晚于最近一次切换时间时,本次重定位结果为有效状态,进入步骤1209。
步骤1208,设置结果标签为失败;
后端程序将result flag设置为fail。
步骤1209,设置结果标签为成功。
后端程序将result flag设置为OK,并将第二位姿参数Rrelocalize和Trelocalice写入结果模块中。
在一个结合图12的实施例里,前端程序运行在主线程中,负责依序进行多个标记图像的相机追踪过程,后端程序与前端程序运行在不同的线程中,通过结果模块实现进程间的通信。前端程序中设置有两个标签:flag1和flag2,flag1用于表示是否需要进行重定位,flag2用于表示重定位失败,需要再次切换marker。前端程序用于执行如下步骤,如图14:
步骤1300,基于多个标记图像的相机姿态追踪;
前端程序负责基于多个标记图像的相机姿态追踪过程。示意性的,假设前端程序正在进行第i个标记图像的相机姿态追踪过程。
步骤1301,是否存在追踪结果;
前端程序获取第i个标记图像之后采集的目标图像,在将目标图像相对于第i个标记图像进行特征点追踪后,判断是否存在追踪结果。若存在追踪结果,则进入步骤1302;若不存在追踪结果,则进入步骤1303。
步骤1302,设置flag1为假;
继续进行步骤1300的相机姿态追踪过程。
步骤1303,设置flag1为真;
前端程序设置flag1为真,表示需要对目标图像进行重定位。
步骤1304,检测flag1的状态;
前端程序还会在每帧图像处理时,检测flag1的状态;若flag1的状态为假,则执行步骤1305,前端程序将目标图像发送至扩展图列表,供后端程序在扩展关键帧图像库时使用;若flag1的状态为真,则进入步骤1306,前端程序认为正在处理的目标图像需要进行重定位,检测flag2的状态。
若flag2的状态为否,表示上一次重定位成功,进入步骤1307;若flag2的状态为是,表示最近一次重定位失败,进入步骤1313。
步骤1307,检测后端程序的运行状态是否为ready?
前端程序读取结果模块中的结果标签,若结果标签为ready,说明后端程序处于空闲态,可以对目标图像进行重定位。
步骤1308,切换第i+1个标记图像,发送最近一次修改时间,将目标图像发送至重定位列表;
前端程序将目标图像切换为第i+1个标记图像,并将切换时间写入结果模块中的abandoned time。
步骤1309,尝试获取后端程序的重定位结果;
前端程序读取结果模块中的结果标签,若结果标签为still-running,则进入步骤1310;若结果标签为have result_ok,则进入步骤1311;若结果标签为have result_fail,则进入步骤1312。
步骤1310,做其它事务;
在后端程序对目标图像进行重定位的计算过程中,前端程序可以对目标图像之后的当前图像进行特征点追踪过程。
步骤1311,设置flag1为失败;
当对目标图像的重定位成功时,设置flag1为失败,表示不需要进行重定位,进行基于第i+1个标记图像的相机追踪过程。
步骤1312,设置flag2为成功;
当对目标图像的重定位失败时,设置flag2为成功。
步骤1313,切换至第i+2个标记图像,发送最近一次修改时间。
当前端程序获取到目标图像之后的当前图像时,若flag1为真且flag2为真时,表示后端程序的最近一次重定位过程失败,比如对目标图像的重定位过程失败,前端程序需要将目标图像之后的当前图像发送至重定位列表,以便后端程序对当前图像启动重定位过程。此时,前端程序将当前图像切换为第i+2个标记图像,再次将切换时间写入结果模块中的abandoned time。
在基于图12的可选实施例中,后端程序利用扩展图列表中的候选图像对关键帧图像库中的关键帧图像进行扩展,包括如下步骤:
步骤1,获取最近一个重定位成功的候选图像;
在初始状态下,关键帧图像库可以为空,后端程序仅使用第一个标记图像作为重定位时的标记图像。随着整个相机追踪过程的执行,会出现越来越多与第一个标记图像(或已加入关键帧图像库的关键帧图像)进行重定位成功的图像,
后端程序在每次重定位成功时,将重定位成功的图像作为可能添加至关键帧图像库的候选图像。可选地,重定位成功包括:相对于第一个标记图像进行重定位成功,或者,相对于关键帧图像库中已有的关键帧图像进行重定位成功。
后端程序从候选图像中挑选出一部分图像作为关键帧图像,添加至关键帧图像库中。
步骤2,确定候选图像是否满足添加条件,添加条件包括:候选图像和第一个标记图像之间的第一距离大于第一阈值,和/或,候选图像与上一次加入的关键帧图像之间的第二距离大于第二阈值;
可选地,本次添加的关键帧图像需要与第一个标记图像存在一定距离,因为如果两个图像比较接近,那么与直接用第一个标记图像进行重定位的效果没有明显差别。
后端程序计算候选图像与第一个标记图像之间的第一距离,第一距离用于表示候选图像和第一个标记图像之间的图像相似度或者相机姿态相似度。本申请对第一距离的具体计算方式不加以限定,在一个可选的实施例中,对于第一个标记图像中的初始特征点,候选图像中存在与初始特征点匹配的目标特征点,一个初始特征点和对应的目标特征点构成一个匹配特征点对,根据每一组匹配特征点分别计算L2距离(对应L2范数的欧几里得距离),将所有L2距离的平均值作为候选图像和第一个标记图像之间的第一距离。以第一阈值为50个像素点为例,当候选图像和第一个标记图像之间的第一距离大于50个像素点时,将候选图像添加至关键帧图像库。
可选地,本次添加的关键帧图像需要与上一次添加的关键帧图像存在一定距离,因为如果两个图像比较接近,那么与使用上一次添加的关键帧图像进行重定位的效果没有明显差别。
后端程序计算候选图像与上一次添加的关键帧图像之间的第二距离,第二距离用于表示候选图像和上一次添加的关键帧图像之间的图像相似度或相机姿态相似度。本申请对第二距离的具体计算方式不加以限定,在一个可选的实施例中,采用候选图像和上一次添加的关键帧图像之间的重定位图像个数作为第二距离,以第二阈值为10为例,若候选图像和上一次添加的关键帧图像之间的重定位图像个数超过10帧,则将候选图像添加至关键帧图像库中。
步骤3,当候选图像满足添加条件时,将候选图像加入关键帧图像库;
当确定候选图像满足添加条件时,将候选图像作为关键帧图像添加至关键帧图像库。可选地,将关键帧图像的第一全局描述子、关键帧特征点、第一重定位的定位结果存储至关键帧图像库。其中,第一全局描述子用于以简要的数据量表示关键帧图像的图像特征,第一重定位的定位结果可以使用相机采集关键帧图像时的关键帧姿态参数来表示,也可以采用相机从初始姿态参数改变至关键帧姿态参数时的姿态变化量来表示。
步骤4,当候选图像不满足添加条件时,将候选图像不加入关键帧图像库。
当候选图像与第一个标记图像之间的第一距离小于第一阈值,或者,候选图像与上一次添加的关键帧图像之间的第二距离小于第二阈值,则不将该候选图像加入关键帧图像库。
可选地,满足上述添加条件的关键帧图像可以用来扩展关键帧图像库,但是关键帧图像库中的关键帧图像不应当太多,太多的关键帧图像会造成重定位过程的计算量负担,导致难以搜索到理想的图像。在一个示意性的例子中,关键帧图像库中的关键帧图像不超过1000张。
当候选图像满足添加条件且关键帧图像库中的关键帧图像数量达到最大值(比如1000张)时,计算该候选图像和已有关键帧图像之间的相似度。将具有最大相似度的关键帧图像从关键帧图像库中删除,将候选图像加入关键帧图像库中。
以下为本申请的装置实施例,对于装置实施例中未详细描述的细节,可以参考如上所述的方法实施例。
请参考图15,其示出了本申请一个示例性实施例提供的相机姿态追踪过程的重定位装置的框图。该重定位装置可以通过软件、硬件或者两者的结合实现成为电子设备(或称移动终端)的全部或一部分,该重定位装置包括:前端程序模块1520和后端程序模块1540,所述前端程序模块1520用于按序执行多个标记图像的相机姿态追踪过程;
所述前端程序模块1520,还用于获取所述多个标记图像中第i个标记图像后采集的目标图像,i为正整数;
所述前端程序模块1520,还用于当所述目标图像符合重定位条件时,将所述目标图像切换为第i+1个标记图像,并将所述目标图像发送给所述后端程序模块;
所述前端程序模块1520,还用于获取在所述目标图像后采集的当前图像,将所述当前图像相对于所述目标图像进行特征点追踪得到第一位姿参数,所述第一位姿参数用于表示从所述目标图像至所述当前图像之间的相机姿态变化量;
所述后端程序模块1540,用于将所述目标图像进行重定位得到第二位姿参数,向所述前端程序发送所述第二位姿参数,所述第二位姿参数用于表示从第一个标记图像至所述目标图像之间的相机姿态变化量;
所述前端程序模块1520,用于根据所述第一位姿参数和所述第二位姿参数,计算得到所述当前图像的当前位姿参数。
在一个可选的实施例中,所述后端程序模块1540,用于将所述目标图像相对于所述第一个标记图像进行重定位,得到所述第二位姿参数;和/或,所述后端程序模块1540,用于将所述目标图像相对于关键帧图像库中的关键帧图像进行重定位,得到所述第二位姿参数;所述关键帧图像是重定位成功且相对于所述第一个标记图像存在重定位结果的图像。
在一个可选的实施例中,所述关键帧图像库包括:
相对于所述第一个标记图像进行一阶重定位成功的一阶关键帧图像;和/或,相对于所述关键帧图像库中的n-1阶关键帧图像进行n阶重定位成功的n阶关键帧图像,n为大于1的整数。
在一个可选的实施例中,所述前端程序模块1520,用于根据所述第一位姿参数和所述第二位姿参数,计算得到所述当前图像的当前位姿参数,包括:
按照如下公式计算得到所述当前位姿参数Rn和Tn如下:
其中,所述第一位姿参数包括第一旋转矩阵Rca和第一位移向量Tca,所述第二位姿参数包括第二旋转矩阵Rrelocalize和第二位移向量Trelocalice,s为所述目标图像对应的尺度。
在一个可选的实施例中,所述前端程序模块1520,用于将所述第一个标记图像上的初始特征点映射至所述目标图像上得到投影特征点,根据所述投影特征点的平均深度计算得到所述目标图像对应的尺度。
在一个可选的实施例中,所述装置还包括结果模块1560,所述结果模块1560是所述前端程序模块和所述后端程序模块共享的存储空间;
所述前端程序模块1520,用于将所述目标图像写入所述结果模块1560中的重定位图像列表;
所述后端程序模块1540,用于从所述重定位图像列表中读取所述目标图像。
在一个可选的实施例中,所述前端程序模块1520,用于检测所述结果模块1560中的结果状态位是否为准备状态;所述前端程序模块1520,用于当检测结果为所述结果状态位是准备状态时,将所述目标图像写入所述结果模块1560中的重定位图像列表。
在一个可选的实施例中,所述后端程序模块1540,用于将所述第二位姿参数写入所述结果模块中的结果存储位,所述结果模块1560是所述前端程序模块1520和所述后端程序模块1540共享的存储空间;所述前端程序模块1520,用于从所述结果存储位中读取所述第二位姿参数。
在一个可选的实施例中,所述前端程序模块1520,用于将所述目标图像写入所述结果模块中的扩展图列表;所述后端程序模块1540,用于在所述目标图像重定位成功且符合预设条件时,从所述扩展图列表读取所述目标图像添加至关键帧图像库中。
需要说明的是:上述实施例提供的相机姿态追踪过程的重定位装置在实现重定位时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的重定位装置与重定位方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图16示出了本发明一个示例性实施例提供的终端1600的结构框图。该终端1600可以是:智能手机、平板电脑、MP3播放器(Moving Picture Experts Group Audio LayerIII,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group AudioLayer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。终端1600还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,终端1600包括有:处理器1601和存储器1602。
处理器1601可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1601可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1601也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1601可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1601还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器1602可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1602还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1602中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器1601所执行以实现本申请中方法实施例提供的相机姿态追踪过程的重定位方法。
在一些实施例中,终端1600还可选包括有:外围设备接口1603和至少一个外围设备。处理器1601、存储器1602和外围设备接口1603之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口1603相连。具体地,外围设备包括:射频电路1604、触摸显示屏1605、摄像头1606、音频电路1607、定位组件1608和电源1609中的至少一种。
外围设备接口1603可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器1601和存储器1602。在一些实施例中,处理器1601、存储器1602和外围设备接口1603被集成在同一芯片或电路板上;在一些其他实施例中,处理器1601、存储器1602和外围设备接口1603中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路1604用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路1604通过电磁信号与通信网络以及其他通信设备进行通信。射频电路1604将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路1604包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路1604可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路1604还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏1605用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏1605是触摸显示屏时,显示屏1605还具有采集在显示屏1605的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器1601进行处理。此时,显示屏1605还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏1605可以为一个,设置终端1600的前面板;在另一些实施例中,显示屏1605可以为至少两个,分别设置在终端1600的不同表面或呈折叠设计;在再一些实施例中,显示屏1605可以是柔性显示屏,设置在终端1600的弯曲表面上或折叠面上。甚至,显示屏1605还可以设置成非矩形的不规则图形,也即异形屏。显示屏1605可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件1606用于采集图像或视频。可选地,摄像头组件1606包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件1606还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路1607可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器1601进行处理,或者输入至射频电路1604以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端1600的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器1601或射频电路1604的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路1607还可以包括耳机插孔。
定位组件1608用于定位终端1600的当前地理位置,以实现导航或LBS(LocationBased Service,基于位置的服务)。定位组件1608可以是基于美国的GPS(GlobalPositioning System,全球定位系统)、中国的北斗系统或俄罗斯的伽利略系统的定位组件。
电源1609用于为终端1600中的各个组件进行供电。电源1609可以是交流电、直流电、一次性电池或可充电电池。当电源1609包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
在一些实施例中,终端1600还包括有一个或多个传感器1610。该一个或多个传感器1610包括但不限于:加速度传感器1611、陀螺仪传感器1612、压力传感器1613、指纹传感器1614、光学传感器1615以及接近传感器1616。
加速度传感器1611可以检测以终端1600建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器1611可以用于检测重力加速度在三个坐标轴上的分量。处理器1601可以根据加速度传感器1611采集的重力加速度信号,控制触摸显示屏1605以横向视图或纵向视图进行用户界面的显示。加速度传感器1611还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器1612可以检测终端1600的机体方向及转动角度,陀螺仪传感器1612可以与加速度传感器1611协同采集用户对终端1600的3D动作。处理器1601根据陀螺仪传感器1612采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器1613可以设置在终端1600的侧边框和/或触摸显示屏1605的下层。当压力传感器1613设置在终端1600的侧边框时,可以检测用户对终端1600的握持信号,由处理器1601根据压力传感器1613采集的握持信号进行左右手识别或快捷操作。当压力传感器1613设置在触摸显示屏1605的下层时,由处理器1601根据用户对触摸显示屏1605的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
指纹传感器1614用于采集用户的指纹,由处理器1601根据指纹传感器1614采集到的指纹识别用户的身份,或者,由指纹传感器1614根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器1601授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器1614可以被设置终端1600的正面、背面或侧面。当终端1600上设置有物理按键或厂商Logo时,指纹传感器1614可以与物理按键或厂商Logo集成在一起。
光学传感器1615用于采集环境光强度。在一个实施例中,处理器1601可以根据光学传感器1615采集的环境光强度,控制触摸显示屏1605的显示亮度。具体地,当环境光强度较高时,调高触摸显示屏1605的显示亮度;当环境光强度较低时,调低触摸显示屏1605的显示亮度。在另一个实施例中,处理器1601还可以根据光学传感器1615采集的环境光强度,动态调整摄像头组件1606的拍摄参数。
接近传感器1616,也称距离传感器,通常设置在终端1600的前面板。接近传感器1616用于采集用户与终端1600的正面之间的距离。在一个实施例中,当接近传感器1616检测到用户与终端1600的正面之间的距离逐渐变小时,由处理器1601控制触摸显示屏1605从亮屏状态切换为息屏状态;当接近传感器1616检测到用户与终端1600的正面之间的距离逐渐变大时,由处理器1601控制触摸显示屏1605从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图16中示出的结构并不构成对终端1600的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
本申请还提供一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现上述方法实施例提供的重定位方法。
本申请还提供了一种计算机程序产品,当其在电子设备上运行时,使得电子设备执行上述各个方法实施例所述的重定位方法。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (15)
1.一种相机姿态追踪过程的重定位方法,其特征在于,应用于运行有前端程序和后端程序的设备中,所述前端程序用于按序执行多个标记图像的相机姿态追踪过程,所述方法包括:
所述前端程序获取所述多个标记图像中第i个标记图像后采集的目标图像,i为正整数;
当所述目标图像符合重定位条件时,所述前端程序将所述目标图像切换为第i+1个标记图像,并将所述目标图像发送给所述后端程序;
所述前端程序获取在所述目标图像后采集的当前图像,将所述当前图像相对于所述目标图像进行特征点追踪得到第一位姿参数,所述第一位姿参数用于表示从所述目标图像至所述当前图像之间的相机姿态变化量;
所述后端程序将所述目标图像进行重定位得到第二位姿参数,向所述前端程序发送所述第二位姿参数,所述第二位姿参数用于表示从第一个标记图像至所述目标图像之间的相机姿态变化量;
所述前端程序根据所述第一位姿参数和所述第二位姿参数,计算得到所述当前图像的当前位姿参数。
2.根据权利要求1所述的方法,其特征在于,所述后端程序将所述目标图像进行重定位得到第二位姿参数,包括:
所述后端程序将所述目标图像相对于所述第一个标记图像进行重定位,得到所述第二位姿参数;
和/或,
所述后端程序将所述目标图像相对于关键帧图像库中的关键帧图像进行重定位,得到所述第二位姿参数;所述关键帧图像是重定位成功且相对于所述第一个标记图像存在重定位结果的图像。
3.根据权利要求2所述的方法,其特征在于,所述关键帧图像库包括:
相对于所述第一个标记图像进行一阶重定位成功的一阶关键帧图像;
和/或,
相对于所述关键帧图像库中的n-1阶关键帧图像进行n阶重定位成功的n阶关键帧图像,n为大于1的整数。
4.根据权利要求1至3任一所述的方法,其特征在于,所述前端程序用于根据所述第一位姿参数和所述第二位姿参数,计算得到所述当前图像的当前位姿参数,包括:
按照如下公式计算得到所述当前位姿参数Rn和Tn如下:
其中,所述第一位姿参数包括第一旋转矩阵Rca和第一位移向量Tca,所述第二位姿参数包括第二旋转矩阵Rrelocalize和第二位移向量Trelocalice,s为所述目标图像对应的尺度。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
所述前端程序将所述第一个标记图像上的初始特征点映射至所述目标图像上得到投影特征点,根据所述投影特征点的平均深度计算得到所述目标图像对应的尺度。
6.根据权利要求1至3任一所述的方法,其特征在于,所述前端程序将所述目标图像发送给所述后端程序,包括:
所述前端程序将所述目标图像写入结果模块中的重定位图像列表,所述结果模块是所述前端程序和所述后端程序共享的存储空间;
所述后端程序从所述重定位图像列表中读取所述目标图像。
7.根据权利要求6所述的方法,其特征在于,所述前端程序将所述目标图像写入结果模块中的重定位图像列表,包括:
所述前端程序检测所述结果模块中的结果状态位是否为准备状态;
所述前端程序在检测结果为所述结果状态位是准备状态时,将所述目标图像写入所述结果模块中的重定位图像列表。
8.根据权利要求6所述的方法,其特征在于,所述后端程序向所述前端程序发送所述第二位姿参数,包括:
所述后端程序将所述第二位姿参数写入所述结果模块中的结果存储位,所述结果模块是所述前端程序和所述后端程序共享的存储空间;
所述前端程序从所述结果存储位中读取所述第二位姿参数。
9.根据权利要求6所述的方法,其特征在于,所述方法还包括:
所述前端程序将所述目标图像写入所述结果模块中的扩展图列表;
所述后端程序在所述目标图像重定位成功且符合预设条件时,从所述扩展图列表读取所述目标图像添加至关键帧图像库中。
10.一种相机姿态追踪过程的重定位装置,其特征在于,所述装置包括:前端程序模块和后端程序模块,所述前端程序模块用于按序执行多个标记图像的相机姿态追踪过程;
所述前端程序模块,还用于获取所述多个标记图像中第i个标记图像后采集的目标图像,i为正整数;
所述前端程序模块,还用于当所述目标图像符合重定位条件时,将所述目标图像切换为第i+1个标记图像,并将所述目标图像发送给所述后端程序模块;
所述前端程序模块,还用于获取在所述目标图像后采集的当前图像,将所述当前图像相对于所述目标图像进行特征点追踪得到第一位姿参数,所述第一位姿参数用于表示从所述目标图像至所述当前图像之间的相机姿态变化量;
所述后端程序模块,用于将所述目标图像进行重定位得到第二位姿参数,向所述前端程序发送所述第二位姿参数,所述第二位姿参数用于表示从第一个标记图像至所述目标图像之间的相机姿态变化量;
所述前端程序模块,用于根据所述第一位姿参数和所述第二位姿参数,计算得到所述当前图像的当前位姿参数。
11.根据权利要求10所述的装置,其特征在于,
所述后端程序模块,用于将所述目标图像相对于所述第一个标记图像进行重定位,得到所述第二位姿参数;
和/或,
所述后端程序模块,用于将所述目标图像相对于关键帧图像库中的关键帧图像进行重定位,得到所述第二位姿参数;所述关键帧图像是重定位成功且相对于所述第一个标记图像存在重定位结果的图像。
12.根据权利要求11所述的装置,其特征在于,所述关键帧图像库包括:
相对于所述第一个标记图像进行一阶重定位成功的一阶关键帧图像;
和/或,
相对于所述关键帧图像库中的n-1阶关键帧图像进行n阶重定位成功的n阶关键帧图像,n为大于1的整数。
13.根据权利要求10至12任一所述的装置,其特征在于,
所述前端程序模块,用于根据所述第一位姿参数和所述第二位姿参数,计算得到所述当前图像的当前位姿参数,包括:
按照如下公式计算得到所述当前位姿参数Rn和Tn如下:
其中,所述第一位姿参数包括第一旋转矩阵Rca和第一位移向量Tca,所述第二位姿参数包括第二旋转矩阵Rrelocalize和第二位移向量Trelocalice,s为所述目标图像对应的尺度。
14.一种电子设备,其特征在于,所述电子设备包括存储器和处理器;
所述存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如权利要求1至9任一所述的重定位方法。
15.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令,所述至少一条指令由处理器加载并执行以实现如权利要求1至9任一所述的重定位方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810392872.5A CN108876854B (zh) | 2018-04-27 | 2018-04-27 | 相机姿态追踪过程的重定位方法、装置、设备及存储介质 |
EP19794077.8A EP3786895A4 (en) | 2018-04-27 | 2019-03-27 | METHOD, DEVICE AND APPARATUS FOR REPOSITIONING IN A CAMERA ORIENTATION TRACKING PROCESS, AND INFORMATION HOLDER |
PCT/CN2019/079781 WO2019205868A1 (zh) | 2018-04-27 | 2019-03-27 | 相机姿态追踪过程的重定位方法、装置、设备及存储介质 |
US16/919,059 US11276183B2 (en) | 2018-04-27 | 2020-07-01 | Relocalization method and apparatus in camera pose tracking process, device, and storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810392872.5A CN108876854B (zh) | 2018-04-27 | 2018-04-27 | 相机姿态追踪过程的重定位方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108876854A true CN108876854A (zh) | 2018-11-23 |
CN108876854B CN108876854B (zh) | 2022-03-08 |
Family
ID=64326671
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810392872.5A Active CN108876854B (zh) | 2018-04-27 | 2018-04-27 | 相机姿态追踪过程的重定位方法、装置、设备及存储介质 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11276183B2 (zh) |
EP (1) | EP3786895A4 (zh) |
CN (1) | CN108876854B (zh) |
WO (1) | WO2019205868A1 (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110008856A (zh) * | 2019-03-20 | 2019-07-12 | 联想(北京)有限公司 | 定位方法和电子设备 |
CN110307838A (zh) * | 2019-08-26 | 2019-10-08 | 深圳市优必选科技股份有限公司 | 机器人重定位方法、装置、计算机可读存储介质及机器人 |
WO2019205868A1 (zh) * | 2018-04-27 | 2019-10-31 | 腾讯科技(深圳)有限公司 | 相机姿态追踪过程的重定位方法、装置、设备及存储介质 |
CN111339228A (zh) * | 2020-02-18 | 2020-06-26 | Oppo广东移动通信有限公司 | 一种地图更新方法、设备、云服务器和存储介质 |
CN111552757A (zh) * | 2020-04-30 | 2020-08-18 | 上海商汤临港智能科技有限公司 | 生成电子地图的方法、装置、设备及存储介质 |
CN112164114A (zh) * | 2020-09-23 | 2021-01-01 | 天津大学 | 一种基于天际线匹配的室外主动相机重定位方法 |
CN113785299A (zh) * | 2019-05-03 | 2021-12-10 | 丰田汽车欧洲股份有限公司 | 用于发现对象的图像获取设备 |
CN113792639A (zh) * | 2021-09-07 | 2021-12-14 | 北京沃东天骏信息技术有限公司 | 视频关键帧提取方法、电子设备及存储介质 |
US11321870B2 (en) | 2018-05-22 | 2022-05-03 | Tencent Technology (Shenzhen) Company Limited | Camera attitude tracking method and apparatus, device, and system |
WO2023060964A1 (zh) * | 2021-10-14 | 2023-04-20 | 上海商汤智能科技有限公司 | 标定方法及相关装置、设备、存储介质和计算机程序产品 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7404011B2 (ja) * | 2019-09-24 | 2023-12-25 | 東芝テック株式会社 | 情報処理装置 |
US11315326B2 (en) * | 2019-10-15 | 2022-04-26 | At&T Intellectual Property I, L.P. | Extended reality anchor caching based on viewport prediction |
Citations (5)
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 | 武汉科技大学 | 一种基于二维平面模板的相机标定方法及系统 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6787750B1 (en) * | 2000-06-29 | 2004-09-07 | Siemens Corporate Research, Inc. | Method and apparatus for robust optical tracking with beacon markers |
CN104243833B (zh) * | 2014-09-30 | 2017-12-08 | 精宸智云(武汉)科技有限公司 | 一种相机姿态的调整方法及装置 |
US10802147B2 (en) * | 2016-05-18 | 2020-10-13 | Google Llc | System and method for concurrent odometry and mapping |
CN106885574B (zh) * | 2017-02-15 | 2020-02-07 | 北京大学深圳研究生院 | 一种基于重跟踪策略的单目视觉机器人同步定位与地图构建方法 |
CN109542093B (zh) * | 2017-09-22 | 2022-06-07 | 华为技术有限公司 | 一种处理数据的方法和装置 |
CN108596976B (zh) | 2018-04-27 | 2022-02-22 | 腾讯科技(深圳)有限公司 | 相机姿态追踪过程的重定位方法、装置、设备及存储介质 |
CN108876854B (zh) * | 2018-04-27 | 2022-03-08 | 腾讯科技(深圳)有限公司 | 相机姿态追踪过程的重定位方法、装置、设备及存储介质 |
CN108682038B (zh) | 2018-04-27 | 2021-12-14 | 腾讯科技(深圳)有限公司 | 位姿确定方法、装置及存储介质 |
CN108615248B (zh) | 2018-04-27 | 2022-04-05 | 腾讯科技(深圳)有限公司 | 相机姿态追踪过程的重定位方法、装置、设备及存储介质 |
CN108537845B (zh) | 2018-04-27 | 2023-01-03 | 腾讯科技(深圳)有限公司 | 位姿确定方法、装置及存储介质 |
CN110555883B (zh) | 2018-04-27 | 2022-07-22 | 腾讯科技(深圳)有限公司 | 相机姿态追踪过程的重定位方法、装置及存储介质 |
CN108682036B (zh) | 2018-04-27 | 2022-10-25 | 腾讯科技(深圳)有限公司 | 位姿确定方法、装置及存储介质 |
-
2018
- 2018-04-27 CN CN201810392872.5A patent/CN108876854B/zh active Active
-
2019
- 2019-03-27 WO PCT/CN2019/079781 patent/WO2019205868A1/zh active Application Filing
- 2019-03-27 EP EP19794077.8A patent/EP3786895A4/en active Pending
-
2020
- 2020-07-01 US US16/919,059 patent/US11276183B2/en active Active
Patent Citations (5)
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)
Title |
---|
何芳: "基于双目视觉的四旋翼无人机定位系统设计与实现", 《中国优秀硕士学位论文全文数据库工程科技Ⅱ辑》 * |
曹恒: "基于单目视觉的SLAM算法研究", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019205868A1 (zh) * | 2018-04-27 | 2019-10-31 | 腾讯科技(深圳)有限公司 | 相机姿态追踪过程的重定位方法、装置、设备及存储介质 |
US11276183B2 (en) | 2018-04-27 | 2022-03-15 | Tencent Technology (Shenzhen) Company Limited | Relocalization method and apparatus in camera pose tracking process, device, and storage medium |
US11321870B2 (en) | 2018-05-22 | 2022-05-03 | Tencent Technology (Shenzhen) Company Limited | Camera attitude tracking method and apparatus, device, and system |
CN110008856A (zh) * | 2019-03-20 | 2019-07-12 | 联想(北京)有限公司 | 定位方法和电子设备 |
CN113785299A (zh) * | 2019-05-03 | 2021-12-10 | 丰田汽车欧洲股份有限公司 | 用于发现对象的图像获取设备 |
CN113785299B (zh) * | 2019-05-03 | 2023-12-19 | 丰田汽车欧洲股份有限公司 | 用于发现对象的图像获取设备 |
CN110307838B (zh) * | 2019-08-26 | 2019-12-10 | 深圳市优必选科技股份有限公司 | 机器人重定位方法、装置、计算机可读存储介质及机器人 |
CN110307838A (zh) * | 2019-08-26 | 2019-10-08 | 深圳市优必选科技股份有限公司 | 机器人重定位方法、装置、计算机可读存储介质及机器人 |
CN111339228A (zh) * | 2020-02-18 | 2020-06-26 | Oppo广东移动通信有限公司 | 一种地图更新方法、设备、云服务器和存储介质 |
CN111339228B (zh) * | 2020-02-18 | 2023-08-11 | Oppo广东移动通信有限公司 | 一种地图更新方法、设备、云服务器和存储介质 |
CN111552757A (zh) * | 2020-04-30 | 2020-08-18 | 上海商汤临港智能科技有限公司 | 生成电子地图的方法、装置、设备及存储介质 |
CN111552757B (zh) * | 2020-04-30 | 2022-04-01 | 上海商汤临港智能科技有限公司 | 生成电子地图的方法、装置、设备及存储介质 |
CN112164114A (zh) * | 2020-09-23 | 2021-01-01 | 天津大学 | 一种基于天际线匹配的室外主动相机重定位方法 |
CN113792639A (zh) * | 2021-09-07 | 2021-12-14 | 北京沃东天骏信息技术有限公司 | 视频关键帧提取方法、电子设备及存储介质 |
WO2023060964A1 (zh) * | 2021-10-14 | 2023-04-20 | 上海商汤智能科技有限公司 | 标定方法及相关装置、设备、存储介质和计算机程序产品 |
Also Published As
Publication number | Publication date |
---|---|
EP3786895A4 (en) | 2022-01-19 |
US11276183B2 (en) | 2022-03-15 |
WO2019205868A1 (zh) | 2019-10-31 |
EP3786895A1 (en) | 2021-03-03 |
US20200334836A1 (en) | 2020-10-22 |
CN108876854B (zh) | 2022-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108876854A (zh) | 相机姿态追踪过程的重定位方法、装置、设备及存储介质 | |
CN108615247B (zh) | 相机姿态追踪过程的重定位方法、装置、设备及存储介质 | |
CN110555883B (zh) | 相机姿态追踪过程的重定位方法、装置及存储介质 | |
CN108596976B (zh) | 相机姿态追踪过程的重定位方法、装置、设备及存储介质 | |
CN108615248B (zh) | 相机姿态追踪过程的重定位方法、装置、设备及存储介质 | |
CN108734736A (zh) | 相机姿态追踪方法、装置、设备及存储介质 | |
CN109947886B (zh) | 图像处理方法、装置、电子设备及存储介质 | |
CN108682038B (zh) | 位姿确定方法、装置及存储介质 | |
WO2019205850A1 (zh) | 位姿确定方法、装置、智能设备及存储介质 | |
CN108682037A (zh) | 相机姿态追踪过程的重定位方法、装置、设备及存储介质 | |
WO2019205851A1 (zh) | 位姿确定方法、装置、智能设备及存储介质 | |
EP3813014B1 (en) | Camera localization method, terminal and storage medium | |
WO2019154231A1 (zh) | 图像处理方法、电子设备及存储介质 | |
CN110222789A (zh) | 图像识别方法及存储介质 | |
CN109712224A (zh) | 虚拟场景的渲染方法、装置及智能设备 | |
CN109815150A (zh) | 应用测试方法、装置、电子设备及存储介质 | |
CN110064200A (zh) | 基于虚拟环境的物体构建方法、装置及可读存储介质 | |
CN109886208B (zh) | 物体检测的方法、装置、计算机设备及存储介质 | |
CN110059686A (zh) | 字符识别方法、装置、设备及可读存储介质 | |
CN109992685A (zh) | 一种检索图片的方法及装置 | |
CN110152293A (zh) | 操控对象的定位方法及装置、游戏对象的定位方法及装置 | |
CN113033590B (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 |