支持大模板匹配的迭代多方向图像搜索

文档序号:1643155 发布日期:2019-12-20 浏览:7次 >En<

阅读说明:本技术 支持大模板匹配的迭代多方向图像搜索 (Iterative multi-directional image search supporting large template matching ) 是由 邱天 于 2019-08-07 设计创作,主要内容包括:描述了迭代多方向图像搜索的系统和方法。实施例使用多方向搜索模式来确定源图像内的一个或多个搜索区域。为在多方向搜索模式的多个方向上搜寻模板图像,实施例的搜索区域提供源图像内的搜索区域。可以迭代地更新源图像内搜索区域的位置,例如基于从搜索导出的运动向量,直到在源图像内识别出模板图像匹配位置。实施例将模板图像和源图像内的搜索区域转换为与多方向图像搜索的每个方向相对应的1D表示。实施例适应源图像内的模板图像的主体(如感兴趣目标)的旋转和缩放变化。(Systems and methods of iterative multi-directional image search are described. Embodiments use a multidirectional search pattern to determine one or more search regions within a source image. To search for a template image in multiple directions in a multi-directional search mode, the search area of an embodiment provides a search area within a source image. The location of the search area within the source image may be iteratively updated, e.g., based on motion vectors derived from the search, until a template image match location is identified within the source image. Embodiments convert a search area within a template image and a source image into a 1D representation corresponding to each direction of a multi-directional image search. Embodiments accommodate rotational and scaling variations of a subject (e.g., an object of interest) of a template image within a source image.)

支持大模板匹配的迭代多方向图像搜索

【技术领域】

本发明涉及图像搜索,特别涉及支持大模板匹配的迭代多方向图像搜索。

【背景技术】

各种技术被用来识别图像内的感兴趣部分。例如,在数字图像处理中,已知有模板匹配技术,用于在数字源图像场景(在此称为“源图像”)内查找与数字参考图像模板(这里称为“模板图像”)相对应的小部分图像。这种技术例如可以实施于各种制造系统中的缺陷检查、视频压缩系统中的运动估计等。

在操作中,模板匹配技术通过将模板图像与源图像的一部分匹配,以在较大的源图像内定位模板图像的位置。这样,模板匹配技术通常逐个像素地扫描源图像,并与模板图像进行比较,以在源图像内估计模板图像的位置。全搜索(FS)模板匹配方法在源图像的一个搜索区域内穷举评估所有可能的候选位置。可以容易地理解,FS模板匹配的穷举搜索是非常计算密集的并且消耗大量的计算能力。归一化灰度相关可以用于比较与它们在模板图像和源图像中的位置相关的灰度值。可以利用金字塔式操作法来减少像素的数量。六边形搜索方法使用两种不同尺寸的六边形搜索图案,其中由7个检查点组成的较大搜索图案用于粗略搜索,由4个检查点组成的较小的缩小的六边形图案用于精细搜索。六边形搜索方法减少了总检查点,从而使模板搜索过程更快。但是,使用归一化灰度相关和图像金字塔在计算上非常昂贵,特别是当模板图像相对较大时,因为模板图像中的每个像素需要与源图像中的每个像素相关,而六边形搜索可能落入局部最佳匹配而不是全局最佳匹配的陷阱。

宽度或高度为搜索范围(即,待搜索的源图像内的区域)的1/3或更大的模板图像在此被定义为大模板。因此,与搜索范围相比,大模板相对较大。尽管在传统模板匹配技术中使用这种大模板会加剧这些技术的计算上昂贵的性质,但是这种大模板的使用仍然是常见的。例如,大模板匹配可以是粗精匹配过程的一部分,例如可以用于视频压缩、图像配准、目标定位、形状缺陷检查和立体匹配。在常见的情况下,图像内目标的粗略位置是已知的,但是需要在图像内准确定位目标位置。在这种情况下,在源图像内的搜索范围相对较小,使用模板匹配技术会出现大模板搜索的问题。传统的模板匹配技术是计算密集型的,特别是对于这种大模板,因此在这些情况下搜索最佳的模板匹配通常是耗时的。

一个大模板情况的示例是,模板图像大小可以是64×84像素,而搜索范围大小是177×236像素。在该示例中,相关(搜索)矩阵大小是114×153(即(177-64+1)×(236-84+1),其中模板图像的边界被约束为全部在源图像内),计算次数为(114×153)×(64×84)=93,768,192个单位。从该示例可以看出,在大模板情况下的模板匹配在计算上非常昂贵。

除了计算昂贵之外,现有模板匹配技术通常在所提供结果的准确性方面存在问题。例如,传统的模板匹配技术通常提供局部最优值,而不是全局最优值,这降低了精度/准确率。此外,传统的模板匹配技术通常导致在模板匹配中丧失边缘像素,这会影响结果的准确性。

