CN115469784A - 基于现有人工制品生成新人工制品的用户界面和方法 - Google Patents
基于现有人工制品生成新人工制品的用户界面和方法 Download PDFInfo
- Publication number
- CN115469784A CN115469784A CN202210558471.9A CN202210558471A CN115469784A CN 115469784 A CN115469784 A CN 115469784A CN 202210558471 A CN202210558471 A CN 202210558471A CN 115469784 A CN115469784 A CN 115469784A
- Authority
- CN
- China
- Prior art keywords
- source
- vector
- synthetic
- artifact
- vectors
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 90
- 239000013598 vector Substances 0.000 claims abstract description 215
- 239000011159 matrix material Substances 0.000 claims description 35
- 239000002131 composite material Substances 0.000 claims description 32
- 238000013528 artificial neural network Methods 0.000 claims description 26
- 230000008859 change Effects 0.000 claims description 13
- 230000004044 response Effects 0.000 claims description 7
- 239000010410 layer Substances 0.000 description 41
- 230000006870 function Effects 0.000 description 32
- 238000010586 diagram Methods 0.000 description 22
- 238000012549 training Methods 0.000 description 14
- 238000002156 mixing Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 11
- 238000012545 processing Methods 0.000 description 8
- 230000009466 transformation Effects 0.000 description 6
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 5
- 230000000007 visual effect Effects 0.000 description 4
- 239000011800 void material Substances 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 230000002068 genetic effect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000001788 irregular Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 241001441571 Hiodontidae Species 0.000 description 1
- 241000282412 Homo Species 0.000 description 1
- 241001465754 Metazoa Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000002730 additional effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000011960 computer-aided design Methods 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000001815 facial effect Effects 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003278 mimic effect Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000010428 oil painting Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000013403 standard screening design Methods 0.000 description 1
- 238000007794 visualization technique Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/60—Editing figures and text; Combining figures or text
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/0482—Interaction with lists of selectable items, e.g. menus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/04812—Interaction techniques based on cursor appearance or behaviour, e.g. being affected by the presence of displayed objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/04817—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance using icons
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04842—Selection of displayed objects or displayed text elements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04845—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/103—Formatting, i.e. changing of presentation of documents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/40—Filling a planar surface by adding surface attributes, e.g. colour or texture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/50—Image enhancement or restoration using two or more images, e.g. averaging or subtraction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/222—Studio circuitry; Studio devices; Studio equipment
- H04N5/262—Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
- H04N5/265—Mixing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/24—Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/32—Indexing scheme for image data processing or generation, in general involving image mosaicing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20092—Interactive image processing based on input by user
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20092—Interactive image processing based on input by user
- G06T2207/20104—Interactive definition of region of interest [ROI]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20212—Image combination
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Software Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Molecular Biology (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Processing Or Creating Images (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及基于现有人工制品生成新人工制品的用户界面和方法。描述了用于直观且流畅地从现有人工制品创建新人工制品并以视觉方式探索潜在空间的用户界面、方法和结构。在示例实施例中,源人工制品与选择器一起显示。选择器可操作以通过建立包括所显示的源人工制品的一个或更多个的部分的选择区域来指示选定集合的源人工制品。源向量与选定集合中的源人工制品相关联。基于源向量确定一个或更多个合成向量,并且基于一个或更多个合成向量生成输出人工制品。
Description
背景技术
″人工制品(artifact)″一词本质上是指由人类(无论是手动地还是通过使用工具)制造的任何物体。从这个意义上说,人工制品一词可以指代任何种类繁多的项目,例如图像、音乐作品、建筑物、机器、雕塑、文本作品、影片、计算机代码等等。创造新的此类人工制品的能力通常受到高度重视,尤其是在传统上需要大量人才、培训、劳动力或创造力的领域。由于这个和其他原因,人类已经开发出工具和技术来帮助他们自己创造新人工制品。
一种这样的工具是现代计算机,而一种这样的技术是使用在计算机上运行的应用软件来基于一个或更多个现有人工制品创建新人工制品。例如,计算机辅助设计(″CAD″)软件使人类用户能够手动操作现有模板以创建新结构的图纸。文字处理软件使用户能够修改或合并现有文档。视频编辑软件使用户能够修改或合并现有的视频片段。最近,出现了使用户能够基于现有数字图像生成新数字图像的应用软件。然而,这些解决方案和其他解决方案已被证明在其能力和适用性方面有所限制。此外,从人机交互的角度来看,它们中的许多都存在缺陷。
附图说明
图1是示出自动编码器和示例潜在空间的框图;
图2是示出根据实施例的示例类别的用户界面的框图;
图3-9是示出根据实施例的用户界面内的示例选择区域的组件的框图;
图10是示出根据实施例的另一示例类别的用户界面的框图;
图11是示出根据实施例的示例方法的流程图;
图12是示意性地示出根据实施例的可以用于实现示例方法的示例结构的框图;
图13是示出可以结合实施例采用的多种示例表示模式的框图;
图14-15是示出用于实现图13中示出的表示模式中的两种模式的示例技术的框图;
图16是示意性地示出根据实施例的用于使用分层神经网络来基于合成向量生成输出人工制品的示例技术的框图;
图17是示意性地示出根据实施例的用于应用图16的合成向量到神经网络的层之一的示例方法的框图;
图18是示出根据实施例的可用于实现示例方法的进一步示例结构的框图;
图19是示意性地示出根据实施例的用于基于多个输入向量生成合成向量的混合集合的示例技术的框图;
图20是示意性地示出根据实施例的用于使用分层神经网络基于合成向量的混合集合来生成输出人工制品的示例技术的框图;
图21是示意性地示出根据实施例的用于应用图20的混合合成向量到神经网络的层之一的示例方法的框图;
图22是示出根据实施例的另外的示例方法的流程图;
图23是示出可用于执行示例方法或实现示例结构的各种示例计算设备的框图。
具体实施方式
上面的背景技术部分一般性地描述了使用在计算机上运行的应用软件来基于一个或更多个现有人工制品创建新人工制品的技术的几个示例。该技术的当前基于图像的示例是已知的网站,该网站能够使用现有的数字图像来创建新图像。该网站允许人类用户使用网络浏览器和鼠标从大量现有图像集合中选择少量源图像,用于生成新图像。使用网站提供的应用软件,选择源图像的过程包括从图库中一次选择一个图像,使得所选图像出现在与图库不同的单独浏览器区域中。该软件会在每个选定的源图像旁边显示线性滑块。然后期望用户移动与每个选定源图像相关联的滑块,以便分别指示每个源图像对最终将成为新生成图像的贡献的某个期望水平。在移动滑块后,用户必须单击网络浏览器中的按钮以指示应生成新图像。在单击此按钮之后,并且在经过一段等待时间后,在浏览器中会呈现新图像。新图像声称以某种方式基于所选源图像以及与源图像相关联的滑块的位置。
虽然上述应用软件通常用于其规定的目的,但它实现的结果和它为实现它们而提供的用户界面都表现出许多缺点。一个缺点是用于选择源图像并指示它们对生成图像的贡献程度的过程是笨拙的,因为必须一次选择一个图像,并且因为必须为每个选定的图像调整单独的滑块。另一个缺点是在用户单击浏览器按钮以指示应生成新图像之前不会生成图像。因此,用户在选择过程中缺乏反馈。此外,因为所描述的选择/生成过程是迭代的,所以用户必须在生成每个不满意的图像后重新开始。因此,选择/生成过程缺乏流动性。还有一个缺点是,基于对新生成的图像的观察,通常不清楚每个滑块位置以什么方式对图像有贡献以及对图像的贡献程度。另一个缺点是整个选择/生成过程仅限于一种类型的人工制品——也就是说,该过程仅限于图像。
先前解决方案的这些和其他缺点可以通过本文要描述的技术来有益地解决。
命名法
本公开通过示例和图示的方式描述了多个实施例。所有描述的实施例的特点和特征可以按照与本文所包含的教导、建议和目标一致的任何方式进行组合。因此,诸如″在实施例中″、″在一个实施例中″等的短语,当用于描述特定上下文中的实施例时,并不旨在将所描述的特点或特征仅限制于出现在该上下文中的实施例。
短语″基于″或″至少部分地基于″是指可以直接或间接用于做出某些确定或执行某些计算的一个或更多个输入。在此使用这些短语并不旨在排除在进行所述确定或执行所述计算时使用附加或其他输入。相反,如此描述的确定或计算可以仅基于所引用的输入或者基于那些输入以及其他输入。
如本文所用的短语″配置为″、″可操作以″等意指所引用的项目在操作时可以执行所描述的功能。在这个意义上,项目可以″配置为″执行功能,或者可以″可操作以″执行功能,即使当该项目没有在操作并且因此当前没有正执行该功能时也是如此。在此使用短语″配置为″、″可操作以″等并不一定意味着所描述的项目已经以某种方式相对于先前状态进行了修改。
如本文所用的″耦接″是指项目之间的连接。这种连接可以是直接的,或可以是间接的,通过与其他中间项目的连接。
本文使用的术语,例如″包括(including)″、″包括(comprising)″及其变体,意指″包括但不限于″。
如本文所用的诸如″一″、″一个″和″该″之类的词语意在用作单数和复数参考,除非上下文另有明确指示。
如本文所用的词语″显示(display)″、″显示(displaying)″、″显示(displayed)″及其变体意指并包括与项目的视觉表示相关的多种活动中的任一种。例如,″显示(displaying)″一个项目可以通过在一个或更多个显示设备上显示该项目来完成,或者可以通过打印该项目的视觉表示来完成。″显示″一个项目也可以通过生成可以使该项目显示在一个或更多个显示设备上的命令和/或生成可以显示在一个或更多个显示设备上的数据或两者来完成,而不管该项目是否实际显示在显示设备上。可以使项目被显示的命令可以包括例如针对主机计算机的图形子系统的命令。可以显示的数据可以包括例如位图或渲染图像的类似表示。在任何实施例中,此类命令或数据可以存储在合适的计算机可读介质上,或者它们可以通过主机计算机内的一个或更多个通信路径(例如图形总线)发送,或者它们可以通过网络发送到一台或更多台使用适当网络协议的其他主机计算机,或所有这些。在任何实施例中,项目的显示可以发生在一个或更多个本地显示设备上,或者显示可以发生在一个或更多个位于远程的显示设备上,或两者兼而有之。在涉及一个或更多个计算设备的实施例中,项目的显示可能会或可能不会与生成引起显示的命令或数据的同一计算设备相关联地发生。例如,用户界面元素可以与诸如网络浏览器的本地计算设备相关联地显示,并且引起相同或不同用户界面元素的显示的命令或数据可以由位于远程的计算设备(例如网络服务器)生成,并通过网络发送到本地计算设备。
生成神经网络
短语″生成神经网络″是指机器学习领域中的一类神经网络。生成神经网络(″GNN″)是一种神经网络,其经过训练可以响应数值输入生成人工制品。尽管GNN的数值输入可能是随机的或可能包含随机引入的元素,但经过训练的GNN的一个特征是它响应此类输入而生成的人工制品将类似于构成GNN被训练来模仿的概率分布中的点的其他人工制品。例如,数字风景图像的大型训练集可以表示其特征对应于风景的图像的概率分布中的点。在GNN对一组风景图像进行训练之后,可以将随机或半随机输入应用于GNN。作为对输入的响应,GNN将生成一个类似于风景的图像——即使生成的图像可能与训练集中包含的每个图像在各种方面有所不同。
存在许多用于训练GNN的技术。一种这样的技术是使用所谓的生成对抗网络(″GAN″)。GAN的概念是训练串联的两个神经网络,同时本质上将其中一个网络与另一个网络竞争。在训练期间,两个网络中的一个(″鉴别器″或″D″)学习将输入分类为属于以下两个类别之一:属于一组真实示例(例如,训练集)的那些,以及不属于的那些。同时,另一个网络(″生成器″或″G″)试图通过其与鉴别器的交互来学习真实示例的概率分布。它在基于噪声输入生成合成示例并将合成示例呈现给鉴别器进行分类的过程中这样做。
在这个过程中,例如在Goodfellow等人的″生成对抗网(Generative AdversarialNets)″,arXiv:1406.2661v1[stat.ML](2014)和Creswell等人的″生成对抗网络:概述(Generative Adversarial Networks:An Overview)″,arXiv:1710.07035v1[cs.CV](2017)中进行了更全面的解释,成本函数用于优化生成器和鉴别器两者。例如,训练过程可通过求解
maxDminG V(G,D) (1)
来优化G和D,给定成本函数诸如
V(G,D)=EPdata(x)logD(x)+EPg(x)log(1-D(x)) (2)
以及多个示例x,其中EPdata(x)logD(x)是从真实示例集合中获取的示例x的logD(x)的期望值,EPg(x)log(1-D(x))是用于从生成器的输出中获取的合成示例x的log(1-D(x))的期望值,并且D(x)是给定示例x来自真实示例集合而不是来自生成器的概率。通过在训练期间应用这样的成本函数,生成器在pg(x)=pdata(x)时变得最优。换句话说,当对应于合成示例的概率密度函数与对应于真实示例的概率密度函数相同时,生成器变得最优,这意味着生成器已经成功地学习到了训练集的概率密度函数。发生这种情况后,鉴别器对所有示例x产生的概率将为0.5,而与从中抽取示例的集合无关。
一旦如此训练,生成器可以独立于鉴别器被使用以生成进一步的合成示例,其中的每一个都将类似于来自训练集的示例。这样的生成器是GNN的一个示例,正如这里使用的术语一样。
潜在空间和GNN
可以直接应用于GNN以生成合成人工制品的每个数值输入表示通常称为″潜在空间″的通常多维空间中的离散点。这个空间被称为潜在的,因为它在某种意义上是隐藏的。图1所示的框图有助于说明这一点。
图1是自动编码器的示意图。自动编码器是一种机器,它能够将人工制品从第一表示(数据空间表示100)转换为第二中间表示(潜在空间表示102),然后从中间表示转换为第三表示(数据空间表示104)。该机器名称中的词根″自动(auto)″指的是第三表示与第一表示相同的事实。为了实现这个结果,自动编码器使用编码器106将人工制品从数据空间转换到潜在空间。然后它使用解码器108从潜在空间转换回数据空间。
为了解释起见,考虑数据空间中的人工制品对应于数字图像的情况。在这种情况下,人工制品表示100和104可以例如再次各自对应于,可以显示在计算机监视器或其他显示设备上并被人观看的2D数字图像。进一步假设每个图像包括1024x1024像素。那么可以说,这个例子的数据空间中的每个点的维数都是1024x1024。此示例中的数据空间本身将对应于维数为1024x1024的所有可能点的空间。进一步假设潜在表示102具有1x512的维数(在机器学习应用中,潜在空间通常具有比对应数据空间更小的维数)。这样的示例中的潜在空间将对应于维数为1x512的所有可能点的空间。换句话说,潜在空间将对应于长度为512的所有可能的向量。编码器在诸如此示例中的功能可以被视为数据压缩的功能,因为编码器将出现在其输入的给定数据空间值映射到具有比数据空间值更小的维数的潜在空间值。类似地,解码器的功能可以看作是数据解压缩的功能,因为解码器将出现在其输入处的给定潜在空间值映射到具有比潜在空间值更大维数的数据空间值。
虽然自动编码器和GAN不一定是相同的机器,但它们的共性对于理解潜在空间和使用GAN过程训练的GNN之间的关系是有益的:GAN中的生成器类似于解码器,因为它将潜在空间表示作为输入并生成对应的数据空间表示作为输出。因此,GNN也类似于解码器;它可以使用来自GAN的生成器来实现。
探索潜在空间
潜在空间的一个有趣的方面是,因为潜在空间中的信息以上述方式被压缩,所以相似人工制品的表示在潜在空间中应该比它们在数据空间中更靠近在一起。这源于数据在从数据空间到潜在空间的转换过程中降低数据维数的方式——使每个人工制品在数据空间中都不同(例如椅子的颜色或覆盖它搭配的织物)的″无关″信息可以在潜在空间表示中有效地被去除,从而只保留人工制品的更具特征点的特征(例如椅子状物体的一般结构)。如果目标是从现有的人工制品中创建新人工制品,那么识别潜在空间中现有人工制品的位置并探索它们之间的潜在空间中的其他点可能是有意义的。
然而,事实证明这样做并不简单。造成这种情况的原因之一是无法直接可视化典型的潜在空间。例如,虽然可以直接观察2D或3D对象,但不能直接观察超过三个的维度。在某些可视化方法中,颜色或强度值可用于表示超过三维的一维或甚至二维,但随着潜在空间维数的增加,这种方法很快变得不切实际。
示例用户界面
本发明的发明人已经发现了将在下文描述的新颖的用户界面、方法和结构,它们既可以用于直观地和流畅地从现有的人工制品中创建新的人工制品,也可以用于以视觉方式探索潜在空间。
选择和输出
现在参考图2,第一示例用户界面200显示在显示设备201上。两个区域202、204显示在界面内。源区域202提供用于显示多个源人工制品的空间,而输出区域204提供用于显示输出人工制品的空间。
在图示中,源区域被示为显示四个源人工制品206-212。在实际实施例中,可以在源区域中显示多于四个的源人工制品,如图中的椭圆所示。虽然示例中显示的每个源人工制品都包含一个图像(具体而言,是人脸图像),但此处使用的图像仅用于说明目的。通常,显示的源人工制品可以包括任何类型的人工制品或其表示,包括但不限于视频片段、音频片段、文本作品、音乐作品、计算机代码等的表示。此外,在显示图像人工制品的实施例中,所显示的图像不必像本示例中那样限于人脸图像,而是可以包括具有任何类型内容的图像,包括但不限于风景、结构、动物、植物、照片和更多。通常,所显示的源人工制品不必都是相同类型,而是在其他实施例中可以替代地包括不同人工制品类型的混合。
可以以任何合适的布置来显示源人工制品。一种这样的布置是诸如此处所示的网格图案,包括源人工制品的行和列。在其他实施例中,源人工制品可以以其他布置显示,或者以自由形式或不规则的图案显示,并且源人工制品可以在它们之间具有规则的或不规则的空隙空间。此外,每个显示的源人工制品可以具有任何形状或大小,并且它们的形状和大小不必都相同。
选择器214也被示为显示在源区域202内。在所示实施例中,选择器采用与所显示的源图像中的每一个具有相似尺寸和具有相似形状的白色正方形的形式。在其他实施例中,选择器可以具有任何形状和大小,并且选择器的形状和大小可以不同于源人工制品的形状和大小。例如,选择器可以包括任何类型的边界周界,包括但不限于自由形状、圆形、椭圆形或多边形,例如所示示例中的矩形或正方形。在其他实施例中,选择器可以对应于单个点,例如光标位置,或者可以对应于较大选择器形状内的单个点。在更进一步的实施例中,包括选择器的任何用户界面元素可以是三维的。例如,选择器和/或任何源人工制品可以是全息的。在所示实施例中,选择器可操作以在源区域202内移动以指示选择区域。可以以任何合适的方式移动选择器。例如,用户可以使用诸如计算机鼠标之类的输入设备或使用触摸屏或触摸板上的手势来移动选择器。
输出区域204被示为显示输出人工制品216。与源人工制品一样,输出人工制品可以包括任何种类的人工制品或其表示,包括三维和/或全息表示。在所示示例中,输出人工制品是图像。输出人工制品包括至少一个选定的输出属性,该属性表示来自选定的源人工制品的属性的组合。在图2的示例中,所选择的输出属性包括内容元素——在这种情况下,具体为肖像主体的面部特征、发型、姿势和性别。从图中可以看出,输出人工制品的内容元素表示由与选择器214相交的区域202中的那些源人工制品所展示的相应内容属性的组合。在一些实施例中,每个源人工制品可以与相应的显示区域相关联。例如,用于显示给定源人工制品或其表示的显示器201的像素可以定义该源人工制品的显示区域,或者包含源人工制品表示的显示区域可以具有与它包含的源人工制品表示不同的大小或形状。与源人工制品本身一样,这样的源人工制品显示区域可以全部具有相同的大小和形状,或者可以在大小或形状上不同。例如,源人工制品显示区域可以包括任何混合或自由形式的形状、圆形或椭圆形、或诸如矩形或正方形的多边形。其他示例也是可能的。如本文所用的短语″源人工制品″可以互换地解释为对源人工制品或其对应的源人工制品显示区域的引用。
在任何这样的实施例中,所选择的源人工制品可以对应于其显示区域与选择区域相交的那些源人工制品,并且在给定时刻的选择区域可以对应于由选择器在那一刻定义的区。随着选择器移动,选择区域会发生变化,并且对应选定的源人工制品可能会随之发生变化。
输出元素可以对应于由源人工制品展示的任何属性。例如,在一些实施例中,输出元素可以包括样式元素而不是内容元素。在诸如图2所示的实施例中,其中源人工制品和输出人工制品是图像,样式元素可以对应于例如肖像的背景颜色和照明,对应于绘制肖像的介质类型(例如粉彩,油画),或对应于画家的笔触特征(例如,莫奈、梵高或雷诺阿的笔触特征)。其他示例是可能的,并且可能会根据所使用的源人工制品的类型而有所不同。在这些实施例中,在源人工制品之间移动选择器导致呈现输出人工制品的样式对应于呈现所选源人工制品的样式的组合。当这种情况发生时,输出人工制品的内容元素可能基本保持不变。
加权技术
在一些实施例中,由输出属性反映的源属性的组合可以包括源属性的加权组合。在这样的实施例中,可以使用以下将进一步描述的多种技术来确定给定的一个源人工制品对加权组合的贡献量。这样的技术可以基于例如选择器的形状和大小以及源人工制品和/或对应于源人工制品的显示区域的形状、大小和布置而变化。
图3-9提供了基于区域的加权技术的说明性示例。如图3所示,选择器214的位置定义了一个选择区域。选择区域在图中用白色虚线段表示。选择区域在选择器的边界内定义了第一区300。如图4所示,对应于源人工制品206的显示区域定义了第二区400。区300和400的相交部分定义了第三区500,如图5所示。通常,该第三区可以对应于例如任何源人工制品(或其显示区域)与由选择器的位置指示的选择区域之间的总相交区。因此,选择区域和人工制品208之间的相交区定义了区600(见图6)。类似地,选择区域和人工制品210之间的相交区定义了区700(见图7),并且选择区域和人工制品212之间的相交区定义了区800(见图8)。
取决于源人工制品或它们各自的显示区域的尺寸、形状和布置,并且还取决于选择器的尺寸和形状,区500、600、700、800的总和可能等于或可能不等于选择区域的面积。例如,选择区域还可以包含在显示的源人工制品之间的空隙空间。在图3-8所示的实施例中,区500、600、700、800的总和确实等于选择区域的面积,因为源人工制品的形状、大小和布置使得它们在选择区域内是连续的。
现在参考图9,为了说明起见,假设图9中的区A对应于区500,并且图9中的区B、C和D分别对应于区600、700和800。在一类实施例中,来自人工制品208的源属性对输出属性的百分比贡献可以对应于商A/(A+B+C+D)。类似地,人工制品210对输出属性的百分比贡献可以对应于商B/(A+B+C+D)。以类似方式,人工制品212的百分比贡献可以对应于商C/(A+B+C+D),并且人工制品214的百分比贡献可以对应于商D/(A+B+C+D)。不管区A、B、C、D的总和是否等于选择区域的面积,都可以采用这种加权技术。例如,在可以包括显示的源属性之间的空隙空间的实施例中,商可以被标准化以补偿给定选择区域中包括的任何空隙空间。
基于面积的许多其他加权技术也是可能的。例如,给定源人工制品对任何输出属性的贡献量可以基于人工制品与选择区域的相交部分(例如,区A、B、C或D)和由选择区域定义的总面积之间的比率。在其他实施例中,源人工制品的贡献可以基于人工制品与选择区域的相交部分(例如,区A、B、C或D)和由人工制品的显示区域定义的总面积(例如,显示的源人工制品的大小)之间的比率。
另一种加权技术可以基于插值。例如,在以诸如行和列的网格图案或诸如六边形网格图案的规则图案显示源人工制品的实施例中,可以基于相对于源人工制品的显示坐标的选择器的显示坐标来确定来自所选源人工制品对输出属性的贡献。
作为后一种技术的说明性示例,考虑以矩形网格排列的四个源人工制品SAi,j、SAi,j+1小SAi+1,j和SAi+1,j+1的选定集合,在水平方向上具有总范围sizex,在垂直方向上具有总范围sizey。给定一个位于网格内的选择器,可以选择选择器上的任何点来指示网格内的插值坐标。为了便于说明,假设位于网格内的矩形选择器形状,并且假设选择器形状的左上角的坐标(tx,ty)被选择来指定插值坐标。同样为方便起见,假设使用sizex和sizey进行归一化,使得tx和ty分别落在[0,1]范围内。在这样的示例中,每个选定的源人工制品SA对输出人工制品OA的贡献可以使用如下的双线性插值来确定:
OA=(SAi,j(1-tx)+SAi,i+1tx)(1-ty)+(SAi+1,j(1-tx)+SAi+1,j+1tx)ty
在各种实施例中也可以酌情采用除双线性插值之外的插值方法。
取决于期望的应用,可以采用这些或其他技术的任何合适的组合来确定源人工制品对输出属性的加权贡献。
连续或离散更新
在一些实施例中,输出人工制品的外观可以随着选择器在源人工制品之间移动而连续改变,以引起源人工制品的选择或它们各自贡献的权重的相应变化。这样的实施例使用户能够以流畅的方式探索与源人工制品相关联的潜在空间。在其他实施例中,可能需要修复输出人工制品的外观,直到发出″生成″或″更新″命令等,例如通过单击用户界面中提供的相应按钮。在后一类实施例中,输出人工制品的改变可以在选定的离散时间发生。在更进一步的实施例中,可以在用户界面中提供模式选择器,使得用户可以选择输出人工制品是否应该随着选择器的移动而连续改变,或者它是否应该响应于生成或更新命令仅在离散时间改变。在这些实施例中的任何一个中,用户能够以视觉和直观的方式探索与源人工制品相关联的潜在空间——视觉的,是因为可观察的输出人工制品对应于潜在空间中的点,这些点可能位于由每个源人工制品表示的点之间,并且直观的,是因为用户能够指示所需的选择和源人工制品之间的权重的方式。
从多种类型的源属性中选择
如上所述,源人工制品可以展示多于一种类型的源属性,用户可能希望从中选择用于输出人工制品中的表示。例如,提到了一个这样的源属性可以包括内容元素,而另一个这样的源属性可以包括其中呈现内容元素或整个图像的样式。(上面描述了可能的内容元素和样式元素的几个示例。)图10一般性地示出了一示例类的用户界面,其中可以通过从源人工制品中的不同类型的源属性中进行选择来独立地影响输出人工制品的多于一个的属性。
现在参考图10,用户界面1000被示为显示在显示设备1001上。与用户界面200一样,用户界面1000包括源区域202,其提供用于显示诸如图像206-212之类的多个源人工制品的空间。还与用户界面200类似,用户界面1000包括输出区域204,其提供用于显示诸如图像1016的输出人工制品的空间。然而,与用户界面200不同,用户界面1000包括一个或更多个附加源区域,诸如源区域1002,它提供了用于显示附加源人工制品(例如图像1006、1008、1010、1012)的空间。
在这类实施例中,每个源区域可以对应于不同类型的源属性。例如,源区域202可以对应于内容属性,而源区域1002可以对应于样式属性。在某种意义上,这样的实施例中的每个源区域可以被认为是调色板。根据这个类比,源区域202可以用作可以从中选择内容元素的调色板,而源区域1002可以用作可以从中选择样式元素的调色板。如1013所示,在这样的实施例中可以显示任意多个源区域,它们中的每一个显示多个源人工制品,并且它们中的每一个对应于不同的源属性类型。
在所示的实施例中,每个源区域包括其自己的选择器214、1014。由于选择器在其各自的源区域中移动,因此所选择的源人工制品以与上面关于选择器214描述的方式相似的方式被识别,并且可能具有相关联的权重。反过来,输出人工制品1016包括多个输出属性,每个输出属性独立地受到在各个源区域中指示的选择的影响。因此,随着选择器214在源区域202内移动,输出图像的内容元素可以改变,但是输出图像的样式元素可以保持基本不变。同样,随着选择器1014在源区域1002中移动,输出图像的样式元素可能会发生变化,但是图像的内容元素可能保持基本不变。如上面关于用户界面200所描述的,输出人工制品可以随着选择器的移动而连续或离散地更新,可能根据用户的模式选择。在进一步的实施例中,输出人工制品可以包括动画,例如可以通过在用于生成输出人工制品的GNN的各个层添加噪声输入来创建(将在下面进一步描述)。
在各种实施例中,选择器的数量不必与显示的不同源区域的数量相同,并且显示的源区域的数量可以从一个变化到任意多个。例如,在一些实施例中,可以在其中显示具有多个选择器的单个源区域,每个选择器对应于不同的属性类型。在这样的实施例中,一个选择器可以跨源人工制品移动以为输出人工制品选择样式输出元素,而另一个选择器可以跨相同源人工制品移动以为输出人工制品选择内容元素。在进一步的实施例中,可以使用具有多种模式的单个选择器。在后者的实施例中,用户界面可以使用户能够为选择器选择一个模式,以便在选择第一选择器模式时,选择器的移动可指示内容选择(例如),而在选择第二选择器模式时,同一选择器的移动可指示样式选择(再次,例如)。在更进一步的实施例中,可以显示多个不同的源区域,使得每个源区域对应于单独的源属性类型,而可以仅提供单个选择器。在这样的实施例中,用户可以在第一源区域内移动单个选择器以进行内容选择(例如),并且在固定内容选择之后,将相同的选择器移动到另一个源区域以进行样式选择(再次,例如)。其他实施例也是可能的。
在多个源区域中显示源人工制品的实施例中,在各个源区域中显示的人工制品集合可以是相同的,或者它们可以是不同的。在更进一步的实施例中,这些集合可以是完全不相交的。
源人工制品的移动
如果需要,可以在上述实施例的任何一个中的用户界面中提供一种机制,以允许用户将源人工制品在给定源区域内移动或移动到另一个源区域中。以这种方式,可以为进行源属性选择提供额外的灵活性。例如,在若干适当选择的源人工制品已经被足够接近地集合到一起使得选择区域可以包括它们之后,选择器可以被用于指示选择区域。
在更进一步的实施例中,选择器可以包括光标而不是边界周界,并且可以通过移动源人工制品中的选定源人工制品以使得源人工制品在显示器上彼此重叠或与一个固定位置的选择区域重叠,或被包含在这样的区域内,来指示选择区域。可以提供多个这样的固定位置的选择区域,每个区域对应于不同的属性类型。在这样的实施例中,所选源人工制品之间的重叠程度可用于确定每个所选源人工制品将对输出属性做出的贡献。每个相应贡献的量可以以与以上关于图3至图9描述的技术类似的方式来确定。
显示元素的位置和相对位置
本文所示的显示元素的位置和相对位置是作为示例而不是作为限制提供的。在一些实施例中,源区域和输出区域的位置或相对位置可以与所示实施例不同,或者可以根据用户的选择而改变(例如,通过在单独的窗口中显示元素并允许用户重新排列和/或调整窗口大小)。在其他实施例中,可以省略一些显示的元素并且可以添加其他元素。在更进一步的实施例中,一些显示的元素可以显示在第一地理位置,而相同的或其他的显示元素可以显示在一个或更多个远程地理位置,使得多个用户能够协作生成一个或更多个输出人工制品。
处理位置
类似地,在本文描述的任何实施例中,处理步骤不需要全部在相同的物理位置中执行,并且处理硬件的元件不需要全部位于相同的物理位置中。在一些实施例中,例如,可以在一个或更多个第一位置中显示用户界面元素,而输出人工制品生成或其他处理步骤可以在与第一位置不同的一个或更多个第二位置中执行。
示例方法和结构
图11示出了用于基于现有人工制品生成新人工制品或用于使用户能够根据任何上述用户界面或其他以视觉方式探索潜在空间的示例类的方法1100。分别在步骤1102和1104中,显示至少一个多个源人工制品,并且显示至少一个选择器。例如,可以以与上述示例用户界面一致的任何方式来执行显示。在步骤1106,确定显示的源人工制品的选定集合。选定的集合可以对应于已经由用户使用根据上述示例的选择器指示的那些源人工制品。在全部将在下面进一步描述的步骤1108、1110和1112中,对应于所选集合中的源人工制品确定源向量,基于源向量确定一个或更多个合成向量,并且基于一个或更多个合成向量生成输出人工制品。
在步骤1114,可以在一个或更多个显示设备上显示输出人工制品。例如,可以在与上述任何示例用户界面相对应的输出区域中显示输出人工制品,或者可以针对输出人工制品采取其他合适的动作。在一些实施例中,输出人工制品不需要显示,而是可以存储在合适的计算机可读存储介质中或打印。在其他实施例中,可以在步骤1114中生成指令或数据,其使输出人工制品显示在本地或远程位置或两者中。这样的指令可以包括例如针对主机计算机的图形子系统的命令,并且这样的数据可以包括例如位图或渲染图像的类似表示。命令或数据可以通过主机计算机内的一个或更多个通信路径(例如图形总线)发送,或者它们可以使用适当的网络协议通过网络发送到一个或更多个其他主机计算机,或两者兼而有之。后边类型的实施例尤其适用于使多个不同位置的用户能够在输出人工制品的生成中进行协作。
方法1100中的任何或所有步骤可以同时执行,或者它们可以顺序执行。
图12示意性地示出了可以用于执行根据方法1100的方法的示例结构1200。图12中所示的每个框可以通过使用在一个或更多个计算设备上运行的适当软件或通过使用被设计为执行所指示的功能的专用硬件或通过使用这些的组合来实现。对应于正在显示的源人工制品的数据结构在1202处指示。任何合适的数据结构可以用来表示源人工制品,并且任何合适的窗口系统或图形工具包可以用来显示源人工制品以及用户可以移动以指示显示的源人工制品的选定集合的一个或更多个选择器。在一些实施例中,对应于每个源人工制品的图像数据或图像文件,或指向此类数据或文件的指针,可以存储在数据结构1202中以促进源人工制品的显示以供选择。相同的数据结构或另一数据结构或技术可用于识别已被包括在作为关于步骤1106描述的操作的结果的所选集合中的那些源人工制品。为了说明的目的,示例的选定的源人工制品集合在图12中由位于源人工制品1(″SA1″)和源人工制品4(″SA4″)旁边的黑点表示。
可以提供框1204以执行确定对应于所选集合中的源人工制品的一个或更多个源向量1205的功能。为了便于执行该功能,可以向框1204提供对数据结构1202的访问以及对关于哪些源人工制品已被包括在给定的选定集合中的适当指示1203的访问。框1204的功能可以以多种方式执行,这取决于将与源人工制品相关地使用哪种表示模式。图13中示出了几种示例性的表示模式,其中的任何一个都可以在实施例中采用。在其他实施例中,可以使用其他合适的模式。
现在参考图13,网格1302、1304、1306和1308各自对应于源人工制品SA0-SA9的示例集合。显示的源人工制品的特定编号和显示它们的排列仅用于说明目的。在实际实施例中,可以表示更多的源人工制品,并且源人工制品不需要以图中所示的网格图案排列或以指示的方式编号。所示网格中的每一个表示不同模式,其中对应于所显示的或选择的源人工制品的源向量可以在给定实现内部表示。在各种实施例中,可以单独或组合使用任何这样的表示模式,或者可以使用其他合适的模式。
网格1302示出了第一示例的表示模式。在这种模式下,每个源人工制品都可以与一个随机整数相关联。例如,源人工制品SA0可以与整数33相关联,源人工制品SA1可以与整数7相关联,源人工制品SA4可以与整数65相关联,等等。在采用这种模式或表示的实施例中,与每个源人工制品相关联的整数可以存储在数据结构中,如在1202处一般指示的那样,使得整数在需要时可由框1204参考。
网格1304示出了第二示例的表示模式。在该模式中,每个源人工制品可以与随机向量Z相关联,该随机向量Z对应于来自网格1304的随机整数中的相应一个。例如,如在1310所示,对于给定的一个源人工制品的随机向量Z可以使用一个函数来确定,该函数将对应于源人工制品的随机整数的″种子(seed)″值和对应于随机向量Z应包含的元素数量的维数值″m″作为输入。作为说明的具体示例,与源人工制品SA0相关联的随机向量Z0可以对应于通过调用由与Python编程语言相关联的NumPy库提供的randn函数(或由另一个库提供的另一个类似函数或计算环境)以如下方式返回的值:
numpy.random.RandomState(seed=33).randn(512)
这样的实现将适用于希望用包含512个元素的向量来表示每个源人工制品的实施例,每个元素都是浮点数。类似地,与源人工制品SA8关联的512元素的随机向量Z8可对应于通过调用如下返回的值
numpy.random.RandomState(seed=9).randn(512)
等等。在这样的实施例中,每个向量Z包括随机向量,因为每个向量对应于随机种子值——在所示示例中,随机整数与网格1302中的相应一个源人工制品相关联。在实践中,随机(randn)函数和类似函数在每次使用相同的种子值调用函数时将返回相同的向量。出于这个原因,可以只存储一个与每个源人工制品相关联的随机整数,并在需要对应的随机向量时计算给定的一个源人工制品的随机向量Z。也可以将随机向量Z存储在诸如结构1202的数据结构中,以便只需要计算一次向量。一旦被计算,该向量随后可在需要时供参考。
网格1306示出了第三示例的表示模式。在这种模式下,每个源人工制品可以与中间向量W相关联,该中间向量W对应于与同一人工制品相关联的向量Z。例如,如在1312所示,可以使用函数f(Z)来确定每个中间向量W,该函数将给定向量从Z空间映射到W空间。在各种实施例中,可以使用如图14所示的多层神经网络1400来实现这样的函数。可以训练神经网络1400,例如,在训练如上所述的GAN的过程中。在使用这种表示模式的实施例中,可以在需要时计算对应于每个源人工制品的中间向量W,或者中间向量W可以计算一次并存储以供以后检索,同样如上所述。
网格1308示出了第四示例的表示模式。在这种模式下,每个源人工制品可以与中间向量的集合W+相关联,而不是与单个中间向量W相关联。在一般情况下,并且在一些对应的实施例中,可以使用将对应源人工制品的Z值从Z空间映射到W空间中的一个点的不同函数f(Z)来确定集合W+中的每个向量。因此,对于每个集合W+包含n个向量的实施例,可以提供n个这样的函数f1(Z)到fn(Z)以确定给定人工制品的向量,如1314所示。每个映射函数可以由不同的多层神经网络1500、1502...1504实现,如图15所示。与神经网络1400一样,神经网络1500、1502...1504中的每一个都可以在如上所述的训练GAN的过程中被训练。
在其他实施例中,集合W+中的一个或更多个向量可以是重复的。例如,在一些实施例中,给定集合W+中的所有n个向量可以是重复的,在这种情况下,可以使用相同的函数f(Z)来生成所有这些向量。
在任何实施例中,集合W+可以在需要时被计算或者可以被计算一次并且被存储以供以后检索,同样如上所述。
用于源人工制品和/或用作到GNN的输入以生成源人工制品的其他表示模式也是可能的。例如,在基于神经网络的实施例中,表示模式可以根据实施例所基于的神经网络的架构而变化。由框1204确定的源向量1205可以对应于上文关于网格1304、1306或1308描述的任何模式,或适当的其他模式。类似地,这些表示模式或其他模式中的任何一种都可以用于可以存储在数据结构1202中的引用。
现在再次参考图12,可以提供框1206来执行步骤1110中指示的功能,该功能是基于源向量1205确定一个或更多个合成向量1207。合成向量可以用作源属性表示,因为它表示来自所选源人工制品的属性的组合。
在根据图12的实施例中,框1206可以基于多个源向量SV产生单个合成向量RV。它可以根据多种技术这样做。根据一种示例技术,可以使用对应于上述网格1304或1306的模式之一来表示源向量(即,每个源向量可以对应于Z值或W值)。给定源向量的那些表示模式中的任一种,框1206可以通过对源向量的对应元素求平均来计算合成向量的每个元素。例如,给定两个源向量SVA和SVB,每个都包括n个元素,框1206可以分别计算合成向量RV的n个元素,使得每个元素RVi等于SVAi和SVBi的平均值。当所选集合中包含多于两个的源人工制品时,可以应用相同的技术。
如上文关于示例用户界面一般描述的,另一示例技术可用于确定给定所选集合中包括的每个源人工制品的权重的实施例中。在此类实施例中,可以向框1206授予对所选集合中包括的每个源人工制品的单独加权值的访问权,如1212所示,使得框1206可以在确定合成向量时考虑权重。作为示例,假设两个源向量SVA和SVB每个都包含n个元素。进一步假设源向量根据模式1304或1306中的任一个来表示(即,每个都由Z值表示,或者每个都由W值表示)。给定这些源向量表示,框1206可以单独计算合成向量RV的n个元素,使得每个元素RVi等于SVAi和SVBi的加权平均值。有多种技术可以做到这一点。一种技术是为所选集合的成员分配权重,以使所有权重总和为1.0。以这种方式,对于包括源人工制品A和B并且其中人工制品A和B分别具有分配的权重weightA和weightB的选定集合,可以将每个合成向量元素RVi设置为等于weightA*SVAi和weightB*SVBi的和。当所选集中包含多于两个的源人工制品时,可以应用相同的技术。其他加权技术也是可能的,包括但不限于上述任何插值技术。
一旦确定了合成向量,就可以将其应用于输出人工制品生成框1208,如1207所示,以产生输出人工制品1210。可以使用任何类型的能够基于如上所述的合成向量产生输出人工制品的人工制品生成器来实现这样的输出人工制品生成框。
在一些实施例中,输出人工制品生成器可以包括GNN。为了解释的目的,图16示出了一个示例GNN架构1600,其可以适合用作后面类型的实施例中的输出人工制品生成器。然而,本领域的技术人员在参考了本公开之后将理解,具有其他架构的GNN也可以用于生成输出人工制品。GNN通常包括多个层,如所示实施例中的层1-9所示。例如,在用于生成图像的GNN中,层1可产生低分辨率图像(例如,4x4像素)。层1的输出可以馈送到层2,层2可以产生更高分辨率的图像(例如,16x16像素),依此类推,直到最后一层产生相对高分辨率的图像(例如,1024x1024像素)。最后一层的输出可以包括输出人工制品。选择实施例1600中所示的层数仅用于说明和解释的目的。在其他实施例中,层数可以不同。有关适用于GNN(例如GNN 1600)的更多详细信息,请参见Karras等人的″用于生成对抗网络的基于样式的生成器架构(A Style-Based Generator Architecture for Generative AdversarialNetworks)″,arXiv:1812.04948v3[cs.NE](2019)和Karras等人的″分析和提高StyleGAN的图像质量(Analyzing and Improving the Image Quality of StyleGAN)″,arXiv:1912.04958v2[cs.CV](2020)。
对于仅产生单个合成向量的实施例,可以将相同合成向量作为输入应用到GNN的每一层,如在1604所示。在采用不同GNN架构的实施例中,单个合成向量可以作为输入应用到层1,以代替图中所示的层1的恒定输入。此外,根据GNN的架构,可以另外向一个或更多个层提供单独的输入。例如,根据一些架构,如在1602所示,可以将常数值作为附加输入应用到层1,并且可以另外向每一层提供噪声输入(未单独显示)——例如在GAN训练期间,或者在经过训练的GNN生成输出人工制品期间产生所需的效果。将合成向量应用于生成器的其他方法也是可能的。
图17提供了诸如GNN 1600之类的GNN内的代表性层1700的更详细视图。然而,再次应当注意,GNN的架构是不同的。本领域技术人员参考本公开将理解图17所示的架构可以针对不同的GNN架构进行适当修改。层1700通常可以表示实施例1600中的层1-9中的任何一层。GNN层1700可以从前一层获取输入,如在1702所示,并且可以为后一层提供输出,如在1704所示。在层1700内,可以提供一个或更多个卷积模块1706、1707,以及一个或更多个附加的处理模块,例如adaIN模块1708、1710和仿射变换模块1712、1714。adaIN模块可以实现如所解释的自适应实例归一化的功能,例如,在上文的卡拉斯。由每个仿射变换模块应用的变换可以是唯一的并且可以例如结合如上所述的训练GAN来学习。如图所示,学习过的仿射变换模块的输出可以作为输入耦合到相应的adaIN模块。在这种架构中,可以将合成向量作为输入提供给每个仿射变换模块,如在1716所示。本领域技术人员将理解,图17中未示出的其他处理模块也可能出现在代表性的GNN层中,并且在给定架构中哪些模块构成单个层的定义可能会有所不同。例如,在某些架构中,可以将一层定义为仅包括单个adaIN模块和单个卷积模块,可能还包括其他相关联的处理模块。
图18示出了另一类实施例1800,其中输出人工制品可以展示多个输出属性,每个输出属性代表从如上所述的源人工制品中选择的不同源属性。尽管在附图中示出了图像以便于解释,但是实施例1800不限于图像人工制品,而是可以与上面描述的任何人工制品类型一起使用,可以针对这些人工制品类型设计合适的输出人工制品生成器。
在所示实施例中示出了两个源属性选择模块1820、1822。对于希望同时选择不同源属性的实施方式,可以提供类似于模块1820、1822的多个源属性选择模块。在其他实施例中,可以提供单个源属性选择模块并用于顺序地选择不同的源属性。每个源属性选择模块可以以与上面关于图12的结构所描述的方式类似的方式来实现。因此,数据结构1802可以类似于数据结构1202,源向量确定框1804可以类似于源向量确定框1204,并且合成向量确定框1806可以类似于合成向量确定框1206。虽然在示例实施例中示出了仅两个源属性选择模块,但是在进一步的实施例中可以采用额外的这样的选择模块,或者可以顺序地采用相同的选择模块以使得能够从多于两种类型的源属性中进行选择。如上所述,从中选择不同属性类型的源人工制品可以包括同一组源人工制品,或者它们可以包括不同组的源人工制品。
可采用与可用于表示图12的实施例中的对应实体相同的多种模式来表示源人工制品1802和源向量SVA、SVB。然而,在实施例1800中,W+表示模式(其对应于图13中的模式1308)用于表示由每个框1806确定的合成向量。类似地,在一些实施例中,由框1804确定的源向量SVA和SVB也可以使用W+模式来表示。出于这个原因,图18中的几个箭头用斜线标记画出以指示每个可以对应于多个向量,如采用W+表示模式时的情况。
当源向量和合成向量都以这种方式表示时,上面关于图12描述的用于确定单个合成向量RV的元素的任何技术都可以类似地用于确定与给定W+人工制品表示对应的每个合成向量的元素。举例来说,为了说明的目的,假设在给定实施例1800中W+表示用于源向量和合成向量两者。进一步假设每个W+表示包括n个向量,并且每个向量包括m个元素(例如m个浮点数)。每个这样的W+表示可以被视为具有n行和m列的矩阵,使得矩阵中的行对应于向量并且矩阵中的列对应于向量内的元素位置。在这样的实施例中,W+A中的第一合成向量的元素可以使用来自对应于SVA的每个矩阵的第一行来确定。类似地,W+A中的第二合成向量的元素可以使用对应于SVA的每个矩阵的第二行来确定,依此类推,直到使用来自对应于SVA的每个矩阵的第n行来确定W+A中的第n个合成向量。可以采用相同的技术来确定W+B中的合成向量的元素,以及用于特定实施例中涉及的任何其他源属性的元素(例如,可能是W+C源属性)。
实施例1800中的组合器模块1824的功能是产生合成向量W+Hybrid的混合集合,在图中显示为组合器模块的输出1826。合成向量的混合集合是这样一种向量:其中一些向量取自一个源属性表示(例如来自W+A),而其他向量取自不同的源属性表示(例如来自W+B)。图19提供了一个示例并说明了可以完成此操作的多种方式之一。在图19中,两个源属性表示W+A、W+B被示为组合器模块的输入。通常,可以存在多于两个的源属性表示,如在1900处所指示的。在所示的示例中,每个源属性表示包括分别编号为WA1到WA18和WB1到WB18的18个向量。合成向量的混合集合1902包括来自W+A的一些向量和来自W+B的一些向量。在这个例子中,集合1902包括来自W+A的向量WA1到WA7和来自W+B的向量WB8到WB18。
如上所述,一些实施例可以生成额外的源属性表示,例如W+C等。不管可以使用多少个源属性表示,在设计给定实现时可以考虑若干约束。首先,混合集合1902中的向量数量可以包括与每个贡献源属性表示相同数量的向量。其次,混合集中的每个向量可以包括与源属性表示中的每个向量相同数量的元素。第三,混合集中的向量的位置可以与这些向量在源属性表示中占据的位置保持一致,从这些源属性表示中获取它们。例如,如果混合集合中的向量WA1占据矩阵W+A中的行1,那么它也可以占据混合矩阵中的行1,对于混合集合中的其他向量中的每个以此类推。第四,当从给定的源属性表示W+x中获取多行时,所获取的行可能是连续的行。根据期望的结果以及设计给定实施例所针对的目标,可以省略或放宽这些约束中的一些或全部。用于同时实现上述约束中的一个或更多个的示例技术是通过连接取自源属性表示矩阵的连续行来创建混合集合。举例来说,连续行1-3可以取自一个源属性矩阵,连续行4-12可以取自第二源属性矩阵,并且连续行13-18可以取自第三源属性矩阵,使得最终的混合集合包含18行,表示三个连续行子集的连接。
再次参考图18,输出人工制品生成框1808可以包括能够基于组合器的输出生成输出人工制品的任何实现。在所示实施例中,这对应于能够使用W+模式表示作为输入的任何人工制品生成器。这种发生器的一个例子是前面描述的多层GNN 1600。将输入应用到发生器的方式也可以在多个实施例中改变,这对于本领域技术人员参考本公开内容将是显而易见的。将W+Hybrid矩阵应用到诸如GNN 1600的GNN的一种示例方式在图20中示出。而不是像在图16的示例中那样将相同的合成向量应用于所有层,如图所示,图20中的示例实施例2000将不同的合成向量集合应用于GNN的每一层。例如,混合矩阵的前两行应用于层1,后两行应用于层2,依此类推。根据设计实施例所针对的目的,可能希望保持混合矩阵中的行顺序与应用行的层(和子层)的顺序之间的一致性。例如,增加混合矩阵中的行数可以应用于增加GNN内的层数,反之亦然。
作为进一步的示例,图21示出了实施例2000中的任意层2100的更详细视图。对于具有诸如所示的GNN架构的实施例,来自混合矩阵的每个向量可以应用于给定GNN层1700内的仿射变换框1712、1714中的不同的一个,如图所示。
将混合矩阵的向量应用于GNN的其他方式也是可能的。如从示例实施例2000可以看出的,例如,混合矩阵1902中的行数不需要等于GNN中的层数。虽然在实施例2000的情况下,来自混合矩阵的多行被应用于GNN的每一层,但在其他实施例中,GNN中的层数可能超过混合矩阵中的行数。在后一类实施例和可能的其他实施例中,可能希望将来自混合矩阵的同一行组应用于GNN的多于一层。
图22是示出可结合实施例1800或与不同实施例结合使用的示例类别的方法2200的流程图。在步骤2202、2204中,显示至少一组的源人工制品,以及可以如上所述移动以指示一个或更多个选择区域的一个或更多个选择器。
根据方法2200的实施例使用户能够使用一个或更多个选择器来指示从在源人工制品中表示的多种不同类型的源属性中选定的选择。例如,用户可以从显示的源人工制品中选择内容属性,并且可以从显示的源人工制品中单独选择样式属性。步骤2206、2208、2210对应于一个这样的源属性选择,而步骤2207、2209、2211对应于另一个这样的源属性选择。步骤2206、2208、2210可以与步骤2207、2209、2211同时执行,或者它们可以相对于步骤2207、2209、2211顺序执行。在进一步的实施例中,可以执行附加的类似步骤以使用户能够从源人工制品中选择附加的属性类型。
在步骤2206、2207中,分别对应于由选择器指示的一个或更多个选择区域来确定一组或更多组选择的源人工制品。在步骤2208、2209中,对于每个选择的组,确定对应组的源向量。步骤2206-2209可以例如以上面关于图10-15描述的方式来执行。在步骤2210、2211中,对于所确定的每一组源向量,确定一组合成向量。步骤2210、2211可以例如以上面关于图18描述的方式来执行。
在步骤2212中,基于在步骤2210、2211中确定的合成向量来生成向量的混合集合。在步骤2214中,可以基于向量的混合集合来生成输出人工制品。步骤2212、2214可以例如以上面关于图19-21所描述的方式来执行。
如果需要,也可以执行与以上关于方法1100的步骤1114描述的那些类似的附加步骤。
选择使用不同的人工制品类型
在任何实施例中,可以显示诸如菜单之类的用户界面元素,其使得用户能够根据上述技术从多种不同的人工制品类型中进行选择,以用于基于现有人工制品生成新人工制品。在这样的实施例中,用户对人工制品类型的指示可以使所指示类型的源人工制品被显示,使得用户可以从所显示的源人工制品中进行选择以生成如上所述的新人工制品。实施例可以存储多个不同类型的输出人工制品生成器,或者被给予访问多个不同类型的输出人工制品生成器的权限。在这样的实施例中,用户对人工制品类型的指示可以使实施例使用对应于所指示的人工制品类型的输出人工制品生成器。例如,如果用户将选择视频片段作为所指示的人工制品类型,则实施例可以显示源人工制品中的视频片段的表示并且可以使用被训练来产生视频片段的GNN作为输出人工制品生成器。
源人工制品的生成
在任何实施例中,最终用于生成输出人工制品的同一输出人工制品生成器可以预先用于生成源人工制品。例如,在采用GNN来生成输出人工制品的实施例中,可以通过将随机输入应用到相同或相似的GNN来预先生成一些或所有源人工制品。
示例计算设备
图23是示出可用于执行上述任何方法或实现任何结构的各种计算设备的框图。所示的计算设备是作为示例而不是作为限制提供的。本领域的技术人员参考了本公开将理解,替代或附加类型的计算设备也可以与本文描述的任何实施例结合使用。
计算机系统2300包括一个或更多个中央处理器单元(″CPU″)核心2302,其通过高速存储器控制器2306和相关联的高速存储器总线2307耦合到系统存储器2304。系统存储器2304通常包括随机存取存储器位置的大阵列,通常容纳在多个动态随机存取存储器(″DRAM″)设备中,而这些设备又可以容纳在一个或更多个双列直插内存模块(″DIMM″)封装中。如图所示,每个CPU核心2302与一级或更多级高速缓存存储器2308相关联。每个核心2302可以执行存储在系统存储器中的计算机可读指令2310,从而可以对也存储在系统存储器中的数据2312执行操作。
存储器控制器经由输入/输出总线2313耦合到一个或更多个输入/输出控制器,例如输入/输出控制器2314。输入/输出控制器又耦合到一个或更多个有形的、非易失性的、计算机可读介质,例如计算机可读介质2316和计算机可读介质2318。这种计算机可读介质的非限制性示例包括所谓的固态盘(″SSD″)、旋转介质磁盘、光盘、闪存驱动器、磁带等。存储介质可以永久地附接到计算机系统或者可以是可移动的和便携的。在所示示例中,介质2316具有存储在其中的指令2317(软件),而介质2318具有存储在其中的数据2319。可以采用在计算机系统上执行的操作系统软件来实现各种功能,包括在存储介质和系统存储器之间来回传输指令2310、2317和数据2312、2319。
存储器控制器还通过第二高速存储器总线2324耦合到图形子系统2326。图形子系统又可以耦合到一个或更多个显示设备2328。而显示设备2328可以位于物理上接近计算机系统的其余组件,它们也可能位于远程。在计算机系统上运行的软件可以生成使图形子系统在显示设备2328上显示上述任何示例用户界面元素的指令或数据。此类软件还可以生成通过使用适当的网络协议在网络2322上发送指令或数据使此类元素在一个或更多个位于远程的显示设备(例如,连接到位于远程的计算机系统的显示设备)上显示的指令或数据。图形子系统可以包括一个或更多个图形处理单元(″GPU″)以加速指令的执行或实现上述任何方法。
计算机系统2300可以代表耦合到诸如键盘、定点设备和显示器的输入/输出设备的单个、独立的计算机工作站。它还可以代表更大的、多节点或多计算机系统(例如集群)中的节点之一,在这种情况下,可以通过与集群交互和/或控制集群的软件来提供对其计算能力的访问。这种集群中的节点可以并置在单个数据中心中,也可以分布在不同地理区域的多个位置或数据中心中。此外,计算机系统2300可以代表一个接入点,从该接入点可以访问和/或控制这样的集群或多计算机系统。这些或它们的组件或变体中的任何一个在本文中可以被称为″计算装置″、″计算设备″或″计算机系统″。
在示例实施例中,数据2319可以对应于源人工制品或输出人工制品的表示,并且指令2317可以对应于用于执行本文描述的任何方法的算法或可执行指令。在这样的实施例中,指令在由一个或更多个计算设备(例如一个或更多个CPU核心)执行时,使计算设备对数据执行本文所述的操作,产生也可以存储在一个或更多个有形的、非易失性的、计算机可读介质(例如介质2318)中的结果。如本文所用的词语″介质″应被解释为包括一种或更多种这样的介质。
以上描述的任何用户界面以及以上关于框图或流程图描述的任何功能或结构框可以被实现为一个或更多个模块。在一些实施例中,单个这样的模块可以实现多于一个的所描述的功能框。在其他实施例中,多于一个的模块可以一起实现单个功能框。任何或所有这样的模块可以通过使用适当的软件,或通过使用被设计用于执行指定功能的专用硬件,或通过使用这些的组合来实现。
结论
上面和所附权利要求中已经描述了多个具体实施例。已经通过示例和说明的方式提供了这样的实施例。本领域技术人员参考本公开将理解如此描述的实施例的特征和特点的各种实用组合、修改和概括。例如,本文描述的方法中的步骤通常可以以任何顺序执行,并且可以省略一些步骤,而可以添加其他步骤,除非上下文另有明确指示。类似地,本文所描述的结构中的组件可以布置在不同的位置、位置或分组中,并且可以省略一些组件,而可以添加其他组件,除非上下文另有明确指示。本公开的范围旨在包括所有这样的组合、修改和概括以及它们的等价物。
Claims (46)
1.一种方法,包括:
显示多个源人工制品;
显示一个或更多个选择器,所述一个或更多个选择器可操作以指示包括所述源人工制品中的一个或更多个的至少一部分的第一选择区域;
确定与所述第一选择区域相对应的源人工制品的第一选定集合;
访问与所述第一选定集合中的源人工制品相关联的一个或更多个第一源向量;
基于所述第一源向量确定第一合成向量;以及
基于所述第一合成向量生成输出人工制品。
2.如权利要求1所述的方法,其中:
确定所述第一合成向量包括:确定所述第一源向量的加权组合。
3.如权利要求2所述的方法,其中:
确定所述加权组合是基于所述第一选择区域和所述第一选定集合中的源人工制品之间的相交区。
4.如权利要求2所述的方法,其中:
确定所述加权组合是基于与所述第一选择区域的至少一个坐标相对应的插值坐标。
5.如权利要求1所述的方法,还包括:
显示所述输出人工制品。
6.如权利要求1所述的方法,其中:
生成所述输出人工制品包括:将所述第一合成向量作为输入应用到生成神经网络GNN。
7.如权利要求6所述的方法,其中:
将所述第一合成向量作为输入应用到所述GNN包括:将所述第一合成向量应用于多层GNN中的多于一层。
8.如权利要求1所述的方法,其中所述一个或更多个选择器可操作以指示包括所述源人工制品中的一个或更多个的至少一部分的第二选择区域,并且所述方法还包括:
确定与所述第二选择区域相对应的源人工制品的第二选定集合;
访问与所述第二选定集合中的源人工制品相关联的一个或更多个第二源向量;
基于所述第二源向量确定第二合成向量;以及
其中生成输出人工制品是基于所述第一合成向量和所述第二合成向量两者。
9.如权利要求8所述的方法,还包括:
在第一源区域中显示至少一些源人工制品并且在不同于所述第一源区域的第二源区域中显示至少一些源人工制品。
10.如权利要求9所述的方法,其中:
所述一个或更多个选择器包括分别与所述第一源区域和所述第二源区域相对应的第一选择器和不同的第二选择器。
11.如权利要求8所述的方法,其中:
生成所述输出人工制品包括:将所述第一合成向量和所述第二合成向量都作为输入应用到生成神经网络GNN。
12.如权利要求8所述的方法:
其中所述第一合成向量是两个或更多个第一合成向量中的一个;
其中所述第二合成向量是两个或更多个第二合成向量中的一个;
所述方法进一步包括确定包括所述第一合成向量中的至少一个和所述第二合成向量中的至少一个的合成向量的混合集合;以及
其中生成所述输出人工制品是基于所述合成向量的混合集合。
13.如权利要求12所述的方法,其中:
生成所述输出人工制品包括将所述合成向量的混合集合作为输入应用到生成神经网络GNN。
14.如权利要求13所述的方法,其中:
将所述合成向量的混合集合作为输入应用到GNN包括:将所述混合集合中的所述合成向量的第一子集和不同的第二子集应用于多层GNN中的相应的第一层和第二层。
15.如权利要求12所述的方法,其中:
所述两个或更多个第一合成向量与第一矩阵中的相应行相对应;
所述两个或更多个第二合成向量与第二矩阵中的相应行相对应;以及
确定所述合成向量的混合集合包括连接所述第一矩阵的连续行与所述第二矩阵的连续行。
16.如权利要求1所述的方法,其中:
生成所述输出人工制品包括响应于所述第一选择区域的变化而基本连续地更新所述输出人工制品。
17.一种系统,包括:
用户界面模块,其可操作以显示多个源人工制品并确定所述源人工制品的第一选定集合,所述第一选定集合与至少部分地被包括在第一选择区域中的所述源人工制品中的那些源人工制品相对应;
源向量确定模块,其可操作以确定与所述第一选定集合中的所述源人工制品相对应的第一源向量;
合成向量确定模块,其可操作以基于所述第一源向量确定第一合成向量;以及
输出人工制品生成模块,其可操作以基于所述第一合成向量生成输出人工制品。
18.如权利要求17所述的系统,其中:
所述用户界面模块进一步可操作以指示与所述第一选定集合相对应的权重或坐标;以及
所述合成向量确定模块进一步可操作以基于所述权重或坐标将所述第一合成向量确定为所述第一源向量的加权组合。
19.如权利要求18所述的系统,其中:
所述加权组合是基于所述第一选择区域和所述第一选定集合中的源人工制品之间的相交区。
20.如权利要求18所述的系统,其中:
所述加权组合是基于与所述第一选择区域的至少一个坐标相对应的插值坐标。
21.如权利要求17所述的系统,其中:
所述用户界面模块进一步可操作以显示所述输出人工制品。
22.如权利要求17所述的系统:
进一步包括生成神经网络GNN;以及
其中所述输出人工制品生成模块通过将所述第一合成向量作为输入应用到所述GNN来生成所述输出人工制品。
23.如权利要求22所述的系统:
所述GNN包括多个层;以及
所述输出人工制品生成模块将所述第一合成向量应用于所述GNN中的多于一层。
24.如权利要求17所述的系统,其中:
所述用户界面模块进一步可操作以确定所述源人工制品的第二选定集合,所述第二选定集合与至少部分地被包括在第二选择区域中的所述源人工制品中的那些源人工制品相对应;
所述源向量确定模块进一步可操作以确定与所述第二选定集合中的所述源人工制品相对应的第二源向量;
所述合成向量确定模块进一步可操作以基于所述第二源向量确定第二合成向量;以及
所述输出人工制品生成模块可操作以基于所述第一合成向量和所述第二合成向量两者来生成所述输出人工制品。
25.如权利要求24所述的系统:
进一步包括生成神经网络GNN;以及
其中所述输出人工制品生成模块通过将所述第一合成向量和所述第二合成向量两者作为输入应用到所述GNN来生成所述输出人工制品。
26.如权利要求24所述的系统:
其中所述合成向量确定模块进一步可操作以确定两个或更多个第一合成向量和两个或更多个第二合成向量;
所述系统进一步包括组合器模块,所述组合器模块可操作以确定包括所述第一合成向量中的至少一个和所述第二合成向量中的至少一个的合成向量的混合集合;以及
其中所述输出人工制品生成模块可操作以基于所述合成向量的混合集合来生成所述输出人工制品。
27.如权利要求26所述的系统:
进一步包括生成神经网络GNN;以及
其中所述输出人工制品生成模块通过将所述合成向量的混合集合作为输入应用到GNN来生成所述输出人工制品。
28.如权利要求27所述的系统,其中:
所述GNN至少包括第一层和第二层;以及
其中所述输出人工制品生成模块以将所述合成向量的第一子集和不同的第二子集分别应用于所述第一层和所述第二层的方式,而将所述合成向量的混合集合应用到所述GNN。
29.如权利要求26所述的系统,其中:
所述两个或更多个第一合成向量与第一矩阵中的相应行相对应;
所述两个或更多个第二合成向量与第二矩阵中的相应行相对应;以及
所述组合器模块通过连接所述第一矩阵的连续行与所述第二矩阵的连续行来确定所述合成向量的混合集合。
30.如权利要求18所述的系统,其中:
所述系统可操作以响应于所述第一选定集合的变化或对应权重或坐标的变化而基本连续地更新所述输出人工制品。
31.一种有形的非易失性计算机可读介质,具有存储在其中的指令,如果所述指令由一个或更多个计算设备中的一个或更多个处理器执行,则使所述计算设备执行以下步骤,包括:
显示多个源人工制品;
显示一个或更多个选择器,所述一个或更多个选择器可操作以指示包括所述源人工制品中的一个或更多个的至少一部分的第一选择区域;
确定与所述第一选择区域相对应的源人工制品的第一选定集合;
访问与所述第一选定集合中的所述源人工制品相关联的一个或更多个第一源向量;
基于所述第一源向量确定第一合成向量;以及
基于所述第一合成向量生成输出人工制品。
32.如权利要求31所述的介质,其中:
确定所述第一合成向量包括确定所述第一源向量的加权组合。
33.如权利要求32所述的介质,其中:
确定所述加权组合是基于所述第一选择区域和所述第一选定集合中的所述源人工制品之间的相交区。
34.如权利要求32所述的介质,其中:
确定所述加权组合是基于与所述第一选择区域的至少一个坐标相对应的插值坐标。
35.如权利要求31所述的介质,还包括:
显示所述输出人工制品。
36.如权利要求31所述的介质,其中:
生成所述输出人工制品包括:将所述第一合成向量作为输入应用到生成神经网络GNN。
37.如权利要求36所述的介质,其中:
将所述第一合成向量作为输入应用到所述GNN包括:将所述第一合成向量应用于多层GNN中的多于一层。
38.如权利要求31所述的介质,其中所述一个或更多个选择器可操作以指示包括所述源人工制品中的一个或更多个的至少一部分的第二选择区域,并且还包括:
确定与所述第二选择区域相对应的源人工制品的第二选定集合;
访问与所述第二选定集合中的所述源人工制品相关联的一个或更多个第二源向量;
基于所述第二源向量确定第二合成向量;以及
其中生成所述输出人工制品是基于所述第一合成向量和所述第二合成向量两者。
39.如权利要求38所述的介质,还包括:
在第一源区域中显示至少一些所述源人工制品并且在不同于所述第一源区域的第二源区域中显示至少一些所述源人工制品。
40.如权利要求39所述的介质,其中:
所述一个或更多个选择器包括分别与所述第一源区域和所述第二源区域相对应的第一选择器和不同的第二选择器。
41.如权利要求38所述的介质,其中:
生成所述输出人工制品包括将所述第一合成向量和所述第二合成向量两者作为输入应用到生成神经网络GNN。
42.如权利要求38所述的介质:
其中所述第一合成向量是两个或更多个第一合成向量中的一个;
其中所述第二合成向量是两个或更多个第二合成向量中的一个;
进一步包括确定包括所述第一合成向量中的至少一个和所述第二合成向量中的至少一个的合成向量的混合集合;以及
其中生成所述输出人工制品是基于所述合成向量的混合集合。
43.如权利要求42所述的介质,其中:
生成所述输出人工制品包括将所述合成向量的混合集合作为输入应用到生成神经网络GNN。
44.如权利要求43所述的介质,其中:
将所述合成向量的混合集合作为输入应用到所述GNN包括:将所述混合集合中的所述合成向量的第一子集和不同的第二子集应用于多层GNN中的相应的第一层和第二层。
45.如权利要求42所述的介质,其中:
所述两个或更多个第一合成向量与第一矩阵中的相应行相对应;
所述两个或更多个第二合成向量与第二矩阵中的相应行相对应;以及
确定所述合成向量的混合集合包括连接所述第一矩阵的连续行与所述第二矩阵的连续行。
46.如权利要求31所述的介质,其中:
生成所述输出人工制品包括响应于所述第一选择区域的变化而基本连续地更新所述输出人工制品。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/344,053 US20220398004A1 (en) | 2021-06-10 | 2021-06-10 | User Interfaces and Methods for Generating a New Artifact Based on Existing Artifacts |
US17/344,053 | 2021-06-10 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115469784A true CN115469784A (zh) | 2022-12-13 |
Family
ID=81943858
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210558471.9A Pending CN115469784A (zh) | 2021-06-10 | 2022-05-20 | 基于现有人工制品生成新人工制品的用户界面和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20220398004A1 (zh) |
CN (1) | CN115469784A (zh) |
DE (1) | DE102022112888A1 (zh) |
GB (1) | GB2609279A (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2526598B (en) * | 2014-05-29 | 2018-11-28 | Imagination Tech Ltd | Allocation of primitives to primitive blocks |
US11435885B1 (en) | 2021-06-10 | 2022-09-06 | Nvidia Corporation | User interfaces and methods for generating a new artifact based on existing artifacts |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20140122952A (ko) * | 2013-04-11 | 2014-10-21 | 삼성전자주식회사 | 이미지 합성 방법 및 이를 구현하는 전자 장치 |
WO2017136083A1 (en) * | 2016-02-05 | 2017-08-10 | Google Inc. | Compressing images using neural networks |
US20200242771A1 (en) * | 2019-01-25 | 2020-07-30 | Nvidia Corporation | Semantic image synthesis for generating substantially photorealistic images using neural networks |
US10825221B1 (en) * | 2019-04-23 | 2020-11-03 | Adobe Inc. | Music driven human dancing video synthesis |
US11010421B2 (en) * | 2019-05-09 | 2021-05-18 | Microsoft Technology Licensing, Llc | Techniques for modifying a query image |
US11508169B2 (en) * | 2020-01-08 | 2022-11-22 | Palo Alto Research Center Incorporated | System and method for synthetic image generation with localized editing |
US20220108417A1 (en) * | 2020-10-01 | 2022-04-07 | Nvidia Corporation | Image generation using one or more neural networks |
US11482041B2 (en) * | 2020-10-21 | 2022-10-25 | Adobe Inc. | Identity obfuscation in images utilizing synthesized faces |
US11727614B2 (en) * | 2021-02-23 | 2023-08-15 | Adobe Inc. | Web-based digital image editing in real time utilizing a latent vector stream renderer and an image modification neural network |
US11893717B2 (en) * | 2021-02-26 | 2024-02-06 | Adobe Inc. | Initializing a learned latent vector for neural-network projections of diverse images |
-
2021
- 2021-06-10 US US17/344,053 patent/US20220398004A1/en active Pending
-
2022
- 2022-04-29 GB GB2206274.9A patent/GB2609279A/en active Pending
- 2022-05-20 CN CN202210558471.9A patent/CN115469784A/zh active Pending
- 2022-05-23 DE DE102022112888.1A patent/DE102022112888A1/de active Pending
Also Published As
Publication number | Publication date |
---|---|
GB2609279A (en) | 2023-02-01 |
GB202206274D0 (en) | 2022-06-15 |
US20220398004A1 (en) | 2022-12-15 |
DE102022112888A1 (de) | 2022-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE102019008168A1 (de) | Dynamisches Schätzen von Beleuchtungsparametern für Positionen innerhalb realitätserweiterter Szenen unter Nutzung eines neuronalen Netzwerkes | |
CN115469784A (zh) | 基于现有人工制品生成新人工制品的用户界面和方法 | |
US10984317B2 (en) | Dataset for learning a function taking images as inputs | |
EP0636971A2 (en) | Method and apparatus for producing a composite second image in the spatial context of a first image | |
Miranda et al. | Sketch express: A sketching interface for facial animation | |
JP2019091436A (ja) | 3d配置のタイプに応じた2d画像の分類 | |
CN109840933A (zh) | 在虚拟空间中探索医学可视化参数 | |
Kim et al. | Dynamic deep octree for high‐resolution volumetric painting in virtual reality | |
DE60024514T2 (de) | Aufzeichnungsmedium, Verfahren und Einrichtung zur Bildverarbeitung mit integrierten Daten zur Formmodellierung | |
US11200645B2 (en) | Previewing a content-aware fill | |
CN115908664B (zh) | 人机交互的动画生成方法、装置、计算机设备、存储介质 | |
US11741662B2 (en) | Shaped-based techniques for exploring design spaces | |
US11435885B1 (en) | User interfaces and methods for generating a new artifact based on existing artifacts | |
CN106780716A (zh) | 历史文化遗产数字化展示方法 | |
Thiel et al. | Interaction and locomotion techniques for the exploration of massive 3D point clouds in VR environments | |
US20230290132A1 (en) | Object recognition neural network training using multiple data sources | |
US10586311B2 (en) | Patch validity test | |
US11126330B2 (en) | Shaped-based techniques for exploring design spaces | |
Argudo et al. | Interactive inspection of complex multi-object industrial assemblies | |
CN115631091B (zh) | 一种选择性风格迁移方法及终端 | |
US11961186B2 (en) | Method and system for visually seamless grafting of volumetric data | |
Tu et al. | An automatic base expression selection algorithm based on local blendshape model | |
US11941759B2 (en) | Voxel build | |
US11288863B2 (en) | Voxel build | |
Qin et al. | Stylized neural painting with dynamic stroke allocation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |