信息估计、模型检索和模型对准方法和装置与流程

文档序号:20841111发布日期:2020-05-22 17:30阅读:151来源:国知局
信息估计、模型检索和模型对准方法和装置与流程

本公开涉及增强现实技术领域,特别涉及信息估计、模型检索和模型对准方法和装置。



背景技术:

近年来,增强现实(augmentedreality,简称ar)技术受到越来越多的关注。增强现实技术是一种将真实世界信息和虚拟世界信息集成的技术,ar不仅展现了真实世界的信息,而且将虚拟的信息同时显示出来,两种信息相互补充、叠加,这给用户带来了全新的体验。

增强现实技术的一个基本功能是三维交互,即在现实世界的三维对象上叠加显示增强信息(虚拟对象或者文字等)。先进的增强现实功能需要对象的三维信息。然而现有的对象检测器或者slam(simultaneouslocalizationandmapping,同步定位与建图)系统却并不能提供这些信息。



技术实现要素:

有鉴于此,本公开的实施例提供了新的信息估计装置和方法、新的模型检索装置和方法、新的模型对准装置和方法,及其任意组合的装置和方法。

按照本公开的一方面,提供了一种信息估计方法,包括获取第一图像;以及利用神经网络对所述第一图像中的对象进行姿态和/或关键点估计。

所述神经网络包括姿态和/或关键点估计模块和领域自适应模块,所述神经网络的网络参数是采用合成图像和真实图像对所述姿态和/或关键点估计模块和所述领域自适应模块进行训练得到的。

在实施例中,该信息估计方法还可以包括根据所述第一图像和至少一个第二图像进行检索,得到目标模型,所述对象在所述第一图像中的第一姿态和在所述至少一个第二图像中的第二姿态各不相同。

在实施例中,该信息估计方法还可以包括:根据所述第一图像和所述至少一个第二图像获取图像特征,根据各模型在所述第一姿态下的图像和第二姿态下的图像获取各模型的模型特征,计算所述图像特征和所述各模型的模型特征的相似度,根据相似度在所述各模型中确定目标模型。

在实施例中,该信息估计方法还可以包括如下中的任一种:利用所述对象的姿态信息将目标模型和所述对象进行对准,再利用所述对象的关键点信息和所述目标模型的关键点信息对所述对准进行校准;以及利用所述对象的关键点信息将目标模型和所述对象进行对准,再利用所述对象的姿态信息和所述目标模型对所述对准进行校准。

该信息估计方法还可以包括利用所述对象的姿态信息和目标模型、所述对象的关键点信息和目标模型、以及与所述对象对准的目标模型中的至少一项来执行以下任一功能:操控所述对象;预测所述对象的行为;在所述对象表面绘制预定义内容;更新和/或控制虚拟对象的姿态。

按照本公开的另一方面,提供了一种模型检索方法,包括获取图像,以及根据所述图像进行模型检索,获得与所述图像中的对象匹配的目标模型。

所述图像包括第一图像和至少一个第二图像,所述对象在所述第一图像中的第一姿态和在所述至少一个第二图像中的第二姿态各不相同。

在实施例中,所述模型检索方法还可以包括根据所述第一图像和所述至少一个第二图像,获取图像特征,根据各模型在所述第一姿态下的图像和第二姿态下的图像获取各模型的模型特征,计算所述图像特征和所述各模型的模型特征的相似度,根据相似度在所述各模型中确定目标模型。

在实施例中,所述模型检索方法还可以包括如下中的任一种:利用所述对象的姿态信息将目标模型和所述对象进行对准,再利用所述对象的关键点信息和所述目标模型的关键点信息对所述对准进行校准;以及利用所述对象的关键点信息将目标模型和所述对象进行对准,再利用所述对象的姿态信息和所述目标模型对所述对准进行校准。

在实施例中,所述模型检索方法还可以包括利用神经网络对所述对象进行姿态和/或关键点估计,其中,所述神经网络包括姿态和/或关键点估计模块和领域自适应模块,所述神经网络的网络参数是采用合成图像和真实图像对所述姿态和/或关键点估计模块和所述领域自适应模块进行训练得到的。

所述模型检索方法还可以利用所述对象的姿态信息和目标模型、所述对象的关键点信息和目标模型、以及与所述对象对准的目标模型中的至少一项来执行以下任一功能:操控所述对象;预测所述对象的行为;在所述对象表面绘制预定义内容;更新和/或控制虚拟对象的姿态。

按照本公开的又一方面,提供了一种模型对准方法,包括获取第一图像;以及将所述第一图像中的对象与目标模型对准。

在实施例中,所述模型对准方法具体可以采用如下任一种方式进行:利用所述对象的姿态信息将目标模型和所述对象进行对准,再利用所述对象的关键点信息和所述目标模型的关键点信息对所述对准进行校准;以及利用所述对象的关键点信息将目标模型和所述对象进行对准,再利用所述对象的姿态信息和所述目标模型对所述对准进行校准。

