小样本视点估计的制作方法

专利2022-05-09  84


要求优先权

本申请要求于2019年2月5日提交的标题为“小样本视点估计(few-shotviewpointestimation)”的美国临时申请号62/801,498的权益,其全部内容通过引用并入本文。

本公开涉及生成图像的对象视点。



背景技术:

估计刚性物体相对于相机的视点(例如,方位角、仰角和回旋角)是三维(3d)计算机视觉中的基本问题。这对于诸如机器人技术、3d模型检索和重建之类的应用至关重要。该估计是必需的,因为作为从3d投影的单个图像将没有足够的信息来确定图像中各个对象的视点。虽然可以由人类手动提供对对象的视点估计,但是这样的工作将是劳动密集型的并且易于不精确。

迄今为止,用于提供视点估计的技术已经依赖于经训练用于推理图像中的对象的视点估计的卷积神经网络(cnn)。但是,这些网络已限于为对象的已知类别(即,具有从其已训练网络的许多标记的示例的对象的类别)提供视点估计。因此,为了解决对象的未知类别(即,网络在训练期间未遇到的对象的类别),要求使用未知类别的新示例对网络进行重新训练,而这又需要注释数千个新示例用于重新训练,这是劳动密集型的。

需要解决这些问题和/或与现有技术相关联的其他问题。



技术实现要素:

公开了用于小样本(few-shot)视点估计的方法、计算机可读介质和系统。在使用中,训练神经网络的类别特定(category-specific)视点估计块,以学习能够推理针对任何新对象类别的视点估计的唯一视点估计网络。另外,由神经网络的类别无关(category-agnostic)特征提取块处理新类别的多个图像,以提取图像的每一个中的对象的特征。此外,使用这些特征,学习能够推理针对新对象类别的视点估计的唯一视点估计网络。

附图说明

图1示出了根据一实施例的用于学习能够推理针对新对象类别的视点估计的唯一视点估计网络的方法的流程图。

图2示出了根据一实施例的用于学习能够推理针对新对象类别的视点估计的唯一视点估计网络的神经网络框架的框图。

图3示出了根据一实施例的图2的框架的类别无关特征提取块的框图。

图4示出了根据一实施例的图2的框架的类别特定视点估计块的框图。

图5a示出了根据至少一个实施例的推理和/或训练逻辑;

图5b示出了根据至少一个实施例的推理和/或训练逻辑;

图6示出了根据至少一个实施例的神经网络的训练和部署;

图7示出了根据至少一个实施例的示例数据中心系统。

具体实施方式

图1示出了根据一实施例的用于学习能够推理针对新对象类别的视点估计的唯一视点估计网络的方法100的流程图。方法100可以由处理单元、程序、自定义电路或其组合来执行。

如操作102中所示,训练神经网络的类别特定视点估计块以学习能够推理针对新对象类别的视点估计的唯一视点估计网络。在一个实施例中,元学习(meta-learning)可用于训练类别特定视点估计块以学习唯一视点估计网络。下面参考附加实施例对元学习进行进一步描述。

在另一个实施例中,类别特定视点估计块可以被训练以能够从针对新对象类别的少量(例如,3个)示例图像输入中学习唯一视点估计网络。因此,可以出于推理针对新对象类别的视点估计的目的特定地学习唯一视点估计网络。新对象类别是指尚未针对其训练类别特定视点估计块的对象的类别。

另外,如操作104中所示,由神经网络的类别无关特征提取块来处理新类别的多个图像,以提取每个图像中的对象的特征。在一个实施例中,由类别无关特征提取块提取的对象的特征可以包括用于对象上的可见关键点的位置的多峰热图。在另一实施例中,由类别无关特征提取块提取的对象的特征可以包括对象的高级卷积特征集。

此外,如操作104所示,使用这些特征,学习能够推理针对新对象类别的视点估计的唯一视点估计网络。以这种方式,唯一视点估计网络可以用于处理新对象类别的示例图像,以推理针对新对象类别的视点估计。

现在将根据用户的需求,给出关于可采用其实现前述框架的各种可选架构和特征的更多说明性信息。应该特别注意的是,以下信息是出于说明目的而阐述的,不应以任何方式解释为限制。下列任何特征都可以可选地并入或不排除所描述的其他特征。

图2示出了根据一实施例的用于学习能够推理针对新对象类别的视点估计的唯一视点估计网络的神经网络框架200的框图。

如图所示,框架包括两个主要组件:类别无关特征提取块202和类别特定视点估计块204。类别无关特征提取块202操作为从图像中提取有助于改善下游视点估计任务的准确性的通用特征。类别无关特征提取块202输出提取的特征,其被用作到类别特定视点估计块204的输入。

类别特定视点估计块204操作为学习针对新对象类别的唯一视点估计网络,并进一步使用该唯一视点估计网络来计算新对象类别(例如,新对象类型)的所有对象的视点。在一个实施例中,类别特定视点估计块204通过经由唯一视点估计网络检测语义关键点的唯一集(例如,包含3d、2d和深度值)来计算视点,唯一视点估计网络使用类别特定特征提取模块(fθcat)和类别特定关键点检测模块(fθkey)。

