基于孪生卷积网络和特征混合的sift误匹配检测方法

文档序号:25886975发布日期:2021-07-16 19:21阅读:120来源:国知局

1.本发明属于计算机图像处理技术领域,具体涉及基于孪生卷积网络和特征混合的sift误匹配检测方法。


背景技术:

2.图像匹配技术是图像处理中和计算机视觉中的一个基本问题,有着广泛的应用,它是图像处理技术中一个最最基本的步骤,是运动目标跟踪、物体识别、图像特征匹配、全景图像拼接、三维重建等图像处理技术的基础。目前关于在两幅图像如何去做匹配,提出了许多的方法,目前比较常用的有sift算法以及各种改进的sift算法,这些算法具有尺度不变性,旋转不变性,光照不变性,在特征点匹配中具有良好的鲁棒性,但是无论哪种匹配方法都有缺点,就是存在着匹配错误的现象,目前无论对哪种匹配算法改进都无法解决这一问题。为了消除误匹配点,进一步提高匹配精度,目前主流的解决思路就是在正常的匹配之后,再加上特征误匹配检测的算法,检测到错误匹配并舍去掉。目前关于误匹配的检测方法最常用的方法有以下几种:利用拟合函数的思想去做误匹配检测,选取一个合适的函数模型,通过最小二乘法求出函数的参数,检测匹配点的位置与函数模型所预测的位置是否距离太大,如果距离过大则此匹配点为误匹配点;该算法缺点是误差较大的数据导致拟合的函数模型完全偏离实际数据;利用统计模型思想的ransac算法,它是通过不断在数据集中迭代,寻找出一个最佳单应性矩阵模型,如果匹配点的位置和模型所预测的结果相差太大,从而判断出此匹配点是外点,是不正确的匹配点,应舍去,否则是内点,是正确的匹配点;该算法缺点是ransac只能从特定的数据集中估计出一个模型,如果存在两个(或多个)模型,ransac不能找到别的模型;利用图思想的gtm算法,它是通过knn算法构造出两个匹配集的无向图以及相应的邻接矩阵,并求出邻接矩阵的残差,残差中误差较大的列所对应的匹配点对就是误匹配;该算法缺点就是计算过程太过于复杂,计算时间过长。虽然这些算法虽然能够剔除大量的错误匹配,但是又存在着把大量正确的匹配剔除,计算时间过长,模型鲁棒性不好等诸多问题。


技术实现要素:

3.本发明的目的是提供了基于孪生卷积网络和特征混合的sift误匹配检测方法,大大改善了现有sift误匹配检测技术中容易出现误判的问题,同时提高了误匹配检测的准确率。
4.本发明采用的技术方案是,基于孪生卷积网络和特征混合的sift误匹配检测方法,具体按照以下步骤实施:
5.步骤1,采用sift算法将需要匹配的两幅原始图像进行处理,得到错误样本集合和正确样本集合,并得到训练集和测试集;
6.步骤2,获取测试集和训练集中所有样本对应特征点的领域图像,并对领域图像进行预处理,并输入到孪生卷积网络,提取领域图像的特征图;
7.步骤3,获取测试集和训练集中样本所对应特征点的sift描述子,并将每个样本位置坐标输入到mlp网络进行融合,将mlp网络的输出与该样本所对应的特征点的sift描述子结合,得到sift描述子数据的特征;
8.步骤4,获取训练集和测试中样本所对应特征点的harris矩阵;
9.步骤5,将到领域图像的特征图,sift描述子数据的特征,harris矩阵进行特征融合,并用全连接层和交叉熵损失函数对融合后的特征进行二分类判断,并反向传播更新网络参数;重复步骤2到5,用训练集数据训练网络,并保存训练网络的权重偏置参数;
10.步骤6,将权重偏置参数载入到sift误匹配检测网络中,将待检测的样本数据输入到sift误匹配检测网络,并得出待测样本的预测结果。
11.本发明的特点还在于,
12.步骤1中,具体为:
13.步骤1.1,使用sift算法处理需要匹配的两幅原始图像,得到图像的数个匹配对,每个匹配对由原始图像上两个特征点组成;
14.步骤1.2,若每个匹配对应的两个特征点在真实场景中代表的是同一个位置,则这个匹配对属于正确样本集合,如果不是同一个位置,则这个匹配对属于错误样本集合;
15.步骤1.3,分别从正确样本集合和错误样本集合中任意选取500个样本作为训练集,再分别从正确样本集合和错误样本集合中任意选取100个样本作为测试集。
16.步骤2中,具体为:
17.步骤2.1,选取测试集和训练集中所有样本,每个样本代表一个匹配,每个匹配对应两个特征点,找到两个特征点分别在步骤1.1中原始图像上的位置坐标,以该位置坐标为中心,选取长为64像素,宽为64像素范围内,对原始图像进行分割,分割后的图像作为该特征点的领域图像,即每个样本可以得到两张领域图像,以此,获得测试集和训练集所有样本的领域图像;
18.步骤2.2,对训练集和测试集中的所有样本对应的领域图像进行灰度化处理和归一化处理;
19.步骤2.3,经步骤2.2后,将每个样本对应的两张领域图像均输入到孪生卷积神经网络中,得到样本所对应的两张领域图像的特征图。
20.步骤3中,具体为:
21.步骤3.1,构建共包含6层的mlp网络模型,依次为输入层、卷积层1、bn层1、卷积层2、bn层2、卷积层3、bn层3;
22.步骤3.2,获取由步骤1.1输入的两张原始图像,对两张图像分别进行不同尺度的高斯卷积,构造两个高斯差分金字塔;
23.步骤3.3,在步骤3.2所得到的高斯差分金字塔上做阈值化和空间极值的检测,找到候选极值点,对候选极值点进行拟合来精确确定极值点的位置以及所在的尺度,并舍去低对比度和有边缘响应的点,从而确定最终极值点,每个图像所有最终极值点即为关键点;
24.步骤3.4,获取每个关键点的坐标,一个关键点的坐标对应一个描述子,以此构造关键点坐标描述子集合;
25.步骤3.5,在训练集和测试集中,任选一个样本,在样本中选取一个特征点,获取这个特征点的坐标,在步骤3.4获得的关键点坐标描述子集合中,根据这个坐标来获取这个特
征点的描述子,以此类推,获得另外一个特征点的描述子,一个样本对应的描述子有两个,重复上述操作,获得测试集和训练集所有样本所对应的描述子,并对测试集和训练集所有样本所对应的描述子进行归一化处理;
26.步骤3.6,经步骤3.5后,在测试集和训练集中,选取一个样本,在该样本中选取一个特征点,获取这个特征点在步骤1.1中输入的原始图像上的位置坐标,将该位置坐标输入到步骤3.1所构造的mlp网络中,并把mlp网络的输出与该特征点所对应的sift描述子进行数据相加,得到该特征点的sift描述子数据的特征,重复上述过程,可得到该样本另外一个特征点的sift描述子数据的特征,以此,得到测试集和训练集中所有样本所对应特征点的sift描述子数据的特征。
27.步骤4中,具体为:
28.步骤4.1,在训练集或者测试集中选取一个样本,在该样本中选取一个特征点;
29.步骤4.2,经步骤4.1后,寻找该特征点在步骤1.1中输入的原始图像上的位置坐标,在原始图像上,以这个位置坐标为中心,选取长为10像素,宽为10像素范围的图像,作为计算harris矩阵所需要的领域范围;
30.步骤4.3,计算领域范围内的每个像素在x和y梯度方向的内积,分别用ixx,iyy,ixy表示,对领域范围内的每个像素的ixx,iyy,ixy进行高斯加权滤波;
31.步骤4.4,经步骤4.3后,对领域范围内的每个像素的ixx,iyy,ixy分别进行累加,从而得到harris矩阵中的每个分量,即可得到该特征点的harris矩阵;
32.步骤4.5,重复步骤4.1到步骤4.4,可得到该样本另外一个特征点的harris矩阵,以此类推,得到训练集和测试集所有样本所对应特征点的harris矩阵。
33.步骤5中,具体为:
34.步骤5.1,构建共包含4层的ann网络模型,依次为全连接层1、全连接层2、全连接层3、全连接层4、全连接层5;其中每一层的输出即为下一层的输入;
35.步骤5.2,在训练集中选取一个样本,把该样本所对应特征点的领域图像的特征图和harris矩阵展开成一维向量的形式,并把这些一维向量和该样本所对应特征点的sift描述子数据的特征水平拼接在一起;
36.步骤5.3,把步骤5.2得到的结果作为ann网络模型的输入,并得到输出结果;
37.步骤5.4,将步骤5.3所得到的结果进行softmax计算,将softmax的计算结果作为交叉熵损失函数的输入,计算出交叉熵损失函数的输出值,这个输出值就是损失值,根据损失值,进行反向传播计算,并更新网络中的权重偏置参数;
38.步骤5.6,重复步骤5.2到步骤5.4,用训练集中的所有样本数据训练网络32个epcho,并根据网络loss曲线调节网络的学习率参数,使得loss曲线趋于收敛,训练完成后,导出网络的权重偏置参数并进行保存。
39.步骤6中,具体为:
40.步骤6.1,根据步骤5的结果,导入网络的权重偏置参数;
41.步骤6.2,在测试集中选取一个样本,获取该样本的领域图像,位置坐标,sift的描述子数据,harris矩阵;
42.步骤6.3,将步骤6.2的结果输入到sift误匹配检测网络,并将输出结果进行softmax运算,选取最大的数值所对应的标签作为网络的预测结果;
43.步骤6.4,根据步骤6.3所获得到的结果,如果所预测到的标签为right,那么此匹配为正确匹配,如果所预测到的标签为wrong,那么此匹配为错误匹配。
44.本发明的有益效果是,本发明方法利用深度学习的技术,让神经网络去学习如何判断误匹配,从而大大改善了现有sift误匹配检测技术中容易出现误判的问题,同时也提高了误匹配检测的准确率,算法的运行较为简便且耗时较短,只需把领域图像等数据输入到该神经网络,即可得到相应的预测结果。
附图说明
45.图1为本发明中训练集样本loss曲线图;
46.图2为本发明中测试集样本训练网络的准确率曲线图。
具体实施方式
47.下面结合附图和具体实施方式对本发明进行详细说明。
48.本发明基于孪生卷积网络和特征混合的sift误匹配检测方法,具体按照以下步骤实施:
49.步骤1,采用sift算法将需要匹配的两幅原始图像进行处理,得到错误样本集合和正确样本集合,并得到训练集和测试集;具体为:
50.步骤1.1,使用sift算法处理需要匹配的两幅原始图像,得到图像的数个匹配对,每个匹配对由原始图像上两个特征点组成;
51.步骤1.2,若每个匹配对应的两个特征点在真实场景中代表的是同一个位置,则这个匹配对属于正确样本集合,如果不是同一个位置,则这个匹配对属于错误样本集合;
52.步骤1.3,分别从正确样本集合和错误样本集合中任意选取500个样本作为训练集,再分别从正确样本集合和错误样本集合中任意选取100个样本作为测试集,选取的标准就是不能重复;
53.步骤2,获取测试集和训练集中所有样本对应特征点的领域图像,并对领域图像进行预处理,并输入到孪生卷积网络,提取领域图像的特征图;
54.步骤2.1,选取测试集和训练集中所有样本,每个样本代表一个匹配,每个匹配对应两个特征点,找到两个特征点分别在步骤1.1中原始图像上的位置坐标,以该位置坐标为中心,选取长为64像素,宽为64像素范围内,对原始图像进行分割,分割后的图像作为该特征点的领域图像,如果这两个特征点中存在无法分割出长为64,宽为64的图像的情况,则舍去该样本,即每个样本可以得到两张领域图像,以此类推,获得测试集和训练集所有样本的领域图像;
55.步骤2.2,对训练集和测试集中的所有样本对应的领域图像进行灰度化处理和归一化处理;
56.步骤2.3,经步骤2.2后,将每个样本对应的两张领域图像均输入到孪生卷积神经网络中,得到样本所对应的两张领域图像的特征图;
57.孪生卷积神经网络,依次为第一卷积层、第一relu层、第一池化层、第二卷积层、第二relu层、第二池化层、第三卷积层、第三relu层、第四卷积层、第四relu层、第五卷积层、第五relu层、第三池化层;其中每一层的输出即为下一层的输入;其中参数设置为:
58.第一卷积层中,输入图像大小为1*1*64*64,设置卷积核大小为7*7,步长为1,填补为3,输出图像大小为1*24*64*64;
59.第一relu层中,输入图像大小为1*24*64*64,输出图像大小为1*24*64*64;
60.第一池化层中,输入图像大小为1*24*64*64,设置卷积核大小为3*3,步长为2,填补为0,输出图像大小为1*24*32*32;
61.第二卷积层中,输入图像大小为1*24*32*32,设置卷积核大小为5*5,步长为1,填补为2,输出图像大小为1*64*32*32;
62.第二relu层中,输入图像大小为1*64*32*32,输出图像大小为1*64*32*32;
63.第二池化层中,输入图像大小为1*64*32*32,设置卷积核大小为3*3,步长为2,填补为0,输出图像大小为1*64*16*16;
64.第三卷积层中,输入图像大小为1*64*16*16,设置卷积核大小为3*3,步长为1,填补为1,输出图像大小为1*96*16*16;
65.第三relu层中,输入图像大小为1*96*16*16,输出图像大小为1*96*16*16;
66.第四卷积层中,输入图像大小为1*96*16*16,设置卷积核大小为3*3,步长为1,填补为1,输出图像大小为1*96*16*16;
67.第四relu层中,输入图像大小为1*96*16*16,输出图像大小为1*96*16*16;
68.第五卷积层中,输入图像大小为1*96*16*16,设置卷积核大小为3*3,步长为1,填补为1,输出图像大小为1*64*16*16;
69.第五relu层中,输入图像大小为1*64*16*16,输出图像大小为1*64*16*16;
70.第三池化层中,输入图像大小为1*64*16*16,设置卷积核大小为3*3,步长为2,填补为0,输出图像大小为1*64*8*8;
71.步骤3,获取样本所对应特征点的sift描述子,并将每个样本位置坐标输入到mlp网络进行融合,将mlp网络的输出与该样本所对应的特征点的sift描述子结合,得到sift描述子数据的特征;
72.步骤3.1,构建共包含6层的mlp网络模型,依次为输入层、卷积层1、bn层1、卷积层2、bn层2、卷积层3、bn层3;其中每一层的输出即为下一层的输入;其中参数设置为:
73.卷积层1中,输入张量大小为1
×
2,设置卷积核大小为1
×
1,步长为0,填补为0,滤波器数量为16,输出尺寸为1
×
32;
74.bn层1中,输入张量大小为1
×
32,输出张量为1
×
32;
75.卷积层2中,输入张量大小为1
×
32,设置卷积核大小为1
×
1,步长为0,填补为0,滤波器数量为2,输出尺寸为1
×
64;
76.bn层2中,输入张量大小为1
×
64,输出张量为1
×
64;
77.卷积层3中,输入张量大小为1
×
64,设置卷积核大小为1
×
1,步长为0,填补为0,滤波器数量为2,输出尺寸为1
×
128;
78.bn层3中,输入张量大小为1
×
128,输出张量为1
×
128;
79.步骤3.2,获取由步骤1.1输入的两张原始图像,对两张图像分别进行不同尺度的高斯卷积,构造两个高斯差分金字塔;
80.高斯差分金字塔构建过程如下,首先将图像扩大一倍,在扩大的图像的基础之上构建高斯金字塔,然后对该图像进行不同尺度的高斯模糊,尺度的公式如式(1)所示,几幅
模糊之后的图像集合构成了一个八度,然后对该八度下的最模糊的一幅图像进行下采样,长和宽分别缩短一倍,图像面积变为原来四分之一,这幅图像就是下一个八度的初始图像,在初始图像的基础上完成属于这个八度的高斯模糊处理,以此类推完成整个算法所需要的所有八度构建,构建高斯金字塔;将高斯金字塔中的相邻尺度的图像作差,得到高斯差分金字塔;
[0081][0082]
其中,o代表第几个八度,s代表八度中的第几层,s代表每个八度有几层;
[0083]
步骤3.3,在步骤3.2所得到的高斯差分金字塔上做阈值化和空间极值的检测,找到候选极值点,对候选极值点进行拟合来精确确定极值点的位置以及所在的尺度,并舍去低对比度和有边缘响应的点,从而确定最终极值点,每个图像所有最终极值点即为关键点;
[0084]
步骤3.4,确定最终极值点的主方向并计算关键点的描述子,由此可得到每个图像的所有关键点的描述子,获取每个关键点的坐标,一个关键点的坐标对应一个描述子,以此构造关键点坐标描述子集合;
[0085]
步骤3.5,在训练集和测试集中,任选一个样本,在样本中选取一个特征点,获取这个特征点的坐标,在步骤3.4获得的关键点坐标描述子集合中,根据这个坐标来获取这个特征点的描述子,以此类推,获得另外一个特征点的描述子,一个样本对应的描述子有两个,重复上述操作,获得测试集和训练集所有样本所对应的描述子,并对测试集和训练集所有样本所对应的描述子进行归一化处理;
[0086]
步骤3.6,经步骤3.5后,在测试集和训练集中,选取一个样本,在该样本中选取一个特征点,获取这个特征点在步骤1.1中输入的原始图像上的位置坐标,将该位置坐标输入到步骤3.1所构造的mlp网络中,并把mlp网络的输出与该特征点所对应的sift描述子进行数据相加,得到该特征点的sift描述子数据的特征,重复上述过程,可得到该样本另外一个特征点的sift描述子数据的特征,以此类推,得到测试集和训练集中所有样本所对应特征点的sift描述子数据的特征;
[0087]
步骤4,获取训练集和测试中样本所对应特征点的harris矩阵,具体为:
[0088]
步骤4.1,在训练集或者测试集中选取一个样本,在该样本中选取一个特征点;
[0089]
步骤4.2,经步骤4.1后,寻找该特征点在步骤1.1中输入的原始图像上的位置坐标,在原始图像上,以这个位置坐标为中心,选取长为10像素,宽为10像素范围的图像,作为计算harris矩阵所需要的领域范围;
[0090]
步骤4.3,计算领域范围内的每个像素在x和y梯度方向的内积,分别用ixx,iyy,ixy表示,对领域范围内的每个像素的ixx,iyy,ixy进行高斯加权滤波;
[0091]
步骤4.4,经步骤4.3后,对领域范围内的每个像素的ixx,iyy,ixy分别进行累加,从而得到harris矩阵中的每个分量,即可得到该特征点的harris矩阵;
[0092]
步骤4.5,重复步骤4.1到步骤4.4,可得到该样本另外一个特征点的harris矩阵,以此类推,得到训练集和测试集所有样本所对应特征点的harris矩阵;
[0093]
步骤5,将步骤2所得到领域图像的特征图,步骤3所得到的sift描述子数据的特征,步骤4所得到的harris矩阵进行特征融合,并用全连接层和交叉熵损失函数对融合后的特征进行二分类判断,并反向传播更新网络参数;重复步骤2到5,用训练集数据训练好网
络,训练完毕后保存训练好网络的权重偏置参数;
[0094]
具体为:步骤5.1,构建共包含4层的ann网络模型,依次为全连接层1、全连接层2、全连接层3、全连接层4、全连接层5;其中每一层的输出即为下一层的输入;其中参数设置为:
[0095]
全连接层1中,输入张量大小为1
×
8454,输出张量为1
×
4096;
[0096]
全连接层2中,输入张量大小为1
×
4096,输出张量为1
×
2048;
[0097]
全连接层3中,输入张量大小为1
×
2048,输出张量为1
×
1024;
[0098]
全连接层4中,输入张量大小为1
×
1024,输出张量为1
×
512;
[0099]
全连接层5中,输入张量大小为1
×
512,输出张量为1
×
2;
[0100]
步骤5.2,在训练集中选取一个样本,根据步骤2,步骤3,步骤4的结果,把该样本所对应特征点的领域图像的特征图和harris矩阵展开成一维向量的形式,并把这些一维向量和该样本所对应特征点的sift描述子数据的特征水平拼接在一起;
[0101]
步骤5.3,把步骤5.2得到的结果作为ann网络模型的输入,并得到输出结果;
[0102]
步骤5.4,将步骤5.3所得到的结果进行softmax计算,softmax公式如式(2)所示,其中i代表神经网络最后一层第i个结点的输出值,e代表指数函数,神经网络最后一层有两个结点,这两个结点分别对应着匹配正确和匹配错误这两种情况,si的值代表该匹配是正确匹配或错误匹配的概率。将softmax的计算结果作为交叉熵损失函数的输入,计算出交叉熵损失函数的输出值,这个输出值就是损失值,交叉熵损失函数的公式如公式(3)所示,其中p(x)为标签值,标签值为1时代表正确匹配,标签值为0时代表错误匹配。q(x)该匹配是正确匹配或错误匹配的概率,h(x,q)代表损失值;根据损失值,进行反向传播计算,并更新网络中的权重偏置参数;
[0103][0104]
h(x,q)=

