使用有条件的生成对抗网络查找互补的数字图像
文献发布时间:2023-06-19 12:24:27
背景技术
给定用户初始数字项的选择,计算系统经常采取推荐引擎,以建议一个或多个数字项。在常见的策略中,推荐引擎可能基于考虑点击计数信息将数字项视为有关联的。例如,如果点击(或以其他方式交互)第一数字项的许多用户还点击第二数字项,推荐引擎可以确定这两个数字项是有关联的。然而,这种有关性的度量是嘈杂的,因为它包含了用户与数字项交互的各种原因。因此,这种有关性的度量不足以微妙的定位用户试图查找两个互补的数字项的那些场合,例如,当用户试图查找服装的互补项的图像时。
发明内容
本文所描述的计算机实施的技术用于检索至少一个推荐的输出图像。在一个实现中,技术使用机器训练的生成器组件,以将与由用户选择的第一部分的图像相关联的第一部分的图像信息变换为第二部分的生成图像信息的一个或多个实例。第二部分的生成图像信息的每个实例补充第一部分的图像信息。生成器组件由计算机实现的训练系统使用有条件的生成对抗网络(CGAN)训练。该技术进一步包括:基于第二部分的生成图像信息的(多个)实例从数据存储库中检索一个或多个第二部分的输出图像;生成呈现第一部分的图像和(多个)第二部分的输出图像的用户界面呈现;以及在显示设备上显示用户界面呈现。
在一个实现中,第一部分的图像示出由用户选择的第一服装项(诸如一条裤子),并且每个第二部分的输出图像示出补充第一服装项(诸如衬衫、夹克、女衬衫等)的第二服装项。更一般地,第一部分的图像和每个第二部分的输出图像可以示出任何互补的图像内容,诸如互补的家具项、装饰品项、汽车的零件等。
在一个实现中,训练系统产生通过以下项生成器组件:标识合成图像集,每个合成图像至少由第一部分的图像和互补的第二部分的图像组成;分割合成图像以生成多个第一部分的提取图像和多个第二部分的提取图像;以及使用cGAN基于多个第一部分的提取图像和多个第二部分的提取图像来训练生成器组件。
以上总结的技术可以体现在各种类型的系统、设备、组件、方法、计算机可读存储介质、数据结构、图形用户界面呈现、制造制品等中。
本发明内容旨在以简化的形式介绍一些概念;这些概念在下面的具体实施方式中进一步描述。本发明内容不旨在确定所要求保护的主题的关键或必要特征,也不旨在用于限制要求保护的主题的范围。
附图说明
图1示出了用于产生已训练的生成器组件的说明性的训练系统。该训练系统使用有条件的生成对抗网络(cGAN)执行该任务。
图2示出了使用生成器组件推荐输出图像的推荐生成系统,生成器组件是使用图1的训练系统产生的。
图3示出了可以被用以实现图1和图2的训练系统和推荐-生成系统的计算装备。
图4示出了图1的训练系统的说明性的方面。
图5示出了图2的推荐-生成系统的说明性的方面。
图6示出了由图2的推荐-生成系统产生的说明性的用户界面呈现。
图7示出了可以被用以实现图1和图2的训练系统和推荐-生成系统的各个方面的说明性的卷积神经网络(CNN)组件。
图8是示出图2的推荐-生成系统的操作的一种说明性的方式的流程图。
图9是示出图1的训练系统的一种说明性的操作方式的流程图。
图10示出了可以被用以实现上述附图中所示的特征的任何方面的说明性类型的计算设备。
在整个公开和附图中使用相同的数字表示相似的组件和特征。100系列编号是指最初在图1中发现的特征,200系列编号是指最初在图2中发现的特征,300系列编号是指最初在图3中发现的特征,依此类推。
具体实施方式
本公开组织如下。A节描述了用于训练生成器组件并且在给定所选择的输入图像时使用生成器组件推荐图像的计算系统。B节阐述了解释A节计算系统的操作的说明性的方法。以及C节描述了说明性的计算功能,该计算功能可以被用以实现A节和B节中所描述的特征的任何方面。
作为引文,术语“硬件逻辑电路”对应于执行存储在存储器中的机器可读指令的一个或多个硬件处理器(例如,CPU、GPU等),和/或使用固定和/或可编程逻辑门的任务特定集合来执行操作的一个或多个其他硬件逻辑组件(例如,FPGA)。C节提供了关于硬件逻辑电路的一种实现的附加信息。术语“组件”和“引擎”中的每个指的是,执行特定功能的硬件逻辑电路的部分。
在一种情况下,图示的将图中的各个部分分离成不同单元可以反映在实际实现中对应的不同物理和有形部分的使用。备选地或附加地,图中所图示的任何单个部件可以由多个实际物理部分来实现。备选地或附加地,图中任何两个以上的分离的部分的描绘可以反映由单个实际物理部分执行的不同功能。
其他图以流程图形式描绘了概念。以这种形式,某些操作被描述为构成以某些顺序执行的不同框。这种实现是说明性的并且非限制的。本文所描述的特定框可以被组合到一起并且在单个操作中执行,某些框可以分解为多个组件框,并且某些框可以按照与本文所图示的顺序不同的顺序执行(包括以并行的方式执行框)。在一个实现中,在关于处理-有关功能的流程图中所示出的框可以由C节中所描述的硬件逻辑电路来实现,该硬件逻辑电路转而由一个或多个硬件处理器和/或包括任务特定的逻辑门集合的其他逻辑组件来实现。
关于术语,短语“被配置为”涵盖用于执行所标识的操作的各种物理和有形机制。机制可以被配置为使用节C的硬件逻辑电路来执行操作。术语“逻辑”同样涵盖用于执行任务的各种物理和有形机制。例如,在流程图中所图示的每个处理-有关的操作与用于执行该操作的逻辑组件相对应。逻辑组件可以使用C节的硬件逻辑电路来执行它的操作。当由计算设备实现时(无论以何种方式实现),逻辑组件表示作为计算系统物理部分的电气组件。
本文所描述的存储资源的任一存储资源,或这些存储资源的任何组合,可以被视为计算机可读介质。在许多情况下,计算机可读介质代表一些形式的物理和有形实体。术语计算机可读介质还涵盖传播信号,例如经由物理管道和/或空气或其他无线介质等传输或接收。然而,特定术语“计算机可读存储介质”明确地排除传播信号本身,同时包括所有其他形式的计算机可读介质。
以下解释可以标识一个或多个特征作为“可选的”。该类型的声明不被解释为对可能被认为是可选的特征的穷举说明;即,其他特征可以被认为是可选的,尽管在文本中没有被明确标识。此外,单个实体的描述不旨在排除多个这种实体的使用;类似地,多个实体的描述不旨在排除单个实体的使用。此外,虽然描述可以将某些特征解释为执行所标识的功能或实现所标识的机制的备选的方式,但是这些特征也可以以任何组合方式组合在一起。最后,术语“示例性的”或“说明性的”是指潜在的许多实现中的一个实现。
A.说明性计算系统
图1示出了用于产生已训练的生成器组件104的说明性的训练系统。训练系统102使用有条件的生成对抗网络(cGAN)106执行该任务。在图2示出的并且在以下所描述的推荐-生成系统使用已训练的生成器组件104将已接收的输入图像映射到补充输入图像的一个或多个其他图像中。即,在本文使用的术语中,推荐-生成系统将所选择的第一部分的图像映射到一个或多个第二部分的图像,其中每个第二部分的图像补充第一部分的图像。
在大多数此处所呈现的说明性示例中,第一部分的图像示出了所选择的服装项(诸如,一条裤子),并且互补的第二部分的图像示出了互补的服装项(诸如确定与所选择的裤子相配的各种衬衫、夹克、女衬衫等)。在另一种情况下,所选择的第一部分的图像示出了所选择的家具项(诸如,沙发),并且互补的第二部分的图像示出了互补的家具项(诸如,茶几、咖啡桌等)。在另一情况下,所选择的第一部分的图像示出了家居装饰项(诸如,花瓶),并且互补的第二部分的图像示出了互补的装饰项(诸如,壁挂等)。在另一情况下,所选择的第一部分的图像示出了所选择的汽车零件(诸如,所选择的座椅样式),并且互补的第二部分的图像示出了互补的汽车零件(诸如,仪表板饰面等)等等。上述情况是作为示例而非限制提供的。
进一步注意,图1示出了训练系统102仅生产单个生成器组件104。但在实践中,训练系统102可以产生多个生成器组件。每个生成器在不同的图像内容分类型对之间映射。例如,给定所选择的一条裤子,第一生成器组件可以建议衬衫,同时给定所选择的衬衫,第二生成器组件可以建议裤子。给定所选择的一双鞋,第三生成器组件可以建议裤子等等。推荐-生成引擎可以利用任意数量的这种生成器组件,以生成它的推荐,取决于它是如何被配置的。
训练系统102包括用于产生训练图像语料库的预处理功能108。cGAN 106随后使用训练图像以产生生成器组件104。作为第一阶段,匹配组件110检索匹配图像的初始集,匹配图像的每个匹配图像包括第一部分的图像和互补的第二部分的图像。例如,匹配组件110可以检索人类对象的初始图像集,图像集的每个图像包括示出了由人类对象所穿裤子的第一部分的图像和示出了由人类对象所穿衬衫的第二部分的图像。在一种情况下,匹配组件110通过向搜索引擎提交一个或多个搜索查询来执行它的功能,诸如由华盛顿州雷蒙德市的MICROSOFT CORPORATION提供的BING搜索引擎。搜索引擎随后从与广域网(例如互联网)相关联的数据存储库中检索匹配图像的初始集。匹配组件110可以提交但不限于以下查询:(1)“男士秋季时尚”;(2)“男士秋季时尚2018”;(3)“女性秋季时尚”;(4)“女性最新秋季时尚”等。如这些查询示例所指示,模型开发人员可以通过以适当的方式制作输入查询来挑选初始匹配的目标集。即,模型开发者可以选择查明正在被寻找的图像的主题、与正在被寻找的图像相关联的日期等的查询。匹配组件110将匹配图像的初始集存储在数据存储库112中。
训练集生成组件(TSGC)114基于匹配图像的初始集生成训练语料库。图4将详细描述该组件的操作。作为概述,TSGC 114首先从初始匹配图像集中提取多个合成图像。每个合成图像包括第一部分的图像和第二部分的图像。例如,每个合成图像与示出了人类对象的完整身体的初始匹配图像的部分对应,不包括不属于对象身体的初始匹配图像的其他部分。TSGC 114可以随后从合成图像提取多个第一部分的图像(诸如示出了裤子的图像)和多个第二部分的图像(诸如示出了衬衫的图像)。这些提取图像在本文中被分别称为第一部分的提取图像116和第二部分的提取图像118。TSGC 114可以可选地在提取图像上执行其他处理,诸如通过将图像居中、归一化图像、压缩图像等。
数据存储库120存储第一部分的提取图像116和第二部分的提取图像118。备选地,TSGC 114可以将图像转换为特征信息,例如使用深度神经网络(DNN)。数据存储库120可以随后存储与每个提取图像相关联的特征信息,代替提取图像本身,或者附加提取图像。数据存储库120可以将特征信息的每个实例表示为特征向量。
更通常地,本文中所使用的术语“第一部分的图像信息”指的是,与第一部分的图像相关联的像素,或者第一部分的图像的一些种类的特征-空间表示,诸如描述与第一部分的图像相关联的特征的向量。类似地,本文中所使用的术语“第二部分的图像信息”指的是,与第二部分的图像相关联的像素,或者第二部分的图像的一些种类的特征-空间表示。
利用上述术语,已训练的生成器组件104的目的是将第一部分的图像信息映射到第二部分的生成图像信息。第一部分的图像信息可以与第一部分的图像相关联的原始像素,或者第一部分的图像的特征-空间表示对应。类似的,第二部分的生成图像信息可以与关联于第二部分的生成图像的原始像素,或者第二部分的生成图像的特征-空间表示对应。本文中所使用的修饰语“生成”指示由生成器组件104产生的图像信息反映从多个真实预先存在的图像中获得的洞察力、但不必然匹配那些预先存在的图像中的任一图像。即,生成的图像被是创建的,而不是从预先存在的图像的经验分布中检索的。
cGAN 106包括生成器组件104’(G),该组件将第一部分的图像信息y,连同从分布p
cGAN也包括用于生成得分的鉴别器组件124(D),该得分反映馈送到它的第二部分的图像信息的实例是真实的置信水平,与生成的相反。第二部分的图像信息的真实实例与从合成图像中提取实际第二部分的图像对应。第二部分的图像信息的生成实例是由生成器组件104’产生的。在训练中的任何阶段,鉴别器组件124的行为由加权值集θ
训练组件126将图像信息的实例馈送到生成器组件104’和鉴别器组件124。训练组件126还基于当前所观察这两个组件的性能更新针对生成器组件104’和鉴别器组件124的加权值。在实践中,训练组件126可以以比率r更新鉴别器组件124的加权值,并且以比率s更新生成器组件104’的加权值;在一些实现中,r>s。
更具体地,训练组件126根据以下目标函数更新生成器组件104’和鉴别器组件124:
在该等式中,y表示第一部分的图像信息的实例(例如,描述一条裤子的提取图像),并且x表示第二部分的图像信息的实例(例如,描述互补的衬衫的提取图像)。p
训练组件126尝试训练鉴别器组件124,以最大化等式(1)的第一部分,即(l0gD(x|y))。通过这样做,训练组件126将最大化鉴别器组件将正确标识第二部分的信息的真实的并且生成实例的概率。同时,训练组件126尝试训练生成器组件104’,以最小化等式(1)的第二部分,即(l0g(1-D(G(z|y))))。通过这样做,训练组件126增加了生成器组件104’“欺骗”鉴别器组件124以将生成图像分类为真实的能力。总的来说,cGAN被认为是对抗性的,因为生成器组件104’和鉴别器组件124彼此互相竞争;随着每个组件提高它的性能,它使其他组件的功能更难执行。cGAN 106被限制为“有条件的”因为生成器组件104’基于第一部分的图像信息y而不是单独的z来生成第二部分的图像信息。
不同的实现可以以不同的环境特定方式来制定上述目标函数。在一个实现中,训练组件126可以尝试训练生成器组件104’,以解决:
N表示训练语料库中多对第一部分的和第二部分的提取图像,每个这种对由(y
在一种实现中,生成器损失函数L
L
L
更具体地,L
W和H分别与第一部分的图像和第二部分的图像的宽度和高度相对应。||·||
Lpercept表示第一部分的图像信息x和第二部分的生成信息之间的感知损失。在一个实现中,训练组件126可以通过对第一部分的图像信息x和第二部分的生成信息进行二维离散余弦变换(DCT)来计算该损失,如下:
W和H再次表示图像信息的宽度和高度。Ω
最后,L
给定y,该等式的内项反映了生成器组件104’将产生第二部分的图像信息的有效重建的概率。训练组件126在训练语料库中的所有N个训练样本上对这个概率求和。
在一个实现中,鉴别器组件124通过接收实际第二部分的图像信息x执行它的功能。在另一实现中,与接收实际第二部分的图像信息相反,鉴别器组件124接收实际第二部分的图像信息x的变换L(x)。在一个实现中L(x)表示x和x的已生成复制的线性组合的变换,如:
符号β表示0和1之间的随机值。如果β大于所规定的阈值T,则已变换的图像信息L(x)被认为是真实的。如果β≤T,则L(x)被认为生成的(即,“假的”)。训练组件126随着训练的进行而增加。这具有提供cGAN 106的更平滑训练的纯效果。在一个实现中,训练系统102可以将变换L(x)实现为深度神经网络,该深度神经网络与cGAN 106协同训练。
在一个示例中,训练组件126可以以任意顺序将图像对馈送到cGAN 106。这与随机批处理方法(RBA)相对应。在另一示例中,训练组件126可以首先形成有关对的集群,并且随后在逐个集群的基础上向cGAN 106馈送图像对。这构成了集群的批处理方法(CBA)。例如,有关对的集群可以示出以特定姿势的排列的裤子等。
现前进至图2,该图示出了推荐-生成系统202,该系统使用已训练的生成器组件104推荐图像,该已训练的生成器组件104通过使用图1的训练系统102产生。作为初始步骤,用户可以经由浏览器应用与搜索引擎204交互,以选择第一部分的图像,诸如一条裤子。用户可以以各种方式执行该任务,诸如通过搜索、查找和点击第一部分的图像。此处,“点击”广义地指用于选择图像的任何机制,诸如经由鼠标设备选择它、在触敏表面上触摸等。或者用户可以在其他信息中点击包含第一部分的图像作为其中的一部分的页面等。在其他情况下,用户可以点击所检索的图像的特定部分,诸如点击在图像中示出的下衣;该所选择的部分构成了第一部分的图像。通常,用户通过向浏览器应用和/或一些其他应用提交一个或多个输入信号、通过与输入设备交互(鼠标设备、触敏表面、键盘等)来选择第一部分的图像。在一些情况下,如果针对第一部分的图像的信息已经不存在,则可选的预处理组件206将所选择的第一部分的图像变换为第一部分的图像的特征空间表示。
已训练的生成器组件104随后将第一部分y映射到第二部分的生成图像信息
如所示出的,推荐生成系统202可以备选地提供多个已训练的生成器组件208,多个已训练的生成器组件208的每个组件执行不同成对的映射变换。推荐-生成系统202可以基于包含在用户已经选择的第一部分的图像中内容类型的知识,和应当呈现给用户的互补的图像的种类的知识来选择合适的生成器组件。推荐-生成系统202可以使用各种技术来检测第一部分的图像的内容,诸如通过分析与第一部分的图像相关联的元数据,和/或使用机器训练的分类模型以标识与第一部分的图像相关联的内容等。推荐-生成系统202可以基于例如由管理员或用户他自己或她自己限定的预配置的设置来确定应当被呈现给用户的互补的图像的类型。或者推荐-生成系统202可以允许用户输入实时命令,该命令传达用户感兴趣的互补的图像的种类,例如通过允许用户点击“向我示出匹配的衬衫”图形命令等。
建议-生成组件210基于由已训练的生成器组件104生成的第二部分的生成图像信息来检索一个或多个第二部分的输出图像。建议-生成组件210将在以下参考图5被详细地描述。作为概览,建议-生成组件210可以从数据存储库212中选择一个或多个第二部分的输出图像,这些图像被确定匹配第二部分的生成图像信息。
最后,用户界面(UI)-生成组件214生成用户界面呈现,该呈现显示由建议-生成组件210生成第二部分的输出图像。在一些情形中,UI-生成组件214可以显示由用户选择的第一部分的图像;这将允许用户可视地判断第一部分的图像和每个第二部分的输出图像的兼容性。
总体上,给定输入第一部分的图像的用户规范,推荐-生成系统202提供第二部分的图像的相关建议。推荐-生成系统202可以提供好的建议,因为它使用了基于合成图像的最新语料库、使用cGAN 106训练的生成器组件104,合成图像中的每个图像示出了第一部分的图像和第二部分的图像。推荐-生成系统202也可以说是有效利用计算资源,因为它快速地向用户提供好的建议,减少了针对用户参与冗长搜索会话的需要。
图3示出了可以被用以实现图1和2的训练系统102和推荐-生成系统202的计算装备302。在一个实现中,一个或多个计算设备(诸如,一个或多个服务器304)实现训练系统102。一个或多个计算设备(诸如,一个或多个服务器306)实现推荐-生成系统202。多个数据存储库308存储用于由训练系统102和推荐-生成系统200处理的图像
最终用户可以经由多个用户计算设备310、经由计算机网络312与推荐-生成系统202交互。用户计算设备310可以与以下任一组合对应:台式个人计算设备、膝上型设备、手持设备(诸如,平板型设备、智能电话等)、游戏控制台设备、混合现实设备、可穿戴计算设备等。计算机网络312可以与广域网对应(诸如,互联网)、局域网、一个或多个点对点链路、或它们的任何组合。
图3指示推荐-生成系统202的所有功能被分配给(多个)服务器306。用户计算设备可以经由运行在用户计算设备上的浏览器程序与该功能交互。备选地,推荐-生成系统202的功能的任何部分可以由本地用户计算设备来实现。
图4示出了训练集生成组件(TSGC)114的说明性方面,它是图1中引入的训练系统102的一部分。如名字指示的,TSGC 114的目的是生成训练的图像语料库。TSGC 114将在以下提取衣服下装(例如,裤子)和衣服上装(例如,衬衫、夹克、女衬衫等)的图像的上下文中被描述。但是以下所描述的原理可以扩展至任何配对的互补的图像的提取。
第一分割组件402接收来自匹配组件110的匹配图像。说明性匹配图像404包括显示完整人类身体的合成图像406,可选地连同其他内容(诸如背景内容,在该情况下,建筑物)。第一分割组件402从匹配图像404的剩余部分提取合成图像406。第一分割组件402可以使用任何计算机自动分割技术来执行该任务。备选地或附加地,第一分割组件402可以经由众包平台利用人类审阅者408的手工帮助执行该任务。
第二分割组件410接收来自第一分割组件402的合成图像406。第二分割组件410随后从合成图像406中提取第一部分的提取图像412和第二部分的提取图像414。此处,第一部分的提取图像412示出了人类对象所穿戴的裤子,同时第二部分的提取图像414示出了人类对象所穿戴的夹克和衬衫。再次地,第二分割组件410可以使用任何计算机自动分割技术来执行该任务。备选地或附加地,第二分割组件410可以经由众包平台利用人类审阅者416的手工协助执行该任务。
在一个实现中,自动分割技术可以首先使用机器训练的组件,诸如卷积神经网络(CNN)组件,对图像的像素进行分类。每个像素的分类指示它最有可能属于的内容类型。例如,第一分割组件402可以使用机器训练的组件,该组件区分示出人类对象的像素和示出非人类内容的像素。第二分割组件410可以使用机器训练的组件以区分下身衣服像素与上身衣服像素等。自动分割技术可以随后在共享相同分类的每组像素周围绘制感兴趣区域(ROI)。自动分割技术可以依赖不同的技术以执行该功能。在一种方法中,自动分割技术绘制矩形,该矩形涵盖具有相同分类的所有像素,可选地忽略不具有具有相同分类的相邻像素的外围像素。在另一方法中,自动分割组件迭代地合并图像中共享相同分类的图像区域。在另一方法中,自动分割技术可以使用区域建议网络(RPN)以生成ROI。在总体上下文中,关于区域建议网络的主题的背景信息被描述在Rend等人“Faster R-CNN:Towards Real-TimeObject Detection with Region Proposal Networks,”arXiv:1506.01497v3[cs.CV],2016年1月6日9页。
后处理组件418对提取图像(412、414)执行后处理操作。例如,后处理组件418可以将每幅图像的主要内容居中、标准化每幅图像、调整每幅图像的对比度等。后处理组件418还可以拒绝不满足一个或多个环境-特定测试的图像。例如,如果图像的分辨率低于所规定的阈值,或者它的主要内容由一个或多个对象所遮挡等,则后处理组件418可以拒绝图像。
在一些实现中,后处理组件418还可以将每个图像转换为特征空间表示。如上所注意到的,后处理组件418可以使用机器训练的组件来执行该任务,诸如CNN组件。在总体上下文中,关于将图像转换为特征空间表示的CNN组件的主题的背景信息包括:Howard等人,“MobileNets:Efficient Convolutional Neural Networks for Mobile Vision”,arXiv:1704.04861v1[cs.CV],2017年4月17日,9页;He等人,Deep Residual Learning for ImageRecognition”,arXiv:1512.03385v1[cs.CV],2015年12月10日,12页;和Szegedy等人,“Going Deeper with Convolutions”,arXiv:1409.4842v1[cs.CV],2014年9月17日,12页。
在一些实现中,后处理组件418还可以压缩原始图像本身或它的特征-空间表示。例如,后处理组件可以应用主成分分析(PCA)以减小图像的每个特征-空间表示的尺寸。以上所描述的处理操作本着说明而非限制的精神被描述;其他实现可以应用其他类型的后处理操作。
图5示出了图2的推荐-生成系统202的说明性方面。假设推荐-生成系统202从已训生成器组件104接收第二部分的生成的图像信息(s
在一个实现中,推荐-生成组件202可以向用户显示第二部分的生成图像信息的实例(s
在另一实现中,推荐-生成组件202标识与第二部分的生成图像信息的实例(s
例如,在一个实现中,相邻检索组件502首先标识数据存储库120中的第二部分的提取图像相邻集N
输出项检索组件504可以随后将每个第二部分的提取图像映射到在数据存储库506中提供的一个或多个第二部分的输出图像。例如,每个第二部分的输出图像可以示出与可以由用户实际购买或由用户以其他方式选择的产品相关联的产品页面或广告。输出项检索组件504可以以与相邻检索组件502相同的方式将每个第二部分的提取图像与一个或多个第二部分的输出图像匹配,例如通过使用任何距离度量(例如,余弦相似度、欧几里得距离等)在第二部分的提取图像的所规定的阈值距离内查找输出图像集。输出项检索组件504可以通过它们的距离得分数(例如,它们的余弦相似度分数)对所标识的第二部分的输出图像进行排名,随后选择前k个排名的输出图像集。最后UI-生成组件将所选择的第一部分的图像和排名靠前的第二部分的输出图像一起显示。
在其他实现中,推荐-生成组件202可以省略相邻检索组件502。在那种情况下,输出项检索组件504直接将生成图像信息si的每个实例和候选第二部分的输出图像的每个图像进行比较。
图6示出了由图2的推荐-生成系统202产生的说明性的用户界面呈现602。在该非限制性情形中,呈现602示出了第一部分的图像604和四个第二部分的输出图像606。用户界面呈现602可以可选地示出图形提示(608、610、612、614),该图形提示允许用户选择第二部分的输出图像606中的任一图像。例如,用户可以点击图形提示608,以查看与第二部分的图像616相关联的产品页面或广告。备选地或附加地,推荐-生成组件202可以示出生成图像信息si的原始实例以供用户评阅,它可能与用户可能购买的实际产品不对应。
在其他情形中,推荐-生成组件202可以在一个或多个用户界面呈现内提供用于用户考虑的多个推荐集。例如,假设用户通过选择第一部分的图像604以再次开始。推荐-生成组件202可以使用第一已训练的生成器组件,以查找并且显示互补的上衣集(如图6中所示的)。它也可以使用第二已训练的生成器组件,以查找并且显示互补的鞋子集(未在图6中示出)。输出图像的每个集补充由用户最初选择的一条裤子。
在其他情形中,推荐-生成组件202可以将一个或多个第二部分的输出图像视为输入示例,并且查找一个或多个输出图像集,该输出图像集补充这些输入示例。例如,推荐-生成系统202可以将在第二部分的图像616中示出的衬衫视为新的输入示例。它可以随后查找并且显示补充衬衫的一个或多个项链等。推荐-生成系统202可以将这个推荐链扩展任意数量的步骤。
用户界面呈现602还可以包括实时配置选项618,该选项允许用户控制被显示的(多个)推荐集(如果有的话)。备选地或附加的,用户界面呈现602包括到单独的配置页面(未示出)的链接620,该链接允许用户更一般地指定UI生成组件214的推荐行为。虽然未示出,但是UI-生成组件214可以包括学习组件,该学习组件学习用户的推荐-设置偏好,并且针对该用户自动地调用这些设置。
图7示出了说明性的卷积神经网络(CNN)组件702,它可以被用以实现图1和图2的训练系统102和推荐-生成系统202的方面。例如,使用CNN组件702可以分别实现生成器组件(104、104’)和鉴别器组件124。图7描述了CNN函数的总体特性。
CNN组件702在阶段管线中执行分析。多个卷积组件704中的一个卷积组件对输入图像706执行卷积操作。一个或多个池化组件708执行下采样操作。一个或多个前馈组件710分别提供一个或多个完全连接的神经网络,每个神经网络包括任意数量的层。更具体地,CNN组件702可以以任意顺序散布上述三种组件。例如,CNN组件702可以包括与池化组件交织的两个以上的卷积组件。在一些实现中,任何类型的后处理组件都可以对前面层的输出进行操作。例如,分类器(Softmax)组件可以使用归一化指数函数操作由先前层提供的图像信息,以生成最终输出信息。
在每个卷积操作中,卷积组件跨输入图像移动n×m内核(其中在该总的上下文中“输入图像”指的是被馈送到卷积组件任何图像)。在一种情况中,在该内核的每个位置处,卷积组件生成内核值与图像底层像素值的点积。卷积组件将该点积存储为与内核的当前位置对应的位置处的输出图像中的输出值。
更具体地,卷积组件可以针对具有不同机器学习内核值的不同内核集执行上述操作。每个内核与不同的模式对应。在早期的处理层中,卷积组件可能应用进行服务以标识图像中相对原始的模式(诸如,边缘、角落等)的内核。在后面的层中,卷积组件可能应用查找更复杂形状(诸如,类似于人腿、手臂等的形状)的内核。
在每个池化操作中,池化组件跨输入图像移动预定大小的窗口(其中输入图像与馈送到池化组件的任何图像对应)。池化组件随后对由窗口围住的输入图像的值执行一些聚合/汇总操作,诸如通过标识并且存储窗口中的最大值,生成并且存储窗口中值的平均值等.
前馈组件可以通过形成单个输入向量来开始它的操作。它可以通过连接向它馈送的输入图像(或多个图像)的行或列来执行此任务,以形成单个输入向量z
训练组件126迭代地产生加权值,该加权值控制至少(多个)卷积组件704和(多个)前馈组件710,以及可选地(多个)池化组件708的操作。这些值共同地构成机器训练模型。训练组件126通过迭代地对数据存储库120中的图像集进行操作来可以执行它的学习。训练组件126可以使用任何技术以生成机器训练模型,诸如梯度下降技术。
本文所描述的功能的其他实现采用了其他机器训练模型(除了CNN模型,或者CNN模型之外)包括,但不限于:递归神经网络(RNN)模型、支持向量机(SVC)模型、分类树模型、贝叶斯模型、线性回归模型等。RNN模型可以使用长短期记忆(LSTM)单元、门控递归单元(GRU)等。
B.说明性过程
图8和9以流程图形式示出了解释A节的计算系统的操作的过程(802、902)。由于计算系统操作的基本原理已经在A节中被描述,某些操作将在本节中以总结的方式被解决。如具体实施方式的序言部分所述,每个流程图都表示为以特定顺序执行的一系列操作。但是这些操作的顺序仅仅是表示性的,并且可以以任何方式改变。
图8示出了表示图2的推荐-生成系统202的一种操作方式的概览的过程802。在框804中,响应于由用户使用输入设备提供的至少一个输入信号,推荐-生成系统202标识第一部分的图像。在框806中,推荐-生成系统202接收描述第一部分的图像的第一部分的图像信息。在框808中,推荐-生成系统使用生成器组件104将第一部分的图像信息变换为第二部分的生成图像信息的一个或多个实例,第二部分的生成图像信息的每个实例补充第一部分的图像信息。在框810中,推荐-生成系统202基于第二部分的生成图像信息的(多个)实例从数据存储库506中检索一个或多个第二部分的输出图像606。在框812中,推荐-生成系统202生成呈现第一部分的图像和(多个)第二部分的输出图像606的用户界面呈现602。用户界面呈现602包括允许用户选择第二部分的输出图像中的任一第二部分的输出图像的一个或多个图形提示(608、610、612、614)。在框814中,推荐-生成系统202在显示设备上显示用户界面呈现602,用于呈现给用户。生成器组件104由计算机实现的训练系统102使用有条件的生成对抗网络(cGAN)106训练。
图9示出了表示图1的训练系统102的一种说明性操作方式的过程902。在框904中,训练系统102使用匹配组件110标识合成图像集,每个合成图像至少由第一部分的图像和第二部分的图像组成。在框906中,训练系统102分割合成图像,以生成多个第一部分的提取图像和多个第二部分的提取图像。在框908中,训练系统102使用有条件的生成对抗网络(cGAN)106基于多个第一部分的提取图像和多个第二部分的提取图像,来训练生成器组件104’。针对第一部分的图像信息的多个实例,使用cGAN 106的操作包括:在框910中,使用生成器组件104’,以将第一部分的图像信息的实例,连同从分布中取得的随机信息的实例一起,映射到第二部分的生成图像信息的实例中;在框912中,使用鉴别器组件124,以提供反映第二部分的生成图像信息的实例是真实预先存在的第二部分的图像的表示的置信度水平的得分;以及在框914中,至少基于该得分,调整生成器组件104’和鉴别器组件124的权重值。
C.代表性计算功能
图10示出了计算设备1002,该计算设备可以被用以实现上述图中所阐述的机制的任何方面。例如,参考图3,图10中所示的计算设备1002的类型可以被用以实现与训练系统102或推荐-生成系统202或用户设备310的任意设备等相关联的任何计算设备。在所有情况下,计算设备1002代表物理并且有形处理机制。
计算设备1002可以包括一个或多个硬件处理器1004。(多个)硬件处理器可以包括但不限于,一个或多个中央处理单元(CPU)和/或一个或多个图形处理单元(GPU)、和/或一个或多个专用集成电路(ASIC)等。更一般地,任何硬件处理器都可以与通用处理单元或专用处理器单元相对应。
计算设备1002还可以包括与一个或多个计算机可读介质硬件单元对应的计算机可读存储介质1006。计算机可读存储介质1006保持任何种类的信息1008,诸如机器可读指令、设置、数据等。例如,计算机可读存储介质1006可以包括不限于一个或多个固态设备、一个或多个磁性硬盘、一个或多个光盘、磁带等。计算机可读存储介质1006的任何实例可以使用用于存储和检索信息的任何技术。此外,计算机可读存储介质1006的任何实例可以表示计算设备1002的固定的或可移除的组件。此外,计算机可读存储介质1006的任何实例可以提供信息的易失性的或非易失性的保留。
计算设备1002可以以不同的方式利用计算机可读存储介质1006的任何实例。例如,计算机可读存储介质1006的任何实例可以表示用于由计算设备1002在执行程序期间存储瞬变信息的硬件存储器单元(诸如随机存取存储器(RAM)),和/或用于在更永久地基础上保留/归档信息的硬件存储单元(诸如,硬盘)。在后一种情况下,计算设备1002还包括一个或多个驱动机制1010(诸如硬盘驱动机制),用于从计算机可读存储介质1006的实例存储和检索信息。
当(多个)硬件处理器1004执行存储在计算机可读存储介质1006的任何实例中的计算机可读指令时,计算设备1002可以执行上述功能中的任一功能。例如,计算设备1002可以执行计算机可读指令,以执行B节中所描述的每个过程块。
备选地或附加地,计算设备1002可以依赖一个或多个其他硬件逻辑组件1012,以使用任务特定的逻辑门集合来执行操作。例如,(多个)硬件逻辑组件1012可以包括硬件逻辑门的固定配置,例如,该硬件逻辑门在制造时被创建和设置,并且此后不可改变。备选地或附加地,(多个)其他硬件逻辑组件1012可以包括,可以被设置为执行不同的应用特定任务的可编程硬件逻辑门的集合。设备的后一分类包括,但不限于可编程阵列逻辑器件(PAL)、通用阵列逻辑器件(GAL)、复杂可编程逻辑器件(CPLD)、现场可编程门阵列(FPGA)等。
图10总体上指示硬件逻辑电路1014包括(多个)硬件处理器1004、计算机可读存储介质1006和/或(多个)其他硬件逻辑组件1012的任何组合。即,计算设备1002可以采用执行在计算机可读存储介质1006中提供的执行机器可读指令的(多个)硬件处理1004、和/或使用硬件逻辑门的固定集合和/或硬件逻辑门的可编程集合执行操作的一个或多个其他(多个)硬件逻辑组件1012的任意组合。更一般地说,硬件逻辑电路1014对应于(多个)任何类型的一个或多个硬件逻辑组件,该硬件逻辑组件基于存储在(多个)硬件逻辑组件中的逻辑和/或以其他方式体现在(多个)硬件逻辑组件中的逻辑来执行操作。
在一些情况下(例如,在计算设备1002表示用户计算设备的情况下),计算设备1002还可以包括用于接收各种输入(经由输入设备1018)和用于提供各种输出(经由输出设备1020)的输入/输出接口1016。说明性的输入设备包括键盘设备、鼠标输入设备、触摸屏输入设备、数字化板、一个或多个静态图像相机、一个或多个摄像机、一个或多个深度相机系统、一个或多个麦克风、语音识别机制、任何运动检测机制(例如,加速度计、陀螺仪等)等等。一种特定的输出机制可以包括显示设备1022和相关联的图形用户界面呈现(GUI)1024。显示设备1022可以与液晶显示设备、发光二极管显示(LED)设备、阴极射线管设备、投影机构等对应。其他输出设备包括打印机、一个或多个扬声器、触觉输出机构、存档机构(用于存储输出信息)等等。计算设备1002还可以包括一个或多个网络接口1026,用于经由一个或多个通信管道1028与其他设备交换数据的。一个或多个通信总线1030将上述组件通信地耦合在一起。
(多个)通信管道1028可以以任何方式实现,例如,通过局域计算机网络、广域计算机网络(例如,互联网)、点对点连接等,或它们的任何组合。(多个)通信管道1028可以包括由任何协议或协议组合管理的硬连线链路、无线链路、路由器、网关功能、名称服务器等的任何组合。
图10示出了由分离单元的离散集合组成的计算设备。在一些情况下,单元的集合可以与对应于在具有任何形状因子的计算设备机箱中提供的离散硬件单元。图10在它的底部部分示出了说明性形状因子。在其他情况下,计算设备1002可以包括集成了图1中所示的单元中的两个以上单元的功能的硬件逻辑组件。例如,计算设备1002可以包括片上系统(SoC或SOC),对应于结合了图10所示的单元中的两个以上单元的功能的集成电路。
以下概述提供了本文所阐述的技术的说明性方面的非穷尽的集合。
根据第一方面,用于检索一个或多个输出图像的一个或多个计算设备被描述。(多个)计算设备包括硬件逻辑电路,硬件逻辑电路对应于:(a)一个或多个硬件处理器,通过执行存储在存储器的机器可读指令来执行操作,和/或(b)一个或多个硬件逻辑组件,使用任务特定的逻辑门集合来执行操作的。操作包括:响应于由用户使用输入设备提供的至少一个输入信号,标识第一部分的图像;接收描述第一部分的图像的第一部分的图像信息;使用生成器组件将第一部分的图像信息变换为第二部分的生成图像信息的一个或多个实例,第二部分的生成图像信息的每个实例补充第一部分的图像信息,生成器组件已经由计算机实现的训练系统使用有条件的生成对抗网络(CGAN)训练;基于第二部分的生成图像信息的(多个)实例,从数据存储库中检索一个或多个第二部分的输出图像;生成呈现第一部分的图像和(多个)第二部分的输出图像的用户界面呈现,用户界面呈现包括允许用户选择(多个)第二部分的输出图像中的任意第二部分的输出图像的一个或多个图形提示;以及在显示设备上显示用户界面呈现,用于呈现给用户。
根据第二方面,第一部分的图像示出了由用户选择的第一服装项,并且每个第二部分的输出图像示出了补充第一服装项的第二服装项。
根据第三方面,第二部分的生成图像信息的每个实例描述与生成的第二部分的图像相关联的特征。
根据第四方面,第二部分的生成图像信息的每个实例描述与生成的第二部分的图像相关联的像素。
根据第五方面,操作还包括,从生成器组件集中选择生成器组件,每个生成器组件与一对互补的项类型相关联。
根据第六方面,操作还包括,应用两个或多个生成器组件,每个生成器组件与一对互补的项类型相关联。
根据第七方面,检索操作还包括,标识与第二部分的生成图像信息的(多个)实例中的任意实例匹配的一个或多个第二部分的提取图像,每个第二部分的提取图像源自合成图像,合成图像包括至少第一部分的图像和第二部分的图像,作为合成图像的部分;以及标识与(多个)第二部分的提取图像中的任意提取图像匹配的(多个)第二部分的输出图像,每个第二部分的输出图像示出可选择的产品的图像。
根据第八方面,训练系统通过以下项产生生成器组件通过:标识合成图像集,每个合成图像至少由第一部分的图像和第二部分的图像组成;分割合成图像以生成多个第一部分的提取图像和多个第二部分的提取图像;以及使用cGAN基于多个第一部分的提取图像和多个第二部分的提取图像来训练生成器组件。
根据第九方面,依赖于第八方面,使用cGAN的操作包括,针对第一部分的图像信息的多个实例:使用生成器组件,以将第一部分的图像信息的实例连同从分布中采取的随机信息的实例一起,映射到第二部分的生成图像信息的实例中;使用鉴别器组件提供得分,该得分反映第二部分的生成图像信息的实例代表真实预先存在的第二部分的图像的置信度水平;以及至少基于得分,调整生成器组件和鉴别器组件的权重值。
根据第十方面,描述了一种由一个或多个计算设备实现用于检索一个或多个输出图像的方法。方法包括:响应于由用户使用输入设备提供的至少一个输入信号,标识第一部分的图像;接收描述第一部分的图像的第一部分的图像信息;使用生成器组件将第一部分的图像信息变换为第二部分的生成图像信息的一个或多个实例,第二部分的生成图像信息的每个实例补充第一部分的图像信息,基于第二部分的生成图像信息的(多个)实例,从数据存储库中检索一个或多个第二部分的输出图像;生成呈现第一部分的图像和(多个)第二部分的输出图像的用户界面呈现,用户界面呈现包括允许用户选择(多个)第二部分的输出图像中的任一图像的一个或多个图形提示;以及在显示设备上显示用户界面呈现,用于呈现给用户。生成器组件已经由计算机实现的训练系统使用有条件的生成对抗网络(CGAN)通过以下项训练:标识合成图像集,每个合成图像至少由第一部分的图像和第二部分的图像组成;分割合成图像以生成多个第一部分的提取图像和多个第二部分的提取图像;以及使用cGAN基于多个第一部分的提取图像和多个第二部分的提取图像来训练生成器组件。
根据第十一方面,依赖于第十方面,第一部分的图像示出由用户选择的第一服装项,并且每个第二部分的输出图像示出补充第一服装项的第二服装项。
根据第十二方面,依赖于第十一方面,第一服装项是上身服装项,并且第二服装项是下身服装项。
根据第十三方面,依赖于第十方面,第一部分的图像示出了由用户选择的第一可选择产品项,并且每个第二部分的输出图像示出了补充第一可选择产品项的第二可选择产品项。
根据第十四方面,依赖于第十方面,第二部分的生成图像信息的每个实例描述与已生成第二部分的图像相关联的特征。
根据第十五方面,依赖于第十方面,第二部分的生成图像信息的每个实例描述与已生成第二部分的图像相关联的像素。
根据第十六方面,依赖于第十方面,方法还包括,从生成器组件集中选择生成器组件,每个生成器组件与一对互补的项类型相关联。
根据第十七方面,依赖于第十方面,操作还包括,应用两个以上的生成器组件,每个生成器组件与一对互补的项类型相关联。
根据第十八方面,依赖于第十方面,检索操作还包括:标识与第二部分的生成图像信息的(多个)实例中的任一实例匹配的一个或多个第二部分的提取图像;以及标识与(多个)第二部分的提取图像中的任一图像匹配的(多个)第二部分的输出图像,每个第二部分的输出图像示出可选择的产品的图像。
根据第十九方面,依赖于第十方面,使用cGAN的操作包括,针对第一部分的图像信息的多个实例:使用生成器组件,以将第一部分的图像信息的实例连同从分布中采取的随机信息的实例一起映射到第二部分的生成图像信息的实例中;使用鉴别器组件提供得分,该得分反映第二部分的生成图像信息的实例代表真实预先存在的第二部分的图像的置信度水平;以及至少基于得分,调整生成器组件和鉴别器组件的权重值。
根据第二十方面,描述用于存储计算机可读指令的计算机可读存储介质。计算机可读指令在由一个或多个硬件处理器执行时执行方法,方法包括:使用匹配组件,标识合成图像集,每个合成图像至少由第一部分的图像和第二部分的图像组成;分割合成图像以生成多个第一部分的提取图像和多个第二部分的提取图像;以及使用有条件的生成对抗网络(cGAN)基于多个第一部分的提取图像和多个第二部分的提取图像来训练生成器组件。使用cGAN的操作包括,针对第一部分的图像信息的多个实例:使用生成器组件,以将第一部分的图像信息的实例连同从分布中采取的随机信息的实例一起映射到第二部分的生成图像信息的实例中;使用鉴别器组件,以提供反映第二部分的生成图像信息的实例代表真实预先存在的第二部分的图像的置信度水平的得分;以及至少基于得分,调整生成器组件和鉴别器组件的权重值。
第二十一方面对应于上述第一到第二十方面的任何组合(例如,任何逻辑上一致的排列或子集)。
第二十二方面对应于与第一到第二十一方面的相关联的任何方法配对物、设备配对物、系统配对物、手段加功能配对物、计算机可读存储介质配对物、数据结构配对物、制品配对物、图像用户界面呈现配对物等。
最后,本文所描述的功能可以采用各种机制,以确保以符合适用法律、社会规范以及个人用户的期望和偏好的方式处理任何用户数据。例如,该功能可以允许用户明确选择加入(然后明确选择退出)该功能的规定。该功能还可以提供合适的安全机制,以确保用户数据的隐私(诸如,数据清理机制、加密机制、密码保护机制等)。
此外,描述可能已经在说明性挑战或问题的上下文中阐述了各种概念。这种解释方式不旨在建议其他人已经以本文所指定的方式理解和/或阐明了挑战或问题。此外,这种解释方式不旨在建议权利要求中记载的主题仅限于解决所标识的挑战或问题;即,权利要求中的主题可以应用于除了本文所描述的挑战或问题之外的挑战或问题的上下文中。
虽然已经以结构特征和/或方法动作特定的语言描述了主题,但是应当理解,所附权利要求中所限定的主题不必然限于上述特定特征或动作。相反,上述特定特征和动作被公开为实现权利要求的示例形式。
- 使用有条件的生成对抗网络查找互补的数字图像
- 基于循环生成对抗网络的学习型数字图像加密解密方法