基于ORB-GMS的图像匹配方法、装置、计算机设备及存储介质与流程

基于orb-gms的图像匹配方法、装置、计算机设备及存储介质
技术领域
1.本技术实施例涉及计算机视觉技术领域,尤其涉及一种基于orb-gms的图像匹配方法、装置、计算机设备及存储介质。
背景技术:
2.在对图像进行拼接的过程中,需要面临多个相机的影像融合的问题。在开始融合之前,需要通过去畸变矫正得到修正后的非畸变图像,然后再对这些图像进行对齐和融合。其中,对于非畸变图像的对齐与融合问题,一种通用的办法是:对需要拼接的图像进行特征点匹配,然后通过拟合特征点的旋转、平移、缩放关系来确定整幅图像的全局变形。也就是说,图像拼接是通过图像之间的共同特征来确定多幅图像之间进行旋转、平移、缩放的参数来实现的。因此,特征点的匹配良好与否直接影响了后续的拼接工作。
3.现有的特征点算法虽然能够在较短时间内生成密集的特征点,但一部分的特征点描述性能有所下降;更佳的特征点能够通过能复杂的算法来完成,但计算负担太大,实用性差。
技术实现要素:
4.本技术实施例提供一种基于orb-gms的图像匹配方法、装置、计算机设备及存储介质,来解决现有的图像特征点算法的计算负担太大,实用性差的问题。
5.在第一方面,本技术实施例提供了一种基于orb-gms的图像匹配方法,所述方法包括以下步骤:
6.获取需要拼接的多幅图像;
7.基于orb算法对所述图像进行特征匹配,获得特征描述子;
8.基于orb-gms算法对所述特征描述子进行快速鲁棒匹配,得到单应矩阵;
9.根据透视变换,输入预期的扭曲的图像、单应矩阵以及输出图像的形状,将图像进行拼接。
10.进一步的,所述基于orb算法对所述图像进行特征匹配,获得特征描述子,包括:
11.通过fast算法对所述图像检测得到特征点;
12.通过brief算法对特征点进行描述,得到特征描述子。
13.进一步的,所述通过fast算法对所述图像检测得到特征点,包括:
14.选择一个像素p,并以该像素为圆形模板,得到圆形的上像素,比较圆形的上像素和像素p的差值;
15.计算像素p的正上像素、正下像素、左像素、右像素这四个像素的差值,若有三个像素超过设定阈值,则将像素p设为候选点p,否则舍弃;
16.获取候选点p所在的圆形的顺时针外像素,比较顺时针外像素与候选点p的差值,若有九个像素超过设定阈值,则将该候选点p设为特征点p;
17.对图像的非极大值进行抑制:
18.计算特征点处的fast得分值,判断以特征点p为中心的一个邻域内,经计算后若有多个特征点,则判断每个特征点的的顺时针外像素与中心像素点的差值的绝对值总和;
19.若特征点p是邻域所有特征点中响应值最大的,则保留该点的值,否则,则舍弃改点的值;若邻域内只有一个特征点,则保留该点的值;
20.得分计算公式如下:
[0021][0022]
其中,v表示得分,t表示设定阈值。
[0023]
进一步的,所述通过brief算法对特征点进行描述,得到特征描述子,包括:
[0024]
通过brief算法在关键点kp领域以设定采样方式选取n个点对,
[0025]
定义一种算子t:
[0026][0027]
其中,p为点对,v为像素亮度;
[0028]
将n个点对的比较结果组合起来,作为特征描述子;
[0029]
通过t描述为n维特征向量(t1,t2,t3,t4)。
[0030]
进一步的,所述通过brief算法对特征点进行描述,得到特征描述子之前,还包括:
[0031]
通过质心算法计算梯度方向:
[0032]
首先计算moment(m
00 m
10 m
01
):
[0033][0034][0035][0036]
得到q向量:
[0037][0038]
通过q向量规定旋转方向,当计算brief算法时考虑q向量方向,计算时归一化方向;当图像发生了旋转,则通过两张图像之间的q方向来恢复原始brief信息。
[0039]
进一步的,所述基于orb-gms算法对所述特征描述子进行快速鲁棒匹配,得到单应矩阵,包括:
[0040]
根据得到的特征描述子,通过gms算法对所述特征描述子进行匹配;
[0041]
关于正确的匹配邻域中的正确匹配和错误的概率分布:
[0042]
用数学的角度推导则表示为一种关于正确的匹配邻域中的正确匹配和错误的概率分布:
[0043]
[0044]mtrue
=knp
ture
,
[0045]mfalse
=knp
false
,
[0046]
b(kn,p
true
)xi是正确匹配;b(kn,p
fales
)xi是错误匹配;
[0047]
确定出最大概率p1:
[0048][0049]
过滤掉错误匹配的特征描述子,存留正确匹配的特征描述子。
[0050]
进一步的,所述获取需要拼接的多幅图像之后,还包括:
[0051]
对所述图像进行去畸变矫正,得到修正后的非畸变图像;
[0052]
将多幅所述非畸变图像进行对齐和融合。
[0053]
在第二方面,本技术实施例还提供一种基于orb-gms的图像匹配装置,包括:
[0054]
图像获取模块,用于获取需要拼接的多幅图像;
[0055]
特征获取模块,用于基于orb算法对所述图像进行特征匹配,获得特征描述子;
[0056]
特征匹配模块,用于基于orb-gms算法对所述特征描述子进行快速鲁棒匹配,得到单应矩阵;
[0057]
图像拼接模块,用于根据透视变换,输入预期的扭曲的图像、单应矩阵以及输出图像的形状,将图像进行拼接。
[0058]
在第三方面,本技术实施例还提供一种计算机设备,包括:存储器以及一个或多个处理器;
[0059]
所述存储器,用于存储一个或多个程序;
[0060]
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述的一种基于orb-gms的图像匹配方法。
[0061]
在第四方面,本技术实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如上述的一种基于orb-gms的图像匹配方法。
[0062]
本技术实施例通过获取需要拼接的多幅图像;基于orb算法对所述图像进行特征匹配,获得特征描述子;基于orb-gms算法对所述特征描述子进行快速鲁棒匹配,得到单应矩阵;根据透视变换,输入预期的扭曲的图像、单应矩阵以及输出图像的形状,将图像进行拼接;基于orb-gms算法进行图像匹配,性能高,计算量小,实用性强。
附图说明
[0063]
图1是本技术实施例提供的一种基于orb-gms的图像匹配方法的流程图;
[0064]
图2是本技术实施例提供的一种基于orb-gms的图像匹配方法的透视变换示意图;
[0065]
图3是本技术实施例提供的一种基于orb-gms的图像匹配装置的结构示意图;
[0066]
图4是本技术实施例提供的一种计算机设备的结构示意图;
[0067]
图5是本技术实施例提供的现阶段特征点匹配算法。
具体实施方式
[0068]
为了使本技术的目的、技术方案和优点更加清楚,下面结合附图对本技术具体实施例作进一步的详细描述。可以理解的是,此处所描述的具体实施例仅仅用于解释本技术,而非对本技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本技术相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
[0069]
在影像拼接系统中,需要面临多个相机的影像融合的问题。在开始融合之前,需要通过去畸变矫正得到修正后的非畸变图像,然后再对这些图像进行对齐和融合。
[0070]
需要着重关注非畸变图像的对齐与融合问题。一种通用的办法是:对需要拼接的图像进行特征点匹配,然后通过拟合特征点的旋转、平移、缩放关系来确定整幅图像的全局变形。也就是说,图像拼接是通过图像之间的共同特征来确定多幅图像之间进行旋转、平移、缩放的参数来实现的。因此,特征点的匹配良好与否直接影响了后续的拼接工作。
[0071]
特征点是一种对图像中的纹理内容进行稀疏表示后的数据,它包含关键点(key point)位置检测和特征描述两部分。
[0072]
因此可以通过对图像的某种特征(比如角点)为判据进行关键点检测,然后对该点所指定的坐标附近进行描述,这样就得到了特征点的必需信息。特征点的检测与描述方法中,最具有代表性的是尺度不变特征变换法(scale invariant feature transform),简称sift。虽然学界中对sift的引用和研究已经达到了一定的极限状态,但仍需要在此对sift进行必要的引用,以便直观地对其它方法进行对比。
[0073]
首先,sift算法是一种能够克服局部特征的旋转、缩放、光照(亮度)变化的特征提取算法,该算法在图像的仿射变换或视角变化甚至其他噪声的影响下仍能保证正确的匹配,即具备一定的鲁棒性。其次,sift的关键点检测算法基于dog空间的极值检测完成,能够得到大量的候选关键点位置,通过稳定程度确定关键点的尺度,方向直方图来得到关键点方向。需要关注的是,sift算法基于上述操作满足了大部分特征点检测时需求:
[0074]
1.具有多量特性,在大多数情况可以得到较丰富的关键点。
[0075]
2.局部特征描述子,能够克服大多数的旋转、缩放、光照变化以及其它噪声影响。
[0076]
上述两个特性使得sift算法虽然出现较早,但仍在大多数领域(三维重建、视觉slam、图像拼接)经久不衰,历久弥新。
[0077]
诚然,sift算法在鲁棒性、实时性上处于一种较为平衡的状态,但随着当今的视觉领域应用不断扩张,已经出现了更多替代sift的算法,而且从sift自身的平衡点上各有侧重,或全面超越sift算法,如图5所示。
[0078]
其中,surf、akaze、orb算法在计算量上较sift算法更小,意味着解算速度更快,但鲁棒性有所降低,这类算法适合在实时应用或者移动端应用实现,因为这类算法能够在更短时间内获得更多的特征点供匹配和过滤。在一定程度上,更多特征点意味着鲁棒性更好,在整个流程上对每个环节的鲁棒性要求有所降低,更意味着这类算法在移动设备上实现时能够提供可以容忍的计算时间。但在另一侧是更加鲁棒的算法,由于一些应用的限制(如
sfm:三维场景重建等)不能得到特别多的图像样本,或对精度有要求,不允许出现相关关系的误匹配,从而需要得到更正确的匹配,以便在后续的过滤中损失较少。
[0079]
另一侧,a-sift、pca-sift、code、lift算法都希望通过更复杂、更鲁棒的手段在算法性能上取得强化的效果。其中,a-sift是affine-sift的简写,顾名思义,这是一种通过细化思路设计的特征点匹配算法,a-sift的核心思想在于图像的多次仿射模拟来得到鲁棒特征点的算法,其本身算法是一种框架,具体可以通过surf、sift等算法实现,但本质上该算法使用了极为耗时的思路。该算法固然能够得到较鲁棒的特征点,但思想上较为粗糙,在处理器计算量的支出和实际鲁棒性的收益中并没有得到一种很理想的平衡,更为遗憾的是,这种算法需要极大的连续内存区段,也就是对设备的内存使用率很大,且使用效率较低,移植到移动设备上是不太现实的。而pca-sift算法则用到了类似机器学习等领域的主成分分析(pca)算法,其作用在于利用pca在描述特征时更具有鲁棒性和代表性,本质思想在于从提高特征描述质量来提升算法的性能。该算法在描述特征的过程中使用了较为线性的思想——通过提升维度来得到更高质量的特征,sift算法使用了4*4*8个描述子,而pca-sift直接通过39*39*2个梯度导数获得3024维数据,再通过pca得到36维描述子。这种方式能够得到失真较少的特征点,但主成分分析占用的时间还是很可观的,这种计算随着特征点的增多会让算法的实际耗时更夸张。
[0080]
code则是一种较为前沿的算法,尤其对大基线的场景更为有效,也就是说,在转角较大的全景拼接中,使用code算法得到的结果是较为理想的。code在这里需要着重介绍,因为该算法的整体模型可以通过一种主观、感性的先验标准来重新设计出计算量低,且鲁棒的算法——gms。
[0081]
首先要确定的是,这种算法的计算负担仍然很大:code的主要思想为多次过滤,且过滤的标准和手段不一。首先,code通过一次常见的特征点匹配结果作为初始输入,然后选取一些较为好的匹配结果。其中较为好的结果是通过likelihood标准去拟合的(回归),然后再用svm思想设计分类器,对不正确的点匹配关系进行过滤,最后再使用仿射变换回归模型得到结果。
[0082]
code的回归模型可以简单理解为一种统计,首先,输入的结果若是三维的,则可以用平面拟合来类比:即用离散的点拟合平面,最终得到一种平面,属于该平面的数据点为接受的正确点,不在平面上的点则认为是需要剔除的错误点。code的likelihood回归使用的输入点是8维数据,可以用以下表达式描述:
[0083]
d(x,y,dx,dy,t1,t2,t3,t4)
[0084]
其中,(x,y)是参考帧的关键点位置,(dx,dy)则是两幅图像中(x,y)位置的差,(t1,t2,t3,t4)是算法中规定的四个转移矩阵,最终通过huber代价函数进行评分,得到正确的结果。之后进行的是affine回归,也就是仿射变换回归模型,在此不再赘述。
[0085]
至此可以很明显地看出,code模型是一种超越a-sift计算复杂度、同时比pca-sift更具实践经验,且能够解决大基线导致两幅图像估计错误的方法。
[0086]
至于lift,则是脱胎于深度学习这个热门词汇的时髦方法。该算法的核心思想在于,sift、orb、surf等特征点检测算法的特征点描述都是基于手工设计的,也就是说在遍历所有特征点描述手段的假设下,最终会存在更高效的特征点描述算子。lift算法全称为learned invariant feature points,顾名思义,是一种基于机器学习(或称为深度学习)
的特征点检测和描述方法,也是一种完全的深度学习尝试:该算法一共使用了三个卷积神经网络(cnn),分别应用在关键点检测、梯度方向估计、特征子描述三大步骤。但该算法训练时并没有考虑到多样性对深度神经网络性能带来的收益,较为遗憾地使用了sift的输出数据作为训练样本——虽然使用了三维重建结果来保证输入的数据较为正确,但其实也限制了输入的多样性——对sift算法输出再过滤得到的样本必然是片面的——从而导致算法本身效果并非突破性地高性能。此外,该算法更为严重的缺陷在于同时使用了三个卷积神经网络,直接导致该算法从关键点检测开始就很难保证计算量可控,剩下两个特征子描述的网络同样让该算法的计算负担雪上加霜。该算法的有效意义在于获得尽可能高质量的特征点,降低匹配后过滤的难度,但若令关键点检测产生较多(如:1000个)的关键点,则直接导致算法计算量爆炸,丧失了作为高质量三维重建的意义。而且,串联使用cnn的结构也导致该算法在图像拼接领域无法施展其高性能的特性。
[0087]
图5左侧是更低计算量,更多错匹配率的轻量级算法,右侧则是通过多次迭代,或高维特征描述等手段实现的高计算量,低错匹配率的鲁棒算法。通过研究code的拟合思想和orb、akaze等轻量级算法,可以发现,特征点匹配可以通过调整数量、优化过滤方法来得到更有效的特征点匹配方案。
[0088]
显然,更快的算法能够在更短时间内生成更密集的特征点,但一部分的特征点描述性能有所下降;更佳的特征点能够通过能复杂的算法来完成,但计算负担太大,实用性大打折扣。
[0089]
本技术实施例建立一套基于orb-gms的图像匹配方法,解决了现有的图像特征点算法的计算负担太大,实用性差的问题。
[0090]
实施例中提供的基于orb-gms的图像匹配方法可以由基于orb-gms的图像匹配装置执行,该基于orb-gms的图像匹配装置可以通过软件和/或硬件的方式实现,并集成在基于orb-gms的图像匹配设备中。其中,基于orb-gms的图像匹配设备可以是计算机等设备。
[0091]
图1为本技术实施例提供的一种基于orb-gms的图像匹配方法的流程图。参考图1,所述方法包括以下步骤:
[0092]
步骤110、获取需要拼接的多幅图像。
[0093]
可选的,获取需要拼接的多幅图像后,对所述图像进行去畸变矫正,得到修正后的非畸变图像;将多幅所述非畸变图像进行对齐和融合。
[0094]
步骤120、基于orb算法对所述图像进行特征匹配,获得特征描述子。
[0095]
具体的,通过fast算法对所述图像检测得到特征点;通过质心算法计算梯度方向;通过brief算法对特征点进行描述,得到特征描述子。
[0096]
可选的,所述通过fast算法对所述图像检测得到特征点,包括:
[0097]
选择一个像素p,并以该像素为圆形模板,得到圆形的上像素,比较圆形的上像素和像素p的差值;
[0098]
计算像素p的正上像素、正下像素、左像素、右像素这四个像素的差值,若有三个像素超过设定阈值,则将像素p设为候选点p,否则舍弃;
[0099]
获取候选点p所在的圆形的顺时针外像素,比较顺时针外像素与候选点p的差值,若有九个像素超过设定阈值,则将该候选点p设为特征点p;
[0100]
对图像的非极大值进行抑制:
[0101]
计算特征点处的fast得分值,判断以特征点p为中心的一个邻域(如3x3或5x5)内,经计算后若有多个特征点,则判断每个特征点的的顺时针外像素与中心像素点的差值的绝对值总和;
[0102]
若特征点p是邻域所有特征点中响应值最大的,则保留该点的值,否则,则舍弃改点的值;若邻域内只有一个特征点,则保留该点的值;
[0103]
得分计算公式如下:
[0104][0105]
其中,v表示得分,t表示设定阈值。
[0106]
可选的,所述通过brief算法对特征点进行描述,得到特征描述子,包括:
[0107]
通过brief算法在关键点kp领域以设定采样方式选取n个点对,
[0108]
定义一种算子t:
[0109][0110]
其中,p为点对,v为像素亮度;
[0111]
将n个点对的比较结果组合起来,作为特征描述子;
[0112]
通过t描述为n维特征向量(t1,t2,t3,t4)。
[0113]
示例性的,通过t描述为n=4维特征向量,实际的brief使用512维特征向量。
[0114]
可选的,所述通过质心算法计算梯度方向,包括:
[0115]
首先计算moment(m
00 m
10 m
01
):
[0116][0117][0118][0119]
得到q向量:
[0120][0121]
通过q向量规定旋转方向,当计算brief算法时考虑q向量方向,计算时归一化方向;当图像发生了旋转,则通过两张图像之间的q方向来恢复原始brief信息。
[0122]
可以理解的是,orb通过fast算法获取关键点位置,并通过改造的brief特征描述算法得到特征描述子。旋转不变性主要取决于梯度方向,orb在brief描述之前计算了梯度方向。
[0123]
步骤130、基于orb-gms算法对所述特征描述子进行快速鲁棒匹配,得到单应矩阵。
[0124]
具体的,gms全称为grid motion statistics,可以直接翻译为基于网格的运动统计方法。基于网格的运动统计算法,能够得到媲美code的大基线效果且计算量较低,从而为寻找单应矩阵的估计提供更高质量的关键点。通过gms,我们可以在保证高速的条件下得到比sift更密集,cpu计算时间更短的组合算法:即基于orb-gms的特征点匹配。
[0125]
gms的主观思想在于对code的多次回归进行总结:即code认为看上去不整齐的匹
配就是错误的匹配。也就是说,对于两幅图像的运动关系,匹配结果应该在运动上看似连续。gms使用了这种思路,认为这些连续的匹配关系是接近于正确匹配的。
[0126]
基于gms先验的运动估计匹配法:
[0127]
gms的主观思想在于motion的平滑(整齐)成度,一个点附近运动估计都被统计,从而通过统计的方式来确定该匹配是否平滑:看起来平滑的motion即为正确的匹配,突变的motion即为错误的匹配。gms的计算原理在于对单个匹配对中的两点的附近(邻域)进行匹配统计,统计的意义在于技术领域内匹配点的个数来判断匹配是否正确。
[0128]
gms算法基于两个假设:
[0129]
运动平滑使得周围的邻域是由相同位置的,同样的,错误匹配有不相同的3d位置;假定匹配错误,那么它最临近的匹配可以在任何m个可能的位置上。
[0130]
用数学的角度推导则表示为一种关于正确的匹配邻域中的正确匹配和错误的概率分布:
[0131][0132]mtrue
=knp
ture
,
[0133]mfalse
=knp
false
,
[0134]
b(kn,p
true
)xi是正确匹配;b(kn,p
fales
)xi是错误匹配;
[0135]
确定出最大概率p1:
[0136][0137]
过滤掉错误匹配的特征描述子,存留正确匹配的特征描述子。
[0138]
步骤140、根据透视变换,输入预期的扭曲的图像、单应矩阵以及输出图像的形状,将图像进行拼接。
[0139]
可选的,通过上述得到单应矩阵h,需要将两个图像拼接在一起;采用透视变换,输入想要扭曲的图像,单应矩阵h,还有输出图像的形状,通过获取两个图像的宽度之和然后使用第二个图像的高度确定输出图像的导出形状。透视变换(perspective transformation)是将图片投影到一个新的视平面(viewing plane),也称作投影映射(projective mapping)。透视变换如图2。
[0140]
在上述实施例的基础上,请参照图3,本技术实施例提供的一种基于orb-gms的图像匹配装置,所述基于orb-gms的图像匹配装置具体包括:图像获取模块201、特征获取模块202、特征匹配模块203和图像拼接模块204。
[0141]
其中,图像获取模块201用于获取需要拼接的多幅图像;特征获取模块202用于基于orb算法对所述图像进行特征匹配,获得特征描述子;特征匹配模块203用于基于orb-gms算法对所述特征描述子进行快速鲁棒匹配,得到单应矩阵;图像拼接模块204用于根据透视变换,输入预期的扭曲的图像、单应矩阵以及输出图像的形状,将图像进行拼接。
[0142]
上述,通过获取需要拼接的多幅图像;基于orb算法对所述图像进行特征匹配,获得特征描述子;基于orb-gms算法对所述特征描述子进行快速鲁棒匹配,得到单应矩阵;根
据透视变换,输入预期的扭曲的图像、单应矩阵以及输出图像的形状,将图像进行拼接;基于orb-gms算法进行图像匹配,性能高,计算量小,实用性强。
[0143]
本技术实施例提供的基于orb-gms的图像匹配装置可以用于执行上述实施例提供的基于orb-gms的图像匹配方法,具备相应的功能和有益效果。
[0144]
本技术实施例还提供了一种计算机设备,该计算机设备可集成本技术实施例提供的基于orb-gms的图像匹配装置。图4是本技术实施例提供的一种计算机设备的结构示意图。参考图4,该计算机设备包括:输入装置53、输出装置54、存储器52以及一个或多个处理器51;所述存储器52,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器51执行,使得所述一个或多个处理器51实现如上述实施例提供的基于orb-gms的图像匹配方法。其中输入装置53、输出装置54、存储器52和处理器51可以通过总线或者其他方式连接,图4中以通过总线连接为例。
[0145]
处理器51通过运行存储在存储器52中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的基于orb-gms的图像匹配方法。
[0146]
上述提供的计算机设备可用于执行上述实施例提供的基于orb-gms的图像匹配方法,具备相应的功能和有益效果。
[0147]
本技术实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种基于orb-gms的图像匹配方法,该基于orb-gms的图像匹配方法包括:获取需要拼接的多幅图像;基于orb算法对所述图像进行特征匹配,获得特征描述子;基于orb-gms算法对所述特征描述子进行快速鲁棒匹配,得到单应矩阵;根据透视变换,输入预期的扭曲的图像、单应矩阵以及输出图像的形状,将图像进行拼接。
[0148]
存储介质——任何的各种类型的存储器设备或存储设备。术语“存储介质”旨在包括:安装介质,例如cd-rom、软盘或磁带装置;计算机装置存储器或随机存取存储器,诸如dram、ddr ram、sram、edo ram,兰巴斯(rambus)ram等;非易失性存储器,诸如闪存、磁介质(例如硬盘或光存储);寄存器或其它相似类型的存储器元件等。存储介质可以还包括其它类型的存储器或其组合。另外,存储介质可以位于程序在其中被执行的第一计算机装置中,或者可以位于不同的第二计算机装置中,第二计算机装置通过网络(诸如因特网)连接到第一计算机装置。第二计算机装置可以提供程序指令给第一计算机用于执行。术语“存储介质”可以包括可以驻留在不同位置中(例如在通过网络连接的不同计算机装置中)的两个或更多存储介质。存储介质可以存储可由一个或多个处理器执行的程序指令(例如具体实现为计算机程序)。
[0149]
当然,本技术实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的基于orb-gms的图像匹配方法,还可以执行本技术任意实施例所提供的基于orb-gms的图像匹配方法中的相关操作。
[0150]
上述实施例中提供的基于orb-gms的图像匹配装置、存储介质及计算机设备可执行本技术任意实施例所提供的基于orb-gms的图像匹配方法,未在上述实施例中详尽描述的技术细节,可参见本技术任意实施例所提供的基于orb-gms的图像匹配方法。
[0151]
上述仅为本技术的较佳实施例及所运用的技术原理。本技术不限于这里所述的特定实施例,对本领域技术人员来说能够进行的各种明显变化、重新调整及替代均不会脱离本技术的保护范围。因此,虽然通过以上实施例对本技术进行了较为详细的说明,但是本申
请不仅仅限于以上实施例,在不脱离本技术构思的情况下,还可以包括更多其他等效实施例,而本技术的范围由权利要求的范围决定。
技术特征:
1.一种基于orb-gms的图像匹配方法,其特征在于,所述方法包括以下步骤:获取需要拼接的多幅图像;基于orb算法对所述图像进行特征匹配,获得特征描述子;基于orb-gms算法对所述特征描述子进行快速鲁棒匹配,得到单应矩阵;根据透视变换,输入预期的扭曲的图像、单应矩阵以及输出图像的形状,将图像进行拼接。2.根据权利要求1所述的基于orb-gms的图像匹配方法,其特征在于,所述基于orb算法对所述图像进行特征匹配,获得特征描述子,包括:通过fast算法对所述图像检测得到特征点;通过brief算法对特征点进行描述,得到特征描述子。3.根据权利要求2所述的基于orb-gms的图像匹配方法,其特征在于,所述通过fast算法对所述图像检测得到特征点,包括:选择一个像素p,并以该像素为圆形模板,得到圆形的上像素,比较圆形的上像素和像素p的差值;计算像素p的正上像素、正下像素、左像素、右像素这四个像素的差值,若有三个像素超过设定阈值,则将像素p设为候选点p,否则舍弃;获取候选点p所在的圆形的顺时针外像素,比较顺时针外像素与候选点p的差值,若有九个像素超过设定阈值,则将该候选点p设为特征点p;对图像的非极大值进行抑制:计算特征点处的fast得分值,判断以特征点p为中心的一个邻域内,经计算后若有多个特征点,则判断每个特征点的的顺时针外像素与中心像素点的差值的绝对值总和;若特征点p是邻域所有特征点中响应值最大的,则保留该点的值,否则,则舍弃改点的值;若邻域内只有一个特征点,则保留该点的值;得分计算公式如下:其中,v表示得分,t表示设定阈值。4.根据权利要求2所述的基于orb-gms的图像匹配方法,其特征在于,所述通过brief算法对特征点进行描述,得到特征描述子,包括:通过brief算法在关键点kp领域以设定采样方式选取n个点对,定义一种算子t:其中,p为点对,v为像素亮度;将n个点对的比较结果组合起来,作为特征描述子;通过t描述为n维特征向量(t1,t2,t3,t4)。5.根据权利要求4所述的基于orb-gms的图像匹配方法,其特征在于,所述通过brief算法对特征点进行描述,得到特征描述子之前,还包括:
通过质心算法计算梯度方向:首先计算moment(m
00 m
10 m
01
):):):得到q向量:通过q向量规定旋转方向,当计算brief算法时考虑q向量方向,计算时归一化方向;当图像发生了旋转,则通过两张图像之间的q方向来恢复原始brief信息。6.根据权利要求1所述的基于orb-gms的图像匹配方法,其特征在于,所述基于orb-gms算法对所述特征描述子进行快速鲁棒匹配,得到单应矩阵,包括:根据得到的特征描述子,通过gms算法对所述特征描述子进行匹配;关于正确的匹配邻域中的正确匹配和错误的概率分布:关于正确的匹配邻域中的正确匹配和错误的概率分布:关于正确的匹配邻域中的正确匹配和错误的概率分布:b(kn,p
true
)x
i
是正确匹配;b(kn,p
fales
)x
i
是错误匹配;确定出最大概率p1:过滤掉错误匹配的特征描述子,存留正确匹配的特征描述子。7.根据权利要求1所述的基于orb-gms的图像匹配方法,其特征在于,所述获取需要拼接的多幅图像之后,还包括:对所述图像进行去畸变矫正,得到修正后的非畸变图像;将多幅所述非畸变图像进行对齐和融合。8.一种基于orb-gms的图像匹配装置,其特征在于,包括:图像获取模块,用于获取需要拼接的多幅图像;特征获取模块,用于基于orb算法对所述图像进行特征匹配,获得特征描述子;特征匹配模块,用于基于orb-gms算法对所述特征描述子进行快速鲁棒匹配,得到单应矩阵;图像拼接模块,用于根据透视变换,输入预期的扭曲的图像、单应矩阵以及输出图像的形状,将图像进行拼接。
9.一种计算机设备,其特征在于,包括:存储器以及一个或多个处理器;所述存储器,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-8任一所述的一种基于orb-gms的图像匹配方法。10.一种包含计算机可执行指令的存储介质,其特征在于,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求1-8任一所述的一种基于orb-gms的图像匹配方法。
技术总结
本申请实施例公开了一种基于ORB-GMS的图像匹配方法、装置、计算机设备及存储介质;所述方法包括:获取需要拼接的多幅图像;基于ORB算法对所述图像进行特征匹配,获得特征描述子;基于ORB-GMS算法对所述特征描述子进行快速鲁棒匹配,得到单应矩阵;根据透视变换,输入预期的扭曲的图像、单应矩阵以及输出图像的形状,将图像进行拼接;本申请实施例基于ORB-GMS算法进行图像匹配,性能高,计算量小,实用性强。实用性强。实用性强。
技术研发人员:王文辉 李贻凯 彭煜民 马一鸣 张豪 李尧 黄凡旗
受保护的技术使用者:南方电网调峰调频发电有限公司储能科研院
技术研发日:2023.06.16
技术公布日:2023/8/28
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/