通过分类对象部分发现图像中的对象的制作方法

文档序号:28114206发布日期:2021-12-22 14:26阅读:136来源:国知局
通过分类对象部分发现图像中的对象的制作方法
通过分类对象部分发现图像中的对象


背景技术:

1.本说明书涉及使用神经网络来处理图像。
2.神经网络是采用一层或多层非线性单元预测所接收到的输入的输出的机器学习模型。除了输出层之外,一些神经网络还包括一个或多个隐藏层。每个隐藏层的输出用作网络中下一层(即,下一个隐藏层或者输出层)的输入。网络的每层根据相应的参数集合的当前值从接收到的输入生成输出。


技术实现要素:

3.本说明书描述了在一个或多个位置的一台或多台计算机上实现为计算机程序的系统,该系统对图像进行处理以检测图像中的对象。一旦系统检测到对象,系统的输出便可以被提供以呈现给用户,可以用于将检测到的对象,分类成例如,对象类别,或者可以用于一些其它下游任务,例如,语义分割、动作分类、机器人控制等。
4.该系统包括对象部分神经网络,该对象部分神经网络对输入图像进行处理以生成预测部分特征数据,该预测部分特征数据针对多个可能对象部分中的每个可能对象部分可以包括:i)表示可能对象部分在输入图像中被描绘的可能性的部分存在概率,ii)在可能对象部分在输入图像中被描绘的情况下可能对象部分在输入图像中的预测姿态,以及iii)在可能对象部分在输入图像中被描绘的情况下表征可能对象部分的描绘的对象部分特征向量。该系统还包括对象检测神经网络130,该对象检测神经网络130对多个可能对象部分的预测部分特征数据进行处理以生成对象检测输出,该对象检测输出识别输入图像中描绘的一个或多个对象。通常,对象检测神经网络基于预测部分特征数据将可能对象部分组织成对象及其姿态,然后识别哪些对象部分属于哪些对象。
5.在一些实现方式中,可以将对象部分神经网络或对象检测神经网络中的一个或两者训练作为相应自动编码器的组件。在这些实现方式中,对象部分神经网络也可以称为“部分胶囊自动编码器”,而对象检测神经网络也可以称为“对象胶囊自动编码器”。
6.本说明书中描述的主题的可以在特定实施例中实施以实现以下优点中的一个或多个。
7.即使在训练期间没有标记数据可用时,所描述的技术也允许在图像中检测对象。换言之,即使当完全在未标记数据上训练时,即当仅在原始图像上训练时,所描述的神经网络的架构也允许神经网络有效地执行对象检测。一旦生成,系统的对象检测输出可以用于准确地识别检测到的对象所属的对象类别,即使是在训练之后只有少数对象类别标签变得可用时。此外,所描述的系统可以以统计上有效的方式获取视点不变知识,并且不依赖于任何复杂的数据扩充技术来生成质量对象检测输出,使得系统在推断时和在训练期间是计算效率高的。
8.在附图和下面的描述中阐述了本说明书的主题的一个或多个实施例的细节。本主题的其它特征、方面和优点将会从描述、附图和权利要求书中变得显而易见。
附图说明
9.图1是示例对象检测系统的示意图。
10.图2是示例输入图像和示例重构图像的图示。
11.图3是示例训练系统的示意图。
12.图4是生成对象检测输出的示例过程的流程图。
13.图5是对预测部分特征数据进行处理以生成对象检测输出的示例过程的流程图。
14.图6是生成部分姿态分布的示例过程的流程图。
15.在各个附图中,相同的附图标记和名称表示相同的元件。
具体实施方式
16.本说明书描述了对图像进行处理以检测图像中的对象的系统。
17.图1是示例对象检测系统100的示意图。对象检测系统100是在一个或多个位置的一台或多台计算机上实施为计算机程序的系统的示例,下面描述的系统、组件和技术可以在该系统中实施。
18.对象检测系统100通过训练被配置为接收输入图像102并且对输入图像102进行处理以生成对象检测输出152,该对象检测输出152识别输入图像102中描绘的一个或多个对象。
19.在一些实现方式中,对象检测输出152中检测到的对象可以包括不具有语义含义的一个或多个对象。也就是说,对象检测输出152可以包括一个或多个检测到的对象的识别,这些对象不具有人类可解释的含义,即不一定被人类识别为“对象”。在一些这样的实现方式中,可在对象检测输出152中识别出的可能对象可以是机器学习的,例如,与对象检测系统100的参数联合学习的。下面将对该过程进行更详细地描述,例如,参照图3。
20.对象检测系统100包括对象部分神经网络110,该对象部分神经网络110接收输入图像102并且对输入图像进行处理以生成m个预测部分特征数据集合112a

m,每个预测部分特征数据集合112a

m对应输入图像102中可能描绘的相应可能对象部分。
21.在本说明书中,对象部分是可以在输入图像中描绘的较大对象的组件。例如,输入图像中描绘的可能对象可以包括手写数字,并且这些对象的对象部分可以是组合形成手写数字的单独笔画。作为一个特定示例,对象可能表示手写的“4”,并且该对象可能包括三个对象部分,每个对象部分分别表示手写的“4”的三个笔画中的一个笔画。作为另一个示例,图像中描绘的对象可以表示车辆,并且该对象的对象部分可以包括车辆的一个或多个车轮、车辆的车身的一个或多个组件等。
22.也就是说,对象部分神经网络110对输入图像102进行处理并且生成输入图像102中可能描绘的多个可能对象部分中的每个可能对象部分的相应预测部分特征集合112a

m,其中每个预测部分特征集合112a

m表征输入图像102中相应可能对象部分的描绘。在一些实现方式中,对象部分神经网络110生成可能对象部分集合中每个可能对象部分的相应预测部分特征集合112a

m。
23.在一些实现方式中,对象部分神经网络110也可以从对象部分数据存储110中获取部分元数据122。对象部分数据存储120可以包括与输入图像102中描绘的多个可能对象部分中的每个可能对象部分相对应的元数据。与特定可能对象部分相对应的部分元数据122
表征如何可以在图像中描绘该特定可能对象部分。例如,与特定可能对象部分相对应的部分元数据122可以包括表征该特定可能对象部分的模板,使得如果使用与特定输入图像相对应的仿射变换来处理模板,则变换后的模板表征该特定对象部分在特定输入图像中的位置和外观。
24.作为一个特定示例,针对每个可能对象部分,部分元数据122可以包括与该可能对象部分相对应的图像模板,该图像模板是可能对象部分的低分辨率图像表示。作为一个特定示例,可能对象部分的图像模板可以是具有多个颜色通道(例如,与红色、绿色和蓝色通道相对应的三个颜色通道)和α通道的图像。图像模板的α通道可以表示每个像素的透明度,并且可以允许相应可能对象部分的一部分像素在输入图像102中被遮挡。下面将参照图2对可能对象部分的图像模板进行更详细地描述。
25.在一些实现方式中,可能对象部分的图像模板可以是固定的,即,由对象检测系统100的用户确定。在一些其它实现方式中,图像模板可以是机器学习的,例如,与对象检测系统100的参数联合学习。下面将参照图3对该过程进行更详细地描述。
26.对象部分神经网络110生成系统输入,该系统输入包括i)输入图像并且在一些实现方式中包括ii)与每个可能对象部分相对应的部分元数据122。对象部分神经网络110对系统输入进行处理以生成m个预测部分特征集合112a

