一种目标物体的位姿估计方法和系统、机器人
技术领域
本发明涉及机器视觉
技术领域
,具体涉及一种目标物体的位姿估计方法和系统、机器人。背景技术
在机器人领域,自主抓取目标物体是智能机器人的一种关键能力,其中,对于散乱物体的抓取,也一直是实现机器人智能化的关键,机器人抓取散乱物体的能力可以应用于零件的分拣等场景,提高工作效率。但目前的机器人要执行一个复杂的新的抓取任务,需要花上数周时间来重新编程,这让现代制造业生产线的重组变得十分昂贵和缓慢。而且,机器人大多应用于特定的环境,针对特定的已知物体进行抓取操作,对于不确定环境下,不同位姿摆放的未知物体,让机器人自主决定被抓取物体的抓取部位和抓取夹持器的抓取位姿,目前技术还不成熟。如果能实现机器人自主抓取散乱物体,就可以减少机器人示教编程的时间,更好的实现自动化制造的柔性化和智能化,适应目前多品类、小批量的生产需求,满足产品更新换代时制造设备快速更新的需求。而对于散乱物体的姿态识别,是控制机器人进行散乱物体抓取的重要一步。
计算机视觉技术在机器人非结构化场景感知中占据重要的地位。视觉图像是获取真实世界信息的有效手段,利用视觉图像通过视觉感知算法提取操作对象的特征,如物体的位置、角度、姿态等信息,利用这些信息能够使机器人执行对应操作,完成指定作业任务。对于零件的分拣而言,目前已经能够利用视觉传感器获取场景数据,但如何从场景中识别目标物体,并估计其位置和姿态,则是十分关键的问题,这对于机器人抓取位置和抓取路径的计算非常重要。目前,物体位姿估计主要有两大类方法:一种是基于传统的点云或者图像分析算法进行估计,一种是基于深度学习,通过学习目标检测和位姿迭代方法进行估计。第一种方法主要根据图像或者三维点云模板信息进行位姿的识别和匹配,缺点是对于每一个物体都需要根据拍摄的图像或者CAD数据创建模板,对于多种零件需要创建多种模板,产品换型周期长。位姿估计主要是进行6D(三维坐标定位和三维方向)位姿估计,通过将从图像中提取的局部特征与物体三维模型中的特征进行匹配,利用二维坐标与三维坐标的对应关系,可以得到物体的6D位姿。但是这些方法不能很好地处理低纹理对象,因为只能提取到很少的局部特征。同样的,现有的基于深度学习的主流位姿估计算法大都依赖于物体表面的颜色、纹理等信息,而工业生产中的零件大多属于低纹理的物体,易受到光照条件的影响,使得从二维图像中反映出来的纹理不一定是三维物体表面真实的纹理,而且当图像的分辨率变化的时候,所计算出来的纹理可能会有较大偏差,不容易进行特征提取,使得这类算法对于低纹理、具有反光表面的零件识别效果较差。在实际情况中,还常常存在目标物体有部分被遮挡的问题,这也导致难以获取物体表面的局部特征或颜色、纹理等信息。为了处理低纹理物体,有两类方法,第一类方法是估计输入图像中物体像素或关键点的三维坐标,这样就建立了二维坐标与三维坐标的对应关系,从而可以进行6D位姿估计;第二类方法是通过对位姿空间离散化,将6D位姿估计问题转化为位姿分类问题或位姿回归问题。这些方法能够处理低纹理的物体,但难以实现高精度的位姿估计,在分类或回归阶段的小误差就将直接导致位姿不匹配。
发明内容
本申请提供一种目标物体的位姿估计方法和系统、机器人和计算机可读存储介质,旨在解决现有位姿估计方法大都依赖于物体表面的颜色、纹理等信息而导致对于低纹理、具有反光表面的物体的位姿估计效果较差的问题。
根据第一方面,一种实施例中提供一种目标物体的位姿估计方法,包括:
获取待处理图像;
将所述待处理图像输入一目标检测网络中以对待处理图像中的目标物体进行检测,得到目标检测结果图像;
将所述目标检测结果图像输入预先训练好的视图重建模型中以得到三维重建图像,所述三维重建图像包括三个通道,用于表示像素对应的三维坐标;
根据像素的二维坐标和对应的三维坐标计算变换矩阵;
根据变换矩阵计算得到等效轴角和等效旋转轴,从而得到目标物体的位姿。
一种实施例中,所述视图重建模型通过以下方式训练:
获取样本图像和对应的三维坐标标记图像I GT ;
将所述样本图像输入所述目标检测网络中以对样本图像中的目标物体进行检测,得到目标检测结果图像I src ;
将所述目标检测结果图像I src 输入所述视图重建模型中以得到三维重建图像I 3D ,所述三维重建图像包括三个通道,用于表示像素对应的预测三维坐标;
根据每个像素对应的预测三维坐标和三维坐标标记值计算每个像素的实际重建误差,利用所有像素的实际重建误差构建第一损失函数,上标i表示第i个像素;
将所述三维重建图像I 3D 和所述三维坐标标记图像I GT 一起输入预设的误差回归判别网络中以得到每个像素的预测重建误差,利用所有像素的预测重建误差和实际重建误差构建第二损失函数;
利用将所述三维重建图像输入到所述误差回归判别网络得到的结果,和将所述三维坐标标记图像输入到所述误差回归判别网络得到的结果构建第三损失函数;
利用所述第一损失函数、所述第二损失函数和所述第三损失函数的加权和构建总损失函数,根据所述总损失函数利用反向传播算法对所述视图重建模型和所述误差回归判别网络进行训练,得到所述视图重建模型的参数。
一种实施例中,所述第一损失函数为
,
其中,n表示像素的个数,λ为预设的权重值,F表示图像中属于目标物体的像素构成的集合;
对于对称物体,第一损失函数为
,
其中,sym表示对称物体所有对称姿态的集合,p表示第p个对称姿态,R P 表示第p个对称姿态的变换矩阵;
所述第二损失函数函数为
,
所述第三损失函数为
,
其中,J为所述误差回归判别网络的标识,G为所述视图重建模型的标识,G(I src )表示所述三维重建图像,J(G(I src ))表示所述三维重建图像输入到所述误差回归判别网络得到的结果,J(I GT )表示所述三维坐标标记图像输入到所述误差回归判别网络得到的结果;
所述总损失函数为
,
对于对称物体,总损失函数为
,
其中,α和β为预设的权重值。
一种实施例中,所述三维坐标标记图像通过以下方式得到:根据预知的目标物体三维坐标和图像平面二维坐标的变换关系,将目标物体上的点映射为图像平面上的像素,并将目标物体三维坐标归一化,作为图像平面上对应像素的RGB值,从而得到所述三维坐标标记图像。
一种实施例中,所述视图重建模型为自编码器结构,包括编码器和解码器,所述编码器和所述解码器通过一个或多个全连接层连接,所述编码器中若干层的输出和所述解码器中对称的层的输出进行通道拼接。
一种实施例中,所述根据变换矩阵计算得到等效轴角和等效旋转轴,包括:
根据以下公式计算等效轴角:
,
根据以下公式计算等效旋转轴:
,
其中,r 11 、r 12 、r 13 、r 21 、r 22 、r 23 、r 31 、r 32 、r 33 为所述变换矩阵的元素,所述变换矩阵具体为:
。
根据第二方面,一种实施例中提供一种目标物体的位姿估计系统,包括:
图像获取模块,用于获取待处理图像;
目标检测网络,与所述图像获取模块连接,用于对所述待处理图像中的目标物体进行检测,得到目标检测结果图像;
视图重建模型,与所述目标检测网络连接,用于对所述目标检测结果图像进行计算以得到三维重建图像,所述三维重建图像包括三个通道,用于表示像素对应的三维坐标;
变换矩阵计算模块,用于根据像素的二维坐标和对应的三维坐标计算变换矩阵;
位姿计算模块,用于根据变换矩阵计算得到等效轴角和等效旋转轴,从而得到目标物体的位姿。
一种实施例中,所述目标物体的位姿估计系统还包括视图模型训练模块,所述视图模型训练模块用于通过以下方式对所述视图重建模型进行训练:
获取样本图像和对应的三维坐标标记图像I GT ;
将所述样本图像输入所述目标检测网络中以对样本图像中的目标物体进行检测,得到目标检测结果图像I src ;
将所述目标检测结果图像I src 输入所述视图重建模型中以得到三维重建图像I 3D ,所述三维重建图像包括三个通道,用于表示像素对应的预测三维坐标;
根据每个像素对应的预测三维坐标和三维坐标标记值计算每个像素的实际重建误差,利用所有像素的实际重建误差构建第一损失函数,上标i表示第i个像素;
将所述三维重建图像I 3D 和所述三维坐标标记图像I GT 一起输入预设的误差回归判别网络中以得到每个像素的预测重建误差,利用所有像素的预测重建误差和实际重建误差构建第二损失函数;
利用将所述三维重建图像输入到所述误差回归判别网络得到的结果,和将所述三维坐标标记图像输入到所述误差回归判别网络得到的结果构建第三损失函数;
利用所述第一损失函数、所述第二损失函数和所述第三损失函数的加权和构建总损失函数,根据所述总损失函数利用反向传播算法对所述视图重建模型和所述误差回归判别网络进行训练,得到所述视图重建模型的参数。
根据第三方面,一种实施例中提供一种机器人,包括:
摄像机,用于拍摄包括目标物体的待处理图像;
机械臂,所述机械臂的末端设有一机械爪,用于根据所述目标物体的位姿抓取所述目标物体;
处理器,与所述摄像机和所述机械臂连接,用于通过所述摄像机获取待处理图像,并通过执行上述第一方面所述的位姿估计方法得到所述目标物体的位姿,并将其发送给所述机械臂以使所述机械臂抓取所述目标物体。
根据第四方面,一种实施例中提供一种计算机可读存储介质,所述介质上存储有程序,所述程序能够被处理器执行以实现上述第一方面所述的位姿估计方法。
依据上述实施例的目标物体的位姿估计方法和系统、机器人和计算机可读存储介质,由于将三维物体的检测和位姿估计问题,分解为二维图像中的目标检测和三维空间中的位姿估计问题,从而将一个复杂的问题简化为两个简单的问题,同时在位姿估计的过程中,将位姿估计问题分解为两个过程,一个是图像中像素的二维坐标和对应的三维坐标的映射关系的求解,一个是目标物体的位姿的估计,同样将一个复杂的问题简化为两个简单的问题,从而降低了目标物体的位姿估计问题求解的复杂度,提升了运算效率。由于通过训练得到视图重建模型,用于建立图像中像素的二维坐标和对应的三维坐标的映射关系,通过视图重建模型能够得到覆盖目标物体的三维重建图像,得到每个像素对应的三维坐标,可以适应低纹理、具有反光表面或者有部分被遮挡的物体的位姿估计,同时基于像素级的二维坐标和三维坐标的映射关系,进行位姿估计的求解,有利于提高位姿估计的精度。
附图说明
图1为本申请的目标物体的位姿估计方法的原理示意图;
图2为一种实施例中的目标物体的位姿估计方法的流程图;
图3为一种实施例中视图重建模型的结构示意图;
图4为一种实施例中对视图重建模型进行训练的流程图;
图5为一种实施例中误差回归判别网络的结构示意图;
图6为计算相机坐标系和世界坐标系之间的变换关系的原理示意图;
图7为一种实施例中的目标物体的位姿估计系统的结构示意图;
图8为一种实施例中的机器人的结构示意图。
具体实施方式
下面通过具体实施方式结合附图对本发明作进一步详细说明。其中不同实施方式中类似元件采用了相关联的类似的元件标号。在以下的实施方式中,很多细节描述是为了使得本申请能被更好的理解。然而,本领域技术人员可以毫不费力的认识到,其中部分特征在不同情况下是可以省略的,或者可以由其他元件、材料、方法所替代。在某些情况下,本申请相关的一些操作并没有在说明书中显示或者描述,这是为了避免本申请的核心部分被过多的描述所淹没,而对于本领域技术人员而言,详细描述这些相关操作并不是必要的,他们根据说明书中的描述以及本领域的一般技术知识即可完整了解相关操作。
另外,说明书中所描述的特点、操作或者特征可以以任意适当的方式结合形成各种实施方式。同时,方法描述中的各步骤或者动作也可以按照本领域技术人员所能显而易见的方式进行顺序调换或调整。因此,说明书和附图中的各种顺序只是为了清楚描述某一个实施例,并不意味着是必须的顺序,除非另有说明其中某个顺序是必须遵循的。
本文中为部件所编序号本身,例如“第一”、“第二”等,仅用于区分所描述的对象,不具有任何顺序或技术含义。而本申请所说“连接”、“联接”,如无特别说明,均包括直接和间接连接(联接)。
本申请技术方案的思路是建立二维图像坐标和三维坐标之间的映射关系,然后根据映射关系得到图像中每个像素的二维坐标所对应的三维坐标,利用二维坐标和三维坐标的对应关系可以求得世界坐标系和相机坐标系的变换关系,变换关系的求解主要是计算单应性矩阵,在得到单应性矩阵后即可获得旋转和平移量以用于位姿估计,下面进行详细说明。
图1和图2示出了本申请的目标物体的位姿估计方法的总体流程,请参考图2,一种实施例中目标物体的位姿估计方法包括步骤110~150,下面具体说明。
步骤110:获取待处理图像。可以使用相机或者摄像机等成像设备对目标物体所在的场景进行拍摄得到包括有目标物体的待处理图像,用于后续对目标物体进行位姿估计。这里的目标物体可以是工业流水线上的产品、物件箱内的机械零件、操作台上的工具等。
步骤120:将待处理图像输入一目标检测网络中以对待处理图像中的目标物体进行检测,得到目标检测结果图像。
为了对目标物体进行位姿估计,那么就需要先从图像中识别出目标物体,获取目标物体的位置,有针对性地进行处理。本申请中,将三维物体的检测和位姿估计问题,分解为二维图像中的目标检测和三维空间中的位姿估计问题,从而将一个复杂的问题简化为两个简单的问题,降低求解的复杂度。在本步骤中,即是先利用目标检测网络对待处理图像进行目标检测得到目标检测结果图像,获取待处理图像中目标物体的位置和类别,实现二维图像上的目标检测,目标检测网络可以使用现有的目标检测网络结构,如SSD、YOLO、FasterRCNN、Mobile Net等。
步骤130:将目标检测结果图像输入预先训练好的视图重建模型中以得到三维重建图像,三维重建图像包括三个通道,用于表示像素对应的三维坐标。
请参考图1,本申请通过构建和训练视图重建模型来建立二维图像坐标和三维坐标之间的映射关系,视图重建模型根据二维图像重建出其中每个像素对应的三维坐标,输出三通道的三维重建图像来表示像素所对应的三维坐标,这三个通道即对应着空间中三个维度的坐标。利用样本图像和对应的三维坐标标记图像对视图重建模型进行训练来将这种映射关系训练出来,其中三维坐标标记图像是根据样本图像对应的实际三维坐标预先构建的,通过这种训练来使视图重建模型获得稳定的映射关系,使得三维重建结果与实际值的误差尽量最小化,这样对于一个未知的物体,也可以很好地建立其二维图像坐标和三维坐标之间的映射关系。
视图重建模型可以采用卷积神经网络来实现,请参考图3,一种实施例中,视图重建模型可以是自编码器的结构,包括了编码器和解码器,编码器主要包括卷积、池化和激活函数运算,卷积核大小可以采用3x3或者5x5,步长为1;解码器主要包括上采样和卷积运算;编码器和解码器通过一个或多个全连接层连接,且编码器中若干层的输出和解码器中对称的层的输出进行通道拼接,实现多尺度特征图的拼接,既可以适应大物体的感受野,也可以适应小物体的感受野,能够同时对大物体和小物体进行映射关系的建立和位姿估计。可以理解,同一个物体,在不同视角下,其二维图像坐标和三维坐标之间的映射关系是不一样的,因此为了适应不同视角下的映射关系,不能用线性变换进行简单的表示,需要通过高阶函数或变换来表达,因此本实施例中通过使用自编码器结构,以Encoder(编码)和Decoder(解码)方式,通过多次卷积、池化、激活函数、上采样和多尺度特征图的拼接,最后重建出来这种具有适应性的高阶函数或变换。
训练中使用的三维坐标标记图像可以通过将实际三维坐标归一化,转化为图像的三通道颜色空间信息来构建。物体在三维空间中的位置数据可以用三维点云坐标系(x,y, z)来表征,可以将(x,y,z)坐标映射到归一化的空间中,转化为颜色空间信息(R,G,B),如果确定了目标物体三维坐标和图像平面二维坐标的变换关系,那么就可以将目标物体的三维坐标转化到图像上的二维坐标,将对应的颜色空间信息(R,G,B)存储在图像中相应的像素上,就得到了具有目标物体三维坐标信息的二维彩色图像,图像中的R、G、B三个通道和三维坐标的x、y、z一一对应,这个转化过程将目标物体的归一化三维坐标直接映射到颜色空间的RGB值,不需要特征匹配,解决了目标物体低纹理、具有反光表面或者有部分被遮挡的情况下特征提取困难的问题。因此,可以根据预知的目标物体三维坐标和图像平面二维坐标的变换关系,将目标物体上的点映射为图像平面上的像素,然后将目标物体三维坐标归一化,作为图像平面上对应像素的RGB值,从而得到三维坐标标记图像,用于表示目标物体三维坐标的真实值。可以理解,经过训练后,视图重建模型输出的三维重建图像为一彩色图像,其中的RGB值与目标物体的归一化三维坐标对应,从而建立了每个像素的二维坐标和三维坐标之间的对应关系。
在视图重建模型的训练中使用的是RGB-D异源数据,即视图重建模型的输入图像作为RGB信息,三维坐标标记图像由于包括空间中(x,y,z)信息可以作为深度D(Depth)信息。对于异源数据,主要有两种思路来进行特征的提取和利用:第一种是将颜色空间RGB信息和深度D信息分别输入到不同的网络进行处理,分别提取颜色空间特征信息和深度空间特征信息,然后将这两种特征信息进行融合;第二种是先输入RGB信息,获取目标物体的大概位置,然后将根据RGB信息获取的位置作为掩膜信息,引导深度D信息的特征提取。本申请采用第二种思路进行具体实施。
下面对视图重建模型的训练流程进行具体说明,图1和图4示出了对视图重建模型进行训练的总体流程,请参考图4,视图重建模型的训练流程包括步骤131~137,下面具体说明。
步骤131:获取样本图像和对应的三维坐标标记图像I GT 。样本图像可以使用相机或者摄像机等成像设备对不同场景下的目标物体进行拍摄得到。
步骤132:将样本图像输入目标检测网络中以对样本图像中的目标物体进行检测,得到目标检测结果图像I src ,获得目标物体的位置。
步骤133:将目标检测结果图像I src 输入视图重建模型中以得到三维重建图像I 3D ,由上文可知三维重建图像包括三个通道,在这里是用于表示像素对应的预测三维坐标。
步骤134:根据每个像素对应的预测三维坐标和三维坐标标记值计算每个像素的实际重建误差,利用所有像素的实际重建误差构建第一损失函数,其中上标i表示第i个像素。第一损失函数表征视图重建模型重建出的三维坐标与实际值的差距,目标检测结果图像I src 中前景部分的像素(即属于目标物体的像素)对训练的影响应该比背景部分的像素大,因此可以设置前景部分的像素和背景部分的像素有不同的权重值,因此第一损失函数可以为
,
其中,n表示像素的个数,λ为预设的权重值,F即为目标物体的掩膜信息,即F表示图像中预先标记为属于目标物体的像素构成的集合。
对于对称物体,第一损失函数为
,
其中sym表示对称物体所有对称姿态的集合,p表示第p个对称姿态,R P 表示第p个对称姿态的变换矩阵。例如一个正方体形物体,其具有三个对称轴,那么就具有三个对称姿态。
步骤135:将三维重建图像I 3D 和三维坐标标记图像I GT 一起输入预设的误差回归判别网络中以得到每个像素的预测重建误差,利用所有像素的预测重建误差和实际重建误差构建第二损失函数,第二损失函数可以为
。
误差回归判别网络用于评估视图重建模型对三维坐标重建结果的好坏,可以分辨三维重建图像和三维坐标标记图像的差异,它和视图重建模型是一种对抗的关系,在训练过程中,如果视图重建模型的误差变大,那么误差回归判别网络则能够给予反馈使视图重建模型往误差减小的方向变化,提高三维坐标重建的质量。请参考图5,误差回归判别网络可以包括若干卷积-池化层。
步骤136:利用将三维重建图像输入到误差回归判别网络得到的结果,和将三维坐标标记图像输入到误差回归判别网络得到的结果构建第三损失函数,第三损失函数表征误差回归判别网络的分辨能力。这里是分别单独考虑将三维重建图像或三维坐标标记图像输入误差回归判别网络得到的结果,网络的末端可以是一个softmax函数,因此得到的结果可以是一个介于0到1之间的数值。视图重建模型的目标是使输出的三维重建图像逼近三维坐标标记图像,这时误差回归判别网络对这两者分别作为输入得到的结果非常接近,则第三损失函数可以为
,
其中,J为误差回归判别网络的标识,G为视图重建模型的标识,G(I src )表示三维重建图像,J(G(I src ))表示三维重建图像输入到误差回归判别网络得到的结果,J(I GT )表示三维坐标标记图像输入到误差回归判别网络得到的结果。
步骤137:利用第一损失函数、第二损失函数和第三损失函数的加权和构建总损失函数,根据总损失函数利用反向传播算法对视图重建模型和误差回归判别网络进行训练,最终得到视图重建模型的参数。为了使误差回归判别网络能尽量分辨出不同,视图重建模型能尽量重建出与实际值接近的三维坐标重建图像,总损失函数可以为
,
对于对称物体,总损失函数为
,
其中,α和β为预设的权重值。
下面继续介绍步骤140~150。
步骤140:根据像素的二维坐标和对应的三维坐标计算变换矩阵。
经过步骤130的处理后相当于已经获得了图像的二维坐标点(u i ,v i )所对应的世界坐标系中的三维坐标点(x i ,y i ,z i ),利用二维点和对应的三维点形成的点对可以求得世界坐标系和相机坐标系的变换关系,进一步获得后续计算等效轴角和等效旋转轴的变换矩阵。请参考图6,图像中的二维点(简称2D点)对应的三维点(简称3D点)为,世界坐标系和相机坐标系的变换关系可以用旋转矩阵R和平移向量t来表示,记为。3D点在世界坐标系下的齐次坐标记为,2D点在图像坐标系下的齐次坐标记为,已标定的相机的内参数为
。
那么3D点到2D点投影可表示为
,
其中为缩放系数。按常理应该有6个自由度,但是旋转矩阵R虽然有9个参数,却只有3个自由度,因为旋转矩阵具有正交约束性。在计算时可以先忽略旋转矩阵R的正交约束,按照有12个未知参数计算,则上式可变为
,
展开后得到方程组
,
消去,写成矩阵形式可得
,
由上述推导可知,1对3D-2D点对可以提供两个方程,当点对数时,可以得到一个形式为的方程组,利用SVD分解(SVD,Singular Value Decomposition,奇异值分解)可以求得旋转矩阵R,将旋转矩阵R用作后续计算等效轴角和等效旋转轴的变换矩阵。实际应用中可以通过RANSAC算法来求解变换矩阵,即任意选择N个点对作为初始点对计算变换矩阵,然后进行迭代优化,评估所得到的变换矩阵的误差,直到误差小于设定的阈值为止。
由于在步骤130中得到每个像素的二维坐标和对应的三维坐标,在本步骤中是基于像素级的二维坐标和三维坐标的映射关系计算变换矩阵,从而有利于提高位姿估计的精度。
步骤150:根据变换矩阵计算得到等效轴角和等效旋转轴,从而得到目标物体的位姿。
所得到的变换矩阵可以表示为
,
那么等效轴角为
,
等效旋转轴为
。
可以理解,在得到等效轴角和等效旋转轴后就估计出了目标物体的位姿,机器人可以据此对目标物体进行抓取。
本申请还提供一种目标物体的位姿估计系统,请参考图7,一种实施例中,目标物体的位姿估计系统包括图像获取模块11、目标检测网络12、视图重建模型13、变换矩阵计算模块14和位姿计算模块15,下面分别说明。
图像获取模块11用于获取待处理图像,待处理图像可以通过相机或者摄像机等成像设备对目标物体所在的场景进行拍摄得到,用于后续对目标物体进行位姿估计。这里的目标物体可以是工业流水线上的产品、物件箱内的机械零件、操作台上的工具等。
目标检测网络12与图像获取模块11连接,用于对待处理图像中的目标物体进行检测,得到目标检测结果图像,获得目标物体的位置和类别。目标检测网络可以使用现有的目标检测网络结构,如SSD、YOLO、Faster RCNN、Mobile Net等。
视图重建模型13与目标检测网络12连接,用于对目标检测结果图像进行计算以得到三维重建图像,三维重建图像包括三个通道,用于表示像素对应的三维坐标。
视图重建模型13用于建立二维坐标和三维坐标之间的映射关系,根据二维图像重建出其中每个像素对应的三维坐标。视图重建模型13需要经过训练,利用样本图像和对应的三维坐标标记图像对视图重建模型13进行训练来将这种映射关系训练出来,其中三维坐标标记图像是根据样本图像对应的实际三维坐标预先构建的,通过这种训练来使视图重建模型13获得稳定的映射关系,使得三维重建结果与实际值的误差尽量最小化,这样对于一个未知的物体,也可以很好地建立其二维图像坐标和三维坐标之间的映射关系。
视图重建模型13可以采用卷积神经网络来实现,请参考图3,一种实施例中,视图重建模型13可以是自编码器的结构,包括了编码器和解码器,编码器主要包括卷积、池化和激活函数运算,卷积核大小可以是3x3或者5x5,步长为1;解码器主要包括上采样和卷积运算;编码器和解码器通过一个或多个全连接层连接,且编码器中若干层的输出和解码器中对称的层的输出进行通道拼接,实现多尺度特征图的拼接,既可以适应大物体的感受野,也可以适应小物体的感受野,能够同时对大物体和小物体进行映射关系的建立和位姿估计。可以理解,同一个物体,在不同视角下,其二维图像坐标和三维坐标之间的映射关系是不一样的,因此为了适应不同视角下的映射关系,不能用线性变换进行简单的表示,需要通过高阶函数或变换来表达,因此本实施例中通过使用自编码器结构,以Encoder(编码)和Decoder(解码)方式,通过多次卷积、池化、激活函数、上采样和多尺度特征图的拼接,最后重建出来这种具有适应性的高阶函数或变换。
训练中使用的三维坐标标记图像可以通过将实际三维坐标归一化,转化为图像的三通道颜色空间信息来构建。物体在三维空间中的位置数据可以用三维点云坐标系(x,y, z)来表征,可以将(x,y,z)坐标映射到归一化的空间中,转化为颜色空间信息(R,G,B),如果确定了目标物体三维坐标和图像平面二维坐标的变换关系,那么就可以将目标物体的三维坐标转化到图像上的二维坐标,将对应的颜色空间信息(R,G,B)存储在图像中相应的像素上,就得到了具有目标物体三维坐标信息的二维彩色图像,图像中的R、G、B三个通道和三维坐标的x、y、z一一对应,这个转化过程将目标物体的归一化三维坐标直接映射到颜色空间的RGB值,不需要特征匹配,解决了目标物体低纹理、具有反光表面或者有部分被遮挡的情况下特征提取困难的问题。因此,可以根据预知的目标物体三维坐标和图像平面二维坐标的变换关系,将目标物体上的点映射为图像平面上的像素,然后将目标物体三维坐标归一化,作为图像平面上对应像素的RGB值,从而得到三维坐标标记图像,用于表示目标物体三维坐标的真实值。可以理解,经过训练后,视图重建模型13输出的三维重建图像为一彩色图像,其中的RGB值与目标物体的归一化三维坐标对应,从而建立了每个像素的二维坐标和三维坐标之间的对应关系。
目标物体的位姿估计系统中还可以包括视图模型训练模块16以对视图重建模型13进行训练,训练的流程主要包括:获取样本图像和对应的三维坐标标记图像I GT ;将样本图像输入目标检测网络中以对样本图像中的目标物体进行检测,得到目标检测结果图像I src ,获得目标物体的位置;将目标检测结果图像I src 输入视图重建模型中以得到三维重建图像I 3D ,三维重建图像包括三个通道,在这里是用于表示像素对应的预测三维坐标;根据每个像素对应的预测三维坐标和三维坐标标记值计算每个像素的实际重建误差,利用所有像素的实际重建误差构建第一损失函数,第一损失函数可以为
,
其中,n表示像素的个数,λ为预设的权重值,F即为目标物体的掩膜信息,即F表示图像中预先标记为属于目标物体的像素构成的集合;
对于对称物体,第一损失函数为
;
其中sym表示对称物体所有对称姿态的集合,p表示第p个对称姿态,R P 表示第p个对称姿态的变换矩阵;
将三维重建图像I 3D 和三维坐标标记图像I GT 一起输入预设的误差回归判别网络中以得到每个像素的预测重建误差,利用所有像素的预测重建误差和实际重建误差构建第二损失函数,请参考图5,误差回归判别网络可以包括若干卷积-池化层,第二损失函数可以为
;
利用将三维重建图像输入到误差回归判别网络得到的结果,和将三维坐标标记图像输入到误差回归判别网络得到的结果构建第三损失函数,这里是分别单独考虑将三维重建图像或三维坐标标记图像输入误差回归判别网络得到的结果,网络的末端可以是一个softmax函数,因此得到的结果可以是一个介于0到1之间的数值,第三损失函数可以为
;
其中,J为误差回归判别网络的标识,G为视图重建模型的标识,G(I src )表示三维重建图像,J(G(I src ))表示三维重建图像输入到误差回归判别网络得到的结果,J(I GT )表示三维坐标标记图像输入到误差回归判别网络得到的结果;
利用第一损失函数、第二损失函数和第三损失函数的加权和构建总损失函数,根据总损失函数利用反向传播算法对视图重建模型和误差回归判别网络进行训练,最终得到视图重建模型的参数,总损失函数可以为
,
对于对称物体,总损失函数为
。
关于视图重建模型13的训练流程的详细说明可以参考上文的步骤130,这里不再赘述。
变换矩阵计算模块14用于根据像素的二维坐标和对应的三维坐标计算变换矩阵。经过试图重建模型13的计算,相当于已经获得了图像的二维坐标点(u i ,v i )所对应的世界坐标系中的三维坐标点(x i ,y i ,z i ),利用二维点和对应的三维点形成的点对可以求得世界坐标系和相机坐标系的变换关系,其中R为旋转矩阵,t为平移向量,将旋转矩阵R作为后续计算等效轴角和等效旋转轴的变换矩阵。具体计算方法可以参考上文步骤140,可以通过RANSAC算法来求解变换矩阵,即任意选择N个点对作为初始点对计算变换矩阵,然后进行迭代优化,评估所得到的变换矩阵的误差,直到误差小于设定的阈值为止。世界坐标系和相机坐标系的变换关系可以根据以下公式求解:
,
其中为3D点在世界坐标系下的齐次坐标,为2D点在图像坐标系下的齐次坐标,为已标定的相机的内参数。有12个未知参数,记为,则上式可变为
,
展开后得到方程组
,
消去,写成矩阵形式可得
,
由上述推导可知,1对3D-2D点对可以提供两个方程,当点对数 时,可以得到一个形式为的方程组,利用SVD分解(SVD,Singular Value Decomposition,奇异值分解)可以求得旋转矩阵R。
位姿计算模块15用于根据变换矩阵计算得到等效轴角和等效旋转轴,从而得到目标物体的位姿。变换矩阵计算模块14得到的变换矩阵可以表示为
,
那么等效轴角为
,
等效旋转轴为
。
可以理解,在得到等效轴角和等效旋转轴后就估计出了目标物体的位姿,机器人可以据此对目标物体进行抓取。
在上述目标物体的位姿估计方法的基础上,本申请还提供一种机器人,请参考图8,该机器人可以包括摄像机21、处理器22和机械臂23。
摄像机21用于拍摄包括目标物体的待处理图像,这里的目标物体可以是工业流水线上的产品、物件箱内的机械零件、操作台上的工具等。例如图8中摄像机是对物件箱中的目标物体进行拍摄。
处理器22与摄像机21和机械臂23连接,用于通过摄像机21获取待处理图像,并通过执行上述位姿估计方法得到目标物体的位姿参数,并将其发送给机械臂23以使机械臂23抓取目标物体,这里的位姿参数可以是指等效旋转轴和等效轴角。
机械臂23的末端设有一机械爪231,当接收到处理器22发送的目标物体的位姿参数时,机械臂23和机械爪231根据位姿参数运动,对目标物体进行抓取。
依据上述实施例的目标物体的位姿估计方法和系统、机器人,由于将三维物体的检测和位姿估计问题,分解为二维图像中的目标检测和三维空间中的位姿估计问题,从而将一个复杂的问题简化为两个简单的问题,同时在位姿估计的过程中,将位姿估计问题分解为两个过程,一个是图像中像素的二维坐标和对应的三维坐标的映射关系的求解,一个是目标物体的位姿的估计,同样将一个复杂的问题简化为两个简单的问题,从而降低了目标物体的位姿估计问题求解的复杂度,提升了运算效率。由于通过训练得到视图重建模型,视图重建模型采用自编码器结构,用于建立图像中像素的二维坐标和对应的三维坐标的映射关系,通过视图重建模型能够得到覆盖目标物体的三维重建图像,得到每个像素对应的三维坐标,可以适应低纹理、具有反光表面或者有部分被遮挡的物体的位姿估计,能够适应外界环境和光照的变化,且视图重建模型采用了多尺度特征图的拼接,能够同时对小物体和大物体进行位姿估计,具有良好的环境适应性和跨域迁移能力。同时基于像素级的二维坐标和三维坐标的映射关系,进行位姿估计的求解,有利于提高位姿估计的精度。
本文参照了各种示范实施例进行说明。然而,本领域的技术人员将认识到,在不脱离本文范围的情况下,可以对示范性实施例做出改变和修正。例如,各种操作步骤以及用于执行操作步骤的组件,可以根据特定的应用或考虑与系统的操作相关联的任何数量的成本函数以不同的方式实现(例如一个或多个步骤可以被删除、修改或结合到其他步骤中)。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。另外,如本领域技术人员所理解的,本文的原理可以反映在计算机可读存储介质上的计算机程序产品中,该可读存储介质预装有计算机可读程序代码。任何有形的、非暂时性的计算机可读存储介质皆可被使用,包括磁存储设备(硬盘、软盘等)、光学存储设备(CD至ROM、DVD、Blu Ray盘等)、闪存和/或诸如此类。这些计算机程序指令可被加载到通用计算机、专用计算机或其他可编程数据处理设备上以形成机器,使得这些在计算机上或其他可编程数据处理装置上执行的指令可以生成实现指定的功能的装置。这些计算机程序指令也可以存储在计算机可读存储器中,该计算机可读存储器可以指示计算机或其他可编程数据处理设备以特定的方式运行,这样存储在计算机可读存储器中的指令就可以形成一件制造品,包括实现指定功能的实现装置。计算机程序指令也可以加载到计算机或其他可编程数据处理设备上,从而在计算机或其他可编程设备上执行一系列操作步骤以产生一个计算机实现的进程,使得在计算机或其他可编程设备上执行的指令可以提供用于实现指定功能的步骤。
虽然在各种实施例中已经示出了本文的原理,但是许多特别适用于特定环境和操作要求的结构、布置、比例、元件、材料和部件的修改可以在不脱离本披露的原则和范围内使用。以上修改和其他改变或修正将被包含在本文的范围之内。
前述具体说明已参照各种实施例进行了描述。然而,本领域技术人员将认识到,可以在不脱离本披露的范围的情况下进行各种修正和改变。因此,对于本披露的考虑将是说明性的而非限制性的意义上的,并且所有这些修改都将被包含在其范围内。同样,有关于各种实施例的优点、其他优点和问题的解决方案已如上所述。然而,益处、优点、问题的解决方案以及任何能产生这些的要素,或使其变得更明确的解决方案都不应被解释为关键的、必需的或必要的。本文中所用的术语“包括”和其任何其他变体,皆属于非排他性包含,这样包括要素列表的过程、方法、文章或设备不仅包括这些要素,还包括未明确列出的或不属于该过程、方法、系统、文章或设备的其他要素。此外,本文中所使用的术语“耦合”和其任何其他变体都是指物理连接、电连接、磁连接、光连接、通信连接、功能连接和/或任何其他连接。
具有本领域技术的人将认识到,在不脱离本发明的基本原理的情况下,可以对上述实施例的细节进行许多改变。因此,本发明的范围应仅由权利要求确定。
- 上一篇:石墨接头机器人自动装卡簧、装栓机
- 下一篇:特征图像识别定位方法及系统