一种图像的模板匹配方法、装置、电子设备及存储介质与流程

文档序号:31198538发布日期:2022-08-20 01:09阅读:66来源:国知局
一种图像的模板匹配方法、装置、电子设备及存储介质与流程

1.本发明涉及图像处理技术领域,特别是涉及一种图像的模板匹配方法、装置、电子设备及存储介质。


背景技术:

2.图像的模板匹配是指遍历待匹配图像,从待匹配图像中找出与预先生成的模板图像相似度较高的图像区域的过程。图像的模板匹配技术在生产生活中应用十分广泛,例如,图像的模板匹配技术可以用于车牌识别、条码识别和字符识别等。
3.传统的模板匹配方式包括:提取模板图像的模板特征信息,遍历待匹配图像的不同图像区域,逐一确定每个图像区域的图像信息与模板特征信息之间的相似度,然后将待匹配图像中相似度较高的图像区域作为匹配上的目标区域。
4.然而,模板特征信息在模板图像上的分布位置是离散且无序的,假设模板大小为7x7,模板特征点为模板图像中离散的21个点,而模板特征点的信息即为模板特征信息,因此,模板特征信息在模板图像上的分布位置是离散且无序的。
5.在逐一确定待匹配图像的每个图像区域的图像信息与模板特征信息之间的相似度的过程中,由于模板特征信息在模板图像上的分布位置是离散且无序的,因此,每次对待匹配图像的图像区域和模板图像进行匹配的过程中,只能从内存中逐一获取待匹配图像当前的图像区域中与模板特征点对应的图像点的信息,并与模板特征点进行匹配,直至所有模板特征点的模板特征信息均与该图像区域中对应的图像点的信息匹配完毕,然后再次从内存中逐一获取待匹配图像的下一图像区域中与模板特征点对应的图像点的信息进行匹配,直至模板特征信息与待匹配图像的每个图像区域中的图像信息均匹配完毕。然而,这种逐一获取每个待匹配图像的图像区域中与模板特征点对应的图像点的信息进行匹配的方式,当模板图像与待匹配图像的每个图像区域进行匹配时,都需要逐一从内存中获取每个模板特征点所对应的待匹配图像区域的图像点信息,这导致模板匹配速度较慢。


技术实现要素:

6.本发明实施例的目的在于提供一种图像的模板匹配方法、装置、电子设备及存储介质,以提升模板匹配速度。
7.第一方面,本发明实施例提供了一种图像的模板匹配方法,包括:
8.获取模板图像和待匹配图像;
9.获取所述模板图像的目标模板特征点的特征信息,所述目标模板特征点为按照预设规则获取的模板图像的模板特征点;
10.根据所述特征信息,并行计算所述目标模板特征点在所述待匹配图像中对应的多个目标图像点与所述目标模板特征点之间的相似度,其中,所述多个目标图像点为所述待匹配图像中同一行或列的图像点,且相邻的两个目标图像点之间相隔预设列数或行数;
11.将每个目标图像点与所述目标模板特征点之间的相似度累加至该目标图像点所
在的待匹配区域对应的综合相似度,其中,每个目标图像点所在的待匹配区域为:该目标图像点与所述目标模板特征点重合时,所述待匹配图像中与所述模板图像对应的区域;
12.根据每个待匹配区域对应的综合相似度,从各个待匹配区域中确定出目标匹配区域。
13.可选的,在所述根据每个待匹配区域对应的综合相似度,从各个待匹配区域中确定出目标匹配区域之前,所述方法还包括:
14.按照所述预设规则获取所述模板图像的下一个目标模板特征点,并返回所述获取所述模板图像的目标模板特征点的特征信息的步骤,直至所述模板图像的模板特征点均被获取完成。
15.可选的,在所述模板图像的模板特征点均被获取完成之后,所述方法还包括:
16.将所述模板图像按照第一移动方向移动预设行数或按照第二移动方向移动预设列数,返回所述根据所述特征信息,并行计算所述目标模板特征点在所述待匹配图像中对应的多个目标图像点与所述目标模板特征点之间的相似度的步骤,直至所述模板图像移动至与所述待匹配图像的第一边界或第二边界重合;
17.其中,所述第一边界为所述待匹配图像的边界中与所述第一移动方向相对应的边界,所述第二边界为所述待匹配图像的边界中与所述第二移动方向相对应的边界。
18.可选的,在所述根据所述特征信息,并行计算所述目标模板特征点在所述待匹配图像中对应的多个目标图像点与所述目标模板特征点之间的相似度之前,还包括:
19.基于单指令流多数据流simd,从高速缓存器中加载所述目标模板特征点在所述待匹配图像中对应的多个目标图像点的图像信息;
20.所述根据所述特征信息,并行计算所述目标模板特征点在所述待匹配图像中对应的多个目标图像点与所述目标模板特征点之间的相似度,包括:
21.基于所述图像信息和所述特征信息,并行计算每个目标图像点与所述目标模板特征点之间的相似度。
22.可选的,所述模板图像中的各个模板特征点的特征信息在内存中的存储顺序,与每个模板特征点在所述模板图像中所在行和所在列的分布顺序一致;
23.所述获取所述模板图像的目标模板特征点的特征信息,包括:
24.按照所述模板图像的各个模板特征点的特征信息在内存中的存储顺序,获取目标模板特征点的特征信息。
25.可选的,每个模板特征点的特征信息包括该模板特征点的模板偏移值和图像特征信息;
26.所述根据所述特征信息,并行计算所述目标模板特征点在所述待匹配图像中对应的多个目标图像点与所述目标模板特征点之间的相似度,包括:
27.根据目标模板特征点的模板偏移值、所述模板图像的参考点在所述待匹配图像中对应的图像点的位置信息、所述待匹配图像的列宽和所述预设列数或行数,确定所述目标模板特征点在所述待匹配图像中对应的多个目标图像点;
28.根据所述目标模板特征点的图像特征信息和所述多个目标图像点的图像信息,并行计算每个目标图像点与所述目标模板特征点之间的相似度。
29.可选的,所述根据目标模板特征点的模板偏移值、所述模板图像的参考点在所述
待匹配图像中对应的图像点的位置信息、所述待匹配图像的列宽和所述预设列数或行数,确定所述目标模板特征点在所述待匹配图像中对应的多个目标图像点,包括:
30.根据目标模板特征点的模板偏移值、所述模板图像的参考点在所述待匹配图像中对应的图像点的位置信息和所述待匹配图像的列宽或行宽,采用如下公式确定所述目标模板特征点在所述待匹配图像中当前对应的目标图像点:
31.p=i*w+j+offset
32.其中,p为目标模板特征点在所述待匹配图像中当前对应的目标图像点,i为所述模板图像的参考点在所述待匹配图像中对应的图像点所在行的序数,w为所述待匹配图像的列宽或行宽,j为所述模板图像的参考点在所述待匹配图像中对应的图像点所在列的序数,offset为目标模板特征点的模板偏移值;
33.将所述模板图像按照第三移动方向移动预设列数或按照第四移动方向移动预设行数,并返回所述根据目标模板特征点的模板偏移值、所述模板图像的参考点在所述待匹配图像中对应的图像点的位置信息和所述待匹配图像的列宽或行宽,采用如下公式确定所述目标模板特征点在所述待匹配图像中当前对应的目标图像点的步骤,直到所述模板图像移动至与所述待匹配图像的第三边界或第四边界重合,其中,所述第三边界为所述待匹配图像的边界中与所述第二移动方向相对应的边界,所述第四边界为所述待匹配图像的边界中与所述第四移动方向相对应的边界。
34.第二方面,本发明实施例提供了一种图像的模板匹配装置,包括:
35.图像获取模块,用于获取模板图像和待匹配图像;
36.特征信息获取模块,用于获取所述模板图像的目标模板特征点的特征信息;
37.相似度计算模块,用于根据所述特征信息,并行计算所述目标模板特征点在所述待匹配图像中对应的多个目标图像点与所述目标模板特征点之间的相似度,其中,所述多个目标图像点为所述待匹配图像中同一行或列的图像点,且相邻的两个目标图像点之间相隔预设列数或行数;
38.相似度累加模块,用于将每个目标图像点与所述目标模板特征点之间的相似度累加至该目标图像点所在的待匹配区域对应的综合相似度,其中,每个目标图像点所在的待匹配区域为:该目标图像点与所述目标模板特征点重合时,所述待匹配图像中与所述模板图像对应的区域;
39.目标区域确定模块,用于根据每个待匹配区域对应的综合相似度,从各个待匹配区域中确定出目标匹配区域。
40.可选的,所述装置,还包括:
41.特征点获取模块,用于在所述根据每个待匹配区域对应的综合相似度,从各个待匹配区域中确定出目标匹配区域之前,按照所述预设规则获取所述模板图像的下一个目标模板特征点,并返回所述获取所述模板图像的目标模板特征点的特征信息的步骤,直至所述模板图像的模板特征点均被获取完成。
42.可选的,所述装置,还包括:
43.移动模块,用于在所述模板图像的模板特征点均被获取完成之后,将所述模板图像按照第一移动方向移动预设行数或按照第二移动方向移动预设列数,返回所述根据所述特征信息,并行计算所述目标模板特征点在所述待匹配图像中对应的多个目标图像点与所
述目标模板特征点之间的相似度的步骤,直至所述模板图像移动至与所述待匹配图像的第一边界或第二边界重合;其中,所述第一边界为所述待匹配图像的边界中与所述第一移动方向相对应的边界,所述第二边界为所述待匹配图像的边界中与所述第二移动方向相对应的边界。
44.可选的,所述装置,还包括:
45.信息加载模块,用于基于单指令流多数据流simd,从高速缓存器中加载所述目标模板特征点在所述待匹配图像中对应的多个目标图像点的图像信息;
46.所述相似度计算模块,具体用于基于所述图像信息和所述特征信息,并行计算每个目标图像点与所述目标模板特征点之间的相似度。
47.可选的,所述模板图像中的各个模板特征点的特征信息在内存中的存储顺序,与每个模板特征点在所述模板图像中所在行和所在列的分布顺序一致;
48.所述特征信息获取模块,具体用于按照所述模板图像的各个模板特征点的特征信息在内存中的存储顺序,获取目标模板特征点的特征信息。
49.可选的,每个模板特征点的特征信息包括该模板特征点的模板偏移值和图像特征信息;
50.所述相似度计算模块,具体用于根据目标模板特征点的模板偏移值、所述模板图像的参考点在所述待匹配图像中对应的图像点的位置信息、所述待匹配图像的列宽和所述预设列数或行数,确定所述目标模板特征点在所述待匹配图像中对应的多个目标图像点;根据所述目标模板特征点的图像特征信息和所述多个目标图像点的图像信息,并行计算每个目标图像点与所述目标模板特征点之间的相似度。
51.可选的,所述相似度计算模块,包括:
52.相似度计算子模块,用于根据目标模板特征点的模板偏移值、所述模板图像的参考点在所述待匹配图像中对应的图像点的位置信息和所述待匹配图像的列宽或行宽,采用如下公式确定所述目标模板特征点在所述待匹配图像中当前对应的目标图像点:
53.p=i*w+j+offset
54.其中,p为目标模板特征点在所述待匹配图像中当前对应的目标图像点,i为所述模板图像的参考点在所述待匹配图像中对应的图像点所在行的序数,w为所述待匹配图像的列宽或行宽,j为所述模板图像的参考点在所述待匹配图像中对应的图像点所在列的序数,offset为目标模板特征点的模板偏移值;
55.移动子模块,用于将所述模板图像按照第三移动方向移动预设列数或按照第四移动方向移动预设行数,并返回所述根据目标模板特征点的模板偏移值、所述模板图像的参考点在所述待匹配图像中对应的图像点的位置信息和所述待匹配图像的列宽或行宽,采用如下公式确定所述目标模板特征点在所述待匹配图像中当前对应的目标图像点的步骤,直到所述模板图像移动至与所述待匹配图像的第三边界或第四边界重合,其中,所述第三边界为所述待匹配图像的边界中与所述第二移动方向相对应的边界,所述第四边界为所述待匹配图像的边界中与所述第四移动方向相对应的边界。
56.第三方面,本发明实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
57.存储器,用于存放计算机程序;
58.处理器,用于执行存储器上所存放的程序时,实现上述第一方面任一所述的方法步骤。
59.第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面任一所述的方法步骤。
60.本发明实施例有益效果:
61.采用本发明实施例提供的方法,每次获取模板图像的目标模板特征点的特征信息后,可以根据所述特征信息,并行计算目标模板特征点在待匹配图像中对应的多个目标图像点与目标模板特征点之间的相似度,即获取的一个模板特征点的特征信息可以同时和待匹配图像多个不同图像区域中该模板特征点所对应的目标图像点的信息之间计算相似度。因此,可以根据预设列数或行数从内存同时将待匹配图像同一行或同一列中的各个图像点的数据从内存加载出来,然后在计算目标模板特征点与在待匹配图像中对应的多个目标图像点之间的相似度时,不仅不再需要逐一获取模板特征信息,而且还可以同时并行计算所加载的每隔预设列数或行数的多个目标图像点与目标模板特征点之间的相似度,即可以实现并行计算目标模板特征点与在待匹配图像中多个不同区域所对应的目标图像点之间的相似度,有效提升了模板匹配速度。
62.当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
63.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的实施例。
64.图1为本发明实施例提供的模板特征信息在模板图像上的一种分布示意图;
65.图2为模板特征信息与待匹配图像进行匹配的一种示意图;
66.图3为本发明实施例提供的图像的模板匹配方法的一种流程图;
67.图4为本发明实施例提供的图像的模板匹配方法的另一种流程图;
68.图5为本发明实施例提供的模板图像与待匹配图像进行匹配的一种示意图;
69.图6为本发明实施例提供的一种利用并行数据处理方式进行模板匹配的示意图;
70.图7为本发明实施例提供的模板特征信息在内存存放的一种示意图;
71.图8为本发明实施例提供的图像的模板皮匹配装置的一种结构示意图;
72.图9为本发明实施例提供的电子设备的结构示意图。
具体实施方式
73.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员基于本技术所获得的所有其他实施例,都属于本发明保护的范围。
74.图1为本发明实施例提供的模板特征信息在模板图像上的一种分布示意图,如图1所示,模板图像101大小为7x7,模板图像的模板特征点为0-21,模板特征点0-21对应的信息即为模板特征信息,由图1可知,模板特征信息在模板图像101上的分布位置是离散且无序的。图2为模板特征信息与待匹配图像进行匹配的一种示意图,如图2所示,主要对模板图像101与待匹配图像201进行匹配,找出与待匹配图像201中是否有与模板图像101相匹配的区域。由于模板特征信息在模板图像上的分布位置是离散且无序的,传统的模板匹配方式只能从内存中逐一获取待匹配图像当前的图像区域中与模板特征点对应的图像点的信息,并与模板特征点信息进行匹配,直至所有模板特征点的模板特征信息均与该图像区域中对应的图像点的信息匹配完毕,然后再次从内存中逐一获取待匹配图像下一个图像区域中与模板特征点对应的图像点的信息,并与模板特征点信息进行匹配,直至待匹配图像的每个图像区域中的图像信息与模板特征信息均匹配完毕。例如,图2所示的模板图像101与所覆盖的待匹配图像的图像区域202进行匹配时,先获取模板特征点0的特征信息,计算模板特征点0的特征信息与图像区域202中特征点0所对应的图像点的图像信息之间的相似度,然后再获取特征点1的特征信息,计算特征点1的特征信息与图像区域202中特征点1所对应的图像点的图像信息之间的相似度,这样逐一获取每个模板特征信息与图像区域202中的图像信息进行匹配,直至模板特征信息与图像区域202中的图像信息均匹配完毕;然后,再将模板图像水平(或者竖直)移动1行(列)或多行(列)后,得到模板图像101所覆盖的待匹配图像201的下一个图像区域,再按照同样的方式,逐一获取每个模板特征信息与该图像区域中的图像信息进行匹配,直至模板特征信息与该图像区域中的图像信息均匹配完毕。按照这种方式,直至模板图像101的模板特征信息与待匹配图像201的每个图像区域中的图像信息均匹配完毕,得到待匹配图像201的每个图像区域与模板图像101的匹配程度。
75.然而,而且模板图像与待匹配图像的每个图像区域进行匹配时都需要逐一加载模板特征信息,导致模板匹配速度较慢。这种逐一获取与每个模板特征点对应的待匹配图像的图像区域中的图像点信息并与模板特征信息进行匹配的方式,需要待匹配图像的每个图像区域依次与模板图像进行匹配,模板图像与待匹配图像的每个图像区域进行匹配时都需要逐一加载模板特征信息,导致模板匹配速度较慢。并且,在从内存中获取待匹配图像每个图像区域的图像点的图像信息的过程中,由于内存和cache缓存的映射关系,获取相邻的待匹配图像区域的图像点信息存在大量的cache miss发生,因此需要重复多次从内存加载待匹配图像区域的图像点信息到cache缓存中,从而进一步导致模板匹配速度变慢。其中,cache缓存为cpu与外部内存之间的临时存储器,位于cpu处理器内部,cache缓存的容量比内存小但是交换速度比内存快。cache miss指cpu在cache缓存中找不到所需的数据,因此需要重复加载图像点的图像信息的现象。
76.为了提升模板匹配速度,本发明实施例提供了一种图像的模板匹配方法、装置、电子设备、计算机可读存储介质以及计算机程序产品。
77.下面首先对本发明实施例所提供的图像的模板匹配方法进行介绍。本发明实施例所提供的图像的模板匹配方法可以应用于具有图像处理功能的任何电子设备,在此不做具体限定。
78.图3为本发明实施例提供的图像的模板匹配方法的一种流程图,如图3所示,所述方法包括:
79.s301,获取模板图像和待匹配图像。
80.本发明实施例中,模板图像为针对具体的应用场景预先生成的目标图像。举例说明,在车牌匹配场景中,模板图像为目标车牌图像,在人脸匹配场景中,模板图像为人脸特征图像,如包括人脸轮廓和/或人的五官的人脸图像等。模板图像中包括多个模板特征点,如图1所示,模板图像101中包括模板特征点0-21。
81.待匹配图像为需要与模板图像进行匹配的图像。
82.s302,获取所述模板图像的目标模板特征点的特征信息。
83.其中,所述目标模板特征点为按照预设规则获取的模板图像的模板特征点。
84.例如,可以按照模板图像的模板特征点的行——列分布顺序,以模板图像中的第一个模板特征点为起点,将该第一个模板特征点作为目标模板特征点,并获取该目标模板特征点的特征信息,或者,还可以以模板图像中的最后一个模板特征点为起点,将该最后一个模板特征点作为目标模板特征点,并获取该目标模板特征点的特征信息。
85.s303,根据所述特征信息,并行计算所述目标模板特征点在所述待匹配图像中对应的多个目标图像点与所述目标模板特征点之间的相似度。
86.其中,所述多个目标图像点为所述待匹配图像中同一行或列的图像点,且相邻的两个目标图像点之间相隔预设列数或行数。并且,当所述多个目标图像点为所述待匹配图像中同一行的图像点时,相邻的两个目标图像点之间相隔预设列数,当所述多个目标图像点为所述待匹配图像中同一列的图像点时,相邻的两个目标图像点之间相隔预设行数。
87.预设列数和预设行数均可以根据实际应用场景具体设定,例如,预设列数可以设置为2列或3列等,预设行数可以设置为3行或4行等。
88.s304,将每个目标图像点与所述目标模板特征点之间的相似度累加至该目标图像点所在的待匹配区域对应的综合相似度。
89.其中,每个目标图像点所在的待匹配区域为:该目标图像点与所述目标模板特征点重合时,所述待匹配图像中与所述模板图像对应的区域。
90.s305,根据每个待匹配区域对应的综合相似度,从各个待匹配区域中确定出目标匹配区域。
91.具体的,可以选取对应的综合相似度大于预设相似度阈值的待匹配图像区域为目标匹配区域。其中,预设相似度阈值可以根据实际应用场景具体设定。
92.采用本发明实施例提供的方法,每次获取模板图像的目标模板特征点的特征信息后,可以根据所述特征信息,并行计算目标模板特征点在待匹配图像中对应的多个目标图像点与目标模板特征点之间的相似度,即获取的一个模板特征点的特征信息可以同时和待匹配图像多个不同图像区域中该模板特征点所对应的目标图像点的信息之间计算相似度。因此,可以根据预设列数或行数从内存同时将待匹配图像同一行或同一列中的各个图像点的数据从内存加载出来,然后在计算目标模板特征点与在待匹配图像中对应的多个目标图像点之间的相似度时,不仅不再需要逐一获取模板特征信息,而且还可以同时并行计算所加载的每隔预设列数或行数的多个目标图像点与目标模板特征点之间的相似度,即可以实现并行计算目标模板特征点与在待匹配图像中多个不同区域所对应的目标图像点之间的相似度,有效提升了模板匹配速度。
93.在一种可能的实施方式中,在所述根据每个待匹配区域对应的综合相似度,从各
个待匹配区域中确定出目标匹配区域之前,所述方法还可以包括步骤a1:
94.步骤a1,按照所述预设规则获取所述模板图像的下一个目标模板特征点,并返回所述获取所述模板图像的目标模板特征点的特征信息的步骤,直至所述模板图像的模板特征点均被获取完成。
95.举例说明,以图1中的模板图像为例,按照模板图像的模板特征点的行——列分布顺序,以模板图像中的第一个模板特征点“0”为起点,将该第一个模板特征点“0”作为目标模板特征点,并针对该目标模板特征点执行完上述s302-s304之后,可以将该目标模板特征点的下一个模板特征点“3”作为所述模板图像的下一个目标模板特征点,然后针对该下一个目标模板特征点返回执行s302。直至模板图像的模板特征点0-21均被获取完成。
96.或者,仍以图1中的模板图像为例,按照模板图像的模板特征点的行——列分布顺序的倒序,以模板图像中的最后一个模板特征点“12”为起点,将该第一个模板特征点“12”作为目标模板特征点,并针对该目标模板特征点执行完上述s302-s304之后,可以将该目标模板特征点的下一个模板特征点“11”作为所述模板图像的下一个目标模板特征点,然后针对该下一个目标模板特征点返回执行s302。直至模板图像的模板特征点0-21均被获取完成。
97.在一种可能的实施方式中,在所述模板图像的模板特征点均被获取完成之后,所述方法还可以包括步骤b1:
98.步骤b1,将所述模板图像按照第一移动方向移动预设行数或按照第二移动方向移动预设列数,返回所述根据所述特征信息,并行计算所述目标模板特征点在所述待匹配图像中对应的多个目标图像点与所述目标模板特征点之间的相似度的步骤,直至所述模板图像移动至与所述待匹配图像的第一边界或第二边界重合。
99.其中,所述第一边界为所述待匹配图像的边界中与所述第一移动方向相对应的边界,所述第二边界为所述待匹配图像的边界中与所述第二移动方向相对应的边界。
100.如果第一移动方向为从上至下的移动方向,则第一边界为所述待匹配图像的图像下边界,如果第一移动方向为从下至上的移动方向,则第一边界为所述待匹配图像的图像上边界;如果第二移动方向为从左至右的移动方向,则第二边界为所述待匹配图像的图像右边界,如果第二移动方向为从右至左的移动方向,则第二边界为所述待匹配图像的图像左边界。
101.具体的,可以将所述模板图像按照第一移动方向移动预设行数,然后返回所述根据所述特征信息,并行计算所述目标模板特征点在所述待匹配图像中对应的多个目标图像点与所述目标模板特征点之间的相似度的步骤,直至所述模板图像移动至与所述待匹配图像的第一边界重合,或者,也可以将所述模板图像按照第二移动方向移动预设列数,然后返回所述根据所述特征信息,并行计算所述目标模板特征点在所述待匹配图像中对应的多个目标图像点与所述目标模板特征点之间的相似度的步骤,直至所述模板图像移动至与所述待匹配图像的第二边界重合。
102.在该实施方式中,可以按照模板图像的模板特征点的行——列分布顺序,以模板图像中的第一个模板特征点为起点,依次获取各个模板特征点,用于确定出目标匹配区域。具体参见图4,图4为本发明实施例提供的图像的模板匹配方法的另一种流程图,如图4所示,所述方法包括:
103.s401,获取模板图像和待匹配图像,并设置k为1。
104.s402,获取所述模板图像的第k个模板特征点的特征信息。
105.s403,根据所述特征信息,并行计算所述第k个模板特征点在所述待匹配图像中对应的多个目标图像点与所述第k个模板特征点之间的相似度。
106.其中,所述多个目标图像点为所述待匹配图像中同一行的图像点,且相邻的两个目标图像点之间相隔预设列数。预设列数可以根据实际匹配情况设置,此处不做具体限定。
107.s404,将每个目标图像点与所述第k个模板特征点之间的相似度累加至该目标图像点所在的待匹配区域对应的综合相似度。
108.其中,每个目标图像点所在的待匹配区域为:该目标图像点与所述第k个模板特征点重合时,所述待匹配图像中与所述模板图像对应的区域。
109.s405,将k加1的值赋给k,并返回所述获取所述模板图像的第k个模板特征点的特征信息的步骤,直到k大于所述模板特征点的数量。
110.s406,将所述模板图像按照第一移动方向移动预设行数,返回所述设置k为1的步骤,直至所述模板图像移动至与所述待匹配图像的第一边界重合。
111.其中,所述第一边界为所述待匹配图像的边界中与所述第一移动方向相对应的边界。所述第一移动方向可以根据实际匹配情况,设置为沿着待匹配图像的图像行垂直向上的方向或垂直向下的方向。预设行数可以根据实际匹配情况设置为1、2或3等,此处不做具体限定。
112.s407,根据每个待匹配区域对应的综合相似度,从各个待匹配区域中确定出目标匹配区域。
113.具体的,可以选取对应的综合相似度大于预设相似度阈值的待匹配图像区域为目标匹配区域。其中,预设相似度阈值可以根据实际应用场景具体设定。
114.采用本发明实施例提供的方法,每次获取模板图像的第k个模板特征点的特征信息后,可以根据所述特征信息,并行计算第k个模板特征点在待匹配图像中对应的多个目标图像点与第k个模板特征点之间的相似度,即获取的一个模板特征点的特征信息可以同时和待匹配图像多个不同图像区域中该模板特征点所对应的目标图像点的信息之间计算相似度。因此,可以根据预设列数从内存同时将待匹配图像同一行中的各个图像点的数据从内存加载出来,然后在计算第k个模板特征点与在待匹配图像中对应的多个目标图像点之间的相似度时,不仅不再需要逐一获取模板特征信息,而且还可以同时并行计算所加载的每隔预设列数的多个目标图像点与第k个模板特征点之间的相似度,即可以实现并行计算第k个模板特征点与在待匹配图像中多个不同区域所对应的目标图像点之间的相似度,有效提升了模板匹配速度。
115.在一种可能的实施方式中,每个模板特征点的特征信息包括该模板特征点的模板偏移值和图像特征信息。所述根据所述特征信息,并行计算所述目标模板特征点在所述待匹配图像中对应的多个目标图像点与所述目标模板特征点之间的相似度,可以包括如下步骤c1-c2
116.步骤c1:根据目标模板特征点的模板偏移值、所述模板图像的参考点在所述待匹配图像中对应的图像点的位置信息、所述待匹配图像的列宽和所述预设列数或行数,确定所述目标模板特征点在所述待匹配图像中对应的多个目标图像点。
117.其中,模板偏移值表示该模板特征点相对模板图像的参考点的偏移量,具体可以包括该模板特征点相对模板图像的参考点的水平偏移量和垂直偏移量。模板图像的参考点可以在实际应用中自定义设置,例如,针对图1所示的模板图像101,可以设置模板图像101的参考点为模板图像101左上角的图像点,图像点具体可以为图像的像素点,则模板图像101中的模板特征点1相对参考点的水平偏移量为2,垂直偏移量为1,则模板特征点1的偏移值可以表示为[1,2];再例如,模板图像101中的模板特征点18相对参考点的水平偏移量为6,垂直偏移量为2,则模板特征点18的偏移值可以表示为[2,6]。
[0118]
模板特征点的图像特征信息包括该模板特征点的像素信息、亮度信息、色度信息、梯度信息和位置信息中的至少一种信息。
[0119]
图5为本发明实施例提供的模板图像与待匹配图像进行匹配的一种示意图。如图5所示,如果设置模板图像501左上角的图像点为参考点,参考点当前在待匹配图像502中对应的图像点为:在待匹配图像502中第0行第1列的图像点。模板图像的参考点在待匹配图像中对应的图像点的位置信息具体可以为该图像点在待匹配图像中的位置坐标。
[0120]
在一种可能的实施方式中,本步骤可以根据目标模板特征点的模板偏移值、所述模板图像的参考点在所述待匹配图像中对应的图像点的位置信息和所述待匹配图像的列宽或行宽,采用如下公式确定所述目标模板特征点在所述待匹配图像中当前对应的目标图像点:
[0121]
p=i*w+j+offset
[0122]
其中,p为目标模板特征点在所述待匹配图像中当前对应的目标图像点,i为所述模板图像的参考点在所述待匹配图像中对应的图像点所在行的序数,w为所述待匹配图像的列宽或行宽,j为所述模板图像的参考点在所述待匹配图像中对应的图像点所在列的序数,offset为目标模板特征点的模板偏移值。如果目标模板特征点是按照从模板图像中逐行依次获取的方式得到的,则w取所述待匹配图像的列宽,如果目标模板特征点是按照从模板图像中逐列依次获取的方式得到的,则w取所述待匹配图像的行宽。
[0123]
举例说明,如图5所示,待匹配图像502包括14行
×
18列的图像点,可以设置模板图像501左上角的图像点为参考点,参考点当前在待匹配图像502中对应的图像点为图像点a2。如果目标模板特征点为模板图像501的模板特征点0-21中的模板特征点1,可以得到模板特征点1的偏移值为[1,2],图像点a2在待匹配图像502中的位置坐标为(0,1),即图像点a2所在行的序数为0所在列的序数为1,待匹配图像502的列宽为18,则将上述信息代入公式p=i*w+j+offset=0*18+1+(1*18+2)=(0+1)*18+(1+2)=[1,3],即得到目标模板特征点在待匹配图像502中对应的图像点为第1行第3列的图像点。其中,待匹配图像中行和列的索引下标从0开始。
[0124]
然后,可以将所述模板图像按照第三移动方向移动预设列数,并返回所述根据目标模板特征点的模板偏移值、所述模板图像的参考点在所述待匹配图像中对应的图像点的位置信息和所述待匹配图像的列宽,采用如下公式确定所述目标模板特征点在所述待匹配图像中当前对应的目标图像点的步骤,直到所述模板图像移动至与所述待匹配图像的第三边界重合。其中,所述第三边界为所述待匹配图像的边界中与所述第三移动方向相对应的边界。
[0125]
所述第三移动方向可以根据实际匹配情况,设置为沿着待匹配图像的图像行水平
向右的方向或水平向左的方向。预设列数可以根据实际匹配情况设置为1、2或3等,此处不做具体限定。
[0126]
举例说明,如图5所示,如果预设列数设置为1,第三移动方向设置为沿着待匹配图像502的图像行水平向右的方向,且所述目标模板特征点为模板特征点0,在确定出模板特征点0在待匹配图像502中当前对应的目标图像点——图像点a5后,可以将模板图像502按照第三移动方向移动1列,并返回所述根据目标模板特征点的模板偏移值、所述模板图像的参考点在所述待匹配图像中对应的图像点的位置信息和所述待匹配图像的列宽,采用如下公式确定所述目标模板特征点在所述待匹配图像中当前对应的目标图像点的步骤,确定出模板特征点0在待匹配图像502中当前对应的目标图像点——图像点a6。直到模板图像502的右边界移动至与待匹配图像的第三边界重合,可以得到模板特征点0对应的目标图像点为:待匹配图像502中的图像点a5-图像点a15。
[0127]
再举例说明,仍以图5为例,仍设置模板图像501左上角的图像点为参考点,参考点当前在待匹配图像502中对应的图像点为图像点a2。如果目标模板特征点为模板图像501的模板特征点0-21中的模板特征点1,可以得到模板特征点1的偏移值为[1,2],图像点a2在待匹配图像502中的位置坐标为(0,1),即图像点a2所在行的序数为0所在列的序数为1,待匹配图像502的行宽为14,则将上述信息代入公式p=i*w+j+offset=0*14+1+(1*14+2)=(0+1)*14+(1+2)=[1,3],即得到目标模板特征点在待匹配图像502中对应的图像点为第1行第3列的图像点。其中,待匹配图像中行和列的索引下标从0开始。
[0128]
然后,可以将所述模板图像按照第四移动方向移动预设行数,并返回所述根据目标模板特征点的模板偏移值、所述模板图像的参考点在所述待匹配图像中对应的图像点的位置信息和所述待匹配图像的行宽,采用如下公式确定所述目标模板特征点在所述待匹配图像中当前对应的目标图像点的步骤,直到所述模板图像移动至与所述待匹配图像的第四边界重合。其中,所述第四边界为所述待匹配图像的边界中与所述第四移动方向相对应的边界。
[0129]
所述第四移动方向可以根据实际匹配情况,设置为沿着待匹配图像的图像列垂直向上的方向或垂直向下的方向。预设行数可以根据实际匹配情况设置为1、2或3等,此处不做具体限定。
[0130]
仍以图5为例,如果预设行数设置为1,第四移动方向设置为沿着待匹配图像502的图像列从上之下的方向,且所述目标模板特征点为模板特征点3,在确定出模板特征点3在待匹配图像502中当前对应的目标图像点——图像点b1后,可以将模板图像502按照第四移动方向移动1行,并返回所述根据目标模板特征点的模板偏移值、所述模板图像的参考点在所述待匹配图像中对应的图像点的位置信息和所述待匹配图像的行宽,采用如下公式确定所述目标模板特征点在所述待匹配图像中当前对应的目标图像点的步骤,确定出模板特征点3在待匹配图像502中当前对应的目标图像点——图像点c1。直到模板图像502的下边界移动至与待匹配图像的第四边界重合,可以得到模板特征点3对应的目标图像点为:待匹配图像502中的图像点b1、图像点c1、图像点d1、图像点e1、图像点f1、图像点g1、图像点h1和图像点k1。
[0131]
步骤c2:根据所述目标模板特征点的图像特征信息和所述多个目标图像点的图像信息,并行计算每个目标图像点与所述目标模板特征点之间的相似度。
[0132]
举例说明,仍以图5为例,如果模板图像是沿着第三移动方向移动,如果预设列数设置为1,第三移动方向设置为沿着待匹配图像502的图像行水平向右的方向,且所述目标模板特征点为模板特征点0,可以得到模板特征点0对应的目标图像点为:待匹配图像502中的图像点a5-图像点a15。本发明实施例中,可以直接并行计算图像点a5-图像点a15与所述目标模板特征点之间的相似度。
[0133]
仍以图5为例,如果模板图像是沿着第四移动方向移动,如果预设行数设置为1,第四移动方向设置为沿着待匹配图像502的图像列从上之下的方向,且所述目标模板特征点为模板特征点3,可以得到模板特征点3对应的目标图像点为:待匹配图像502中的图像点b1、图像点c1、图像点d1、图像点e1、图像点f1、图像点g1、图像点h1和图像点k1。本发明实施例中,可以直接并行计算图像点b1、图像点c1、图像点d1、图像点e1、图像点f1、图像点g1、图像点h1和图像点k1与所述目标模板特征点之间的相似度。
[0134]
其中,目标模板特征点在所述待匹配图像中对应的每个目标图像点的图像信息包括该目标图像点的像素信息、亮度信息、色度信息、梯度信息和位置信息中的至少一种信息。
[0135]
具体的,本步骤可以计算所述目标模板特征点在所述待匹配图像中对应的每个目标图像点与所述目标模板特征点之间的余弦相似度、欧式距离和曼哈顿距离中的任意一种作为相似度。或者,也可以计算所述目标模板特征点在所述待匹配图像中对应的每个目标图像点与所述目标模板特征点之间的余弦相似度、欧式距离和曼哈顿距离中的至少2种,然后求平均值,将平均值作为相似度。当然,本发明实施例中也可以根据所述目标模板特征点的图像特征信息和所述目标模板特征点在所述待匹配图像中对应的每个目标图像点的图像信息,采用其他相似度计算方法,计算所述目标模板特征点在所述待匹配图像中对应的每个目标图像点与所述目标模板特征点之间的相似度,此处不做具体限定。
[0136]
以下实施例为图5所示的模板图像501与待匹配图像502进行模板匹配的一个具体示例:
[0137]
如图5所示,待匹配图像502中第0行至第13行依次包括:图像点a1-a18、图像点b1-b18、
……
、图像点n1-n18。可以设置模板图像501的参考点为其自身左上角的图像点,第三移动方向可以设置为从图像点a1向a18移动的水平向右的方向,第三边界则为待匹配图像502中与第三移动方向相对应的边界。第一移动方向可以设置为从图像点a1向n1移动的垂直向下的方向,第一边界为待匹配图像502中与第一移动方向相对应的边界。预设列数和预设行数设置为1。
[0138]
本示例中,匹配流程起始时,模板图像502的参考点在待匹配图像中对应的图像点为a2,可以从内存中获取第1个模板特征点(模板特征点0)的特征信息;根据第1个模板特征点的特征信息,确定出第1个模板特征点在待匹配图像502中对应的多个目标图像点(a5-a15),然后并行计算第1个模板特征点与图像点a5-a15之间的相似度。并将每个目标图像点(图像点a5-a15)与第1个模板特征点之间的相似度累加至该目标图像点所在的待匹配区域对应的综合相似度,其中,每个目标图像点(图像点a5-a15)所在的待匹配区域为:该目标图像点与第1个模板特征点重合时,待匹配图像502中与模板图像501对应的区域。例如,图5所示的图像点a5与第1个模板特征点重合,则当前待匹配图像502中与模板图像501对应的区域即为图像点a5所在的待匹配区域。
[0139]
或者,本示例中,在匹配流程起始时,模板图像502的参考点在待匹配图像中对应的图像点为a2,可以从内存中获取第1个模板特征点(模板特征点0)的特征信息;然后根据第1个模板特征点的特征信息,依次先确定出第1个模板特征点在待匹配图像502中对应的预设数量个目标图像点,然后并行计算第1个模板特征点与预设数量个目标图像点之间的相似度。其中,预设数量可以设定为8或10等,此处不做具体限定。每次并行计算相似度的目标图像点的数量不超过预设数量。
[0140]
例如,如果预设数量设定为8,在匹配流程起始时,模板图像502的参考点在待匹配图像中对应的图像点为a2,可以从内存中获取第1个模板特征点(模板特征点0)的特征信息;根据第1个模板特征点的特征信息,先确定出第1个模板特征点在待匹配图像502中对应的8个目标图像点(a5-a12),然后并行计算第1个模板特征点与图像点a5-a12之间的相似度。并将图像点a5-a12中每个图像点与第1个模板特征点之间的相似度累加至该图像点所在的待匹配区域对应的综合相似度。然后,继续根据模板特征点0的特征信息确定出模板特征点0在待匹配图像502中对应的其他目标图像点(a13-a15),然后并行计算模板特征点0与图像点a13-a15之间的相似度。并将图像点a13-a15中每个图像点与模板特征点0之间的相似度累加至该图像点所在的待匹配区域对应的综合相似度。
[0141]
然后,可以按照同样的方式,获取第2个模板特征点(模板特征点1)的特征信息,并按照上述流程继续计算第2个模板特征点与其在待匹配图像502中对应的多个目标图像点与之间的相似度,得到各个待匹配区域在新一轮累加后的对应的综合相似度;依次针对第3-22个模板特征点(模板特征点2-21),按照上述流程计算模板特征点与其在待匹配图像502中对应的多个目标图像点与之间的相似度,得到各个待匹配区域在经过第1-22个模板特征点所计算的相似度累加后最终对应的综合相似度。直到模板图像501的模板特征点0-21均参与过相似度计算后,再将模板图像501按照第一移动方向移动1行,得到模板图像501的参考点在待匹配图像502中对应的图像点为b1,然后按照上述流程,继续依次计算第1个模板特征点至第23个模板特征点与在待匹配图像502中对应的多个目标图像点之间的相似度,直至所述模板图像移动至与所述待匹配图像的第一边界重合,得到各个待匹配区域在经过第1-22个模板特征点所计算的相似度累加后最终对应的综合相似度。然后,可以根据每个待匹配区域对应的综合相似度,从各个待匹配区域中选取目标匹配区域。具体的,可以选取待匹配区域中,对应的综合相似度最高的待匹配区域作为目标匹配区域。例如,如果待匹配图像501中与模板图像对应的区域为对应的综合相似度最高的待匹配区域,可以将该区域确定为目标匹配区域,即将图5所示的模板图像501所覆盖的待匹配图像的区域确定为目标匹配区域。目标匹配区域即为最终与模板图像相对应的图像区域。
[0142]
以下实施例为图5所示的模板图像501与待匹配图像502进行模板匹配的另一个具体示例:
[0143]
如图5所示,待匹配图像502中第0行至第13行依次包括:图像点a1-a18、图像点b1-b18、
……
、图像点n1-n18。可以设置模板图像501的参考点为其自身左上角的图像点,第四移动方向可以设置为从图像点b1向n1移动的垂直向下的方向,第四边界则为待匹配图像502中与第四移动方向相对应的边界。第二移动方向可以设置为从图像点a1向a18移动的水平向右的方向,第二边界为待匹配图像502中与第二移动方向相对应的边界。预设列数和预设行数设置为1。
[0144]
本示例中,匹配流程起始时,模板图像502的参考点在待匹配图像中对应的图像点为a2,可以从内存中获取第1个模板特征点(模板特征点0)的特征信息;根据第1个模板特征点的特征信息,确定出第1个模板特征点在待匹配图像502中对应的多个目标图像点(图像点a5,b5
……
,h5),然后并行计算第1个模板特征点与“图像点a5,b5
……
,h5”之间的相似度。并将每个目标图像点(图像点a5,b5
……
,h5)与第1个模板特征点之间的相似度累加至该目标图像点所在的待匹配区域对应的综合相似度,其中,每个目标图像点(图像点a5,b5
……
,h5)所在的待匹配区域为:该目标图像点与第1个模板特征点重合时,待匹配图像502中与模板图像501对应的区域。例如,图5所示的图像点a5与第1个模板特征点重合,则当前待匹配图像502中与模板图像501对应的区域即为图像点a5所在的待匹配区域。
[0145]
或者,本示例中,在匹配流程起始时,模板图像502的参考点在待匹配图像中对应的图像点为a2,可以从内存中获取第1个模板特征点(模板特征点0)的特征信息;然后根据第1个模板特征点的特征信息,依次先确定出第1个模板特征点在待匹配图像502中对应的预设数量个目标图像点,然后并行计算第1个模板特征点与预设数量个目标图像点之间的相似度,每次并行计算相似度的目标图像点的数量不超过预设数量。
[0146]
例如,如果预设数量设定为6,在匹配流程起始时,模板图像502的参考点在待匹配图像中对应的图像点为a2,可以从内存中获取第1个模板特征点(模板特征点0)的特征信息;根据第1个模板特征点的特征信息,先确定出第1个模板特征点在待匹配图像502中对应的6个目标图像点(图像点a5,b5
……
,f5),然后并行计算第1个模板特征点与“图像点a5,b5
……
,f5”之间的相似度。并将“图像点a5,b5
……
,f5”中每个图像点与第1个模板特征点之间的相似度累加至该图像点所在的待匹配区域对应的综合相似度。然后,继续根据模板特征点0的特征信息确定出模板特征点0在待匹配图像502中对应的其他目标图像点(g5和k5),然后并行计算模板特征点0与图像点g5和k5之间的相似度。并将图像点g5和k5中每个图像点与模板特征点0之间的相似度累加至该图像点所在的待匹配区域对应的综合相似度。
[0147]
然后,可以按照同样的方式,获取第2个模板特征点(模板特征点1)的特征信息,并按照上述流程继续计算第2个模板特征点与其在待匹配图像502中对应的多个目标图像点与之间的相似度,得到各个待匹配区域在新一轮累加后的对应的综合相似度;依次针对第3-22个模板特征点(模板特征点2-21),按照上述流程计算模板特征点与其在待匹配图像502中对应的多个目标图像点与之间的相似度,得到各个待匹配区域在经过第1-22个模板特征点所计算的相似度累加后最终对应的综合相似度。直到模板图像501的模板特征点0-21均参与过相似度计算后,再将模板图像501按照第二移动方向移动1列,得到模板图像501的参考点在待匹配图像502中对应的图像点为a3,然后按照上述流程,继续依次计算第1个模板特征点至第23个模板特征点与在待匹配图像502中对应的多个目标图像点之间的相似度,直至所述模板图像移动至与所述待匹配图像的第二边界重合,得到各个待匹配区域在经过第1-22个模板特征点所计算的相似度累加后最终对应的综合相似度。然后,可以根据每个待匹配区域对应的综合相似度,从各个待匹配区域中选取目标匹配区域。具体的,可以选取待匹配区域中,对应的综合相似度最高的待匹配区域作为目标匹配区域。例如,如果待匹配图像501中与模板图像对应的区域为对应的综合相似度最高的待匹配区域,可以将该区域确定为目标匹配区域,即将图5所示的模板图像501所覆盖的待匹配图像的区域确定为
目标匹配区域。目标匹配区域即为最终与模板图像相对应的图像区域。
[0148]
在一种可能的实施方式中,在所述根据所述特征信息,并行计算所述目标模板特征点在所述待匹配图像中对应的多个目标图像点与所述目标模板特征点之间的相似度之前,还包括:基于simd(single instruction multiple data,单指令流多数据流),从高速缓存器中加载所述目标模板特征点在所述待匹配图像中对应的多个目标图像点的图像信息。
[0149]
本发明实施例中,可以预先从内存中加载所述目标模板特征点在所述待匹配图像中对应的图像点所在行的各个图像点的图像信息至向量寄存器,同时将图像信息缓存在高速缓存器中。其中,simd为利用一条计算机指令执行多个数据运算的并行处理方式,高速缓存器可以为cache等。
[0150]
所述根据所述特征信息,并行计算所述目标模板特征点在所述待匹配图像中对应的多个目标图像点与所述目标模板特征点之间的相似度,具体可以包括:基于所述图像信息和所述特征信息,并行计算每个目标图像点与所述目标模板特征点之间的相似度。
[0151]
具体的,可以从高速缓存中将所述目标模板特征点在所述待匹配图像中对应的多个目标图像点的图像信息加载到向量寄存器,用于并行计算每个目标图像点与所述目标模板特征点之间的相似度。
[0152]
本发明实施例中,由于可以将模板沿着第三移动方向移动预设列数或将模板沿着第四移动方向移动预设行数,预设列数和预设行数是已知的,目标模板特征点在匹配流程开始时在所述待匹配图像中对应的图像点也是可以预先获知的,则可以根据预设列数和预设行数,在匹配流程开始时先基于simd从高速缓存器中加载目标模板特征点在待匹配图像中对应的多个目标图像点的图像信息至向量寄存器中,然后并行计算出目标模板特征点与每个目标图像点之间相似度。
[0153]
举例说明,如图5所示,如果预设列数设置为1,根据预设列数确定出模板特征点0将与待匹配图像502中的图像点a5-a15依次计算相似度,则可以在匹配流程开始时先基于simd从高速缓存中加载模板特征点0在待匹配图像中对应的图像点所在行(第0行)的各个图像点的图像信息,然后并行计算模板特征点0与图像点a5-a15之间的相似度。或者,如果预设行数设置为1,根据预设行数确定出模板特征点0将与待匹配图像502中的“图像点a5,b5
……
,h5”依次计算相似度,则可以在匹配流程开始时先基于simd从高速缓存中加载模板特征点0在待匹配图像中对应的图像点所在列(第5列)的各个图像点的图像信息,然后并行计算模板特征点0与“图像点a5,b5,