在实施例中,所述模型对准方法还可以包括根据所述第一图像和至少一个第二图像获取图像特征,根据各模型在所述第一姿态下的图像和第二姿态下的图像获取各模型的模型特征,计算所述图像特征和所述各模型的模型特征的相似度,根据相似度在所述各模型中确定目标模型;所述对象在所述第一图像中的第一姿态和在所述至少一个第二图像中的第二姿态各不相同。

在实施例中,所述模型对准方法还可以包括利用神经网络对所述对象进行姿态和/或关键点估计,其中,所述神经网络包括姿态和/或关键点估计模块和领域自适应模块,所述神经网络的网络参数是采用合成图像和真实图像对所述姿态和/或关键点估计模块和所述领域自适应模块进行训练得到的。

在实施例中,所述模型对准方法还可以包括利用所述对象的姿态信息和目标模型、所述对象的关键点信息和目标模型、以及与所述对象对准的目标模型中的至少一项来执行以下任一功能:操控所述对象;预测所述对象的行为;在所述对象表面绘制预定义内容;更新和/或控制虚拟对象的姿态。

按照本公开的又一方面,提供了一种信息估计装置,包括:获取模块,用于获取第一图像;以及估计模块,用于利用神经网络对所述第一图像中的对象进行姿态和/或关键点估计。

按照本公开的又一方面,提供了一种模型检索装置,包括:获取模块,用于获取图像;以及检索模块,根据所述图像进行模型检索,获得与所述图像中的对象匹配的目标模型。

按照本公开的又一方面,提供了一种模型对准装置,包括:获取模块,用于接收第一图像;以及对准模块,将所述第一图像中的对象与目标模型对准。

按照本公开的又一方面,提供了一种电子设备,包括处理器和存储器,所述存储器存储有计算机可执行代码,当所述代码被处理器执行时,执行如本公开实施例中所描述的任一方法。

按照本公开的又一方面,提供了一种计算机可读介质,其上存储有计算机可执行指令,当所述指令由处理器执行时,执行如本公开实施例中所描述的任一方法。

按照本公开的实施例,在信息估计装置和方法中,信息估计神经网络包括姿态和/或关键点估计模块和领域自适应模块,并且采用合成图像和真实图像对姿态和/或关键点估计模块和领域自适应模块进行训练得到信息估计神经网络的网络参数,进而提高精度;在模型检索装置和方法中,利用图像和各模型在多姿态下的特征提取和比较来检索最接近的目标模型,从而提高模型检索的精度;在模型对准装置和方法中,利用对象的姿态信息将目标模型和所述对象对准,再利用对象的关键点信息和目标模型的关键点信息对所述对准进行校准;或者利用对象的关键点信息将目标模型和对象进行对准,再利用对象的姿态信息和目标模型对所述对准进行校准,从而提高图像和模型对准的精度。上述任一改进都可以在增强现实的应用中提高应用效果。

附图说明

通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:

图1示意性示出了根据信息估计、模型检索和模型对准的说明示意图;

图2示意性示出了根据本公开实施例的对象的二维图像和三维模型对准的装置的工作框图;

图3示意性示出了根据本公开实施例的对象的二维图像和三维模型对准的方法的工作流图;

图4示意性示出了根据本公开实施例的信息估计方法的工作流图;

图5示意性示出了根据本公开实施例的信息估计装置的示意图;

图6示意性示出了根据本公开实施例的信息估计的神经网络示意图;

图7示意性示出了根据本公开实施例的模型检索方法的工作流图;

图8示意性示出了根据本公开实施例的模型检索装置的示意图;

图9示意性示出了根据本公开实施例的模型检索的神经网络示意图;

图10示意性示出了根据本公开实施例的模型对准方法的工作流图;

图11示意性示出了根据本公开实施例的模型对准装置的示意图;

图12示意性示出了根据本公开实施例的模型对准的示意图;以及

图13-16示意性示出了根据本公开实施例的应用实施例。

具体实施方式

以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。

在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。

本文中的“模型”可以来自包括大量模型的可用模型库,如通过网络可获得的共享模型库或其它私有模型库。

所述领域自适应是指在训练网络模型中对真实图像域和合成图像域之间的差异加以考虑,使得其对训练的网络模型的影响最小。

本文中的对象可以指图像中的可供搜索的任何物体、动植物或人等。

本公开的方法实施例中的各步骤不限于本文所给定的方式或顺序来执行,所述步骤可以分别执行,也可以根据应用目的进行适当地组合后执行。对应地,本公开的装置实施例中的各模块不限于本文所给定的方式来实施,也可以根据应用目的进行适当地组合后实施。

