用于特征检测的采样的制作方法

文档序号:18901926发布日期:2019-10-18 22:03阅读:151来源:国知局
用于特征检测的采样的制作方法

本公开涉及对数据进行采样,以为图像中的位置生成特征描述符,从而用于在分析图像时执行描述符匹配。



背景技术:

在计算机视觉系统和图像处理系统中,能够检测和描述诸如图像中的局部特征之类的特征是有用的。“特征”是图像内容的一部分,可用于在多个图像中跟踪内容。诸如局部特征之类的特征是图像的区域的特征而不是整个图像的特征,即它涉及图像的一部分。有用的是,特征是可甄别的,使得可以以一定程度的置信度在图像之间匹配特征。特征可以对应于图像中的对象或对象的一部分。可以使用计算机视觉系统中已知的算法来执行特征的检测。特征检测算法通常计算图像信息的抽象,以用于确定受测图像区域中是否存在特定类型的特征(例如,边缘或拐角)。特征检测算法可以输出图像中表示受测特征的部分的位置(例如,像素坐标)。例如,拐角检测算法可以输出图像中表示角落或有可能表示拐角的区域的像素坐标。特征检测算法通常不提供关于所检测的特征的性质的信息。图像特征的检测允许比较图像之间的特征,这允许知道图像序列中的对象可能移动,和/或相机视点在图像序列之间可能如何变化。

例如,可以考虑图像中对应于特征的位置或点以及另一图像中可以对应于同一特征的位置或点。可以分析每个位置周围的图像的小区域以查看位置是否对应于同一特征。这可以通过形成表示受测图像位置,并因此表示该位置处的特征的描述符来完成。描述符可以是表征特定特征的描述符向量的形式。可以通过从每个位置周围的根据描述符图案的小区域提取和处理样本来形成每个位置的描述符。然后可以比较这些图像中不同特征的描述符以评估位置对应于同一特征的可能性。

确定描述符的算法的示例是尺度不变特征变换(sift)算法和加速鲁棒特征(surf)算法。定向fast[加速段测试的特征]和旋转brief[二进制鲁棒独立基本特征](orb)算法是sift的替代方案。确定描述符的其他算法是二进制鲁棒不变可伸缩关键点(brisk)算法和快速视网膜关键点(freak)算法。这些算法尤其关于所使用的描述符图案方面是不同的。



技术实现要素:

本发明内容被提供以介绍了以下具体实施方式中进一步描述的概念选择。本发明内容不旨在标识所要求保护的主题的关键或必要特征,也不旨在限制所要求保护的主题的范围。

根据一个方面,提供了一种计算机实施的方法,其用于为图像中的位置生成特征描述符,从而用于在分析图像时执行描述符匹配,所述方法包括:

通过对代表图像的尺度空间数据进行采样来确定表征图像中的位置的样本集,所述尺度空间数据包括代表图像在多个长度尺度下的数据;以及

根据所确定的样本集生成特征描述符。

代表图像的尺度空间数据可以包括图像在多个长度尺度下的预滤波表示。图像的预滤波表示可能已使用低通滤波器进行滤波。图像的预滤波表示可能已使用高斯滤波器和盒式滤波器中的一个或多个进行滤波。

代表图像的尺度空间数据可以包括图像金字塔。

该方法可以包括使用描述符图案对代表图像的尺度空间数据进行采样。描述符图案可以是brisk、orb或freak描述符图案中的一种,也可以是基于brisk、orb或freak描述符图案的。

图像中的位置可以是图像中的点。图像中的位置可以是图像中的像素位置。图像中的位置可以是图像中的关键点。

对尺度空间数据进行采样可以包括:

对尺度空间数据中代表位置在不同长度尺度下的各个部分进行分析,以确定针对每个经分析的部分的可能性的度量,所述可能性的度量代表特征在相应的长度尺度下的可能性

确定所述空间数据中导致可能性的度量中的转折点的所述部分;

根据所确定的部分,确定长度尺度,在该长度尺度下对尺度空间数据进行采样以确定所述样本集。

相对较小的尺度空间表示可以根据所标识的长度尺度被置于相对较大的尺度空间表示内。相对较小的尺度空间表示可以包括描述符金字塔,并且相对较大的尺度空间表示可以包括图像金字塔。该方法可以包括在所标识的长度尺度下使用相对较小的尺度空间表示对尺度空间数据进行采样。

该方法可以包括根据一个或多个位置标识或检测算法来标识图像中的位置。该方法可以包括标识尺度空间数据中与图像中所标识的位置相关联的位置和长度尺度中的至少一项。对尺度空间数据进行采样可以包括根据所标识的长度尺度对尺度空间数据进行采样。对尺度空间数据进行采样可以包括在尺度空间数据中与所标识的长度尺度相关联的级别处的数据进行采样。对尺度空间数据进行采样可以包括在尺度空间数据中与所标识的长度尺度以上和以下的长度尺度相关联的级别处的数据之间进行插值。

尺度空间数据可以包括在不同长度尺度下进行滤波的数据。

在不同长度尺度下滤波的尺度空间数据中的数据可以对应于要关于描述符图案中距描述符图案的中心不同径向距离被提取的经滤波样本。

描述符图案可以包括围绕图像中的位置的至少一个环。所述至少一个环可以是圆、波浪圆和多边形中的一种。描述符图案可以包括多个环。多个环中的环可以是同心的。

所确定的样本集可以存储在数组中,并且根据所确定的样本集生成特征描述符可以包括形成经修改数组。

该方法可以包括:为图像中的位置确定旋转度量,所述旋转度量描述图像的取向与图像在该位置处的特性方向之间的角度;以及根据所确定的旋转度量来生成特征描述符。形成所述经修改数组可以包括将数组的至少一部分的元素移位该数组的相应部分中的多个位置,所述位置的数量取决于所确定的旋转度量。形成所述经修改数组可以包括在所确定的样本集中的两个或更多个样本之间进行插值。所确定的样本集中的两个或更多个样本可以从描述符图案的单个环中获得。形成所述经修改数组可以包括沿着所述两个或更多个样本所对应的环的一部分形状在所确定的样本集中的两个或更多个样本之间进行插值。

所确定的样本集中的两个或更多个样本可以从描述符图案的多个环中获得。多个环中的两个环可以在描述符图案中相邻。所确定的样本集中的两个或更多个样本可以包括来自第一环的n1个样本和来自第二环的n2个样本,其中n1≤n2。第一环可以在第二环的径向内侧。

该方法可以包括一旦生成特征描述符就丢弃经修改数组。

根据另一方面,提供了一种描述符生成系统,其用于为图像中的位置生成特征描述符,从而用于在分析图像时执行描述符匹配,所述描述符生成系统包括:

特征描述符生成器,所述特征描述符生成器被配置为:

通过使用采样单元对代表图像的尺度空间数据进行采样来确定表征图像中的位置的样本集,所述尺度空间数据包括代表图像在多个长度尺度下的数据;以及

根据所确定的样本集生成特征描述符。

代表图像的尺度空间数据可以包括图像在多个长度尺度下的预滤波表示。图像的预滤波表示可能已使用低通滤波器进行滤波。图像的预滤波表示可能已使用高斯滤波器和盒式滤波器中的一个或多个进行滤波。

代表图像的尺度空间数据可以包括图像金字塔。

该特征描述符生成器可以被配置为使用描述符图案对代表图像的尺度空间数据进行采样。描述符图案可以是brisk、orb或freak描述符图案中的一种,也可以是基于brisk、orb或freak描述符图案的。

图像中的位置可以是图像中的点。图像中的位置可以是图像中的像素位置。图像中的位置可以是图像中的关键点。

该特征描述符生成器可以被配置为通过以下方式对尺度空间数据进行采样:

对尺度空间数据中代表位置在不同长度尺度下的各个部分进行分析,以确定针对每个经分析的部分的可能性的度量,所述可能性的度量代表特征在相应的长度尺度下的可能性;

确定所述空间数据中导致可能性的度量中的转折点的部分,;

根据所确定的部分,确定长度尺度,在该长度尺度下对尺度空间数据进行采样以确定所述样本集。

该描述符生成系统可以被配置为:根据所标识的长度尺度将相对较小的尺度空间表示置于相对较大的尺度空间表示内。相对较小的尺度空间表示可以包括描述符金字塔,并且相对较大的尺度空间表示可以包括图像金字塔。该描述符生成系统可以被配置为在所标识的长度尺度下使用相对较小的尺度空间表示对尺度空间数据进行采样。

该描述符生成系统可以被配置为:根据一个或多个位置标识或检测算法来标识图像中的位置。该描述符生成系统可以被配置为标识尺度空间数据中与所述图像中所标识的位置相关联的位置和长度尺度中的至少一项。该特征描述符生成器可以被配置为根据所标识的长度尺度对尺度空间数据进行采样。该特征描述符生成器可以被配置为在尺度空间数据中与所标识的长度尺度相关联的级别处的数据进行采样。该特征描述符生成器可以被配置为在尺度空间数据中与所标识的长度尺度以上和以下的长度尺度相关联的级别处的数据之间进行插值。

尺度空间数据可以包括在不同长度尺度下进行滤波的数据。在不同长度尺度下滤波的尺度空间数据中的数据可以对应于要关于描述符图案中距描述符图案的中心不同径向距离被提取的经滤波样本。

描述符图案可以包括围绕图像中的位置的至少一个环。所述至少一个环可以是圆、波浪圆和多边形中的一种。描述符图案可以包括多个环。多个环中的环可以是同心的。

该描述符生成系统可以被配置为将所确定的样本集存储在数组中,并且该特征描述符生成器可以被配置为:通过形成经修改数组,根据所确定的样本集生成特征描述符。

该描述符生成系统可以被配置为确定图像中位置的旋转度量,所述旋转度量描述图像的取向与图像在该位置处的特性方向之间的角度;以及根据所确定的旋转度量来生成特征描述符。该描述符生成系统可以被配置为:将数组的至少一部分的元素移位该数组的相应部分中的位置的数量来形成经修改数组,所述位置的数量是根据所确定的旋转度量来确定的。该描述符生成系统可以被配置为:在所确定的样本集中的两个或更多个样本之间进行插值来形成所述经修改数组。所确定的样本集中的两个或更多个样本可以从描述符图案的单个环中获得。

该描述符生成系统可以被配置为:沿着所述两个或更多个样本所对应的环的形状的一部分在所确定的样本集中的两个或更多个样本之间进行插值来形成所述经修改数组。

所确定的样本集中的两个或更多个样本可以从描述符图案的多个环中获得。多个环中的两个环可以在描述符图案中相邻。所确定的样本集中的两个或更多个样本可以包括来自第一环的n1个样本和来自第二环的n2个样本,其中n1≤n2。第一环在第二环的径向内侧。