发明内容

本发明涉及迭代多方向图像搜索的系统和方法。根据本发明概念实现的迭代多方向图像搜索技术支持大模板匹配,即使在大模板情况下也能够实现模板图像(如可包括一个或多个感兴趣目标)在源图像内快速且准确的匹配。根据本发明概念实现的迭代多方向图像搜索在计算上有效的多方向搜索过程中提供模板匹配,即使在大模板情况下也是如此,其提供高准确率的匹配结果。

迭代多方向图像搜索的实施例使用多方向搜索模式来确定源图像内的一个或多个搜索区域。实施例的搜索区域为在多方向搜索模式的多个方向上搜寻模板图像在源图像内提供搜索区域。例如,实施例可以使用一个或多个交叉搜索模式来识别源图像内的交叉搜索区域,例如可以包括彼此交叉的第一方向搜索部分(如水平搜索部分)和第二方向搜索部分(如垂直搜索部分),其中沿着多方向搜索模式的多个方向在搜索区域中搜寻模板图像。可以迭代地更新源图像内的搜索区域的位置,例如基于从搜索导出的运动矢量,直到在源图像内识别出模板图像匹配位置。根据本发明实施例实现的定向确定的搜索区域和相应的基于多方向的模板图像搜索有助于在源图像内进行有效搜索,其中搜索区域的迭代更新使得能够有效地收敛源图像内的模板图像匹配位置。

为了促进源图像内的高效搜索,迭代多方向图像搜索的实施例将模板图像和源图像内的搜索区域转换为对应于多个方向图像搜索的每个方向的一维(1D)表示。例如,可以使用求和、快速傅立叶变换(FFT)或其他转换技术将模板图像和源图像内多方向图像搜索区域的图像数据从二维(2D)域转换为1D表示以一维地表示该图像数据。例如,在交叉搜索区域包括水平搜索部分和垂直搜索部分的情况下,实施例可以将模板图像转换为水平方向的1D表示和垂直方向的1D表示。类似地,源图像的交叉搜索区域可以被转换为水平方向的1D表示和垂直方向的1D表示。因此,通过将模板图像和源图像内搜索区域的适当1D表示相关联可以沿着多方向搜索模式的多个(如垂直和水平)方向在搜索区域中执行搜寻模板图像。

实施例的迭代多方向图像搜索适应源图像内的模板图像的主体(如感兴趣目标)的旋转和缩放变化。例如,模板图像可以以多个方向(如45°、90°、135°、180°、225°、270°、315°等)旋转和/或缩放(如75%、100%、150%等),其中在多个方向上在源图像内的搜索区域中搜索模板的多个旋转和/或缩放的实例。交互式多方向图像搜索的实施例可以转换模板图像的每个这样的旋转实例和/或缩放实例以执行如上所述的多方向图像搜索。

前面已经相当广泛地概述了本发明的特征和技术优点以便可以更好地理解随后的本发明的详细描述。在下文中将描述本发明的其他特征和优点,其形成本发明权利要求的主题。本领域技术人员应该理解,所公开的概念和具体实施例可以容易地用作修改或设计用于实现本发明相同目的的其他结构的基础。本领域技术人员还应该认识到,这种等同结构不脱离所附权利要求中阐述的本发明的精神和范围。当结合附图考虑时,从以下描述将更好地理解被认为是本发明的特征的新颖特征,有关其组织和操作方法,以及其他目的和优点。然而,应该清楚地理解,提供的每个附图仅仅是为了说明和描述的目的,而不是作为对本发明限制的定义。

【附图说明】

为了更完整地理解本公开,现提供以下结合附图的描述供参考,其中:

图1A示出可以在本发明实施例的迭代多方向图像搜索中使用的一个示例模板图像;

图1B示出可以在本发明实施例的迭代多方向图像搜索中使用的一个示例源图像;

图1C示出可以通过本发明实施例的迭代多方向图像搜索提供的示例模板图像在示例源图像内的确定位置;

图2示出本发明实施例的迭代多方向图像搜索操作的流程图;

图3示出本发明实施例的配置用于迭代多方向图像搜索操作的基于处理器的系统;

图4A示出一个模板图像的1D表示的生成从示例,其中多方向搜索包括水平和垂直方向;

图4B示出根据本发明实施例的用于源图像内模板图像的目标的旋转变化的迭代多方向图像搜索的一个配置示例;

图4C示出根据本发明实施例的用于源图像内的模板图像的目标的缩放变化的迭代多方向图像搜索的一个配置示例;

图5示出本发明实施例的关于迭代多方向图像搜索的搜索范围提供的一个搜索区域的示例;

图6示出本发明实施例的在迭代多方向图像搜索的源图像中确定的一个搜索区域的示例;