m。每个预测部分特征集合112a

m对应输入图像102中描绘的相应可能对象部分,并且可以包括以下的一个或多个:i)表示可能对象部分在输入图像102中被描绘的可能性的部分存在概率;ii)在可能对象部分在输入图像中被描绘的情况下,可能对象部分在输入图像102中的预测姿态;或者iii)在可能对象部分在输入图像102中被描绘的情况下,表征可能对象部分的描绘的对象部分特征嵌入。
27.在本说明书中,嵌入是表示特定嵌入空间中的输入的数值的有序集合。例如,嵌入可以是具有固定维度的浮点或其它数值的向量。
28.在假设可能对象部分在输入图像102中被描绘的情况下,可能对象部分的预测姿态和与可能对象部分相对应的对象部分特征嵌入都描述了该可能对象部分。也就是说,对象部分神经网络110还没有确定在输入图像102中描绘了该可能对象部分。相反,在可能对象部分在输入图像102中被描绘的情况下,对象部分神经网络生成了可能对象部分的预测姿态和特征嵌入。该假设对于部分存在概率给出的概率也是一样的。
29.在可能对象部分在图像中被描绘的情况下,可能对象部分的预测姿态表示可能对象部分与捕获输入图像102的相机之间的仿射变换。作为一个特定示例,可能对象部分的预测姿态可以通过六维编码来表示,其中两个维度对应旋转,两个维度对应平移,一个维度对应缩放,并且一个维度对应可能对象部分的图像模板的剪切。也就是说,在可能对象部分在输入图像102中被描绘的情况下,使用仿射变换处理可能对象部分的图像模板使变换后的图像模板位于输入图像102内,使得变换后的图像模板与描绘可能对象部分的那部分输入图像102重叠。
30.在可能对象部分在输入图像102中被描绘的情况下,可能对象部分的对象部分特征嵌入表征该可能对象部分在输入图像102中的描绘。例如,对象部分特征嵌入可以表征使可能对象部分在输入图像102中的描绘不同于可能对象部分的图像模板(除了可能对象部分在输入图像102内的姿态之外)的一种或多种方式。例如,对象部分特征嵌入可以表征可能对象部分在输入图像102中被描绘时的颜色。作为另一个示例,对象部分特征嵌入可以表
征可能对象部分在输入图像102中被描绘时的一个或多个遮挡。
31.在一些实现方式中,对象部分神经网络110针对输入图像102中描绘的每个可能对象部分仅生成一个预测部分特征集合112。也就是说,对象部分神经网络110可以仅识别输入图像102中描绘的每个可能对象部分的单个实例。在一些其它实现方式中,对象部分神经网络110针对单个可能对象部分可以生成多个预测部分特征嵌入112。例如,对象部分数据存储120可以包含与每个可能对象部分相对应的元数据的k个相同副本,其中k>1,使得对象部分神经网络110可以针对每个可能对象部分生成k个不同的预测部分特征集合112,以允许每个可能对象部分在输入图像102中的多达k个描绘。
32.在一些实现方式中,对象部分神经网络110包括卷积子网络。替代地或此外,对象部分神经网络110可以包括与每个可能对象部分相对应的相应可能部分子网络。下面将参照图4对对象部分神经网络生成m个预测部分特征集合112a

m的过程进行更详细地描述。
33.对象检测系统100包括对象检测神经网络130,该对象检测神经网络130接收m个预测部分特征集合112a

m并且生成对象检测输出152。
34.对象检测神经网络130可以包括对象预测子网络150和部分组成子网络160。对象预测子网络150被配置为接收m个预测部分特征集合112a

m并且生成k个预测对象特征集合132a

k,其中每个预测对象特征集合132a

k对应输入图像102中描绘的可能对象。也就是说,在可能对象在输入图像中被描绘的情况下,对象预测子网络150可以生成多个可能对象中每个可能对象的表征该可能对象在输入图像102中描绘的相应预测对象特征集合132。在一些实现方式中,对象预测子网络150生成可能对象集合中每个可能对象的相应预测对象特征集合132。
35.每个预测对象特征集合132a

k可以包括以下的一个或多个:i)表示相应可能对象在输入图像102中被描绘的可能性的对象存在概率;ii)在可能对象在输入图像102中被描绘的情况下,表征可能对象的描绘的对象特征嵌入;或者iii)在可能对象在输入图像中被描绘的情况下,可能对象在输入图像102中的预测姿态。
36.与预测部分特征集合112a

m相似,在假设可能对象在输入图像102中被描绘的情况下,可能对象的对象特征嵌入和可能对象的预测姿态都描述了该可能对象。也就是说,对象预测子网络150还没有确定在输入图像102中描绘了该可能对象。相反,在可能对象在输入图像102中被描绘的情况下,对象预测子网络150生成了可能对象的特征嵌入和预测姿态。该假设对于对象存在概率给出的概率也是一样的。
37.可能对象的预测姿态表示在可能对象处于输入图像102中的情况下可能对象与捕获输入图像102的相机之间的仿射变换。作为一个特定示例,可能对象的预测姿态可以由胶囊

相机关系(ccr)矩阵表示。例如,ccr矩阵可以是表示可能对象与相机之间的仿射变换的3x3矩阵。
38.在可能对象在输入图像102中被描绘的情况下,可能对象的对象特征嵌入表征该可能对象在输入图像102中的描绘。在一些实现方式中,对象特征嵌入是机器学习的嵌入,例如,与对象检测系统100的参数联合学习的。下面将参照图3对该过程进行更详细地描绘。
39.在一些实现方式中,对象预测子网络150使用置换不变编码器神经网络对预测部分特征集合112a

m进行处理以生成预测对象特征集合132a

k。下面将参照图5对对象预测子网络生成k个预测对象特征集合132a

k的过程进行更详细地描述。
40.对象预测子网络150可以向部分组成子网络160提供该k个预测对象特征集合132a

k。
41.在一些实现方式中,部分组成子网络160也可以从对象数据存储140中获取对象元数据142。对象数据存储140可以包括与输入图像102中描绘的多个可能对象中每个可能对象相对应的数据。与特定可能对象相对应的对象元数据142表征该特定可能对象与每个可能对象部分之间的关系,例如,表征可能对象部分在可能对象中的位置。例如,与特定可能对象相对应的对象元数据142可以包括该特定可能对象与每个可能对象部分之间的相应仿射变换。也就是说,使用仿射变换处理可能对象部分的表示将数据从可能对象部分的坐标系统变换成可能对象的坐标系统,使得可能对象部分的表示相对于可能对象处于正确位置。
42.在一些实现方式中,可能对象的对象元数据142可以是固定的,即,由对象检测系统100的用户确定。在一些其它实现方式中,对象元数据142可以是机器学习的,例如,与对象检测系统100的参数联合学习的。下面将参照图5对对象元数据142进行更详细地描述。
43.部分组成子网络160可以从预测对象特征集合132a

