实例分割的制作方法

文档序号:19541697发布日期:2019-12-27 16:32阅读:466来源:国知局
实例分割的制作方法



背景技术:

本说明书涉及使用机器学习模型处理数据。

机器学习模型接收输入,并基于接收到的输入生成输出,例如预测输出。一些机器学习模型是参数模型,并基于接收到的输入和模型的参数值生成输出。

一些机器学习模型是深度模型,其采用多层模型以针对接收到的输入生成输出。例如,深度神经网络是包括输出层和一个或多个隐藏层的深度机器学习模型,一个或多个隐藏层中的每个隐藏层将非线性变换应用于接收到的输入以生成输出。



技术实现要素:

本说明书描述了在一个或多个位置中的一个或多个计算机上实施为计算机程序的实例分割系统,该实例分割系统联合执行图像中的对象检测和语义分割。

根据第一方面,提供了一种计算机实施的方法,包括:将图像作为输入提供给描述符神经网络,该描述符神经网络处理图像以生成输出,该输出包括:(i)识别图像的一个或多个区域的数据,其中在每个区域中描绘对象,(ii)对于每个区域,在该区域中描绘的预测类型的对象,以及(iii)包括多个语义通道和一个或多个方向通道的特征通道,其中:每个语义通道与特定类型的对象相关联,并且为图像的每个像素定义该像素被包括在该特定类型的对象中的相应可能性;并且方向通道表征从图像的每个像素到包括该像素的图像中描绘的对象的中心的预测方向;针对一个或多个区域中的每一个生成区域描述符,包括,对于每个区域:针对特征通道中的至少一个,从特征通道提取与图像的区域相对应的特征数据;将提取的特征数据调整大小(resize)到预定维度;以及连接调整大小的特征数据;以及将一个或多个区域中的每一个的区域描述符提供给分割神经网络,该分割神经网络处理区域的区域描述符以生成包括在区域中描绘的预测类型的对象的预测分割的输出。

该方法还可以包括:针对一个或多个区域中的每一个生成分割描述符,包括,对于每个区域:从描述符神经网络的一个或多个中间输出中提取与图像的区域相对应的特征数据;将从描述符神经网络的一个或多个中间输出提取的特征数据调整大小到预定维度;以及将来自描述符神经网络的一个或多个中间输出的调整大小的特征数据与在区域中描绘的预测类型的对象的预测分割相连接;以及将一个或多个区域中的每一个的分割描述符提供给细化神经网络,其中该细化神经网络处理分割描述符以生成在区域中描绘的预测类型的对象的经细化的预测分割。

生成区域的区域描述符可以包括,从与在区域中描绘的预测类型的对象相关联的语义特征通道提取与图像的区域相对应的特征数据。生成区域的区域描述符还可以包括,池化来自方向通道中的一个或多个的与区域相对应的特征数据。池化来自方向通道中的一个或多个的与区域相对应的特征数据可以包括:将该区域划分成一个或多个子区域;将每个子区域与不同的方向通道相关联;以及对于子区域中的每一个,从与子区域相关联的方向通道中提取与子区域相对应的特征数据。

该方法还可以包括:确定图像的像素被包括在区域中描绘的预测类型的对象的预测分割中;以及将输入图像的像素与预测类型的对象相关联。描述符神经网络和分割神经网络可以被联合训练。联合训练描述符神经网络和分割神经网络可以包括:反向传播损失函数的梯度,以联合训练描述符神经网络和分割神经网络,从而生成更精确的预测分割。该方法还可以包括反向传播损失函数的梯度,以训练描述符神经网络更精确地生成:(i)识别描绘对象的区域的数据、(ii)在区域中描绘的预测类型的对象、以及(iii)包括语义通道和方向通道的特征通道。该方法还可以包括反向传播损失函数的梯度,以联合训练描述符神经网络、分割神经网络和细化神经网络,从而生成更精确的预测分割。

生成在图像的区域中描绘的预测类型的对象可以包括:将该区域分成多个子区域;使用偏移神经网络针对每个子区域生成偏移;从与多个偏移子区域中的每一个相对应的描述符神经网络的中间输出中提取特征数据;对从多个偏移子区域的每一个中提取的特征数据进行大小调整;以及使用描述符神经网络的一个或多个神经网络层来处理调整大小的特征数据,以生成在图像的区域中描绘的预测类型的对象。描述符神经网络可以基于一组训练数据来预训练。

