基于深度学习迭代匹配的6D姿态估计网络训练方法及装置与流程

文档序号:16633969发布日期:2019-01-16 06:50阅读:324来源:国知局
基于深度学习迭代匹配的6D姿态估计网络训练方法及装置与流程

本公开涉及人工智能领域,尤其涉及一种基于深度学习迭代匹配的6d姿态估计网络训练方法及装置。



背景技术:

从2d图像中获取物体在3d空间中的姿态在很多现实应用中非常重要,例如在机器人领域,识别出物体的6d姿态,即物体的3d位置和3d方位,能够为抓取或者运动规划等任务提供关键的信息;在虚拟现实场景中,准确的6d物体姿态可以使人和物体进行交互。

在传统的技术中,一般都会采用深度相机来做物体姿态估计。但是深度相机有很多局限性,例如在帧率、视场、分辨率和深度范围等方面的局限性,使得这些依赖深度相机的技术很难检测出细小的、透明的或者移动很快的物体。然而,只用rgb图像来估计物体的6d姿态仍然非常有挑战性,因为光照、姿态变化、遮挡等因素都会影响到物体在图像上的外观。一个鲁棒的6d姿态估计方法还需要能同时处理有纹理和无纹理的物体。

最近有一些基于深度学习的方法来使用rgb图像得到物体的6d姿态估计,一般是通过扩展目标检测或者分割的方法来实现。这些方法相对于传统只用rgb图像的方法有较大提升,但是仍然比不上基于rgb-d的方法。因此这些方法一般都需要进一步利用深度信息,通过icp(iterativeclosestpoint,迭代最近点算法)的方法对初始姿态估计进行改进。但是icp对初始估计比较敏感,可能会收敛到局部极小值,特别是在有遮挡的情况下。并且基于深度信息的方法本身也会受到深度相机的局限。



技术实现要素:

有鉴于此,本公开提出了一种基于深度学习迭代匹配的6d姿态估计网络训练方法及装置,以解决现有的深度学习方法得到的物体的6d姿态估计不够准确,且缺乏一种不依赖深度信息就能对6d姿态估计进行改善的方法的问题。

一方面,提出了一种基于深度学习迭代匹配的6d姿态估计网络训练方法,其特征在于,该方法包括:

利用目标对象的三维模型与初始6d姿态估计,获得目标对象的渲染图片和第一分割掩码,

将渲染图片、第一分割掩码、目标对象的观测图片及观测图片中目标对象的第二分割掩码输入到深度卷积神经网络中,得到6d姿态估计、第三分割掩码和光流,

以所得到的6d姿态估计更新所述初始6d姿态估计,以第三分割掩码替代所述第二分割掩码,重新执行上述步骤,以迭代训练所述深度卷积神经网络。

另一方面,提出了一种基于深度学习迭代匹配的6d姿态估计网络训练装置,其特征在于,该装置包括:

获得模块,用于利用目标对象的三维模型与初始6d姿态估计,获得目标对象的渲染图片和第一分割掩码,

输入模块,用于将渲染图片、第一分割掩码、目标对象的观测图片及观测图片中目标对象的第二分割掩码输入到深度卷积神经网络中,得到6d姿态估计、第三分割掩码和光流,

迭代模块,用于以所得到的6d姿态估计更新所述初始6d姿态估计,以第三分割掩码替代所述第二分割掩码,重新执行上述步骤,以迭代训练所述深度卷积神经网络。

另一方面,提出了一种基于深度学习迭代匹配的6d姿态估计网络训练装置,其特征在于,包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器被配置为在执行所述处理器可执行指令时,实现上述方法。

另一方面,提出了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现上述方法。

本公开实施例所提出的训练方法在对初始6d姿态估计进行改进时,不需要依赖深度信息,估计结果准确。由于渲染过程中可以根据需要对光照、遮挡等环境条件进行调整,该方法对于光照、遮挡等问题具有鲁棒性,而且,由于在有纹理或无纹理的情况下均可相应地获取分割掩码,因此该方法可以同时处理有纹理和无纹理的物体。

根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。

附图说明

包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。

图1a示出根据本公开一实施例的一种基于深度学习迭代匹配的6d姿态估计网络训练方法的流程图。

图1b示出了本公开一实施例的一种基于深度学习迭代匹配的6d姿态估计网络训练方法的示意图。

图2示出了根据本公开实施例的放大操作的一个示例的示意图。