k(并且可选地从对象元数据142)生成网络输入。然后,部分组成子网络160可以对网络输入进行处理以生成对象检测预测152,该对象检测预测152从输入图像102中可能描绘的k个可能对象中识别出输入图像102中描绘的一个或多个对象。下面将参照图5和图6对该过程进行更详细地描述。
44.针对输入图像102中识别出的一个或多个对象中的每个对象,对象检测输出152可以包括在输入图像102中识别出的对象的位置。在一些实现方式中,对象检测输出152也可以包括识别出的对象在输入图像102中被描绘的概率和/或在输入图像102中的识别出的对象的可能姿态的概率分布。
45.对象检测系统100可以向用户显示系统提供对象检测输出152,以便向用户显示。替代地或此外,对象检测系统100可以向下游系统(例如,语义分割系统)提供对象检测输出152以便进一步处理。
46.在一些实现方式中,对象部分神经网络110通过无监督学习被训练为编码输入图像的图像自动编码器的一部分。同样地,在一些实现方式中,对象检测神经网络130通过无监督学习被训练为对象部分姿态自动编码器的一部分,该对象部分姿态自动编码器编码来自输入图像的对象部分的姿态。下面将参照图3对该过程进行更详细地描述。
47.图2是示例输入图像210和示例重构图像230的图示。重构图像230是使用表征输入图像210中描绘的可能对象部分的图像模板220来生成的。
48.重构图像230是根据对象检测系统(例如,图1所示的对象检测系统100)来生成的。具体地,针对每个重构图像230,对象检测系统对相应输入图像210进行处理以识别输入图像210中描绘的一个或多个可能对象。
49.输入图像210中描绘的每个可能对象由一个或多个对象部分构成。每个对象部分由相应的图像模板220表征,图像模板220是可能对象部分的低分辨率图像。在一些实现方式中,可能对象部分的图像模板220是通过处理训练输入图像210训练对象检测系统来机器学习的。下面将参照图3对示例训练系统进行更详细地描述。
50.针对输入图像210内识别出的每个对象的每个对象部分,对象检测系统100可以生成该对象部分的预测姿态。对象部分的预测姿态定义了使图像模板位于与该对象部分相对
应的那部分输入图像210之上的仿射变换(如果用于处理与该对象部分相对应的图像模板220)。
51.因此,已经使用i)图像模板220和ii)相应对象部分的预测姿态生成了重构图像230。也就是说,针对每个输入图像210和该输入图像210中描绘的每个对象部分,系统使用生成的对象部分的预测姿态对与对象部分相对应的图像模板220进行处理以生成变换后的图像模板。然后,系统组合每个输入图像210的变换后的图像模板以生成相应的重构图像230。
52.图3是示例训练系统300的示意图。训练系统300是在一个或多个位置的一台或多台计算机上实施为计算机程序的系统的示例,下面描述的系统、组件和技术可以在该系统中实施。
53.训练系统300被配置为对训练图像302进行处理以便更新i)部分胶囊自动编码器和ii)对象胶囊自动编码器的参数,部分胶囊自动编码器包括部分胶囊编码器310和部分胶囊解码器330,对象胶囊自动编码器包括对象胶囊编码器340和对象胶囊解码器360。具体地,训练系统300被配置为对部分胶囊自动编码器和对象胶囊自动编码器进行无监督训练。也就是说,训练图像302没有被“标记”,即没有表征训练图像302中描绘的一个或多个对象的相关联的基础事实标签。
54.在一些实现方式中,部分胶囊编码器310包括对象部分神经网络,例如,图1所示的对象部分神经网络110。在训练系统300已经完成训练部分胶囊编码器310之后,即在训练系统300已经生成部分胶囊编码器310的最终参数(包括生成对象部分神经网络的最终参数)之后,对象部分神经网络可以由对象检测系统(例如,图1所示的对象检测系统100)用来检测输入图像中的对象。
55.同样地,在一些实现方式中,对象胶囊编码器340包括对象检测神经网络,例如,图1所示的对象检测神经网络130。在训练系统300已经完成训练对象胶囊编码器340之后,即在训练系统300已经生成对象胶囊编码器340的最终参数(包括生成对象检测神经网络的最终参数)之后,对象检测神经网络可以由对象检测系统(例如,图1所示的对象检测系统100)用来检测输入图像中的对象。
56.部分胶囊编码器310可以接收训练图像302。在一些实现方式中,部分胶囊编码器310也可以从对象部分数据存储320中获取部分元数据322。对象部分数据存储320包括与训练图像302中描绘的多个可能对象部分中的每个可能对象部分相对应的元数据。针对每个可能对象部分,部分元数据322可以包括与该可能对象部分相对应的图像模板。
57.部分胶囊编码器310可以对网络输入(包括i)训练图像302和ii)部分元数据322)进行处理以生成m个预测部分特征集合312a

m。在一些实现方式中,预测多个部分特征集合,即m>1。每个预测部分特征集合312a

m对应训练图像302中描绘的相应可能对象部分,并且可以包括以下一个或多个:i)表示可能对象部分在训练图像302中被描绘的可能性的部分存在概率;ii)在可能对象部分在训练图像302中被描绘的情况下,可能对象部分在训练图像302中的预测姿态;或者iii)在可能对象部分在训练图像302中被描绘的情况下,表征可能对象部分的描绘的对象部分特征嵌入。
58.换言之,部分胶囊编码器310可以对训练图像302进行编码,以生成由预测部分特征集合312a

m表示的编码。也就是说,预测部分特征集合312a

m表征由图像模板表示的对
象部分。训练系统300可以根据预测部分特征集合312a

m操纵图像模板,如上面参照图2所述的,以便生成重构图像。该重构图像表示原始训练图像302的编码,因此预测部分特征集合312a

m表示原始训练图像302的编码。
59.部分胶囊编码器310可以向部分胶囊解码器330提供预测部分特征集合312a

m,部分胶囊解码器330可以确定由预测部分特征集合312a

m表示的编码的损失。
60.在一些实现方式中,在给定由预测部分特征集合312a

m表示的训练图像302的编码的情况下,部分胶囊解码器330可以确定“图像可能性”。也就是说,部分胶囊解码器330可以以由预测部分特征集合312a

m表示的编码为条件来计算观察到的训练图像302的概率。
61.作为一个特定示例,部分胶囊解码器330可以计算:
[0062][0063]
其中y是训练图像302;m是可能对象部分的数量;(i,j)表示训练图像302内的特定像素位置;表示在相同像素位置(i,j)处的不同可能对象部分m的混合概率;c
m
表示第m个可能对象部分的图像模板的预测颜色;表示在根据预测部分特征集合312中识别的第m个可能对象部分的预测姿态处理第m个可能对象部分的原始模板t
m
之后第m个可能对象部分的变换后的图像模板;表示在第(i,j)个像素位置处的第m个可能对象部分的变换后的图像模板的颜色通道;以及是恒定方差值。
[0064]
预测颜色c
m
可以通过使用神经网络(例如,多层感知器)处理预测部分特征集合312中识别出的第m个对象部分的对象部分特征嵌入来生成。
[0065]
在一些实现方式中,在特定像素位置(i,j)处的可能对象部分的混合概率与i)预测部分特征集合312中识别出的可能对象部分的存在概率和ii)在该特定像素位置处的可能对象部分的变换后的图像模板的α值成比例,即:
[0066]
部分胶囊解码器330可以使用计算出的图像可能性来确定对部分胶囊编码器310的参数的更新。训练系统300可以通过部分胶囊编码器310反向传播该更新。图3所示的虚线表示反向传播的方向。
[0067]
训练系统300可以进一步将参数更新反向传播到对象部分数据存储320,以更新可能对象部分的图像模板。也就是说,因为当部分胶囊编码器310生成预测部分特征集合312a

