自然语言图像搜索的制作方法

文档序号:12481441阅读:262来源:国知局
自然语言图像搜索的制作方法与工艺

用户利用他们的不同的设备(诸如相机电话、数码相机、视频摄像机等)收集大量图像。图像通常被存储或备份在个人计算机处、在云中或在其他位置处。

使用户有效地且高效地搜索他们的图像的收集是耗时的且复杂的。通常,用户仅仅能够滚动通过图像的缩略图。这使用户难以浏览或搜索针对特定任务期望的图像。

先前的方法已经涉及利用诸如日期和时间戳或关键字的元数据来对图像进行标记。标记是手动地或自动地完成的。在标记之后,用户能够使用标记作为对本地图像的查询。这种类型的方法当用户常常不能够记住或不知道或理解要用于检索的标记时有限制。

下面描述的实施例不限于解决已知图像搜索系统的缺点中的任何或全部的实施方式。



技术实现要素:

下文呈现了本公开内容的简化概要以便向读者提供基本理解。本发明内容不是本公开内容的广泛概述,并且其不标识关键/重要元件或勾勒本说明书的范围。其唯一目的是以简化的形式呈现本文公开的概念选择,作为对稍后呈现的更详细的描述的前序。

描述了自然语言图像搜索,例如,其中自然语言查询可以被用于从被自动地标记有图像标记的图像的存储中检索图像,图像标记为本体(其可以包括概念的层次结构)的概念。在各个示例中,自然语言查询被映射到多个图像标记中的一个或多个图像标记,并且所映射的查询被用于检索。在各个示例中,通过计算在查询与图像标记之间的一个或多个距离度量来映射查询,距离度量相对于本体和/或相对于根据自然语言语料库计算的字的语义空间而被计算。可以使用神经网络来计算字的语义空间。在示例中,图像标记可以与在图像中描绘的对象的包围盒(bounding box)相关联,并且用户可以通过选择包围盒和/或图像来导航图像的存储。

伴随的特征中的许多将更加容易认识到,因为其通过参考结合附图考虑的下面的具体实施方式变得更好理解。

附图说明

将从鉴于附图阅读的下面的具体实施方式中更好地理解本说明书,其中:

图1是用于使用自然语言来搜索图像的集合的系统的示意图;

图2是用于使用自然语言来搜索图像的集合的示例用户界面的示意图;

图3是用于使用自然语言来搜索图像的集合的另一示例用户界面的示意图;

图4是图1的图像标记服务器的框图;

图5是图1的自然语言查询映射器的框图;

图6是将自然语言查询项映射到一个或多个标记的方法的流程图;

图7是使用自然语言来搜索图像的集合的方法的流程图;

图8是导航图像的集合的方法的流程图;以及

图9图示了本文中描述的系统和方法的实施例可以被实施在其中的示例性基于计算的设备。

相同的附图标记被用于在附图中指代相同的部分。

具体实施方式

下面结合附图提供的具体实施方式旨在作为当前示例的描述并且不旨在表示当前示例可以被构建或利用的唯一形式。本说明书阐述示例的功能和用于构建和操作示例的步骤的序列。然而,相同的或等效的功能和序列可以由不同的示例实现。

本文中描述的示例使用诸如数码照片的图像。图像还可以为视频。

本文中描述了用于使用自然语言查询来搜索图像的集合的系统和方法。利用描述图像的内容的一个或多个图像标记来自动标记图像。搜索可以通过使用本体和语义嵌入的组合来将自然语言查询映射到一个或多个图像标记来执行。例如,在一些情况下,通过计算在查询与图像标记之间的一个或多个距离度量来映射自然语言查询,距离度量相对于本体和/或相对于根据自然语言语料库计算的字的语义空间而被计算。所计算的距离度量之后被组合以标识表示自然语言查询的一个或多个标记。所标识的图像标记之后被用于标识与搜索准则相匹配的图像(例如,被标记有所标识的图像标记的图像)。

存储与描述图像的内容和/或特征的一个或多个图像标记相关联的图像的集合允许图像被容易地且高效地检索到,而不必在检索时分析每个图像或手动编辑或提供针对每个图像的元数据。使用所描述的方法和系统从图像的集合中检索图像允许用户快速地且容易地使用自然语言来检索相关的图像。这消除了用户手动滚动通过图像的列表以定位具有特定内容的图像(这不仅是耗时的而且易于出错)的需要。

另外,将自然语言查询项自动地映射到一个或多个图像标记使搜索对于用户而言简单且直观,因为用户不必知道特定图像标记是什么,他们可以简单地使用对他们而言熟悉且直观的语言。比起独立地使用本体或语义嵌入,使用本体和语义嵌入两者来将自然语言查询项短语映射到一个或多个标记出人意料地产生更准确的映射。

本文中描述的各个示例通过完全图像相似度或在区域级上的相似度来实现自然语言图像搜索(即不限于所训练的概念/标记)和在图像之间的导航。

尽管当前示例在本文中被描述和图示为被实施在分布式图像检索系统中,但是所描述的系统被提供为示例而非限制。如本领域技术人员将认识到的,当前示例适合于应用在各种不同类型的图像检索系统中。

首先参考图1,图1图示了用于使用自然语言查询来搜索图像的集合的示例系统。