图3示出了根据本公开一实施例的一种基于深度学习迭代匹配的6d姿态估计模型的训练方法的流程图。

图4示出了根据本公开实施例的深度卷积神经网络的一个示例的结构示意图。

图5是根据一示例性实施例示出的一种用于一种基于深度学习迭代匹配的6d姿态估计网络训练装置1900的框图。

具体实施方式

以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。

在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。

另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。

图1a示出根据本公开一实施例的一种基于深度学习迭代匹配的6d姿态估计网络训练方法的流程图。图1b示出了该方法的示意图,如图1a所示,该方法包括:

s101,利用目标对象的三维模型与初始6d姿态估计pose(0),获得目标对象的渲染图片和第一分割掩码。

其中,目标对象可以是网络训练过程中待进行姿态估计的任意对象,例如物体、人等。目标对象的初始6d姿态估计pose(0)可以是预设的初始值,或者通过其他相关技术的估计方法得到的初始值。基于目标对象的三维模型和初始6d姿态估计pose(0)进行渲染,可得到目标对象的渲染图片和第一分割掩码,其中第一分割掩码可以是渲染图片中目标对象的分割掩码。

s102,将渲染图片、第一分割掩码、目标对象的观测图片及观测图片中目标对象的第二分割掩码输入到深度卷积神经网络中,得到6d姿态估计δpose(0)、第三分割掩码和光流。

其中,目标对象的观测图片可以是对实际的目标对象进行拍摄得到的图片。第二分割掩码可通过针对观测图片的分割标注得到,分割标注可基于相关技术的对象分割方法获得。深度神经卷积网络可分三个分支分别回归6d姿态估计、第三分割掩码和光流以用于迭代训练。

s103,以所得到的6d姿态估计δpose(0)更新步骤s101中的初始6d姿态估计pose(0),以第三分割掩码替代步骤s102中的第二分割掩码,重新执行步骤s101、s102、s103,以迭代训练深度卷积神经网络。其中,更新表示将所得到的6d姿态估计δpose(0)与初始6d姿态估计pose(0)通过计算后得到新的6d姿态估计,作为下一次迭代的输入,本领域技术人员可通过相关技术手段实现,本公开对更新的具体实现方式不做限制。

其中,在重新执行步骤s101,s102之前,可根据损失函数对深度卷积神经网络的网络参数进行调整,在迭代训练至满足训练条件时,可视为训练完成,训练条件可根据实际需要进行设置,例如损失函数值小于阈值,或迭代次数达到阈值等,本公开对此不作限制。

本公开实施例所提出的训练方法在对初始6d姿态估计进行改进时,不需要依赖深度信息,估计结果准确。由于渲染过程中可以根据需要对光照、遮挡等环境条件进行调整,该方法对于光照、遮挡等问题具有鲁棒性,而且,由于在有纹理或无纹理的情况下均可相应地获取分割掩码,因此该方法可以同时处理有纹理和无纹理的物体。

在两大公开的测试基准数据集linemod和occludedlinemod上,该方法相比之前的方法有很大的性能提升。

在一种可能的实现方式中,迭代训练深度卷积神经网络,可包括:利用sgd优化算法迭代训练深度卷积神经网络。

可利用sgd(stochasticgradientdescent,随机梯度下降)优化算法迭代深度卷积神经网络,对损失函数进行优化,直至收敛,以实现更好的训练效果。

在一种可能的实现方式中,将渲染图片、第一分割掩码、目标对象的观测图片及观测图片中目标对象的第二分割掩码输入到深度卷积神经网络中,包括:

将目标对象的渲染图片,以及观测图片中目标对象的第二分割掩码的包围矩形区域一起进行的放大操作,使目标对象的三维模型的二维投影中心位于放大后的渲染图片的中心,并且使观测图片中的目标对象完整地位于放大后的观测图片之中;将放大后的渲染图片、第一分割掩码、放大后的观测图片及观测图片中目标对象的第二分割掩码输入到深度卷积神经网络中。

图2示出了根据本公开实施例的放大操作的一个示例的示意图。

如图2所示,观测图片中第二分割掩码的包围矩形区域经放大后,得到放大后的观测图片,渲染图片经放大后,得到放大后的渲染图片,其中观测图片和渲染图片的放大比例可相同。在放大后的渲染图片中,目标对象的三维模型的二维投影中心位于放大后的渲染图片的中心,观测图片中的目标对象完整地位于放大后的观测图片中。