m时图像模板是至部分胶囊编码器310的输入,所以训练系统可以将梯度反向传播到图像模板并且确定对图像模板的每个通道的值的更新。通过这种方式,训练系统300可以自动学习可能对象部分的图像模板,图像模板定义了可能对象部分本身。因此,训练系统300的用户不必确定可能对象部分应该是什么;相反,训练系统300可以通过训练确定可用于表征大范围的训练图像302的可能对象部分的最佳特性。
[0068]
部分胶囊编码器310可以向对象胶囊编码器340提供预测部分特征集合312a

m。在一些实现方式中,对象胶囊编码器340也可以从对象数据存储350中获取对象元数据352。对象元数据352包括与训练图像302中描绘的多个可能对象中的每个可能对象相对应的数据。
与特定可能对象相对应的对象元数据352包括该特定可能对象与每个可能对象部分之间的相应仿射变换。例如,针对每个可能对象,对象元数据352可以包括m个可能对象部分中每个可能对象部分的相应胶囊

部分关系(cpr)矩阵,其中每个cpr矩阵表示可能对象与可能对象部分之间的仿射变换。
[0069]
对象胶囊编码器340可以对网络输入(包括i)预测部分特征集合312a

m和ii)对象元数据352)进行处理以生成预测的p个部分姿态分布342a

p(包括与每个可能对象和每个可能对象部分相对应的相应部分姿态分布),其中p=m
·
km是可能对象部分的数量,k是可能对象的数量。在特定可能对象部分是特定可能对象的组件的情况下,特定可能对象和特定可能对象部分的部分姿态分布342识别该特定可能对象部分的训练图像302内的特定姿态的范围、以及每个特定姿态的相关概率。下面将参照图6对部分姿态分布进行更详细地论述。
[0070]
换言之,对象胶囊编码器340可以将预测部分特征集合312a

m编码成由部分姿态分布342a

p表示的编码。也就是说,对象胶囊编码器340将预测部分特征集合312a

m作为基础事实,即假设预测部分特征集合312a

m中识别出的每个可能对象的预测姿态是正确的。然后,对象胶囊编码器可以生成分配给不同特定可能对象的表示相同可能对象部分的部分姿态分布342a

p。因此,部分姿态分布342a

p表示预测部分特征集合312a

m中识别出的预测姿态的编码。
[0071]
对象胶囊编码器340可以向对象胶囊解码器360提供部分姿态分布342a

p,对象胶囊解码器360可以确定由部分姿态分布342a

p表示的编码的损失。
[0072]
在一些实现方式中,在给定预测部分特征集合312a

m中识别出的可能对象部分的姿态的编码的情况下,对象胶囊解码器360可以确定“部分姿态可能性”。也就是说,对象胶囊解码器360可以以由部分姿态分布342a

p表示的编码为条件计算预测部分特征集合312a

m中观察到的姿态的概率。
[0073]
例如,对象胶囊解码器360可以计算:
[0074][0075]
其中a
k
是第k个可能对象在训练图像302中被描绘的存在概率;a
k,m
是在第m个可能对象部分位于第k个可能对象中的情况下第m个可能对象部分在训练图像302中被描绘的条件概率;x
m
是预测部分特征集合312a

m中识别出的第m个可能对象部分的预测姿态;p(x
m
|k,m)表示在第m个可能对象部分位于第k个可能对象中的情况下第m个可能对象部分的预测姿态的概率;以及d
m
是第m个可能对象部分位于预测部分特征集合312a

m中识别出的训练图像中的存在概率。
[0076]
在一些实现方式中,通过具有根据预测部分特征集合312a

m计算出的平均值和方差的正态分布来给出概率p(x
m
|k,m)。即:
[0077][0078]
下面将参照图6对该过程进行更详细地论述。
[0079]
对象胶囊解码器360可以使用计算出的部分姿态可能性来确定对对象胶囊编码器
340的参数的更新。训练系统300可以通过对象胶囊编码器340反向传播该更新。
[0080]
训练系统300可以进一步将参数更新反向传播到对象数据存储350,以更新对象元数据352,例如,更新与每个可能对象和每个可能对象部分相对应的cpr矩阵。也就是说,因为当对象胶囊编码器340生成部分姿态分布342a

p时cpr矩阵是至对象胶囊编码器340的输入,所以训练系统可以将梯度反向传播到cpr矩阵并且确定对每个矩阵中每个元素的值的更新。通过这种方式,训练系统300可以自动学习可能对象部分与可能对象之间的关系。因此,训练系统300的用户不必确定可能对象应该是什么或者可能对象部分应该怎样组合以形成可能对象;相反,训练系统300可以通过训练确定可用于表征大范围的训练图像302的最佳可能对象、以及可用于形成可能对象的可能对象部分的最佳组合。
[0081]
在一些实现方式中,部分胶囊自动编码器和对象胶囊自动编码器是联合训练的。例如,在训练期间,训练系统300可以将梯度从对象胶囊编码器340反向传播到部分胶囊编码器310。在一些实现方式中,可以将停止梯度应用于对象胶囊编码器的除了预测部分特征集合312a

m中识别出的对象部分特征嵌入之外的每个输入。也就是说,训练系统300不会将对象胶囊编码器340的除了对象部分特征嵌入之外的任何输入的梯度反向传播到部分胶囊编码器310。
[0082]
在一些实现方式中,训练系统300的训练目标可以促进可能对象和可能对象部分的稀疏性和多样性,如分别由对象数据存储350中的cpr矩阵和对象部分数据存储320中的图像模板所定义的。也就是说,用于训练对象胶囊自动编码器和部分胶囊自动编码器的训练目标可以促进训练系统300学习参数,这些参数i)允许特定的可能对象被专用于可能对象部分的特定布置并且ii)允许各种各样的可能对象和可能对象部分在不同训练图像中被识别。
[0083]
训练系统300可能是将对象部分神经网络和对象检测神经网络训练为图像分类系统的一部分,其中每个输入图像分配有两者类别集合的一个或多个特定类别。也就是说,由对象检测神经网络生成的对象检测输出(例如,图1所示的对象检测输出152)可以被提供给下游系统,该下游系统根据对象检测输出对输入图像进行分类。在这种情况下,可能有c个可能类别、k个可能对象和m个可能对象部分。
[0084]
通常,可能对象的特定子集对应特定类别。也就是说,如果在输入图像中识别出可能对象的特定子集,则输入图像可以被分配到特定类别。在一些实现方式中,可能类别与可能对象之间存在一对一关系。也就是说,c=m,并且每个可能对象对应特定类别。在一些其它实现方式中,一个或多个类别可能对应多个可能对象的特定子集,即m<c≤2
m
在本说明书中,如果类别对应一个或多个特定对象,则该类别“包括”该一个或多个特定对象。
[0085]
例如,训练系统300可以使用促进以下特征中的一个或多个特征的训练目标来生成参数更新:i)每个类别包括相同数量的可能对象,或者ii)每个可能对象都包括在相同数量的类别中。
[0086]
作为一个特定示例,训练系统300可以处理一批大小为b的训练图像302并且生成参数更新,以便最大化该批次的图像可能性和部分姿态可能性,为此,针对该批次中的每个训练图像302,系统可以计算每个可能对象的先验对象存在概率:
[0087][0088]
训练系统300可以针对每个可能对象计算这批训练图像的先验对象存在概率的总和:
[0089][0090]
并且针对这批训练图像中的每个训练图像计算可能对象的先验对象存在概率的总和:
[0091][0092]
在该特定示例中,训练系统300可以假设每个图像中仅描绘了一个类别。为了促进每个类别包括相同数量的可能对象,训练系统300可以促进为了促进每个可能对象被包括在相同数量的类别中,训练系统300可以促进因此,训练系统300可以生成参数更新以便最小化:
[0093][0094]
作为另一个示例,训练系统300可以最小化一批大小为b的训练图像302中的训练图像内的熵。替代地或此外,训练系统300可以最大化该批次中的训练图像之间的熵。
[0095]
作为一个特定示例,训练系统300可以处理一批大小为b的训练图像302并且生成参数更新,以便最大化这批次的图像可能性和部分姿态可能性,为此,针对该批次中的每个训练图像302,系统可以计算每个可能对象和每个可能对象部分的后验对象部分存在概率:
[0096][0097]
然后,训练系统300可以生成参数更新以便最小化:
[0098][0099]
h是熵的量度。例如,h(v
i
)=


