模板匹配方法、装置、设备及计算机存储介质与流程

文档序号:18705774发布日期:2019-09-17 23:40阅读:254来源:国知局
模板匹配方法、装置、设备及计算机存储介质与流程

本发明涉及图像处理技术领域,特别涉及一种模板匹配方法、装置和设备及计算机存储介质。



背景技术:

模板匹配,是指在待匹配图片中寻找与模板图片匹配的部分的技术,换句话说,就是从待匹配图片中找出与模板图片最为相似的部分。目前的模板匹配主要采用两种匹配方法,一种方法为基于像素级信息进行匹配的方法,另一种方法为基于边缘进行匹配的方法。其中,基于像素级信息进行匹配的方法是通过在待匹配图片上划定与模板图片相同大小的区域,再通过模板图片遍历每个区域进行计算像素值的差值,获取每个区域的均方误差值,最终将均方误差值最小的区域确定为与模板图片匹配的区域;基于边缘进行匹配的方法是计算待匹配图片与模板图片的物体的边缘信息,基于边缘信息进行边缘匹配,以得到包括的物体的边缘信息与模板图片中的物体的边缘信息最接近的区域。

但是,目前的模板匹配方法依赖于待匹配图片的成像质量。例如,在光线发生变化时,获取的待匹配图片的像素值或者边缘信息容易发生较大的变化,现有的基于像素信息或者边缘信息的模板匹配方法的匹配精度相应的就会下降,甚至出现匹配失败的情况;或者,在待匹配图像中物体的尺寸发生变化或者发生形变时,通过上述匹配方法匹配精度也会下降,进而使得匹配结果不准确。



技术实现要素:

本发明实施例提供一种模板匹配方法、装置、设备及计算机存储介质,用于提升模板匹配的准确性。

第一方面,提供一种模板匹配方法,所述方法包括:

根据模板图片与待匹配图片的特征点,确定所述模板图片在所述待匹配图片中所在的第一区域;

获取由所述模板图片上的特征点与在所述第一区域上对应的特征点组成的至少一组特征点对,其中,一组特征点对包括的两个特征点一一对应,且任意两组特征点对中一组特征点对包括的两个特征点之间的连线,与另一组特征点对包括的两个特征点之间的连线的平行度不大于预设平行度阈值;

基于所述至少一组特征点对之间的对应关系,建立表征所述模板图片与所述第一区域之间的特征点的映射关系的特征矩阵;

根据所述特征矩阵,确定所述第一区域中与所述模板图片的边缘点对应的映射点,并将所述映射点围成的区域确定为所述待匹配图片中与所述模板图片匹配的区域。

本发明实施例中,在模板图片确定待匹配图片中与模板图片匹配的大致位置后,通过建立模板图片与待匹配图片中的第一区域的特征矩阵,该特征矩阵用于表征模板图片与第一区域之间的特征点的映射关系,那么就可以通过将模板图片的边缘点映射到第一区域中,从而能够更加准确的获取与模板图片对应的区域。其中,特征矩阵是根据获取的特征点对建立的,这样,即使是物体的尺寸发生变化或者发生形变时,获得的特征矩阵也能随着尺寸和形变得以适应性变化,从而减小物体的尺寸发生变化或者发生形变对模板匹配的准确性的影响,并且,在建立特征矩阵时,只要存在少数准确的特征点对,就可以得到较为准确的特征矩阵,因此即使图像质量发生变化,对模板匹配的影响也会很小,从而提高了模板匹配的准确性。

可选的,根据模板图片与待匹配图片包括的特征点,确定所述模板图片在所述待匹配图片中所在的第一区域,包括:

将所述模板图片包括的特征点与待匹配图片包括的特征点进行匹配;

按照所述模板图片的大小,遍历所述待匹配图片中每个区域,确定出包括匹配成功的特征点的数量最多的区域,其中,所述匹配成功的特征点与所述模板图片上对应的特征点之间相似度大于预设相似度阈值;

根据所述特征点数量最多的区域确定所述第一区域。

可选的,根据所述特征点数量最多的区域确定所述第一区域之后,所述方法还包括:

获取所述模板图片和所述第一区域的特征点分布图;

以所述特征点数量最多的区域为起点,将所述模板图片的特征点分布图在所述第一区域的特征点分布图上,分别沿水平方向和竖直方向进行滑动,记录每一次滑动的偏移量;以及,

获取所述模板图片的特征点分布图,与滑动到的所述第一区域上的区域的特征点分布图之间的相似度;

基于特征点分布图之间的相似度最高的区域,矫正所述第一区域中所述模板图片对应的区域。

