处理图像以定位新颖对象的制作方法

文档序号:25599745发布日期:2021-06-22 17:20阅读:125来源:国知局
处理图像以定位新颖对象的制作方法

对相关申请的交叉引用

本申请要求于2019年1月31日提交的美国专利申请第16/264,222号的权益,并要求于2018年11月13日提交的题目为“processingimagestolocalizenovelobjects”的美国专利申请第62/760,594号的权益。出于所有目的,上述申请的公开通过引用被整体合并于此。

本说明书涉及图像处理。



背景技术:

对象定位系统是具有多个可训练参数的系统,其被配置为处理图像以定位(即,识别)图像中描绘的对象的位置。能够使用训练示例集合来训练对象定位系统,其中每个训练示例包括:(i)训练图像,和(ii)定义训练图像中描绘的对象的位置的训练对象定位数据。



技术实现要素:

本说明书描述了在一个或多个位置中的一个或多个计算机上作为计算机程序实现的训练系统,所述计算机程序能够被用于训练对象定位系统。

根据第一方面,提供了一种由一个或多个数据处理装置执行的方法,所述方法包括:对包括多个视频帧的视频的每个视频帧,获得定义视频帧中描绘的对象的位置的对象定位数据;对视频进行处理,以对多个视频帧中的每个视频帧生成对应的光流图像,所述光流图像表征视频中的视频帧和后续视频帧之间的视频帧的每个像素的位移;以及使用:(i)光流图像,以及(ii)定义与光流图像相对应的多个视频帧中描绘的对象的位置的对象定位数据,训练光流对象定位系统处理光流图像以生成定义在与光流图像相对应的视频帧中描绘的对象的位置的对象定位数据。

在一些实现中,获得定义视频帧中描绘的对象的位置的对象定位数据可以包括使用已知对象定位系统处理视频帧。所述已知对象定位系统可以是先前训练的对象定位系统。例如,所述已知对象定位系统可以被配置为处理视频帧,以生成定义视频帧中描绘的对象的位置的数据,所述对象来自预定的对象类集合。在一些实现中,所述已知对象定位系统可以包括神经网络。

另外地或可替换地,获得定义视频帧中描绘的对象的位置的对象定位数据可以包括获得定义由人手动标注的视频帧中描绘的对象的位置的对象定位数据。定义视频帧中描绘的对象的位置的对象定位数据包括定义环绕视频帧中描绘的对象的位置的边界框的数据。更一般地,对象定位数据可以包括定义环绕被定位对象的形状的角的坐标的数据。

处理视频以对多个视频帧的每个视频帧生成对应的光流图像可以包括使用直接数值优化方法处理视频以对多个视频帧的每个视频帧生成对应的光流图像。直接数值优化方法可以是在时域或频域中,例如使用局部空间/时间导数或通过区域匹配,将光流场拟合到来自视频帧的像素数据的方法。另外地或可替换地,所述光流对象定位系统可以包括神经网络。

所述方法还可以包括忽略对静止的或相对于其背景具有小于运动阈值程度的对象生成的对象定位数据。因此,所述方法还可以包括对由与光流图像相对应的视频帧的对象定位数据定义的每个对象位置,确定对象位置处(上方)光流图像中的光流数据的相应方差。然后,所述方法通过移除定义对象位置的数据修改用于训练光流对象定位系统的对象定位数据,其中,对象位置处的光流图像中的光流数据的方差不满足(最小)阈值。

在另一方面,一种由一个或多个数据处理装置执行的方法,所述方法包括:处理包括多个视频帧的视频,以对多个视频帧中的每个视频帧生成对应的光流图像,所述光流图像表征视频中的视频帧和后续视频帧之间视频帧的每个像素的位移;对每个光流图像,使用光流对象定位系统对光流图像进行处理,以生成定义与光流图像相对应的视频帧中描绘的对象的位置的对象定位数据;以及使用:(i)多个视频帧,以及(ii)光流对象定位系统通过处理与多个视频帧相对应的光流图像而生成的对象定位数据,训练第二对象定位系统,例如,新颖对象定位系统,处理视频帧以生成定义视频帧中描述的对象的位置的对象定位数据。

