CN115066691A - 生成或者处理图像序列的循环单元 - Google Patents
生成或者处理图像序列的循环单元 Download PDFInfo
- Publication number
- CN115066691A CN115066691A CN202180013476.7A CN202180013476A CN115066691A CN 115066691 A CN115066691 A CN 115066691A CN 202180013476 A CN202180013476 A CN 202180013476A CN 115066691 A CN115066691 A CN 115066691A
- Authority
- CN
- China
- Prior art keywords
- network
- sequence
- images
- time step
- unit
- 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
- 125000004122 cyclic group Chemical group 0.000 title claims abstract description 73
- 238000012545 processing Methods 0.000 title description 23
- 239000013598 vector Substances 0.000 claims abstract description 133
- 230000001419 dependent effect Effects 0.000 claims abstract description 9
- 238000000034 method Methods 0.000 claims description 65
- 230000002123 temporal effect Effects 0.000 claims description 46
- 230000003044 adaptive effect Effects 0.000 claims description 42
- 238000012549 training Methods 0.000 claims description 35
- 238000013528 artificial neural network Methods 0.000 claims description 27
- 238000003860 storage Methods 0.000 claims description 13
- 230000009471 action Effects 0.000 claims description 11
- 230000011218 segmentation Effects 0.000 claims description 11
- 239000003795 chemical substances by application Substances 0.000 claims description 10
- 210000002569 neuron Anatomy 0.000 claims description 5
- 238000012886 linear function Methods 0.000 claims description 4
- 238000004364 calculation method Methods 0.000 claims description 3
- 230000000875 corresponding effect Effects 0.000 description 47
- 230000006870 function Effects 0.000 description 27
- 230000008569 process Effects 0.000 description 21
- 238000009826 distribution Methods 0.000 description 18
- 230000000306 recurrent effect Effects 0.000 description 15
- 230000033001 locomotion Effects 0.000 description 14
- 238000004590 computer program Methods 0.000 description 13
- 230000004913 activation Effects 0.000 description 7
- 230000004927 fusion Effects 0.000 description 7
- 239000000047 product Substances 0.000 description 7
- 238000010801 machine learning Methods 0.000 description 6
- 210000004027 cell Anatomy 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 238000010606 normalization Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 230000006872 improvement Effects 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 239000011159 matrix material Substances 0.000 description 4
- 238000005259 measurement Methods 0.000 description 4
- 241000282412 Homo Species 0.000 description 3
- 241001465754 Metazoa Species 0.000 description 3
- 238000005070 sampling Methods 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000002787 reinforcement Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 1
- 241001522296 Erithacus rubecula Species 0.000 description 1
- 241000283092 Loxodonta Species 0.000 description 1
- 108010063499 Sigma Factor Proteins 0.000 description 1
- 241000009334 Singa Species 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001143 conditioned effect Effects 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000010438 heat treatment Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000000059 patterning Methods 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 238000004148 unit process Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- 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
- G06N3/088—Non-supervised learning, e.g. competitive 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
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield 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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/18—Image warping, e.g. rearranging pixels individually
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/4046—Scaling of whole images or parts thereof, e.g. expanding or contracting using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/4092—Image resolution transcoding, e.g. by using client-server architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/764—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural 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/04—Architecture, e.g. interconnection topology
- G06N3/047—Probabilistic or stochastic 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/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
-
- 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/10—Image acquisition modality
- G06T2207/10016—Video; Image sequence
-
- 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/20081—Training; Learning
-
- 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/20212—Image combination
- G06T2207/20221—Image fusion; Image merging
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Multimedia (AREA)
- Image Analysis (AREA)
Abstract
提出了一种循环单元,该循环单元在时间步系列中的每个时间步接收对应输入向量并且针对二维像素阵列的每个像素在该时间步生成具有至少一个分量的输出。该循环单元在时间步系列的除了第一个时间步之外的每个时间步被配置成接收循环单元在前一时间步的输出,并且对循环单元在前一时间步的输出应用取决于在该时间步的输入向量的至少一个卷积。该卷积进一步取决于循环单元在前一时间步的输出。该卷积为阵列的每个像素生成具有至少一个分量的翘曲数据集。循环单元在每个时间步的输出基于该翘曲数据集和该输入向量。
Description
技术领域
本说明书涉及一种用于神经网络的循环单元。
背景技术
神经网络是采用一个或多个非线性单元层来针对接收到的输入预测输出的机器学习模型。除了输出层之外,一些神经网络还包括一个或多个隐藏层。每个隐藏层的输出被用作网络中的下一层,即下一隐藏层或输出层,的输入。网络的每个层依照相应参数集的当前值从接收到的输入生成输出。
一些神经网络是循环神经网络。循环神经网络是接收输入序列并且从该输入序列生成输出序列的神经网络。特别地,循环神经网络能够在计算当前时间步的输出时使用来自前一时间步的网络的状态中的一些或全部。循环神经网络的示例是包括一个或多个长短期(LSTM)记忆块的LSTM神经网络。每个LSTM记忆块能够包括一个或多个单元,每个单元包括输入门、遗忘门和输出门,这些门允许单元存储该单元的先前状态,例如,用于在生成当前激活时使用或者被提供给LSTM神经网络的其他组件。
发明内容
本说明书通常描述一种实现为在一个或多个位置中的一个或多个计算机上的计算机程序的系统,该系统实现用于自适应系统的循环单元。该循环单元生成输出,并且在循环更新期间翘曲输出。如在下面进一步描述的,循环单元可以是循环神经网络的层,或者是循环神经网络的层的一部分。
能够采用循环单元作为较大自适应系统的组件,其中循环单元的输出是自适应系统的隐藏状态(即不是由自适应系统输出的数据)。在一种情况下,自适应系统可以包括循环神经网络。循环单元可以例如对应于具有多个循环层的循环神经网络的一个循环层。循环层中的任何一个或多个可以是如这里所描述的循环单元。循环层在序列(栈)中,其中由序列的除了序列的最后层之外的每个循环层生成的数据被传递以成为序列的下一循环层的输入。此外,自适应系统可以包括:输入单元(例如由进一步的自适应层组成),该输入单元处理在传送到循环神经网络之前输入到自适应系统的数据;和/或输出单元(例如进一步的自适应层),该输出单元处理由循环神经网络生成的数据。例如,这些循环单元中的一个或多个可以接收和/或生成在特征空间中的数据。例如,输入单元可以将图像空间中的图像(例如适合于人类观测的图像)转换到特征空间中并且/或者输出单元可以将从循环单元生成的数据从特征空间转换到图像空间中。
翘曲(warping)特别但不排他地适于图像和视频处理。因此使用循环单元的自适应系统可以接收和/或生成具有时间关系的图像序列,例如以实现用于生成详述时间顺序的图像序列(诸如包括一系列帧的视频)的生成器网络。
循环单元由能够至少在自适应系统的训练阶段期间变化的多个参数定义。跟随训练阶段之后,自适应系统可以具有其中参数不变化的使用阶段。
循环单元能够被用在接收和/或生成具有时间进展的图像序列的多种类型的自适应系统中。例如,该自适应系统可以是用于生成具有时间进展的图像序列(例如,类似由摄像机捕获的真实世界的视频的视频)的生成器网络。
在一般术语中,本公开提出循环单元在时间步系列的每个时间步(每个时间步在以下公开的示例中被表示为t)被布置成接收对应输入向量(在示例中被表示为xt)并且为二维像素阵列(通常是方阵列,其在示例中分别由H和W表示的两个维度上具有相应数量的像素)的每个像素生成在该时间步的输出(在示例中被表示为ht)。循环单元在时间步系列的除了第一个时间步之外的每个时间步被配置成接收循环单元在前一时间步的输出(在示例中被表示为ht-1),并且对循环单元在前一时间步的输出(ht-1)应用取决于在该时间步的输入向量的至少一个卷积。该卷积进一步取决于循环单元在前一时间步的输出。该卷积为阵列的每个像素生成具有至少一个分量(更一般地,D分量)的翘曲数据集(即张量;在示例中被表示为)。循环单元在每个时间步的输出基于该翘曲数据集和该输入向量。
例如,如下所述,循环单元在时间步系列的每个时间步的(循环)输出(ht)可以用于被生成有序图像序列的相应图像。也就是说,时间步的次序与图像序列的次序相同,例如第一个时间步对应于序列的第一图像;系列的第二个时间步对应于序列的第二图像等。在一种可能性中,循环单元的给定输出可以简单地是图像序列的对应图像。在另一可能性中,循环单元的给定输出可以是能够被转换成图像序列的一个图像的特征图。
从概念观点来看,翘曲可以被理解为表示循环单元的两个连续输出之间的变换。这可以是与循环单元的输出的仅一部分相关的变换。
例如,假设循环单元的两个连续输出,“第一输出”和“第二输出”,对应于两个连续图像,这里为“第一图像”和“第二图像”。假设这两个图像都示出正在移动的对象(即该对象在每个图像中处于不同的相应位置中)。关于与对象相关的第一输出的像素,卷积可以将第一输出中的对应值移动与对象在第一图像与第二图像之间的运动相对应的量。也就是说,卷积对这种像素来说是作为平移的变换。卷积通过移动与和对象相对应的像素相关的值来翘曲第一输出。
换句话说,卷积使像素的第一子集(与对象相关的第一输出中的像素)与像素的第二不同子集(与对象相关的第二输出中的像素)相关。卷积通过将其值从第一像素组移动到第二像素组来翘曲第一输出。因此,当循环单元形成与第二像素组相关的第二输出的部分时,它能够利用与第一像素组相关的第一输出的部分。
以这种方式,关于存在于第一图像的特定部分中的对象的信息能够被用于改进对象已移动到的第二图像的不同部分。改进可以例如确保对象利用一致颜色、大小、形状等呈现。即使对象在图像对之间具有大位移这个也被实现。
相反地,关于未描述移动对象的第一输出的像素(例如描述第一图像中的静态背景的第一输出的像素),卷积可以不引起任何运动。以这种方式,关于存在于第一图像中的背景的信息能够被用于改进示出相同背景的第二图像的一部分(例如以确保背景的该部分在两个图像中利用一致颜色、图案化等呈现)。
与用于生成图像序列的已知技术相比,循环单元因此允许图像序列被生成具有改进的特性,诸如在序列中的连续图像之间具有改进的一致性,即使当对象在这些图像中的连续图像内的运动程度非常大时也如此。例如,所生成的图像序列可以显示出较大真实感,例如对人类来说更难以与真实世界的视频区分开。这是以可接受的计算成本实现的。
此外,在不必然生成图像而是相反接收图像序列的循环单元的应用(例如如下所述的图像序列分类任务)中,可以提取关于在图像内移动的对象的信息。与移动对象相关的循环单元的第一输出的部分的卷积是为了将对象的运动反映到其在循环单元的第二紧接连续输出中的位置。这使来自循环单元的第一输出的关于对象的信息变得可用于与来自循环单元的第二输出的关于对象的信息组合,以生成关于对象的更准确信息(例如对象的更准确分类)。即使对象在循环单元的输出对之间具有大位移这个也被实现。
注意,如在下面详细地描述的,循环单元可以是自适应系统的在翘曲数据集被用于生成输出图像和/或其他输出数据之前对其进行显著地变换的一部分。特别地,如以上所提及的,循环单元的输出和翘曲数据集可以在一些情况下在特征空间中,即其中它们的分量中的每一个表示由自适应系统接收或者由自适应系统输出的图像的多个像素的对应集体性质。
循环单元可以通过以相应方式(即循环单元在前一步骤的输出被修改以在翘曲数据集中生成像素的方式特定于该像素;它对每一像素来说可以是不同的,并且可以针对每个像素被选取为翘曲可能性集的加权和)对循环单元在前一时间步的输出进行卷积来为每个像素生成翘曲数据集的至少一个分量。换句话说,在卷积中用于生成翘曲数据的每个像素的卷积核对不同像素来说可以不同。该不同至少取决于输入向量。这在生成卷积时提供灵活性。存在能够在其中实现这个的多个方式。
第一可能性是循环单元生成小于(例如,至少小5倍)像素的数量的许多(其在示例中被表示为N)核,并且生成翘曲数据集的每个分量作为循环单元在前一时间步的输出与核的相应卷积的加权和。核的维度可以小于H x W。核可以包括值的方阵列。例如,它可以是kxk,其中k可以是小于H和W的整数。加权和的权重对每个像素来说可以不同,并且可以被称为“选择图”(其可以被表示为S)。这可以被称为每像素软选择。可以基于输入向量(xt)和/或循环单元在前一时间步的输出(ht-1)使用卷积网络来生成N个核和/或权重S。实现这个的一个方式是循环单元将循环单元在前一时间步的输出与核的每一个进行卷积以生成相应中间翘曲数据集,然后为每个像素生成(最后)翘曲数据集作为通过该像素的S的值加权的中间翘曲数据集的和。替代地实现这个的另一方式是颠倒这两个步骤,对于每个像素,使用该像素的S的对应N个值来形成该像素的N个核的加权和W,并且该像素的翘曲数据集的每个分量是通过将循环单元在前一时间步的输出ht-1的像素的对应分量与作为该像素的W的值的kxk核相乘而形成的。
替代地,神经网络它本身可以为每个像素直接地生成具有不同核(即不同像素的核是独立的)的数据集W(另一张量)。同样在这种情况下,每个像素的翘曲数据集的分量可以被获得作为通过该像素的对应核的值加权的在前一时间步的输出ht-1的像素的对应分量的和。
注意,在这两种情况中的任何一种下,核可能取决于该时间步的输入向量和循环单元在前一时间步中的输出两者。它们可以例如由函数(在示例中被表示为f)生成,该函数可以是由参数定义的自适应组件,诸如卷积神经网络或多层感知器,这些参数可以被训练作为用于包含循环单元的自适应系统的学习过程的一部分。在一个示例中,函数f是“浅cnn”(即,具有单个卷积层,连续跟随有自适应最大池化层、隐藏层并且最后是分类器单元)。该函数可以被应用于该时间步的输入向量和循环单元在前一时间步中的输出的级联。
一旦翘曲数据集已被创建,循环单元就可以以多种方式中的任一种,例如以类似于诸如卷积门控循环单元的的本领域中已知的门控循环单元(GRU)的方式生成在该时间步的输出。
在一种可能性中,循环单元在每个时间步(t)的输出(ht)可以是以下各项之和:(i)翘曲数据集与融合向量(在示例中被表示为u)的逐分量乘积,以及(ii)与融合向量相反地变化的向量(例如1-u)和由循环单元的非线性单元生成的精化向量(在示例中被表示为c)的逐分量乘积。非线性单元可以例如是整流线性单元(ReLU)(在示例中被表示为ρ)。
可以通过对以下项应用诸如sigmoid函数(在示例中被表示为σ)的函数来生成融合向量u的每个元素:第一权重向量(在示例中被表示为Wu)与网络在前一时间步的输出和该时间步的输入向量的级联的逐分量乘积的相应分量加上相应第一偏移值(在该示例中偏移值的集合由向量bu表示)。
替代地,可以通过对以下项应用诸如sigmoid函数的函数来生成融合向量u的每个元素:第一权重向量与翘曲数据集和输入向量的级联的逐分量乘积的相应分量加上相应第一偏移值。
现在转向精化向量c,可以通过对以下项应用诸如ReLU的非线性函数来生成精化向量的每个元素:第二权重向量(在示例中被表示为Wc)与网络在前一时间步的输出和在该时间步的输入向量的级联的逐分量乘积的相应分量加上相应第二偏移值(在示例中第二偏移值的集合由向量bc表示)。
替代地,可以通过对以下项应用非线性函数来生成精化向量c的每个元素:第二权重向量与翘曲数据集和输入向量的级联的逐分量乘积的相应分量加上相应第二偏移值。
第一权重向量和第二权重向量中的一些或更优选地全部以及偏移值的第一集合和第二集合是循环单元的参数,这些参数在训练循环单元是其一部分(或甚至整个)的自适应系统的过程期间被训练。可选地,然而可以预定义一个或多个参数。例如,一些或所有偏移值可以被固定,例如被固定为零。
实验上,发现所有这些变化都能够生成性能优于已知系统的自适应系统。
循环单元显示出类似于LSTM的信息流。如在这样的存储器中一样,精化向量c可以被理解为存储器单元或内容单元,并且融合向量u可以被理解为控制循环单元的输出类似翘曲数据集(即循环单元的先前输出的翘曲版本)或精化向量c的程度的更新向量。
现在描述循环单元的一些应用。
其中能够采用循环单元的第一类型的自适应系统是用于生成表示时间进展的图像序列的生成器网络。该生成器网络被配置成基于循环单元在时间步的相应一个中的相应输出来生成图像序列的每个图像。
换句话说,循环单元使生成图像序列的方法变得可能,该方法包括:
在时间步系列的每个时间步,生成包括一个或多个对应潜在值的对应输入向量,并且将该输入向量输入到生成器网络,并且
在除了所述系列的第一个时间步之外的每个时间步,向生成器网络的循环单元输入循环单元在前一时间步的输出;以及
在每个时间步,从生成器网络的输出生成图像序列的对应图像。
可选地,生成器网络可以使用一个或多个图像的序列被初始化,使得它生成继续该图像序列。替代地或另外,可以基于条件向量来控制生成器网络,该条件向量可以被包括在如下所述的输入向量中,以生成具有对应性质的图像序列(例如骑自行车的人的图像)。
可选地,输入向量可以包括阵列的每个像素的至少一个值。
生成器网络可以在生成对抗网络(GAN)内被训练,该GAN进一步包括用于区分由生成器网络生成的图像序列和不是由生成器网络生成的图像序列的鉴别器网络。
生成器网络和鉴别器网络可以被联合地训练。可选地,生成器网络和鉴别器网络两者可以在每个迭代步骤中被修改,但是可选地替代地其中修改(仅)生成器网络的迭代步骤可以与其中修改(仅)鉴别器网络的迭代步骤交错。
训练过程可以采用不是由生成网络生成而是接收(例如从数据库)的一个或多个(通常许多)第一图像序列。在训练过程的每个迭代步骤期间,生成器网络可以生成至少一个第二图像序列。鉴别器网络为第一图像序列和第二图像序列中的一个或多个生成至少一个鉴别器分数;并且控制系统改变鉴别器网络和生成器网络的权重以便使鉴别器网络区分第一图像序列和第二图像序列的能力最大化,并且使生成器网络生成对其来说鉴别器网络在该任务失败的第二图像序列的能力最大化。
可选地(如2019年由Clark等人“Adversarial video generation on complexdatasets”(在复杂数据集上生成对抗视频)提出的,其公开内容并入本文),鉴别器网络可以被实现为双鉴别器网络,该双鉴别器网络包括(i)用于生成基于个别图像的空间特征进行鉴别的第一鉴别器分数的空间鉴别器网络,以及(ii)用于生成基于图像系列的时间特征进行鉴别的第二鉴别器分数的时空鉴别器网络。为了提供计算效率的改进,空间鉴别器网络被应用于具有减小的时间分辨率并且可选地还具有空间分辨率(相对于输入图像)的一个或多个图像的(第一)集合,并且时空鉴别器网络被应用于具有减小的空间分辨率和/或已被裁切(相对于输入图像)的图像的(第二)集合。这允许更高效地(例如通过减小数目的处理步骤)应用鉴别器网络中的每一个以便产生用于在训练生成器时使用的鉴别器分数,同时维持鉴别器网络的准确性。另外,这允许通过使用改进的鉴别器来训练生成器网络以更准确地生成图像序列。
第一图像序列可以已被(例如由另一生成器)计算地生成或者可以是真实世界环境的真实图像(例如由摄像机捕获)。第一图像序列中的每一个可以是视频(例如光学图像的帧序列)或者可以是某种其他形式的时间进展(例如LiDAR图像序列)。每个图像可以由从一个或多个传感器取得的测量结果形成。例如,每个图像可以是多感官图像(例如通过来自许多传感器的数据的融合所形成的图像)。传感器可以感测各种类型的测量(例如,声音、光、振动等)。重要的是,图像形成时间进展,使得在图像之间存在某种时间关系。
改变鉴别器网络的权重可以包括基于第一鉴别器分数来改变空间鉴别器网络的权重和基于第二鉴别器分数来改变时空鉴别器网络的权重。也就是说,空间鉴别器网络和时空鉴别器网络可以基于它们对应的鉴别器分数被彼此独立地训练。这可以基于用于空间鉴别器网络和时空鉴别器网络的对应损失函数。每个鉴别器网络可以基于目的是调整(优化)对应鉴别器网络的参数以将输入到鉴别器网络中的图像更准确地分类为由生成器网络生成或不是由生成器网络生成(例如环境的“真实”图像而不是所生成的图像)的目标函数而被训练。生成器网络可以利用目的是使每个鉴别器网络对所生成的图像序列进行误分类的目标函数而被训练。生成器网络可以被配置成在不用依赖前景、背景或运动的任何预定义先验分布的情况下(例如在不对于光流利用任何预定义模型的情况下)仅基于学习的分布来生成图像序列。
为第一图像序列或第二图像序列中的一个确定第一鉴别器分数可以包括:为序列中的每个图像确定表示图像由生成器网络生成的概率的对应鉴别器值;以及组合序列中的图像的鉴别器值以产生第一鉴别器分数。也就是说,第一鉴别器分数可以是序列中的每个个别图像的个别鉴别器分数的组合。确定第一鉴别器分数可以包括跨越序列对鉴别器值求和。
可以仅基于来自序列的单个对应图像来确定每个第一鉴别器分数。也就是说,空间鉴别器网络可以独立于第一集合中的其他图像而考虑第一集合中的每个图像并且为第一集合中的每个图像产生对应的第一鉴别器分数。这避免第一鉴别器网络跨序列学习时间特征。将空间鉴别器应用于多个图像并且对图像的鉴别器分数求和提供通过鉴别器的更准确分类。
生成器网络可以被训练以基于包括在用于生成器网络的输入向量中的潜在值(或简称为“潜值”)的集合来生成表示时间进展的图像序列。如果是这样的话,则生成器网络一旦被训练,就可以被用于基于从潜在值分布(或“潜在分布”)中选择的潜在值来生成图像序列。可选地,来自分布的不同潜在值可以被用于每个时间步。
如以上所指出的,可以基于被输入到生成器网络的条件向量来控制生成器网络的操作。例如,条件向量可以向生成器网络指示将从由条件向量指定的分布的一部分中选择所生成的图像序列。例如,如果其中生成器被假定要生成序列的分布使生成器网络生成落入多个预定义类中的一个的序列,则条件向量可以包括指示这些类中的所选择的类的一个或多个数据值(例如指示类中的一个的类标签)。生成器网络可以包括至少一个条件层,该至少一个条件层接收条件向量的至少一部分,并且执行取决于接收到的条件向量(例如类标签)的函数。因此,条件层生成条件向量的嵌入。以这种方式,可以控制生成器网络,例如以生成对应于这些类中的一个受控类的分布的样本。优选地,存在多个条件层。该(或每个)条件层可以被实现为具有取决于条件向量的增益和/或偏差的BatchNorm层。在针对生成器网络的训练过程期间,可以从分布中选择条件向量,并且如果生成器网络从由条件向量指定的样本(例如,在分布的与由条件向量指定的类不同的类中的样本)生成样本,则成本函数可以应用附加成本。
第一图像序列可以与描述它们的相应内容的类标签相关联。鉴别器网络可以接收类标签。可选地,鉴别器网络可以被训练为使得鉴别器网络学习确定类。
鉴别器网络可以被用于调节生成器网络以便允许生成器网络生成一个或多个图像(在示例中称为调节图像)的初始序列的继续部分。具体地,可以生成作为表示时间进展的初始图像序列的继续部分的图像序列。这可以包括:
将初始图像序列输入到根据本文中描述的方法中的任一种训练的空间鉴别器网络中以为初始图像序列中的每一个产生分类(即进入到一个或多个类中);
形成分类的嵌入;以及
利用该嵌入来调节生成器网络以生成作为初始图像序列的继续部分的图像序列。
初始图像序列的继续部分可以在初始图像序列之后被级联以形成所生成的序列,其可以被输入到鉴别器网络(诸如根据本文中描述的方法训练的鉴别器网络)中。鉴别器网络的输出可以被用于训练生成器网络。
形成分类的嵌入可以包括将分类输入到自注意力块中以形成跨分类组合信息的张量。
生成器网络和/或鉴别器网络的一个或多个层可以是残差块,其中块的输出是块的输入和应用于块的输入的函数之和。例如,如以上所指出的,函数可以由产生由权重定义的输出的神经元的层实现,其中神经元的输出经历例如由相应整流线性单元执行(ReLU)执行的非线性操作。
生成器网络和/或鉴别器网络可以进一步包含其他层,诸如一个或多个批量规范化层,例如条件批量规范化层。批量规范化层是通过对其输入值(其在条件批量规范化的情况下可以取决于在下面称为被输入到批量规范化层的条件向量的数据集)应用增益和偏差来将输入值变换成具有预定义平均值(例如零)和预定义方差(例如单位方差)的相应输出值的层。
生成器网络的迭代修改可以采用正则化。例如,它可以使用成本函数被执行,该成本函数包括基于生成器网络的权重的至少一个范数(例如使用由生成器网络的一些或所有权重形成的单个向量而形成的范数;或从生成器网络的相应层的权重或者从一个或多个神经元的相应组的权重生成的多个范数)的正则化项。正则化矩阵可以通过形成生成器网络的权重的权重矩阵和该权重矩阵的转置的内积被构造。
每个序列的图像可以是表示静止图像或运动图像的数据,其中,包含在数据项中的个别数值可以表示像素值,例如像素的一个或多个颜色通道的值或像素的灰度值。用于训练鉴别器网络(并且潜在地通过扩展训练生成器网络)的第一图像(训练图像)序列可以是由相机捕获的真实世界的图像。
例如,在一个实施方式中,用户可以使用训练后的生成器网络以从图像分布(例如反映利用其产生生成器网络的训练图像的数据库的分布,例如,反映真实世界图像)生成图像序列(例如,视频)。用户供应用户输入,并且计算机从其确定图像序列。在可分开的自注意力正在被利用的情况下,每个图像是使用跨每个时间步嵌入的加权组合而生成的。因此,对训练图像具有高保真度的图像被生成。由于使用可分开的自注意力,因此需要较低的存储器占用。
如以上所指出的,生成器网络可以生成以条件向量(目标数据)为条件的数据项,该条件向量可以被包括在生成器网络的输入向量中,从而表示用于生成数据项的目标。目标数据可以表示与所生成的图像序列相同或不同类型或模态的数据。例如,目标数据可以定义用于生成的图像中的一个的标签或类并且所生成的图像序列然后可以包括该类型的示例图像(例如非洲象)。或者目标数据可以包括图像或图像的编码(或图像序列),并且所生成的图像序列可以定义另一类似的图像序列—例如当在面部的图像上训练时,目标数据可以包括人的面部的编码并且生成器网络然后可以生成表示具有不同姿态/光照条件的类似面部的图像序列。在另一示例中,目标数据可以示出对象的图像并且包括定义视点的移动/变化的数据,并且生成器网络可能从新视点生成对象的图像序列。
系统还可以自回归地生成视频,特别地给定一个或多个先前的视频帧。这些先前的视频帧可以被用于通过在生成器网络中将帧的分类集的编码应用作为循环单元的初始状态来调节生成器。
在另一示例中,生成器网络可以被用于生成另外的图像序列以用于训练另一机器学习系统。例如可以在视频的集合上联合地训练生成器网络和鉴别器网络,然后生成器网络可以被用于生成与训练数据集中的视频类似的新视频。可以通过从潜在值的潜在分布中采样来确定潜在值的集合。如果已以附加数据,例如标签,为条件训练了生成器网络,则可以以附加数据,例如提供给生成器网络的标签,为条件生成新视频。以这种方式可以生成附加标记视频,例如以补充未标记训练视频的缺乏。
可以使用以上提出的循环单元来形成的第二类型的自适应系统是用于在图像序列内标识具有一个或多个特性的每个图像的一部分的分段网络。例如,特性可以是图像的一部分表示某个人、动物或对象,或某个类中的人、动物或对象(例如具有特定形状、功能或颜色的对象)。在分段网络中,循环单元被布置成在时间步系列的每个时间步接收包括图像序列的对应图像的输入向量。该分段网络被配置成在每个时间步中从循环单元在对应时间步中的输出生成输出并且该输出包括标识表示具有一个或多个特性的人、动物或对象的对应图像的部分的数据。这种分段网络可以例如定义在图像或视频序列中的一个或多个对象周围的边界框。
其中能够采用循环单元的第三类型的自适应系统是用于生成对图像序列和/或序列中的个别图像进行分类的数据的分类网络。这可以基于一个或多个类(例如预定类),其每一个对应于图像或图像序列的相应特性。例如,特性可以是图像或图像序列示出至少一个人。分类网络可以被配置成确定给定图像或图像序列在给定类中。例如它可以确定图像具有那个特性,或者图像序列具有那个特性,或者图像序列中的一个或多个图像具有那个特性。分类可以总体上与序列相关(例如“该图像序列示出人打网球”)或者具体地与序列的一个或多个图像相关(例如“该帧示出网球运动员发球”)。分类可以与对图像或视频序列中的一个或多个对象的标识相关并且/或者与图像或视频序列中的一个或多个对象的姿态的标识相关。一个或多个特性可以是运动特性,即指示图像或图像序列示出人或对象具有满足特定准则的运动,例如人或对象正在某个速度之上移动。因此分类可以包括动作分类。
分类网络的循环单元可以被布置成在时间步系列的每个时间步接收包括图像序列的对应图像的相应输入。分类网络被配置成从循环单元在相应时间步序列的每个时间步的输出生成标识图像是否在一个或多个类中的数据。如所指出的,该数据可以是总体上与序列相关并且指示序列在类中的一个中的数据(例如可以组合来自循环单元的输出的集合以标识一个或多个类)。替代地,输出的每一个可以被用于生成与序列的特定图像相关并且指示在该图像中示出的东西在一个或多个类中的数据。
其中能够采用循环单元的第四类型的自适应系统是用于增加输入图像序列(例如由多个帧组成的视频序列)的视频空间分辨率和/或时间分辨率的系统。例如,如果输入视频的每个帧是能够被包括在循环单元的输入向量中的输入大小为h x w(其中h和w是整数)的像素,则自适应系统可以将每个帧转换为大小H x W,其中H和W是整数,其一者或两者分别大于h和w并且其两者分别至少等于h和w。H和W可以是循环单元的输出的像素阵列的相应维度。因此,自适应系统生成具有与输入视频比增加的空间分辨率的输出视频。
替代地或另外,自适应系统可以为输入视频的每个帧生成输出视频的不止一个帧。例如,如果输入视频由Na个帧构成,其中Na是整数,则自适应系统可以产生Nb的输出视频,其中Nb大于Na,诸如Na的整数倍。这个能够方便地在循环单元操作(至少)Nb个时间步被执行,从而在每个时间步(除了可能在发生初始化的开始处的一个或多个时间步之外)生成输出视频的图像中的一个。因此,自适应系统生成具有与输入视频比增加的时间分辨率的输出视频。
在时间步t对循环网络的输入向量可以例如包括输入视频的第n帧,其中n=1,…,Na并且等于大于tNa/Nb的最小整数,并且包括输入视频的除了在n=Na的情况下之外的第(n+1)帧,或使用输入视频的这些帧中的一个或两者推导的数据。替代地,在第一个时间步中输入向量可以包括输入视频的第一帧(或从其获得的嵌入数据),并且在每个进一步的时间步中,输入向量可以包括输入视频的第n帧,其中n=2,…,Na并且等于大于tNa/Nb+1的最小整数。
注意,上述第三类型的自适应网络(即分类系统)是其中循环单元的输出尽管以二维像素阵列定义但实际上不意在供由人类观测而相反是被用于除观测以外的目的(即分类)的数据(“中间图像”)的系统的一个示例。例如,中间图像可以包括从多个相应方向观测的环境中的每个对象的表示。存在采用生成中间图像而不是供由人类观测的图像的循环单元的其他类型的自适应系统。
一个示例是自适应强化学习系统。这是用于控制与环境(例如真实世界环境,或替代地模拟环境,诸如对真实世界环境进行建模的模拟环境)交互的智能体(例如机电智能体)的控制系统。例如,强化学习系统可以是控制真实世界机电智能体与环境交互的控制系统。例如,它可以控制智能体在环境中移动(例如从环境中的一个位置平移到另一位置和/或更改其配置),操纵环境中的对象和/或更改真实世界环境(例如机电智能体可以是用于环境的加热系统)。在训练阶段(真实的或模拟的)中,控制系统可以学习基于根据控制系统的控制系统向智能体发送的结果而生成的奖励来执行任务。在用户阶段中,训练后的控制系统控制真实世界智能体执行任务。基于由摄像机捕获的真实世界环境的图像,本循环单元可以被用作用于计算奖励的奖励计算系统的部分,例如在真实世界智能体上执行训练的情况下。
在上述循环单元的变型中,像素阵列可以具有不同维度,而不是二维的,诸如是一维的或三维的。
以上概念是按可以被实现在硬件或软件中的循环单元或网络而表达的。在后者情况下,概念可以替代地被表达为包括一个或多个计算机和存储指令的一个或多个存储设备的系统,指令当由该一个或多个计算机运行时使该一个或多个计算机执行以上说明的方法中的任一种的操作。计算机和存储设备可以位于一个位置中或者位于多个分布式位置中,例如由电信系统连接。替代地,概念可以是按存储指令的一个或多个计算机存储介质(例如以非暂时性形式存储指令的有形存储介质)而表达的,指令当由一个或多个计算机运行时使该一个或多个计算机执行方法中的任一种的操作。
能够在特定实施例中实现本说明书中描述的主题以便实现以下优点中的一个或多个。
所描述的循环单元和方法能够比常规循环单元更有效地从图像序列中提取运动特征。这能够允许使用循环单元的视频处理系统实现更好的性能,例如诸如更准确的视频识别、动作分类、分段、有界框标识和姿态估计的任务的性能。这进而能够促进包括所述循环单元的神经网络系统的训练,并且可以因此允许利用更少的数据进行训练,从而允许更少的存储器和计算需求。由所描述的循环单元标识的运动特征还可以可由人类更容易地解释。更一般地,所描述的循环单元提供用于将例如来自先前帧的先前标识的特征与对新特征,例如对下一帧,的预测组合的新方式,特别地通过提供在特征空间中做这个的循环单元架构。
因此如本文中所描述的循环单元可以用于预测类运动特征。根据这些,包括循环单元的系统可以考虑到以下各项中的一个或多个的变化来预测视频(图像序列)和/或对视频的影响和/或特征集:相机性质或运动、场景性质(例如光照或布局)、对象性质(例如存在、姿态、运动、特性)和去遮挡(对象部分的先前隐藏对象的出现)。
可与上述技术组合但可以在不采用循环单元的系统中实现的本公开的另一方面涉及实现为在一个或多个位置中的一个或多个计算机上的计算机程序的系统如何能够基于从分布中选择的数据项的训练集执行用于训练作为包括生成器网络和鉴别器网络的生成对抗网络(GAN)的自适应系统(即,调整该自适应系统的参数)的方法。生成器网络一旦被训练,就可以被用于基于从潜在值分布(或“潜在分布”)中选择的潜在值(或简称为“潜值”)来从分布生成样本。特别地,本文中描述的实施方式产生用于生成详述时间顺序的图像序列(诸如包括一系列帧的视频)的生成器网络。
在一般术语中,本公开的该另一方面提出包括用于基于一系列图像的时间特征进行鉴别的时空鉴别器网络和用于基于个别图像的空间特征进行鉴别的空间鉴别器网络的双鉴别器网络的使用。可以通过将空间鉴别器网络应用于具有减小的时间分辨率并且可选地还具有减小的空间分辨率(相对于输入图像)的一个或多个图像的集合并且将时空鉴别器网络应用于被裁切和/或具有减小的空间分辨率(相对于输入图像)的图像的集合来利用计算效率的改进训练鉴别器。这允许鉴别器网络中的每一个被更高效地(例如通过减小数目的处理步骤)应用以便产生用于在训练生成器时使用的鉴别器分数,同时维持鉴别器网络的准确性。另外,这允许生成器网络通过使用改进的鉴别器被训练以更准确地生成图像序列。
此外,分开的时间和空间鉴别器网络的使用允许使用并行处理以改进鉴别器网络的速度和效率。例如,可以与时空鉴别器网络并行地实现空间鉴别器网络(例如通过GPU)。这允许方法利用并行处理加速鉴别器网络的处理。由于时间鉴别器和空间鉴别器作用于减小的特征空间并且作用于减小分辨率的数据,因此这产生更快且更高效的鉴别器网络。
另外,生成器网络可以利用因式分解自注意力。自注意力允许生成器在生成每个图像时跨所有时间步对嵌入的相对影响进行加权。换句话说,在每个图像被生成时使用所有嵌入的加权组合。例如,可以存在三层注意力网络,其中每个层跨高度特征、宽度特征和时间特征中的对应一个应用注意力。通过应用因式分解来分开与这三个特征空间相关的注意力步骤,实现自注意力所需要的存储器存储量大大地减小了。该方法能够大幅地减小存储器占用(例如3000倍)。实验已示出该过程将存储器占用从150GB减小到50MB(99.97%的减小),从而允许在使用常规加速器时执行该过程。
具体地,本公开的第二方面涉及训练鉴别器网络以用于在训练生成器以生成表示时间进展的图像序列时使用。鉴别器网络用于区分由生成器网络生成的图像序列和不是由生成器网络生成的图像序列。鉴别器网络包括用于基于时间特征进行鉴别的时空鉴别器网络和用于基于空间特征进行鉴别的空间鉴别器网络。该时空鉴别器网络和该空间鉴别器网络各自包括神经元的多层网络,其中每个层执行由对应权重定义的函数。训练包括:
接收表示时间进展的输入图像序列;
从输入序列形成具有与输入序列比更低的时间分辨率的图像的第一集合,并且将该第一集合输入到空间鉴别器网络中以基于第一集合中的每个图像的空间特征来确定表示输入序列已由生成器网络生成的概率的第一鉴别器分数;
从输入序列形成图像的第二集合,并且将该第二集合输入到时空鉴别器网络中以基于第二集合中的图像的时间特征来确定表示输入序列已由生成器网络生成的概率的第二鉴别器分数;以及
基于该第一鉴别器分数和该第二鉴别器分数来改变鉴别器网络的权重;
其中,图像的第一集合是来自输入图像序列的对应图像的减小空间分辨率版本并且/或者图像的第二集合是输入序列中的图像的裁切版本。
输入图像序列可以已由生成器生成或者可以由另一源提供(例如它们可以是真实环境的真实图像)。输入图像序列可以是视频(例如光学图像的帧序列)或者可以是某种其他形式的时间进展(例如LiDAR图像序列)。每个图像可以由从一个或多个传感器取得的测量结果形成。例如,每个图像可以是多感官图像(例如通过来自许多传感器的数据的融合而形成的图像)。传感器可以感测各种类型的测量(例如,声音、光、振动等)。重要的是,图像形成时间进展,使得在图像之间存在某种时间关系。
形成第一集合可以包括从输入图像序列中选择包括一个或多个图像的子集,使得第一集合具有比输入序列更少的图像。也就是说,可以从输入图像序列中选取k个图像的样本,其中k小于输入集合中的图像的总数L。第一集合中的每个图像可以具有与输入序列中的图像比更低的空间分辨率。也就是说,第一集合的选择可以不涉及更改个别图像的空间分辨率。例如,对于各自具有H×W个像素的L个图像的输入序列,第一集合被形成为各自具有H×W个像素的k个图像的序列,其中k<L。换句话说,第一集合具有与输入序列比更低的时间分辨率。子集可以从输入图像序列中随机地被选择。
附图说明
现在将为了示例起见仅参考以下附图描述本公开的示例,在附图中:
图1示意性地示出由本公开提出的第一循环单元;
图2图示由图1的循环单元实现的翘曲操作的第一可能的实施方式;
图3图示由图1的循环单元实现的翘曲操作的第二可能的实施方式;
图4示意性地示出由本公开提出的替代循环单元
图5示意性地示出由本公开提出的另一替代循环单元;
图6示出由根据本公开的循环单元执行的方法的步骤;
由图7(a)和7(b)组成的图7示意性地示出可以被用于训练包括根据本公开的循环单元的生成器的两种形式的鉴别器单元;
图8示出联合地训练鉴别器网络和包括根据本公开的循环单元的生成器网络的步骤;
图9示出由包括根据本公开的循环单元的生成器生成图像序列的方法;
图10示出使用包括根据本公开的循环单元的分段系统对图像序列进行分段的方法;
图11示出使用包括根据本公开的循环单元的分类器系统对图像序列进行分类的方法;以及
图12示出使用包括根据本公开的循环单元的自适应系统来增加图像序列的空间分辨率和/或时间分辨率的方法。
具体实施方式
首先参考图1,示出了根据本公开的示例的循环单元1。该循环单元1将被用在包括被表示为整数变量t(例如t可以是1,…T,其中T是循环单元执行的时间步的总数)的多个连续时间步的过程中。图1说明循环单元1在时间步t的操作。
循环单元在任何时间步t的输出是被表示为ht的数据集(张量)。该数据集ht优选地包括可以为像素的二维点阵列的每个点的通道数D(其中D是正整数,其可以是一)。阵列的大小是HxW,其中H和W是大于一的整数。因此,ht的维数是H×W×D。例如,如果D等于3,则三个通道可以是HxW图像的RGB颜色通道。
在过程的时间步的每一个(除了过程的第一个时间步之外)中,循环单元1接收循环单元1在前一时间步的输出。这被表示为ht-1。在过程的第一个时间步中,循环单元1可以接收另一输入代替ht-1,诸如具有与循环单元的输出中的一个相同的维数的预定数据集(或随机数据集)。该输入可以被用于调节循环单元1。
循环单元1的第二输入是被称为输入向量的数据集x。如下所述,在循环单元的一些用途(而非全部)中,输入向量x在这些时间步的不同时间步是不同的。在不失一般性的情况下输入向量被表示为xt。
针对t的每个值的输入向量xt还对多维数据进行编码。特别地,针对t的任何给定值的xt可以包括具有维度H’和W’的二维阵列中的每一个的通道数D’(其中D’是正整数,其可以是一并且可以等于D)。因此,xt的维数是H′×W′×D′。可选地,H可以等于H’,并且W可以等于W’。更一般地,比率H.·W可以与比率H’W’基本上相同。
在循环单元1中,输入ht-1和xt可以由级联单元11级联。
级联单元11的输出被输入到从其生成(通过被表示为f的函数)被表示为θ的对应输出的浅卷积神经网络13。
神经网络13的输出θ被用于控制对循环单元的输入ht-1应用被表示为warp的卷积的翘曲单元16。在下面参考图2和图3更详细地说明翘曲卷积warp。因此,卷积取决于在时间步t的输入向量xt并且取决于循环单元在前一时间步的输出ht-1。卷积生成被表示为的翘曲数据集。该翘曲数据集可以具有与循环单元的输出ht-1相同的维数H×W×D。因此,它对于阵列的每个像素包括D个分量。
循环单元进一步包括第二卷积单元15,该第二卷积单元15对级联单元11的输出应用具有核大小kxk的卷积Wu(这样的卷积在这里被表示为*k)和偏移值bu并且对结果逐元素应用sigmoid函数σ。这产生被称为“融合向量”u的向量。这是另一H×W×D数据集。
第三级联单元17生成翘曲数据集和输入向量xt的级联。结果被传送到第二卷积单元18,该第二卷积单元18应用具有核大小k和偏移bc的另一卷积Wc,并且对结果逐元素应用非线性激活函数ρ以生成所谓的“精化向量”c。这是另一H×W×D数据集。函数ρ可以是ReLU函数。
因此,循环单元1在每个时间步中执行以下计算:
这里,逐元素乘法被表示为⊙,并且由翘曲单元16执行的函数由warp表示。
由循环单元1执行的函数类似于广泛地使用的卷积门控循环单元ConvGRU,但这些不采用神经网络13或翘曲单元16的等同物。我们现在转向参考图2和图3对这些元素的说明,图2和图3示出实现它们的两个相应方式。注意,图2和图3仅仅示出卷积单元11、神经网络13和翘曲单元16的操作,并且省略例如从卷积单元11到第二卷积单元15的路径。
在图2的实施方式(所谓的“逐像素翘曲”)中,神经网络13的输出θ是权重的张量W。W具有维数H×W×k2。翘曲单元16使用核大小k的局部连接层将这些参数用于对ht-1执行的逐深度卷积(即ht-1的每个像素的D个通道对于每个相应像素使用不同kxk核来卷积)。形式上,在给定空间位置(i,j)处,翘曲数据集的第c分量由下式给出:
这里//表示欧几里德除法的商(当分子a是偶数时a//2相当于常规上除以二)。为了简单,此等式省略时间相关性t;随之,和h中的每一个将具有下标t-1,并且对每个时间步t来说W也是不同的。注意,对于阵列的在边缘附近的部分,阵列ht-1被填充(例如用零),使得其值在由等式(2)引用的所有位置处是定义明确的,同时保存其空间维度。
转向图3(所谓的因式分解翘曲),神经网络13在这种情况下被配置成产生包括具有维度k×k×N的权重集w的输出θ,其中N是整数。因此,权重集w定义N个kxk核。输出θ进一步包括具有维度k×k×N的选择图S。权重的张量W在这种情况下是根据Wi,j的第q维度的以下等式而产生的:
权重的张量W然后由翘曲单元使用等式(3)来以与在图2中相同的方式被使用。因此,在图2和图3的两个实施方式中,系统基于使用输入向量xt来针对每个像素产生相应核Wi,j,并且基于对应核来生成翘曲数据集的对应分量
在图3而非图2的情况下,翘曲数据集是循环单元在前一时间步的输出分别与由权重矩阵w定义的N个kxk核的N个卷积的加权和。kxk核各自取决于输入向量和循环单元在前一时间步的输出。针对给定像素(i,j)的加权和的权重由针对(i,j)的S的N个值给出,因此对阵列的不同对应像素来说是不同的。
在图3的实施方式中,首先计算由等式(3)给出的加权和Wi,j,然后使用等式(2)来获得翘曲数据集然而,等效地,能够颠倒这些步骤的次序。也就是说,循环单元1在前一时间步的输出ht-1与由权重矩阵w定义的N个kxk核中的每一个可以被卷积,以生成N个相应中间翘曲数据集,并且然后,对于阵列的每个像素(i,j),可以使用针对(i,j)的S的相应N个值来形成中间翘曲数据集的加权和。同样在这种情况下,由于针对给定像素(i,j)的加权和的权重由针对(i,j)的S的N个值给出,并且它们对阵列的不同像素来说是不同的。
转向图4,示出了循环单元的替代形式4。这具有与图1的循环单元1相同的组件(除了具有仅一个卷积单元之外),这些组件由30以上的相应附图标记标记。循环单元4的操作(类似于等式(1))是:
转向图5,示出了循环单元的另一替代形式5。这具有与图1的循环单元1相同的组件(除了具有一个以上卷积单元之外),这些组件由50以上的相应附图标记标记。循环单元4的操作(类似于等式(1))是:
注意,图4和图5各自使用与在图1中相同的神经网络13和翘曲单元16的组合。同样在循环单元4和5的情况下,这些单元的功能如以上参考图2和图3所描述的。因此,同样在循环单元4和5中,对循环单元4、5在前一时间步的输出ht-1应用卷积,其取决于在该时间步的输入向量xt并且取决于循环单元4、5在前一时间步的输出ht-1。此外,再一次,在卷积中使用以生成翘曲数据的每个像素的卷积核对每个像素来说是不同的,因为由W指定的kxk核对不同像素来说不同。
实验上,发现图1、图4和图5的循环单元1、4和5的性能在各种测试中彼此类似,并且优于已知的循环单元。
图6示意性地示出由图1、图4或图5的循环单元1、4、5执行的方法600的步骤。在步骤601中,在第一个时间步(例如t=0)循环单元1、4、5接收输入向量(x1)。它还可以接收调节向量。
在步骤602中,循环单元1、4、5通过使用调节向量(若有的话)代替ht-1来应用等式(1)、(4)、(5)集中的对应一个来生成输出h1。在步骤601中未接收到调节向量的情况下,循环单元可以使用预定数据集(例如其中所有值为零)代替ht-1。
注意,可以可选地在连续相应时间步重复两个步骤601、602的集合至少一次,例如每次使用相同或不同的调节向量。
在步骤603中,其在t=2(或者在时间2+n在步骤601、602的集合已被重复n次的情况下,但是为了简单在下面忽视这种可能性)执行,循环单元1、4、5接收循环单元在前一时间步的输出h1和新输入向量x2。x2可以与x1不同或相同。
在步骤605中,循环单元1、4、5执行等式集(1)、(4)和(5)中的对应一个的等式的其余部分,以生成时间步t=2的输出,其是h2。时间步t=2现在被完成。
方法600现在返回到步骤603至少一次,以执行步骤603-605的集合的操作至少一次。步骤的集合的每次执行对应于一个连续的附加时间步。
我们现在转向图1、图4或图5的循环单元1、4、5的应用。第一应用是用于生成视频序列的生成器网络的部分。可以在进一步包括鉴别器网络的生成对抗网络(GAN)内训练生成器网络。也就是说,GAN包括:生成器,该生成器用于基于可以为随机的输入向量xt和可选地调节向量来生成图像序列(或多维数据集的其他序列);以及鉴别器,该鉴别器用于区分由生成器生成的图像序列和可以为由摄像机捕获的真实世界的视频的图像序列(或多维数据集的其他序列)的训练数据库。生成器和/或鉴别器可以具有Clark等人的图3所示的形式,其中循环单元1、4、5被用作生成器的卷积门控循环单元。
简而言之,生成器具有生成输入向量的输入单元。该输入单元包括高斯噪声源。来自源的高斯噪声(例如来自像素阵列的每个像素的分布的样本)使用核大小1x1的卷积来处理,并且将结果与用来向生成器指示它将产生的视频序列的类的单热向量级联。该单热向量是包括在输入向量中的条件向量的示例。级联经受具有1x1核的另一卷积以形成输入向量。
卷积门控循环单元在T个时间步系列的每个时间步接收该输入向量。在每个时间步中,循环单元的输出是标记为t=1至T的相应帧。可选地,如Clark等人的图8所示,生成网络可以进一步包括使用一个或多个调节帧(其可以是真实工作的捕获图像)的调节栈来针对循环单元生成调节向量的调节栈,该调节向量在时间步t=1中被输入到循环单元。调节向量由循环单元在第一个时间步中接收以代替来自前一时间步的循环单元的输出。调节栈可以通过应用后面有具有kxk核的卷积和ReLu激活层的ResNet块使用调节帧来生成调节向量。
由循环单元生成的T个帧中的每一个由输出单元分开地处理。输出单元通过ResNet块来处理每个帧,并且结果经受类条件批量范数。结果由后面有具有3x3核的卷积的ReLU激活层处理以生成输出帧。生成器网络的输出是T个输出帧的序列。
如所指出的,生成器-鉴别器系统的鉴别器可以具有Clark等人的图3所示的格式。替代地,它可以具有图7(a)或7(b)所示的形式。鉴别器的输入是视频序列,该视频序列是(i)从训练数据数据库中选择并且在类中的一个中的视频序列,或(ii)由调节栈使用的调节帧,后面是由生成器网络输出的图像序列(输出帧)。鉴别器的任务是为了产生指示鉴别器的输入是类型(i)还是类型(ii)的信号后者可能性被图示在图7(a)和图7(b)中,其中调节帧被表示为71并且由生成器网络输出的图像序列被表示为72。
分量是通过从鉴别器单元的输入中选择帧的真子集并且对它们进行下采样以形成较低分辨率图像73而产生的。因此,与图像序列72相比,图像集73在时间分辨率(因为使用仅所生成的图像的子集)和空间分辨率上减小(由于下采样而导致)。图像集73由输出分量的空间鉴别器网络74分析。该空间鉴别器网络74执行被表示为DS的函数,并且能够采取与Clark等人相同的形式,即后面有ReLU激活层的Resnet块。空间鉴别器网络74还可以接收通知它输入视频序列在哪个类中的单热向量。
分量是通过裁切输入到鉴别器单元的图像71、72中的每一个以形成较小图像75而产生的。因此,与图像序列71、72相比,图像集75具有相同的时间分辨率但示出仅原始图像的一部分。图像集75由输出分量的时空鉴别器网络76分析。该时空鉴别器网络76执行被表示为的函数,并且能够采取与Clark等人的图3中的时间鉴别器相同的形式,即后面有ReLU激活层的Resnet块。时空鉴别器网络76还可以接收通知它输入视频序列在哪个类中的单热向量。
图7(a)的鉴别器的整体结构与Clark等人的图3中相同,不同之处在于图像73被下采样并且图像75被裁切。这些过程不发生在Clark等人的鉴别器网络中。用于产生图像73的下采样减小空间鉴别器所需要的操作的数量。
除了鉴别器的输出包括另一分量之外,图7(b)的鉴别器网络与图7(a)的鉴别器网络相同。这是通过对输入视频71、72进行下采样、然后使用输出分量的第二时空鉴别器78来处理它们而生成的。第二时空鉴别器网络78执行被表示为的函数,并且能够采取与Clark等人的图3中的时间鉴别器网络相同的形式,即后面有ReLU激活层的Resnet块。时空鉴别器网络64还可以接收通知它输入视频序列在哪个类中的单热向量。与已知的鉴别器网络相比,实验上发现图7(b)的鉴别器网络对鉴别性能提供相当大的改进。
图8图示用于联合地训练生成器网络,诸如包含所提出的循环单元1、4、5的生成器网络,和鉴别器网络,诸如图7(a)和7(b)所示的那些,的过程。在第一步骤801中,接收第一图像序列的训练数据库。这些可以例如是利用相机或其他成像传感器捕获的真实世界的图像。
生成器网络和鉴别器网络使用在其中重复地执行步骤802-804的集合的迭代过程而被更新(即以并行或交错方式)。在步骤802中,生成器网络被用于生成一个或多个图像序列(通过下述图9所图示的方法)。在步骤803中,鉴别器网络被用于针对第一序列(或它们的样本)和第二序列中的每一个产生鉴别器分数。在步骤804中,鉴别器网络的参数(权重)被改变以增加第一图像的平均鉴别器分数与第二图像的平均鉴别器分数之间的下一迭代中的预期差异,并且/或者生成器网络的参数被修改以减小第一图像的平均鉴别器分数与第二图像的平均鉴别器分数之间的下一迭代中的预期差异。可选地每次步骤804被执行时生成器网络和鉴别器网络两者都被修改(即对生成器网络和鉴别器网络的相应更新是并行的,同时两者在每次迭代中被更新),或者替代地在每个时间步804中生成器网络和鉴别器网络中的对应一个被更新(即对生成器网络和鉴别器网络的相应更新在连续迭代中被交错)。
图9示出由包括可以为图1、图4或图5所示的循环单元1、4或5之一的循环单元的生成器网络使用以产生图像序列(例如视频序列)的方法900。该方法被用在训练过程期间图8所图示的方法800的步骤802中,并且它还跟随生成器网络的训练之后被使用。
在步骤901中,在第一个时间步,生成包括可以从分布中选择的一个或多个潜在值的循环单元的输入向量。输入向量被输入到生成器网络的循环单元。可选地,调节向量也被输入到循环单元。调节向量可以基于例如由相机捕获的真实世界的一个或多个图像。在步骤902中,循环单元生成输出h1。
在由t=2,…,T表示的进一步的时间步的系列中的每个时间步,生成器网络执行步骤903-905的集合。在步骤903中,可选地,可以将新生成的输入向量输入到循环单元。替代地,可以第二次使用在步骤901中生成的输入向量。在步骤904中,在前一时间步来自循环网络的输出ht-1被输入到循环网络。在步骤905中,循环网络生成输出ht。这可以是图像序列的第T帧。替代地,输出ht可以由(例如上述类型的)输出单元格式化以产生图像序列的第T帧。
转向图10,图示了图1、图4或图5的循环单元1、4、5的另一应用。图10示出方法1000,其由包括可以为图1、图4或图5所示的循环单元1、4或5中的一个的循环单元的分段网络(分段系统)使用以使用输入图像序列(例如视频序列;图像序列可以是例如利用相机捕获的真实世界的图像)来产生标识图像序列的每一个图像中的相应感兴趣部分的数据。在步骤1001中,在第一个时间步,基于图像序列的第一图像来生成循环单元的输入向量,并且这个被输入到循环单元。在步骤1002中,循环单元生成输出h1。在步骤1003中,循环单元生成包括指示第一图像中的感兴趣部分的数据(或可以使用分段网络的输出单元来从其获得数据)的输出。
在由t=2,...,T表示的进一步的时间步的系列中的每个时间步,分段网络执行步骤1004-1006的集合。在步骤1004中,新输入向量基于图像序列的下一图像(即序列的第t图像)被输入到循环单元。在步骤1005中,在前一时间步来自循环网络的输出ht-1被输入到循环网络。在步骤1006中,循环网络生成输出ht。这可以是标识图像序列的第T帧中的感兴趣部分的数据。替代地,输出ht可以由分段网络的输出单元格式化以产生标识图像序列的第T帧中的感兴趣部分的数据。
转向图11,图示了图1、图4或图5的循环单元1、4、7的另一应用。图11示出由包括可以为图1、图4或图5所示的循环单元1、4或5中的一个的循环单元的分类网络(分类系统)使用以使用输入图像序列(例如视频序列;图像序列可以是例如利用相机捕获的真实世界的图像)来产生输入图像序列的分类(整个序列的单一分类,或每一个图像的分类)的方法1100。在步骤1101中,在第一个时间步,基于图像序列的第一图像来生成循环单元的输入向量。在步骤1102中,循环单元生成输出h1。
在由t=2,...,T表示的进一步的时间步的系列中的每个时间步,分类网络执行步骤1103-1106的集合。在步骤1103中,新输入向量基于图像序列的下一图像(即序列的第t图像)被输入到循环单元。在步骤1104中,在前一时间步来自循环网络的输出ht-1被输入到循环网络。在步骤1105中,循环网络生成输出ht。在步骤1106中,确定图像序列中的所有图像是否都已被处理。如果不是,则方法返回到步骤1103。
替代地,如果步骤1106中的确定是肯定的,则在步骤1107中循环单元的T个输出中的一个或多个例如由分类系统的输出单元使用,以生成标识多个类中的一个或多个的数据。因此,图像的输入图像序列已被分类为属于一个或多个类。在变型中,在步骤1107中,循环单元针对每个时间步的输出被用于生成将输入图像序列的对应图像标识为属于多个类中的一个或多个的数据。
转向图12,图示了图1、图4或图5的循环单元1、4、7的另一应用。图12示出由自适应系统使用以用于增加输入图像序列的空间分辨率和/或时间分辨率的方法1200,输入图像序列可以是例如由相机捕获的真实世界的图像。自适应系统包括可以为图1、图4或图5所示的循环单元1、4或5中的一个的循环单元。在步骤1201中,在第一个时间步,基于图像序列的第一图像来生成循环单元的输入向量。在步骤1202中,循环单元生成输出h1。
在由t=2,...,T表示的进一步的时间步的系列中的每个时间步,自适应系统执行步骤1203-1205的集合。在步骤1203中,新输入向量基于图像序列的下一图像(即序列的第t图像)被输入到循环单元。在步骤1204中,在前一时间步来自循环网络的输出ht-1被输入到循环网络。在步骤1205中,循环网络生成输出ht。
针对T个步骤中的每一个的输出ht(或它的通过使用自适应系统的输出单元对其进行后处理所获得的版本)可以是具有与在对应步骤1203中输入的图像比更高的空间分辨率的单个图像。替代地,它可以是多个图像(例如具有与在步骤1203中输入的输入图像相同的空间分辨率,或者具有更高的空间分辨率);因此,输入图像序列能够被用于从循环单元的输出生成更高数量的图像,诸如具有更高的时间分辨率的图像序列。例如,如果输入图像序列的连续图像表示在相隔时段P的相应时刻的场景,则跟随在步骤1203的图像序列中的一个的输入之后在步骤1205中生成的输出可以是:(i)表示在与对应输入图像相同的时刻的场景的第一图像,以及(ii)表示随后P/2的场景的第二图像。因此,输入图像序列的时间分辨率被自适应系统翻倍。
本说明书使用关于系统和计算机程序组件“配置”的术语。对于一个或多个计算机的系统被配置成执行特定操作或动作意味着系统已在其上安装了软件、固件、硬件或它们的组合,这些软件、固件、硬件或它们的组合在操作中使系统执行操作或动作。对于一个或多个计算机程序被配置成执行特定操作或动作意味着该一个或多个程序包括指令,当由数据处理装置运行时,这些指令使装置执行操作或动作。
本说明书中描述的主题和功能操作的实施例能够被实现在数字电子电路、有形地体现的计算机软件或固件、计算机硬件,包括本说明书中公开的结构及其结构等同物、或者它们中的一个或多个的组合中。本说明书中描述的主题的实施例能够被实现为一个或多个计算机程序,即,在有形非暂时性存储介质上编码以供数据处理装置运行或者用于控制数据处理装置的操作的计算机程序的一个或多个指令模块。计算机存储介质能够是机器可读存储设备、机器可读存储基板、随机或串行存取存储器设备、或者它们中的一个或多个的组合。替代地或另外,程序指令能够被编码在人工生成的传播信号,例如,机器生成的电信号、光信号或电磁信号上,该信号被生成来对信息进行编码以用于传输到合适的接收器装置以供数据处理装置运行。
术语“数据处理装置”是指数据处理硬件并且涵盖用于处理数据的所有种类的装置、设备和机器,举例包括可编程处理器、计算机或多个处理器或计算机。装置还能够是,或者进一步包括专用逻辑电路系统,例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除了硬件之外,装置还能够可选地包括为计算机程序创建运行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或它们中的一个或多个的组合的代码。
还可以被称为或者被描述为程序、软件、软件应用、app、模块、软件模块、脚本或代码的计算机程序能够用任何形式的编程语言编写,编程语言包括编译或解释语言、或声明或过程语言;并且它能够被以任何形式部署,包括作为独立程序或者作为模块、组件、子例程或适合于在计算环境中使用的其他单元。程序可以但不需要对应于文件系统中的文件。程序能够被存储在保存其他程序或数据(例如,存储在标记语言文档中的一个或多个脚本)的文件的一部分中、在专用于所述程序的单个文件中或者在多个协调文件(例如,存储一个或多个模块、子程序或代码的部分的文件)中。计算机程序部署能够被成在一个计算机上或者在位于一个站点或者跨越多个站点分布并且通过数据通信网络互连的多个计算机上运行。
在本说明书中,术语“数据库”广泛地用于指数据的任何集合:数据不需要以任何特定方式被结构化,或者根本不被结构化,并且它能够被存储在一个或多个位置中的存储设备上。因此,例如,索引数据库能够包括数据的多个集合,其中的每一个可以被不同地组织和访问。
类似地,在本说明书中术语“引擎”广泛地用于指基于软件的系统、子系统或被编程来执行一个或多个特定功能的过程。通常,引擎将被实现为安装在一个或多个位置中的一个或多个计算机上的一个或多个软件模块或组件。在一些情况下,一个或多个计算机将专用于特定引擎;在其他情况下,多个引擎能够在一个或多个相同计算机上安装并运行。
本说明书中描述的过程和逻辑流程能够是通过一个或多个可编程计算机运行一个或多个计算机程序以通过操作输入数据并且生成输出来执行功能而执行的。过程和逻辑流程还能够由专用逻辑电路系统(例如,FPGA或ASIC)执行,或者由专用逻辑电路系统和一个或多个编程计算机的组合执行。
适合于运行计算机程序的计算机能够基于通用微处理器或专用微处理器或两者,或任何其他种类的中央处理单元。通常,中央处理单元将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的必要元件是用于执行或运行指令的中央处理单元以及用于存储指令和数据的一个或多个存储器设备。中央处理单元和存储器能够由专用逻辑电路系统补充,或者并入在专用逻辑电路系统中。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备,例如,磁盘、磁光盘或光盘,或者可操作地耦合以从该一个或多个大容量存储设备接收数据或者向该一个或多个大容量存储设备传递数据,或者两者。然而,计算机不需要具有这种设备。此外,计算机能够被嵌入在另一设备中,例如,移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收器或便携式存储设备,例如,通用串行总线(USB)闪存驱动器,仅举几例。
适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,举例包括半导体存储器设备,例如,EPROM、EEPROM和闪速存储器设备;磁盘,例如,内部硬盘或可移动盘;磁光盘;以及CD ROM和DVD-ROM盘。
为了提供与用户的交互,能够在计算机上实现本说明书中描述的主题的实施例,该计算机具有用于向用户显示信息的显示设备,例如,CRT(阴极射线管)或LCD(液晶显示器)监视器,以及用户能够通过其向计算机提供输入的键盘和点击设备,例如,鼠标或轨迹球。也能够使用其他种类的设备来提供与用户的交互;例如,提供给用户的反馈能够是任何形式的感觉反馈,例如,视觉反馈、听觉反馈或触觉反馈;并且能够以任何形式接收来自用户的输入,包括声学、语音或触觉输入。另外,计算机能够通过向由用户使用的设备发送文档并且从由用户使用的设备接收文档来与用户交互;例如,通过响应于从web浏览器接收到的请求而向用户的设备上的web浏览器发送web页面。另外,计算机能够通过向个人设备,例如,正在运行消息传送应用的智能电话,发送文本消息或其他形式的消息并且反过来从用户接收响应消息来与用户交互。
用于实现机器学习模型的数据处理装置还能够包括,例如,用于处理机器学习训练或生产,即推理、工作负载,的常见和计算密集型部分的专用硬件加速器单元。
机器学习模型能够使用机器学习框架,例如,TensorFlow框架、MicrosoftCognitive Toolkit框架、Apache Singa框架或Apache MXNet框架,来实现和部署。
能够在计算系统中实现本说明书中描述的主题的实施例,该计算系统包括后端组件,例如,作为数据服务器,或者包括中间件组件,例如,应用服务器,或者包括前端组件,例如,具有用户能够通过其与本说明书中描述的主题的实施方式交互的图形用户界面、web浏览器或app的客户端计算机,或者包括一个或多个这种后端、中间件或前端组件的任何组合。系统的组件能够通过任何形式或介质的数字数据通信,例如,通信网络来互连。通信网络的示例包括局域网(LAN)和广域网(WAN),例如,互联网。
计算系统能够包括客户端和服务器。客户端和服务器通常彼此远离并且通常通过通信网络来交互。客户端和服务器的关系借助于在相应计算机上运行并且彼此具有客户端-服务器关系的计算机程序而产生。在一些实施例中,服务器向用户设备传送数据,例如,HTML页面,例如,出于向与作为客户端的设备交互的用户显示数据并且从作为客户端的设备接收用户输入的目的。能够在服务器处从设备接收在用户设备处生成的数据,例如,用户交互的结果。
虽然本说明书包含许多特定实施方式细节,但是这些不应该被解释为对任何发明的范围或者对可以要求保护的范围构成限制,而是相反被解释为可以特定于特定发明的特定实施例的特征的描述。还能够在单个实施例中结合地实现在本说明书中在分开的实施例的上下文中描述的某些特征。相反地,还能够在多个实施例中或者在任何合适的子组合中分开地实现在单个实施例的上下文中描述的各种特征。此外,尽管特征可以在上面被描述为在某些组合中起作用并且甚至最初被如此要求保护,但是来自所要求保护的组合的一个或多个特征能够在一些情况下从组合中被去除,并且所要求保护的组合可以针对子组合或子组合的变化。
类似地,虽然以特定次序在附图中描绘并且在权利要求中叙述操作,但是这不应该被理解为要求这种操作以所示特定次序或者以顺序次序被执行,或者要求所有图示的操作都被执行以实现希望的结果。在某些情况下,多任务处理和并行处理可以是有利的。此外,上述实施例中的各种系统模块和组件的分开不应该被理解为在所有实施例中需要这种分开,并且应该理解,所描述的程序组件和系统通常能够被一起集成在一个软件产品中或者被封装到多个软件产品中。
已经描述了本主题的特定实施例。其他实施例在以下权利要求的范围内。例如,权利要求中叙述的动作能够被以不同次序执行并且仍能实现所希望的结果。作为一个示例,附图中描绘的过程不一定要求所示特定次序或顺序次序来实现所希望的结果。在一些情况下,多任务处理和并行处理可以是有利的。
Claims (23)
1.一种循环单元,所述循环单元被布置成在时间步系列的每个时间步接收对应的输入向量并且为二维像素阵列的每个像素生成具有至少一个相应值的输出,
所述循环单元在所述时间步系列的除了第一个时间步之外的每个时间步被配置成:
接收所述循环单元在前一时间步的输出,
对所述循环单元在所述前一时间步的所述输出应用取决于在所述时间步的所述输入向量并且取决于所述循环单元在所述前一时间步的所述输出的至少一个卷积,以为所述阵列的每个像素生成具有至少一个分量的翘曲数据集,以及
基于所述翘曲数据集和所述输入向量来生成在所述时间步的所述输出。
2.根据权利要求1所述的循环单元,其中所述循环单元能够操作为通过针对每个像素以相应方式对所述循环单元在所述前一时间步的所述输出进行卷积来为所述阵列的每个像素生成所述翘曲数据集的所述至少一个分量。
3.根据权利要求2所述的循环单元,其被配置成使用所述输入向量来为所述阵列的每个像素生成相应核,并且基于对应核来为每个像素生成所述翘曲数据集的所述至少一个分量。
4.根据权利要求2或权利要求3所述的循环单元,其被配置成:
生成所述翘曲数据集的所述至少一个分量作为所述循环单元在所述前一时间步的所述输出的对应分量与各自取决于所述输入向量和所述循环单元在所述前一时间步的所述输出的相应多个核的卷积的加权和,所述加权和的权重对所述阵列的不同的所述像素来说是不同的。
5.根据任一前述权利要求所述的循环单元,其被配置成生成在每个时间步的所述输出作为以下各项的和:(i)所述翘曲数据集与融合向量的逐分量乘积,以及(ii)与所述融合向量相反地变化的向量和由所述循环单元的整流线性单元生成的精化向量的逐分量乘积。
6.根据权利要求5所述的循环单元,其被配置成通过对以下项应用函数来生成所述融合向量的每个元素:第一权重向量与所述网络在所述前一时间步的所述输出和所述输入向量的级联的逐分量乘积的相应分量加上相应第一偏移值。
7.根据权利要求5所述的循环单元,其被配置成通过对以下项应用函数来生成所述融合向量的每个元素:第一权重向量与所述翘曲数据集和所述输入向量的级联的逐分量乘积的相应分量加上相应第一偏移值。
8.根据权利要求5至7中的任一项所述的循环单元,其中,所述整流线性单元被配置成通过对以下项应用整流线性函数来生成所述精化向量的每个元素:第二权重向量与所述网络在所述前一时间步的所述输出和所述输入向量的级联的逐分量乘积的相应分量加上相应第二偏移值。
9.根据权利要求5至7中的任一项所述的循环单元,其中,所述整流线性单元被配置成通过对以下项应用整流线性函数来生成所述精化向量的每个元素:第二权重向量与所述翘曲数据集的所述输出和所述输入向量的级联的逐分量乘积的相应分量加上相应第二偏移值。
10.一种用于生成表示时间进展并且由二维像素阵列的每个像素的值组成的图像序列的生成器网络,所述生成器网络包括根据任一前述权利要求所述的循环单元,所述生成器网络被配置成基于所述循环单元在所述时间步的相应一个中的相应输出来生成所述图像序列的每个图像。
11.一种用于在图像序列内标识具有一个或多个特性的每个图像的一部分的分段网络,所述分段网络包括根据权利要求1至9中的任一项所述的循环单元,所述循环单元被布置成在时间步系列的每个时间步接收包括所述图像序列的对应图像的输入向量,所述分段网络被配置成在每个时间步中从所述循环单元在对应时间步中的所述输出生成标识所述对应图像的一部分的数据。
12.一种用于生成将图像序列分类为位于类的集合中的一个或多个类中的数据的分类网络,所述分类网络包括根据权利要求1至9中的任一项所述的循环单元,所述循环单元被布置成在时间步系列的每个时间步接收包括所述图像序列的对应图像的输入向量,所述分类网络被配置成从所述循环单元在相应时间步系列的每个时间步的所述输出生成标识所述类中的一个或多个类的数据。
13.一种用于增加图像序列的空间分辨率和/或时间分辨率的自适应系统,所述自适应系统包括根据权利要求1至9中的任一项所述的循环单元,所述循环单元被布置成在时间步系列的每个时间步接收包括第一图像序列的一个图像的输入向量,所述自适应系统被配置成生成具有与所述第一图像序列的图像比更高的空间分辨率和/或时间分辨率的图像序列。
14.一种联合地训练根据权利要求10所述的生成器网络和鉴别器网络的计算机实现的方法,所述鉴别器网络用于区分由所述生成器网络生成的图像序列和不是由所述生成器网络生成的图像序列,所述方法包括:
接收表示时间进展的一个或多个第一图像序列;
以及重复地执行以下各项的迭代步骤:
由所述生成器网络生成一个或多个第二图像序列;
由所述鉴别器网络为所述第一图像序列的一个或多个图像并且为所述第二图像序列的每个图像生成至少一个鉴别器分数;以及
基于所述至少一个鉴别器分数来改变所述鉴别器网络和所述生成器网络中的至少一个的权重。
15.根据权利要求14所述的计算机实现的方法,其中,所述鉴别器网络包括用于基于时间特征进行鉴别的时空鉴别器网络和用于基于空间特征进行鉴别的空间鉴别器网络,所述时空鉴别器网络和所述空间鉴别器网络各自包括神经元的多层网络,其中每个层执行由对应权重定义的函数;
所述至少一个鉴别器分数的所述生成包括:
(i)从所述输入序列形成具有与所述输入序列比更低的时间分辨率的一个或多个图像的第一集合,并且将所述第一集合输入到所述空间鉴别器网络中,以基于所述第一集合中的每个图像的所述空间特征来确定表示所述输入序列已由所述生成器网络生成的概率的第一鉴别器分数;以及
(ii)从所述输入序列形成具有与所述输入序列比更低的空间分辨率的图像的第二集合,并且将所述第二集合输入到所述时空鉴别器网络中,以基于所述第二集合中的所述图像的所述时间特征来确定表示所述输入序列已由所述生成器网络生成的概率的第二鉴别器分数;并且
所述改变所述鉴别器网络和所述生成器网络中的至少一个的所述权重包括基于所述第一鉴别器分数和所述第二鉴别器分数来更新所述权重。
16.一种生成图像序列的方法,所述方法包括:
生成包括一个或多个对应潜在值的对应输入向量,并且将所述输入向量输入到根据权利要求10所述的生成器网络,并且
在时间步系列的除了所述系列的第一个时间步之外的每个时间步,向所述生成器网络的所述循环单元输入所述循环单元在前一时间步的输出;以及
在每个时间步,从所述生成器网络的所述输出生成所述图像序列的对应图像。
17.一种对图像序列进行分段的方法,所述方法包括:
在时间步系列的每个时间步,由根据权利要求1至9中的任一项所述的循环单元接收所述图像序列的对应图像;
在除了所述系列的第一个时间步之外的每个时间步,由所述循环单元接收所述循环单元在前一时间步的输出;
由所述循环单元生成输出;以及
在每个时间步,由数据生成单元从所述循环单元在该时间步的所述输出生成标识所述对应图像的一部分的数据。
18.一种对图像序列进行分类的方法,所述方法包括:
在时间步系列的每个时间步,由根据权利要求1至9中的任一项所述的循环单元接收所述图像序列的对应图像;
在除了所述系列的第一个时间步之外的每个时间步,由所述循环单元接收所述循环单元在前一时间步的输出;以及
数据生成单元从所述循环单元在所述时间步系列的所述输出生成标识多个类中的一个或多个类的数据。
19.一种用于增加图像序列的空间分辨率和/或时间分辨率的方法,所述方法包括:
在时间步系列的每个时间步,由根据权利要求1至9中的任一项所述的循环单元接收所述图像序列的对应图像;
在除了所述系列的第一个时间步之外的每个时间步,由所述循环单元接收所述循环单元在前一时间步的输出;以及
数据生成单元从所述循环单元在所述时间步系列的所述输出生成具有与所述第一图像序列的图像比更高的空间分辨率和/或时间分辨率的图像序列。
20.一种用于训练控制系统以用于控制与环境交互的智能体执行任务的方法,所述环境在连续时间取得多个状态中的对应一个,
所述方法包括通过在多个连续时间步的每个时间步进行以下步骤来连续地修改能够操作用于生成动作并且由多个网络参数定义的所述控制系统的神经网络:
(a)使用所述神经网络以基于所述环境在当前时间的当前观测来生成动作;
(b)使所述智能体对所述环境执行所生成的动作;
(c)获得紧随在执行了所生成的动作后的所述环境的状态的进一步观测;
(d)使用奖励计算单元来生成指示所述动作对解决所述任务的贡献程度的奖励值,所述奖励计算单元包括根据权利要求1至10中的任一项所述的循环单元;以及
(e)基于所述奖励值来修改所述神经网络的一个或多个所述网络参数。
21.一种通过根据权利要求14或权利要求15所述的方法产生的鉴别器网络或生成器网络。
22.一种包括一个或多个计算机和存储指令的一个或多个存储设备的系统,所述指令在由所述一个或多个计算机运行时使所述一个或多个计算机执行根据权利要求14-18中的任一项所述的相应方法的操作。
23.一个或多个计算机存储介质,所述计算机存储介质存储指令,所述指令在由一个或多个计算机运行时使所述一个或多个计算机执行根据权利要求14-18中的任一项所述的方法的操作。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202062971639P | 2020-02-07 | 2020-02-07 | |
US62/971,639 | 2020-02-07 | ||
PCT/EP2021/052980 WO2021156511A1 (en) | 2020-02-07 | 2021-02-08 | Recurrent unit for generating or processing a sequence of images |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115066691A true CN115066691A (zh) | 2022-09-16 |
Family
ID=74572785
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180013476.7A Pending CN115066691A (zh) | 2020-02-07 | 2021-02-08 | 生成或者处理图像序列的循环单元 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230053618A1 (zh) |
EP (1) | EP4100884A1 (zh) |
CN (1) | CN115066691A (zh) |
WO (1) | WO2021156511A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113870431A (zh) * | 2020-06-30 | 2021-12-31 | 复旦大学 | 三维模型动作迁移方法 |
US11887384B2 (en) * | 2021-02-02 | 2024-01-30 | Black Sesame Technologies Inc. | In-cabin occupant behavoir description |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DK3535705T3 (da) * | 2016-11-04 | 2022-05-30 | Deepmind Tech Ltd | Forstærkningslæring med hjælpeopgaver |
WO2019100065A1 (en) * | 2017-11-20 | 2019-05-23 | Google Llc | Image segmentation using neural networks |
-
2021
- 2021-02-08 CN CN202180013476.7A patent/CN115066691A/zh active Pending
- 2021-02-08 US US17/797,198 patent/US20230053618A1/en active Pending
- 2021-02-08 WO PCT/EP2021/052980 patent/WO2021156511A1/en unknown
- 2021-02-08 EP EP21704256.3A patent/EP4100884A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4100884A1 (en) | 2022-12-14 |
WO2021156511A1 (en) | 2021-08-12 |
US20230053618A1 (en) | 2023-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11361546B2 (en) | Action recognition in videos using 3D spatio-temporal convolutional neural networks | |
US9830709B2 (en) | Video analysis with convolutional attention recurrent neural networks | |
US20220215227A1 (en) | Neural Architecture Search Method, Image Processing Method And Apparatus, And Storage Medium | |
Salehi et al. | Generative adversarial networks (GANs): An overview of theoretical model, evaluation metrics, and recent developments | |
CN116686017A (zh) | 一种用于视频动作识别的时间瓶颈注意力体系结构 | |
EP3973459A1 (en) | Generative adversarial networks with temporal and spatial discriminators for efficient video generation | |
CN112232355B (zh) | 图像分割网络处理、图像分割方法、装置和计算机设备 | |
US20240119697A1 (en) | Neural Semantic Fields for Generalizable Semantic Segmentation of 3D Scenes | |
AU2024201361A1 (en) | Processing images using self-attention based neural networks | |
US20220237890A1 (en) | Method and apparatus with neural network training | |
CN115066691A (zh) | 生成或者处理图像序列的循环单元 | |
CN115222998B (zh) | 一种图像分类方法 | |
Huttunen | Deep neural networks: A signal processing perspective | |
CN116863194A (zh) | 一种足溃疡图像分类方法、系统、设备及介质 | |
Nguyen et al. | Video action recognition collaborative learning with dynamics via PSO-ConvNet Transformer | |
US20230351203A1 (en) | Method for knowledge distillation and model genertation | |
CN117255998A (zh) | 使用空间和时间上的注意力对来自视频序列的对象表示的无监督学习 | |
Kato et al. | Visual language modeling on cnn image representations | |
CN113516670A (zh) | 一种反馈注意力增强的非模式图像分割方法及装置 | |
Mathieu | Unsupervised Learning Under Uncertainty | |
CN117576248B (zh) | 基于姿态引导的图像生成方法和装置 | |
EP4239590A1 (en) | Method for performing image or video recognition using machine learning | |
Somani et al. | Neural Networks for Deep Learning | |
Nguyen | NEURAL NETWORKS TRAINING ACCELERATION THROUGH WEIGHT PREDICTION | |
Kong | Pixel-Level Prediction: Models and Applications |
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 |