本发明实施例中,通过匹配特征点分布图,对模板图片的位置加以矫正,进一步提高了匹配结果的准确性。

可选的,获取由所述模板图片上的特征点与在所述第一区域上对应的特征点组成的至少一组特征点对,包括:

针对所述模板图片上的第一特征点,获取在所述第一区域上对应的第二特征点和第三特征点;

确定所述第一特征点与所述第二特征点之间的欧氏距离,与所述第一特征点与所述第三特征点之间的欧氏距离的差值是否不大于预设距离阈值;

若确定结果为是,则将所述第一特征点与所述第二特征点确定为一组特征点对;其中,所述第一特征点与所述第二特征点之间的相似度大于所述第一特征点与所述第三特征点之间的相似度。

可选的,

在获取由所述模板图片上的特征点与在所述第一区域上对应的特征点组成的至少一组特征点对之后,所述方法还包括:

根据所述至少一组特征点对包括的两个特征点之间的欧氏距离,剔除欧氏距离位于预设距离范围之外的异常特征点对;或者,

根据每一组特征点对与预设特征点对包括的两个特征点之间的欧氏距离的差值,剔除差值大于预设差值阈值的异常特征点对;

则基于所述至少一组特征点对之间的对应关系,建立表征所述模板图片与所述第一区域之间的特征点的映射关系的特征矩阵,包括:

基于在剔除异常特征点对后,所述至少一组特征点对中剩余的特征点对之间的对应关系,建立所述特征矩阵。

本发明实施例中,通过剔除异常的特征点对,这样通过剩余的特征点对建立的特征矩阵才能够更加准确,从而提高匹配结果的准确性。

第二方面,提供一种模板匹配装置,所述装置包括:

确定单元,用于根据模板图片与待匹配图片的特征点,确定所述模板图片在所述待匹配图片中所在的第一区域;

获取单元,用于获取由所述模板图片上的特征点与在所述第一区域上对应的特征点组成的至少一组特征点对,其中,一组特征点对包括的两个特征点一一对应,且任意两组特征点对中一组特征点对包括的两个特征点之间的连线,与另一组特征点对包括的两个特征点之间的连线的平行度不大于预设平行度阈值;

建立单元,用于基于所述至少一组特征点对之间的对应关系,建立表征所述模板图片与所述第一区域之间的特征点的映射关系的特征矩阵;

所述确定单元,还用于根据所述特征矩阵,确定所述第一区域中与所述模板图片的边缘点对应的映射点,并将所述映射点围成的区域确定为所述待匹配图片中与所述模板图片匹配的区域。

可选的,所述确定单元,具体用于:

将所述模板图片包括的特征点与待匹配图片包括的特征点进行匹配;

按照所述模板图片的大小,遍历所述待匹配图片中每个区域,确定出包括匹配成功的特征点的数量最多的区域,其中,所述匹配成功的特征点与所述模板图片上对应的特征点之间相似度大于预设相似度阈值;

根据所述特征点数量最多的区域确定所述第一区域。

可选的,所述确定单元还用于:

获取所述模板图片和所述第一区域的特征点分布图;

以所述特征点数量最多的区域为起点,将所述模板图片的特征点分布图在所述第一区域的特征点分布图上,分别沿水平方向和竖直方向进行滑动,记录每一次滑动的偏移量;以及,

获取所述模板图片的特征点分布图,与滑动到的所述第一区域上的区域的特征点分布图之间的相似度;

基于特征点分布图之间的相似度最高的区域,矫正所述第一区域中所述模板图片对应的区域。

可选的,所述获取单元具体用于:

针对所述模板图片上的第一特征点,获取在所述第一区域上对应的第二特征点和第三特征点;

确定所述第一特征点与所述第二特征点之间的欧氏距离,与所述第一特征点与所述第三特征点之间的欧氏距离的差值是否不大于预设距离阈值;

若确定结果为是,则将所述第一特征点与所述第二特征点确定为一组特征点对;其中,所述第一特征点与所述第二特征点之间的相似度大于所述第一特征点与所述第三特征点之间的相似度。

可选的,所述获取单元还用于:

在获取由所述模板图片上的特征点与在所述第一区域上对应的特征点组成的至少一组特征点对之后,所述方法还包括:

根据所述至少一组特征点对包括的两个特征点之间的欧氏距离,剔除欧氏距离位于预设距离范围之外的异常特征点对;或者,

根据每一组特征点对与预设特征点对包括的两个特征点之间的欧氏距离的差值,剔除差值大于预设差值阈值的异常特征点对;