根据第二方面,提供了一种计算机实施的方法,该方法包括将图像作为输入提供给描述符神经网络,该描述符神经网络处理图像以生成对应输出。输出包括识别图像的一个或多个区域的数据,其中在每个区域中描绘对象,并且对于每个区域,在该区域中描绘预测类型的对象。输出还包括一个或多个特征通道,其中每个特征通道是描述符神经网络的输出,并且每个特征通道具有与输入图像的维度相同的维度。针对一个或多个区域中的每一个生成区域描述符,包括,对于每个区域:(i)对于特征通道中的至少一个,提取与特征通道的区域相对应的特征数据,(ii)将提取的特征数据调整大小到预定维度,以及(iii)连接调整大小的特征数据。一个或多个区域中的每一个的区域描述符被提供给分割神经网络,该分割神经网络处理区域的区域描述符以生成包括在区域中描绘的预测类型的对象的预测实例分割的输出。

在一些实施方式中,该方法还包括针对一个或多个区域中的每一个生成分割描述符。这可以包括,对于每个区域,从具有与输入图像的维度相同的维度的描述符神经网络的一个或多个中间输出中提取与该区域相对应的特征数据。从描述符神经网络的一个或多个中间输出提取的特征数据被调整大小到预定维度。将来自描述符神经网络的一个或多个中间输出的调整大小的特征与在区域中描绘的预测类型的对象的预测实例分割相连接。一个或多个区域中的每一个的分割描述符被提供给细化神经网络,其中该细化神经网络处理分割描述符,以生成与分割描述符相对应的在区域中描绘的预测类型的对象的经细化的预测实例分割。

在一些实施方式中,特征通道包括一个或多个语义特征通道,其中每个语义特征通道与特定类型的对象相关联。

在一些实施方式中,生成区域的区域描述符还包括,提取与语义特征通道的区域相对应的特征数据,该语义特征通道与在区域中描绘的预测类型的对象相关联。

在一些实施方式中,生成区域的区域描述符还包括,池化与一个或多个特征通道的区域相对应的特征数据。

在一些实施方式中,池化与一个或多个特征通道的区域相对应的特征数据包括,将该区域划分成一个或多个子区域。子区域中的每一个与不同的特征通道相关联。对于子区域中的每一个,提取对应于与子区域相关联的特征通道的子区域的特征数据。

在一些实施方式中,该方法还包括确定输入图像的像素处于在区域中描绘的预测类型的对象的预测实例分割中。输入图像的像素与预测类型的对象相关联。

在一些实施方式中,该方法还包括基于损失函数反向传播梯度,以联合训练描述符神经网络和分割神经网络,从而生成更精确的预测实例分割。

在一些实施方式中,基于损失函数的反向传播梯度还包括,训练描述符神经网络更精确地生成识别描绘对象的区域的数据和在区域中描绘的预测类型的对象。

在一些实施方式中,该方法还包括基于损失函数反向传播梯度,以联合训练描述符神经网络、分割神经网络和细化神经网络,从而生成更精确的预测实例分割。

在一些实施方式中,提取与特征通道的区域相对应的特征数据还包括将该区域分成多个子区域。使用偏移神经网络针对每个子区域生成偏移。提取与特征通道的多个偏移子区域中的每一个相对应的特征数据。将从多个偏移子区域中的每一个提取的特征数据调整大小。

在一些实施方式中,描述符神经网络基于一组训练数据来预训练。

应当理解,各方面可以以任何方便的形式来实施。例如,各方面可以通过适当的计算机程序来实施,该计算机程序可以承载在适当的载体介质上,该适当的载体介质可以是有形载体介质(例如,磁盘)或无形载体介质(例如,通信信号)。各方面也可以使用合适的装置来实施,该装置可以采取运行被布置为实施本发明的计算机程序的可编程计算机的形式。可以组合各方面,使得在一个方面的上下文中描述的特征可以在另一方面实施。

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

