一种基于轻量结构化线地图的视觉定位方法

未命名 09-03 阅读:86 评论:0


1.本发明涉及计算机视觉定位技术领域,特别涉及一种基于轻量结构化线地图的视觉定位方法。


背景技术:

2.视觉定位,即估计拍摄图像时相机在某个坐标系下(比如世界坐标系下)的六自由度位姿,即三自由度的位置和三自由度的方向。他是自动驾驶汽车、智能机器人、虚拟现实、增强现实、同时定位和建图(slam)和由运动恢复结构(sfm)等应用算法的核心组成部分。
3.因为点特征具有紧凑和稳健的表示,基于点特征定位的范式一直是该领域主要的研究方向,因此,目前最先进的视觉定位算法主要为基于点特征的方法,基于点特征的定位算法在定位时通常依据预先构建好的三维场景地图,将场景表示为稀疏的三维点云,这一般是通过sfm算法构建的三维点云地图,在定位查询图像时,通过基于局部点特征的提取和匹配在查询图像中的特征点和场景地图的三维点之间建立对应关系,即二维到三维匹配,最后通过在随机采样一致性算法循环中利用透视n点算法(pnp)算法来求解相机位姿,此类方法缺点在于当扩展到大场景时,地图的存储量往往很大,三维点云的数量很容易膨胀到几百万个点,这限制了移动端的应用部署,且计算效率不高。
4.为了将场景规模扩大并可以处理复杂照明和季节变化,一种混合的方法被提出,即先通过图像检索找出与查询图像外观相似的一些数据库图像,把二维到三维的对应关系限制在这些数据库图像可见的三维点上,避免了与所有数据库图像进行匹配造成的资源浪费和时间代价高,虽然计算效率相较于基于点特征的方法有所提升,但是还是需要存储庞大的点云地图,限制了其应用发展。
5.为了进一步提高精度,有一些方法利用图像中的高层信息,比如语义,线段等,有文献提出了一种点线联合优化方法来解决相机姿态估计问题,即设计了一个线提取卷积神经网络用于后续的线匹配和姿态优化过程,采用了一种基于极几何约束和线重投影误差过滤的由粗到细的匹配方法,还构建了一个点线联合优化代价函数来优化相机姿态,但是其方法高精度的主要贡献来自基于点特征的定位,即需要提供一个良好的初值。
6.随着深度学习技术的发展壮大,也带动了深度学习技术在视觉定位领域的研究,基于学习的方法目前来看仅使用于室内场景和小场景,通过网络直接端到端的回归相机姿态被证明更类似于基于检索的方法,因为通过训练,网络似乎记住了所有数据库图像的位姿,在推断时也是在这些位姿附近进行,并不会推断出远离这些位姿的结果。缺点是其泛化性,其在没有训练过的场景下的定位效果不理想,方法不够通用。
7.综上,现有技术还存在应用场景受限、计算效率较低,通用性差等问题。


技术实现要素:

8.本发明提供了一种基于轻量结构化线地图的视觉定位方法,以解决现有技术所存在的应用场景受限、计算效率较低,通用性差的技术问题。
9.为解决上述技术问题,本发明提供了如下技术方案:
10.一种基于轻量结构化线地图的视觉定位方法,用于估计已经校准过的查询图像的六自由度绝对相机姿态,所述方法包括:
11.通过图像检索,将查询图像与数据库图像进行图像匹配,根据图像匹配结果,找到与查询图像最相似的多个数据库图像,作为候选数据库图像;
12.构建用于视觉定位的线地图;
13.基于所述线地图,对所述查询图像和所述候选数据库图像进行线提取和匹配,构建二维到三维的线对应关系;
14.基于构建的二维到三维的线对应关系,求解初始姿态;
15.对求解出的初始姿态进行姿态迭代优化,得到最终的相机位姿。
16.进一步地,所述通过图像检索,将查询图像与数据库图像集进行图像匹配,根据图像匹配结果,找到与查询图像最近的多个数据库图像,作为候选数据库图像,包括:
17.将查询图像和数据库中包含的数据库图像均采用netvlad(net vector of locally aggregated descriptors,融合可训练局部聚集描述子向量)描述符表示;
18.通过计算查询图像和数据库图像各自的全局描述符之间的归一化距离,从数据库中选择多个与查询图像最相似的数据库图像,作为候选数据库图像。
19.进一步地,所述构建用于视觉定位的线地图,包括:
20.采用line3d++算法构建用于视觉定位的线地图;其中,line3d++算法中的对视觉邻居的搜索算法采用netvlad检索算法代替。
21.进一步地,对所述查询图像和所述候选数据库图像进行线提取和匹配,包括:
22.采用预设的线段检测算法,对查询图像和候选数据库图像进行线提取;
23.采用特征点辅助的线段匹配算法对查询图像和候选数据库图像进行线匹配。
24.进一步地,所述采用特征点辅助的线段匹配算法对查询图像和候选数据库图像进行线匹配,包括:
25.使用每个匹配的线段和线段的局部区域内的匹配特征点来构造仿射不变量;
26.通过比较仿射不变量来评估线段的相似性,实现线匹配。
27.进一步地,线段的局部区域内的匹配特征点的确定过程包括:
28.通过计算线段上所有像素的平均梯度来定义线段的梯度;
29.基于线段的梯度方向将线段的局部区域划分为右侧局部区域和左侧局部区域,基于线段的长度来定义线段的局部区域;如果一个点到线段的距离在α
×
length(l)之内,且到线段的垂直平分线的距离在β
×
length(l)之内,则认为其在线段的局部区域内;其中,α,β均为预设值,length(l)表示线段l的长度。
30.进一步地,通过比较仿射不变量来评估线段的相似性,实现线匹配,包括:
31.针对一对要匹配的线段,通过使用线段的左侧局部区域和右侧局部区域中的对应点来计算线段的相似度;其中,使用线段的右侧局部区域中的对应点来计算线段的相似度的计算过程如下:
32.假设右侧局部区域内有n对对应点,则选择一对作为锚点对,其余n-1对作为参考点对;
33.基于由一条线和两对对应点构建的仿射不变量来计算相似度,公式为:
[0034][0035]
i∈[1,n],i≠k
[0036][0037][0038]
其中,表示利用待匹配线段对的右侧局部区域中的对应点,根据和所计算出的相似度;e表示自然对数的底数;和表示由一幅图像中的第m条线段和另一幅图像中的第n条线段组成的待匹配的线段对;和表示选取的锚点对;和表示第i对参考点对;
[0039]
计算所得到的n-1个的值的中值,作为使用线段的右侧局部区域中的对应点计算出的线段的相似度sright,公式为:
[0040][0041]
使用线段的左侧局部区域中的对应点来计算线段的相似度的方式与使用线段的右侧局部区域中的对应点来计算线段的相似度的方式同理;
[0042]
最终的线段相似度的计算公式为:
[0043][0044]
其中,表示使用线段的右侧局部区域中的对应点计算出的线段的相似度,表示使用线段的左侧局部区域中的对应点计算出的线段的相似度。
[0045]
进一步地,基于构建的二维到三维的线对应关系,求解初始姿态,包括:
[0046]
基于构建的二维到三维的线对应关系,使用基于直接线性变换的线性pnl(perspective-n-line,透视n线)算法来求解初始姿态;其中,对于匹配误差,通过代数异常值拒绝算法来剔除,所述代数异常值拒绝算法以迭代重加权最小二乘法的方式求解方程组,对高于预定义阈值的残差的线对分配零权重,并从下一次迭代的处理中去除。
[0047]
进一步地,所述对求解出的初始姿态进行姿态迭代优化,得到最终的相机位姿,包括:
[0048]
通过设计的几何误差函数使用迭代方法来最小化初始姿态,以获得最终的相机姿态估计结果;其中,所述几何误差函数的表达式为:
[0049][0050][0051]
[0052][0053]
其中,m表示二维到三维线对应的数量,函数h(k,t,li)表示使用相机内参矩阵k和初始姿态估计t将三维线段li投影到查询图像上;函数fv表示计算两条线段之间的垂直距离,函数fh表示计算两线段之间的水平距离;ei表示二维线段;ai,bi均为对查询图像中的二维线段进行参数化表示的方程中的参数;a
′i,b
′i均为对三维线段在查询图像中投影的二维线段进行参数化表示的方程中的参数;
[0054]
所述几何误差函数被视为一个非线性最小二乘问题,使用levenberg-marquardt算法和huber损失函数来获得最终优化的相机姿态。
[0055]
本发明提供的技术方案带来的有益效果至少包括:
[0056]
本发明利用图像中提取到的线特征构建线地图,利用构建好的轻量且富含结构化信息的线地图来进行后续的定位算法,相对于点云地图,本发明所构建的线地图更加紧凑轻量,占用的存储量更少,同一场景下,线地图模型比点云模型的存储量降低了10-20倍,从而使得本发明可以在较低的内存消耗情况下估计出较好的相机六自由度位姿,而且,随着数据量的降低,方法的效率也随之提升。这使其可以扩展到大规模场景。同时对场景没有要求,方法足够通用。
附图说明
[0057]
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0058]
图1是本发明实施例提供的基于轻量结构化线地图的视觉定位方法的执行流程示意图;
[0059]
图2是本发明实施例提供的基于轻量结构化线地图的视觉定位方法的实施原理示意图;
[0060]
图3是本发明构建的线图的示意图;
[0061]
图4是本发明方法在剧烈光照变化与遮挡条件下的匹配性能示意图;
[0062]
图5是本发明方法在大的尺度变换条件下的匹配性能示意图;
[0063]
图6是本发明方法在光照与大的视角变换条件下的匹配性能示意图;
[0064]
图7是本发明方法在光照与重复纹理/弱纹理条件下的匹配性能示意图;
[0065]
图8是本发明实施例提供的距离误差定义示意图;其中,(a)为垂直距离示意图,(b)为水平距离示意图,(c)为角度误差示意图;
[0066]
图9为本发明实施例提供的定性结果示意图。
具体实施方式
[0067]
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
[0068]
传统的视觉定位算法往往是在由sfm等算法构造的点云地图上进行定位,但是点特征对弱纹理、照明变换等很敏感,此外生成的三维点云地图很容易就有几百万个点,对设备的存储和计算资源提出了更高的要求,此外,世界是由更高层的几何结构组成的,比如线条、平面等,与点相比,线段在场景中广泛存在,尤其是在人造环境中,而这些环境恰恰是定位应用最广泛的场景,并且相对于点特征,线特征在纹理较差的区域和环境剧烈变换的条件下仍可以稳定检测到,而且与点特征相比,线具有自然的方向性,一组线提供了关于场景结构的强几何线索,因此我们有理由认为线条可以替代点完成视觉定位任务。基于此,本实施例提出一种基于轻量结构化线地图的视觉定位方法,即本实施例的视觉定位方法不提取和匹配图像中的点特征,而是选择图像中可以表达场景结构化信息的线段作为图像特征,构造轻量的且包含丰富场景结构化信息的线地图,之后利用设计的线提取、匹配和位姿初值估计算法以及位姿优化算法,可以在不依赖基于点特征的定位算法提供良好初值的情况下进行定位。
[0069]
本实施例的视觉定位方法可以由电子设备实现,该电子设备可以是终端或者服务器。该方法的执行流程如图1所示,包括以下步骤:
[0070]
s1,通过图像检索,将查询图像与数据库图像进行图像匹配,根据图像匹配结果,找到与查询图像最相似的多个数据库图像,作为候选数据库图像;
[0071]
s2,构建用于视觉定位的线地图;
[0072]
s3,基于构建的线地图,对所述查询图像和所述候选数据库图像进行线提取和匹配,构建二维到三维的线对应关系;
[0073]
s4,基于构建的二维到三维的线对应关系,求解初始姿态;
[0074]
s5,对求解出的初始姿态进行姿态迭代优化,得到最终的相机位姿。
[0075]
具体地,本方法的目标是估计已经校准过的查询图像iq的六自由度绝对相机姿态(r,t),其中,是世界坐标系到相机坐标系的旋转矩阵,是平移向量。算法的输入为用于构建线地图和图像检索的场景的数据库图像{id},生成的线地图由三维空间中线段集组成,其中分别表示第i个线段的起点和终点坐标,n表示线段总数。每一对对应一组图像中的二维线段其中,id表示对应的数据库图像,分别表示对应的三维线段在数据库图像id中的观测二维线段的起点和终点坐标,k表示观测二维线段的数量。
[0076]
算法流程主要包括以下几个部分:首先通过图像检索,这里使用全局描述子将查询图像与数据库图像集进行匹配来执行粗略搜索,找到与查询图像最近的j个数据库图像;然后构建线地图用于后续的定位;对查询图像和检索得到的候选数据库图像进行线提取和匹配构建二维到三维的线对应关系,这里设计了一种点辅助的线匹配算法来提升线匹配的鲁棒性,之后利用一种代数形式的算法来求解初始姿态,最后在设计的优化函数上进行姿态迭代优化得到最终的相机位姿,算法原理如图2所示。下面对各部分的实施过程进行详细说明。
[0077]
图像检索:
[0078]
原则上,建图和定位可以通过考虑所有可能的图像对来实现。然而,在实际的现实世界应用中,这种方法不能很好地扩展,比如在大规模环境中,如大型建筑甚至整个城市下
的定位时。为了使视觉定位具有可扩展性,图像检索起着至关重要的作用。通过有效地从数据库中检索图像并识别与查询图像最相似的候选图像,该过程为后续的姿态估计和线图构建提供了有价值的输入信息。因此,图像检索增强了算法的整体准确性和鲁棒性。具体地,本实施例使用netvlad作为我们的检索算法,netvlad在每个像素的输出是一个矩阵,对应于描述符到每个聚类中心的距离。随后将所有像素矩阵聚合为单个矩阵,然后对其进行归一化并利用主成分分析(pca)算法以进行降维。在我们的方法中,查询图像和数据库图像都由netvlad描述符表示。通过计算它们各自的全局描述符之间的归一化距离,我们从数据库中选择j个最佳匹配的图像。
[0079]
线地图的构建:
[0080]
由于构造线图的固有缺陷,例如由部分遮挡引起的图像中的不一致的线端点,以及每个图像中的多个线段属于同一三维线段的可能性,因此与三维点云地图相比,建立线图的轨迹关联要复杂得多。此外,线图不像点云地图那样具有极线几何来验证两个视图之间的特征点匹配,并且线匹配描述符的多样性远不如点匹配描述符。因此,文献中很少有基于线的重建方法,其实际应用成功率也没有达到点云地图的水平。
[0081]
然而,最近的线检测器和匹配器正在弥合点和线之间的性能差距,我们也相信线段可以提供比局部特征点更多的几何信息。在我们的方法中,我们采用了一个称为line3d++(line3d++是一种用c++编写的基于线的多视图立体(mvs)算法,可以根据图像序列生成3d线模型)的方法,该方法利用二维线段作为图像特征,并应用弱极线约束来建立图像之间的线段对应关系。所设计的评分公式区分了每个线段的正确匹配和不正确匹配,并对不同视图的二维线段进行图聚类以获得最终的线地图。为了避免所有图像相互匹配,为每个图像计算一组视觉上相似的相邻图像。这是通过计算图像的相似性系数和每个图像中共同可见三维点的所需信息来实现的。为了加速线图的构建,我们使用前一步中引入的图像检索来代替原始算法中对视觉邻居的搜索。通过改进算法构建的线图如图3所示,与点云图相比,它提供了丰富的场景结构信息,同时占用的存储空间减少了10-20倍。
[0082]
线段检测和匹配:
[0083]
关于线段检测和匹配,我们的算法允许使用任何可用的线段检测算法。在我们的实际实现中,我们使用了最常用的基于深度学习的线段检测(lsd)线段检测算法来保持与以前的线图构造的一致性。然而它可以替换为其他开源算法。lsd线段检测算法已经可以获得足够可用的线段,后续的线段匹配才是至关重要的。因此,我们设计了一种特征点辅助的线段匹配算法。我们算法的基本思想是在点匹配结果的基础上提高线匹配的鲁棒性。
[0084]
具体来说,我们使用每个匹配的线段和线段的局部区域内的匹配特征点来构造仿射不变量。通过比较仿射不变量来评估线段的相似性。在直线的局部区域,仿射变换可以近似为单应性,因此我们直接使用由直线和点组成的仿射不变量来比较线段的相似性。考虑到在图像中检测到的线通常位于表面的边缘,可以在线段的至少一侧的局部区域中找到与线在同一平面上的一些对应点。因此,我们通过计算线段上所有像素的平均梯度来定义线段的梯度。通过基于梯度方向将图像的局部区域划分为右侧和左侧,基于线段的长度来定义线段的局部区域。如果一个点到线段的距离在α
×
length(l)之内,且到线段的垂直平分线的距离在β
×
length(l)之内,则认为其在线段的局部区域内。在实践中,我们将α设置为2.0,将β设置为0.5,length(l)为线段l的长度。
[0085]
给定一对要匹配的线段,我们通过使用左、右局部区域中的对应点来计算线段的相似性。以右侧局部区域为例(左侧局部区域同理),假设其中有n对对应点,则选择一对作为锚点对,其余n-1对作为参考点对。我们基于由一对线和两对对应点构建的仿射不变量来计算得到n-1个相似性:
[0086][0087]
i∈[1,n],i≠k
[0088]
其中,表示利用待匹配线段对的右侧局部区域中的对应点,根据和所计算出的相似度,e表示自然对数的底数,和分别表示由一个锚点对、一个参考点对和一对线构建的仿射不变量,其定义为:
[0089][0090][0091]
其中,和表示一幅图像中的第m条线段和另一幅图像中的第n条线段组成的待匹配的线段对,和表示选取的n对对应点中第k对作为锚点对,和表示其余的n-1对对应点中第i对对应点(也即参考点对)。
[0092]
计算它们之间的值的中值,作为使用线段的右侧局部区域中的对应点计算出的线段的相似度s
right