系统包括图像标记服务器102,图像标记服务器102被配置为自动分析未标记的图像114的集合并被配置为生成针对未标记的图像114中的每个图像的带标记的图像112。未标记的图像114可以是图像的任何收集或集合。例如,未标记的图像可以为:特定设备(例如智能电话)上的图像中的全部、特定设备上的与特定用户相关联的图像中的全部、或多个设备(例如智能电话和笔记本电脑)上的与特定用户相关联的图像中的全部。图像可以全部被定位在一个地方或者跨例如通信网络100而分布。

每个未标记的图像被分配以一个或多个标记以描述图像的特征和/或内容。特征可以例如为图像内的对象、场景和/或地标。每个标记是本体108的概念。本体108是表示概念的节点的图,节点是根据在概念之间的关系由边链接的。在一些示例中,本体可以具有含有多个子种类的层次结构。

具体地,图像标记服务器102被配置为分析每个未标记的图像114以标识图像内的特征,并且将一个或多个图像标记分配给每个所标识的特征以产生带标记的图像。下面将参考图4描述示例图像标记服务器102。

系统还包括图像搜索和导航模块104,图像搜索和导航模块104允许用户执行对带标记的图像112的自然语言搜索。具体地,图像搜索和导航模块104被配置为经由终端用户设备116从用户接收自然语言查询项和/或短语,并且将自然语言查询项提供到自然语言查询映射器106。终端用户设备116可以例如为智能电话、个人计算机、平板计算机或笔记本电脑。

自然语言查询映射器106将每个自然语言查询项或短语映射到标记中的一个或多个标记。在各个示例中,自然查询映射器106可以被配置为确定自然语言查询项或短语是否与标记列表中的标记之一相匹配。如果项或短语与列表中的标记之一相匹配,则自然查询映射器106可以将查询项或短语作为映射过程的输出提供回到图像搜索和导航模块104。

然而,如果自然语言查询项或短语不与列表中的标记之一相匹配,则自然语言查询映射器106可以被配置为选择与自然语言查询项或短语最相似的一个或多个标记。在一些情况下,自然语言查询映射器106被配置为使用本体和语义分析的组合来选择与查询项或短语最相似的一个或多个标记。例如,自然语言查询映射器106可以计算在查询项或短语与标记之间的一个或多个距离,其中每个距离表示在查询项与标记之间的相似度。在一些示例中,自然语言查询映射器106被配置为计算:本体中的在查询项或短语与标记之间的距离;以及语义空间中的在查询项或短语与标记之间的一个或多个距离。所计算的距离之后被用于选择与查询项或短语最接近或最相似的标记。

例如,图像搜索和导航模块104可以被配置为与终端用户设备116的显示模块上的图形用户界面118进行交互。图形用户界面118允许用户(例如,在查询项输入盒120中)输入一个或多个查询项和/或短语,并且(例如,通过点击或以其它方式选择搜索按钮122)启动使用所输入的查询项和/或短语对带标记的图像114的搜索。在(例如,通过点击或以其它方式选择搜索按钮122)启动搜索后,将(例如,如在查询项输入盒120中输入的)自然语言查询项和/或短语提供到图像搜索和导航模块104。图像搜索和导航模块104之后将自然语言查询项和/或短语提供到自然语言查询映射器106。

如果用户提供不与标记中的一个标记相匹配的自然语言查询项或短语(例如“车辆”),则自然语言查询映射器106可以将自然语言查询项(例如“车辆”)映射到标记中的一个或多个标记(例如“汽车”)并将所映射的标记(例如“汽车”)提供到图像搜索和导航模块104。

参考图5描述示例自然查询映射器106,并且参考图6描述用于将自然语言查询项或短语映射到一个或多个标记的示例方法,该方法可以由自然语言查询映射器106执行。

在从自然语言查询映射器106接收到一个或多个标记后,图像搜索和导航模块104使用接收到的标记以从带标记的图像122中选择与搜索查询项和/或短语相匹配的图像。在一些情况下,图像搜索和导航模块104被配置为选择已经被标记有接收到的标记或与接收到的标记相关联的图像。图像搜索和导航模块104之后提供所选择的图像(例如与搜索查询项和/或短语相匹配的图像)。

例如,在用户已经提供了查询项“车辆”并且自然语言查询映射器106已经将该查询项映射到标记“汽车”的情况下,图像搜索和导航模块104可以针对已经被分配以标记“汽车”的图像来搜索带标记的图像112。图像搜索和导航模块104可以之后经由例如终端用户设备116显示的图形用户界面124将搜索130的结果(例如与查询项和/或短语相匹配的图像)显示给用户。在一些情况下,图像搜索和导航模块104可以被配置为在将搜索结果显示给用户之前对它们进行排序。

现在参考图2,图2显示了用于允许用户使用自然语言查询来搜索图像的集合的示例图形用户界面124。

如参考图1所描述的,图形用户界面124可以包括查询项输入盒126,其被配置为从用户接收自然语言查询项和/或短语。查询项和/或短语可以包括一个或多个关键字或关键短语(例如“汽车”和“人”)以及一个、多个或没有关系项。关系项是指定关键字之间的关系的诸如“和”、“非”、“或”的项。还可以使用空间关系项,例如“旁边”、“右”、“左”、“附近”。在一些情况下,例如并且在没有关系项被指定的情况下,图形用户界面可以采用默认关系项。