本说明书中描述的实例分割系统可以处理图像以生成对象检测数据,该对象检测数据定义:(i)图像中每个描绘对象实例的区域(例如,由边界框指定)、以及(ii)在每个区域中描绘的对象实例的相应对象类型。此后,系统可以生成在区域中的每一个中描绘的对象实例的相应分割。

通常,系统确定来描绘特定对象类型的对象实例的图像的区域也可以描绘:(i)相同对象类型的一个或多个附加对象实例的部分、(ii)不同对象类型的一个或多个附加对象实例的部分或全部、或者(iii)两者。例如,图像中给定的人周围的边界框可以附加地包含图像中站在给定的人旁边的另一个人的手臂和肩膀、该给定的人手中正拿着的咖啡杯(或其他对象)、或者两者。

本说明书中描述的系统可以生成在区域中描绘的对象实例的分割,在该区域中描绘的对象实例的该分割排除了:也在该区域中描绘的(i)相同类型的附加对象实例的任何部分、以及(ii)不同类型的任何附加对象实例。具体地,系统可以处理图像以生成语义通道和方向通道。对于图像的每个像素,语义通道表征像素被包括在预定数量的可能对象类型的每一个的对象中的相应可能性,方向通道表征从像素到包括该像素的对象的中心的方向。系统可以使用方向通道将在区域中描绘的对象实例与也在区域中描绘的相同类型的附加对象实例的任何部分区分开。此外,系统可以使用语义通道将在区域中描绘的对象实例与也在区域中描绘的不同类型的任何附加对象实例区分开。因此,通过使用语义通道和方向通道生成对象实例分割,本说明书中描述的系统可以生成对象实例分割,这可以比通过传统系统生成的对象实例分割更精确。这是图像处理领域的技术改进。

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

附图说明

图1是示例实例分割系统的框图。

图2是用于处理图像以联合执行对象检测和语义分割的示例过程的流程图。

图3是用于针对由对象检测数据定义的图像的区域生成区域描述符的示例过程的流程图。

图4是用于联合训练分割神经网络、描述符神经网络以及可选地,细化(refining)神经网络的示例过程的流程图。

不同附图中相同的参考编号和名称表示相同的元件。

具体实施方式

本说明书描述了在一个或多个位置中的一个或多个计算机上实施为计算机程序的实例分割系统。本说明书中描述的系统被配置为通过处理图像以生成输出来联合执行对象检测和语义分割,该输出定义:(i)图像中每个描绘相应对象的实例的区域、(ii)在每个区域中描绘的对象实例的相应对象类型(例如,车辆、猫、人等)、以及(iii)在每个区域中描绘的对象实例的相应分割。在区域中描绘的对象实例的分割定义了该区域中的哪些像素被包括在对象实例中。在本说明书中,图像的区域指的是图像的连续子集,例如,如由图像中的边界框所定义的。

系统使用描述符神经网络处理图像,以生成与该图像相对应的对象检测数据和特征通道。对象检测数据定义:(i)图像中每个描绘对象实例的区域、以及(ii)在每个区域中描绘的对象实例的相应对象类型。特征通道包括:(i)语义通道、(ii)方向通道、或者(iii)两者。对于图像的每个像素,语义通道表征像素被包括在预定数量的可能对象类型的每一个的对象中的相应可能性,以及方向通道表征从像素到包括该像素的对象的中心的方向。

系统处理对象检测数据和特征通道,以针对由对象检测数据定义的每个区域生成相应区域描述符。例如,系统可以通过从特征通道中的一个或多个(即语义通道、方向通道或两者)中提取(例如,裁剪)与区域相对应的特征数据,来针对该区域生成区域描述符。系统使用分割神经网络处理每个区域描述符,以生成在区域中描绘的对象实例的分割。

