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

用于修改查询图像的技术的制作方法

2021-12-15 02:22:00 来源:中国专利 TAG:

用于修改查询图像的技术


背景技术:

1.基于图像的搜索引擎允许用户以输入图像的形式提交查询。基于图像的搜索引擎标识显示与输入图像相似内容的一个或多个候选图像。然而,这种类型的搜索引擎由于其不灵活而具有各种限制。


技术实现要素:

2.本文描述了一种用于执行基于图像的搜索的计算机实现的技术,其允许用户制作表达用户搜索意图的自定义查询图像,而不是接受作为固定的给定的输入查询图像。该技术基于描述查询图像的至少一个预期特性的一个或多个用户供应的输入图像和/或一个或多个用户供应的信息项来生成查询图像。该技术然后将查询图像提交给搜索引擎,并且作为响应,接收与查询图像相匹配的候选图像集合。
3.在一种实现方式中,该技术使用对混合潜在变量向量进行操作的解码器神经网络来构建查询图像。该技术依次通过以下方式产生混合潜在变量向量:使用编码器以基于第一输入图像产生第一潜在变量向量;使用编码器以基于第二输入图像产生第二潜在变量向量;然后组合第一潜在变量向量与第二潜在变量向量以产生混合潜在变量向量。
4.根据另一说明性方面,该技术包括允许用户指定要被应用于一个或多个输入图像的加权值的各种图形控件。
5.根据另一说明性方面,该技术使用生成对抗网络(gan)来产生解码器神经网络。备选地,该技术可以通过训练变分自动编码器(vae)或基于流的神经网络系统来产生编码器神经网络和解码器神经网络。
6.以上概述的技术能够被体现在各种类型的系统、设备、组件、方法、计算机可读存储介质、数据结构、图形用户界面呈现、制品等中。
7.本发明内容被提供来以简化的形式介绍一些概念;这些概念在下面的详细说明中被进一步描述。本发明内容既不旨在标识要求保护的主题的关键特征或必要特征,也不旨在被用来限制要求保护的主题的范围。
附图说明
8.图1示出了用于产生基于图像的查询和用于使用基于图像的查询来实施搜索的说明性计算环境。
9.图2示出了可以被用来实现图1的计算环境的设备。
10.图3示出了图1的计算环境的一种实现方式,在本文中被称为机器学习(ml)计算环境。
11.图4示出了图3的实现方式的操作的示例。
12.图5示出了神经网络的一部分。图3的实现可以包括一个或多个神经网络。
13.图6示出了用于产生用于图3的实现中的应用的加权值的第一图形控件。
14.图7示出了用于产生加权值的第二图形控件。
15.图8示出了用于修改生成的图像的不同属性的图形控件。
16.图9示出了使用生成式对抗网络(gan)以用于产生用于在图3的实现中使用的解码器神经网络的训练系统。
17.图10示出了用于在图3的实现中使用的编码器的第一版本。
18.图11示出了用于在图3的实现中使用的编码器的另一版本。
19.图12示出了可以被用来实现图3的实现的各种组件的卷积神经网络(cnn)。
20.图13示出了使用变分自动编码器(vae)来产生用于在图3中使用的编码器和解码器的训练系统。
21.图14示出了使用基于流的神经网络系统来产生图3的编码器和解码器的训练系统。
22.图15示出了表示图1的计算环境的操作的概览的过程。
23.图16和图17一起示出了表示图3的ml计算环境的操作的概览的过程。
24.图18示出了一种说明性类型的计算设备,其可以被用来实现上述附图中所示的特征的任何方面。
25.贯穿本公开和附图使用相同的编号来引用相似的组件和特征。系列100编号是指初始在图1中发现的特征,系列200编号是指初始在图2中发现的特征,系列300编号是指初始在图3中发现的特征,以此类推。
具体实施方式
26.本公开内容被组织如下。a部分描述了用于帮助用户构建基于图像的查询的计算环境。b部分阐述了解释a部分的计算环境的操作的说明性方法。c部分描述了可以被用来实现a部分和b部分中描述的特征的任何方面的说明性计算功能性。
27.作为预备事项,术语“硬件逻辑电路”对应于执行存储在存储器中的机器可读指令的一个或多个硬件处理器(例如,cpu、gpu等),和/或使用固定和/或可编程逻辑门的特定于任务的集合来执行操作的一个或多个其他硬件逻辑单元(例如,fpga)。c部分提供了关于硬件逻辑电路的一种实现的附加信息。在某些上下文中,术语“组件”和“引擎”中的每个都指的是执行特定功能的硬件逻辑电路的一部分。
28.在一种情况下,在附图中所图示的将各个部分分成不同的单元可以反映在实际实现中对对应的不同物理和有形部分的使用。备选地或另外地,在附图中所图示的任何单个部分可以由多个实际物理部分来实现。备选地或另外地,对附图中的任何两个或更多分开的部分的描绘可以反映由单个实际物理部分执行的不同功能。
29.其他附图以流程图的形式描述了这个概念。以这种形式,某些操作被描述为构成以特定顺序执行的不同块。这样的实现方式是说明性的而非限制性的。本文描述的某些块可以被组合在一起并且在单个操作中执行,某些块可以被分解为多个组件块,并且某些块可以按照与本文所图示的顺序不同的顺序来执行(包括执行块的并行方式)。在一种实现方式中,流程图中所示的涉及处理相关的功能的块可以由在c部分中所描述的硬件逻辑电路来实现,所述硬件逻辑电路继而由可以由一个或多个硬件处理器和/或其他逻辑单元来实现,其包括逻辑门的特定于任务的集合。
30.关于术语,短语“被配置为”涵盖用于执行所识别的操作的各种物理和有形机制。
这些机制可以被配置为使用c部分的硬件逻辑电路来执行操作。术语“逻辑”同样涵盖用于执行任务的各种物理和有形机制。例如,流程图中所图示的每个处理相关的操作对应于用于执行该操作的逻辑组件。逻辑组件可以使用c部分的硬件逻辑电路来执行其操作。当通过计算设备来实现时,无论以何种方式来实现,逻辑组件都表示作为计算系统物理部分的电气组件。
31.本文描述的任何存储资源或者存储资源的任何组合都可以被视为计算机可读介质。在许多情况下,计算机可读介质表示某种形式的物理和有形实体。术语计算机可读介质还涵盖例如经由物理管道和/或空气或其他无线介质等方传送或接收的传播信号。然而,特定术语“计算机可读存储介质”明确排除了传播信号本身,同时包括所有其他形式的计算机可读介质。
32.以下解释可以将一个或多个特征标识为“可选的”。这种类型的陈述不应被解释为对可能被视为可选的特征的详尽说明;也就是说,其他特征可以被视为可选的,但是在文本中未被明确标识出。此外,对单个实体的任何描述并不旨在排除使用多个这样的实体;类似地,对多个实体的描述并不排除单个实体的使用。此外,虽然描述可以将某些特征解释为执行所标识的功能或实现所标识的机制的备选方式,但是这些特征也可以以任何组合方式而被组合在一起。最后,术语“示例性”或“说明性”是指潜在的许多实现方式中的一个实现方式。
33.a.说明性计算环境
34.传统的基于文本的搜索引擎允许用户逐步细化他或她的搜索,直到用户获得满意的搜索结果。例如,考虑一个用户希望发现特定年份内的感恩节的日子。用户可以通过输入关键字“thanksgiving”来开始其搜索。然而,基于文本的搜索引擎可以通过标识一篇关于感恩节假期的通用文章来响应这个查询,该文章没有回答用户的问题。用户接下来可以输入关键词“thanksgiving 2019”。这个修正后的查询可以提供回答用户问题的结果。
35.传统的基于图像的搜索提供不同的搜索体验。在这里,用户以单次方式执行搜索。也就是说,用户选择最能传达其搜索意图的图像,并且将其提交给基于图像的搜索引擎。引擎将提供与用户的基于图像的查询相匹配的候选图像集合。如果这些结果没有提供理想的结果,则用户可以决定通过查找另一输入图像并且将该图像提交给基于图像的搜索引擎来重新开始。换句话说,在这种场景中,基于图像的搜索引擎不提供允许用户修正先前提交的图像的机制。用户可能会发现这种“命中或过错”(hit

or

miss)的图像检索方法既耗时又低效。就其可以导致长时间搜索会话而言,它也使计算资源的使用效率低下。
36.图1示出了计算环境102,其通过允许用户制作自定义查询图像并且如果需要的话则稍后修正该查询图像来至少解决上述问题。计算环境102基于一个或多个输入图像来生成定制查询图像。用户可以使用一种或多种技术来提供输入图像。在一种场景中,用户可以通过在更大的图像集合内选择图像来提供每个输入图像。例如,用户可以通过在较大的缩略图表示集合内点击与其相关联的缩略图表示来标识输入图像。或者用户可以通过在它出现的内容项(诸如网页、文档、视频流等)内点击它来标识输入图像。
37.在又一场景中,用户可以通过使用相机拍摄感兴趣对象(“对象”)的数字照片来提供输入图像。例如,用户可以拍摄对象(诸如产品、地标等)的照片,并且意图是检索关于该对象的信息。或者用户可以从相对于对象的一个或多个视角拍摄对象的多张数字照片。用
户可以通过移动到相对于对象的不同拍照位置来执行此任务。或者用户可以依赖于使用相对于对象以不同角度定位的多个相机的系统。用户可以同步相机以同时拍摄对象的照片。
38.在又一场景中,用户可以通过描述输入图像的一个或多个特性来间接指定输入图像。例如,假设用户希望应用显示特定织物图案的输入图像。用户可以通过提供织物图案的基于文本的描述来指定该图像,诸如通过指定“大犬齿”、“宽条纹”、“佩斯利图案”等。计算环境102然后可以将基于文本的描述映射到输入图像或其某种表示。例如,计算环境102可以将基于文本的描述提交给搜索引擎(如下所述)。然后,搜索引擎可以基于用户的基于文本的描述来执行搜索,以提供显示犬齿织物图案的图像。搜索引擎可以通过将基于文本的描述对照与多个图像相关联的基于文本的元数据进行匹配来执行该任务。计算环境102然后可以自动挑选通过该搜索检索到的排名靠前的图像,或者生成通过该搜索检索到的排名靠前的图像集合的平均值(在将它们转换为潜在变量向量之后)。在这种操作方式中,计算环境102不需要向用户显示展示所期望织物图案的图像。用户可以通过观察其对所生成的图像i
g
的贡献来判断该织物图案是否令人满意(如下所述)。
39.第一信息提取组件104从第一输入图像i
l
中提取第一信息项。可选的第二信息提取组件106从第二输入图像i2中提取第二信息项。计算环境102可以并入对相应输入图像进行操作以生成相应信息项的任何数目的这些信息提取组件。在下面描述的一种实现中,信息提取组件(104、106)对应于编码器,并且信息项对应于由编码器产生的潜在变量向量。潜在变量向量表示低维语义向量空间内的输入图像的特性。
40.在一些实现方式中,计算环境102还可以可选地从用户接收一个或多个基于文本的信息项,基于文本的信息项指定一个或多个预期的图像特性。例如,接收到的基于文本的信息项可以以文本方式指定要在查询图像中使用的预期颜色或图案。计算环境102然后可以处理(多个)基于文本的信息项以及(多个)基于图像的信息项。这不仅仅是使用文本来标识输入图像;在这里,计算环境102基于图像信息和文本信息两者形成生成的图像i
g

