光流确定系统的制作方法

文档序号:15738545发布日期:2018-10-23 21:54阅读:130来源:国知局

本申请涉及使用一个或多个神经网络的图像分析系统。



背景技术:

出于各种不同的目的,神经网络可用来分析图像。例如,一些神经网络可检验图像以识别图像中描绘的物体。一些图像集常代表或能够代表视频帧,这些视频帧显示图像中描绘的物体和图像的观看者之间的相对运动。光流描述了在可视场中物体相对于观察者的这种相对运动。准确、有效地计算光流可用在各种计算机视觉应用中,例如物体检测、跟踪、运动检测、机器人导航、三维(3D)重构和分割等等。

但是,准确、有效地计算光流可能难以实现。这种计算相当于寻找连续帧之间的像素对应性,是一个耗时的任务。有时,不存在任何精确的像素强度对应性,或者解诀方案不唯一,这使光流的确定受挫或受到阻碍。



技术实现要素:

在一个实施例中,一种生成式对抗网络(GAN)系统,其包括生成器子网络,所述生成器子网络被配置成检验相对于物体的观察者运动的所述物体的图像。所述生成器子网络还被配置成基于被检验的图像生成一个或多个基于分布的图像。所述系统还包括鉴别器子网络,所述鉴别器子网络被配置成检验所述一个或多个基于分布的图像以确定所述一个或多个基于分布的图像是否准确地表示所述物体。由所述一个或多个基于分布的图像中所示的所述物体的相对运动表示所述物体的预测光流。

在一个实施例中,一种方法,包括:使用生成式对抗网络(GAN)系统的生成器子网络,检验相对于物体的观察者运动的所述物体的图像;使用所述生成器子网络基于由所述生成器子网络检验的图像生成一个或多个基于分布的图像;使用所述GAN系统的鉴别器子网络检验所述一个或多个基于分布的图像以确定所述一个或多个基于分布的图像是否准确地表示所述物体;响应于确定所述一个或多个基于分布的图像准确地表示所述物体,使用所述鉴别器子网络基于所述一个或多个基于分布的图像确定所述物体的预测光流。

在一个实施例中,系统包括生成器子网络,所述生成器子网络被配置成检验运动物体的图像。所述生成器子网络还被配置成基于所述图像中像素特征的分布生成一个或多个基于分布的图像。所述系统还包括鉴别器子网络,所述鉴别器子网络被配置成检验所述一个或多个基于分布的图像以确定所述一个或多个基于分布的图像和所述运动物体的图像之间的一个或多个误差。所述一个或多个误差指示所述一个或多个基于分布的图像是否准确地表示所述运动物体。由所述一个或多个基于分布的图像中所示的所述物体的相对运动表示所述物体的预测光流。

附图说明

通过参考附图阅读以下非限制性实施例的描述,将更好地理解本公开的主题,以下在所述附图中:

图1说明光流确定系统的一个实施例;

图2说明用于确定图像中的光流的方法的一个实施例的流程图;

图3说明图1所示的光流确定系统的生成器子网络创建的一批基于分布的图像;以及

图4说明了使用由GAN系统确定的预测光流的控制系统的一个示例。

具体实施方式

本文中描述的本公开主题的一个或多个实施例提供了光流确定系统和方法,其确定帧或图像中物体的光流。物体的光流描述、代表或指示在视觉场景中物体相对于物体的观察者的相对运动。在一个示例中,光流确定系统和方法包括或使用生成式对抗网络(generative adversarial network,GAN)从两个或更多个图像确定物体的光流。

GAN包括两个子网络,即生成器子网络和鉴别器子网络。这些子网络在双玩家最大最小博弈的背景中相互作用。训练期间,生成器子网络尝试基于提供至生成器子网络的训练图像学习如何产生看似真实的图像样本。鉴别器子网络尝试学习如何区别产生的图像样本和真正的(例如训练)图像样本,所述真正的图像样本是原始的不由生成器子网络产生。这些子网络最终可以收敛到一个平衡点,在这一点,生成器子网络产生的图像样本与真正的图像样本无法区别(从鉴别器子网络的观点)。使用GAN学习如何估计连续的视频帧之间的光流。使用了非监管式学习方案,在此方案中,估计光流不需要有光流的任何背景事实。背景事实可以是多通道图像,其对另一集合的视频帧的每个像素的光流编码。所述系统和方法通过仅考虑连续视频帧,学习如何估计光流。

人工神经网络(例如GAN)包括人工神经元或节点,其接收输入图像并对这些图像执行操作(例如函数),选择性地将结果传送至其它神经元。权重值与网络中的每个向量和神经元关联,这些值对输入图像与神经元的输出相关联的程度进行约束。权重值可由训练数据的迭代流通过网络确定。例如,在训练阶段中建立权重值,其中,网络通过训练或背景事实图像中的物体的典型输入数据特征,学习如何识别特定的物体类别。

本文中描述的系统和方法的至少一个技术效果包括确定或预测一个或多个物体的图像中的光流,其中,使用被确定或被预测的光流生成3D点云图像集,其用来检查设备(例如涡轮发动机)的内部以确定并开始设备的修理,无需使设备退出运行。

图1说明光流确定系统100的一个实施例。图2说明用于确定图像中的光流的方法200的一个实施例的流程图。方法200的流程图可以表示由图1所示的系统100执行的操作,例如由一个或多个处理器(例如一个或多个微处理器、现场可编程门阵列和/或集成电路)在软件的指导下执行的由图像确定或预测光流的功能。可选地,方法200的流程图可以表示用来创建(例如编写)此类软件的算法。

系统100包括神经网络102、104,在一个实施例中,系统100代表GAN系统。神经网络102、104是由一个或多个处理器(例如微处理器、集成电路、现场可编程门阵列等等)形成的人工神经网络。神经网络102、104分成两层或更多层106,例如接收图像的输入层、输出图像或损失函数(例如下面描述的误差)的输出层以及一个或多个中间层。神经网络102、104的各层106表示人工神经元的不同组合或集合,其可以表示由处理器对图像执行的预测图像中物体的光流和/或确定预测的光流中的误差的不同函数。

在一个实施例中,神经网络102表示GAN的生成器子网络,神经网络104表示GAN的鉴别器子网络。操作中,在图2所示的方法200的流程图中的202,生成器子网络102接收具有相对运动的物体112的图像108、110。相对运动包括物体112和/或物体的观察者的移动,所述观察者例如获得图像108、110的照相机或其它传感器。图像108、110可以是由照相机获得的视频的各个帧。图像108、110中描绘的物体112可能正相对照相机(是静止的)运动,照相机可能正相对于物体112(是静止的)运动,或者物体112和照相机都正在运动。例如,照相机可提供:运动中的人的视频的各帧,当照相机正移动通过物体或者在物体内部移动时静止物体(例如发动机或涡轮的内部)的视频的各帧,和/或当照相机也在运动时运行中物体的视频的各帧。尽管本文中的描述重点在生成器子网络102只获得两个图像108、110,但是可选地,生成器子网络102可获得超过两个图像。

图像108是图像110的前一图像,指示物体112(在图示的实例中是鸟)正相对照相机从左到右向上运动。物体112的运动可以由沿着第一(例如水平)x轴的位移Δx和沿着着第二(例如垂直)y轴的位移Δy表示。由Δx和Δy表示的此运动可表示或指示图像108、110中物体112的光流。如本文中描述,系统100可操作以从图像108、110预测物体112的附加光流。在一个实施例中,图像108、110不是背景事实图像,因为图像108、110并未显式地对光流矢量编码。

照相机通过一个或多个有线和/或无线连接将图像108、110传送至生成器子网络102,图像108、110可由生成器子网络102获得。可选地,图像108、110可以存储于有形和非瞬态计算机可读存储器中,例如计算机硬盘、光盘等等,可由生成器子网络102通过一个或多个有线和/或无线连接访问。

