图片搜索系统及方法 【技术领域】
本发明涉及一种信息搜索系统及方法,特别是关于一种图片搜索系统及方法。
背景技术
随着多媒体技术和计算机网络的飞速发展,数字图片的数量正以惊人的速度增长。数字图片中包含了大量有用的信息。为了获得这些信息,需要一种能够快速、准确地查找图片的技术。当前流行的搜索引擎,如Google、Yahoo以及MSN都推出了图片搜索功能,这些图片搜索大多采用基于文本的搜索技术。基于文本的图片搜索是将图片作为数据库中存储的对象,用关键字或自由文本对其进行描述。然而,对于图片中包含的视觉特征,如颜色或形状等,无法用文本对这些视觉特征进行客观的描述。当需要根据图片中包含的视觉特征搜索图片时,基于文本的搜索技术将不再适用。
此外,在利用基于文本的搜索技术进行图片搜索时,由于数据库中的图片数量庞大,搜索的计算量很大,往往需要花费较长的搜索时间,难以满足用户对搜索速度的要求。
【发明内容】
鉴于以上内容,有必要提供一种图片搜索系统,能够根据查询图片的视觉特征快速搜索相似图片。
此外,还有必要提供一种图片搜索方法,能够根据查询图片的视觉特征快速搜索相似图片。
一种图片搜索系统,运行于应用服务器中,用于根据图像索引数据库中各个图库图片的索引信息搜索与查询图片相似的图库图片,该系统包括:提取模块,用于提取所述查询图片的视觉特征,并将查询图片的视觉特征发送给各个计算子结点服务器;分配模块,用于根据图像索引数据库的大小以及计算子结点服务器的数量给各个计算子结点服务器分配搜索任务,以使各个计算子结点服务器根据各个图库图片的索引信息及查询图片的视觉特征计算各个图库图片的相似度并返回各个图库图片的相似度及索引信息;汇总模块,用于对各个计算子结点服务器返回的各个图库图片的相似度及索引信息进行汇总;排序模块,用于将汇总后的各个图库图片的相似度发送给排序服务器,以使排序服务器根据各个图库图片的相似度对各个图库图片进行排序;及输出模块,用于接收排序服务器的排序结果,并根据该排序结果输出各个图库图片的索引信息。
一种图片搜索方法,用于根据图像索引数据库中图库图片的索引信息搜索与查询图片相似的图库图片,该方法包括步骤:提取所述查询图片的视觉特征,并将查询图片的视觉特征发送给各个计算子结点服务器;根据图像索引数据库的大小以及计算子结点服务器的数量给各个计算子结点服务器分配搜索任务,以使各个计算子结点服务器根据各个图库图片的索引信息及查询图片的视觉特征计算各个图库图片的相似度并返回各个图库图片的相似度及索引信息;对各个计算子结点服务器返回的各个图库图片的相似度及索引信息进行汇总;将汇总后的各个图库图片的相似度发送给排序服务器,以使排序服务器根据各个图库图片的相似度对各个图库图片进行排序;及接收排序服务器的排序结果,并根据该排序结果输出各个图库图片的索引信息。
本发明提取查询图片的视觉特征,根据查询图片的视觉特征计算图库图片的相似度,并且利用分布式架构执行搜索任务,从而快速搜索出与查询图片相似的图库图片。
【附图说明】
图1为本发明图片搜索系统较佳实施例的运行环境示意图。
图2为图片搜索系统地功能模块图。
图3为本发明图片搜索方法较佳实施例的流程图。
【具体实施方式】
参阅图1所示,是本发明图片搜索系统较佳实施例的运行环境示意图。该运行环境包括客户端计算机10A-10Z、应用服务器11、计算子结点服务器12A-12C、排序服务器13和图像索引服务器14。所述客户端计算机10A-10Z与应用服务器11相连,该应用服务器11还分别与排序服务器13以及计算子结点服务器12A-12C相连,计算子结点服务器12A-12C还与图像索引服务器14相连。所述图片搜索系统1运行于应用服务器12中。
所述图像索引服务器14中包括一个图像索引数据库15,用于存储各个图库图片的索引信息。客户端计算机10A-10Z根据所述图库图片的索引信息,能够从存储图库图片的图像数据库中获得相对应的图库图片。所述图像数据库可以与图像索引数据库15分布在同一个图像索引服务器14上,也可以分布在其他的图像服务器上。在本实施例中,所述图像数据库中存储的图库图片是专利图片,所述图像索引数据库15存储各个专利图片的索引信息,所述图片搜索系统1根据用户给定的查询图片及各个专利图片的索引信息搜索与查询图片相似的专利图片。所述图库图片的索引信息包括图库图片的存放路径、视觉特征及相关信息。对于专利图片,相关信息包括专利名称、发明人、公告号、申请号、申请时间、公告时间、主分类号等。在本实施例中,图库图片的视觉特征包括颜色特征和形状特征。
所述客户端计算机10A-10Z用于接收用户给定的查询图片,并将查询图片提交给应用服务器11。例如,客户端计算机10A接收一张查询图片,并将该查询图片提交给应用服务器11。所述客户端计算机10A-10Z还用于接收应用服务器11返回的搜索结果,并输出搜索结果。
所述应用服务器11包括图片搜索系统1。进一步地,该图片搜索系统1包括提取模块200、分配模块210、汇总模块220、排序模块230及输出模块240(参阅图2所示)。
所述提取模块200用于提取查询图片的视觉特征并将该视觉特征发送给计算子结点服务器12A-12C。在本实施例中,提取模块200所提取的查询图片的视觉特征包括颜色特征和形状特征。提取模块200可以根据用户指定的搜索方式提取查询图片的视觉特征。例如,若用户指定根据颜色搜索,则提取模块200提取查询图片的颜色特征。又如,若用户指定根据形状搜索,则提取模块200提取查询图片的形状特征。
所述分配模块210用于根据图像索引数据库15的大小及计算子结点服务器12A-12C的数量给计算子结点服务器12A-12C分配搜索任务,并通知计算子结点服务器12A-12C执行所分配的搜索任务。分配模块210分配搜索任务可以采用平均分配法。例如,假设图像索引数据库15中建立有3000个图库图片的索引信息,有三台计算子结点服务器12A-12C,则分配模块210给计算子结点服务器12A-12C各自分配1000个图库图片的搜索任务。
所述汇总模块220用于对计算子结点服务器12A-12C返回的搜索结果进行汇总。例如,汇总模块220将每个计算子结点服务器12A-12C返回的各1000个图库图片的相似度及索引信息进行汇总,得到3000个图库图片的相似度及索引信息。
所述排序模块230用于将汇总后的搜索结果发送给排序服务器13,并通知排序服务器13对汇总后的搜索结果进行排序。
所述输出模块240用于将排序服务器13排序后的搜索结果返回给客户端计算机10A-10Z。在本实施例中,输出模块240将指定数量的图库图片的索引信息返回给客户端计算机10A-10Z。例如,将相似度排在前100位的图库图片的索引信息返回给应用服务器11。
所述计算子结点服务器12A-12C用于根据查询图片的视觉特征以及图像索引服务器14中各个图库图片的视觉特征计算各个图库图片的相似度,并将各个图库图片的相似度及从图像索引服务器14获得的图库图片的索引信息返回给应用服务器11。
所述排序服务器13用于根据各个图库图片的相似度对搜索结果进行排序,并将排序后的搜索结果返回给应用服务器11。排序服务器13可以按照相似度对图库图片进行升序排序或者降序排序。例如,排序服务器13对3000个图库图片按照相似度进行降序排序。
参阅图3所示,是本发明图片搜索方法较佳实施例的流程图。
步骤S301,客户端计算机10A-10Z接收用户给定的查询图片,并将该查询图片提交给应用服务器11。在本实施例中,以客户端计算机10A接收一张查询图片为例,详细说明所述图片搜索系统1根据查询图片的视觉特征快速搜索出与查询图片相似的图库图片的实现过程。在本实施例中,客户端计算机10A-10Z分别为用户提供一个用户界面接收用户给定的查询图片。
步骤S302,应用服务器11的提取模块200提取查询图片的视觉特征,并将查询图片的视觉特征发送给计算子结点服务器12A-12C。在本实施例中,提取模块200所提取的查询图片的视觉特征包括颜色特征和形状特征。此外,提取模块200根据用户指定的搜索方式提取查询图片的视觉特征。例如,若用户指定根据颜色搜索,则提取模块200提取查询图片的颜色特征。又如,若用户指定根据形状搜索,则应用服务器11提取查询图片的形状特征。
在提取图片的视觉特征时,可以将图片等分成若干区块,提取每个区块的视觉特征,将各个区块的视觉特征作为该图片总的视觉特征。例如,对于一张灰度图片,将该灰度图片等分成16X16(256)个区块。若提取该灰度图片的颜色特征,则可以以每个区块灰度值的算术平均值作为该区块的颜色特征,以256个区块的颜色特征作为该灰度图片总的颜色特征。若查询图片是彩色图片,每个区块的颜色特征可以由该区块各个颜色分量(红色分量、绿色分量、蓝色分量)的算术平均值来表示。
若提取该灰度图片的形状特征,则可以将该灰度图片转换为黑白图片,该黑白图片中的黑色像素作为该灰度图片的轨迹点。将每个区块轨迹点数目与区块像素数目的比值作为该区块的形状特征,以各个区块的形状特征作为该灰度图片总的形状特征。例如,假设每个区块有9个像素,某一区块有1个轨迹点,则该区块的形状特征值是1/9。若查询图片是彩色图片,可以先将该彩色图片转换为黑白图片,再根据上述方法提取形状特征。
一般而言,查询图片与图库图片的视觉特征采用相同的方法获得,并且采用相同的表示形式。例如,查询图片和图库图片的视觉特征均按照上述划分区块的方法获得,并且均用矩阵来表示。
步骤S303,应用服务器11的分配模块210根据图像索引数据库15的大小及计算子结点服务器12A-12C的数量给计算子结点服务器12A-12C分配搜索任务,并通知计算子结点服务器12A-12C执行所分配的搜索任务。分配模块210可以采用平均分配法分配搜索任务。例如,假设图像索引数据库15中建立有3000个图库图片的索引信息,有三台计算子结点服务器12A-12C,则分配模块210给计算子结点服务器12A-12C各自分配1000个图库图片的搜索任务
步骤S304,计算子结点服务器12A-12C根据查询图片的视觉特征以及图像索引数据库15中图库图片的视觉特征计算各个图库图片的相似度,并将各个图库图片的相似度及从图像索引服务器14获得的各个图库图片的索引信息返回给应用服务器11。
在本实施例中,查询图片和图库图片的视觉特征以等分的若干区块的视觉特征表示总的视觉特征,则计算子结点服务器12A-12C计算每个区块的相似度,然后根据各个区块的相似度计算总的相似度。例如,假设查询图片和图库图片等分成256个区块,以256个区块的相似度的算术平均值作为总的相似度。每个区块的相似度可以根据该区块的视觉特征的差值来计算。例如,对于灰度图片,假设灰度值取值范围是0255,某个区块的颜色特征值是100,图库图片中相对应区块的颜色特征值是110,则该区块的相似度可以是该区块颜色特征之差的绝对值与最大灰度值的比值,即|110-100|/255。
步骤S305,应用服务器11的汇总模块220对计算子结点服务器12A-12C返回的各个图库图片的相似度及索引信息进行汇总。例如,应用服务器11将每台计算子结点服务器12A-12C返回的各100个图库图片的相似度及索引信息进行汇总,得到3000个图库图片的相似度及索引信息。
步骤S306,应用服务器11的排序模块230将汇总后的各个图库图片的相似度发送给排序服务器13,并通知排序服务器13对汇总后的各个图库图片进行排序。
步骤S307,排序服务器13根据各个图库图片的相似度对各个图库图片进行排序,并将排序结果返回给应用服务器11。排序服务器13可以按照相似度对图库图片进行升序排序或者降序排序。例如,排序服务器13对3000个图库图片按照相似度大小进行降序排序。
步骤S308,应用服务器11的输出模块240根据排序服务器13返回的排序结果将指定数量的图库图片的索引信息返回给客户端计算机10A。
步骤S309,客户端计算机10A输出指定数量的图库图片的索引信息。在本实施例中,客户端计算机10A-10Z分别为用户提供一个用户界面输出搜索结果。从而,用户可以根据搜索结果获得所需的图库图片。
此外,在上述实施例中,图像索引数据库15中存储有图库图片的相关信息。因此,还可以根据用户给定的与所述相关信息相对应的文字查询条件进行图片搜索。例如,在本实施例中,图库图片的相关信息包括专利名称、发明人、公告号、申请号、申请时间、公告时间、主分类号等。因此,可以根据专利名称、发明人、公告号、申请号、申请时间、公告时间、主分类号等文字查询条件搜索满足条件的专利图片。