由于本实施例中深度神经卷积网络处理的是以目标对象为中心放大后的成对图片(渲染图片和观测图片),因此受物体尺度因素影响较小,估计结果更为准确。

图3示出了根据本公开一实施例的一种基于深度学习迭代匹配的6d姿态估计模型的训练方法的流程图。如图3所示,该方法还包括:

通过以下步骤,利用训练后的深度卷积神经网络对待估计目标对象进行6d姿态估计:

s104,利用待估计目标对象的三维模型与初始6d姿态估计,获得待估计目标对象的渲染图片和第四分割掩码,

s105,将待估计目标对象的渲染图片、第四分割掩码、待估计目标对象的观测图片及观测图片中待估计目标对象的第五分割掩码输入到训练后的深度卷积神经网络中,得到6d姿态估计;

s106,以所得到的6d姿态估计更新所述待估计目标对象的初始6d姿态估计,重新执行上述步骤s104,s105,以对待估计目标对象的初始6d姿态估计进行迭代改进。

步骤s104、s105、s106作为网络的测试或使用过程,在网络迭代训练完成之后进行。在测试或使用过程中,去掉步骤s101-s103中训练好的深度卷积神经网络的光流和分割掩码两个分支,重复执行步骤s104、s105、s106,直至完成预设的迭代收敛条件,即可得到6d姿态估计结果。本公开对迭代收敛条件不做限制。

在一种可能的实现方式中,将待估计目标对象的渲染图片、第四分割掩码、待估计目标对象的观测图片及观测图片中待估计目标对象的第五分割掩码输入到训练后的深度卷积神经网络中,包括:将待估计目标对象的渲染图片,以及初始预测的观测图片中待估计目标对象的第五分割掩码的包围矩形区域一起进行的放大操作,使待估计目标对象的三维模型的二维投影中心位于放大后的渲染图片的中心,并且使观测图片中的待估计目标对象完整地位于放大后的观测图片之中;将放大后的渲染图片、第四分割掩码、放大后的观测图片及观测图片中待估计目标对象的第五分割掩码输入到训练后的深度卷积神经网络中。

其中,初始预测的第五分割掩码可以是通过其他相关技术得到的分割掩码,通过与上文类似的放大处理,使得估计结果受物体尺度因素影响较小,估计结果更为准确。

在一种可能的实现方式中,深度卷积神经网络输出的6d姿态估计可用相对于目标姿态的相对姿态变换量来表示,其中,目标姿态是所标注的观测图片中目标对象的姿态,可通过人工标注或其他相关姿态识别技术进行标注。相对姿态变换量包括相对旋转变换量和相对平移变换量,可用一种将平移和旋转解耦的方式来表示。

其中,相对旋转变换量可以目标对象在相机坐标系下的中心点作为相机坐标系的原点,这样在旋转时就不会影响目标对象在相机坐标系下的平移。由此将旋转与平移解耦开来。相对旋转变换量可以变换矩阵来表示。

相对平移变换量可用2d像素空间的偏移量和尺度变化来表示,而不是直接用3d空间中的坐标差表示。相对平移变换量可以变换向量来表示。

举例来说,假设相对平移变换量为tδ=(vx,vy,vz),其中vx,vy分别表示渲染图片中的目标对象和观测图片中目标对象之间在x和y方向上的像素移动量,vz表示目标对象的尺度变化因子,另假设渲染图片中的目标对象相对于坐标原点的源平移和观测图片中的目标对象相对于坐标原点的目标平移分别为tsrc=(xsrc,ysrc,zsrc)和ttgt=(xtgt,ytgt,ztgt),则平移相对变换可由下列公式得到:

vx=fx(xtgt/ztgt-xsrc/zsrc),

vy=fy(ytgt/ztgt-ysrc/zsrc),

vz=log(zsrc/ztgt),

其中fx和fy是相机的焦距,尺度变换因子vz用比值来表示,从而与目标对象的绝对尺度无关,采用对数是为了使vz=0对应于尺度没有变化。考虑到fx和fy都是固定的常数,在实际训练网络的过程中,可将其视为1。

通过解耦的相对旋转变换量和相对平移变换量的表示方式,使得网络训练起来更容易,并且能够应用到零样本学习上,即对之前未见过的模型进行6d姿态估计的改进。