在方法200中的204,由生成器子网络102创建图像。该图像由生成器子网络102基于由其获得的或另外向其提供的图像108、110,而创建。例如,生成器子网络102的处理器可检验图像108、110中像素114的特征。这些特征可以包括像素114在图像108、110中的位置,像素114的强度,像素114的颜色、场景中结构的边缘等等。生成器子网络102可确定像素特征的统计分布(例如高斯分布)。对图像108、110中的不同像素或位置,可确定不同的分布。生成器子网络102可检验所述统计分布,并确定每个像素114具有各个特征的概率。基于所述分布和概率,生成器子网络102创建一个或多个基于分布的图像,所述基于分布的图像对图像108、110之间的光流进行估计。使用此多通道流图像,使图像110变形以获得图像108的估计。光流的正确估计产生对图像108的精确估计。

图3说明图1所示的系统100的生成器子网络102产生的变形后的一批306基于分布的图像300、302、304。生成器子网络102可基于由其获得的或另外向其提供的图像108、110的特征,产生多个基于分布的图像300、302、304。如图3所示,一些基于分布的图像300、302、304比其它基于分布的图像300、302、304更有可能代表物体112的连续运动。例如,基于分布的图像304示出物体112所处位置与图像108、110中物体112的轨迹一致,而基于分布的图像300、302示出物体112所处位置与此轨迹不一致。

在图2所示方法200的206,使用鉴别器子网络104确定基于分布的图像(也称作生成图像)的损失函数或误差。生成器子网络102例如可通过子网络102、104之间的一个或多个有线和/或无线连接将一批一个或多个基于分布的图像300、302、304提供至鉴别器子网络104。

鉴别器子网络104检验基于分布的图像300、302、304中像素114的特征,以确定与基于分布的图像300、302、304关联的损失函数或误差。损失函数或误差指示基于分布的图像300、302、304与原始图像108(其副本也可提供至鉴别器子网络104)的相似程度。为了确定相似程度,在训练阶段,一对真实帧(例如108和110)和一对伪造、真实帧(例如304和110)被连续馈送到鉴别器中。例如,如果鉴别器子网络104确定基于分布的图像304比基于分布的图像300、302更像图像108,则归属于一对图像304和110的损失函数或误差比归属于包括基于分布的图像300、302的那对图像的损失函数或误差更小。

鉴别器子网络104的各层104的人工神经元可检验基于分布的图像300、302、304中的个别像素114,以决定图像对(300,110)、(302,110)和(304,110)是否是合格的连续帧。每个人工神经元可将数学函数(例如激励函数)施加到同一像素,由不同的神经元施加的函数影响由其它神经元施加的函数,不同的神经元对函数中的不同项施加的权重与一个或多个或者其它所有神经元施加的不同。函数的施加产生图像对的分数,其可解释为输入对是真实图像的概率。鉴别器子网络104的各层104中的神经元检验像素114的特征,例如强度、颜色、结构一致性等等,以确定分数。

鉴别器子网络104的处理器然后可确定图像对(300,110)、(302,110)、(304,110)和(108,110)的损失函数或误差。要求鉴别器对包括伪造图像(即不是由生成器直接产生的图像)的对分配概率0,要求鉴别器对真实对即对(108,110)分配概率1。可以以要求概率和分配概率之间的不匹配计算损失函数或误差。

在方法200中的208,对与基于分布的图像300、302、304关联的损失函数是否指示物体112的预测光流中有重大误差做出确定。例如,损失函数可被检验、相互比较、与阈值比较等等,以确定如果相似则基于分布的图像300、302、304中的哪一个与原始图像108、110相似。鉴别器子网络104可响应于与基于分布的图像关联的损失函数指示较大误差(例如相对于指定阈值)确定基于分布的图像与图像108不相似。鉴别器子网络104可响应于与基于分布的图像关联的损失函数指示较小误差(例如相对于指定阈值)确定基于分布的图像与图像108相似。