i
v
i
log2(v
i
)。
[0100]
是针对可能对象k而言的训练图像的后验对象部分存在概率的总和或其归一化版本。
[0101]
是针对训练图像b而言的可能对象的后验对象部分存在概率的总和或其归一化版本。
[0102]
图4是生成对象检测输出的示例过程400的流程图。为了方便起见,将过程400描述为由位于一个或多个位置的一台或多台计算机的系统来实施。例如,根据本说明书适当编程的对象检测系统(例如,图1所示的对象检测系统100)可以实施过程400。
[0103]
系统获取输入图像(步骤402)。输入图像可以包括特定可能对象的一个或多个描绘,每个特定可能对象由一个或多个可能对象部分构成。
[0104]
系统对输入图像进行处理以生成预测部分特征数据(步骤404)。例如,系统可以使用对象部分神经网络(例如,图1所示的对象部分神经网络110)对输入图像进行处理。
[0105]
针对多个可能对象部分中的每个可能对象部分,预测部分特征数据可以包括:i)表示可能对象部分在输入图像中被描绘的可能性的部分存在概率;ii)在可能对象部分在输入图像中被描绘的情况下,可能对象部分在输入图像中的预测姿态;以及iii)在可能对象部分在输入图像中被描绘的情况下,表征可能对象部分的描绘的对象部分特征嵌入。
[0106]
在一些实现方式中,系统可以使用对象部分神经网络对输入图像进行处理,对象部分神经网络包括卷积子网络,卷积子网络包括一个或多个卷积神经网络层。卷积子网络可以对输入图像进行处理以生成预测部分特征集合。例如,对象部分神经网络可以包括一个或多个上采样卷积层,紧接着是一个或多个卷积神经网络层,每个卷积神经网络层具有m的通道深度,即每个卷积神经网络层具有m个滤波器,其中m是可能对象部分的数量。然后,可以使用附加的神经网络层对这些层的输出进行整形或处理,以生成m个预测部分特征集合。
[0107]
作为另一个示例,对象部分神经网络可以包括与输入图像中描绘的每个可能对象部分相对应的相应子网络,使得每个子网络对卷积子网络的输出进行处理以生成相应的预测部分特征集合。例如,每个子网络可以是生成相应对象部分特征嵌入的多层感知器,对象部分特征嵌入是输入图像中描绘的可能对象部分的唯一嵌入。
[0108]
系统对多个可能对象部分的预测部分特征数据进行处理以生成对象检测输出,该对象检测输出识别输入图像中描绘的一个或多个对象(步骤406)。例如,系统可以使用对象检测神经网络(例如,图1所示的对象检测神经网络130)来处理预测部分特征数据。下面将参照图5对该过程进行更详细地描述。
[0109]
对象检测输出包括从m个可能对象的集合中识别输入图像中描绘的一个或多个可能对象的数据。针对每个识别出的可能对象,对象检测输出也可以识别该识别出的可能对象在输入图像中的位置。在一些实现方式中,针对每个识别出的可能对象,对象检测输出包括表征该识别出的可能对象在输入图像中被描绘的可能性的存在概率。在一些实现方式中,针对每个识别出的可能对象,对象检测输出进一步包括该识别出的可能对象在输入图像中的可能位置的概率分布。
[0110]
图5是对预测部分特征数据进行处理以生成对象检测输出的示例过程500的流程图。为了方便起见,将过程500描述为由位于一个或多个位置的一台或多台计算机的系统来实施。例如,根据本说明书适当编程的对象检测神经网络(例如,图1所示的对象检测神经网络130)可以实施过程500。
[0111]
系统获取与输入图像中可能描绘的多个可能对象部分中的每个可能对象部分相对应的预测部分特征集合(步骤502)。针对多个可能对象部分中的每个可能对象部分,预测部分特征数据可以包括:i)表示可能对象部分在输入图像中被描绘的可能性的部分存在概率;ii)在可能对象部分在输入图像中被描绘的情况下,可能对象部分在输入图像中的预测姿态;和/或iii)在可能对象部分在输入图像中被描绘的情况下,表征可能对象部分的描绘的对象部分特征嵌入。在一些实现方式中,预测部分特征集合每个都包括表征相应可能对
象部分的图像模板。
[0112]
系统对预测部分特征集合进行处理以生成预测对象特征集合,其中每个预测对象特征集合对应输入图像中可能描绘的相应可能对象(步骤504)。例如,系统可以使用对象预测子网络(例如,图1所示的对象预测子网络150)对预测部分特征集合进行处理。
[0113]
每个预测对象特征集合可以包括:i)表示相应可能对象在输入图像中被描绘的可能性的对象存在概率;ii)在可能对象在输入图像中被描绘的情况下,表征可能对象的描绘的对象特征嵌入;和/或iii)在可能对象在输入图像中被描绘的情况下,可能对象在输入图像中的预测姿态。例如,可能对象在输入图像中的预测姿态可以由胶囊