光流对象定位系统可以使用:(i)光流图像和(ii)定义与光流图像相对应的视频帧中描绘的对象的位置的对象定位数据来训练。如前所述,定义与光流图像相对应的视频帧中描绘的对象的位置的对象定位数据可以通过使用已知对象定位系统处理视频帧获得。

因此,所述方法可以包括使用已知或训练的对象定位系统,所述系统可能无法检测(定位)特定对象,例如特定类别的对象,并且使用它来提供用于训练光流对象定位系统的对象定位数据。光流对象定位系统工作在不同的基础上,即光流,可以学习定位已知/训练的对象定位系统遗漏的对象。因此,光流对象定位系统可以被用于生成训练数据,所述训练数据能够被用于训练第二对象定位系统,例如通过进一步训练改进已知或训练的对象定位系统,和/或训练“新颖”的对象定位系统(其不基于光流)。

因此,在一些实现中,训练新颖对象定位系统包括对多个视频帧中的一个或多个:使用已知对象定位系统处理视频帧,以生成定义视频帧中描绘的对象的位置的对象定位数据,其中,训练已知对象定位系统定位来自预定已知对象类集合的对象;识别视频帧中描绘的新颖对象的位置,其中,新颖对象的位置:(i)被包括在由光流对象定位系统对视频帧生成的对象定位数据中,并且(ii)不被包括在由已知对象定位系统对视频帧生成的对象定位数据中;以及训练新颖对象定位系统处理视频帧以生成对象定位数据,对象定位数据包括定义视频帧中描绘的新颖对象的位置的数据。

可以训练新颖对象定位系统处理视频帧以生成对象定位数据,除了定义视频帧中描绘的新颖对象的位置的数据之外,所述对象定位数据包括已知对象定位系统通过处理视频帧而生成的对象定位数据。

所述方法还可以包括使用训练的第二对象定位系统处理图像,以生成定义图像中描绘的对象的位置的对象定位数据,其中,图像不是视频帧。因此,一旦训练,第二对象定位系统就可以被应用于任何类型的图像。

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

本说明书描述了能够训练对象定位系统(在本说明书中称为“新颖对象定位系统”)以定位图像中的“新颖”对象的训练系统。图像中的新颖对象是指现有对象定位系统(在本说明书中称为“已知对象定位系统”)遗漏(即,未定位)的对象。通过识别已知对象定位系统当前发生故障的地方,能够使用新颖对象定位系统来提高已知对象定位系统的准确性。在特定示例中,由新颖对象定位系统定位的新颖对象能够被用作训练数据以提高已知对象定位系统在图像中定位对象的精度。这是图像处理领域的技术进步。

本说明书还描述了能够训练对象定位系统(在本说明书中称为“光流对象定位系统”)处理光流图像以定位在与光流图像相对应的视频帧中描绘的对象的训练系统。以这种方式训练的光流对象定位系统能够被用于生成用于训练新颖对象定位系统的训练数据。此外,训练系统通过将对象定位数据从视频帧传送到对应的光流图像,能够高效地生成用于训练光流对象定位系统的训练数据。例如,训练系统能够使用已知的对象定位系统来处理视频帧,以生成环绕视频帧中描绘的对象的对象边界框,并且将生成的对象边界框传送到与视频帧相对应的光流图像。以这样的方式,训练系统可以自动生成用于光流对象定位系统的训练数据,而不需要在光流图像上手动标注对象定位数据,这是一个耗时且困难的过程。这也是图像处理领域的技术进步。

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

附图说明

图1是示例光流对象定位训练系统和示例新颖对象定位训练系统的框图。

图2是用于使用已知对象定位系统和光流对象定位系统在视频帧中定位新颖对象的示例数据流。

图3是用于训练光流对象定位系统的示例过程的流程图。

图4是用于训练新颖对象定位系统的示例过程的流程图。