图形用户界面124还包括搜索按钮128,当(例如通过点击按钮128或以其它方式选择按钮128)被激活时,搜索按钮128启动使用查询项输入盒126中的自然语言查询项和/或短语对带标记的图像114的搜索。

如以上所描述的,当搜索被启动并且查询项输入盒126中的自然语言查询项和/或短语被发送到图像搜索和导航模块104时,它们之后由自然语言查询映射器106被转换或被映射到一个或多个标记,所映射的标记之后被用于标识并检索与自然语言查询项和/或短语相匹配的图像。所标识的图像(或其部分或其变本)之后(例如经由终端用户设备116)被提供给用户。

在图2中示出的示例中,用户已经使用自然语言查询项“汽车”搜索了图像的集合。与查询相匹配的图像130(或其缩略图或变本)(例如与标记“汽车”相关联的图像)经由图形用户界面124向用户显示。

在一些情况下,用户可以能够通过点击或以其他方式选择图像来找出关于特别显示的图像的更多信息。例如如图2所示,如果用户点击或以其他方式选择第一显示的图像130,则图像可以连同关于图像130的信息或与图像130相关的信息(例如标记、相关的图像等)一起被显示在窗口200中。窗口200可以为主图形用户界面124的一部分或者其可以与主图形用户界面分离。

在一些示例中,窗口200可以显示已经与图像130相关联的标记202的列表。例如在图2中,窗口200示出了所选择的图像130与(或已经被标记有)标记202“人”、“汽车”和“街道”相关联。在一些情况下,标记可以被分类,并且当它们(例如在窗口200中)被显示给用户时,它们与它们的类别相关联地被显示。例如,与在图像中标识的对象相关的标记可以被标识为“对象”标记;与在图像中标识的特定场景相关的标记可以被标识为“场景”标记;并且与在图像中标识的特定地标相关的标记可以被标识为“地标”标记。与图像中的特定区域(或包围盒)相关的标记可以被标识为“区域”标记。在一些情况下,用户可以通过点击或以其他方式选择标记中的一个标记来自动更新查询项。例如,如果用户点击或以其他方式选择了标记“人”,则项“人”可以被添加到查询项输入盒。

在一些示例中,窗口200还可以或备选地显示与所选择的图像130相似的一个或多个图像204和206。两个图像的相似度可以例如基于它们共享(即,共同具有)的图像标记的数量来确定。例如,在一些情况下,两个图像共同具有的图像标记越多,它们越相似。两个图像的相似度还可以基于被分配给图像标记的置信度值。例如,除了利用一个或多个图像标记来标记未标记的图像114之外,图像标记服务器102可以被配置为将置信度值分配给被分配给图像的每个标记。置信度值指示图像标记关于图像的准确度(例如其指示图像包括由图像标记指示的特征(例如对象、场景等)的可能性)。用户可以通过点击或以其他方式选择相似的图像来更多地了解特定相似图像。在另一示例中,两个图像的相似度可以基于从图像提取的视觉特征来确定。可以使用深度神经网络或以其他方式来提取特征。

在一些示例中,用户可以能够通过例如在窗口200中的所选择的图像130的显示上移动光标来查看在所选择的图像130中标识到什么对象。当光标位于所标识的对象上时,所标识的对象可以因此被指示或被突出显示。例如,如图2所示,矩形盒208(还被称为包围盒)可以被示出在所标识的对象周围。在对象周围的包围盒可以仅仅在图像上弹出,而无需实际上被绘制。盒208当被点击时可以被用于通过搜索具有相关的区域标记的图像来在图像之间进行导航。例如,如果包围盒208包含人,则该区域标记可以是“人”。当接收到选择包围盒208的用户输入时,该区域标记可以被用作查询以检索图像。

用户可以通过点击或以其他方式选择在所选择的图像130中的对象来将项自动地添加到查询。例如,如果用户在所选择的图像130中示出的人中的一个人上移动光标,则矩形盒将被显示在该人上。如果用户之后点击矩形盒中的任何地方,则项“人”可以被添加到查询项输入盒,使得其包括两个查询项——“汽车”和“人”。当查询随后被启动时,查询可以被执行以定位与任一或两个查询项相匹配的图像,这取决于系统的配置。例如,在查询被自动更新或修改以包括项“汽车”和“人”的情况下,图形用户界面210可以被更新以显示与两个查询项(例如“汽车”和“人”)都相匹配的图像212。

允许用户以这种方式自动地更新查询项向用户提供编辑查询和导航通过图像的集合的快速且高效的方式。

图像搜索的结果可以被呈现为以网格或其他样式布置的多个缩略图图像。在一些示例中,(从搜索返回的)排序最高的图像被呈现在图形用户界面结果区的中心,并且排序较低的图像利用将中心图像连接到排序较低的图像中的每个图像的弧而被呈现在中心图像周围。弧可以具有表示在中心图像与排序较低的图像之间的相似度的强度的宽度、颜色或其他特征。

现在参考图3,图3图示了用于允许用户使用自然语言来搜索图像的集合的另一示例图形用户界面300。在该示例中,图形用户界面300,与图1和图2的图形用户界面124相似,包括查询项输入盒302和搜索按钮304,其可以以与图1和图2的查询项输入盒126和搜索按钮128相同的方式来操作。

