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

文档序号:25951052发布日期:2021-07-20 17:07阅读:126来源:国知局
模板匹配方法、装置、电子设备及计算机可读存储介质与流程

本申请涉及图像处理技术,尤其涉及一种模板匹配方法、装置、电子设备及计算机可读存储介质。



背景技术:

模板匹配是图像处理技术中最基本和最常用的匹配方法,是机器视觉应用的核心算法之一。模板匹配作为机器视觉应用的第一步,使得模板匹配的精度和速度决定了机器视觉应用的应用前景。

模板匹配广泛应用于目标定位、目标识别、图像配准和机器人引导等领域。通过模板匹配能够返回目标的位置坐标、角度、尺度和匹配分数,可以根据模板匹配的位置信息做定位引导,也可以根据实际的模板匹配结果判断当前场景中匹配目标是否有异常;如根据模板匹配的分数判断流水线上的工件是否有漏放,根据模板匹配的角度判断工件方向是否一致,根据模板匹配的尺度判断是否混入其它规格的产品。

相关技术中,模板匹配的方案通常包括基于边缘特征进行模板匹配方案、基于相关性的模板匹配方案以及基于特征点的模板匹配方案;但是,相关技术提供的模板匹配方案存在计算复杂度高和模板匹配精度差等问题。



技术实现要素:

本申请实施例提供一种模板匹配方法、装置、电子设备及计算机可读存储介质,能够降低模板匹配的计算复杂度,提高模板匹配的精度。

本申请实施例的技术方案是这样实现的:

本申请实施例提供一种模板匹配方法,包括:

确定模板图像的边缘特征向量;

将待匹配图像分解为金字塔图像序列;

按照由上至下的顺序在所述金字塔图像序列中的各金字塔图像上遍历搜索,基于所述边缘特征向量与各所述金字塔图像上的特征向量之差的投影长度,确定所述边缘特征向量与各所述金字塔图像上的特征向量的相似度;

基于所述边缘特征向量与各所述金字塔图像上的特征向量的相似度,确定所述待匹配图像上与所述模板图像匹配的目标图像。

在一些实施例中,所述按照由上至下的顺序在所述金字塔图像序列中的各金字塔图像上遍历搜索,包括:

按照所述金字塔图像序列中最顶层金字塔图像至最底层金字塔图像的顺序,以像素点为滑动单位在各所述金字塔图像上滑动窗口。

在一些实施例中,所述基于所述边缘特征向量与各所述金字塔图像上的特征向量之差的投影长度,确定所述边缘特征向量与各所述金字塔图像上的特征向量的相似度包括:

针对各所述金字塔图像分别执行以下操作:

获取所述金字塔图像中所述窗口对应的区域图像的特征向量;

确定所述边缘特征向量与所述区域图像的特征向量的向量差;

获取所述向量差在第一方向上的第一投影长度,以及所述向量差在与所述第一方向垂直的第二方向上的第二投影长度;

确定所述第一投影长度与所述第二投影长度的和,并将所述第一投影长度与所述第二投影长度的和作为所述边缘特征向量与所述区域图像的特征向量的相似度。

在一些实施例中,所述基于所述边缘特征向量与各所述金字塔图像上的特征向量的相似度,确定所述待匹配图像上与所述模板图像匹配的目标图像,包括:

针对各所述金字塔图像分别执行以下操作:

确定与所述边缘特征向量的相似度小于相似度阈值的特征向量为目标特征向量;

若所述区域图像中目标特征向量的数量大于数量阈值,则确定所述区域图像为与所述模板图像匹配的所述目标图像。

在一些实施例中,所述确定模板图像的边缘特征向量,包括:

确定所述模板图像中各像素点的梯度信息,基于所述梯度信息确定所述确定模板图像的边缘特征向量。

在一些实施例中,所述确定所述模板图像中各像素点的梯度信息,基于所述梯度信息确定边缘特征向量包括:

将所述模板图像输入至梯度模型,根据所述梯度模型的输出确定所述模板图像中每个像素点的梯度信息;所述梯度信息包括梯度方向和梯度幅值;

确定所述梯度幅值大于幅值阈值的像素点为边缘像素点;