41.图像生成器组件108基于馈送给它的信息项来产生所生成的图像i
g
。在下面描述的一种实现中,图像生成器组件108使用机器训练的解码器神经网络来生成图像i
g
。该解码器神经网络基于生成式模型来操作
42.计算环境102接下来使用取回组件110将生成的查询图像提交给搜索引擎112。例如,取回组件110可以使用将查询图像提交给互联网可访问搜索引擎112的浏览器应用。搜索引擎112基于存储在索引中的索引信息来执行搜索和取回操作,该索引继而又被提供在数据存储114中。爬虫工具(未示出)通过定期调查所在分布式数据库中提供的图像资源来创建索引信息。分布式数据库可以对应于由互联网提供的分布式资源。
43.搜索引擎112标识与查询图像相匹配的零个、一个或多个候选图像(i
c1
,i
c2
,

)。例如,搜索引擎112可以计算用于查询图像的特征集合,以产生查询特征集。搜索引擎112然后可以找到具有与查询特征集相匹配的相应特征集的一个或多个候选图像。注意,作为离线任务,搜索引擎112可以计算和存储候选图像的特征集。
44.更具体地,在一种实现中,搜索引擎112可以使用卷积神经网络(cnn)或其他深度神经网络(dnn)来将查询图像映射到低维语义空间中的查询特征向量。它可以使用近似最近邻(ann)技术或其他技术,然后在语义空间中找到最接近查询特征向量的那些候选特征向量。那些候选向量与相应的候选图像相关联。
45.在识别候选图像集合后,搜索引擎112可以将那些图像或其表示供应给取回组件110。然后取回组件110可以经由由输出设备提供的用户界面呈现来向用户呈现那些匹配图像。例如,取回组件110可以显示与匹配候选图像相关联的缩略图集合。
46.在一种实现中,计算环境102不向用户显示生成的图像i
g
;相反,它只显示(多个)输入图像(i1、i2等)和匹配的候选图像。在生成的图像i
g
具有用户可能会觉得不美观的伪影的那些情况下,这是一个理想的选择。注意,在生成的图像i
g
中存在伪影或其他异常通常将不会损害搜索引擎112找到在视觉上类似于生成的图像i
g
的候选图像的能力。这是因为搜索引擎112使用生成的图像i
g
的显著特征来寻找匹配的候选图像,并且这些高级语义特征不受伪影的存在的影响。基于法律考虑,开发者还可以选择阻止呈现生成的图像i
g