具体地,本公开提到的信息估计方法、模型检索方法、模型对准方法既可以单独使用,又可以相互组合使用。同样地,本公开的信息估计装置或模块、模型检索装置或模块、模型对准装置或模块既可以单独使用,又可以相互组合使用。

图1示意性示出了信息估计、模型检索和模型对准的说明示意图。

作为示例,图1示出了可应用于例如增强现实等领域的对汽车的姿态进行估计的信息估计示意图、对例如三维模型进行检索的三维模型检索示意图以及对例如三维模型和二维图像进行对准的三维模型对准示意图。

在该实施例中,对对象姿态的估计指的是从如图1(a)所示的原始输入图像中估计对象的三维姿态信息即,六自由度(6dof)姿态信息。原始输入图像例如可以是一个包含对象的真实的二维图像。六自由度姿态信息,如图1(b)所示,包括方位角(azimuth)a、仰角(elevation)e、旋转角(in-planerotation)θ、距离(distance)d和原点(principalpoint)(u,v)。三维模型检索指的是检索出与二维图像中对象最相近的三维模型,如图1(b)所示。三维模型对准指的是将检索出的三维模型对准到二维图像中的对象上,如图1(c)所示。

图2示意性示出了根据本公开一个实施例的对象的二维图像和三维模型对准的装置的工作框图。

该实施例的装置同时包括对象信息估计、三维模型检索以及三维模型对准功能模块。如图2所示,首先向信息估计模块输入包含对象的二维真实图像,对对象的姿态和关键点进行估计。在该实施例中,利用基于多任务的估计对象姿态和关键点的方法中使用真实数据和大量合成数据作为训练数据。真实数据非常有限,标注成本很高,但具有标注的合成数据很容易得到,而且规模可以到达上百万,因此本公开的训练数据加入了合成数据。另外,由于利用了合成数据,但是合成数据和真实数据存在明显的差异,属于不同的域,为了消除这种差异,使得合成数据成为更有效的训练数据,本实施例中加入了消除真实域和合成域差异的网络结构,如在图4中加入的域分类器并在域分类器前面加入梯度反转层。

其次,三维模型检索模块基于多姿态(也称为多视角,例如包括估计的对象的当前姿态以及预先设置的若干特定姿态)并利用生成对抗网络(generativeadversarialnetworks,gan)产生的图像进行三维模型检索。

最后,三维模型对准模块利用检索的三维模型进行三维模型和原始二维真实图像的对准,包括初始对准和利用估计的关键点进行进一步的校准。

图3示意性示出了根据本公开实施例的对象的二维图像和三维模型对准的方法的工作流图。

该实施例的方法也同时涉及对象信息估计、三维模型检索以及三维模型对准。具体地,在该实施例中,输入一幅二维图像,检测图像中的对象,将检测出的对象图像送入训练好的姿态估计和关键点定位模型进行姿态(这里估计的是姿态的三个自由度,包括方位角(azimuth)、仰角(elevation)、旋转角(in-planerotation))估计和关键点定位;然后根据估计出的姿态去渲染包含大量三维模型的三维模型库中的所有三维模型在当前姿态和其他几个预先配置的固定姿态下的合成图像,同时利用gan生成的其他几个固定姿态下的图像,将原始对象图像、gan生成的图像和所有三维模型的合成图像送入训练好的三维模型检索网络提取特征,然后计算原始对象图像特征(包括从原始对象图像、gan生成的图像提取的特征)和所有三维模型的合成图像的特征之间的相似度进行三维模型检索,相似度最高的即为检索出与图像中对象最相近的三维模型;最后将检索出的三维模型、估计的关键点和检测结果进行二维图像和三维模型对准(对准具体方法见下文)。

本公开可以采用现有的深度学习的网络结构,如fasterrcnn、ssd、yolo等,进行对象检测。

下面将分别介绍本公开的信息估计装置和方法、模型检索装置和方法和模型对准装置和方法。

图4示意性示出了根据本公开实施例的信息估计方法400的工作流图。

图4的信息估计方法400包括步骤s401和步骤s402。在步骤401中获取第一图像;在步骤402中利用神经网络对获取的第一图像中的对象进行姿态和/或关键点估计。

本实施例中,信息估计方法400所使用的神经网络至少包括姿态和/或关键点估计模块和领域自适应模块,并且所述神经网络的网络参数是采用合成图像和真实图像对所述姿态和/或关键点估计模块和所述领域自适应模块进行训练得到的。

所述领域自适应模块用于降低合成图像域和真实图像域域之间的差异,以最小化真实图像和合成图像之间的差异对训练的网络模型的影响。

信息估计方法400所使用的神经网络还可以包括对象类别识别模块、关键点定位模块等。关键点定位模块用于对图像或模型中的关键点进行定位估计以更好地进行图像和/或模型的对准。