通常,系统确定来描绘特定对象类型的对象实例的图像的区域也可以描绘:(i)相同对象类型的一个或多个附加对象实例的部分、(ii)不同对象类型的一个或多个附加对象实例的部分或全部、或者(iii)两者。例如,图像中给定的人周围的边界框可以附加地包含图像中站在该给定的人旁边的另一个人的手臂和肩膀、该给定的人手中正拿着的咖啡杯(或其他对象)、或者两者。分割神经网络可以处理区域描述符以生成在该区域中描绘的对象实例的分割,在该区域中描绘的对象实例的该分割排除了:也在该区域中描绘的(i)相同类型的附加对象实例的任何部分、以及(ii)不同类型的任何附加对象实例。为了将在区域中描绘的对象实例与也在该区域中描绘的相同类型的附加对象实例的任何部分区分开,分割神经网络可以使用从方向通道提取的区域描述符的分量。为了将在区域中描绘的对象实例与也在该区域中描绘的不同类型的任何附加对象实例区分开,分割神经网络可以使用从语义通道提取的区域描述符的分量。

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

图1是示例实例分割系统100的框图。该实例分割系统100是在其中实施下面描述的系统、组件和技术的一个或多个位置中的一个或多个计算机上实施为计算机程序的系统的示例。

实例分割系统100被配置成处理图像102以生成对象检测数据106和对象分割数据116。对象检测数据106定义:(i)图像102中每个描绘相应对象实例的区域、(ii)在每个区域中描绘的对象实例的相应对象类型。对象分割数据116定义在每个区域中描绘的对象实例的相应分割。在区域中描绘的对象实例的分割定义了该区域中的每个像素是否包括在对象实例中。系统100使用描述符神经网络104和分割神经网络114生成对象检测数据106和对象分割数据116,如将在下面更详细地描述,该描述符神经网络104和分割神经网络114可以使用端到端机器学习训练技术来训练。

图像102可以被表示为二维(two-dimensional,2d)像素阵列,其中每个像素被表示为一个或多个值的向量。例如,如果图像102是黑白图像,则每个像素可以被表示为表示像素的亮度的整数或浮点数(即,具有一个分量的向量)。作为另一个示例,如果图像102是红-绿-蓝(red-green-blue,rgb)图像,则每个像素可以被表示为具有分别表示像素的红、绿和蓝颜色的强度的三个整数或浮点分量的向量。

系统100使用描述符神经网络104处理图像102,以生成对象检测数据106和特征通道108(如将在下面更详细描述的)。描述符神经网络104是卷积神经网络(即,包括一个或多个卷积神经网络层),并且可以被实施为体现任何适当的卷积神经网络架构。在特定示例中,描述符神经网络104可以包括输入层,后面是“共享”卷积神经网络层的序列。最终共享卷积神经网络层的输出可以被提供给被配置为生成对象检测数据106的一个或多个附加神经网络层的序列。

被配置为生成对象检测数据106的附加神经网络层可以具有从对象检测神经网络导出的架构,该架构参考以下描述:“fasterr-cnn:towardsreal-timeobjectdetectionwithregionproposalnetworks”,advancesinneuralinformationprocessingsystems(nips),2015(然而,也可以使用其他适当的神经网络处理)。最终共享卷积神经网络层的输出可以被提供给一个或多个附加神经网络层的不同序列,以生成特征通道108。

对象检测数据106可以通过例如在图像102中描绘的对象实例周围的边界框的坐标来定义图像102中描绘对象实例的区域。对象检测数据106可以通过例如对于图像区域的对象类型概率的向量来定义在图像区域中描绘的对象实例的对象类型。对象类型概率的向量可以包括对于预定数量的可能对象类型中的每一个的相应概率值。系统100可以确定图像区域描绘了与对于该图像区域的对象类型概率的向量中的最高概率值相对应的对象类型的对象实例。对象类型的示例包括车辆、猫、人等,以及“背景”对象类型(即,针对被包括在图像的背景中而不是在图像中描绘的特定对象中的像素)。

特征通道108可以包括:(i)语义通道、(ii)方向通道、或者(iii)两者。语义通道和方向通道可以用任何适当的格式来表示。对于图像102的每个像素,语义通道表征像素被包括在预定数量的可能对象类型中的每一个的对象中的相应可能性,并且方向通道表征从像素到包括该像素的对象的中心的方向。对象的“中心”可以指,例如,被包括在对象中的所有像素的质心。作为另一个示例,对象的中心可以指对象周围的边界框的中心。下面是语义通道和方向通道的几个示例表示。

在一些实施方式中,特征通道108可以包括与预定数量的对象类型的每个对象类型相对应的相应语义通道。每个语义通道可以被表示为似然值(例如,0和1之间的概率值)的2d阵列,其中每个似然值表征图像102的对应像素(或多个像素)被包括在与语义通道相对应的对象类型的对象中的可能性。

在一些实施方式中,特征通道108可以包括与预定数量的角度范围(例如,弧度)中的每一个相对应的相应方向通道。每个方向通道可以被表示为似然值(例如,0和1之间的概率值)的2d阵列。每个似然值表征从图像102的对应像素(或多个像素)到包括该像素的相应对象实例的中心的方向在与方向通道相对应的角度范围内的可能性。与不被包括在对象实例中的图像的像素相对应的似然值可以具有任何适当的值。

在一些情况下,特征通道108可以具有与图像102相同的维度,而在其他情况下,特征通道108可以具有与图像102不同的(例如,更小的)维度。例如,被包括特征通道108中的语义通道和方向通道可以具有比图像102更小的维度,在这种情况下,语义通道和方向通道中的每个似然值可以对应于图像102中的多个像素。

系统100使用区域描述符引擎110处理对象检测数据106和特征通道108,以针对由对象检测数据106定义的图像102的每个区域生成相应区域描述符112。区域描述符引擎110通过从特征通道108中的一个或多个(即,语义通道和方向通道中的一个或多个)提取(例如,裁剪)与图像102的区域相对应的特征数据,来针对该区域生成区域描述符112。区域描述符112可以每个被表示为数值的多维阵列。参考图3进一步描述针对由对象检测数据106定义的图像102的区域生成区域描述符。

系统100使用分割神经网络114处理由对象检测数据106定义的图像102中的区域的每个区域描述符112,以生成每个区域的相应对象分割数据116。区域的对象分割数据116定义了在该区域中描绘的对象实例的分割(即,具有由对象检测数据106为该区域指定的对象类型)。例如,区域的对象分割数据116可以定义在该区域中的每个像素被包括在该区域中描绘的对象实例中的相应概率值(即,0和1之间的数字)。在此示例中,系统100可以确定在区域中具有满足(例如,超过)像素被包括在区域中描绘的对象实例中的阈值的概率值的那些像素。

可选地,系统100可以针对由对象检测数据106定义的图像102的每个区域生成经细化的对象分割数据124。对于图像102的区域的经细化的对象分割数据124定义了在该区域中描绘的对象实例的分割,在该区域中描绘的对象实例的该分割可能比由对象分割数据116定义的对象实例的分割更精确。

为了针对由对象检测数据106定义的图像102的区域生成经细化的对象分割数据124,系统100可以使用分割描述符引擎118来针对该区域生成分割描述符120。分割描述符引擎118可以通过从描述符神经网络104的一个或多个中间输出中提取(例如,裁剪)与区域相对应的特征数据,并且将提取的特征数据与该区域的对象分割数据116相连接,来针对该区域生成分割描述符120。描述符神经网络的中间输出是指由描述符神经网络的一个或多个隐藏层生成的输出,例如描述符神经网络的共享卷积神经网络层(如先前所述)。系统100可以使用细化神经网络122来处理图像102的区域的分割描述符120,以针对图像102的区域生成经细化的对象分割数据124。

分割神经网络114和细化神经网络122可以被实施为体现任何适当的神经网络架构。例如,分割神经网络114和细化神经网络122可以是卷积神经网络,其中每个卷积神经网络包括一个或多个相应卷积神经网络层。

系统100可以基于包括多个训练示例的一组训练数据来联合训练分割神经网络114和描述符神经网络104。每个训练示例可以包括:(i)训练图像、(ii)目标对象检测数据、(iii)目标特征通道、以及(iv)目标对象分割数据。目标对象检测数据、目标特征通道和目标对象分割数据表示应该由系统100通过处理训练图像生成的输出,并且可以例如通过人工注释来获得。

为了训练分割神经网络114和描述符神经网络104,系统100处理训练图像以生成训练图像的对象检测数据106、特征通道108和对象分割数据116。系统100(例如,使用反向传播)确定损失函数的梯度,该损失函数的梯度比较:通过将训练图像处理成被包括在训练示例中的对应目标数据而由系统100生成的(i)对象检测数据106、(ii)特征通道108、以及(iii)对象分割数据116。系统100可以使用梯度来调整分割神经网络114和描述符神经网络104的参数值。在多次训练迭代中,系统100可以以所描述的方式迭代地调整分割神经网络114和描述符神经网络104的参数值,直到满足训练终止标准。在一些情况下,系统100可以在与分割神经网络114和细化神经网络122一起联合训练描述符神经网络114之前,通过单独训练描述符神经网络114来“预训练”描述符神经网络114。参考图4描述了用于联合训练分割神经网络114、描述符神经网络104以及可选地,细化神经网络122的示例过程。

在一些实施方式中,系统100将输入图像102的每个像素与标签相关联,其中可能的标签包括预定数量的对象类型(包括“背景”类型)中的每一个。例如,如果对象分割数据116定义图像102的给定像素被包括在特定对象类型的对象中,则系统100可以将图像102的像素与特定对象类型的标签相关联。将图像的像素与标签相关联可以指,例如,在数据贮存器中存储将图像的像素与标签链接的数据。

图2是用于处理图像以联合执行对象检测和语义分割的示例过程的流程图。为了方便,过程200将被描述为由位于一个或多个位置中的一个或多个计算机的系统执行。例如,根据本说明书被适当编程的实例分割系统,例如图1的实例分割系统100,可以执行过程200。

系统接收图像(202)。如前所述,图像可以被表示为二维像素阵列,其中每个像素被表示为一个或多个值的向量。图像可以是黑白图像、彩色图像(例如,rgb图像)或任何其他类型的图像。

系统使用描述符神经网络处理图像,以生成与图像相对应的对象检测数据和特征通道(204)。如参考图1所述,描述符神经网络可以被实施为体现任何适当的卷积神经网络架构。

对象检测数据定义:(i)图像中每个描绘相应对象实例的区域、以及(ii)在每个区域中描绘的对象实例的相应对象类型。图像中描绘相应对象实例的区域可以通过例如图像中相应对象周围的边界框来表示。对象实例的对象类型是来自一组预定的可能对象类型的对象类型。可能的对象类型的示例包括车辆、猫、人等(以及背景类型)。

特征通道可以包括:(i)语义通道、(ii)方向通道、或者(iii)两者。语义通道和方向通道可以用任何适当的格式来表示。对于图像的每个像素,语义通道表征像素被包括在预定数量的可能对象类型的每一个的对象中的相应可能性,以及方向通道表征从像素到包括该像素的对象的中心的方向。参考图1描述语义通道和方向通道的可能表示的示例。

在一些情况下,系统可以实施可变形裁剪操作,以生成识别在图像的区域中描绘的对象实例的对象类型的数据。具体而言,系统可以确定图像的区域到多个子区域的划分(即分割),并且裁剪与子区域中的每一个相对应的描述符神经网络的中间输出的部分。系统可以使用偏移神经网络针对每个子区域处理来自描述符神经网络的中间输出的相应的裁剪数据,以针对每个子区域生成偏移值。子区域的偏移值可以被表示为表示在“x”方向上的偏移和在“y”方向上的偏移的一对值。子区域的偏移值定义对应“偏移”子区域(即,通过将每个子区域偏移偏移值)。系统随后可以对与每个偏移子区域相对应的描述符神经网络的中间输出的部分进行裁剪和调整大小,并且使用一个或多个神经网络层处理裁剪数据,以生成识别在区域中描绘的对象实例的对象类型的数据。

系统针对由对象检测数据定义的一个或多个区域中的每一个生成区域描述符(206)。系统通过从特征通道108的一个或多个(即,语义通道和方向通道中的一个或多个)中提取(例如,裁剪)与图像的区域相对应的特征数据,来针对该区域生成区域描述符。区域描述符112可以每个被表示为数值的多维阵列。参考图3进一步描述用于针对由对象检测数据定义的图像的区域生成区域描述符的示例过程。

针对由对象检测数据定义的图像中的每个区域,系统使用分割神经网络处理该区域的区域描述符,以针对该区域生成相应的对象分割数据(208)。区域的对象分割数据定义了在该区域中描绘的对象实例的分割。例如,区域的对象分割数据可以定义在该区域中的每个像素被包括在该区域中描绘的对象实例中的相应概率值(即,0和1之间的数字)。在此示例中,系统可以确定在区域中具有满足(例如,超过)阈值的概率值的那些像素被包括在该区域中描绘的对象实例中。如参考图1所述,分割神经网络可以被实施为体现任何适当的神经网络架构(例如,卷积神经网络架构)。

