一种基于快速特征匹配的图像位置偏移检测方法
技术领域
本发明图像检测领域,特别是指一种基于快速特征匹配的图像位置偏移检测方法。
背景技术
在现有的图像处理技术中,检测目标图像和标准图像的位置偏移方法,通常是将两幅图像的整帧图像进行对比或叠加处理。两幅图像进行叠加处理,直接获取图像分界的位置;中国专利公告号CN101546432公开的专利名称为获取图像偏移位置的方法及装置,利用绘制的标尺样条线探测,从而获取目标图像的偏移位置,这种方法的匹配是利用线匹配,匹配精度低,检测的位置偏移量精度低。将两幅图像的整帧图像对比时,进行块匹配或通过快速傅立叶变换求出其相位相关函数得到偏移量;这种方法的匹配几乎对每个像素点都进行处理或变换,计算量大,降低处理速度。因此,现有的图像位置偏移检测需要一种既能提高处理速度又能提高检测精度的方法。
发明内容
为了解决图像位置偏移检测的处理速度和检测精度,本发明提出一种基于快速特征匹配的图像位置偏移检测方法。
本发明的技术方案是这样实现的:
一种基于快速特征匹配的图像位置偏移检测方法,包括以下步骤:
1)在计算机中输入预定的标准图像和待测的目标图像;
2)对标准图像进行高斯滤波处理以消除噪声的影响;
3)利用Hough变换提取滤波后标准图像的直线特征,并得到所有直线斜率k和截距b;
4) 在步骤3)得到的所有直线中依次寻找强度最大的N条直线,将每条直线用参数(k,b)表示并将其转换为极坐标下的参数表示形式(distance,angle),得到标准图像在Hough空间中的的N个坐标点(distance,angle);
5)利用canny边缘检测算法获取标准图像的边缘点集合,计算标准图像的梯度图并运用FAST角点检测方法获取角点特征集合;
6)对标准图像以预设的采样率进行n次下采样,并将n次下采样后的图像运用FAST角点检测方法获取角点特征集合,且将边缘点集合和所有的角点特征集合合并后获取关键点特征集合,(n大于1且小于5);
7)将标准图像分割成若干个大小的图像片,在每个图像片上的关键点特征集合中寻找强度最大的一个关键点,形成更新后的关键点特征集合(L大于5小于15);
8)构造更新后的关键点集合中的每个关键点的局部邻域,并利用邻域主方向和平均方向获取稀疏的邻域,以此获得每个关键点的维特征向量并进行归一化处理;
9)利用更新后的关键点与其对应的维特征向量构造kd树结构,利用步骤4)中得到的N个坐标点(distance,angle)和kd树结构共同组成标准图像模型;
10)对目标图像依次执行上述步骤,获取目标图像在Hough空间中的N个坐标点(distance,angle)和目标图像的kd树结构;
11)将标准图像和目标图像在Hough空间中N个强度最大的坐标点进行预先匹配,若具有相同的坐标点(distance,angle)就相互匹配,否则计算标准图像和目标图像的所有的对应的坐标点之间的偏移量(distance_shift,angle_shift),最后计算平均偏移量distance_shift_average,angle_shift_average);
12)利用标准图像和目标图像的kd树结构进行关键点快速匹配,获取初级匹配的关键点对集合;
13)将步骤11)中获取的平均偏移量(distance_shift_average,angle_shift_average)作为给定的偏移量阈值,运用RANSAC算法剔除关键点对集合中偏移量大于给定阈值的关键点对,获取终极匹配的关键点对集合和单应性变换性矩阵;
14)利用单应性矩阵对目标图像进行变换,使得标准图像和目标图像处于同一坐标系下,然后计算目标图像上终极匹配的关键点的坐标;根据终极匹配的关键点对坐标计算目标图像在X方向和Y方向的平均偏移量,分别记作Xoffset和Yoffset。
优选的是,所述的图像位置偏移检测方法中,还包括以下步骤:15)以目标图像的中心位置(x,y)为起点,(x+Xoffset,y+Yoffset)为终点,在目标图像上显示目标图像与标准图像间的位置偏移向量,直观观测目标图像的位置偏移。
优选的是,所述的图像位置偏移检测方法中,所述步骤2)中利用canny边缘检测算法获取标准图像的所有边缘点的方法为:
21)对输入到计算机中的标准图像进行高斯滤波以减少图像噪声的干扰;
22)计算滤波后的图像中每个像素点的梯度值和方向;
23)对每个像素点的梯度值进行非极大值抑制,初步得到图像边缘点集合;
24)采用双阈值方法进行边缘连接,剔除虚假边缘,补全边缘缺口,获得更精确的边缘点集合。
优选的是,所述的图像位置偏移检测方法中,所述步骤2)中计算标准图像的梯度图并运用FAST角点检测方法获取其角点特征集合的方法为:
31)以标准图像上的每个像素点P为中心,3为半径画圆,获取每个圆上的16个像素点,均记作p1,p2,…,p16;
32)对于任一个以每个像素点为中心的圆,计算该圆上的像素点p1、p9与该圆所在的像素点p的像素差,若像素差的绝对值都小于第一预设阈值,则直接舍弃不是特征点的该像素点p点,否则该像素点当做一级候选点进一步筛选;
33)对于一级候选点的像素点P,计算每一个一级候选点的圆上的像素点p1、p9、p5、p13与该一级候选点p的像素差,若像素差的绝对值至少3个超过第一预设阈值,则当做二级候选点再进行筛选,否则直接舍弃;
34)对于二级候选点,计算任一个二级候选点的圆上的p1到p16的每个像素点与该圆所在的像素点p的像素差,若16个像素差有至少9个超过第一预设阈值,则作为特征点,否则直接舍弃;
35)对标准图像进行非极大值抑制:计算步骤34)中每个特征点的角点强度值,以当前特征点p为中心构造一个局部邻域,保留该邻域内强度值最高的特征点p,获取角点特征集合。
优选的是,所述的图像位置偏移检测方法中,所述步骤3)中对标准图像以预设的采样率进行一次下采样的方法为:
41)将标准图像分割成若干个大小的图像片;
42)计算每个图像片内像素均值;
43)将标准图像的每个图像片变成一个像素,每一个像素点的值就是对应的图像片像素均值,所有像素均值形成一次下采样后的图像。
优选的是,所述的图像位置偏移检测方法中,所述步骤4)中更新后的关键点特征集合形成的方法为:
51)基于FAST角点检测算法获取每个图像片内的关键点特征集合中每个关键点的角点强度值;
52)统计所有角点强度值的分布直方图;
53)选择角点强度值大于第二预设阈值的角点特征,舍弃局部邻域内其它角点特征,形成更新后的关键点特征集合。
优选的是,所述的图像位置偏移检测方法中,所述步骤8)中构造更新后的
关键点集合中的每个关键点的局部邻域,并利用邻域主方向和平均方向获取稀疏的邻域,以此获得每个关键点的维特征向量并进行归一化处理的方法为:
61)遍历标准图像的每个关键点,以关键点为中心,构造大小为的局部邻域;
62)计算局部邻域的主方向,并将局部邻域旋转至该方向;
63)获取局部邻域内每个像素点的方向并计算邻域平均方向;
64)将每个像素点方向值减去邻域平均方向值,获取局部邻域内每个像素点的最终方向值,即得到局部邻域的稀疏化表示形式;
65)利用稀疏的局部邻域内每个像素点的最终方向值构成关键点的维特征向量并进行归一化处理。
优选的是,所述的图像位置偏移检测方法中,所述步骤6)中利用更新后的关键点和与其对应的维特征向量构造树结构的方法为:
71)在所有更新后的关键点的维数据集合中选择具有最大方差的维度k;
72)在维度k上选取中值作为阈值对该数据集合进行划分,得到两个子集合;
73)创建一个树结点node用于存储;
74)对两个子集合重复步骤71)到73),直至所有子集合不能再划分;
75)将不能再划分的子集合中的数据保存为叶子结点leftnode和rightnode,得到最终的树结构。
优选的是,所述的图像位置偏移检测方法中,所述步骤8)中将标准图像的kd树结构和目标图像的kd树结构互相进行匹配,获取初次匹配的关键点对集合的方法为:
81)从目标图像的kd树结构的根结点开始,计算目标图像中当前结点与标准图像的树结构的中间结点间的距离,选择距离近的分支作为优先比较的树分支;
82)将标准图像中未被选择的树分支所在树结构中的位置以及该树分支与目标图像中待测的当前结点的距离保存到一个优先级队列中;
83)重复步骤81)和82),对标准图像中的树分支进行上述的优先级比较,直至比较至叶子结点;
84)计算目标图像的待测的当前结点与标准图像的叶子结点中保存数据的距离,并记录最小距离D以及与最小距离D对应的数据P;
85) 进行回溯操作寻找是否还有离当前结点更近的最邻近点,如果当前结点与其父结点下未被访问过的分支之间的距离小于D,则认为该分支中存在离P更近的数据,进入该分支,如果在该分支中找到更近的数据,则更新最小距离D和最近邻点P;如果当前结点与其父结点下未被访问过的分支之间的距离大于D则P即为目标图像的kd树结构在标准图像的树结构中的匹配点;
86)对目标图像的kd树结构中的所有叶子结点重复步骤71)到75),获取初次匹配的关键点集合。
优选的是,所述的图像位置偏移检测方法中,所述步骤13)中将获取的平均偏移量(distance_shift_average,angle_shift_average)作为给定的偏移量阈值,运用RANSAC算法剔除关键点对集合中偏移量大于给定阈值的关键点对,获取终极匹配的关键点对集合和单应性变换矩阵的方法为:
91)基于步骤12)获取初步匹配点集合;
92)假设共M组匹配点,从中随机选取4组匹配点对,根据匹配点之间的关系计算目标图像到标准图像的变换矩阵;
93)利用变换矩阵对目标图中中剩下的M-4组匹配点做变换,并计算变换后点与其在标准图像中匹配点间的偏移量;
94)将步骤11)中获取的平均偏移量(distance_shift_average,angle_shift_average)作为预定的偏移量阈值,若步骤93)中计算得到的偏移量小于给定阈值,则判定该点为正确的匹配点,否则为错误的匹配点;
95)统计步骤94)中获取的所有正确匹配点并保存下来,更新匹配点集合;
96)在匹配点集合中重新随机选择4组匹配点,跳转到步骤92),重复若干次后,比较每次得到的正确匹配点的数目,匹配点数目最多时得到的变换矩阵即为目标图像到标准图像的最终的单应性变换矩阵。
本发明的有益效果为:本发明中的基于快速特征匹配的图像位置偏移检测方法,利用步骤1)至步骤4)分别获取标准图像和目标图像的N条最强直线特征并进行匹配,以此获取图像位置偏移量的预先估计的阈值,将此阈值作为关键点匹配时的迭代停止条件,提高标准图像和目标图像匹配的速度和精度;利用步骤5)至步骤7)逐步获取强度高的标准图像和目标图像的关键点特征集合,提高匹配精度和稳定性;利用步骤8)有效消除了关键点的方向值对特征向量的影响,提高算法的效率;采用步骤9)构造标准图像的树结构和目标图像的kd树结构,利用步骤12)对标准图像的树结构和目标图像的kd树结构双向匹配,提高匹配精度和匹配速度;最后利用步骤14)获取偏移量,实现有效快速地计算出图像的位置偏移量,在图像检测的应用方向起到重要的作用。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明基于快速特征匹配的图像位置偏移检测方法的框架示意图。
具体实施方式
下面对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1:如图1的所示的一种基于快速特征匹配的图像位置偏移检测方包括以下步骤:1)在计算机中输入预定的标准图像和待测的目标图像;2)对标准图像进行高斯滤波处理以消除噪声的影响;3)利用Hough变换提取滤波后标准图像的直线特征,并获取每条直线的斜率k和截距b;4)在步骤3)得到的所有直线中依次寻找强度最大的N条直线,将每条直线用参数(k,b)表示并将其转换为极坐标下的参数表示形式(distance,angle),得到标准图像在Hough空间中的的N个坐标点(distance,angle);5)利用canny边缘检测算法分别获取标准图像和目标图像的边缘点集合EdgeSet;6)分别计算标准图像和目标图像的梯度图并运用FAST角点检测方法获取标准图像和目标图像的角点特征集合CornerSet;7)对标准图像和目标图像分别以预设的采样率Rate进行n次下采样,并将n次下采样后的图像运用FAST角点检测方法获取角点特征集合CornerSet1,CornerSet2,CornerSet3,且将边缘点集合EdgeSet和角点特征集合CornerSet ,CornerSet1,CornerSet2和CornerSet3合并后获取关键点特征集合KeyPoint1,(n大于1且小于5);8)分别将标准图像和目标图像分割成若干个大小的图像片,在标准图像和目标图像的每个图像片上的关键点集中寻找强度最大的一个关键点,形成更新后的关键点特征集合KeyPoint2,(L的默认取值取10);9)分别构造标准图像和目标图像中更新后的关键点集合KeyPoint2中的每个关键点的局部邻域,并利用邻域主方向和平均方向获取稀疏的邻域,以此获得每个关键点的维特征向量并进行归一化处理;10)分别利用更新后的关键点和与其对应的维特征向量构造标准图像的树结构Source-kd和目标图像的kd树结构Target-kd,利用步骤4)中得到的标准图像的N个坐标点(distance,angle)和kd树结构共同组成标准图像模型,利用步骤4)中得到的目标图像的N个坐标点(distance,angle)和kd树结构共同组成目标图像模型;11)将标准图像和目标图像在Hough空间中N个强度最大的坐标点进行预先匹配,若具有相同的坐标点(distance,angle)就相互匹配,否则计算标准图像和目标图像的所有的对应的坐标点之间的偏移量(distance_shift,angle_shift),最后计算平均偏移量distance_shift_average,angle_shift_average);12)利用标准图像的树结构Source-kd和目标图像的kd树结构Target-kd进行关键点快速匹配,获取初级匹配的关键点对集合MatchKeyPairs1;13)将步骤11)中获取的平均偏移量(distance_shift_average,angle_shift_average)作为预定的偏移量阈值,运用RANSAC算法剔除关键点对集合中偏移量大于给定阈值的关键点对,获取终极匹配的关键点对集合MatchKeyPairs2和单应性矩阵Homography;14)利用单应性矩阵对目标图像进行变换,使得标准图像和目标图像处于同一坐标系下,然后计算目标图像上终极匹配的关键点的坐标;根据终极匹配的关键点对坐标计算目标图像在X方向和Y方向的平均偏移量,分别记作Xoffset和Yoffset;15)以目标图像的中心位置(x,y)为起点,(x+Xoffset,y+Yoffset)为终点,在目标图像上显示目标图像与标准图像间的位置偏移向量。
上述步骤2)中利用canny边缘检测算法获取标准图像的所有边缘点的方法为:21)对输入到计算机中的标准图像和目标图像分别进行高斯滤波以减少图像噪声的干扰;22)分别计算滤波后的标准图像和目标图像中每个像素点的梯度值和方向;23)分别对滤波后的标准图像和目标图像中的每个像素点的梯度值进行非极大值抑制,初步得到图像边缘点集合;24)对标准图像和目标图像的边缘点集合,分别采用双阈值方法进行边缘连接,剔除虚假边缘,补全边缘缺口,分别获得更精确的标准图像和目标图像的边缘点集合。
上述6)分别计算标准图像和目标图像的梯度图并运用FAST角点检测方法获取标准图像和目标图像的角点特征集合CornerSet的方式为:31)分别以标准图像和目标图像上的每个像素点P为中心,3为半径画圆,获取每个圆上的16个像素点,均记作p1,p2,…,p16;32)对于任一个以每个像素点为中心的圆,计算该圆上的像素点p1、p9与该圆所在的像素点p的像素差,若像素差的绝对值都小于第一预设阈值,则直接舍弃不是特征点的该像素点p点,否则该像素点当做一级候选点进一步筛选;33)对于一级候选点的像素点P,计算每一个一级候选点的圆上的像素点p1、p9、p5、p13与该一级候选点p的像素差,若像素差的绝对值至少3个超过第一预设阈值,则当做二级候选点再进行筛选,否则直接舍弃;34)对于二级候选点,计算任一个二级候选点的圆上的p1到p16的每个像素点与该圆所在的像素点p的像素差,若16个像素差有至少9个超过第一预设阈值,则作为特征点,否则直接舍弃;35)分别对标准图像和目标图像进行非极大值抑制:计算步骤34)中每个特征点的角点强度值,以当前特征点p为中心构造一个局部邻域,保留该邻域内强度值最高的特征点p,获取角点特征集合。
上述步骤7)中对标准图像和目标图像分别以预设的采样率Rate进行n次下采样,每次下采样的方法为:41)分别将标准图像和目标图像分割成若干个大小的图像片;42)分别计算标准图像和目标图像的每个图像片内像素均值;43)分别将标准图像和目标图像的每个图像片变成一个像素,每一个像素点的值就是对应的图像片像素均值,所有像素均值形成一次下采样后的图像。
上述步骤8)中最后形成更新后的关键点特征集合KeyPoint2的方式为:51)基于FAST角点检测算法分别获取标准图像和目标图像的每个图像片内的关键点特征集合中每个关键点的角点强度值;52)分别统计标准图像和目标图像的所有角点强度值的分布直方图;53)分别选择标准图像和目标图像的角点强度值大于第二预设阈值的角点特征,舍弃局部邻域内其它角点特征,形成更新后的关键点特征集合。
上述步骤9)中的处理方式为:61)遍历标准图像的每个关键点,以关键点为中心,构造大小为的局部邻域;62)计算局部邻域的主方向,并将局部邻域旋转至该方向;63)获取局部邻域内每个像素点的方向并计算邻域平均方向;64)将每个像素点方向值减去邻域平均方向值,获取局部邻域内每个像素点的最终方向值,即得到局部邻域的稀疏化表示形式;65)利用稀疏的局部邻域内每个像素点的最终方向值构成关键点的维特征向量并进行归一化处理。
上述步骤10)中分别对标准图像和目标图像实施以下方法:71)在所有更新后的关键点的维数据集合中选择具有最大方差的维度k;72)在维度k上选取中值作为阈值对该数据集合进行划分,得到两个子集合;73)创建一个树结点node用于存储;74)对两个子集合重复步骤71)到73),直至所有子集合不能再划分;75)将不能再划分的子集合中的数据保存为叶子结点leftnode和rightnode,得到最终的树结构。
上述步骤12)中的获取方式为:81)从目标图像的kd树结构的根结点开始,计算目标图像中当前结点与标准图像的树结构的中间结点间的距离,选择距离近的分支作为优先比较的树分支;82)将标准图像中未被选择的树分支所在树结构中的位置以及该树分支与目标图像中待测的当前结点的距离保存到一个优先级队列中;83)重复步骤81)和82),对标准图像中的树分支进行上述的优先级比较,直至比较至叶子结点;84)计算目标图像的待测的当前结点与标准图像的叶子结点中保存数据的距离,并记录最小距离D以及与最小距离D对应的数据P;85) 进行回溯操作寻找是否还有离当前结点更近的最邻近点,如果当前结点与其父结点下未被访问过的分支之间的距离小于D,则认为该分支中存在离P更近的数据,进入该分支,如果在该分支中找到更近的数据,则更新最小距离D和最近邻点P;如果当前结点与其父结点下未被访问过的分支之间的距离大于D则P即为目标图像的kd树结构在标准图像的树结构中的匹配点;86)对目标图像的kd树结构中的所有叶子结点重复步骤71)到75),获取初次匹配的关键点集合。
上述步骤13)中获取终极匹配的关键点对集合MatchKeyPairs2和单应性矩阵Homography的方式为:91)基于步骤12)获取初步匹配点集合;92)假设共M组匹配点,从中随机选取4组匹配点对,根据匹配点之间的关系计算目标图像到标准图像的变换矩阵;93)利用变换矩阵对目标图中中剩下的M-4组匹配点做变换,并计算变换后点与其在标准图像中匹配点间的偏移量;94)将步骤11)中获取的平均偏移量(distance_shift_average,angle_shift_average)作为预定的偏移量阈值,若步骤93)中计算得到的偏移量小于给定阈值,则判定该点为正确的匹配点,否则为错误的匹配点;95)统计步骤94)中获取的所有正确匹配点并保存下来,更新匹配点集合;96)在匹配点集合中重新随机选择4组匹配点,跳转到步骤92),重复若干次后,比较每次得到的正确匹配点的数目,匹配点数目最多时得到的变换矩阵即为目标图像到标准图像的最终的单应性变换矩阵。
本发明中的方法检测出的位置偏移向量可以直接用于校正目标图像所在的载体的位置。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。