图3的图形用户界面300还包括接近选择工具306。接近选择工具306允许用户搜索在图像内具有彼此接近的指定查询项的图像。这样的搜索在本文中被称为接近搜索或查询。例如,如图3所示,如果查询项包括“人”和“自行车”,则(例如通过点击或以其他方式选择搜索按钮304)使用这些项启动的搜索或查询将标识包括接近(或紧密接近)自行车的人的图像。

在一些情况下,图像标记服务器102可以被配置为记录与带标记的图像相关联的在图像中标识的任何对象的位置。该信息可以随后被用于当启动接近搜索时动态地确定在图像中的对象之间的距离。例如,当图像搜索和导航模块104(经由例如终端用户设备116)从用户接收接近搜索时,图像搜索和导航模块104可以被配置为定位或标识带标记的图像的集合中与查询项相匹配的图像;使用定位信息来确定在所标识的图像中的指定对象之间的距离;以及消除任何其中所计算的距离超过预定阈值的所标识的图像。

备选地,图像标记服务器102可以被配置为自动地确定在图像中的任何对象之间的距离,并且将该距离信息与带标记的图像相关联地存储。这可以允许与接近查询相匹配的图像的更快的检索,因为图像和导航模块104不必在它可以返回匹配图像的列表之前首先计算距离,然而,其要求更多的空间来存储附加的距离信息。

现在参考图4,图4图示了示例图像标记服务器102。如以上所描述的,图像标记服务器102接收未标记的图像402并生成带标记的图像404。带标记的图像404是具有与其相关联的一个或多个标记的图像,其中标记描述图像的特征。在一些情况下,图像标记服务器102仅仅可以接收未标记的图像。在其他情况下,图像标记服务器102还可以接收与图像相关联的元数据。当图像标记服务器102接收除了未标记的图像之外的元数据时,图像标记服务器102可以使用元数据来辅助对图像进行标记。例如,全球定位系统(GPS)可以被用于从地标的数据库中检索附近的地标。附近的地标名可以被用作标记。在另一示例中,在摄影时对闪光的使用可以提升“夜晚”标记的机会,或者可以被用于在白天的户外对比在夜晚的户外的竞争模型之间进行选择。

图像标记服务器102包括一个或多个识别模块。例如,地标识别模块使用GPS数据和地标的数据库。识别模块中的一些被预先训练以标识图像内的某些特征并且将一个或多个标记与每个所标识的特征相关联。例如,图4的图像标记服务器102包括对象识别模块406、场景识别模块408、地标识别模块410、活动识别模块412、图像中文本识别模块414、面部识别模块416、性别识别模块418、年龄识别模块420、表情识别模块422。活动识别模块412可以使用规则或经训练的机器学习系统来检测在图像中描绘的活动。图像中文本识别模块可以包括OCR组件。年龄和性别识别模块在已经从图像中描绘的任何人获得了适当同意的情况下操作。这些使用机器学习和/或规则来将在图像中描绘的人分类到性别和年龄类别中。表情识别模块可以包括可以为机器学习组件的手势识别和面部表情识别组件。

在其他示例中,图像标记服务器402可以包括这些识别模块中的仅仅一个、这些识别模块的另一组合、或其他适当的识别模块。

对象识别模块406被配置为标识图像中的对象,对所标识的对象进行分类,并且基于该分类来向对象分配一个或多个标记。对象识别模块404可以被配置为使用鉴别技术来将图像的元素分类到固定数量的对象类别中的一个类别中。例如经训练的随机决策森林可以被用于使用像素差异特征来对图像的像素进行分类。在一些情况下,随机决策森林的树的每个节点与外观或形状相关联。之后基于分类将一个或多个标记分配给图像或分配给图像的诸如包围盒、像素或像素组的元素。

场景识别模块408被配置为对图像的场景进行分类并且基于该分类来分配一个或多个标记。场景分类器可以根据带标签的数据(具有已知场景的图像)来训练以便构建针对给定场景的机器学习模型,包括从图像中提取视觉特征以及之后对分类器(例如随机森林或神经网络)进行训练。可以使用被布置为执行特征提取和对原像素值的分类两者的深度神经网络来完成特征提取。

地标识别模块410被配置为标识图像中的已知地标(例如比萨斜塔)并且基于该标识来分配一个或多个标记。在一些情况下,地标识别模块410可以结合对象识别模块406一起工作。例如,地标识别模块410可以从对象识别模块408接收关于在图像中标识的对象的信息。地标识别模块410可以之后使用元数据中的对象的形状和位置信息来将对象标识为地标。位置信息可以由生成图像的设备(例如相机)自动生成,或可以被手动输入到元数据中。一旦地标识别模块410已经将对象标识为地标,则一个或多个标记被分配给图像或与图像相关联。在另一示例中,与图像相关联的GPS元数据被用于查找地标的数据库中的潜在的地标。如果存在多于一个靠近的地标,则图像的视觉内容可以被用于使用存储在数据库中的地标的标准图像来选择潜在的地标中的一个。