可选地,系统针对由对象检测数据定义的一个或多个区域中的每一个生成分割描述符(210)。系统可以通过从描述符神经网络的一个或多个中间输出中提取(例如,裁剪)与区域相对应的特征数据,并且将提取的特征数据与该区域的对象分割数据相连接,来针对该区域生成分割描述符。

可选地,针对由对象检测数据定义的图像中的每个区域,系统使用细化神经网络处理该区域的分割描述符,以针对该区域生成相应经细化的对象分割数据(212)。区域的经细化的对象分割数据定义了在该区域中描绘的对象实例的“经细化的”(例如,更精确)分割。例如,区域的经细化的对象分割数据可以定义在该区域中的每个像素被包括在该区域中描绘的对象实例中的相应概率值(即,0和1之间的数字)。通过利用来自描述符神经网络的中间输出的附加信息,细化神经网络可以实现比分割神经网络更高的对象分割精度。

图3是用于针对由对象检测数据定义的图像的区域生成区域描述符的示例过程300的流程图。为了方便,过程300将被描述为由位于一个或多个位置中的一个或多个计算机的系统执行。例如,根据本说明书被适当编程的实例分割系统,例如图1的实例分割系统100,可以执行过程300。

系统从语义通道提取(例如,裁剪)与图像的区域相对应的特征数据(302)。如前所述,语义通道可以包括与预定数量的对象类型的每个对象类型相对应的相应语义通道。系统可以从语义通道裁剪特征数据,该语义通道对应于在图像的区域中描绘的对象实例的对象类型(即,由对象检测数据定义),同时避免从其他语义通道裁剪特征数据。在特定示例中,如果对象检测数据将在区域中描绘的对象实例的对象类型定义为“人”,则系统可以从与“人”对象类型相对应的语义通道裁剪与图像的区域相对应的特征数据。

如前所述,每个语义通道可以被表示为似然值的2d阵列。语义通道中的每个似然值与图像的一个或多个像素相对应。例如,表示语义通道的似然值的2d阵列可以具有与图像相同的维度(即,相同数量的行和列),在这种情况下,语义通道中的每个似然值可以恰好对应于图像中的一个像素。作为另一个示例,表示语义通道的似然值的2d阵列可以具有比图像更小的维度(例如,由于在描述符神经网络中执行的卷积操作),在这种情况下,语义通道中的每个似然值可以对应于图像中的多个像素。不管语义通道相对于图像的维度如何,从语义通道裁剪与图像的区域相对应的特征数据是指从语义通道提取与被包括在图像的区域中的像素相对应的似然值。

系统从方向通道提取(例如,裁剪)与图像的区域相对应的特征数据(304)。例如,如前所述,方向通道可以包括与预定数量的角度范围(例如,弧度)中的每一个相对应的相应方向通道。为了从方向通道提取与图像的区域相对应的特征数据,系统可以定义将图像的区域划分为预定的一组子区域的划分,并将子区域中的每一个与不同的方向通道相关联。在特定示例中,系统可以定义将由边界框定义的图像的区域划分成四个子框的划分,并将每个子框与对应于不同角度范围的方向通道相关联。对于每个方向通道,系统可以提取对应于与方向通道相关联的图像的子区域的特征数据。所描述的从方向通道提取特征数据的操作可以被称为“池化(pooling)”操作。

系统将从语义通道和方向通道提取的特征数据调整大小到预定维度,并连接调整大小的特征数据(306)。将一组数据调整大小到预定维度是指确定具有预定维度的数据的表示。例如,系统可以使用平均或最大池化操作将从特征通道提取的特征数据调整大小到预定维度。在此示例中,系统可以将从特征通道提取的特征数据划分成预定数量的子窗口的网格,然后将每个子窗口中的值平均或最大池化到提取的特征数据的调整大小的表示中的对应位置。通过将从每个特征通道提取的特征数据调整大小到预定维度,并连接来自每个特征通道的调整大小的特征数据,系统可以生成具有一致维度的区域描述符,而不管对应图像的区域的大小和形状如何。分割神经网络被配置为处理一致维度的区域描述符,以生成与图像的区域相对应的对象检测数据。