如果鉴别器子网络104确定基于分布的图像300、302或304与原始图像108相似(例如误差不大),则基于分布的图像300、302或304中物体112的位置和/或外观是通过图像108、110以及300、302或304准确预测物体112的光流的指示。结果,方法200的流程可朝212继续。如果鉴别器子网络104确定基于分布的图像300、302或304与原始图像108不相似(例如误差很大),则基于分布的图像300、302或304中物体112的位置和/或外观不是通过图像108、110以及300、302或304对物体112的光流的准确预测。结果,方法200的流程可朝210继续。

在210,与重大误差关联的损失函数通过鉴别器子网络104和/或生成器子网络102反向传播。通过鉴别器的反向传播以及通过鉴别器和生成器的反向传播以交替方式进行。当只通过鉴别器反向传播时,鉴别器的权重以这样的方式被更新:鉴别器将正确的概率分配至真实对和伪造对。当通过生成器和鉴别器反向传播时,鉴别器的系数保持不变,生成器的权重以这样的方式被更新:由生成器产生的流产生更多的看似真实的图像对。生成器子网络102的处理器通过生成器子网络102的各层106向后将误差反向传播,以训练或改进生成器子网络102的训练。例如,对于前面示例中的像素114,损失函数[0.4 -0.15 -0.05 -0.2]可通过生成器子网络102反向传播。相同图像中的其他像素114的损失函数也可以通过生成器子网络102的各层106向后传播。

在图像数据通过神经网络102、104的各层106前向传播过程中,由层106中的神经元向像素114的特征施加的函数以由神经网络102前一层10中的神经元施加的函数的结果为基础。在反向传播中,以相反次序重复此过程。像素114的损失函数首先由生成器子网络102的最后一层104中的神经元检验(例如函数由神经元施加至像素114),之后由倒数第二层106中的神经元检验,再由倒数第三层106中的神经元检验,以此类推。

生成器子网络102中损失函数的反向传播对生成器子网络102进行训练,以创建更准确地反映或预测图像108、110中物体112的光流的基于分布的图像。训练深度学习模型可涉及此反向传播过程,这有助于子网络102从错误中学习识别图像中的物体,并获得图像中的物体流的更好表达。在一个实施例中,通过改变由生成器子网络102中的神经元向具有较大误差的那些像素114施加的权重或权重值,可修改此反向传播过程。这使得在后续的图像108、110检验过程中通过更加注意这些误差,调整生成器子网络102以降低另外的误差。

在损失函数通过生成器子网络102反向传播之后,方法200的流程可返回204。方法200可继续,由生成器子网络102创建基于分布的图像;鉴别器子网络104确定所述基于分布的图像中的误差是否小到以致基于分布的图像准确地反映原始图像108、110,或者与原始图像108、110混淆;生成器子网络102将损失函数反向传播,直到生成器子网络102能够创建这样的基于分布的图像,这些图像能愚弄或骗过鉴别器子网络104使其确定所述基于分布的图像是物体112运动的附加图像。

如果在208,损失函数足够低,以致鉴别器子网络104确定基于分布的图像是物体112运动的附加图像,则生成器子网络102通过生成一个或多个附加的基于分布的图像预测物体112的光流。例如,一旦方法200将生成器子网络102训练成准确地生成这样的图像使鉴别器子网络104确定为是物体112运动的附加的实际图像,则可以使用生成器子网络102不仅对于曾出现在训练集中的图像对,还对于在训练期间对生成器网络未知的其它各对连续帧,生成预测物体112的运动的基于分布的图像。

对于各种不同的终端用户,可以使用这些基于分布的图像。举一个例子,可使用基于分布的图像生成3D点云。然后可使用3D点云使用户与物体的3D表达交互。例如,小型照相机可插入到涡轮发动机内部,当照相机在发动机中移动时获取发动机的内表面的几个图像108、110。然后可使用这些图像108、110创建指示内表面(或内表面的特征,例如发动机的损坏部分)的预测光流的附加图像。可以使用创建的和/或原始的图像创建3D点云,然后使用3D点云创建发动机内部的虚拟现实环境。此环境可以允许用户密切关注小空间(例如发动机)内部的准确表达以检查损坏(例如腐蚀、碎片等)。