该描述符生成系统可以被配置为:一旦生成特征描述符就丢弃经修改数组。

根据另一方面,提供了一种描述符生成系统,其被配置为执行如本文所述的方法。

根据另一方面,提供了如本文所述的描述符生成系统,其中,所述描述符生成系统体现在集成电路上的硬件中。

根据另一方面,提供了一种使用集成电路制造系统制造如本文所述的描述符生成系统的方法。

根据另一方面,提供了一种使用集成电路制造系统制造如本文所述的描述符生成系统的方法,所述方法包括:

使用布局处理系统处理图形处理系统的计算机可读描述,以生成体现描述符生成系统的集成电路的电路布局描述;以及

使用集成电路生成系统,制造根据电路布局描述的描述符生成系统。

根据另一方面,提供了用于执行如本文所述的方法的计算机程序代码。

根据另一方面,提供了一种非暂时性计算机可读存储介质,其上存储有计算机可读指令,所述计算机可读指令在计算机系统处执行时,使计算机系统执行如本文所述的方法。

根据另一方面,提供了一种集成电路定义数据集,其在集成电路制造系统中进行处理时,将集成电路制造系统配置为制造如本文所述的描述符生成系统。

根据另一方面,提供了一种非暂时性计算机可读存储介质,其上存储有如本文所述的描述符生成系统的计算机可读描述,当在集成电路制造系统中进行处理时,使集成电路制造系统制造体现描述符生成系统的集成电路。

根据另一方面,提供了一种计算机可读存储介质,其上存储有如本文所述的描述符生成系统的计算机可读描述,当在集成电路制造系统中进行处理时,使集成电路制造系统:

使用布局处理系统处理描述符生成系统的计算机可读描述,以生成体现描述符生成系统的集成电路的电路布局描述;以及

使用集成电路生成系统,制造根据电路布局描述的描述符生成系统。

根据另一方面,提供了一种集成电路制造系统,其被配置为制造如本文所述的描述符生成系统。

根据另一方面,提供了一种集成电路制造系统,其包括:

非暂时性计算机可读存储介质,其上存储有如本文所述的描述符生成系统的计算机可读描述;

布局处理系统,其被配置为处理计算机可读描述,以生成体现描述符生成系统的集成电路的电路布局描述;以及

集成电路生成系统,其被配置为根据电路布局描述来制造描述符生成系统。

附图说明

参考附图通过示例的方式描述本发明。在附图中:

图1a显示了根据brisk的特征描述符图案的示例;

图1b显示了根据freak的特征描述符图案的示例;

图2显示了用于生成特征描述符的过程的流程图;

图3显示了特征描述符图案的示例;

图4显示了使用图3所示的描述符图案获得的样本数组的示例;

图5显示了用于生成特征描述符的示例性过程的流程图;

图6a显示了基于移位数组中的元素生成特征描述符的示例性过程的流程图;

图6b显示了基于在数组中元素值之间进行插值来生成特征描述符的示例性过程的流程图;

图7显示了环形形状的示例;

图8a示意性地显示了图像金字塔的示例;

图8b示意性地显示了描述符金字塔的示例;

图8c示意性地显示了描述符图案的表示;

图9示意性地显示了描述符生成装置的示例;

图10示意性地显示了描述符生成装置的另一示例;以及

图11是集成电路制造系统的示意图。

具体实施方式

以下描述通过示例的方式呈现,以使本领域技术人员能够制造和使用本发明。本发明不限于本文所述的实施例,并且对所公开的实施例的各种修改对于本领域技术人员而言是显而易见的。实施例仅通过示例的方式来描述。

在计算机视觉和图像处理技术中,可以将图像或图像的特征与其他图像或其他图像的特征进行比较,以尝试标识这些图像或特征之间的匹配。这在许多应用中是有用的,包括但不限于相机校准、3d重建、视觉slam(同时定位和映射)、图像配准和/或图像拼接、视频稳定和对象检测/识别和/或跟踪。在对象跟踪中,需要知道同一对象在不同图像中的位置。例如,一个图像中的位置(x,y)处的对象可能已移动到另一个图像中的位置(x’,y’)。对象在图像的参考系中的这种移动可能是由于对象本身的移动、拍摄或生成图像时有效相机位置和/或取向的移动、或这两者而产生的。图像可以包括真实场景的图像、计算机生成的场景或真实和计算机生成的场景的组合。图像可以形成图像的序列,例如视频序列。

在图像重建或拼接中,期望了解两个或更多个图像如何彼此相关。例如,如果一个相机视点已从一个图像移动到下一个图像,或者如果有两个相机对相同的场景进行成像(这两个相机彼此间隔开),则在两个图像之间可能存在交叠区域。比较交叠区域中的特征使得两个图像相对于彼此的位置和取向可以被确定。可以定义从一个图像到另一个图像的映射操作。一个图像可以与另一个图像对准。因此,了解相机位置或有效相机位置在场景或图像之间的变化是有用的。有效相机位置的变化可以包括相机的横向平移、相机的旋转、相机变焦的变化、透视变化等。

在图像处理的初始阶段,确定图像中的特征(或者更通常是多个特征)是有用的。作为示例,在图像中可能有数十或数百个特征被标识。

特征可以是图像的内容中的结构特征,例如点、边、角、脊、模糊点(blob)等。可以通过对图像的区域执行处理来检测特征。该区域可以是围绕图像中感兴趣的位置(例如特征可能出现的位置)定义的。检测特征的处理可以计算图像信息的抽取,如下文将解释的。

在检测特征时,可以研究诸如已被标识为感兴趣的像素之类的位置。在一些示例中,可以研究整个图像的像素的子集。在其他示例中,可以研究图像中的所有像素。

特征描述符

如上文所述的感兴趣的特征(在一些示例中可能包括图像中的所有像素),可以被分析以确定特征或特征周围区域的抽取表示或表征。特征的这种表示可以被称为特征描述符。特征描述符包括与生成特征描述符时分析的位置/特征相关的信息。该信息可以被布置为特征向量。也就是说,特征描述符可以包括特征向量。以特征向量的形式布置信息可以方便不同特征的特征描述符之间的简单比较,例如用于特征匹配。

特征描述符可以通过若干方式之一形成,并且下面提供了一些示例。

标识感兴趣的位置。该位置可以是图像中的点,例如图像中的像素位置。感兴趣的位置可以是图像中的关键点,即图像中感兴趣的点。关键点或感兴趣的位置是图像中具有特定特性或在图像中突出的点或区域。可以根据一个或多个关键点标识或检测算法来标识关键点。例如,关键点或感兴趣的位置可以被定义为图像中的角和/或边。可以执行角搜索和边搜索,以标识该图像中感兴趣的位置。感兴趣的位置可以以任何合适的方式定义,并对其进行相应的搜索。

特征描述符通常是基于描述符图案从图像中提取和处理样本而形成的。描述符图案,或采样图案,是在感兴趣的位置周围对点进行采样的图案。描述符图案跨区域延伸。区域通常包括感兴趣的位置,并且通常以感兴趣的位置为中心。在图1a中给出了根据brisk(二元鲁棒不变可伸缩关键点)算法使用的特征描述符图案的示例。这些点代表采样点。圆圈代表围绕每个采样点的对每个相应采样点处的采样值有贡献的区域。围绕每个采样点的区域可以通过对该区域内的像素值应用滤波器(例如高斯滤波器或盒式滤波器)来处理,以便确定采样点的采样值。因此,该区域中每个像素的值可以贡献于该区域中心点处的采样值。例如,这可以使采样点所在的像素值中的噪声平滑。例如,圆圈的大小取决于在相应采样点处应用的滤波器的标准偏差。

如参考图1a可见,中心采样点被布置在一系列同心环上另外的采样点围绕。在图1a中,四个采样环围绕中心采样点。

图1b示出了另一个示例性采样图案。在图1b中显示了freak(快速视网膜关键点)算法中使用的图案。在图1b中,点代表采样点,并且圆圈代表围绕那些点的对每个采样点处的采样值有贡献的相应区域。同样,可以通过对每个区域内的像素值应用滤波器(例如高斯或盒式滤波器)来处理这些区域,以便确定采样点的采样值。参考图1b,中心采样点再次被布置在一系列同心环上另外的采样点围绕。

一旦根据采样图案获得(即采样)针对采样点的值,就可以在这些值之间进行比较,以便确定采样点的特征描述符。这些比较是根据已知的比较方案进行的。这是为了确保在每个采样点的值之间进行比较的重复性和一致性。在一些示例中,可以进行成对比较。例如,可以将采样点的采样值的列表或数组中的点x的值与该列表或数组中的点y的值进行比较。可以在两个或两个以上的样本值之间执行比较。可以执行样本值的线性组合。可以执行更复杂的操作。所进行的比较的数量可以大于(或小于或等于)采样点的数量。例如,可以将采样点与多于一个的其他采样点进行比较。输出值可以存储在数组中,例如线性数组。数组具有的元素的数量将与已进行的比较的数量相同。例如,可以有512个比较,从而生成512个元素的线性数组。数组中的值以特征向量的形式代表特征描述符。

在一些示例中,比较可以是阈值比较。例如,可以确定点x的值是否大于或等于点y的值。如果为真,则可以生成‘1’的输出值,否则可以生成‘0’的输出值。在比较是阈值比较的情况下,如以上示例,可以输出二进制字符串。例如,如果选择512对采样点,则成对比较的结果将是512位长的二进制字符串。可以根据需要选择其他数量的采样点对来进行成对比较。

特征描述符不需要是二进制的。例如,其可以是浮点向量。

如将意识到的,采样点的配置在如图1a和1b所示的描述符图案之间有所不同。所提取的采样值之间的比较也可能有所不同。当将不同的图案应用到图像中的同一位置时,这将给出不同的特征描述符。因此,在比较不同位置的特征描述符以确定那些位置的匹配时,应该使用相同的描述符图案来生成那些特征描述符。

从图像中提取的样本集可以包括与特征描述符图案中的采样点的数量相对应的多个样本。因此,样本集包括对应于根据描述符图案所提取的值的样本。样本可以对应于强度值。可以使用其他像素属性值。

从图像中提采样本的过程(例如形成可从中生成特征描述符的样本集)可以涉及相对大量的处理(即以相对大的处理成本实行),并且可以涉及从存储图像值的内存中读取图像数据,这可能引入明显的延迟。

特征描述符(例如二进制字符串)可以在低的或相对低的(例如,与样本提取过程相比)的处理成本下进行比较。可以通过计算特征描述符之间的异或(xor)、通过计算特征描述符之间的欧氏距离(其中特征描述符向量包括浮点值)或计算特征描述符之间的汉明距离来执行特征描述符之间的比较。这种比较将给出对特征描述符的相似性的指示,从而给出对应特征的相似性的指示。