现在参考图5,图5图示了示例自然语言查询映射器106。如以上所描述的,自然语言查询映射器106从图像搜索和导航模块104接收自然语言查询项和/或短语500,并且将每个自然语言查询项和短语映射到多个图像标记503中的一个或多个图像标记502(在本文中被称为所映射的标记)。具体地,自然语言查询映射器106使用语义分析和本体的组合(其中每个标记是本体中的概念)来将每个自然语言查询项和/或短语500映射到一个或多个图像标记502。所映射的图像标记502之后被提供到图像搜索和导航模块104以标识已经被标记有所映射的图像标记502的图像。

图5的自然语言查询映射器106包括语义距离模块504,其被配置为计算语义空间中的在自然语言查询项或短语与可能的图像标记中的每个之间的至少一个距离。每个距离指示在自然语言查询项或短语与对应的图像标记之间的语义相似度。两个字或短语的语义相似度基于它们是否具有相似的含义(例如它们被用于在相同的上下文下意指相似的事物)。

在一些情况下,语义距离由语义距离模块504根据作为字的语义空间的字和/或短语的语义嵌入506来计算,其中每个字或短语被映射到表示在字和/或短语之间的语义相似度的低维或高维嵌入向量。

在一些情况下,语义嵌入506通过将语义编码508应用到自然语言语料库510来生成。自然语言语料库510是文本的大集合。语义编码508是被训练以捕获在字之间的语义信息的机器学习组件。

在一些情况下,语义编码是诸如递归神经网络(RNN)的神经网络,其被训练以预测字(给定围绕字(或上下文))。因此,在相似的上下文中出现的字以相似的嵌入向量结束。将诸如神经网络应用到自然语言语料库510基于在自然语言语料库中遇到的句子中的字的使用的相似度来得到每个字的高维嵌入。例如,字“温暖”和“热”可以出现在与以下相似的句子中:

汤仍然是热的...

汤仍然是温暖的...

热天气...

温暖的天气...

这将导致字“热”和“温暖”具有相似的或相同的嵌入向量。

语义距离模块504可以被配置为计算字的语义空间(即,语义嵌入506)中的一个或多个距离。具体地,语义距离模块504可以包括一个或多个距离模块,其中每个距离模块以不同的方式计算距离。例如,图5的语义距离模块504包括:余弦相似度模块512,其计算在自然语言查询项和/或短语与各标记之间的余弦相似度;点积模块514,其计算自然语言查询项和/或短语与各标记的点积;骰子(dice)相似度模块516,其计算自然语言查询项和/或短语与各标记的骰子相似度;汉明距离模块518,其计算在自然语言查询项和/或短语与各标记之间的汉明距离;以及城市街区距离模块520,其计算在自然语言查询项和/或短语与各标记之间的城市街区距离。然而,在其他示例中,语义距离模块504可以包括这些距离模块中的仅一个、这些距离模块的不同的组合、或不同类型的距离模块。

每个距离模块512-520以不同的方式计算距离,由此每个以不同的方式确定在字和/或短语之间的相似度。为了获得最好结果,由各个距离模块512-520计算的距离被组合以寻找结果中的一致。具体地,距离可以被提供到阈值模块522,其可以丢弃高于预定阈值(指示自然语言查询项和标记不是非常相似)的任何距离。阈值可以对于不同类型的距离是不同的。掉落至低于对应的预定阈值的任何距离被提供到选择模块524,其中超过阈值的距离提供针对对应的标记的投票。投票之后被组合以选择具有最高数量的投票的一个或多个标记。在一些情况下,基于相似度的强度(例如距离值)来对投票进行加权。以这种方式将距离进行组合增大映射的准确度,因为每个距离使用不同的准则。一般地,使用的不同的距离计算越多,映射越准确。然而,交换的是增加的处理时间和资源。

尽管计算和组合不同的语义距离值可以产生相当准确的映射结果,但是偶尔地,字和其反义词(或不相关的字)通常被使用在相同的上下文中。例如,反义词和不相关的字“快”、“慢”和“勉强”可以在相似的上下文中被使用,诸如“移动慢的列车”和“移动快的列车”;以及“勉强移动的列车”。因此,附加的信息(即除了语义分析信息之外的信息)可以有用于在这些情形中进行鉴别并且因此增大映射的准确度。

在一些示例中,从本体获得附加的信息。具体地,图5的示例自然语言查询映射器106包括本体距离模块526,其被配置为计算本体中的在自然语言查询项或短语500与图像标记中的每个图像标记之间的距离。如以上所描述的,本体108是表示概念(每个标记是本体中的概念)的节点的图,其中节点是根据在概念之间的关系由边链接的。每个本体距离通过在本体中的节点之间进行遍历来计算。

本体可以是商用本体,诸如或已经被专门开发的本体。是被分组成认知同义词的集合(同义词集)的英语字的大型词汇数据库,每个认知同义词的集合表示不同的概念。同义词集借助于概念语义和词汇关系来相互链接。

由本体距离模块526生成的本体距离还被提供到阈值模块522,其中大于特定阈值的任何距离被丢弃或被忽视,并且掉落至低于预定阈值的任何距离被提供到选择模块524,其中它们提供针对对应的标记的投票。