在一种可能的实现方式中,深度卷积神经网络可基于用于预测光流的flownet模型来构建。其中,深度卷积神经网络的基本结构可以是用于预测光流的flownet的简单版本的结构,保留其预测光流的分支,并且在输入部分加入分割掩码,在输出部分也增加预测分割掩码的分支,以及预测6d姿态估计的分支。其中光流分支和分割掩码分支只在训练时起作用,作为训练的辅助,使训练更稳定,测试和应用时可以只有6d姿态估计分支。

网络的输入可包含8个通道,即观测图片3个通道、观测图片的分割掩码1个通道、渲染图片的3个通道和渲染图片的分割掩码1个通道。增加的分割掩码通道的网络权值可使用0初始化,其他的部分如果是新增的层则可采用随机初始化,其余与原flownet相同的层可均保留原始权值。

在使用网络进行姿态估计时,对于相对平移变换量可采用输出为3个神经元的全连接层,对于相对旋转变换量可采用输出为4个神经元的全连接层实现,其中4表示用四元数来表示相对旋转变换量。

图4示出了根据本公开实施例的深度卷积神经网络的一个示例的结构示意图。

在该示例中,网络以flownetconvs和flownetdeconvs(flownet卷积和反卷积)模型为基础,在训练过程中,将放大后的渲染图片及其分割掩码,以及放大后的观测图片及其分割掩码输入flownetconvs模型,得到6d姿态估计(包括相对旋转变换量(rotation),相对平移变换量(translation)),flownetdeconvs模型基于flownetconvs模型得到的特征图(featuremap)得到光流和分割掩码(上文中的第三分割掩码)。迭代训练完成后,进行测试以及利用网络进行姿态估计时,去掉光流和分割掩码两个分支。

在一种可能的实现方式中,在迭代训练中,基于6d姿态估计、光流和第三分割掩码三个分支的损失函数的加权和,构成损失函数。

举例来说,可采用如下损失函数:

l=αlpose+βlflow+γlmask

lpose表示6d姿态估计分支的损失函数,α表示6d姿态估计分支的损失函数的权重系数,lflow表示光流分支的损失函数,β表示光流分支的损失函数的权重系数,lmask表示第三分割掩码分支的损失函数,γ表示第三分割掩码分支的损失函数的权重系数。

可根据需要设置不同分支的权重系数,例如,可设置为α=0.1,β=0.25,γ=0.03,lflow可与flownet模型中一样,lmask可采用sigmoid交叉熵损失函数。

在一种可能的实现方式中,假设针对观测图片的目标姿态为p=[r|t],估计姿态为则6d姿态估计分支的损失函数可为:

其中r表示目标姿态中的旋转量,表示估计姿态中的旋转量,t表示目标姿态中的平移量,表示估计姿态中的平移量,xj表示目标对象的三维模型中第j个点的坐标,l1表示1范数,n表示三维模型中点的总数。其中,r、t、表示的是相对于坐标原点的绝对旋转量和绝对平移量,估计姿态的可以通过目标姿态叠加深度卷积神经网络输出的相对旋转变换量和相对平移变换量得到。

本公开实施例提出了一种基于深度学习迭代匹配的6d姿态估计网络训练装置,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为在执行所述处理器可执行指令时,实现上述方法。

本公开实施例提出了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现上述方法。

图5是根据一示例性实施例示出的一种用于一种基于深度学习迭代匹配的6d姿态估计网络训练装置1900的框图。例如,装置1900可以被提供为一服务器。参照图5,装置1900包括处理组件1922,其进一步包括一个或多个处理器,以及由存储器1932所代表的存储器资源,用于存储可由处理组件1922的执行的指令,例如应用程序。存储器1932中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1922被配置为执行指令,以执行上述方法。

装置1900还可以包括一个电源组件1926被配置为执行装置1900的电源管理,一个有线或无线网络接口1950被配置为将装置1900连接到网络,和一个输入输出(i/o)接口1958。装置1900可以操作基于存储在存储器1932的操作系统,例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm或类似。

在示例性实施例中,还提供了一种非易失性计算机可读存储介质,例如包括计算机程序指令的存储器1932,上述计算机程序指令可由装置1900的处理组件1922执行以完成上述方法。

本公开可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本公开的各个方面的计算机可读程序指令。

计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。

这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。

用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如smalltalk、c++等,以及常规的过程式编程语言—诸如“c”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。

这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。

这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。

也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。

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

以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

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