相机关系(ccr)矩阵表示。
[0114]
在一些实现方式中,对象预测子网络使用置换不变编码器神经网络对预测部分特征集合进行处理以生成预测对象特征集合。例如,置换不变编码器神经网络可以具有集合变换器(set transformer)架构。集合变换器在“集合变换器:基于注意力的置换不变神经网络的框架”,lee等人,arxiv:1810.00825中有更详细的描述。
[0115]
在一些实现方式中,系统可以通过组合i)预测部分特征集合中识别出的可能对象部分的预测姿态、ii)预测部分特征集合中识别出的可能对象部分的对象部分特征嵌入和iii)预测部分特征集合中识别出的可能对象部分的图像模板来生成对象预测子网络的网络输入。例如,系统可以连结预测姿态、对象部分特征嵌入和图像模板的平铺版本以生成网络输入。也就是说,系统可以对每个图像模板进行处理以生成图像模板的具有与预测姿态和对象部分特征嵌入相同维度的版本,例如,一维版本。然后,对象预测子网络可以使用置换不变编码器神经网络来处理网络输入。在一些实现方式中,置换不变编码器神经网络可以使用预测部分特征集合中识别出可能大小部分的的部分存在概率作为该置换不变编码器神经网络中一个或多个注意力机制中的偏离值。
[0116]
系统对每个可能对象的预测对象特征集合进行处理以生成对象检测输出(步骤506)。对象检测输出包括从m个可能对象的集合中识别输入图像中描绘的一个或多个可能对象的数据。针对每个识别出的可能对象,对象检测输出也可以识别该识别出的可能对象在输入图像中的位置。
[0117]
在一些实现方式中,系统根据相应对象特征集合中识别出的每个可能对象的对象存在概率来识别输入图像中的一个或多个可能对象。例如,如果相应的对象存在概率高于某个阈值,则系统可能确定在输入图像中描绘了特定可能对象。在一些这样的实现方式中,系统可以进一步将每个识别出的可能对象的预测姿态包括在对象检测输出中,例如,使用识别出的可能对象的ccr矩阵。
[0118]
在一些其它实现方式中,系统可以对预测对象特征集合进行处理,以针对每个可能对象和可能对象部分生成部分姿态分布,该部分姿态分布在可能对象部分位于可能对象中的情况下表征可能对象部分的可能姿态的概率分布。然后,系统可以对部分姿态分布进行处理以生成对象检测输出。下面将参照图6对该过程进行更详细地描述。
[0119]
图6是生成部分姿态分布的示例过程600的流程图。为了方便起见,将过程600描述为由位于一个或多个位置的一台或多台计算机的系统来实施。例如,根据本说明书适当编程的对象检测神经网络(例如,图1所示的对象检测神经网络130)可以实施过程600。
[0120]
在特定可能对象部分位于特定可能对象的情况下,每个部分姿态分布表征输入图
像内的特定可能对象部分的可能姿态的概率分布。系统可以针对多个可能对象中的每个可能对象和多个可能对象部分中的每个可能对象部分生成概率分布。
[0121]
系统获取与每个可能对象相对应的预测对象特征集合(步骤602)。每个预测对象特征集合可以包括:i)表示相应可能对象在输入图像中被描绘的可能性的对象存在概率;ii)在可能对象在输入图像中被描绘的情况下,表征可能对象的描绘的对象特征嵌入;和/或iii)在可能对象在输入图像中被描绘的情况下,可能对象在输入图像中的预测姿态。例如,可能对象在输入图像中的预测姿态可以由胶囊

相机关系(ccr)矩阵表示。
[0122]
针对每个可能对象,系统处理相应的预测对象特征集合以生成相应的候选参数集合(步骤604)。例如,系统可以使用部分组成子网络(例如,图1所示的部分组成子网络160)来处理对象特征集合。
[0123]
特定可能对象的候选参数可以包括:i)针对每个可能对象部分,在该可能对象部分是特定可能对象的一部分的情况下,该可能对象部分在输入图像中被描绘的条件概率;和/或ii)针对每个可能对象部分,表征与特定可能对象和该可能对象部分相对应的部分姿态分布的精度的预测标量精度。例如,预测标量精度可以是与相应部分姿态分布相对应的标准偏差。
[0124]
作为一个特定示例,对象预测子系统可以通过使用特定于特定可能对象的前馈神经网络(例如,多层感知器)处理相应预测对象特征集合中识别出的对象特征嵌入来生成特定可能对象的候选参数。也就是说,对象预测子系统可以包括k个不同的前馈神经网络,每个前馈神经网络对应相应的可能对象。
[0125]
针对每个可能对象,系统获取与每个可能对象部分相对应的相应胶囊

部分关系(cpr)矩阵(步骤606)。每个cpr矩阵表示可能对象与可能对象部分之间的仿射变换。也就是说,cpr矩阵表示在可能对象部分是可能对象的成员的情况下可能对象部分相对于可能对象的位置。在一些实现方式中,系统可以使用前馈神经网络生成与特定可能对象相对应的cpr矩阵,该前馈神经网络用于生成与特定可能对象相对应的条件概率和预测标量精度。也就是说,与特定可能对象相对应的cpr矩阵可以是特定可能对象的已生成候选参数的组件。在一些其它实现方式中,系统可以从数据存储(例如,图1所示的对象数据存储140)中获取cpr矩阵。
[0126]
针对每个可能对象部分和每个可能对象,在可能对象部分是可能对象的成员的情况下,系统生成可能对象部分的初始候选预测(步骤608)。每个初始候选预测表示在可能对象部分是相应可能对象的一部分的情况下初始图像内的相应可能对象部分的特定姿态。
[0127]
例如,系统可以通过组合i)与特定可能对象相对应的ccr矩阵和ii)与特定可能对象部分和特定可能对象相对应的cpr矩阵来生成自动特定可能对象部分和特定可能对象的初始候选预测。例如,系统可以将与特定可能对象相对应的ccr矩阵和与特定可能对象和特定可能对象部分相对应的cpr矩阵相乘。
[0128]
针对每个可能对象部分和每个可能对象,在可能对象部分是可能对象的成员的情况下,系统生成表征可能对象部分的可能姿态的概率分布的部分姿态分布(步骤610)。例如,系统可以通过组合相应的初始候选预测和相应的标量精度来生成特定对象和特定对象部分的部分姿态分布。作为一个特定示例,系统可以生成每个可能对象部分和可能对象的正态分布,其中正态分布的平均值等于相应的初始候选预测,并且正态分布的标准偏差等
于相应的标量精度。
[0129]
在生成每个可能对象和可能对象部分的部分姿态分布之后,系统可以使用部分姿态分布以生成对象检测输出。
[0130]
在一些实现方式中,针对每个可能对象和每个可能对象部分,系统可以使用相应的部分姿态分布来确定表征可能对象部分位于可能对象中的可能性的对象

对象部分概率。例如,系统可以获取在输入图像中独立于可能对象的可能对象部分的预测姿态。例如,系统可以获取由对象部分神经网络(例如,图1所示的对象部分神经网络110)生成的预测部分特征集合中识别出的可能对象部分的预测姿态。然后,系统可以将对象

对象部分概率确定为由可能对象部分和可能对象的部分姿态分布(例如,确定出的正态分布)给出的可能对象部分的预测姿态的概率。
[0131]
在一些实现方式中,针对每个可能对象部分,系统将该可能对象部分分配给可能对象。作为一个特定示例,系统可以将每个可能对象部分分配给具有最高的相应对象

对象部分概率的可能对象。作为另一个特定示例,如果相应对象

对象部分概率高于某个阈值,则系统可以将可能对象部分分配给具有最高的相应对象

对象部分概率的可能对象,并且不会将该可能对象部分分配给其它任何可能对象。
[0132]
然后,系统可以在对象检测输出中识别已经分配有一个或多个可能对象部分的每个可能对象。在一些实现方式中,系统仅在对象检测输出中包括分配有可能对象部分的可能对象的子集。例如,如果特定对象分配有相应对象