现在参考图6,图6图示了用于使用本体和语义分析的组合来将自然语言查询项或短语映射到一个或多个图像标记的方法,该方法可以由自然语言查询映射器106执行。在框600处,自然语言查询映射器接收自然语言查询项或短语。如以上所描述的,在图像搜索和导航模块104经由终端用户设备116从用户接收(指定一个或多个查询项和/或短语的)搜索请求之后,可以从图像搜索和导航模块104接收自然语言查询项或短语。

在接收到自然语言查询项和/或短语后,自然语言查询映射器106确定602该项和/或短语是否在参考集合中(例如为图像标记中的一个)。如果自然查询项和/或短语在参考集合中,则自然语言查询映射器106将图像标记提供到图像搜索和导航模块104,其之后使用该图像标记来标识和检索与自然语言查询相匹配的图像604。

如果自然查询项和/或短语未在参考集合(例如其不与图像标记相匹配)中,则该方法前进到框606和608,其中计算在自然语言查询项或短语与各图像标记之间的本体距离和一个或多个语义空间距离。如以上参考图5所描述的,计算本体距离可以包括计算本体(例如)中的在自然语言查询项或短语与各图像标记之间的距离,其中每个图像标记是本体中的概念。

如以上参考图5所描述的,计算一个或多个语义距离可以包括计算字的语义空间中的在自然语言查询项或短语与各图像标记之间的距离。字的语义空间可以已经通过将诸如神经网络的经训练的机器学习组件应用到自然语言文本的语料库来生成。语义距离可以包括余弦相似度、点积、骰子相似度、汉明距离和城市街区距离中的一个或多个。

一旦生成或计算了本体和语义距离,该方法前进到框610,其中一个或多个阈值被应用到本体和语义距离,以消除或丢弃高于预定阈值的距离。可以存在对每种类型的距离的特定预定阈值(例如针对本体距离的一个特定预定阈值以及针对每种类型的语义距离的一个特定预定阈值),或者可以存在被应用到所有距离的预定阈值。应用阈值的目的是要消除指示在查询项或短语之间的这样的远程相似度的距离(它们在选择合适的图像标记时不需要考虑)。通过在该阶段处消除这些距离,选择最好的图像标记候选所需要的处理功率可以被降低。

一旦阈值已经被应用到所计算的距离,该方法前进到612,其中剩余的距离被用于选择与自然语言查询项或短语最接近的一个或多个图像标记。在一些情况下,每个剩余的距离被认为是针对对应的图像标记的投票。针对每个图像标记的投票之后被累加以获得针对每个图像标记的投票计数或值。具有最多投票的图像标记可以在最好的图像标记候选614处被选择并被转发到图像搜索和导航模块104。

在一些情况下,在将投票累加之前,每个投票被加权。权重可以基于相关联的距离值的幅值。例如,在一些情况下,较小的距离值将被给予较高的权重。

现在参考图7,图7图示了用于使用自然语言查询项和/或短语来搜索图像的集合的方法,该方法可以由搜索和导航模块104执行。在框700处,搜索和导航模块104经由终端用户设备116从用户接收(包括自然语言查询项和/或短语以及可选的接近指示器的)搜索查询。在接收到自然语言查询项和/或短语后,搜索和导航模块104将自然语言查询项和/或短语提供到自然语言查询映射器106,以将自然语言查询项和/或短语映射到一个或多个图像标记702。自然语言查询映射器106可以使用例如图6的方法将自然语言查询项和/或短语映射到一个或多个图像标记。自然语言查询映射器106之后将所映射的图像标记提供到图像搜索和导航模块104。

在一些示例中,在接收到所映射的图像标记后,方法前进到框204,其中图像搜索和导航模块104将图像标记输出到显示在终端用户设备116上的图形用户界面。然而,将图像标记输出到GUI不是必要的。方法之后前进到框206。

在框206处,图像搜索和导航模块104使用所映射的图像标记来从与自然语言查询项和/或短语相匹配的带标记的图像数据库中标识和检索一个或多个图像。例如,图像搜索和导航模块104可以检索已经被标记有所映射的图像标记的图像。在搜索请求包括接近指示器的情况下,可以仅仅检索如下图像,该图像已经被标记有所映射的图像标记并且具有由所映射的图像标记所标识的紧密接近的对象。一旦已经从带标记的图像数据库中检索到匹配图像,方法可以前进到框208或方法可以直接前进到框210。

在框208处,图像搜索和导航模块104基于检索到的图像与搜索准则匹配得多么好来对检索到的图像进行排序。例如,如以上所描述的,在一些情况下,图像标记服务器102可以被配置为将置信度值分配给被分配给图像的每个图像标记。置信度值指示标记的准确度(例如图像包含由标记标识的项的可能性)。在这些情况下,图像搜索和导航模块104可以被配置为对检索到的图像进行排序。例如,针对所映射的图像标记(其与所映射的查询项相交)的置信度值越高,图像被排序得越高。在其他情况下,其他准则可以被用于对检索到的图像进行排序。例如,机器学习排序器可以被训练以基于已经由人类注解者手动判断的查询图像对来排列搜索结果的顺序。

在框210处,图像搜索和导航模块104可以将经排序的或未排序的检索到的图像输出到终端用户设备116的图形用户界面。

现在参考图8,图8图示了用于导航通过图像的集合的方法,该方法可以由图像搜索和导航模块104执行。在框800处,图像搜索和导航模块104从终端用户设备116接收用户已经选择了所显示的图像中的一个或所显示的图像内的(由例如包围盒指示的)对象的指示。

