图像检索装置、图像检索方法、程序和计算机可读取的存储介质的制作方法

文档序号:6484940阅读:179来源:国知局
图像检索装置、图像检索方法、程序和计算机可读取的存储介质的制作方法
【专利摘要】使用GPU这样的进行大量同类型处理的能力高的硬件,使图像检索处理高速化。图像检索装置1包含公共存储器和执行相同命令的多个并行的处理器。图像检索装置1从存储单元传送分别代表包含多个图像特征矢量的多个聚类的多个代表特征矢量,将从要查询的图像提取出的1个或者多个查询特征矢量保存在所述公共存储器中,使用所述多个并行的处理器计算被传送的所述多个代表特征矢量与所述查询特征矢量之间的距离,根据属于按照所述第1距离计算单元的计算结果选择出的聚类的图像特征矢量与所述查询特征矢量之间的距离,选择多个图像中的任意一个。
【专利说明】图像检索装置、图像检索方法、程序和计算机可读取的存储介质
【技术领域】
[0001]本发明涉及图像检索装置、图像检索方法、程序和计算机可读取的存储介质。
【背景技术】
[0002]由于网络技术等的发达,管理了巨量的图像文件。存在如下图像检索技术:从该大量的图像中,选出与要查询的图像相似的图像。为了从大量图像中高速地选择图像,正在进行被称作BoF (Bag of Features:特征词袋)法的检索方法的开发。该方法使用了被称作Boff (Bag of Words:词袋)法的文本检索方法。在BoF法中,将从作为检索对象的图像提取出的各个特征矢量与相当于BoW法中的单词的视觉词(Visual Word)对应起来,使用该视觉词的出现频度来检索相似的图像。
[0003]在专利文献I中,公开了如下技术:使用聚类处理将从要查询的图像提取出的多个图像特征量矢量转换成更少的矢量,查询该转换后的矢量,来进行图像的检索。
[0004]现有技术文献
[0005]专利文献
[0006]专利文献1:日本特开2011-107795号公报
【发明内容】