图7A和7B示出源图像的搜索区域的1D表示的生成的一个示例,其中多方向搜索包括水平和垂直方向;

图8示出本发明实施例的迭代多方向图像搜索操作的流程图。

图9示出可以通过本发明实施例的迭代多方向图像搜索提供的源图像内模板图像的确定位置的一个示例位置所在信息;

图10示出本发明实施例的迭代多方向图像搜索可以使用的一个示例性多方向搜索模式。

具体实施方式

根据本发明概念的迭代多方向图像搜索可以用于识别源图像内的一个或多个模板图像,例如用于质量控制、缺陷检查、运动估计、图像配准、目标定位、立体匹配、自主车辆导航等。例如,根据实施例的迭代多方向图像搜索可以关于一个或多个源图像(如图1B的源图像120)使用预定模板图像(如图1A的模板图像110),以在源图像内确定目标或其他感兴趣部分的位置(如图1C的位置130),以便提供匹配的图案信息输出以供各种系统使用。

图2显示了本发明实施例的迭代多方向图像搜索操作的流程图(如流程200所示)。应当理解,当以软件实施时,提供本发明的迭代多方向图像搜索的流程200的功能可以包括用于执行如本文所述任务的代码段。代码段可以存储在处理器可读介质中,以由基于处理器的系统的一个或多个处理器执行。处理器可读介质包括可以适当地存储和传输信息的任何介质。处理器可读介质的示例包括电子电路、半导体存储设备、只读存储器(ROM)、闪存、可擦除ROM(EROM)、光盘、硬盘等。代码段可以通过诸如局域网(LAN)、广域网(WAN)、因特网、内联网、蜂窝通信网络等计算机网络下载。

图3是本发明实施例的被配置以实施迭代多方向图像搜索的基于处理器的系统300(例如服务器系统、个人计算机系统、笔记本计算机系统、平板系统、智能电话系统等)。在基于处理器的系统300的所示实施例中,中央处理单元(CPU)301连接到系统总线302。CPU301可以包括通用的CPU,例如来自英特尔公司的CORE系列处理器的处理器、来自AdvancedMicroDevices公司的ATHLON系列处理器的处理器、来自AIM Alliance的POWERPC系列处理器的处理器等。然而,本发明并不受CPU301结构的限制,只要CPU301支持本文所描述的本发明的操作。例如,实施例的CPU301可以包括一个或多个专用处理器,例如专用集成电路(ASIC)、图形处理单元(GPU)、现场可编程门阵列(FPGA)等。总线302将CPU301连接到随机存取存储器(RAM)303(例如SRAM、DRAM、SDRAM等)和ROM304(例如PROM、EPROM、EEPROM等)。RAM303和ROM304保存用户和系统数据和程序,例如可以包括用于执行多方向图像搜索功能的一些或全部上述程序代码以及与之相关的数据。

所示实施例的基于处理器的系统300的总线302还连接到输入/输出(I/O)控制器305、通信适配器311、用户接口适配器308和显示适配器309。I/O控制器305连接到存储设备306(例如一个或多个硬盘驱动器、光盘驱动器、固态驱动器等),连接到CPU301和RAM303,以便交换用于执行多方向图像搜索功能的程序代码和/或与之相关的数据。所示实施例的I/O适配器305还连接到打印机314(例如点阵打印机、激光打印机、喷墨打印机、热敏打印机等),这将允许系统打印信息的纸质副本,如匹配的图案信息和/或其他信息和文件。通信适配器311被配置以将基于处理器的系统300连接到网络312(例如蜂窝通信网络、LAN、WAN、因特网等)。所示实施例的用户接口适配器308将用户输入设备(例如键盘313、指点设备307和麦克风316)连接到基于处理器的系统300的其他组件。所示实施例的用户接口适配器308还通过扬声器315向用户提供声音输出。显示适配器309由CPU301驱动以控制显示设备310(例如平板显示器、触摸屏、头戴显示器、全息投影仪等)上的显示。

再次参考图2,所示实施例的流程200的多方向图像搜索操作开始于方框201的接收迭代多方向搜索信息211。例如,根据本发明的概念,可以向基于处理器的系统300提供一个或多个模板图像(例如图1A的模板图像110)和一个或多个源图像(例如图1B的源图像120),用于多方向图像搜索。例如,提供给基于处理器的系统300的源图像可以包括感兴趣场景的单个数字图像、移动视图或拍摄的运动图像的数字图像流等。提供给基于处理器的系统300的模板图像可以包括要在源图像中识别的目标或其他预定感兴趣项目的一个或多个数字图像。从所示实施例的流程200可以理解,由基于处理器的系统300接收的迭代多方向搜索信息可以包括除源图像和模板图像之外的信息。例如,可以在实施例的方框201处接收各种信息,如搜索范围信息、多方向搜索模式信息、搜索区域位置信息等,用于实施本发明的多方向图像搜索。