最初,使用包含对象类别的有限集的训练集strain来训练类别无关特征提取块202和类别特定视点估计块204。在一个实施例中,使用标准监督学习来训练类别无关特征提取块202,并且其权重对于所有后续训练阶段是固定的。在另一个实施例中,使用元学习来训练类别特定视点估计块204。该元学习训练过程被设计为使类别特定视点估计块204成为能够从针对新对象类别的少量图像中学习唯一视点估计网络的有效“学习者”,其中学习的唯一视点估计网络便能够计算新对象类别的所有对象的视点。换句话说,可以使用未知(新)类别的少量图像示例进一步微调已训练的类别特定视点估计块204,以形成唯一视点估计网络,该网络能够很好地推广到该类别的其他示例。

为此,在推理时,当遇到新对象类别(即,在训练期间不存在的对象类别)以及来自另一集合stest的少量标记的图像示例时,针对新对象类别创建唯一视点估计网络,其权重使用在元学习期间学习的最佳权重θ*cat和θ*key进行初始化,并且使用其标记的图像示例对唯一视点估计网络进行微调。这就产生了类别特定视点网络,其可以很好地推广到这个新对象类别的其他示例。

以下附图和相关描述更详细地描述了神经网络架构200和每个组件的训练过程。

图3示出了根据一实施例的图2的框架200的类别无关特征提取块202。

管线的第一阶段是类别无关特征提取块202,其被训练并用于接收图像302作为输入,并且然后从那些图像302提取与对象的类别无关的特征。在一个实施例中,类别无关特征提取块202由两个resnet-18样式的网络组成:被训练为提取针对一些或所有可见的通用关键点的位置的多峰热图的第一resnet-18样式的网络,和被训练为通过优化损耗来检测所有类别的8个语义关键点的第二resnet-18样式的网络(其前四个卷积块计算大小相同的高级卷积特征集),如以下参考公式6更详细描述的。多峰热图和高级特征被级联为提取的特征308,并且然后被输入到类别特定视点估计块204。

在一个实施例中,经由标准监督的随机梯度下降(sgd)学习来训练类别无关特征提取块202。经训练后,其权重在所有后续步骤中是固定的。

图4示出了根据一实施例的图2的框架200的类别特定视点估计块204的框图。特别地,图4示出了在训练时间期间的类别特定视点估计块204的实例,以及在推理时间期间的单独的实例(否则被称为唯一视点估计网络)。

类别特定视点估计块204特定于每个对象类别。它计算针对每个类别的3d规范(canonical)形状,及其2d图像投影和深度值。它还将这些量关联起来以计算该对象类别内的对象的视点。此外,经由元学习对类别特定视点估计块204进行训练以使其作为针对任何新对象类别的最佳的小样本“学习者”。

建筑

经由语义关键点的视点估计

假设类别特定视点估计块204不知道新对象类别的任何对象的3d形状。因此,为了计算该新对象类别中的对象的视点,训练类别特定视点估计块204以估计3d点集{(xk,yk,zk)|k=1…nc},它们共同表示在以对象为中心的坐标系中整个类别tc的规范形状(例如,对于对象类别“椅子”,3d点集可以包括具有靠背、座位和4条腿的原型椅子的笔画图形表示的角)。另外,对于每个3d点k,类别特定视点估计块204检测其2d图像投影(uk,vk)并估计其相关联的深度dk。点k的集合值(xk,yk,zk),(uk,vk),dk被称为“语义关键点”。最后,对象的视点(旋转)是经由正交的procrustes通过求解一组方程来获得的,该方程将k个旋转并且投影的3d规范点(xk,yk,zk)与其2d图像位置和深度估计(uk,vk,dk)相关联。注意,类别特定视点估计块204能够检测所有可见和不可见3d规范点的投影,从而提供更多数据用于估计视点。

语义关键点估计

为了定位每个3d关键点k的2d图像投影(uk,vk),网络的输出是2d热图hk(u,v),其预测该点位于(u,v)处的概率。它是由空间softmax层产生的。我们经由行(u)和列(v)值的加权和获得最终图像坐标(uk,vk),如下所示:

方程1

网络类似地计算与hk(u,v)大小相同的深度值ck(u,v)的2d映射,以及针对其3d规范关键点的每个维度的另外三个映射最终深度估计dk和3d关键点(xk,yk,zk)计算如下:

方程2

类别特定关键点估计

在给定类别tc的情况下,类别特定视点估计块204必须经由类别特定特征提取器fθcat随后是一组类别特定语义关键点检测器{fθkeyk|k=1…nc}来检测其唯一的nc个语义关键点。每个关键点检测器fθkeyk检测一个唯一类别特定语义关键点k,而特征提取器fθcat计算所有唯一类别特定语义关键点所需的公共特征。由于类别特定视点估计块204必须适应具有不同数量的语义关键点的多个不同类别,因此它不能具有固定数量的预定义关键点检测器。为了灵活地更改每个新颖对象类别的关键点检测器的数量,可以使用元暹罗式(meta-siamese)架构,其工作方式如下。对于每个新类别tc,将通用预训练关键点检测器(fθkey)复制nc次,并训练每个副本以检测新类别的一个唯一关键点k,从而为每个新类别创建具有唯一且不同数量的语义关键点{fθkeyk|k=1…nc}的专用关键点检测器。

训练

目标是训练类别特定视点估计块204成为有效的小样本学习者。换句话说,其经学习的特征提取器fθ*cat和语义关键点检测器fθ*key在使用新类别的少量示例进行微调后,其应该有效地提取用于新类别的特征并分别检测其唯一关键点的每一个。为了学习最佳权重θ*={θ*cat,θ*key},使用模型无关元学习(maml)算法,最佳权重使得类别特定视点估计块204适合于小样本微调而不会灾难性地过拟合于新对象类别。

maml使用标准优化算法(例如,sgd)来优化特殊元目标(meta-objective)。在标准监督学习中,目标是在每次优化迭代期间仅最小化任务的训练损失。但是,maml中的元目标是在每次训练迭代期间使用一些其标记的示例训练网络后,显式地最小化任务的泛化损失。此外,它从可在每次迭代期间用于训练的许多此类相关任务集中抽样随机任务。下面描述用于学习类别特定视点估计块204的最佳权重θ*={θ*cat,θ*key}的特定元训练算法。

对于视点估计,每个对象类别是唯一任务。在元训练的每次迭代期间,都会从strain中采样随机任务。任务包括支持集dsc和查询集dqc,它们分别包含对象类别tc的10个和3个标记的图像示例。术语“样本(shot)”是指支持集dsc中的示例数。对于包含nc个语义关键点的此类别,将通用关键点检测器(fθkey)复制nc次,以构造具有参数的唯一元暹罗式关键点检测器,并使用θkey初始化每个θkeyk。类别特定关键点检测器用于估计此任务的支持集的语义关键点,并给定地面实况值,计算出以下损失:

方程3

其中分别是用于正确估计语义关键点的2d和3d位置以及深度估计的平均l2回归损失。λ参数控制每个损失项的相对重要性。计算该损耗lstc相对于网络的参数的梯度,并在sgd的单个步骤中使用该梯度,以用学习率α将更新为

方程4

接下来,使用更新的模型参数计算针对该对象类别的查询集dqc的损失lqtc。为了计算查询损失,除了上面公式3中描述的损失项之外,还使用加权浓度损失项:

方程5

这迫使2d关键点的热图hk(u,v)的分布在预测位置(uk,vk)附近达到峰值。此浓度损失项有助于提高2d关键点检测的准确性。最终查询损失为:

方程6

网络lqtc的泛化损失在仅用特定类别的几个示例进行训练之后,用作最终的元目标,在每个元训练迭代中将泛化损失最小化,并且网络的初始参数θ使用以下方程针对其查询损失lqtc进行优化:

方程7

方程8

重复元训练迭代,直到视点估计块收敛到fθ*为止,如下面的算法1所示。注意,在方程1中,通用关键点检测器θkey的最佳权重是通过平均所有重复的关键点θkeyk的梯度来计算的。网络的此设计特征及其带有参数θcat的共享类别级特征提取器有助于提高准确性。它们可以有效利用所有可用的关键点,以在元训练期间学习θcat和θkey的最佳值,这在训练数据稀缺时尤其重要。

算法1

推理

在一个实施例中,执行唯一视点估计网络以推理针对新对象类别的视点估计。例如,执行唯一视点估计网络可以包括:接收新类别的少量示例图像作为类别无关特征提取模块的输入;由类别特定特征提取模块使用少量示例图像来提取新类别的对象的特征;接收新类别对象的特征作为类别特定关键点检测模块的输入;以及由类别特定关键点检测模块处理新类别的对象的特征,以推理针对新对象类别的视点估计。

关于上述具体实施例,通过示例的方式,经由元学习来学习的视点估计块fθ*能够执行适应于看不见的(即,新的)对象类别的任务。与元训练类似,可以识别具有与用于训练的样本大小相同或相似样本大小的新类别。通过最小化方程3的损失,可以构造唯一视点估计网络并用少量新类别的图像示例进行微调。这将得到针对该新类别的唯一的最佳小样本经训练的网络

为了提高神经网络在未知对象类别上的性能,以上附图和相关描述提供了类别级小样本视点估计技术,该技术使用独特的框架,该框架采用少量标记示例成功地适应了未知类别并有助于无需额外的注释工作(即,少数示例所需的注释工作),即可改进对其的性能。

机器学习

在处理器上开发的包括深度学习模型在内的深度神经网络(dnn)已用于各种用例,从无人驾驶汽车到更快的药物开发,从在线图像数据库中的自动图像标注到视频聊天应用程序中的智能实时语言翻译。深度学习是模拟人脑的神经学习过程,不断学习、不断变得更聪明并随着时间的推移更快地提供更准确的结果的技术。最初,成年人教孩子如何正确识别和分类各种形状,最终无需任何指导即可识别形状。同样,深度学习或神经学习系统需要在对象识别和分类方面进行训练,因为它在识别基本对象、被遮挡的对象等方面变得更聪明、更有效,同时还为对象分配了上下文。