确定所述边缘像素点的特征向量为所述边缘特征向量。

在一些实施例中,所述将待匹配图像分解为金字塔图像序列,包括:

通过梯次向下采样的方式对所述待匹配图像进行采样,得到所述待匹配图像对应的不同分辨率的至少两个金字塔图像;所述至少两个金字塔图像构成所述金字塔图像序列。

在一些实施例中,所述确定所述边缘特征向量与各所述金字塔图像上的特征向量的相似度之前,所述方法还包括:

分别对所述边缘特征向量和各所述金字塔图像上的特征向量进行归一化处理,使得所述边缘特征向量和各所述金字塔图像上的特征向量均可表示在半径为1的圆周上。

本申请实施例提供一种模板匹配装置,包括:

边缘特征向量确定模块,用于确定模板图像的边缘特征向量;

分解模块,用于将待匹配图像分解为金字塔图像序列;

相似度确定模块,用于按照由上至下的顺序在所述金字塔图像序列中的各金字塔图像上遍历搜索,基于所述边缘特征向量与各所述金字塔图像上的特征向量之差的投影长度,确定所述边缘特征向量与各所述金字塔图像上的特征向量的相似度;

匹配模块,用于基于所述边缘特征向量与各所述金字塔图像上的特征向量的相似度,确定所述待匹配图像上与所述模板图像匹配的目标图像。

在一些实施例中,所述相似度确定模块,用于按照所述金字塔图像序列中最顶层金字塔图像至最底层金字塔图像的顺序,以像素点为滑动单位在各所述金字塔图像上滑动窗口。

在一些实施例中,所述相似度确定模块,用于针对各所述金字塔图像分别执行以下操作:

获取所述金字塔图像中所述窗口对应的区域图像的特征向量;

确定所述边缘特征向量与所述区域图像的特征向量的向量差;

获取所述向量差在第一方向上的第一投影长度,以及所述向量差在与所述第一方向垂直的第二方向上的第二投影长度;

确定所述第一投影长度与所述第二投影长度的和,并将所述第一投影长度与所述第二投影长度的和作为所述边缘特征向量与所述区域图像的特征向量的相似度。

在一些实施例中,所述相似度确定模块,用于针对各所述金字塔图像分别执行以下操作:

确定与所述边缘特征向量的相似度小于相似度阈值的特征向量为目标特征向量;

若所述区域图像中目标特征向量的数量大于数量阈值,则确定所述区域图像为与所述模板图像匹配的所述目标图像。

在一些实施例中,所述边缘特征向量确定模块,用于确定所述模板图像中各像素点的梯度信息,基于所述梯度信息确定所述确定模板图像的边缘特征向量。

在一些实施例中,所述边缘特征向量确定模块,用于将所述模板图像输入至梯度模型,根据所述梯度模型的输出确定所述模板图像中每个像素点的梯度信息;所述梯度信息包括梯度方向和梯度幅值;

确定所述梯度幅值大于幅值阈值的像素点为边缘像素点;

确定所述边缘像素点的特征向量为边缘特征向量。

在一些实施例中,所述分解模块,用于通过梯次向下采样的方式对所述待匹配图像进行采样,得到所述待匹配图像对应的不同分辨率的至少两个金字塔图像;所述至少两个金字塔图像构成所述金字塔图像序列。

在一些实施例中,所述相似度确定模块,还用于分别对所述边缘特征向量和各所述金字塔图像上的特征向量进行归一化处理,使得所述边缘特征向量和各所述金字塔图像上的特征向量均可表示在半径为1的圆周上。

本申请实施例提供一种电子设备,包括:

存储器,用于存储可执行指令;

处理器,用于执行所述存储器中存储的可执行指令时,实现本申请实施例提供的模板匹配方法。

本申请实施例提供一种计算机可读存储介质,存储有可执行指令,用于被处理器执行时,实现本申请实施例提供的模板匹配方法。