图4是用于联合训练分割神经网络、描述符神经网络以及可选地,细化神经网络的示例过程的流程图。为了方便,过程400将被描述为由位于一个或多个位置中的一个或多个计算机的系统执行。例如,根据本说明书被适当编程的实例分割系统,例如图1的实例分割系统100,可以执行过程400。

系统从包括多个训练示例的一组训练数据中获得训练示例(402)。每个训练示例可以包括:(i)训练图像、(ii)目标对象检测数据、(iii)目标特征通道(即语义和方向通道)、以及(iv)目标对象分割数据。目标对象检测数据、目标特征通道和目标对象分割数据表示应该由系统通过处理训练图像生成的输出,并且可以例如通过人工注释来获得。系统可以通过从训练数据中随机采样预定数量的训练示例来获得训练示例。

系统根据描述符神经网络参数和分割神经网络参数的当前值,使用描述符神经网络和分割神经网络处理训练图像,以生成训练图像的相应对象检测数据、特征通道和对象分割数据(404)。可选地,系统可以根据细化神经网络参数的当前值,使用细化神经网络处理针对训练图像生成的对象分割数据,以生成训练图像的经细化的对象分割数据。

系统反向传播损失函数的梯度,以调整描述符神经网络、分割神经网络以及可选地,细化神经网络的参数,从而使系统生成更精确的对象检测数据、特征通道、对象分割数据以及可选地,经细化的对象分割数据(406)。

损失函数可以包括将由系统通过处理训练图像生成的对象检测数据与由训练示例指定的目标对象检测数据进行比较的项。例如,损失函数可以包括将由对象检测数据定义的对象实例边界框的坐标与由目标对象检测数据定义的对象实例边界框的目标坐标进行比较的平滑l1损失项或平方差损失项。作为另一个示例,损失函数可以包括将由对象检测数据定义的对象类型与由目标对象检测数据定义的目标对象类型进行比较的交叉熵损失项。

损失函数可以包括将由系统通过处理训练图像生成的特征通道与由训练示例指定的目标特征通道进行比较的项。例如,损失函数可以包括将语义通道和由系统生成的方向通道与目标语义通道和目标方向通道进行比较的逐像素交叉熵损失项。

损失函数可以包括将由系统通过处理训练图像生成的对象分割数据(以及,可选的,经细化的对象分割数据)与由训练示例指定的目标对象分割数据进行比较的项。例如,损失函数可以包括将对象分割数据(以及,可选地,细化的对象分割数据)与目标对象分割数据进行比较的逐像素交叉熵损失项。

系统可以使用任何适当的技术(例如,反向传播)来确定损失函数相对于描述符神经网络、分割神经网络以及可选地,细化神经网络的当前参数值的梯度。在计算损失函数的梯度之后,训练系统可以使用任何适当的梯度下降优化算法更新规则来调整描述符神经网络、分割神经网络以及可选地,细化神经网络的当前参数值。梯度下降优化算法的示例包括adam、rmsprop、adagrad、adadelta和adamax等。

在基于训练示例调整神经网络参数的当前值之后,系统可以确定是否满足训练终止标准。例如,如果过程400的预定数量的迭代已经完成,或者如果梯度的幅度低于预定阈值,则系统可以确定满足训练终止标准。响应于确定满足训练终止标准,系统可以输出描述符神经网络、分割神经网络以及可选地,细化神经网络的训练参数值。响应于确定不满足训练终止标准,系统可以返回步骤402并重复前面的步骤。

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

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

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

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

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

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

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

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

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

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

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

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

计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络来交互。客户端和服务器的关系是通过在相应的计算机上运行的计算机程序产生的,并且彼此之间具有客户端-服务器关系。在一些实施例中,服务器将数据(例如,html页面)传输到用户设备,例如,用于向与充当客户端的设备交互的用户显示数据和从该用户接收用户输入的目的。在用户设备处生成的数据,例如用户交互的结果,可以在服务器处从设备接收。

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

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

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

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