根据特征描述符的相似性,可以确定受测位置是否彼此对应。

在对象在两个图像之间横向平移的情况下(由于场景中对象位置的变化和相机位置的变化中任一者或两者产生的),即在图像之间没有旋转或透视变化的情况下,将足以在相同的取向和长度尺度下为每个图像生成特征描述符。

然而,在图像之间可能存在旋转的情况下(例如,因为相机视点在两个图像之间旋转),这可能是由于用于对场景进行成像的两个相机之间的不对准产生的,那么简单地使用如上所述的描述符图案可能不会使得匹配被确定,即使在图像中的位置确实实际上对应于同一对象或特征的情况下也不会。一般来说,期望考虑可能的旋转,因为图像之间的转换通常不会提前知道。因此,特征描述符的生成应该是旋转不变的。换句话说,特征描述符的生成应使得:允许在相同(或足够相似)的图像部分之间确定匹配,即使在那些图像部分相对于彼此处于任意角度的情况下。

这可以通过相对于彼此旋转描述符图案和图像来完成。特性描述符可以在一数量的这样的相对旋转下生成,这样的相对旋转的数量可以取决于实施方式。例如,描述符图案可以旋转,并用于该旋转下的图像上。描述符图案的不同旋转可以用于图像上。可以实行一系列旋转,直至图案和图像的满程360度相对旋转。这有助于确保最佳匹配结果。特征匹配的准确度通常将取决于为图像中每个位置生成的单个特征描述符的数量,其中,在使用更多数量的旋转分割来获得特征描述符的情况下,可以获得更高的准确度。例如,在描述符图案以10度增量旋转,并且为每个旋转生成特征描述符的情况下,总共将生成36个特征描述符。在描述符图案以5度增量旋转,并为每个旋转生成特征描述符的情况下,总共将生成72个特征描述符。这在计算上是昂贵的,因为其涉及到确定许多不同的特征描述符,并且可能无法可靠地找到最佳匹配的旋转,因为真正的旋转可能与为其生成特征描述符的任何单个旋转不同。如此,这种方法通常不用于实践中。

一种替代方案(通常遵循所述方法)是首先对图像的位置进行采样,以确定该图像的位置的旋转的一些度量。例如,旋转度量可以是图像的取向与图像位置的特性方向之间的角度。例如,特性方向可以是图像梯度。图像梯度可以是图像位置的特征的方向变化,例如诸如强度或颜色之类的像素属性。例如,图像梯度是一方向,在该方向上,属性在该图像位置上的变化率最大。在给定的位置处可能有若干图像梯度,例如强度梯度和颜色梯度。不同属性的图像梯度可能不指向同一方向。在这种情况下,可以使用图像中位置处的主要梯度方向。主要梯度方向可以被选择为最陡梯度的方向(即变化率最大的方向)或选定特性(例如强度)的梯度方向。梯度可以是受测图像的区域的局部梯度。例如,在采样点跨区域分布时,可以确定该区域a的图像梯度。图像梯度的确定是在图像处理领域的技术人员的认知范围内,并且这里不需要详细讨论。针对图像的特定区域所确定的梯度,相对于该区域的像素都是相同的,无论该区域在图像中的取向如何。因此,当图像的该区域旋转时,例如在连续采集的图像之间,图像梯度相对于图像的取向会有所不同。因此,旋转度量在这些图像之间将相应地有所不同。图像的取向由形成图像的像素网格定义。图像梯度可以用于生成旋转不变的特征描述符,如现在将要解释的。

一旦已确定了图像梯度(例如局部图像梯度),就可以旋转图像,以便在已知的方向上对梯度取向,例如沿着正y轴。图像可以以任何便利的方式旋转。例如,可以通过确定特征描述符图案的区域中未旋转图像的每个像素的新像素坐标(即旋转的像素位置)来旋转图像。旋转图像可以包括确定旋转像素位置处的新像素值。然后可以在图像的这个新取向下应用特征描述符图案。替代地,且等同地,特征描述符图案可以在应用于未旋转的图像之前旋转,这可能导致更有效的实施方式。图像相对于特征描述符图案的取向确保:尽管图像的区域是最初取向的,但是特征描述符图案可以以一致的方式应用,即相对于图像的该区域的图像内容的相同取向。这使得特征描述符的更准确地比较被实行,而不取决于图像中图像特征的取向。以这种方式,特征描述符不应取决于图像或图像中特征的取向,所以可以认为是旋转不变量。

常规方法涉及两个采样过程,如参考图2将讨论的。第一采样过程对来自图像的区域的值进行采样,以确定图像的该区域的旋转度量。第二采样过程对来自该图像的区域的值进行采样,以确定该区域的特征描述符。两个采样过程不需要是相同的采样图案。实际上,在每个过程中采样的图像区域的大小不需要是相同的。初始采样过程中使用的图案可以被称为梯度采样图案,因为其允许确定采样区域的梯度。

参考图2,梯度采样图案应用于图像202中的期望位置。基于采样值,可以确定该位置附近区域的旋转度量(例如梯度)。例如,在梯度采样图案是圆形的,并且位于期望位置的中心,则所确定的梯度将与圆形采样图案所覆盖的区域有关,该圆形采样图案的中心位于期望位置。然后,通过取决于所确定的旋转度量204的角度(例如,通过确定为旋转度量的角度)执行旋转,以便使采样图像区域相对于特征描述符图案一致地取向。然后将描述符图案应用于图像206中的位置。根据描述符图案从图像中提采样本,并基于例如对所提取的样本值的成对比较生成特征描述符,如上所讨论的。

本发明人已经认识到,上述方法在处理成本和从内存读取的数据量(本文中可以被称为“内存带宽”)方面是浪费的,因为要生成旋转不变的特征描述符,需要两个采样过程。在第一采样过程中所提取的样本集用于确定图像区域的旋转度量,然后将其丢弃。本发明人已经认识到,用于确定旋转度量的样本也可用于确定旋转不变的特征描述符。这节省了第二个样本提取过程的处理成本和内存带宽,这在一些情况下,可以有效地将与特征描述符生成相关联的处理成本和内存带宽减半。因此,本文所述的方法可以显著降低该技术的处理成本和内存带宽,同时保持良好的准确度水平。因为与特征描述符生成过程其余部分的处理成本和内存带宽相比,与提取样本相关联的处理成本和内存带宽较高,所以可以实现显著降低总体处理成本和内存带宽。例如,样本提取的处理成本高于比较特征描述符的处理成本。执行初始样本提取过程,以允许确定旋转度量。可以执行特征描述符的后续生成,而无需执行另外的样本提取。这将在下面详细解释。因此,可以节省/避免与这些另外的样本提取相关联的处理成本。

在样本提取过程中,需要处理和/或传输相对大量的数据,例如允许对每个采样点进行本地区域的滤波的数据。例如,在采样点是基于覆盖比如15个像素位置的滤波器的情况下,将需要处理和/或传输这些15个像素中每个像素的诸如属性值(例如强度值)之类的值。传输该数据占用系统带宽。在本技术中,避免后续的样本提取过程可以避免与这样的样本提取过程相关联的带宽要求。

在上述要使用图像取向过程期间所提取的相同样本集生成特征描述符的情形下,可以通过执行样本提取过程生成旋转度量。然后,可以在不执行样本提取过程的情况下生成特征描述符。因此,带宽节省可以接近其他情况下将需要的带宽的一半(因为只执行一个而不是两个样本提取过程)。类似地,生成特征描述符的处理成本可以减半或者减少例如大约一半。

在其他示例中,在要在图像区域和描述符图案的不同相对取向下生成特定特征的特征描述符的情况下,在处理成本和/或带宽要求方面的潜在节省可以大于上面段落中给出的示例中的节省。举一个简单的示例,在连续旋转的取向下生成十个特征描述符,每个特征描述符都与特定特征有关,在可能的十个样本提取过程中只需要一个。这可能导致处理和/或带宽减少90%(或接近90%的量,因为在实践中可能有一些处理和带宽要求,但水平要低得多)。因此,这可以加快特征描述符的处理,从而整体上加快匹配过程。

图3示出了可以在本技术中使用的描述符图案。本技术不局限于这个描述符图案,如下将解释的。然而,下面的讨论将使用该图案作为示例提供解释。

在该描述符图案中,中心采样点301(标记为‘0’)被四个环302、306、310、314围绕。最内层环(第一环302)上的采样点被标记为‘1’到‘10’;下一最内层环(第二环306)上的采样点被标记为‘11’到‘24’;再下一最内层环(第三环310)上的采样点被标记为‘25’到‘39’;最外层环(第四环314)上的采样点被标记为‘40’到‘59’。在该示例中,总共有60个采样点。在其他示例中,采样点的数量可能不同。可以使用更多或更少的采样点。

每个采样点处采样的值可以是采样点所共在的像素的值,例如给定或预先确定的像素属性的值,例如该像素的强度或颜色值(例如rgb或yuv)或局部梯度。在采样点不与单个像素对准的情况下,在该采样点采样的值可以是两个或更多个相邻像素的值的一些组合,例如平均值或插值。这样的组合(包括平均值和插值)可以使用众所周知的方法来计算。

在图3中,采样点被显示为与像素位置(正方形网格)共在一处。事实并非如此。在优选示例中,允许采样点落在像素位置之间,例如使得它们可以均匀地围绕环分布。为了便于理解,在图3中采样点被显示为与像素位置共在一处。整数位置(例如与像素位置对准的位置)可以更快和/或更简单地采样。然而,如果特征位置本身是非整数的,整数采样位置也可能导致在非整数像素位置处采样图像。

每个采样点处采样的值可能取决于围绕相应采样点的区域。在一个示例中,如图3所示,可以在相应采样点应用滤波器。圆圈以标记为‘10’、‘20’、‘31’和‘42’的像素为中心,即圆圈304、308、312和316代表滤波器的范围。如图所示,这些滤波器是以圆形对称的滤波器,但情况并非如此。滤波器可以包括低通滤波器。滤波器可以包括高斯滤波器。圆圈304、308、312和316的大小可以代表在相应采样点处应用的高斯滤波器的标准偏差。在另一个示例中,滤波器是盒式滤波器。盒式滤波器可以提供高斯滤波器的近似值;使用盒式滤波器比使用高斯滤波器更快。因此,使用盒式滤波器而不是高斯滤波器可以降低处理成本和时间。所使用的滤波器,无论是高斯滤波器、盒式滤波器还是其他已知滤波器,都可以根据系统要求进行选择,例如速度、滤波器行为和/或性能和/或带宽。使用滤波器允许采样考虑采样点本身的局部图像区域。

图3中所示的滤波器的范围代表应用于环中每个采样点的滤波器。关于每个环仅显示一个说明性滤波器范围。在实践中,给定环中的每个采样点将使用相同范围的滤波器进行采样。