[0093][0094]
然后,依次选择不同的锚点对,取最大值作为局部区域相似度:
[0095][0096]
其中,表示线段对和的最终相似性,表示线段对和的右侧局部区域相似性,表示线段对和的左侧局部区域相似性,其计算过程和一致。
[0097]
在匹配过程中,保持了线的唯一性约束,这意味着一幅图像中的线段与另一幅图像的线段唯一匹配。
[0098]
我们设计的算法的匹配性能如图4-图7所示,其中包括剧烈的照明变化、视点变化和尺度变化,这些变化通常会导致基于点的定位方法失败。
[0099]
姿态初始化:
[0100]
基于在前一步骤中获得的查询图像和数据库图像之间的二维到二维的线对应关系,我们建立了查询图像中的线和三维线图中的线之间的二维到三维的线对应关系。由于不是所有的二维到三维的线对应都能准确确定,我们使用二维到二维线对应最多的数据库图像对应的三维线来构建二维到三维线对应。然后我们使用基于直接线性变换的线性pnl(线性透视n线算法)来估计初始相机姿态。该算法将构建的二维到三维线对应关系转换为
齐次线性方程系统,其中系数形成测量矩阵。解则在矩阵的零空间中,并且通过求解线性方程组来估计姿态。与其他pnl算法相比,该算法速度更快,只需要五条线对应关系即可求救,并且它不会像迭代方法那样陷入局部极小值。由于匹配误差,一些线对应不可避免的是不正确的,我们引入一种代数异常值拒绝算法来剔除它们。我们不使用ransac(random sample consensus,使用随机抽样一致性)来去除和识别异常值,因为它增加了所需的迭代次数和算法的复杂性。具体而言,该代数异常值拒绝算法以迭代重加权最小二乘法的方式求解方程组,其中高于预定义阈值的残差的线对应被分配零权重,并从下一次迭代的处理中去除。在没有这些对应关系的情况下重新计算解,直到解的误差停止减小。
[0101]
姿态迭代优化:
[0102]
由于从上一步获得的姿态初始值可能不是几何最优的,我们通过设计的特定几何误差函数使用迭代方法来最小化初始姿态以获得最终的相机姿态估计,这是一个非线性最小二乘问题。考虑一组二维到三维线对应关系lcorr=(ei,li),查询图像的姿态由t表示,三维线li被重投影到查询图像的线段li。二维线段ei和li的线性方程可以分别表示为aix+biy+ci=0和ai′
x