除了接收迭代多方向搜索信息211的前述接收之外,方框201处的操作还可以包括各种功能。例如,可以执行处理和/或存储一些或全部的接收的迭代多方向搜索信息的操作,例如提供关于模板图像和/或源图像的预处理(如过滤、平滑、调整大小、配准等)。

在图2所示流程200的方框202,所示的迭代多方向图像搜索动作将模板图像转换为1D表示。在根据本发明实施例的操作中,通过基于处理器的系统300的逻辑为多方向图像搜索的每个方向将模板图像转换为1D表示。例如,模板图像110的图像数据可以通过求和(例如,沿着多方向搜索的一个方向计算中值或平均像素的总和)、FFT(例如,沿着多方向搜索的一个方向计算像素的离散傅立叶转换)、或其他转换方法从2D域转换为1D表示以一维地(如1D向量)表示该图像数据。

图4A显示多方向搜索包括水平和垂直方向的一个示例。因此,将模板图像110转换为水平方向(如多方向搜索的第一方向)的1D表示可以包括将转换方法(如求和、FFT等)应用于模板图像中的水平行像素的每个像素。转换方法同样可以应用于形成模板图像的每行像素(如箭头401所示,顺序遍历每行像素)和用于一维地表示图像数据的组合结果(例如,从水平像素行数据导出的水平像素1D向量,如图形402中所示对于模板图像中每个水平行像素都有一个数据点(如幅度))。类似地,将模板图像110转换为垂直方向的1D表示(如多方向搜索的第二方向)可以包括将转换方法(如求和、FFT等)应用于模板图像中的垂直列像素的每个像素。转换方法同样可以应用于形成模板图像的每列像素(如箭头403所示,顺序遍历每列像素)和用于一维地表示图像数据的组合结果(例如,从垂直像素列数据导出的垂直像素1D向量,如图形404中所示对于模板图像中每个垂直列像素都有一个数据点(如幅度))。在所示的示例中,水平/垂直像素1D向量包括模板图像的每行/每列的信息(如中值或平均像素值的总和、像素的FFT等),从而提供模板图像的多方向搜索的每个方向的实质上唯一的1D表示。应当理解,可以在不同的方向转换中使用相同或不同的转换方法(例如,多方向搜索的第一方向的转换可以使用第一转换方法,多方向搜索的第二方向的转换可以使用第一或第二转换方法)。

本发明实施例的迭代多方向图像搜索被配置以适应源图像内的模板图像的对象(如感兴趣目标)的旋转和/或缩放变化。因此,方框202的处理可以作用为以多个方向(如45°、90°、135°、180°、225°、270°、315°等)旋转模板图像,用于在目标改变了相对方向时在源图像内确定感兴趣目标的位置。例如,图4B中所示的实施例除了模板图像110的原始方向之外还示出模板图像110旋转45°(旋转的模板图像411)、90°(旋转的模板图像412)、135°(旋转的模板图像413)、225°(旋转的模板图像414)、270°(旋转的模板图像415)和315°(旋转的模板图像416)的旋转。另外或可选地,方框202的处理可以作用为以多个比例(如75%、100%、150%等)缩放模板图像,用于在目标改变相对大小时在源图像内确定感兴趣目标的位置。例如,除了模板图像110的原始比例之外,图4C中所示的实施例示出缩放75%(缩放的模板图像421)和150%(缩放的模板图像422)模板图像110的比例。

在根据实施例的方框202的操作中,其中提供模板图像的旋转和/或缩放,多个方向实例中的每一个模板图像(如旋转的模板图像411-414)和多个缩放实例中的每一个模板图像(如缩放的模板图像421-422)都被转换为1D表示,如上面关于模板图像110所描述的。例如,将每个旋转模板图像和缩放模板图像转换为一个相应的水平方向(如多方向搜索的第一方向)的1D表示,可以包括将转换方法(如求和、FFT等)应用于该特定旋转/缩放模板图像的水平像素行的每个像素。转换方法同样可以应用于形成该特定旋转/缩放模板图像的每行像素以及用于一维表示该特定图像数据的组合结果(如水平像素1D向量)。类似地,将每个旋转的模板图像和缩放的模板图像转换为一个相应的垂直方向(如多方向搜索的第二方向)的1D表示,可以包括将转换方法(如求和、FFT等)应用于该特定旋转/缩放模板图像的垂直像素列的每个像素。转换方法同样可以应用于形成该特定旋转/缩放模板图像的每列像素以及用于一维表示该特定图像数据的组合结果(如垂直像素1D向量)。

