CN116862979A - 重定位方法及相关设备 - Google Patents
重定位方法及相关设备 Download PDFInfo
- Publication number
- CN116862979A CN116862979A CN202210306850.9A CN202210306850A CN116862979A CN 116862979 A CN116862979 A CN 116862979A CN 202210306850 A CN202210306850 A CN 202210306850A CN 116862979 A CN116862979 A CN 116862979A
- Authority
- CN
- China
- Prior art keywords
- image frame
- current image
- frame
- key frame
- feature
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 82
- 239000011159 matrix material Substances 0.000 claims description 35
- 230000008569 process Effects 0.000 claims description 19
- 230000004044 response Effects 0.000 claims description 18
- 238000012216 screening Methods 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 7
- 238000000605 extraction Methods 0.000 claims description 6
- 230000003287 optical effect Effects 0.000 claims description 5
- 230000001133 acceleration Effects 0.000 claims 1
- 238000009825 accumulation Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 11
- 102000008115 Signaling Lymphocytic Activation Molecule Family Member 1 Human genes 0.000 description 9
- 108010074687 Signaling Lymphocytic Activation Molecule Family Member 1 Proteins 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 6
- 238000013507 mapping Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000004807 localization Effects 0.000 description 2
- 230000003252 repetitive effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 244000291564 Allium cepa Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000013178 mathematical model Methods 0.000 description 1
- 230000037361 pathway Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- 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
-
- 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
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/74—Image or video pattern matching; Proximity measures in feature spaces
-
- 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)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Multimedia (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Image Analysis (AREA)
Abstract
本公开提供一种重定位方法,包括:响应于确定当前图像帧满足重定位条件,获取所述当前图像帧的特征点以及各特征点的描述子;基于所述当前图像帧的特征点以及各特征点的描述子,将所述当前图像帧分别与已保存的每一个关键帧进行特征匹配,分别得到所述当前图像帧与每一个关键帧匹配后的特征点对;基于所述特征点对分别确定所述当前图像帧与每一个关键帧的匹配度;将与所述当前图像帧匹配度最高的关键帧确定为目标关键帧;以及使用所述目标关键帧对应的相机位姿替换所述当前图像帧对应的相机位姿。基于上述重定位方法,本公开还提供了重定位装置、电子设备、存储介质以及程序产品。
Description
技术领域
本公开涉及计算机视觉技术领域,尤其涉及一种重定位方法、装置、电子设备、存储介质及程序产品。
背景技术
同时定位与地图构建(Simultaneous Localization and Mapping,SLAM)是指机器人搭载特定传感器,在没有环境先验信息的情况下,于运动过程中估计传感器的位姿并同时对周围环境建模。在上述传感器主要为相机时,则可以将SLAM称之为视觉SLAM(VSLAM)。SLAM技术已经研究和发展了三十多年,研究人员已经做了大量的工作,近十年来,随着计算机视觉的发展,VSLAM以其硬件成本低廉、轻便、高精度等优势获得了学术界和工业界的青睐。
目前,SLAM技术已经广泛应用于各种增强现实的应用中,例如,平面检测和平面跟踪等。然而,由于噪声的存在,上述平面跟踪结果可能会存在误差。同时,SLAM技术采用的渐近式的帧间匹配方式还可能会造成误差的积累,从而导致在使用一段时间后平面跟踪结果存在漂移。因此,如何在SLAM的平面跟踪过程中消除误差的积累成为SLAM技术需要解决的关键问题之一。
发明内容
有鉴于此,本公开的实施例提供一种重定位方法,可以在平面跟踪过程中,准确确定相机位姿,消除平面跟踪过程的误差积累,从而保证平面跟踪的准确度。
根据本公开的一些实施例,上述重定位方法可以包括:响应于确定当前图像帧满足重定位条件,获取所述当前图像帧的特征点以及各特征点的描述子;基于所述当前图像帧的特征点以及各特征点的描述子,将所述当前图像帧分别与已保存的每一个关键帧进行特征匹配,分别得到所述当前图像帧与每一个关键帧匹配后的特征点对;基于所述特征点对分别确定所述当前图像帧与每一个关键帧的匹配度;将与所述当前图像帧匹配度最高的关键帧确定为目标关键帧;以及使用所述目标关键帧对应的相机位姿替换所述当前图像帧对应的相机位姿。
基于上述重定位方法,本公开的实施例提供了一种重定位装置,包括:
第一特征点获取模块,用于响应于确定满足重定位条件,获取当前图像帧的特征点以及各特征点的描述子;
第一特征匹配模块,用于基于所述当前图像帧的特征点以及各特征点的描述子,将所述当前图像帧分别与已保存的每一个关键帧进行特征匹配,分别得到所述当前图像帧与每一个关键帧匹配后的特征点对;
匹配度确定模块,用于基于所述特征点对分别确定所述当前图像帧与每一个关键帧的匹配度;
目标关键帧确定模块,用于将与所述当前图像帧匹配度最高的关键帧确定为目标关键帧;以及
位姿替换模块,用于使用所述目标关键帧对应的相机位姿替换所述当前图像帧对应的相机位姿。
此外,本公开的实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述重定位方法。
本公开的实施例还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使计算机执行上述重定位方法。
本公开的实施例还提供了一种计算机程序产品,包括计算机程序指令,当所述计算机程序指令在计算机上运行时,使得计算机执行上述重定位方法。
从上述内容可以看出,在相机的反复运动过程中,相机位姿可能会因误差积累而产生漂移,从而导致平面跟踪结果也存在漂移。而通过本公开提供的重定位方法和装置,当相机运动回到已保存的一个关键帧对应的位姿时可以准确确定到这个关键帧,并利用这个关键帧对应的相机位姿替换当前图像帧对应的相机位姿,从而直接将相机位姿拉回到之前已经保存的关键帧对应的相机位姿上,以消除平面跟踪过程的误差积累,解决由于误差积累所造成的平面跟踪的漂移问题,保证平面跟踪的准确度。
附图说明
为了更清楚地说明本公开或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1显示了本公开一些实施例所述的重定位方法中保留关键帧部分的实现流程;
图2显示了本公开一些实施例所述的基于保留的关键帧进行相机位姿重定位的实现流程;
图3显示了本公开一些实施例所述的确定第二图像帧与关键帧的匹配度的具体实现流程;
图4显示了本公开一些实施例所述的重定位装置的内部结构示意图;
图5显示了本公开另一些实施例所述的重定位装置的内部结构示意图;
图6示出了本实施例所提供的一种更为具体的电子设备硬件结构示意图。
具体实施方式
为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开进一步详细说明。
需要说明的是,除非另外定义,本公开实施例使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
如前所述,SLAM技术采用渐近式的帧间匹配方式进行平面跟踪。在进行平面跟踪的过程中可以得到一段视频中各图像帧对应的相机位姿。具体地,在平面跟踪过程中,可以首先对当前图像帧进行特征提取,得到当前图像帧的多个特征点以及各特征点的描述子;再将当前图像帧的特征点与其前一图像帧的特征点进行匹配;然后,再根据特征匹配结果确定当前图像帧和其前一图像帧特征点之间的映射关系,并根据这种映射关系确定当前图像帧对应的相机位姿,并进一步跟踪图像帧中的平面等。上述映射关系例如可以是两个图像帧之间的单应性矩阵或者是两个图像帧之间的基础矩阵等等。而由于噪声的存在,通过上述方法得到每一图像帧对应相机位姿以及平面跟踪等结果均可能会存在误差。且由于上述结果均是根据当前图像帧与其前一图像帧之间的关系得到的,因此,在上述平面跟踪过程运行一段时间之后,还可能会造成误差的积累,从而导致在使用一段时间后平面跟踪结果将存在严重漂移。
为此,本公开的一些实施例提供了一种重定位方法,可以在平面跟踪过程中准确确定相机位姿,消除平面跟踪过程的误差积累,保证平面跟踪的准确度。需要说明的是,在本公开的实施例中,上述重定位方法可以由一平面跟踪设备实现。在本公开的实施例中,上述平面跟踪设备可以是具有计算能力的电子设备。上述平面跟踪设备还可以通过显示屏幕显示可以与用户进行交互的交互界面,从而为用户提供视频或图像处理的功能。
本公开实施例所述的重定位方法通常在对当前图像帧进行平面跟踪之后执行,主要包括两个部分的内容。其中,第一部分的内容是保留关键帧;第二部分的内容是基于保留的关键帧进行相机位姿的重定位。下面就分别对上述两个部分的内容进行详细说明。
图1显示了本公开实施例所述的重定位方法中保留关键帧部分的实现流程。如图1所示,该方法可以包括如下步骤:
在步骤102,响应于确定第一图像帧满足关键帧初筛条件,获取上述第一图像帧的特征点以及各特征点的描述子。
在本公开的实施例中,上述第一图像帧是指当前需要进行平面跟踪的视频中的任意一个图像帧,也即代表待处理的当前图像帧。为了描述方便,在本实施例中将其称为第一图像帧。
此外,上述关键帧初筛条件是预先设置的用于启动保留关键帧部分操作的条件,也即在确定当前图像帧满足上述关键帧初筛条件时,则启动保留关键帧的操作,执行后续的流程;而如果确定当前图像帧不满足上述关键帧初筛条件,则不执行后续的流程。
在本公开的一些实施例中,上述关键帧初筛条件可以包括:确定上述第一图像帧所对应的相机位姿与已保存的关键帧所对应的相机位姿之间的差异均大于预先设定的位姿差异阈值。上述位姿差异阈值可以包括距离差异阈值以及视角差异阈值。具体地,如果确定上述第一图像帧所对应的相机位姿与已保存的任意关键帧所对应的相机位姿的距离超过上述距离差异阈值和/或其视角差异超过上述视角差异阈值,则可以确定上述第一图像帧所对应的相机位姿与已保存的关键帧所对应的相机位姿之间的差异均大于预先设定的位姿差异阈值,也即上述第一图像帧满足上述关键帧初筛条件。这种情况适用于机器自动选择关键帧的情况。通常,还可以将一段视频的初始图像帧自动设置为第一个关键帧。
在本公开的另一些实施例中,上述关键帧初筛条件可以包括:检测到用户点击上述平面跟踪设备的屏幕。这种情况适用于人工选择关键帧的情况。用户在通过上述平面跟踪设备的屏幕观看一段视频时,可以人工判断关键帧所在的位置,并在确定当前显示的图像帧为关键帧时,选择点击屏幕跟踪设备的屏幕,以启动保留关键帧的操作。
需要说明的是,上述第一图像帧所对应的相机位姿可以通过前述的平面跟踪过程获得,在此不再赘述。
此外,具体地,在本公开的实施例中,在上述步骤102,上述平面跟踪设备可以采用任意一种计算机视觉的图像特征提取方法对上述第一图像帧进行特征提取,以获取上述第一图像帧的特征点以及各特征点的描述子。例如,上述平面跟踪设备可以采用尺度不变特征变换(Scale-invariant feature transform,SIFT)算法、ORB(Oriented FAST andRotated BRIEF)算法以及加速版的具有鲁棒特性的特征算法(Speed Up RobustFeatures,SURF)等等方法对上述第一图像帧进行特征提取,以获取第一图像帧的特征点以及各特征点的描述子。本公开对上述步骤102具体采用的特征提取方法不进行限定。
在本公开的另一些实施例中,如果之前在对上述第一图像帧进行平面跟踪时已经提取并记录了上述第一图像帧的特征点以及各特征点的描述子,也可以直接读取已记录的上述第一图像帧的特征点以及各特征点的描述子,而无需重新对上述第一图像帧进行特征提取。
在本公开的另一些实施例中,在获取了上述第一图像帧的特征点以及各特征点的描述子之后,还可以进一步确定上述第一图像帧的特征点的数量是否小于预先设定的特征点数量阈值。响应于确定上述第一图像帧的特征点的数量小于上述特征点数量阈值,可以确定上述第一图像帧不是关键帧,并结束上述流程;响应于确定上述第一图像帧的特征点的数量大于或等于上述特征点数量阈值,可以继续执行下面的步骤104。
在步骤104,基于上述第一图像帧的特征点以及各特征点的描述子将上述第一图像帧与已保存的参考图像帧进行特征匹配,得到匹配后的特征点对。
在本公开的实施例中,上述参考图像帧可以为由上述平面跟踪设备处理并保存的在上述第一图像帧之前的图像帧。例如,上述参考图像帧可以是上述第一图像帧的前一个图像帧。又例如,上述参考图像帧还可以是上述第一图像帧的前一个关键帧。
在本公开的实施例中,每个特征点对均包含了上述第一图像帧中的一个特征点还包含了上述参考图像帧中的一个与上述第一图像帧中特征点对应的特征点。具体地,上述平面跟踪设备可以根据各个特征点的描述子来进行特征匹配。在本公开的另一些实施例中,上述平面跟踪设备还可以采用光流跟踪算法将上述第一图像帧中的特征点跟踪到上述参考图像帧中的特征点。本公开对上述步骤104具体采用的特征匹配方法不进行限定。
在步骤106,根据上述匹配后的特征点对估计上述第一图像帧与上述参考图像帧之间的单应矩阵。
在本公开的实施例中,上述平面跟踪设备可以通过随机抽样一致算法(RandomSample Consensus,RANSAC)来确定上述第一图像帧与上述参考图像帧之间的单应矩阵。
RANSAC是由Fischler和Bolles于1981年最先提出的算法。该算法根据一组包含异常数据的样本数据集,计算出数据的数学模型参数。目前,RANSAC算法在计算机视觉的匹配问题中通常被用来寻找最佳的匹配模型。对应于本公开的实施例,利用上述匹配后的特征点对通过RANSAC算法得到的最佳匹配模型就是本实施例中所述的单应矩阵。具体地,上述通过RANSAC算法来确定上述第一图像帧与上述参考图像帧之间的单应矩阵的过程可以包括:首先,将上述特征点对组成的集合作为集合P;然后,从该集合P中随机选择4组特征点对,并基于所选择的4组特征点对估计出一个模型M;接下来,对于该集合P中剩余的特征点对,分别计算每个特征点对与上述模型M的距离,当距离超过一个设定的第一阈值时,则认为该特征点对是局外点或外点;当距离不超过这个设定的阈值时,则认为该特征点对是局内点或内点;在计算完该集合P中剩余的特征点对后,记录该模型M所对应的内点的个数mi。再接下来,将上面过程重复k次后,选择最大mi所对应的模型M作为最终结果。当然,如果将上面过程重复k次后,所有模型M所对应的mi均小于另一个设定的第二阈值时,则认为估计失败,也即无法获得上述第一图像帧与上述参考图像帧之间的单应矩阵。
在步骤108,响应于确定可估计出上述单应矩阵,确定上述第一图像帧为关键图像帧,并记录上述第一图像帧的特征点、各个特征点的描述子以及上述第一图像帧对应的相机位姿。
在本公开的实施例中,上述步骤108还可以进一步包括:响应于确定无法估计出上述单应矩阵,可以确定上述第一图像帧不是关键帧,并结束上述流程。
通过上述图1所述的方法,可以从视频的各个图像帧中确定一系列的关键帧,这些关键帧通常对应一些相对关键的相机位姿,例如,这些关键帧所对应的相机位姿之间通常会具有一定的距离和/或视角差异。如此,在后续的操作中,利用这些记录的关键帧,则可以对相机位姿进行重定位。
图2显示了本公开实施例所述的基于保留的关键帧进行相机位姿重定位的实现流程。如图2所示,该方法可以包括如下步骤:
在上述步骤202,响应于确定第二图像帧满足重定位条件,获取上述第二图像帧的特征点以及各特征点的描述子。
在本公开的实施例中,上述第二图像帧是指当前需要进行平面跟踪的视频中的任意一个图像帧,也即代表待处理的当前图像帧。为了描述方便,在本实施例中将其称为第二图像帧。需要说明的是,在一个图像帧同时满足关键帧初筛条件以及重定位条件时,上述第二图像帧与上述第一图像帧是同一个图像帧。在其他情况下,上述第二图像帧与上述第一图像帧也可以不是同一个图像帧。
上述重定位条件是预先设置的用于启动重定位的初始条件。在本公开的一些实施例中,上述重定位条件可以包括:图像帧之间平面跟踪失败的次数超过预先设定的平面跟踪失败阈值。
如前所述,在平面跟踪过程中,一个图像帧需要与其前一图像帧之间进行特征匹配,然后根据匹配得到的特征点对进行相机位姿估计和平面跟踪。而如果上述平面跟踪过程中,无法估计出相机位姿,则说明对上述图像帧的平面跟踪失败,此时可将平面跟踪失败次数加1次。在这种情况下,可以使用其前一图像帧对应的相机位姿作为该图像帧对应的相机位姿,也即假定图像是静止的。在本公开的实施例中,如果直至当前的图像帧,也即第二图像帧,记录的平面跟踪失败的次数超过预先设定的平面跟踪失败阈值,则可以认为满足重定位条件。此外,在本公开的实施例中,在重定位之后,还可以将记录的平面跟踪失败的次数清零。
在本公开的另一些实施例中,上述重定位条件还可以进一步包括:上述第二图像帧的相邻图像帧平面跟踪误差小于预先设置的平面跟踪误差阈值。需要说明的是,在进行平面跟踪的过程中,还会对平面跟踪结果的误差进行评估,得到平面跟踪的误差。通常,图像帧的画面越模糊平面跟踪的误差将越大,当上述第二图像帧的相邻图像帧平面跟踪误差小于预先设置的平面跟踪误差阈值时,则说明当前第二图像帧的画面不模糊,可以在上述第二图像帧进行相机位姿重定位。
在确定满足上述重定位条件后,上述平面跟踪设备将获取当前第二图像帧的特征点以及各特征点的描述子。
特别地,在本公开的实施例中,上述平面跟踪设备将采用与上述步骤102中获取第一图像帧的特征点以及各特征点的描述子相同的方法获取上述第二图像帧的特征点以及各特征点的描述子。
例如,如果在上述步骤102,上述平面跟踪设备采用SIFT算法获取上述第一图像帧的特征点以及各特征点的描述子,则在当前步骤202,上述平面跟踪设备也将采用SIFT算法获取上述第二图像帧的特征点以及各特征点的描述子。又例如,如果在上述步骤102,上述平面跟踪设备直接获取在平面跟踪过程中得到的上述第一图像帧的特征点以及各特征点的描述子,则在当前步骤202,上述平面跟踪设备也将直接获取在平面跟踪过程中得到的上述第二图像帧的特征点以及各特征点的描述子。
在步骤204,基于上述第二图像帧的特征点以及各特征点的描述子,将上述第二图像帧分别与已保存的每一个关键帧进行特征匹配,分别得到上述第二图像帧与每一个关键帧匹配后的第二特征点对。
在本公开的实施例中,每个特征点对包含了上述第二图像帧中的一个特征点还包含了关键帧中的一个与上述第一图像帧中特征点对应的特征点。具体地,上述平面跟踪设备可以根据各个特征点的描述子来进行特征匹配。在本公开的另一些实施例中,上述平面跟踪设备还可以采用光流跟踪算法将上述第二图像帧中的特征点跟踪到上述各个关键帧中的特征点。本公开对上述步骤204具体采用的特征匹配方法不进行限定。
在步骤206,基于上述第二特征点对分别确定上述第二图像帧与每一个关键帧的匹配度。
在本公开的实施例中,针对每个关键帧,基于上述第二特征点对确定上述第二图像帧与上述关键帧的匹配度的具体实现过程可以如图3所示,包括如下步骤:
在步骤302,根据上述第二特征点对确定上述第二图像帧与上述关键帧之间的单应矩阵。
在本公开的实施例中,上述平面跟踪设备也可以通过RANSAC算法来确定上述第二图像帧与上述关键帧之间的单应矩阵。具体方法如前所述,在此不再重复说明。
在步骤304,确定上述第二特征点对中满足上述单应矩阵所反映关系的特征点对的数量。
如前所述,RANSAC算法是根据一组包含异常数据的样本数据集来寻找最佳的匹配模型的算法,而由于其所使用的样本数据集包含异常数据,因此,并不是所有的样本对都能满足通过RANSAC算法得到的最佳匹配模型,其中,满足所得到的最佳匹配模型的样本通常被称为局内点或内点,而不满足所得到的最佳匹配模型的样本通常被称为局外点或外点。对应于本公开的实施例,在上述步骤304中,利用上述匹配后的特征点对通过RANSAC算法得到的最佳匹配模型就是本实施例中的单应矩阵。而且,可以理解,并不是所有的特征点都满足上述单应矩阵所示的变换关系。因此,在本步骤中,可以确定上述所有匹配后特征点对中满足上述单应矩阵所反映关系的特征点对的数量,也就是确定局内点的数量。
在步骤306,将上述特征点对的数量作为上述第二图像帧与上述关键帧的匹配度。
本领域的技术人员可以理解,满足上述单应矩阵所反映关系的特征点对的数量越多,说明上述第二图像帧和上述关键帧的匹配度越高。例如,相机在相同位置以及通过相同拍摄视角拍摄得到的两个图像帧上的特征点对应当均满足根据这两个图像帧获得的单应矩阵所反映变化关系。而相机在完全不同位置或通过完全不同拍摄视角拍摄得到的两个图像帧上满足根据这两个图像帧获得的单应矩阵所反映变化关系的特征点对的数量就会相对较少。因此,在本公开的实施例中,将上述特征点对的数量作为上述第二图像帧与上述关键帧的匹配度。
在步骤208,将与上述第二图像帧匹配度最高的关键帧确定为目标关键帧。
由此可以看出,通过上述方法,可以从所有关键帧中确定一个与上述第二图像帧匹配度最高的关键帧作为目标关键帧。
通常,本领域技术人员可以理解,当相机位姿差异越小时其所拍摄的图像之间的匹配度应该越大。因此,通过上述方法,可以从所有关键帧中找的其对应相机位姿与上述第二图像帧所对应相机位姿差异最小的关键帧。也就是在相机的反复运动过程中,当相机运动回到拍摄其中一个关键帧的位姿时可以通过上述方法确定到这一个关键帧。
在步骤210,使用上述目标关键帧对应的相机位姿替换上述第二图像帧对应的相机位姿。
可以看出,在相机的反复运动过程中,相机位姿可能会因误差积累而产生漂移,从而导致平面跟踪结果也存在漂移。通过上述方法,当相机运动回到拍摄其中一个关键帧的位姿时可以确定到这个关键帧,并利用这个关键帧对应的相机位姿替换上述第二图像帧对应的相机位姿,从而直接将相机位姿拉回到之前已经保存的关键帧对应的相机位姿,以消除平面跟踪过程的误差积累,解决由于误差积累所造成的平面跟踪的漂移问题,保证平面跟踪的准确度。
在本公开的另一些实施例中,上述方法在上述步骤208之前还可以进一步包括:确定上述第二图像帧与每一个关键帧的匹配度是否均小于预先设定的匹配度阈值;响应于确定上述第二图像帧与每一个关键帧的匹配度均小于预先设定的匹配度阈值,表明重定位失败,结束上述流程;响应于确定上述第二图像帧与每一个关键帧的匹配度不均小于预先设定的匹配度阈值,继续执行上述步骤208。
在上述实施例中,当上述第二图像帧与每一个关键帧的匹配度均小于预先设定的匹配度阈值时,说明上述第二图像帧与上述每一个关键帧均不匹配,因此,无需进行相机位姿的替换。
需要说明的是,本公开实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本公开实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
需要说明的是,上述对本公开的一些实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于上述实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
基于同一发明构思,与上述任意实施例方法相对应的,本公开还提供了一种重定位装置。图4显示了本公开一些实施例所述的重定位装置的内部结构示意图。图4所示的重定位装置可以位于中上述平面跟踪设备中。如图4所示,上述重定位装置可以包括:
第一特征点获取模块402,用于响应于确定满足重定位条件,获取当前图像帧的特征点以及各特征点的描述子;
第一特征匹配模块404,用于基于所述当前图像帧的特征点以及各特征点的描述子,将所述当前图像帧分别与已保存的每一个关键帧进行特征匹配,分别得到所述当前图像帧与每一个关键帧匹配后的特征点对;
匹配度确定模块406,用于基于所述特征点对分别确定所述当前图像帧与每一个关键帧的匹配度;
目标关键帧确定模块408,用于将与所述当前图像帧匹配度最高的关键帧确定为目标关键帧;以及
位姿替换模块410,用于使用所述目标关键帧对应的相机位姿替换所述当前图像帧对应的相机位姿。
在本公开的实施例中,上述匹配度确定模块406可以包括:
单应矩阵确定单元,用于针对每一个关键帧,根据所述当前图像帧与所述关键帧匹配后的特征点对确定所述当前图像帧与所述关键帧之间的单应矩阵;
内点数量确定单元,用于确定所述特征点对中满足所述单应矩阵所反映关系的特征点对的数量;以及
匹配度确定单元,用于将所述特征点对的数量作为所述当前图像帧与所述关键帧的匹配度。
图5显示了本公开另一些实施例所述的重定位装置的内部结构示意图。如图5所示,上述重定位装置除了包括上述第一特征点获取模块402、第一特征匹配模块404、匹配度确定模块406、目标关键帧确定模块408以及位姿替换模块410之外,还可以进一步包括:
第二特征点获取模块502,用于响应于确定满足关键帧初筛条件,获取所述当前图像帧的特征点以及各特征点的描述子;
第二特征匹配模块504,用于基于所述当前图像帧的特征点以及各特征点的描述子,将所述当前图像帧与已保存的参考图像帧进行特征匹配,得到匹配后的第二特征点对;
单应矩阵估计模块506,用于根据所述第二特征点对估计所述当前图像帧与所述参考图像帧之间的单应矩阵;以及
关键帧确定模块508,用于响应于确定可估计出所述单应矩阵,确定所述当前图像帧为关键帧,并记录所述当前图像帧的特征点、各个特征点的描述子以及所述当前图像帧对应的相机位姿。
上述各个模块的具体实现可以参考前述方法以及附图,在此不再重复说明。为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本公开时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
上述实施例的装置用于实现前述任一实施例中相应的重定位方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例方法相对应的,本公开还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上任意一实施例所述的重定位方法。
图6示出了本实施例所提供的一种更为具体的电子设备硬件结构示意图,该设备可以包括:处理器2010、存储器2020、输入/输出接口2030、通信接口2040和总线2050。其中处理器2010、存储器2020、输入/输出接口2030和通信接口2040通过总线2050实现彼此之间在设备内部的通信连接。
处理器2010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器2020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器2020可以存储操作***和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器2020中,并由处理器2010来调用执行。
输入/输出接口2030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口2040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线2050包括一通路,在设备的各个组件(例如处理器2010、存储器2020、输入/输出接口2030和通信接口2040)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器2010、存储器2020、输入/输出接口2030、通信接口2040以及总线2050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
上述实施例的电子设备用于实现前述任一实施例中相应的重定位方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例方法相对应的,本公开还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例所述的重定位方法。
本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上任一实施例所述的任务处理方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子;在本公开的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本公开实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
另外,为简化说明和讨论,并且为了不会使本公开实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本公开实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本公开实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本公开的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本公开实施例。因此,这些描述应被认为是说明性的而不是限制性的。
尽管已经结合了本公开的具体实施例对本公开进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本公开实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本公开实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本公开的保护范围之内。
Claims (17)
1.一种重定位方法,包括:
响应于确定当前图像帧满足重定位条件,获取所述当前图像帧的特征点以及各特征点的描述子;
基于所述当前图像帧的特征点以及各特征点的描述子,将所述当前图像帧分别与已保存的每一个关键帧进行特征匹配,分别得到所述当前图像帧与每一个关键帧匹配后的特征点对;
基于所述特征点对分别确定所述当前图像帧与每一个关键帧的匹配度;
将与所述当前图像帧匹配度最高的关键帧确定为目标关键帧;以及
使用所述目标关键帧对应的相机位姿替换所述当前图像帧对应的相机位姿。
2.根据权利要求1所述的重定位方法,其中,所述重定位条件包括:图像帧之间平面跟踪失败的次数超过预先设定的平面跟踪失败阈值。
3.根据权利要求2所述的重定位方法,其中,所述重定位条件进一步包括:所述当前图像帧的相邻图像帧的平面跟踪误差小于预先设定的平面跟踪误差阈值。
4.根据权利要求1所述的重定位方法,其中,所述基于所述当前图像帧与每一个关键帧匹配后的特征点对分别确定所述当前图像帧与每一个关键帧的匹配度包括:
针对每一个关键帧分别执行:
根据所述特征点对确定所述当前图像帧与所述关键帧之间的单应矩阵;
确定所述特征点对中满足所述单应矩阵所反映关系的特征点对的数量;以及
将所述特征点对的数量作为所述当前图像帧与所述关键帧的匹配度。
5.根据权利要求1所述的重定位方法,进一步包括:
确定所述当前图像帧与每一个关键帧的匹配度是否均小于预先设定的匹配度阈值;以及
响应于确定所述当前图像帧与每一个关键帧的匹配度均小于所述匹配度阈值,确定重定位失败,结束当前流程。
6.根据权利要求1所述的重定位方法,进一步包括:
响应于确定所述当前图像帧满足关键帧初筛条件,获取所述当前图像帧的特征点以及各特征点的描述子;
基于所述当前图像帧的特征点以及各特征点的描述子,将所述当前图像帧与已保存的参考图像帧进行特征匹配,得到匹配后的第二特征点对;
根据所述第二特征点对估计所述当前图像帧与所述参考图像帧之间的单应矩阵;以及
响应于确定可估计出所述单应矩阵,确定所述当前图像帧为关键帧,并记录所述当前图像帧的特征点、各个特征点的描述子以及所述当前图像帧对应的相机位姿。
7.根据权利要求6所述的重定位方法,其中,所述关键帧初筛条件包括:检测到用户点击平面跟踪设备的屏幕;或者,确定所述当前图像帧所对应的相机位姿与所述每一个关键帧所对应的相机位姿之间的差异均大于预先设定的位姿差异阈值。
8.根据权利要求6所述的重定位方法,进一步包括:
响应于确定所述当前图像帧的特征点的数量小于预先设定的特征点数量阈值,确定所述当前图像帧不是关键帧,结束当前流程;或者,
响应于确定无法估计出所述单应矩阵,确定所述当前图像帧不是关键帧,结束当前流程。
9.根据权利要求1或6所述的重定位方法,其中,所述获取所述当前图像帧的特征点以及各特征点的描述子包括:
采用尺度不变特征变换SIFT算法、ORB算法或加速版的具有鲁棒特性的特征算法SURF对所述当前图像帧进行特征提取,获取所述当前图像帧的特征点以及各特征点的描述子;或者
读取已记录的所述当前图像帧的特征点以及各特征点的描述子。
10.根据权利要求1所述的重定位方法,其中,所述将所述当前图像帧分别与已保存的每一个关键帧进行特征匹配包括:采用光流跟踪算法将所述当前图像帧中的特征点跟踪到所述每一个关键帧中的特征点。
11.根据权利要求6所述的重定位方法,其中,所述将所述当前图像帧与已保存的参考图像帧进行特征匹配包括:采用光流跟踪算法将所述当前图像帧中的特征点跟踪到所述参考图像帧中的特征点。
12.一种重定位装置,包括:
第一特征点获取模块,用于响应于确定满足重定位条件,获取当前图像帧的特征点以及各特征点的描述子;
第一特征匹配模块,用于基于所述当前图像帧的特征点以及各特征点的描述子,将所述当前图像帧分别与已保存的每一个关键帧进行特征匹配,分别得到所述当前图像帧与每一个关键帧匹配后的特征点对;
匹配度确定模块,用于基于所述特征点对分别确定所述当前图像帧与每一个关键帧的匹配度;
目标关键帧确定模块,用于将与所述当前图像帧匹配度最高的关键帧确定为目标关键帧;以及
位姿替换模块,用于使用所述目标关键帧对应的相机位姿替换所述当前图像帧对应的相机位姿。
13.根据权利要求12所述的重定位装置,其中,所述匹配度确定模块包括:
单应矩阵确定单元,用于针对每一个关键帧,根据所述当前图像帧与所述关键帧匹配后的特征点对确定所述当前图像帧与所述关键帧之间的单应矩阵;
内点数量确定单元,用于确定所述特征点对中满足所述单应矩阵所反映关系的特征点对的数量;以及
匹配度确定单元,用于将所述特征点对的数量作为所述当前图像帧与所述关键帧的匹配度。
14.根据权利要求12所述的重定位装置,进一步包括:
第二特征点获取模块,用于响应于确定满足关键帧初筛条件,获取所述当前图像帧的特征点以及各特征点的描述子;
第二特征匹配模块,用于基于所述当前图像帧的特征点以及各特征点的描述子,将所述当前图像帧与已保存的参考图像帧进行特征匹配,得到匹配后的第二特征点对;
单应矩阵估计模块,用于根据所述第二特征点对估计所述当前图像帧与所述参考图像帧之间的单应矩阵;以及
关键帧确定模块,用于响应于确定可估计出所述单应矩阵,确定所述当前图像帧为关键帧,并记录所述当前图像帧的特征点、各个特征点的描述子以及所述当前图像帧对应的相机位姿。
15.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如权利要求1-8中任意一项所述的重定位方法。
16.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使计算机执行权利要求1-8中任意一项所述的重定位方法。
17.一种计算机程序产品,包括计算机程序指令,当所述计算机程序指令在计算机上运行时,使得计算机执行如权利要求1-8中任意一项所述的重定位方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210306850.9A CN116862979A (zh) | 2022-03-25 | 2022-03-25 | 重定位方法及相关设备 |
PCT/CN2023/079654 WO2023179342A1 (zh) | 2022-03-25 | 2023-03-03 | 重定位方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210306850.9A CN116862979A (zh) | 2022-03-25 | 2022-03-25 | 重定位方法及相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116862979A true CN116862979A (zh) | 2023-10-10 |
Family
ID=88099912
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210306850.9A Pending CN116862979A (zh) | 2022-03-25 | 2022-03-25 | 重定位方法及相关设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN116862979A (zh) |
WO (1) | WO2023179342A1 (zh) |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11232583B2 (en) * | 2016-03-25 | 2022-01-25 | Samsung Electronics Co., Ltd. | Device for and method of determining a pose of a camera |
CN108596976B (zh) * | 2018-04-27 | 2022-02-22 | 腾讯科技(深圳)有限公司 | 相机姿态追踪过程的重定位方法、装置、设备及存储介质 |
CN108615247B (zh) * | 2018-04-27 | 2021-09-14 | 深圳市腾讯计算机***有限公司 | 相机姿态追踪过程的重定位方法、装置、设备及存储介质 |
CN110533694B (zh) * | 2019-08-30 | 2024-02-09 | 腾讯科技(深圳)有限公司 | 图像处理方法、装置、终端及存储介质 |
CN111429517A (zh) * | 2020-03-23 | 2020-07-17 | Oppo广东移动通信有限公司 | 重定位方法、重定位装置、存储介质与电子设备 |
CN114120301A (zh) * | 2021-11-15 | 2022-03-01 | 杭州海康威视数字技术股份有限公司 | 一种位姿确定方法、装置及设备 |
-
2022
- 2022-03-25 CN CN202210306850.9A patent/CN116862979A/zh active Pending
-
2023
- 2023-03-03 WO PCT/CN2023/079654 patent/WO2023179342A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2023179342A1 (zh) | 2023-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109242913B (zh) | 采集器相对参数的标定方法、装置、设备和介质 | |
CN108805917B (zh) | 空间定位的方法、介质、装置和计算设备 | |
CN107633526B (zh) | 一种图像跟踪点获取方法及设备、存储介质 | |
US20150103183A1 (en) | Method and apparatus for device orientation tracking using a visual gyroscope | |
JP6435750B2 (ja) | 3次元座標算出装置、3次元座標算出方法および3次元座標算出プログラム | |
US8879894B2 (en) | Pixel analysis and frame alignment for background frames | |
EP3711025A1 (en) | Graphical coordinate system transform for video frames | |
US8666145B2 (en) | System and method for identifying a region of interest in a digital image | |
JP5774226B2 (ja) | 方位センサに基づくホモグラフィ分解の曖昧性の解決 | |
US9477889B2 (en) | Face recognition with parallel detection and tracking, and/or grouped feature motion shift tracking | |
CN109934873B (zh) | 标注图像获取方法、装置及设备 | |
CN110956131B (zh) | 单目标追踪方法、装置及*** | |
US20170206430A1 (en) | Method and system for object detection | |
CN112106113A (zh) | 三维重建中图像的位姿信息确定方法和装置 | |
CN105208263B (zh) | 图像处理装置及其控制方法 | |
CN113763466B (zh) | 一种回环检测方法、装置、电子设备和存储介质 | |
CN110706257B (zh) | 有效特征点对的识别方法、相机状态的确定方法及装置 | |
JP2019106008A (ja) | 推定装置、推定方法、及び推定プログラム | |
CN115937299B (zh) | 在视频中放置虚拟对象的方法及相关设备 | |
CN116862979A (zh) | 重定位方法及相关设备 | |
US10282633B2 (en) | Cross-asset media analysis and processing | |
CN115249241A (zh) | 一种涂胶缺陷检测方法及装置 | |
KR101741501B1 (ko) | 카메라와 객체 간 거리 추정 장치 및 그 방법 | |
WO2020195815A1 (ja) | 映像同期装置、映像同期方法、プログラム | |
CN112559340A (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 |