则基于所述至少一组特征点对之间的对应关系,建立表征所述模板图片与所述第一区域之间的特征点的映射关系的特征矩阵,包括:

基于在剔除异常特征点对后,所述至少一组特征点对中剩余的特征点对之间的对应关系,建立所述特征矩阵。

第三方面,提供一种模板匹配设备,所述设备包括:

至少一个处理器;以及

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如第一方面所述的方法。

第四方面,提供一种计算机存储介质,

所述计算机存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如第一方面所述的方法。

附图说明

图1为本发明实施例提供的模板匹配方法的流程示意图;

图2为本发明实施例提供的确定模板图片所在的第一区域的流程示意图;

图3为本发明实施例提供的模板图片和待匹配图片特征点的匹配结果的示意图;

图4为本发明实施例提供的第一区域的示意图;

图5为本发明实施例提供的矫正第一区域中模板图片对应的区域的流程示意图;

图6为本发明实施例提供的模板图片和第一区域的特征点分布图;

图7为本发明实施例提供的矫正前和矫正后的第一区域的示意图;

图8为本发明实施例提供的获取至少一组特征点对的流程示意图;

图9为本发明实施例提供的至少一组特征点对的示意图;

图10为本发明实施例提供的模板图片与第一区域的映射关系示意图;

图11a-图11e为本发明实施例提供的一种模板匹配结果的示意图;

图12a-图12c为本发明实施例提供的另一种模板匹配结果的示意图;

图13为本发明实施例提供的模板匹配装置的一种结构示意图;

图14为本发明实施例提供的模板匹配设备的一种结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。

下面介绍本发明实施例的技术背景。

目前,模板匹配主要采用两种匹配方法,一种方法为基于像素级信息进行匹配的方法,另一种方法为基于边缘进行匹配的方法。其中,基于像素级信息进行匹配的方法是通过在待匹配图片上划定与模板图片相同大小的区域,再通过模板图片遍历每个区域进行计算像素值的差值,获取每个区域的均方误差值,最终将均方误差值最小的区域确定为与模板图片匹配的区域;基于边缘进行匹配的方法是计算待匹配图片与模板图片的物体的边缘信息,基于边缘信息进行边缘匹配,以得到包括的物体的边缘信息与模板图片中的物体的边缘信息最接近的区域。

但是,目前的模板匹配方法依赖于待匹配图片的成像质量。例如,在光线发生变化时,获取的待匹配图片的像素值或者边缘信息容易发生较大的变化,现有的基于像素信息或者边缘信息的模板匹配方法的匹配精度相应的就会下降,甚至出现匹配失败的情况;或者,在待匹配图像中物体的尺寸发生变化或者发生形变时,通过上述匹配方法匹配精度也会下降,进而使得匹配结果不准确。

鉴于此,本发明实施例提供一种模板匹配方法,在该方法中,在模板图片确定待匹配图片中与模板图片匹配的大致位置后,通过建立模板图片与待匹配图片中的第一区域的特征矩阵,该特征矩阵用于表征模板图片与第一区域之间的特征点的映射关系,那么就可以通过将模板图片的边缘点映射到第一区域中,从而能够更加准确的获取与模板图片对应的区域。其中,特征矩阵是根据获取的特征点对建立的,这样,即使是物体的尺寸发生变化或者发生形变时,获得的特征矩阵也能随着尺寸和形变得以适应性变化,从而减小物体的尺寸发生变化或者发生形变对模板匹配的准确性的影响,并且,在建立特征矩阵时,只要存在少数准确的特征点对,就可以得到较为准确的特征矩阵,因此即使图像质量发生变化,对模板匹配的影响也会很小,从而提高了模板匹配的准确性。

下面结合附图介绍本发明实施例提供的技术方案。

请参见图1,本发明实施例提供一种模板匹配方法,该方法的流程描述如下。

步骤101:根据模板图片与待匹配图片包括的特征点,确定模板图片在待匹配图片中所在的第一区域。

本发明实施例中,模板匹配方法可以包括粗定位和精定位两部分,粗定位是指在待匹配图片中确定模板图片在待匹配图片中的大致位置,为后续的精定位奠定一定的基础。其中,可以基于模板图片与待匹配图片包括的特征点,确定模板图片在待匹配图片中所在的第一区域,也就是模板图片所在的大致位置。

本发明实施例中,请参见图2,根据模板图片与待匹配图片包括的特征点,确定模板图片在待匹配图片中所在的第一区域,具体可以包括:

步骤201:将模板图片包括的特征点与待匹配图片包括的特征点进行匹配。