在最简单的级别上,人脑中的神经元查看接收到的各种输入,将重要性级别分配给这些输入中的每一个,并将输出传递给其他神经元以对其进行操作。人工神经元或感知器是神经网络的最基本模型。在一个示例中,感知器可以接收表示该感知器正在被训练以识别和分类的对象的各种特征的一个或更多个输入,并且基于该特征在定义对象的形状上的重要性为这些特征中的每一个分配某权重。

深度神经网络(dnn)模型包括许多连接节点的多个层(例如,感知器、玻尔兹曼(boltzmann)机、径向基函数、卷积层等),可以用大量输入数据对其进行训练以高精度、快速解决复杂问题。在一个示例中,dnn模型的第一层将汽车的输入图像分解为各个部分,并寻找诸如线条和角度之类的基本图案。第二层组装线条以寻找更高级别的图案,例如车轮、挡风玻璃和后视镜。下一层识别车辆的类型,并且最后几层为输入图像生成标签,以标识特定汽车品牌的模型。

一旦训练了dnn,就可以部署dnn并将其用于在被称为推理的过程中识别和分类对象或图案。推理的示例(dnn从给定输入中提取有用信息的过程)包括识别存入atm机的支票上的手写数字,识别照片中的朋友图像,向超过五千万用户提供电影推荐,在无人驾驶汽车中识别和分类不同类型的汽车、行人和道路危险,或实时翻译人类语音。

在训练期间,数据在前向传播阶段流经dnn,直到产生指示对应于输入的标签的预测为止。如果神经网络没有正确标记输入,则将分析正确标记和预测标记之间的错误,并在反向传播阶段调整每个特征的权重,直到dnn在训练数据集中正确标记输入和其他输入。训练复杂的神经网络需要大量的并行计算性能,包括浮点乘法和加法。推理比训练要少计算量,这是对延迟敏感的过程,其中将经训练的神经网络应用于以前从未见过的新输入,以对图像进行分类、翻译语音并通常推理出新信息。

推理与训练逻辑

如上所述,需要训练深度学习或神经学习系统以从输入数据生成推理。下面结合图5a和/或图5b提供关于用于深度学习或神经学习系统的推理和/或训练逻辑515的细节。

在至少一个实施例中,推理和/或训练逻辑515可以包括但不限于数据存储501,用于存储与在一个或更多个实施例的方面中被训练和/或被用于推理的神经网络的神经元或层相对应的前向和/或输出权重和/或输入/输出数据。在至少一个实施例中,数据存储501存储在使用一个或更多个实施例的方面进行推理和/或训练期间输入/输出数据和/或权重参数的正向传播期间与一个或更多个实施例结合训练或使用的神经网络的每一层的权重参数和/或输入/输出数据。在至少一个实施例中,数据存储501的任何部分可以与其他片上或片外数据存储(包括处理器的l1、l2或l3高速缓存或系统存储器)一起被包括。

在至少一个实施例中,数据存储501的任何部分可以在一个或更多个处理器或其他硬件逻辑器件或电路的内部或外部。在至少一个实施例中,数据存储501可以是高速缓存存储器、动态随机可寻址存储器(“dram”)、静态随机可寻址存储器(“sram”)、非易失性存储器(例如闪存)或其他存储装置。在至少一个实施例中,数据存储501是在处理器的内部还是外部的选择,例如,还是由dram、sram、闪存还是由其他类型的存储器组成,取决于片上与片外可用存储、进行训练和/或推理功能的延迟要求、在推理和/或训练神经网络中使用的数据的批大小或这些因素的某种组合。

在至少一个实施例中,推理和/或训练逻辑515可以包括但不限于数据存储505,其用于存储与在一个或更多个实施例的方面中被训练和/或用于推理的神经网络的层或神经元相对应的反向和/或输出权重和/或输入/输出数据。在至少一个实施例中,数据存储505存储在使用一个或更多个实施例的方面的训练和/或推理期间在反向传播输入/输出数据和/或权重参数期间,与一个或更多个实施例一起训练或结合使用的神经网络的每一层的权重参数和/或输入/输出数据。在至少一个实施例中,数据存储505的任何部分可以与其他片上或片外数据存储一起包括,包括处理器的l1、l2或l3高速缓存或系统存储器。在至少一个实施例中,数据存储505的任何部分可以在一个或更多个处理器或其他硬件逻辑器件或电路的内部或外部。在至少一个实施例中,数据存储505可以是高速缓存存储器、dram、sram、非易失性存储器(例如,闪存)或其他存储器。在至少一个实施例中,数据存储505是在处理器的内部还是外部的选择,例如,还是由dram、sram、闪存还是其他存储类型组成的,取决于片上与片外可用存储、进行训练和/或推理功能的延迟要求、在推理和/或训练神经网络中使用的数据的批大小或这些因素的某种组合。

在至少一个实施例中,数据存储501和数据存储505可以是分开的存储结构。在至少一个实施例中,数据存储501和数据存储505可以是同一存储结构。在至少一个实施例中,数据存储501和数据存储505可以是部分相同的存储结构和部分分离的存储结构。在至少一个实施例中,数据存储501和数据存储505的任何部分可以与其他片上或片外数据存储一起包括,包括处理器的l1、l2或l3高速缓存或系统存储器。