各种附图中类似的附图标记和名称指示类似的元素。

具体实施方式

对象定位系统是具有一个或多个可训练参数(例如,神经网络)的系统,其被配置为处理图像(例如,rgb图像)以定位(即,识别)图像中描绘的对象的位置。对象定位系统能够使用训练示例集合来训练,其中每个训练示例包括:(i)训练图像,和(ii)定义在训练图像中描绘的对象的位置的训练对象定位数据。本说明书描述了一种用于训练“新颖”对象定位系统以定位当前“已知”对象定位系统遗漏(即,未定位)的对象的方法。在一些情况下,已知对象定位系统可能无法对对象进行定位,因为该对象是罕见或不寻常的(例如航天飞机),并且不适合训练已知对象定位系统定位的任何预定对象类集合。在一些其它情况下,如果对象在图像中具有与在用于训练已知对象定位系统的训练图像中不同的视觉外观,则已知对象定位系统可能无法在图像中定位对象。例如,如果用于训练已知对象定位系统的训练图像全部从正面透视图描绘猫,则已知的对象定位系统可能无法定位从上到下的角度在图像中描绘的猫。已知对象定位系统遗漏的对象在本说明书中被称为“新颖对象”。

使用光流对象定位系统生成的训练数据,训练新颖对象定位系统对新颖对象进行定位。训练光流对象定位系统对视频的视频帧相对应的光流图像进行处理,对视频帧中的对象进行定位。与视频帧相对应的光流图像描述视频帧中描绘的对象的运动,而不是视觉外观(例如,颜色、纹理等)。因此,光流对象定位系统基于对象的运动而不是基于其视觉外观定位对象。

光流对象定位系统通过处理与训练视频帧相对应的光流图像基于运动对训练视频帧中描绘的对象进行定位,为新颖对象定位系统生成训练数据。在训练视频帧中描绘的(i)被光流对象定位系统定位的和(ii)没有被已知对象定位系统定位的对象,能够被识别为新颖对象。也就是说,如果通过光流对象定位系统基于对象的运动对对象进行了定位,但是没有通过已知对象定位系统基于对象的视觉外观对对象进行定位,则可以将对象识别为新颖对象。能够训练新颖对象定位系统处理训练视频帧,以定位在训练视频帧中描绘的已识别的新颖对象。在训练之后,新颖对象定位系统可以处理包括但不限于视频帧的图像。

使用:(i)与视频帧相对应的光流图像,和(ii)指示在视频帧中描绘的对象的位置的训练对象定位数据,训练光流对象定位系统。在一些情况下,训练对象定位数据可以由人手动标注在视频帧中描绘的对象的位置生成。在一些其它情况下,训练对象定位数据可以通过使用已知对象定位系统处理视频帧来生成。训练光流对象定位系统处理与视频帧相对应的光流图像以定位视频帧中描绘的对象(即,如由训练对象定位数据指定的)。

下面将更详细地描述这些特性和其他特性。

图1是示例性新颖对象定位训练系统100和示例性光流对象定位训练系统102的框图。系统100和系统102是在一个或多个位置中的一个或多个计算机上实现为计算机程序的系统的示例,在该位置中实现下面描述的系统、组件和技术。

为了训练光流对象定位系统104,系统102从一个或多个视频获得视频帧106的序列。视频帧106中的每一个是可以被表示为像素的二维(2d)阵列的图像,其中每个像素被表示为一个或多个值的向量。例如,如果视频帧是黑白图像,则每个像素可以表示为表示像素亮度的整数或浮点数(即,具有一个分量的向量)。作为另一示例,如果视频帧是红-绿-蓝(rgb)图像,则每个像素可以表示为具有三个整数或浮点分量的向量,分别表示该像素的红色、绿色和蓝色的强度。在一些其它示例中,可以采用yuv或hsv颜色通道。视频帧的像素能够由(x,y)坐标索引,其中,x和y是整数值。