对象部分概率高于某个阈值的可能对象部分,则系统可能仅识别对象检测输出中的特定可能对象。作为另一个示例,如果分配给特定可能对象的可能对象部分的数量高于某个阈值,则系统可能仅识别该特定可能对象。
[0133]
在一些实现方式中,系统识别已经分配给对象检测输出中识别出的每个可能对象的可能对象部分。在一些这样的实现方式中,针对分配给对象检测输出中识别出的可能对象的每个可能对象部分,系统识别由对象部分神经网络生成的预测部分特征集合中识别出的可能对象部分的预测姿态。即,系统可以识别独立于可能对象的可能对象部分的预测姿态。
[0134]
本说明书结合系统和计算机程序组件使用术语“配置”。一台或多台计算机的系统被配置为实施特定操作或动作是指该系统已经安装有在运行时使系统实施操作或动作的软件、固件、硬件或其组合。一个或多个计算机程序被配置为实施特定操作或动作是指该一个或多个程序包括在由数据处理装置执行时使该装置实施操作或动作的指令。
[0135]
本说明书中描述的主题的实施例和功能操作可以在数字电子电路、有形体现的计算机软件或固件、计算机硬件(包括本说明书所公开的结构及其结构等效物)、或者它们中的一个或多个的组合中实施。本说明书中描述的主题的实施例可以实施为一个或多个计算机程序,即,编码在有形的非暂时性存储介质上以由数据处理装置执行或者以控制该数据处理装置的操作的计算机程序指令的一个或多个模块。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行存取存储器设备、或者它们中的一个或多个的组合。可替代地或此外,程序指令可以编码在人工生成的传播信号上,例如,机器生成的电学、光学或电磁信号,生成该信号是为了对信息进行编码以便传输到合适的接收器装置以供数据处理装置执行。
[0136]
术语“数据处理装置”是指数据处理硬件,并且包含用于处理数据的各种设备、装
置和机器,包括例如可编程处理器、计算机或者多个处理器或计算机。该装置也可以是或者进一步包括专用逻辑电路,例如,fpga(现场可编程门阵列)或asic(专用集成电路)。除了硬件之外,该装置可以可选地包括为计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或者它们中的一个或多个的组合的代码。
[0137]
计算机程序(也可以称为或描述为程序、软件、软件应用、应用程序、模块、软件模块、脚本或代码)可以以任何形式的编程语言来编写,包括编译语言或解译语言、或者宣告式语言或程序式语言,并且可以以任何形式来部署,包括部署为独立的程序或者部署为模块、组件、子例程、或者适合在计算环境中使用的其它单元。程序可以但不需要与文件系统中的文件对应。程序可以存储在保存其它程序或数据(例如,存储在标记语言文档中的一个或多个脚本)的文件的一部分中,或者存储在专用于所探讨中的程序的单个文件中,或者存储在多个协作文件(例如,存储一个或多个模块、子程序、或者代码的一部分的文件)中。计算机程序可以部署为在一个计算机上执行或者在位于一个站点处或者分布在多个站点上并且通过数据通信网络互相连接的多个计算机上执行。
[0138]
在本说明书中,术语“数据库”被广泛用于指代任何数据集合:数据不需要以任何特定方式结构化,或者根本不需要结构化,并且可以存储在一个或多个位置的存储设备上。因此,例如,索引数据库可以包括多个数据集合,每个数据集合可以被不同地组织和访问。
[0139]
同样地,在本说明书中,术语“引擎”被广泛用于指代被编程以实施一个或多个具体功能的基于软件的系统、子系统或过程。通常,引擎将被实现为安装在一个或多个位置的一台或多台计算机上的一个或多个软件模块或组件。在一些情况下,一台或多台计算机专用于特定引擎;在其它情况下,多个引擎可以安装在同一台计算机或多台计算机上或者在同一台计算机或多台计算机上运行。
[0140]
本说明书中描述的过程和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程计算机实施,以通过对输入数据进行操作并且生成输出来实施功能。过程和逻辑流程也可以由专用逻辑电路(例如,fpga或asic)或者专用逻辑电路和一个或多个编程计算机的组合来实施。
[0141]
适合执行计算机程序的计算机可以基于通用微处理器或者专用微处理器或者两者、或者任何其它类型的中央处理单元。通常,中央处理单元会接收来自只读存储器或者随机存取存储器或者两者的指令和数据。计算机的必要元件是用于实施或执行指令的中央处理单元以及用于存储指令和数据的一个或多个存储器设备。中央处理单元和存储器可以由专用逻辑电路补充或者可以并入专用逻辑电路中。通常,计算机还将包括用于存储数据的一个或多个大型存储设备(例如,磁盘、磁光盘、或者光盘),或者计算机可以操作地耦合以接收来自大型存储设备的数据或者将数据传输到大型存储设备,或者两者。然而,计算机不需要具有这种设备。此外,计算机可以嵌入在另一设备中,例如,移动电话、个人数字助理(pda)、移动音频或视频播放器、游戏机、全球定位系统(gps)接收器、或者便携式存储设备(例如,通用串行总线(usb)闪存驱动),仅举数例。
[0142]
适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括:例如,半导体存储器设备(例如,eprom、eeprom和闪速存储器设备)、磁盘(例如,内部硬盘或者可移动盘)、磁光盘、以及cd

rom盘和dvd

rom盘。
[0143]
为了提供与用户的交互,本说明书中描述的主题的实施例可以在计算机上实施,
该计算机具有:用于向用户显示信息的显示设备,例如,crt(阴极射线管)或者lcd(液晶显示器)监视器;以及键盘和指向装置,例如,鼠标或轨迹球,用户可以通过键盘和指向装置来将输入提供给计算机。其它类型的设备也可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如,视觉反馈、听觉反馈或者触觉反馈;并且可以以任何形式(包括声学输入、语音输入或者触觉输入)接收来自用户的输入。另外,计算机可以通过向用户使用的设备发送文档并且从该设备接收文档(例如,通过响应于从网络浏览器接收的请求将网页发送到用户的设备上的网络浏览器)来与用户进行交互。此外,计算机可以通过向个人设备(例如,运行消息应用程序的智能电话)发送文本消息或其它形式的消息并且继而从用户接收响应消息来与用户进行交互。
[0144]
例如,用于实施机器学习模型的数据处理装置也可以包括用于处理机器学习训练或生产的公共和计算密集型部分,即推理、工作负载的专用硬件加速器单元。
[0145]
机器学习模型可以使用机器学习框架来实现和部署,例如,tensorflow框架、microsoft cognitive toolkit框架、apache singa框架或者apache mxnet框架。
[0146]
在本说明书中描述的主题的实施例可以实施在计算系统中,该计算系统包括后端组件(例如,作为数据服务器),或者包括中间件组件(例如,应用服务器)、或者包括前端组件(例如,具有图形用户界面、网络浏览器或应用程序的客户端计算机,用户可以通过图形用户界面、网络浏览器或应用程序与本说明书中描述的主题的实现方式进行交互)、或者包括这些后端组件、中间件组件或者前端组件的任何组合。系统的组件可以通过任何形式或者介质的数字数据通信(例如,通信网络)相互连接。通信网络的示例包括局域网(lan)和广域网(wan),例如,互联网。
[0147]
计算系统可以包括客户端和服务器。客户端和服务器一般彼此远离,并且通常通过通信网络进行交互。客户端和服务器的关系通过在相应计算机上运行并且使彼此具有客户端