备选地,所述信息估计方法还可以包括检索步骤,例如根据所述第一图像和第二图像进行检索,得到目标模型,其中所述对象在第一图像中的第一姿态和在所述第二图像中的第二姿态不同。

这里的第一图像和第二图像可以为拍摄的真实图像(作为原始图像),也可以是根据所述真实图像生成的图像。例如,可以对同一对象拍摄两个不同姿态的图像,例如,这两个图像可以分别作为第一图像和第二图像。或者,第一图像是真实图像,第二图像是根据第一图像生成的图像。

第二图像可以是多个图像,所述对象在多个第二图像中的姿态也各不相同。

具体地,所述信息估计方法中,还可以根据第一图像和第二图像获取图像特征,根据所使用的模型库中各个模型在所述第一姿态下的图像和第二姿态下的图像来获取各个模型对应的模型特征。计算所述图像特征和所述各模型的模型特征的相似度,根据相似度确定所述各模型中最接近原始图像的目标模型。

备选地,所述信息估计方法还可以包括图像和模型的对准和校准。

所述图像和模型的对准和校准可以采用如下任一方式:利用所述对象的姿态信息将目标模型和所述对象进行对准,再利用所述对象的关键点信息和所述目标模型的关键点信息对所述对准进行校准;或者,利用所述对象的关键点信息将目标模型和所述对象进行对准,再利用所述对象的姿态信息和所述目标模型对所述对准进行校准。

备选地,所述信息估计方法中,可以利用所述对象的姿态信息和目标模型、所述对象的关键点信息和目标模型、以及与所述对象对准的目标模型中的至少一项来执行以下任一功能:操控所述对象;预测所述对象的行为;在所述对象表面绘制预定义内容;更新和/或控制虚拟对象的姿态。

图5示意性示出了根据本公开实施例的信息估计装置500的示意图。

信息估计装置500包括获取模块501以及估计模块502。获取模块501用于用于获取第一图像;所述估计模块502用于利用神经网络对所述第一图像中的对象进行姿态和/或关键点估计。

上述信息估计方法实施例中的各个特征同样可以适用于这里的信息估计装置实施例,因此不再赘述。

在信息估计装置和方法实施例中,可以使用深度学习的方法构建一个新的网络结构同时进行对象的姿态估计和关键点定位。

此外考虑到训练网络模型需要大量的训练样本,同时带有关键点和姿态标注的数据非常有限,标注成本又很高。三维cad模型可以渲染百万级别的合成数据,可以用来训练网络模型。但是合成数据和真实数据有着明显的差异,即属于不同的域(domain)中。如果不减弱这种差异会使得利用合成数据训练的模型偏于合成域,非常不利于真实数据的测试。故为了能够使模型更好的用于真实数据,本公开引入特定的网络结构来减弱合成域和真实域之间的差异。换句话说,本公开采用有监督的消除差异,在真实域和合成域两个域的数据中同时训练并减弱差异,测试时在真实域测试。

图6示意性示出了根据本公开实施例的信息估计的神经网络示意图。

该实施例主要包括训练数据准备、网络结构设计、网络训练和网络应用四个阶段。

准备训练数据

训练数据包括真实数据和合成数据。真实数据是带有对象类别、对象姿态和关键点标注的图像。合成数据是利用三维的cad模型渲染的带有对象类别、对象姿态和关键点标注的合成图像。

网络结构设计

如图6所示,该网络的输入图像都是具有红绿蓝三个通道的224×224的大小。该网络结构的基础网络,即图5中的basenet,可以采用很多结构,本公开采用vgg16的fc7(全连接层7)之前的网络层,共13层卷积层和2层全连接层(卷积层和全连接层都是卷积神经网络中的一种基本单元)。除了vgg16,还可以采用alexnet、resnet等网络作为基础网络。该网络具有这四项任务:对象类别识别、对象姿态估计、对象关键点估计和合成域与真实域识别。该网络可以同时进行这四种任务,设计了实现这四种任务的网络模块。每种任务的训练时都需要一种损失函数。对象类别识别任务采用softmax损失函数(也可以采用其他的损失函数,比如hinge损失函数),对象姿态的估计任务可以建模为一个回归问题也可以建模为一个分类问题。回归问题就是预测可以分为姿态估计的连续数值的估计,分类问题就是姿态类别的估计。本公开可以采用这两种建模中的任何一种。连续数值的估计采用smooth_ll损失函数,而姿态类别的估计采用softmax损失函数(也可以采用其他的损失函数,比如hinge损失函数)。这里以回归建模为例。对于关键点的估计任务,在设定真实值时,为了使得网络识别不同类别对象的不同位置的关键点,将每一类对象的每一种语义的关键点作为一个二维通道。在对应通道里,对应坐标处若为该关键点则为1,没有则为0。关键点估计任务的损失函数采用交叉熵损失函数(交叉熵损失函数和softmax损失函数都是很常用的函数,适用的问题不同)。合成域与真实域识别任务是一个二分类问题,但是为了减弱合成域和真实域之间的差异,即使网络分不清楚输入图像是来自哪个域,可以根据不同的网络结构进行不同的设计。(减弱这种域的差异可以采用多种方法或者网络结构,在此并不限定)。