系统102使用光流引擎108处理来自每个视频的视频帧106,以生成对应于每个视频帧106的相应光流图像110。与视频中的视频帧相对应的光流图像表征在视频中的视频帧和后续视频帧之间的视频帧的每个像素的位移。像素从视频帧到后续视频帧的位移能够被表示为具有两个数字(例如,整数或浮点)分量的向量,其中第一分量表示像素的x位移,第二分量表示像素的y位移。对应于视频帧的光流图像能够被表示为由与视频帧相同的(x,y)坐标索引的位移的2d阵列。也就是说,光流图像中特定(x,y)坐标处的位移表示对应视频帧中相同(x,y)坐标处的像素的位移。与来自视频的视频帧106相对应的光流图像110描述视频帧106中描绘的对象的运动,而不是视觉外观(例如,颜色、纹理等)。

系统102获得每个视频帧106的训练对象定位数据112。视频帧的训练对象定位数据112定义在视频帧中描绘的对象的位置。例如,视频帧106的训练对象定位数据112可以通过定义视频帧106中描绘的对象周围的边界框的坐标的数据来定义视频帧106中描绘的对象的位置。作为另一示例,视频帧106的训练对象定位数据112可以通过定义视频帧106中描绘的对象的分割的数据来定义视频帧106中描绘的对象的位置。视频帧中描绘的对象的分割能够被表示为视频帧中包括在对象中的像素的(x,y)坐标的列表。

在一些实现中,系统102通过使用已知对象定位系统114处理视频帧106获得视频帧106的训练对象定位数据112。如前所述,训练已知对象定位系统114处理图像以定位图像中描绘的对象。在一些其它实现中,系统102通过访问(即,从数据存储器)已经由人手动为视频帧106生成的对象定位数据来获得视频帧106的训练对象定位数据112。

系统102使用训练引擎116以使用:(i)光流图像110和(ii)训练对象定位数据112训练光流对象定位系统104。光流对象定位系统104被配置为处理从视频帧导出的光流图像以生成定义视频帧中描绘的对象的位置的对象定位数据。训练引擎116训练光流对象定位系统104处理每个光流图像110以生成与对应于光流图像110的训练对象定位数据112匹配的对象定位数据。对应于视频帧的光流图像描述视频帧中描绘的对象的运动,而不是视觉外观(例如,颜色、纹理等)。因此,光流对象定位系统104基于对象的运动而不是基于对象的视觉外观来定位对象。

训练引擎116可以被配置为使用任何适当的机器学习训练技术(例如,随机梯度下降)训练光流对象定位系统104。例如,训练引擎116可以被配置为通过迭代地(即,在多个训练迭代中的每一个)调整光流对象定位系统104的当前参数值来训练光流对象定位系统104。参照图3进一步描述用于训练光流对象定位系统104的示例处理。

新颖对象定位训练系统100被配置为训练新颖对象定位系统118处理图像(例如,视频帧)以生成对象定位数据,所述对象定位数据定义图像中描绘的新颖对象(即,已知对象定位系统114遗漏的对象)的位置。如下面将更详细地描述的,系统100使用光流对象定位系统120训练新颖对象定位系统118。系统100可以将光流对象定位系统120的参数值设置为由系统102训练的光流对象定位系统104的训练的参数值122。

为了训练新颖对象定位系统118,系统100从一个或多个视频(其可以与训练光流对象定位系统104中使用的视频帧106相同)获得视频帧124的序列。系统100使用光流引擎108处理来自每个视频的视频帧124,以生成对应于每个视频帧124的相应光流图像126。系统100使用光流对象定位系统120处理每个光流图像126,以生成定义在视频帧124中描绘的对象的位置的训练对象定位数据128。由于光流对象定位系统120基于对象的运动而不是基于对象的视觉外观来定位对象,因此训练对象定位数据128能够在没有来自表征其视觉外观(例如,颜色、纹理等)的原始来源的训练数据的情况下识别新颖对象。