关于图3中的中心采样点(即,标记为‘0’的像素)没有显示与滤波器范围相对应的圆圈。在该示例中,描述符图案以给定像素为中心,并且该像素的期望属性值用作中心采样点的采样值。中心采样点可以与单个像素对准,如图所示。然而,这是不必要的,因为在中心采样点采样处采样的值也可以通过局部平均、插值或滤波获得,如上所述。其余采样点不一定与像素位置对准。因此,尽管其他采样点也可能是像素对准的,但这是不必要的。

再次参考图3,每个环之间的滤波器范围大小不同。第一环302的滤波器范围304最小。第二环306的滤波器范围308是第二大的。第三环310的滤波器范围312是仅次于第二环的滤波器范围的。第四环314(即最外层环)的滤波器范围316最大。滤波器的范围不需要从描述符图案的中心径向增加。不同环的滤波器范围可能相同。在一些示例中,径向内层环的滤波器范围可能大于径向外层环的滤波器范围。

在所示的描述符图案配置中,在远离中心采样位置的连续环上,采样点的密度减小。这是因为环的周长增加了。在所示的配置中,虽然较大环的采样点的数量增加,但由于环的大小和采样点的数量,点的平均密度仍然降低。环的大小(或从中心采样点向外延伸的环的数量)和环上采样点的密度之间的这种特定关系并不总是成立的。在其他示例中,不同的关系是可能的。例如,采样点的密度可以在连续的环上保持相同或基本相同。采样点的密度也可能在连续的环上增加,从中心向外进行。

在图3所示的示例中,可以看出所使用的滤波器304、308、312、316的范围足够大,以足以覆盖与所考虑的采样点位于同一环上的采样点(其位于该采样点的任一侧)。例如,第一环302上标记为‘10’的采样点周围的滤波器范围覆盖了该环上相邻的采样点:标记为‘1’和‘9’的采样点。类似地,第三环310上标记为‘31’的采样点周围的滤波器范围覆盖了该环上相邻的采样点:标记为‘30’和‘32’的采样点。第二环306和第四环314上的采样点也是如此。

一般而言,滤波器的范围可足以覆盖同一环上的至少一个相邻采样点。在一些示例中,滤波器的范围足以覆盖同一环上的两个相邻采样点,一个位于所考虑的采样点的任一侧。

滤波器的范围不必覆盖相邻的采样点。然而,这在相邻采样点的滤波器范围相互交叠的情况下有用。这将是滤波器范围本身覆盖相邻采样点的情况,但也可能是滤波器范围不覆盖相邻采样点的情况。例如,在滤波器延伸超过相邻采样点之间距离的一半,则滤波器将交叠。

本发明人已经认识到这是有益的,因为滤波器范围的交叠意味着以这种方式采样的值将在采样点之间平滑地变化,即相邻采样点之间的采样值应连续变化。因此,采样值将在沿着同一环(即在圆周方向上)的采样点之间平滑或连续地变化,其中,这些采样点的滤波器范围彼此交叠。

以类似的方式,本发明人已经认识到,在至少两个环之间,滤波器的范围也彼此交叠是有益的。这意味着采样值将在这些相邻环(即径向)的采样点之间平滑或连续地变化。如图3所示,在图中可以看出,以标记为‘31’的像素位置为中心的滤波器的滤波器范围312将与以标记为‘16’的像素位置为中心的滤波器的滤波器范围交叠:将滤波器312的范围与滤波器308的范围进行比较。

优选地,所述滤波器的范围足以使所述滤波器与相邻采样点的滤波器沿同一环且在相邻环之间交叠。如图3所示,其中,以第二个环306上标记为‘20’的像素位置为中心的滤波器的滤波器范围308覆盖了同一(第二)环上的相邻采样位置(即,标记为‘19’和‘21’的位置)以及径向内层环上的相邻采样位置(第一环302:标记为‘7’和‘8’的位置)和径向外层环上的相邻采样位置(第三环310:标记为‘34’和‘35’的位置)。由于此滤波器范围与其他采样点交叠,因此其将与以这些采样点为中心的滤波器交叠。如上所述,滤波器范围不需要交叠其他采样点本身,以便交叠位于这些采样点中心的滤波器。因此,小于所示示例中所示的滤波器仍然可以获得这些益处。

在上述参考图2的情形下,如果最初根据梯度采样图案提采样本,以确定图像区域的旋转度量,并且然后根据描述符图案提采样本,以确定特征描述符,那么梯度图案和描述符图案不需要是相同的。在本技术中,如果要使用提取的样本集来确定旋转度量,并且要使用相同的提取的样本集来确定特征描述符,那么使用描述符采样图案来从图像中提采样本是便利的(尽管不必要)。

例如,如图3所示,可以在相对于图像的初始取向上使用描述符图案从图像中提采样本。提取的样本形成初始样本集。提取的样本或初始样本集表征了描述符图案在初始取向上的中心位置。

初始样本集可以用于确定相对于图像采样区域的旋转度量。旋转度量(例如采样区域的主要梯度方向)可以以任何便利的方式确定。旋转度量可以是相对于采样图像的取向的角度α。该角度可以由确定的梯度确定,例如采样区域的主梯度方向。例如,可以相对于图像的正y轴确定角度α,使得在梯度沿着正x轴指向的情况下,角度可以被确定为90度,并且在梯度沿着负x轴指向的情况下,角度可以被确定为270度,等等。

在所示的示例中,描述符图案中有60个采样点。可以形成包括所提取的采样本的数组。在本示例中,数组包括60个元素。参考图4,该数组可以是线性数组,包括从标记为‘0’到‘59’的位置进行采样的元素。注意,数组将不包含数字0到59;图4中的标签显示了与数组元素和描述符图案的对应关系。数组元素‘0’包括从图3中标记为‘0’的位置提取的样本值,并且对于数组元素的其余部分也是类似的。数组元素可以包括值的组合,例如多于一个的值。例如,这样的示例是提取值是rgb颜色值。数组元素可以包括rgb值中的多个值,即红色、绿色和蓝色通道的值。

要注意,图4中所示的线性数组被五条线分开,以显示与中心采样位置和四个环的对应关系。这也可以通过将图4中每个数组元素显示的数字与图3中的采样位置标签进行比较来看到。这样的数组拆分仅用于说明性目的,并且不意味着需要单独的数组。

如本文所讨论的,无需对图像进行第二次或后续多次的采样,就能够生成旋转不变的特征描述符,即以一致方式表征位置的特征描述符,而不考虑图像区域的旋转。相反,可以根据初始样本集或在初始取向上提取的样本(例如,使用描述符图案)生成特征描述符。以这种方式,样本提取过程只需进行一次。这将节省处理和节省内存带宽,因为不需要后续的提取过程。从初始样本集生成特征描述符,以考虑角度α(旋转度量)。因此,可以生成特征描述符,使得特征描述符本身(至少大致)与在相对于图像的旋转取向上执行第二采样过程时发生的情况相同。

特征描述符可以通过从初始样本集进行采样来生成,例如从存储初始样本集的数组中生成,而不是从图像本身生成。至少有两种方法可行。在一种方法中,可以移位存储初始样本集的数组元素,以便生成经修改数组(例如移位数组)。在另一种方法中,可以对数组的元素执行插值,以生成经修改数组(例如插值数组)。这些方法的组合是可行的。例如,可以在成对比较中使用经修改数组的元素来生成特征描述符。下面将更详细地描述这些方法。

基于特征描述符的经修改数组可以通过从包括初始样本集的数组中进行采样来生成。不需要对这个数组的值执行额外的滤波(尽管可以这样做)。数组可以存储在系统内存中,例如本地存储到特征描述符处理器(即,被配置为执行特征描述符生成和/或匹配的处理器)。这样的数组可以很小(在所示示例中,其只需要存储60个元素),因此将不会使用太多的内存空间。存储数组的内存使用很可能不比包括上面讨论的那些的益处重要。

一旦基于经修改数组生成了特征描述符,就可以在描述符比较中使用它。可以存储特征描述符;不需要存储中间值,例如数组的内容。丢弃这些中间值可以节省内存空间。在一些示例中,不需要中间值来为图像中另外的特征生成特征描述符。但是,如果需要,可以通过从包括初始样本集的数组中进一步采样来生成图像中相同特征位置的另外的特征描述符,从而形成另外的经修改数组,相应的特征描述符可以基于这些另外的经修改数组。

现在将参考图5描述了生成特征描述符的过程。该过程可选地包括在图像中的位置处使用描述符图案来提取初始样本集502。初始样本集可以被储存504。初始样本集可以存储在数组中。在步骤506中确定了采样图像区域的旋转度量。旋转度量是根据初始样本集(即,数组的元素)来确定的。旋转度量通常是图像区域的特性方向(例如梯度)与图像取向之间的角度。确定图像区域的特性方向如何与已知方向(例如,正y轴)相关,允许图像区域的描述符是旋转不变的,即,无论图像中区域的原始取向如何,都可以确定取向并解释描述符生成过程中的一致方式。这允许对图像区域进行更一致(即旋转不变)的比较。在一些示例中,根据在506和初始样本集508处确定的旋转度量确定表征图像中图像位置的样本集。初始样本集可以形成数组。可以从数组中提取样本并对其进行处理(例如,通过执行插值),以形成经修改数组。经修改数组的元素可以形成样本集,其以旋转不变的方式表征图像位置。该过程根据所确定的样本集510(例如,根据经修改数组)生成特征描述符。

移位数组元素

在一种方法中,可以移位数组的元素(例如周期性地移位)以生成经修改数组,基于此可以生成特征描述符,例如,通过本文讨论的成对比较方法。元素的移位可以例如代表(或近似代表)描述符图案与图像之间的相对旋转,例如与旋转度量相对应的旋转。元素可以沿着与元素所在的环相对应的数组的部分移位。例如,中心采样点在所有旋转时都将是相同的(因为在所示示例中,描述符图案将围绕中心采样点旋转)。因此,中心采样点不会移位。因此,将包括初始采样点集的数组表示为“初始[0:59]”,并且将代表相对旋转的修改(或移位)的数组表示为“旋转[0:59]”,可以看出:

初始[0]=旋转[0]

其余的元素沿着它们相应的环以圆形的方式移位。在图4所示的示例中,第一环302由初始[1:10]表示。第二环306由初始[11:24]表示。第三环310由初始[25:39]表示。第四环314由初始[40:59]表示。这些环中的循环移位元素意味着,对于单个移位(单独处理环以作说明):

环1:旋转[1:10]=初始[10,1:9]

环2:旋转[11:24]=初始[24,11:23]

环3:旋转[25:39]=初始[39,25:38]

环4:旋转[40:59]=初始[59,40:58]