[0007]发明要解决的问题
[0008]然而,图像数据与文字数据相比,其数据量膨胀,因此为了使用通常的CPU进行与文字一样的高速检索,需要减少处理量。因此,在生成检索索引时,不得不使用没有准确地表达该图像数据的特征的视觉词等,很难得到足够的检索精度。
[0009]因此,考虑使用例如所谓的GPU (Graphic Processing Unit:图形处理单元)这样的计算能力比CPU高的硬件。GPU包含多个处理器和公共存储器,多个处理器能够分别从公共存储器高效地取入数据,执行公共的程序来进行运算处理。如果使GPU这样的硬件高速地进行运算处理,则能够在确保精度的同时进行高速检索。
[0010]但是,上述这样的BoF法等是最适合于CPU的步骤,BoF法为了处理稀疏矩阵等,较多地使用了链表数据结构或分支处理。这些与具有上述特征的GPU的结构的兼容性差,因此即使直接使用GPU,也不能充分发挥其能力。
[0011]本发明是鉴于上述问题而完成的,其目的在于,使用GPU这样的进行大量同类型处理的能力高的硬件,来使图像检索处理高速化。
[0012]用于解决问题的手段
[0013]为了解决上述问题,本发明的图像检索装置具有:公共存储器;和多个并行处理器,它们执行相同的命令,分别一并地读取保存在所述公共存储器中的数据并进行处理,此夕卜,所述图像检索装置的特征在于,还具有:代表矢量传送单元,其从存储有分别属于多个聚类中的任意一个聚类的多个图像特征矢量和分别代表所述多个聚类中的任意一个聚类的多个代表特征矢量的存储单元,将所述多个代表特征矢量传送到所述公共存储器,其中,所述多个图像特征矢量是从作为检索对象的多个图像提取出的;查询特征矢量取得单元,其取得从要查询的图像提取出的I个或多个查询特征矢量,并保存在所述公共存储器中;第I距離計算单元,其使用所述多个并行的处理器,计算被传送的所述多个代表特征矢量中的至少一部分与所述查询特征矢量之间的距离;第2距离计算单元,其计算属于根据所述第I距离计算单元的计算结果而选择出的聚类的图像特征矢量与所述查询特征矢量之间的距离;以及根据所述第2距离计算单元的计算结果,选择所述多个图像中的至少I个图像的单元。
[0014]此外,本发明的程序使计算机发挥作用,所述计算机具有:公共存储器;和多个并行处理器,它们执行相同的命令,分别一并地读取保存在所述公共存储器中的数据并进行处理,该程序的特征在于,使计算机作为以下单元发挥作用:代表矢量传送单元,其从存储有分别属于多个聚类中的任意一个聚类的多个图像特征矢量和分别代表所述多个聚类中的任意一个聚类的多个代表特征矢量的存储单元,将所述多个代表特征矢量传送到所述公共存储器,其中,所述多个图像特征矢量是从作为检索对象的多个图像提取出的;查询设定单元,其将从要查询的图像提取出的I个或者多个查询特征矢量设定于所述公共存储器中;第I距离计算单元,其使用所述多个并行的处理器,计算被传送的所述多个代表特征矢量中的至少一部分与所述查询特征矢量之间的距离;第2距离计算单元,其计算属于根据所述第I距离计算单元的计算结果而选择出的聚类的图像特征矢量与所述查询特征矢量之间的距离;以及,根据所述第2距离计算单元的计算结果,选择所述多个图像中的至少I个图像的单元。
[0015]此外,本发明的图像检索方法使计算机检索图像,所述计算机具有:公共存储器;和多个并行处理器,它们执行相同的命令,分别一并地读取保存在所述公共存储器中的数据并进行处理,该图像检索方法的特征在于,所述图像检索方法具有如下步骤:代表矢量传送步骤,从存储有分别属于多个聚类中的任意一个聚类的多个图像特征矢量和分别代表所述多个聚类中的任意一个聚类的多个代表特征矢量的存储单元,将所述多个代表特征矢量传送到所述公共存储器,其中,所述多个图像特征矢量是从作为检索对象的多个图像提取出的;查询设定步骤,将从要查询的图像提取出的I个或者多个查询特征矢量设定于所述公共存储器中;第I距离计算步骤,使用所述多个并行的处理器,计算被传送的所述多个代表特征矢量中的至少一部分与所述查询特征矢量之间的距离;第2距离计算步骤,计算属于根据所述第I距离计算步骤的计算结果而选择出的聚类的图像特征矢量与所述查询特征矢量之间的距离;以及根据所述第2距离计算步骤的计算结果,选择所述多个图像中的至少I个图像的步骤。
[0016]此外,本发明的计算机可读取的存储介质的特征在于,该计算机具有:公共存储器;和多个并行处理器,它们执行相同的命令,分别一并地读取保存在所述公共存储器中的数据并进行处理,该存储介质存储有程序,所述程序用于使所述计算机作为如下单元发挥作用:代表矢量传送单元,其从存储有分别属于多个聚类中的任意一个聚类的多个图像特征矢量和分别代表所述多个聚类中的任意一个聚类的多个代表特征矢量的存储单元,将所述多个代表特征矢量传送到所述公共存储器,其中,所述多个图像特征矢量是从作为检索对象的多个图像提取出的;查询设定单元,其将从要查询的图像提取出的I个或者多个查询特征矢量设定于所述公共存储器中;第I距离计算单元,其使用所述多个并行的处理器,计算被传送的所述多个代表特征矢量中的至少一部分与所述查询特征矢量之间的距离;第2距离计算单元,其计算属于根据所述第I距离计算单元的计算结果而选择出的聚类的图像特征矢量与所述查询特征矢量之间的距离;以及根据所述第2距离计算单元的计算结果,选择所述多个图像中的至少I个图像的单元。
[0017]根据本发明,能够使用GPU这样的进行大量同类型处理的能力高的硬件,来使图像检索处理高速化。这是因为,通过使用代表矢量,减少了作为距离计算对象的特征矢量的数量,并且,距离计算成为主体,因此,与GPU这样的进行大量同类型处理的硬件的兼容性较闻。
[0018]在本发明的一个方式中,可以是,还具有图像特征矢量传送单元,该图像特征矢量传送单元将属于根据所述第I距离计算单元的计算结果而选择出的聚类的图像特征矢量从所述存储单元传送到所述公共存储器,所述第2距离计算单元使用所述多个并行的处理器,计算被传送的所述图像特征矢量与所述查询特征矢量之间的距离。
[0019]在本发明的一个方式中,可以是,所述多个代表特征矢量的数据量小于所述公共存储器的容量。
[0020]在本发明的一个方式中,可以是,属于所述多个聚类中的I个的图像特征矢量的数据量小于所述公共存储器的容量,属于所述多个聚类的图像特征矢量的数据量大于所述公共存储器的容量。
[0021]在本发明的一个方式中,可以是,属于所述多个聚类中的I个的图像特征矢量和所述多个代表矢量的数据量小于所述公共存储器的容量,所述图像特征矢量传送单元将属于选择出的所述聚类的图像特征矢量置换为保存在公共存储器中的其它图像特征矢量。
[0022]在本发明的一个方式中,还可以具有:追加图像特征矢量提取单元,其从作为追加的检索对象的图像中,提取多个图像特征矢量;以及图像特征矢量追加单元,其将由所述追加图像特征矢量提取单元提取出的图像特征矢量追加到所述图像特征聚类中的任意一个聚类。
【专利附图】

