CN112750164A - 轻量化定位模型的构建方法、定位方法、电子设备 - Google Patents
轻量化定位模型的构建方法、定位方法、电子设备 Download PDFInfo
- Publication number
- CN112750164A CN112750164A CN202110079395.9A CN202110079395A CN112750164A CN 112750164 A CN112750164 A CN 112750164A CN 202110079395 A CN202110079395 A CN 202110079395A CN 112750164 A CN112750164 A CN 112750164A
- Authority
- CN
- China
- Prior art keywords
- feature
- images
- matching
- descriptors
- descriptor
- 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
Images
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/75—Determining position or orientation of objects or cameras using feature-based methods involving models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/80—Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
-
- 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/40—Extraction of image or video features
- G06V10/46—Descriptors for shape, contour or point-related descriptors, e.g. scale invariant feature transform [SIFT] or bags of words [BoW]; Salient regional features
- G06V10/462—Salient features, e.g. scale invariant feature transforms [SIFT]
-
- 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/10028—Range image; Depth image; 3D point clouds
-
- 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/30241—Trajectory
-
- 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)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Geometry (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Graphics (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Image Analysis (AREA)
Abstract
一种轻量化定位模型的构建方法、定位方法、电子设备及非瞬时性存储介质。该轻量化定位模型的构建方法包括:获取多幅图像;基于多幅图像,确定相邻图信息,其中,相邻图信息包括至少一个相邻图像对和每个相邻图像对的相机变换参数;采用二进制特征提取算法提取多幅图像的第一特征点及第一特征点的第一描述符,其中,第一描述符为二进制描述符;基于第一特征点及第一描述符,对每个相邻图像对中的两幅图像进行特征匹配,以得到匹配特征集;基于匹配特征集,确定多个轨迹;以及基于多个轨迹和每个相邻图像对的相机变换参数,确定每个轨迹对应的三维点的坐标和描述符,以得到轻量化定位模型。
Description
技术领域
本公开的实施例涉及一种轻量化定位模型的构建方法、定位方法、电子设备及非瞬时性存储介质。
背景技术
基于图像的定位方法可以通过查询图像(例如用户拍摄的地标建筑的照片)进行相对于已知场景(例如包括上述地标建筑的场景)的三维定位。与常用的GPS(GlobalPositioning System,全球定位系统)等定位方法相比,基于图像的定位方法可以提供更高的定位精度,也可以更好地应用于增强现实(Augmented Reality,AR)和三维(threedimensional,3D)互动等领域。为了实施基于图像的定位方法,需要预先对场景进行基于图像的三维重建,得到场景的定位模型(例如三维点云模型)。
发明内容
本公开至少一些实施例提供一种轻量化定位模型的构建方法。该构建方法包括:获取多幅图像;基于所述多幅图像,确定相邻图信息,其中,所述相邻图信息包括至少一个相邻图像对和所述至少一个相邻图像对中的每个相邻图像对的相机变换参数;采用二进制特征提取算法提取所述多幅图像的第一特征点及所述第一特征点的第一描述符,其中,所述多幅图像中的每幅图像被提取至少一个第一特征点,所述第一描述符为二进制描述符;基于所述第一特征点及所述第一描述符,对所述至少一个相邻图像对的每个相邻图像对中的两幅图像进行特征匹配,以得到匹配特征集;基于所述匹配特征集,确定多个轨迹,其中,所述多个轨迹中的每个轨迹包括相互匹配且来自于不同图像的多个第一特征点,且所述每个轨迹中的所述多个第一特征点对应于同一个三维点;以及基于所述多个轨迹和所述至少一个相邻图像对中的每个相邻图像对的相机变换参数,确定所述多个轨迹中的每个轨迹对应的三维点的坐标和描述符,以得到所述轻量化定位模型。
例如,在本公开的一些实施例提供的构建方法中,基于所述多个轨迹和所述至少一个相邻图像对中的每个相邻图像对的相机变换参数,确定所述多个轨迹中的每个轨迹对应的三维点的坐标和描述符,包括:基于所述多个轨迹和所述至少一个相邻图像对中的每个相邻图像对的相机变换参数,采用三角定位法确定所述每个轨迹对应的三维点的坐标;以及基于所述每个轨迹中的多个第一特征点的多个第一描述符,确定所述每个轨迹对应的三维点的描述符。
例如,在本公开的一些实施例提供的构建方法中,基于所述每个轨迹中的多个第一特征点的第一描述符,确定所述每个轨迹对应的三维点的描述符,包括:随机选取所述每个轨迹中的所述多个第一特征点的第一描述符之一作为所述每个轨迹对应的三维点的描述符。
例如,在本公开的一些实施例提供的构建方法中,基于所述每个轨迹中的多个第一特征点的第一描述符,确定所述每个轨迹对应的三维点的描述符,包括:对所述每个轨迹中的所述多个第一特征点的第一描述符求平均,以得到所述每个轨迹对应的三维点的描述符。
例如,在本公开的一些实施例提供的构建方法中,基于所述第一特征点及所述第一描述符,对所述至少一个相邻图像对的每个相邻图像对中的两幅图像进行特征匹配,以得到所述匹配特征集,包括:响应于所述每个相邻图像对中的两幅图像之一的某一第一特征点的第一描述符与所述每个相邻图像对中的两幅图像之另一的某一第一特征点的第一描述符之间的距离小于第一阈值,将所述至少一个相邻图像对中的所述两幅图像之一的所述某一第一特征点与所述至少一个相邻图像对中的所述两幅图像之另一的所述某一第一特征点作为一个第一特征点匹配对加入所述匹配特征集,其中,所述匹配特征集包括所述至少一个相邻图像对中的所有相邻图像对的所有第一特征点匹配对。
例如,在本公开的一些实施例提供的构建方法中,基于所述匹配特征集,确定所述多个轨迹,包括:基于所述匹配特征集,采用并查集算法确定所述多个轨迹。
例如,在本公开的一些实施例提供的构建方法中,基于所述多幅图像,确定所述相邻图信息,包括:采用非二进制特征提取算法提取所述多幅图像的第二特征点及所述第二特征点的第二描述符,其中,所述多幅图像中的每幅图像被提取至少一个第二特征点,所述第二描述符为非二进制描述符;基于所述第二特征点和所述第二描述符,对所述多幅图像两两进行特征匹配,以确定任意两幅图像之间的至少一个第二特征点匹配对,其中,每个所述第二特征点匹配对包括所述任意两幅图像之一的一个第二特征点和所述任意两幅图像之另一的一个第二特征点;以及响应于所述任意两幅图像之间的第二特征点匹配对的数量大于第二阈值,将所述任意两幅图像作为一个相邻图像对,并确定所述一个相邻图像对的相机变换参数。
例如,在本公开的一些实施例提供的构建方法中,基于所述第二特征点和所述第二描述符,对所述多幅图像两两进行特征匹配,以确定所述任意两幅图像之间的至少一个第二特征点匹配对,包括:响应于所述任意两幅图像之一的某一第二特征点的第二描述符与所述任意两幅图像之另一的某一第二特征点之间的第二描述符的距离小于第三阈值,将所述任意两幅图像之一的所述某一第二特征点与所述任意两幅图像之另一的所述某一第二特征点作为所述任意两幅图像之间的一个第二特征点匹配对。
例如,在本公开的一些实施例提供的构建方法中,所述非二进制特征提取算法包括尺度不变特征变换算法,所述非二进制描述符包括所述尺度不变特征变换算法中使用的非二进制描述符。
例如,在本公开的一些实施例提供的构建方法中,所述二进制特征提取算法包括定向加速段测试的特征与旋转二进制鲁棒独立的基本特征算法、AKAZE算法、二进制鲁棒独立的基本特征算法或二进制鲁棒不变可扩展的关键点算法,所述二进制描述符包括所述定向加速段测试的特征与旋转二进制鲁棒独立的基本特征算法、所述AKAZE算法、所述二进制鲁棒独立的基本特征算法或所述二进制鲁棒不变可扩展的关键点算法中使用的二进制描述符。
例如,本公开的一些实施例提供的构建方法还包括:使用光束法平差对所述轻量化定位模型进行优化,以去掉所述轻量化定位模型中的无效的三维点。
本公开至少一些实施例还提供一种定位方法。该定位方法包括:获取查询图像;基于根据本公开任一实施例提供的构建方法得到的所述轻量化定位模型,对所述查询图像进行定位。
例如,本公开的一些实施例提供的定位方法中,基于所述轻量化定位模型,对所述查询图像进行定位,包括:采用所述二进制特征提取算法提取所述查询图像的查询特征点及所述查询特征点的二进制查询描述符;将所述二进制查询描述符和所述轻量化定位模型中的三维点的描述符进行匹配,确定所述查询特征点与所述轻量化定位模型中的三维点的对应关系;以及基于所述查询特征点与所述轻量化定位模型中的三维点的所述对应关系,确定所述查询图像的相机位姿,以对所述查询图像进行定位。
例如,本公开的一些实施例提供的定位方法中,基于所述查询特征点与所述轻量化定位模型中的三维点的所述对应关系,确定所述查询图像的相机位姿,包括:采用透视n点算法确定所述查询图像的相机位姿。
本公开至少一些实施例还提供一种电子设备,包括:存储器,用于非暂时性存储计算机可读指令;以及处理器,用于运行所述计算机可读指令,其中,所述计算机可读指令被所述处理器运行时,执行本公开任一实施例提供的构建方法,或者执行本公开任一实施例提供的定位方法。
本公开至少一些实施例还提供一种非瞬时性存储介质,非暂时性地存储计算机可读指令,其中,当所述非暂时性计算机可读指令由计算机执行时,执行本公开任一实施例提供的构建方法的指令,或者执行本公开任一实施例提供的定位方法的指令。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
图1为本公开至少一些实施例提供的一种轻量化定位模型的构建方法的流程图;
图2为本公开一些实施例提供的一种对应于图1所示的构建方法的步骤S200的示意性流程图;
图3为本公开一些实施例提供的一种对应于图1所示的构建方法的步骤S600的示意性流程图;
图4为本公开至少一些实施例提供的一种定位方法的流程图;
图5为本公开一些实施例提供的一种对应于图4所示的定位方法的步骤S800的示意性流程图;
图6为本公开至少一些实施例提供的一种电子设备的示意性框图;以及
图7为本公开至少一些实施例提供的一种非瞬时性存储介质的示意图。
具体实施方式
为了使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
下面通过几个具体的实施例对本公开进行说明。为了保持本公开实施例的以下说明清楚且简明,本公开省略了已知功能和已知部件的详细说明。当本公开实施例的任一部件在一个以上的附图中出现时,该部件在每个附图中由相同或类似的参考标号表示。
通常,可以采用运动恢复结构(Structure From Motion,SFM)算法对场景进行基于图像的三维重建,以得到定位模型(例如三维点云模型)。SFM算法是一种基于收集到的各种关于目标物体的无序图片进行三维重建的算法。例如,SFM算法可以包括以下步骤(1)-(6):
(1)特征提取。例如,一般采用尺度不变特征变换(Scale-Invariant FeatureTransform,SIFT)算法等进行特征提取,以提取各幅图像中的特征点(例如,SIFT算法提取的特征点简称SIFT特征点)。
(2)特征匹配。例如,一般可以采用暴力(Brute-Force)匹配算法或K最近邻(K-Nearest Neighbor,KNN)算法等特征匹配算法对图像两两之间进行特征匹配,以确定特征点匹配个数达到要求的图像匹配对,进而生成轨迹(track)列表,即同名点的图像集合。由于进行特征匹配时可能存在错误匹配的情形,因此通常需要对上述得到的图像匹配对进行筛选。例如,可以采用随机抽样一致性(RANdom SAmple Consensus,RANSAC)算法等估算基本矩阵(Fundamental Matrix,简称F矩阵),以把多幅图像中都出现的共同特征点(即同名点)连接起来以形成轨迹。
(3)确定初始化图像对。例如,可以按照两幅图像中的特征点匹配个数不少于某一阈值即为初选化图像对,也可以利用两幅图像变换之间的单应性模型来确定初始化图像对。由于初始化图像对有时并不可靠,所以需要使用几何约束(例如,对极几何)检测其可靠性。
(4)初始化图像对的相对定向。例如,首先可以根据RANSAC算法和八点算法计算本征矩阵(Essential Matrix,简称E矩阵),然后可以通过对本征矩阵进行奇异值分解(Singular Value Decomposition,SVD)确定初始化图像对中的两幅图像对应的视角之间的运动,即旋转矩阵R和平移向量(或者摄像机中心坐标向量)T,同时还可以进行畸变校正,最后可以根据R、T和校正后的每一对匹配点的坐标使用直接线性变换(Direct LinearTransform,DLT)算法或三角定位法等计算出三维点信息,从而构成三维点云(稀疏点云)。例如,旋转矩阵R和平移向量T构成的矩阵[R T]称为旋转平移矩阵,可以用于表征相机变换参数或相机外参。
(5)光束法平差(Bundle Adjustment,BA)。例如,光束法平差是一个非线性优化的过程,目的是使重建误差降低到最小,通过调整三维点的旋转平移矩阵及三维点信息使反向投影误差最小。例如,光束法平差还是一个迭代的过程,在一次迭代过后,将所有三维点反向投影到相应图像的像素坐标并分别与初始坐标比对,如果大于某一阈值,则应将其从track列表中去掉,如果某一track中的图像数目已小于2个,则将该track也整个去掉,一直优化到没有三维点需要被去掉为止。
(6)加入更多图像,不断完善三维点云。例如,以第三幅图像为例,根据之前得到的三维点云以及第三幅图像与前两幅图像(即初始化图像对包括的第一幅图像和第二幅图像)的track关系,可以计算第三幅图像的R、T,进而可以计算出更多的三维点信息,将这些三维点融入之前得到的三维点云并进行光束法平差,即可不断完善三维点云。
应当理解的是,由于SIFT算法充分考虑了在图像变换过程中出现的旋转、尺度、光照等变化,SIFT特征点对旋转、尺度、透视等都有较好的鲁棒性,因此,基于SIFT特征点可以构建较为精准的定位模型,相应地,使用该定位模型进行图像定位可以实现较高的定位精度。然而,在图像定位过程中,需要提取查询图像的SIFT特征点以与定位模型的SIFT特征点进行匹配,而SIFT特征点的计算量大,因此,为了实现实时定位,基于该定位模型的定位方法通常只能部署在具备强大的计算能力的服务器端上,也就是说,基于该定位模型的定位方法不适宜在移动端与嵌入式系统上作为首选的基于图像的定位方案。但是,上述服务器端的解决方案的实时性通常依赖网络连接和高速带宽,对于移动端与嵌入式系统上的各种有实时定位需求的应用(例如,地标AR特效、实时导航等)仍然造成了较大程度上的限制。
本公开至少一些实施例提供一种轻量化定位模型的构建方法。该轻量化定位模型的构建方法包括:获取多幅图像;基于所述多幅图像,确定相邻图信息,其中,所述相邻图信息包括至少一个相邻图像对和所述至少一个相邻图像对中的每个相邻图像对的相机变换参数;采用二进制特征提取算法提取所述多幅图像的第一特征点及所述第一特征点的第一描述符,其中,所述多幅图像中的每幅图像被提取至少一个第一特征点,所述第一描述符为二进制描述符;基于所述第一特征点及所述第一描述符,对所述至少一个相邻图像对的每个相邻图像对中的两幅图像进行特征匹配,以得到匹配特征集;基于所述匹配特征集,确定多个轨迹,其中,所述多个轨迹中的每个轨迹包括相互匹配且来自于不同图像的多个第一特征点,且所述每个轨迹中的所述多个第一特征点对应于同一个三维点;以及基于所述多个轨迹和所述至少一个相邻图像对中的每个相邻图像对的相机变换参数,确定所述多个轨迹中的每个轨迹对应的三维点的坐标和描述符,以得到所述轻量化定位模型。
本公开的一些实施例还提供对应于上述轻量化定位模型的构建方法的定位方法、电子设备及非瞬时性存储介质。
本公开的实施例提供的轻量化定位模型的构建方法,可以基于常用的特征提取和匹配算法(例如,SIFT算法等)确定相邻图信息,并基于相邻图信息和另行提取的二进制特征点及二进制描述符(即第一特征点及第一描述符)构建轻量化定位模型;轻量化定位模型可以提供较高的定位精度和较快的定位速度,可以方便地部署于移动端与嵌入式系统以满足不同应用场景的需求。
下面结合附图对本公开的一些实施例及其示例进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
图1为本公开至少一些实施例提供的一种轻量化定位模型的构建方法的流程图。例如,如图1所示,该构建方法包括步骤S100至步骤S200。
步骤S100:获取多幅图像。
例如,在一些实施例中,该多幅图像可以包括通过智能手机的摄像头、平板电脑的摄像头、个人计算机的摄像头、数码照相机的镜头、监控摄像头或者网络摄像头等拍摄采集的照片,本公开的实施例对此不作限制。例如,在另一些实施例中,该多幅图像也可以来源于第三方公开的图像数据库,或者来源于自行收集的图像数据库,又或者兼而有之,本公开的实施例对此亦不作限制。
例如,在一些实施例中,该多幅图像为与待建模场景有关的图像。例如,在一些示例中,待建模场景通常包括地标建筑,地标建筑通常是待建模场景中最具代表性且最容易识别的建筑物,待建模场景的定位模型通常围绕场景中的地标建筑进行重建得到。例如,地标建筑通常具有丰富且独特的视觉特征以及合适的观察区域。例如,在一些实施例中,可以通过延时摄影或者无人机拍摄的方式拍摄待建模场景的多帧图像,并从该多帧图像中选择若干帧(当然,也可以是全部帧)作为步骤S100的多幅图像;在此情况下,该多幅图像按照拍摄先后顺序形成为图像序列。需要说明的是,本公开的实施例包括但不限于此;也就是说,步骤S100中的多幅图像也可以是无序的。
例如,在一些实施例中,该多幅图像可以包括灰度图像,也可以包括彩色图像,还可以兼而有之,本公开的实施例对此不作限制。
步骤S200:基于该多幅图像,确定相邻图信息,其中,相邻图信息包括至少一个相邻图像对和该至少一个相邻图像对中的每个相邻图像对的相机变换参数。
例如,在一些实施例中,如图2所示,步骤S200可以包括以下步骤S210至步骤S230。
步骤S210:采用非二进制特征提取算法提取该多幅图像的第二特征点及第二特征点的第二描述符,其中,该多幅图像中的每幅图像被提取至少一个第二特征点,第二描述符为非二进制描述符。
例如,在一些实施例中,非二进制特征提取算法可以包括尺度不变特征变换(Scale-Invariant Feature Transform,SIFT)算法等;相应地,非二进制描述符包括SIFT算法中使用的非二进制描述符。需要说明的是,本公开的实施例包括但不限于此。例如,也可以采用图像处理领域中其他常用的特征提取算法实现步骤S210的操作,只要该特征提取算法中使用的描述符属于非二进制描述符即可。需要说明的是,在公开的实施例中,“非二进制描述符”是相对于“二进制描述符”而言的,非二进制描述符指的是数据类型不同于二进制描述符的描述符,例如数据类型为浮点类型的描述符。
例如,在步骤S210中,可以使用非二进制特征提取算法(例如,SIFT算法或SURF算法)进行特征提取,以提取各幅图像中的特征点(即第二特征点)及其描述符(即第二描述符)。应当理解的是,从每幅图像中通常可以提取多个第二特征点及该多个第二特征点各自的第二描述符。需要说明的是,SIFT算法和SURF算法等非二进制特征提取算法是图像处理领域中的常用算法,其具体细节在此不再赘述。
步骤S220:基于第二特征点和第二描述符,对该多幅图像两两进行特征匹配,以确定任意两幅图像之间的至少一个第二特征点匹配对,其中,每个第二特征点匹配对包括该任意两幅图像之一的一个第二特征点和该任一两幅图像之另一的一个第二特征点。
例如,在一些实施例中,步骤S220可以包括:响应于任意两幅图像之一的某一第二特征点的第二描述符与该任意两幅图像之另一的某一第二特征点的第二描述符之间的距离小于第三阈值,将该任意两幅图像之一的该某一第二特征点与该任意两幅图像之另一的该某一第二特征点作为该任意两幅图像之间的一个第二特征点匹配对。
应当理解的是,在本公开的实施例以及实际应用中,通常允许存在某两幅图像之间不具有第二特征点匹配对的情形,在此情形下,则无需对这两幅图像继续进行特征匹配。另外,在本公开的实施例以及实际应用中,这种情形通常允许存在多次。
例如,在一些实施例中,两个第二描述符之间的距离(下面描述为“第二描述符距离”)可以采用欧式距离,但不限于此。例如,在一些实施例中,第三阈值可以根据实际需要进行设置,本公开的实施例对此不作限制。例如,在一些示例中,可以先找到第二描述符距离最小的第二特征点匹配对(简称为“最近邻的第二特征点匹配对”),然后将第三阈值设置为最近邻的第二特征点匹配对的第二描述符距离(即最小的第二描述符距离)的x倍,其中,x为大于1的实数。例如,x的取值区间一般设置为[1.6,2.1],但不限于此。例如,在一些示例中,在最小的第二描述符距离特别小的情况下,可以将第三阈值设置为一个合适的经验值。
例如,在一些实施例中,可以采用暴力匹配算法或K最近邻算法等特征匹配算法对每两幅图像中的第二特征点进行匹配,以相应得到每两幅图像的例如多个第二特征点匹配对。需要说明的是,暴力匹配算法和K最近邻算法等特征匹配算法是图像处理领域中的常用算法,其具体细节在此不再赘述。
例如,在一些实施例中,由于进行特征匹配时可能存在错误匹配的情况,因此,可以对每两幅图像之间的第二特征点匹配对进行筛选,以剔除由于错误匹配而得到的第二特征点匹配对。例如,在一些实施例中,可以采用随机抽样一致(RANdom SAmple Consensus,RANSAC)算法等对步骤S200获得的每两幅图像之间的第二特征点匹配对进行筛选,但不限于此。
步骤S230:响应于该任意两幅图像之间的第二特征点匹配对的数量大于第二阈值,将该任意两幅图像作为一个相邻图像对,并确定该相邻图像对的相机变换参数。
例如,在一些实施例中,相邻图信息包括步骤S230获得的全部相邻图像对。例如,在一些实施例中,相邻图信息通常包括多个相邻图像对。例如,根据相邻图信息,可以确定一幅图像的相邻图像(即该一幅图像所在的相邻图像对中的另一幅图像);应当理解的是,一幅图像通常可以具有一幅或多幅相邻图像,每个相邻图像对包括两幅图像,一幅图像与不同的相邻图像构成不同的相邻图像对。
例如,在一些实施例中,第二阈值可以根据实际需要进行设置,本公开的实施例对此不作限制。
例如,在一些实施例中,可以根据RANSAC算法和八点算法计算每个相邻图像对中的两幅图像之间的本征矩阵(Essential Matrix,简称E矩阵),然后可以通过对本征矩阵进行奇异值分解(Singular Value Decomposition,SVD)确定每个相邻图像对中的两幅图像对应的视角之间的运动,即旋转矩阵R和平移向量(或者摄像机中心坐标向量)T。例如,旋转矩阵R和平移向量T构成的矩阵[R T]称为旋转平移矩阵,可以用于表征相机变换参数或相机外参。从而,基于步骤S230可以确定每个相邻图像对的相机变换参数(即每个相邻图像对中的两幅图像之间的相机变换参数)。
步骤S300:采用二进制特征提取算法提取该多幅图像的第一特征点及第一特征点的第一描述符,其中,该多幅图像中的每幅图像被提取至少一个第一特征点,第一描述符为二进制描述符。
例如,在一些实施例中,二进制特征提取算法包括定向加速段测试的特征与旋转二进制鲁棒独立的基本特征(Oriented FAST and Rotated BRIEF,ORB)算法、AKAZE(Accelerated KAZE)算法、二进制鲁棒独立的基本特征(Binary Robust IndependentElementary Features,BRIEF)算法或二进制鲁棒不变可扩展的关键点(Binary RobustInvariant Scalable Keypoints,BRISK)算法等;相应地,二进制描述符包括ORB算法、AKAZE算法、BRIEF算法或BRISK算法中使用的二进制描述符。例如,也可以采用图像处理领域中其他常用的特征提取算法实现步骤S300的操作,只要该特征提取算法中使用的描述符属于二进制描述符即可。
例如,在步骤S300中,可以使用二进制特征提取算法(例如,ORB算法、AKAZE算法、BRIEF算法或BRISK算法)进行特征提取,以提取各幅图像中的特征点(即第一特征点)及其描述符(即第一描述符)。应当理解的是,从每幅图像中通常可以提取多个第一特征点及该多个第一特征点各自的第一描述符。需要说明的是,ORB算法、AKAZE算法、BRIEF算法和BRISK算法等二进制特征提取算法是图像处理领域中的常用算法,其具体细节在此不再赘述。
步骤S400:基于第一特征点及第一描述符,对该至少一个相邻图像对的每个相邻图像对中的两幅图像进行特征匹配,以得到匹配特征集。
例如,在一些实施例中,步骤S400可以包括:响应于每个相邻图像对中的两幅图像之一的某一第一特征点的第一描述符与该每个相邻图像对中的两幅图像之另一的某一第一特征点的第一描述符之间的距离小于第一阈值,将该每个相邻图像对中的两幅图像之一的该某一第一特征点与该每个相邻图像对中的该两幅图像之另一的该某一第一特征点作为一个第一特征点匹配对加入匹配特征集,其中,该匹配特征集包括该至少一个相邻图像对中的所有相邻图像对的所有第一特征点匹配对。
例如,在一些实施例中,两个第一描述符之间的距离(下面描述为“第一描述符距离”)可以采用汉明距离(汉明距离指的是两个二进制串的不同位(bit)的个数),但不限于此。例如,在一些实施例中,第一阈值可以根据实际需要进行设置,本公开的实施例对此不作限制。例如,在一些示例中,可以先找到第一描述符距离最小的第一特征点匹配对(简称为“最近邻的第一特征点匹配对”),然后将第一阈值设置为最近邻的第一特征点匹配对的第一描述符距离(即最小的第一描述符距离)的y倍,其中,y为大于1的实数。例如,y的取值区间一般设置为[1.5,3],但不限于此。例如,在一些示例中,在最小的第一描述符距离特别小的情况下,可以将第三阈值设置为一个合适的经验值。
例如,在一些实施例中,可以采用暴力匹配算法或K最近邻算法等特征匹配算法对每个相邻图像对中的两幅图像的第一特征点进行匹配,以相应得到每个相邻图像对中的两幅图像的例如多个第一特征点匹配对。需要说明的是,暴力匹配算法和K最近邻算法等特征匹配算法是图像处理领域中的常用算法,其具体细节在此不再赘述。
例如,在一些实施例中,由于进行特征匹配时可能存在错误匹配的情况,因此,可以对每个相邻图像对中的两幅图像之间的第一特征点匹配对进行筛选,以剔除由于错误匹配而得到的第一特征点匹配对。例如,在一些实施例中,可以采用随机抽样一致(RANdomSAmple Consensus,RANSAC)算法等对获得的每个相邻图像对中的两幅图像的第一特征点匹配对进行筛选,但不限于此。需要说明的是,RANSAC算法是图像处理领域中的常用算法,其具体细节在此不再赘述。
应当理解的是,在一些实施例中,由于每个相邻图像对中的两幅图像的每个第一特征点匹配对之间也服从该每个相邻图像对的相机变换参数(在步骤200中已经获得)表示的变换关系,因此,也可以根据这个原理对每个相邻图像对中的两幅图像的第一特征点匹配对进行帅选,以剔除由于错误匹配而得到的第一特征点匹配对。例如,假设一个相邻图像对包括图像I1和图像I2,图像I1和图像I2之间的相机变换参数为M,图像I1和图像I2的一个第一特征点匹配对包括特征点f1和特征点f2,其中,第一特征点f1为图像I1上的特征点,第一特征点I2为图像I2上的特征点,则可以通过相机变换参数M将第一特征点f1的图像坐标(即在图像I1的图像坐标系中的坐标)变换到图像I2的图像坐标系中以得到特征点f1’,并响应于特征点f1’在图像I2的图像坐标系中的图像坐标和第一特征点f2在图像I2的图像坐标系中的图像坐标之间的距离大于某一阈值,将第一特征点f1和第一特征点f2构成的第一特征点匹配对作为错误匹配而剔除,响应于特征点f1’在图像I2的图像坐标系中的图像坐标和第一特征点f2在图像I2的图像坐标系中的图像坐标之间的距离不大于该某一阈值,将第一特征点f1和第一特征点f2构成的第一特征点匹配对作为合格的第一特征点匹配对而保留(例如,加入匹配特征集)。
例如,在一些实施例中,初始的匹配特征集为空集。例如,在一些实施例中,每个相邻图像对通常具有多个第一特征点匹配对,从而,步骤S400获得的匹配特征集包括所有相邻图像对的所有第一特征点匹配对。
步骤S500:基于匹配特征集,确定多个轨迹,其中,该多个轨迹中的每个轨迹包括相互匹配且来自于不同图像的多个第一特征点,且每个轨迹中的多个第一特征点对应于同一个三维点。
例如,在一些实施例中,步骤S400获得的匹配特征集包括所有相邻图像对的所有第一特征点匹配对,在此情况下,步骤S500可以包括:基于匹配特征集,采用并查集(Union-Find)算法确定多个轨迹。
例如,在一些实施例中,可以将匹配特征集中的每个第一特征点匹配对视为一个包括两个元素(即每个第一特征点为一个元素)的子集合;在任意两个子集合具有相同元素的情况下,将该任意两个子集合合并为一个新的子集合(即该任意两个子集合的并集);重复上述合并操作,直到没有两个子集合可以合并为止;从而,匹配特征集中的最终留下的每个子集合即可表示一个轨迹(track)。
应当理解的是,由于每个第一特征点匹配对包括相互匹配且来自于两个不同图像的两个第一特征点,且该两个第一特征点对应于同一个三维点,因此,每个轨迹包括相互匹配且来自于不同图像的多个第一特征点,且每个轨迹中的多个第一特征点对应于同一个三维点。
步骤S600:基于该多个轨迹和该至少一个相邻图像对中的每个相邻图像对的相机变换参数,确定该多个轨迹中的每个轨迹对应的三维点的坐标和描述符,以得到轻量化定位模型。
例如,在一些实施例中,如图3所示,步骤S600可以包括以下步骤S610和步骤S620。
步骤S610:基于该多个轨迹和该至少一个相邻图像对中的每个相邻图像对的相机变换参数,采用三角定位法确定每个轨迹对应的三维点的坐标。
例如,在一些实施例中,步骤S610可以包括以下步骤S611至步骤S613。
步骤S611:根据该多个轨迹,选择第一特征点匹配对数量最多的相邻图像对作为初始化图像对。
步骤S612:根据初始化图像对的相机变换参数(在步骤200中已经获得)以及初始化图像对的第一特征点匹配对的图像坐标(例如,可以先进行畸变校正),采用三角定位法确定初始化图像对的每个第一特征点匹配对对应的三维点的坐标,并根据这些三维点的空间坐标构建一个三维点云。
需要说明的是,三角定位法是图像处理领域中的常用算法,其具体细节在此不再赘述。
例如,还可以使用光束法平差(Bundle Adjustment,BA)对上述三维点云进行优化。例如,光束法平差的具体细节可以参考前述相关描述,在此不再赘述。
步骤S613:加入剩下的图像,不断完善三维点云。例如,以加入第三幅图像为例,可以根据该多个轨迹,选择与前两幅图像(即初始化图像对包括的第一幅图像和第二幅图像)之一形成相邻图像对且具有数量最多的第一特征点匹配对的一幅图像作为第三幅图像,然后根据该相邻图像对(即第三幅图像与前两幅图像之一形成的相邻图像对)的相机变换参数及该相邻图像对的第一特征点匹配对的图像坐标,采用三角定位法确定计算出更多的三维点的坐标,将这些三维点融入之前得到的三维点云并使用光束法平差进行优化,即可不断完善三维点云。
应当理解的是,上述步骤S611至步骤S613采用增量式SFM(Incremental SFM)算法的思路实现步骤S610中的确定每个轨迹对应的三维点的坐标(即构建和完善三维点云)的操作。还应当理解的是,为了实现步骤S610中的确定每个轨迹对应的三维点的坐标的操作,还可以采用全局式SFM(Global SFM)算法或混合式SFM(Hybrid SFM)算法等三维重建算法的思路,本公开的实施例包括但不限于此。需要说明的是,增量式SFM算法、全局式SFM算法和混合式SFM算法等三维重建算法均是图像处理领域中的常用算法,其具体细节在此不再赘述。
步骤S620:基于每个轨迹中的多个第一特征点的第一描述符,确定每个轨迹对应的三维点的描述符。
例如,在一些实施例中,可以随机选取每个轨迹中的多个第一特征点的第一描述符之一作为每个轨迹对应的三维点的描述符。例如,在另一些实施例中,可以对每个轨迹中的多个第一特征点的第一描述符求平均,以得到每个轨迹对应的三维点的描述符;例如,在求平均后可以进行四舍五入取整,以使得到的每个轨迹对应的三维点的描述符仍然为二进制描述符。
例如,根据步骤S610获得的每个轨迹对应的三维点的坐标以及步骤S620获得的每个轨迹对应的三维点的描述符,可以得到轻量化定位模型。也就是说,该轻量化定位模型包括三维点云及三维点云中的各个三维点的描述符(即多个三维点的坐标和描述符)。例如,在一些实施例中,还可以使用光束法平差对轻量化定位模型进行优化,以去掉轻量化定位模型中的无效的三维点(即光束法平差过程中需要被去掉的三维点)。
需要说明的是,在本公开的实施例中,上述轻量化定位模型的构建方法的流程可以包括更多或更少的操作,这些操作可以顺序执行或并行执行。虽然上文描述的轻量化定位模型的构建方法的流程包括特定顺序出现的多个操作,但是应该清楚地了解,多个操作的顺序并不受限制。上文描述的轻量化定位模型的构建方法可以执行一次,也可以按照预定条件执行多次。
应当理解的是,在本公开的实施例中,每个相邻图像对的相机变换参数是基于非二进制特征提取算法提取的特征点及描述符(即第二特征点和第二描述符)得到的,与基于二进制特征提取算法提取的特征点及描述符得到的相机变换参数相比,其具有更加准确的特点。因此,上述构建方法得到的轻量化定位模型可以提供较高的定位精度。
还应当理解的是,上述构建方法得到的轻量化定位模型中的三维点对应于二进制特征点(即第一特征点),各三维点的描述符属于二进制描述符。因此,上述构建方法得到的轻量化定位模型可以提供较快的定位速度,从而可以方便地部署于移动端与嵌入式系统以满足不同应用场景的需求。
本公开至少一些实施例还提供一种定位方法。图4为本公开至少一些实施例提供的一种定位方法的流程图。例如,该定位方法可以应用于智能手机、平板电脑等电子设备。例如,该电子设备可以包括处理器和存储器。例如,处理器可以包括中央处理单元(CentralProcessing Unit,CPU)和/或图形处理单元(Graphics Processing Unit,GPU)等;存储器可以包括易失性存储器(例如,随机存取存储器(RAM)等)和/或非易失性存储器(例如只读存储器(Read Only Memory,ROM)等)。例如,存储器上存储有代码或指令,通过运行这些代码或指令,可以实现本公开的实施例提供的定位方法。
例如,如图4所示,该定位方法包括步骤S700和步骤S800。
步骤S700:获取查询图像。
例如,在步骤S700中,查询图像可以包括通过电子设备自带的摄像头(例如,智能手机的摄像头、平板电脑的摄像头等)或外接的摄像头(例如,网络摄像头等)拍摄轻量化定位模型对应的场景(例如,前述待建模场景)而采集得到的照片,本公开的实施例对此不作限制。
步骤S800:基于根据本公开任一实施例提供的轻量化定位模型的构建方法得到的轻量化定位模型,对查询图像进行定位。
例如,步骤S800中的轻量化定位模型可以预先存储在电子设备的存储器中,电子设备通过处理器执行步骤S800时可以调用该轻量化定位模型。
例如,在一些实施例中,如图5所示,步骤S800可以包括以下步骤S810至步骤S830。
步骤S810:采用二进制特征提取算法提取查询图像的查询特征点及查询特征点的二进制查询描述符。
例如,步骤S810中采用的二进制特征提取算法与步骤S300中采用的二进制特征提取算法是一致的,因此,此处的查询特征点与前述第一特征点类型相同,此处的二进制查询描述符与前述第一描述符类型相同(也即,与轻量化定位模型中的三维点的描述符的类型相同)。
步骤S820:将二进制查询描述符和轻量化定位模型中的三维点的描述符进行匹配,确定查询特征点与轻量化定位模型中的三维点的对应关系。
例如,在一些实施例中,可以先计算查询描述符与轻量化定位模型中的各三维点的描述符之间的距离(第一描述符距离,例如汉明距离),找出查询描述符的最近邻描述符(即与查询描述符的距离最近的三维点的描述符)和次近邻描述符(即与查询描述符的距离第二近的三维点的描述符);若查询描述符与最近邻描述符之间的距离小于某一阈值(例如,第一阈值,但不限于此,也即可以根据实际需要进行设置),而查询描述符与次近邻描述符之间的距离不小于该某一阈值,则认为最近邻描述符与查询描述符能够互相匹配,最近邻描述符对应的三维点与查询特征点对应;或者,若查询描述符与最近邻描述符之间的距离和查询描述符与次近邻描述符之间的距离的比值小于某一阈值(例如,一般取为0.7-0.8,但不限于此,也即可以根据实际需要进行设置),则认为最近邻描述符与查询描述符能够互相匹配,最近邻描述符对应的三维点与查询特征点对应;否则,认为最近邻描述符与查询描述符不能够互相匹配,相应的查询特征点不适合用于对查询图像进行定位,应当剔除。从而,可以得到查询特征点与轻量化定位模型中的三维点的对应关系。
步骤S830:基于查询特征点与轻量化定位模型中的三维点的对应关系,确定查询图像的相机位姿,以对查询图像进行定位。
例如,在一些实施例中,可以采用例如透视n点(Perspective-n-Point,PnP)算法等确定查询图像的相机位姿,从而实现对查询图像进行定位。需要说明的是,PnP算法是图像处理领域中的常用算法,其具体细节在此不再赘述。
例如,在一些实施例中,使用上述轻量化定位模型进行定位,其耗时大约为一百毫秒量级;例如,在一些示例中,在二进制特征提取算法为ORB算法(即二进制描述符为ORB算法中使用的二进制描述符)的情况下,定位耗时约为70ms;例如,在一些示例中,在二进制特征提取算法为AKAZE算法(即二进制描述符为AKAZE算法中使用的二进制描述符)的情况下,定位耗时约为120ms。相比之下,若使用通常的例如基于SIFT特征点的定位模型(例如,基于前述SFM算法即步骤(1)-(6)构建的定位模型)进行定位,其耗时通常为数百毫秒量级;例如,在一些示例中,在使用SIFT特征点进行定位的情况下,定位耗时约为800ms。也即是说,上述轻量化定位模型可以提供较快的定位速度。
例如,在一些实施例中,可以将上述轻量化定位模型部署在移动端与嵌入式系统上,从而可以在移动端与嵌入式系统上执行上述定位方法以实现实时定位。例如,在一些实施例中,轻量化定位模型内置于某一应用软件(APP)中;在用户使用该应用软件拍摄已知场景(例如,前述待建模场景)中的地标建筑时,可以基于应用软件内置的轻量化定位模型对地标建筑进行检测并对用户进行实时定位(确定用户所持电子设备的相机位姿),同时结合轻量级渲染引擎,轻快便捷的实现各种随相机位姿变化的AR特效,从而为用户提供优质的地标AR特效体验。
需要说明的是,在本公开的实施例中,上述定位算法可以采用软件、硬件、固件或其任意组合等方式实现,从而执行相应的处理过程。
本公开的实施例提供的定位方法的技术效果可以参考前述实施例中关于轻量化定位模型的构建方法的技术效果的相应描述,在此不再重复赘述。
本公开至少一些实施例还提供一种电子设备。图6为本公开至少一些实施例提供的一种电子设备的示意性框图。例如,如图6所示,该电子设备100包括存储器110和处理器120。
例如,存储器110用于非暂时性存储计算机可读指令,处理器120用于运行该计算机可读指令。例如,该计算机可读指令被处理器120运行时,执行本公开任一实施例提供的构建方法,或者执行本公开任一实施例提供的定位方法。
例如,存储器110和处理器120之间可以直接或间接地互相通信。例如,在一些示例中,如图6所示,该电子设备100还可以包括系统总线130,存储器110和处理器120之间可以通过系统总线130互相通信,例如,处理器120可以通过系统总线130访问存储器110。例如,在另一些示例中,存储器110和处理器120等组件之间可以通过网络连接进行通信。网络可以包括无线网络、有线网络、和/或无线网络和有线网络的任意组合。网络可以包括局域网、互联网、电信网、基于互联网和/或电信网的物联网(Internet of Things)、和/或以上网络的任意组合等。有线网络例如可以采用双绞线、同轴电缆或光纤传输等方式进行通信,无线网络例如可以采用3G/4G/5G移动通信网络、蓝牙、Zigbee或者WiFi等通信方式。本公开对网络的类型和功能在此不作限制。
例如,处理器120可以控制电子设备中的其它组件以执行期望的功能。处理器120可以是中央处理单元(CPU)、张量处理器(TPU)或者图形处理器GPU等具有数据处理能力和/或程序执行能力的器件。中央处理器(CPU)可以为X86或ARM架构等。GPU可以单独地直接集成到主板上,或者内置于主板的北桥芯片中。GPU也可以内置于中央处理器(CPU)上。
例如,存储器110可以包括一个或多个计算机程序产品的任意组合,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(ROM)、硬盘、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器、闪存等。
例如,在存储器110上可以存储一个或多个计算机指令,处理器120可以运行所述计算机指令,以实现各种功能。在计算机可读存储介质中还可以存储各种应用程序和各种数据,例如相邻图信息、轻量化定位模型以及应用程序使用和/或产生的各种数据等。
例如,存储器110存储的一些计算机指令被处理器120执行时可以执行根据上文所述的构建方法中的一个或多个步骤。例如,存储器110存储的另一些计算机指令被处理器120执行时可以执行根据上文所述的定位方法中的一个或多个步骤。
例如,如图6所示,电子设备100还可以包括允许外部设备与电子设备100进行通信的输入接口140。例如,输入接口140可被用于从外部计算机设备、从用户等处接收指令。电子设备100还可以包括使电子设备100和一个或多个外部设备相互连接的输出接口150。例如,电子设备100可以通过输出接口150输出轻量化定位模型等。通过输入接口140和输出接口150与电子设备100通信的外部设备可被包括在提供任何类型的用户可与之交互的用户界面的环境中。用户界面类型的示例包括图形用户界面、自然用户界面等。例如,图形用户界面可接受来自用户采用诸如键盘、鼠标、遥控器等之类的输入设备的输入,以及在诸如显示器之类的输出设备上提供输出。此外,自然用户界面可使得用户能够以无需受到诸如键盘、鼠标、遥控器等之类的输入设备强加的约束的方式来与电子设备100交互。相反,自然用户界面可依赖于语音识别、触摸和指示笔识别、屏幕上和屏幕附近的手势识别、空中手势、头部和眼睛跟踪、语音和语义、视觉、触摸、手势、以及机器智能等。
例如,在一些实施例中,该电子设备100还可以包括用于采集图像的摄像头。
另外,电子设备100尽管在图6中被示出为单个系统,但可以理解,电子设备100也可以是分布式系统,还可以布置为云设施(包括公有云或私有云)。因此,例如,若干设备可以通过网络连接进行通信并且可共同执行被描述为由电子设备100执行的任务。
例如,关于构建方法的实现过程的详细说明可以参考上述构建方法的实施例中的相关描述,关于定位方法的实现过程的详细说明可以参考上述定位方法的实施例中的相关描述,重复之处在此不再赘述。
例如,在一些示例中,该电子设备可以包括但不限于智能手机、平板电脑、个人数字助理(Personal Digital Assistant,PDA)、可穿戴设备等。
需要说明的是,本公开的实施例提供的电子设备是示例性的,而非限制性的,根据实际应用需要,该电子设备还可以包括其他常规部件或结构,例如,为实现电子设备的必要功能,本领域技术人员可以根据具体应用场景设置其他的常规部件或结构,本公开的实施例对此不作限制。
本公开的实施例提供的电子设备的技术效果可以参考上述实施例中关于的构建方法和定位方法的相应描述,在此不再赘述。
本公开至少一些实施例还提供一种非瞬时性存储介质。图7为本公开至少一些实施例提供的一种非瞬时性存储介质的示意图。例如,如图7所示,该非瞬时性存储介质200非暂时性地存储计算机可读指令201,当非暂时性计算机可读指令201由计算机(包括处理器)执行时,可以执行本公开任一实施例提供的构建方法的指令,或者可以执行公开任一实施例提供的定位方法的指令。
例如,在非瞬时性存储介质200上可以存储一个或多个计算机指令。非瞬时性存储介质200上存储的一些计算机指令可以是例如用于实现上述构建方法中的一个或多个步骤的指令,非瞬时性存储介质200上存储的另一些计算机指令可以是例如用于实现上述定位方法中的一个或多个步骤的指令。
例如,非瞬时性存储介质可以包括智能手机的存储部件、平板电脑的存储部件、个人计算机的硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、光盘只读存储器(CD-ROM)、闪存、或者上述存储介质的任意组合,也可以为其他适用的存储介质。
本公开的实施例提供的非瞬时性存储介质的技术效果可以参考上述实施例中关于构建方法和定位方法的相应描述,在此不再赘述。
对于本公开,有以下几点需要说明:
(1)本公开实施例附图中,只涉及到与本公开实施例涉及到的结构,其他结构可参考通常设计。
(2)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。
以上,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以权利要求的保护范围为准。
Claims (16)
1.一种轻量化定位模型的构建方法,包括:
获取多幅图像;
基于所述多幅图像,确定相邻图信息,其中,所述相邻图信息包括至少一个相邻图像对和所述至少一个相邻图像对中的每个相邻图像对的相机变换参数;
采用二进制特征提取算法提取所述多幅图像的第一特征点及所述第一特征点的第一描述符,其中,所述多幅图像中的每幅图像被提取至少一个第一特征点,所述第一描述符为二进制描述符;
基于所述第一特征点及所述第一描述符,对所述至少一个相邻图像对的每个相邻图像对中的两幅图像进行特征匹配,以得到匹配特征集;
基于所述匹配特征集,确定多个轨迹,其中,所述多个轨迹中的每个轨迹包括相互匹配且来自于不同图像的多个第一特征点,且所述每个轨迹中的所述多个第一特征点对应于同一个三维点;以及
基于所述多个轨迹和所述至少一个相邻图像对中的每个相邻图像对的相机变换参数,确定所述多个轨迹中的每个轨迹对应的三维点的坐标和描述符,以得到所述轻量化定位模型。
2.根据权利要求1所述的构建方法,其中,基于所述多个轨迹和所述至少一个相邻图像对中的每个相邻图像对的相机变换参数,确定所述多个轨迹中的每个轨迹对应的三维点的坐标和描述符,包括:
基于所述多个轨迹和所述至少一个相邻图像对中的每个相邻图像对的相机变换参数,采用三角定位法确定所述每个轨迹对应的三维点的坐标;以及
基于所述每个轨迹中的多个第一特征点的多个第一描述符,确定所述每个轨迹对应的三维点的描述符。
3.根据权利要求2所述的构建方法,其中,基于所述每个轨迹中的多个第一特征点的第一描述符,确定所述每个轨迹对应的三维点的描述符,包括:
随机选取所述每个轨迹中的所述多个第一特征点的第一描述符之一作为所述每个轨迹对应的三维点的描述符。
4.根据权利要求2所述的构建方法,其中,基于所述每个轨迹中的多个第一特征点的第一描述符,确定所述每个轨迹对应的三维点的描述符,包括:
对所述每个轨迹中的所述多个第一特征点的第一描述符求平均,以得到所述每个轨迹对应的三维点的描述符。
5.根据权利要求1-4任一项所述的构建方法,其中,基于所述第一特征点及所述第一描述符,对所述至少一个相邻图像对的每个相邻图像对中的两幅图像进行特征匹配,以得到所述匹配特征集,包括:
响应于所述每个相邻图像对中的两幅图像之一的某一第一特征点的第一描述符与所述每个相邻图像对中的两幅图像之另一的某一第一特征点的第一描述符之间的距离小于第一阈值,将所述至少一个相邻图像对中的所述两幅图像之一的所述某一第一特征点与所述至少一个相邻图像对中的所述两幅图像之另一的所述某一第一特征点作为一个第一特征点匹配对加入所述匹配特征集,
其中,所述匹配特征集包括所述至少一个相邻图像对中的所有相邻图像对的所有第一特征点匹配对。
6.根据权利要求5所述的构建方法,其中,基于所述匹配特征集,确定所述多个轨迹,包括:
基于所述匹配特征集,采用并查集算法确定所述多个轨迹。
7.根据权利要求1-4任一项所述的构建方法,其中,基于所述多幅图像,确定所述相邻图信息,包括:
采用非二进制特征提取算法提取所述多幅图像的第二特征点及所述第二特征点的第二描述符,其中,所述多幅图像中的每幅图像被提取至少一个第二特征点,所述第二描述符为非二进制描述符;
基于所述第二特征点和所述第二描述符,对所述多幅图像两两进行特征匹配,以确定任意两幅图像之间的至少一个第二特征点匹配对,其中,每个所述第二特征点匹配对包括所述任意两幅图像之一的一个第二特征点和所述任意两幅图像之另一的一个第二特征点;以及
响应于所述任意两幅图像之间的第二特征点匹配对的数量大于第二阈值,将所述任意两幅图像作为一个相邻图像对,并确定所述一个相邻图像对的相机变换参数。
8.根据权利要求7所述的构建方法,其中,基于所述第二特征点和所述第二描述符,对所述多幅图像两两进行特征匹配,以确定所述任意两幅图像之间的至少一个第二特征点匹配对,包括:
响应于所述任意两幅图像之一的某一第二特征点的第二描述符与所述任意两幅图像之另一的某一第二特征点之间的第二描述符的距离小于第三阈值,将所述任意两幅图像之一的所述某一第二特征点与所述任意两幅图像之另一的所述某一第二特征点作为所述任意两幅图像之间的一个第二特征点匹配对。
9.根据权利要求7所述的构建方法,其中,所述非二进制特征提取算法包括尺度不变特征变换算法,所述非二进制描述符包括所述尺度不变特征变换算法中使用的非二进制描述符。
10.根据权利要求1-4任一项所述的构建方法,其中,所述二进制特征提取算法包括定向加速段测试的特征与旋转二进制鲁棒独立的基本特征算法、AKAZE算法、二进制鲁棒独立的基本特征算法或二进制鲁棒不变可扩展的关键点算法,所述二进制描述符包括所述定向加速段测试的特征与旋转二进制鲁棒独立的基本特征算法、所述AKAZE算法、所述二进制鲁棒独立的基本特征算法或所述二进制鲁棒不变可扩展的关键点算法中使用的二进制描述符。
11.根据权利要求1-4任一项所述的构建方法,还包括:
使用光束法平差对所述轻量化定位模型进行优化,以去掉所述轻量化定位模型中的无效的三维点。
12.一种定位方法,包括:
获取查询图像;
基于根据权利要求1-11任一项所述的构建方法得到的所述轻量化定位模型,对所述查询图像进行定位。
13.根据权利要求12所述的定位方法,其中,基于所述轻量化定位模型,对所述查询图像进行定位,包括:
采用所述二进制特征提取算法提取所述查询图像的查询特征点及所述查询特征点的二进制查询描述符;
将所述二进制查询描述符和所述轻量化定位模型中的三维点的描述符进行匹配,确定所述查询特征点与所述轻量化定位模型中的三维点的对应关系;以及
基于所述查询特征点与所述轻量化定位模型中的三维点的所述对应关系,确定所述查询图像的相机位姿,以对所述查询图像进行定位。
14.根据权利要求13所述的定位方法,其中,基于所述查询特征点与所述轻量化定位模型中的三维点的所述对应关系,确定所述查询图像的相机位姿,包括:
采用透视n点算法确定所述查询图像的相机位姿。
15.一种电子设备,包括:
存储器,用于非暂时性存储计算机可读指令;以及
处理器,用于运行所述计算机可读指令,
其中,所述计算机可读指令被所述处理器运行时,执行根据权利要求1-11任一项所述的构建方法,或者执行根据权利要求12-14任一项所述的定位方法。
16.一种非瞬时性存储介质,非暂时性地存储计算机可读指令,其中,当所述非暂时性计算机可读指令由计算机执行时,执行根据权利要求1-11任一项所述的构建方法的指令,或者执行根据权利要求12-14任一项所述的定位方法的指令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110079395.9A CN112750164B (zh) | 2021-01-21 | 2021-01-21 | 轻量化定位模型的构建方法、定位方法、电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110079395.9A CN112750164B (zh) | 2021-01-21 | 2021-01-21 | 轻量化定位模型的构建方法、定位方法、电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112750164A true CN112750164A (zh) | 2021-05-04 |
CN112750164B CN112750164B (zh) | 2023-04-18 |
Family
ID=75652704
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110079395.9A Active CN112750164B (zh) | 2021-01-21 | 2021-01-21 | 轻量化定位模型的构建方法、定位方法、电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112750164B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112767484A (zh) * | 2021-01-25 | 2021-05-07 | 脸萌有限公司 | 定位模型的融合方法、定位方法、电子装置 |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140340489A1 (en) * | 2013-05-14 | 2014-11-20 | University Of Southern California | Online coupled camera pose estimation and dense reconstruction from video |
CN105740899A (zh) * | 2016-01-29 | 2016-07-06 | 长安大学 | 一种机器视觉图像特征点检测与匹配复合的优化方法 |
US9779296B1 (en) * | 2016-04-01 | 2017-10-03 | Kofax, Inc. | Content-based detection and three dimensional geometric reconstruction of objects in image and video data |
CN107481315A (zh) * | 2017-06-29 | 2017-12-15 | 重庆邮电大学 | 一种基于Harris‑SIFT‑BRIEF算法的单目视觉三维环境重建方法 |
US20180315232A1 (en) * | 2017-05-01 | 2018-11-01 | Lockheed Martin Corporation | Real-time incremental 3d reconstruction of sensor data |
US20190005718A1 (en) * | 2015-12-31 | 2019-01-03 | Tsinghua University | Method and device for image positioning based on 3d reconstruction of ray model |
WO2019179200A1 (zh) * | 2018-03-22 | 2019-09-26 | 深圳岚锋创视网络科技有限公司 | 多目相机的三维重建方法、vr相机和全景相机 |
CN111062990A (zh) * | 2019-12-13 | 2020-04-24 | 哈尔滨工程大学 | 一种面向水下机器人目标抓取的双目视觉定位方法 |
US20200302615A1 (en) * | 2018-04-27 | 2020-09-24 | Tencent Technology (Shenzhen) Company Limited | Repositioning method and apparatus in camera pose tracking process, device, and storage medium |
CN111767960A (zh) * | 2020-07-02 | 2020-10-13 | 中国矿业大学 | 一种应用于图像三维重建的图像匹配方法及系统 |
CN111862352A (zh) * | 2020-08-03 | 2020-10-30 | 字节跳动有限公司 | 定位模型优化方法、定位方法和定位设备 |
CN111862351A (zh) * | 2020-08-03 | 2020-10-30 | 字节跳动有限公司 | 定位模型优化方法、定位方法和定位设备 |
CN112085845A (zh) * | 2020-09-11 | 2020-12-15 | 中国人民解放军军事科学院国防科技创新研究院 | 基于无人机影像的室外场景快速三维重建装置 |
CN115601574A (zh) * | 2022-10-21 | 2023-01-13 | 昆明理工大学(Cn) | 一种改进akaze特征的无人机影像匹配方法 |
-
2021
- 2021-01-21 CN CN202110079395.9A patent/CN112750164B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140340489A1 (en) * | 2013-05-14 | 2014-11-20 | University Of Southern California | Online coupled camera pose estimation and dense reconstruction from video |
US20190005718A1 (en) * | 2015-12-31 | 2019-01-03 | Tsinghua University | Method and device for image positioning based on 3d reconstruction of ray model |
CN105740899A (zh) * | 2016-01-29 | 2016-07-06 | 长安大学 | 一种机器视觉图像特征点检测与匹配复合的优化方法 |
US9779296B1 (en) * | 2016-04-01 | 2017-10-03 | Kofax, Inc. | Content-based detection and three dimensional geometric reconstruction of objects in image and video data |
US20180315232A1 (en) * | 2017-05-01 | 2018-11-01 | Lockheed Martin Corporation | Real-time incremental 3d reconstruction of sensor data |
CN107481315A (zh) * | 2017-06-29 | 2017-12-15 | 重庆邮电大学 | 一种基于Harris‑SIFT‑BRIEF算法的单目视觉三维环境重建方法 |
WO2019179200A1 (zh) * | 2018-03-22 | 2019-09-26 | 深圳岚锋创视网络科技有限公司 | 多目相机的三维重建方法、vr相机和全景相机 |
US20200302615A1 (en) * | 2018-04-27 | 2020-09-24 | Tencent Technology (Shenzhen) Company Limited | Repositioning method and apparatus in camera pose tracking process, device, and storage medium |
CN111062990A (zh) * | 2019-12-13 | 2020-04-24 | 哈尔滨工程大学 | 一种面向水下机器人目标抓取的双目视觉定位方法 |
CN111767960A (zh) * | 2020-07-02 | 2020-10-13 | 中国矿业大学 | 一种应用于图像三维重建的图像匹配方法及系统 |
CN111862352A (zh) * | 2020-08-03 | 2020-10-30 | 字节跳动有限公司 | 定位模型优化方法、定位方法和定位设备 |
CN111862351A (zh) * | 2020-08-03 | 2020-10-30 | 字节跳动有限公司 | 定位模型优化方法、定位方法和定位设备 |
CN112085845A (zh) * | 2020-09-11 | 2020-12-15 | 中国人民解放军军事科学院国防科技创新研究院 | 基于无人机影像的室外场景快速三维重建装置 |
CN115601574A (zh) * | 2022-10-21 | 2023-01-13 | 昆明理工大学(Cn) | 一种改进akaze特征的无人机影像匹配方法 |
Non-Patent Citations (3)
Title |
---|
YILIANG WANG等: "A novel three-dimension fabrics based on the MVSal surface reconstruction method for the complex" * |
张云生等: "基于改进ORB算法的遥感图像自动配准方法" * |
樊彦国等: "基于ORB与RANSAC融合改进的图像配准" * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112767484A (zh) * | 2021-01-25 | 2021-05-07 | 脸萌有限公司 | 定位模型的融合方法、定位方法、电子装置 |
CN112767484B (zh) * | 2021-01-25 | 2023-09-05 | 脸萌有限公司 | 定位模型的融合方法、定位方法、电子装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112750164B (zh) | 2023-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11145083B2 (en) | Image-based localization | |
US8442307B1 (en) | Appearance augmented 3-D point clouds for trajectory and camera localization | |
CN109683699B (zh) | 基于深度学习实现增强现实的方法、装置及移动终端 | |
CN111709973B (zh) | 目标跟踪方法、装置、设备及存储介质 | |
CN110648397B (zh) | 场景地图生成方法、装置、存储介质及电子设备 | |
CN110264509A (zh) | 确定图像捕捉设备的位姿的方法、装置及其存储介质 | |
CN111612852B (zh) | 用于验证相机参数的方法和装置 | |
CN111127524A (zh) | 一种轨迹跟踪与三维重建方法、系统及装置 | |
CN110986969B (zh) | 地图融合方法及装置、设备、存储介质 | |
US11842514B1 (en) | Determining a pose of an object from rgb-d images | |
CN111382613B (zh) | 图像处理方法、装置、设备和介质 | |
CN109919971B (zh) | 图像处理方法、装置、电子设备及计算机可读存储介质 | |
CN112556685B (zh) | 导航路线的显示方法、装置和存储介质及电子设备 | |
CN111833447A (zh) | 三维地图构建方法、三维地图构建装置及终端设备 | |
CN111094895A (zh) | 用于在预构建的视觉地图中进行鲁棒自重新定位的系统和方法 | |
JP5833507B2 (ja) | 画像処理装置 | |
WO2022237048A1 (zh) | 位姿获取方法、装置、电子设备、存储介质及程序 | |
CN112243518A (zh) | 获取深度图的方法、装置及计算机存储介质 | |
CN114943773A (zh) | 相机标定方法、装置、设备和存储介质 | |
CN113592015B (zh) | 定位以及训练特征匹配网络的方法和装置 | |
CN114998433A (zh) | 位姿计算方法、装置、存储介质以及电子设备 | |
CN112750164B (zh) | 轻量化定位模型的构建方法、定位方法、电子设备 | |
CN112767484B (zh) | 定位模型的融合方法、定位方法、电子装置 | |
CN113570535A (zh) | 视觉定位方法及相关装置、设备 | |
Porzi et al. | An automatic image-to-DEM alignment approach for annotating mountains pictures on a smartphone |
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 |