这意味着可以对描述符图案的可用旋转进行量化,以生成特征描述符。同样,单独地取每个环,第一环有10个可能的旋转,第二环有14个可能的旋转,第三环有15个可能的旋转,并且第三环有20个可能的旋转。

因此,每个环中的单个移位对应于描述符图案的不同角度旋转:在图3的示例中,沿着一个元素的第一、第二、第三和第四个环中的每个移位分别对应于36、26、24和18度的近似角度旋转。角度旋转至少是近似的,因为采样点可能不完全沿着圆圈对准,并且沿着每个环的采样点可能不会围绕该环等角度地间隔开。在实践中,期望有效地以相同的角度旋转每个环。沿数组移位元素(对应于每个环的相同角度旋转)将导致更准确的结果。然而,本发明人已经发现,即使在环之间影响不同的有效角旋转的情况下,所产生的特征描述符仍然能够有用地确定图像中的特征匹配。因此,这种可以在处理器负载减少的情况下执行的方法被发现是有益的。

在一个示例中,每个环中的采样点数量可以是径向内层环中采样点数量的整数倍。因此,第二环中的采样点数量可以与第一环中的采样点数量相同,也可以是第一环中的采样点数量的两倍,等等。因此,最内层环中一个采样点位置的移位将对应于外层环中一个或多个整个采样点位置的移位。因此,对于第一环中任意数量的采样点位置的移位,保持几何图案的其他环的采样点位置可能会发生对应的移位,即图案将作为一个整体旋转,而不是被扭曲。

该示例限制每个环中采样点位置的可用旋转数,其中,这些位置中的一个处于初始取向。这意味着可能的旋转将被相应地量化。描述符图案的期望旋转由旋转度量给出,例如根据初始样本确定。通过选择最接近期望旋转的可能旋转之一,可以从可能旋转的量化集合中选择旋转。在不同环上可能的旋转数量不同的情况下,可以为每个环选择不同的旋转,使得每个所选择的旋转都是最接近期望旋转的旋转。

在替代方案中,可以通过在采样点处的值之间求平均值或插值(例如,使用线性插值或一些高阶插值),获得可能位于这些环中采样点位置之间的外层环中可能采样点的值。这可以放宽对外层环中采样点位置数量的要求,同时还避免量化描述符图案的可能取向的需要。

在另一个示例中,为了避免最内层环中采样点位置的数量导致可用旋转的量化,可以通过在采样点位置处的值之间求平均值或插值来获得一个或多个环中的可能采样点处的值。

为了示出上述内容,考虑包括两个环的示例性描述符图案;内层环有10个采样点位置,并且外层环有20个采样点位置,形成31个元素数组(example_array[0:30]),如下所示:

中心采样点:example_array[0]

内层环:example_array[1:10]

外层环:example_array[11:30]

经修改数组可以通过从example_array中进行采样来生成,如下所示。第一经修改数组array1(相对于初始方向有效旋转36度)可以通过将与内层环对应的元素移位一个位置,并将与外层环对应的元素移位两个位置来生成:

中心采样点:array1[0]=example_array[0]

内层环:array1[1:10]=example_array[10,1:9]

外层环:array1[11:30]=example_array[29:30,11:28]

第二经修改数组array2(相对于初始方向有效旋转72度)可以通过将与内层环对应的元素移位两个位置,并将与外层环对应的元素移位四个位置来生成:

中心采样点:array2[0]=example_array[0]

内层环:array2[1:10]=example_array[9:10,1:8]

外层环:array2[11:30]=example_array[27:30,11:26]

将参考图6a描述基于移位数组中的元素生成特征描述符的过程。从旋转度量(例如从初始样本集确定的旋转度量)中确定数组移位,从而移位数组602中的元素。该数组包括初始样本集。然后根据所确定的数组移位604移位数组元素,以形成经修改数组。可以基于经修改数组生成特征描述符。不需要形成经修改数组。在一些示例中,可以使用数组元素的移位来确定经修改数组元素之间的成对(或其他)比较,并根据这些比较生成特征描述符。

第三经修改数组array3(相对于初始方向旋转18度)可以通过在给定位置和相邻位置处对与内层环相对应的元素的值求平均值(即在中间点进行插值)并且将与外层环相对应的元素移位一个位置来生成,如下所示:

中心采样点:array3[0]=example_array[0]

内层环:array3[1:10]=

example_array[1/2(10+1),1/2(1+2),1/2(2+3),…,1/2(9+10)]

外层环:array3[11:30]=example_array[30,11:29]

基于数组中元素的插值生成特征描述符的过程将参考图6b进行描述。使用数组中元素的值执行的插值是根据旋转度量(例如根据初始样本集确定的旋转度量)610确定的。该数组包含初始样本集。然后使用数组612中的元素的值来执行所确定的插值。插值的结果可以形成经修改数组。经修改数组可以至少临时地被存储。可以确定要执行插值集,其中插值集使用数组中元素的每个值。可以使用数组中元素的每个值来执行所确定的插值集。可以基于经修改数组生成特征描述符。例如,每个环的插值(例如代表旋转)可以作为操作集来执行。在执行操作集时,可以使用数组的所有元素。经修改数组中的元素数量可能与经修改数组所基于的数组中的元素数量相同。

这些简单的示例是说明性的。其他旋转是可能的,如将理解的,并且可以使用不同的插值因子来确定初始样本集的样本位置之间任意位置处的值。

再次参考图3和图4,所提取的数组有60个元素,即初始[0:59]。该数组中有五个概念性样本集:涉及中心采样点(初始[0])、第一环(初始[1:10])、第二环(初始[11:24])、第三环(初始[25:39])和第四环(初始[40:59])。除了中心采样点外,其他四个概念集中的每一个都可以称为“矢量圆”。为了估计可基于其生成特征描述符的值(生成用于第二次采样提取的估计),值可以是围绕每个矢量圆的圆周进行移位和插值中的至少一种。

例如,使用通过执行初始样本提取获得的初始样本集,可以确定旋转度量。基于将每个圆环的周长划分成若干圆周部分(或“弧”),这个角度(例如,以度数或弧度为单位)可以转换成另一单位。圆周部分的数量可以取决于每个矢量圆中元素的数量。因此,在所示示例中,第一环包括10个圆周部分,第二环包括14个圆周部分,第三环包括15个圆周部分,并且第四环包括20个圆周部分。

对于每个矢量圆,通过找出沿数组移位圆周部分的位置数量,获得另外的“样本提取”(即根据初始样本集所估计的值)的等效值。移位圆周部分的位置数量是实数。可以在两个相邻部分的值之间使用线性插值来近似初始采样点集的两个相邻采样点之间的期望采样点处的期望值。

例如,参考图3,第一环中样本点之间的角度间隔平均为36度(360/10)。为了生成有效角度旋转为α度(例如15度)的经修改数组,可以在每个矢量圆中的相邻采样点之间执行插值。例如,取与从初始[8]顺时针旋转15度相对应的旋转采样位置,可以看出这将是初始[8]和初始[9]的值之间的插值。与从初始[21]顺时针旋转15度相对应的旋转采样位置将是初始[21]和初始[22]的值之间的插值。与从初始[36]顺时针旋转15度相对应的旋转采样位置将是初始[36]和初始[37]的值之间的插值。与从初始[54]顺时针旋转15度相对应的旋转采样位置将是初始[54]和初始[55]的值之间的插值。

如将理解的,参考图4,箭头402代表距描述符图案中心的径向距离。箭头404代表沿环的角度距离。

对于每个环,沿每个矢量圆(沿矢量圆移位数组元素)的元素数量不需要是相同的。根据旋转的测量,可以针对每个环确定移位数组元素的元素数量。要移位数组元素的元素数量可以是与最接近旋转度量的角度旋转相对应的元素数量。例如,在图3的示例中,第一环中的单个元素移位对应于大约36度的角度旋转。类似地,第二、第三和第四环中的单个元素移位对应于大约26、24和18度的角度旋转。在旋转度量被确定为40度角的情况下,可以选择沿每个环最接近40度的元素数量。可以独立于对每个其他环的选择,为每个环选择该数量。在该示例中,数组元素可以在第一环中移位一个元素(对应于36度)、在第二环中移位两个元素(对应于52度,比移位一个元素更接近40度,对应于26度)、在第三环中移位两个元素(对应于48度)和在第四环中移位两个元素(对应于36度)。描述符图案的环可以被视为“拍”到与旋转度量相对应的最近角度旋转。

插值数组元素

下面的讨论将进一步考虑插值。在一种方法中,初始样本集中采样点之间的值可以近似为在线性段上,或者近似为在环的线上,将描述符图案中的两个相邻采样点联结起来。在这种情况下,可以在初始采样集中与两个相邻采样点对应的两个相邻采样值之间执行线性插值。

在另一种方法中,可以执行更高阶的插值,例如二次插值或三次插值。更一般地,可以在初始样本集中的两个或更多个样本值之间实行多项式插值,以在经修改数组中生成用于生成特征描述符的元素。

由于所考虑的样本数将随多项式的阶数增加而增加,因此更高阶的多项式可导致插值结果更接近于描述符图案寻求采样的实际值。以这种方式,使用更高阶多项式可以得到更准确的插值结果。使用更高阶插值也可能增加所需的计算工作量。这可能会增加用于执行插值的硬件的大小(例如硅区),或者可能会增加功耗或处理时间。多项式插值中使用的多项式的阶数可以基于获得插值结果的速度、用于执行插值的硬件的大小、硬件的功耗和插值结果的准确度(或相对准确度)中的至少一个来选择,例如基于期望值速度和准确度之间的权衡。

可以使用方法的任何组合。例如,对于具有较高圆周点密度的环(即,在这些点被相对较低的角度间隔分开的情况下),可以沿着线性段进行插值;对于具有较低圆周点密度的环(即,在这些点被相对较高的角度间隔分开的情况下),可以执行更高阶插值。这种方法是有用的,因为在点被较低的角度间隔分开的情况下,相邻点之间的线性段可能足以接近这些点之间的图像值,而在角度间隔较大的情况下,可能需要更昂贵的高阶插值。

如上文所述,初始样本集的样本之间的这种插值是有用的,因为可以通过执行样本提取来生成初始样本集,该样本提取使用采样点附近的像素值的滤波,例如使用在圆周方向上交叠的滤波函数,例如交叠高斯滤波器。因此,如果移动采样点的位置,所提取的采样值也将平滑地变化。因此,适当地在这些平滑变化的值之间进行插值,以获得用于生成特征描述符的经修改数组值。