本发明实施例中,可以将模板图片中的所有特征点与待匹配图片中的所有特征点进行匹配,以获取到待匹配图片中与模板图片的特征点匹配成功的特征点。

具体的,可以分别提取获取模板图片与待匹配图片中的所有特征点后,计算所有特征点的特征描述符,进而计算模板图片中的特征点的特征描述符与待匹配图片中的特征点的特征描述符的相似度,若是相似度大于或者等于预设相似度阈值,就可以认为这两个特征点匹配成功。其中,特征描述符是对特征点所在区域的图像信息的一种抽象,用以唯一描述图片上特征点所在区域。特征点例如可以是图片上的焦点,特征点的提取可以通过特征提取算法进行提取,例如,尺度不变特征变换(scale-invariantfeaturetransform,sift)算法、加速稳健特征(speededuprobustfeatures,surf)算法或者harris角点检测算法等算法,检测特征点的位置特征点的特征描述符可以通过特征描述算法来进行计算,例如局部强度顺序(localintensityorderpattern,liop)算法或者独特性二进制描述(binaryrobustindependentelementaryfeatures,brief)算法。

请参见图3,为模板图片和待匹配图片特征点的匹配结果的示意图,其中,一条曲线连接的两个特征点表示匹配成功的特征点。

步骤202:按照模板图片的大小,遍历待匹配图片中每个区域,确定出包括匹配成功的特征点的数量最多的区域。

本发明实施例中,模板图片中的一个特征点的特征描述符可能与待匹配图片中的多个特征描述符的相似度较高,也就是说,可能会出现模板图片中的一个特征点与多个特征点匹配成功的情况,因而还需要对特征点进行筛选。其中,由于若是一个区域是与模板图片相匹配的,那么该区域中所包括的匹配成功的特征点的数量应是最多的,因此,可以按照模板图片的大小,便利待匹配图片中的每个区域,从而从所有区域中确定出包括匹配成功的特征点的数量最多的区域,该区域是包括模板图片中物体的区域。

如图3所示,虽然在其他区域也存在匹配成功的特征点,但是匹配成功的特征点会在某一区域表现的尤为聚集,即图3中所示的右上角的区域,该区域即为模板图片中的物体所在的区域,通过对待匹配图片中的每个区域进行遍历,并统计该区域内的匹配成功的特征点的数量,就可以知道哪个区域包括的匹配成功的特征点的数量最多,从而确定模板图片中物体在待匹配图片中的位置,得出的结果如图4所示,其中黑框圈住的区域即为模板图片中物体所在的区域。

步骤203:根据特征点数量最多的区域确定第一区域。

本发明实施例中,虽然已经从待匹配图片中确定了模板图片包括的物体所在的区域,但是该区域的内容可能与模板图片并不一致,因此需要将包括匹配成功的特征点的区域向外扩充,以得到第一区域,这样,才能方便后续对包括匹配成功的特征点的区域进行矫正,使得与模板图片对应的区域的准确性更高。

下面请继续参见图1。

步骤102:矫正第一区域中模板图片对应的区域。

本发明实施例中,通过上述过程所得到的结果只是较为粗略的定位模板图片在待匹配图片中所在的位置,并且确定的特征点数量最多的区域一般都会与模板图片存在一定的偏差,因此需要对确定的特征点数量最多的区域进行一定的矫正。

本发明实施例中,请参见图5,矫正第一区域中模板图片对应的区域,具体可以包括:

步骤501:获取模板图片和第一区域的特征点分布图。

本发明实施例中,可以通过对模板图片和第一区域上的特征点分布进行统计,进而匹配模板图片和第一区域上的特征点分布情况,以找到与模板图片对应的区域。其中,特征点分布情况可以通过特征点分布图来反映,特征点分布图的形式可以是折线图或者直方图等,当然,也可以通过其他方式进行反映,本发明实施例对此不做限制。

示例性的,以模板图片的边长为100为例,以左上角为零点建立坐标系,以10个像素为单位,依次统计10个像素内特征点的数量,则可以分别得到x轴和y轴的特征点分布图,同理可以得到第一区域的x轴和y轴的特征点分布图,如图6所示,其中,左侧为模板图片的特征点分布图,右侧为待匹配图片的特征点分布图。

步骤502:以特征点数量最多的区域为起点,将模板图片的特征点分布图在第一区域的特征点分布图上,分别沿水平方向和竖直方向进行滑动,记录每一次滑动的偏移量,以及获取模板图片的特征点分布图,与滑动到的第一区域上的区域的特征点分布图之间的相似度。