在流程200的所示实施例的方框203处,关于源图像120确定一个搜索区域,以便使用模板图像在源图像内进行迭代搜索,将在下面进一步描述。为了易于使用模板图像110的1D表示在搜索区域进行搜索,本发明实施例相应地将源图像120的搜索区域转换为1D表示,也将在下面进一步描述。在根据实施例的操作中,通过基于处理器的系统300的逻辑,使用与转换模板图像相同的转换方法(如求和、FFT等),为多方向图像搜索的每个方向将源图像的搜索区域转换为1D表示。应当理解,根据实施例的实施,关于模板图像的多方向搜索的一个特定方向使用的转换方法和关于搜索区域的多方向搜索的该方向使用的转换方法是相同的。

根据实施例,搜索区域的确定可以使用各种参数和/或其他信息,例如可以是预定的,和/或可以关于任何特定实施来确定。例如,由基于处理器的系统300的逻辑使用以确定迭代多方向图像搜索的搜索区域(例如,可以在迭代多方向搜索信息211内提供给基于处理器的系统300)的搜索范围信息、多方向搜索图案信息、搜索区域位置信息等,可以由用户或执行迭代多方向图像搜索的系统提供。另外或替代地,基于处理器的系统300的逻辑在确定用于迭代多方向图像搜索的搜索区域时使用的搜索范围信息、多方向搜索模式信息、搜索区域位置信息等可以由基于处理器的系统300使用提供给其的其他信息、机器学习技术等来计算或确定。

迭代多方向搜索的实施例使用一个搜索范围(如图5的搜索范围500)以在源图像内建立要搜寻模板图像的一个区域。搜索范围的大小优选地包括一个可能找到模板图像中表示的感兴趣目标、同时可能小于源图像的区域,以减少搜索所执行的处理量,如图6中源图像120内确定的搜索范围500。在以下情况时搜索范围可以较大:当预期感兴趣目标在构成源图像的一系列运动图像内比较快地移动时,当感兴趣目标的可能位置的不确定性比较高时,当感兴趣目标本身(且模板图像也是如此)比较大时,等等。相反,在以下情况时搜索范围可以较小:当预期感兴趣目标缓慢移动或在构成源图像的一系列运动图像内保持相对静止时,当感兴趣目标的可能位置的确定性相对较高时,当感兴趣目标本身(且模板图像也是如此)相对小时,等等。

在确定搜索区域时,本发明实施例可以计算或确定搜索范围的中心(Cx,Cy)。该搜索范围中心的信息可用于定位源图像内的搜索范围,从而确定源图像内要搜索的区域。在根据本发明实施例的操作中,搜索范围中心信息可用于对源图像识别的搜索区域位置确定搜索范围的中心。例如,可以将源图像的搜索区域位置所在确定为源图像120的中心,以便适应在整个源图像中搜寻模板图像110(例如,当感兴趣目标在源图像内的可能位置未知时)。作为另一示例,例如源图像的搜索区域位置所在可确定为某部分源图像120的中心,其中模板图像110中感兴趣目标会预期出现或最后确定已出现在所述某部分源图像120中,如此当感兴趣目标的预期或可能位置的信息已知时为模板图像优化在源图像内搜索。不管用于计算或确定源图像的搜索区域位置所在的具体基础是什么,具体实施的搜索范围500优选地将中心(例如设置的中心(Cx,Cy))确定在该所在,以确定迭代多方向搜索中使用的搜索区域。

与其在整个区域的搜索范围内进行搜索,本发明实施例允许在一个搜索区域的定义为搜索范围的一个子部分的缩小区域内搜索。例如,基于处理器的系统300的逻辑可以使用搜索范围信息以及其他迭代多方向搜索信息,例如模板图像大小信息和多方向搜索图案信息,用于确定源图像120内的一个或多个被配置用于在多个搜索方向的每个方向上进行图像搜索的搜索区域。实施例的搜索区域在源图像内为模板图像提供一个用于在多方向搜索模式的多个方向上搜索的搜索区域。作为一个示例,实施例可以使用一个或多个交叉搜索图案来找到一个交叉搜索区域,例如可以包括彼此交叉的第一方向搜索部分(如水平搜索部分)和第二搜索部分(如垂直搜索部分)。

图5中显示一个根据交叉搜索模式确定搜索区域550实现交叉搜索区域的例子。搜索区域550例如可以通过将水平矩形551定义为具有对应于搜索范围500的宽度的长度和对应于模板图像110的高度的宽度,以及通过将垂直矩形552定义为具有对应于搜索范围550的高度的长度和对应于模板图像110的宽度的宽度来确定。从置于搜索范围500内交叉于中心(Cx,Cy)的水平矩形551和垂直矩形552的区域(例如,水平矩形551垂直居中于Cy,垂直矩形552水平居中于Cx)确定搜索区域550的初始迭代,如图5的左半部分所示。

