使用多个视觉输入模态的视觉搜索的制作方法

文档序号:6379027阅读:196来源:国知局
专利名称:使用多个视觉输入模态的视觉搜索的制作方法
使用多个视觉输入模态的视觉搜索对相关串请的交叉引用
本申请要求2011年10月18日提交的美国临时专利申请序列号No. 61/548,585的利益,该申请通过引用被并入,就如同其全文在这里被阐明一样。
背景技术
因特网通过它的数十亿的Web页面提供了巨大的和快速增长的信息和资源库。为了找到想要的内容,计算机用户常常利用搜索工具。示范性的因特网搜索引擎在本领域内是熟知的,例如,普遍已知的商业引擎是由华盛顿州、雷蒙德的微软公司提供的Bing 搜索引擎。许多当前的商用图像搜索技术使用文本查询来从主要通过文本数据索引的抓取(crawled)图像的大型数据库中获取结果。这限制了什么图像可以被搜索的范围,其进而又影响搜索结果的质量和相关性。另外,可用性被交互式细化(refinement)的缺乏所影响。·

发明内容
本概要被提供来以简化的形式介绍概念的选择,这些概念在下面的详细说明中被进一步描述。本概要既不打算确认所要求保护的主题的关键特征或必要特征,也不打算被使用来帮助确定所要求保护的主题的范围。本发明的实施例涉及系统、方法和计算机可读存储媒体,它们尤其用于为web规模的视觉搜索提供能够使用诸如草图(sketch)、图像或拼贴画(collage)这样的视觉输入模态(modality)的组合的统一系统。创建边缘元(edgel)(即,边缘像素)索引,其包括对应于多个图像中的每个图像的基于边缘元的表示。在实施例中,其它的形状描述符,诸如基于梯度的表示和/或梯度的直方图,也可以被包括在边缘元索引中。每个基于边缘元的表示包括描绘图像的一个或多个边缘或边界轮廓的像素组,并且至少部分地通过将图像分段成多个图像段并在每个段上执行多相轮廓检测而被创建。在接收到具有视觉查询输入(例如,图像、草图和/或拼贴画)的搜索查询后,视觉查询输入被转换成基于边缘元的表示(例如,通过使用分段和多相轮廓检测),以及多个图像中的每个图像的基于边缘元的表示被与视觉查询输入的基于边缘元的表示进行比较,以便识别所述多个图像中的、与所述视觉查询输入匹配的至少一个图像。在实施例中,视觉查询输入也可以被转换成一个或多个其它的形状描述符(例如,基于梯度的表示和/或梯度的直方图)并与边缘元索引中包括的类似的数据进行比较。以这种方式,本发明的系统被配置成经由各种各样的视觉输入模态接收搜索查询,并且基于接收的输入返回基于图像的搜索结果。本发明的实施例的统一系统能够通过使用文本索引结构和用于与不同的视觉输入匹配的单个视觉输入索引结构来操控文本和多个视觉输入模态。提供了既改进结果质量又改进性能的算法,从而使得能进行数百万图像的快速索引和视觉搜索。还提供了直观的、触摸友好(touch-friendly)的用户体验,其使得用户能够使用输入模态(例如,文本、图像、草图和拼贴画)的组合灵活地制定搜索查询,以及使得用户能够在同一个搜索会话中在不同输入模态间切换以及对它们进行组合。用户体验可以包括搜索画布(search canvas)或窗口,其使得用户能够诸如通过绘制草图、输入图像、绘制或输入拼贴画以及输入一个或多个文本关键字来构成复杂的查询。