本发明实施例中,在对上述获取的与模板图片对应的区域,也就是上述确定的特征点数量最多的区域进行矫正时,可以在第一区域的特征点分布图上,将特征点数量最多的区域作为起点,将模板图片的特征点分布图沿着水平方向,也就是x轴以及y轴进行滑动,并在每一次滑动时记录下滑动的偏移量的同时,并计算滑动到的区域的特征点分布图与模板图片的特征点分布图的相似度。

步骤503:基于特征点分布图之间的相似度最高的区域,矫正第一区域中模板图片对应的区域。

本发明实施例中,若是某一区域与模板图片的分布情况愈加接近,则说明该区域与模板图片愈加相似,因此可以将完成上述的滑动过程中,获取相似度最高的区域,并将相似度最高的区域作为与模板图片对应的区域。具体的,由于在滑动时,记录了每一次滑动的偏差值,那么就可以基于起点位置,与滑动的偏差值,获取到与模板对应的区域的实际位置。

例如,假设特征点数量最多的区域的坐标为(x,y),并且计算的相似度最高的区域所对应的滑动的x轴的偏移量为x轴补偿值(x_offset),x轴的偏移量为y轴补偿值(y_offset),那么根据起点坐标以及偏差坐标就可以比较准确的得到模板图片所对应的区域坐标了,即为(x+x_offset,y+y_offset),具体如图7所示。其中,细框框住的区域为获取的特征点数量最多的区域,而组框框住的区域为通过上述方法确定的矫正后的区域,即与模板图片更加接近的区域。

本发明实施例中,所指的一个区域的坐标可以是以该区域的中点位置的坐标为准,也可以是其他位置的坐标为准,例如四个角点的坐标,本发明实施例对此不做限制。

下面请继续参见图1。

步骤103:获取由模板图片上的特征点与在第一区域上对应的特征点组成的至少一组特征点对。

本发明实施例中,通过步骤101和步骤102可以在待匹配图片上得到较为准确的与模板图片对应的区域,一般上述过程得到的匹配结果已经较为准确了,为了进一步提高准确度,本发明实施例中还可以进一步通过建立特征矩阵来表征模板图片与第一区域的映射关系,从而得到更加准确的匹配结果。其中,为了建立特征矩阵,需要获取由模板图片上的特征点与在第一区域上对应的特征点组成的至少一组特征点对,以为建立特征矩阵提供依据。

具体的,请参见图8,以模板图片上的一个特征点为例,获取由模板图片上的特征点与在第一区域上对应的特征点组成的至少一组特征点对,具体可以包括:

步骤801:针对模板图片上的第一特征点,获取在第一区域上对应的第二特征点和第三特征点。

本发明实施例中,由于模板图片和第一区域上的特征点特别多的时候,很容易出现特征点之间匹配错的情况,例如出现模板图片中上方的点映射到第一区域中下方的特征点,因此在获取特征点对时需要对特征点对进行一定的判定。

具体的,可以通过k最近邻(k-nearestneighbor,knn)算法来获取特征点对。其中,针对模板图片上的第一特征点,会在待匹配图片上匹配到与之相似的两个特征点,例如可以为第二特征点和第三特征点。

步骤802:确定第二特征点与第三特征点之间的欧氏距离是否不大于预设距离阈值。

本发明实施例中,在knn算法中,只有当获取的第二特征点和第三特征点较为接近时,才可认为第一特征点是一个较好的点,可以用于后续建立特征矩阵之用,因此在获取与第一特征点对应的两个相似的特征点之后,则会确定第二特征点与第三特征点之间的欧氏距离是否不大于预设距离阈值,并且只有当第二特征点与第三特征点之间不大于预设距离阈值时,才认为第二特征点与第三特征点中存在较好的点,否则将会舍弃第二特征点与第三特征点。

步骤803:若确定结果为是,则将第一特征点与第二特征点确定为一组特征点对。

本发明实施例中,若是确定第二特征点与第三特征点之间的欧氏距离不大于预设距离阈值,则会取第一特征点与第二特征点和第三特征点中的一个特征点作为一组特征点对。其中,在进行第二特征点和第三特征点的选择时,可以选择其中与第一特征点的相似度更大的点,例如第一特征点与第二特征点之间的相似度大于第一特征点与第三特征点之间的相似度时,则可以将第一特征点与第二特征点作为一组特征点对。其中,预设距离阈值可以是根据经验进行设置的,也可以是根据实验结果调整后进行设置的。

本发明实施例中,若是确定第二特征点与第三特征点之间的欧氏距离小于或者等于预设距离阈值,则会将这些特征点均舍弃,即不作为特征点对。