实施例的搜索区域550的初始迭代对应于要搜索的源图像120的一个特定部分。例如,如上所述,中心(Cx,Cy)可以是位于源图像120的一个搜索区域位置所在,如图6所示。为了易于使用上述模板图像110的1D表示在源图像内进行搜索,图2所示的流程200在方框203的操作用于将源图像120的搜索区域550转换为对应于多方向图像搜索的每个方向的1D表示。例如,源图像120内的多方向图像搜索区域550的图像数据可以使用求和(如沿着多方向搜索的一个方向的中值或平均像素的总和)、FFT(如沿着多方向搜索的一个方向的像素的离散傅立叶变换)、或其他一维表示图像数据的转换技术(如1D向量),从2D域变换为1D表示。

图6继续上述在其中多方向搜索包括水平和垂直方向的示例。在该示例性实施例中,将源图像120的搜索区域550转换为水平方向(如多方向搜索的第一方向)的1D表示,可以包括将转换方法(如求和、FFT等)应用到搜索区域550的垂直矩形552中水平像素行上的每个像素。转换方法同样可以应用于形成垂直矩形的每行像素(如图7A的箭头701所示,顺序遍历每行像素)和用于一维地表示图像数据的组合结果(例如,从水平像素行数据导出的水平像素1D向量,如图形702中所示对于垂直矩形中每个水平行像素都有一个数据点(如幅度))。类似地,将源图像120的搜索区域550转换为垂直方向(如多方向搜索的第二方向)的1D表示,可以包括将转换方法(如求和、FFT等)应用于水平矩形551中垂直像素列上的每个像素。转换方法同样可以应用于形成水平矩形的每列像素(如图7B的箭头703所示,顺序遍历每列像素)和用于一维地表示图像数据的组合结果(例如,从垂直像素列数据导出的垂直像素1D向量,如图形704中所示对于水平矩形中每个垂直像素列都有一个数据点(如幅度))。在所示的示例中,水平/垂直像素1D向量包括一个有源图像120的搜索区域的每行/列的信息(如中值或平均像素值的总和、像素的FFT等)的向量。

在流程200的实施例的方框204,模板图像110的多方向1D表示和搜索区域550的多方向1D表示用于在源图像120中迭代地搜索模板图像110。在根据实施例的迭代多方向图像搜索操作中,如下面进一步描述的,通过使模板图像的适当的1D表示(例如,在方框202处导出的模板图像水平像素1D向量和模板图像垂直像素1D向量)和源图像内搜索区域的1D表示(例如,最初在方框203处导出的搜索区域水平像素1D向量和搜索区域垂直像素1D向量,以及在方框204的迭代中重新导出的)相关,沿多方向搜索模式的多个方向,在源图像120的搜索区域550中进行搜索模板图像110。同样如下面进一步描述的,可以迭代地更新源图像120内搜索区域550的所在,例如基于从搜索中导出的运动向量,直到在源图像120内找到模板图像110的匹配位置。

图8显示本发明实施例的以可由流程200在方框204实施的迭代多方向图像搜索为前提的流程800。在所示实施例中,在模板图像1D表示(如方框202)和初始搜索区域1D表示(如方框203)已经生成之后进入到流程800。因此,流程800的第一次迭代被示为从方框802开始,因此最初省略更新源图像的搜索区域及生成更新的搜索区域1D表示,如在方框801所提供的。如以下实施例详细描述的,这样的更新可以根据在流程800的迭代多方向图像搜索的第一次迭代中可能还没有的运动向量信息来提供(例如,运动向量最初被设置为零)。然而,如果有这样的运动向量信息或者在迭代多方向图像搜索的第一次迭代中就要更新初始搜索区域和相关的1D表示,则可以在方框801处进入流程800以进行这种更新处理(如下面所描述的)。

在图8所示流程800的方框802处,对多方向搜索的第一方向(如水平)的模板图像1D表示(如模板图像水平像素1D向量)和多方向搜索的第一方向的搜索区域1D表示(如搜索区域水平像素1D向量)进行相关(correlation)。例如,基于处理器的系统300的逻辑可以对源图像内当前搜索区域执行模板图像水平像素1D向量和搜索区域水平像素1D向量的互相关。根据实施例执行的相关性,识别出第一方向模板图像1D表示(如模板图像水平像素1D向量)在第一方向搜索区域1D表示(如搜索区域水平像素1D向量)内的最佳匹配。用于识别出最佳匹配的相关标准例如可以是绝对差值和(SAD)、平均绝对误差(MAE)、均方误差(MSE)和/或其他可用于选择最相似向量的方法。因此,沿第一方向轴(如X轴)的模板图像的该最佳匹配的位置信息可以从相关性导出。该位置信息例如可以沿模板图像水平像素1D向量的X轴在搜索区域水平像素1D向量内找到最佳匹配的中心位置(CUx)。