∑p(x)log q(x)
ꢀꢀ
(3);
[0105]
步骤5.6,重复步骤5.2到步骤5.4,用训练集中的所有样本数据训练网络32个epcho,并根据网络loss曲线调节网络的学习率参数,使得loss曲线趋于收敛,如图1所示,可以看到该曲线逐渐趋近于0,如图2所示,可以看到随着网络的训练,测试集的准确率在稳步提高,说明该网络已经收敛。训练完成后,导出网络的权重偏置参数并进行保存;
[0106]
步骤6,将步骤5中训练好的权重偏置参数载入到sift误匹配检测网络中,将需要检测的样本的相关数据输入到sift误匹配检测网络,并得出待测样本的预测结果,具体为:
[0107]
步骤6.1,根据步骤5的结果,导入网络的权重偏置参数;
[0108]
步骤6.2,在测试集中选取一个样本,获取该样本的领域图像,位置坐标,sift的描述子数据,harris矩阵;
[0109]
步骤6.3,将步骤6.2的结果输入到sift误匹配检测网络,并将输出结果进行softmax运算,选取最大的数值所对应的标签作为网络的预测结果;
[0110]
步骤6.4,根据步骤6.3所获得到的结果,如果所预测到的标签为right,那么此匹配为正确匹配,如果所预测到的标签为wrong,那么此匹配为错误匹配。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1