本申请实施例提供的模板匹配方法,确定模板图像的边缘特征向量;将待匹配图像分解为金字塔图像序列;按照由上至下的顺序在所述金字塔图像序列中的各金字塔图像上遍历搜索,基于所述边缘特征向量与各所述金字塔图像上的特征向量之差的投影长度,确定所述边缘特征向量与各所述金字塔图像上的特征向量的相似度;基于所述边缘特征向量与各所述金字塔图像上的特征向量的相似度,确定所述待匹配图像上与所述模板图像匹配的目标图像。因此,本申请实施例提供的模板匹配方法能够基于模板图像的边缘特征向量与待匹配图像对应的金字塔图像上的特征向量之差的投影长度,确定模板图像的边缘特征向量与待匹配图像上特征向量的相似度,不仅相似度的表达形式简单,而且计算相似度时仅涉及加法运算和减法运算,计算复杂度低。并且,本申请实施例提供的模板匹配方法,仅基于模板图像的边缘特征向量与待匹配图像对应的金字塔图像上的特征向量之差的投影长度便能够实现模板匹配,无需依赖于搜索的角度步长等参数,提高模板匹配的精度。

附图说明

图1是本申请实施例提供的模板匹配系统的架构示意图;

图2是本申请实施例提供的终端设备的架构示意图;

图3是本申请实施例提供的模板匹配方法的流程示意图;

图4是本申请实施例提供的模板图像示意图;

图5是本申请实施例提供的边缘图像示意图;

图6a是本申请实施例提供的金字塔图像序列的示意图;

图6b是本申请实施例提供的图像的特征金字塔示意图;

图7是本申请实施例提供的滑动窗口的示意图;

图8是本申请实施例提供的确定所述边缘特征向量与金字塔图像上的特征向量的相似度的一种可选处理流程示意图;

图9是本申请实施例提供的归一化后的边缘特征向量和区域图像的特征向量的示意图;

图10是相关技术中用表征两个特征向量的相似度的示意图;

图11是本申请实施例提供的用两个特征向量的向量差在坐标轴的投影长度表征两个特征向量的相似度的示意图。

具体实施方式

为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。

在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。

在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。在以下的描述中,所涉及的术语“多个”是指至少两个。

除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。

对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。

1)模板图像,是一幅已知的图像。

2)模板匹配,在一幅大图像中搜寻目标,已知大图像中有要匹配的目标,且该目标同模板图像有相同的尺寸、方向和图像元素,通过一定的算法可以在大图像中找到目标,确定目标的坐标位置。

3)图像金字塔,是图像多尺度表达的一种,是一种以多分辨率来解释图像的结构。一幅图像对应的金字塔是一系列以金字塔形状排列的分辨率逐步降低、且来源于同一张原始图的图像集合。将一层一层的图像比喻成金字塔,层级越高,则图像越小,分辨率越低;反之,层级越低,则图像越大,分辨率越高。

4)边缘,是图像最基本的特征,是指图像中像素灰度有阶跃变化或屋顶状变化的像素的集合;边缘与图像亮度或图像亮度的一阶导数的不连续性有关,从而表现为阶跃边缘和线条边缘。

5)数据库(database):类似于电子化的文件柜,即存储电子文件的处所,用户可以对文件中的数据执行新增、查询、更新及删除等操作。数据库也可以理解为以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。在本申请实施例中,数据库可以存储用于进行模型训练的数据。

本申请实施例提供一种模板匹配方法、装置、电子设备及计算机可读存储介质,能够降低模板匹配的计算复杂度,提高模板匹配的精度。下面说明本申请实施例提供的电子设备的示例性应用,本申请实施例提供的电子设备可以实施为各种类型的终端设备,也可以实施为服务器。

参见图1,图1是本申请实施例提供的模板匹配系统100的一个架构示意图,终端设备400通过网络300连接服务器200,服务器200连接数据库500,其中,网络300可以是广域网或者局域网,又或者是二者的组合。

在一些实施例中,以实施模板匹配方法的电子设备是终端设备为例,本申请实施例提供的模板匹配方法可以由终端设备实现。例如,终端设备400运行客户端410,客户端410可以是用于执行模板匹配的客户端。