在至少一个实施例中,推理和/或训练逻辑515可以包括但不限于一个或更多个算术逻辑单元(“alu”)510,以至少部分地基于训练和/或推理代码或由其指示执行逻辑和/或算术操作,其结果可以导致存储在激活存储520中的作为存储在数据存储501和/或数据存储505中输入/输出和/或权重参数数据的函数的激活(例如,来自神经网络内的层或神经元的输出值)。在至少一个实施例中,存储在激活存储520中的激活是根据由alu510响应于执行指令或其他代码执行的线性代数和/或基于矩阵的数学生成的,其中将存储在数据存储505的权重值和/或数据501与其他值(例如偏差值、梯度信息、动量值或其他参数或超参数)一起用作操作数,这些值中的任意或者全部可以存储在数据存储505或数据存储501或其他片上或片下存储器。在至少一个实施例中,一个或更多个处理器或其他硬件逻辑器件或电路中包括一个或更多个alu510,而在另一实施例中,一个或更多个alu510可以在使用它们的处理器或其他硬件逻辑器件或电路(例如,协处理器)的外部。在至少一个实施例中,alu510可以被包括在处理器的执行单元之内,或者以其他方式被包括在处理器的执行单元可以访问的alu库中,该alu库可以在同一处理器内或者分布在不同类型的不同处理器之间(例如,中央处理器、图形处理单元、固定功能单元等)。在至少一个实施例中,数据存储501、数据存储505和激活存储520可以在同一处理器或其他硬件逻辑器件或电路上,而在另一实施例中,它们可以在不同的处理器或其他硬件逻辑器件或电路中,或相同和不同处理器或其他硬件逻辑器件或电路的某种组合中。在至少一个实施例中,激活存储620中的任何部分可以与其他片上或片外数据存储一起包括,包括处理器的l1、l2或l3高速缓存或系统存储器。此外,推理和/或训练代码可以与处理器或其他硬件逻辑或电路可访问的其他代码一起存储,并可以使用处理器的提取、解码、调度、执行、退出和/或其他逻辑电路来提取和/或处理。

在至少一个实施例中,激活存储520可以是高速缓存存储器、dram、sram、非易失性存储器(例如,闪存)或其他存储器。在至少一个实施例中,激活存储520可以完全或部分在一个或更多个处理器或其他逻辑电路之内或之外。在至少一个实施例中,激活存储520是在处理器的内部还是外部的选择,例如,还是由dram、sram、闪存或某种其他存储类型组成的,取决于片上与片外可用存储、进行训练和/或推理功能的延迟要求、在推理和/或训练神经网络中使用的数据的批大小或这些因素的某种组合。在至少一个实施例中,图5a中所示的推理和/或训练逻辑515可以与专用集成电路(“asic”)(例如来自谷歌的处理单元,来自graphcoretm的推理处理单元(ipu)或来自因特尔公司的(例如“lakecrest”)处理器)结合使用。在至少一个实施例中,图5a所示的推理和/或训练逻辑615可以与中央处理单元(“cpu”)硬件、图形处理单元(“gpu”)硬件或其他硬件(例如现场可编程门阵列(“fpga”))结合使用。

图5b示出了根据至少一个实施例的推理和/或训练逻辑515。在至少一个实施例中,推理和/或训练逻辑515可以包括但不限于硬件逻辑,其中计算资源是专用的或以其他方式专用地与对应于神经网络内的一层或更多层神经元的权重值或其他信息结合使用。在至少一个实施例中,图5b中所示的推理和/或训练逻辑515可以与专用集成电路(asic)(例如google的处理单元、graphcoretm的推理处理单元(ipu)或来自因特尔公司的(例如“lakecrest”)处理器)结合使用。在至少一个实施例中,图5b所示的推理和/或训练逻辑515可以与中央处理单元(cpu)硬件、图形处理单元(gpu)硬件或其他硬件(例如,现场可编程门阵列(fpga))结合使用。在至少一个实施例中,推理和/或训练逻辑515包括但不限于数据存储501和数据存储505,其可以用于存储权重值和/或其他信息,包括偏差值、梯度信息、动量值、和/或其他参数或超参数信息。在图5b中所示的至少一个实施例中,数据存储501和数据存储505中的每一个都分别与专用的计算资源(例如,计算硬件502和计算硬件506)相关联。在至少一个实施例中,计算硬件506中的每一个包括一个或更多个alu,一个或更多个alu仅对分别存储在数据存储501和数据存储505中的信息执行数学函数(例如线性代数函数),其结果存储在激活存储520中。

在至少一个实施例中,数据存储501和505以及相应的计算硬件502和506中的每一个分别对应于神经网络的不同层,从而提供得到的来自数据存储501和计算硬件502的一个“存储/计算对501/502”的激活作为对下一个数据存储505和计算硬件506的“存储/计算对505/506”的输入,以镜像神经网络的概念组织。在至少一个实施例中,每个存储/计算对501/502和505/506可以对应于一个以上的神经网络层。在至少一个实施例中,在推理和/或训练逻辑515中可以包括在存储计算对501/502和505/506之后或与之并行的附加存储/计算对(未示出)。

