具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
应理解,以下实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
为了说明本申请的技术方案,下面通过具体实施例来进行说明。
本申请实施例一提供的一种图像的模板匹配方法,可应用在如图1的应用环境中,其中,客户端与服务端进行通信,形成云边联合系统。其中,客户端包括但不限于掌上电脑、桌上型计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、服务端计算机设备、个人数字助理(personal digital assistant,PDA)等计算机设备,客户端还可以是心电仪、脑电仪等测量仪器的数据处理设备。服务端可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
参见图2,是本申请实施例二提供的一种图像的模板匹配方法的流程示意图,上述图像的模板匹配方法应用于图1中的服务端,服务端对应的计算机设备连接相应的数据库,以获取数据库中相应的目标图像和模板图像,当然,模板图像也可以直接存储在服务端中。上述计算机设备还可以连接相应的客户端,客户端为用户所操作,用户可以通过客户端采集相应地目标图像,并提供给向服务端。如图2所示,该图像的模板匹配方法可以包括以下步骤:
步骤S201,针对目标图像中任一待匹配区域,在模板图像中确定对应待匹配区域的配准区域,获取待匹配区域及其邻域的像素信息构成的第一目标信息,以及配准区域及其邻域的像素信息构成第二目标信息。
本申请中,目标图像可以为使用一定的图像采集设备采集得到的图像,在精密工业场景中,该目标图像可以为针对工件、零部件细节采集的图像,从而可以确定工件的特征等。
待匹配区域可以是指用户根据需求划定的区域,具体可以是采用预设大小的包围框从图像中划定一包围区域,即可将该包围的区域作为待匹配区域,一般情况下,可能需要对整个图像中所有的区域进行匹配,此时,可将整个图像划分为不同的小区域,待匹配区域即为整个图像中任一个小区域。
模板图像为预先设定的满足用户需求的图像,该模板图像可以为与目标图像的采集范围大小等属性相同的图像,也可以为采集范围小于目标图像采集范围的图像。如果模板图像与目标图像为属性相同的图像,则在模板图像中配准区域的位置与待匹配区域在目标图像中的位置为相同,当然,如果模板图像的采集范围小于目标图像采集范围,可以对目标图像和模板图像进行形状配准等操作,使得目标图像与模板图像配准后,根据待匹配区域在目标图像中的位置,在模板图像中确定配准区域。
待匹配区域的领域可以是指与待匹配区域相邻的区域,具体可以是4邻域或者8邻域等,邻域的大小与对应的包围区域的大小相同,配准区域的邻域的选取与待匹配区域的邻域选取方式相同,即待匹配区域及其邻域与配准区域及其邻域也为配准的。上述的目标信息可以是指像素值、亮度值、灰度值等图像的像素信息。
可选的是,在模板图像中确定对应待匹配区域的配准区域包括:
使用奇异值分解和主成分提取对模板图像与目标图像进行形状配准,从配准后的模板图像中确定对应待匹配区域的配准区域。
其中,配准采用的公式如下:
其中,上述公式为奇异值分解的过程,将图像的矩阵A分解为U、E、V三个矩阵表示,m、n分别表示图像的行数和列数,U的列组成一套对A的正交输入的基向量,即是AA
T的特征向量,V的列组成一套对A的正交输出的基向量,即是A
TA的特征向量,E对角线上的元素是奇异值,可视为是在输入与输出间进行的标量的膨胀控制,即是AA
T及A
TA的奇异值,并与U和V的列向量相对应,k为预设的近似值,采用近似的方式认为
,对E保留前90%的特征信息,该百分比是可以根据使用场景进行变化。将使用U与V进行降采样,只保留主成分信息,采样标准为最大采样,即只保留采样区间的最大值。
使用奇异值分解与主成分提取对目标图像与模板图像进行形状配准,并在使用分解矩阵进行特征图重建时,按照固定尺寸进行恢复,这个固定的尺寸是会比模板图和目标图都小的一个尺寸,例如,在应用于晶圆检测场景中,可以采用64*32的尺寸。
步骤S202,根据第一目标信息,确定待匹配区域及其邻域上的第一灰度特征信息和第一结构特征信息,根据第二目标信息,确定配准区域及其邻域上的第二灰度特征信息和第二结构特征信息。
本申请中,灰度特征信息可以是指表征灰度、对比度等分布的图像灰度数据值,例如,灰度值、灰度方差、灰度均值、亮度对比度值等。结构特征信息可以是指表征图像中纹理等形态分布的数据值,例如,局部二值模式(Local Binary Patterns,LBP)编码值,用于描述图像的纹理。
可选的是,根据第一目标信息,确定待匹配区域及其邻域上的第一灰度特征信息和第一结构特征信息包括:
对第一目标信息进行均值计算、方差计算、LBP值计算和LBP编码计算,确定待匹配区域及其邻域的第一均值、第一方差、第一LBP值和第一LBP编码值;
将第一均值、第一方差和第一LBP值作为第一灰度特征信息;
根据第一目标信息,确定待匹配区域与其邻域的像素差值,对所有像素差值进行归一化,得到每个邻域对应的归一化值;
将每个邻域的归一化值与对应邻域的第一LBP编码值相乘,得到表征对应邻域的第一特征向量;
对所有邻域的第一特征向量进行相加,得到第一相加结果,计算所有第一特征向量与第一相加结果的第一夹角,将每个邻域的第一夹角的计算结果作为第一结构特征信息。
其中,均值计算、方差计算、LBP值计算和LPP值编码计算均可以基于图像的像素值来计算,当然,也可以基于灰度值计算。
以像素值为例,待匹配区域的均值、方差为根据待匹配区域内所有像素点的像素值计算得到,邻域的均值、方差为根据对应邻域内的所有像素点的像素值计算得到。
待匹配区域的LBP值可以是指待匹配区域内每个像素点的LBP值,再进行求均值,该均值即为待匹配区域的LBP值,邻域的LBP值可以是指对应邻域内每个像素点的LBP值,再进行求均值,该均值即为邻域的LBP值,一个像素点的LBP值为基于其周围像素点的像素值进行LBP计算得到。其中,如果待匹配区域仅为一个像素点,对应的邻域也为一个像素点,邻域的LBP值需要通过对应邻域的邻域来计算。
待匹配区域及其邻域的第一均值、第一方差、第一LBP值形成均值分布、方差分布、LBP分布,上述的分布即为表征灰度特征的第一灰度特征信息。
如果待匹配区域包括至少两个像素点,则邻域也包括至少两个像素点,在计算像素差值时可以采用所有像素点的均值,LBP编码值计算时也是根据所有像素点的均值进行LBP编码,如果待匹配区域包括一个像素点,则邻域包括一个像素点,直接使用对应像素点的像素值进行像素差值计算和LBP编码即可。
由于LBP编码值为0或1,归一化的目的是将表征结构特征的信息归一化,用于后续的与灰度特征进行加权求和。
上述第一特征向量为表征对应邻域的向量,向量的大小由相乘的乘积表达,向量方向即为从待匹配区域的中心指向对应邻域的中心,上述第一相加结果为表征待匹配区域的领域的结构变化趋势的主向量,即通过将第一特征向量进行矢量相加得到。
计算所有第一特征向量与第一相加结果的第一夹角即是计算两个向量之间的夹角,使得每个邻域均对应的一个夹角值,即可表征每个邻域与结构变化趋势的差异。
可选的是,根据第二目标信息,确定配准区域及其邻域上的第二灰度特征信息和第二结构特征信息包括:
对第二目标信息进行均值计算、方差计算、LBP值计算和LBP编码计算,确定配准区域及其邻域的第二均值、第二方差、第二LBP值和第二LBP编码值;
将第二均值、第二方差和第二LBP值作为第二灰度特征信息;
根据第二目标信息,确定配准区域与其邻域的像素差值,对所有像素差值进行归一化,得到每个邻域对应的归一化值;
将每个邻域的归一化值与对应邻域的第二LBP编码值相乘,得到表征对应邻域的第二特征向量;
对所有邻域的第二特征向量进行相加,得到第二相加结果,计算所有第二特征向量与第二相加结果的第二夹角,将每个邻域的第二夹角的计算结果作为第二结构特征信息。
其中,针对模板图像的处理过程与目标图像的处理过程相同,在一实施方式中,在对模板图像的灰度特征信息和结构特征信息进行求取之后,后续在使用该模板图像时可以直接使用上述计算得到的灰度特征信息和结构特征信息。
步骤S203,比对第一灰度特征信息和第二灰度特征信息,得到灰度差异信息,比对第一结构特征信息和第二结构特征信息,得到结构差异信息。
本申请中,将目标图像和模板图像的灰度特征信息和结构特征信息进行比对得到差异,用于后续匹配度或者相似度的计算。
可选的是,比对第一灰度特征信息和第二灰度特征信息,得到灰度差异信息包括:
根据第一均值和第二均值,计算待匹配区域与配准区域的第一KL散度;
根据第一方差和第二方差,计算待匹配区域与配准区域的第二KL散度;
根据第一LBP值和第二LBP值,计算待匹配区域与配准区域的第三KL散度,确定第一KL散度、第二KL散度和第三KL散度为灰度差异信息。
其中,以均值维度、方差维度、LBP值维度分别计算目标图像与模板图像的KL散度,使用KL散度来表征灰度差异。KL散度的取值区间均为 [0, 1],对应的值越大表示越匹配。
可选的是,比对第一结构特征信息和第二结构特征信息,得到结构差异信息包括:
将第一结构特征信息中每个邻域的第一夹角的计算结果与第二结构特征信息中对应邻域的第二夹角进行比对,确定每个邻域的夹角差值;
根据每个邻域的夹角差值,计算对应的差值均值与差值方差,对差值均值与差值方差构成的正态分布的半高宽进行归一化,确定半高宽的归一化值为结构差异信息。
其中,将待匹配区域的邻域的第一夹角与配准区域对应的邻域的第二夹角进行差值计算,得到每个邻域的夹角差值,计算所有夹角差值的均值和方差。以该均值和方差形成正态分布,得到该正态分布的半高宽,由于角度为0°至180°,因此,将半高宽除以180即可归一化。
步骤S204,对灰度差异信息和结构差异信息进行加权求和,得到加权求和结果,在加权求和结果满足预设条件时,确定目标图像在待匹配区域与模板图像匹配。
本申请中,加权求和中两个信息的权值可以根据需求或者试验结果进行设定。预设条件可以是指设定一阈值或者阈值范围,当加权求和结果大于阈值,或者属于阈值范围时,确定目标图像与模板图像为匹配,否则为不匹配。
可选的是,对灰度差异信息和结构差异信息进行加权求和,得到加权求和结果包括:
对第一KL散度、第二KL散度和第三KL散度求平均,得到散度均值;
将散度均值与半高宽的归一化值进行加权求和,得到加权求和结果。
其中,将三个KL散度的平均值与半高宽的归一化值进行加权求和,使得加权求和结果控制在[0,1]之间,加权求和结果的值越大,匹配度越高。两者的权值均为0.5。
在一实施方式中,在降低精度要求时,还可以只使用三个KL散度中的一个与半高宽的归一化值进行加权求和。
本申请实施例针对目标图像中任一待匹配区域,在模板图像中确定对应待匹配区域的配准区域,获取待匹配区域及其邻域的像素信息构成的第一目标信息,以及配准区域及其邻域的像素信息构成第二目标信息,根据第一目标信息,确定待匹配区域及其邻域上的第一灰度特征信息和第一结构特征信息,根据第二目标信息,确定配准区域及其邻域上的第二灰度特征信息和第二结构特征信息,比对第一灰度特征信息和第二灰度特征信息,得到灰度差异信息,比对第一结构特征信息和第二结构特征信息,得到结构差异信息,对灰度差异信息和结构差异信息进行加权求和,得到加权求和结果,在加权求和结果满足预设条件时,确定目标图像在待匹配区域与模板图像匹配,实现目标图像与模板图像的匹配运算,结合了灰度特征和结构特征可以较好地修正形态相似对模板匹配的影响,从而提高了模板匹配的准确率。
对应于上文实施例的图像的模板匹配方法,图3示出了本申请实施例三提供的图像的模板匹配装置的结构框图,上述模板匹配装置应用于图1中的服务端,服务端对应的计算机设备连接相应的数据库,以获取数据库中相应的目标图像和模板图像,当然,模板图像也可以直接存储在服务端中。上述计算机设备还可以连接相应的客户端,客户端为用户所操作,用户可以通过客户端采集相应地目标图像,并提供给向服务端。为了便于说明,仅示出了与本申请实施例相关的部分。
参见图3,该模板匹配装置包括:
信息获取模块31,用于针对目标图像中任一待匹配区域,在模板图像中确定对应待匹配区域的配准区域,获取待匹配区域及其邻域的像素信息构成的第一目标信息,以及配准区域及其邻域的像素信息构成第二目标信息;
特征确定模块32,用于根据第一目标信息,确定待匹配区域及其邻域上的第一灰度特征信息和第一结构特征信息,根据第二目标信息,确定配准区域及其邻域上的第二灰度特征信息和第二结构特征信息;
差异比对模块33,用于比对第一灰度特征信息和第二灰度特征信息,得到灰度差异信息,比对第一结构特征信息和第二结构特征信息,得到结构差异信息;
匹配结果确定模块34,用于对灰度差异信息和结构差异信息进行加权求和,得到加权求和结果,在加权求和结果满足预设条件时,确定目标图像在待匹配区域与模板图像匹配。
可选的是,上述特征确定模块32包括:
第一计算单元,用于对第一目标信息进行均值计算、方差计算、LBP值计算和LBP编码计算,确定待匹配区域及其邻域的第一均值、第一方差、第一LBP值和第一LBP编码值;
第一灰度特征确定单元,用于将第一均值、第一方差和第一LBP值作为第一灰度特征信息;
第一差值归一化单元,用于根据第一目标信息,确定待匹配区域与其邻域的像素差值,对所有像素差值进行归一化,得到每个邻域对应的归一化值;
第一特征向量确定单元,用于将每个邻域的归一化值与对应邻域的第一LBP编码值相乘,得到表征对应邻域的第一特征向量;
第一结构特征确定单元,用于对所有邻域的第一特征向量进行相加,得到第一相加结果,计算所有第一特征向量与第一相加结果的第一夹角,将每个邻域的第一夹角的计算结果作为第一结构特征信息。
可选的是,上述特征确定模块32包括:
第二计算单元,用于对第二目标信息进行均值计算、方差计算、LBP值计算和LBP编码计算,确定配准区域及其邻域的第二均值、第二方差、第二LBP值和第二LBP编码值;
第二灰度特征确定单元,用于将第二均值、第二方差和第二LBP值作为第二灰度特征信息;
第二差值归一化单元,用于根据第二目标信息,确定配准区域与其邻域的像素差值,对所有像素差值进行归一化,得到每个邻域对应的归一化值;
第二特征向量确定单元,用于将每个邻域的归一化值与对应邻域的第二LBP编码值相乘,得到表征对应邻域的第二特征向量;
第二结构特征确定单元,用于对所有邻域的第二特征向量进行相加,得到第二相加结果,计算所有第二特征向量与第二相加结果的第二夹角,将每个邻域的第二夹角的计算结果作为第二结构特征信息。
可选的是,上述差异比对模块33包括:
第一散度计算单元,用于根据第一均值和第二均值,计算待匹配区域与配准区域的第一KL散度;
第二散度计算单元,用于根据第一方差和第二方差,计算待匹配区域与配准区域的第二KL散度;
第三散度计算单元,用于根据第一LBP值和第二LBP值,计算待匹配区域与配准区域的第三KL散度,确定第一KL散度、第二KL散度和第三KL散度为灰度差异信息。
可选的是,上述差异比对模块33包括:
夹角差值确定单元,用于将第一结构特征信息中每个邻域的第一夹角的计算结果与第二结构特征信息中对应邻域的第二夹角进行比对,确定每个邻域的夹角差值;
结构差异确定单元,用于根据每个邻域的夹角差值,计算对应的差值均值与差值方差,对差值均值与差值方差构成的正态分布的半高宽进行归一化,确定半高宽的归一化值为结构差异信息。
可选的是,上述匹配结果确定模块34包括:
散度均值计算单元,用于对第一KL散度、第二KL散度和第三KL散度求平均,得到散度均值;
匹配值计算单元,用于将散度均值与半高宽的归一化值进行加权求和,得到加权求和结果。
可选的是,上述信息获取模块31包括:
区域配准单元,用于使用奇异值分解和主成分提取对模板图像与目标图像进行形状配准,从配准后的模板图像中确定对应待匹配区域的配准区域。
需要说明的是,上述模块之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
图4为本申请实施例四提供的一种计算机设备的结构示意图。如图4所示,该实施例的计算机设备包括:至少一个处理器(图4中仅示出一个)、存储器以及存储在存储器中并可在至少一个处理器上运行的计算机程序,处理器执行计算机程序时实现上述任意各个图像的模板匹配方法实施例中的步骤。
该计算机设备可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,图4仅仅是计算机设备的举例,并不构成对计算机设备的限定,计算机设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括网络接口、显示屏和输入装置等。
所称处理器可以是CPU,该处理器还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific IntegratedCircuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器包括可读存储介质、内存储器等,其中,内存储器可以是计算机设备的内存,内存储器为可读存储介质中的操作系统和计算机可读指令的运行提供环境。可读存储介质可以是计算机设备的硬盘,在另一些实施例中也可以是计算机设备的外部存储设备,例如,计算机设备上配备的插接式硬盘、智能存储卡(Smart Media Card,SMC)、安全数字(Secure Digital,SD)卡、闪存卡(Flash Card)等。进一步地,存储器还可以既包括计算机设备的内部存储单元也包括外部存储设备。存储器用于存储操作系统、应用程序、引导装载程序(BootLoader)、数据以及其他程序等,该其他程序如计算机程序的程序代码等。存储器还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述装置中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述方法实施例的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质至少可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、计算机存储器、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
本申请实现上述实施例方法中的全部或部分流程,也可以通过一种计算机程序产品来完成,当计算机程序产品在计算机设备上运行时,使得计算机设备执行时实现可实现上述方法实施例中的步骤。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/计算机设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/计算机设备实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。