本发明实施例中,在获取至少一组特征点对时,可以是从模板图片与矫正后得到的与模板图片对应的区域中来进行获取,这样,就可以排除掉模板图片对应的区域之外的特征点的干扰,并且减少特征点数量,加快获取至少一组特征点对的过程,如图9所示,为获取的至少一组特征点对的示意图,其中,一条连线的两端即为组合一组特征点对的两个特征点。

下面请继续参见图1。

步骤104:从获取的至少一组特征点对中选择最优的特征点对。

本发明实施例中,通过knn算法获取的至少一组特征点对有时候还是有问题,如可能有些错误映射的点由于很相似,其相似度很高,所以也被保存下来,因此还需要对获取的至少一组特征点对进行上过滤,以过滤其中的异常特征点对,使得剩余的特征点对所形成的连线之间的平行度不大于预设平行度阈值,也就是剩余的特征点对所形成的连线可以近似认为是平行的,从而保证后续得到的特征矩阵的准确性。

具体的,在获取上述的至少一组特征点对之后,可以根据至少一组特征点对每一组特征点对包括的两个特征点之间的欧氏距离,剔除欧氏距离位于预设距离范围之外的异常特征点对。其中,预设距离范围可以是根据至少一组特征点对每一组特征点对包括的两个特征点之间的欧氏距离来确定的,例如获取每一组特征点对包括的两个特征点之间的欧氏距离之后,根据欧氏距离的值大小,对每一组特征点对包括的两个特征点之间的欧氏距离进行排序,以便能够直观的获取到在各个距离阶段的特征点对的数量,进而将包括最多特征点对的欧氏距离的距离范围作为上述预设距离范围。

或者,还可以根据每一组特征点对与预设特征点对包括的两个特征点之间的欧氏距离的差值,剔除差值大于预设差值阈值的异常特征点对。其中,预设特征点对可以是从至少一组特征点对中选择的任一组特征点对,或者还可以是预先设置的特定的特征点对。预设差值阈值可以是根据经验进行设置的,也可以是根据实验结果调整后进行设置的,或者还可以是根据至少一组特征点对每一组特征点对包括的两个特征点之间的欧氏距离的差值来确定的,例如在获取每一组特征点对包括的两个特征点之间的欧氏距离的差值之后,根据差值的值大小,对每一组特征点对包括的两个特征点之间的欧氏距离的差值进行排序,进而将排在预设位置的特征点对的差值作为预设差值阈值。

在实际应用中,步骤104也可以根据实际需要选择性的执行,也就是说,也可以是在获取至少一组特征点对后,就根据至少一组特征点对得到特征矩阵,也可以是为了提高准确性,通过步骤104的筛选之后,在通过剩余的特征点对来得到特征矩阵。

步骤105:基于特征点对之间的对应关系,建立表征模板图片与第一区域之间的特征点的映射关系的特征矩阵。

本发明实施例中,可以基于上述至少一组特征点对之间的对应关系,或者,基于剔除异常特征点对之后剩余的特征点对之间的对应关系,来建立特征矩阵。其中,特征矩阵例如可以是单应性矩阵(homographymatrix),后续简称h矩阵,在h矩阵中,可以通过三轴坐标xyz来表达一个特征点,其中,由于图片只具有二维的特征,因而可使得z为恒量1。

具体的,由于一组特征点对中两个特征点的坐标是一一对应的,且多组特征点对实质上存在着类似的映射关系,因而可以基于多组特征点对特征点的坐标推导出满足这多组特征点对的映射关系,也就是得到特征矩阵。可以知道,基于该特征矩阵,可以将模板图片上的任意一点映射到待匹配图片中的对应的点。

具体的,以特征矩阵为h矩阵为例,h矩阵反映的是模板图片与待匹配图片之间的特征点映射关系,得到h矩阵之后,就可以通过将模板图片四个顶点的坐标通过h矩阵直接映射到待匹配图片中,这四个映射点就是模板图片在待匹配图片最终匹配到的物体的位置信息。其中,通过h矩阵可以将模板图片上的每一个点的坐标ai=(xi,yi,1)映射到待匹配图片上的对应的点ai′=(xi′,yi′,1),因此可知,下面的公式成立:

其中,上述公式表示通过h矩阵对模板图片上的每一个点进行转换得到待匹配图片上的对应的点。

假设h矩阵如下:

则上述公式可表示为:

通过1=h31xi+h32yi+h33可得到如下的推导过程:

而基于公式还可得到:

其中,h=[h12,h12,h13,h21,h22,h23,h31,h32,h33]t,是一个9维的列向量,若是令

则存在:

ah=0

由于上述过程是基于一对相应的点得到的矩阵a,即a∈r2×9,若是有4对点,则得到的矩阵a∈r8×9,以此类推。为获取向量h,只需要对矩阵a进行奇异值分解(singularvaluedecomposition,svd),即:

u*∑*vt

然后取v的最后一列作为求解h,因为矩阵a为行满秩,即只有一个自由度。在具体实现时,在从模板图片和待匹配图片(或者第一区域)中找到对应的多对点的坐标之后,则可以得到矩阵a,进而得到向量h,从而得到h矩阵。可选的,可以通过matlab来实现矩阵a的获得,具体如下:

[u,s,v]=svd(a);

h=v(:,9);

h=reshape(h,3,3);

单应性矩阵可以得到仿射变换,还可以在单应性矩阵上做图像拼接。

步骤106:根据特征矩阵,确定第一区域中与模板图片的边缘点对应的映射点,并将映射点围成的区域确定为待匹配图片中与模板图片匹配的区域。

本发明实施例中,由于模板图片的边缘点的坐标是已知的,那么就可以基于模板图片的边缘点的坐标,基于特征矩阵进行变换后,就可以得到模板图片的边缘点的坐标在第一区域中的映射点的坐标,并且,这些映射点的坐标围成的区域即为待匹配图片中与模板图片匹配的区域,也就是最终的匹配结果。

在具体应用中,模板图片通常为矩形,那么就可以选择矩形的四个角点作为边缘点,如图10所示,并且可以看到,四个角点映射到待匹配图片中之后,四个角点与自己的映射点形成的连线之间是相互平行的,并且图片中包括的特征点与自身的映射点所形成的连线之间也是相互平行的;或者,在模板图片为圆形时,可以选择圆形的边缘的至少三个点作为边缘点,具体可以根据实际情况进行设置。

本发明实施例中,由于待匹配图片和模板图片中物体的尺寸比例有可能并不一致,那么在待匹配图片中准确的找到模板图片所在的区域之后,还可以按照比例对待匹配图片进行缩放,从而使得从待匹配图片中定位的物体的尺寸与模板图片一致。

请参见图11a~图11e,为一种通过本发明实施例的模板匹配方法得到的匹配结果的示意图。其中,图11a为输入的模板图片,图11b~图11e为在不同光照条件下且从不同角度拍摄的包括模板图片中的物体的待匹配图片,其中,用矩形框框住的区域即为最终得到的与模板图片匹配的区域,可以看到,对光照变化波动很大的情况下,本发明实施例提供的模板匹配方法依然可以取得很好的匹配效果。

请参见图12a~图12c,为另一种通过本发明实施例的模板匹配方法得到的匹配结果的示意图。其中,图12a中矩形框区域作为输入的模板图片,图12b~图12c为从不同角度拍摄的包括模板图片中的物体的待匹配图片,其中,图12b~图12c中用矩形框框住的区域即为最终得到的与模板图片匹配的区域,可以看到,最终定位出来与模板对应的区域,其中物体的位置与原始模板里的保持一致,在该例中即为物体都是偏向于左上方分布。

综上所述,本发明实施例中,在模板图片确定待匹配图片中与模板图片匹配的大致位置后,通过建立模板图片与待匹配图片中的第一区域的特征矩阵,该特征矩阵用于表征模板图片与第一区域之间的特征点的映射关系,那么就可以通过将模板图片的边缘点映射到第一区域中,从而能够更加准确的获取与模板图片对应的区域。其中,特征矩阵是根据获取的特征点对建立的,没有利用像素信息或边缘信息,这样,即使是物体的尺寸发生变化或者发生形变时,获得的特征矩阵也能随着尺寸和形变得以适应性变化,从而减小物体的尺寸发生变化或者发生形变对模板匹配的准确性的影响,并且,在建立特征矩阵时,只要存在少数准确的特征点对,就可以得到较为准确的特征矩阵,因此即使图像质量发生变化,对模板匹配的影响也会很小,从而提高了模板匹配的准确性。

请参见图13,基于同一发明构思,本发明实施例提供一种模板匹配装置,该装置包括:

确定单元1301,用于根据模板图片与待匹配图片的特征点,确定模板图片在待匹配图片中所在的第一区域;

获取单元1302,用于获取由模板图片上的特征点与在第一区域上对应的特征点组成的至少一组特征点对,其中,一组特征点对包括的两个特征点一一对应,且任意两组特征点对中一组特征点对包括的两个特征点之间的连线,与另一组特征点对包括的两个特征点之间的连线的平行度不大于预设平行度阈值;