,h5”之间的相似度。
[0154]
再例如,图6为本发明实施例提供的一种利用并行数据处理方式进行模板匹配的示意图。图6中(1)为模板图像601,模板图像601中各个模板特征点0-21的分布是离散无序的。如模板特征点0-21在内存中的分布如图6中的内存分布展示图602所示,各个模板特征点在内存中的分布顺序是0-21的顺序。可以将各个模板特征点的特征信息先从内存中取出放入cache缓存,如图6所示,可以将模板特征点0的特征信息从内存中取出放入高速缓存器。在开始匹配时,可以设置预设列数和预设行数为1,模板特征点0在待匹配图像603中对应的多个目标图像点都位于待匹配图像603的第0行,根据预设列数确定出模板特征点0将与待匹配图像603中第0行的图像点3-18依次计算相似度,则可以在匹配流程开始时先基于simd从高速缓存器中加载待匹配图像第0行的各个图像点的图像信息至向量寄存器,并将
模板特征点0的特征信息也从高速缓存器取出放至向量寄存器,并行计算模板特征点0与待匹配图像602中第0行的图像点3-18之间的相似度。其中,向量寄存器是最贴近cpu的一种暂时存储数据的空间,cpu在计算模板特征点与对应的多个目标图像点之间的相似度时只与向量寄存器中进行数据存取,因此,可以先将高速缓存器中的数据取出暂存在向量寄存器中。图6中的op(over-provision,预留空间)是指向量寄存器的缓存空间。
[0155]
可见,本实施方式中,对于待匹配图像,每次循环计算模板特征点与所对应的多个目标图像点之间的相似度时,由于模板特征点所对应的图像点的位置可以根据预设列数和预设行数进行预测,因此能够使用simd技术进行数据并行处理,提高模板匹配速度。
[0156]
在一种可能的实施方式中,为了进一步提高模板匹配速度,本实施方式对所述模板图像中的各个模板特征点的特征信息在内存中的存储方式做了改进。具体的,可以使所述模板图像中的各个模板特征点的特征信息在内存中的存储顺序,与每个模板特征点在所述模板图像中所在行和所在列的分布顺序一致。则在所述获取所述模板图像的目标模板特征点的特征信息之前,还可以包括:按照所述模板图像的各个模板特征点的特征信息在内存中的存储顺序,获取目标模板特征点的特征信息。
[0157]
具体的,可以按照所述模板图像的各个模板特征点的特征信息在内存中的存储顺序,从内存中加载所述模板图像的各个模板特征点的特征信息至高速缓存器,然后在匹配流程开始后,可以从高速缓存器中获取所述模板图像的目标模板特征点的特征信息。
[0158]
在本实施方式未改进所述模板图像中的各个模板特征点的特征信息在内存中的存储方式之前,如图6中模板特征点0-21的内存分布展示图602所示,模板特征信息在内存中是按照模板特征点0-21顺序存放的,由于进行模板匹配时,需要按照模板特征信息的内存存放顺序,将模板特征信息从内存取出放入缓存,其缓存顺序与内存顺序一致。因此,这种内存方式会导致:依次从缓存中调取模板特征信息与待匹配图像上的图像点的图像信息进行匹配时,由于模板特征信息在模板图像上的分布位置无序,可能会导致在遍历待匹配图像的当前待匹配区域,进行当前待匹配区域与模板图像的匹配时,原先已经加载到高速缓存器中的待匹配图像的图像点信息被后续相隔很远的图像点信息替换,当后续遍历被替换的待匹配图像的图像点时,需要重新将该图像点的图像信息从内存加载到高速缓存器中。如图6所示,按照图6中内存分布展示图602所示的内存存放顺序,在针对模板特征点3-6遍历待匹配图像上的待匹配区域时,可以依次先从内存中取出待匹配图像上的第2-5行图像点的图像信息,放到高速缓存器中。当针对模板特征点9遍历待匹配图像上的待匹配区域时,高速缓存器中可能已被待匹配图像上的第2-5行图像点的图像信息占用了所有缓存空间,则可以用待匹配图像上的第6行图像点的图像信息将高速缓存器中待匹配图像上的第2行图像点的图像信息替换掉,进而,在后续针对模板特征点19遍历待匹配图像上的待匹配区域时,由于待匹配图像上的第2行图像点的图像信息已经被替换掉了,因此,需要重新从内存中加载待匹配图像上的第2行图像点的图像信息至高速缓存器,计算模板特征点19与第2行图像点中所对应的图像点之间的相似度。而这种cpu在cache缓存中找不到所需的数据,因此需要重复加载图像点的图像信息的现象可以被称为cache miss。模板特征点的模板特征信息在模板图像上的分布位置越无序,cache miss的现象就越严重,从而会较大程度上影响模板匹配的速度。
[0159]
因此,为了减少cache miss,进一步提高模板匹配速度,本实施方式使所述模板图
像中的各个模板特征点的特征信息在内存中的存储顺序,与每个模板特征点在所述模板图像中所在行和所在列的分布顺序一致。图7为本发明实施例提供的模板特征信息在内存存放的一种示意图,模板特征点0-21在模板图像中的分布示意图可以如图6中的601所示。如图7所示,使模板图像601中的各个模板特征点的特征信息在内存中的存储顺序,与每个模板特征点在所述模板图像中所在行和所在列的分布顺序一致,即按照模板特征点在模板图像中所在行和所在列的顺序,将模板图像601中的各个模板特征点的特征信息存储在内存中。这样改进后,按照模板图像601的各个模板特征点的特征信息在内存中的存储顺序,从内存中加载所述模板图像的各个模板特征点的特征信息至高速缓存器,高速缓存器中模板图像601的各个模板特征点的特征信息缓存顺序与在内存中的存储顺序一致。则进行模板匹配时,按照模板特征信息的内存存放顺序,将模板特征信息从内存取出放入缓存,其缓存顺序与内存顺序一致。按照改进后的存储方式,在进行待匹配区域与模板图像的匹配时,可以减少原先已经加载到高速缓存器中的待匹配图像的图像点信息被后续相隔很远的图像点信息替换的概率,进而减少cache miss,提高模板匹配速度。如图5所示,按照图7所示的模板特征信息的内存存放顺序,可以按照各个模板特征点所在行的顺序,先针对同一行中的各个模板特征点3-6遍历待匹配图像,再针对下一行中的各个模板特征点遍历待匹配图像。例如,可以依次先从内存中取出待匹配图像502上的第2行图像点的图像信息放到cache缓存中,然后可以针对同一行的模板特征点3、模板特征点2、模板特征点1、模板特征点21、模板特征点20和模板特征点19,依次遍历待匹配图像502。按照行的顺序,再依次针对同一行中的模板特征点4和模板特征点18遍历待匹配图像502。当针对模板特征点9遍历待匹配图像502时,高速缓存器中可能已被待匹配图像502上的第2-5行图像点的图像信息占用了所有缓存空间,则此时用待匹配图像502上的第6行图像点的图像信息将高速缓存器中待匹配图像502上的第2行图像点的图像信息替换掉,也不会出现在后续针对模板特征点19遍历待匹配图像时,由于待匹配图像502上的第2行图像点的图像信息已经被替换掉了,因此需要重新从内存中加载待匹配图像502上的第2行图像点的图像信息至高速缓存器的情况,因为模板特征点19在内存中的存储顺序在模板特征点9之前,模板特征点19已经在模板特征点9之前完成了遍历待匹配图像的任务,因此,本实施方式改进所述模板图像中的各个模板特征点的特征信息在内存中的存储方式,使所述模板图像中的各个模板特征点的特征信息在内存中的存储顺序,与每个模板特征点在所述模板图像中所在行和所在列的分布顺序一致,可以减少cache miss现象,在待匹配图像上遍历时实现了连续的内存访问,改善了内存访问效率,也进一步提高了模板匹配速度。
[0160]
相应于上述图像的模板匹配方法,本发明实施例还提供了一种图像的模板匹配装置。下面对本发明实施例所提供的图像的模板匹配装置进行介绍。如图8所示,一种图像的模板匹配装置,所述装置包括:
[0161]
图像获取模块801,用于获取模板图像和待匹配图像;
[0162]
特征信息获取模块802,用于获取所述模板图像的目标模板特征点的特征信息,所述目标模板特征点为按照预设规则获取的模板图像的模板特征点;
[0163]
相似度计算模块803,用于根据所述特征信息,并行计算所述目标模板特征点在所述待匹配图像中对应的多个目标图像点与所述目标模板特征点之间的相似度,其中,所述多个目标图像点为所述待匹配图像中同一行或列的图像点,且相邻的两个目标图像点之间
相隔预设列数或行数;
[0164]
相似度累加模块804,用于将每个目标图像点与所述目标模板特征点之间的相似度累加至该目标图像点所在的待匹配区域对应的综合相似度,其中,每个目标图像点所在的待匹配区域为:该目标图像点与所述目标模板特征点重合时,所述待匹配图像中与所述模板图像对应的区域;
[0165]
目标区域确定模块805,用于根据每个待匹配区域对应的综合相似度,从各个待匹配区域中确定出目标匹配区域。
[0166]
可见,采用本发明实施例提供的装置,每次获取模板图像的目标模板特征点的特征信息后,可以根据所述特征信息,并行计算目标模板特征点在待匹配图像中对应的多个目标图像点与目标模板特征点之间的相似度,即获取的一个模板特征点的特征信息可以同时和待匹配图像多个不同图像区域中该模板特征点所对应的目标图像点的信息之间计算相似度。因此,可以根据预设列数或行数从内存同时将待匹配图像同一行或同一列中的各个图像点的数据从内存加载出来,然后在计算目标模板特征点与在待匹配图像中对应的多个目标图像点之间的相似度时,不仅不再需要逐一获取模板特征信息,而且还可以同时并行计算所加载的每隔预设列数或行数的多个目标图像点与目标模板特征点之间的相似度,即可以实现并行计算目标模板特征点与在待匹配图像中多个不同区域所对应的目标图像点之间的相似度,有效提升了模板匹配速度。
[0167]
可选的,所述装置还包括:
[0168]
特征点获取模块(图中未示出),用于在所述根据每个待匹配区域对应的综合相似度,从各个待匹配区域中确定出目标匹配区域之前,按照所述预设规则获取所述模板图像的下一个目标模板特征点,并返回所述获取所述模板图像的目标模板特征点的特征信息的步骤,直至所述模板图像的模板特征点均被获取完成。
[0169]
可选的,所述装置还包括:
[0170]
移动模块(图中未示出),用于在所述模板图像的模板特征点均被获取完成之后,将所述模板图像按照第一移动方向移动预设行数或按照第二移动方向移动预设列数,返回所述根据所述特征信息,并行计算所述目标模板特征点在所述待匹配图像中对应的多个目标图像点与所述目标模板特征点之间的相似度的步骤,直至所述模板图像移动至与所述待匹配图像的第一边界或第二边界重合;其中,所述第一边界为所述待匹配图像的边界中与所述第一移动方向相对应的边界,所述第二边界为所述待匹配图像的边界中与所述第二移动方向相对应的边界。
[0171]
可选的,所述装置还包括:
[0172]
信息加载模块(图中未示出),用于基于单指令流多数据流simd,从高速缓存器中加载所述目标模板特征点在所述待匹配图像中对应的多个目标图像点的图像信息;
[0173]
所述相似度计算模块803,具体用于基于所述图像信息和所述特征信息,并行计算每个目标图像点与所述目标模板特征点之间的相似度。
[0174]
可选的,所述模板图像中的各个模板特征点的特征信息在内存中的存储顺序,与每个模板特征点在所述模板图像中所在行和所在列的分布顺序一致;
[0175]
所述特征信息获取模块802,具体用于按照所述模板图像的各个模板特征点的特征信息在内存中的存储顺序,获取目标模板特征点的特征信息。
[0176]
可选的,每个模板特征点的特征信息包括该模板特征点的模板偏移值和图像特征信息;
[0177]
所述相似度计算模块803,具体用于根据目标模板特征点的模板偏移值、所述模板图像的参考点在所述待匹配图像中对应的图像点的位置信息、所述待匹配图像的列宽和所述预设列数或行数,确定所述目标模板特征点在所述待匹配图像中对应的多个目标图像点;根据所述目标模板特征点的图像特征信息和所述多个目标图像点的图像信息,并行计算每个目标图像点与所述目标模板特征点之间的相似度。
[0178]
可选的,所述相似度计算模块803包括:
[0179]
相似度计算子模块(图中未示出),用于根据目标模板特征点的模板偏移值、所述模板图像的参考点在所述待匹配图像中对应的图像点的位置信息和所述待匹配图像的列宽或行宽,采用如下公式确定所述目标模板特征点在所述待匹配图像中当前对应的目标图像点:
[0180]
p=i*w+j+offset
[0181]
其中,p为目标模板特征点在所述待匹配图像中当前对应的目标图像点,i为所述模板图像的参考点在所述待匹配图像中对应的图像点所在行的序数,w为所述待匹配图像的列宽或行宽,j为所述模板图像的参考点在所述待匹配图像中对应的图像点所在列的序数,offset为目标模板特征点的模板偏移值;
[0182]
移动子模块(图中未示出),用于将所述模板图像按照第三移动方向移动预设列数或按照第四移动方向移动预设行数,并返回所述根据目标模板特征点的模板偏移值、所述模板图像的参考点在所述待匹配图像中对应的图像点的位置信息和所述待匹配图像的列宽或行宽,采用如下公式确定所述目标模板特征点在所述待匹配图像中当前对应的目标图像点的步骤,直到所述模板图像移动至与所述待匹配图像的第三边界或第四边界重合,其中,所述第三边界为所述待匹配图像的边界中与所述第三移动方向相对应的边界,所述第四边界为所述待匹配图像的边界中与所述第四移动方向相对应的边界。
[0183]
采用本发明实施例提供的装置,每次获取模板图像的目标模板特征点的特征信息后,可以根据所述特征信息,并行计算目标模板特征点在待匹配图像中对应的多个目标图像点与目标模板特征点之间的相似度,即获取的一个模板特征点的特征信息可以同时和待匹配图像多个不同图像区域中该模板特征点所对应的目标图像点的信息之间计算相似度。因此,可以根据预设列数或行数从内存同时将待匹配图像同一行中的各个图像点的数据从内存加载出来,然后在计算目标模板特征点与在待匹配图像中对应的多个目标图像点之间的相似度时,不仅不再需要逐一获取模板特征信息,而且还可以同时并行计算所加载的每隔预设列数或行数的多个目标图像点与目标模板特征点之间的相似度,即可以实现并行计算目标模板特征点与在待匹配图像中多个不同区域所对应的目标图像点之间的相似度,有效提升了模板匹配速度。并且,本发明实施例可以改进所述模板图像中的各个模板特征点的特征信息在内存中的存储方式,使所述模板图像中的各个模板特征点的特征信息在内存中的存储顺序,与每个模板特征点在所述模板图像中所在行和所在列的分布顺序一致,减少了cache miss现象,也进一步提高了模板匹配速度。
[0184]
本发明实施例还提供了一种电子设备,如图9所示,包括处理器901、通信接口902、存储器903和通信总线904,其中,处理器901,通信接口902,存储器903通过通信总线904完
成相互间的通信,
[0185]
存储器903,用于存放计算机程序;
[0186]
处理器901,用于执行存储器903上所存放的程序时,实现任一所述图像的模板匹配方法的步骤。
[0187]
上述电子设备提到的通信总线可以是外设部件互连标准(peripheral component interconnect,pci)总线或扩展工业标准结构(extended industry standard architecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0188]
通信接口用于上述电子设备与其他设备之间的通信。
[0189]
存储器可以包括随机存取存储器(random access memory,ram),也可以包括非易失性存储器(non-volatile memory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
[0190]
上述的处理器可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
[0191]
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述的图像的模板匹配方法的步骤。
[0192]
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一图像的模板匹配方法。
[0193]
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solid state disk(ssd))等。
[0194]
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备
所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0195]
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统、电子设备、计算机可读存储介质和计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0196]
以上所述仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1