一个具体实施例就是在基础网络basenet后面分离时,将basenet的输出(即全连接层7的输出)连接一层全连接层fc_c和另一层全连接层fc_p。fc_c对应对象的类别,结点数与对象的总类别数相同,以10类对象为例,全连接层fc_c的节点数就设置为10。全连接层fc_c的输出连接对象类别识别任务的损失函数softmax损失函数(该损失函数在图5中表示为l1)。从basenet-fc_c-softmax损失函数这条连接线为对象类别识别任务的网络模块。全连接层fc_p的每一个结点对应对象的一个自由度的姿态,本公开估计六个自由度(或者3个自由度)的姿态就要设置fc_p的结点数为6(或者3)。fc_p的输出连接对象姿态的估计任务的损失函数smooth_l1损失函数(该损失函数在图5中表示为l2)。从basenet-fc_p-smooth_l1损失函数这条连接线为对象姿态的估计的网络模块。此外,基础网络basenet的池化层5(pool5)输出还同时连接一层卷积层conv_k,对应关键点估计任务,conv_k的通道数与所有类别的所有关键点的总个数相同,以10类的对象共有100个关键点为例,conv_k的通道数就设置为100。经过3×3的卷积核卷积后的每个通道大小7×7。conv_k的输出即为100×7×7,连接关键点估计的损失函数交叉熵损失函数(该损失函数在图5中l3所示)。从basenet(pool5)-conv6-交叉熵损失函数这条连接线为对象关键点估计的网络模块。对于合成域与真实域识别任务,为了使网络分不清楚输入图像是来自哪个域,一种实现是在basenet后加入一层梯度反转层grl(gradientreversallayer),然后连接fclayers(多层全连接层),然后连接一层全连接层fc_d,fc_d对应域的个数,只有两个域,全连接层fc_d的节点数就设置为2。后面连接一个二分类器,采用softmax损失函数(也可以采用其他的损失函数,比如hinge损失函数,该损失函数在图6中l4所示)。从basenet-grl-fclayers-fc_d-softmax损失函数这条连接线为减弱不同域影响的网络模块。当然也有其他的方式,例如生成对抗网络(gan)中的对抗过程。

网络训练和应用

在训练时,合成图像和真实图像都是网络训练时的输入,将训练数据送入网络,并将网络中所有任务(包括对象的类别识别,对象姿态估计、对象的关键点估计任务和域分类任务)的损失函数的加权求和作为最终的损失函数l=a×l1+b×l2+c×l3+d×l4。其中a,b,c,d都为权重,其大小可以根据网络效果和经验设置,也可以通过学习自动学习其大小。当网络的损失函数收敛时,即可训练完成。图6中不同的虚线型表示不同域经过的网络结构,实线表示公共的路径。

在应用时(在电脑和其他终端上都行),将单幅真实彩色图像输入训练好的上面设计的深度学习网络可以输出图像中对象的类别(网络中的fc_c输出向量中的最大值的位置即为预测的类别)、姿态(网络中fc_p输出的6维的向量值即为预测的六个自由度的姿态值)、关键点信息(将这网络中的conv_k的输出矩阵的长宽归一化到和原图一样大小,每一个通道中最大值的位置坐标即为一个关键点,每一个通道对应一个关键点的名字)。

图7示意性示出了根据本公开实施例的模型检索方法700的工作流图。

在本实施例中,模型检索方法700包括步骤s701和步骤s702。在步骤s701中获取图像;在步骤s702中根据所述图像进行模型检索,获得与所述图像中的对象匹配的目标模型。

作为示例,这里的所述图像可以包括第一图像和第二图像,并且所述对象在所述第一图像中的第一姿态和在所述第二图像中的第二姿态不同。

这里的第一图像和第二图像可以为拍摄的真实图像(作为原始图像),也可以是根据所述真实图像生成的图像。例如,可以对同一对象拍摄两个不同姿态的图像,将这两个图像分别作为第一图像和第二图像。或者,第一图像是真实图像,第二图像是根据第一图像生成的图像。

姿态可以是人工标记好的,也可以是估计出来的。

第二图像可以是多个图像,所述对象在多个第二图像中的姿态也各不相同。

具体地,该模型检索方法700中,可以根据第一图像和第二图像获取图像特征,根据模型库中的各模型在所述第一姿态下的图像和第二姿态下的图像获取各模型对应的模型特征,计算所述图像特征和所述各模型的模型特征的相似度,根据相似度确定各模型中最接近原始图像的目标模型。