建立单元1303,用于基于至少一组特征点对之间的对应关系,建立表征模板图片与第一区域之间的特征点的映射关系的特征矩阵;

确定单元1301,还用于根据特征矩阵,确定第一区域中与模板图片的边缘点对应的映射点,并将映射点围成的区域确定为待匹配图片中与模板图片匹配的区域。

可选的,确定单元1301,具体用于:

将模板图片包括的特征点与待匹配图片包括的特征点进行匹配;

按照模板图片的大小,遍历待匹配图片中每个区域,确定出包括匹配成功的特征点的数量最多的区域,其中,匹配成功的特征点与模板图片上对应的特征点之间相似度大于预设相似度阈值;

根据特征点数量最多的区域确定第一区域。

可选的,确定单元1301还用于:

获取模板图片和第一区域的特征点分布图;

以特征点数量最多的区域为起点,将模板图片的特征点分布图在第一区域的特征点分布图上,分别沿水平方向和竖直方向进行滑动,记录每一次滑动的偏移量;以及,

获取模板图片的特征点分布图,与滑动到的第一区域上的区域的特征点分布图之间的相似度;

基于特征点分布图之间的相似度最高的区域,矫正第一区域中模板图片对应的区域。

可选的,获取单元1302具体用于:

针对模板图片上的第一特征点,获取在第一区域上对应的第二特征点和第三特征点;

确定第一特征点与第二特征点之间的欧氏距离,与第一特征点与第三特征点之间的欧氏距离的差值是否不大于预设距离阈值;

若确定结果为是,则将第一特征点与第二特征点确定为一组特征点对;其中,第一特征点与第二特征点之间的相似度大于第一特征点与第三特征点之间的相似度。

可选的,获取单元1302还用于:

在获取由模板图片上的特征点与在第一区域上对应的特征点组成的至少一组特征点对之后,方法还包括:

根据至少一组特征点对包括的两个特征点之间的欧氏距离,剔除欧氏距离位于预设距离范围之外的异常特征点对;或者,

根据每一组特征点对与预设特征点对包括的两个特征点之间的欧氏距离的差值,剔除差值大于预设差值阈值的异常特征点对;

则基于至少一组特征点对之间的对应关系,建立表征模板图片与第一区域之间的特征点的映射关系的特征矩阵,包括:

基于在剔除异常特征点对后,至少一组特征点对中剩余的特征点对之间的对应关系,建立特征矩阵。

该设备可以用于执行图1-12c所示的实施例所提供的方法,因此,对于该设备的各功能模块所能够实现的功能等可参考图1-12c所示的实施例的描述,不多赘述。

请参见图14,基于同一发明构思,本发明实施例提供一种模板匹配设备,包括至少一个处理器1401,至少一个处理器1401用于执行存储器中存储的计算机程序时实现图1-12c所示的实施例提供的模板匹配方法的步骤。

可选的,至少一个处理器1401具体可以包括中央处理器(cpu)、特定应用集成电路(applicationspecificintegratedcircuit,asic),可以是一个或多个用于控制程序执行的集成电路,可以是使用现场可编程门阵列(fieldprogrammablegatearray,fpga)开发的硬件电路,可以是基带处理器。

可选的,至少一个处理器1401可以包括至少一个处理核心。

可选的,该设备还包括存储器1402,存储器1402可以包括只读存储器(readonlymemory,rom)、随机存取存储器(randomaccessmemory,ram)和磁盘存储器。存储器1402用于存储至少一个处理器1401运行时所需的数据。存储器1402的数量为一个或多个。其中,存储器1402在图14中一并示出,但需要知道的是存储器1402不是必选的功能模块,因此在图14中以虚线示出。

基于同一发明构思,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如图1-12c所示的方法。

在具体的实施过程中,计算机可读存储介质包括:通用串行总线闪存盘(universalserialbusflashdrive,usb)、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的存储介质。

在本发明实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性或其它的形式。

在本发明实施例中的各功能单元可以集成在一个处理单元中,或者各个单元也可以均是独立的物理模块。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备,例如可以是个人计算机,服务器,或者网络设备等,或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:通用串行总线闪存盘(universalserialbusflashdrive)、移动硬盘、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,以上实施例仅用以对本申请的技术方案进行了详细介绍,但以上实施例的说明只是用于帮助理解本发明实施例的方法,不应理解为对本发明实施例的限制。本技术领域的技术人员可轻易想到的变化或替换,都应涵盖在本发明实施例的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1