【附图说明】
[0023]图1是示出本发明实施方式的图像检索系统的结构的一例的图。
[0024]图2是示出本发明实施方式的图像检索装置的结构的一例的图。
[0025]图3是示出并行计算装置的结构的一例的图。
[0026]图4是示出本发明实施方式的图像检索装置的功能的功能框图。
[0027]图5是示出索引生成部的功能结构的功能框图。
[0028]图6是示出作为检索对象的图像的一例的图。
[0029]图7是示出从图像提取出的图像特征矢量的概念的图。
[0030]图8是示出代表矢量的树结构的一例的图。
[0031]图9是示出图像检索部的功能结构的功能框图。
[0032]图10是示出装置内存储器处的数据配置的一例的图。
[0033]图11是示出装置内存储器处的代表矢量的配置的一例的图。
[0034]图12是示出输入要查询的图像的画面的一例的图。[0035]图13是示出距离计算的处理流程的一例的图。
[0036]图14是示出对与查询特征矢量对应的图像进行统计处理的结果的一例的图。
[0037]图15是示出索引追加部的功能结构的功能框图。
【具体实施方式】
[0038]下面,根据附图,对本发明的实施方式进行说明。在出现的构成要素中,对于具有相同功能的部分,标注相同的标号,省略其说明。
[0039]图1是示出本发明实施方式的图像检索系统的结构的一例的图。图像检索系统包含图像检索装置1、网络服务器2和客户端装置3。网络服务器2例如是网络服务器程序进行动作的服务器硬件,客户端装置3例如是网络浏览器的程序进行动作的个人计算机或智能手机。图像检索系统进行图像检索的动作的概要如下。首先,网络服务器2经由互联网等网络,从客户端装置3取得在图像检索中使用的要查询的图像(以下,记作“查询图像”),并将该查询图像输入到图像检索装置I。接下来,图像检索装置I检索与输入的图像相似的I个或多个图像,并输出到网络服务器2。网络服务器2输出用于使客户端装置3显示图像检索装置I检索到的图像的数据。
[0040]图2是示出本发明的实施方式的图像检索装置I的结构的一例的图。图像检索装置I包含CPU11、存储部12、通信部13、并行计算装置14和总线15。
[0041]CPUll根据保存在存储部12中的程序进行动作。此外,CPUll对通信部13或并行计算装置14进行控制。此外,上述程序可以通过互联网等网络来提供,也可以保存在DVD-ROM或USB存储器等可由计算机读取的信息记录介质中来提供。
[0042]存储部12由RAM、R0M等存储器元件或硬盘驱动器等构成。存储部12保存上述程序。此外,存储部12还保存从各部输入的信息和运算结果。
[0043]通信部13由设有网卡等的通信单元等构成,用于与网络服务器2等其它装置进行通信连接。通信部13根据CPUll的控制,将从其它装置接收到的信息输入CPUll或存储部12,并向其它装置发送信息。
[0044]总线15用于在CPU11、存储部12、通信部13和并行计算装置14之间进行数据交换。例如,CPUll和存储部12与并行计算装置14经由总线15中的扩展总线进行连接。
[0045]并行计算装置14是擅长于通过并行计算来进行大量同类型计算的硬件。并行计算装置14例如是GPU。图3是示出并行计算装置14的结构的一例的图。并行计算装置14包含多个并行执行部40和装置内存储器45。此外,各并行执行部40包含多个处理器41、命令单元42和高速存储器43。
[0046]多个处理器41中的每一个分别进行浮动小数点计算、装置内存储器45或高速存储器43之间的数据的读取和写入等处理。命令单元42根据保存在装置内存储器45等中的程序,使包含该命令单元42的并行执行部40中包含的多个处理器41进行处理。某并行执行部40中包含的多个处理器41根据来自该并行执行部40中包含的I个命令单元42的指示,对相同命令进行处理。这样,能够通过I个命令单元42控制多个处理器41,能够抑制命令单元42的线路的规模的增加,因此,与CPUll相比,能够增加并行计算装置14中包含的处理器41的数量。
[0047]装置内存储器45由能够比存储部12中使用的RAM更高速地进行存取的DRAM构成。装置内存储器45经由总线15与CPUll和存储部12连接。此外,并行计算装置14还具有通过DMA传送来在装置内存储器45与存储部12之间传送数据的线路。高速存储器43由能够比装置内存储器45更高速地进行存取的SRAM等构成。处理器41对高速存储器43进行存取时的等待时间与处理器41对该内部寄存器进行存取时的等待时间几乎相等。此处,装置内存储器45和高速存储器43均是能够由多个处理器41共同地进行存取的公共存储器。
[0048]图4是示出本发明的实施方式的图像检索装置I的功能的功能框图。图像检索装置I在功能上,包含索引生成部51、图像检索部52和索引追加部53。CPUll执行保存在存储部12中的程序,对通信部13或并行计算装置14进行控制,此外,并行计算装置14执行针对该并行计算装置14的程序,由此实现上述功能。
[0049]索引生成部51根据作为检索对象的多个图像,生成进行图像检索时使用的图像特征矢量20和使该图像特征矢量20的选择变得容易的索引。图像检索部52使用索引和图像特征矢量20,检索与查询图像相似的图像。索引追加部53根据追加的图像来生成图像特征矢量20,并对索引进行变更,使得能够选择该追加的图像。
[0050]图5是示出索引生成部51的功能结构的功能框图。索引生成部51在功能上包含图像特征矢量提取部61和聚类生成部62。聚类生成部62生成作为聚类的索引的代表矢量的树结构,并将与索引相关的信息保存在树结构代表矢量保存部72中。此外,聚类矢量保存部71对属于由代表矢量所代表的聚类的图像特征矢量20的信息进行保存,其中,上述代表矢量是该树结构的叶。具体而言,聚类矢量保存部71、树结构代表矢量保存部72由存储部12构成。
[0051]图像特征矢量提取部61主要由CPUll和存储部12实现。图像特征矢量提取部61从保存在存储部12中的多个图像即作为检索对象的多个图像,提取多个图像特征矢量20。更具体而言,图像特征矢量提取部61分别从该多个图像,提取I个或多个图像特征矢量20,并将提取出的图像特征矢量20与提取出该图像特征矢量20的图像关联起来存储在存储部12中。
[0052]图6是示出作为检索对象的图像的一例的图。图7是示出从图像提取出的图像特征矢量20的概念的图。从图像提取出的图像特征矢量20中的每一个分别是表示该图像的局部特征的局部特征量。图像特征矢量20中的每一个例如是具有128个要素(维)的矢量。为了提取图像特征矢量20,可以使用SIFT(Scale_Invariant Feature transform:尺度不变特征转换),SURF (Speeded Up Robust Features:快速鲁棒特征)等公知的方法。图像特征矢量20中的每一个分别具有的要素的数量可以根据基于图像的提取方法等而变化。此夕卜,从I个图像提取出的图像特征矢量20的数量可以是预先决定的数(例如300),不过从简单图像提取出的图像特征矢量20的数量也可以少于该预先决定的数。
[0053]聚类生成部62主要由CPUll和存储部12实现。聚类生成部62通过聚类处理,将由图像特征矢量提取部61提取出的多个图像特征矢量20中的每一个分类到多个聚类中的任意一个聚类。将图像特征矢量20分类到聚类的处理不限于I个阶段的处理,也可以是多个阶段的处理。此外,该多个阶段的处理可以通过递归地调用如下处理来实现。下面,对如下情况的例子进行说明:进行2个阶段的处理,并在第I阶段,将由图像特征矢量提取部61提取出的多个图像特征矢量20分类到1024个聚类,进一步,在第2阶段,将该1024个聚类中的每一个分类到512个聚类。
[0054]在聚类生成部62的各阶段的处理中,进行如下两个处理。第I个处理是如下处理:通过聚类处理,将所给的多个图像特征矢量20分类到给定个数的聚类,来生成多个聚类。第2个处理是如下处理:生成该生成的聚类的代表矢量,将生成的代表矢量作为该阶段的代表矢量保存在树结构代表矢量保存部72中。在处理中的阶段不是最末阶段的情况下,聚类生成部62将属于在处理中的阶段生成的各个聚类的多个图像特征矢量20作为输入信息,递归地调用下一阶段的处理。代表矢量是代表该聚类的矢量,例如是属于该分类后的聚类的图像特征矢量20的重心。此外,聚类生成部62针对在最末阶段的处理中生成的每一个聚类,将属于该聚类的图像特征矢量20保存在聚类矢量保存部71中。
[0055]在上述示例的情况下,在第I阶段的处理中,聚类生成部62将所给的图像特征矢量20分类到1024个聚类,生成该分类后的第I阶段的各聚类的代表矢量,并将生成的第I阶段的代表矢量保存在树结构代表矢量保存部72中。在第2阶段的处理中,聚类生成部62将属于在第I阶段中生成的1024个聚类中的各个聚类的多个图像特征矢量20作为输入信息,进一步分类到512个聚类,生成该分类后的第2阶段的各聚类的代表矢量,并将生成的下位的阶段的代表矢量保存在树结构代表矢量保存部72中。在第2阶段的聚类全部被生成后,该第2阶段的聚类的总数为(1024X512)个。进而,聚类生成部62针对在第2阶段中生成的每一个聚类,将属于该聚类的图像特征矢量20保存在聚类矢量保存部71中。下面,为了容易进行说明,将代表第I阶段的聚类的代表矢量记作上位代表矢量,将代表最末阶段(在上述示例中为第2阶段)的聚类的代表矢量记作代表特征矢量。此外,最终地生成的聚类(在上述示例中,为第2阶段的聚类)也被记作图像特征聚类。
[0056]在将图像特征矢量20分类到聚类时,可以使用k-means法等公知的聚类处理方法。考虑到后述的图像检索部52的处理内容,聚类的数量优选为2的幂,不过也可以不是2的幂。此外,在对全部的图像中包含的图像特征矢量20进行分类时,多个图像特征矢量20属于各自的图像特征聚类。通过分2个阶段进行聚类生成部62的递归处理,能够在树结构代表矢量保存部72中保存2个级别的信息。聚类生成部62的计算可以使用并行计算装置14来进行。
[0057]图8是示出代表矢量的树结构的一例的图。在聚类生成部62进行上述2个阶段的处理的情况下,与2个阶段的聚类对应的2个阶段的代表矢量构成树结构。上位代表矢量的数量为1024个,上位代表矢量中的每一个分别是512个代表特征矢量的母。图像检索部52利用以代表矢量构成树结构的方式具有母子关系这一情况,来进行检索。
[0058]图9是示出图像检索部52的功能结构的功能框图。图像检索部52在功能上包含:代表矢量传送部81、查询特征矢量取得部82、上位代表矢量距离计算部83、代表聚类选择部84、代表特征矢量距离计算部85、图像特征聚类选择部86、图像特征矢量传送部87、图像特征矢量距离计算部88以及检索结果图像选择部89。
[0059]代表矢量传送部81主要由并行计算装置14和存储部12实现。代表矢量传送部81将保存在树结构代表矢量保存部72中的上位代表矢量和代表各个图像特征聚类的多个代表特征矢量传送到能够由多个处理器41共同地进行存取的装置内存储器45。具体而言,代表矢量传送部81使用并行计算装置14和总线15的DMA (Direct Memory Access:直接内存存取)功能,将上述数据从存储部12传送到装置内存储器45。[0060]图10是示出装置内存储器45的数据配置的一例的图。在装置内存储器45中,设置有保存代表特征矢量的区域、保存上位代表矢量的区域和保存I个图像特征聚类的区域。代表矢量传送部81将存储在存储部12中的多个代表矢量的信息保存在预先分配的装置内存储器45的存储器区域中。关于保存图像特征聚类的区域中的数据的保存,后面将进行描述。
[0061]此处,在设代表特征矢量的要素数为128维、设代表特征矢量的数量为与图像特征聚类的数量相同的(1024X512)个、设各要素为I字节的整数型时,该多个代表特征矢量的全部数据量为(1024X512X128)字节(B),即64MB。此外,在该情况下,多个上位代表矢量的数量为1024,因此多个上位代表矢量的数据量同样为(1024X128)字节,即128KB。例如,在现行的GPU中搭载的装置内存储器45的存储器容量为IGB左右、装置内存储器45的容量也为IGB时,多个代表矢量的数据量小于装置内存储器45的容量。
[0062]另一方面,在图像的数量为100万、从I个图像提取出的图像特征矢量20的数量为300时,多个图像特征聚类中包含的图像特征矢量20的数据量为(100万X 300X 128)字节,即约36GB,不能保存在装置内存储器45中。另一方面,由于平均每个图像特征聚类的图像特征矢量20的数量为(100万X 300+ (1024X512)),即约600,因此,数据量为75KB左右。即使图像特征聚类中包含的图像特征矢量20的数量根据聚类处理而稍微发生变动,多个代表特征矢量的数据量、多个上位代表矢量的数据量与I个图像特征聚类中包含的图像特征矢量20的数据量之和也会小于装置内存储器45的容量。
[0063]图11是示出装置内存储器45处的代表矢量的配置的一例的图。保存在装置内存储器45中的代表矢量的各要素的尺寸为4字节,并按要素的顺序排列。此外,某代表矢量的数据的起始地址是能够从装置内存储器45 —并地读出的数据的字节数(例如32和64)的倍数。该数据结构在后述的距离计算的处理中,用于使多个处理器41 一并地读取保存在装置内存储器45中的数据。即使代表矢量的各要素的大小是I个字节,为了一并地地进行读取,代表矢量传送部81也将各要素的大小被转换成了 4个字节的数据传送到装置内存储器45。此外,上位代表矢量和I个图像特征聚类内的图像特征矢量20也以相同的数据结构保存在装置内存储器45中。虽然装置内存储器45内的多个代表特征矢量、多个上位代表矢量和I个图像特征聚类中包含的图像特征矢量20的数据量成为4倍,但是在该示例中,这些数据量之和小于装置内存储器45的容量这点没有改变。在本实施方式中,调整图像特征聚类和代表矢量的数量,使得至少装置内存储器45内的多个代表特征矢量和多个上位代表矢量的数据量之和收纳于装置内存储器45的容量即可。
[0064]查询特征矢量取得部82主要由CPUl1、存储部12和并行计算装置14实现。查询特征矢量取得部82取得从查询图像提取出的I个或多个查询特征矢量,并将其保存在作为公共存储器的装置内存储器45中。
[0065]查询特征矢量取得部82首先经由网络服务器2从客户端装置3取得查询图像。图12是示出输入查询图像的画面的一例的图。客户端装置3根据网络服务器2生成的数据来显示本画面。查询图像可以通过用户上传客户端装置3内的图像文件来取得,也可以通过发送某些网页中显示的图像的URL来取得,或者通过从保存在照片共享服务等中的图像中选择查询图像来取得。接下来,查询特征矢量取得部82从网络服务器2取得已取得的查询图像,从该查询图像提取并取得I个或多个查询特征矢量。查询特征矢量是使用与图像特征矢量提取部61提取图像特征矢量20的方法相同的方法而生成的。接下来,查询特征矢量取得部82将查询特征矢量保存在装置内存储器45中。在此,CPUll提取查询特征矢量,CPUll可以使并行计算装置14将查询特征矢量加载到装置内存储器45中,也可以将查询图像加载到并行计算装置14中,使并行计算装置14提取出查询特征矢量,并将其保存在装置内存储器45中。
[0066]上位代表矢量距离计算部83是以并行计算装置14为中心来实现的。上位代表矢量距离计算部83使用多个并行处理器41,来计算多个上位代表矢量中的每一个与查询特征矢量的距离。以下,对上位代表矢量距离计算部83处的距离计算的详细情况进行说明。此外,上位代表矢量距离计算部83、代表聚类选择部84、代表特征矢量距离计算部85、图像特征聚类选择部86和图像特征矢量距离计算部88中的处理是针对从查询图像提取出的各个查询特征矢量来进行的。
[0067]图13是示出距离计算的处理流程的一例的图。首先,上位代表矢量距离计算部83将查询特征矢量从装置内存储器45加载到进行距离计算的并行执行部40的高速存储器43 (步骤S101)中。接下来,将作为计算对象的矢量(此处为上位代表矢量)的各要素从装置内存储器45加载到进行该要素的计算的处理器41的寄存器(步骤S102)。此时,多个处理器41从装置内存储器45 —并地读取计算对象矢量的数据。由于预先通过代表矢量传送部81等将作为计算对象的矢量的数据以能够进行该一并地读取的方式保存在装置内存储器45中,因而多个处理器41能够进行该读取。接下来,上位代表矢量距离计算部83对保存在寄存器中的作为计算对象的矢量的要素与和该要素对应的查询特征矢量的要素进行减法运算,进而对该减法运算结果进行平方(步骤S103 )。接下来,针对作为计算对象的矢量的各要素,对步骤S103的计算结果进行合计(步骤S104)。进而,上位代表矢量距离计算部83将合计结果保存在装置内存储器45中(步骤S105)。此外,如果某并行执行部40中包含的执行相同命令的处理器41的数量小于查询特征矢量和作为计算对象的矢量的要素的数量,则根据处理器41的数量,对步骤S102?步骤S104的处理进行分割,来多次执行。此夕卜,在存在多个并行执行部40的情况下,上位代表矢量距离计算部83使其他并行执行部40针对作为其他计算对象的矢量,执行步骤SlOl?S105的处理。此外,也可以针对从查询图像提取出的其它查询特征矢量,并行地进行计算。由此,查询特征矢量与其它多个计算对象的矢量之间的距离计算,能够与GPU这样的并行计算装置14的并行计算能力对应地,并行地进行计算。根据该距离计算的处理内容可知,适当地配置在装置内存储器45中的多个矢量与查询特征矢量之间的距离计算与GPU这样的硬件兼容性高,可非常高速地进行处理。
[0068]代表聚类选择部84是以并行计算装置14为中心实现的。代表聚类选择部84根据由上位代表矢量距离计算部83计算出的查询特征矢量与多个上位代表矢量的每一个之间的距离,从多个代表特征矢量的集合中选择I个集合。更具体而言,例如,选择作为与查询特征矢量之间的距离最短的上位代表矢量的子的多个代表特征矢量的集合。该代表特征矢量的集合中的每一个分别对应于第I阶段的聚类(代表聚类)。代表特征矢量的集合的选择也相当于与其对应的代表聚类的选择。此外,上位代表矢量中的每一个分别可以视为代表多个代表特征矢量。更具体而言,代表聚类选择部84通过计算保存该代表矢量的集合的存储器内的区域的起始地址,来选择该集合。例如,如果将作为某上位代表矢量的子的代表特征矢量的数量设为与上位代表矢量无关而是固定的,则只要知晓距离最短的上位代表矢量是第几个,即可通过乘法等简单计算求出起始地址。这样,无需使用需要分支或需要追加的存储器存取的运算,因而可进行更能发挥GPU这样的硬件的性能的处理。
[0069]代表特征矢量距离计算部85是以并行计算装置14为中心实现的。代表特征矢量距离计算部85使用多个并行的处理器41,计算多个代表特征矢量的至少一部分中的每一个与查询特征矢量之间的距离。此处,作为计算对象的代表特征矢量是属于由代表聚类选择部84选择出的集合的代表特征矢量。代表特征矢量距离计算部85与上位代表矢量距离计算部83计算距离同样地,根据图13的流程来计算距离。不过,计算对象矢量是上述代表特征矢量。与上位代表矢量距离计算部83同样,该处理内容与GPU这样的硬件兼容性高,可非常高速地进行处理。
[0070]图像特征聚类选择部86是以并行计算装置14为中心实现的。图像特征聚类选择部86基于由代表特征矢量距离计算部85计算出的查询特征矢量与多个代表特征矢量中的每一个之间的距离,从多个图像特征聚类选择图像特征聚类。更具体而言,例如选择由与查询特征矢量之间的距离最短的代表特征矢量所代表的图像特征聚类。
[0071]图像特征矢量传送部87是以存储部12和并行计算装置14为中心实现的。图像特征矢量传送部87将属于由图像特征聚类选择部86选择出的图像特征聚类的多个图像特征矢量20从聚类矢量保存部71传送到能够由多个处理器41共同地进行存取的装置内存储器45。图像特征矢量传送部87使用并行计算装置14和总线15的DMA功能,将上述数据从存储部12传送到装置内存储器45。与图11中代表矢量传送部81传送代表特征矢量等相同,图像特征矢量传送部87配置图像特征矢量20的数据,使得多个处理器41可一并地读取保存在装置内存储器45中的数据。
[0072]图像特征矢量距离计算部88是以并行计算装置14为中心实现的。图像特征矢量距离计算部88使用多个并行的处理器41,来计算多个图像特征矢量20中的每一个与查询特征矢量之间的距离。此处,计算中使用的图像特征矢量20是属于由图像特征聚类选择部86选择出的图像特征聚类的图像特征矢量20。该数据被图像特征矢量传送部87传送到装置内存储器45。图像特征矢量距离计算部88与上位代表矢量距离计算部83计算距离的方式同样,根据图13的流程,对各个查询特征矢量计算距离。不过,计算对象矢量为图像特征矢量20。与上位代表矢量距离计算部83同样,该处理内容与GPU这样的硬件兼容性高,可非常高速地进行处理。
[0073]检索结果图像选择部89是以并行计算装置14为中心实现的。检索结果图像选择部89根据图像特征矢量距离计算部88的计算结果,选择作为检索对象的多个图像中的任意一个作为检索结果。首先,检索结果图像选择部89根据由图像特征矢量距离计算部88计算出的查询特征矢量和多个图像特征矢量20中的每一个之间的距离,取得与使用了该距离计算的查询特征矢量对应的图像。更具体而言,例如,针对每一个查询特征矢量,选择已提取出与该查询特征矢量之间的距离最短的图像特征矢量20的图像特征矢量20,取得已提取出该图像特征矢量20的图像。将该取得的图像的图像ID保存在装置内存储器45中。
[0074]接下来,检索结果图像选择部89对与各个查询特征矢量中的任意一个对应的、取得的多个图像进行统计处理,选择与要查询的图像相似的I个或多个图像。图14是示出对与查询特征矢量对应的图像进行统计处理的结果的一例的图。在图14的示例中,检索结果图像选择部89针对选择出的每一个图像,对与该图像对应的查询特征矢量的数量(检索出的次数)进行计数,针对每一个图像进行计分。进行从该计分后的数值大的起降序地排序的统计处理。由于针对从查询图像提取出的多个查询特征矢量图像中的每一个来选择图像,因此,通过对其进行统计处理,能够根据通过距离计算而选择出的图像,来评价哪个图像与查询图像相似。根据该统计结果,检索结果图像选择部89选择I个或多个图像作为检索结果的图像,并将选择出的图像的信息输出到网络服务器2。选择出的图像例如可以是检索出的次数最多的图像,或者按照该次数由多到少的顺序靠前的几个。网络服务器2向客户端装置3输出用于显示检索结果的图像的信息。
[0075]根据到此为止的说明可知,从上位代表矢量距离计算部83起到图像特征矢量距离计算部88为止的处理与GPU等进行并行计算的硬件的兼容性高,能够充分地发挥其并行计算能力。而且,检索结果图像选择部89的处理也可以进行一定程度的并行处理,与使用了 CPUll的处理相比,能够更高速地进行处理。此外,与从上位代表矢量距离计算部83起到图像特征矢量距离计算部88为止的处理相比,检索结果图像选择部89的处理量较小,因此,本处理的处理时间相对于整体的处理时间的比例非常小。由此,能够充分获得基于GPU而实现的处理时间的缩短效果。
[0076]在上述说明中,图像特征矢量距离计算部88和检索结果图像选择部89的处理是以并行计算装置14为中心进行的,不过也可以以CPUll为中心来进行。这是因为,仅使GPU执行其它处理也可得到高速化的效果。此外,如果通过CPUll来执行图像特征矢量距离计算部88和检索结果图像选择部89的处理,能够省略图像特征矢量传送部87的处理,因此,与代表特征矢量的距离计算等相比,抑制了由CPUll进行处理而造成的计算时间的增加。
[0077]此外,在本实施方式中,如上位代表矢量和代表特征矢量这样,设为代表矢量是2个阶段的树结构的结构,不过也可以是不设置上位代表矢量的I个阶段的结构。在该情况下,不需要上位代表矢量距离计算部83和代表聚类选择部84的处理,代表特征矢量距离计算部85对全部的代表特征矢量进行距离计算。此外,也可以设置作为上位代表矢量的母的母代表矢量,成为3个阶段以上的结构。在设为3个阶段以上的结构的情况下,在上位代表矢量距离计算部83之前,进行计算与该母代表矢量之间的距离计算的处理以及从其中选择出上位代表矢量的集合的处理,上位代表矢量距离计算部83针对该选择出的上位代表矢量的集合(一部分的上位代表矢量)进行距离计算。
[0078]图15是示出索引追加部53的功能结构的功能框图。索引追加部53在功能上包含追加特征矢量提取部91、追加特征矢量距离计算部92、追加聚类选择部93和图像特征矢量追加部94。
[0079]追加特征矢量提取部91主要由CPUll和存储部12实现。追加特征矢量提取部91从保存在存储部12中的、作为检索对象而被追加的图像,提取多个图像特征矢量20。该提取方法可以是与图像特征矢量提取部61相同的方法。以下,将该图像特征矢量20记作追加特征矢量。
[0080]追加特征矢量距离计算部92是以并行计算装置14为中心实现的。追加特征矢量距离计算部92计算追加特征矢量与保存在树结构代表矢量保存部72中的代表特征矢量中的每一个之间的距离。该距离是根据如下流程计算出的:在该流程中,将图13所示的处理方法中的查询特征矢量和作为计算对象的矢量分别替换为追加特征矢量和全部的代表聚类中包含的代表特征矢量。[0081]追加聚类选择部93以并行计算装置14为中心进行计算。追加聚类选择部93根据追加特征矢量距离计算部92的计算结果,来选择追加特征矢量所属的图像特征聚类。例如,针对各个追加特征矢量,选择与该追加特征矢量之间的距离最短的代表特征矢量所代表的图像特征聚类,作为与该追加特征矢量对应的图像特征聚类。
[0082]图像特征矢量追加部94是以CPUll和存储部12为中心实现的。图像特征矢量追加部94在由追加聚类选择部93选择出的图像特征聚类中追加与其对应的追加特征矢量,并将该图像特征聚类的数据保存在聚类矢量保存部71中。由此,即使在追加作为检索对象的图像的情况下,也能够在不再次进行聚类处理的情况下,将追加后的图像追加到检索对象中,从而节约与该追加相对应的处理时间。
【权利要求】
1.一种图像检索装置,该图像检索装置具有: 公共存储器;和 多个并行的处理器,它们执行相同的命令,分别一并地读取保存在所述公共存储器中的数据并进行处理, 该图像检索装置的特征在于,具有: 代表矢量传送单元,其从存储有分别属于多个聚类中的任意一个聚类的多个图像特征矢量和分别代表所述多个聚类中的任意一个聚类的多个代表特征矢量的存储单元,将所述多个代表特征矢量传送到所述公共存储器,其中,所述多个图像特征矢量是从作为检索对象的多个图像提取出的; 查询特征矢量取得单元,其取得从要查询的图像提取出的I个或多个查询特征矢量,并保存在所述公共存储器中; 第I距离计算单元,其使用所述多个并行的处理器,计算被传送的所述多个代表特征矢量中的至少一部分与所述查询特征矢量之间的距尚; 第2距离计算单元,其计算属于根据所述第I距离计算单元的计算结果而选择出的聚类的图像特征矢量与所述查询特征矢量之间的距离;以及 根据所述第2距离计算单元的计算结果,选择所述多个图像中的至少I个图像的单元。
2.根据权利要求1所述的图像检索装置,其特征在于, 所述图像检索装置还具有图像特征矢量传送单元,该图像特征矢量传送单元将属于根据所述第I距离计算单元的计算结果而选择出的聚类的图像特征矢量从所述存储单元传送到所述公共存储器, 所述第2距离计算单元使用所述多个并行的处理器,计算被传送的所述图像特征矢量与所述查询特征矢量之间的距离。
3.根据权利要求1或2所述的图像检索装置,其特征在于, 所述多个代表特征矢量的数据量小于所述公共存储器的容量。
4.根据权利要求3所述的图像检索装置,其特征在于, 属于所述多个聚类中的I个的图像特征矢量的数据量小于所述公共存储器的容量, 属于所述多个聚类 的图像特征矢量的数据量大于所述公共存储器的容量。
5.根据权利要求2所述的图像检索装置,其特征在于, 属于所述多个聚类中的I个的图像特征矢量和所述多个代表矢量的数据量小于所述公共存储器的容量, 所述图像特征矢量传送单元将属于选择出的所述聚类的图像特征矢量置换为存储在公共存储器中的其它图像特征矢量。
6.根据权利要求1所述的图像检索装置,其特征在于, 所述图像检索装置还具有: 追加图像特征矢量提取单元,其从作为追加的检索对象的图像中,提取多个图像特征矢量;以及 图像特征矢量追加单元,其将由所述追加图像特征矢量提取单元提取出的图像特征矢量追加到所述聚类中的任意一个聚类。
7.一种程序,其使计算机发挥作用,其中,所述计算机具有:公共存储器;和 多个并行的处理器,它们执行相同的命令,分别一次性读取保存在所述公共存储器中的数据并进行处理, 所述程序使所述计算机作为如下单元发挥作用: 代表矢量传送单元,其从存储有分别属于多个聚类中的某一个的多个图像特征矢量和分别代表所述多个聚类中的某一个的多个代表特征矢量的存储单元,将所述多个代表特征矢量传送到所述公共存储器,其中,所述多个图像特征矢量是根据作为检索对象的多个图像提取出的; 查询设定单元,其将根据要查询的图像提取出的I或者多个查询特征矢量设定于所述公共存储器中; 第I距离计算单元,其使用所述多个并行的处理器,计算被传送的所述多个代表特征矢量中的至少一部分与所述查询特征矢量之间的距尚; 第2距离计算单元,其计算属于根据所述第I距离计算单元的计算结果而选择出的聚类的图像特征矢量与所述查询特征矢量之间的距离;以及 根据所述第2距离计算单元的计算结果,选择所述多个图像中的至少I个图像的单元。
8.—种图像检索方法,该画像检索方法使计算机检索图像,其中,所述计算机具有: 公共存储器;和 多个并行的处理器,它们执行相同的命令,分别一并地读取保存在所述公共存储器中的数据并进行处理,` 该图像检索方法的特征在于,该画像检索方法具有如下步骤: 代表矢量传送步骤,从存储有分别属于多个聚类中的任意一个聚类的多个图像特征矢量和分别代表所述多个聚类中的任意一个聚类的多个代表特征矢量的存储单元,将所述多个代表特征矢量传送到所述公共存储器,其中,所述多个图像特征矢量是从作为检索对象的多个图像提取出的; 查询设定步骤,将从要查询的图像提取出的I个或者多个查询特征矢量设定于所述公共存储器中, 第I距离计算步骤,使用所述多个并行的处理器,计算被传送的所述多个代表特征矢量中的至少一部分与所述查询特征矢量之间的距尚; 第2距离计算步骤,计算属于根据所述第I距离计算步骤的计算结果选择出的聚类的图像特征矢量与所述查询特征矢量之间的距离;以及 根据所述第2距离计算步骤的计算结果,选择所述多个图像中的至少I个图像的步骤。
9.一种计算机可读取的存储介质,所述计算机具有: 公共存储器;和 多个并行的处理器,它们执行相同的命令,分别一次性读取保存在所述公共存储器中的数据并进行处理, 所述存储介质存储有程序,所述程序用于使所述计算机作为如下单元发挥作用: 代表矢量传送单元,其从存储有分别属于多个聚类中的某一个的多个图像特征矢量和分别代表所述多个聚类中的某一个的多个代表特征矢量的存储单元,将所述多个代表特征矢量传送到所述公共存储器,其中,所述多个图像特征矢量是根据作为检索对象的多个图像提取出的; 查询设定单元,其将根据要查询的图像提取出的I个或者多个查询特征矢量设定于所述公共存储器中; 第I距离计算单元,其使用所述多个并行的处理器,计算被传送的所述多个代表特征矢量中的至少一部分与所述查询特征矢量之间的距尚; 第2距离计算单元,其计算属于根据所述第I距离计算单元的计算结果而选择出的聚类的图像特征矢量与所述查询特征矢量之间的距离;以及 根据所述第2距离计 算单元的计算结果,选择所述多个图像中的至少I个图像的单元。
【文档编号】G06T1/00GK103797509SQ201180073446
【公开日】2014年5月14日 申请日期:2011年11月25日 优先权日:2011年9月16日
【发明者】A·西瓦希尔科, 鸟居顺次 申请人:乐天株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1