首页> 中国专利> 通过生成数据项的编码表示来对齐序列

通过生成数据项的编码表示来对齐序列

摘要

描述了一种编码器神经网络,其可以对诸如视频帧的数据项进行编码以形成相应的编码数据项。通过确定第二序列的哪个编码数据项最接近从第一序列的每个数据项产生的编码数据项,第一数据序列的数据项与第二序列的相应数据项相关联。因此,两个数据序列被对齐。通过连续增加数据序列对之间的周期一致性的迭代过程,使用数据序列的训练集对编码器神经网络进行自动训练。

著录项

说明书

背景技术

本说明书涉及用于训练编码器神经网络以对数据项(例如,视频帧)进行编码以产生相应的编码数据项的方法和系统。其还涉及将编码器神经网络用于诸如对齐数据项的序列,搜索多个数据项的集合,注释数据项并将数据项分类为多个类别之一的目的。

神经网络是机器学习模型,其使用一层或多层非线性单元来预测针对接收到的输入的输出。一些神经网络除输出层外还包括一个或多个隐藏层。每个隐藏层的输出用作网络中下一个层,即下一个隐藏层或输出层的输入。网络的每一层根据对应的参数集合的当前值,从接收到的输入中生成输出。

一些神经网络是递归神经网络。递归神经网络是一种神经网络,其接收输入序列并从该输入序列生成输出序列。特别地,递归神经网络可以在计算当前时间步骤的输出时使用来自先前时间步骤的网络的一些或全部内部状态。递归神经网络的示例是包括一个或多个LSTM存储器块的长短期记忆(LSTM)神经网络。每个LSTM存储器块可以包括一个或多个单元,每个单元包括输入门、忘记门和输出门,其允许该单元存储该单元的先前状态,例如,用于生成当前激活或提供给LSTM神经网络的其他组件。

发明内容

本说明书描述了一种系统,该系统可以被实现为一个或多个位置中的一个或多个计算机上的一个或多个计算机程序,以及由该系统执行的方法。

在第一方面,描述了一种编码器神经网络,其可以对作为数据项序列(“数据序列”)之一的数据项进行编码,以形成对应的编码数据项。(例如,通过创建链接相关数据项的元数据的数据库)通过为第一数据序列的每个数据项确定,第二序列的哪个编码数据项最接近从第一序列的数据项产生的编码数据项,第一序列的一个或多个数据项可以与第二序列的对应数据项对齐(即与之关联)。

这里,“最接近”被定义为具有最小的距离值,其中,“距离值”是根据诸如欧几里得距离的距离度量来定义的(即,两个编码数据项的距离值是编码数据项的一个分量与另一个编码数据项的相应分量之间的差的平方的编码数据项之一的分量上的总和的平方根)。在该方法的其他形式中,可以使用另一距离度量,例如曼哈顿距离。

在优选的情况下,每个数据序列的数据项可以描述环境中在对应连续时间的对应事件。对于不同的对应数据序列,这可以是不同的环境,或者数据序列可以替代地在单个环境中描述不同的相应时段,例如,当环境中存在不同的人时。因此,对应数据序列中的数据项的关联使对应数据序列中的事件关联。特别地,编码器神经网络可以用于关联具有相同重要性的对应数据序列的事件(即,单一类型的事件)。可以使用多个(例如,大量)数据序列来训练编码器网络,每个数据序列描述发生至少一种给定类型的事件的对应时段期间的环境。从而训练编码器神经网络以识别这种类型的事件是重要的,并且在新的数据序列中识别这种类型的事件。

该环境可以是真实的或模拟的。例如,数据序列中的至少一个可由数据项组成,这些数据项是在事件发生时的连续时间的对应的序列处由一个或多个传感器(例如,相机)捕获的真实世界数据(即,描述真实世界环境)。

例如,数据项可以是由相机捕获的图像(例如,视频帧),其示出了在环境中移动的人类和/或非人类参与者,并且在这种情况下,数据序列可以是视频序列。在这种情况下,事件可以包括参与者在相应环境中的位置和/或运动。在另一示例中,数据项可以(附加地或替代地)包括由麦克风捕获的声音数据,并且在这种情况下事件可以是特定单词的说话。

数据序列中数据项的对应数目可以不同(例如,第一数据项比第二数据项多,反之亦然)。替代地或附加地,一种类型的事件可以在对应序列中的每个序列中以不同的定时发生。例如,环境中的参与者可以在由一个数据序列描述的时段的开始附近,然后在由另一数据序列描述的时段之后,执行某种类型的动作。

在数据序列的对齐之后,与序列之一的数据项相关联的注释数据(例如,文本标签或另一数据文件,诸如音频数据的一部分)可以与其他数据序列的相应的对齐的数据项相关联。这提供了一种计算有效的方式来生成针对其他数据序列的注释数据,而无需人工干预。

此过程的一个示例是视频数据的自动注释。在这种情况下,注释数据可以包括文本和/或图像,这些文本和/或图像可以与视频数据结合呈现给观看者。文本和/或图像可能例如解释了视频序列中一部分示出的一个或多个事件(例如,示出棒球比赛的视频序列中的“投手投球”)。更一般而言,如果视频序列描述的是一个或多个人从事一项活动,包括多个阶段(例如,在两个事件之间的时段定义的阶段),则注释数据可以指定任何给定的数据项与活动的哪个阶段有关(例如视频序列的帧)。替代地,文本和/或图像可以提供与视频序列的内容有关的广告数据(“可以从商店XXX获得投手制服”)。

可选地,可以在捕获数据序列之一的同时进行对齐方法(例如,对齐方法的步骤与数据捕获步骤同时进行,和/或对齐方法的步骤与数据捕获交错进行)。例如,当逐数据项捕获第一数据序列时,可以对第一数据序列的每个连续的第一数据项执行对齐方法,以将第一数据项与第二序列的数据项之一相关联,并且对齐可以在捕获第一序列的下一个数据项的同时针对每个第一数据项发生。然后,可以将赋予第二序列的数据项的注释数据赋予第一序列的关联数据项。这提供了一种实时方法,该方法可以生成注释数据以在捕获传感器数据时对其进行注释。

此过程的一个示例是,如果第一数据项是表征真实世界环境的传感器数据,并且在捕获传感器数据时,将生成相应的注释数据,并将其用于生成控制数据以修改环境,例如,通过在环境中移动(例如,在环境中移动工具)来控制在环境中运行的代理。例如,控制数据可以通过控制神经网络基于注释的数据并且可选地还基于第一数据项和/或从第一数据项产生的编码数据项来生成。可选地,控制神经网络可以基于奖励而被连续地细化,该奖励是使用取决于控制数据的奖励函数计算的,该奖励函数指示控制数据对代理执行任务的控制程度。换句话说,本方法可以用作强化学习过程的一部分。例如,注释数据可以用于识别在现实环境中已经到达任务的多个阶段中的哪个阶段。基于确定的阶段,细化控制神经网络的过程可能会有所不同。例如,基于所确定的阶段,可以使用不同的对应奖励函数来执行奖励的计算。

在一些实现方式中,该代理是与真实世界环境交互的机电代理。例如,代理可以是与环境交互以完成特定任务的机器人或其他静态或移动机器,例如,将感兴趣的对象定位在环境中或将感兴趣的对象移动到环境中的指定位置或导航到环境中的指定目的地;或代理可以是在环境中航行的自主或半自主的陆地或空中或海上交通工具。在某些其他应用中,代理可以控制真实世界环境中的动作,包括例如数据中心或电网干线的电力或水分配系统,或制造工厂或服务设施中的设备的项目。然后,观察可能与工厂或设施的运行有关。例如,观察可以包括对由设备使用的电力或水的观察,或者对发电或分配控制的观察,或者对资源使用或废物产生的观察。代理可以例如通过减少资源使用来控制环境中的动作以提高效率,和/或例如通过减少浪费来减少环境中运行的环境影响。动作可以包括控制或将操作条件强加于工厂/设施的设备的项目上的动作,和/或导致工厂/设施的操作设置发生变化的动作,例如,调整或打开/关闭工厂/设施的组件。

替代地,在家庭实现方式中,如果捕获到视频序列,该视频序列示出了一个人正在执行烹饪任务(即,混合食物配料并烹饪它们),则该方法可以用于获取注释数据,该注释数据指示该人何时完成了任务的某个阶段(例如,混合配料),并且注释数据可用于生成控制数据以控制烤箱加热。

可选地,根据第一方面的方法可以包括:确定距离值中的一个或多个(例如,第一数据序列的一个或多个编码数据项与诸如预定义的“理想”数据序列的第二数据序列的编码数据项的距离值)符合异常标准,如果符合标准,则发送警告消息(例如,发送给用户)。例如,异常标准可以是对于一定数量的数据项,最小距离值在阈值之上,指示第一数据序列和第二数据序列的关联数据项不足够相似以使关联可靠。

在第二方面,说明书描述了编码器神经网络的自动生成,该编码器神经网络适合用作第一方面的编码器神经网络,但是也具有其他用途。编码器神经网络可被自动训练,即,除了可选地启动该方法之外,无需人工干预。编码器神经网络用于转换输入数据项以生成编码数据项,该编码数据项是该数据项的表示。编码器神经网络可以被配置为接收任何种类的数字数据项作为输入,例如数据项,该数据项是在特定时间由至少一个传感器(例如视频相机)捕获的传感器数据。

可以使用包括多个数据序列(例如由其组成)的训练数据来执行训练过程。数据序列都可以是描述特定活动的数据序列。例如,数据序列可以是描述特定活动(例如,任务或体育活动)的执行的视频序列。在这种情况下,由编码器神经网络产生的数据项表示强调了视频序列之间共有的特征,换句话说,对活动很重要的特征。

编码器神经网络可以基于周期一致性原理以“自我监督”的方式生成。即,训练基于成本函数,该成本函数与周期一致性值相反地变化。即,基于从多个数据序列的对应数据项生成的编码数据项来获得周期一致性的度量,并将其用于形成成本函数。例如,周期一致性值的负值可以用作成本函数。

周期一致性值可以是多个数据序列中的第一个的任何给定数据项满足“一致性标准”的可能性的度量。一致性标准是,给定数据项是第一序列的数据项,对于其,对应的编码数据项最接近第二序列的特定数据项的编码数据项。特定数据项是第二序列的数据项,对于其,对应的编码数据项最接近从给定数据项获得的编码数据项。在此,根据距离度量(例如欧几里得距离(或曼哈顿距离))定义紧密度。

周期一致性值可以例如是该一致性标准为真的第一序列的数据项的比例。

可以通过以下方式获得周期一致性值:从多个数据序列中重复选择两个序列(例如,随机地),分别使用两个选择的数据序列作为第一和第二序列,从第一数据序列中选择数据项,并测量一致性标准为真的所选项目的比例。

在另一个示例中,从第一数据序列的给定数据项获得的编码数据项可以用于为第二数据序列的每个数据项定义对应的权重α,其中权重α是给定数据项的编码数据项和从第二序列的数据项获得的编码数据项之间的距离的递减平滑函数。权重可用于为给定的编码数据项定义“软最近邻居”,作为与第二序列的数据项相对应的编码数据项的加权和。

可以以多种方式使用软最近邻居来获得周期一致性值。一种使用它的方式是,将成本函数定义为值

在另一示例中,可以使用第一数据序列内的数据项的位置来定义周期一致性值。给定数据项的此位置可以定义为对数据序列中的数据项进行计数的整数索引的相应值(例如,数据序列中第一数据项的整数索引可以具有值1;数据序列中第二数据项的整数索引可以具有值2等)。实现此概念的一种方法是使用软最近邻居为第一序列的每个数据项生成相似性值β(基于软最近邻居与从第一序列的数据项获得的编码数据项之间的距离),然后基于相似值沿第一数据序列的分布来获得周期一致性值。例如,分布可能在第一数据序列中具有平均位置μ(如果分布是高斯分布,则可能是分布的最大值;实际上,该值μ可以定义为分布的最大值而不是平均值),可以将其视为给定数据项的估算位置。成本函数可以基于位置μ自给定数据项的位置的距离。其可以进一步包括方差项,该方差项指示相似性值的分布的方差。

成本函数可以可选地包括其他项,例如,“随机学习”网络的成本函数和/或“时间对比网络”的成本函数。

如上所述,本公开第二方面的训练编码器神经网络的一个应用是作为第一方面中使用的编码器神经网络。其的另一个应用是作为分类神经网络的组件。分类神经网络包括训练的编码器神经网络以及具有网络参数的输出神经网络。当数据项输入到编码器网络时,输出神经网络可被安排为接收编码器网络的输出(即数据项的表示)作为输入,并从中生成指示数据项属于一组类之一的输出数据。可以通过监督学习来训练输出神经网络。在这段时间期间,编码器神经网络可能不会被进一步训练。

类似于编码器神经网络,分类神经网络可以配置为接收任何类型的数字数据输入,并基于输入生成任何类型的得分、分类或回归输出。

例如,如果分类神经网络的输入是图像或已从图像中提取的特征,则分类神经网络为给定图像生成的输出可能是一组对象类别中每个类别的得分,每个得分代表该图像包含属于该类别的对象的图像的估计可能性。

作为另一示例,如果到分类神经网络的输入是一种语言的文本序列,则由分类神经网络生成的输出可以是另一种语言的文本段的组中的每一个的分数,其中每个分数代表其他语言的文本段是将输入文本正确翻译成其他语言的估计的可能性。

作为另一示例,如果分类神经网络的输入是表示说出的话语的序列,则分类神经网络生成的输出可以是文本段的组中的每一个的分数,每个分数代表文本段是话语的正确笔录的估计的可能性。

本说明书中描述的主题可以在特定实施例中实现,以实现以下优点中的一个或多个。

提供了一种编码器网络,该编码器网络能够从诸如捕获的真实世界图像的数据项中提取与活动有关的信息。无需手动标记的训练数据即可对编码器神经网络进行训练。

训练的编码器神经网络可用于基于输入图像搜索视频序列,以找到与输入图像最接近地对应的视频序列帧,特别是序列帧,其作为输入帧对于活动具有相同的意义。通过这种方式,可以提供视频的自动搜索。

此外,其能够提供数据序列的一个或多个数据项的自动注释,例如,视频片段的库。在视频示出环境(真实或模拟)的情况下,注释可用于影响环境,例如,以使环境中的代理的活动能够更成功地执行。

此外,本公开提供了一种分类神经网络,该分类神经网络可以被训练以使用比已知分类神经网络少的标记训练数据来生成表征输入数据项的数据标签。

附图说明

现在将参考以下附图解释本文档中描述的概念的实现方式的示例:

图1示出了包括编码器神经网络的计算机系统;

图2示出了图1的系统的输出;

图3示出了由图1的系统执行的方法;

图4示出了周期一致性表示学习的概念;

图5示出了执行以生成图1的系统的编码器神经网络的方法;

图6示出了可选地在图5的方法中采用的过程;以及

图7示出了包括编码器神经网络的分类神经网络。

具体实施方式

首先参考图1,示出了采用本文中公开的一些概念的计算机系统100。系统100包括视频相机101,视频相机101用于生成由帧序列(即,图像){r

注意,图像{r

该系统还包括数据库102,该数据库存储预先存在的视频序列P。视频序列P由图像序列{p

在系统100的变形中,视频序列R和先前存在的视频序列P可以被不是视频序列的数据序列代替。每个数据序列R或P仍然由数据项的有序序列组成,并且这些数据项仍可以可选地是图像,但是每个数据项序列均不构成视频序列。例如,第一数据序列和第二数据序列可以由在对应时间的有序序列上捕获,而不是由同一相机捕获的对应环境的图像组成。此外,至少一个序列的每个数据项可以包括相应环境的多个图像,例如由配置为对相应环境成像的多个对应相机捕获的图像。替代地,每个数据序列可以由数据项组成,每个数据项包括或者由不是图像数据的数据(例如由不是相机的传感器收集的传感器数据)组成,但是仍然表征在相应的时间在相应的环境中的事件。例如,每个数据项可以表示在相应的时间在相应的环境中由麦克风捕获的声音。第一和第二环境优选地是真实世界环境,尽管原则上一个或两者都可以是由计算机系统模拟的环境。

一些或全部图像{p

每个第二数据项{p

通常,在该过程完成之后,将第一数据序列S的第一数据项[r

第一编码数据项{w

每个第一编码数据项w

处理器105识别(“确定”)对于d

处理器105与数据库102通信,以确定所确定的第二数据项p

可以从系统100(例如,从数据库106)发送关联的结果(包括注释数据,如果有的话),以便以多种方式使用。例如,如果视频序列R示出了在第一环境中执行任务(例如,在第一环境中导航,或在第一环境中进行另一种移动,例如在第一环境中操纵工具)的代理(例如,诸如机器人的机电代理),注释数据可以标记任务的阶段。该信息可以用作控制程序的输入,该控制程序控制代理执行任务,例如指示代理已成功完成任务的一个阶段,例如现在应控制其执行任务的另一阶段。如果仍通过强化学习过程来学习任务,则注释数据可用于控制代理的奖励功能。

在另一种可能性中,视频序列R可以示出至少一个人在第一环境中移动,并且注释数据可以指示该人的动作使得应该以某种方式控制在第一环境中或附近的设备。在这种情况下,系统100的输出可以是到设备的控制信号。例如,如果系统100与视频序列R的某个视频图像相关联的注释数据指示人类已经完成了准备食物的某个阶段,则系统100的输出可用于控制烤箱烹饪食物。在另一示例中,注释数据可以用于生成评分数据(例如,以显示给人),以指示人执行任务的特定阶段的程度(例如,以多快的速度)。

由系统100执行的将每个第一数据项与相应的确定的第二数据项相关联的过程在图2中示出。这将编码器神经网络的输出空间(“学习的嵌入空间”)表示为两维空间。注意,尽管编码器神经网络的输出实际上原则上可以仅是二维的(即,仅包括两个数值),但是更优选地,其维度大于二维,并且在后一种情况下,图2中的表示是示意性的。对应于第一数据序列中的对应第一数据项的第一编码数据项在图2中被示为空心圆2a,2b,2c,2d,2e,2f,2g,其中圆之间的实线示出了相应的第一数据项的序列,例如第一数据序列中的第一第一数据项对应于第一第一编码数据项2a。与第二数据序列中的对应第二数据项相对应的第二编码数据项在图2中被示为实心圆21a,21b,21c,21d,21e,21f,21g和21h,其中圆之间的实线示出了相应的第二数据项的序列,即,第二数据序列中的第一第二数据项对应于第一第二编码数据项21a。

虚线示出了处理器105获得的第一数据项和相应的第二数据项之间的关联。例如,处理器105将与第一编码数据项2b相对应的第一数据项与与第二编码数据项21b相对应的第二数据项相关联。这是因为,在图2所示的所有第二编码数据项中,第二编码数据项21b在学习的嵌入空间中最接近第一编码数据项2b。

每个第一编码数据项的第一数据项与相应的第二数据项相关联。注意,没有第一数据项与相应于第二编码数据项21d的第二数据项相关联。

更一般地,第一数据项和第二数据项的数量可以不同,其中一个大于另一个。

一个以上的第一数据项也可能与单个第二数据项相关联。如果存在多个第一数据项,其相应的第一编码数据项具有与其最接近的第二编码数据项相同的第二编码数据项,则会发生这种情况。例如,第一编码数据项2f,2g都具有第二编码数据项21g作为它们最接近的第二编码数据项。

由图1的系统100执行的过程300在图3中示出。在步骤301中,编码器神经网络对第一数据序列R的每个第一数据项进行编码以形成相应的第一编码数据项。

在步骤302中,编码器神经网络对第二数据序列P的每个第二数据项进行编码,以形成相应的第二编码数据项。

注意,步骤302可以在步骤301之前或与其同时执行。在以上给出的图1的说明中,步骤302被解释为在步骤301之前。

在一种可能性中,方法300与第一数据序列R的第一数据项的捕获同时执行(例如,通过视频相机101和/或通过另一相机和/或传感器)。在这种情况下,通常在捕获第一数据序列R之前执行步骤302,并且与捕获第一数据序列R同时执行该方法的步骤301和303,例如在捕获第一数据序列R的每个连续数据项的同时,针对第一数据序列R的先前数据项执行方法300。

在步骤303中,方法300从第一数据序列R中选择第一数据项。如果与方法300的执行同时捕获第一数据序列R,则这可以是最近捕获的第一数据项。

在方法300的变形中,编码步骤301可以替代地在步骤303之后执行。在任一情况下,当针对所选择的第一数据项执行步骤301时,编码器神经网络生成相应的第一编码数据项。

在步骤304中,方法300为多个第二数据项中的每一个确定对应的距离值,该距离值指示与所选择的第一数据项相对应的第一编码数据项与相应的第二编码数据项之间的距离。该距离值是根据距离度量来计算的(例如,其可以是相应的第一编码数据项和相应的第二编码数据项之间的欧几里得距离)。

注意,可选地,可以针对所有第二数据项执行步骤304。替代地,为了减少计算负担,可以仅针对满足特定标准的第二数据项执行。例如,可以仅对包含第二数据项中的指定的一个的第二数据序列P中的一定范围内的第二数据项执行步骤304。所指定的第二数据项可以例如是先前已经与第一数据项相关联的第二数据项,该第一数据项是视频序列R中所选择的第一数据项的前身。

在步骤305中,方法300确定(识别)在步骤304中使用的多个第二数据项中相应距离值最低的第二数据项。

在步骤306中,方法300将在步骤303中选择的第一数据项与在步骤305中确定的第二数据项相关联。该关联可以存储在数据库106中。

在步骤307中,将在步骤306中确定的与第二数据项相关联的任何注释数据与在步骤303中选择的第一数据项相关联。

在步骤308中,确定是否已经达到终止标准。例如,终止标准可以取决于是否已经从系统100外部接收到指示在第一环境中执行的任务已经结束或者第一数据序列R已经终止的信号。替代地或附加地,终止标准可以取决于在步骤306中确定的第二数据项。例如,终止标准可以是所确定的第二数据项是否在第二数据序列P中的某个范围内(例如是否是第二数据序列P中的最后的第二数据项)。

如果不满足终止标准,则方法300可以返回到步骤303,以选择新的第一数据项(例如,在上次执行步骤303选择的第一数据项之后的第一数据序列R中的下一个第一数据项)。如果满足终止标准,则方法300结束。

现在我们转向对用于生成图1所示的系统100的编码器神经网络103的方法的讨论。基于训练数据对编码器神经网络进行训练,该训练数据至少是两个数据序列(即数据项的序列,例如视频帧),以示出在相同或不同环境中的事件的相似序列。例如,事件的每个序列可以是至少一个人和/或机电代理执行任务,例如具有多个阶段的任务的尝试,这些阶段在每个数据序列中以相同的顺序执行。通常,训练集中的数据序列的数量远远大于两个。

一般而言,训练是通过使用学习的嵌入空间中的最小距离来最大化可以在两个数据序列之间一对一映射的点的数量来完成的。更具体地说,这是通过最大化两个序列之间的周期一致性帧的数量来完成的。该概念在图4中示出。如图2所示,图4的二维区域示出了嵌入空间(即,具有是编码器神经网络的输出的对应数字分量的尺寸的空间)。如果编码器神经网络的输出仅由两个数字组成,则嵌入空间是二维的,如图2和4所示,但是如果编码器神经网络的输出包括两个以上的数字(通常是这种情况),则图2和图4是示意图。

空心圆4a,4b,4c,4d,4e,4f,4g示出了未训练的(或半训练的)编码器神经网络在其分别接收数据序列中的第一个的数据项时的输出。即,空心圆4a,4b,4c,4d,4e,4f,4g示出了用于第一数据序列的对应数据项的对应编码数据项。实心圆41a,41b,41c,41d,41e,41f示出了第二数据序列的对应数据项的对应编码数据项。

在考虑到最接近它的第二编码数据项(即第二编码数据项41c)的意义上,第一编码数据项4c是周期一致的,最接近该第二编码数据项41c的第一编码数据项是第一编码数据项4c本身。换句话说,如果一个在第一编码数据项4c开始,并移动到最近的第二编码数据项(即第二编码数据项41c),然后移动到最近的第一编码数据项,则其返回其开始的相同的第一编码数据项4c。

相反,第一编码数据项4g不是周期一致的。这是因为,考虑到最接近其的第二编码数据项(第二编码数据项41e),最接近该第二编码数据项41e的第一编码数据项是第一编码数据项4f。换句话说,如果一个在第一编码数据项4g开始,并移动到最近的第二编码数据项(即第二编码数据项41e),然后移动到最近的第一编码数据项,则其到达第一编码数据项4f,而不是开始的第一编码数据项4g。

当然,如果改变编码器神经网络102的参数,则第一和第二编码数据项在嵌入空间中的位置也改变。一般而言,对编码器神经网络102进行迭代训练,以增加周期一致的第一编码数据点的数量。

让我们考虑训练集中表示为S和T的两个数据序列(例如视频序列)。数据序列S是N个数据项{s

为了检查点u

参考图5,示出了方法500的流程图,该方法可以由一个或多个位置中的一个或多个计算机(例如,由通用计算机系统的一个或多个处理器)执行以生成编码器神经网络。

在方法500的步骤501中,从数据序列的训练集中选择(例如,随机地)两个数据序列。这两个数据序列标记为S和T。

在步骤502中,使用编码器神经网络的当前版本来获得第一数据序列S的每个数据项的对应编码数据项{u

在步骤503中,使用{u

在步骤504中,确定对编码器神经网络的参数θ的更新以降低成本函数。

在步骤505中,确定是否已经满足终止标准(例如,已经执行了步骤501-504的集合的次数大于阈值,和/或执行了上一次步骤504的成本函数低于执行前一时间步骤504的成本函数的次数小于阈值量)。如果是这样,则方法500终止。如果否,则方法500使用更新的编码器神经网络作为新的当前编码器神经网络循环回到步骤501,以从训练集中选择两个新的数据序列S和T。

在方法500的一种形式中,在步骤502中可以仅采用一个或两个序列S,T的数据项的选定子集(例如,每次执行步骤502时都使用不同的子集)。在这种情况下,在执行步骤503-505之后,仅可以使用该数据项的子集的编码数据项。例如,步骤502可能仅涉及第一数据序列S的选定单个数据项,以及第二数据序列T的一些或全部数据项。每次执行步骤502时,S的选定单个数据项可能是不同的。

原则上,在方法500中,可以将S和/或T中的周期一致性点的数量直接用作周期一致性值。然而,优选地,使用可区分的度量作为在步骤504中定义的成本函数,并且下面介绍两种这样的度量。

第一种可能性是将周期一致性值定义为“循环返回分类”。即,对于在步骤502中生成的一个或每个编码数据项u

该变量α

然后确定U中的哪个编码数据项是

步骤503对S的每个数据项采用地面真值标签y,除了地面真值标签y

尽管此循环返回分类定义了可区分的周期一致性损失函数,但并未考虑从u

注意,β是相似性随时间的离散分布,我们希望它在时间上在第i个索引附近示出峰值行为。

因此,步骤503通过得到β的分布的平均位置μ(可能是分布的最大值)及其标准偏差σ并形成成本函数,对β强加高斯先验(如图6右上方所示),以使步骤504最小化归一化平方距离

其中

注意,方法500优选地最小化方差的对数,因为发现仅使用方差更容易发生数值不稳定性。

L

图5的方法是使用Tensorflow软件库,使用视频序列作为数据序列,通过实验实现的。训练集中每个视频序列的所有帧大小都调整为224x224像素。ImageNet预先训练的特征与ResNet-50架构一起使用,以从Conv4c层(一种众所周知的卷积层类型)的输出中提取特征。提取的卷积特征的大小为14x14x1024。由于数据集的大小,训练最初使用沿VGG-M(由VGG(视觉几何组)建议的已知深度学习模型)的线的较小模型。该网络以与ResNet-50相同的分辨率接受输入,但深度仅为7层。该基本网络产生的卷积特征的大小为14x 14x 512。这些特征作为输入被提供给编码器神经网络。

编码器神经网络包括时间堆叠层,这些时间堆叠层沿时间维度堆叠了k个上下文帧,以生成大小为kx14x14xc的输出。接下来是3D卷积,以使用[3x3x3,512]x2参数聚集时间信息,以生成大小为kx14x14x14x512的输出。然后,编码器神经网络通过使用3D最大池化来减少维度,以生成具有512个参数的输出,然后是两个完全连接的层(具有[512]x2个参数),以生成具有512个值的输出。最终,编码器网络使用线性投影来获得每个帧的128维编码(嵌入)。

通过训练编码器神经网络,然后将其应用在根据图1和图3的方法300的系统中,例如,将来自训练集的一个视频作为视频序列P,将另一个捕获的视频序列作为视频序列R,可以在没有监督的情况下在时间上对齐视频序列P和R(即,在对应于第二视频序列中对应时间的一个视频序列中定义时间)。这样就可以将文本数据或注释数据的其他形态从一个视频传输到另一个视频(例如,从P到R)。例如,这提供了一种涉及很少或没有人为交互的技术,用于将文本注释从单个视频序列传输到相关视频的整个数据库。替代地或附加地,注释数据的其他形态可以被传输。例如,注释数据可以是声音数据的形式(例如,标注视频序列中所示的过程的阶段的语音数据,或者适合于该过程的声音效果)。

对齐视频的另一应用是通过将视频序列R中的帧确定为与视频序列P的定义帧相对应的帧,以及将帧的集合提取为基于确定的帧的帧的集合从数据序列R中提取一个或多个帧的集合。

对齐视频的另一应用是异常检测。由于对齐方法倾向于在嵌入空间中产生行为良好的最近邻居,因此使用该空间中距理想轨迹的距离来检测视频中的异常活动。具体地,确定嵌入空间中的视频R的轨迹(即,编码数据项的相应序列)是否满足指示该轨迹与嵌入空间中的预定“理想”轨迹P偏离太大的偏离标准。R的任何帧(对于其相应的编码数据项满足此标准)都标记为异常。

对齐方法的另一应用是允许视频P和R同步地回放,即使得两个视频中的相应事件同时显示给用户。换句话说,基于通过图3的方法产生的对齐,视频P和R之一的速度被用于控制视频P和R中的其他的呈现的速度,例如使得P和R可以由显示系统同时显示,其中同时(根据对齐)显示相应的事件。

编码器神经网络的另一应用如图7所示。在这种情况下,数据项71(例如图像(例如,由相机捕获的真实世界))被输入到包括编码器神经网络72(其形式与图1的编码器神经网络102相同)和输出神经网络73的分类神经网络中。编码器神经网络72的输出传递到输出神经网络73。输出神经网络73被训练以对训练的编码器神经网络72的输出进行分类,从而生成指示数据项71处于多个类别之一中的输出。因为已经基于在多个对应环境中和/或在不同对应时间捕获的视频序列对编码器神经网络进行了训练,但是在接收示出了过程中的事件的数据项71后所有都表征了在每个那些环境中和/或在那个时间执行的通用过程,编码器神经网络72倾向于输出指示表征过程的相应阶段的特征的数据,而不是随环境而变化并且可以独立于过程的特征的数据。因此,编码器神经网络72提供数据项71的预处理,这使得输出神经网络73更容易将数据项分类为与过程有关的类别。例如,这些类别可以涉及过程的对应阶段,使得输出神经网络73能够生成指示数据项71涉及过程的哪个阶段的数据。

对于被配置为执行特定操作或动作的一个或多个计算机的系统,意味着该系统已在其上安装了软件、固件、硬件或它们的组合,这些软件、固件、硬件或它们的组合在操作中导致系统执行这些操作或动作。对于将被配置为执行特定操作或动作的一个或多个计算机程序,意味着该一个或多个程序包括指令,该指令在由数据处理装置执行时使该装置执行该操作或动作。

本说明书中描述的主题和功能操作的实施例可以在数字电子电路中,在具体体现的计算机软件或固件中,在计算机硬件中实施,包括本说明书中所公开的结构及其等同结构,或其中一个或多个的组合中实施。本说明书中描述的主题的实施例可以被实现为一个或多个计算机程序,即,在有形的非暂时性程序载体上编码的计算机程序指令的一个或多个模块由数据处理装置执行或控制数据处理装置的操作。替代地或附加地,程序指令可以被编码在人工生成的传播信号上,例如机器生成的电,光或电磁信号,其被生成以对信息进行编码以传输到合适的接收器装置以通过数据处理装置来执行。所述计算机存储介质可以是机器可读存储设备,机器可读存储基板,随机或串行访问存储器设备或它们中的一个或多个的组合。但是,计算机存储介质不是传播的信号。

术语“数据处理装置”涵盖用于处理数据的所有类型的设备,装置和机器,例如包括可编程处理器,计算机或多个处理器或计算机。该装置可以包括专用逻辑电路,例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除了硬件之外,该装置还可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件,协议栈,数据库管理系统,操作系统或它们中的一个或多个的组合的代码。

可以以任何形式的编程语言(包括编译或解释的语言或声明性或程序语言)编写计算机程序(也可以称为或描述为程序,软件,软件应用,模块,软件模块,脚本或代码),并且可以以任何形式进行部署,包括作为独立程序或作为模块,组件,子例程或适合在计算环境中使用的其他单元。计算机程序可以但不必对应于文件系统中的文件。程序可以存储在保存其他程序或数据的文件的一部分中,例如存储在标记语言文档中的一个或多个脚本,专用于所讨论程序的单个文件中,或多个协调文件中,例如,存储一个或多个模块,子程序或代码部分的文件。可以将计算机程序部署为在一个计算机上执行,或者在位于一个站点上或分布在多个站点上并通过通信网络互连的多个计算机上执行。

如本说明书中所使用的,“引擎”或“软件引擎”是指由软件实现的输入/输出系统,其提供与输入不同的输出。引擎可以是编码的功能块,例如,库、平台、软件开发套件(“SDK”)或对象。可以在任何适当类型的计算设备上实现每个引擎,例如,服务器、移动电话、平板计算机、笔记本计算机、音乐播放器、电子书阅读器、便携式计算机或台式计算机、PDA、智能电话或其他固定或便携式设备,其包括一个或多个处理器和计算机可读介质。另外,两个或更多个引擎可以在相同的计算设备上或在不同的计算设备上实现。

本说明书中描述的过程和逻辑流程可以由一个或多个可编程计算机执行,该可编程计算机执行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程也可以由专用逻辑电路执行,并且装置也可以实现为专用逻辑电路,例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路)。例如,过程和逻辑流程可以由图形处理单元(GPU)执行并且装置也可以被实现为图形处理单元(GPU)。

例如,适合于执行计算机程序的计算机可以基于通用或专用微处理器或两者,或者基于任何其他种类的中央处理单元。通常,中央处理单元将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行或执行指令的中央处理单元以及用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括大容量存储设备或可操作地耦合以从一个或多个用于存储数据的大容量存储设备(例如,磁,磁光盘或光盘)接收数据或将数据传输到一个或多个大容量存储设备。但是,计算机不必具有此类设备。此外,计算机可以嵌入到另一设备中,例如,移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏机、全球定位系统(GPS)接收器或便携式存储设备,例如通用串行总线(USB)闪存驱动器等。

适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移动盘;磁光盘;以及CD ROM和DVD-ROM盘。处理器和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。

为了提供与用户的交互,可以在具有用于向用户显示信息的显示设备(例如,CRT(阴极射线管)或LCD(液晶显示器)监视器)以及用户通过其向计算机提供输入的键盘和指示设备(例如,鼠标或轨迹球)的计算机上实现本说明书中描述的主题的实施例。其他种类的设备也可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。另外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户进行交互;例如,通过响应于从网络浏览器接收到的请求,将网页发送到用户的客户端设备上的网络浏览器。

本说明书中描述的主题的实施例可以在包括后端组件(例如,作为数据服务器)或包括中间件组件(例如,应用服务器)或包括前端组件(例如,具有图形用户界面或网络浏览器(用户可以通过该网络浏览器与本说明书中描述的主题的实现方式进行交互)的客户端计算机),或者一个或多个此类后端、中间件或前端组件的任何组合的计算系统中实现。系统的组件可以通过数字数据通信的任何形式或介质(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”),例如因特网。

该计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器之间的关系是通过在各自计算机上运行并彼此具有客户端-服务器关系的计算机程序产生的。

尽管本说明书包含许多特定的实现方式细节,但是这些细节不应解释为对任何发明或可要求保护的范围的限制,而应解释为对特定发明的特定实施例而言特定的特征的描述。在单独的实施例的上下文中在本说明书中描述的某些特征也可以在单个实施例中组合地实现。相反,在单个实施例的上下文中描述的各种特征也可以分别在多个实施例中或以任何合适的子组合来实现。而且,尽管以上可以将特征描述为以某些组合起作用并且甚至最初如此声称,但是在某些情况下可以从组合中切除所要求保护的组合中的一个或多个特征,并且所要求保护的组合可以针对子组合或子组合的变形。

类似地,虽然在附图中以特定顺序描绘了操作,但是这不应被理解为要求以所示的特定顺序或以连续的顺序执行这样的操作,或者执行所有示出的操作以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中都需要这种分离,并且应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中或打包成多个软件产品。

已经描述了主题的特定实施例。其他实施例在所附权利要求的范围内。例如,权利要求中记载的动作可以以不同的顺序执行并且仍然实现期望的结果。作为一个示例,附图中描绘的过程不一定需要所示的特定顺序或连续顺序来实现期望的结果。在某些实现方式中,多任务和并行处理可能是有利的。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号