图4说明控制系统400的一个实例,其使用由GAN系统402确定的预测光流。GAN系统402代表上面描述的系统100的一个或多个实施例。控制系统400包括传感器404,传感器404为GAN系统402获得图像108、110。例如,传感器404可以是照相机,其将图像或视频帧作为图像108、110提供至GAN系统402。可选地,控制系统400包括存储器406,例如计算机硬盘、光盘等,所述存储器存储GAN系统402的图像108、110。

如上文描述,GAN系统402可预测物体112的光流。预测的光流(例如以图像形式,其预测物体112的即将发生的运动)可传送至动力系统410的控制器408。控制器408表示硬件电路,该硬件电路包括一个或多个处理器和/或与一个或多个处理器连接,所述一个或多个处理器为例如一个或多个微处理器、现场可编程门阵列、集成电路等。控制器408控制动力系统410的操作,动力系统410可代表汽车、有轨车辆、飞机、发电机等等。控制器408可检验预测的光流,并确定是否需要执行一个或多个响应动作。例如,如果预测的光流指示物体112正朝与车辆碰撞的方向运动,则控制器408可生成并传送控制信号至致动器412,改变动力系统410的操作。致动器412可以包括制动系统、节气门、方向盘等等,其被致动以改变动力系统410的运动(并避免与物体112碰撞)。响应动作可以是踩制动器、改变车辆正在运行的方向和/或改变车辆的行驶速度。响应动作的另一示例可以是生成设备的3D点云,以用于设备的目视检查。

在一个实施例中,一种生成式对抗网络(GAN)系统,其包括生成器子网络,所述生成器子网络被配置成检验相对于物体的观察者运动的所述物体的图像。所述生成器子网络还被配置成基于被检验的图像生成一个或多个基于分布的图像。所述系统还包括鉴别器子网络,所述鉴别器子网络被配置成检验所述一个或多个基于分布的图像以确定所述一个或多个基于分布的图像是否准确地表示所述物体。由所述一个或多个基于分布的图像中所示的所述物体的相对运动表示所述物体的预测光流。

在一个实例中,所述鉴别器子网络被配置成确定一个或多个损失函数,所述损失函数指示所述一个或多个基于分布的图像中所述物体的预测光流中的误差。

在一个实例中,所述生成器子网络被配置成使用所述一个或多个损失函数加以训练。

在一个实例中,所述生成器子网络被配置成使用所述一个或多个损失函数通过所述生成器子网络反向传播所述一个或多个损失函数而加以训练。

在一个实例中,所述生成器子网络被配置成生成一个或多个附加的基于分布的图像来表示所述物体的所述预测光流。

在一个实例中,所述生成器子网络被配置成基于由所述生成器子网络检验的图像中像素特征的一个或多个分布,生成所述一个或多个基于分布的图像。

在一个实例中,所述系统还包括控制器,所述控制器被配置成响应于确定所述物体的所述预测光流,执行一个或多个动作。

在一个实例中,所述物体的观察者是获得所述物体的图像的照相机。

在一个实施例中,一种方法,包括:使用生成式对抗网络(GAN)系统的生成器子网络,检验相对于物体的观察者运动的所述物体的图像;使用所述生成器子网络基于由所述生成器子网络检验的图像生成一个或多个基于分布的图像;使用所述GAN系统的鉴别器子网络检验所述一个或多个基于分布的图像以确定所述一个或多个基于分布的图像是否准确地表示所述物体;响应于确定所述一个或多个基于分布的图像准确地表示所述物体,使用所述鉴别器子网络基于所述一个或多个基于分布的图像确定所述物体的预测光流。