+bi′y′
+ci′
=0。(ai,bi表示对查询图像中的二维线段的参数化表示(aix+biy+ci=0),a
′i,b
′i表示对三维线段在查询图像中投影的二维线段的参数化表示(a
′ix+b
′iy+c
′i=0))通过最小化li和对应的二维线段ei之间的距离误差和角度误差来优化姿态t。
[0103]
我们设计的距离误差定义为垂直距离误差和水平距离误差,其中垂直距离误差优化确保两条线在垂直方向上彼此靠近,如图8(a)所示。d1和d3是线段li的端点到线段ei的距离,d2和d4是线段ei的端点到线段li的距离。
[0104]
从li到ei的垂直距离定义为:
[0105]dv
(li,ei)=max(d1,d2,d3,d4)
[0106]
水平距离误差优化确保两条线在水平方向上彼此靠近,如图8(b)所示,从线段li到线段ei的水平距离dh定义为从li中点到ei的垂直平分线的距离。角度误差被定义为线段li和线段ei之间的角度的正弦,如图8(c)所示。
[0107]
最终代价函数可以表示如下:
[0108][0109][0110][0111][0112]
其中,m为二维到三维线对应的数量,函数h(k,t,li))表示使用相机内参矩阵k和从先前步骤获得的初始姿态估计t将三维线li投影到查询图像上。函数fv表示计算两条线段之间的垂直距离,函数fh表示计算两线段之间的水平距离。
[0113]
代价函数被视为一个非线性最小二乘问题,使用levenberg-marquardt(莱文伯格-马夸特算法,它是一种非线性最小二乘优化算法,用于解决参数拟合问题)算法和huber
损失函数(胡伯损失函数,它是一种用于回归问题的损失函数,旨在降低对异常值的敏感性)来获得最终优化的相机姿态。
[0114]
通过以上步骤,本实施例提供的基于轻量结构化线地图的视觉定位方法可以在较低的内存消耗情况下估计出较好的相机六自由度位姿,在cambridge公开数据集上与基于点的方法和基于学习的方法进行了比较,结果如下表1。
[0115]
表1本发明方法与现有方法的对比结果
[0116][0117]
其中,posenet和dsac++是基于深度学习的方法,as和hloc是基于传统点云的方法;p./l.number表示基于传统点云的方法中构建的点云地图中三维点的数量或者本发明的方法构建的线云地图中三维线段的数量;errors表示估计的相机六自由度位姿与真实相机的六自由度位姿在位置(以m为单位)和方向(以角度
°
为单位)上的误差的中值,分别在cambridge的四个数据集(kings college、old hospital、shop facade和st.mary’s church)上进行了比较测试。可以看出本发明的方法在内存消耗较低的情况下,四个场景分别为1.9mb,0.84mb、0.48mb和2.3mb,估计出较准确的相机六自由度位姿,同时在相机的位置三自由度上提供了最好的结果。
[0118]
进一步地,为了证明本发明方法的有效性,我们根据估计的相机位姿反投影线地图中的三维线段到二维图像上进行可视化,提供定性结果如图9所示。
[0119]
综上,本实施例提供了一种基于轻量结构化线地图的视觉定位方法,该方法可以解决传统基于点特征的定位方法中内存不足和计算效率慢的问题。本实施例的方法使用图像中的线段来构建线图,并且不需要提供任何的初始姿态估计值,从而导致更低的存储要求和更高的计算效率。而且,本实施例设计了一种更稳健的线匹配方法以解决传统点特征提取和匹配技术对弱纹理和剧烈条件变化的敏感性。即使在弱纹理和显著的环境变化下,本实施例的方法也可以准确地匹配线段特征。通过在公开的室内和室外数据集上进行了广泛的实验,证明了本实施例的方法的有效性。这些结果也证实了仅基于图像中的线段进行视觉定位的可行性,这为研究解决视觉定位问题提供了一种新的途径。
[0120]
此外,需要说明的是,本发明可提供为方法、装置或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质上实施的计算机程序产品的形式。
[0121]
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0122]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0123]
还需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
[0124]
最后需要说明的是,以上所述是本发明优选实施方式,应当指出,尽管已描述了本发明优选实施例,但对于本技术领域的技术人员来说,一旦得知了本发明的基本创造性概念,在不脱离本发明所述原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。

技术特征:
1.一种基于轻量结构化线地图的视觉定位方法,用于估计已经校准过的查询图像的六自由度绝对相机姿态,其特征在于,所述方法包括:通过图像检索,将查询图像与数据库图像进行图像匹配,根据图像匹配结果,找到与查询图像最相似的多个数据库图像,作为候选数据库图像;构建用于视觉定位的线地图;基于所述线地图,对所述查询图像和所述候选数据库图像进行线提取和匹配,构建二维到三维的线对应关系;基于构建的二维到三维的线对应关系,求解初始姿态;对求解出的初始姿态进行姿态迭代优化,得到最终的相机位姿。2.如权利要求1所述的基于轻量结构化线地图的视觉定位方法,其特征在于,所述通过图像检索,将查询图像与数据库图像集进行图像匹配,根据图像匹配结果,找到与查询图像最近的多个数据库图像,作为候选数据库图像,包括:将查询图像和数据库中包含的数据库图像均采用netvlad(net vector of locally aggregated descriptors,融合可训练局部聚集描述子向量)描述符表示;通过计算查询图像和数据库图像各自的全局描述符之间的归一化距离,从数据库中选择多个与查询图像最相似的数据库图像,作为候选数据库图像。3.如权利要求1所述的基于轻量结构化线地图的视觉定位方法,其特征在于,所述构建用于视觉定位的线地图,包括:采用line3d++算法构建用于视觉定位的线地图;其中,line3d++算法中的对视觉邻居的搜索算法采用netvlad检索算法代替。4.如权利要求1所述的基于轻量结构化线地图的视觉定位方法,其特征在于,对所述查询图像和所述候选数据库图像进行线提取和匹配,包括:采用预设的线段检测算法,对查询图像和候选数据库图像进行线提取;采用特征点辅助的线段匹配算法对查询图像和候选数据库图像进行线匹配。5.如权利要求4所述的基于轻量结构化线地图的视觉定位方法,其特征在于,所述采用特征点辅助的线段匹配算法对查询图像和候选数据库图像进行线匹配,包括:使用每个匹配的线段和线段的局部区域内的匹配特征点来构造仿射不变量;通过比较仿射不变量来评估线段的相似性,实现线匹配。6.如权利要求5所述的基于轻量结构化线地图的视觉定位方法,其特征在于,线段的局部区域内的匹配特征点的确定过程包括:通过计算线段上所有像素的平均梯度来定义线段的梯度;基于线段的梯度方向将线段的局部区域划分为右侧局部区域和左侧局部区域,基于线段的长度来定义线段的局部区域;如果一个点到线段的距离在α
×
length(l)之内,且到线段的垂直平分线的距离在β
×
length(l)之内,则认为其在线段的局部区域内;其中,α,β均为预设值,length(l)表示线段l的长度。7.如权利要求6所述的基于轻量结构化线地图的视觉定位方法,其特征在于,所述通过比较仿射不变量来评估线段的相似性,实现线匹配,包括:针对一对要匹配的线段,通过使用线段的左侧局部区域和右侧局部区域中的对应点来计算线段的相似度;其中,使用线段的右侧局部区域中的对应点来计算线段的相似度的计
算过程如下:假设右侧局部区域内有n对对应点,则选择一对作为锚点对,其余n-1对作为参考点对;基于由一条线和两对对应点构建的仿射不变量来计算相似度,公式为:基于由一条线和两对对应点构建的仿射不变量来计算相似度,公式为:基于由一条线和两对对应点构建的仿射不变量来计算相似度,公式为:其中,表示利用待匹配线段对的右侧局部区域中的对应点,根据和所计算出的相似度;e表示自然对数的底数;和表示由一幅图像中的第m条线段和另一幅图像中的第n条线段组成的待匹配的线段对;和表示选取的锚点对;和表示第i对参考点对;计算所得到的n-1个的值的中值,作为使用线段的右侧局部区域中的对应点计算出的线段的相似度s
right
,公式为:使用线段的左侧局部区域中的对应点来计算线段的相似度的方式与使用线段的右侧局部区域中的对应点来计算线段的相似度的方式同理;最终的线段相似度的计算公式为:其中,表示使用线段的右侧局部区域中的对应点计算出的线段的相似度,表示使用线段的左侧局部区域中的对应点计算出的线段的相似度。8.如权利要求1所述的基于轻量结构化线地图的视觉定位方法,其特征在于,所述基于构建的二维到三维的线对应关系,求解初始姿态,包括:基于构建的二维到三维的线对应关系,使用基于直接线性变换的线性pnl(perspective-n-line,透视n线)算法来求解初始姿态;其中,对于匹配误差,通过代数异常值拒绝算法来剔除,所述代数异常值拒绝算法以迭代重加权最小二乘法的方式求解方程组,对高于预定义阈值的残差的线对分配零权重,并从下一次迭代的处理中去除。9.如权利要求1所述的基于轻量结构化线地图的视觉定位方法,其特征在于,所述对求解出的初始姿态进行姿态迭代优化,得到最终的相机位姿,包括:通过设计的几何误差函数使用迭代方法来最小化初始姿态,以获得最终的相机姿态估计结果;其中,所述几何误差函数的表达式为:
其中,m表示二维到三维线对应的数量,函数h(k,t,l
i
)表示使用相机内参矩阵k和初始姿态估计t将三维线段l
i
投影到查询图像上;函数f
v
表示计算两条线段之间的垂直距离,函数f
h
表示计算两线段之间的水平距离;e
i
表示二维线段;a
i
,b
i
均为对查询图像中的二维线段进行参数化表示的方程中的参数;a

i
,b
i

均为对三维线段在查询图像中投影的二维线段进行参数化表示的方程中的参数;所述几何误差函数被视为一个非线性最小二乘问题,使用levenberg-marquardt算法和huber损失函数来获得最终优化的相机姿态。

技术总结
本发明公开了一种基于轻量结构化线地图的视觉定位方法,包括:通过图像检索,将查询图像与数据库图像进行图像匹配,根据图像匹配结果,找到与查询图像最相似的多个数据库图像,作为候选数据库图像;构建用于视觉定位的线地图;对所述查询图像和所述候选数据库图像进行线提取和匹配,构建二维到三维的线对应关系;基于构建的二维到三维的线对应关系,求解初始姿态;对求解出的初始姿态进行姿态迭代优化,得到最终的相机位姿。本发明可在较低的内存消耗下估计出较好的相机六自由度位姿,具有重大的应用前景和价值。的应用前景和价值。的应用前景和价值。


技术研发人员:刘红敏 曹程阳 胡雨凡 樊彬
受保护的技术使用者:北京科技大学
技术研发日:2023.06.08
技术公布日:2023/8/31
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