多方向搜索的第一方向的运动向量信息在所示实施例的方框803确定。例如,基于处理器的系统300的逻辑可以分析关于多方向搜索的第一方向的模板图像1D表示和多方向搜索的第一方向的搜索区域1D表示执行的相关性,以确定第一方向运动向量(如MVx)。第一方向运动向量MVx可以提供关于从中心(Cx,Cy)沿第一方向的轴(如X轴)的当前运动估计的信息,如图5和6所示。例如,运动向量MVx可被确定为X轴上的当前搜索区域中心(Cx)与模板图像水平像素1D向量沿X轴最佳匹配的中心位置(CUx)之间的差(如MVx=Cx-CUx)。在所示实施例流程800的方框804处,运动向量信息(如MVx)被存储供以后分析和/或用于更新源图像的搜索区域。

在图8所示流程800的方框805处,对多方向搜索的第二方向(如垂直)的模板图像1D表示(如模板图像垂直像素1D向量)和多方向搜索的第二方向的搜索区域1D表示(如搜索区域垂直像素1D向量)进行相关。例如,基于处理器的系统300的逻辑可以对源图像内当前搜索区域执行模板图像垂直像素1D向量和搜索区域垂直像素1D向量的互相关。根据实施例执行的相关性,识别出第二方向模板图像1D表示(如模板图像垂直像素1D向量)在第二方向搜索区域1D表示(如搜索区域垂直像素1D向量)内的最佳匹配。因此,沿第二方向轴(如Y轴)的模板图像的该最佳匹配的位置信息可以从相关性导出。该位置信息例如可以沿模板图像垂直像素1D向量的Y轴在搜索区域垂直像素1D向量内找到最佳匹配的中心位置(CUy)。

多方向搜索的第二方向的运动向量信息在所示实施例的方框806确定。例如,基于处理器的系统300的逻辑可以分析关于多方向搜索的第二方向的模板图像1D表示和多方向搜索的第二方向的搜索区域1D表示执行的相关性,以确定第二方向运动矢量(如MVy)。第二方向运动向量MVy可以提供关于从中心(Cx,Cy)沿第二方向的轴(如Y轴)的当前运动估计的信息,如图5和6所示。例如,运动向量MVy可以被确定为Y轴上的当前搜索区域中心(Cy)与模板图像垂直像素1D向量沿Y轴最佳匹配的中心位置(CUy)之间的差(如MVy=Cy-CUy)。在所示实施例流程800的方框807处,运动向量信息(如MVy)被存储供以后分析和/或用于更新源图像的搜索区域。

在所示流程800的方框808处,分析运动向量信息(如MVx和MVy)以确定模板图像相对于源图像的移动是否被指示。例如,如果模板图像的中心位置与先前中心位置相同,则可以确定模板图像已经聚集在源图像的对应部分上。根据实施例的实施,如果多方向搜索的每个运动向量为零,则在多方向搜索的当前迭代中没有检测到模板图像相对于源图像移动,表示模板图像已经聚集在源图像中的相应位置上。如果运动向量信息的分析指示模板图像相对于源图像没有移动(即已经根据1D表示的相关性找到模板图像的位置),则所示实施例退出流程800(即继续图2的流程200)。但是,如果运动向量信息的分析表明模板图像相对于源图像存在移动(即模板图像的位置尚未被找到,要进行进一步的迭代多方向图像搜索),根据实施例的处理进行到方框801。