系统100使用训练引擎130训练新颖对象定位系统118以使用:(i)视频帧124和(ii)由光流对象定位系统120生成的训练对象定位数据128定位新颖对象。例如,为了识别视频帧124中描绘的新颖对象,系统100可以首先使用已知对象定位系统114处理视频帧124。然后,如果对象:(i)被包括在由光流对象定位系统120生成的训练对象定位数据128中,并且(ii)不被包括在由已知对象定位系统114生成的对象定位数据中,则系统100可以将对象识别为新颖对象。也就是说,如果对象基于其运动通过光流对象定位系统120定位,但是没有基于其视觉外观通过已知对象定位系统114定位,则系统100可以将对象识别为新颖对象。在该示例中,训练引擎130能过训练新颖对象定位系统118处理每个视频帧124以生成对象定位数据,所述对象定位数据包括视频帧124中由系统100识别的新颖对象。在一些情况下,如将参照图4更详细地描述的,系统能够训练新颖对象定位系统118以生成对象定位数据,所述对象定位数据另外包括由已知对象定位系统114为视频帧生成的对象定位数据。

训练引擎130可以被配置为使用任何适当的机器学习训练技术(例如,随机梯度下降)训练新颖对象定位系统118。例如,训练引擎130可以被配置为通过迭代地(即,在多个训练迭代中的每一个)调整新颖对象定位系统118的当前参数值来训练新颖对象定位系统118。参照图4进一步描述用于训练新颖对象定位系统118的示例处理。

由系统100训练的新颖对象定位系统118不限于处理视频帧。特别地,在被训练之后,新颖对象定位系统118能够处理任何图像(包括但不限于视频帧)定位图像中描绘的新颖对象。

图2是用于使用已知对象定位系统114和光流对象定位系统120来识别视频帧204中的新颖对象202-a的示例数据流200。已知对象定位系统114处理视频帧204以生成定义对象208-a和208-b的位置的对象定位数据206。光流对象定位系统120处理与视频帧204相对应的光流图像210以生成定义对象202-a和202-b的位置的对象定位数据212。对象202-a能够被识别为新颖对象,因为它由光流对象定位系统120而不是由已知对象定位系统114定位。对象208-b由已知对象定位系统114而不是由光流对象定位系统120定位,这可能是因为对象208-b是不能从光流图像210可靠地定位的静止对象(如下将更详细地描述)。

图3是用于训练光流对象定位系统的示例过程300的流程图。为了方便,过程300被描述为由位于一个或多个位置中的一个或多个计算机的系统执行。例如,根据本说明书适当编程的光流对象定位训练系统,例如图1的光流对象定位训练系统102,能够执行过程300。

系统从一个或多个视频中获得相应的视频帧序列(302)。这些视频可以由数字相机捕获,也可以由计算机生成。每个视频帧是能够被表示为像素的2d阵列的图像,其中每个像素是被表示为一个或多个颜色值(例如,rgb颜色值)的向量。

系统获得每个视频帧的相应训练对象定位数据(304)。视频帧的训练对象定位数据定义视频帧中描绘的对象的位置。例如,视频帧的训练对象定位数据可以通过定义环绕视频帧中描绘的对象的相应边界框的坐标的数据来定义视频帧中描绘的对象的位置。作为另一示例,视频帧的训练对象定位数据可以通过定义视频帧中描绘的对象的相应分割的数据来定义视频帧中描绘的对象的位置。在一些实现中,系统通过使用已知对象定位系统处理视频帧来获得视频帧的训练对象定位数据。已知对象定位系统可以被配置为根据已知对象定位系统参数的训练值来处理视频帧,以生成视频帧的对象定位数据。在一些其它实现中,系统能够获得由人手动标注的视频帧的训练对象定位数据。

系统生成对应于每个视频帧的相应光流图像(306)。系统能够使用任何适当的方法生成与视频帧相对应的光流图像。例如,系统能够使用直接数值优化方法(例如,lucas-kanade方法)处理来自视频的视频帧和视频中的视频帧之后的视频帧,以生成与视频帧相对应的光流图像。因此,直接数值优化方法可以是通过直接数值优化方法将例如由流速向量定义的光流拟合到由视频帧定义的流数据的方法。例如,在lucas-kanade方法中,假设局部速度恒定。更一般地,可以采用差分技术基于像素值相对于时间和/或x-位移和y-位移的局部和/或全局第一和可选第二导数来确定光流。