备选地,模型检索方法700还可以包括图像和模型的对准和校准。

所述图像和模型的对准和校准可以采用如下任一方式:利用所述对象的姿态信息将目标模型和所述对象进行对准,再利用所述对象的关键点信息和所述目标模型的关键点信息对所述对准进行校准;或者,利用所述对象的关键点信息将目标模型和所述对象进行对准,再利用所述对象的姿态信息和所述目标模型对所述对准进行校准。目标模型可以为检索出来的模型,也可以为预定的模型。

备选地,在该模型检索方法700中,还可以利用神经网络对所述对象进行姿态和/或关键点估计。所述神经网络可以包括姿态和/或关键点估计模块和领域自适应模块,所述神经网络的网络参数可以采用合成图像和真实图像对所述姿态和/或关键点估计模块和所述领域自适应模块进行训练得到。

备选地,在该模型检索方法700中,可以利用所述对象的姿态信息和目标模型、所述对象的关键点信息和目标模型、以及与所述对象对准的目标模型中的至少一项来执行以下任一功能:操控所述对象;预测所述对象的行为;在所述对象表面绘制预定义内容;更新和/或控制虚拟对象的姿态。

图8示意性示出了根据本公开实施例的模型检索装置800的示意图。

所述模型检索装置800包括获取模块801和检索模块802。

获取模块801用于获取图像;检索模块802根据所述图像进行模型检索,获得与所述图像中的对象匹配的目标模型。

上述模型检索方法实施例中的各个特征同样可以适用于这里的模型检索装置实施例,因此不再赘述。

在该模型检索方法和装置实施例中,由于估计出的对象的姿态可能存在误差,为了不过度依赖估计出的姿态,同时也提高特征表达能力,进而检索到与二维图像中对象最相近的三维模型,本公开生成的另一特定姿态(这里不限于一个特定姿态,也可以包括另外的多个特定姿态)下的图像和基于多姿态特征学习的网络结构的三维模型检索方法。

图9示意性示出了根据本公开实施例的三维模型检索的神经网络示意图。

在该实施例中包括训练数据准备、网络结构设计及训练和检索四个阶段。这里以两个姿态为例。

训练数据准备

训练数据为大量的三元组,包括查询样本、正样本和负样本。查询样本包括真实图像和利用gan产生的另一特定姿态下的图像。这里称估计出的真实图像的姿态为姿态1,另一特定姿态为姿态2。然后将每一个cad模型渲染姿态1和姿态2这两个姿态下的两幅合成图像。其中将与真实图像中对象相似的cad模型渲染的图像称为正样本,反之为负样本。这样的三元组即为每次输入的训练数据。

网络结构设计及训练

如图9所示,将三元组中每个样本的两幅图像归一化到224×224,输入到与前述用于信息估计的神经网络中的基础网络结构相同的基础网络,然后分别连接两个全连接层fc8_1和fc8_2,即为两个姿态下的图像特征,该全连接层的节点数都可以设置为4096,然后将两层全连接层进行融合,融合方式可以为拼接、或者通过卷积层卷积,或者通过其他的网络结构进行融合。然后将三元组的融合后的3个特征送入一个判别相似度的损失函数,例如tripletloss。通过这样的训练使得网络学习到查询样本的特征和正样本的特征更接近,与负样本的特征更远离。此外在训练时可以使用前述用于信息估计的神经网络中训练好的网络模型参数进行初始化,来保留真实数据和合成数据之间的域的差异最小。

三维模型检索

在检索时,首先通过在对象信息估计中训练好的信息估计网络估计真实输入图像的姿态1,然后通过gan产生另一特定姿态2下的图像,然后通过训练好的网络提取这两幅图像的融合后的特征作为查询图像的特征,同时也提取所有三维模型在姿态1和姿态2下的合成图像的融合后的特征作为三维模型的特征(可以先后提取不限量张数的图像特征),然后计算图像特征和三维模型特征的相似度,比如欧氏距离,距离越小相似度越大,相似度最大的三维模型即为检索出的最相近的图像中对象的三维模型。

图10示意性示出了根据本公开实施例的模型对准方法1000的工作流图。

在该模型对准方法实施例中,模型对准方法1000包括步骤s1001和步骤s1002。在步骤s1001中,获取第一图像;在步骤s1002中,将所述第一图像中的对象与目标模型对准。

具体地,在该对准实施例中,可以采用如下任一方式来完成图像和模型的对准和校准:利用所述对象的姿态信息将目标模型和所述对象进行对准,再利用所述对象的关键点信息和所述目标模型的关键点信息对所述对准进行校准;以及利用所述对象的关键点信息将目标模型和所述对象进行对准,再利用所述对象的姿态信息和所述目标模型对所述对准进行校准。

这里,姿态信息和关键点信息可以是估计的,也可以是人工标注的。同样,目标模型可以是从模型库中检索出来的,也可以是人工标注的。