47.在一些场景中,从搜索引擎112取回的(多个)图像满足用户的搜索意图,用户在此后终止他的搜索,因为它与该特定搜索意图相关。在其他场景中,用户可以将上述搜索操作重复至少另外一次,将从搜索引擎112取回的一个或多个图像视为一个或多个相应的新的输入图像(i1,i2)。在这种操作方式中,用户可以有效地多次重新制定他或她的基于图像的查询。
48.用户界面(ui)组件116允许用户与计算环境102交互。例如,输入项选择组件118可以提供允许用户选择或创建输入图像和其他输入项的各种工具。例如,输入项选择组件118可以允许用户通过在更大的图像集合内点击图像来挑选图像,或者通过在任何类型的源文档(诸如网页)内点击图像来挑选图像。备选地或另外地,项选择组件118可以允许用户在文本输入字段中指定与预期的输入图像相关联的名称,诸如通过输入词“棕色”、“犬齿”等。备选地或另外地,项选择组件118可以允许用户在文本输入字段中指定与预期图像属性(颜色、图案等)相关联的代码。备选地或另外地,项选择组件118可以允许用户通过在点的范围内选择预期的点(例如,通过在颜色的光谱内选择预期的颜色)或者通过操纵掌控图案外观的图形控件(例如,通过改变条纹的宽度等),来指定与预期的输入图像相关联的特性。项目选择组件118可以使用其他机制来选择输入图像和/或图像特征。输入项加权组件120允许用户指定影响输入项的组合的加权值。下面的解释提供了输入项加权组件120可以用来执行该任务的图形机制的示例。ui组件116还提供使得取回组件110能够显示(或以其他方式传达)由搜索引擎112提供的搜索结果的功能性。注意,虽然图1将ui组件116示出为单个整体组件,但是计算环境102可以将与该组件相关联的功能性分布到计算环境102的一个或多个元件上。
49.图2示出了可以被用来实现图1的计算环境102的计算设备202。计算设备202包括经由计算机网络208耦合到一个或多个用户计算设备206的一个或多个服务器204。用户计算设备206可以对应于以下各项中的任何一项:台式计算设备、膝上型计算设备、任何类型的手持计算设备(智能电话、平板型计算设备等)、混合现实设备、游戏控制台、可穿戴计算设备、智能物联网(iot)设备等。每个用户计算设备(诸如代表性用户计算设备210)包括本地程序功能性(诸如代表性本地程序功能性212)。计算机网络208可以对应于广域网(例如,互联网)、局域网、一个或多个点对点链路等或其任何组合。
50.图1的计算环境102的功能性可以以任何方式分布在服务器204和用户计算设备206之间。在一种实现中,服务器204实现图1的计算环境102的所有功能。在这里,用户使用由用户计算设备提供的浏览器应用来访问这些功能。在另一实现中,每个用户计算设备实
现图1的计算环境102的所有功能。在另一实现方式中,服务器204实现计算环境的一些功能,而每个用户计算设备实现其他功能。例如,服务器204可以实现搜索引擎112,而每个本地用户计算设备可以实现计算环境102的其余部分。
51.作为以下解释的前言,请注意,该具体实施方式在用户对服装项实施的搜索的上下文中解释了计算环境102的各种实现。但是计算环境102可以应用于任何主题,诸如家具项、家居装饰项、时尚配饰、室内设计选择、剪贴画项等。
52.图3示出了用于产生基于图像的查询的计算环境102的一种实现,被称为机器学习(ml)计算环境302。ml计算环境302基于两个或更多输入图像(例如,i1、i2等)来制定基于图像的查询。用户可以使用上述任何技术来提供每个图像,例如通过使用相机捕捉图像、在语料库或文档内选择图像、对图像执行基于文本的搜索等等。
53.第一编码器304(为简洁起见,“第一编码器”)将第一图像i1映射到第一潜在变量向量z1,而第二编码器306(为简洁起见,“第二编码器”)将第二图像i2映射到第二潜在变量向量z2。在一个实现中,第一编码器304和第二编码器306对应于基于相同机器训练模型所构建的神经网络。例如,第一编码器304和第二编码器306可以表示相同神经网络计算机代码的两个实例。第一编码器304和第二编码器306可以并联或串联操作。在另一种实现中,编码器(304、306)由除神经网络之外的技术来实现,如下面将结合图10描述的。
54.在一个实现方式中,由每个编码器(如果使用的话)提供的神经网络可以对应于结合图12更详细描述的卷积神经网络(cnn)的一些变体。cnn将每个输入图像映射到低维语义空间中的潜在变量向量。潜在变量向量提供了由输入图像所传达的内容的分布式表示。
55.混合器308组合第一潜在变量向量z1和第二潜在变量向量z1,以产生混合潜在变量向量z
mixed
。例如,混合器308可以将第一潜在变量向量z1与第二潜在变量向量z2相加、从第二潜在变量向量z2中减去第一潜在变量向量z1(或反之亦然)、对多个潜在变量向量求平均等。两个潜在变量向量通过在相应的维度中组合它们相应的元素而被组合在一起。也就是说,如果z1具有元素[a1,a2,a3,...,a
n
],并且z2具有元素[b1,b2,b3,...,b
n
],那么这两个向量的组合产生元素为[a1 b1,a2 b2,a3 b3,...,a
n
b
n
]的混合向量。当用户想要产生一个合成图像,其中一个图像的特征修改了另一图像的特征时,则两个潜在变量向量的组合是合适的。当用户想要产生表示感兴趣对象的广义描述的所生成的图像时,对潜在变量向量进行平均是合适的。
[0056]
在一些实现方式中,混合器308还在组合潜在变量向量(z1,z2)时应用一个或多个加权值。例如,假设用户指定用于第一输入图像的加权值w1和用于第二输入图像的加权值w2。混合器308然后可以计算总和:w1z1 w2z2。备选地或另外地,用户可以指定影响潜在变量向量的各个维度的加权值。备选地或另外地,混合器308可以应用由开发者而不是最终用户选择的固定加权值。备选地或另外地,混合器308可以应用由离线机器训练组件(未示出)产生的加权值。
[0057]
解码器神经网络310(简称为“解码器”)将混合潜在变量向量z
mixed
映射到生成的图像i
g
中,该图像用作查询图像。解码器310基于机器训练的生成式模型来产生生成的图像i
g
。生成式模型产生合成图像i
g
,合成图像通常没有预先存在的“真实”对应的图像。然而,生成式模型是基于真实图像的语料库而被训练的,并且因此,在生成图像i
g
的过程中,依赖于从那些真实图像中提取的洞察力。取回组件110然后以与上述相同的方式基于查询图像来实
施搜索。
[0058]
训练系统312生成由ml计算环境302在离线训练过程中使用的机器训练模型。它基于数据存储314中提供的真实图像的语料库来执行该任务。关于训练系统312的操作的附加信息在下面结合图9、图13和图14的描述来提供。
[0059]
图4示出了图1的ml计算环境302的操作的示例。在该场景中,用户选择第一输入图像402,其以上面指定的任何方式示出短袖t恤。用户选择示出具有蓝色星星图案的织物图案的第二输入图像404。例如,用户可以与输入项选择组件118交互以从更大的图像集合或从显示该图像404的网页中选择第二输入图像404。或者用户可以例如通过键入“蓝色星星”将预期图案的描述输入到输入项选择组件118的文本字段中。ml计算环境302可以查阅查找表,以将该短语映射到示出星星图案的库存(stock)图像。或者ml计算环境302可以基于该关键短语实施基于文本的搜索,以取回示出具有星星图案的织物的一个或多个图像。在这些情况下,ml计算环境302不需要向用户示出它取回的(多个)实际第二输入图像。ml计算环境302可以挑选它标识的排名靠前的图像,或者它可以挑选排名靠前的图像集合。
[0060]
ml计算环境302使用第一编码器304将第一输入图像402转换为第一潜在变量向量z1,并且使用第二编码器306将第二输入图像404转换为第二潜在变量向量z2。ml计算环境302将第一潜在变量向量z1和第二潜在变量向量z2相加以产生混合潜在变量向量z
mixed
。ml计算环境302然后使用解码器310将混合潜在变量向量z
mixed
转换成生成的图像406。注意,生成的图像406示出类似于第一输入图像402的服装项和样式,具有类似于第二输入图像404的图案。生成的图像406是不需要与单个预先存在的真实图像有任何直接关系的计算机合成图像。
[0061]
在其他情况下(未示出),第二输入图像404可以对应于另个服装项。例如,第二输入图像404可以示出衣领样式。在另一种情况下,ml计算环境302可以接受(多个)任何种类的三个或更多个输入项。
[0062]
ml计算环境302将生成的图像406作为查询图像提交给搜索引擎112。搜索引擎112返回候选图像集合408,候选图像集合确定将查询图像与特定于环境的置信度相匹配。例如,搜索引擎112可以返回匹配图像的缩略图表示。搜索引擎112还可以提供描述每个图像所示出的产品的文本信息。搜索引擎112还可以提供允许用户访问关于图像中所示产品的更多信息并且可选地购买该产品的链接。每个匹配图像对应于存储在数据存储中的真实预先存在的图像。
[0063]
注意,匹配候选图像408在视觉上类似于查询图像406。但是每个匹配图像也可以在一个或多个方面与查询图像不同。例如,第一匹配图像410示出了星星的图案,其中每个星星的形状与第二输入图像404中所示的星星形状有些不同。第一匹配图像410还包括衣领,而第一输入图像402省略了衣领。第四匹配图像412包括与第二输入图像404形状相同的星星,但是包括比第二输入图像404低的星星密度。它也包括衣领。
[0064]
前进到图5,ml计算环境302可以包括一个或多个神经网络。图5示出了前馈神经网络502的两层的一部分。在完全连接的情况下,神经网络的一层j中的每个神经元连接到前一层j