在需要进行模板匹配时,客户端410获取模板图像,然后确定模板图像的边缘特征向量;客户端410将待匹配图像分解为金字塔图像序列;按照由上至下的顺序在所述金字塔图像序列中的各金字塔图像上遍历搜索,基于所述边缘特征向量与各所述金字塔图像上的特征向量之差的投影长度,确定所述边缘特征向量与各所述金字塔图像上的特征向量的相似度;基于所述边缘特征向量与各所述金字塔图像上的特征向量的相似度,确定所述待匹配图像上与所述模板图像匹配的目标图像。

在一些实施例中,以实施模板匹配方法的电子设备是服务器为例,本申请实施例提供的模板匹配方法可以由服务器和终端设备协同实现。例如,服务器200从数据库500中获取样本图像,对样本图像中每个像素点的梯度信息进行标注。然后,根据样本图像以及样本图像中每个像素点的梯度信息训练梯度模型。

服务器200从客户端410中获取模板图像。然后,服务器200确定模板图像的边缘特征向量;将待匹配图像分解为金字塔图像序列;按照由上至下的顺序在所述金字塔图像序列中的各金字塔图像上遍历搜索,基于所述边缘特征向量与各所述金字塔图像上的特征向量之差的投影长度,确定所述边缘特征向量与各所述金字塔图像上的特征向量的相似度;基于所述边缘特征向量与各所述金字塔图像上的特征向量的相似度,确定所述待匹配图像上与所述模板图像匹配的目标图像;服务器200将目标图像发送至客户端410。

在一些实施例中,终端设备400或服务器200可以通过运行计算机程序来实现本申请实施例提供的模板匹配方法,例如,计算机程序可以是操作系统中的原生程序或软件模块;可以是本地(native)应用程序(app,application),即需要在操作系统中安装才能运行的程序;也可以是小程序,即只需要下载到浏览器环境中就可以运行的程序;还可以是能够嵌入至任意app中的小程序。总而言之,上述计算机程序可以是任意形式的应用程序、模块或插件。