图像搜索和导航模块104检索与所选择的图像或所选择的对象相关联的标记802,并且在图形用户界面中显示针对所选择的图像或对象的图像标记804。在用户已经选择了图像的情况下,针对图像的图像标记可以被显示为如图2所示的图形用户界面中的列表。然而,在用户已经选择了图像内的对象的情况下,与对象相关联的图像标记可以被显示在例如包围盒的顶部上,或者在如图2所示的查询项输入盒内。

图像搜索和导航模块104还使用针对所选择的图像或所选择的对象的图像标记来检索图像。在用户已经选择了图像的情况下,检索到的图像可以是与所选择的图像相似的图像。相似度可以基于共享共同的图像标记。共享的图像标记越多,两个图像越相似。因此,在用户已经选择了图像的情况下,图像搜索和导航模块104可以被配置为从已经被标记有与所选择的图像相同的图像标记的带标记的图像数据库中检索图像。然而,在用户已经选择了图像的情况下,检索到的图像可以是包括查询项输入盒(其现在包括与所选择的对象相关联的图像标记)中的查询项的图像。一旦已经从带标记的图像数据库中检索到图像,则该方法可以前进到框808或其可以直接前进到框810。

在框808处,基于用于检索的图像标记的准确度如何,来对检索到的图像进行排序。例如,如以上所描述的,在一些情况下,图像标记服务器102可以被配置为将置信度值分配给被分配给图像的每个图像标记。置信度值指示标记的准确度(例如图像包含由标记标识的项的可能性)。在这些情况下,图像搜索和导航模块104可以被配置为使用置信度值来对检索到的图像进行排序。例如,针对所映射的图像标记的置信度值越高,图像被排序得越高。在其它情况下,其他准则可以被用于对检索到的图像进行排序。一旦检索到的图像已经被排序,则该方法前进到框810。

在框810处,图像搜索和导航模块104将检索到的图像的经排序的或未排序的列表输出到被显示在终端用户设备116上的图形用户界面。在用户选择了图像的情况下,检索到的图像(与所选择的图像相似的图像)可以被显示在如图2所示的GUI的二级窗口中。然而,在用户选择了对象的情况下,检索到的图像(与查询项相匹配的图像)可以被显示在如图2所示的GUI的主结果窗口中。

在框812处,图像搜索和导航模块可以从终端用户设备116接收用户已经指示了想要与另一方共享所显示的图像的指示。当图像搜索和导航模块104接收到这样的指示时,图像搜索和导航模块104可以前进到框814,其中通过例如对用户和/或终端用户设备116可访问的社交网络工具,使检索到的图像对指定方可用。

图9图示了示例性基于计算的设备900的各种组件,示例性基于计算的设备900可以被实施为计算设备和/或电子设备的任何形式,并且本文中描述的系统和方法的实施例可以被实施在示例性基于计算的设备900中。

基于计算的设备900包括一个或多个处理器902,其可以是微处理器、控制器或任何其他适当类型的处理器,用于处理计算机可执行指令以控制设备的操作以便使用自然语言来搜索图像的集合。在一些示例中,例如在使用了片上系统架构的情况下,处理器902可以包括一个或多个固定功能块(还被称为加速器),其在硬件(而非软件或固件)中实施使用自然语言来搜索图像的集合的方法的一部分。包括操作系统904的平台软件或任何其他适当的平台软件可以被提供在基于计算的设备900处,以实现要在设备上执行的诸如查询映射器906和图像搜索和导航模块912的应用软件。

计算机可执行指令可以使用可由基于计算的设备900访问的任何计算机可读介质来提供。例如,计算机可读介质可以包括诸如存储器910的计算机存储介质和通信介质。诸如存储器910的计算机存储介质包括以任何方法或技术实现的、用于存储诸如计算机可读指令、数据结构、程序模块或其他数据的信息的易失性介质和非易失性介质、可移动介质和不可移动介质。计算机存储介质包括但不限于RAM、ROM、EPROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多用盘(DVD)或其他光学存储装置、磁带盒、磁带、磁盘存储装置或其他磁存储设备、或者可以被用于存储用于由计算设备访问的信息的任何其他非传输介质。对比之下,通信介质可以将计算机可读指令、数据结构、程序模块、或其他数据实现在诸如载波的经调制的数据信号或其他传输机制中。如本文中所限定的,计算机存储介质不包括通信介质。因此,计算机存储介质不应当被理解为传播信号本身。传播信号可以存在于计算机存储介质中,但是传播信号本身不是计算机存储介质的示例。尽管计算机存储介质(存储器910)被示出在基于计算的设备900内,但是将认识到存储可以被分布或被定位在远程并且经由网络或其他通信链路(例如使用通信接口916)被访问。

基于计算的设备900还包括输入/输出控制器914,其被布置为将显示信息输出到显示设备920,显示设备920可以与基于计算的设备900分离或集成。显示信息可以提供图形用户界面。输入/输出控制器914还被布置为从诸如用户输入设备922的一个或多个设备(例如鼠标、键盘、相机、麦克风或其他传感器)接收输入并对输入进行处理。在一些示例中,用户输入设备922可以检测语音输入、用户手势或其他用户动作,并且可以提供自然用户界面(NUI)。该用户输入可以被用于控制基于计算的设备900的操作。在一个实施例中,显示设备920还可以在其是触敏显示设备时用作用户输入设备922。输入/输出控制器914还可以将数据输出到除了显示设备之外的设备,例如本地连接的打印设备(未示出在图9中)。