在一个实例中,所述方法还包括使用所述鉴别器子网络确定一个或多个损失函数,所述损失函数指示所述一个或多个基于分布的图像中所述物体的预测光流中的误差。

在一个实例中,所述方法还包括使用所述一个或多个损失函数训练所述生成器子网络。

在一个实例中,使用所述一个或多个损失函数训练所述生成器子网络包括通过所述生成器子网络反向传播所述一个或多个损失函数。

在一个实例中,所述方法还包括使用所述生成器子网络生成一个或多个附加的基于分布的图像以表示所述物体的预测光流。

在一个实例中,基于由所述生成器子网络检验的图像中像素特征的一个或多个分布,生成所述一个或多个基于分布的图像。

在一个实例中,所述方法还包括响应于确定所述物体的预测光流,执行一个或多个动作。

在一个实例中,所述物体的观察者是获得所述物体的图像的照相机。

在一个实施例中,系统包括生成器子网络,所述生成器子网络被配置成检验运动物体的图像。所述生成器子网络还被配置成基于所述图像中像素特征的分布生成一个或多个基于分布的图像。所述系统还包括鉴别器子网络,所述鉴别器子网络被配置成检验所述一个或多个基于分布的图像以确定所述一个或多个基于分布的图像和所述运动物体的图像之间的一个或多个误差。所述一个或多个误差指示所述一个或多个基于分布的图像是否准确地表示所述运动物体。由所述一个或多个基于分布的图像中所示的所述物体的相对运动表示所述物体的预测光流。

在一个实例中,所述生成器子网络被配置成使用所述一个或多个误差加以训练。

在一个实例中,所述生成器子网络被配置成在使用所述一个或多个误差训练所述生成器子网络之后,生成一个或多个附加的基于分布的图像以表示所述运动物体的预测光流。

在一个实例中,所述系统还包括控制器,所述控制器被配置成响应于确定所述物体的所述预测光流,执行一个或多个动作。

如本文所使用,以单数形式叙述并且跟在词语“一”或“一个”后的元件或步骤应理解为不排除复数个所述元件或步骤,除非明确陈述此类排除。此外,对当前描述的主题的“一个实施例”的提及并非旨在解释为排除同样并有所述特征的额外实施例的存在。此外,除非明确地陈述为相反情况,否则“包括”或“具有”带有特定属性的一个元件或多个元件的实施例可以包括不带有那个属性的其它此类元件。

应了解,以上描述希望为说明性而非限制性的。举例来说,上述实施例(和/或其方面)可相互组合使用。另外,在不脱离本文所阐述主题的范围的情况下,可进行许多修改以使特定情形或材料适应所述主题的教示。虽然本文所描述的材料的尺寸和类型旨在界定所公开主题的参数,但其绝非是限制性的,而是示范性实施例。所属领域的技术人员在查阅以上描述后将会明白许多其它实施例。因此,本文所描述的主题的范围应参考所附权利要求书以及此类权利要求书有权要求的等效物的完整范围来确定。在所附权利要求书中,术语“包括(including)”和“其中(in which)”用作相应术语“包括(comprising)”和“其中(wherein)”的简明等效用语。此外,在所附权利要求书中,术语“第一”、“第二”和“第三”等仅用作标记,且并不希望对其对象强加数字要求。此外,下面的权利要求书的限制并不按照装置加功能格式编写,并且并非意图根据35U.S.C.§112(f)来解释,除非这类权利要求限制明确使用短语“用于...的装置”加上没有其他结构的功能陈述。

本书面描述使用实例来公开本文所阐述的主题的若干实施例,包括最佳模式,并且还使所属领域的技术人员能够实践所公开主题的实施例,包括制造和使用所述装置或系统并执行所述方法。本文所描述的主题的可获专利范围由权利要求书界定,且可包括所属领域的技术人员想到的其它实例。如果此类其它实例具有与权利要求书无异的字面措辞的结构要素,或如果它们包括与权利要求书的字面措辞无实质差异的等效结构要素,那么它们既定在权利要求范围内。

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