作为另一示例,系统能够使用神经网络处理来自视频的视频帧和视频中的视频帧之后的视频帧,该神经网络被配置为生成定义与视频帧相对应的光流图像的输出。

光流图像可以包括例如每个像素位置的x-像素位移值和y-像素位移值的集合。可替换地,例如,它可以包括像素从一帧到一个或多个后续帧的向量映射运动的x分量和y分量。光流可以是单向的,前向或者后向,或者双向的。可选地,全局,例如平均,运动估计分量可以被减去以补偿相机/传感器运动。

系统使用:(i)光流图像和(ii)定义在与光流图像相对应的视频帧中描绘的对象的位置的训练对象定位数据,训练光流对象定位系统(308)。更具体地,系统训练光流对象定位系统处理每个光流图像以生成对象定位数据,该对象定位数据与训练对象定位数据相匹配,该训练对象定位数据定义与光流图像相对应的视频帧中描绘的对象的位置。该系统能够通过使用机器学习训练技术(例如,随机梯度下降)多次迭代地调整光流对象定位系统的参数值训练光流对象定位系统。在某些情况下,光流对象定位系统能够被实现为神经网络。参照s.ren,k.he,r.girshick,andj.sun,“fasterr-cnn:towardsreal-timeobjectlocalizationwithregionproposalnetworks”,神经信息处理系统进展大会(nips),2015,描述了对象定位神经网络的示例和对象定位神经网络的训练方法。对象定位系统的任何其他适当实现也能够被使用。

在一些情况下,训练对象定位数据可以定义光流对象定位系统将无法从对应于视频帧的光流图像可靠地定位的对象在视频帧中的位置。例如,光流对象定位系统可能无法可靠地定位视频帧中描绘的对象,该视频帧相对于视频帧中描绘的背景静止(即,不移动)。在该示例中,与静止物体相对应的光流图像的部分将不会区别地表征静止物体,因为光流图像的该部分中的位移向量可以全部近似为零(或某个其它常数值)。系统可以通过从光流图像中移除定义光流对象定位系统将不能可靠定位的对象的位置的数据来修改用于训练光流对象定位系统的训练对象定位数据。

为了确定光流对象定位系统是否将不能可靠地定位由训练对象定位数据指定的对象,系统能够确定表征对象的光流图像部分的方差。如果方差不满足预定(最小)阈值,则系统可以确定光流对象定位系统将不能可靠地定位对象,并且随后避免训练光流对象定位系统来定位对象。

图4是用于训练新颖对象定位系统的示例过程400的流程图。为了方便,过程400被描述为由位于一个或多个位置中的一个或多个计算机的系统执行。例如,根据本说明书适当编程的新颖对象定位训练系统,例如,图1的新颖对象定位训练系统100,能够执行过程400。

系统从一个或多个视频获得视频帧的相应序列(402)。这些视频可以由数字相机捕获,也可以由计算机生成。每个视频帧是能够被表示为像素的2d阵列的图像,其中每个像素被表示为一个或多个颜色值(例如,rgb颜色值)的向量。在一些情况下,获得的视频帧可以是用于训练光流对象定位系统的相同视频帧(如参照图3所述)。

系统生成对应于每个视频帧的相应光流图像(404)。系统能够使用任何适当的方法生成与视频帧相对应的光流图像。参考306描述了用于生成与视频帧相对应的光流图像的一些示例方法。

系统使用训练的光流对象定位系统处理每个光流图像,以生成相应的训练对象定位数据(406),该训练对象定位数据定义与光流图像相对应的视频帧中描绘的对象的位置。光流对象定位系统可以例如通过参照图3描述的处理300被训练。由光流图像的光流对象定位系统生成的训练对象定位数据可以是例如定义环绕视频帧中描绘的对象的相应边界框坐标的数据,或者视频帧中描绘的对象的相应分割的数据。