输入/输出控制器914、显示设备920和用户输入设备922中的任何可以包括NUI技术,其使得用户能够以自然的方式与基于计算的设备进行交互,而不受由诸如鼠标、键盘、远程控制等的输入设备所施加的人工约束的影响。可以被提供的NUI技术的示例包括但不限于依赖于声音和/或语音识别、触摸和/或触笔识别(触敏显示器)、在屏幕上和邻近屏幕两者的手势识别、空中手势、头和眼跟踪、声音和语音、视觉、触摸、手势和机器智能的那些。可以被使用的NUI技术的其他示例包括意图和目标理解系统、使用深度相机(诸如立体相机系统、红外相机系统、rgb相机系统和这些的组合)的运动手势检测系统、使用加速度计/陀螺仪的运动手势检测、面部识别、3D显示器、头、眼和凝视跟踪、身临其境的增强现实和虚拟现实系统、以及用于使用电场感测电极来感测大脑活动的技术(EEG和相关的方法)。

备选地或另外,本文描述的功能可以至少部分地由一个或多个硬件逻辑组件来执行。例如且非限制地,可以被使用的说明性类型的硬件逻辑组件包括现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)系统、复杂可编程逻辑器件(CPLD)。

术语“计算机”或“基于计算的设备”在本文中用于指代具有处理能力的任何设备,使得其可以执行指令。本领域技术人员将意识到,这样的处理能力被并入到许多不同的设备中并且因此术语“计算机”和“基于计算的设备”均包括PC、服务器、移动电话(包括智能电话)、平板计算机、机顶盒、媒体播放器、游戏控制台、个人数字助理以及许多其他设备。

本文中描述的方法可以通过有形存储介质上的机器可读形式的软件来执行,软件例如为计算机程序的形式,计算机程序包括当程序在计算机上运行时并且在计算机程序可以被体现在计算机可读介质上的情况下适于执行本文中描述的方法中的任何方法的全部步骤的计算机程序代码手段。有形存储介质的示例包括计算机存储设备,其包括诸如磁盘、拇指驱动器、存储器等的计算机可读介质并且不包括传播信号。传播信号可以存在于有形存储介质中,但是传播信号本身不是有形存储介质的示例。软件可以适合于执行在并行处理器或串行处理器上,使得方法的步骤可以以任何适当的顺序或同时地来执行。

这确认软件可以是有价值的、可单独交易的商品。旨在包含运行在“哑”硬件或标准硬件上或控制“哑”硬件或标准硬件以执行期望的功能的软件。还旨在包括“描述”或限定硬件的配置的软件,例如如被用于设计硅芯片或用于将通用可编程芯片配置为执行期望的功能的HDL(硬件描述语言)软件。

本领域技术人员将意识到被用于存储程序指令的存储设备可以跨网络而被分布。例如,远程计算机可以存储被描述为软件的过程的示例。本地计算机或终端计算机可以访问远程计算机并下载软件的一部分或全部以运行程序。备选地,本地计算机可以在需要时下载软件的片段,或者在本地终端处执行一些软件指令并且在远程计算机(或计算机网络)处执行一些软件指令。本领域技术人员还将意识到,通过利用对本领域技术人员已知的常规技术,软件指令的全部或一部分可以由诸如DSP、可编程逻辑阵列等的专用电路执行。

如对于技术人员而言将显而易见的,本文中给出的任何范围或设备值可以被扩展或被更改而不丧失所寻求的效果。

尽管已经以对结构特征和/或方法动作特定的语言描述了本主题,但是要理解在所附权利要求中限定的主题不必限于以上描述的特定特征或动作。相反,以上描述的特定特征和动作被公开为实施权利要求的示例形式。

将理解,以上描述的益处和优点可以涉及一个实施例或可以涉及几个实施例。实施例不限于解决所陈述的问题中的任何或全部的那些或者具有所陈述的益处和优点中的任何或全部的那些。还将理解,对“一(an)”项的引用是指那些项中的一个或多个。

本文中描述的方法的步骤可以以任何适当的顺序或者在合适的情况下同时地来执行。附加地,可以在不脱离本文中描述的主题的精神和范围的情况下从方法中的任何方法中删除个体框。以上描述的示例中的任何的方面可以与所描述的其他示例中的任何的方面组合,以形成另外的示例,而不丧失所寻求的效果。

术语“包括”在本文中用于意指包括所标识的方法框或元件,但是这样的框或元件不包括排他性列表,并且方法或装置可以包含附加的框或元件。

将理解,以上描述仅仅通过举例的方式给出,并且可以由本领域技术人员进行各种修改。以上说明、示例和数据提供对示例性实施例的结构和使用的完整描述。尽管以上已经以某种程度的特殊性或参考一个或多个个体实施例描述了各种实施例,但是本领域技术人员能够在不脱离本说明书的精神或范围的情况下对所公开的实施例进行许多更改。

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