服务器关系的计算机程序来产生。在一些实施例中,服务器将数据(例如,html页面)传输到用户设备,例如,以便向与作为客户端的该设备交互的用户显示数据并且从用户接收用户输入。在用户设备处生成的数据(例如,用户交互的结果)可以在服务器处从该设备接收。
[0148]
除了上述实施例之外,以下实施例也是创新的:
[0149]
实施例1是一种方法,包括:
[0150]
获取输入图像;
[0151]
使用对象部分神经网络对输入图像进行处理以生成预测部分特征数据,预测部分特征数据针对多个可能对象部分中的每个可能对象部分包括:
[0152]
表示可能对象部分在输入图像中被描绘的可能性的部分存在概率,
[0153]
在可能对象部分在输入图像中被描绘的情况下可能对象部分在输入图像中的预测姿态,以及
[0154]
在可能对象部分在输入图像中被描绘的情况下表征可能对象部分的描绘的对象部分特征向量;以及
[0155]
使用对象检测神经网络对多个可能对象部分的预测部分特征数据进行处理以生成对象检测输出,该对象检测输出识别输入图像中描绘的一个或多个对象。
[0156]
实施例2是根据实施例1的方法,其中对象部分神经网络包括卷积神经网络,该卷
积神经网络被配置为对输入图像进行处理以生成每个可能对象部分的存在概率、预测姿态和对象部分特征向量。
[0157]
实施例3是根据实施例1或2中任一个的方法,其中预测部分特征数据进一步包括每个可能对象部分的相应图像模板,该图像模板是可能对象部分的低维图像。
[0158]
实施例4是根据实施例1至3中任一个的方法,其中对预测部分特征数据进行处理包括:
[0159]
使用置换不变编码器神经网络对预测部分特征数据进行处理以生成预测对象特征数据,预测对象特征数据针对多个可能对象中的每个可能对象包括:
[0160]
表示可能对象在输入图像中被描绘的可能性的对象存在概率,
[0161]
在可能对象在输入图像中被描绘的情况下表征可能对象的描绘的对象特征向量;
[0162]
表示可能对象与捕获图像的相机之间的仿射变换的胶囊

相机关系(ccr)矩阵;
[0163]
针对每个可能对象,在可能对象部分是可能对象的一部分的情况下,针对每个可能对象部分从预测对象特征数据中生成可能对象部分的可能姿态的概率分布;以及
[0164]
使用概率分布生成对象检测输出。
[0165]
实施例5是根据实施例4的方法,其中从预测对象特征数据并且针对每个可能对象部分生成可能对象部分的可能姿态的概率分布包括:
[0166]
针对每个可能对象,从可能对象的对象特征向量生成候选参数,该候选参数包括:(i)每个可能对象部分的相应胶囊

部分关系(cpr)矩阵,该cpr矩阵表示可能对象与可能对象部分之间的仿射变换;以及(ii)每个可能对象部分的相应预测标量精度;
[0167]
针对每个可能对象,从可能对象的ccr矩阵以及可能对象和可能对象部分的cpr矩阵生成每个可能对象部分的初始候选预测;以及
[0168]
针对每个可能对象和每个可能对象部分,从与可能对象和可能对象部分相对应的初始候选预测和预测标量精度生成可能对象部分的可能姿态的概率分布。
[0169]
实施例6是根据实施例5的方法,其中针对每个可能对象并且从可能对象的对象特征向量生成候选参数包括:
[0170]
使用特定于可能对象的前馈神经网络对可能对象的对象特征向量进行处理以生成候选参数。
[0171]
实施例7是根据实施例5或6中任一个的方法,其中针对每个可能对象和每个可能对象部分,从与可能对象和可能对象部分相对应的初始候选预测和预测标量精度生成可能对象部分的可能姿态的概率分布包括:
[0172]
生成正态分布,该正态分布具有作为平均值的初始候选预测和作为标准偏差的预测标量精度。
[0173]
实施例8是根据实施例4至7中任一个的方法,其中置换不变编码器神经网络具有集合变换器架构。
[0174]
实施例9是根据实施例4至8中任一个的方法,其中使用概率分布生成对象检测输出包括:
[0175]
针对可能对象部分的至少一个子集,在可能对象部分是可能对象的一部分的情况下,将可能对象部分分配给可能对象,针对该可能对象的可能对象部分的预测姿态被分配有可能对象部分的可能姿态的概率分布中的最高概率;以及
[0176]
在对象检测输出中识别已被分配给同一个可能对象的可能对象部分。
[0177]
实施例10是根据实施例1至9中任一个的方法,其中对象部分神经网络通过无监督学习被训练为图像自动编码器的一部分,该图像自动编码器自动编码输入图像。
[0178]
实施例11是根据实施例10的方法,其中对象检测神经网络通过无监督学习被训练为对象部分姿态自动编码器的一部分,该对象部分姿态自动编码器自动编码来自输入图像的对象部分的姿态。
[0179]
实施例12是根据实施例11的方法,其中对象部分姿态自动编码器和图像编码器被联合训练。
[0180]
实施例13是根据实施例12的方法,其中,在训练期间,梯度从对象检测神经网络被反向传播到对象部分神经网络。
[0181]
实施例14是根据实施例13的方法,其中将停止梯度应用于对象部分神经网络的除了对象部分特征向量之外的所有输入。
[0182]
实施例15是根据实施例12至14中任一个的方法,其中联合训练目标包括施加稀疏约束的一个或多个项目。
[0183]
实施例16是根据实施例12至15中任一个的方法,其中联合训练目标包括施加熵约束的一个或多个项目。
[0184]
实施例17是一种系统,包括:一个或多个计算机和一个或多个存储设备,该一个或多个存储设备储存有指令,这些指令在由该一个或多个计算机执行时可操作以使该一个或多个计算机实施根据实施例1至16中任一个的方法。
[0185]
实施例18是一种利用计算机程序编码的计算机存储介质,该程序包括指令,这些指令在由数据处理装置执行时可操作以使该数据处理装置实施根据实施例1至16中任一个的方法。
[0186]
虽然本说明书包含了许多具体实施细节,但是这些细节不应该视为是对任何发明或者可能被要求保护的内容的范围的限制,而是作为可以针对特定发明的特定实施例的特征的描述。在本说明书中在单独实施例的背景下描述的某些特征还可以以组合的方式在单个实施例中实施。相反,在单个实施例的背景中描述的各种特征也可以单独地或者以任何合适的子组合的方式在多个实施例中实施。此外,虽然上面可能将特征描述为以某些组合的方式起作用,甚至最初被要求如此保护,但是在一些情况下可以从组合中删除来自所要求保护的组合的一个或多个特征,并且所要求保护的组合可以指向子组合或者子组合的变形。
[0187]
同样地,虽然操作在附图中以特定顺序示出并且在权利要求中以特定顺序阐述,但是不应该被理解为需要以所示的特定顺序或先后顺序执行这些操作,或者需要执行所有示出的操作以获得期望的结果。在某些情况下,多任务处理和并行处理可以是有利的。此外,上述实施例中的各种系统模块和组件的分离不应该被理解为在所有实施例中都需要这种分离;并且,应该理解的是,所描述的程序组件和系统通常可以一起集成在单个软件产品中或者封装到多个软件产品中。
[0188]
已经描述了主题的特定实施例。其它实施例在以下权利要求书的范围内。例如,权利要求书中阐述的动作可以以不同的顺序来执行,并且仍然获得期望的结果。作为一个示例,附图中示出的过程不一定需要图示的特定顺序或者先后顺序来获得期望的结果。在一
些情况下,多任务处理和并行处理可以是有利的。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1