系统使用:(i)视频帧和(ii)由光流对象定位系统通过处理与视频帧相对应的光流图像生成的训练对象定位数据,训练新颖对象定位系统(408)。例如,为了识别视频帧中描绘的新颖对象,系统可以首先使用已知对象定位系统处理视频帧。然后,如果对象:(i)被包括在由光流对象定位系统生成的训练对象定位数据中,并且(ii)不被包括在由已知对象定位系统生成的对象定位数据中,则系统可以将该对象识别为新颖对象。也就是说,如果由光流对象定位系统基于对象的运动对对象进行了定位,但是没有由已知对象定位系统基于对象的视觉外观对对象进行定位,则系统可以将对象识别为新颖对象。在该示例中,系统能够训练新颖对象定位系统处理每个视频帧以生成对象定位数据,该数据包括视频帧中由系统识别的新颖对象。

在一些实现中,系统可以训练新颖对象定位系统处理每个视频帧以生成对象定位数据,其包括:(i)在视频帧中由系统识别的新颖对象,以及(ii)在视频帧中由已知对象定位系统定位的对象。系统可以进一步训练新颖对象定位系统处理每个视频帧,以对视频帧中描绘的对象生成相应的对象类标签。在这些实现中,系统可以用已知对象定位系统的参数值初始化新颖对象定位系统的参数值。

系统可以被配置为使用任何适当的机器学习训练技术(例如,随机梯度下降)训练新颖对象定位系统。例如,系统可以被配置为通过迭代地(即,在多个训练迭代中的每一个)调整新颖对象定位系统的当前参数值来训练新颖对象定位系统。例如,新颖对象定位系统能够被实现为神经网络。参照s.ren,k.he,r.girshick,andj.sun,“fasterr-cnn:towardsreal-timeobjectlocalizationwithregionproposalnetworks”,神经信息处理系统进展大会(nips),2015,描述了对象定位神经网络的示例和训练对象定位神经网络的方法。对象定位系统的任何其他适当实现也能够被使用。

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

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

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

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

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

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

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

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

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

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

机器学习模型能够使用机器学习框架,例如,tensorflow框架、microsoftcognitivetoolkit框架、apachesinga框架或apachemxnet框架,来实现和部署。

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

计算系统能够包括客户端和服务器。客户端和服务器一般彼此远离,并且通常通过通信网络进行交互。客户端和服务器之间的关系通过在相应计算机上运行并彼此具有客户端-服务器关系的计算机程序产生。在一些实施例中,服务器例如为了向与作为客户端的设备交互的用户显示数据并从中接收用户输入的目的,向用户设备发送例如html页面的数据。能够在服务器上从设备接收在用户设备处生成的数据,例如,用户交互的结果。

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

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

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

在第一方面,提供了一种由一个或多个数据处理设备执行的方法,所述方法包括:对包括多个视频帧的视频的每个视频帧,获得定义视频帧中描绘的对象的位置的对象定位数据;对视频进行处理,以对多个视频帧中的每个视频帧生成对应的光流图像,所述光流图像表征视频中的视频帧和后续视频帧之间的视频帧的每个像素的位移;以及使用:(i)光流图像,以及(ii)定义与光流图像相对应的多个视频帧中描绘的对象的位置的对象定位数据,训练光流对象定位系统处理光流图像以生成定义在与光流图像相对应的视频帧中描绘的对象的位置的对象定位数据。

结合前面的任何方面,在一些实现中,获得定义视频帧中描绘的对象的位置的对象定位数据包括:使用已知对象定位系统处理视频帧,其中,已知对象定位系统被配置为处理视频帧,以生成定义视频帧中描绘的对象的位置的数据,所述对象来自预定的对象类集合。

结合前面的任何方面,在一些实现中,已知对象定位系统包括神经网络。

结合前面的任何方面,在一些实现中,获得定义视频帧中描绘的对象的位置的对象定位数据包括:获得定义由人手动标注的视频帧中描绘的对象的位置的对象定位数据。