1中的每个神经元。更具体地说,在全连接的情况下,层j产生由公式z
j
=f(w
j
z
j
‑1 b
j
)给出的输出值z
j
,其中j=2,...n。符号w
j
标示用于层j的机器学习加权矩阵,并且符号b
j
指代用于层j的机器学习偏置向量。激活函数f(
·
)可以用不同的方式来表述,诸如tanh函数
或sigmoid函数或整流线性单元(relu)函数。
[0065]
图6和图7示出了允许用户挑选加权值的两个相应的图形控件。ml计算环境302应用加权值来修改由编码器(306、308)提供的潜在变量向量。混合器308通过将每个潜在变量向量乘以其相关联的加权值来执行该修改操作。
[0066]
从图6开始,第一图形控件602包括由用户选择的三个输入图像(604、606、608)。它还包括与相应的输入图像(604、606、608)相关联的三个相应的滑块条(610、612、614)。用户可以通过和与输入图像相关联的滑块条进行交互来挑选要被应用于输入图像的加权值。混合器308通过利用选定的加权值修改适当的潜在变量向量来响应用户对该输入图像的加权选择。
[0067]
例如,每个滑块条可以允许用户通过将滑块元件从左端(0.0)移动到右端(1.0)来挑选0.0和1.0之间的加权值。在图6中所示的场景中,用户挑选相对较高的加权值被应用于与第一输入图像604相关联的潜在变量向量,以表达她希望查询图像与第一输入图像604中所示的风格非常相似。用户挑选相对较低的加权值被应用于与第二和第三输入图像(606、608)相关联的潜在变量向量;这是因为用户对第二和第三输入图像(606、608)所传达的特征放置了较低的优先级。
[0068]
图5中所示的滑块条的使用仅仅是说明性的。在其他情况下,用户可以通过操纵滚轮、通过旋转图形旋钮、通过在用户界面呈现的输入字段中选择数值、通过发出语音命令等来指定每个图像的加权值。
[0069]
图7示出了包括具有三角形形状的光标导航空间704的第二图形控件702。导航空间704的每个顶点与特定输入图像相关联。为了传达这种关联,第二图形控件702在导航空间704的相应顶点处显示缩略图像(706、708、710)。
[0070]
在操作中,用户与任何种类的输入设备交互以挑选光标712在导航空间704内的位置(其中“光标”对应于具有对位置进行标记的任何视觉属性的指示符)。作为响应,ml计算环境302基于光标712和与输入图像相关联的导航空间704的顶点之间的距离来确定要被应用于每个潜在变量向量(与对应的输入图像相关联)的加权值。例如,在图7的示例中,光标712位于距第一输入缩略图706一定距离d1、距第二缩略图708一定距离d2以及距第三缩略图710一定距离d3处的位置。响应于光标712的该位置,混合器308将第一输入图像的潜在变量向量修改为基于d1的加权值,将第二输入图像的潜在变量向量修改为基于d2的加权值,以及将第三输入图像的潜在变量向量修改为基于d3的加权值。
[0071]
更具体地,在一个非限制性实现中,每个参考点对应于加权值的高斯概率密度函数(pdf)的顶点。每个高斯分布的加权值与顶点的距离成比例地从其顶点逐渐减少。在光标712的当前位置处,ml计算环境302基于从与第一输入图像相关联的顶点发出的高斯分布来找到第一分量加权值λ1、关于从与第二输入图像相关联的顶点发出的高斯分布来找到第二分量加权值λ2,以及关于从与第三输入图像相关联的顶点发出的高斯分布来找到第三分量加权值λ3。然后它为每个输入每个图像计算归一化加权值w。例如,ml计算环境302可以将针对第一输入图像的最终加权值w1计算为λ1/(λ1 λ2 λ3)。第二图形控件702还可以可选地示出与三个缩略图像(706、708、710)相关联的加权指示符(714、716、718)。每个加权指示符提供与相应图像相关联的加权值的图形表示,范围从0.0到1.0。这些指示符(714、716、718)随着用户在导航空间704中移动光标712而改变。
[0072]
此外,第二图形控件702可以示出生成的图像720的表示,对应于由ml计算环境302实时产生的三个输入图像的合成。生成的图像720的表示随着用户在导航空间704中移动光标712而改变。例如,通过将光标712移近缩略图像之一,生成的图像720将展现出与该缩略图像更大的相似性。
[0073]
第二图形控件702可以采用具有任何其他形状(除了三角形)的导航空间,并且可以容纳任意数目的输入图像。例如,第二控制图形控件702可以在四个输入图像的情况下示出方形导航空间,在五个输入图像的情况下示出五边形导航空间等。
[0074]
图8示出了图形控件802,其允许用户修改生成的图像804的各个方面。更具体地,图形控件802包括与所生成的图像804相关联的一组滑块条806。反过来,每个滑块条与所生成的图像804的不同方面相关联。例如,第一滑块条可以与袖长相关联,第二滑块条可以与织物颜色相关联,第三滑块条可以与织物图案的密度相关联,等等。用户可以通过调整对应的滑块条的滑块元素来挑选与每个标识的特性相关联的级别。例如,为了修改袖子的长度,用户可以移动与袖长相关联的滑块条的滑块元素。
[0075]
混合器308通过对混合潜在变量向量的值进行适当改变来响应用户对滑块条的操纵。例如,假设用户操纵与袖长相关联的滑块条。混合器308通过修改与袖长相关联的混合潜在变量向量的向量分量来响应该命令。离线过程可以建立图像属性(诸如袖长)和混合潜在变量向量的关联的向量分量之间的联系。例如,离线过程可以涉及有条不紊地对混合潜在变量向量的值进行改变,并且观察生成的图像i
g
响应于此而发生改变的各方面。然后,离线过程可以可选地使用潜在狄利克雷分配(lda)来标识与不同图像特性相关联的向量分量。
[0076]
本文描述的三个图形控件是出于说明而非限制的精神而被阐述的;其他实现可以采用其他类型的图形控件,用户可以操纵这些控件来选择加权值。备选或另外地,ml计算环境302可以应用固定的加权值。开发者可以基于离线特设实验来挑选这些加权值。备选地或另外地,ml计算环境302可以应用由离线机器训练的组件(未示出)产生的加权值。机器训练的组件可以选择这些加权值来针对不同的输入场景实现最佳结果。例如,机器训练的组件可以为用户试图将服装项的图像与图案图像进行组合的输入场景选择要被应用于图案图像的加权值。图4示出了该输入场景的示例。训练系统可以基于训练示例的语料库来生成机器训练的模型;每个这样的训练示例包括加权值集合、使用这些加权值产生的生成的图像以及指示该集合产生了预期的还是不预期的结果的得分,如由人类观察者或其某些代理所判断的。
[0077]
备选地或另外地,ml计算环境302可以提供帮助开发者或用户为特定输入场景挑选加权值的半自动实验平台。(输入场景由用户试图进行组合的特定类型的输入图像以及用户在组合图像时的期望目标来定义)。实验平台可以包括图7的加权指示符(714、716、718)的类型,其示出了在当前时间点处应用于输入图像集合的加权值。它还可以包括使用当前选择的加权值产生的生成的图像720的表示。实验平台迭代地探索由加权值的可能范围所定义的搜索空间,同时同步地示出加权值的每次改变对生成的图像720的影响。当用户看到具有预期特性的生成的图像720时,他可以激活图形控件(未示出),这使实验平台存储产生该期望结果的加权值集合。当在未来的情况下,用户试图在类似的输入场景中组合图像时,他或她可以取回所存储的加权值集合并且将它们应用于输入图像。
[0078]
图9示出了作为初步离线训练过程的一部分使用生成式对抗网络(gan)来产生解码器310的训练系统902。gan包括两个主要组件:生成器组件904和鉴别器组件906。生成器组件904对应于由参数值集合θ
g
定义的神经网络(例如cnn)。鉴别器组件906也对应于由参数值集合θ
d
定义的神经网络(例如cnn)。在操作中,生成器组件904接受表示随机噪声的输入向量z,例如,如从高斯分布中选择的。生成器组件904将输入向量z映射到合成或“假”图像中,为简洁也被表示为在任何特定实例中,鉴别器组件906接收从真实图像的数据存储314中选择的真实图像x,或由生成器组件904产生的“假”图像(图像是“假的”,因为它是合成的,而不是从真实的预先存在图像的数据存储中选择的)。鉴别器组件906产生分类结果,其指示输入图像是真实的(与分类结果1相关联)还是假的(与分类结果0相关联)。
[0079]
参数更新组件908基于鉴别器组件906的分类结果来迭代调整生成器组件904和鉴别器组件906的参数值。更具体地,参数更新组件908调整生成器组件904和鉴别器组件906的参数值,以增加其在真假图像之间进行区分的能力。参数更新组件908调整生成器组件904的参数值,以使得其产生更容易“欺骗”鉴别器组件906的图像,也就是说,通过使鉴别器组件906将生成器组件生成的假图像分类904为真实的。在这种操作方式中,训练组件902使生成器组件904和鉴别器组件906相互对立,这就是这种类型的布置被称为对抗性的原因。
[0080]
更正式地说,参数更新组件908基于由以下定义的目标函数来执行训练:
[0081][0082]
目标函数的该第一部分(在加号之前)取决于鉴别器组件906当作用于真实图像x时的输出。该标示x~p
data
意指输入图像取自真实图像(p
data
)的分布。对象函数的第二部分(在加号之后)取决于鉴别器组件906当作用于生成的(假)图像时的输出。目标函数作为一个整体定义了极小极大优化目标,其中,对于鉴别器,参数更新组件1008尝试最大化鉴别器组件为真实图像输出1和为假图像输出0时的那些机会。关于生成器组件1004,参数更新组件1008尝试最小化鉴别器1006为假图像输出1时的那些机会。参数更新组件908可以使用诸如随机梯度下降(或上升)的任何技术来迭代地调整参数值以实现这个极小极大目标。
[0083]
在另一实现方式(未示出)中,训练系统902可以使用条件gan来训练解码器神经网络310。在条件gan中,生成器组件904基于随机输入向量结合上下文信息来调整它生成的假图像。在当前情况下,上下文信息可以指定(例如)与输入图像相关联的服装项的类别。
[0084]
图10示出了用于在图3的ml计算环境302中使用的编码器1002的第一版本。作为概述,编码器1002依赖于实时优化过程来基于真实输入图像x生成潜在变量向量z。也就是说,编码器1002被称为实时操作,因为它不是在初步训练阶段中而是在用户输入该输入图像x时的应用阶段中执行其优化工作。为了减少与该迭代实时操作相关联的等待时间,编码器1002可以可选地使用下采样组件1004来减小输入图像的大小,以产生大小减小的输入图像x’。例如,下采样组件1004可以通过对输入图像x中的像素进行下采样来产生输入图像x的缩略图表示1006。然而,为了便于解释,以下解释将假设编码器1002对原始图像x进行操作。
[0085]
在操作(10.a)中,特征生成组件1008计算与输入图像x相关联的特征集合。例如,特征生成组件1008可以对应于将输入图像x映射到低维语义空间中的特征向量f
x
的cnn。在
操作(10.b)中,(图3的)解码器310响应于潜在变量z的候选版本来产生所生成的图像例如,解码器310可以表示由图9的基于gan的训练系统1002产生的训练模型。在操作(10.c)中,特征生成组件1008使用相同的cnn将所生成的图像映射到另一个特征向量在操作(10.d)中,距离评估组件1010使用任何距离度量(诸如欧几里德距离、余弦相似度等)来确定两个特征向量之间的距离。在操作(10.e)中,z更新组件1012使用任何优化技术(诸如梯度下降)来修改z的值,以便在下一次计算中减少两个特征向量之间的距离。如循环1014表示的,编码器1002重复这些步骤(10.a到10.e)多次,直到两个特征向量在彼此的规定距离内。在这个阶段,编码器1002输出z的最终版本。更正式地说,z选择组件1012执行由给出的优化例程,其中
[0086]
图11示出了用于在图3的ml计算环境302中使用的编码器1102的第二版本。编码器1102同样可选地使用下采样组件1104来减小输入图像x的大小以产生缩略图表示1106。然而,在这里,编码器1102用前馈神经网络1108(或其他类型的神经网络)代替参考图10描述的迭代功能性。前馈神经网络1108使用基于训练对的语料库所训练的模型,每个训练对将输入图像x与用于输入图像的适当潜在变量向量z相关联。例如,语料库可以包括由图10的编码器1002在任何离线数据收集过程中产生的配对。前馈神经网络1108可以将输入图像x映射到潜在变量z而无需任何迭代计算,并且因此与图10的编码器1002相比,可以预期具有更低的等待时间。
[0087]
图12示出了卷积神经网络(cnn)1202,其可以被用来实现图3的ml计算环境302的各种组件。例如,图12中所示的架构类型可以被用来实现一些类型的编码器、(图9的)鉴别器组件906、图10的特征生成组件1008,等等。在编码器的上下文中,cnn 1202将输入图像映射到潜在变量向量z。在鉴别器组件906的上下文中,cnn1202将输入向量映射到决策(其指示输入图像被认为是真实的还是假的)。在特征生成组件1008的上下文中,cnn 1202将输入图像映射到特征向量。
[0088]
cnn 1202在阶段的流水线中执行分析。一个或多个卷积组件1204对输入图像1206执行卷积操作。一个或多个池化组件1208执行下采样操作。一个或多个全连接组件1210分别提供一个或多个全连接神经网络,每个神经网络包括任意数目的层。更具体地说,cnn1202可以以任意顺序散布上述三种组件。例如,cnn 1202可以包括与池化组件交错的两个或多个卷积组件。在一些实现方式中(诸如在其中使用cnn 1202来实现鉴别器组件906的情况),cnn 1202可以包括基于前一层提供的特征向量来输出分类结果的最终后处理组件。例如,后处理组件可以对应于softmax组件、支持向量机(svm)组件等。
[0089]
在每个卷积操作中,卷积组件在输入图像上移动n
×
m内核(其中“输入图像”在这个一般上下文中是指馈送到卷积组件的任何图像)。在一种情况下,在内核的每个位置处,卷积组件生成内核值与图像的底层像素值的点积。卷积组件将该点积存储为输出图像中与内核当前位置相对应的位置处的输出值。更具体地,卷积组件可以对具有不同机器学习内核值的一组不同内核执行上述操作。每个内核对应于不同的图案。在早期的处理层中,卷积组件可以应用用于标识图像中相对原始的图案(诸如边缘、角落等)的内核。在后面的层中,卷积组件可以应用找到更复杂形状(诸如类似于人腿、手臂等的形状)的内核。
[0090]
在每个池化操作中,池化组件在输入图像上移动预定大小的窗口(其中输入图像
对应于馈送到池化组件的任何图像)。池化组件然后关于窗口所包围的输入图像的值执行一些聚合/汇总操作,诸如通过识别和存储窗口中的最大值,生成和存储窗口中值的平均值等。
[0091]
全连接组件可以通过形成单个输入向量来开始其操作。它可以通过级联馈送给它的(多个)输入图像的行或列来执行该任务,以形成单个输入向量。然后,全连接组件使用全连接神经网络来处理输入向量。
[0092]
解码器310用一个或多个去卷积组件来替换上述的(多个)卷积组件1204和(多个)池化组件1208。去卷积组件执行与(多个)卷积组件1204和(多个)池化组件1208相反的操作。例如,去卷积组件可以在输入图像中取值并且将其扩展到输出图像中的n
×
n图像区域。去卷积组件在它对输入图像中的输入值进行排序时对每个输入值重复此操作。输出值中的每个输出值可以反映多个输入值在输入图像中的贡献。
[0093]
图13示出了使用参数更新组件1304来训练编码器组件1306和解码器组件1308的另一训练系统1302。编码器组件1306将输入向量x映射到潜在变量向量z,并且解码器组件1308将潜在变量z映射到所生成的图像更具体地,编码器组件1306和解码器组件1308一起实现变分自动编码器(vae)。在此设置中,用于在训练中使用的损失函数可由下式给出:
[0094][0095]
标示p
θ
(
·
)表示由编码器组件1306实现的功能,由参数值集合θ定义。标示表示由解码器组件1308执行的功能,由参数值集合定义。标示d
kl
表示kullback

