一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

相机输入作为视频搜索的自动过滤器机制的制作方法

2022-02-24 19:04:16 来源:中国专利 TAG:

相机输入作为视频搜索的自动过滤器机制
1.本技术要求于2019年9月3日提交的美国申请no.62/895,278的权益,其公开内容通过引用整体并入本文。
技术领域
2.示例实施方式涉及使用用户界面搜索内容和存储可搜索内容。


背景技术:

3.搜索内容(例如,文章、信息、指令、视频等等)通常涉及使用用户界面(例如,浏览器、应用、网站等等)将文本(例如,搜索字符串)键入到文本框中并启动(initiating)(例如,通过击键或点击按钮)数据结构(例如,数据库、知识图、文件结构等等)的搜索。搜索可以是基于文本的,并且搜索响应或结果可以是到被确定为与文本或搜索字符串相关的内容的链接的集合。结果可以被显示在用户界面上。


技术实现要素:

4.在一般方面,一种设备、系统、非暂时性计算机可读介质(在其上存储有可以在计算机系统上执行的计算机可执行程序代码)和/或一种方法,可以通过包括下述的方法来执行过程:在第一时间接收文本查询,在第一时间之后的第二次接收与文本查询相关联的视觉输入,基于视觉输入生成文本,基于文本查询和基于视觉输入的文本的组合生成复合查询,以及基于复合查询生成搜索结果,该搜索结果包括到内容的多个链接。
5.在另一个一般方面,一种设备、系统、非暂时性计算机可读介质(在其上存储有可以在计算机系统上执行的计算机可执行程序代码)和/或一种方法可以通过包括下述的方法来执行过程:接收文本查询,接收与查询相关联的视觉输入,基于文本查询生成搜索结果,基于视觉输入生成文本元数据,使用文本元数据过滤搜索结果,以及基于过滤生成过滤后的搜索结果,该过滤后的搜索结果提供到内容的多个链接。
6.在又一个总体方面,一种设备、系统、非暂时性计算机可读介质(其上存储有可以在计算机系统上执行的计算机可执行程序代码)和/或一种方法可以通过包括下述的方法来执行过程:接收内容,接收与内容相关联的视觉输入,对视觉输入执行对象标识,基于对象标识生成语义信息,以及存储内容和与内容相关联的语义信息。
7.实施方式可以包括以下特征中的一个或多个。例如,复合查询可以是第一复合查询。第一复合查询的创建可以包括对视觉输入执行对象标识,并且使用至少基于对象标识所标识的对象对查询执行语义查询添加以生成第一复合查询,其中搜索结果是基于第一复合查询。对象标识的执行可以使用经训练的机器学习模型。对象标识的执行可以使用经训练的机器学习模型,经训练的机器学习模型可以为视觉输入中的对象生成分类器,并且语义查询添加的执行可以包括基于用于对象的分类器生成基于视觉输入的文本。
8.该方法可以进一步包括确定对象标识中的第一置信水平是否满足第一条件,并且至少使用所标识的满足第一条件的对象对查询执行语义查询添加以生成第二复合查询,搜
索结果可以基于第二复合查询。该方法可以进一步包括确定对象标识中的第二置信水平是否满足第二条件,并且至少使用所标识的满足第二条件的对象对查询执行语义查询添加以生成第三复合查询,其中搜索结果基于第三复合查询。第二置信水平可以高于第一置信水平。第一条件和第二条件可以由用户配置。
附图说明
9.从下文给出的详细描述和附图中将更全面地理解示例实施例,其中相同的元件由相同的附图标记表示,这些附图标记仅以说明的方式给出并且因此不限制示例实施例并且其中:
10.图1a图示根据至少一个示例实施例的用户界面装置的框图。
11.图1b图示根据至少一个示例实施例的用户界面装置的框图。
12.图2a图示根据至少一个示例实施例的装置的框图。
13.图2b图示根据至少一个示例实施例的存储器的框图。
14.图3图示根据至少一个示例实施方式的用于视频搜索的自动过滤器机制的示例用例。
15.图4图示根据至少一个示例实施方式的用于构建具有视觉输入的搜索查询的方法的框图。
16.图5图示根据至少一个示例实施方式的用于使用索引的视频内容进行视觉匹配的信号流的框图。
17.图6图示根据至少一个示例实施方式的用于构建具有视觉输入的搜索查询的方法的流程图。
18.图7图示根据至少一个示例实施方式的使用索引的视频内容的视觉匹配方法的流程图。
19.图8图示根据至少一个示例实施方式的视频内容的视觉匹配方法的流程图。
20.图9a图示没有稀疏约束的卷积神经网络中的层。
21.图9b图示具有稀疏约束的卷积神经网络中的层。
22.图10图示根据示例实施例的模型的框图。
23.图11示出根据至少一个示例实施例的计算机设备和移动计算机设备的示例。
24.应该注意的是,这些图旨在图示在某些示例实施例中利用的方法结构和/或材料的一般特性,并且旨在补充在下面提供的撰写描述。然而,这些附图不是按比例的并且可能不精确地反映任何给定实施例的精确结构或性能特性,并且不应该被解释为限定或者限制由示例实施例所包含的值或性质的范围。例如,为了清楚可以缩小或者放大分子、层、区域和/或结构元件的相对厚度和定位。在各个附图中使用类似或相同的附图标记旨在指示存在类似或相同的元件或特征。
具体实施方式
25.用户可能对找到例如具有特定内容的视频感兴趣。但是,基于文本的搜索可能不产生最相关的搜索结果(例如,到内容的链接)和/或可能会产生过多数量的搜索结果,这些结果可能相关也可能不相关。例如,搜索受文本限制,并且用户可能不知道要搜索的关键
词。
26.示例实施方式描述了包括使用输入图像来生成(或帮助产生)可用作搜索文本的文本的机制。例如,图像可以被用于生成搜索中使用的文本和/或要级联到先前键入的文本的文本。此外,在上传内容时可以使用输入图像。输入图像可以被用于生成文本,该文本可被存储为与内容相关联的关键字,并用于在未来的内容搜索中产生(或帮助产生)结果。
27.示例实施方式更有效和/或有用,因为图像可以用于生成关于用户感兴趣的内容可以更完整的搜索文本。结果,用户可能需要分类(sort through)的时间量可以显着减少,因为用户不必过滤成百上千的搜索结果(例如,到内容的链接)以寻找相关内容(例如,产品评论、视频、价格比较、使用说明等等)。
28.图1a图示根据至少一个示例实施例的用户界面装置的框图。如图1a中所示,设备105可以包括用户界面(ui)110。ui 110可以包括文本框115、按钮120和文本框125。在示例实施方式中,文本框115可以被配置成允许文本键入和使用搜索或搜索文本中的文本。文本框125可以被配置成显示搜索结果。在图1a的示例中,最初文本框115-1包括文本项1作为搜索文本。在搜索完成后,文本框125-1包括搜索结果,其包括结果1、结果2、结果3、...和结果n。此外,ui 110可以被配置成生成环境信息查询文本(例如,位置、先前搜索历史和偏好)而无需用户明确键入查询文本。环境信息查询文本可以被级联到搜索文本(例如,文本查询、查询字符串等)。
29.ui 110的用户可以对按钮120进行操作(例如,点击、推动、下压等)。响应于对按钮120的操作,ui 130可以在设备105上变得可见(例如,打开、弹出等)(在设备105上被示出为虚线矩形)。ui 130包括按钮135、图像显示部分140和按钮145。按钮135可以被配置成触发图像的选择(例如,经由相机界面捕捉、选择为存储等)。响应于选择图像,可以在图像显示部分140中显示图像(例如,作为缩略图图像)。在图像显示部分140中显示图像可以给予ui的用户确认图像是根据需要和/或预期的机会。按钮145可以被配置成基于所选择的图像(例如,如显示在图像显示部分140中)触发搜索项的生成并关闭ui 130(例如,不再显示)。
30.响应于用ui 130完成动作,文本框115-2包括文本项1以及项2和项3作为搜索文本。项2和项3可以是基于所选图像生成的搜索项或语义信息。附加搜索项或语义信息可以更精确,因为搜索项与应该是感兴趣的项目(例如,咖啡壶、花、汽车、书、汽车等等)有关。响应于触发新搜索,文本框125-2包括搜索结果,包括结果a、结果b、结果c、...和结果z。
31.在示例用例中,用户可以在文本框115中键入固定咖啡壶作为文本查询(例如,在搜索中使用的文本)并触发对内容的搜索。结果列表可以被返回并显示在文本框125中。结果列表可以包括与针对许多制造和型号的咖啡壶修理咖啡壶有关的内容。用户可以翻阅(scan through)特定品牌和型号的结果列表,或者用户可以点击按钮120以使显示ui 130。用户可以将在图像显示部分140中显示的损坏的咖啡机拍照并点击按钮145。点击按钮145可以触发对图像的分析并且基于图像生成基于语义信息(例如,文本)。语义信息可以是被级联到文本查询的咖啡机的制造和型号,例如,修理咖啡壶、制造、型号。然后使用被级联的文本查询(例如,语义查询)生成新的结果列表。新的结果列表可以基于新的搜索或原始搜索的过滤器。因此,新的结果列表可能在结果列表的顶部(例如,排名高)具有描述或示出如何修理制造、型号咖啡机的内容(例如,视频)。可替选地,结果列表可能不包括不包括咖啡机的制造和型号的内容。新结果列表被显示在文本框125中。新结果列表可以更精确,因为
语义信息的使用导致用户对期望内容的结果列表的最小扫描。
32.根据示例实施方式,由于附加的(例如,与原始的级联)搜索项,新的结果列表应该比原始搜索更精确。与原始结果列表相比,新结果列表可以限制或减少用户可能需要进行分类以找到所需内容的时间量。新结果列表可以基于附加搜索项进行排名。该排名可以导致包括具有更高排名的附加搜索项的内容。因此,新结果列表可以包括包括在新结果列表顶部(例如,第一、第二、开头等)的附加搜索项的内容。
33.图1b图示根据至少一个示例实施例的用户界面装置的框图。如图1b中所示,设备150包括用户界面(ui)155。ui 155包括按钮160、按钮165、按钮170、按钮175和文本框180。在示例实施方式中,ui 155的用户可以对按钮160操作(例如,点击、推动、下压等)。响应于对按钮160的操作,可以打开文件选择窗口并且用户可以选择内容(例如,视频、指令、文章等等)。用户然后可以在文本框180中键入内容的名称。该名称可以是关键字的一部分,该关键字将导致到内容的链接被包括在搜索结果列表中。例如,关键字可能是修理和咖啡壶(可以描述视频的内容)。
34.ui 155的用户可以对按钮170进行操作(例如,点击、推动、下压等)。响应于对按钮170的操作,ui 130可以在设备150上变得可见(例如,打开、弹出等等)(在设备150上示出为虚线矩形)。ui 130包括按钮135、图像显示部分140和按钮145。按钮135可以被配置成触发图像的选择(例如,经由相机界面捕捉、选择为存储等)。响应于选择图像,可以在图像显示部分140中显示图像(例如,作为缩略图图像)。在图像显示部分140中显示图像可以给予ui的用户确认图像是根据需要和/或预期的机会。按钮145可以被配置成基于所选择的图像(例如,如显示在图像显示部分140中)触发搜索项的生成并关闭ui 130(例如,不再显示)。
35.响应于用ui 130完成动作,文本框185包括文本项1、项2、项3、...和项n作为描述图像的项。因此,描述图像的项可以是附加的关键字或语义信息,它们将导致到搜索结果列表中包括的内容的链接。例如,除了关键词修理和咖啡机之外,关键词品牌、型号、序列号等可以是基于图像的附加关键词。在示例实施方式中,新项(例如,语义查询文本)可以用作对工具(例如,机器学习(ml)模型)的反馈以改进工具(例如,训练ml模型。例如,如果用户添加文本,可以触发反馈,使得基于相似图像(例如,同一咖啡机的)的未来生成文本可以包括附加文本。
36.按钮165可以被配置成使内容和关键词或语义信息被存储(例如,作为元数据)到可搜索的数据结构(例如,数据库、知识图、文件结构等等)同时在设备150上保持打开ui 155(例如,允许上传附加内容。按钮175可以被配置成使内容和关键词被存储(例如,作为元数据)到可搜索的数据结构(例如,数据库、知识图、文件结构等)同时关闭ui 155(例如,不再可在设备150上查看)。可以使用ui 110搜索使用ui 155存储的内容。使用这种技术,相同项(例如,咖啡机)的图像可能导致在内容(例如,修理咖啡机的视频)的上传/存储中使用与在搜索内容中相同的项。
37.ui 130可以包括相关联的功能性,其可以识别图像中的对象和对象的部分并且生成与对象相关联的项或语义信息。此外,ui 130可以包括和/或与存储器相关联,该存储器可以包括存储实现功能性的代码、用于存储图像、项等的数据结构,以及可搜索的数据结构(例如,数据库、知识图、文件结构等)。ui 130可以被实现为存储在存储器中并由处理器执行的代码。
38.在示例用例中,用户可以上传(例如,使用按钮160)关于如何修理咖啡壶的内容(例如,视频)。用户可以点击按钮120以显示ui 130。用户可以将显示在图像显示部分140中的咖啡壶(例如,可能是损坏的咖啡壶)拍照并点击按钮145。点击按钮145可以触发图像分析并基于图像生成语义信息(例如,文本)。语义信息可以是咖啡机的制造和型号。上传的内容可以与语义信息相关联地存储(例如,作为元数据或文本元数据)。因此,关于如何修理咖啡壶的内容可以与咖啡壶的制造和型号相关联地存储。未来对上传内容的搜索,如何修理咖啡壶,包括文本查询,其包括语义信息、制造和型号,使用与上传内容相关联的语义信息类似的技术生成,应导致到结果列表中的上传内容的链接。当使用基于图像的语义信息上传和存储内容以及使用基于图像的语义信息搜索内容时,这可以导致更精确的结果列表。
39.图2a图示根据至少一个示例实施例的包括搜索机制的装置的部分的框图。如图2a中所示,装置200包括至少一个处理器205、至少一个存储器210和控制器220。至少一个存储器包括搜索存储器225。至少一个处理器205、至少一个存储器210和控制器220经由总线215通信耦合。
40.在图2a的示例中,装置200可以是至少一个计算设备并且应当被理解为实际上代表被配置成执行本文描述的技术的任何计算设备。因此,装置200可以被理解为包括可以被利用以实施本文描述的技术或其不同或未来版本的各种组件。例如,装置200被图示为包括至少一个处理器205,以及至少一个存储器210(例如,计算机可读存储介质)。
41.因此,至少一个处理器205可以被利用以执行存储在至少一个存储器210上的指令。因此,至少一个处理器205可以实现本文描述的各种特征和功能,或者附加的或替代的特征和功能(例如,搜索机制或工具)。至少一个处理器205和至少一个存储器210可以被利用用于各种其他目的。例如,至少一个存储器210可以被理解为代表各种类型的存储器和相关硬件和软件的示例,其可以用于实现本文描述的模块中的任何一个。根据示例实施方式,装置200可以被包括在更大的系统(例如,服务器、个人计算机、膝上型计算机、移动设备等)中。
42.至少一个存储器210可以被配置成存储与搜索存储器225和/或装置200相关联的数据和/或信息。至少一个存储器210可以是共享资源。例如,装置200可以是更大系统(例如,服务器、个人计算机、移动设备等)的元件。因此,至少一个存储器210可以被配置成存储与更大系统(例如,具有量化参数修正的音频编码器)内的其他元素(例如,网页浏览或无线通信)相关联的数据和/或信息。
43.控制器220可以被配置成生成各种控制信号并且将控制信号传达到装置200中的各个块。控制器220可以被配置成生成控制信号以便使用基于图像技术或者在此描述的其他技术使用对象识别来实现搜索。
44.至少一个处理器205可以被配置成执行与搜索存储器225和/或控制器220相关联的计算机指令。至少一个处理器205可以是共享资源。例如,装置200可以是更大系统(例如,服务器、个人计算机、移动设备等)的元件。因此,至少一个处理器205可以被配置成执行与更大系统内的其他元素(例如,服务网页、网页浏览或无线通信)相关联的计算机指令。
45.图2b图示根据至少一个示例实施例的存储器的框图。如图2b中所示,搜索存储器225可以包括对象识别230块、项生成器235块、搜索数据结构240块、图像数据存储245块和项数据存储250块。
46.对象识别230块可以被配置成标识包括在使用ui 130上传的图像中的任何对象。对象可以包括图像中的主要对象(例如,咖啡机)和主要对象的任何部分(例如、标识文本、组件等)。标识对象可以包括使用经训练的机器学习(ml)模型。经训练的ml模型可以被配置成生成与对象相关联的分类器和/或语义信息或文本。ml模型可以包括对服务器的函数调用,其包括执行模型的代码。ml模型可以包括ui(例如,ui 130)的代码内的函数调用,其可以包括要执行模型的代码(例如,作为对象识别230块的元素)。下面更详细地描述了用于对象识别的ml模型的示例。
47.项生成器235块可以被配置成基于由对象识别230块标识的对象来生成项和/或语义信息。例如,对象识别230块可以对每个对象进行分类。分类可以具有对应的项和/或语义信息。分类可以具有附加信息以进一步生成项和/或语义信息。例如,型号的分类还可以包括型号作为从图像确定的信息。分类可以更具包容性。例如,分类可以是文本,并且附加信息可以是型号。项生成器235可以被配置成在没有分类的情况下使用附加信息。例如,确定的型号可以是不使用文本或型号的项(例如,分类)。
48.搜索数据结构240块可以被配置成存储搜索数据结构、元数据和/或到搜索数据结构的链接。搜索数据结构240可以是例如数据库、知识图、文件结构等。搜索数据结构240可以被配置成接收搜索字符串并基于搜索字符串返回结果列表。
49.图像数据存储245块可以被配置成存储图像和/或与图像相关联的元数据作为经由ui 130的输入。项数据存储250块可以被配置成存储项和/或元数据,如由项生成器235生成的。项可以与对象分类相关地存储。
50.图3图示根据至少一个示例实施方式的用于视频搜索的自动过滤器机制300的示例用例。在框310处,计算设备(例如,膝上型计算机、台式计算机、移动设备等)可以接收初始查询(例如,搜索查询/字符串)。初始查询可以包括使用用户界面(例如,ui 110)键入的文本。初始查询可以包括基于图像的附加文本(例如,使用ui 130)。初始查询可以包括基于文本搜索视频内容的搜索数据结构。初始查询可以返回搜索结果或结果列表,包括到至少一个内容(例如,视频)的链接。在一些实施方式中,初始查询可以是“原始查询”(例如,图4的块410和图5的块510)和/或主页馈送可以是如下面参考图4至图7所描述的“视觉输入”(例如,图4的块420和图5的块520)。
51.在块320处,计算设备可以基于在310处执行的搜索来输出视频(例如,视频发现)。用户界面(例如,ui 110)的用户可以使用搜索结果的链接选择内容(例如,视频)。内容(例如,视频)可以显示在计算设备(例如,设备105)上。在一些实施方式中,搜索结果可以基于如下面参考图4和图6所描述的使用具有视觉输入的搜索查询执行的搜索,或者如下面参考图5和图7详细描述的使用索引内容的视觉匹配。在块320处可选择的视频的链接可以是相关视频,这些视频不仅基于查询文本而且基于由用户(例如,经由ui 130)提供的视觉输入(例如,图像)被过滤,如上所述。
52.在块330处,用户可以观看/查看内容(例如,视频),并且在块340处,对内容执行深入研究(例如,进一步的交互)。例如,在一些实施方式中,用户可以观看视频并且可以对视频执行深入研究。深入研究还可以是阅读产品说明(例如,组装或保养说明)、环境示例(例如,种植或照顾花卉)等。
53.在块350处,用户可以基于内容(例如,视频的深入研究)来执行一个或多个动作。
在一些实施方式中,由用户执行的动作可以包括在线购物、修理损坏的器具、种花等。
54.图4图示根据至少一个示例实施方式的用于构建具有视觉输入的搜索查询的方法的框图400。在示例实施方式中,用户可能正在搜索内容。例如,用户可能正在搜索有关如何修理损坏的灯的视频。
55.在块410处,用户可以在搜索引擎中键入查询。例如,用户可以在被配置成使用搜索引擎实现(或帮助实现)内容搜索的用户界面(例如,ui 110)中键入文本。在一些实施方式中,查询(例如,在图4中称为原始查询)可以是“如何”搜索字符串(例如,“如何修复”)。搜索引擎可以与视频储存库或应用相关联。因此,查询可能正在搜索视频(例如,“如何修复”视频)。
56.在块420处,可以提示用户上传图像或图片。用户上传的图像可以被称为来自用户的“视觉输入”。在一些实施方式中,例如,可以响应于用户键入搜索字符串、响应于用户界面中的一些用户交互、响应于用户点击按钮等来触发视觉输入。在一些实施方式中,可以在键入查询之前提示用户上传图像。换言之,块420可以在块410之前执行。
57.在块430处,可以基于查询和基于视觉输入的文本的组合来创建复合查询。在一些实施方式中,例如,可以基于语义查询添加来创建复合查询。在一些实施方式中,可以响应于视觉输入中对象的对象识别来生成基于视觉输入的文本。例如,经训练的ml模型可以被用于识别视觉输入中的对象。可以对识别的对象进行分类,并且项(例如,文本)可以对应于分类。经训练的ml模型可以被配置成生成与对象相关联的分类器和/或语义信息或文本。可以基于对象识别和/或分类准确的可能性来配置经训练的ml模型的置信或置信水平。
58.在一个示例实施方式中,在块430处,复合查询可以基于通用对象标识来生成复合查询“如何修理灯”。例如,在一般对象标识中,特定产品或对象的分类可能不是可用的。
59.在附加的示例实施方式中,在块440处,复合查询可以基于特定对象标识以生成复合查询“如何修理[品牌的]灯”。如果在432处在对象标识中的置信水平满足可以例如高于或低于第一阈值的某一条件(第一条件),则可以使用特定对象标识。在特定对象识别中,例如,可以标识对象的特定产品或分类。
[0060]
在另一附加示例实施方式中,在块450处,复合查询可以基于对象和场境标识来生成复合查询“如何修理损坏的[品牌的]灯”。如果在442处在对象和场境标识中的置信水平满足某一条件(第二条件),则可以使用对象和场境标识,该某一条件可以例如高于或低于第二阈值。例如,在“对象 场境”标识中,特定/一般标识以及对用户意图的理解可能不可用。
[0061]
因此,可以基于从一般对象标识开始并移动到完全场境标识(例如,视觉输入的)的复合查询来生成更相关的搜索结果。视觉输入的场境标识越完整或准确,用户整理搜索结果(例如,到内容的链接)中寻找相关内容(例如,产品评论、视频、价格比较、使用说明等)所需的时间就越少。
[0062]
图5图示根据至少一个示例实施方式的用于使用索引视频内容进行视觉匹配的信号流的框图500。如图5中所示,在块510处,用户可以在与搜索引擎相关联的用户界面(例如,ui 110)中键入查询(例如,类似于图4的块410)。在一些实施方式中,查询(例如,在图5中称为原始查询)可以是对内容(例如,视频)的搜索,例如,用户可能正在使用类似于如图4中所示的字符串“如何修复”进行搜索“操作方法”视频并且可能生成搜索结果(例如,到视
频的链接)。
[0063]
在块520处,可以提示用户上传图像或图片(例如,类似于图4的块420)。用户上传的图像(例如,损坏的灯的图像)可以被称为来自用户的“视觉输入”。在一些实施方式中,例如,可以响应于用户键入搜索字符串、响应于用户界面中的一些用户交互、响应于用户点击按钮等来触发视觉输入。
[0064]
在块522处,可以使用例如使用多遍方法(multi-pass approach)来针对语义和视觉实体信息分析视觉输入(例如,在块520处上传的图像)。例如,可以从用户上传的图像/图片中提取语义和视觉实体信息(例如,损坏的灯的制造商名称、型号等)。在一些实施方式中,可以响应于视觉输入中对象的对象识别来生成基于视觉输入的文本。例如,经训练的ml模型可以被用于识别视觉输入中的对象。可以对识别的对象进行分类,并且项(例如,文本)可以对应于分类。经训练的ml模型可以被配置成生成与对象相关联的分类器和/或语义信息或文本。可以基于对象识别和/或分类准确的可能性来配置经训练的ml模型的置信或置信水平。
[0065]
在块524处,可以生成视觉输入的元数据。在一些实施方式中,例如,视觉输入的元数据可以被用于过滤由搜索查询生成的搜索结果。例如,元数据可以包括至少一个项,诸如“损坏的”“[制造名称]”“灯”“[序列号]“操作方法”“修复”“[灯的颜色]”。
[0066]
在一些实施方式中,例如,可以如参考块530-538所图示的并且在下面详细描述的那样生成视频视觉元数据库(块538)。应注意的是,视频视觉元数据库(例如,具有以元数据进行标记的视频的视频语料库等)可以分别创建和存储。换言之,本公开描述了一种机制,该机制可以使用视觉输入的元数据来执行与索引视频内容的视觉匹配。
[0067]
在块530处,视频可以被上传到视频内容服务器。例如,视频(或一些其他内容)可以由用户使用用户界面(例如,ui 155)上传。在块532处,可以使用例如多遍方法为语义和视觉实体或对象信息分析每个视频的帧,类似于在块522处对视觉输入(例如,上传的图像)执行的操作。在示例实施方式中,针对语义和视觉实体或对象信息的分析可以包括使用经训练的机器学习(ml)模型。经训练的ml模型可用于识别帧中的对象。可以对识别的对象进行分类,并且项(例如,文本)可以对应于分类。经训练的ml模型可以配置成生成与对象相关联的分类器和/或语义信息或文本。ml模型可以包括对服务器的函数调用,其包括执行模型的代码。ml模型可以包括ui(例如,ui 130)的代码内的函数调用,其可以包括用于执行模型的代码(例如,作为对象识别230块的元素)。下面更详细地描述了用于对象识别的ml模型的示例。
[0068]
除了或可选地,在块534处,在一些实施方式中,例如,可以执行手动语义内容标记。在一些实施方式中,可以上传与视频相关联的图像。可以为语义和视觉实体或对象信息分析图像。在示例实施方式中,针对语义和视觉实体或对象信息的分析可以包括使用经训练的机器学习(ml)模型。经训练的ml模型可用于识别帧中的对象。可以对识别的对象进行分类,并且项(例如,文本)可以对应于分类。经训练的ml模型可以被配置成生成与对象相关联的分类器和/或语义信息或文本。ml模型可以包括对服务器的函数调用,其包括执行模型的代码。ml模型可以包括ui(例如,ui 130)的代码内的函数调用,其可以包括用于执行模型的代码(例如,作为对象识别230块的元素)。下面更详细地描述了用于对象识别的ml模型的示例。
[0069]
在一些实施方式中,例如,内容(例如,视频)创建者可以针对可用于与其他用户的视觉输入相关联的元数据来标记他们自己的视频。这可能有帮助,因为其准确性可能高于自动视觉输入。
[0070]
在块536处,可以生成视频的视频视觉元数据。在一些实施方式中,例如,可以生成带有时间戳的语义和视觉实体。在一些实施方式中,例如,时间戳可以用于对相关视频内容的更具体的建议。在损坏的灯的场境中,建议可能包括修理灯的说明在视频中的0:32到0:48(而不是整个视频,其可能包括对其他灯的完整评论)。
[0071]
在块538处,可以基于在532处对视频执行的逐帧分析和在536处生成的视频视觉元数据来生成视频视觉元数据库。应注意,关于块530、532、534、536和/或538描述的过程可以对数千/数百万个视频执行以生成视频视觉元数据库。
[0072]
在块540处,可以通过对视觉元数据执行匹配来过滤在块510处的查询的搜索结果。在一些实施方式中,例如,视觉输入的元数据(例如,在524处生成的)可以用于基于块510和块538的组合过滤搜索结果。例如,视觉输入的元数据可以被用于过滤由搜索查询生成的视频。
[0073]
在550处,可以向用户呈现最终搜索结果。在一些实施方式中,基于块510处的查询的搜索结果可以输出1000s的视频链接作为输出,相关视频和不相关视频。然而,通过将视觉输入的元数据与元数据库中的元数据(离线生成和存储)进行比较来过滤搜索结果,可以缩小搜索结果以产生更相关的搜索结果。
[0074]
所描述的机制基于搜索字符串和用户上传的输入图像向用户提供寻找视频的有用的服务。因此,可以基于如上所述的元数据比较来生成更相关的搜索结果。
[0075]
图6和7图示根据至少一种示例实施方式的方法的框图。关于图6和图7描述的步骤可以由于存储在与装置(例如,如图2a和2b中所示)相关联的存储器(例如,至少一个存储器210和/或搜索存储器225)中的软件代码的执行而被执行并且由与该装置相关联的至少一个处理器(例如,至少一个处理器205)执行。然而,设想替代实施例,诸如体现为专用处理器的系统。尽管以下描述的步骤被描述为由处理器执行,但是步骤不一定由相同的处理器执行。换句话说,至少一个处理器可以执行下面关于图6和图7描述的步骤。
[0076]
图6图示根据至少一个示例实施方式的用于构建具有视觉输入的搜索查询的方法的框图。在步骤s610中,计算设备(例如,设备105)可以接收查询。在一些实施方式中,例如,查询可以是搜索字符串,例如,“如何修复”,如在上面参考图4所描述的。搜索字符串可以被键入作为用户在用户界面(例如,ui 110)中的输入。
[0077]
在步骤s620中,计算设备可以接收与查询相关联的视觉输入。在一些实施方式中,可以响应于用户键入搜索字符串来触发视觉输入。在一个示例实施方式中,一旦用户在搜索栏中键入“如何修复”,则可能提示用户上传例如“损坏的灯”的图像/图片(或与查询相关联的任何其他图像,例如,损坏的咖啡机)。在一些实施方式中,可以响应于用户与用户界面交互(例如,按下按钮)来触发视觉输入。用户可以使用计算设备的相机来对图像(例如,灯的)进行拍摄并上传它。正在上传的图像可以称为视觉输入。
[0078]
在步骤s630中,计算设备可以至少基于查询和视觉输入的组合来创建复合查询。在一些实施方式中,例如,复合查询可以是第一复合查询(“如何修理灯”),其可以通过在图像上执行对象标识(例如,使用经训练的ml模型)(例如,检测用户上传的图像中的一个对
象)和使用标识的对象(“灯”)在查询中添加语义查询(“如何修复”)来创建。上面描述的对象标识可以被称为一般对象标识。
[0079]
在一些实施方式中,例如,计算设备可以进一步确定对象标识中的置信水平(例如,第一置信水平)是否满足条件,例如,第一条件,其可以例如是高于或低于第一阈值。置信水平可以与算法在对象标识中的置信如何相关联。在一些实施方式中,例如,置信水平可以取决于从用户接收的视觉输入的质量和/或次要信息(例如,灯的制造商、型号等)的可用性。如果认为置信水平满足条件,则计算设备可以使用至少标识的对象(特定对象标识)至少基于查询上的语义添加来生成复合查询,例如,第二复合查询,来生成例如,第二复合查询——“如何修理[品牌的]灯。”[0080]
在一些实施方式中,例如,计算设备可以确定对象标识中的置信水平(例如,第二置信水平)是否满足条件,例如,第二条件,其可以例如高于或低于第二阈值。如上所述,置信水平可以与算法在对象标识中的置信如何相关联。在一些实施方式中,例如,置信水平可以基于从用户接收到的视觉输入的质量和/或次要信息(例如,灯的制造商、型号等)的可用性。如果认为置信水平满足第二条件,则计算设备可以至少使用对象和场境标识基于语义查询添加生成复合查询,例如第三复合查询,来生成例如,第三复合查询
–“
如何修理损坏的[品牌的]灯。”[0081]
在一些实施方式中,例如,第一条件和/或第二条件可以由用户配置。例如,在一些实施方式中,第一条件可以被设置为93%的阈值并且第二条件可以被设置为95%的阈值。换句话说,如果对象的特定/准确理解满足95%的阈值,则复合查询可以依靠对象和场境标识来改进搜索结果等等。在一些实施方式中,条件可以由用户和/或基于用户正在搜索的项来配置。
[0082]
在步骤s640,计算设备可以基于复合查询(例如,第一、第二或第三复合查询)生成搜索结果。在一些实施方式中,例如,搜索结果可以包括到作为输出相关的内容(例如,视频)的多个链接。
[0083]
因此,基于以上,可以通过扩张(例如,附加、扩张等)具有视觉输入的搜索查询来优化搜索查询的结果。换言之,可以基于来自用户的视觉输入来过滤基于原始查询的搜索结果。
[0084]
图7图示根据至少一个示例实施方式的使用索引视频内容的视觉匹配方法的框图。例如,在一些实施方式中,该方法可以由图2a的计算设备执行。在步骤s710中,计算设备(例如,设备105)可以接收查询。在一些实施方式中,查询可以是搜索字符串,例如“如何修复”,如上文参考图5所描述的。搜索字符串可以作为用户界面(例如,ui110)中的输入由用户键入。步骤s710处的操作可以类似于块310处的操作。
[0085]
在步骤s720中,接收与查询相关联的视觉输入(操作可以类似于块320处的操作)。例如,计算设备可以接收与查询相关联的视觉输入。在一些实施方式中,可以响应于用户键入搜索字符串来触发视觉输入。在一个示例实施方式中,一旦用户在搜索栏中键入“如何修理”,用户可能被提示上传例如,“灯”或“损坏的灯”的图像/图片(或与查询相关联的任何其他图像,例如,损坏的咖啡机)。在一些实施方式中,可以响应于用户与用户界面交互(例如,按下按钮)来触发视觉输入。用户可以使用计算设备的相机拍摄损坏的灯的图像并上传它。正在上传的图像可以被称为视觉输入。
[0086]
在步骤s730中,计算设备可以基于查询生成搜索结果。在一些实施方式中,计算设备可以基于使用查询执行的搜索来生成搜索结果(例如,如在块510处接收的)。
[0087]
在步骤s740中,计算设备可以使用视觉输入的元数据来过滤搜索结果。在一些实施方式中,可以标识视觉输入中的对象(例如,使用ui 130的工具)。对象可以包括图像中的主要对象(例如,咖啡机)和主要对象的任何部分(例如,标识文本、组件等)。标识对象可以包括使用经训练的机器学习(ml)模型。经训练的ml模型可以被配置成生成与对象相关联的分类器和/或语义信息或文本。元数据可以与标识的对象相关联。搜索结果可以被过滤以包括其元数据与视觉输入的元数据(例如,在块510处标识的图像中的对象)匹配的内容(例如,视频)。
[0088]
在一些实施方式中,例如,计算设备可以在块510处通过将视觉输入的元数据与元数据库中的元数据信息匹配来基于查询过滤搜索结果。换言之,结果被过滤以输出包括其元数据与视觉输入的元数据(例如,块510处的图像)匹配的内容(例如,视频)。
[0089]
在步骤s750处,计算设备生成并呈现最终搜索结果。在示例实施方式中,最终搜索结果可以在用户界面(例如,ui 110)中呈现。
[0090]
因此,基于上述,可以通过扩张(例如,附加、扩张等)具有视觉输入的搜索查询并将图像的元数据与数百万内容(例如,存储的视频)的元数据进行比较来优化搜索查询的结果。换言之,可以基于来自用户的视觉输入过滤基于原始查询的搜索结果以提供更相关的搜索结果。
[0091]
图8图示根据至少一个示例实施方式的视频内容的视觉匹配方法的流程图。如图8中所示,在步骤s810中,计算设备(例如,设备150)接收内容(例如,视频)。例如,用户可以生成内容(例如,视频)并将其上传到与例如移动设备应用、网站、网络应用等相关联的可搜索数据结构。在一些实施方式中,用户可以使用用户界面(例如,ui 155)来上传内容(例如,视频)。
[0092]
在步骤s820中,计算设备接收与内容相关联的视觉输入。例如,用户可以触发用户界面以引起图像的输入。图像可以被捕获(例如,通过计算设备的相机)、从文件系统中选择等。在示例实施方式中,可以使用弹出式用户界面(例如,ui 130)来输入图像。
[0093]
在步骤s830中,计算设备基于视觉输入生成文本和/或语义信息。在一些实施方式中,可以标识视觉输入中的对象(例如,使用ui 130的工具)。对象可以包括图像中的主要对象(例如,咖啡机)和主要对象的任何部分(例如,标识文本、组件等)。标识对象可以包括使用经训练的机器学习(ml)模型。经训练的ml模型可以被配置成生成与对象相关联的分类器和/或语义信息或文本。元数据可以与标识的对象相关联。
[0094]
在步骤s840中,计算设备将文本和/或语义信息存储为与内容相关联的元数据。在一些实施方式中,可以响应于用户界面中的用户交互(例如,点击按钮)来存储元数据。
[0095]
图9a图示没有稀疏约束的卷积神经网络中的层。图9b图示具有稀疏约束的卷积神经网络中的层。参考图9a和9b,将描述用于在至少一个示例实施方式中使用的神经网络的各种配置。示例分层神经网络如图9a中所示。分层神经网络包括三层910、920、930。每个层910、920、930可以由多个神经元905形成。在这个实施方式中,还没有应用稀疏约束。因此,每个层910、920、930中的所有神经元905都与任何邻近层910、920、930中的所有神经元905联网。
[0096]
图9a中所示的示例神经网络由于少量的神经元905和层在计算上并不复杂。然而,图9a中所示的神经网络的布置由于连接的密度(例如,神经元/层之间的连接)可能无法扩展到更大尺寸的网络。换句话说,计算复杂度可能太大,因为网络的大小以非线性方式缩放。因此,如果神经网络需要以大量的维度放大以进行工作,则将每个层910、920、930中的所有神经元905与一个或多个邻近层910、920、930中的所有神经元905联网可能在计算上过于复杂。
[0097]
可以使用初始稀疏条件来降低神经网络的计算复杂度。例如,如果神经网络用作优化过程,则神经网络方法可以通过限制神经元和/或层之间的连接数量来处理高维数据。具有稀疏约束的神经网络的示例在图9b中示出。如图9b中所示的神经网络被布置为使得每个神经元905仅连接到邻近层940、950、960中的少量神经元905。这可以形成不完全连接的神经网络,并且可以缩放以对更高维数据起作用。例如,具有稀疏性约束的神经网络可用作模型的优化过程和/或生成用于基于用户发布回复对回复进行评级/降级的模型。与完全联网的神经网络相比,较少数量的连接允许神经元之间的连接数量以基本线性的方式缩放。
[0098]
在一些实施方式中,可以使用神经网络,其被完全连接或不完全连接但在与关于图9b描述的不同的特定配置中。此外,在一些实施方式中,可以使用不完全连接并且具有比完全连接的神经网络低的复杂性的卷积神经网络。卷积神经网络还可以利用池化或最大池化来减少流经神经网络的数据的维数(以及因此复杂性)。可以使用其他方法来减少卷积神经网络的计算复杂度。
[0099]
图10图示根据示例实施例的模型的框图。模型1000可以包括多个卷积层1015、1020、1025、1035、1040、1045、1050、1055、1060和添加层1030的卷积神经网络(cnn)。多个卷积层1015、1020、1025、1035、1040、1045、1050、1055、1060可以均是至少两种类型的卷积层之一。如图10中所示,卷积层1015和卷积层1025可以是第一卷积类型。卷积层1020、1035、1040、1045、1050、1055和1060可以是第二卷积类型。图像(例如,使用ui 130上传)和/或视频帧(例如,使用ui 155上传)可以被输入到cnn。归一化层1005可以将输入图像转换为可以用作到cnn的输入的图像1010。模型1000进一步包括检测层1075和抑制层1080。模型1000可以基于计算机视觉模型。
[0100]
归一化层1005可以被配置成归一化输入图像。归一化可以包括将图像转换为mxm个像素。在示例实施方式中,归一化层1005可以将输入图像归一化为300x300个像素。此外,归一化层1005可以生成与图像1010相关联的深度。在示例实施方式中,图像1010可以具有多个通道、深度或特征图。例如,rgb图像可以具有三个通道,红色(r)通道、绿色(g)通道和蓝色(b)通道。换句话说,对于mxm(例如,300x300)个像素中的每一个,存在三(3)个通道。特征图可以具有与图像相同的结构。然而,代替像素,特征图具有基于至少一个特征(例如,颜色、频域、边缘检测器等)的值。
[0101]
卷积层或卷积可以被配置成从图像中提取特征。特征可以基于颜色、频域、边缘检测器等。卷积可以具有过滤器(有时称为内核)和步幅。例如,过滤器可以是具有步幅为1的1x1过滤器(或用于变换到n个输出通道的1x1xn,1x1过滤器有时称为逐点卷积),这导致基于在mxm网格的位置处每个通道的信元的特征的组合生成的信元的输出(例如,加、减、乘等等)。换言之,具有一个以上的深度或通道的特征图被组合成具有单个深度或通道的特征图。过滤器可以是步幅为1的3x3过滤器,这导致mxm网格或特征图的每个通道以较少的信元
的输出。
[0102]
输出可以具有相同深度或数量的通道(例如,3x3xn过滤器,其中n=信道的深度或数量,有时称为逐深度过滤器)或减少的信道的深度或数量(例如,3x3xk过滤器,其中k《通道的深度或数量)。每个通道、深度或特征图都可以具有相关联的过滤器。每个关联的过滤器都可以配置成强调通道的不同方面。换句话说,可以基于过滤器从每个通道中提取不同的特征(这有时称为逐深度可分离过滤器)。其他过滤器在本公开的范围内。
[0103]
另一种类型的卷积可以是两个或更多个卷积的组合。例如,卷积可以是逐深度和逐点可分离的卷积。这可以包括,例如,两步的卷积。第一步可以是深度卷积(例如,3x3卷积)。第二步可以是逐点卷积(例如,1x1卷积)。逐深度卷积和逐点卷积可以是可分离的卷积,因为不同的过滤器(例如,提取不同特征的过滤器)可以用于特征图的每个通道或每个深度。在一个示例实施方式中,逐点卷积可以基于过滤器将特征图变换为包括c个通道。例如,8x8x3的特征图(或图像)可以基于过滤器转变换为8x8x256的特征图(或图像)。在一些实施方式中,可以使用一个以上的过滤器以将特征图(或图像)变换为mxmxc特征图(或图像)。
[0104]
卷积可以是线性的。线性卷积依据输入将输出描述为线性时不变(lti)。卷积还可以包括整流线性单元(relu)。relu是一种激活函数,用于整流卷积的lti输出并将整流后的输出限制为最大值。relu可以被用于加速收敛(例如,更有效的计算)。
[0105]
在示例实施方式中,第一类型的卷积可以是1x1卷积并且第二类型的卷积可以是逐深度和逐点可分离的卷积。多个卷积层1020、1035、1040、1045、1050、1055、1060中的每一个可以具有多个信元和每个信元至少一个边界框。卷积层1015、1020、1025和添加层1030可以被用于将图像1010变换为与vgg-16标准的conv_3层的特征图大小相等的特征图。换言之,卷积层1015、1020、1025和添加层1030可以将图像1010变换为38x38x512的特征图。
[0106]
卷积层1035、1040、1045、1050、1055、1060可以被配置成将特征图增量地变换为1x1x256特征图。这种增量转换可能导致生成不同大小的边界框(特征图或网格的区域),其可以检测多种大小的对象。每个信元可以具有至少一个相关联的边界框。在示例实施方式中,网格越大(例如,信元数量),每个信元的边界框数量越少。例如,最大的网格每个信元可以使用三(3)个边界框,而较小的网格每个信元可以使用六(6)个边界框。
[0107]
检测层1075接收与每个边界框相关联的数据。在示例实施方式中,边界框之一可以包括主要对象(例如,咖啡机)并且多个附加边界框可以包括与主要对象相关联的标识文本、组件等等。数据可以与边界框中的特征相关联。数据可以指示边界框中的对象(该对象可以不是对象或对象的一部分)。对象可以通过其特征来标识。数据有时被累积称为类或分类器。类或分类器可以与对象相关联。数据(例如,边界框)还可以包括置信得分(例如,零(0)与一(1)之间的数字)。
[0108]
在cnn处理图像之后,检测层1075可以接收并包括指示同一对象的多个分类器。换言之,对象(或对象的一部分)可以在多个重叠的边界框内。但是,每个分类器的置信得分可能不同。例如,标识对象的一部分的分类器可以具有比标识完整(或基本完整)对象的分类器更低的置信得分。检测层1075还可以被配置成丢弃没有关联分类器的边界框。换言之,检测层1075可以丢弃其中没有对象的边界框。
[0109]
抑制层1080可以被配置成基于置信得分对边界框进行排序并且可以选择具有最
高得分的边界框作为标识对象的分类器。抑制层可以对具有相同或基本相似分类器的每个边界框重复排序和选择过程。结果,抑制层可以包括标识输入图像中的每个对象的数据(例如,分类器)。
[0110]
如上所述,卷积层1015、1020、1025和添加层1030可以生成38x38x512的特征图。每个信元(例如,1444个信元中的每一个)可以具有至少三(3)个边界框。因此,至少4332个边界框可以从添加层1030传达到检测层1075。卷积层1035和卷积层1040可以是第二类型的卷积并且被配置成执行3x3x1024卷积和1x1x1024卷积。结果可以是作为19x19x1024的特征图。每个信元(例如,361个信元中的每一个)可以具有至少六(6)个边界框。因此,至少2166个边界框可以从卷积层1040传达到检测层1075。
[0111]
卷积层1045可以是第二类型的卷积并且被配置成执行3x3x512卷积。结果可以是作为10x10x512的特征图。每个信元(例如,100个信元中的每一个)可以具有至少六(6)个边界框。因此,至少600个边界框可以从卷积层1045传达到检测层1075。卷积层1050可以是第二类型的卷积并且被配置成执行3x3x256卷积。结果可以是作为5x5x256的特征图。每个信元(例如,25个信元中的每一个)可以具有至少六(6)个边界框。因此,至少150个边界框可以从卷积层1050传送到检测层1075。
[0112]
卷积层1055可以是第二类型的卷积并且被配置成执行3x3x256卷积。结果可以是作为3x3x256的特征图。每个信元(例如,9个信元中的每一个)可以具有至少六(6)个边界框。因此,至少54个边界框可以从卷积层1055传达到检测层1075。卷积层1060可以是第二类型的卷积并且被配置成执行3x3x128卷积。结果可以是作为1x1x128的特征图。信元可以具有至少六(6)个边界框。六(6)个边界框可以从卷积层1060传达到检测层1075。因此,在示例实施方式中,检测层1075可以处理至少7,298个边界框。
[0113]
然而,可以将额外的边界框添加到每个卷积层的特征图中。例如,可以根据信元的数量(例如,mxm)将固定数量的边界框(有时称为锚点)添加到每个特征图中。这些边界框可以覆盖一个以上的信元。信元数量越大,添加的边界框就越多。随着边界框数量的增加,在边界框内捕获对象的可能性可能增加。因此,通过增加每个信元的边界框数量和/或通过增加每个特征图的固定框数量,可以增加标识图像中对象的可能性。此外,边界框可以在特征图上具有位置。结果,可以将一个以上的相同对象(例如,文本、组件等)标识为在图像中。
[0114]
一旦模型(例如,模型1000)架构已经被设计(和/或在操作中),模型就应该被训练(有时被称为开发模型)。可以使用多个图像(例如,产品、部分产品、环境对象(例如,植物)、说明小册子等)来训练模型。训练模型可以包括生成分类器和与分类器相关联的语义信息。
[0115]
图11示出了可以与本文描述的技术一起使用的计算机设备1100和移动计算机设备1150的示例。计算设备1100旨在代表各种形式的数字计算机,诸如膝上型计算机、台式计算机、工作站、个人数字助理、服务器、刀片服务器、大型机和其他适当的计算机。计算设备1150旨在代表各种形式的移动设备,诸如个人数字助理、蜂窝电话、智能电话和其他类似的计算设备。此处所示的组件,它们的连接和关系以及它们的功能仅是示例性的,并不意味着限制本文档中描述和/或要求保护的发明的实现方式。
[0116]
计算设备1100包括处理器1102、存储器1104、存储设备1106、连接到存储器1104和高速扩展端口1110的高速接口1108、以及连接到低速总线1114和存储设备1106的低速接口1112。组件1102、1104、1106、1108、1110和1112中的每一个都使用各种总线互连,并且可以
安装在通用主板上,或采用其他合适的方式。处理器1102可以处理用于在计算设备1100内执行的指令,包括存储在存储器1104或存储设备1106中的指令,以在耦合到高速接口1108的,诸如显示器1116的外部输入/输出设备上显示gui的图形信息。在其他实现方式中,可以适当地使用多个处理器和/或多个总线,以及多个存储器和存储器类型。而且,可以连接多个计算设备1100,其中每个设备提供必要的操作的部分(例如,作为服务器组、一组刀片服务器或多处理器系统)。
[0117]
存储器1104在计算设备1100内存储信息。在一种实现方式中,存储器1104是一个或多个易失性存储器单元。在另一实现方式中,存储器1104是一个或多个非易失性存储器单元。存储器1104也可以是另一种形式的计算机可读介质,诸如磁盘或光盘。
[0118]
存储设备1106能够为计算设备1100提供大容量存储。在一种实现方式中,存储设备1106可以是或包含计算机可读介质,诸如软盘设备、硬盘设备、光盘设备、或磁带设备、闪存或其他类似的固态存储器设备或设备阵列,包括存储区域网络或其他配置中的设备。计算机程序产品可以有形地体现在信息载体中。该计算机程序产品还可以包含在被执行时执行诸如上述的一种或多种方法的指令。信息载体是计算机或机器可读介质,诸如存储器1104、存储设备1106或处理器1102上的存储器。
[0119]
高速控制器1108管理计算设备1100的带宽密集型操作,而低速控制器1112管理较低带宽密集型操作。这种功能分配仅是示例性的。在一种实现方式中,高速控制器1108(例如,通过图形处理器或加速器)耦合到存储器1104、显示器1116、以及耦合到可以接受各种扩展卡(未示出)的高速扩展端口1110。在该实现方式中,低速控制器1112耦合到存储设备1106和低速扩展端口1114。可以包括各种通信端口(例如,usb、蓝牙、以太网、无线以太网)的低速扩展端口可以例如通过网络适配器耦合至一个或多个输入/输出设备,诸如键盘、定点设备、扫描仪或诸如交换机或路由器之类的网络设备。
[0120]
计算设备1100可以以多种不同形式实现,如图所示。例如,它可以被实现为标准服务器1120,或者被实现为一组这样的服务器中的多次。它也可以实现为机架服务器系统1124的一部分。此外,它还可以被实现在诸如膝上型计算机1122之类的个人计算机中。可替换地,来自计算设备1100的组件可以与移动设备(未示出)中的其他组件,诸如设备1105组合。每个这样的设备可以包含一个或多个计算设备1100、1150,并且整个系统可以由彼此通信的多个计算设备1100、1150组成。
[0121]
计算设备1150包括处理器1152、存储器1164、诸如显示器1154的输入/输出设备、通信接口1166和收发器1168、以及其他组件。设备1150还可以配备有存储设备,诸如微驱动器或其他设备,以提供附加的存储。组件1150、1152、1164、1154、1166和1168中的每一个使用各种总线互连,并且其中一些组件可以安装在通用主板上,或采用其他合适的方式。
[0122]
处理器1152可以执行计算设备1150内的指令,包括存储在存储器1164中的指令。处理器可以被实现为包括独立的或多个模拟和数字处理器的芯片的芯片组。处理器可以提供例如用于设备1150的其他组件的协调,诸如对用户接口、由设备1150运行的应用以及由设备1150进行的无线通信的控制。
[0123]
处理器1152可以通过控制接口1158和耦合到显示器1154的显示器接口1156与用户通信。显示器1154可以是例如tft lcd(薄膜晶体管液晶显示器)或oled(有机发光二极管)显示器或其他适当的显示器技术。显示器接口1156可以包括用于驱动显示器1154向用
户呈现图形和其他信息的适当电路。控制接口1158可以从用户接收命令并且将其转换以提交给处理器1152。另外,可以提供与处理器1152通信的外部接口1162,以使得设备1150能够与其他设备进行近距离通信。外部接口1162可以例如在一些实现方式中提供用于有线通信,或者在其他实现方式中提供用于无线通信,并且也可以使用多个接口。
[0124]
存储器1164在计算设备1150内存储信息。存储器1164可以被实现为一个或多个计算机可读介质、一个或多个易失性存储器单元、或一个或多个非易失性存储器单元。还可以提供扩展存储器1174,并通过扩展接口1172将其连接到设备1150,扩展接口1172可以包括例如simm(单列存储器模块)卡接口。这样的扩展存储器1174可以为设备1150提供额外的存储空间,或者还可以为设备1150存储应用或其他信息。具体地,扩展存储器1174可以包括用于执行或补充上述过程的指令,并且还可以包括安全信息。因此,例如,扩展存储器1174可以被提供为设备1150的安全模块,并且可以用允许安全使用设备1150的指令来编程。另外,可以经由simm卡以及附加信息来提供安全应用,诸如以不可入侵的方式将标识信息放置在simm卡上。
[0125]
存储器可包括例如闪存和/或nvram存储器,如下所述。在一种实现方式中,计算机程序产品有形地体现在信息载体中。该计算机程序产品包含在执行时执行诸如上述的一种或多种方法的指令。信息载体是计算机或机器可读介质,诸如存储器1164、扩展存储器1174、或处理器1152上的存储器,可以例如通过收发器1168或外部接口1162接收。
[0126]
设备1150可以通过通信接口1166进行无线通信,该通信接口1166在必要时可以包括数字信号处理电路。通信接口1166可以提供诸如gsm语音呼叫、sms、ems或mms消息收发、cdma、tdma、pdc、wcdma、cdma2000或gprs等等的各种模式或协议下的通信。这样的通信可以例如通过射频收发器1168发生。另外,可以发生短距离通信,诸如使用蓝牙、wi-fi或其他这样的收发器(未示出)。另外,gps(全球定位系统)接收器模块1170可以向设备1150提供附加的与导航和位置相关的无线数据,设备1150上运行的应用可以适当使用这些数据。
[0127]
设备1150还可以使用音频编解码器1160在听觉上进行通信,该音频编解码器1160可以从用户接收口头信息,并将其转换为可用的数字信息。音频编解码器1160同样可以诸如通过在例如设备1150的手机中的扬声器为用户生成可听见的声音。这种声音可以包括来自语音电话呼叫的声音,可以包括记录的声音(例如,语音消息、音乐文件等),并且还可以包括在设备1150上运行的应用生成的声音。
[0128]
计算设备1150可以以多种不同的形式实现,如图所示。例如,它可以被实现为蜂窝电话1180。它还可以被实现为智能电话1182、个人数字助理或其他类似移动设备的一部分。
[0129]
在一般方面,一种设备、系统、非暂时性计算机可读介质(在其上存储有可以在计算机系统上执行的计算机可执行程序代码)和/或一种方法,可以通过包括下述的方法来执行过程:在第一时间接收文本查询,在第一时间之后的第二时间接收与文本查询相关联的视觉输入,基于视觉输入生成文本,基于文本查询和基于视觉输入的文本的组合生成复合查询,以及基于复合查询生成搜索结果,该搜索结果包括到内容的多个链接。
[0130]
在另一个一般方面,一种设备、系统、非暂时性计算机可读介质(在其上存储有可以在计算机系统上执行的计算机可执行程序代码)和/或一种方法可以通过包括下述的方法来执行过程:接收文本查询,接收与查询相关联的视觉输入,基于文本查询生成搜索结果,基于视觉输入生成文本元数据,使用文本元数据过滤搜索结果,以及基于过滤生成过滤
后的搜索结果,该过滤后的搜索结果提供到内容的多个链接。
[0131]
在又一个总体方面,一种设备、系统、非暂时性计算机可读介质(其上存储有可以在计算机系统上执行的计算机可执行程序代码)和/或一种方法可以通过包括下述的方法来执行过程:接收内容,接收与内容相关联的视觉输入,对视觉输入执行对象标识,基于对象标识生成语义信息,以及存储内容和与内容相关联的语义信息。
[0132]
实施方式可以包括以下特征中的一个或多个。例如,复合查询可以是第一复合查询。第一复合查询的创建可以包括对视觉输入执行对象标识,并且使用至少基于对象标识所标识的对象对查询执行语义查询添加以生成第一复合查询,其中搜索结果是基于第一复合查询。对象标识的执行可以使用经训练的机器学习模型。对象标识的执行可以使用经训练的机器学习模型,经训练的机器学习模型可以为视觉输入中的对象生成分类器,并且语义查询添加的执行可以包括基于用于对象的分类器生成基于视觉输入的文本。
[0133]
该方法可以进一步包括确定对象标识中的第一置信水平是否满足第一条件,并且至少使用所标识的满足第一条件的对象对查询执行语义查询添加以生成第二复合查询,搜索结果可以基于第二复合查询。该方法可以进一步包括确定对象标识中的第二置信水平是否满足第二条件,并且至少使用所标识的满足第二条件的对象对查询执行语义查询添加以生成第三复合查询,其中搜索结果基于第三复合查询。第二置信水平可以高于第一置信水平。第一条件和第二条件可以由用户配置。
[0134]
尽管示例实施例可以包括各种修改和替代形式,但是其实施例在附图中以示例的方式示出并且在本文中将会被详细描述。然而,应理解,不旨在将示例实施例限制为所公开的特定形式,而是相反,示例实施例将覆盖落入权利要求范围内的所有修改、等同形式和替代形式。在整个附图的描述中,相同的标号表示相同的元件。
[0135]
在此描述的系统和技术的各种实现方式可以在数字电子电路、集成电路、专门设计的asic(专用集成电路)、计算机硬件、固件、软件和/或其组合中实现。这些各种实现方式可以包括在一个或多个计算机程序中的实现方式,该一个或多个计算机程序可以在包括至少一个可编程处理器、至少一个输入设备以及至少一个输出设备的指令的可编程系统上执行和/或解释,该至少一个可编程处理器可以是专用的或通用的,被耦合为从存储系统接收数据和指令并向存储系统传输数据和指令。这里描述的系统和技术的各种实现方式可以被实现为和/或在本文中通常被称为可以组合软件和硬件方面的电路、模块、块或系统。例如,模块可以包括在处理器(例如,在硅衬底,gaas衬底等上形成的处理器)或某种其他可编程数据处理装置上执行的功能/动作/计算机程序指令。
[0136]
以上示例实施例中的一些被描述为描绘为流程图的过程或方法。尽管流程图将操作描述为顺序过程,但是许多操作可以并行或同时地被执行。另外,可以重新安排操作顺序。这些过程可以在其操作完成时终止,但也可以具有图中未包括的附加的步骤。该过程可以对应于方法、功能、过程、子例程、子程序等。
[0137]
其中一些由流程图示出的以上讨论的方法可以由硬件、软件、固件中间件、微代码、硬件描述语言或其任意组合来实现。当以软件、固件、中间件或微代码实现时,用于执行必要任务的程序代码或代码段可以存储在机器或计算机可读介质诸如存储介质中。处理器可以执行必要的任务。
[0138]
本文公开的特定结构和功能细节仅出于描述示例实施例的目的而具有代表性。然
而,示例实施例以许多替代形式来体现,并且不应解释为仅限于本文阐述的实施例。
[0139]
将理解的是,尽管在本文中可以使用术语第一、第二等来描述各种元件,但是这些元件不应受到这些术语的限制。这些术语仅用于区分一个元件和另一元件。例如,在不脱离示例实施例的范围的情况下,第一元件可以被称为第二元件,并且类似地,第二元件可以被称为第一元件。如本文所使用的,该术语和/或包括一个或多个相关联的所列项目的任何和所有组合。
[0140]
将理解的是,当元件被称为连接或耦合至另一元件时,其可以直接连接或耦合至另一元件,或者可以存在中间元件。相反,当元件被称为直接连接或直接耦合至另一元件时,则不存在中间元件。用于描述元件之间的关系的其他词语应该以类似的方式来解释(例如,在彼此之间与直接在彼此之间、相邻与直接相邻之间等)。
[0141]
本文所使用的术语仅出于描述特定实施例的目的,并且不旨在限制示例实施例。如本文所使用的,除非场境另外明确指出,单数形式的“一”、“一个”和“该”也意图包括复数形式。将进一步理解的是,当在本文中使用时,术语“包括”和/或“包含”指定所陈述的特征、整数、步骤、操作、元件和/或组件的存在,但不排除一个或多个其他特征、整数、步骤、操作、元件、组件和/或其组存在或添加的含义。
[0142]
还应注意,在一些替代实现方式中,所指出的功能/动作可以不按图中所指出的顺序发生。例如,取决于所涉及的功能/动作,连续示出的两个图实际上可以同时执行或者有时可以以相反的顺序执行。
[0143]
除非另有定义,否则本文中使用的所有术语(包括技术术语和科学术语)具有与示例实施例所属的本领域的普通技术人员通常所理解的相同含义。还将理解的是,例如在常用词典中定义的那些术语应被解释为具有与其在相关技术的场境中的含义一致的含义,并且除非在此明确地如此定义,将不被解释为期望化或过度形式化的含义。
[0144]
根据对计算机存储器内的数据位的操作的软件、算法和符号表示来呈现以上示例实施例的部分和相应的详细描述。这些描述和表示是本领域普通技术人员通过有效地将其工作的实质传递给本领域其他普通技术人员的描述和表示。如本文中使用的术语以及通常被使用的算法被认为是导致期望结果的步骤的自洽序列。这些步骤是需要对物理量进行物理操纵的步骤。通常,尽管不是必须的,这些量采取能够被存储、传输、组合、比较和以其他方式操纵的光、电或磁信号的形式。主要出于通用的原因,有时已经证明将这些信号称为比特、值、元素、符号、字符、项、数字等是方便的。
[0145]
在以上说明性实施例中,参考可以被实现为程序模块或功能过程的操作的动作和符号表示(例如,以流程图的形式),其包括例程,程序,对象,组件,数据结构等,它们执行特定任务或实现特定抽象数据类型,并且可以使用现有硬件以现有结构元素得以描述和/或实现。这样的现有硬件可以包括一个或多个中央处理单元(cpu)、数字信号处理器(dsp)、专用集成电路、现场可编程门阵列(fpga)计算机等。
[0146]
然而,应当牢记,所有这些和类似术语均与适当的物理量相关联,并且仅仅是应用于这些量的方便标签。除非另有特别说明,或者从讨论中显而易见,诸如处理或计算或显示的确定等的术语是指计算机系统或类似电子计算设备的动作和过程,其操纵表示为在计算机系统寄存器或存储器中的物理、电子量的数据并且将其转换为类似地表示为在计算机系统存储器或寄存器或其他此类信息存储、传输或显示设备中的其他物理量的数据。
[0147]
还应注意,示例实施例的软件实现的方面通常在某种形式的非暂时性程序存储介质上被编码或在某种类型的传输介质上被实现。程序存储介质可以是磁性的(例如,软盘或硬盘驱动器)或光学的(例如,光盘只读存储器或cd rom),并且可以是只读或随机存取的。类似地,传输介质可以是双绞线对、同轴电缆、光纤或本领域已知的一些其他合适的传输介质。示例实施例不受任何给定实现方式的这些方面的限制。
[0148]
最后,还应注意,尽管所附权利要求书列出了本文所述特征的特定组合,但是本公开的范围不限于下文要求保护的特定组合,而是扩展为涵盖特征或在此公开的实施例的任何组合,不论此时是否在所附权利要求中具体列举了该特定组合。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献