利用计算机视觉辅助的适应性图像搜索的制作方法

文档序号:10573931阅读:535来源:国知局
利用计算机视觉辅助的适应性图像搜索的制作方法
【专利摘要】本文中公开了一种具有适应性的图像搜索的计算设备,以及用于在该计算设备上运行图像识别程序的方法。图像识别程序可以接收来自用户的查询,以及目标图像,在该目标图像内将要使用多个本地存储的图像识别模型中的一个或多个来执行基于该查询的搜索,所述图像识别模型被确定为能够以充分高的置信度来执行该搜索。该查询可以包括键入的文本或是从话音转换而来的文本。该图像识别程序使用至少一个本地存储的图像识别模型在该目标图像内针对该目标图像的目标区域而执行搜索,并且将搜索结果返回给该用户。
【专利说明】
利用计算机视觉辅助的适应性图像搜索
【背景技术】
[0001]图像搜索技术可以使得用户能够获得关于在图像中的对象的信息或者在图像内对具体的对象进行定位。可以将相同的过程应用于人、场景、文本等。典型的图像识别服务是通过如下操作来运行的:从用户处接收图像,针对特别的特征来分析该图像,并且接着使用算法将该图像中的对象对照数据库中的图像进行匹配。
[0002]由于数字相机的传感器和存储器容量已改进,因此由数字相机所捕获的图像的大小也已经增加。目前,一些配备有相机的智能电话捕获超过40兆像素的图像。将该大小的图像上传至基于云的服务通常花费显著的时间和带宽(尤其是当通过蜂窝网络来完成时),这常常给用户招致额外的费用。一旦上传了这样的大图像,图像识别服务可能会花费与较小的图像相比额外的时间和计算能力来处理该图像,这会减慢响应时间。另外,由于该图像是通过网络发送的,会出现涉及隐私的问题。其结果是,对于将要应用至在下一代相机上所捕获的大图像的基于云的图像搜索服务,存在重大挑战。

【发明内容】