leibler散度测量。当训练完成时,编码器组件1306提供用于在图3的编码器(304、306)中使用的参数值,而解码器组件1308提供用于在图3的解码器310中使用的参数值。因此,不同于在图9的gan示例中,训练系统1302同时训练编码器和解码器。
[0096]
图14示出了使用参数更新组件1404来训练编码器组件1406和解码器组件1408的另一训练系统1402。与图13的情况类似,编码器组件1406将输入向量x映射到潜在变量向量z,并且解码器组件1408将潜在变量z映射到所生成的图像更具体地,该实现方式中的编码器组件1406和解码器组件1408提供基于流的神经网络系统。在这里,解码器组件1408实现了一个函数,该函数是编码器组件1406提供的函数f(x)的逆函数。在这种情况下,损失函数是在训练图像集合g上计算的负对数似然:
[0097][0098]
与图13的情况类似,训练系统1402同时产生供图3的编码器(304、306)和解码器310使用的模型。
[0099]
上述技术的其他变体也是可能的。下面参考计算环境102解释图示变体,但是这些变体也适用于更具体的ml计算环境302。例如,在另一实现方式中,一个或多个信息提取组件(例如,104、106)可以对输入图像(例如,i1、i2)如上所述地操作,以产生基于图像的信息项(例如,一个或多个基于图像的潜在变量向量)。此外,计算环境102可以接收一个或多个基于文本的信息项,诸如描述特定颜色或图案的短语(例如,“大犬齿”)。图像生成器组件108然后可以通过对(多个)基于图像的信息项和(多个)基于文本的信息项两者进行操作来
产生所生成的图像i
g
。例如,图像生成器组件108可以包括机器训练的生成式模型,该模型使用(多个)基于文本的信息项作为影响i
g
的生成的补充输入。
[0100]
在另一实现方式中,一个或多个基于文本的信息提取组件(未示出)可以将一个或多个基于文本的信息项转换成(多个)那些信息项的分布式表示。例如,机器训练的基于文本的编码器可以将输入文本转换为n