神经网络训练和部署

图6示出了用于深度神经网络的训练和部署的另一实施例。在至少一个实施例中,使用训练数据集602来训练未训练的神经网络606。在至少一个实施例中,训练框架604是pytorch框架,而在其他实施例中,训练框架604是tensorflow、boost、caffe、microsoftcognitivetoolkit/cntk、mxnet、chainer、keras、deeplearning4j或其他训练框架。在至少一个实施例中,训练框架604训练未训练的神经网络606,并使它能够使用本文所述的处理资源来训练,以生成训练后的神经网络608。在至少一个实施例中,权重可以被随机选择或通过使用深度信念网络来选择。在至少一个实施例中,可以以有监督、部分有监督或无监督的方式执行训练。

在至少一个实施例中,使用监督学习来训练未训练的神经网络606,其中训练数据集602包括与输入的期望输出配对的输入,或者其中训练数据集602包括具有已知输出的输入,以及神经网络的输出是手动分级的。在至少一个实施例中,未训练的神经网络606以监督的方式被训练,以处理来自训练数据集602的输入,并将结果输出与一组期望或预期的输出进行比较。在至少一个实施例中,然后通过未训练的神经网络606将错误传播回去。在至少一个实施例中,训练框架604调整控制未训练的神经网络606的权重。在至少一个实施例中,训练框架604包括用于监视未经训练的神经网络606正朝着诸如训练后的神经网络608之类的模型收敛的状况的工具,该模型适于基于诸如新数据612之类的已知输入数据来生成诸如结果614之类的正确答案。在至少一个实施例中,训练框架604在调整权重的同时反复训练未训练的神经网络606,以使用损失函数和调整算法(例如,随机梯度下降)来完善未训练的神经网络606的输出。在至少一个实施例中,训练框架604训练未训练的神经网络606,直到未训练的神经网络606达到期望的精度为止。在至少一个实施例中,然后可以部署经训练的神经网络608以实施任何数量的机器学习操作。

在至少一个实施例中,未训练的神经网络606是使用无监督学习来训练的,其中未训练的神经网络606尝试使用未标记的数据来训练自己。在至少一个实施例中,无监督学习训练数据集602将包括输入数据,而没有任何相关联的输出数据或“地面实况(groundtruth)”数据。在至少一个实施例中,未经训练的神经网络606可以学习训练数据集602内的分组,并且可以确定各个输入如何与未经训练的数据集602相关。在至少一个实施例中,可以使用无监督训练来生成自组织图,其为一种能够执行对减少新数据612的维度有用的操作的经训练的神经网络608。在至少一个实施例中,无监督训练也可用于执行异常检测,其允许识别新数据集612中偏离新数据集612的正常模式的数据点。

在至少一个实施例中,可以使用半监督学习,这是一种其中训练数据集602包括标记数据和未标记数据的混合的技术。在至少一个实施例中,训练框架604可以用于执行增量学习,诸如通过转移的学习技术。在至少一个实施例中,增量学习使经训练的神经网络608能够适应新数据612,而不会忘记在初始训练期间注入到网络中的知识。

数据中心

图7示出了示例数据中心700,其中可以使用至少一个实施例。在至少一个实施例中,数据中心700包括数据中心基础设施层710、框架层720、软件层730和应用层740。

在至少一个实施例中,如图7所示,数据中心基础设施层710可以包括资源协调器712、分组的计算资源714和节点计算资源(“节点c.r.”)716(1)-716(n),其中“n”代表任何完整的正整数。在至少一个实施例中,节点c.r.716(1)-716(n)可以包括但不限于任何数量的中央处理单元(“cpu”)或其他处理器(包括加速器、现场可编程门阵列(fpga)、图形处理器等)、存储设备(例如,动态只读存储器)、存储器设备(例如,固态或磁盘驱动器)、网络输入/输出(“nwi/o”)设备、网络交换机、虚拟机(“vm”),电源模块和冷却模块等。在至少一个实施例中,节点c.r.716(1)-716(n)中的一个或更多个节点c.r.可以是具有上述计算资源的一个或更多个的服务器。

在至少一个实施例中,分组的计算资源714可以包括容纳在一个或更多个机架(未示出)中的节点c.r.的单独分组,或者容纳在各个地理位置(也未示出)处的数据中心中的许多机架的单独分组。分组的计算资源714内的节点c.r.的单独分组可以包括可以配置成或分配为支持一个或更多个工作负载的分组的计算、网络、存储器或存储资源。在至少一个实施例中,可以将包括cpu或处理器的几个节点c.r.分组在一个或更多个机架内,以提供计算资源来支持一个或更多个工作负载。在至少一个实施例中,一个或更多个机架还可以包括任何数量的电源模块、冷却模块和网络交换机的任意组合。