[0003]在本文中公开了具有适应性的图像搜索的计算设备、以及用于在该计算设备上运行图像识别程序的方法。所公开的一个实施例可以包括被配置为存储多个图像识别模型的非易失性存储器、以及由计算设备的处理器执行的图像识别程序。该图像识别程序可以从用户处接收查询以及目标图像,其中,基于所述查询的搜索将在该目标图像内执行。所述查询可以包括被键入的文本或是从话音所转换的文本。
[0004]图像识别程序可以接着根据置信度水平来对图像识别模型进行排名以用于在目标图像内执行搜索,并且确定图像识别模型中是否有任何一个模型高于置信度阈值以用于在计算设备的处理器上本地地执行搜索。如果确定了图像识别模型中有至少一个模型高于置信度阈值,则图像识别程序可以选择高排名的至少一个图像识别模型。接着,图像识别程序可以使用所选择的至少一个图像识别模型在所述目标图像内针对该目标图像的目标区域执行搜索,并且最终,将搜索结果返回给用户。
[0005]提供了该
【发明内容】
以用简化的形式介绍在下文的【具体实施方式】中所进一步描述的概念的选择。该
【发明内容】
不旨在标识所要求保护的主题的关键特征或本质特征,也不旨在用于限制所要求保护的主题的范围。此外,所要求保护的主题不限于解决在本公开的任何部分中所指出的任何或全部缺点的实现。
【附图说明】
[0006]图1是执行本地图像识别搜索的计算设备的示意图。
[0007]图2是执行基于网络的图像识别搜索的图1的计算设备的示意图。
[0008]图3是用于在图1的计算设备或在其它合适的硬件上运行图像识别程序的方法的流程图。
[0009]图4是根据图3的流程图的一个步骤而扩展的流程图,并且示出了用于从网络服务中下载图像识别模型的方法。
[0010]图5是根据图3的流程图的一个步骤而扩展的流程图,并且示出了用于基于来自网络图像搜索的示例图像来创建新的图像识别模型的方法。
[0011 ]图6示出了包括计算设备的计算系统的简化示意图。
[0012]图7示出了关于对红色咖啡杯的图像识别搜索的一个示例用例场景。
[0013]图8示出了关于对特定的书的图像识别搜索的另一个示例用例场景。
[0014]图9示出了关于使用购物中心目录对购物中心的电子产品商店的图像识别搜索的另一个示例用例场景。
【具体实施方式】
[0015]图1和图2是配置有适应性的图像搜索功能的计算装置10的示意图,该图像搜索功能能够执行使用本地存储的不同模型来进行图像搜索的本地图像识别搜索,并且还可选地能够进行基于网络的图像识别搜索。在一个实施例中,计算设备10被配置为向用户呈现针对本地图像识别搜索的选项,并且如果这样的本地图像识别搜索不能以高置信度执行,则可替代地向用户呈现用于进行基于网络的图像识别搜索的选项,或者以编程的方式(programmatically)执行网络搜索而不需要用户选择网络搜索选项。应当理解的是,通过以该方式向用户提供选项来首先尝试本地进行图像识别搜索,计算设备10潜在地解决了在上文中所讨论的涉及通过网络将大尺寸图像传输至基于网络的图像识别服务器的挑战。在一些实施例中,直到本地搜索已经作为不可用的而被排除在外为之后才显示针对基于网络的图像识别搜索的选项,而在其它实施例中,在图像搜索交互对话开始时,就将基于网络的搜索的选项和本地搜索的选项两者呈现给用户。
[0016]图1示出计算设备10,其向用户呈现针对在计算设备10上显示的目标图像12的在网络上执行或本地地执行的图像识别搜索的选项。用户可以从合适的源(例如,相机输出、或者计算设备10上的非易失性存储器20中的数据存储)中选择目标图像12。多个图像识别模型22也可以存储在非易失性存储器20中。每个图像识别模型22可以包括:图像识别算法、光学字符识别(OCR)算法、和/或关键字匹配算法等。每个图像识别模型22可以只包含一种算法、或相同或不同类型的多个算法的任意组合。
[0017]在计算设备10的处理器26上执行的图像识别程序24可以在显示器32上显示图像搜索GUI,该图像搜索GUI可以包括被标记为LOCAL的图形用户界面(GUI)选择器。由用户对LOCAL选择器的选择可以触发本地图像识别搜索。可替代地,可以使用另一种类型的命令(例如,语音命令或手势命令)来选择本地图像识别搜索。
[0018]图像识别程序24可以被配置为从用户处接收查询28。计算设备10的输入设备30可以包括麦克风、键盘、触摸屏等。查询28可以是例如文本,该文本是在键盘或触屏上键入的、从通过麦克风所捕获的话音转换而来的、经由光学字符识别(OCR)从图像(例如,通过相机34所捕获的或存储在非易失性存储器20中的)转换而来的、或是通过其它技术产生的。音频、文本等也可以提前被存储在非易失性存储器20中,并且接着用来形成查询28。可替代地,查询28可以是用户有兴趣寻找的目标对象的图像或视频。多个图像或视频帧可以描绘同一目标对象的不同视角。用户可以可选地选择查询图像内的边界框,以帮助图像识别程序24来定位目标对象,尤其是在图像中存在许多不相关的对象时。
[0019]图像识别程序24也可以接收目标图像12,其中,在目标图像12内将要执行基于查询28的搜索。如上所述,目标图像12通常是由用户预选择的,并且可以源自板载相机,或者可以是从存储的图像文件夹等中所选择的,并且该搜索是为了找到可以被定位在目标图像12中的目标对象等的。目标对象等在目标图像12内的位置可被称为目标图像12的目标区域。
[0020]接下来,图像识别程序24可以根据置信度水平对图像识别模型22进行排名以用于基于查询28在目标图像12内执行搜索,接着确定是否图像识别模型22中有任何一个模型高于置信度阈值以用于在计算设备10的处理器26上本地地执行搜索。在确定了图像识别模型22中有至少一个模型在置信度阈值以上之后,图像识别程序可以选择高排名的至少一个图像识别模型22’,并且使用所选择的至少一个图像识别模型22’在所述目标图像12内执行针对该目标图像12的目标区域的搜索。
[0021]图像识别模型22的置信度水平可以受多个因素影响。例如,图像识别程序24可以运行一个或多个轻权重的过程(即,较不计算密集的算法)来对目标图像12和/或查询28中的对象进行分类。这样的轻权重过程的一个示例可以是人脸检测算法,其用于检测在目标图像12中是否存在任何人脸。如果查询28被解析为人的名字,则可以运行轻权重的过程以确定在图像中是否存在任何人脸,并且如果存在,则可以选择包含更复杂的人脸识别算法的图像识别模型22中的一个或多个模型来针对与查询中的名字相匹配的人执行对所述图像的搜索。在另一个示例中,如果查询28是一个麦片品牌的名称,则可以将包括被配置为检测特定颜色的矩形形状的2-D图像匹配算法的图像识别模型22确定为具有较高的置信度水平。
[0022]图像识别模型22还可以包括可以与查询28进行比较的文本描述。另外,图像识别程序24可以向用户示出图像识别模型22中的一个模型所基于的图像。例如,如果查询28是“bass”,则可以在显示器32上向用户示出鱼的和乐器的图像,并且该用户可以选择他所指的那一个。以这样的方式,图像识别程序24可以可选地向用户建议具有高置信度水平的多个图像识别模型22,并且用户可以选择至少一个图像识别模型22’以用于执行搜索。使多个图像识别模型22存储在计算设备10上,并且即使其在没有网络连接时也是准备好被使用的,这可以加速搜索。不同的图像识别模型22可以针对不同的查询28而更好地工作,而针对工作使用正确选择的图像识别模型22’会使得在执行搜索上花费更少的时间和计算能力。
[0023]最后,图像识别程序24可以向用户返回搜索结果18,这可以包括将搜索结果显示在显示器32上并且结束搜索。对该搜索结果的视觉显示可以伴随着对搜索结果18的音频警报或报告,或者例如振动。在接收到搜索结果18之前的任何时间,用户都可以向图像识别程序24指出她希望结束搜索。
[0024]在该实施例中将计算设备10描绘为智能电话,但其也可以是任何合适的设备,包括:其它移动设备,例如平板或膝上型计算机;可穿戴设备,例如手表、头戴式显示(HMD)设备、或其它可穿戴计算设备;或静态设备,例如台式计算机。图像识别程序24可以将搜索结果18显示在显示器32上,显示器32可以是例如:有机发光二极管(OLED)显示器、液晶显示器(IXD)、或抬头显示器(HUD)。计算设备10也可以包括相机34,并且如在该实施例中,目标图像12可以是由相机34所捕获的。目标图像12可以是单个图像、或是构成视频一部分的一个或多个图像帧。
[0025]诸如与已知的地理位置相关联的全球定位系统(GPS)数据以及无线网络服务集标识符(SSID)之类的次级信号可以例如与图像识别模型22相关联。图像识别程序24可以经由这些相关联的次级信号来使用关于该用户或其他用户的位置信息。例如,图像识别程序24可以进行检查以查看其他用户是否已经提交了类似的查询,以及当他们找到该用户正在搜索的对象时他们在哪(例如,如由对于地理定位服务为已知的SSID来确定),并且接着将该信息中转给用户。这样的对象可以是物理的、无生命的对象,但也可以是人、动物、场景、文本的一部分等。次级信号可以通过为搜索提供上下文来帮助对图像识别模型22的置信度进行排名和选择。例如,如果通过次级信号确定用户在博物馆,则可以由图像识别程序24将具有2-D图像匹配算法的图像识别模型较高地排名,以准确地完成针对具体的绘画的搜索。
[0026]在上文中所讨论的其数据可以用来进行图像搜索的其他用户可以是例如:已经向与图像识别程序24相关联的网络服务提交了反馈的匿名用户、用户的联系人中的其他用户、或用户的社交媒体网络中的其他用户。在另一个示例中,图像识别程序24可以直到用户的当前位置(如通过GPS信号所确定的)已经到达了预先确定的位置才开始处理查询28,其中在该预先确定的位置处,图像识别程序24应当寻找用户期望的对象。
[0027]在一些实例中,目标图像12可以是关于用户的当前环境的图像或视频,而查询28可以指示期望的产品或目的地。例如,用户Jane可以在家使用无线网络来建立购物清单。在该情况下,图像识别程序24可以针对于购物清单上的每种商品而接收一个查询28。Jane可以用她的HMD设备上的相机34来捕获即将用尽的物品的图像,并且接着,图像识别程序24可以使用OCR来从图像中提取文本,并且形成多个查询28。可替代地,Jane可以捕获关于写出的购物清单,或者是关于她想要在商店处找到的所有物品的单个图像,并且每个查询28都可以从同一图像中生成。图像识别程序24可以为如上文中所描述的每种物品准备所选择的图像识别模型22’。
[0028]一旦图像识别程序接收到Jane已经抵达商店的指示(无论是通过接收GPS信号或地理定位SSID而自动地指示的,还是通过Jane直接命令图像识别程序24继续进行来指示的),HMD设备就可以使用其相机34以将连续的视频输出或间歇地捕获的图像发送至图像识别程序24以供处理。在该情况下,目标图像12的目标区域可以包含购物清单上的商品中的一种的图像。当将搜索结果18返回给Jane时一一例如,当目标图像12被显示在显示器32上而目标区域被圈住并且伴有蜂鸣声时一一Jane可以向图像识别程序24指示可以将刚刚定位的商品从购物清单中移除。以该方式,Jane可以结束她的购物。
[0029]在另一个示例中,用户Kazu可以在不熟悉的地区中的餐厅预订了晚餐。Kazu可以通过麦克风、利用他的汽车的挡风玻璃上的HUD来向他的计算设备10指示该餐厅、或以其他方式描述该餐厅。图像识别程序24可以将话音转换成文本以形成查询28。可以如上文中所描述的那样确定并选择合适的图像识别模型22’。图像识别程序24可以使用Kazu的相关联的GPS信号,以及所估计或所确定的餐厅的位置,以向Kazu指示他正在接近他的目的地。
[0030]单独使用GPS可能不总是以成功的旅行为结果,这是由于不精确的指向以及由用户作为响应而进行的突然的移动。然而,Kazu的计算设备10可以对拍摄他所在的街道的单个图像或视频,并且图像识别程序24可以使用那些图像或视频的帧作为目标图像12。当图像识别程序24定位了目标图像12的目标区域包含所述餐厅时,可以将搜索结果18显示在Kazu的HUD上,清楚地指示该餐厅位于何处,以使得Kazu可以安全且容易地抵达他的目的地。
[0031]在另一个示例中,查询28可以包括用于在目标图像12中或者在与目标图像12的目标区域类似的其它图像中对目标区域进行搜索的指令。在这样情况下,用户可能已经具有或了解了一个她不希望找到的对象。相反,她想要针对类似的对象的推荐。可以例如通过由图像识别程序24执行简单网络搜索,或通过来自多个其他用户的经聚合的反馈进行搜索来选择推荐。图像识别程序24可以给用户呈现多个选项,并且允许用户选择一个或多个推荐的对象,或者图像识别程序24可以确定一个最期望的对象或几个期望的对象。可替代地,可以基于用户不希望找到的对象、但是又类似于用户希望找到的对象的一个或多个图像来形成查询28。如果在计算设备10上不存在具有高于预先确定的阈值的置信度水平的图像识别模型22’,则可以如在下文中参考图4和5详细描述的那样来下载或创建一个模型。
[0032]现在转到图2,如果由于本地图像识别程序24确定本地可用的搜索模型中的估计置信度低于最小阈值而确定本地搜索选项是不可用的,则可以给用户呈现标记为WEB的GUI选择器,用户可以通过该选择器选择基于网络的图像识别搜索。当然,如在上文中所讨论的,可以在交互过程中更早地向用户呈现WEB选择器,从而给予用户放弃本地搜索而直接继续至基于网络的搜索的选项。此外,在一些实施例中,在以最小置信度确定了本地搜索选项不可用之后,就可以以编程方式来执行基于网络的搜索而无需经由WEB选择器的用户输入。
[0033]在接收到对WEB选择器的用户选择之后,计算设备10就被配置为将由用户预先选择的目标图像12发送至使用相关联的图像数据库16来执行所请求的搜索的网络图像识别服务14。目标图像12通常是通过诸如耦合至广域网(WAN)(例如,互联网)的蜂窝网络连接之类的网络连接11来发送的。服务器生成搜索结果18,并且经由网络11将搜索结果18发送回计算设备10。计算设备10可以接着接收搜索结果18,并且将搜索结果18显示在显示器32上。
[0034]应当理解的是,通过以上述方式提供本地搜索选项和网络搜索选项两者,可以缓解在【背景技术】中所讨论的挑战。具体而言,在本地搜索的情况下,目标图像12不通过网络来发送,这节省了带宽和时间,并且作为结果,很可能节省了额外的用户费用。其次,本地搜索通过本地地存储目标图像而不将其发送至网络服务来为用户提供针对用户的数据的鲁棒的隐私保护。第三,对于搜索服务的运营商而言,如果用户本地地进行搜索而不是在搜索服务的服务器上进行搜索,就潜在地节省了服务器方的资源。
[0035]图3是在具有适应性的图像搜索的计算设备上运行图像识别程序的方法300的流程图。以下对方法300的描述是参考在上文中描述并在图1中示出的计算设备10的软件组件和硬件组件而提供的。应当理解的是,也可以在使用其它合适的硬件组件和软件组件的其它上下文中执行方法300。
[0036]参考图3,在302处,方法300可以包括从用户处接收查询。该查询可以包括文本,该文本是键入的、从通过麦克风所捕获的话音转换而来的、经由光学字符识别(OCR)从图像转换而来的、或是通过其它技术而产生的。在304处,方法300可以包括接收目标图像。目标图像可以是在其内将要执行基于查询的搜索的图像或视频。例如,目标图像可以是用户的当前环境的图像或视频,并且查询可以指示期望的产品或目的地。
[0037]计算设备可以包括相机,并且目标图像可以是由该相机所捕获的。可替代地,目标图像可以从存储的图像文件夹中选择。计算设备可以是例如智能电话、平板计算机、膝上型计算机、其它移动设备、手表、头戴式显示器(HMD)设备、其它可穿戴计算设备、或台式计算机。
[0038]在306处,方法300可以包括根据置信度水平来对多个图像识别模进行排名以用于在目标图像内基于所述查询而执行搜索。可以将图像识别模型存储在计算设备的非易失性存储器中。每个图像识别模型都可以包括一个或多个图像识别算法、光学字符识别(OCR)算法、和/或关键字匹配算法等等。图像识别算法可以包括例如:人脸匹配算法、二维(2-D)模型匹配算法、三维(3-D)模型匹配算法、神经网络算法、图像分割算法、条码识别算法、快速响应(QR)代码检测器和解码器、和/或其它算法。在308处,方法300可以包括确定图像识别模型中是否有任何一个模型高于置信度阈值,以用于在计算设备的处理器上本地地执行搜索。
[0039]如上所述,图像识别模型的置信度水平可以受多个因素影响。例如,图像识别程序可以运行一个或多个轻权重的过程(例如,人脸检测算法)来对在所述目标图像和/或所述查询中的对象进行分类。图像识别模型还可以包括可以与查询进行比较的文本描述。另外,图像识别程序可以向用户示出图像识别模型中的一个所基于的图像。以这样的方式,图像识别程序可以可选地向用户建议具有高置信度水平的多个图像识别模型,并且用户可以选择至少一个图像识别模型以用于执行搜索。
[0040]在确定了图像识别模型中至少有一个高于置信度阈值(在308处的“是”)之后,在310处,方法300可以包括选择高排名的至少一个图像识别模型。多个图像识别模型可以排名高于置信度阈值,并且可以选择这样的图像识别模型中的一些或全部以用于在同一搜索中使用。可替代地,只可以选择排名最高的图像识别模型,或者用户可以从高排名的图像识别模型的选集中进行选择。在312处,方法300可以包括,使用所选择的图像识别模型中的至少一个而在目标图像内对目标图像的目标区域来执行搜索。除了图像识别模型之外,图像识别程序还可以经由与图像识别模型相关联的次级信号(例如,GPS数据和SSID)来使用关于该用户或其他用户的位置信息。
[0041]在314处,方法300可以包括将搜索结果返回给用户,这可以包括例如图像识别程序将搜索结果显示在诸如液晶显示器(LCD)或抬头显示器(HUD)之类的显示器上。在该步骤之后,用户反馈可被记录并且用来改善图像识别模型选择的准确度。另一方面,在确定了图像识别模型中没有一个高于置信度阈值(在308处的“否”)之后,方法300可以继续到如在步骤400中所示的检查网络服务,或如在步骤500中所示的创建新的图像识别模型。
[0042]图4是流程图,其示出图3的方法300的检查网络服务的步骤400的子步骤,以用于从网络服务中取回新的图像识别模型。在402处,步骤400可以包括连接至网络服务。网络服务可以包括多个图像识别模型。在404处,步骤400可以包括接收根据置信度水平而对网络服务的图像识别模型进行的排名,以用于在目标图像内基于查询来执行搜索。如在上文中关于方法300所描述的那样,在406处,步骤400可以包括确定网络服务的图像识别模型中是否有任何一个模型高于置信度阈值以用于执行搜索。
[0043]在确定了网络服务的图像识别模型中至少有一个高于置信度阈值(在406处的“是”)之后,在408处,步骤400可以包括选择网络服务的高排名的至少一个图像识别模型。在410处,步骤400可以包括将所选择的至少一个图像识别模型下载至计算设备。正如在上文的方法300中,在搜索中可以选择并使用一个或多个图像识别模型。在412处,步骤400可以包括使用所下载的至少一个图像识别模型在目标图像内对目标图像的目标区域执行搜索。在414处,步骤400可以包括将搜索结果返回给用户。另一方面,在406处的“否”的决策可以包括继续至如在步骤500中所示的创建新的图像识别模型。
[0044]可替代地或者结合步骤400,可以在并非逐个(case-by-case)的基础上而将新的、流行的、所提示的或以其它方式选择的图像识别模型传递至计算设备。例如,可以将新的或改进的图像识别模型封包为对图像识别程序的更新,并且可以每隔一定间隔而提示用户下载更新,图像识别程序可以被配置为自动下载更新,或者用户可以能够基于什么对他有吸引力来在模型封包中进行选择。对图像识别模型进行更新可以包括例如对包括有图像识别模型的算法进行更新、替换或添加。图像识别模型也可以基于次级信号(例如,GPS数据、与已知地理位置相关联的SSID、环境噪声等)而被下载在设备上或者在设备上进行更新。
[0045]图5是图3的方法300的步骤500的流程图,步骤500用于创建新的图像识别模型。例如,在上文的Jane购物的示例中,Jane可能希望购买只是从朋友那里听说过的一种新的商品。她可能在她的HMD设备上不具有针对该新的商品的合适的图像识别模型,而网络服务可以也还没有可用于下载的合适的图像识别模型。在该情况下,Jane可以希望创建新的图像识别模型。
[0046]在502处,步骤500可以包括在图像搜索引擎中执行网络图像搜索,其中,该网络图像搜索是基于查询的。在504处,步骤500可以包括返回预先确定的数量的示例图像。预先确定的数量可以由用户或图像识别程序来设置。在506处,步骤500可以包括从预先确定的数量的示例图像中选择至少一个示例图像。可以通过允许用户指示哪个示例图像最好地表示该查询,或者通过图像识别程序按照编程规则和/或用户偏好而智能地进行选择来进行选择。如果图像识别程序进行选择,则可以在该步骤记录用户反馈以改进该功能。
[0047]编程规则可以将之前的查询的上下文考虑在内。例如,如果来自用户的先前10个查询包含书,并且当前查询很可能指示一本书或一辆汽车,则图像识别程序可选择书的示例图像。在另一个实施例中,编程规则可以将次级信号考虑在内。如果GPS数据指示用户在书店,则图像识别程序可以选择书的示例图像。如果用户在汽车经销商处,则图像识别程序可以选择汽车的示例图像。
[0048]在508处,步骤500可以包括基于所选择的至少一个示例图像来创建图像识别模型。用户可以可选地输入文本短语或标题来描述所创建的图像识别模型。在510处,步骤500可以包括将所创建的图像识别模型存储在计算设备的非易失性存储器中。可以可选地将所创建的图像识别模型上传至网络服务来与其它用户分享。在512处,步骤500可以包括使用所创建的图像识别模型来在目标图像内对该目标图像的目标区域执行搜索。在514处,步骤500可以包括将搜索结果返回给用户。
[0049]接着,将参考图7-9中的图示来描述一些示例用例场景。这些用例场景本质上是示例性的,并且不旨在用于限制所要求保护的主题的范围。
[0050 ]首先,图7示出由用户Ar i ana对红色咖啡杯进行的示例图像识别搜索。Ar i ana有一个喜欢每天早上用的最喜欢的红色咖啡杯。最近,她一直用的是她不太喜欢的一个蓝色咖啡杯。有一天,她可以决定再次使用她最喜欢的红色咖啡杯,而不记得她把它放在哪儿了。
[0051]首先,Ariana可以打开安装在她的智能电话上的图像识别程序。该图像识别程序可以提示她提交查询,因此Ariana可以通过使用她智能电话上的触摸屏来键入“红色咖啡杯”而与数字键盘进行交互。另外,Ariana可以使用她智能电话上的内置相机对她认为把红色咖啡杯落在其中的房间拍摄照片。图像识别程序可以将Ariana的房间的照片作为目标图像来处理,其使用所键入的文本作为查询。
[0052]图像识别程序可以选择用于找到红色咖啡杯并且为Ariana执行搜索的合适的图像识别模型。仅仅选择合适的图像识别模型可以辅助图像识别程序来定位红色咖啡杯而不是相反地定位蓝色咖啡杯。一旦搜索完成,图像识别程序就可以显示Ariana所拍摄的照片并圈出红色咖啡杯的位置。在Ariana没有注意的情况下,智能电话可以震动以警示她。
[0053]图8示出由同一用户对书进行的示例图像识别搜索。这一次,Ariana可以在书店,并且没有访问她的书架。她可以看到一本书《BartIeby,the Scrivener》在书店打折出售,并且希望为她自己买一本。然而,她可能不确定她是否已经拥有了这本书。幸运的是,Ariana可以仍然在她的智能电话上保存着她所拍摄的她房间的照片。她可以试图对她书架上的所有书进行放大以阅读书脊上的标题,但她可以很匆忙并且不希望阅读所有的标题。
[0054]替代地,Ariana可以将同一张图片(这次是存在她智能电话上的)提交给图像识别程序。她可以再一次利用触摸屏来键入查询,这一次是“Bartleby, the Scrivener”。在该实例中,Ariana可以不具有已经加载在她智能电话上的合适的图像识别模型,因此图像识别程序可以经由无线网络连接至网络服务。图像识别程序可以选择并下载具有OCR算法的图像识别模型,该算法可以从照片中书的书脊提取文本并且将该文本与Ariana所提交的文本进行比较。一旦搜索完成,图像识别程序就可以显示Ariana所拍摄的照片并且圈出她正在寻找的书的位置。如前所述,智能电话可以振动以警示她,以使得Ariana不会购买同一本书的另一副本。
[0055 ]图9示出由另一用户Ramz i对购物中心中的电子产品商店进行的示例图像识别搜索。Ramzi在异国的购物中心中,并且他不太懂当地的语言。他可以需要电子设备的替换线,因此他可以希望访问电子产品商店。Ramzi可以走向购物中心的目录(directory),同时佩戴着他的HMD眼镜并且查看购物中心的地图。图像识别程序可以从由眼镜所捕获的视频中提取帧,并且使用所述帧中至少一帧作为目标图像。眼镜中的板载麦克风可以用来捕获Ramzi的口头查询“电子产品商店”,该口头查询接着可以被转换成文本查询。
[0056]可以由图像识别程序来选择合适的图像识别模型。图像识别程序接着可以使用OCR算法来从视频帧中提取文本,并且接着对目录进行翻译。确定为与电子产品商店相对应的列表可以在Ramz i的HMD上突出显示,并且可以由眼镜产生音频警报(例如,蜂鸣声、啁啾声、或者对结果的口头报告)。另外,由于Ramzi可以实际上想要该电子产品商店在目录的地图上的位置而不只是列表,因此图像识别可以通过在地图上圈出与HMD上的电子产品商店的列表相对应的位置而将搜索结果返回给Ramzi。所述位置周围的圈可以闪光、颜色不同、或者以其他方式与通过Ramz i的HMD看到的周围视图区分开。该圈可以是Ramz i的眼镜的HMD上的唯一的虚拟内容,其叠加在他通过HMD看到的目录的视图上,并且当Ramzi移动他的头部时跟随所识别的位置。
[0057]当系统有信心模型中的一个将传递高质量的搜索结果时,上述系统和方法可以用来基于依赖上下文的搜索模型以带宽高效的方式来本地执行图像搜索。该方法在带宽节省、搜索准确度、隐私保护、以及分布式处理方面的具有潜在的优点,以减轻集中式服务器上的负担。
[0058]作为对上述的实施例的变型,查询28可以包括由用户所选择的次级图像。该次级图像可以是由相机34捕获的,或者是从图像收集(例如,在计算设备10上本地存储的照片收集)中选择的。次级图像可以具有对象,该对象可以是诸如书或建筑物之类的无生命的对象、诸如人或动物之类的有生命的对象等。次级图像可以具有与其相关联的元数据,该元数据可以是之前由用户输入的,或者是由图像捕获设备或图像分析程序以编程方式生成的。仅作为几个示例例如,次级图像可以具有经识别的人脸,而元数据可以是人的姓名或其它标识符;图像可以是经识别的书,而元数据可以是通过OCR所捕获的标题;图像可以是经识别的对象,而元数据可以指示对象的类别(例如,“红色咖啡杯”);或者图像可以是经识别的地点,而元数据可以是该地点的GPS坐标以及该地点的名称。当使用次级图像作为查询28时,通常将以文本为形式的元数据用作针对图像搜索的文本查询。根据该实施例,在图3的流程图中,如在上文中所描述的,通过接收具有相关联的预先存在的或以编程方式生成的元数据的次级图像来完成步骤302,并且搜索查询是基于该元数据的。紧接着步骤302之后,其余的步骤如在上文中所描述的那样继续进行。
[0059]在一些实施例中,在本文中所描述的方法和过程可以与一个或多个计算设备的计算系统相联系。特别地,可以将这样的方法和过程实现为计算机-应用程序或服务、应用-编程接口(API)、库、和/或其它计算机-程序产品。此外,在一些实施例中,所述方法和过程的全部或一部分可以以硬件来实现,例如,以专用集成电路(ASIC)、现场可编程门阵列(FPGA)等来实现。
[0060]图6示意性地示出了可以实践在上文中所描述的方法或过程中的一个或多个的计算系统600的非限制性实施例。经由网络604连接至服务器602的计算设备10可以采取计算系统600的形式。计算系统600是以简化的形式示出的。在不同的实施例中,计算系统600可以采取以下形式中的一个或多个形式:个人计算机、服务器计算机、平板计算机、家庭娱乐计算机、网络计算设备、游戏设备、移动计算设备、移动通信设备(例如,智能电话)、和/或其他计算设备。
[0061 ]计算系统600包括逻辑子系统606和存储子系统608。计算系统600可以可选地包括显示子系统610、输入子系统612、通信子系统614、和/或没有在图6中示出的其他组件。服务器602可以具有额外的通信子系统616、逻辑子系统618、以及存储系统620,并且被配置为托管如在上文中所描述的网络服务622。
[0062]逻辑子系统606包括被配置为执行指令的一个或多个物理设备。例如,逻辑子系统可被配置为执行作为一个或多个应用、服务、程序、例程、库、对象、组件、数据结构、或其他逻辑结构的一部分的指令。这样的指令可以被实现为执行任务、实现数据类型、转换一个或多个组件的状态、达成技术效果、或以其他方式达到期望的结果。
[0063]逻辑子系统可以包括被配置为执行软件指令的一个或多个处理器。另外或可替代地,逻辑子系统可以包括被配置为执行硬件指令或固件指令的一个或多个硬件逻辑子系统或固件逻辑子系统。逻辑子系统的处理器可以是单核的或多核的,并且在其上执行的指令可以被配置以用于顺序的、并行的、和/或分布式的处理。逻辑子系统的个体组件可以可选地分布在两个或更多个分离的设备中,其可以被远程地定位和/或配置以用于协调处理。可以由在云端计算配置中所配置的远程可访问的、网络化的计算设备来实现逻辑机器的方面。
[0064]存储子系统608包括一个或多个物理设备,其被配置为保存能够由逻辑子系统所执行以实现在本文中所描述的方法和过程的指令。当实现这样的方法和过程时,可以转换存储子系统608的状态一一例如,保存不同的数据。
[0065]存储子系统608可以包括可移动设备和/或内置设备。存储子系统608可以包括光学存储器(例如,CD、DVD、HD-DVD、蓝光盘等)、半导体存储器(例如,RAM、EPR0M、EEPR0M等)、和/或磁存储器(例如,硬盘驱动器、软盘驱动器、磁带驱动器、MRAM等)等。存储子系统608可以包括易失性设备、非易失性设备、动态设备、静态设备、读/写设备、只读设备、随机存取设备、顺序存取设备、位置可寻址设备、文件可寻址设备、和/或内容可寻址设备。
[0066]应当理解的是,存储子系统608包括一个或多个物理设备。然而,在本文中所描述的指令的方面可替代地可以通过不是由物理设备所保存而持续有限的时长的通信介质(例如,电磁信号、光信号,等等)来传播。
[0067]可以将逻辑子系统606和存储子系统608的方面一起集成到一个或多个硬件逻辑组件中。这样的硬件逻辑组件可以包括例如:现场可编程门阵列(FPGA)、程序和应用专用集成电路(PASIC/ASIC),程序和应用专用标准产品(PSSP/ASSP)、片上系统(S0C)、以及复杂可编程逻辑器件(CPLD)。
[0068]术语“模块”、“程序”、“子系统”和“引擎”可以用来对被实现为执行特定功能的计算系统600的方面进行描述。在一些情况下,模块、程序、子系统、或引擎可以经由执行由存储子系统608所保持的指令的逻辑子系统606而被实例化。应当理解的是,不同的模块、程序、子系统、和/或引擎可以由相同的应用、服务、代码块、对象、库、例程、AP1、函数等来实例化。同样,相同的模块、程序、子系统、和/或引擎可以由不同的应用、服务、代码块、对象、库、例程、AP1、函数等来实例化。术语“模块”、“程序”、“子系统”和“引擎”可以包含可执行文件、数据文件、库、驱动程序、脚本、数据库记录等的个体或分组。
[0069]应当理解的是,如在本文中所使用的“服务”是跨多个用户会话可执行的应用程序。服务可以对一个或多个系统组件、程序、和/或其他服务是可用的。在一些实现中,服务可以在一个或多个服务器-计算设备上运行。
[0070]当被包括时,显示子系统610可以用来呈现由存储子系统608所保存的数据的视觉表示。该视觉表示可以采用图形用户界面(GUI)的形式。如本文中所描述的方法和过程改变了由存储子系统所保存的数据,并且因此转换了存储机器的状态,同样可以转换显示子系统610的状态来视觉地表示底层数据中的改变。显示子系统610可以包括利用几乎任何类型的技术的一个或多个显示设备。这样的显示设备可以在共享的封装中与逻辑子系统606和/或存储子系统608相结合,或者这样的显示设备可以是外围显示设备。
[0071]当被包括时,输入子系统612可以包括一个或多个用户输入设备或者与一个或多个用户输入设备接合,所述用户输入设备例如:键盘、鼠标、触摸屏、或游戏控制器。在一些实施例中,输入子系统可以包括经选择的自然用户输入(NUI)部件或者与经选择的自然用户输入(NUI)部件接合。这样的部件可以是集成或是外围的,而输入动作的转导和/或处理可以是板上处理的和/或离板处理的。示例的NUI部件可以包括用于话音和/或语音识别的麦克风;用于机器视觉和/或手势识别的红外、彩色、立体和/或深度相机;用于运动检测和/或含义识别的头部追踪器、眼部追踪器、加速度计、和/或陀螺仪;以及用于评估脑部活动的电场传感部件。
[0072]当被包括时,通信子系统614可以被配置为将通信系统600与一个或多个其他计算设备通信地进行耦合。通信子系统614可以包括可以与一个或多个不同的通信协议兼容的有线和/或无线通信设备。作为非限制性实施例,通信子系统可被配置为经由无线电话网络、或者有线或无线局域网或广域网来进行通信。在一些实施例中,通信子系统可以允许计算系统600经由网络(例如,互联网)向其他设备发送的消息和/或从其它设备中接收消息。
[0073]应当理解的是,在本文中所描述的配置和/或方法本质上是示例性的,并且这些具体实施例和/或示例不应该被理解为限制性意义,这是因为多种变型是可能的。在本文中所描述的具体例程或方法可以表示任意数量的处理策略中的一个或多个。因此,所示出和/或描述的各种行为可以以所示出和/或描述的顺序来执行、以其他顺序来执行、并行地执行、或者被省略。同样,可以改变上述过程的顺序。
[0074]本公开的主题包括各种过程、系统、和其他特征的全部新颖的和非显而易见的组合和子组合、和在本文中所公开的功能、行为、和/或属性、以及其任何和全部等价物。
【主权项】
1.一种具有适应性的图像搜索的计算设备,所述计算设备包括: 非易失性存储器,其被配置为存储多个图像识别模型; 图像识别程序,其由所述计算设备的处理器执行,并且被配置为: 从用户处接收查询,所述查询包括键入的文本或是从话音转换而来的文本; 接收目标图像,其中在所述目标图像内将要执行基于所述查询的搜索; 根据置信度来对所述图像识别模型进行排名,以用于在所述目标图像内基于所述查询来执行所述搜索; 确定所述图像识别模型中是否有任何一个模型高于置信度阈值,以用于在所述计算设备的处理器上本地地执行所述搜索;以及 在确定所述图像识别模型中至少有一个高于所述置信度阈值之后, 选择高排名的至少一个图像识别模型; 使用所选择的至少一个图像识别模型在所述目标图像内对所述目标图像的目标区域执行所述搜索;以及 将搜索结果返回给所述用户。2.根据权利要求1所述的计算设备,其中,所述目标图像是单个图像、或是构成视频的一部分的一个或多个图像帧。3.根据权利要求1所述的计算设备,其中,每个图像识别模型包括下列算法中的至少一种算法:图像识别算法、光学字符识别(OCR)算法、以及关键字匹配算法。4.根据权利要求1所述的计算设备,其中,所述图像识别程序使用关于所述用户的位置?目息O5.根据权利要求1所述的计算设备,其中,所述目标图像是所述用户的当前周边环境的图像或视频,并且所述查询指示期望的产品或目的地。6.根据权利要求1所述的计算设备,其中,所述计算设备包括相机,并且其中,所述目标图像是由所述相机所捕获的。7.根据权利要求1所述的计算设备,其中,所述计算设备是智能电话或平板计算机。8.根据权利要求1所述的计算设备,其中,所述图像识别程序将所述搜索结果显示在抬头显示器上。9.根据权利要求1所述的计算设备,其中,所述查询包括用于在所述目标图像中或在与所述目标图像中的所述目标区域类似的其它图像中对所述目标区域进行搜索的指令。10.—种用于在具有适应性的图像搜索的计算设备上运行图像识别程序的方法,所述方法包括: 从用户处接收查询,所述查询包括键入的文本或是从话音转换而来的文本; 接收目标图像,其中在所述目标图像内将要执行基于所述查询的搜索; 根据置信度来对所述图像识别模型进行排名,以用于在所述目标图像内基于所述查询来执行所述搜索,其中,将所述图像识别模型存储在所述计算设备的非易失性存储器中;确定所述图像识别模型中是否有任何一个模型高于置信度阈值,以用于在所述计算设备的处理器上本地地执行所述搜索;以及 在确定所述图像识别模型中至少有一个高于所述置信度阈值之后, 选择高排名的至少一个图像识别模型; 使用所选择的至少一个图像识别模型在所述目标图像内对所述目标图像的目标区域执行所述搜索;以及 将搜索结果返回给所述用户。
【文档编号】G06K9/32GK105934760SQ201580005469
【公开日】2016年9月7日
【申请日】2015年1月22日
【发明人】A·A·安巴德卡尔, C·L·海布雷格斯, L·沃尔, D·胡什安吉, H·帕桑克
【申请人】微软技术许可有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1