使用神经网络的场景理解和生成的制作方法

文档序号:18516688发布日期:2019-08-24 09:30阅读:201来源:国知局
使用神经网络的场景理解和生成的制作方法

本说明书涉及使用神经网络处理图像。

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



技术实现要素:

本说明书描述了实现为在一个或多个位置中的一个或多个计算机上的计算机程序的场景理解系统,其生成环境的语义表示。系统接收表征环境的观察,每个观察包括环境的图像和对应视点数据。例如,环境可以是场景,例如,包含对象的3d房间,图像可以是场景的图像,并且视点数据可以为每个图像识别捕获图像的相机的位置。该系统通过用观察神经网络处理观察来生成环境的语义表示,即,从观察图像的特定像素值抽象出的环境的基础内容的描述。系统不对语义表示施加任何明确的约束或结构,但是系统被训练以生成足够表达以渲染从任意视点数据的环境的新图像的语义表示。

根据第一方面,提供了一种场景理解系统,其被配置用于:接收表征特定场景的多个观察,每个观察包括特定场景的图像和识别捕获图像的相机的位置的数据;使用观察神经网络处理多个观察中的每一个,其中,观察神经网络被配置为对于观察中的每一个:处理观察以生成观察的低维表示;通过组合观察的低维表示来确定特定场景的数字表示;以及提供特定场景的数字表示,用于表征特定场景的内容。

这种方法的一些优点将在后面描述。由方法/系统的实现方式产生的表示具有许多应用,例如作为一般图像分析/预测系统或作为强化学习系统的前端。

在一些实现方式中,数字表示是表示特定场景的基础内容的数值的集合。

在一些实现方式中,数字表示是特定场景的语义描述,如先前所描述的。

在一些实现方式中,组合观察的低维表示包括:对低维表示求和以生成数字表示。

在一些实现方式中,该系统还被配置为:接收识别新相机位置的数据;以及使用生成器神经网络处理识别新相机位置的数据和特定场景的数字表示,以生成从新相机位置处的相机拍摄的特定场景的新图像。如本文所用,对相机位置的指代应被解释为包括定位和/或观看方向。因此,新相机位置可以包括新相机定位和新相机观看方向或光轴方向中的一个或两个。例如,生成器神经网络可以确定潜在变量集合上的先验分布,以确定新图像(或者如稍后所述,视频帧或裁剪)的像素值。潜在变量可以包括由生成器神经网络推断的变量,并且可以以识别新相机位置的数据和特定场景的数字表示为条件。

因此,在一些实现方式中,生成器神经网络被配置为:在多个时间步长中的每一个处:采样时间步长的一个或多个潜在变量,并通过使用深度卷积神经网络处理隐藏状态、采样的潜在变量、数字表示和识别新相机位置的数据来更新时间步长为止的隐藏状态,以生成更新的隐藏状态;并且在多个时间步长中的最后的时间步长之后:在最后的时间步长之后,从更新的隐藏状态生成特定场景的新图像。

在一些实现方式中,在最后的时间步长之后从更新的隐藏状态生成特定场景的新图像包括:在最后的时间步长之后,从更新的隐藏状态生成像素足够的统计;使用像素足够的统计对新图像中诸如像素的颜色值的像素值进行采样。稍后将更详细地描述示例像素足够的统计。

在一些实现方式中,生成器神经网络和观察神经网络已经与后验神经网络联合训练,所述后验神经网络被配置为在训练期间接收多个训练观察和目标观察,并且生成定义一个或多个潜在变量上的分布的后验输出。使用后验模型是可选的。然而,当前梯度可以反向传播到后验神经网络以及观察和生成神经网络中,以便它学习潜在变量上的后验分布。当用于推断新图像时,后验输出可用于例如通过从后验分布中采样生成像素值。使用后验神经网络可以帮助提供更准确的图像重建。这种后验模型可以具有下面描述的第二和第三方面。

在一些实现方式中,已经训练观察神经网络以生成数字表示,该数字表示与特定相机位置结合,可以由生成器神经网络使用以生成从特定的相机位置所拍摄的特定场景的特定图像的准确重建。

根据第二方面,提供了一种场景理解系统,其被配置用于:接收表征特定视频的多个观察,每个观察包括来自特定视频的视频帧和识别特定的视频中的视频帧的时间戳的数据;使用观察神经网络处理多个观察中的每一个,其中,观察神经网络被配置为对于观察中的每一个:处理观察以生成观察的低维表示;通过组合观察的低维表示来确定特定视频的数字表示;以及提供特定视频的数字表示,用于表征特定视频的内容。

在一些实现方式中,数字表示是表示特定视频的基础内容的数值的集合。

在一些实现方式中,数字表示是特定视频的语义描述。

在一些实现方式中,组合观察的低维表示包括:对低维表示求和以生成数字表示。

在一些实现方式中,该系统还被配置用于接收识别新时间戳的数据;以及使用生成器神经网络处理识别新时间戳的数据和特定视频的数字表示,以生成在特定视频中的新时间戳处的新视频帧。

在一些实现方式中,生成器神经网络被配置为:在多个时间步长中的每一个处:采样时间步长的一个或多个潜在变量,并且通过使用深度卷积神经网络处理隐藏状态、采样的潜在变量、数字表示和识别新时间戳的数据来更新时间步长为止的隐藏状态,以生成更新的隐藏状态;并且在多个时间步长中的最后的时间步长之后:在最后的时间步长之后,从更新的隐藏状态生成新视频帧。

在一些实现方式中,生成新视频帧包括:在最后时间步长之后从更新的隐藏状态生成像素足够的统计;使用像素足够的统计对新视频帧中诸如像素的颜色值的像素值进行采样。

在一些实现方式中,生成器神经网络和观察神经网络已经与后验神经网络联合训练,所述后验神经网络被配置为在训练期间接收多个训练观察和目标观察,并且生成定义一个或多个潜在变量上的分布的后验输出。

在一些实现方式中,已经训练观察神经网络以生成数字表示,该数字表示与特定时间戳结合,可以由生成器神经网络使用以生成来自特定的时间戳处的特定视频的特定视频帧的准确重建。

根据第三方面,提供了一种场景理解系统,其被配置用于接收表征特定图像的多个观察,每个观察包括特定图像的裁剪和识别特定图像中的裁剪的位置和大小的数据;使用观察神经网络处理多个观察中的每一个,其中,观察神经网络被配置为对于观察中的每一个:处理观察以生成观察的低维表示;通过组合观察的低维表示来确定特定图像的数字表示;以及提供特定图像的数字表示,用于表征特定图像的内容。

在一些实现方式中,数字表示是表示特定图像的基础内容的数值的集合。

在一些实现方式中,数字表示是特定图像的语义描述。

在一些实现方式中,组合观察的低维表示包括:对低维表示求和以生成数字表示。

在一些实现方式中,该系统还被配置用于接收识别新裁剪位置和新裁剪大小的数据;以及使用生成器神经网络处理识别新裁剪位置和新裁剪大小的数据以及特定图像的数字表示,以生成在新裁剪位置处且具有新裁剪大小的特定图像的新裁剪。

在一些实现方式中,生成器神经网络被配置为:在多个时间步长中的每一个处:采样时间步长的一个或多个潜在变量,并且通过使用深度卷积神经网络处理隐藏状态、采样的潜在变量、数字表示、以及识别新裁剪位置和新裁剪大小的数据,更新时间步长为止的隐藏状态,以生成更新的隐藏状态;并且在多个时间步长中的最后的时间步长之后:在最后的时间步长之后,从更新的隐藏状态生成特定图像的新裁剪。

在一些实现方式中,在最后的时间步长之后从更新的隐藏状态生成特定图像的新裁剪包括:在最后的时间步长之后从更新的隐藏状态生成像素足够的统计;并且使用像素足够的统计对新裁剪中的诸如像素的颜色值的像素值进行采样。

在一些实现方式中,生成器神经网络和观察神经网络已经与后验神经网络联合训练,所述后验神经网络被配置为在训练期间接收多个训练观察和目标观察,并且生成定义一个或多个潜在变量上的分布的后验输出。

在一些实现方式中,已经训练观察神经网络以生成数字表示,所述数字表示与特定裁剪位置和特定裁剪大小结合,可以由生成器神经网络使用以生成在特定裁剪位置处并且具有特定裁剪大小的特定图像的特定裁剪的准确重建。

可以组合上述第一、第二和第三方面以及它们各自的进一步特征。因此,例如,可以生成具有不同的相机位置和/或新时间处和/或具有新裁剪的新视频帧。

以上方面可以以任何方便的形式实现。例如,方面和实现方式可以由适当的计算机程序实现,该计算机程序可以在适当的载体介质上承载,该载体介质可以是有形载体介质(例如盘)或无形载体介质(例如通信信号)。各方面也可以使用合适的装置来实现,该装置可以采用运行计算机程序的可编程计算机的形式。

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

可以实现本说明书中描述的主题的特定实施例,以便实现以下优点中的一个或多个。本说明书中描述的场景理解系统基于未标记的训练数据生成场景的语义描述,而诸如场景分类或语义分割的用于场景理解的传统方法需要标记的训练数据。因此,与一些传统系统相比,例如,通过标记,本说明书中描述的系统需要较少的时间和较少的计算资源来预处理训练数据。此外,由于未标记的训练数据比标记的训练数据更容易获得,因此与需要标记的训练数据的一些传统系统相比,本说明书中描述的系统可以在更大的训练数据集合上训练,从而如本说明书中描述的系统可以产生优于通过某些传统系统产生的语义表示的语义表示。

本说明书中描述的场景理解系统包括明确的机制,以鼓励系统学习环境的不同视图如何彼此相关,从而使系统产生比传统系统更好的语义表示,诸如无条件密度模型。

本说明书中描述的场景理解系统可以作为模块包括在处理环境的观察的其他系统中。通过处理由场景理解系统生成的观察的低维数字表示而不是直接处理观察本身,可以改进这种系统的鲁棒性和效率。具体地,可能需要更少的计算资源来处理由场景理解系统生成的低维数字表示。例如,场景理解系统可以包括在强化学习系统中以生成环境的观察的低维表示以供强化学习系统处理,而不是强化学习系统直接处理环境的原始观察。

在附图和以下描述中阐述了本说明书的主题的一个或多个实施例的细节。根据说明书、附图和权利要求,本主题的其他特征、方面和优点将变得明显。

附图说明

图1示出了示例场景理解系统。

图2是用于使用场景理解系统生成环境的语义表示的示例处理的流程图。

图3是用于训练场景理解系统的示例处理的流程图。

图4是用于使用生成器模型渲染图像并生成先验分布的示例处理的流程图。

图5是使用后验模型生成后验分布的示例处理的流程图。

各附图中相同的附图标记和名称表示相同的元件。

具体实施方式

图1示出了示例场景理解系统100。场景理解系统100是在一个或多个位置中的一个或多个计算机上实现为计算机程序的系统的示例,其中实现下面描述的系统、组件和技术。

系统100接收表征环境122的观察102,其中观察包括图像118和对应的视点数据120。

在一些实现方式中,环境122是场景,例如,自然界中的场景或计算机生成的场景,图像118是场景的图像,例如,rgb图像,并且视点数据120识别捕获每个图像118的相机的相应位置,例如,相机相对于一些固定坐标系的3d定位、偏航和俯仰。

在一些其他实现方式中,环境122是视频,例如描绘自然界或计算机生成的世界的视频,图像118是来自视频的视频帧,并且视点数据120识别每个视频帧的相应时间戳。

在其他实现方式中,环境122是特定图像,例如,由相机捕获的自然界的图像或计算机生成的图像,图像118是特定图像的裁剪(crop),即特定图像的子图像,并且视点数据120识别定义图像118的、特定图像的裁剪的参数,例如,定义特定图像的裁剪的边界框的顶点的坐标。

观察神经网络104是卷积神经网络,其被配置为接收表征环境122的观察102中的每个作为输入,并且依照本说明书中称为观察神经网络参数的参数集合的值处理观察102中的每个,以生成每个观察102的低维数值表示。系统100组合每个观察102的低维数值表示,以生成环境122的数字语义表示106作为输出,即从观察图像118的特定像素值抽象出的环境122的基础内容(underlyingcontent)的描述。

系统100组合每个观察的低维表示以生成语义表示106。在一些情况下,系统100依照置换不变变换,即,对于组合低维表示的次序不变的变换,组合每个观察的低维表示。例如,系统100可以通过逐元素地对每个观察102的低维表示求和来组合它们以生成语义表示106。在一些情况下,系统100通过顺序地将每个观察的低维表示作为输入提供给递归神经网络(rnn)并将递归神经网络的最终状态确定为语义表示106来组合它们。

系统100不对语义表示106施加任何明确的约束或结构,超出通过优化训练目标函数116训练系统100的训练引擎124。语义表示106应该足够表达以使得生成器模型110在给定环境122的语义表示106的情况下,可以从任意新视点数据(即查询视点数据108)渲染环境122的新图像,即输出图像114。

例如,如果环境122是场景并且查询视点数据108识别场景中的相机的新位置,则输出图像114可以是从新相机位置处的相机拍摄的场景的预测的新图像。

作为另一示例,如果环境122是视频并且查询视点数据108识别视频的新时间戳,则输出图像114可以是视频中的新时间戳处的预测的新视频帧。

作为又一示例,如果环境122是特定图像并且查询视点数据108识别特定图像的裁剪的新参数,则输出图像114可以是特定图像的与新参数对应的预测的新裁剪。

生成器模型110被配置为接收语义表示106和查询视点数据108作为输入,以依照在本说明书中将被称为生成器模型参数的参数集合处理输入,并生成在一个或多个潜在变量集合,即其值由生成器模型110以到生成器模型110的输入为条件推断而不是作为输入接收的变量上的、在本说明书中称为先验分布的概率分布和输出图像114的像素足够的统计作为输出。输出图像/视频帧/裁剪的像素足够的统计是指识别概率分布的参数,例如,正态分布的平均值和标准偏差的数据,其表示输出图像114(或视频帧或裁剪)中每个像素的强度的预测的分布,即,可以从中对每个像素的强度进行采样。在一些实现方式中,每个像素的强度可以是rgb强度,并且概率分布可以是三维的,例如,三维正态分布。系统通过根据输出图像114的像素足够的统计对输出图像114的每个像素的强度进行采样来确定输出图像114。参考图4描述用于使用生成器模型110生成先验分布并渲染输出图像114的示例处理。

在一些实现方式中,系统100包括后验模型112以便于通过训练引擎124训练系统100。后验模型112被配置为接收环境的语义表示106、查询视点数据108和与查询视点数据108对应的环境的图像,以依照在本说明书中将被称为后验模型参数的参数集合处理输入,并且生成潜在变量上的、在本说明书中称为后验分布的概率分布作为输出。后验模型参数可以包括神经网络的权重。参考图5描述使用后验模型112生成后验分布的示例处理。

训练引擎124通过调整观察神经网络参数和生成器模型参数的值来联合训练观察神经网络104和生成器模型110,以增加生成与查询视点数据108对应的准确输出图像114的概率。具体地,训练引擎124通过反向传播基于目标函数116确定的梯度来调整观察神经网络参数和生成器模型参数的值。对于目标函数取决于由后验模型112生成的后验分布的实现方式,反向传播梯度涉及除了生成器模型参数和观察神经网络参数之外还调整后验模型参数的值。参考图3描述用于训练系统100的示例处理。

一旦经过训练,观察神经网络104可作为模块包括在处理环境的观察的其他系统中。通过处理由观察神经网络104生成的观察的低维数值表示而不是直接处理观察本身,可以提高这种系统的鲁棒性和效率。例如,可以通过强化学习系统训练与环境交互的代理,该强化学习系统处理环境的观察以确定将使代理接收的累积回报最大化的动作。观察神经网络可以包括在强化学习系统中,以生成环境的观察的低维表示,用于由强化学习系统处理以确定要由代理执行的动作,而不是强化学习系统直接处理观察,以确定要由代理执行的动作。在一些情况下,环境可以是模拟环境,并且代理可以被实现为通过导航通过模拟环境与模拟环境交互的一个或多个计算机程序。在一些其他情况下,环境可以是真实世界环境,并且代理可以是与真实世界环境交互的机械代理。例如,代理可以是执行任务的机器人或者导航通过环境的自主或半自主车辆。

图2是用于使用场景理解系统生成环境的语义表示的示例处理200的流程图。为方便起见,处理200将被描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,依照本说明书适当编程的例如图1的场景理解系统100的场景理解系统可以执行处理200。

系统接收表征环境的观察,其中观察包括成对的图像和视点数据(步骤202)。在一些实现方式中,环境是场景,例如,自然界中的场景或计算机生成的场景,图像是场景的图像,例如,rgb图像,并且视点数据识别捕获每个图像的相机的相应位置,例如,相机的3d定位、偏航和俯仰。在一些其他实现方式中,环境是视频,例如描绘自然界或计算机生成的世界的视频,图像是来自视频的视频帧,并且视点数据识别每个视频帧的相应时间戳。在其他实现方式中,环境是特定图像,例如,由相机捕获的自然界的图像或计算机生成的图像,图像是特定图像的裁剪,即特定图像的子图像,并且视点数据识别定义图像的特定图像的裁剪的参数,例如定义特定图像的裁剪的边界框的顶点的坐标。

观察神经网络依照观察神经网络参数的值处理观察中的每个,以生成每个观察的低维表示作为输出(步骤204)。

在一些实现方式中,观察神经网络被配置为接收视点数据和对应图像的拼接(concatenation)作为输入。在本说明书中,拼接视点数据和对应图像或特征图(featuremap)是指在对应图像或特征图的空间维度中“广播”视点数据的值以获得正确的大小,即沿对应图像或特征图的每个空间维度重复和附加视点数据的值。特征图是指响应于处理网络输入而在神经网络的隐藏层处生成的激活的阵列。

在一些其他实现方式中,观察神经网络被配置为接收图像作为到观察神经网络的第一层的输入,并且系统通过将视点数据与观察神经网络的一个或多个中间层(即第一层之后的一个或多个层)的特征图拼接来将视点数据提供给观察神经网络,并提供拼接的特征图和视点数据作为到观察神经网络的下一层(即中间层之后的层)的输入。

系统组合每个观察的低维表示以生成环境的语义表示(步骤206)。在一些实现方式中,系统例如通过逐元素对每个观察的低维表示求和组合它们,以依照置换不变变换(即,对于组合低维表示的次序不变的变换)生成语义表示。在一些其它实施方式中,系统通过顺序地将每个观察的低维表示作为输入提供给rnn,并且将递归神经网络的最终状态确定为语义表示,组合它们。

图3是用于训练场景理解系统的示例处理300的流程图。为方便起见,处理300将被描述为由包括位于一个或多个位置的一个或多个计算机的引擎执行。例如,依照本说明书适当编程的例如图1的训练引擎124的训练引擎可以执行处理300。

引擎选择训练数据集合中与特定环境对应的随机数量的观察(步骤302)。训练数据包括与相同类型的多个环境(例如,多个场景环境或多个视频环境)对应的观察集合。通常,不同的环境可具有不同数量的对应观察。

引擎提供选择的观察作为到观察神经网络的输入,所述观察神经网络根据观察神经网络参数的值处理选择的观察以生成环境的语义表示(步骤304)。参考图2描述生成环境的语义表示的处理。

引擎从训练数据集合中选择与特定环境对应的额外观察,在本说明书中称为目标观察(步骤306)。例如,引擎可以从步骤302中未选择的那些观察中随机地采样与特定环境对应的观察。

系统提供目标观察(即目标图像和目标视点数据)以及环境的语义表示作为到后验模型的输入,后验模型依照后验模型参数集合的值处理输入,以生成潜在变量集合上的后验分布作为输出(步骤308)。参考图5描述生成后验分布的处理。

系统将环境的语义表示和目标观察的目标视点数据提供给生成器模型,生成器模型依照生成器模型参数集合的值和由后验模型生成的后验分布来处理语义表示和目标视点数据,以生成输出图像的像素足够的统计和潜在变量集合上的先验分布作为输出(步骤312)。参考图4描述使用生成器模型和由后验模型生成的后验分布来生成输出图像的像素足够的统计和先验分布的示例处理。具体地,在图4的步骤408中,系统通过对于时间步长(step)从后验模型生成的后验分布中采样来确定与每个时间步长对应的潜在变量的值。

引擎确定损失函数的梯度并反向传播梯度以调整系统的参数(步骤316)。在一些实现方式中,损失函数由以下给出(或包括):

logpθ(x|z,y)-kl[q(z|x,y)||pψ,(z|y)]

其中y是目标视点数据,x是目标图像,pθ(x|z,y)是根据由生成器模型依照由后验模型生成的后验分布生成的输出图像的像素足够的统计的目标图像x的概率,pψ(z|y)是由生成器模型确定的潜在变量上的先验分布,q(z|x,y)是由后验模型生成的潜在变量上的后验分布,kl是指kullback-leibler差异度量,即一个概率分布与另一个概率分布的差异多大的度量。在这些实现方式中,反向传播梯度涉及调整生成器模型、后验模型和观察神经网络的参数,以最小化损失函数。

图4是用于使用生成器神经网络渲染图像并生成先验分布的示例处理400的流程图。为方便起见,处理400将被描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,依照本说明书适当编程的例如图1的场景理解系统100的场景理解系统可以执行处理400。

生成器模型接收环境的语义表示和视点数据(步骤402)。例如,如果环境是场景,则视点数据可以识别场景中的相机的位置。作为另一示例,如果环境是视频,则视点数据可以识别视频的时间戳。作为又一示例,如果环境是特定图像,则视点数据可以识别特定图像的裁剪的参数。

系统初始化例如生成器模型的递归神经网络的状态(步骤404)。在一些实现方式中,递归神经网络是卷积残差连接(skip-connection)长短期记忆(lstm)网络,并且系统通过将生成器模型的递归神经网络的状态设置为零来初始化它们,即:

其中表示在时间步长0处的单元状态,表示在时间步长0处的残差连接状态,并且表示在时间步长0处的输出状态。

在预定数量的时间步长中的每一个处,生成器模型的潜在变量神经网络依照潜在变量神经网络参数集合处理时间步长的递归神经网络的状态,以生成对于与时间步长对应的潜在变量的子集的先验分布的足够的统计的集合作为输出(步骤406)。在一些实现方式中,潜在变量神经网络处理对于时间步长的递归神经网络的输出状态,以生成先验分布的足够的统计的集合作为输出。在一些实现方式中,潜在变量神经网络是卷积神经网络。

在每个时间步长处,生成器模型确定与时间步长对应的潜在变量的值(步骤408)。在参考图3的处理300描述的系统的训练期间,生成器模型通过从后验模型生成的后验分布中采样来确定与时间步长对应的潜在变量的值。为了生成与先前看不见的视点对应的环境的新图像,生成器模型通过从生成器模型生成的先验分布中采样,或者在一些情况下,从标准正态分布(即具有均值0和方差1的正态分布)中采样,确定与时间步长对应的潜在变量的值。

生成器模型通过依照递归神经网络参数集合处理语义表示、视点数据、递归神经网络的一个或多个当前状态以及时间步长的一个或多个潜在变量的值,更新时间步长的生成器模型的状态(步骤410)。例如,生成器模型可以根据以下关系更新生成器模型的状态:

其中表示卷积lstm网络的状态更新,δ是转置卷积层,vq是视点数据,r是环境的语义表示,是时间(l+1)处递归神经网络的单元状态,是时间(l+1)处的递归神经网络的输出状态,zl是时间步长的潜在变量。

系统确定当前时间步长是否是预定数量的时间步长中的最后的时间步长(步骤412)。

响应于确定当前时间步长不是预定数量的时间步长中的最后的时间步长,系统返回到步骤406并重复前面的步骤。

响应于确定当前时间步长是预定数量的时间步长中的最后的时间步长,系统通过将递归神经网络的当前状态作为输入提供给解码器神经网络,并且依照解码器神经网络参数集合处理该状态,生成与新视点数据对应的环境的新图像(步骤414)。在一些实现方式中,系统提供递归神经网络的残差连接状态作为到解码器神经网络的输入。解码器神经网络生成输出图像的像素的强度的像素足够的统计作为输出,并且系统依照像素足够的统计对输出图像进行采样。例如,如果环境是场景并且视点数据识别场景中的相机的新位置,则输出图像可以是从新相机位置处的相机拍摄的场景的预测的新图像。作为另一示例,如果环境是视频并且视点数据识别视频的新时间戳,则输出图像可以是视频中新时间戳处的预测的新视频帧。作为又一示例,如果环境是特定图像并且视点数据识别特定图像的裁剪的新参数,则输出图像可以是与新参数对应的特定图像的预测的新裁剪。

图5是用于使用后验模型生成潜在变量上的后验分布的示例处理500的流程图。为方便起见,处理500将被描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,依照本说明书适当编程的例如图1的场景理解系统100的场景理解系统可以执行处理500。

后验模型接收环境的语义表示、视点数据和与视点数据对应的环境的图像(步骤502)。例如,如果环境是场景并且视点数据识别场景中的相机的位置,则图像可以是从相机位置处的相机拍摄的场景的图像。作为另一示例,如果环境是视频并且视点数据识别视频的时间戳,则图像可以是视频中的时间戳处的新视频帧。作为又一示例,如果环境是特定图像并且视点数据识别特定图像的裁剪的参数,则图像可以是与参数对应的特定图像的裁剪。

系统初始化后验模型的递归神经网络的状态(步骤504)。在一些实现方式中,递归神经网络是卷积lstm网络,并且系统通过将后验模型的递归神经网络的状态设置为零来初始化它们,即:

其中表示单元状态,并且表示时间步长零处的输出状态。

在预定数量的时间步长中的每一个处,后验模型的潜在变量神经网络依照潜在变量神经网络参数集合处理时间步长的递归神经网络的当前状态,以生成与时间步长对应的潜在变量的子集的后验分布的足够的统计的集合作为输出(步骤506)。在一些实现方式中,由后验模型处理的当前状态是后验模型的递归神经网络的输出状态。在一些实现方式中,后验模型的潜在变量神经网络是卷积神经网络。

在每个时间步长处,后验模型从时间步长的后验分布中采样,以确定与时间步长对应的潜在变量的子集的值(步骤508)。

后验模型通过依照后验模型的递归神经网络的参数集合,处理语义表示、视点数据、后验模型的递归神经网络的一个或多个当前状态、从时间步长的后验分布采样的时间步长的一个或多个潜在变量、以及在一些实现方式中的生成器模型的递归神经网络的一个或多个当前状态,更新时间步长的后验模型的状态(步骤510)。例如,后验模型可以根据以下关系更新后验模型的状态:

其中表示后验模型的卷积lstm网络的状态更新,xq是环境的图像,vq是视点数据,r是环境的语义表示,是在时间(l+1)处的后验模型的递归神经网络的单元状态,是在时间(l+1)处的后验模型的递归神经网络的输出状态,是在时间l处的生成器模型的递归神经网络的输出状态,表示在时间步长l处的生成器模型的递归神经网络的残差连接状态,并且zl是从后验分布采样的时间步长的潜在变量。

系统确定当前时间步长是否是预定数量的时间步长中的最后的时间步长(步骤512)。

响应于确定当前时间步长是预定数量的时间步长中的最后的时间步长,后验模型输出时间步长中的每个的一个或多个潜在变量上的后验分布(步骤514)。

本说明书使用与系统和计算机程序组件相关的术语“被配置”。对于要被配置为执行特定操作或动作的一个或多个计算机的系统,意味着系统已在其上安装了软件、固件、硬件或它们的组合,其在操作中使系统执行操作或动作。对于要被配置为执行特定操作或动作的一个或多个计算机程序,意味着一个或多个程序包括当由数据处理装置执行时使装置执行操作或动作的指令。

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

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

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

在本说明书中,术语“引擎”广泛地用于指代被编程为执行一个或多个特定功能的基于软件的系统、子系统或处理。通常,引擎将被实现为安装在一个或多个位置的一个或多个计算机上的一个或多个软件模块或组件。在一些情况下,一个或多个计算机将专用于特定的引擎;在其他情况下,可以在同一个或多个计算机上安装和运行多个引擎。

本说明书中描述的处理和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程计算机执行,以通过对输入数据进行操作并生成输出来执行功能。处理和逻辑流程也可以由专用逻辑电路(例如fpga或asic)或专用逻辑电路和一个或多个编程的计算机的组合来执行。

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

适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如eprom、eeprom和闪存设备;磁盘,例如内部硬盘或可移除盘;磁光盘;以及cdrom和dvd-rom磁盘。

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

用于实现机器学习模型的数据处理装置还可以包括例如专用硬件加速器单元,用于处理机器学习训练或生产的公共和计算密集部分,即推断、工作负载。

可以使用例如tensorflow框架、microsoftcognitivetoolkit(认知工具包)框架、apachesinga框架或apachemxnet框架的机器学习框架来实现和部署机器学习模型。

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

计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器的关系借助于在各个计算机上运行并且彼此具有客户端-服务器关系的计算机程序而产生。在一些实施例中,服务器将数据(例如,html页面)发送到用户设备,例如,用于向与作为客户端的设备交互的用户显示数据和从用户接收用户输入的目的。可以在服务器处从设备接收在用户设备处生成的数据,例如,用户交互的结果。

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

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

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

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1