在至少一个实施例中,资源协调器722可以配置成或以其他方式控制一个或更多个节点c.r.716(1)-716(n)和/或分组的计算资源714。在至少一个实施例中,资源协调器722可以包括用于数据中心700的软件设计基础设施(“sdi”)管理实体。在至少一个实施例中,资源协调器可以包括硬件、软件或其某种组合。

在至少一个实施例中,如图7所示,框架层720包括作业调度器732、配置管理器734、资源管理器736和分布式文件系统738。在至少一个实施例中,框架层720可以包括用于支持软件层730的软件732和/或应用层740的一个或更多个应用程序742的框架。在至少一个实施例中,软件732或应用程序742可分别包括基于web的服务软件或应用程序,例如由amazonwebservices、googlecloud和microsoftazure提供的服务或应用程序。在至少一个实施例中,框架层720可以是但不限于一种免费和开放源软件网络应用框架,例如可以利用分布式文件系统738用于大规模数据处理(例如“大数据”)的apachesparktm(以下称为“spark”)。在至少一个实施例中,作业调度器732可以包括spark驱动器,用于促进对数据中心700的各个层所支持的工作负载的调度。在至少一个实施例中,配置管理器734可以能够配置不同的层(例如,包括spark的软件层730和框架层720)和用于支持大规模数据处理的分布式文件系统738。在至少一个实施例中,资源管理器736能够管理映射到或分配用于支持分布式文件系统738和作业调度器732的聚类的或分组的计算资源。在至少一个实施例中,聚类或分组计算资源可以包括在数据中心基础设施层710处的分组的计算资源714。在至少一个实施例中,资源管理器736可以与资源协调器712协调以管理这些映射或分配的计算资源。

在至少一个实施例中,包括在软件层730中的软件732可以包括由节点c.r.716(1)-716(n)、分组计算资源714和/或框架层720的分布式文件系统738的至少部分使用的软件。一种或更多种类型的软件可以包括但不限于internet网页搜索软件、电子邮件病毒扫描软件、数据库软件和流视频内容软件。

在至少一个实施例中,应用层740中包括的应用程序742可以包括由节点c.r.716(1)-716(n)的至少部分、分组的计算资源714和/或框架层720的分布式文件系统738使用的一种或更多种类型的应用程序。一种或更多种类型的应用程序可以包括但不限于任何数量的基因组学应用程序、认知计算和机器学习应用程序,包括训练或推理软件,机器学习框架软件(例如,pytorch、tensorflow、caffe等)或其他与一个或更多个实施例结合使用的机器学习应用程序。

在至少一个实施例中,配置管理器734、资源管理器736和资源协调器712中的任何一个可以基于以任何技术上可行的方式获取的任何数量和类型的数据来实现任何数量和类型的自我修改动作。在至少一个实施例中,自我修改动作可以减轻数据中心800的数据中心操作员做出可能不好的配置决定并且可以避免数据中心的部分的未充分利用和/或执行差。

在至少一个实施例中,数据中心700可以包括工具、服务、软件或其他资源,以根据本文所述的一个或更多个实施例来训练一个或更多个机器学习模型或者使用一个或更多个机器学习模型来预测或推理信息。例如,在至少一个实施例中,可以通过使用上文关于数据中心700描述的软件和计算资源,根据神经网络架构通过计算权重参数来训练机器学习模型。在至少一个实施例中,通过使用通过本文所述的一种或更多种训练技术计算出的权重参数,可以使用上面与关于数据中心700所描述的资源,使用对应于一个或更多个神经网络的经训练的机器学习模型来推理或预测信息。

在至少一个实施例中,数据中心可以使用cpu、专用集成电路(asic)、gpu、fpga或其他硬件来使用上述资源来执行训练和/或推理。此外,上述的一个或更多个软件和/或硬件资源可以配置成一种服务,以允许用户训练或执行推理信息,例如图像识别、语音识别或其他人工智能服务。

推理和/或训练逻辑615用于执行与一个或多个实施例相关联的推理和/或训练操作。在至少一个实施例中,推理和/或训练逻辑615可以在系统图7中使用,以至少部分地基于使用本文所述的神经网络训练操作、神经网络功能和/或架构、或神经网络用例计算的权重参数来推理或预测操作。

如本文中所描述,公开了用于小样本视点估计的方法、计算机可读介质和系统。根据图1-图4,实施例可以提供一种神经网络,该神经网络可用于执行推理操作并提供推理出的数据,其中如图5a和图5b所示,其中该神经网络被(部分地或全部地)存储在推理/或训练逻辑515中的数据存储器501和505之一或两者中。神经网络的训练和部署可以如图6所示和本文所述来执行。如图7所示和本文所述可以使用数据中心700中的一个或更多个服务器来执行神经网络的分发。


技术特征:

1.一种方法,包括:

训练神经网络的类别特定视点估计块,以学习能够推理针对新对象类别的视点估计的唯一视点估计网络;

由所述神经网络的类别无关特征提取块处理新类别的多个图像,以提取所述图像的每一个中的对象的特征;

使用所述特征,学习能够推理针对所述新对象类别的视点估计的所述唯一视点估计网络。

2.根据权利要求1所述的方法,其中使用监督学习和对象类别的有限集的训练集来训练所述类别无关特征提取块,以从所述对象类别的有限集中所包括的对象中提取通用特征。