备选地,在该对准方法中,还可以包括模型检索。具体地,例如根据第一图像和第二图像获取图像特征,根据模型库中的各模型在第一姿态下的图像和第二姿态下的图像获取各模型对应的模型特征,计算所述图像特征和所述各模型的模型特征的相似度,根据相似度确定各模型中最接近所获取的第一图像中的对象的目标模型。

所述对象在所述第一图像中的第一姿态和在所述至少一个第二图像中的第二姿态各不相同。

这里的第一图像和第二图像可以为拍摄的真实图像(作为原始图像),也可以是根据所述真实图像生成的图像。例如,可以对同一对象拍摄两个不同姿态的图像,将这两个图像分别作为第一图像和第二图像。或者,第一图像是真实图像,第二图像是根据第一图像生成的图像。

第二图像可以包括多个图像,所述对象在多个第二图像中的姿态也各不相同。

备选地,在该对准方法中,还可以对对象进行姿态估计和关键点估计。

具体地,可以利用神经网络对所述对象进行姿态和/或关键点估计。所述神经网络可以包括姿态和/或关键点估计模块和领域自适应模块,所述神经网络的网络参数可以采用合成图像和真实图像对所述姿态和/或关键点估计模块和所述领域自适应模块进行训练得到。

备选地,在该对准方法中,可以利用所述对象的姿态信息和目标模型、所述对象的关键点信息和目标模型、以及与所述对象对准的目标模型中的至少一项来执行以下任一功能:操控所述对象;预测所述对象的行为;在所述对象表面绘制预定义内容;更新和/或控制虚拟对象的姿态。

图11示意性示出了根据本公开实施例的模型对准装置1100的示意图。

该模型对准装置1100包括获取模块1101和对准模块1102。

获取模块1101用于接收第一图像;对准模块1102用于将所述第一图像中的对象与目标模型对准。

上述模型对准方法实施例中的各个特征同样可以适用于这里的模型对准装置实施例,因此不再赘述。

下面描述一种二维图像和三维模型对准的实施例。

基于对象的姿态和关键点信息,以及三维模型,本公开提出了二维图像和三维模型对准的方法。其中,姿态和关键点信息可以是估计的,也可以是人工标注的。三维模型可以是从模型库中检索出来的,也可以是预定的。为了减少误差,例如:估计的对象姿态的误差累积,本公开提出利用关键点进一步进行重调。如图12所示,具体如下,首先利用对象的检测框计算对象的三个自由度(距离和原点),同时加上通过网络估计的对象的三个自由度姿态(方位角、俯仰角和旋转角)为对象的六个自由度,然后将检索出的三维模型渲染该姿态下的二维图像然后对准到原始输入二维图像中,即得到初始的二维图像和三维模型对准,由于对象检测和姿态估计可能存在误差,最后使用估计出的对象姿态信息、二维图像中对象的关键点位置和三维模型的关键点进行匹配来进一步调整二维图像和三维模型对准。例如,可以利用对象的姿态信息将目标模型和对象进行对准,再利用对象的关键点信息和所述目标模型的关键点信息对所述对准进行校准。或者,可以利用对象的关键点信息将目标模型和对象进行对准,再利用对象的姿态信息和目标模型对所述对准进行校准。

本公开的上述实施例可以获得以下至少一个有益效果:更精确的对象信息估计,更精确的三维模型检索,更精确的二维图像和三维模型对准。

此外可以将本公开获得的二维图像中的对象的三维形状和姿态信息应用于更先进的增强现实应用中,比如:

(1)提供对象的三维信息来辅助三维增强现实交互(比如,增强现实中的交通工具的意向预测;根据运动中对象的三维姿态信息(slam并不能提供相对于场景运动的对象的三维信息)添加三维增强现实的效果);

(2)通过确保正确的虚拟现实三维对准在三维对象表面渲染三维增强现实效果(例如在增强现实视频中改变车的表面绘画)。

除了应用于增强现实外,估计的对象的三维形状和姿态信息还可应用于很多技术领域,如自动驾驶、机器人等。

图13-16示意性示出了根据本公开实施例的应用实施例。

作为示例而非限制,这里给出的各种应用中,可以利用对象的姿态信息和目标模型、对象的关键点信息和目标模型,以及与对象对准的目标模型中的至少一种来执行例如对所述对象的操控,预测对象的行为,在所述对象表面绘预定义内容,更新虚拟对象的姿态,或操控虚拟对象的姿态等等。其中,对象的姿态信息和关键点信息可以为估计出来的,也可以为人工标注的。目标模型可以是检索出来的,也可以是预定的。