在上面的讨论中,经修改数组的值是通过在初始样本集中相同环的样本之间进行插值来生成的。这代表样本之间的插值与中心采样点的径向距离是相同的。还可以在环之间进行插值。这代表样本之间的插值与中心采样点的径向距离是不同的。环之间的插值可以在至少两个环之间。至少两个环在径向方向上相邻。同样,这是有用的,因为通过执行样本提取来获得初始样本集,该样本提取使用采样点附近的像素值的滤波,其中滤波包括在径向方向上交叠的滤波器。

滤波器范围不必同时在径向和圆周方向上交叠。在本文所述的示例中,滤波器范围在至少圆周方向上交叠。

在一些示例中,可以在一个环上的一个采样点与相邻环上的一个采样点之间进行环之间的插值。两个采样点可能位于相同(或相似)的圆周位置,即关于图案成相同的角度。

在其他示例中,可以考虑多于两个的采样点。例如,可以在一个环上的一个采样点(例如处于5度的角度位置)与另一个环上的两个采样点(例如处于0度和10度的角度位置)之间执行插值。环之间的插值可以包括在一个环上数量n1的采样点与另一个(径向外层)环上数量n2的采样点之间进行插值。一个环和另一个环可以在径向方向上相邻。n1和n2可以是相同的数量,或者它们可以是不同的数量。在一些示例中,n1<n2。一个环上采样点的角度范围和另一个环上采样点的角度范围可以以相同(或相似)的角度位置为中心。

例如,在环不是真圆的情况下,在环之间进行插值是有用的。在图3所示的示例中,环不是真圆,相反样本与像素位置对准。因此,环内的相邻样本与中心采样点的径向距离不同。可以确定这种变化,并且在环之间执行插值,以解释这种径向变化。从而提高了样本估计的准确度。

环形形状

在上面描述的示例中,环是圆形的。然而,环不需要是圆形的。可以使用任何合适的形状。例如,可以使用多边形环形状。在采样点取自于多边形的顶点的情况下,这将有效地与圆形采样环相同(因为顶点都位于圆上)。在顶点之间的多边形上取额外的采样点的情况下,会产生差异。在这种情况下,采样点距中心采样点的径向距离将在每个顶点处的最大值与相邻顶点之间的中间点处的最小值之间变化。

其他环形状是可能的。例如,可以使用波状或波浪状环,如图7所示。波浪状环可以是旋转对称的。例如,图7所示的波浪状环具有18阶的旋转对称性。举例来说,波浪状环具有的旋转对称性可以为至少10阶,或为至少20阶,或为至少30阶。较高阶的旋转对称度意味着波浪状环可以覆盖具有足够密度的采样点的环形区域。这可以提高采样点之间实行插值的准确度。

在这样的波浪状环中,或偏离圆形的其他环形状,连续采样点可以位于不同的径向距离。使用包括处于不同径向距离的点的环,允许环在径向方向上彼此之间的间距更大,同时仍然保持采样点的良好径向密度。对于给定的环的径向间距,这可能会增加径向插值结果更接近地遵循采样点处采样的基础值的可能性,即径向插值准确度。因此,可以保持准确度,同时总体上需要更少的采样点。这会导致速度增加。在一些示例中,可以使用多个环来增加采样点的密度。

环不一定都是相同的形状。环形状的组合是可能的。环形状可用于任何合适的配置。

例如通过成对比较,由样本集生成特征描述符,是可以根据所使用的描述符图案来执行的,例如根据描述符图案中环的数量、形状和间距中的至少一个来执行的。根据描述符图案,可以选择进行的成对比较。

采样点可以沿每个环等距分开。这并非是实际情况。采样点可以沿至少一个环等距分开,而不是沿至少一个其他环等距分开。这可能是采样点沿任何环非等距分开的情况。

初始样本提取

在上面的讨论中,通过从图像中采样来形成或获得初始样本集。对像素属性值进行滤波,使得如果移动采样位置,则初始采样集的值将平滑变化。

不需要对图像执行初始采样提取。可以对其他数据(例如预滤波数据)执行初始样本提取。例如,可以对已经滤波的值进行采样,而不是需要滤波多个值的初始采样过程。这减少了描述符生成过程运行时所需的处理量。可以通过将滤波图像所涉及的计算工作预先加载到生成特征描述符之前进行处理的阶段来实现这一点。这可能导致在稍后生成特性描述符时的速度增加。

在计算机视觉中,当分析场景时,通常一开始就不知道什么样的长度尺度适合于描述图像的内容。例如,特定功能是否可能期望出现在4x4像素区域中(即相对较小的长度尺度下)或32x32像素区域中(即相对较大的长度尺度下)。例如,感兴趣的特征出现的长度尺度通常是未知的。此外,对象通常由不同长度尺度下的不同结构组成。因此,考虑不同长度尺度下的特征是合适的。

图像可以由考虑多个不同长度尺度的数据代表。代表图像的数据可以包括代表图像的多尺度数据。代表图像的数据可以包括尺度空间数据。尺度空间数据是不同长度尺度下的数据集,其中,结构以逐渐增大的长度尺度依次被抑制或平滑化。尺度空间数据中较粗(即较长)长度尺度下的数据/结构可以从较细(即较短)长度尺度下的相应数据/结构中获得。

例如,考虑三级数据集,其中第一级以上的层级中的每个像素都是通过求前一级中2x2像素区域中的像素的平均值来生成的。第三级中的每个像素对应于第二级中4个像素的区域和第一级中16个像素的区域。第一级中2x2像素区域中的结构将由第三级平滑化(第一级中2x2像素区域的像素值仅占第三级中像素值的一部分)。

尺度空间数据可以包括在最小长度尺度和最大长度尺度之间以长度尺度表示的结构或特征。尺度空间数据可以通过在不同的长度尺度下(即在最大长度尺度下、最小长度尺度下、以及可选地在最大和最小长度尺度之间的一个或多个长度尺度下)执行滤波来获得,。

不同长度尺度下的滤波对应于关于不同大小环的样本提取。如上所讨论的,径向内层环上的采样可以包括使用相对较小的滤波器大小滤波采样点周围的像素值。径向外层环上的采样可以包括使用相对较大的滤波器大小滤波采样点周围的像素值。较小的滤波器大小对应于更细细节下的滤波,即更小的长度尺度。较大的滤波器大小对应于更粗细节下的滤波,即更大的长度尺度。

数据的尺度空间表示的示例是金字塔,例如图像金字塔。在金字塔中,信号或图像要经过多次平滑和次采样。在一个示例中,金字塔是通过用平滑滤波器平滑图像而形成的。平滑的图像通常被二次采样。可以沿着每个坐标方向执行次采样。在其他示例中,金字塔中一个层级的数据可以由单个步骤过程中另一个层级的数据形成。在所产生的图像上重复该过程。这个过程可以重复很多次。每次实行该过程时,所产生的图像都小于先前的图像。后续图像的空间采样密度降低,即图像分辨率降低。

图像金字塔800的示例在图8a中示出。第一级(0级)位于金字塔的顶部(如图中所取向的,即最宽的部分)。注意,图8a显示了3d金字塔的2d投影。金字塔的每一级代表图像,例如2d图像;从概念上讲,图8a中每一级显示的水平线可以被认为是显示该2d图像的“端视图”。第一级(0级)代表原始图像,而没有任何平滑或子采样。连续较低的层级(即1级到5级)代表原始图像的连续平滑版本,其中在金字塔向下的每个层级的分辨率都降低。这种金字塔可以用几种已知的方式之一形成。例如,金字塔可以通过在层级之间执行低通或带通滤波来形成。金字塔的示例是高斯金字塔。金字塔的另一示例是拉普拉斯金字塔。盒式滤波也可用于生成金字塔。所使用的滤波器类型将取决于速度、滤波器行为和/或期望性能。

金字塔包括离散的数据级,其代表离散的长度尺度,而不是一个连续体。因此,金字塔必然是代表所有长度尺度的“满”尺度空间数据的近似值。与金字塔离散级的那些之间的长度尺度相关的数据可以从金字塔级获得,例如在三线插值中。金字塔是满尺度空间表示的计算效率近似。因此,使用金字塔可以减少处理成本和时间。

以下讨论将在金字塔的背景下进行,以便于参考,但一般将理解的是,可以在适当的情况下使用尺度空间数据表示。

可以为整个图像预先计算金字塔800。当期望在给定的长度尺度下对任何特定点进行采样时,这允许从金字塔中进行采样。描述符图案中的单个采样点可以对应于金字塔中的点。具有相对较大的滤波器大小的采样点将对应于金字塔中较低级的点(即,在图8a的取向朝向金字塔的下端,即数字上较高的级。例如,5级是比1级低的层级),而不是具有相对较小滤波器大小的采样点。在生成特征描述符时,使用尺度空间表示允许快速的实施方式。对整个图像进行金字塔的预计算会产生某些处理成本。更高级的金字塔(即,在图8a的取向上朝向金字塔的下端,即在数值上较低的级)(或者更一般地,具有较高分辨率的尺度空间数据的级)可能预期比较低级(即具有较低分辨率的级)的采样频率更低。这是因为较低级的金字塔对应于特征描述符图案的外层环中位置的采样,其中使用了较大的滤波器。通常外层环中的采样位置比内层环中的采样位置更多。在特征描述符图案的中心,只有单个中心样本位置(301)未被滤波,并且因此将从图像金字塔的最高分辨率级读取。在一些情形下,较高级的数据可能很少或根本没有再使用。然而,很可能会在较低级上重复使用数据。因此,预先计算整个图像的金字塔,也就是说,在不知道需要什么长度尺度的情况下,仍然可以使得在总体上节省计算量。其中一个原因是,在任何情况下,都需要计算较高级来计算较低级。使用预计算的金字塔在较低级下采样数据,避免了每次都需要在这些长度尺度下计算数据。

当期望以给定长度尺度从金字塔进行采样时,可以对金字塔中与该长度尺度相对应的数据进行采样。例如,在期望从金字塔中与2级相对应的长度尺度中进行采样的情况下,可以直接对金字塔中与2级相对应的数据进行采样。也可以从金字塔中的离散级之间采样。例如,如果期望从金字塔2级和3级的长度尺度之间的长度尺度进行采样,可以基于2级和3级下的数据进行采样。例如,滤波(例如三线滤波)可以在2级和3级的数据点上执行,如技术人员将理解的。这样的三线滤波增加了对于处理可忽略的额外处理成本,因为大部分的滤波工作是预先完成的,以获得图像金字塔本身。