3.根据权利要求1所述的方法,其中由所述类别无关特征提取块提取的所述对象的所述特征包括:

用于所述对象上可见关键点的位置的多峰热图,以及

所述对象的高级卷积特征集。

4.根据权利要求1所述的方法,其中元学习被用于训练所述类别特定视点估计块,以学习能够学习用于类别的所述唯一视点估计网络的网络。

5.根据权利要求1所述的方法,其中所述唯一视点估计网络使用类别特定特征提取模块和类别特定关键点检测模块。

6.根据权利要求5所述的方法,其中所述类别特定特征提取模块从输入的所述新对象类别的少量示例图像提取所述新对象类别的对象的特征。

7.根据权利要求6所述的方法,其中所述类别特定关键点检测模块使用针对所述新对象类别提取的所述特征,来检测用于所述新对象类别的目标对象的唯一语义关键点集,以用于计算所述目标对象的视点。

8.根据权利要求7所述的方法,其中所述唯一语义关键点集包括:

3d点集,其表示用于所述目标对象的类别的规范形状,

所述3d点中的每一个的2d图像投影,以及

每个2d图像投影的深度。

9.根据权利要求8所述的方法,其中所述3d点集包括可见点和不可见点。

10.根据权利要求1所述的方法,还包括:执行所述唯一视点估计网络,以推理针对所述新对象类别的所述视点估计。

11.根据权利要求10所述的方法,其中执行所述唯一视点估计网络包括:

接收所述新对象类别的少量示例图像,作为类别无关特征提取模块的输入;

由所述类别特定特征提取模块使用所述少量示例图像来提取所述新对象类别的对象的特征;

接收所述新对象类别的对象的所述特征,作为类别特定关键点检测模块的输入;

由所述类别特定关键点检测模块处理所述新对象类别的对象的所述特征,以推理针对所述新对象类别的所述视点估计。

12.一种系统,包括:

神经网络的类别特定视点估计块,其被训练以学习能够推理针对新对象类别的视点估计的唯一视点估计网络;

所述神经网络的类别无关特征提取块,其处理新类别的多个图像以提取所述图像的每一个中的对象的特征;以及

所述唯一视点估计网络,使用所述特征来学习所述唯一视点估计网络以用于推理针对所述新对象类别的视点估计。

13.根据权利要求12所述的系统,其中使用监督学习和对象类别的有限集的训练集来训练所述类别无关特征提取块,以从所述对象类别的有限集中所包括的对象中提取通用特征。

14.根据权利要求12所述的系统,其中由所述类别无关特征提取块提取的所述对象的所述特征包括:

用于所述对象上可见关键点的位置的多峰热图,以及

所述对象的高级卷积特征集。

15.根据权利要求12所述的系统,其中元学习被用于训练所述类别特定视点估计块以学习所述视点估计网络。

16.根据权利要求12所述的系统,其中所述唯一视点估计网络使用类别特定特征提取模块和类别特定关键点检测模块。

17.根据权利要求16所述的系统,其中所述类别特定特征提取模块从输入的所述新对象类别的少量示例图像提取所述新对象类别的对象的特征。

18.根据权利要求17所述的系统,其中所述类别特定关键点检测模块使用针对所述新对象类别提取的所述特征,来检测用于所述新对象类别的目标对象的唯一语义关键点集,以用于计算所述目标对象的视点。

19.根据权利要求18所述的系统,其中所述唯一语义关键点集包括:

3d点集,其表示用于所述目标对象的类别的规范形状,

所述3d点中的每一个的2d图像投影,以及

每个2d图像投影的深度。

20.根据权利要求8所述的系统,其中所述3d点集包括可见点和不可见点。

21.一种非暂时性计算机可读介质,其存储计算机指令,所述计算机指令在由一个或更多个处理器执行时,使得所述一个或更多个处理器执行方法,所述方法包括:

训练神经网络的类别特定视点估计块,以学习能够推理针对新对象类别的视点估计的唯一视点估计网络;

由所述神经网络的类别无关特征提取块处理新类别的多个图像,以提取所述图像的每一个中的对象的特征;以及

使用所述特征,学习能够推理针对所述新对象类别的视点估计的所述唯一视点估计网络。

技术总结
本发明公开了小样本视点估计。从3D投影图像时,必须确定图像中对象相对于相机的视点。由于图像本身不具有足够的信息来确定图像中各个对象的视点,因此必须采用估计视点的技术。迄今为止,神经网络已被用于以对象类别为基础来推理这种视点估计,但是必须首先用已经人工创建的大量示例进行训练。本公开提供了一种神经网络,其被训练为仅从少量示例图像学习能够推理针对新对象类别的视点估计的唯一视点估计网络。

技术研发人员:曾烘煜;S·D·梅洛;J·特伦布莱;刘思飞;J·考茨;S·T·伯奇菲尔德
受保护的技术使用者:辉达公司
技术研发日:2021.02.01
技术公布日:2021.08.03

转载请注明原文地址:https://doc.8miu.com/read-7729.html

最新回复(0)