具体地,如图13所示,在自动驾驶的场景中,估计出的车的姿态或者关键点、以及精确的三维模型对准可以应用于预测,如图13自动驾驶的车的摄像头可以拍到左边即将进入主路的车辆的图像,将该图像摄入即可估计出车的姿态或者关键点信息,进而实现车和精确的三维模型对准,例如利用估计出的车的精确的姿态信息和检索的目标模型,就可以实现车与其目标模型的精确对准,从而获得车的三维信息;也可以利用估计出的车的精确的关键点信息和检索的目标模型,实现车与其目标模型的精确对准,从而获得车的三维信息;此外还可以直接利用与对象对准后的目标模型获得当前车的三维信息。根据这些信息就可以估计出这辆车在前面视野中的三维地图中的位置和行驶方向、车辆尺寸等信息)行驶方向和交通工具的意向。

如图14所示,在视频增强现实场景中,基于精确的三维模型和二维图像中特定对象的对准,一旦检测到特定对象,可以将事先定义好的内容绘制到对象的表面。例如,利用估计出的对象的精确的姿态信息和检索的目标模型,就可以实现对象与其目标模型的精确对准,从而获得需要绘制事先定义好的内容的表面属于目标模型的哪个表面,然后将事先定义好的内容绘制在目标模型的该表面上,就会在该特定对象的表面看到绘制的内容,而不需要显示对准后的目标模型;也可以将绘制内容先叠加到三维模型的当前表面上,然后将具有叠加内容的三维模型与对象对准,再将三维模型去除,只保留绘制内容,也会在该特定对象的表面看到绘制的内容;还可以利用估计出的对象的关键点信息和检索的目标模型或者直接通过与对象对准后的目标模型,实现同样操作。

通过本公开在单幅图像中获取的姿态、关键点、模型检索、和用于对准的三维模型信息可以用于增强现实中匹配到真实对象的三维虚拟对象渲染,如图15在增强现实视频中,虚拟圆柱体的三维姿态信息,可以根据估计的桌子的姿态信息进行更新从而达到真实的视觉效果。假设要在有桌子的真实场景中在桌子上叠加虚拟对象,比如该虚拟圆柱体。可以先通过本公开的方法获得桌子的姿态信息和桌子的三维模型,从而获得桌子的三维信息,为了将虚拟圆柱体的底部和桌子的表面吻合地叠加在一起,可以通过计算三维桌子和三维虚拟圆柱体的距离,从而确定三维圆柱体在真实三维空间里的位置,然后渲染在当前姿态下的三维圆柱体,将渲染后的圆柱体叠加到原始的二维图像中。在已知桌子的关键点信息和目标模型,或者已知与桌子对准后的目标模型的情况与上述实现类似。

如图16所示,估计的真实对象的姿态或者关键点信息、以及用于对准的三维模型可以用于控制虚拟对象的姿态,在这种情况下,可以将真实的对象称为三维增强现实标示物(3darmarker)。已知精确的真实对象的姿态和目标模型,可以将虚拟对象的姿态设定为与真实对象的姿态一致,即改变真实对象的姿态就可以改变虚拟对象的姿态,真实对象类似于遥控器。已知真实对象的关键点信息或者对准的三维模型,都可以用于控制虚拟对象的姿态。

在例如机器人手臂操控应用中,机器人可以通过摄像头获取图像,然后利用本公开的方法估计图像中的要抓取对象的机器人姿态信息或与图像对准后的目标模型,从而控制机器人手臂的动作,如抓取位置、手势等,完成抓取。例如,通过获得要抓取对象的姿态和目标模型,就可以获得目标模型的位置、大小、姿态等三维信息,从而设定手臂的伸出距离和路径,手指的张开大小等信息,进而进行抓取。此外还可以获得对象的关键点信息和目标模型或者直接获取与对象对准后的目标模型来实现类似操作。

本公开还提供一种电子设备,包括处理器和存储器,存储器存储有计算机可执行代码,当代码被处理器执行时,执行前述本公开实施例所述的任意方法。

本公开还提供一种存储指令的计算机可读介质,当处理器执行指令时,执行本文前述本公开实施例所述的任意方法。

这里的“计算机可读介质”应被认为包括能够存储被计算机执行的指令的任何介质或多个介质的组合,其能够临时或永久地存储指令和数据的设备,并且可以包括但不限于随机存取存储器(ram)、只读存储器(rom)、缓冲存储器、闪速存储器、光学介质、磁性介质、高速缓冲存储器、其他类型的存储器(例如,可擦除可编程只读存储器(eeprom))和/或其任何合适的组合。“计算机可读介质”可以指单个存储装置或设备和/或包括多个存储装置或设备的“基于云”的存储系统或存储网络。

本文使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。此外,在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。

本公开实施例中的流程图或框图中的每个方框可以代表一个硬件模块、一个程序段、或代码的一部分,上述模块、程序段、或代码的一部分可包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,流程图、方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。在不脱离本公开的范围情况下,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。

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