gram表示,然后将该n

gram表示映射为基于文本的潜在变量向量。图像生成器组件108然后可以使用机器训练的生成式模型来基于(多个)基于图像的变量向量和(多个)基于文本的变量向量来生成生成的图像i
g

[0101]
在另一实现方式中,计算环境102可以以灵活的方式混合基于文本的搜索操作和基于图像的搜索操作。例如,假设用户执行第一基于文本的搜索以找到具有预期风格的舞会礼服。例如,用户向搜索引擎112提交基于文本的查询“无肩带舞会礼服”。作为响应,搜索引擎112返回具有与用户的基于文本的查询相匹配的基于文本的元数据的图像集合。假设用户选择这些图像中的一个(诸如排名靠前的图像),其构成了第一输入图像i1。
[0102]
但是假设用户对输入图像i
l
中所示的礼服不太满意。例如,假设输入图像i1示出了白色礼服,而用户想要看到不同颜色的相同款式的礼服,诸如红色。作为响应,用户修改了她早先基于文本的查询,以使得其现在显示为“无肩带红色舞会礼服”。或者假设图像i1的搜索引擎结果详细信息页面包括文本输入框,其允许用户指定与输入图像i1相关联的新属性。在这种情况下,用户可以简单地在文本框中输入属性“红色”。响应于这些输入动作中的任何一个动作,搜索引擎112基于修改的文本查询“无肩带红色舞会礼服”执行新的搜索。假设搜索引擎112返回具有与修订的基于文本的查询相匹配的元数据的n个补充图像(i
21
,i
22
,i
23
,...,i
2n
)的集合。
[0103]
第一信息提取组件104基于第一输入图像i
l
生成第一信息项。一个或多个补充信息提取组件基于检索到的补充图像(i
21
,i
22
,i
23
,...,i
2n
)生成第二信息项。图像生成器组件108然后基于第一信息项和第二信息项来提供所生成的图像i
g

[0104]
更具体地,在图3的ml计算环境302的上下文中,第一编码器304将第一图像i1映射到第一潜在变量向量z1。一个或多个补充编码器将补充输入图像(i
21
,i
22
,i
23
,...,i
2n
)映射到补充潜在变量向量(z
21
,z
22
,z
23
,...,z
2n
)。混合器308可以以环境特定的方式将这些潜在变量向量z
mixed
组合,以产生混合潜在变量向量。在一种实现中,例如,混合器308生成补充潜在变量向量的平均值,以产生平均潜在变量向量。混合器308然后从第一潜在变量向量z1中减去平均潜在变量向量以产生差异向量。差异向量揭示了语义向量空间中补充输入图像与第一输入图像i1不同的方向。混合器308然后可以将所标识的方向上的第一潜在变量向量z1修改规定量。在上面开发的特定示例中,此操作将具有在与颜色红色相关联的方向上移动舞会礼服的语义空间表示的效果。
[0105]
该过程的其余部分以与上述相同的方式操作。例如,解码器神经网络310将混合潜在变量向量z
mixed
映射到生成的图像i
g
,并且取回组件110将该生成的图像i
g
作为搜索查询提交给搜索引擎112。总的来说,上述变体允许用户以结合基于文本的搜索和基于图像的搜索的方式重新制定查询。用户还可以通过使用从搜索引擎112取回的任何图像作为新的输入图像来扩展上述操作。
[0106]
在以上示例中,用户使用第二基于文本的查询来查找图像,这些图像操作来修改由第一基于文本的查询而取回的图像。但更一般地,用户可以使用上述技术来组合通过(多
个)任何输入机制取回的任意数目的图像。例如,用户可以基于基于文本的查询“条纹”执行另一基于文本的搜索,以找到另一组补充图像。混合器308可以确定以下方式:(a)红色礼服图像从原始图像i1发散,以及(b)条纹礼服图像从原始图像i1发散。然后它可以修改第一潜在变量向量z1,以使得其在语义向量空间内在“红色”方向和“条纹”方向上都移动。在又一变体中,用户可以使用多个舞会礼服图像来生成第一潜在变量向量z1,而不是仅选择由基于文本的图像搜索所返回的图像中的一个。
[0107]
b.说明性过程
[0108]
图15