可以根据滤波器范围(即采样点周围应用的滤波器大小)选择从尺度空间数据或棱锥图中采样的长度尺度。如果直接对中心采样点进行采样,即仅对一个像素值进行采样,则这可能对应于未滤波的像素,例如金字塔中的0级。使用覆盖更多像素的滤波器进行采样将对应于滤波的像素,即金字塔中的较低级(1、2、3级等)。在滤波器范围在一个方向上覆盖例如4个像素的情况下,滤波器可以对应于金字塔中的2级。在另一个滤波器范围在一个方向上覆盖例如8个像素的情况下,滤波器可以对应于金字塔中的3级。在说明性示例中,位于第一环上的点的采样可以包括从金字塔中的较高级(例如1级)的采样;位于径向外层环上的点(例如第三环)的采样可以包括从金字塔中的较低级(例如,图8a中所示的示例中2级到5级中的一个层级)的采样。这是滤波器范围随着环距中心的径向距离增大而增大的情况。这不需要是所有的示例中的情况。

如图8a所示,在金字塔800中,对值进行采样的水平位置将取决于给定长度尺度下的图像中的期望位置,并且对值进行采样的竖直位置将取决于期望长度尺度。实际上,由于金字塔可能是3d金字塔,“水平”位置是水平平面中的位置。

以类似于将数据的尺度空间表示视为图像金字塔的方式,用于从金字塔中采样的特征描述符图案可以视为“描述符金字塔”。在图8b中给出了描述符金字塔810的示例。虽然描述符金字塔的层级可以对应于图像金字塔中的层级(两个层级之间的竖直间隔可能是先前垂直间隔的一半),但这不一定是实际情况。在图8b所示的示例中,这些层级的不规则地分开。层级的间距取决于描述符图案中使用的滤波器的范围。图8c显示了描述符图案820(其中的环显示为虚线)的示意图示例,以及每个环(实心圆)处的说明性滤波器范围。采样点未被显示。滤波器范围和描述符金字塔中层级之间的对应关系由虚线箭头830显示。通常,描述符图案中用于连续环的滤波器大小不需要每次增加2的因数。因此,描述符金字塔中的层级可以对应于图像金字塔中的分数层级。环的阶数(从描述符图案的中心径向向外移动)不需要与描述符金字塔中层级的阶数相对应。环的阶数将与金字塔中层级的阶数相对应,其中,径向外层环处的滤波器范围依次变大。在一些示例中,不同环上采样点处的滤波器可以具有相同的范围。在一些示例中,径向外层环上采样点处的滤波器的范围可能小于径向内层环上采样点处的滤波器的范围。

对于圆形采样图案,在图3和图8c中示出了其示例,描述符金字塔可称为“描述符锥”。本文使用了术语“描述符金字塔”,但将理解的是,至少在概念上,描述符金字塔可以代表三维中的其他形状。

描述符金字塔可以在概念上置于图像金字塔中,以指示与特征描述符图案的覆盖区相对应的图像金字塔的区域,以及从中获得初始样本集的区域。当对图像金字塔中的数据进行采样以获得初始样本集时,描述符金字塔可以被认为围绕图像金字塔移动。这通过代表图像金字塔内不同的描述符金字塔的点划线和虚线(点划线和虚线的使用有助于图8a中的清晰)示意性地示出。如图所示,描述符金字塔将在图像金字塔的更高层级上显示更大。这是因为描述符金字塔的顶部和底部之间的长度尺度(对应于滤波器大小)发生了相对变化。不管描述符金字塔在图像金字塔内的位置如何,其所覆盖的图像金字塔中的层级的数量可能是相同的。

从金字塔中以最精细的层级进行采样,涉及有效地放置描述符金字塔,使得每个金字塔的最高层级对准,如图8a中的804所示。水平移动描述符金字塔(或者严格地说,在图像金字塔的3d表示的水平平面中移动描述符金字塔的3d表示)将改变图像中应用描述符图案的位置,即描述符图案的中心位置。不需要将描述符金字塔放置为使得描述符金字塔的最高层级(或实际上任何层级)与图像金字塔的最高层级(或任何其他层级)对准。这如806所示,显示了将描述符金字塔放置为使得从尺度空间数据以更大的长度尺度进行采样(为了清晰起见,这里用虚线而不是点划线显示描述符金字塔)。描述符金字塔的另外的示例性位置在808处示出,代表在甚至更大的长度尺度下的采样。在一些示例中,为了放大2的因数(即为了分析分辨率为一半的尺度空间数据),描述符金字塔可以相对于图像金字塔向下移动一个层级(其中,在金字塔的一个层级上的每个像素都是从下一个最高层级的2x2像素块获得的)。

图像金字塔的水平范围代表图像的大小。描述符金字塔的水平范围在最宽的部分代表图像中描述符图案(即描述符图案中采样点的外层环,而不是对应于该外层环中采样点的高斯滤波环的整个范围)的大小(例如,区域或范围)。在最窄的部分(即如所示的底部点),描述符金字塔的水平范围代表滤波层级,其中一个样本表示整个区域。

因此,可以使用在图像金字塔上移动描述符金字塔(对应于从跨图像的位置进行采样)来搜索给定长度尺度下的图像特征匹配。例如,这在对象移动经过相机的情况下是有用的。将描述符金字塔相对于图像金字塔向下移动(对应于在更大的长度尺度下进行采样)可用于搜索图像特征匹配,例如在图像中的给定位置处,以更大的长度尺度。例如,这在对象直接远离相机移动的情况下是有用的。通常,将执行描述符金字塔相对于图像金字塔的水平和竖直移动组合。水平和竖直移动的这种组合允许在执行特征匹配时考虑位置的变化和长度尺度的变化两者。特征匹配过程可以从尺度空间数据的最高层级分辨率开始(即,通过放置描述符金字塔,使其最高层级与图像金字塔的0级对准),但这不一定是实际情况。

这种方法允许在对数据进行采样时使用相同的描述符图案和大小,而不考虑数据采样的长度尺度。这允许执行一致的采样。更大的采样一致性可以允许对所产生的特征描述符进行更准确的比较。

在图像中搜索对象时,描述符金字塔在图像金字塔内的位置可以基于运动估计来选择,例如通过从不同图像中的已知位置估计对象可能的运动。例如,描述符金字塔的位置可以对应于对象的最后一个已知位置,例如在前一个图像中。描述符金字塔的位置可以对应于该最后一个已知位置的移动。例如,如果已知或认为对象在正x方向上以每帧10个像素的速度移动,则在已知对象位于前一图像中的位置(x,y)处的情况下,可以定位描述符金字塔,使得在当前图像中应用关于位置(x+10,y)的特征描述符图案。可以定义应用描述符图案的搜索区域。为了给出一些示例,搜索区域可以以对象的最后一个已知位置、对象的估计位置等为中心。搜索区域可以从对象的最后一个已知位置偏移,偏移取决于例如对象的估计移动。

如所述的,可以在尺度空间数据中以不同的长度尺度生成特征描述符。可以比较每个特征描述符,即关于的不同长度尺度。比较结果可以包括特征在相应长度尺度下的可能性的度量。比较结果可以表明在相应的位置和长度尺度下存在匹配特征。

当对可能性的度量对于更大的可能性而言更大(或更小)时,结果集中的最大值(或最小值)可用于标识该特征所在的最可能长度尺度,或代表该长度尺度的尺度空间数据的部分;一般而言,在可能性的度量中可以使用转折点。所标识的长度尺度可以是包括尺度空间数据的离散长度尺度集中的长度尺度。所标识的长度刻度可以在包括尺度空间数据的离散长度尺度集中的长度尺度之间。在不同的长度尺度下应用特征检测器可以有用地标识特征所在或表示的最可能的长度尺度。在为该特征生成特征描述符时,对尺度空间数据进行采样可以包括在所标识的长度尺度下对尺度空间数据进行采样,或者在长度尺度之间进行插值以插入到所标识的长度尺度的任一侧。

过程可以包括:从图像的尺度空间表示中进行采样以生成旋转度量,以及从图像的尺度空间表示中进行一次或多次另外的采样以生成特征描述符。过程可以包括:从尺度空间表示中进行采样以生成数组,根据该数组生成旋转度量,以及根据该数组和所生成的旋转度量生成特征描述符。过程可以包括:从尺度空间表示中进行采样以生成图像中关于第一位置的第一特征描述符,以及从缩放空间表示中进行采样以生成图像中关于第二位置的第二特征描述符。在实践中,很可能会检测到图像中的许多特征,以便与其他图像中的特征进行匹配。因此,可能会显著地再使用特定图像的尺度空间表示。这证明了预先生成尺度空间表示的额外处理成本,并且根据要考虑的许多特征,可能会使得整体处理和内存带宽节省。

第二图像可以由第二尺度空间数据集代表。过程可以包括从第二尺度空间数据集中进行采样,以生成关于第二图像的特征描述符。过程可以包括:从第二尺度空间数据集中进行采样,以生成关于第三位置的第三特征描述符,第三位置位于第二图像中;以及从第二尺度空间数据集中进行采样,以生成第四位置的第四特征描述符,第四位置位于第二个图像中。

可以将关于原始图像的特征描述符中的至少一个(例如第一和/或第二描述符)与关于第二图像的特征描述符中的至少一个(例如第三和/或第四描述符)进行比较,以标识特征描述符之间的匹配或最可能的匹配。这允许在原始图像中的位置与第二个图像中的位置之间标识匹配。

现在参考图9和图10,其以示意性形式显示了用于实施上述系统和过程的装置,该装置通常可以被称为描述符生成系统或描述符生成器。最初参考图9,在900显示了装置或描述符生成系统。在902提供了图像数据。这可以是接收图像数据的输入、存储图像数据的内存等形式。采样单元904对图像数据902进行采样。采样单元被配置为从图像数据中提取采样值。所提取的样本值存储在内存906中。所提取的样本值可以以初始样本集908的形式进行存储,例如作为数组。特征描述符生成器910被提供用于生成特征描述符。特征描述符生成器可以直接从采样单元904接收所提取的样本(如912所示),或者其可以从内存906接收样本(如914所示)。特征描述符生成器910基于初始样本集生成特征描述符918。特征描述符生成器可以被配置为根据初始样本集确定关于图像的采样区域的旋转度量。在一些示例中,旋转度量可以以其他方式确定,例如在采样单元904处。特征描述符生成器基于初始样本集和所确定的旋转度量生成旋转不变的特征描述符。

特征描述符发生器包括采样单元916。采样单元916被配置为从存储在内存906中的初始样本集908中进行采样。采样单元916被配置为初始样本集的移位元素中的至少一个,并且在初始样本集的元素之间进行插值以形成经修改数组。特征描述符生成器被配置为输出特征描述符918。

现在参考图10,装置或描述符生成系统在1000处显示。在1002处提供图像数据。这可以是接收图像数据的输入、存储图像数据的内存等形式。在1004处提供图像处理器。图像处理器被配置为在多个长度尺度下生成代表图像数据1002的尺度空间数据。尺度空间数据1006存储在内存1008中。