在所示流程800的方框801处,更新源图像的搜索区域并生成对应的更新搜索区域1D表示。例如,基于处理器的系统300的逻辑可以基于在迭代多方向图像搜索的当前迭代中确定的运动向量信息来更新搜索区域。作为一个示例,可以通过将运动向量加到当前中心位置(如(Cx+MVx,Cy+MVy))来确定更新的中心(Cx,Cy),如图5和6所示。因此,源图像120的更新的搜索区域550可以从置于搜索范围500内交叉于更新的中心(Cx,Cy)(如(Cx+MVx,Cy+MVy)的水平矩形551和垂直矩形552的区域来确定(如(Cx+MVx,Cy+MVy),水平矩形551在垂直方向上重新居中于Cy+MVy,垂直矩形552在水平方向上重新居中于Cx+MVx),如图5的右半部分所示。更新的中心(Cx,Cy)设置在由运动向量信息建议的源图像120的一个搜索区域位置所在,如图6所示。为了便于使用上述模板图像110的1D表示在源图像内进行搜索,图8所示的流程800的方框801处的操作用于将源图像120的更新的搜索区域550转换成对应于多方向图像搜索的每个方向的1D表示。例如,可以使用求和(如沿着多方向搜索的一个方向的中值或平均像素的总和)、FFT(如沿着多方向搜索的一个方向的像素的离散傅里叶变换)、或一维表示图像数据的其他转换技术(如1D向量)将源图像120内的更新的多方向图像搜索区域550的图像数据从2D域转换为1D表示,如上面关于初始多维度搜索区域所讨论的(方框203)。

在更新了搜索区域并生成了相应更新的搜索区域1D表示之后,根据所示实施例的处理继续进行流程800的另一次迭代。因此,流程800的迭代多方向图像搜索可以迭代直到在源图像120内识别出模板图像110的位置为止。在源图像内找到模板图像的位置时(例如在方框804或807处的一个确认的判定提供模板图像110在源图像120内的一个最终中心(Cx,Cy),如图9所示),根据所示实施例的处理进行到流程200的方框205。

应当理解,尽管图8的示例性实施例流程800提供关于第一(如水平)和第二(垂直)搜索方向的迭代多方向图像搜索,但是流程可以轻易地扩大以适应多方向图像搜索的许多搜索方向。例如,可以添加第三(如深度)搜索方向的方框,例如用于配置3D源图像的多方向图像搜索。

再次参考图2,在流程200的所示实施例的方框205,输出关于通过迭代多方向图像搜索识别的图案匹配的信息。例如,可以输出在源图像中识别出的模板图像的位置所在信息221,例如可以包括最终中心(Cx,Cy)。应当理解,实施例的位置所在信息221可以包括除上述最终中心位置之外或作为其替代的信息。例如,位置所在信息221可以包括运动向量信息(例如,指示模板图像移动或移动速率的一个或多个运动向量,诸如提供关于来自初始搜索区域位置的移动的信息,关于一个先前源图像的移动的信息等)。例如,这些信息可用于质量控制、缺陷检查、运动估计、图像配准、目标定位、立体匹配、自主车辆导航等。

对使用上面讨论流程200实现的实施例的迭代多方向图像搜索和使用诸如实现全搜索和六边形搜索的传统方法的模板图像搜索在源图像内的模板图像搜索进行比较,表明迭代多方向图像搜索方法通常更快地识别出目标图像。下表显示了使用全搜索、六边形和迭代多方向图像搜索方法进行模板图像搜索所需的时间。

方法 全搜索 六边形搜索 迭代多方向图像搜索
时间(秒) 7 2 1

从前述内容可以理解,迭代多方向图像搜索的实施例为模板图像提供了对源图像相对快速的搜索。此外,实施例的迭代多方向图像搜索的实现比传统方法使用更少的计算资源,例如存储器和处理能力,例如由于多方向搜索易于搜索范围的子部分的使用,基于模板图像和源图像的1D表示的有效使用搜索等。实施例的迭代多方向图像搜索特别适合于大模板匹配,尽管也可以适应任何规模的模板图像。作为进一步的优点,即使在模板图像的主题(如感兴趣目标)经过旋转和缩放变化的情况下,实施例的迭代多方向图像搜索也适应源图像内模板图像的检测。实施例的迭代多方向图像搜索可以以软件实施、硬件实施及其组合。

应当理解,已经提供了上述示例性实施例以帮助理解本发明,本发明概念可应用于其他实施。例如,尽管已经关于为第一(如水平)和第二(垂直)搜索方向配置的多方向图像搜索讨论了实施例,但是本发明中的概念可以应用于更多搜索方向(如3、4等等)和/或除水平和垂直之外的搜索方向(如左对角线、右对角线、深度等)。同样地,尽管已经参考包括交叉搜索模式的多方向搜索模式讨论了实施例,但是本发明中的概念可以应用于不同的搜索模式配置和/或具有更多或更少的交叉(如多个交叉搜索模式)。作为一个示例,图10显示了在搜索范围1000中确定的搜索区域1050的一个示例,包括具有多个交叉的搜索模式。搜索区域1050的多交叉配置特别适合于大搜索范围的情况。

尽管已经详细描述了本发明及其优点,但是应该理解,在不脱离由所附权利要求限定的本发明的精神和范围的情况下,可以进行各种改变、替换和变更。此外,本申请的范围不旨在限于说明书中描述的过程、机器、制造、物质组成、装置、方法和步骤的特定实施例。本领域普通技术人员从本发明的公开内容将容易理解,目前存在或稍后开发的实现与本文所描述的相应实施例基本相同的功能或者基本相同的结果的方法、机器、制造、物质组合物、装置、方法或步骤可以根据本发明来使用。因此,所附权利要求旨在在其范围内包括这样的过程、机器、制造、物质组成、装置、方法或步骤。

27页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:通过人类语音的细粒度评价进行口语技能的教学与评估

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!