图17以流程图的形式示出了解释a部分的计算环境102的操作的过程。由于已经在a部分中描述了计算环境102的操作所基于的原理,所以某些操作将在该部分中以概括的方式进行论述。如在具体实施方式的前言部分中所指出的,每个流程图都被表示为以特定顺序执行的一系列操作。但是这些操作的顺序仅仅是代表性的,并且可以以任何方式改变。
[0109]
图15示出了表示图1的通用计算环境102的概览的过程1502。在框1504中,计算环境102响应于由用户对输入设备的操纵而从用户接收对输入图像的选择。在框1506中,计算环境102从输入图像中提取第一信息项,第一信息项表示输入图像的至少一个现有特性。在框1508中,计算环境102提供指定至少一个预期图像特性的第二信息项。在框1510中,计算环境102基于第一信息项和第二信息项生成查询图像,该查询图像包含表示输入图像的至少一个现有特性和至少一个预期图像特性的组合的内容。在框1512中,计算环境102将查询图像提交给计算机实现的搜索引擎112。在框1514中,计算环境102接收与查询图像相匹配的候选图像集合,如由搜索引擎112评估的。在框1516中,计算环境102使用输出设备向用户呈现候选图像集。
[0110]
图16和图17一起示出了表示图3的ml计算环境302的概览的过程1602。在图16的框1604中,响应于用户对第一输入图像和第二输入图像的选择,ml计算环境302至少接收第一输入图像和第二输入图像。在框1606中,响应于用户通过与用户界面呈现而提供的图形控件进行交互而做出的选择,ml计算环境302可选地接收至少一个加权值。在框1608中,ml计算环境302使用第一编码器304基于第一输入图像来产生第一潜在变量向量。在框1610中,ml计算环境302使用第二编码器306基于第二输入图像来产生第二潜在变量向量。在一个实现中,第一编码器基于与第二编码器306相同的机器训练模型来操作。在框1612中,ml计算环境302使用混合器308来组合第一潜在变量向量和至少第二潜在变量向量以产生混合潜在变量向量,该组合操作受至少一个加权值的影响。
[0111]
前进到图17,在框1702中,ml计算环境302使用解码器神经网络310基于混合潜在变量向量来产生查询图像,解码器神经网络310基于由生成式机器训练模型提供的参数值来操作。在框1704中,ml计算环境302将查询图像提交给计算机实现的搜索引擎112。在框1706中,ml计算环境302接收由搜索引擎112评估的与查询图像相匹配的候选图像集合。在框1708中,ml计算环境302使用输出设备向用户呈现候选图像集合。
[0112]
c.代表性计算功能性
[0113]
图18示出了计算设备1802,其可以被用来实现上述附图中阐述的机制的任何方面。例如,参考图2,图18中所示的计算设备1802的类型可以被用来实现任何服务器或任何用户计算设备。在所有情况下,计算设备1802表示物理和有形处理机制。
[0114]
计算设备1802可以包括一个或多个硬件处理器1804。(多个)硬件处理器可以包括但不限于一个或多个中央处理单元(cpu)和/或一个或多个图形处理单元(gpu)和/或一个或多个专用集成电路(asic)等。更一般地,任何硬件处理器都可以对应于通用处理单元或专用处理器单元。
[0115]
计算设备1802还可以包括计算机可读存储介质1806,对应于一个或多个计算机可读介质硬件单元。计算机可读存储介质1806保留任何种类的信息1808,诸如机器可读指令、设置、数据等。例如而非限制,计算机可读存储介质1806可以包括一个或多个固态设备、一个或多个磁性硬盘、一个或多个光盘、磁带等。计算机可读存储介质1806的任何实例可以使用任何技术来用于存储和取回信息。此外,计算机可读存储介质1806的任何实例可以表示计算设备1802的固定或可移除单元。此外,计算机可读存储介质1806的任何实例可以提供信息的易失性或非易失性保留。
[0116]
计算设备1802可以以不同方式利用计算机可读存储介质1806的任何实例。例如,计算机可读存储介质1806的任何实例可以表示用于在计算设备1802执行程序期间存储瞬时信息的硬件存储器单元(诸如随机存取存储器(ram)),和/或用于在更永久的基础上保留/归档信息的硬件存储单元(诸如硬盘)。在后一种情况下,计算设备1802还包括用于从计算机可读存储介质1806的实例存储和取回信息的一个或多个驱动机制1810(诸如硬盘驱动机制)。
[0117]
当(多个)硬件处理器1804执行存储在计算机可读存储介质1806的任何实例中的计算机可读指令时,计算设备1802可以执行上述任何功能。例如,计算设备1802可以执行计算机可读指令以执行b部分中描述的每个过程框。
[0118]
备选地或另外地,计算设备1802可以依赖一个或多个其他硬件逻辑单元1812来使用特定于任务的逻辑门集合来执行操作。例如,(多个)硬件逻辑单元1812可以包括硬件逻辑门的固定配置,例如其在制造时被创建和设置,并且此后不可改变。备选地或另外地,(多个)其他硬件逻辑单元1812可以包括可编程硬件逻辑门的集合,其可以被设置为执行不同的特定于应用的任务。后一类器件包括但不限于可编程阵列逻辑器件(pal)、通用阵列逻辑器件(gal)、复杂可编程逻辑器件(cpld)、现场可编程门阵列(fpga)等。
[0119]
图18一般性地指示硬件逻辑电路1814包括(多个)硬件处理器1804、计算机可读存储介质1806和/或(多个)其他硬件逻辑单元1812的任何组合。计算设备1802可以采用执行在计算机可读存储介质1806中提供的机器可读指令的(多个)硬件处理器1804和/或使用硬件逻辑门的固定和/或可编程集合来执行操作的一个或多个其他硬件逻辑单元1812的任意组合。更一般地说,硬件逻辑电路1814对应于(多个)任何类型的一个或多个硬件逻辑单元,其基于存储在(多个)硬件逻辑单元中和/或以其他方式体现在(多个)硬件逻辑单元中的逻辑来执行操作。
[0120]
在一些情况下(例如,在计算设备1802表示用户计算设备的情况下),计算设备1802还包括用于接收各种输入(经由输入设备1818)以及用于提供各种输出(经由输出设备1820)的输入/输出接口1816。说明性输入设备包括键盘设备、鼠标输入设备、触摸屏输入设备、数字化板、一个或多个静态图像相机、一个或多个视频相机、一个或多个深度相机系统、一个或多个麦克风、语音识别机制、任何运动检测机制(例如,加速度计、陀螺仪等)等等。一种特定的输出机制可以包括显示设备1822和相关联的图形用户界面呈现(gui)1824。显示
设备1822可以对应于液晶显示设备、发光二极管显示(led)设备、阴极射线管设备、投影机制等。其他输出设备包括打印机、一个或多个扬声器、触觉输出机制、存档机制(用于存储输出信息)等。计算设备1802还可以包括一个或多个网络接口1826,用于经由一个或多个通信管道1828与其他设备交换数据。一个或多个通信总线1830将上述单元通信耦合在一起。
[0121]
(多个)通信管道1828可以以任何方式来实现,例如,通过局域计算机网络、广域计算机网络(例如,互联网)、点对点连接等或任何其组合。(多个)通信管道1828可以包括由任何协议或协议组合管控的硬连线链路、无线链路、路由器、网关功能性、名称服务器等的任何组合。
[0122]
图18将计算设备1802示为由单独单元的离散集合组成。在一些情况下,单元的集合可以对应于在具有任何形状因数的计算设备机架中所提供的离散硬件单元。图18示出了其底部的说明性形状因数。在其他情况下,计算设备1802可以包括集成了图1中所示的两个或更多单元的功能的硬件逻辑单元。例如,计算设备1802可以包括片上系统(soc或soc),对应于将图18中所示的两个或更多单元的功能组合在一起的集成电路。
[0123]
以下概述提供了在本文中阐述的技术的说明性方面的非穷尽集合。
[0124]
根据第一方面,描述了用于执行基于图像的搜索的一个或多个计算设备。(多个)计算设备包括硬件逻辑电路,硬件逻辑电路本身包括:(a)通过执行存储在存储器中的机器可读指令来执行操作的一个或多个硬件处理器,和/或(b)使用特定于任务的逻辑门集合来执行操作的一个或多个其他硬件逻辑单元。操作包括:响应于由用户对输入设备的操纵而从用户接收对输入图像的选择;从输入图像中提取第一信息项,该第一信息项表示输入图像的至少一个现有特性;提供指定至少一个预期图像特性的第二信息项;基于第一信息项和第二信息项来生成查询图像,该查询图像包含表示输入图像的至少一个现有特性和至少一个预期图像特性的组合的内容;将查询图像提交给计算机实现的搜索引擎;接收由搜索引擎评估的与查询图像相匹配的候选图像集合;并且使用输出设备向用户呈现该候选图像集合。
[0125]
根据第二方面,输入图像对应于第一输入图像。第一信息项对应于与第一输入图像相关联的第一潜在变量向量,第二信息项对应于与接收到的第二输入图像相关联的第二潜在变量向量。提取操作包括:使用由硬件逻辑电路实现的编码器以基于第一输入图像产生第一潜在变量向量。提供操作包括:使用由硬件逻辑电路实现的编码器以基于第二输入图像产生第二潜在变量向量。操作还包括:组合第一潜在变量向量和至少第二潜在变量向量以产生混合潜在变量向量。生成操作包括:使用由硬件逻辑电路实现的解码器神经网络来基于混合潜在变量向量产生查询图像,该解码器神经网络基于由生成式机器训练模型所提供的参数值来操作。
[0126]
根据与第二方面相关的第三方面,操作还包括:从用户接收描述第二输入图像的文本信息;并且通过基于文本信息执行搜索来取回第二输入图像。
[0127]
根据与第二方面相关的第四方面,第一输入图像示出产品,并且第二输入图像示出产品的期望特性。
[0128]
根据与第二方面相关的第五方面,组合操作包括:组合第一潜在变量向量和多个补充潜在变量向量,以产生混合潜在变量向量。多个补充潜在变量向量与通过执行基于文本的图像搜索取回的多个输入图像相关联。此外,多个补充潜在变量向量包括第二潜在变
量向量。
[0129]
根据与第二方面相关的第六方面,所述操作还包括:响应于由用户通过操纵由用户界面呈现所提供的图形控件所做出的一个或多个选择,接收一个或多个加权值;并且基于一个或多个加权值来修改与一个或多个相应输入图像相关联的一个或多个潜在变量向量。
[0130]
根据与第六方面相关的第七方面,图形控件包括至少一个滑块条。
[0131]
根据与第六方面相关的第八方面,图形控件包括光标导航空间。光标导航空间的外围上的不同参考点对应于相应的输入图像。要被应用于输入图像的加权值基于光标在光标导航空间中相对于参考点的位置。
[0132]
根据与第二方面相关的第九方面,所述操作还包括:改变被应用于与一个或多个相应输入图像相关联的一个或多个相应潜在变量向量的一个或多个加权值;响应于该改变,显示基于一个或多个潜在变量向量产生的所生成的图像的改变的表示;并且接收来自用户的保存加权值集合的指令,用户在观察到所生成的图像的预期状态后做出指令。
[0133]
根据与第二方面相关的第十方面,训练系统通过在生成式对抗网络中训练生成器组件来产生解码器神经网络。
[0134]
根据与第二方面相关的第十一方面,每个编码器通过以下方式操作:(a)将给定输入图像转换为给定输入项的特征空间表示;(b)使用解码器神经网络将与给定输入图像相关联的候选潜在变量向量转换为候选输出图像;(c)将候选输出图像转换为候选输出图像的特征空间表示;(d)确定给定输入图像的特征空间表示与候选输出图像的特征空间表示之间的距离;(e)基于距离调整候选潜在变量向量;并且重复操作(a)到(e)多次直到达到优化目标。
[0135]
根据与第二方面相关的第十二方面,每个编码器使用前馈神经网络来实现,该前馈神经网络近似用于迭代地找到潜在变量向量的过程的结果。
[0136]
根据与第二方面相关的第十三方面,每个编码器通过将给定输入图像下采样为大小被减少的输入图像来操作。
[0137]
根据与第二方面相关的第十四方面,训练系统通过分别训练变分自动编码器(vae)的编码器组件和解码器组件来产生每个编码器和解码器神经网络。
[0138]
根据与第二方面相关的第十五方面,训练系统通过分别训练基于流的神经网络系统的编码器组件和解码器组件来产生每个编码器和解码器神经网络,在基于流的神经网络系统中解码器组件实现由编码器组件所提供的函数的逆函数。
[0139]
根据第十六方面,描述了一种用于执行基于图像的搜索的方法。该方法包括:响应于由用户对第一输入图像和第二输入图像的选择,接收至少第一输入图像和第二输入图像;使用编码器以基于第一输入图像产生第一潜在变量向量;使用编码器以基于第二输入图像产生第二潜在变量向量;至少组合第一潜在变量向量和第二潜在变量向量以产生混合潜在变量向量;使用解码器神经网络以基于混合潜在变量向量产生查询图像;将查询图像提交给计算机实现的搜索引擎;接收由搜索引擎评估的、与查询图像相匹配的候选图像集合;并且使用输出设备向用户呈现候选图像集合。
[0140]
根据与第十六方面相关的第十七方面,解码器神经网络基于由生成式机器训练模型所提供的参数值来操作。
[0141]
根据与第十七方面相关的第十八方面,生成式机器训练模型是使用生成式对抗网络来产生的。
[0142]
根据与第十六方面相关的第十九方面,该方法还包括:响应于用户通过与用户界面呈现所提供的图形控件进行交互而做出的选择来接收至少一个加权值。组合操作受至少一个加权值的影响。
[0143]
根据第二十方面,描述了一种用于存储计算机可读指令的计算机可读存储介质。该计算机可读指令在由一个或多个硬件处理器执行时执行包括以下步骤的方法:响应于由用户对第一输入图像和第二输入图像的选择,接收至少第一输入图像和第二输入图像;使用编码器以基于第一输入图像产生第一潜在变量向量;使用编码器以基于第二输入图像产生第二潜在变量向量;组合第一潜在变量向量和至少第二潜在变量向量以产生混合潜在变量向量;使用解码器神经网络来基于混合潜在变量向量产生查询图像,训练系统通过在生成式对抗网络中训练生成器组件来产生解码器神经网络;将查询图像提交给计算机实现的搜索引擎;接收由搜索引擎评估的、与查询图像相匹配的候选图像集合;并且使用输出设备向用户呈现候选图像集合。
[0144]
第二十一方面对应于上述第一至第二十方面的任何组合(例如,任何逻辑一致的排列或子集)。
[0145]
第二十二方面对应于与第一到二十一个方面相关联的任何方法对应物、设备对应物、系统对应物、装置加功能对应物、计算机可读存储介质对应物、数据结构对应物、制品对应物、图形用户界面呈现对应物等。
[0146]
最后,本文描述的功能性可以采用各种机制来确保以符合适用法律、社会规范以及个人用户的期望和偏好的方式处理任何用户数据。例如,该功能性可以允许用户明确选择参加(并且然后明确选择退出)该功能性的规定。该功能性还可以提供合适的安全机制来确保用户数据的隐私(诸如数据清理机制、加密机制、密码保护机制等)。
[0147]
此外,描述可能已经在说明性挑战或问题的上下文中阐述了各种概念。这种解释方式并不旨在暗示他人已经以本文中指定的方式理解和/或阐明了挑战或问题。此外,这种解释方式并不旨在暗示权利要求中所记载的主题仅限于解决标识的挑战或问题;也就是说,权利要求中的主题可以被应用于本文描述的挑战或问题之外的挑战或问题的上下文中。
[0148]
虽然已经以特定于结构特征和/或方法动作的语言描述了主题,但是应当理解,在所附权利要求中定义的主题不一定局限于上述特定特征或动作。相反,上述特定特征和动作作为实现权利要求的示例形式而被公开。
再多了解一些

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

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

相关文献