结合前面的任何方面,在一些实现中,定义视频帧中描绘的对象的位置的对象定位数据包括:定义环绕视频帧中描绘的对象的位置的边界框的数据。

结合前面的任何方面,在一些实现中,处理视频以对多个视频帧的每个视频帧生成对应的光流图像包括:使用直接数值优化方法处理视频以对多个视频帧的每个视频帧生成对应的光流图像。

结合前面的任何方面,在一些实现中,所述方法还包括:对每个光流图像:对由与光流图像相对应的视频帧的对象定位数据定义的每个对象位置,确定对象位置处的光流图像中的光流数据的相应方差;以及通过移除定义对象位置的数据来修改用于训练光流对象定位系统的对象定位数据,其中对象位置处的光流图像中的光流数据的方差不满足阈值。

结合前面的任何方面,在一些实现中,光流对象定位系统包括神经网络。

在另一方面,提供了一种由一个或多个数据处理装置执行的方法,所述方法包括:处理包括多个视频帧的视频,以对多个视频帧中的每个视频帧生成对应的光流图像,所述光流图像表征视频中的视频帧和后续视频帧之间视频帧的每个像素的位移;对每个光流图像,使用光流对象定位系统对光流图像进行处理,以生成定义与光流图像相对应的视频帧中描绘的对象的位置的对象定位数据;以及使用:(i)多个视频帧,以及(ii)光流对象定位系统通过处理与多个视频帧相对应的光流图像而生成的对象定位数据,训练新颖对象定位系统处理视频帧以生成定义视频帧中描述的对象的位置的对象定位数据。

结合前面的任一方面,在一些实现中,处理视频以对多个视频帧的每个视频帧生成对应的光流图像包括:使用直接数值优化方法处理视频以对多个视频帧的每个视频帧生成对应的光流图像。

结合前面的任何方面,在一些实现中,使用:(i)光流图像和(ii)定义与光流图像相对应的视频帧中描绘的对象的位置的对象定位数据,训练光流对象定位系统。

结合前面的任何方面,在一些实现中,通过使用已知对象定位系统处理视频帧获得定义与光流图像相对应的视频帧中描绘的对象的位置的对象定位数据,其中,已知对象定位系统被配置为处理视频帧,以生成定义视频帧中描绘的对象的位置的数据,所述对象来自预定的对象类集合。

结合前面的任何方面,在一些实现中,已知对象定位系统包括神经网络。

结合前面的任何一个方面,在一些实现中,定义与光流图像相对应的视频帧中描绘的对象的位置的对象定位数据包括:定义环绕与光流图像相对应的视频帧中描绘的对象的位置的光流图像中的边界框的数据。

结合前面的任何方面,在一些实现中,训练新颖对象定位系统包括对多个视频帧中的一个或多个:使用已知对象定位系统处理视频帧,以生成定义视频帧中描绘的对象的位置的对象定位数据,其中,训练已知对象定位系统定位来自预定的已知对象类集合的对象;识别视频帧中描绘的新颖对象的位置,其中,新颖对象的位置:(i)被包括在由光流对象定位系统对视频帧生成的对象定位数据中,并且(ii)不被包括在由已知对象定位系统对视频帧生成的对象定位数据中;以及训练新颖对象定位系统处理视频帧以生成对象定位数据,对象定位数据包括定义视频帧中描绘的新颖对象的位置的数据。

结合前面的任何方面,在一些实现中,所述方法进一步包括训练新颖对象定位系统处理视频帧以生成对象定位数据,除了定义视频帧中描绘的新颖对象的位置的数据之外,所述对象定位数据包括已知对象定位系统通过处理视频帧而生成的对象定位数据。

结合前面的任何方面,在一些实现中,所述方法进一步包括使用训练的新颖对象定位系统处理图像,以生成定义图像中描绘的对象的位置的对象定位数据,其中,图像不是视频帧。

结合前面的任何方面,在一些实现中,新颖对象定位系统包括神经网络。

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