特征描述符生成器1010被提供用于生成特征描述符。特征描述符生成器包括采样单元1012。采样单元1012被配置为对尺度空间数据1006进行采样。采样单元1012可以对尺度空间数据1006进行采样,以获得初始样本集。初始样本集可以存储在内存1014中。采样单元可以被配置为随后从尺度空间数据1006和存储在内存1014中的初始采样集中的至少一个中进行采样。

特征描述符生成器1010被配置为基于采样尺度空间数据和/或初始样本的采样集生成特征描述符1016,如上所述。特征描述符生成器可以被配置为根据初始样本集(例如在采样单元1012处)确定关于图像采样区域的旋转度量。在实施方式中,特征描述符生成器1010的采样单元1012被配置为初始样本集的移位元素中的至少一个,并且根据旋转度量在初始样本集的元素之间进行插值,以形成经修改数组。经修改数组至少可以暂时存储在内存1014处。特征描述符生成器基于经修改数组生成旋转不变的特征描述符。特征描述符生成器1010被配置为输出特征描述符1016。一旦已生成了特征描述符,经修改数组就可以被丢弃。

图9和图10中的描述符生成系统被显示为包括多个功能块。这只是示意图,并且不旨在定义这种实体的不同逻辑元素之间的严格划分。每个功能块可以以任何适合的方式提供。要理解的是,本文所述的由描述符生成系统形成的中间值不需要由描述符生成系统在任何点上物理地生成,并且可以仅代表逻辑值,该逻辑值便利地描述由描述符生成系统在其输入和输出之间执行的处理。

本文所描述的描述符生成系统可以以硬件的方式体现在集成电路上。本文所述的描述符生成系统可以被配置为执行本文所述的任何方法。通常,上述功能、方法、技术或组件中的任一个可以以软件、固件、硬件(例如,固定逻辑电路)或其任何组合实施。术语“模块”、“功能”、“组件”、“元素”、“单元”、“块”和“逻辑”可在本文中用于通常代表软件、固件、硬件或其任何组合。在软件实施方式的情况下,模块、功能、组件、元素、单元、块或逻辑代表在处理器上执行时执行指定任务的程序代码。本文所述的算法和方法可以由执行代码的一个或多个处理器执行,该代码使(多个)处理器执行算法/方法。计算机可读存储介质的示例包括随机存取存储器(ram)、只读存储器(rom)、光盘、闪速存储器、硬盘存储器以及可以使用磁、光和其他技术来存储指令或其他数据并且可以由机器访问的其他存储器设备。

如本文所使用的术语计算机程序代码和计算机可读指令指的是处理器的任何种类的可执行代码,包括以机器语言、解释语言或脚本语言表示的代码。可执行代码包括二进制代码、机器代码、字节码、定义集成电路的代码(例如硬件描述语言或网表)以及以诸如c、java或opencl之类的编程语言代码表示的代码。例如,可执行代码可以是任何种类的软件、固件、脚本、模块或库,当在虚拟机或其他软件环境中适当地执行、处理、解释、编译、执行时,其使得支持可执行代码的计算机系统的处理器执行由代码指定的任务。

处理器、计算机或计算机系统可以是任何种类的设备、机器或专用电路,或集合或其部分,其具有处理能力,使其能够执行指令。处理器可以是任何种类的通用或专用处理器,例如cpu、gpu、片上系统、状态机、媒体处理器、专用集成电路(asic)、可编程逻辑阵列、现场可编程门阵列(fpga)等。计算机或计算机系统可以包括一个或多个处理器。

还旨在包括定义本文所述的硬件配置的软件,例如用于设计集成电路或用于配置可编程芯片以实现期望功能的hdl(硬件描述语言)软件。也就是说,可以提供具有以集成电路定义数据集的形式编码在其上的计算机可读程序代码的计算机可读存储介质,当在集成电路制造系统中进行处理时,其将该系统配置为制造描述符生成系统,该描述符生成系统被配置为执行本文所述的任何方法或包含本文所述的任何装置。例如,集成电路定义数据集可以是集成电路描述。

在集成电路制造系统处,可以提供制造如本文所述的描述符生成系统的方法。可以提供集成电路定义数据集,在集成电路制造系统中进行处理时,使得制造描述符生成系统的方法被执行。

集成电路定义数据集可以采用以下形式:计算机代码,例如作为网表;用于配置可编程芯片的代码;作为硬件描述语言,其定义在任何级别下的集成电路,包括作为寄存器转移级(rtl)代码、作为诸如verilog或vhdl之类的高级电路表示以及作为诸如oasis(rtm)和gdsii之类的低级电路表示。可以在计算机系统处处理在逻辑上定义集成电路的更高级别表示(例如rtl),所述计算机系统被配置用于生成集成电路在包括电路元件的定义的软件环境的背景下的制造定义以及用于组合那些元件以便生成通过所述表示如此定义的集成电路的制造定义的规则。情况通常是,软件在计算机系统上执行以便定义机器,可能需要一个或多个中间用户步骤(例如提供命令、变量等)以使被配置用于生成集成电路的制造定义的计算机系统执行定义集成电路的代码,以便生成该集成电路的制造定义。

现在将关于图11描述在集成电路制造系统中处理集成电路定义数据集的示例,以将系统配置为制造描述符生成系统。

图11显示了集成电路(ic)制造系统1102的示例,该集成电路制造系统1102被配置为制造本文任何示例中所述的描述符生成系统。具体而言,ic制造系统1102包括布局处理系统1104和集成电路生成系统1106。ic制造系统1102被配置为接收ic定义数据集(例如,定义如本文任何示例中所述的描述符生成系统),处理ic定义数据集,并根据ic定义数据集生成ic(例如,其体现本文任何示例中所述的描述符生成系统)。ic定义数据集的处理将ic制造系统1102配置为制造体现如本文任何示例中所述的描述符生成系统的集成电路。

布局处理系统1104被配置为接收并处理ic定义数据集以确定电路布局。根据ic定义数据集确定电路布局的方法在本领域中是已知的,并且例如可以涉及合成rtl代码以确定要生成的电路的门级表示,例如在逻辑组件(例如,与非、或非、与、或、mux和触发器组件)方面。可以通过确定逻辑组件的位置信息来根据电路的门级表示确定电路布局。这可以自动地或在用户参与情况下完成以便优化电路布局。当布局处理系统1104已确定电路布局时,其可以将电路布局定义输出到ic生成系统1106。电路布局定义可以是例如电路布局描述。

如本领域中已知的,ic生成系统1106根据电路布局定义来生成ic。例如,ic生成系统1106可以实施用于生成ic的半导体器件制作工艺,其可以涉及光刻和化学处理步骤的多步骤序列,在此期间在由半导体材料制成的晶片上逐步创建电子电路。电路布局定义可以采用掩模的形式,所述掩模可在光刻工艺中被用于根据电路定义来生成ic。替代地,提供给ic生成系统1106的电路布局定义可以采用计算机可读代码的形式,ic生成系统1106可以使用所述计算机可读代码来形成适合于在生成ic时使用的掩模。

由ic制造系统1102执行的不同工艺可以例如由一方全部在一个位置中实施。替代地,ic制造系统1102可以是分布式系统,使得一些工艺可以在不同的位置处执行,并且可以由不同方执行。例如,可以在不同的位置中和/或由不同方执行以下步骤的阶段中的一些:(i)合成表示ic定义数据集的rtl代码以形成要生成的电路的门级表示,(ii)基于门级表示生成电路布局,(iii)根据电路布局形成掩模,以及(iv)使用掩模来制作集成电路。

在其他示例中,在集成电路制造系统处处理集成电路定义数据集可以将系统配置为制造描述符生成系统,而不用处理ic定义数据集以便确定电路布局。例如,集成电路定义数据集可以定义可重构处理器(例如fpga)的配置,并且该数据集的处理可以将ic制造系统配置为生成具有该定义的配置的可重构处理器(例如通过将配置数据加载到fpga)。

在一些实施例中,集成电路制造定义数据集当在集成电路制造系统中被处理时,可以使集成电路制造系统生成如本文所描述的设备。例如,由集成电路制造定义数据集以上面关于图11所描述的方式配置集成电路制造系统可以使如本文所述的设备被制造。

在一些示例中,集成电路定义数据集可以包括在数据集处定义的硬件上或者与在数据集处定义的硬件相结合地运行的软件。在图11所示的示例中,ic生成系统还可以通过集成电路定义数据集来配置以在制造集成电路时,根据在集成电路定义数据集处定义的程序代码来将固件加载到该集成电路上或者以其他方式向集成电路提供程序代码以供与该集成电路一起使用。

本文所述的处理系统可以以硬件的方式体现在集成电路中。本文所述的处理系统可以被配置为执行本文所述的任何方法。

在本申请中在设备、装置、模块和/或系统中(以及在本文实施的方法中)阐述的构思的实施方式当与已知实施方式相比较时可以产生性能改进。性能改进可以包括增加的计算性能、减少的等待时间、增加的吞吐量和/或降低的功耗中的一个或多个。在(例如在集成电路中)制造这样的设备、装置、模块和系统期间,可以针对物理实施方式来权衡性能改进,从而改进制造方法。例如,可以针对布局面积来权衡性能改进,从而与已知实施方式的性能匹配但是使用较少硅。例如,这可以通过以串行方式重用功能块或者在设备、装置、模块和/或系统的元件之间共享功能块来完成。相反地,可以针对改进的性能权衡在本申请中阐述的在设备、装置、模块和系统的物理实施方式方面产生改进(例如减小的硅区域)的构思。例如,这可以通过在预定义区域预算内制造模块的多个实例来完成。

在本申请中在设备、装置、模块和/或系统中(以及在本文实施的方法中)阐述的构思的实施方式当与已知实施方式相比较时可以产生性能改进。性能改进可以包括增加的计算性能、减少的等待时间、增加的吞吐量和/或降低的功耗中的一个或多个。在(例如在集成电路中)制造这样的设备、装置、模块和系统期间,可以针对物理实施方式来权衡性能改进,从而改进制造方法。例如,可以针对布局面积来权衡性能改进,从而与已知实施方式的性能匹配但是使用较少硅。例如,这可以通过以串行方式重用功能块或者在设备、装置、模块和/或系统的元件之间共享功能块来完成。相反地,可以针对改进的性能权衡在本申请中阐述的在设备、装置、模块和系统的物理实施方式方面产生改进(例如减小的硅区域)的构思。例如,这可以通过在预定义区域预算内制造模块的多个实例来完成。

本申请人特此孤立地公开本文描述的每个单独的特征以及两个或更多个这样的特征的任何组合,只要这样的特征或组合能够鉴于本领域的技术人员的公知常识总体上基于本说明书来执行,而不管这样的特征或特征的组合是否解决本文公开的任何问题。鉴于上述描述,对于本领域的技术人员而言将显然的是,可以在本发明的范围内做出各种修改。

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