专利名称:信息处理装置和方法以及程序的利记博彩app
技术领域:
本发明涉及一种信息处理装置和方法以及程序。更具体而言,本发明涉及一种信息处理装置和方法以及程序,其能够搜索多个(如果有的话)集合主题(subject)的每一个以便以高速搜索期望元素。
背景技术:
已经提出了许多高速搜索方法来解决所谓的最近邻搜索问题,其中,给定n维输入向量,从n维向量组的集合获得输入向量的最近邻居向量相邻(neighborhood)。
例如,提出了一种方法,其中,在N个质心向量v(i)中,将预定的质心向量设置为显著向量(remarkable vector)v1,并且在显著向量v1和质心向量v(i)之间的距离中,将以第N/k个顺序(order)接近显著向量v1的距离设置为该显著向量的半径距离DR,以比较输入向量u和显著向量v1之间的距离D1和作为半径距离DR的1/2的DR/2,从而根据比较结果确定搜索最佳向量的范围(例如参见日本专利第3273581号)。
此外,例如,在图像识别处理中使用这种搜索方法来搜索特征向量。通过组合特征参数和向量化所述组合而获得特征向量。在进行处理的图像的特征向量和所准备的模型图像的特征向量之间的比较可以识别在进行处理的图像和模型图像之间的关系。基于特征向量的图像识别处理允许几乎不受视点改变或亮度改变影响的识别。
发明内容
但是,在上述方法中,当(通过将进行处理的图像和两个或多个模型图像进行比较)给定某个输入向量时从许多向量组的集合(例如许多模型图像)获得最近相邻向量的方案具有这样的问题如果简单地重复传统的最近相邻搜索,则降低了效率和处理速度。
因此,本发明通过提供一种信息处理装置和方法以及程序来解决与现有技术的方法和装置相关联的上述和其它问题,所述信息处理装置和方法以及程序能够在两个或多个向量集合(如果有的话)中高速搜索输入向量的相邻向量。
在执行本发明时,并且根据本发明的一个实施例,提供了一种信息处理装置,用于在多个集合中搜索期望元素。该信息处理装置可以包括公共代表点设置部件,用于设置公共代表点,所述公共代表点是通过平均所述多个集合的特征获得的集合的预定数量的元素;相邻表产生部件,用于在由公共代表点设置部件设置的公共代表点的基础上,为所述多个集合的每一个产生相邻表,所述相邻表是与位于每个公共代表点附近的所述多个集合的每一个的元素相关联的表信息;以及搜索部件,用于在由相邻表产生部件产生的相邻表内登记的元素中搜索期望元素。
根据本发明,提供了一种用于信息处理装置的信息处理方法,用于在多个集合中搜索期望的元素。该信息处理方法可以包括以下步骤设置公共代表点,所述公共代表点是通过平均所述多个集合的特征获得的集合的预定数量的元素;在由公共代表点设置步骤设置的公共代表点的基础上,为所述多个集合的每一个产生相邻表,所述相邻表是与位于每个公共代表点附近的所述多个集合的每一个的元素相关联的表信息;以及,在由相邻表产生步骤产生的相邻表内登记的元素中搜索期望元素。
根据本发明,提供了一种程序,用于使计算机执行用来在多个集合的每一个中搜索期望元素的搜索处理。该程序可以包括以下步骤设置公共代表点,所述公共代表点是通过平均所述多个集合的特征获得的集合的预定数量的元素;在由公共代表点设置步骤设置的公共代表点的基础上,为所述多个集合的每一个产生相邻表,所述相邻表是与位于每个公共代表点附近的所述多个集合的每一个的元素相关联的表信息;以及,在由相邻表产生步骤产生的相邻表内登记的元素中搜索期望元素。
本发明意欲提供对多个(如果有的话)集合主题的快速搜索以搜索期望成员(member)。
图1是图解作为本发明一个实施例而实践的特征量比较装置的示例配置的方框图;
图2是图解产生相邻表组的方式的示意图;图3是图解相邻表的示例配置的示意图;图4是图解搜索最近相邻向量的方式的示意图;图5是图解使搜索范围变窄的示例的示意图;图6是图解图1所示的公共代表点设置块的详细示例配置的方框图;图7是图解图1所示的相邻表组的详细示例配置的方框图;图8是图解图7所示的相邻表产生块的详细示例配置的方框图;图9是图解图8所示的距离信息产生块的详细示例配置的方框图;图10是图解图1所示的最近相邻向量组搜索块的详细示例配置的方框图;图11是图解图10所示的最近相邻向量搜索块的详细示例配置的方框图;图12是图解图11所示的表内搜索块的详细示例配置的方框图;图13是图解图11所示的组内全体搜索块的详细示例配置的方框图;图14是表示示例公共代表点设置处理的流程图;图15是表示示例相邻表组产生处理的流程图;图16是表示示例相邻表产生处理的流程图;图17是表示示例距离信息产生处理的流程图;图18是表示示例最近相邻向量组搜索处理的流程图;图19是表示示例最近相邻搜索处理的流程图;图20是表示示例表内搜索处理的流程图;图21是表示示例组内全体搜索处理的流程图;图22是图解作为本发明另一实施例而实践的特征量比较系统的示例配置的方框图;图23是图解根据本发明的图像处理装置的示例配置的方框图;图24是图解根据本发明的图像处理装置的另一示例配置的方框图;图25是图解作为本发明的独立实施例而实践的特征量比较装置的示例配置的方框图;图26A和26B是图解坐标转换方式的示意图;图27A、27B和27C是图解维度压缩方式的示意图;图28A和28B是图解向量间距离比较方式的示意图;图29是图解图25所示的成员向量坐标转换块的详细示例配置的方框图;
图30是表示特征量比较处理的流程图;图31是表示成员向量坐标转换处理的流程图;图32是图解搜索相邻向量组的方式的示意图;图33是图解根据本发明的图像处理装置的另一示例配置的方框图;图34是图解图33所示的多种类型特征量比较块的详细示例配置的方框图;图35是图解图34所示的相邻向量组搜索块的详细示例配置的方框图;图36是表示多种类型特征量比较处理的流程图;图37是表示相邻向量组搜索处理的流程图;以及图38是图解根据本发明的个人计算机的示例配置的方框图。
具体实施例方式
将参照附图作为示例来更详细地描述本发明。在此描述的本发明及其实施例具有以下相互关系。其描述意欲确定这样的事实,即在此描述支持在此描述的本发明的实施例。因此,如果有尽管在优选实施例的描述中进行了描述、但是在此未被描述为对应于本发明的任何实施例,则这不以任何方式表示这样的实施例不对应于本发明。相反,如果任何实施例在此被描述为对应于本发明,则它不以任何方式表示这样的实施例不对应除了本发明之外的其它发明。
而且,其描述不表示在此描述的整个发明。换句话说,在此描述并且在此未要求保护的任何发明的存在将不否认存在可作为分案申请提交、作为修改结果出现或者在未来添加于此的任何发明。
在本发明中,提供了一种信息处理装置(例如图1所示的特征量比较装置),用于在多个集合中搜索期望的元素。此信息处理装置具有公共代表点设置部件(例如图1所示的公共代表点设置块),用于设置公共代表点,所述公共代表点是其中将多个集合的特征平均的集合的预定数量的元素;相邻表产生部件(例如图1所示的相邻表组产生块),用于在由公共代表点设置部件设置的公共代表点的基础上,为每个集合产生相邻表,所述相邻表提供与位于每个公共代表点附近的集合的元素相关联的表信息;以及搜索部件(例如图1所示的最近相邻向量组搜索块),用于在由相邻表产生部件产生的相邻表中输入的元素中搜索期望的元素。
上述公共代表点设置部件被适配来在多个集合(例如图2所示的集合)的所有元素(例如图2所示的特征向量)的基础上设置公共代表点(例如图2所示的公共代表点)。
上述公共代表点设置部件被适配来在多个集合(例如图2所示的集合)的部分元素(例如图2所示的特征向量)的基础上设置公共代表点(例如图2所示的公共代表点)。
上述搜索部件被适配来在由相邻表产生部件产生的相邻表(例如图3所示的相邻表)中登记的元素中搜索最接近目标元素的元素(例如图4所示的最近相邻向量)作为期望元素。
上述最近相邻表包含处于更接近公共代表点的顺序的预定数量的元素(例如K个元素)、以及作为每个元素距公共代表点的距离的1/2的距离信息(例如图2所示的距离信息)。只有当搜索目标元素距公共代表点的距离短于与相邻表中的公共代表点相对应的距离信息的最大值时(例如图19所示的步骤S115),搜索部件才在相邻表内登记的元素中搜索期望的元素(例如图19所示的步骤S117);否则,搜索部件在所述集合内的所有元素中搜索期望的元素(例如图19所示的步骤S119)。
上述信息处理装置还具有主分量分析部件(例如图29所示的主分量分析块),用于分析每个集合元素的分布的主要分量;以及坐标转换部件(例如图29所示的坐标转换块),用于转换每个元素的坐标,例如,使得由主分量分析部件获得的主分量成为坐标轴之一。
上述信息处理装置还包括维度压缩块(例如图29所示的维度压缩块),用于压缩由上述坐标转换部件在坐标上转换的元素的分布的维度数目以减小维度数目。
上述搜索部件(例如图34所示的相邻向量组搜索块)被适配来使两个或多个具有不同类型的元素成为搜索目标,从而在相邻表内登记的元素中搜索接近所述两个或多个目标元素的每一个的期望元素。
上述搜索部件(图35所示的相邻向量搜索块)被适配来搜索接近被搜索的一个元素的元素,并将此搜索结果用于对接近被搜索的另一个元素的元素的搜索。
在本发明中,提供了一种用于信息处理装置(例如图1所示的特征量比较装置)的信息处理方法,用于在多个集合中搜索期望元素。上述信息处理方法具有以下步骤设置公共代表点,所述公共代表点是其中多个集合的特征被平均的集合的预定数量的元素(例如图14所示的步骤S4和S10);在由公共代表点设置步骤的处理设置的公共代表点的基础上,为每个集合产生相邻表,所述相邻表提供与位于每个公共代表点附近的集合的元素相关联的表信息(例如图15所示的步骤S33);以及在由相邻表产生步骤的处理产生的相邻表内输入的元素中搜索期望的元素(例如图18所示的步骤S93)。
根据本发明的程序与其中在处理步骤之间有相关性的实施例中的上述信息处理方法(作为示例)基本相同。
下面参照附图来描述本发明的实施例。
现在,参照图1,示出了作为本发明一个实施例而实践的特征量比较装置的示例配置。
图1所示的特征量比较装置10识别通过例如将参数向量化而获得的特征向量,所述参数代表要进行处理的信息例如图像和语音的特征。这个装置将作为被输入的特征向量的输入向量与模型向量组进行比较,在每个向量集合中搜索最接近输入向量的向量(或最近相邻向量),并输出所检索的最近相邻向量组。如图1所示,特征量比较装置10具有向量信息存储块11、公共代表点设置块12、公共代表点信息存储块13、相邻表组产生块14、相邻表组存储块15和最近相邻向量组搜索块16。
向量信息存储块11具有诸如例如硬盘或半导体存储器的存储介质,其存储作为与模型特征向量相关联的信息的向量信息。对于每个模型,作为集合来处理特征向量。向量信息存储块11存储两个或多个特征向量集合。即,向量信息存储块11存储两个或多个模型的特征向量,并根据需要向公共代表点设置块12、相邻表组产生块14以及最近相邻向量组搜索块16提供这些特征向量。
公共代表点设置块12从向量信息存储块11获得特征向量,并且设置所述集(或模型)公共的代表点,这个点被称为公共代表点。公共代表点是指示每个集合(或模型)的特征向量的分布的特征的信息,并且是代表所有或部分特征向量的点(或向量)。即,如果作为一个集合来处理存储在向量信息存储块11中的多个集合,则公共代表点是指示该集合的元素的分布特征的点(或新元素)。换句话说,公共代表点的集合是通过平均在向量信息存储块11中存储的集合的特征获得的集合(或者具有所吸收的集合之间的元素分布差异的集合)。
公共代表点的数量是任意的、例如由用户预定的数量。但是,由于公共代表点表示特征向量的性质,因此理想的是,公共代表点的数量小于特征向量的总数量,而且小于每个集合(或模型)的特征向量的数量。公共代表点设置块12根据所有或部分特征向量而以如此设置的数量来设置公共代表点。稍后将描述公共代表点设置方法的细节。公共代表点设置块12向公共代表点信息存储块13提供关于所设置的公共代表点的信息(或公共代表点信息)以供存储。
公共代表点信息存储块13具有诸如例如硬盘或半导体存储器的存储介质,其存储从公共代表点设置块12提供的公共代表点信息。公共代表点信息存储块13根据需要向相邻表组产生块14和最近相邻向量组搜索块16提供这个公共代表点信息。
相邻表组产生块14从向量信息存储块11获得向量信息,然后从公共代表点信息存储块13获得公共代表点信息,从而根据所获得的信息,为每个集合(或模型)产生列出位于每个公共代表点附近的特征向量的相邻表。相邻表是列出如将稍后描述的位于每个公共代表点附近的特征向量的表信息,并且是为每个集合(或模型)产生的。即,公共代表点(组)是代表所有集合(或模型)的特征向量的点(组),并且相邻表是指示在每个集合及其公共代表点之间的关系的表信息。稍后将描述产生相邻表的细节和使用所产生的相邻表的方法。相邻表组产生块14为每个集合(或模型)产生上述相邻表,然后向相邻表组存储块15提供所产生的相邻表以供存储。
相邻表组存储块15具有诸如例如硬盘或半导体存储器的存储介质,其存储从相邻表组产生块14提供的相邻表组。相邻表组存储块15根据需要向最近相邻向量组搜索块16提供这些相邻表组。
最近相邻向量组搜索块16从特征量比较装置10的外部获得作为所输入的特征向量的输入向量,并根据需要使用从向量信息存储块11获得的向量信息、从公共代表点信息存储块13获得的公共代表点信息和从相邻表组存储块15获得的相邻表组,从而根据这些信息在每个集合(或模型)中搜索最接近所述输入向量的最近向量。最近相邻向量组搜索块16将如此检索的最近向量输出到特征量比较装置10的外部作为比较结果。
下面参照图2到5来描述通过特征量比较装置10比较特征量的方法的细节。
在输入向量特征量和模型特征向量之间进行比较之前,特征量比较装置10设置如图2所示的公共代表点以生成相邻表。
向量信息存储块11(图1)存储每个由多个模型(或集合)构成的搜索目标向量组21。搜索目标向量组21由M个搜索目标向量组(即,集合(或模型))21-1到21-M构成。每个组是特征向量22的一集合。
公共代表点设置块12(图1)将搜索目标向量组21集成为由一个集合23组成的特征向量组,并随后设置代表提供集合23的元素的特征向量组的代表点,即作为所有集合(或所有模型)公共的代表点的R个公共代表点24。
相邻表组产生块14(图1)经由公共代表点信息存储块13(图1)获得关于公共代表点24的信息,然后,根据从向量信息存储块11获得的向量信息,为每个集合产生相邻表25-1到25-M,并将所产生的相邻表存储到相邻表组存储块15中。
例如,相邻表25的每一个被如图3所示的那样配置。可以在相邻表中列出公共代表点的任何数量的相邻向量;即,所述数量可以由用户指定或预先确定。优选的是,由于指示公共代表点附近的特征向量的相邻表的性质,因此所述数量小于每个集合的特征向量的数量。
每个相邻表列出了R个公共代表点的每一个的K个相邻向量的标识信息、以及处于升序的距相邻向量的公共代表点的距离的1/2的值,如图3所示。
例如,相邻表25-1列出了“第3”,它是作为公共代表点1的相邻向量的最近特征向量的标识信息,以及作为在此特征向量和公共代表点1之间的距离的1/2的值的“0.29”;“第8”,它是第二最近特征向量的标识信息,以及作为在此特征向量和公共代表点1之间的距离的1/2的值的“0.32”;“第9”,它是第三最近特征向量的标识信息,以及作为在此特征向量和公共代表点1之间的距离的1/2的值的“0.42”;“第2”,它是第四最近特征向量的标识信息,以及作为在此特征向量和公共代表点1之间的距离的1/2的值的“0.46”;以及,“第5”,它是第五最近特征向量的标识信息,和作为在此特征向量和公共代表点1之间的距离的1/2的值的“0.51”。同样,相邻表25-1以更接近每个公共代表点的顺序列出了公共代表点2到R直到5的每一个的相邻向量(K个相邻向量)。
相邻表组产生块14为每个特征向量集合(或模型)产生M个相邻表。
每个相邻表用于在搜索输入向量的相邻向量时使要搜索的特征向量的范围变窄。
为了将进行处理的信息26的特征与每个模型的特征相比较,最近相邻向量组搜索块16在搜索目标向量组21的特征向量22中搜索接近作为信息26的特征向量的输入向量27的最近相邻向量。即,最近相邻向量组搜索块16首先在搜索目标向量组21-1中搜索输入向量27的最近相邻向量28-1,然后在搜索目标向量组21-2中搜索输入向量27的最近相邻向量28-2。同样,对于搜索目标向量组21-3到21-M,最近相邻向量组搜索块16搜索输入向量27的最近相邻向量。然后,最近相邻向量组搜索块16输出所检索的最近相邻向量,作为在进行处理的信息26和模型之间的比较结果。
在搜索最近相邻向量时,最近相邻向量组搜索块16使用图3所示的相邻表组来使搜索范围变窄,从而加速对最近相邻向量的搜索。更具体而言,最近相邻向量组搜索块16首先计算在输入向量27和公共代表点之间的距离。接着,最近相邻向量组搜索块16将所计算的距离与相邻表中的相邻向量和公共代表点之间的距离的1/2的值相比较。如果输入向量27和公共代表点之间的距离较短,则最近相邻向量组搜索块16在相邻表内登记的公共代表点的相邻向量组(包括公共代表点)中搜索输入向量27的最近相邻向量,其它特征向量作为搜索范围之外而不被搜索。相反,如果在输入向量27和公共代表点之间的距离更大,则最近相邻向量组搜索块16在那该集合的所有特征向量中搜索输入向量27的最近相邻向量。
下面参照图5来描述设置搜索范围的原理。假定输入向量v、公共代表点r以及在相邻表中列出的距此公共代表点r最远的相邻向量k(即以第K个顺序接近公共代表点r的相邻向量k)如图5所示定位。圆圈31指示在公共代表点r和相邻向量k之间的距离D,并且圆圈32指示距离D的1/2(D/2)。
给定公共代表点r作为标准,如果输入向量v的最近相邻向量距输入向量最远,则其最近相邻向量是公共代表点r。即,如图5中的虚线圆圈所示,输入向量v的最近相邻向量从来不距公共代表点r更远(即,最近相邻向量总是位于虚线圆圈内)。
因此,如果输入向量v位于圆圈32内,即如果在输入向量v和公共代表点r之间的距离d短于在相邻向量k和公共代表点r之间的距离D的1/2(d<D/2),则所述虚线圆圈从不超出圆圈31。即,在这种情况下,输入向量v的最近相邻向量的位置总是比公共代表点的相邻向量k更近。
根据上述操作原理,最近相邻向量组搜索块16计算在输入向量27和每个公共代表点之间的距离,并将所获得的距离与这样的值进行比较,所述值是在相邻表中列出的与那个公共代表点最远的相邻向量到该公共代表点的距离的1/2。然后,最近相邻向量组搜索块16对于每个公共代表点执行这个处理。如果发现了对于其在输入向量和公共代表点之间的距离更短的任何公共代表点,则最近相邻向量组搜索块16在那个公共代表点的相邻向量中搜索输入向量的最近相邻向量。只有当没有发现在输入向量和公共代表点之间的距离对于任何公共代表点都更短的公共代表点时,最近相邻向量组搜索块16才在搜索目标向量组内的所有特征向量中搜索最近相邻向量。
最近相邻向量组搜索块16对每个搜索目标向量组(或每个模型)执行上述搜索处理,并输出作为比较结果的最近相邻向量组。通过这么做,特征量比较装置10能够排除明显不提供最近相邻向量的不必要的特征向量,由此以高速检索期望的元素。另外,因为公共代表点设置块12设置对于所有搜索目标向量组(或模型)公共的公共代表点并且最近相邻向量组搜索块16搜索关于那个公共代表点的最近相邻向量,所以特征量比较装置10能够迅速地在搜索目标向量组中搜索最近相邻向量,即使有两个或更多的搜索目标向量组存在也是如此。即,如果有多个搜索目标集合,则特征量比较装置10能够以高速在这些集合中搜索期望的元素。
下面详细描述图1所示的特征量比较装置10的组件。
现在,参见图6,示出了公共代表点设置块12的详细示例配置。在图6中,公共代表点设置块12具有公共代表点目标计数设置块41、向量组集成块42、质心计算块43、公共代表点设置块44、公共代表点计数判定块45、公共代表点划分块46、成员向量分配块47和公共代表点存储控制块48。
公共代表点目标计数设置块41根据例如用户输入来设置公共代表点目标计数,并向公共代表点计数判定块45提供所获得的信息。这个公共代表点目标计数被例如设置为2的n次幂(n是整数)。所述公共代表点目标计数也可以是用户指定的值或预定值。
向量组集成块42从向量信息存储块11获得向量信息,并且根据所获得的信息将在向量信息存储块11中存储的所有向量组集成到一个向量组中。然后,向量组集成块42向质心计算块43提供所得到的向量组。
质心计算块43根据从向量组集成块42提供的向量信息或从成员向量分配块47提供的向量信息,对于每个向量组计算向量组的质心(或向量分布的质心位置)。例如,使用从向量组集成块42提供的向量信息,将向量组集成到一个组中,使得如果根据这个向量信息而计算质心位置,则质心计算块43计算所有向量组的质心。如果根据从成员向量分配块47提供的向量信息计算质心位置,则质心计算块43将由成员向量分配块47分配到同一公共代表点的成员向量组作为一个向量组来处理,以计算每个向量组的质心位置。质心计算块43向公共代表点设置块44提供关于所计算的质心的信息。
公共代表点设置块44将从质心计算块43提供的质心位置设置为公共代表点,并将其信息提供给向公共代表点计数判定块45和成员向量分配块47。
在从公共代表点设置块44获得设置结果或者从成员向量分配块47获得分配结果之后,公共代表点计数判定块45确定设置结果或分配结果中的公共代表点的数量是否小于从公共代表点目标计数设置块41提供的公共代表点目标计数。根据所进行的判定,公共代表点计数判定块45向公共代表点划分块46或公共代表点存储控制块48提供关于公共代表点的信息。
在从公共代表点计数判定块45获得关于公共代表点的信息之后,公共代表点划分块46将每个公共代表点一分为二,并在预定方向上将所得到的一半从彼此移动微小的量,以便与原始位置分离。例如,公共代表点划分块46在x轴正方向上将被划分点的一半之一移动微小量,并沿x轴负方向移动另一个。应当注意,这两个点的这些校正方向可以是任何方向,只要它们彼此相反即可。即,公共代表点划分块46划分公共代表点的数量以进行位置校正,由此将公共代表点的数量加倍。公共代表点划分块46向成员向量分配块47提供关于这些划分和位置校正后的公共代表点的信息。
在从公共代表点划分块46获得关于公共代表点的信息、即关于其数量通过被公共代表点划分块46划分而成为原始数量两倍的公共代表点的信息之后,成员向量分配块47向这些公共代表点分配成员向量,并向质心计算块43提供分配结果,并且向公共代表点计数判定块45提供关于公共代表点数量的信息。
此外,在从公共代表点设置块44获得公共代表点设置结果之后,成员向量分配块47根据所接收的设置结果而向所设置的公共代表点分配成员向量,并且向质心计算块43提供分配结果和关于公共代表点的信息。
公共代表点存储控制块48向公共代表点信息存储块13提供来自公共代表点计数判定块45的关于公共代表点的信息以进行存储。
参见图7,示出了图解图1所示的相邻表组产生块14的详细示例配置的方框图。
在图7中,相邻表组产生块14具有初始化处理块61、相邻表组产生控制块62、相邻表产生块63和相邻表存储控制块64。
初始化处理块61获得来自向量信息存储块11的向量信息和来自公共代表点信息存储块13的公共代表点信息,此时,初始化处理块61执行产生相邻表组所必需的、诸如将变量初始化的初始化处理。
相邻表组产生控制块62执行与相邻表组的产生相关联的控制处理。相邻表产生块63执行与相邻表的产生相关联的处理。相邻表存储控制块64控制相邻表组存储块15以存储所产生的相邻表。
参见图8,示出了图解相邻表产生块63的详细示例配置的方框图。在图8中,相邻表组产生块63具有相邻表产生控制块81、距离信息产生块82、距离信息分类(sort)块83、距离信息提取块84和记录保存块85。
相邻表产生控制块81执行与相邻表的产生相关联的控制处理。距离信息产生块82执行与用于相邻表中的距离信息的产生相关联的处理。距离信息分类块83以距离的升序(或以更短距离的顺序)来分类由距离信息产生块82产生的距离信息。距离信息提取块84在所分类的距离信息中以从较短距离起的预定计数来提取距离信息。记录保存块85将所提取的距离信息保存为相邻表的记录,并向相邻表组产生控制块81返回其信息。
参见图9,示出了图解图8所示的距离信息产生块82的详细示例配置的方框图。在图9中,距离信息产生块82具有距离信息产生控制块101、距离计算块102、1/2乘法块103和距离信息保存块104。
距离信息产生控制块101执行与距离信息的产生相关联的处理。距离计算块102计算在被指定用于处理的公共代表点和成员向量之间的距离。1/2乘法块103将所计算的公共代表点和成员向量之间的距离乘以1/2。距离信息保存块104将通过把公共代表点和成员向量之间的距离乘以1/2而获得的值保存为距离信息,并向距离信息产生控制块101返回其信息。
参见图10,示出了图解图1所示的最近相邻向量组搜索块16的详细示例配置的方框图。在图10中,最近相邻向量组搜索块16具有初始化处理块121、最近相邻向量组搜索控制块122和最近相邻向量搜索块123,并且在存储在向量信息存储块11中的模型中搜索输入向量的最近相邻向量组。
在获得输入向量之后,初始化处理块121获得来自向量信息存储块11的向量信息、来自公共代表点信息存储块13的公共代表点信息和来自相邻表组存储块15的相邻表组,由此执行搜索输入向量的最近相邻向量组所必需的、诸如将变量初始化的初始化处理。
最近相邻向量组搜索控制块122执行与搜索输入向量的最近相邻向量组相关联的控制处理。最近相邻向量搜索块123在最近相邻向量组搜索控制块122的控制下对于每个向量组搜索输入向量的最近相邻向量组,并且向最近相邻向量组搜索控制块122返回搜索处理结果。
参见图11,示出了图解图10所示的最近相邻向量搜索块123的详细示例配置的方框图。在图11中,最近相邻向量搜索块123具有初始化处理块141、最近相邻向量搜索控制块142、距离计算块143、距离比较块144、表内搜索块145、最近相邻向量设置块146和组内全体搜索块147,由此对于每个模型(或每个向量组)执行最近相邻向量搜索处理。
初始化处理块141执行搜索输入向量的最近相邻向量所必需的、诸如将变量初始化的初始化处理。最近相邻向量搜索控制块142执行与在要搜索的每个向量组中搜索输入向量的最近相邻向量相关联的控制处理。
距离计算块143计算在输入向量和要处理的公共代表点之间的距离。距离比较块144将所计算的输入向量和要处理的公共代表点之间的距离与相邻表中的距离信息相比较,并根据比较结果使表内搜索块145执行最近相邻向量搜索处理。
表内搜索块145在相邻表内列出的成员向量中搜索输入向量的最近相邻向量,并向最近相邻向量设置块146提供这个搜索处理的结果。
最近相邻向量设置块146将由表内搜索块145或组内全体搜索块147检索的成员向量设置为输入向量的最近相邻向量,并且向最近相邻向量搜索控制块142返回这个设置的结果。
如果最近相邻向量搜索控制块142在所有公共代表点中都没有发现输入向量的最近相邻向量,则组内全体搜索块147从进行处理的向量组内的所有成员向量中搜索输入向量的最近相邻向量,并向最近相邻向量设置块146提供这个搜索处理的结果。
参照图12,示出了图解图11所示的表内搜索块145的详细示例配置的方框图。在图12中,表内搜索块145具有初始化处理块161、表内搜索控制块162、距离计算块163、更新控制块164和数据保存块165,由此对于在相邻表中列出的成员向量搜索最近相邻向量(即对最近相邻向量的表内搜索)。
初始化处理块161执行对最近相邻向量的表内搜索所必需的、诸如将变量初始化的初始化处理。例如,初始化处理块161将作为最近相邻向量候选者的Vkeep设置为与输入向量的距离是无穷大的虚拟点,并将与输入向量的距离Dkeep设置为无穷大。而且,初始化处理块161将变量k的值初始化(例如,为0)。表内搜索控制块162执行与对最近相邻向量的表内搜索相关联的控制处理。距离计算块163计算输入向量和在相邻表中列出的成员向量之间的距离。更新控制块164根据所计算的输入向量和成员向量之间的距离来更新保存在数据保存块165中的数据。更新控制块164还向表内搜索控制块162返回这个控制处理的结果。数据保存块165保存与最接近输入向量的向量(即最近相邻向量候选者)相关联的数据(例如Vkeep和Dkeep)。
参见图13,示出了图解图11所示的组内全体搜索块147的详细示例配置的方框图。在图13中,组内全体搜索块147具有初始化处理块181、组内全体搜索控制块182、距离计算块183、更新控制块184和数据保存块185,由此对于向量组中的所有成员向量搜索最近相邻向量(即,对最近相邻向量的组内全体搜索)。
初始化处理块181执行对最近相邻向量的组内全体搜索所必需的、诸如将变量初始化的初始化处理。例如,初始化处理块181将作为最近相邻向量候选者的Vkeep设置为与输入向量的距离为无穷大的虚拟点,并将与输入向量的距离Dkeep设置为无穷大。而且,初始化处理块181将变量i的值初始化(例如,为0)。组内全体搜索控制块182执行与对最近相邻向量的组内全体搜索相关联的控制处理。距离计算块183计算输入向量和在相邻表中列出的成员向量之间的距离。更新控制块184根据所计算的输入向量和成员向量之间的距离来更新保存在数据保存块185中的数据。更新控制块184还向表内搜索控制块182返回这个控制处理的结果。数据保存块185保存与最接近输入向量的向量(即最近相邻向量候选者)相关联的数据(例如Vkeep和Dkeep)。
下面描述要由具有如上所述的配置的特征量比较装置10执行的每个处理的流程。
首先,根据由公共代表点设置块12(图1)保存在向量信息存储块11中的向量信息,特征量比较装置10设置对于所有向量组(或模型)公共的代表点组。下面参照图14所示的流程图来描述此公共代表点设置处理的流程。
当公共代表点设置处理开始时,公共代表点目标计数设置块41(图6)在步骤S1中根据所输入的目标计数(例如2的n次幂,n是整数)设置公共代表点目标计数的变量NumReq,并将该设置提供给公共代表点计数判定块45。
在步骤S2中,向量组集成块42从向量信息存储块11获得向量信息,并且根据此向量信息,将存储在向量信息存储块11中的所有组集成为由每组的成员向量的全部或部分组成的单个组。即,向量组集成块42利用给定方法将每组的全部成员向量或从每组提取的部分成员向量重新配置为单个组。可以每次利用给定方法或以预定方式确定是否使用所有或部分成员向量来进行此组集成。
当已经完成了组集成时,在从向量组集成块42获得关于向量集成的向量信息之后,质心计算块43在步骤S3计算成员向量的质心(作用于作为成员向量的质点上的重力合力的作用点),并向公共代表点设置块44提供此计算结果。
在步骤S4,公共代表点设置块44将所获得的质心设置为公共代表点,并将指示公共代表点数量的变量GpNum的值设置为“1”,从而向公共代表点计数判定块45提供这个设置的结果。在步骤S5,公共代表点计数判定块45确定作为公共代表点数量的GpNum的值是否小于目标计数NumReq的值。
如果发现GpNum的值小于NumReq的值,即如果发现未设置公共代表点的目标数量(或者如果发现所设置的公共代表点的数量未达到目标计数),则公共代表点计数判定块45向公共代表点划分块46提供此信息,此时,该过程进行到步骤S6。
在步骤S6,公共代表点划分块46根据所提供的公共代表点信息,将每个公共代表点一分为二,由此执行位置校正。然后,在步骤S7,公共代表点划分块46将作为公共代表点数量的GpNum的值加倍,并向成员向量分配块47提供此乘法结果。
在步骤S8中,成员向量分配块47向公共代表点分配成员向量。在步骤S9,成员向量分配块47确定成员向量所属的所有公共代表点是否与以前相同、即这些公共代表点是否与在最后分配时相同,并且,向这些公共代表点分配与最后分配时相同的成员向量。
如果发现所述成员向量所属的公共代表点与以前不同,即如果在此时和最后分配时之间存在公共代表点的差异或者成员向量分配的差异,则成员向量分配块47向质心计算块43提供此判定结果,此时,该过程进行到步骤S10。
在步骤S10中,质心计算块43计算属于同一公共代表点的成员向量的质心。公共代表点设置块44将所计算的质心设置为新的公共代表点。即,质心计算块43将分配给一个公共代表点的成员向量当作单个组,并计算每个组的质心。公共代表点设置块44将所计算的质心作为公共代表点提供给成员向量分配块47,此时,该过程返回步骤S8以便从这里重复上述处理。根据所提供的公共代表点信息,成员向量分配块47再次向每个公共代表点分配成员向量。
也就是说,成员向量分配块47、质心计算块43和公共代表点设置块44重复步骤S8到S10,直到成员向量分配块47在坐标S9中确定成员向量所属的公共代表点全部与最后分配时相同为止。
如果成员向量所属的公共代表点在步骤S9被确定为与最后分配时相同,则成员向量分配块47向公共代表点计数判定块45提供此判定结果,此时,该过程返回步骤S5以便从这里重复上述处理。
即,公共代表点计数判定块45、公共代表点划分块46、成员向量分配块47、质心计算块43和公共代表点设置块44重复步骤S5到S10,直到公共代表点计数判定块45在步骤S5确定作为公共代表点数量的GpNum的值不小于目标计数NumReq的值为止。
如果在步骤S5发现GpNum的值不小于NumReq的值,即如果已经设置了目标数量的公共代表点(或如果所设置的公共代表点的数量已经达到目标计数),则公共代表点计数判定块45向公共代表点存储控制块48提供这个信息,此时,该过程进行到步骤S11。
在步骤S11,公共代表点存储控制块48向公共代表点信息存储块13提供所接收的公共代表点信息以进行存储。公共代表点信息存储块13存储所接收的公共代表点信息。
在完成了步骤S11的处理之后,公共代表点存储控制块48结束上述公共代表点设置处理。
如上所述,公共代表点设置块12执行公共代表点设置处理,以便通过使用质心来设置R个公共代表点。因此,即使存在要进行搜索的两个或多个向量集合(或模型),特征量比较装置10也能够容易地为每个集合(或模型)产生相邻表,并且通过使用此相邻表而对于每个集合(或模型)快速搜索输入向量的相邻向量。
在如上所述设置了R个公共代表点之后,特征量比较装置10产生等于向量组(或M个向量组)的数量的数量的相邻表,所述相邻表提供与每个公共代表点的相邻向量相关联的表信息(即产生由M个相邻表组成的相邻表组)。根据在公共代表点信息存储块13中存储的向量信息和在向量信息存储块11中存储的向量信息,相邻表组产生块14(图1)执行相邻表组产生处理。下面参照图15所示的流程图来描述此相邻表组产生处理的流程。
当相邻表组产生处理开始时,相邻表组产生块14的初始化处理块61(图7)在步骤S31执行初始化处理,例如将指示要处理的向量组的变量j的值(0≤j≤M-1)、指示要处理的公共代表点的变量h的值(0≤h≤R-1)和指示要处理的成员向量的变量i的值(0≤i≤N-1)初始化为“0”。应当注意,M、R和N是给定的自然数。
在步骤S32,相邻表组产生控制块62确定是否已经为所有M个向量组的每一个产生了相邻表。如果存在还没有为其产生相邻表的任何向量组,则相邻表组产生控制块62向相邻表产生块63提供此判定结果,此时,该过程进行到步骤S33。在步骤S33,相邻表产生块63产生向量组S(j)的相邻表。稍后将描述此相邻表产生处理的细节。
在产生了相邻表之后,相邻表产生块63向相邻表存储控制块64提供所产生的相邻表,此时,该过程进行到步骤S34。
在步骤S34,在获得所产生的相邻表之后,相邻表存储控制块64向相邻表组存储块15提供所接收的相邻表,以便向由其它向量的相邻表组成的相邻表组(一个或多个相邻表)增加该相邻表。在相邻表存储控制块64的控制下,相邻表组存储块15将所提供的相邻表存储到已被存储的相邻表组中。应当注意,如果相邻表组存储块15没有存储相邻表并且因此所提供的相邻表对于相邻表组存储块15是第一个,则相邻表组存储块15将所提供的相邻表存储为新的相邻表组。
在完成了步骤S34的处理之后,相邻表存储控制块64向相邻表组产生控制块62返回处理结果。在步骤S35,相邻表组产生控制块62向变量j加“1”,由此改变为其产生相邻表的要处理的向量组。
如上所述,相邻表组产生控制块62、相邻表产生块63和相邻表存储控制块64重复步骤S32到S35,直到相邻表组产生控制块62在步骤S32中确定已经产生了所有向量组的相邻表(或已经产生了M个相邻表)为止。如果在步骤S32发现产生了所有向量组的相邻表,则相邻表组产生控制块62结束相邻表组产生处理。
通过执行如上所述的相邻表组产生处理,相邻表组产生块14能够产生每个向量组的相邻表(或由M个相邻表组成的相邻表组)。在这么做时,使用对于所有向量组公共的公共代表点允许相邻表组产生块14迅速产生两个或多个搜索目标向量集合(或向量组)(如果有的话)的相邻表。而且,如果存在两个或多个要搜索的向量集合,则将此相邻表组用于对输入向量的最近相邻向量的搜索使得特征量比较装置10可以迅速地在每个集合中搜索输入向量的最近相邻向量。
下面参照图16所示的流程图来描述要在图15所示的步骤S33中由相邻表产生块63(图7)执行的相邻表产生处理的流程的细节。
当相邻表产生处理开始时,相邻表产生块63的相邻表组产生控制块81(图8)在步骤S51确定R个公共代表点的记录是否均已产生。如上面参照图3所述的那样,通过对应于公共代表点的记录来配置相邻表。相邻表组产生控制块81确定是否已经全部获得了这些公共代表点的相邻向量(K个相邻向量,K是任意自然数)、已经完成了R个记录的产生以及已经完成了相邻表。如果剩余有其记录还没有被产生(或还没有获得相邻表)的任何公共代表点并且还没有产生所有公共代表点的记录,则相邻表组产生控制块81使该过程进行到步骤S52。
在步骤S52,距离信息产生块82产生在进行处理的公共代表点C(h)和每个向量Vm(进行处理的向量组的每个成员向量)之间的距离信息,所述距离信息是在公共代表点C(h)和成员向量Vm之间的距离的1/2。稍后将描述这个距离信息产生处理的细节。距离信息产生块82向距离信息分类块83提供所产生的距离信息,此时,该过程进行到步骤S53。在步骤S53中,距离信息分类块83以更短的顺序(或以距离值的升序)分类所产生的距离信息,并且向距离信息提取块84发送该分类的结果。在步骤S54中,距离信息提取块84以升序提取K个距离信息,并向记录保存块85提供所提取的距离信息。
在步骤S55,记录保存块85保存由距离信息提取块84提取的距离信息组,使得所述距离信息组被添加到当前进行处理的组S(j)的相邻表中,作为公共代表点C(h)的记录。即,记录保存块85将从距离信息提取块84提供的距离信息组保存为相邻表的记录。
记录保存块85向相邻表组产生控制块81返回此处理的结果。在步骤S56,相邻表组产生控制块81向变量h的值加“1”,以改变进行处理的公共代表点,此时,该过程返回步骤S51以从其重复上述处理。
即,相邻表组产生控制块81、距离信息产生块82、距离信息分类块83、距离信息提取块84和记录保存块85重复步骤S51到S56,直到相邻表组产生控制块81在步骤S51确定已经产生了所有公共代表点的记录为止。
如果在步骤S51发现产生了所有公共代表点的记录并且发现为进行处理的向量组产生了相邻表,则相邻表组产生控制块81结束相邻表产生处理,并且使记录保存块85将其中保存的记录组作为相邻表返回给相邻表存储控制块64(图7),此时,该过程返回图15中的步骤S33,以从其重复上述处理。
下面参照图17所示的流程图来描述要由距离信息产生块82(图8)在图16所示的步骤S52执行的距离信息产生处理的流程的细节。
当距离信息产生处理开始时,距离信息产生块82的距离信息产生控制块101(图9)在步骤S71确定是否已经为当前进行处理的公共代表点C(h)产生了当前进行处理的向量组S(j)中的所有N个成员向量Vm(i,j)的距离信息。如果发现尚未为其产生距离信息的任何成员向量Vm(i,j)、并且因此尚未产生所有R个公共代表点的记录,则距离信息产生控制块101使该过程进行到步骤S72。
在步骤S72,距离计算块102计算在当前进行处理的公共代表点C(h)和成员向量Vm(i,j)之间的距离。例如,假定公共代表点C(h)和成员向量Vm(i,j)存在于一个平面上,并且其位置由x和y坐标表示、并且令公共代表点C(h)的坐标为(x1,y1)以及成员向量Vm(i,j)的坐标为(x2,y2),则从下面的方程(1)获得在公共代表点C(h)和成员向量Vm(i,j)之间的距离Dcm(h,i,j)Dcm=(x1-x2)2+(y1-y2)2---(1)]]>即,利用坐标之间的差的平方和的平方根来表示距离Dcm。距离计算块102向1/2乘法块103提供所计算的距离。在步骤S73,1/2乘法块103将所计算的距离乘以1/2以获得Dcm/2,并且向距离信息保存块104提供其结果。
在步骤S74,距离信息保存块104将相乘结果保存为成员向量Vm(i,j)的距离信息,并且向距离信息产生控制块101返回这个处理的结果。在步骤S75,距离信息产生控制块101向指示进行处理的成员向量Vm的变量i的值加“1”以改变进行处理的成员向量。在改变进行处理的成员向量后,距离信息产生控制块101使该过程返回步骤S71以便对进行处理的新成员向量重复从该处起的上述处理。
即,距离信息产生控制块101、距离计算块102、1/2乘法块103和距离信息保存块104重复步骤S71到S75,直到距离信息产生控制块101在步骤S71确定已经产生了所有成员向量的距离信息为止。
如果在步骤S71发现对于当前进行处理的公共代表点C(h)产生了当前进行处理的向量组S(j)中的所有N个成员向量Vm(i,j)的距离信息,则距离信息产生控制块101结束这个距离信息产生处理,并且使距离信息保存块104向距离信息分类块83(图8)提供其中保存的距离信息,此时,该过程返回图16所示的步骤S52,以从其重复上述处理。
图1所示的特征量比较装置10的最近相邻向量组搜索块16根据在相邻表组存储块15中存储的相邻表组、在公共代表点信息存储块13中存储的公共代表点信息和在向量信息存储块11中存储的向量信息,在每个向量组(或每个模型)中搜索输入向量的最近相邻向量,并将所检索的最近相邻向量作为最近相邻向量组输出。下面参照图18所示的流程图来描述这个最近相邻向量组搜索处理的流程。当已经将输入向量输入以便开始最近相邻向量组搜索处理时,最近相邻向量组搜索块16的初始化处理块121从向量信息存储块11获得向量信息,从公共代表点信息存储块13获得公共代表点信息,并且从相邻表组存储块15获得相邻表组,由此在步骤S91执行初始化处理,例如将指示进行处理的向量组的变量j的值、指示进行处理的公共代表点的变量h的值和指示进行处理的成员向量的变量i和变量k的值初始化(例如到“0”)。
在步骤S92,最近相邻向量组搜索控制块122确定是否已经对于所有M个向量组(或模型)搜索了输入向量的最近相邻向量。如果发现有任何向量组还没有被处理,则最近相邻向量组搜索控制块122向最近相邻向量搜索块123提供此判定结果,此时,该过程进行到步骤S93。在步骤S93,最近相邻向量搜索块123执行在进行处理的向量组中搜索输入向量的最近相邻向量的处理。稍后将描述此最近相邻向量搜索处理的细节。如果已经检索到最近相邻向量,则最近相邻向量搜索块123向最近相邻向量组搜索控制块122提供这个搜索处理的结果,此时,该过程进行到步骤S94。在步骤S94,最近相邻向量组搜索控制块122向变量j的值加“1”以改变进行处理的向量组,此时,该过程返回步骤S91,以便对进行处理的新向量组从该处起重复上述处理。
即,最近相邻向量组搜索控制块122和最近相邻向量搜索块123重复步骤S92到S94,直到最近相邻向量组搜索控制块122在步骤S92确定已经在所有M个向量组中搜索了最近相邻向量为止。
如果在步骤S92发现在所有向量组中搜索了输入向量的最近相邻向量、从而获得所有最近相邻向量组,则最近相邻向量组搜索控制块122输出最近相邻向量组,由此结束这个最近相邻向量组搜索处理。
如上所述,当最近相邻向量组搜索块16在每个向量组(或模型)中搜索输入向量的最近相邻向量并输出所检索的最近相邻向量组时,即使存在两个或更多模型,特征量比较装置10也能够容易地在模型和输入信息之间进行特征的比较。
下面参照图19所示的流程图来描述要由最近相邻向量搜索块123(图10)在图18所示的步骤S93执行的最近相邻向量搜索处理的流程细节。
当最近相邻向量搜索处理开始时,最近相邻向量搜索块123的初始化处理块141(图11)在步骤S111执行初始化处理,例如将指示要进行处理的公共代表点的变量h的值以及指示要进行处理的成员向量的变量i和变量k的值初始化(例如到“0”)。
在步骤S112,最近相邻向量搜索控制块142确定是否已经在所有R个公共代表点C(h)中搜索了最近相邻向量。如果发现未在所有R个公共代表点C(h)中搜索最近相邻向量,即如果剩余由尚未处理的任何公共代表点,则最近相邻向量搜索控制块142向距离计算块143提供此判定结果,此时,该过程进行到步骤S113。
在步骤S113中,距离计算块143计算输入向量Vin和公共代表点C(h)之间的距离Dinc(h),并向距离比较块144提供计算结果。距离计算块143按照与上述方程(1)、即公共代表点和成员向量之间的距离的计算相同的方式来计算坐标之间的差的平方和的平方根。
在步骤S114,距离比较块144将距离Dinc(h)与相邻表的公共代表点C(h)的记录的距离信息的最大值相比较,以便在步骤115确定距离Dinc(h)是否更小。如果发现相邻表的公共代表点C(h)的记录的距离信息的最大值比距离Dinc(h)小,则距离比较块144向最近相邻向量搜索控制块142返回这个比较结果,此时,该过程进行到步骤S116。
在步骤S116,最近相邻向量搜索控制块142向变量h的值加“1”以改变进行处理的公共代表点C(h),此时,该过程返回步骤S112以便对新公共代表点C(h)重复从该处起的上述处理。
即,最近相邻向量搜索控制块142、距离计算块143和距离比较块144重复步骤S112到S116,直到最近相邻向量搜索控制块142在步骤S112确定已经在所有公共代表点C(h)中搜索了最近相邻向量、或者距离比较块144在步骤S115确定距离Dinc(h)小于相邻表的公共代表点C(h)的记录的距离信息的最大值为止。
如果在步骤S115发现距离Dinc(h)比相邻表的公共代表点C(h)的记录的距离信息的最大值小,则距离比较块144向表内搜索块145提供此判定结果,此时,该过程进行到步骤S117。在步骤S117,表内搜索块145在要进行处理的相邻表中搜索最接近输入向量的向量。即,表内搜索块145将在其中搜索输入向量的最近相邻向量的搜索范围限制到在相邻表中列出的相邻向量,并且在这些相邻向量中搜索最近相邻向量。稍后将描述对最近相邻向量的此表内搜索处理的流程细节。
当完成了步骤S117的处理时,表内搜索块145向最近相邻向量设置块146提供搜索结果。在步骤S118,最近相邻向量设置块146将由表内搜索块145检索并且由其提供的向量设置为最近相邻向量,并将此最近相邻向量提供给最近相邻向量组搜索控制块122,由此结束最近相邻向量搜索处理,此时,该过程返回图18所示的步骤S93,以从其重复上述处理。
即,如果存在其与输入向量的距离小于相邻表中的记录的距离信息的最大值(所述距离的1/2)的任何公共代表点,则表内搜索块145在该公共代表点的相邻向量(在相邻表中列出的成员向量)中搜索输入向量的最近相邻向量。
如果在步骤S112发现对于所有公共代表点C(h)执行了对最近相邻向量的搜索、即不再存在其与输入向量的距离小于所述记录的距离信息的最大值(所述距离的1/2)的公共代表点,则最近相邻向量搜索控制块142向组内全体搜索块147提供此判定结果,此时,该过程进行到步骤S119。
在步骤S119,组内全体搜索块147在组内的所有成员向量中搜索最接近输入向量的向量(或最近相邻向量)。组内全体搜索块147向最近相邻向量设置块146提供此搜索的结果,此时,该过程返回步骤S118以从其重复上述处理。
在这种情况下,在步骤S118,最近相邻向量设置块146将由组内全体搜索块147检索并作为搜索结果提供的成员向量设置为最近相邻向量,并向最近相邻向量组搜索控制块122提供此最近相邻向量,由此结束最近相邻向量搜索处理,此时,该过程返回图18所示的步骤S93以从其重复上述处理。
如上所述,最近相邻向量搜索块123根据输入向量和公共代表点之间的距离而将最近相邻向量的搜索范围设置为相邻向量或整个向量组,并且在那个搜索范围内执行搜索处理。如果输入向量接近任何一个公共代表点,更具体地说,如果存在对于其在输入向量和公共代表点之间的距离小于在相邻表的公共代表点的记录中登记的距离信息的最大值(公共代表点和相邻向量之间的距离的1/2)的任何公共代表点,则此设置使得最近相邻向量搜索块123可以将最近相邻向量的搜索范围限制到公共代表点的相邻向量,由此排除不必要的候选者(不会明显成为最近相邻向量的那些成员向量),以便加速对最近相邻向量的搜索。
此外,上述处理使得可以实现仅对必须将向量组的所有成员向量设置为搜索范围的组执行整个向量组搜索处理,并在其中存在明显不必要的成员向量的向量组的相邻向量中执行搜索处理。即,如果存在两个或多个要进行搜索的向量集合,则最近相邻向量搜索块123能够迅速地在每个集合中搜索输入向量的相邻向量,而不会伴随着搜索精度的劣化。
下面参照图20所示的流程图来描述将由表内搜索块145(图11)在图19所示的步骤S117中执行的表内搜索处理的流程细节。
首先,当表内搜索处理开始时,表内搜索块145的初始化处理块161(图12)在步骤S131执行初始化处理,例如将指示要进行搜索的相邻向量的变量k的值初始化(例如到“0”)、将在数据保存块165中保存的最近相邻向量候选者Vkeep设置为处于距输入向量无限远处的虚拟点、以及将该最近相邻向量候选者Vkeep距输入向量的距离Dkeep设置为无穷大。
在步骤S132,表内搜索控制块162确定是否已经对在记录中包括的所有K个相邻向量Vt(k)(0≤k≤K-1)进行了搜索。如果有尚未处理的任何相邻向量Vt(k),则表内搜索控制块162向距离计算块163提供该判定结果,此时,该过程进行到步骤S133。
在步骤S133,距离计算块163计算在输入向量Vin和相邻向量Vt(k)之间的距离Dint(k),并且向更新控制块164提供所计算的距离,此时,该过程进行到步骤S134。
在步骤S134,更新控制块164确定距离Dint(k)是否小于在输入向量Vin和最近相邻向量候选者Vkeep之间的距离Dkeep。如果发现距离Dint(k)小于距离Dkeep,则更新控制块164向数据保存块165提供关于要进行处理的相邻向量Vt(k)的信息和距离Dint(k),此时,该过程进行到步骤S135。在步骤S135,数据保存块165通过使用所提供的关于相邻向量Vt(k)的信息和距离Dint(k)来更新最近相邻向量候选者Vkeep和输入向量之间的距离Dkeep的信息。
更新控制块164向表内搜索控制块162返回上述控制处理结果,此时,该过程进行到步骤S136。如果在步骤S134发现距离Dint(k)大于输入向量Vin和向量Vkeep之间的距离Dkeep,则更新控制块164跳过步骤S135,并向表内搜索控制块162返回此控制处理的结果,此时,该过程进行到步骤S136。
在步骤S136中,表内搜索控制块162向变量k的值加“1”以改变要进行处理的相邻向量Vt(k),此时,该过程返回步骤S132,以便对进行处理的新相邻向量Vt(k)重复从该处起的上述处理。
即,表内搜索控制块162、距离计算块163、更新控制块164、以及数据保存块165重复步骤S132到S136,直到表内搜索控制块162在步骤S132确定已经对在记录中包括的所有相邻向量Vt(k)进行了搜索为止。
然后,如果在步骤S132已经对在记录中包括的所有相邻向量Vt(k)执行了搜索,则表内搜索控制块162使数据保存块165将其中保存的最近相邻向量候选者Vkeep和与输入向量的距离Dkeep的信息作为搜索处理结果提供给最近相邻向量设置块146,以结束表内搜索处理,此时,该过程返回图19所示的步骤S117以便从步骤S118重复上述处理。
下面参照图21所示的流程图来描述要由组内全体搜索块147(图11)在图19所示的步骤S119执行的组内全体搜索处理的流程细节。
首先,当组内全体搜索处理开始时,组内全体搜索块147的初始化处理块181(图13)在步骤S151执行初始化处理,例如将指示进行处理的成员向量的变量i的值初始化(例如到“0”)、将在数据保存块185中保存的最近相邻向量的候选者Vkeep设置为处于距输入向量无限远处的虚拟点、并将最近相邻向量候选者Vkeep与输入向量的距离Dkeep设置为无限大。
在步骤S152,组内全体搜索控制块182确定是否已经对在组中包括的所有N个成员向量Vm(i,j)进行了搜索。如果发现尚未处理的任何成员向量Vm(i,j),则组内全体搜索控制块182向距离计算块183提供此判定结果,此时,该过程进行到步骤S153。
在步骤S153,距离计算块183计算在输入向量Vin和进行处理的成员向量Vm(i,j)之间的距离Dint(i),并向更新控制块184提供此计算的结果,此时,该过程进行到步骤S154。
在步骤S154,更新控制块184确定距离Dint(i)是否小于在输入向量Vin和最近相邻向量候选者Vkeep之间的距离Dkeep。如果发现Dint(i)小于距离Dkeep,则更新控制块184向数据保存块185提供要进行处理的成员向量Vm(i,j)的信息和距离Dint(i),此时,该过程进行到步骤S155。在步骤S155,数据保存块185通过使用所提供的向量Vm(i,j)的信息和距离Dint(i)来更新其中保存的最近相邻向量候选者Vkeep的信息和与输入向量的距离Dkeep。
更新控制块184向组内全体搜索控制块182返回这个控制处理的结果,此时,该过程进行到步骤S156。如果在步骤S154发现距离Dint(i)大于在输入向量Vin和其中保存的最近相邻向量Vkeep之间的距离Dkeep,则更新控制块184跳过步骤S155,并向组内全体搜索控制块182返回控制处理的结果,此时,该过程进行到步骤S156。
在步骤S156,表内搜索控制块162向变量i的值加“1”以改变要进行处理的成员向量Vm(i,j),此时,该过程返回步骤S152,以便对要进行处理的新成员向量Vm(i,j)从该处起重复上述处理。
即,表内搜索控制块162、距离计算块163、更新控制块164和数据保存块165重复步骤S152到S156,直到表内搜索控制块162确定已经对在记录中包括的所有N个成员向量Vm(i,j)(0≤i≤N-1)进行了搜索为止。
如果在步骤S152发现对在向量组中包括的所有N个成员向量Vm(i,j)进行了搜索,则组内全体搜索控制块182将在数据保存块185中保存的最近相邻向量Vkeep的信息及其与输入向量的距离Dkeep作为搜索处理结果提供给最近相邻向量设置块146,并结束此组内全体搜索处理,此时,该过程返回图19所示的步骤S119,以便从步骤S118重复上述处理。
如上所述,图1示出的特征量比较装置10计算对于所有向量组(或模型)公共的代表点,通过使用所计算的公共代表点来产生相邻表,并且通过使用所产生的相邻表来搜索输入向量的最近相邻向量,使得如果存在两个或多个要进行搜索的向量集合,则特征量比较装置10能够迅速地在该向量集合中搜索输入向量的最近相邻向量。即,如果存在多个要进行搜索的集合,则特征量比较装置10能够以高速在这些集合中搜索期望的元素。
应当注意,在上述的描述中,参数的常数N、M、R、K等可以是任意自然数,只要在大小(measure)关系之间没有矛盾即可;即,这些常数可以是用户指定的值或预定值。
此外,对于本发明的实施例,可以将任何种类的向量信息用于用来搜索最近相邻向量的输入向量以及要进行搜索的成员向量(或模型)。另外,可以将本发明的实施例用于例如非向量信息的搜索。例如,本发明的实施例适用于在集合中搜索期望元素的任何搜索处理。
参照图1描述了本发明,其中特征量比较装置10作为一个实施例而被实践。而且,可以在由多个装置组成的系统中实施本发明。例如,图1所示的特征量比较装置10的组件可被配置为独立的装置。图22示出了作为本发明的另一个实施例而实践的特征量比较系统的示例配置。
在图22中,特征量比较系统200具有存储装置211、公共代表点设置装置212、相邻表组产生装置214和最近相邻向量组搜索装置216,并且执行与图1所示的特征量比较装置10基本相同的处理。
存储装置211合并了向量信息存储块11、公共代表点信息存储块13和相邻表组存储块15,从而将上述种类的信息对应地存储到这些块中。
公共代表点设置装置212对应图1所示的公共代表点设置块12,相邻表组产生装置214对应图1所示的相邻表组产生块14,并且最近相邻向量组搜索装置216对应图1所示的最近相邻向量组搜索块16,从而执行与由对应的块执行的处理基本相同的处理。因此,将省略对这些块的描述。
即,像图1所示的特征量比较装置10那样,本发明也适用于如此配置的特征量比较系统200。即,如果存在两个或多个要进行搜索的集合,则特征量比较系统200能够以高速在每个集合中搜索期望的元素。
而且,图1所示的特征量比较装置10也可以被配置为另一装置的一部分。例如,特征量比较装置10可以被配置为执行例如图像识别处理的图像处理装置的一部分。
图23是图解作为本发明一个实施例而实践的图像处理装置的示例配置的方框图。在图23中,图像处理装置230将输入图像的特征向量化,并将所得到的特征向量与模型图像的特征向量相比较,以检测这些图像公共(或与这些图像近似)的特征,由此识别输入图像。
在图23中,图像处理装置230由学习块231和识别块232组成。学习块231是用于将模型图像的特征向量登记为模型词典的处理块,并且具有特征点提取块241、特征量提取块242和模型词典登记块243。
特征点提取块241从模型图像提取预定特征点,并向特征量提取块242提供所提取的特征点。特征量提取块242提取由特征点提取块241提取的特征点的特征量,并将所提取的特征量作为特征向量登记到模型词典登记块243中。
识别块232提取输入图像的特征向量,将所提取的特征向量与模型图像的特征向量相比较,并确定是否有与模型匹配(或近似)的任何部分。识别块232具有特征点提取块244、特征量提取块245、特征量比较块246和模型检测判定块247。
特征点提取块244从输入图像提取预定特征点,并向特征量提取块245提供所提取的特征点。特征量提取块245提取由特征点提取块244提取的特征点的特征量,并向特征量比较块246提供所提取的特征量。特征量比较块246具有与图1所示的特征量比较装置10的配置相同的配置,并执行与特征量比较装置10的处理相同的处理,以便将在模型词典登记块243中登记的模型图像的特征向量与输入图像的特征向量相比较,从而向模型检测判定块247提供此比较结果。模型检测判定块247根据这个比较结果来确定是否已经在模型图像中检测到输入图像的特征,从而将此判定结果作为识别处理结果输出到所述装置外部。
因此,图1所示的特征量比较装置10可被用作特征量比较块246,以便通过图像处理装置230执行特征向量的比较。在这种情况下,特征量比较块246也执行与由特征量比较装置10执行的上述处理相同的处理。
另外,与特征量比较装置10的组件(图1)相同的处理块可以被配置为除了特征量比较块246之外的那样。图24是图解图23所示的图像处理装置230的另一示例配置的方框图。
在图24的情况中,像图23所示的图像处理装置230那样,图像处理装置250具有学习块251和识别块252。学习块251具有取代学习块231的模型词典登记块243的模型词典登记块263、公共代表点设置块12和相邻表组产生块14。模型词典登记块263除了模型词典登记块243的能力之外还具有向量信息存储块11、公共代表点信息存储块13和相邻表组存储块15。
识别块252具有取代识别块232的特征量比较块246的最近相邻向量组搜索块16。
即,在图23所示的图像处理装置230的情况中,识别块232具有对应于图1所示的特征量比较装置10的特征量比较块246。在图24所示的图像处理装置250的情况中,识别块252仅具有图1所示的特征量比较装置10的最近相邻向量组搜索块16,并且学习块251具有图1所示的特征量比较装置10的其它组件(即向量信息存储块11、公共代表点设置块12、公共代表点信息存储块13、相邻表组产生块14和相邻表组存储块15)。
如上所述,可以以任何方式将特征量比较装置10的每个组件配置用于图像处理装置230,只要由所述组件进行的处理内容保持基本相同即可(即只要所述组件被配置为使得所述组件对应特征量比较装置10即可)。
另外,可以将根据本发明的特征比较的上述配置与其它技术组合。例如,为了使成员向量组的处理更容易,可以将基于主分量分析的坐标转换处理应用于上述特征量比较处理。
图25是图解特征量比较装置的另一示例配置的方框图。通过向由图1所示的特征量比较装置10进行的特征量比较处理应用基于主分量分析的坐标转换处理来获得特征量比较装置280,并且其具有向量信息存储块11、成员向量坐标转换块281、输入向量坐标转换块282、最近相邻向量组坐标转换块283、转换坐标(converted coordinate)向量信息存储块291、转换坐标公共代表点设置块292、转换坐标公共代表点信息存储块293、转换坐标相邻表组产生块294、转换坐标相邻表组存储块295以及转换坐标最近相邻向量组搜索块296。
成员向量坐标转换块281如稍后将描述的那样根据在向量信息存储块11中存储的向量信息执行主分量分析,由此转换每个成员向量的坐标。成员向量坐标转换块281向转换坐标向量信息存储块291提供坐标转换后的向量信息(或转换坐标向量信息)以存储在其中。而且,成员向量坐标转换块281向输入向量坐标转换块282提供关于主分量分析结果的信息。
输入向量坐标转换块282根据从成员向量坐标转换块281提供的关于主分量分析结果的信息而对输入向量执行与成员向量坐标转换块281基本相同的坐标转换处理,并向转换坐标最近相邻向量组搜索块296提供在转换后的坐标上的输入向量(或转换坐标输入向量)。此外,输入向量坐标转换块282向最近相邻向量组转换块283提供关于主分量分析结果的信息。
在获得从转换坐标最近相邻向量组搜索块296提供的转换后的坐标上的最近相邻向量组(或转换坐标最近相邻向量组)之后,最近相邻向量组转换块283根据从输入向量坐标转换块282提供的关于主分量分析结果的信息,对所获得的转换坐标最近相邻向量组执行对应于输入向量坐标转换块282的坐标转换处理,由此将转换坐标最近相邻向量组转换为原始坐标系(或存储在向量信息存储块11中的向量信息的坐标系),以便将原始坐标的最近相邻向量组输出到特征量比较装置280的外部。
转换坐标向量信息存储块291、转换坐标公共代表点设置块292、转换坐标公共代表点信息存储块293、转换坐标相邻表组产生块294、转换坐标相邻表组存储块295和转换坐标最近相邻向量组搜索块296分别对应图1所示的向量信息存储块11、公共代表点设置块12、公共代表点信息存储块13、相邻表组产生块14、相邻表组存储块15和最近相邻向量组搜索块16,从而除了前者的块对转换后的坐标执行处理之外,执行与由这些块进行的处理相同的处理。因此,将跳过对前者的块的描述。
下面参照图26A和26B来描述基于主分量分析的坐标转换。图26A示出了向量组21-1中的特征向量22的示例分布。如图26A所示,假定向量组21-1的特征向量22分布在由x坐标和y坐标定义的平面上。特征向量22指示例如图像信息的预定特征,使得其分布不一致;这种分布很可能具有预定的偏移(deviation)。例如,图像边缘部分被提取为特征点,所提取的边缘部分的特征被包括在每个特征向量22中。即,因为在每个特征向量22中包括相同或近似的特征,因此这些特征向量22的分布具有分布偏移。
因此,特征向量22的分布具有特征向量22分布在最宽范围内的方向(即,对分布的贡献最大的方向)。这个方向被称为主分量。
图25所示的特征量比较装置280从成员向量的分布检测此主分量,以将成员向量的坐标转换为将此主分量作为轴的坐标,如图26B所示。
即,如图26A中所示,特征量比较装置280将分布在由x坐标和y坐标定义的坐标系上的特征向量22的坐标转换为由x’坐标和y’坐标定义的坐标系,所述y’坐标与x’坐标垂直,并且x’坐标和y’坐标是特征向量22的主分量。图26B示出了坐标转换后的特征向量22的分布。
这个坐标转换使得在程度上大致相同、在x坐标方向上范围为a并且在y坐标方向上范围为b的特征向量22的分布在x’坐标方向上范围为a’并且在y’坐标方向上范围为b’(a’>>b’)。即,特征向量22的分布由于坐标转换而在x’坐标的方向上偏移。
通过执行如上所述的用于坐标转换的主分量分析,特征量比较装置280省略对成员向量分布的贡献比率低的方向上的分布,以执行例如如图27A、27B和27C所示的维度压缩。例如,如图27A所示,如果沿着x’轴方向几乎线性地分布的特征向量22提供向量组21-1的主向量,则如图27B所示的特征向量22的坐标转换产生仅仅在x’坐标方向上、几乎不在与x’坐标方向垂直的y’坐标方向上的特征向量22的分布。在这种情况下,特征量比较装置280省略相对于主分量对分布的贡献比率中压倒性地小的y’坐标方向上的分布,并将所有特征向量视为处于x’轴上(或在单维上)。即,在此情况中,特征量比较装置280在维度上将特征向量22的分布从二维坐标压缩为单维坐标。特征向量分布的这种维度压缩使得特征量比较装置280可以减少例如用于计算向量之间距离的运算表示的维度数目,由此减少运算量。即,特征量比较装置280执行上述维度压缩,以减轻搜索每个输入向量的最近相邻向量的负荷,从而提高处理速度。
除了诸如如上所述的维度压缩之外,特征量比较装置280可以执行例如如图28所示的主分量分析以进行坐标转换,由此通过使用贡献比率的偏移来加速对最近相邻向量的搜索。
在对最近相邻向量的搜索中,特征量比较装置280逐个计算输入向量和搜索范围中的每个成员向量之间的距离,并将具有最短距离的成员向量当作如上所述的最近相邻向量。更具体而言,特征量比较装置280首先作为最近相邻向量候选者Vkeep的初始值保存与输入向量的距离Dkeep为无限大的点。接着,特征量比较装置280逐个计算输入向量和搜索范围中的所有成员向量的每一个之间的距离。如果发现计算距离小于在特征量比较装置280中保存的距离Dkeep,则特征量比较装置280更新在最近相邻向量候选者Vkeep和输入向量之间的距离Dkeep。重复这个操作,特征量比较装置280将最后保存的候选者Vkeep(即在处理所有成员向量之后保存的候选者)设置为最近相邻向量。
即,对于如图28A所示的向量组21,如果对于输入向量27将特征向量22A保存为最近相邻向量的候选者Vkeep,则特征量比较装置280首先计算特征向量22B和输入向量27之间的距离,并将所计算的距离与在特征向量22A和输入向量27之间的距离相比较。如果特征向量22A更接近输入向量,则特征量比较装置280计算在特征向量22C和输入向量27之间的距离,并将所计算的距离与在特征向量22A和输入向量27之间的距离相比较。同样,如果特征向量22A更接近输入向量27,则特征量比较装置280计算在特征向量22D和输入向量27之间的距离,并将所计算的距离与在特征向量22A和输入向量27之间的距离相比较。这样,特征量比较装置280逐个计算在特征向量和输入向量之间的距离,并将所计算的距离与在当前最近相邻向量候选者和输入向量之间的距离相比较。如果新发现与输入向量最近的相邻向量,则特征量比较装置280将该成员向量设置为新的最近相邻向量候选者,并保存其信息。
此时计算的在向量之间的距离由如上面的方程(1)所示的两个点的坐标分量之间的差的平方和的平方根来表示。因为坐标分量之间的差值总是正的,所以通过正值的和来确定两个距离之间的差的绝对值(表示哪个成员向量更接近输入向量)。即,如果计算两个点之间的距离并将所计算的距离与例如某个基准距离相比较,并且如果这两个点的某些坐标分量之间的差的平方大于所述基准距离的平方,则这两个点之间的距离总是长于基准距离。
因此,在计算成员向量和输入向量之间的距离时,特征量比较装置280以贡献比率的降序顺次计算分量之间的差的平方(值相对较大的项),将所计算的距离相加,并且每次进行相加时,将所获得的距离与在最近相邻向量候选者Vkeep和输入向量之间的距离Dkeep的平方相比较。通过这么做,当相加结果超过了距离Dkeep的平方时,因为这种成员向量从不会成为最近相邻向量候选者,所以特征量比较装置280可以停止成员向量的距离计算(而不加上具有较低贡献比率的分量之间的差的平方(值相对较小的项)),从而前进到对于下一成员向量的距离计算。
换句话说,在成员向量和输入向量之间的距离的计算中,特征量比较装置280以贡献比率的降序将在两个点的坐标分量之间的差的平方相加,此相加结果画出图28B所示的曲线。即,在对于每个分量如此给出对特征向量22的分布的偏移并执行如上所述的计算之后,特征量比较装置280可以使超过在早期维度阶段中保存的最近相邻向量候选者的距离(Dkeep)的值的可能性更大,从而省略了计算。
因此,通过在每次进行相加时分量之间的差的平方的相加结果和所保存的距离(Dkeep)之间的比较,特征量比较装置280可以减少距离计算的运算量,以提高搜索最近相邻向量的效率,从而加速搜索处理。
下面描述图25所示的特征量比较装置280的详细示例配置。参见图29,示出了图解图25所示的成员向量坐标转换块281的详细示例配置的方框图。在图29中,成员向量坐标转换块281具有向量组集成块311、主分量分析块312、坐标转换块313、维度压缩块314和转换坐标向量信息存储控制块315。
向量组集成块311根据从向量信息存储块11获得的向量信息将向量组集成到一个向量组中,并且向主分量分析块312提供其信息。
主分量分析块312对成员向量的分布执行主分量分析,并向坐标转换块313提供分析结果。根据所提供的分析结果,坐标转换块313将每个成员向量坐标转换为具有被用作坐标轴的主分量的坐标系,并且向维度压缩块314提供此转换结果。维度压缩块314根据需要在维度上压缩在转换后的坐标上的成员向量的分布,并向转换坐标向量信息存储控制块315提供这个压缩的结果。转换坐标向量信息存储控制块315向转换坐标向量信息存储块291提供作为在转换后的坐标上的成员向量的向量信息的转换坐标向量信息以存储在其中。
下面参照图30所示的流程图来描述要由特征量比较装置280执行的特征量比较处理的流程。
当特征量比较处理开始时,成员向量坐标转换块281在步骤S171根据从向量信息存储块11提供的向量信息来分析所有成员向量分布的主分量,并根据此分析结果而坐标转换每个成员向量。稍后将描述此成员向量坐标转换处理的细节。
在步骤S172,转换坐标公共代表点设置块292从转换坐标向量信息存储块291获得转换坐标向量信息,并根据转换后的坐标上的向量信息,设置转换后的坐标上的公共代表点(即转换坐标公共代表点)。应当注意,此转换坐标公共代表点设置处理一般与上面参照图14所示的流程图描述的公共代表点设置处理相同,除了前者是在转换后的坐标上以外,因此将省略其详细描述。
在步骤S173,转换坐标相邻表组产生块294根据从转换坐标向量信息存储块291获得的在转换后的坐标上的向量信息、以及从转换坐标公共代表点信息存储块293获得的在转换后的坐标上的公共代表点,产生在转换后的坐标上的相邻表组(即转换坐标相邻表组)。应当注意,这个转换坐标相邻表组产生处理一般与上面参照图15所示的流程图描述的相邻表组产生处理相同,除了前者是在转换后的坐标上的以外,因此将省略其详细描述。
在步骤S174,输入向量坐标转换块282确定是否已经输入了输入向量。如果发现输入了输入向量,则在步骤S175,根据从成员向量坐标转换块281提供的关于主分量分析结果的信息,输入向量坐标转换块282转换输入向量的坐标,并向转换坐标最近相邻向量组搜索块296提供在转换后的坐标上的输入向量(即转换坐标输入向量)。
在步骤S176中,转换坐标最近相邻向量组搜索块296搜索在转换后的坐标上的所提供的转换坐标输入向量组的最近相邻向量组(即转换坐标最近相邻向量组)。这个转换坐标最近相邻向量搜索处理一般与上面参照图18所示的流程图描述的最近相邻向量组搜索处理相同,除了前者是在转换后的坐标上的以外,因此将省略其详细描述。在检索到转换坐标最近相邻向量组之后,转换坐标最近相邻向量组搜索块296向最近相邻向量组转换块283提供该向量组,此时,该过程进行到步骤S177。
在步骤S177,根据从输入向量坐标转换块282提供的关于主分量分析的信息,最近相邻向量组转换块283将每个转换坐标最近相邻向量的坐标转换为原始坐标系。最近相邻向量组转换块283将转换后的最近相邻向量组(即原始坐标系的最近相邻向量组)作为特征量比较结果输出到特征量比较装置280的外部,此时,该过程进行到步骤S178。
如果在步骤S174中发现没有输入输入向量,则输入向量坐标转换块282使该过程进行到步骤S178。在步骤S178,最近相邻向量组转换块283确定是否结束特征量比较处理。如果将不结束此处理,则该过程返回步骤S174以从其重复上述处理。
应当注意,如果根据例如用户指定而在步骤S178要结束特征量比较处理,则最近相邻向量组转换块283结束特征量比较处理。
下面参照图31所示的流程图来描述要在图30所示的步骤S171中执行的成员向量坐标转换处理的流程细节。
当成员向量坐标转换处理开始时,成员向量坐标转换块281的向量组集成块311(图29)根据从向量信息存储块11提供的向量信息而在步骤S191中将所有向量组集成到由每个向量组的所有或部分成员向量组成的一个向量组中,并向主分量分析块312提供这个向量组,此时,该过程进行到步骤S192。
在步骤S192,主分量分析块312执行所有成员向量的主分量分析,并向坐标转换块313提供此分析的结果,此时,该过程进行到步骤S193。在步骤S193,坐标转换块313根据所提供的分析结果转换所有成员向量的坐标,并向维度压缩块314提供这个转换的结果,此时,该过程进行到步骤S194。在步骤S 194,维度压缩块314根据例如用户指定而确定是否对所提供的转换坐标成员向量执行维度压缩。如果要执行维度压缩,则该过程进行到步骤S195,在此,按照对转换坐标成员向量的分布的更低贡献比率的维度(坐标)的升序来执行维度压缩处理,从而在维度上将转换坐标成员向量的分布压缩到期望数量的维度上。当步骤S195的处理结束时,维度压缩块314向转换坐标向量信息存储控制块315提供这个处理的结果,此时,该过程进行到步骤S196。
如果在步骤S194不执行维度压缩,则维度压缩块314跳过步骤S195,并将转换坐标成员向量的向量信息直接提供给转换坐标向量信息存储控制块315,而不执行维度压缩处理,此时,该过程进行到步骤S196。
在步骤S196,转换坐标向量信息存储控制块315向转换坐标向量信息存储块291(图25)提供所提供的转换坐标向量信息以存储在其中。转换坐标向量信息存储块291存储从转换坐标向量信息存储控制块315提供的转换坐标向量信息。
当结束了步骤S196的处理时,转换坐标向量信息存储控制块315结束成员向量坐标转换处理,此时,该过程返回图30所示的步骤S171,以从其重复上述处理。
如上所述,通过分析成员向量分布的主分量、根据分析结果转换每个向量的坐标、并在特征量之间进行比较,特征量比较装置280能够以高速在每个集合中搜索输入向量的相邻向量。即,即使存在两个或多个要进行搜索的集合,特征量比较装置280也能够以高速在每个集合中搜索期望的元素。
应当注意,在上述示例中,仅描述了一种类型的特征向量的比较;但是,要比较的特征向量的类型数量可以是任意的(或者配置每个向量的坐标分量的类型数量可以是任意的)。即,位于相互不同的空间中的两个或多个向量可以每一个都与同一模型相比较。如果存在两种或多种类型的要进行比较的特征向量,则在这些向量的维度数目之间可以存在差别。
但是,在这种情况下,可以对每个特征向量执行上述比较处理;或者,可以将对第一类型的特征向量的比较处理结果用于对接下来要比较的特征向量的比较处理,从而使得特征量比较装置可以加速搜索处理。
参照图32,示出了图解用于比较两种或多种类型的特征向量的处理的流程的示意图。
在图32中,对于存储了一个模型的模型词典331(顶层)中存储的每个模型,提取(从上面起第二层)特征量(模型特征量332),并且为模型特征量332的每种类型构建向量图(从上面起第三层)。在图32中,执行特征量1的第36维向量图构建333-1(从上面起第三层的左侧)和特征量2的第18维向量图构建333-2(从上面起第三层的右侧)。当输入输入向量334(底层的左侧)时,对特征量1的第36维向量图执行对输入向量334的特征量1的相似对组的搜索335(从上面起第四层的左侧)。
通过使用例如上述公共代表点和相邻表来构建特征量1的第36维向量图。在此情况中,按照与例如上面参照图1到21描述的最近相邻向量搜索处理总体相同的方式来执行特征量1的相似对组搜索335。即,在特征量1的这一相似对组搜索335中,处于无限远的点被设置为最近相邻向量候选者的初始值,在搜索范围中的所有成员向量和输入向量之间的距离被逐个计算,并且每次检索到与输入向量最近的成员向量时,最近相邻向量候选者被更新为该成员向量。重复此搜索处理,以获得向量组中的最近相邻向量。
然后,使用作为特征量1的相似对组搜索335的搜索结果而获得的特征量的相似对组来作为初始值336(从上面起第四层的中心),从而执行特征2的相似对组搜索337(从上面起第四层的右侧)。在上述过程中的搜索处理使得特征量2的相似对组搜索337的搜索结果成为特征量1和特征量2二者中的相邻向量338(或在两种类型的特征量中与输入向量近似的向量)。
如果如同特征量1的相似对组搜索335那样从处于无限远处的点开始搜索处理,则所有成员向量有可能成为最近相邻向量的候选者。因此,这种搜索处理相对增加了由特征量比较装置进行的最近相邻向量搜索中的运算量。相比之下,如果如同特征量2的相似对组搜索337那样从预定点开始搜索,则特征量比较装置可以省略明显不会提供最近相邻向量的远点(比预定点更远的那些点)的操作。
在图32中,特征量比较装置在特征量1和特征量2二者中搜索提供输入向量的相邻向量的成员向量,使得没有必要使在特征量1的相似对组搜索335中不提供相邻向量的任何成员向量受到在特征量2的相似对组搜索337中的搜索。因此,如上所述,通过使用特征量1的相似对组搜索335中的搜索结果作为特征量2的相似对组搜索337的初始值,特征量比较装置可以减少在特征量2的相似对组搜索337中的运算量。
而且,在特征量之间的上述比较使得特征量比较装置可以仅通过以下方式来在特征量1和特征量2二者中搜索输入向量的相邻向量338执行特征量1的相似对组搜索335和特征量2的相似对组搜索337,而不独立执行特征量1的相似对搜索和特征量2的相似对搜索,并在搜索结果之间进行比较以提取满足二者的对。这种新颖的配置也使得可以减少整个运算量。
也就是说,当在基于例如特征向量的图像识别中根据两个或多个评估标准来搜索提供最近相邻的输入向量的最近相邻向量时,上述搜索使得特征量比较装置可以根据两个或多个评估标准来顺次执行相邻搜索,并且在检测到比在先前阶段通过相邻计算检索的最近相邻向量更近的相邻向量时,根据两个或多个评估标准确定不存在提供最近相邻的最近相邻向量,从而通过中断相邻搜索来提供满足两个或多个条件的输入向量的相邻向量的高速搜索(或基于两个或多个评估标准的最近相邻搜索)。换句话说,本特征量比较装置能够迅速地在集合中搜索满足多个条件的期望元素。
下面描述被应用了上述特征量比较方法的装置的示例。
参照图33,示出了图解作为本发明一个实施例而实践的图像处理装置的另一示例配置的图。
在图33中,图像处理装置350具有学习块351和识别块352。学习块351是用于准备模型图像以用于特征量比较的处理块,并且具有多种类型特征点提取块361、多种类型特征量提取块362和模型词典登记块363。
多种类型特征点提取块361从输入的模型图像中提取多种类型的特征点,并向多种类型特征量提取块362提供所提取的特征点和模型图像。应当注意,除了从模型图像提取两种或多种类型的特征点以外,多种类型特征点提取块361与图23所示的特征点提取块241基本相同(例如,特征点的提取方法相同),因此将跳过其详细描述。
多种类型特征量提取块362从模型图像中提取由多种类型特征点提取块361提取的每个特征点的特征量,并将所提取的特征量作为模型特征量提供给模型词典登记块363。应当注意,除了要从模型图像中提取的特征点的类型数量是多个以外,多种类型特征量提取块362与图23所示的特征量提取块242基本相同(例如,每个特征点的特征量的提取方法相同),因此将跳过其详细描述。
模型词典登记块363将从多种类型特征量提取块362提供的模型特征量组332登记到模型词典中,以存储在其中。此外,模型词典登记块363向识别块352的多种类型特征量比较块366提供模型特征量组332。应当注意,除了要保存的模型特征量的数量是多个以外,模型词典登记块363与图23所示的模型词典登记块243基本相同(例如保存模型特征量的方法),因此将跳过其详细描述。
识别块352将输入图像的特征向量与向学习块351中的模型词典登记的模型图像的特征向量相比较以识别输入图像,并且具有特征点提取块364、特征量提取块365、多种类型特征量比较块366和模型检测判定块367。
特征点提取块364从输入的输入图像提取预定特征点,并向特征量提取块365提供所提取的特征点和输入图像。特征点提取块364与图23所示的特征点提取块244在配置上基本相同并且执行类似的处理,因此将跳过其详细描述。
特征量提取块365提取由特征点提取块364提取的特征点的特征量,并且向多种类型特征量比较块366提供关于所述特征量的信息。特征量提取块365与图23所示的特征量提取块245在配置上基本相同并且执行类似的处理,因此将跳过其详细描述。
多种类型特征量比较块366根据从特征量提取块365提供的输入图像的特征量,将输入图像的特征向量(或输入向量)与在模型词典登记块363中保存的模型特征量组332相比较,并且对于多种类型的所有特征点搜索要作为输入向量的相邻向量的成员向量,以便在输入图像的特征和模型图像的特征之间进行比较,从而向模型检测判定块367提供这个比较的结果。稍后将描述多种类型特征量比较块366的细节。
模型检测判定块367根据由多种类型特征量比较块366获得的比较结果,确定是否已经从输入图像检测到模型图像的特征。模型检测判定块367与图23所示的模型检测判定块247在配置上基本相同并且执行类似的处理,因此将跳过其详细描述。
参照图34,示出了图解图33所示的多种类型特征量比较块366的详细示例配置的方框图。
在图34中,多种类型特征量比较块366具有特征量信息获取块381、向量信息存储块391、公共代表点设置块392、公共代表点信息存储块393、相邻表组产生块394、相邻表组存储块395和相邻向量组搜索块396。
特征量信息获取块381(通过例如用户输入)从外部获得用于识别要进行比较的特征点的类型的特征量信息,并根据需要将所获得的特征量信息提供给公共代表点设置块392、相邻表组产生块394和相邻向量组搜索块396。
向量信息存储块391、公共代表点设置块392、公共代表点信息存储块393、相邻表组产生块394和相邻表组存储块395与图1所示的向量信息存储块11、公共代表点设置块12、公共代表点信息存储块13、相邻表组产生块14、以及相邻表组存储块15在配置上基本相同,并且除了前者对两种或多种类型的特征向量的每一个执行处理以外执行类似的处理。因此,将跳过对前者的详细描述。
相邻向量组搜索块396根据从向量信息存储块391获得的向量信息、从公共代表点信息存储块393获得的公共代表点信息和从相邻表组存储块395获得的相邻表组,搜索输入向量的相邻向量组。然后,相邻向量组搜索块396向模型检测判定块367(图33)提供相邻向量组,即搜索结果。
参照图35,示出了图解图36所示的相邻向量组搜索块396的详细示例配置的方框图。在图36中,相邻向量组搜索块396具有初始化处理块411、相邻向量组搜索控制块412、相邻向量搜索块413、特征分类的(feature-classified)相邻向量候选者设置块414、改变标志确认块415和相邻向量设置块416。
初始化处理块411执行初始化处理,例如将搜索相邻向量组所必需的变量初始化为初始值。例如,初始化处理块411初始化作为对应于一个输入向量的相邻向量的特征分类的相邻向量候选者,将变量j(0≤j≤M-1)设置为初始值(例如“0”),并且初始化特征分类的相邻向量候选者的改变标志。稍后将描述该改变标志。
相邻向量组搜索控制块412执行与搜索相邻向量组相关联的控制处理,所述相邻向量组满足被设置为进行搜索的所有类型的特征的条件。相邻向量搜索块413搜索每个输入向量的特征分类的相邻向量。此时,相邻向量搜索块413如前面参照图1到21所述的那样逐个计算输入向量和模型成员向量之间的距离。如果检索到具有比特征分类的相邻向量的候选者短的距离的成员向量,则相邻向量搜索块413更新关于特征分类的相邻向量候选者的信息,从而将此成员向量指定为候选者。重复上述处理,相邻向量搜索块413将最后保存的特征分类的相邻向量候选者指定为特征分类的相邻向量(或搜索处理的结果)。
特征分类的相邻向量候选者设置块414在下一个搜索操作中将由相邻向量搜索块413获得的最后搜索结果(或特征分类的相邻向量)设置为特征分类的相邻向量候选者的初始值。通过使用这个特征分类的相邻向量候选者,特征分类的相邻向量候选者设置块414对新的输入向量执行特征分类的相邻向量搜索。
如果特征分类的相邻向量的候选者在搜索这个相邻向量时被更新,则相邻向量搜索块413设置指示此更新的改变标志。特征分类的相邻向量候选者设置块414向改变标志确认块415提供关于这个改变标志的信息。
改变标志确认块415确认所提供的改变标志,并向相邻向量组搜索控制块412提供此确认结果。所述改变标志表示相邻向量候选者已经改变并且被提供用于每个候选者。即,其上设置了改变标志的任何候选者表明该候选者已经被更新了至少一次。
根据上述确认结果,相邻向量组搜索控制块412控制相邻向量组的搜索处理。例如,当不再有未被改变的特征分类的相邻向量候选者时,相邻向量组搜索控制块412结束相邻向量组搜索处理,并控制每个组件开始对下一向量组的搜索处理。此外,如果当维度压缩块314结束例如对所有输入向量的特征分类的相邻向量的搜索时存在任何未被改变的特征分类的相邻向量候选者并且没有设置改变标志,则相邻向量组搜索控制块412向相邻向量设置块416提供特征分类的相邻向量(候选者)。
在相邻向量组搜索控制块412的控制下,相邻向量设置块416将未被改变的特征分类的相邻向量(候选者)设置为相邻向量(组)。
下面参照图36所示的流程图来描述要由图像处理装置350(图33)的多种类型特征量比较块366(图36)执行的多种类型特征量比较处理的流程。
当多种类型特征量比较处理开始时,多种类型特征量比较块366的特征量信息获取块381在步骤S211从模型词典登记块363或用户输入获得关于要进行比较的特征量(或特征向量)的信息。特征量信息获取块381向公共代表点设置块392和相邻表组产生块394提供所获得的信息,此时,该过程进行到步骤S212。
在步骤S212,根据从向量信息存储块391获得的向量信息(或从模型词典登记块363提供并被存储在向量信息存储块391中的向量信息),公共代表点设置块392设置每种类型的特征量(每个特征向量类型)的公共代表点。在设置了公共代表点之后,公共代表点设置块392向公共代表点信息存储块393提供所述公共代表点以存储在其中,此时,该过程进行到步骤S213。
在步骤S213,根据从向量信息存储块391获得的向量信息(或从模型词典登记块363提供并被存储在向量信息存储块391中的向量信息)、以及从公共代表点信息存储块393获得的公共代表点信息(或通过步骤S212的处理设置的公共代表点),相邻表组产生块394产生每种类型的特征量(或每个特征向量类型)的相邻表。在产生了相邻表之后,相邻表组产生块394向相邻表组存储块395提供所产生的相邻表以存储在其中,此时,该过程进行到步骤S214。
在步骤S214,根据从向量信息存储块391获得的向量信息(或从模型词典登记块363提供并被存储在向量信息存储块391中的向量信息)、从公共代表点信息存储块393获得的公共代表点信息(或通过步骤S212的处理设置的公共代表点)、以及从相邻表组存储块395获得的相邻表组,相邻向量组搜索块396搜索对应于被输入的输入向量组的相邻向量组。稍后将描述此相邻向量组搜索处理的细节。在检索了相邻向量之后,相邻向量组搜索块396向模型检测判定块367(图33)提供检索到的相邻向量组,从而结束多种类型特征量比较处理。
下面参照图37所示的流程图来描述图36所示的步骤S214中执行的相邻向量组搜索处理的流程。
当相邻向量组搜索处理开始时,相邻向量组搜索块396的初始化处理块411在步骤S241执行初始化处理,从而将特征分类的相邻向量候选者设置到作为初始值的处于无限远处的点,将改变标志的设置初始化,并且将指示进行处理的向量组的变量j的值设置为初始值(例如“0”)。在初始化处理后,初始化处理块411将其结果提供给相邻向量组搜索控制块412,此时,该过程进行到步骤S242。
在步骤S242,相邻向量组搜索控制块412确定是否已经在所有向量组中搜索了输入向量组的相邻向量组。如果剩余有尚未被搜索的任何向量组,则相邻向量组搜索控制块412将其信息提供给相邻向量搜索块413,此时,该过程进行到步骤S243。
在步骤S243,相邻向量搜索块413搜索第一输入向量的特征分类的相邻向量。可以用任何搜索方法来进行此搜索;例如,可以使用前面参照图19所示的流程图描述的最近相邻向量搜索处理。进行搜索的向量数量可以是一个或多个。在检索到特征分类的相邻向量之后,相邻向量搜索块413向特征分类的相邻向量候选者设置块414提供所检索的向量,此时,该过程进行到步骤S244。
在步骤S244,特征分类的相邻向量候选者设置块414在下一搜索操作中将所检索的向量设置为特征分类的相邻向量候选者的初始值,并将其信息提供给相邻向量搜索块413,此时,该过程进行到步骤S245。
在步骤S245,相邻向量搜索块413搜索下一输入向量的特征分类的相邻向量。在这个搜索操作中,如果检索到比特征分类的相邻向量候选者更近的向量,则相邻向量搜索块413更新所述特征分类的相邻向量候选者,并使所检索的向量成为特征分类的相邻向量候选者,从而设置对应于这个特征分类的相邻向量候选者的改变标志。当搜索处理结束时,相邻向量搜索块413将最终的特征分类的相邻向量候选者作为特征分类的相邻向量提供给特征分类的相邻向量候选者设置块414。此外,相邻向量搜索块413将关于改变标志的信息提供给特征分类的相邻向量候选者设置块414。
在步骤S246,特征分类的相邻向量候选者设置块414像步骤S244的情况那样在下一个搜索操作中将此时检索的向量设置为特征分类的相邻向量候选者的初始值。此时,不改变改变标志的值。而且,特征分类的相邻向量候选者设置块414将其信息提供给相邻向量搜索块413,并且向改变标志确认块415提供关于每个特征分类的相邻向量候选者的改变标志的信息,此时,该过程进行到步骤S247。
在步骤S247,改变标志确认块415确认所提供的特征分类的相邻向量候选者的改变标志的状态,并向相邻向量组搜索控制块412提供此确认结果,此时,该过程进行到步骤S248。
在步骤S248,相邻向量组搜索控制块412根据所提供的确认结果来确定是否存在任何未被改变的特征分类的相邻向量候选者。如果发现了任何未被改变的特征分类的相邻向量候选者,则相邻向量组搜索控制块412使该过程进行到步骤S249,在此,相邻向量组搜索控制块412确定是否对于所输入的输入向量组的所有输入向量搜索了特征分类的相邻向量。
如果在所输入的输入向量组中发现尚未被处理的任何输入向量,则相邻向量组搜索控制块412向相邻向量搜索块413提供此判定结果,此时,该过程返回步骤S245以便对下一个输入向量执行处理。即,相邻向量组搜索控制块412、相邻向量搜索块413、特征分类的相邻向量候选者设置块414和改变标志确认块415重复步骤S245到S249,直到相邻向量组搜索控制块412在步骤S248确定不再有未被改变的特征分类的相邻向量候选者、或者在步骤S249已经对于所输入的输入向量组的所有输入向量进行了对特征分类的相邻向量的搜索为止。
如果在步骤S249发现对于所输入的输入向量组的所有输入向量进行了对特征分类的相邻向量的搜索,则相邻向量组搜索控制块412向相邻向量设置块416提供特征分类的相邻向量,此时,该过程进行到步骤S250。
在步骤S250,相邻向量设置块416将在所提供的特征分类的相邻向量中的未被改变的特征分类的相邻向量设置为输入向量组的相邻向量组。当完成该设置时,相邻向量设置块416向模型检测判定块367(图33)提供该相邻向量组,并向相邻向量组搜索控制块412通知处理的结束,此时,该过程进行到步骤S251。
如果在步骤S248设置了所有特征分类的相邻向量候选者的改变标志并且不存在未被改变的特征分类的相邻向量候选者,则相邻向量组搜索控制块412确定在那个向量组中不存在处于输入向量附近的向量(即确定不能在那个向量组中获得期望的相邻向量组),并且结束在那个向量组中的相邻向量组的搜索,此时,该过程进行到步骤S251。
在步骤S251,相邻向量组搜索控制块412向变量j的值加“1”以改变要进行处理的向量组。此外,相邻向量组搜索控制块412在步骤S252将特征分类的相邻向量候选者初始化以设置处于无限远处的虚拟点,此时,该过程返回步骤S242,以从其重复上述处理。
即,相邻向量组搜索控制块412、相邻向量搜索块413、特征分类的相邻向量候选者设置块414和改变标志确认块415重复步骤S242到S252,直到相邻向量组搜索控制块412在步骤S242确定已经在所有向量组中对相邻向量组进行了搜索为止。
如果在步骤S242在所有向量组中发现了相邻向量组,则相邻向量组搜索控制块412结束相邻向量组搜索处理,此时,该过程返回图36所示的步骤S214,然后结束多种类型特征量比较处理。
如上所述,一个特征向量的搜索结果被另一个特征向量的搜索使用使得相邻向量组搜索块396可以减少不必要的运算量,从而提供对输入向量组的相邻向量组高速搜索。即,如果有两个或多个进行搜索的向量集合并且在由多种类型的输入向量构成的输入向量组和进行搜索的向量组之间进行比较,则相邻向量组搜索块396能够迅速地在每个向量集合中搜索每个输入向量组的相邻向量组。
因此,如果存在两个或多个要进行搜索的向量集合、并且在由多种类型的输入向量构成的输入向量组和进行搜索的向量集合之间进行比较,则图像处理装置350能够快速地在每个向量集合中搜索每个输入向量组的相邻向量组。即,如果存在两个或多个要进行搜索的集合并对两种或多种类型的元素进行搜索,则图像处理装置350能够迅速地在每个集合中搜索期望的元素组。
应当注意,在上述示例中,存在两个或多个要进行搜索的向量组(或模型);但是,也可以将其中比较两种或多种类型的要搜索的特征的搜索方法应用到仅存在一个要进行搜索的向量组的情况。即,其中一个特征向量的搜索结果被另一个特征向量的搜索使用的搜索方法可以仅具有两种或多种类型的要进行搜索的特征(或两种或多种类型的输入向量),并因此与提供模型的向量组的数量无关。
因此,如果在搜索主题和两种或多种类型的特征之间进行比较,则图像处理装置350能够迅速地搜索由具有不同类型的输入向量组成的输入向量的相邻向量组。即,如果在搜索主题和两种或多种类型的特征之间进行比较,则图像处理装置350能够迅速地在进行搜索的每个集合中搜索期望的元素组。
应当注意,可以通过基于例如上述处理块单元获得的两个或多个块来配置上述装置的每一个。显然,可以使用任何划分单位或除了上述处理块之外的任何单元。上述两个或多个装置可以被配置为一个装置。可以将上面没有描述的功能组合到上述装置的任何一个中。除非有矛盾或问题,否则上述功能(或处理块)可以被部分地省略。将由特定处理块执行的某个处理可以由另一个处理块执行。
另外,可以将根据本发明的搜索处理方法应用到除了图像处理之外;例如,搜索处理可以被应用到对于诸如除了图像数据之外的音频数据和文本数据的信息处理上。
可以通过软件以及硬件来执行上述处理操作序列。在这种情况下,例如,图1所示的特征量比较装置10、图22所示的特征量比较系统200、图23所示的图像处理装置230、图24所示的图像处理装置250、图25所示的特征量比较装置280和图33所示的图像处理装置350可以被配置为图38所示的个人计算机。
参照图38,个人计算机500的CPU(中央处理单元)501执行由存储在ROM(只读存储器)502中的程序或从存储单元513加载到RAM(随机存取存储器)503的程序指定的各种处理操作。RAM 503还存储例如CPU 501执行各种处理操作所需的数据。
CPU 501、ROM 502和RAM 503经由总线504互连。此总线504还与输入/输出接口510连接。
输入/输出接口510根据需要与驱动器515连接,在所述驱动器515上时常加载可移动介质,例如磁盘、光盘、磁光盘或半导体存储器,从这些存储介质的任一个中读取的计算机程序根据需要被安装在存储单元513中。
对于要由软件执行的上述处理操作序列,从网络或记录介质安装构成该软件的程序。
如图38所示,这些存储介质不仅由与装置本身相分离地分布的封装介质构成,还由ROM 502或存储单元513构成,所述封装介质由磁盘(包括软盘)、光盘(包括CD-ROM(致密盘只读存储器)和DVD(数字通用盘))、磁光盘(包括MD(微型盘)(商标))或半导体存储器组成,所述ROM 502或存储单元513存储程序,并被并入装置本身而提供给用户。
在此应当注意,用于描述记录在记录介质中的每个程序的步骤不仅包括以时间相关的方式顺次执行的处理操作,还包括同时或离散地执行的处理操作。
还应当注意,在此使用的术语“系统”表示由多个组件单元配置的整个装置。
尽管已经使用特定术语描述了本发明的优选实施例,但是这样的说明仅仅用于说明性的目的,并且应当理解,在不脱离所附权利要求的精神或范围的情况下可以进行改变和修改。
相关申请交叉引用本发明包含与2005年1月7日在日本专利局提交的日本专利申请JP2005-002933有关的主题,其全部内容通过引用而被合并于此。
权利要求
1.一种信息处理装置,用于在多个集合中搜索期望元素,包括公共代表点设置部件,用于设置公共代表点,所述公共代表点是通过平均所述多个集合的特征而获得的集合的预定数量的元素;相邻表产生部件,用于根据由所述公共代表点设置部件设置的所述公共代表点,为所述多个集合的每一个产生相邻表,所述相邻表是与位于每个公共代表点附近的所述多个集合的每一个的元素相关联的表信息;以及搜索部件,用于在由所述相邻表产生部件产生的所述相邻表内登记的元素中搜索期望元素。
2.根据权利要求1的信息处理装置,其中,所述公共代表点设置部件根据所述多个集合中的所有元素来设置所述公共代表点。
3.根据权利要求1的信息处理装置,其中,所述公共代表点设置部件根据所述多个集合中的元素的一部分来设置所述公共代表点。
4.根据权利要求1的信息处理装置,其中,所述搜索部件在由所述相邻表产生部件产生的所述相邻表内登记的元素中搜索与要进行搜索的元素最近的元素,作为所述期望元素。
5.根据权利要求4的信息处理装置,其中,所述相邻表按照与所述公共代表点更近的顺序列出预定数量的元素、以及作为每个元素的与所述公共代表点的距离的1/2的距离信息,并且只有当所述期望元素与所述公共代表点的距离小于在所述相邻表中对应于所述公共代表点的所述距离信息的最大值时,所述搜索部件才在所述相邻表内登记的所述元素中搜索所述期望元素,否则在所述多个集合的所有元素中搜索所述期望元素。
6.根据权利要求1的信息处理装置,还包括主分量分析部件,用于分析所述多个集合的元素分布的主分量;以及坐标转换部件,用于转换所述元素的坐标,使得由所述主分量分析部件分析的所述主分量成为坐标轴之一。
7.根据权利要求6的信息处理装置,还包括维度压缩部件,用于压缩其坐标已经被所述坐标转换部件转换的所述元素的所述分布的维度数量,从而减少维度数量。
8.根据权利要求1的信息处理装置,其中,所述搜索部件搜索不同类型的多个元素,从而在所述相邻表内登记的元素中搜索接近要进行搜索的所述多个元素的每一个的元素,作为所述期望元素。
9.根据权利要求8的信息处理装置,其中,所述搜索部件搜索接近要进行搜索的一个元素的元素,并将此搜索结果用于对接近要进行搜索的另一个元素的元素的搜索操作。
10.一种用于信息处理装置的信息处理方法,所述信息处理装置用于在多个集合中搜索期望元素,该信息处理方法包括以下步骤设置公共代表点,所述公共代表点是通过平均所述多个集合的特征而获得的集合的预定数量的元素;根据由所述公共代表点设置步骤设置的所述公共代表点,为所述多个集合的每一个产生相邻表,所述相邻表是与位于每个公共代表点附近的所述多个集合的每一个的元素相关联的表信息;以及在由所述相邻表产生步骤产生的所述相邻表内登记的元素中搜索期望元素。
11.一种程序,用于使计算机执行用来在多个集合的每一个中搜索期望元素的搜索处理,包括以下步骤设置公共代表点,所述公共代表点是通过平均所述多个集合的特征而获得的集合的预定数量的元素;根据由所述公共代表点设置步骤设置的所述公共代表点,为所述多个集合的每一个产生相邻表,所述相邻表是与位于每个公共代表点附近的所述多个集合的每一个的元素相关联的表信息;以及在由所述相邻表产生步骤产生的所述相邻表内登记的元素中搜索期望元素。
12.一种信息处理装置,用于在多个集合中搜索期望元素,包括公共代表点设置部分,用于设置公共代表点,所述公共代表点是通过平均所述多个集合的特征而获得的集合的预定数量的元素;相邻表产生部分,用于根据由所述公共代表点设置部分设置的所述公共代表点,为所述多个集合的每一个产生相邻表,所述相邻表是与位于每个公共代表点附近的所述多个集合的每一个的元素相关联的表信息;以及搜索部分,用于在由所述相邻表产生部分产生的所述相邻表内登记的元素中搜索期望元素。
全文摘要
本发明意欲提供在要进行搜索的多个(如果有的话)集合中对期望元素进行的快速搜索。公共代表点设置块根据在向量信息存储块中存储的特征向量设置对于集合公共的公共代表点,并将所设置的点存储到公共代表点信息存储块中。相邻表组产生块根据向量信息和公共代表点信息而为每个集合产生相邻表,并将所产生的表存储在相邻表组存储块中。最近相邻向量组搜索块在获得输入向量时根据向量信息、公共代表点信息和相邻表组而在每个集合中搜索输入向量的最近相邻向量,并将所检索的最近相邻向量作为比较结果输出。本发明适用于图像处理装置。
文档编号G06K9/46GK1801183SQ20061000574
公开日2006年7月12日 申请日期2006年1月6日 优先权日2005年1月7日
发明者中村章, 铃木洋贵, 芦原隆之 申请人:索尼株式会社