在一些实施例中,服务器200可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn、以及大数据和人工智能平台等基础云计算服务的云服务器,其中,云技术(cloudtechnology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。终端设备400可以是智能手机、平板电脑、笔记本电脑、台式计算机等,但并不局限于此。终端设备以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请实施例中不做限制。

以本申请实施例提供的电子设备是终端设备为例说明,可以理解的,对于电子设备是服务器的情况,图2中示出的结构中的部分(例如用户接口、呈现模块和输入处理模块)可以缺省。参见图2,图2是本申请实施例提供的终端设备400的结构示意图,图2所示的终端设备400包括:至少一个处理器410、存储器450、至少一个网络接口420和用户接口430。终端400中的各个组件通过总线系统440耦合在一起。可理解,总线系统440用于实现这些组件之间的连接通信。总线系统440除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统440。

处理器410可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(dsp,digitalsignalprocessor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。

用户接口430包括使得能够呈现媒体内容的一个或多个输出装置431,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口430还包括一个或多个输入装置432,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。

存储器450可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器450可选地包括在物理位置上远离处理器410的一个或多个存储设备。

存储器450包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(rom,readonlymemory),易失性存储器可以是随机存取存储器(ram,randomaccessmemory)。本申请实施例描述的存储器450旨在包括任意适合类型的存储器。

在一些实施例中,存储器450能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。

操作系统451,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;

网络通信模块452,用于经由一个或多个(有线或无线)网络接口420到达其他计算设备,示例性的网络接口420包括:蓝牙、无线相容性认证(wifi)、和通用串行总线(usb,universalserialbus)等;

呈现模块453,用于经由一个或多个与用户接口430相关联的输出装置431(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);

输入处理模块454,用于对一个或多个来自一个或多个输入装置432之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。

在一些实施例中,本申请实施例提供的装置可以采用软件方式实现,图2示出了存储在存储器450中的模板匹配装置455,其可以是程序和插件等形式的软件,可以包括以下软件模块:边缘特征向量确定模块4551、分解模块4552、相似度确定模块4553和匹配模块4554,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。

在相关技术中,基于特征点的模板匹配方案是将特征点作为匹配的特征信息,需要在模板图像和待匹配图像中能够找到特征点特征,该特征点需要满足角点的特性,同时需要对该特征点进行特征描述,用于后续的模板匹配。然而,对于一些模板图像只存在直线、圆弧特征的场景,基于特征点的模板匹配方法无法提取到特征点,从而无法进行后续的模板匹配操作。并且,需要计算模板图像和待匹配图像的特征点信息,建立模板图像与待匹配图像的透视变换关系,计算复杂度高;如需要满足实时匹配或快速匹配,则对电子设备的硬件性能有较高的要求。

在相关技术中,基于相关性的模板匹配方案对于相关性的计算量巨大,不能达到较高的匹配精度,也不能应用于局部光照变换的应用场景;因此,基于相关性的模板匹配方案不适用于对模板匹配性能要求高的场景。

在相关技术中,基于广义霍夫变换的方法实现边缘特征的匹配,进而进行模板匹配时,由于广义霍夫变换是基于候选目标累计的方式计算匹配信息,因此该方法依赖于搜索的角度步长,不能保证模板匹配的精度。

还有一些基于边缘特征进行模板匹配的方案,在计算边缘特征的相似度时,利用角度的余弦值计算边缘特征向量的夹角分数;计算角度的余弦值时,包括惩罚运算和除法运算,计算的复杂度高。

本申请实施例提供一种模板匹配方法,至少能够解决上述问题。

下面将结合本申请实施例提供的电子设备的示例性应用和实施,说明本申请实施例提供的模板匹配方法。

参见图3,图3是本申请实施例提供的模板匹配方法的一个可选流程示意图,将结合图3示出的步骤进行说明。

步骤s101,确定模板图像的边缘特征向量。

在一些实施例中,确定所述模板图像中各像素点的梯度信息,基于所述梯度信息确定所述确定模板图像的边缘特征向量。

在一些实施例中,图像的梯度表示的是图像变化的速度,反映了图像的边缘信息。因此,对于图像的边缘部分,灰度值变化较大,梯度值变化也较大;对于图像中较平滑的部分,灰度值变化较小,梯度值变化也较小。基于此,本申请实施例通过确定模板图像中每个像素点的梯度信息来检测模板图像的不连续性,进而确定模板图像的边缘特征向量。

在一些实施例中,可以将所述模板图像输入至预先训练好的梯度模型,根据所述梯度模型的输出确定所述模板图像中每个像素点的梯度信息;所述梯度信息包括梯度方向和梯度幅值;确定所述梯度幅值大于幅值阈值的像素点为边缘像素点;确定所述边缘像素点的特征向量为边缘特征向量。其中,所述梯度阈值可根据实际的应用场景灵活设置。像素点的梯度信息可以表示为(mx,my),还可以对梯度信息进行归一化处理,得到归一化后的梯度信息a=

以图4所示的模板图像为例,通过对图4所示的模板图像进行边缘检测,能够得到图5所示的边缘图像;在具体实施时,可基于已有的算法或技术对模板图像进行边缘检测,本申请实施例不做限定。模板图像的边缘特征向量为模板图像中的边缘图像对应的特征向量。

在一些实施例中,步骤s101中确定模板图像的边缘特征向量的过程,也可以称为模板训练。

步骤s102,将待匹配图像分解为金字塔图像序列。

在一些实施例中,通过梯次向下采样的方式对所述待匹配图像进行采样,得到所述待匹配图像对应的不同分辨率的至少两个金字塔图像;所述至少两个金字塔图像构成所述金字塔图像序列。作为示例,金字塔图像序列中的各个金字塔图像的分辨率均不相同。

在一些实施例中,金字塔图像序列的示意图,如图6a所示,金字塔图像序列的底层是待匹配图像的高分辨率表示,金字塔图像序列的顶层是待匹配图像的低分辨率表示。当向图像序列金字塔的上层移动时,图像的尺寸和分辨率就降低,其中,金字塔图像序列的上层图像的大小为前一层图像大小的1/4,金字塔图像序列包括的金字塔图像的数目可以是0,1,2……n,对应的金字塔的层数为0,1,2……n;图6a以金字塔的层数是4为例,将待匹配图像分解为待匹配图像1、待匹配图像2、待匹配图像3和待匹配图像4;其中,待匹配图像1的分辨率最低,待匹配图像4的分辨率最高。作为示例,图像的特征金字塔示意图,如图6b所示,特征金字塔的最底层所呈现的图像分辨率最高,特征金字塔的最顶层所呈现的图像分辨率最低。

步骤s103,按照由上至下的顺序在所述金字塔图像序列中的各金字塔图像上遍历搜索,基于所述边缘特征向量与各所述金字塔图像上的特征向量之差的投影长度,确定所述边缘特征向量与各所述金字塔图像上的特征向量的相似度。

在一些实施例中,按照由上至下的顺序在所述金字塔图像序列中的各金字塔图像上遍历搜索可以是:按照所述金字塔图像序列中最顶层金字塔图像至最底层金字塔图像的顺序,以像素点为滑动单位在各所述金字塔图像上滑动窗口。在所述金字塔图像序列的最底层金字塔图像上,可以匹配到模板图像对应的更精确的姿态。

以图6a所示的金字塔图像序列为例,首先以像素点为单位按顺序在待匹配图像1、待匹配图像2、待匹配图像3和待匹配图像4上滑动窗口,窗口的大小与模板图像的大小相同。滑动窗口的示意图,如图7所示,在待匹配图像上从起点位置开始滑动窗口,相邻两次窗口滑动的偏移量为1个像素点。通过滑动创,能够计算窗口对应的待匹配图像上的区域图像与模板图像的相似度。

在一些实施例中,针对每个金字塔图像,基于所述边缘特征向量与所述金字塔图像上的特征向量之差的投影长度,确定所述边缘特征向量与所述金字塔图像上的特征向量的相似度的一种可选处理流程,可以如图8所示,包括:

步骤s103a,获取所述金字塔图像中所述窗口对应的区域图像的特征向量。

在一些实施例中,所述窗口对应的区域图像的特征向量的数量与步骤s101中模板图像的边缘特征向量的数量可以相同。

步骤s103b,确定所述边缘特征向量与所述区域图像的特征向量的向量差。

在一些实施例中,可以先对边缘特征向量和区域图像的特征向量分别执行归一化处理,使得所述边缘特征向量和所述区域图像的特征向量均可表示在半径为1的圆周上。归一化后的边缘特征向量和所述区域图像的特征向量的示意图,如图9所示,归一化后的边缘特征向量用(x1,y1)表示,归一化后的区域图像的特征向量用(x2,y2)表示,则所述边缘特征向量与所述区域图像的特征向量的向量差可以表示为(x2-x1,y2-y1)。

步骤s103c,获取所述向量差在第一方向上的第一投影长度,以及所述向量差在与所述第一方向垂直的第二方向上的第二投影长度。

在一些实施例中,第一方向可以是坐标系中的x轴方向,第二方向可以是坐标系中的y轴方向。

在一些实施例中,若所述边缘特征向量与所述区域图像的特征向量的向量差表示为(x2-x1,y2-y1),则所述向量差在x轴方向上的第一投影长度为,所述向量差在y轴方向上的第二投影长度为

步骤s103d,确定所述第一投影长度与所述第二投影长度的和,并将所述第一投影长度与所述第二投影长度的和作为所述边缘特征向量与所述区域图像的特征向量的相似度。

在一些实施例中,若所述向量差在x轴方向上的第一投影长度为,所述向量差在y轴方向上的第二投影长度为,则所述边缘特征向量与所述区域图像的特征向量的相似度等于+

本申请实施例中,通过边缘特征向量与区域图像的特征向量之间的向量差在x轴和y轴的投影长度之和,表征边缘特征向量与区域图像的特征向量之间的相似度。在计算边缘特征向量与区域图像的特征向量之间的向量差在x轴和y轴的投影长度时,仅涉及加法运算和减法运算,计算量小,计算复杂度低。

步骤s104,基于所述边缘特征向量与各所述金字塔图像上的特征向量的相似度,确定所述待匹配图像上与所述模板图像匹配的目标图像。

在一些实施例中,针对每个金字塔图像分别执行以下操作:确定所述金字塔图像上,与所述边缘特征向量的相似度小于相似度阈值的区域图像的特征向量为目标特征向量;即计算得到的相似度值越小,表征两个特征向量的相似度越高。若所述区域图像中所述目标特征向量的数量大于数量阈值,则确定所述区域图像为与所述模板图像匹配的所述目标图像。

在具体实施时,每个金字塔图像上包括多个区域图像,计算模板图像的边缘特征向量与每个区域图像的特征向量的相似度;相似度大于预设的相似度阈值时,确定区域图像的特征向量为目标特征向量。其中,相似度阈值可根据实际的应用场景和应用需求灵活设置,作为示例,相似度阈值可以设置为0.8。若一个区域图像中目标特征向量的数量大于数量阈值,则确定所述区域图像为与所述模板图像匹配的所述目标图像。作为示例,若模板图像的边缘特征向量的数量为n,数量阈值可以设置为0.8n,若一个区域图像中目标特征向量的数量大于0.8n,则确定该区域图像为与所述模板图像匹配的目标图像。其中,数量阈值可以根据实际的应用场景和应用需求灵活设置。

在一些实施例中,步骤s102至步骤s104也可以成为模板匹配的过程。

本申请实施例提供的模板匹配方法,确定模板图像的边缘特征向量;将待匹配图像分解为金字塔图像序列;按照由上至下的顺序在所述金字塔图像序列中的各金字塔图像上遍历搜索,基于所述边缘特征向量与各所述金字塔图像上的特征向量之差的投影长度,确定所述边缘特征向量与各所述金字塔图像上的特征向量的相似度;基于所述边缘特征向量与各所述金字塔图像上的特征向量的相似度,确定所述待匹配图像上与所述模板图像匹配的目标图像。本申请实施例提供的模板匹配方法,采用基于形状或轮廓的模板匹配方案,使得模板匹配算法对于模板图像的旋转和尺度变化能够达到非常高的匹配精度,角度精度可以达到0.02度,像素精度可以达到1/40像素。通过所述边缘特征向量与各所述金字塔图像上的特征向量之差的投影长度,确定所述边缘特征向量与各所述金字塔图像上的特征向量的相似度,再基于所述相似度确定待匹配图像上与模板图像匹配的目标图像;利用投影长度确定相似度,使得相似度的表达形式更简单。在计算投影长度时,仅涉及加法运算和减法运算,使得模板匹配的计算量小,计算复杂度低;对用于实现模板匹配方法的电子设备的硬件要求低,能够适用于实时或快速进行模板匹配的场景。

相关技术中,相似度度量需要反映出两个特征向量在距离或者夹角上的变化,变化越小说明两个特征向量越接近,相似度越高(或相似度分数越高)。以角度为例说明,假设两个特征向量分别用(x1,y1)和(x2,y2)表示,两个特征向量间的夹角为,两个特征向量的相似度可用,其中,

模板图像与待匹配图像的相似度可以表示为:

similarity===

为0时,,表示模板图像当前的搜索参数(如位置、角度、尺度)与待匹配图像有很高的相似度。

其中,两个特征点之间的相似度可通过下述公式确定:

similarity=x1*x2+y1*y2。

相关技术中,以欧式距离计算相似度时,相似度可通过下述公式确定:

similarity=

相关技术中确定两个特征向量的相似度时,均涉及乘法运算,甚至还涉及根式运算;而本申请实施例中确定两个特征向量的相似度时,仅涉及加法运算和减法运算。乘法运算和根式运算的计算量要明显高于本申请实施例中加法运算和减法运算的计算量,相应的,乘法运算和根式运算的计算速度也要明显小于本申请实施例中加法运算和减法运算的计算速度,乘法运算和根式运算对电子设备的硬件性能要求也高于加法运算和减法运算对电子设备的硬件性能的要求。

为了验证本申请实施例提供的模板匹配方法的准确性,以特征向量(1,0)与(x2,y2)夹角的变化为例,基于相关技术中用表征两个特征向量的相似度的示意图,如图10所示,横坐标表示的角度,纵坐标表示相似度的值;可以看出,在为0度时,,表征两个特征向量的相似度最高。而本申请实施例中,用两个特征向量的向量差在坐标轴的投影长度表征两个特征向量的相似度的示意图,如图11所示,横坐标表示两个特征向量的角度,纵坐标表示相似度的值可以看出,在为0度时,两个特征向量的向量差+的值为0,表征两个特征向量的相似度最高。对于为90度和180度时的场景,本申请实施例通过两个特征向量的向量差在坐标轴的投影长度计算得到的两个特征向量的相似度,与相关技术中通过表征两个特征向量的相似度的结果一致;因此,本申请实施例提供的基于两个特征向量的向量差在x坐标轴和y坐标轴上的投影长度表征两个特征向量的相似度是准确的。

下面继续说明本申请实施例提供的模板匹配装置455实施为软件模块的示例性结构,在一些实施例中,如图2所示,存储在存储器450的模板匹配装置455中的软件模块可以包括:边缘特征向量确定模块4551,用于确定模板图像的边缘特征向量;分解模块4552,用于将待匹配图像分解为金字塔图像序列;相似度确定模块4553,用于按照由上至下的顺序在所述金字塔图像序列中的各金字塔图像上遍历搜索,基于所述边缘特征向量与各所述金字塔图像上的特征向量之差的投影长度,确定所述边缘特征向量与各所述金字塔图像上的特征向量的相似度;匹配模块4554,用于基于所述边缘特征向量与各所述金字塔图像上的特征向量的相似度,确定所述待匹配图像上与所述模板图像匹配的目标图像。

在一些实施例中,相似度确定模块4553,用于按照所述金字塔图像序列中最顶层金字塔图像至最底层金字塔图像的顺序,以像素点为滑动单位在各所述金字塔图像上滑动窗口。

在一些实施例中,相似度确定模块4553,用于针对各所述金字塔图像分别执行以下操作:

获取所述金字塔图像中所述窗口对应的区域图像的特征向量;

确定所述边缘特征向量与所述区域图像的特征向量的向量差;

获取所述向量差在第一方向上的第一投影长度,以及所述向量差在与所述第一方向垂直的第二方向上的第二投影长度;

确定所述第一投影长度与所述第二投影长度的和,并将所述第一投影长度与所述第二投影长度的和作为所述边缘特征向量与所述区域图像的特征向量的相似度。

在一些实施例中,相似度确定模块4553,用于针对各所述金字塔图像分别执行以下操作:

确定与所述边缘特征向量的相似度小于相似度阈值的特征向量为目标特征向量;

若所述区域图像中目标特征向量的数量大于数量阈值,则确定所述区域图像为与所述模板图像匹配的所述目标图像。

在一些实施例中,所述边缘特征向量确定模块4551,用于确定所述模板图像中各像素点的梯度信息,基于所述梯度信息确定所述确定模板图像的边缘特征向量。

在一些实施例中,所述边缘特征向量确定模块4551,用于将所述模板图像输入至梯度模型,根据所述梯度模型的输出确定所述模板图像中每个像素点的梯度信息;所述梯度信息包括梯度方向和梯度幅值;

确定所述梯度幅值大于幅值阈值的像素点为边缘像素点;

确定所述边缘像素点的特征向量为边缘特征向量。

在一些实施例中,所述分解模块4552,用于通过梯次向下采样的方式对所述待匹配图像进行采样,得到所述待匹配图像对应的不同分辨率的至少两个金字塔图像;所述至少两个金字塔图像构成所述金字塔图像序列。

在一些实施例中,所述相似度确定模块4553,还用于分别对所述边缘特征向量和各所述金字塔图像上的特征向量进行归一化处理,使得所述边缘特征向量和各所述金字塔图像上的特征向量均可表示在半径为1的圆周上。

本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例上述的模板匹配方法。

本申请实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的方法,例如,如图3至图9示出的模板匹配方法。

在一些实施例中,计算机可读存储介质可以是fram、rom、prom、eprom、eeprom、闪存、磁表面存储器、光盘、或cd-rom等存储器;也可以是包括上述存储器之一或任意组合的各种设备。

在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。

作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(html,hypertextmarkuplanguage)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。

作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。

以上,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。

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