本发明在附图中借助例子而非被限制地图示,附图中的同样的参考标号指示类似的单元,以及其中
图I是适合于在实施本发明的实施例时使用的示范性计算环境的框 图2是在其中可以利用本发明实施例的示范性计算系统的框 图3是在其中可以利用本发明实施例的示范性索引系统的框 图4是显示按照本发明的实施例的、用于生成边缘元(B卩,边缘像素)索引的示范性方法的流程图;
图5是显示按照本发明的实施例的示范性方法的流程图,所述方法为web规模的视觉搜索提供能够使用诸如草图、图像和/或拼贴画这样的视觉输入模态的组合的统一系统;图6是显示按照本发明的实施例的、基于文本输入而呈现的图像搜索结果的示范性屏幕显示的示意 图7是显示按照本发明的实施例的、提供查询细化选项的特定图像搜索结果的用户选择的示范性屏幕显示的示意 图8是显示按照本发明的实施例的、基于图像输入而细化和呈现的图像搜索结果的示范性屏幕显示的示意 图9是显示按照本发明的实施例的、基于图像选择而细化和呈现的图像搜索结果的示范性屏幕显示的示意图;和
图10是显示按照本发明的实施例的、基于草图输入而呈现或细化的图像搜索结果的示范性屏幕显示的示意图。
具体实施例方式本发明的主题在这里被带有特异性地描述以满足法定的要求。然而,描述本身并不打算限制本专利的范围。而是,本发明人已经设想到所要求保护的主题也可以结合其它目前的或未来的技术以其它的方式来体现,以便包括不同的步骤或与本文档中描述的步骤类似的步骤的组合。而且,尽管术语“步骤”和/或“方框”在这里可被使用来意指所利用的方法的不同单元,但是所述术语不应当被解释为暗示在这里公开的各种步骤当中或之间的任何特定的次序,除非和除了一个个步骤的次序被明确地描述时。视觉搜索属性已经被证明是在用户搜索某些项目(诸如,衣服)时使用的关键因素之一。通常,商用搜索引擎随搜索结果一起显示产品图像。此外,诸如粗略草图和颜色描述符这样的视觉输入在搜索诸如图像这样的视觉数据时对于用户而言是直观的。借力于(leverage)这样的自然模态的任何搜索体验将是有趣的和易于使用的。消费者研究表明通过使用多种输入模态来细化查询的能力在使能发现和探索的同时带来更加吸引人的体验。例如,搜索未知品牌/样式的特定鞋的用户可以通过使用文本输入“鞋”来发起查询。在浏览结果的时候,用户可能注意到看起来与想要的鞋类似的鞋,然后他/她可能期望经由“视觉上类似”的查询来细化所述查询,以便找到具有相同的形状、颜色和纹理的更多的鞋。另夕卜,用户可能希望将类似的鞋添加到草图画布并通过勾画更多的细节来创建拼贴图,以便进一步细化所述查询。因此,这里描述的技术的各种方面总地针对系统、方法和计算机可读存储媒体,它们尤其是为web规模的视觉搜索提供能够使用诸如草图、图像或拼贴画这样的视觉输入模态的组合的统一系统。创建边缘元(即,边缘像素)索引,其包括对应于多个图像中的每个图像的基于边缘元的表示。在实施例中,其它的形状描述符,诸如基于梯度的表示和/或梯度的直方图,也可以被包括在边缘元索引中。每个基于边缘元的表示包括描绘图像的一个或多个边缘或边界轮廓的像素组,并且至少部分地通过将所述图像分段成多个图像段并在每个段上执行多相轮廓检测而被创建。在接收到具有视觉查询输入(例如,图像、草图和/或拼贴画)的搜索查询后,视觉查询输入被转换成基于边缘元的表示(例如,通过使用分段和多相轮廓检测),并且所述多个图像的每个图像的基于边缘元的表示被与视觉查询输入的基于边缘元的表示进行比较,以便识别所述多个图像中的、与视觉查询输入匹配的至少一个图像。在实施例中,视觉查询输入也可以被转换成一个或多个其它的形状描述符(例如,基于梯度的表示和/或梯度的直方图)并与包括在边缘元索引中的类似的数据进行比较。 以这种方式,本发明的系统被配置成经由各种各样的视觉输入模态接收搜索查询,并基于接收到的输入返回基于图像的搜索结果。因此,本发明的一个实施例针对一种为web规模的视觉搜索提供能够使用视觉输入模态的组合的统一系统的系统。所述系统包括与计算机可读存储媒体通信的处理器,以及在所述计算机可读存储媒体中维持的索引。所述索引包括描述多个图像中的每个图像的基于边缘元的表示的图像数据。所述系统还包括查询接收组件,其接收视觉输入(例如,图像、草图和/或拼贴画)作为搜索查询;查询解析器,其将视觉输入转换成包括它们的基于边缘元的表示的一个或多个形状描述符;以及视觉输入匹配组件,其将包括多个图像的基于边缘元的表示的一个或多个形状描述符与来自搜索查询的视觉输入的、包括基于边缘元的表示的形状描述符进行匹配,以便识别所述多个图像中的至少一个匹配的图像。本发明的另一个实施例针对存储计算机可用指令的一个或多个计算机可读存储媒体,当所述指令由一个或多个计算设备使用时,使得所述一个或多个计算设备执行用于为web规模的视觉搜索提供能够使用视觉输入模态的组合的统一系统的方法。所述方法包括接收搜索查询;提供多个图像结果,所述多个图像结果中的每个具有一个或多个相关联的形状描述符,其包括它们的基于边缘元的表示;接收视觉查询细化(例如,图像、草图和/或拼贴画);将所述视觉查询细化转换成包括它们的基于边缘元的表示的一个或多个形状描述符;以及将所述多个图像的、包括基于边缘元的表示的形状描述符与所述视觉查询细化的、包括基于边缘元的表示的形状描述符进行比较,以便识别多个图像结果中的至少一个细化匹配的图像。在再一个实施例中,本发明针对用于为web规模的视觉搜索提供能够使用视觉输入模态的组合的统一系统的方法。所述方法包括访问多个图像;将所述多个图像中的每个图像分段成各自的多个段;在各个各自的多个段上执行多相轮廓检测,以便创建所述多个图像中的每个图像的一个或多个形状描述符,所述形状描述符包括基于边缘元的表示;以及由处理器生成边缘元索引,所述边缘元索引包括图像数据,其描述所述多个图像中的每个图像的包括基于边缘元的表示的相应的形状描述符。在实施例中,每个基于边缘元的表示包括描绘所述多个图像中的每个图像的一个或多个边界轮廓的像素组。所述方法还可以包括接收搜索查询,所述搜索查询包括视觉输入(例如,图像、草图和/或拼贴画);将所述视觉查询输入转换成包括基于边缘元的表示的一个或多个形状描述符;以及将所述多个图像中的每个图像的、包括基于边缘元的表示的形状描述符与所述视觉查询输入的、包括基于边缘元的表示的形状描述符进行比较,以便识别所述多个图像中的与所述视觉查询输入匹配的至少一个图像。已经简略地描述了本发明的实施例的概况,下面描述在其中本发明的实施例可以被实施的示范性操作环境,以便提供针对本发明的各种方面的一般上下文。一般性地参照附图并且特别地一开始参照图1,用于实施本发明的实施例的示范性操作环境总地被显示和被指定为计算设备100。计算设备100仅是合适的计算环境的一个例子,并不打算就本发明的实施例的使用或功能性的范围提出任何的限制。计算设备100也不应被解释为具有涉及图示组件中的任意一个或组合的任何依赖性或要求。本发明的实施例可在计算机代码或机器可用指令的一般上下文中被描述,所述计 算机代码或机器可用指令包括计算机可用的或计算机可执行的指令,诸如,由计算机或比如个人数据助理或其它手持设备这样的其它机器执行的程序模块。通常,包括例行程序、程序、对象、组件、数据结构等等的程序模块是指执行特定的任务或实施特定的抽象数据类型的代码。本发明的实施例可以以各种各样的系统配置被实践,包括手持设备、消费电子设备、通用计算机、更加专业的计算设备等等。本发明的实施例也可以在分布式计算环境中被实践,在分布式计算环境中任务由通过通信网络链接的远程处理设备来执行。继续参考图1,计算设备100包括总线110,其直接地或间接地耦合以下设备存储器112、一个或多个处理器114、一个或多个呈现组件116、输入/输出(I/O)端口 118、I/O组件120和说明性的电源122。总线110所代表的可以是一个或多个总线(诸如地址总线、数据总线或它们的组合)。尽管为了清晰起见,图I的各个方框是用线条显示的,但是在实际中这些方框代表逻辑组件,不一定是实际的组件。例如,人们可以把诸如显示设备这样的呈现组件看作是I/O组件。还有,处理器具有存储器。关于这一点,本发明人认为这是本领域的特质,并重申图I的图仅仅是说明可以结合本发明的一个或多个实施例使用的示范性计算设备。在诸如“工作站”、“服务器”、“膝上型计算机”、“手持设备”等等这样的类别之间不做区分,因为所有的这些都被设想在图I的范围内,并称之为“计算设备”。计算设备100典型地包括各种各样的计算机可读媒体。计算机可读媒体可以是可由计算设备100访问的任何可用的媒体,并且其包括以任何方法或技术实施的、用于存储诸如计算机可读指令、数据结构、程序模块或其它数据这样的信息的易失性和非易失性媒体、可拆卸和不可拆卸媒体。计算机可读媒体包括但不限于RAM、ROM、EEPR0M、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储装置、盒式磁带、磁带、磁盘存储装置或其它磁存储设备、或可以被使用来存储想要的信息并可由计算设备100访问的任意其它的介质。上面的任意项的组合也被包括在计算机可读媒体的范围内。存储器112包括以易失性和/或非易失性存储器形式的计算机存储媒体。存储器可以是可拆卸的、不可拆卸的或它们的组合。示范性的硬件设备包括固态存储器、硬驱动机、光盘驱动机等等。计算机设备100包括一个或多个处理器,其从诸如存储器112或I/O组件120这样的各种实体读取数据。呈现组件116将数据指示呈现给用户或其它设备。示范性的呈现组件包括显示设备、扬声器、打印组件、振动组件等等。I/O端口 118允许计算设备100被逻辑地耦合到包括I/O组件120的其它设备,I/O组件120中的一些可以被内置。说明性的组件包括话筒、操纵杆、游戏手柄、卫星碟型天线、扫描仪、打印机、无线设备等等。如前所述,本发明的实施例总地针对系统、方法和计算机可读存储媒体,它们尤其用于为web规模的视觉搜索提供能够使用诸如草图、图像或拼贴画这样的视觉输入模态的组合的统一系统。示范性的仅草图的图像搜索技术在2010年8月31日提交的、标题为“Sketch-based Image Search”、序列号为No. 12/873,007的申请中被描述,以及示范性的基于图像的搜索技术在2010年8月5日公开的、公开号为No. 2010/0195914、标题为“Scalable Near Duplicate Image Search with Geometric Constraints,,的美国申请中被描述,它们两者都通过引用被并入,就如同其全文在这里被阐明一样。按照这里的实施例,创建边缘元(S卩,边缘像素)索引,其包括对应于多个图像中的每个图像的基于边缘元的表示。在实施例中,其它的形状描述符,诸如基于梯度的表示和/ 或梯度的直方图,也可以被包括在边缘元索引中。每个基于边缘元的表示包括描绘图像的一个或多个边缘或边界轮廓的像素组,并且至少部分地通过将所述图像分段成多个图像段以及在每个段上执行多相轮廓检测而被创建。在接收到具有视觉查询输入(例如,图像、草图和/或拼贴画)的搜索查询后,视觉查询输入被转换成基于边缘元的表示(例如,通过使用分段和多相轮廓检测),且所述多个图像中的每个图像的基于边缘元的表示与所述视觉查询输入的基于边缘元的表示进行比较,以便识别所述多个图像中的与所述视觉查询输入匹配的至少一个图像。在实施例中,视觉查询输入也可以被转换成一个或多个其它的形状描述符(例如,基于梯度的表示和/或梯度的直方图),并与边缘元索引中包括的类似的数据进行比较。现在参照图2,提供了图示在其中本发明的实施例可以被利用的示范性计算系统200的框图。一般而言,计算系统200图示了在其中使能用于web规模的视觉搜索的、能够使用视觉输入模态(例如,图像、草图和/或拼贴画)的组合的统一系统的环境。如在下面将进一步详细描述的,本发明的实施例提供了用于通过创建形状描述符的索引而使能这样的web规模的视觉搜索系统的系统和方法,其中所述形状描述符包括基于边缘元的图像表示,视觉输入的基于边缘元的表示(和其它的形状描述符)可以被与其进行比较和匹配。以这种方式,系统200被配置成经由各种各样的视觉输入模态接收搜索查询,并基于接收到的输入返回基于图像的搜索结果。在其它未示出的组件当中,计算系统200通常包括客户机计算设备210、搜索引擎212和图像数据存储库(data store)214,它们都经由网络216彼此通信。网络216可以包括但不限于一个或多个局域网(LAN)和/或广域网(WAN)。这样的联网环境在办公室、企业范围的计算机网络、内联网和因特网中是常见的。因此,网络216在这里不再被描述。应当理解,任意数量的客户机计算设备、搜索引擎和图像数据存储库可以在本发明的实施例的范围内的计算系统200中被利用。每一个可以包括单个设备/接口或在分布式环境中合作的多个设备/接口。例如,搜索引擎212可以包括在分布式环境中安排的多个设备和/或模块,它们共同地提供这里描述的搜索引擎212的功能性。另外,未示出的其它组件/模块也可以被包括在计算系统200内。
在一些实施例中,图示的组件/模块中的一个或多个可以被实施为独立的应用。在其它实施例中,图示的组件/模块中的一个或多个可以经由客户机设备210被实施为基于因特网的服务、或搜索引擎212内的模块。本领域的技术人员将会理解,图2中图示的组件/模块在本质上和数量上是示范性的,不应被解释为是限制性的。任意数量的组件/模块可以被利用来实现在这里的实施例的范围内的期望功能性。此外,组件/模块可以位于任意数量的搜索引擎或用户计算设备上。仅作为例子,搜索引擎212可被提供作为单个服务器(如所示的)、服务器集群、或远离其余组件中的一个或多个组件的计算设备。应当理解,这里描述的这种和其它的安排仅仅是作为例子阐明的。其它的安排和单元(例如,机器、接口、功能、次序和功能组等等)可以附加于所显示的这些安排、或代替所显示的这些安排来被使用,并且某些单元可以完全被省略。此外,这里描述的单元中的许多单元是可以作为离散或分布式组件、或者与其它组件相结合地、并在任何适当的组合和位置中被实施的功能实体。在这里被描述为由一个或多个实体执行的各种功能可以由硬件、 固件和/或软件来实行。例如,各种功能可以由执行存储在存储器中的指令的处理器实行。客户机计算设备210可以包括任意类型的计算设备,例如像参照图I描述的计算设备100。通常,客户机计算设备210包括浏览器218和显示器220。浏览器218被配置成与客户机计算设备210的显示器220相关联地再现搜索引擎主页。浏览器218还被配置成接收针对各种web页面(包括搜索引擎主页)的请求的用户输入,接收用户输入的搜索查询(通常经由在显示器220上呈现的用户界面被输入,并且准许字母-数字、文本和/或视觉输入到指定的搜索输入区域),以及接收例如来自搜索引擎212的、用于在显示器220上呈现的内容。浏览器218可以是任何适当类型的web浏览器,诸如Internet Explorer 、Firefox 、Chrome 、Safari 、或被配置来使能提交用于如这里公开的搜索的文本和/或视觉搜索查询的其他类型的软件。应当指出,在这里被描述为由浏览器218执行的功能性可以由能够再现Web内容的任何其它的应用来执行。任何的和所有的这样的变例以及它们的任意组合都被设想是在本发明的实施例的范围内。显示器220被配置成呈现各种内容,包括具有指定的搜索输入区域的搜索引擎主页和具有如这里描述的文本和/或图像结果的搜索引擎结果页面。在实施例中,显示器220还被配置成使能来自用户的触摸输入。搜索引擎212被配置成接收请求并对请求做出响应,所述请求是搜索引擎212从与客户机计算设备相关联的组件(例如,与客户机计算设备210相关联的浏览器218)接收的。本发明所属领域中的技术人员将认识到,本发明可以用任意数量的搜索工具来实施。例如,因特网搜索引擎或数据库搜索引擎可以利用本发明。这些搜索引擎在本领域是熟知的,并且商业上可得到的引擎共享许多类似的过程,这些过程在这里不进一步描述。搜索引擎212例如利用了基于位图的相似性匹配,并且它包括查询解析组件,该查询解析组件可以操控各种视觉输入(包括图像、草图和拼贴画)、用于计算在两个形状描述符(例如,基于边缘元的表示)之间相似性的取向(orientation)、颜色和欧几里德倒角距离的使用、以及提供改进的高速缓冲存储器性能的存储器高效的边缘元表示和索引布局、及用于再调用(recall)和排名(rank)的并行算法以完全改进查询等待时间和每秒的查询。因此,如图示的,搜索引擎212包括查询接收组件222、查询解析器224、再调用引擎226(具有视觉输入匹配组件228和文本输入匹配组件232)和排名引擎236。图示的搜索引擎212还能访问图像数据存储库214。图像数据存储库214被配置成存储图像数据,即与图像相关联的信息。在各种实施例中,这样的信息可以包括但不限于原始图像数据、优化的图像数据等等。在实施例中,图像数据存储库214被配置成对于与其相关联地存储的项目中的一个或多个是可搜索的。本领域的技术人员将会理解和意识到,与图像数据存储库214相关联地存储的信息可以是可配置的,并可以包括与被配置用于在搜索引擎结果页面上呈现的图像相关的任何信息,包括与其相关联的文本。这样的信息的内容和量(volume)并不打算以任何方式限制本发明的实施例的范围。此外,尽管图像数据存储库214被图示为单个独立的组件,但是事实上其可以是多个存储设备,例如数据库集群,它们中的一些部分可以与搜索引擎212、客户机计算设备210、另外的外部计算设备(未示出)、和/或它们的任意组合相关联地驻留。搜索引擎212的查询接收组件222被配置成接收搜索查询,例如经由客户机计算设备210输入的搜索查询。输入的搜索查询可以包括文本输入和/或视觉输入(例如,图像、草图和/或拼贴画)。查询接收组件222还被配置成接收文本和/或视觉查询细化,如下面 更加充分地描述的。查询解析器224被配置成确定输入的查询是否包括多个模态(例如,文本和/或视觉模态),以及如果是的话,从视觉输入中提取和分离文本输入。查询解析器还被配置成将来自多模态查询的文本查询或文本输入传送到文本搜索索引(例如,文本索引234),用于例如与文本输入匹配组件232合作地识别匹配或满足输入文本查询的搜索结果,如在下面更加充分地描述的。更进一步地,查询解析器被配置成通过使用与图像处理和索引组件310类似的模式(schema)而将来自多模态查询的视觉查询或视觉输入转换成基于边缘元的表示,图像处理和索引组件310在下面参照图3更加充分地描述。对于基于草图的查询,用户笔划被当作突出的轮廓对待,并且边缘元取向被计算。对于图像查询,突出的轮廓通过使用下面参照图3描述的方法被提取。对于拼贴画查询,用户笔划和个体的图像基于边缘元的表示被栅格化(rasterize)并构成单个基于边缘元的表示(保留深度排序)。应当指出,对于已经在边缘元索引中存在的查询图像,图3的索引组件300不必被执行。而是,图像的所存储的基于边缘元的表示可以被利用。再调用引擎226被配置成利用来自视觉输入的突出轮廓的颜色和取向编码的边缘元作为到反转的(inverted)边缘元索引230的键标(key)。为了创建反转的边缘元索引230,对于图像集(corpus)中的每个图像,一个或多个形状描述符被计算和索引。随后,当具有视觉输入的查询(或视觉查询)被接收到时,所述索引可以被扫描,并且图像形状描述符的匹配组被返回(通过该匹配组,对应的图像可以例如从图像数据存储库214被检索)。按照这里的实施例,图像的形状描述符中的至少一个由边缘元或边缘像素描述。边缘元代表图像的突出的轮廓和边缘,它们提供了图像中的形状和高级别纹理细节的合理近似。图像的边缘元表示然后被与边缘元索引230相关联地存储。边缘元索引230是基于反转的索引结构。这种索引通过生成图像的基于边缘元的表示以及使用每个边缘像素(边缘元)的位置、取向和颜色作为索引键标而被计算。这样的边缘元索引230很好地调节(scale)到数量很大(例如,数百万)的图像。如在下面更加充分地描述的,量化的颜色信息被包括在边缘元索引230中,使得结果能够不仅通过形状排名还通过颜色排名。此外,提取前景对象的突出轮廓的多级轮廓检测算法被利用,且它能够鲁棒地操控低对比度的图像(例如,具有白色背景的白色裙子)。再进一步地,前景对象的基于边缘元的表示被转换成仿射(affine)归一化的空间,其使得基于边缘元的表示对于缩放、平移、反射和旋转改变是不变化的。反转的边缘元索引230的创建被参照图3显示,图3图示了可以与本发明的实施例一起利用的示范性索引系统300的框图。图像集一一例如与图像数据存储库312 (例如,图2的图像数据存储库214)相关联地存储的图像一一被访问并被传送到索引组件310。如图示的,索引组件310包括预处理组件314、分段组件316、多相轮廓检测组件318、仿射纠正(rectification)组件320、取向和采样组件322、边缘元索引生成组件324和文本索引生成组件326。这些组件中的每个在下面被更加充分地描述。预处理组件314被配置成将图像集中的每个接收的图像大小调整为标准尺寸(例如,200X200像素)。在实施例中,高斯平滑然后被应用到调整大小后的图像以便减低噪声伪像。高斯平滑是本领域中熟知的技术,因此在这里不进一步描述。分段组件316被配置成基于颜色和梯度改变在接收的图像上执行高效的图割 (graph-cut)分段。在实施例中,由 Felzenszwalk 和 Huttenlocher 在 IJCV 2004 中给出的技术可以被利用。为了保留突出的边缘,在一定尺寸以下的段可以与相邻的较大段组合。每个段可以被指派它的平均颜色,以便给出该图像中主要段在特定颜色空间(例如,RGB颜色图像)中的图像。多相轮廓检测组件318被配置成使用多相办法从段中提取突出的边缘。首先,来自段的强边缘通过转换灰度级以及作为例子运行Canny边缘检测器而被检测。Canny边缘检测器对于本领域技术人员是已知的,因此在这里不进一步描述。在实施例中,为了检测低对比度的边缘,直方图均衡被应用在低对比度区域上,以及在经直方图均衡的图像上运行Canny边缘检测器。接着,低对比度边缘基于与强边缘的接近度和跨越低对比度边缘的局部梯度而被评分(score)。这种办法倾向于在消除由于噪声引起的低对比度边缘的同时,保存对物体边界做出贡献的低对比度边缘。每个轮廓的曲率然后被计算,以及背景颜色信息被利用来消除背景/边界边缘。在应用多相轮廓检测算法后,主体图像由描绘其边界的主要轮廓的像素组表示。为了执行仿射校正,取向的边界框和前景轮廓的要素(principle)利用仿射纠正部件320被计算。随后,仿射变换被应用在所有轮廓上,对应于该取向的边界框到矩形(例如,200X200像素的矩形)的变换。这将所有的图像归一化为一种标准的空间定义。对于轮廓中的每个边缘元,经平滑的取向(曲率)和两方面的(two-sided)轮廓颜色通过利用取向和采样组件322被计算。基本上,在边界轮廓上的所有像素都被分析,以及最大程度勾画该图像的那些像素被选择为在其上构建主体图像的基于边缘元的表示的像素。轮廓颜色从该轮廓相交的段的平均颜色导出,并被量化到特定的颜色空间,例如量化成I字节的HSV值。在阀值长度以上的轮廓然后例如与图2的边缘元索引230相关联地被存储为基于边缘元的表示。所述轮廓在高曲率处被子采样,以及高梯度边缘元通过利用边缘元索引生成组件324被存储在反转的边缘元索引(例如,边缘元索引230)中。为了性能,高频键标从所述索引中被移除(类似于文本索引中的诸如“是”这样的常见单词)。另外,关键值被存储在高速缓冲存储器友好的布局中。
文本索引生成组件326被配置成通过识别与来自图像数据存储库312的图像相关联的任何标签或文本而创建文本索引(例如,图2的文本索引234)。用于创建文本索引的技术对于本领域技术人员是已知的,因此在这里不进一步描述。参照图4,其图示了按照本发明的实施例的、显示用于生成边缘元(B卩,边缘像素)索引的示范性方法400的流程图。最初,多个图像被访问,如在方框410所指示的。多个图像中的每个图像被分段成多个图像段,如在方框412所指示的。多相轮廓检测然后在各个各自的多个段上被执行,以便创建所述多个图像中的每个图像的基于边缘元的表示。这在方框414被指示。边缘元索引然后被生成,其包括描述各自的基于边缘元的图像表示的图像数据,如在方框416所指示的。转到图2,如先前阐明的,再调用引擎226被配置成利用来自视觉查询输入的突出轮廓的颜色和取向编码的形状描述符(包括边缘元)作为到反转的边缘元索引230的键标。 因此,在视觉查询输入中的形状描述符(包括边缘元)被查询解析器224重新排序为如参照图3描述的相同的布局。具有与图像的数量相等的若干仓室(bin)的直方图被计算,以及 每个图像的分数与匹配的形状描述符(包括边缘元)的数量成比例。来自查询解析器224的输出被提供给视觉输入匹配组件228,该视觉输入匹配组件228被配置成识别描述匹配或满足输入的视觉查询的形状描述符(包括边缘元表示)的图像数据。因此,图示的视觉输入匹配组件228能访问边缘元(S卩,边缘像素)索引230。文本输入匹配组件232被配置成基于在查询中输入的任意文本来识别匹配的或满足的搜索结果。因此,图示的文本输入匹配组件232能访问文本索引234。排名引擎236被配置成利用最高的k个再调用的候选者(例如,最高的k个最大可以近似地等于2000个候选者)以及例如通过使用线性加权的取向的欧几里德倒角加上颜色距离来对它们进行重新排名。针对每对匹配的形状描述符的颜色距离通过使用轮廓颜色被计算,使用了特定颜色空间(例如,HSV空间)中的感知的距离度量。对于具有文本和视觉输入的查询,归一化的视觉分数与归一化的文本分数相组合。在实施例中,为了提供高的查询吞吐量,边缘元索引230跨多个计算节点被水平地分区,以及在每个节点中键标被跨多个核(core)分布,以便改进再调用性能。为了改进排名性能,最高的k个候选者集合可跨多个核地被分区,以及每个分区可以被并行地评分。最后,为了改进查询吞吐量,每个计算节点可以维持多个再调用和排名引擎的对象池,以及并发的查询可以跨所述对象池被进行负载平衡。任意的和所有的这样的变例以及它们的任意组合可以与本发明的实施例相一致地被利用。排名的结果随后被传送以便例如与客户机计算设备210的显示器218相关联地呈现给用户。按照这里的实施例,视觉查询细化可以以类似的方式被接收和处理。即,在接收查询的结果之后,包括文本和/或视觉输入的查询细化可以被提交。就查询细化包含视觉输入来说,视觉输入可以按照在上文参照图2和3所描述的那样被处理,以便创建它们的基于边缘元的表示。在实施例中,其它的形状描述符,诸如基于梯度的表示和/或梯度的直方图,也可以被创建。基于边缘元的表示(以及在适当处是其它的形状描述符)然后可以与先前返回的查询结果的基于边缘元的表示(以及在适当处是其它的形状描述符)进行比较,以便识别更接近地满足或匹配所接收的查询细化的那些结果。示范性的视觉查询细化被参照图7和8举例说明,在下面更加充分地描述。在实施例中,视觉查询细化可以经由渐增搜索建议接口被接收,通过所述接口可以基于查询细化输入将搜索建议提供给用户。现在转到图5,其图示了按照本发明的实施例的、显示示范性方法500的流程图,该示范性方法500用于为web规模的视觉搜索提供能够使用诸如草图、图像和/或拼贴画这样的视觉输入模态的组合的统一系统。最初,如在方框510所指示的,搜索查询被接收。接收的搜索查询可以包括文本和/或视觉输入。就搜索查询包括视觉输入来说,作为例子而不是限制,这样的输入可以被提供为图像、草图和/或拼贴画中的一个或多个。响应于所述搜索查询,多个图像结果被识别并被提供用于呈现,如在方框512所指示的。作为例子,图6是图示按照本发明的实施例的、响应于基于文本输入的购物垂直搜索中的搜索而检索的结果的示范性屏幕显示600的示意图。如图示的,文本搜索查询“鞋”经由文本搜索输入框610被接收到,以及响应于接收的搜索查询,多个视觉(图像)搜索结果612被呈现。所述多个图像结果中的每个包括按照上文描述的方法和系统创建的一个或多个相关联的形状描述符,所述形状描述符包括它们的相关联的基于边缘元的表示。
转到图5,视觉查询细化被接收到,如在方框514所指示的。仅仅作为例子,视觉查询细化可以包括草图、图像和/或拼贴画中的一个或多个。这在方框516被指示。视觉查询细化通过利用上文描述的方法和系统被转换成一个或多个形状描述符,所述形状描述符包括基于边缘元的表示。所述多个图像结果的、包括基于边缘元的表示的形状描述符与所述视觉查询细化的、包括基于边缘元的表示的形状描述符进行比较,以便识别所述多个图像结果的至少一个细化匹配的图像。这在方框518被指示。所述至少一个细化匹配的图像然后被传送用于呈现给用户。作为例子,图7-9是图示示范性屏幕显示的示意图,在其中与图6相关联地呈现的多个图像结果中的图像作为视觉查询细化被接收。在图示的显示700中,用户已经选择(例如右击)图6的显示600的左上方中所示的图像搜索结果,使得呈现可以被选择的动作项目710的菜单。在选择“添加到画布”菜单项目712后,所选择的图像搜索结果被复制到搜索画布810上,以作为对于视觉查询细化的输入,如图8所示。按照所接收的视觉查询细化而被细化的搜索结果然后被提供在搜索画布810上面的水平滚动中。在另一个实施例中,在选择图7中呈现的动作项目710的菜单中的“更像这个”菜单项目714后,按照所选择的视觉查询细化而被细化的图像搜索结果的显示900被呈现,如图9所示。如前面所阐明的,视觉查询输入可以作为初始的搜索查询而不是细化被提供。图10是按照本发明的实施例的、图示示范性屏幕显示1000的示意图,其中利用草图作为视觉查询输入。在图示的显示器1000中,按照这里描述的系统和方法并基于接收的草图确定的搜索结果被提供在搜索画布1010上面的水平滚动中。尽管未示出,但在实施例中,视觉查询可以经由渐增搜索建议接口被接收,通过所述接口可以基于所述视觉查询输入将搜索建议提供给用户。图7-10图示了按照这里的实施例的用户界面是交互式的,并且允许以多种方式来构建形成搜索查询输入的输入。尽管未示出,但该用户界面也支持针对图像搜索的基于拼贴画的输入。用户界面可以包括使用触摸使能的设备上的触摸输入工具(例如,手指、触笔等等)和/或鼠标指针来在搜索画布(810,1010)上徒手绘制的能力。用户界面还可以准许绘制参数形状,例如基于quad-bezier (贝塞尔)曲线的椭圆、矩形和使用直线的多边形。如图8所示,来自搜索结果的显示的图像可以通过拖放到搜索画布(810,1010)上而被作为输入使用。摇摄(pan)、缩放和旋转操作可以经由客户机脚本和变换操作(例如,经由CSS)而被提供。用户界面还可允许用户将图像和草图输入进行混合和匹配以形成针对来自索引的产品的专门匹配的拼贴画效果。例子可以是将衬衣图像的图片拖动到画布上,然后在图像北面(north)绘制任意的牛仔帽,以便搜索以具有与输入的那件衬衣类似的衬衣并且戴着牛仔帽的模特为特征的产品的照片。用户界面还可以准许按期望的那样擦除、撤销和恢复与画布的主要交互。任意的和所有的这样的变例以及它们的任意组合都被设想是在本发明的实施例的范围内。另外,标签和文本对于许多web图像的可用性也可以被借力以基于视觉输入改进搜索的准确性。在一些实施例中,当视觉查询本身不足以描述用户的查询意图时,文本查询可以结合视觉输入查询被使用来桥接(bridge)视觉查询和自然图像之间的语义间隙。例如,如果用户绘制一个圆来作为他/她的用来查找月亮的查询,则系统可能返回包含许多圆形物体的图像,但不一定是月亮。在这种情形中,与草图查询相结合地提交的文本查询可以帮助改进搜索结果的相关性。·
正如可以被理解的,本发明的实施例提供了用于web规模的视觉搜索的、能够使用视觉输入模态的组合的系统和方法。已经相对于特定的实施例描述了本发明,这些实施例在所有的方面被规定为说明性的而不是限制性的。替换实施例对于与本发明相关的领域的技术人员来说将变得明显,而不背离其范围。尽管本发明易受各种修改和可替换的构造的影响,但是它的某些举例说明的实施例被显示在附图中并已经在上文进行了详细的描述。然而,应当理解,并不打算将本发明限制在所公开的特定形式,而是相反,本发明将覆盖落入本发明的精神和范围之内的所有修改、可替换的构造以及等同物。本领域技术人员应当理解,图4的方法400和图5的方法500中显示的步骤的次序无论如何不意味着限制本发明的范围,事实上,所述步骤可以在它们的实施例中以各种各样的不同顺序出现。任意的和所有的这样的变例以及它们的任意组合都被设想是在本发明的实施例的范围内的。
权利要求
1.一种系统(200),包括 处理器(114),其与计算机可读存储媒体进行通信; 索引(230),其被维持在所述计算机可读存储媒体中,所述索引包括图像数据,其描述多个图像中的每个图像的一个或多个形状描述符,所述形状描述符包括基于边缘元的表示; 查询接收组件(222),其接收视觉输入作为搜索查询; 查询解析器(224),其将所述视觉输入转换成包括基于边缘元的表示的至少一个形状描述符;和 视觉输入匹配组件(228),其将所述多个图像的、包括基于边缘元的表示的一个或多个形状描述符与来自搜索查询的视觉输入的、包括基于边缘元的表示的至少一个形状描述符进行匹配,以便识别所述多个图像中的至少一个匹配的图像。
2.权利要求I的系统,其中所述视觉输入是图像、草图和拼贴画中的一个或多个。
3.权利要求I的系统,其中所述视觉输入匹配组件识别所述多个图像中的多个匹配的图像,以及其中所述视觉输入匹配组件还为所述多个匹配的图像中的每个匹配图像指派视觉分数。
4.权利要求3的系统,还包括排名引擎(236),其至少部分地基于分别指派给每个匹配图像的视觉分数来对所述多个匹配的图像进行排名。
5.权利要求I的系统,其中所述索引至少部分地通过将所述多个图像中的每个图像分段成各自的多个段以及在各个各自的多个段上执行多相轮廓检测而被构造。
6.权利要求5的系统,其中各个各自的多个段中的每个段基于颜色和梯度改变中的至少一个而被识别。
7.权利要求I的系统,其中由所述查询接收组件接收的搜索查询包括视觉输入和文本输入,以及其中所述查询解析器从视觉输入中提取文本输入。
8.一种或多种计算机可读存储媒体,其存储计算机可用的指令,当所述指令由一个或多个计算设备使用时,使得所述一个或多个计算设备执行方法,所述方法包括 接收(510)搜索查询; 提供(512)多个图像结果,所述多个图像结果中的每个具有一个或多个相关联的形状描述符,所述形状描述符包括它们的第一基于边缘元的表示; 接收(514)视觉查询细化; 将所述视觉查询细化转换(516)成包括第二基于边缘元的表示的至少一个形状描述符;和 将所述多个图像结果的、包括第一基于边缘元的表示的一个或多个形状描述符与所述视觉查询细化的、包括第二基于边缘元的表示的至少一个形状描述符进行比较(518),以便识别所述多个图像结果中的至少一个细化匹配的图像。
9.权利要求8的一种或多种计算机可读存储媒体,其中接收视觉查询细化包括接收图像、草图和拼贴画中的一个或多个以作为视觉查询细化。
10.权利要求8的一种或多种计算机可读存储媒体,其中提供多个图像结果包括经由渐增搜索建议接口提供多个图像结果,以及其中接收视觉查询细化包括经由渐增搜索建议接口接收视觉查询细化。
11.权利要求8的一种或多种计算机可读存储媒体,其中将视觉查询细化转换成包括第二基于边缘元的表示的至少一个形状描述符包括至少部分地将所述视觉查询细化分段成多个段,以及在所述多个段上执行多相轮廓检测。
12.权利要求11的一种或多种计算机可读存储媒体,其中所述多个段中的每个段基于颜色和梯度改变中的至少一个而被识别。
13.—种方法,包括 访问(410)多个图像; 将所述多个图像中的每个图像分段(412)成各自的多个段; 在各个各自的多个段上执行(414)多相轮廓检测,以便创建所述多个图像中的每个图像的一个或多个形状描述符,所述形状描述符包括第一基于边缘元的表示;和 由处理器生成(416)边缘元索引,所述边缘元索引包括图像数据,其描述所述多个图像中的每个图像的各自的一个或多个形状描述符,所述形状描述符包括第一基于边缘元的表/Jn ο
14.权利要求13的方法,其中每个基于边缘元的表示包括像素组,所述像素组描绘所述多个图像中的每个图像的一个或多个边界轮廓。
15.权利要求13的方法,还包括 接收搜索查询,所述搜索查询包括视觉查询输入; 将所述视觉查询输入转换成包括第二基于边缘元的表示的至少一个形状描述符;和将所述多个图像中的每个图像的、包括第一基于边缘元的表示的一个或多个形状描述符与所述视觉查询输入的、包括第二基于边缘元的表示的至少一个形状描述符进行比较,以便识别所述多个图像中的、与所述视觉查询输入匹配的至少一个图像。
全文摘要
提供了用于web规模的视觉搜索的、能够使用视觉输入模态的组合的系统、方法和计算机可读存储媒体。创建边缘元索引,其包括对应于多个图像中的每个图像的形状描述符,所述形状描述符包括基于边缘元的表示。每个基于边缘元的表示包括描绘图像的边缘或边界轮廓的像素,并且至少部分地通过将所述图像分段成多个图像段以及在每个段上执行多相轮廓检测而被创建。在接收到具有视觉查询输入的搜索查询后,视觉查询输入被转换成包括基于边缘元的表示的形状描述符,以及多个图像中的每个图像的、包括基于边缘元的表示的形状描述符被与所述视觉查询输入的、包括基于边缘元的表示的形状描述符进行比较,以便识别所述多个图像中的、与所述视觉查询输入匹配的至少一个图像。
文档编号G06F17/30GK102902807SQ20121039645
公开日2013年1月30日 申请日期2012年10月18日 优先权日2011年10月18日
发明者A.苏德, R.普拉萨德, A.M.A.H.卡希尔, P.K.米什拉, S.阿马, 曹堪澄 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1