一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

计算机视觉引导的拆垛方法和设备与流程

2022-07-30 13:38:40 来源:中国专利 TAG:


1.本发明涉及物流或工业制造领域,尤其涉及在计算机视觉引导下进行拆垛。


背景技术:

2.在物流或工业制造领域中,拆垛是必要的操作过程。人工拆垛是工厂中常见的场景,但是这十分耗费人力并且对于工人而言也是不安全的。目前已经开发并使用计算机视觉引导的拆垛,其中采用计算机视觉技术驱动机器臂来执行拆垛。
3.当前的计算机视觉引导的拆垛方法通常用于例如立方体对象的具有光滑平坦表面的对象,因此,仅仅导出对象的2d信息而不考虑3d信息用于对该立方体对象进行拆垛,但是在实际的物流或工业制造场景中,存在对不规则形状的对象进行拆垛的需求,因此识别对象的3d位姿将是有意义的。
4.再者,当前的计算机视觉引导的拆垛方法一般需要将如深度摄像装置的立体视觉装置放置在成垛对象的上方,垂直于成垛的立方体对象。这限制了垛和摄像装置的相对位置,难以适应不同应用场景的需求,例如,当在垛的顶部没有足够的空间来设置摄像装置的情况下,这样的方法难以适用。


技术实现要素:

5.期望提供计算机视觉引导的拆垛方法和设备,其不限制立体视觉装置和垛的相对位置,并且获得对象的3d位姿信息,以便于对不规则形状对象进行拆垛。
6.根据一个方面,提供一种计算机视觉引导的拆垛方法。该方法包括接收一垛对象的2d图像和3d点云数据,所述2d图像和所述3d点云数据是由立体视觉装置采集的;基于所述3d点云数据利用主元分析算法确定所述垛对象的垂直方向;基于所确定的垂直方向从所述3d点云数据中提取对应所述垛对象的当前最高层的第一3d点云数据;将所述第一3d点云数据投影到所述2d图像中,以获得所述当前最高层的第一2d图像;从所述第一2d图像中提取包括在所述当前最高层中的一个或多个对象;将所提取的一个或多个对象投影回所述3d点云数据或者所述第一3d点云数据,以获得对应所述一个或多个对象中的每个对象的第二3d点云数据;和针对所述一个或多个对象中的一个对象,基于所述对象的所述第二3d点云数据和所述对象的3d点云模板确定所述对象的3d位姿,以用于对所述对象进行拆垛。
7.根据另一个方面,提供一种计算机视觉引导的拆垛设备。该设备包括接收单元,其接收一垛对象的2d图像和3d点云数据,所述2d图像和所述3d点云数据是由立体视觉装置采集的;和处理单元,其基于所述3d点云数据利用主元分析算法确定所述垛对象的垂直方向;基于所确定的垂直方向从所述3d点云数据中提取对应所述垛对象的当前最高层的第一3d点云数据;将所述第一3d点云数据投影到所述2d图像中,以获得所述当前最高层的第一2d图像;从所述第一2d图像中提取包括在所述当前最高层中的一个或多个对象;将所提取的一个或多个对象投影回所述3d点云数据或所述第一3d点云数据,以获得对应所述一个或多个对象中的每个对象的第二3d点云数据;并且针对所述一个或多个对象中的一个对象,基
于所述对象的所述第二3d点云数据和所述对象的3d点云模板确定所述对象的3d位姿,以用于对所述对象进行拆垛。
8.根据另一个方面,提供一种拆垛系统。该系统包括机器臂;控制设备,其控制所述机器臂对一垛对象进行拆垛;立体视觉装置,其采集所述垛对象的2d图像和3d点云数据;和根据各个实施例所述的计算机视觉引导的拆垛设备。
9.根据再一个方面,提供一种计算机程序产品,其包括计算机程序指令,所述计算机程序指令当被运行时使得根据各个实施例的拆垛设备执行根据本公开各个实施例所述的拆垛方法。
10.根据本公开各个方面的各个实施例,一方面,在拆垛过程中,首先利用主元分析算法基于一垛对象的3d点云数据确定该垛对象的垂直方向,然后基于所确定的垂直方向从该3d点云数据中导出对应该垛对象的当前最高层的第一3d点云数据,由此,不需要将立体视觉装置设置在该垛对象的上方并且垂直于该垛对象,也能够准确确定最高层对象;另一方面,基于对象的3d点云模板确定了该垛对象的最高层中的对象的3d位姿,考虑对象的3d位姿,能够实现对不规则对象的拆垛。
附图说明
11.在附图中,实施例仅通过示例的方式而不是限制的方式进行说明,在附图中相似的附图标记指代相似的元件。
12.图1示出了根据一个实施例的拆垛系统;
13.图2示出了根据一个实施例的计算机视觉引导的拆垛方法的流程图。
14.参照上述附图来描述本发明各个实施例的各个方面和特征。上述附图仅仅是示意性的,而非限制性的。在不脱离本发明的主旨的情况下,在上述附图中各个元件的尺寸、形状、标号、或者外观可以发生变化;此外,在上述附图中本发明实施例的移动通信终端设备的各个部分并未全部采用附图标号标示出,在某些附图中仅仅标示了相关的部件,这不会将各个部分限制到仅仅说明书附图所示出的那样。
具体实施方式
15.图1示出了根据一个实施例的拆垛系统1。在物流或工业制造业中,不仅仅需要对例如立方体的规则形状的对象进行拆垛,在某些情况下也需要对具有不规则形状的对象执行拆垛操作。例如,如图1所示的一垛对象6是由多个具有不规则形状的零件堆垛形成的,利用计算机视觉引导对这样的对象拆垛也是必要的。
16.如图1所示的拆垛系统1支持对包括不规则形状的对象的一垛对象6执行拆垛操作,当然,这不是限制性的,该拆垛系统1同样能够用于对例如立方体的规则形状的对象执行拆垛操作。
17.该拆垛系统1包括立体视觉装置2、计算机视觉引导的拆垛设备3、控制设备4和机器臂5。该立体视觉装置2包括3d立体视觉相机,其能够在拆垛期间在每次控制机器臂对该垛对象6中的最高层对象执行拆垛操作之前,采集该垛对象的rgbd图像,即该垛对象的2d图像和3d点云数据。该立体视觉装置2可以被定位在相对于该垛对象6的任何位置处,不限于在该垛对象6正上方垂直于该垛对象,尤其也可以定位在正上方之外的位置处。
18.所采集的2d图像和3d点云数据由计算机视觉引导的拆垛设备3的接收单元31接收,由处理单元32处理,以确定该垛对象6中最高层中所包括的将要被拆垛的对象的3d位姿信息。该计算机视觉引导的拆垛设备3的具体处理将参照下面图2描述。由于得到了要被拆垛的对象的3d位姿信息,不仅能够利用该信息对具有如立方体的规则形状的对象进行拆垛,也能够对如图1所示的具有不规则形状的零件进行拆垛。尤其,能够根据所确定的3d位姿信息确定将要被拆垛的不规则形状的对象的重心,由此确定针对该对象的抓取位置,便于生成相应的控制信号来控制机器臂5以所确定的抓取位置进行抓取,从而实现对象的拆垛操作。
19.在一个实施例中,在确定了将要被抓取的对象的3d位姿信息之后,该处理单元32进一步基于所确定的3d位姿信息来生成用于机器臂5的控制信号,以对相应的对象进行抓取。具体地,处理单元32基于所确定的3d位姿信息确定相应对象的重心,并且基于所述对象的重心确定针对所述对象的抓取位置,然后基于所确定的抓取位置生成控制信号。所生成的控制信号被传送给控制设备4,以使得该控制设备4能够相应地控制机器臂5以所确定的抓取位置对该对象执行拆垛操作。
20.在另一个实施例中,在确定了将要被抓取的对象的3d位姿信息之后,处理单元32将所确定的3d位姿信息直接发送给控制设备4,由控制设备4对该3d位姿信息进行进一步处理,并且基于3d位姿信息来生成用于机器臂5的控制信号,进而控制机器臂5进行拆垛操作。
21.控制设备4接收来自处理单元32的3d位姿信息或者控制信号,基于此对机器臂5进行控制。具体地,控制设备4能够控制机器臂5移动到特定的抓取位置,以便于准确地抓取对象。机器臂5能够实现多个自由度的运动,在控制设备4的控制下被移动到特定抓取位置,以抓取对象。
22.图2示出了根据一个实施例的计算机视觉引导的拆垛方法100的流程图。该方法由计算机视觉引导的拆垛设备3来执行。
23.根据该方法100,首先在步骤105,从立体视觉装置2接收由该立体视觉装置2所采集的rgbd图像,其包括该垛对象6的2d图像和3d点云数据。由于该2d图像和3d点云数据由同一立体视觉装置2采集,他们具有相同的坐标系。该3d点云数据包括对应该2d图像的有序3d点云数据。在该2d图像的像素序号和该3d点云数据之间具有预定的对应关系。也不排除2d图像和3d点云数据由不同的装置采集。该步骤110由上述拆垛设备3的接收单元31执行。
24.接下来,在步骤110,对所接收的rgbd图像进行初始处理,这包括背景滤波处理等,以提取感兴趣区域(即该垛对象6)对应的2d图像和3d点云数据。
25.在步骤115,对3d点云数据进行主元分析,以基于该3d点云数据确定该垛对象的垂直方向,即如图1中的箭头a所示的该垛对象堆垛的方向。如图1所示,该立体视觉装置2相对于该垛对象6倾斜放置。这当堆垛的上部空间不足以放置立体视觉装置2或者为了降低反光以增加图像质量的情况下是必要的。
26.对于该3d点云数据进行主元分析的目的在于寻求一个方向使得所有邻域点在该方向上的投影点的分布最为集中,进而基于该方向能够确定该3d点云数据的垂直方向,也就是该垛对象的垂直方向。
27.在确定了该垛对象6的垂直方向之后,即使该立体视觉装置是在相对于该垛对象6倾斜的位置放置,在步骤120,依然能够根据在步骤115确定的垂直方向从3d点云数据中提
取对应该垛对象6的最高层的第一3d点云数据。该垛对象6由多层对象组成,其中每层可以包括一个或多个对象。同样,该最高层也可以包括一个或多个对象。考虑到拆垛需要逐层进行,每次均对当前的最高层进行操作,因此,需要提取最高层的第一3d点云数据。该第一3d点云数据包括最高层所包括的全部对象的3d点云数据。
28.在步骤125,将在步骤120中提取的第一3d点云数据投影到在步骤105中接收的或者在步骤110中获得的该垛对象6的2d图像中,以获得该垛对象6的最高层的第一2d图像。该第一2d图像示出了最高层所包括的全部对象。当该最高层包括一个或多个对象时,该第一2d图像示出了该一个或多个对象。将第一3d点云数据投影到2d图像中基于该2d图像的像素序号和该3d点云数据之间的预定对应关系。
29.在步骤125中获得了示出最高层的全部对象的第一2d图像之后,在步骤130,从该第一2d图像中提取包括在该垛对象6的最高层中的一个对象作为当前对象,以便于之后对该对象进行拆垛操作。
30.在一个实施例中,也可以在该步骤中提取最高层所包括的全部对象中的每个对象。在另外的实施例中,可以提取最高层中的一部分对象。
31.对最高层中的对象的提取可以通过模板匹配或者神经网络来实现。在一个实施例中,计算机引导的拆垛设备3还包括一个存储器(未示出),该存储器存储单个对象的2d图像模板和对应的3d点云模板。基于该2d图像模板能够从上述第一2d图像中提取最高层中的一个或多个对象。上述2d图像模板和对应的3d点云模板可以是针对该垛对象6中的单个对象预先采集并确定的。
32.在另一个实施例中,能够基于经训练的神经网络从该第一2d图像中提取包括在最高层中的一个或多个对象。作为一个例子,能够将该垛对象6的最高层的第一2d图像直接输入经训练的神经网络以从该第一2d图像中提取包括在最高层中的全部对象。作为另一个例子,能够先对该第一2d图像执行处理,得到其中仅包括一个对象的图像,然后将包括一个对象的每个图像输入到经训练的神经网络以提取对应的对象。
33.该神经网络,例如是maskrcnn,是预先由对象的多个2d图像训练而生成的。在一个实施例中,能够利用实例分割从该第一2d图像中提取包括在最高层中的一个或多个对象。
34.接下来,在步骤135,将所提取的当前对象投影回3d点云数据或者第一3d点云数据,由此获得该当前对象的第二3d点云数据。当在步骤130中提取了最高层中的多个对象的情况下,在步骤135中能够将所提取的多个对象投影回3d点云数据或者第一3d点云数据,由此获得该多个对象的第二3d点云数据。上述投影基于2d图像的像素序号和3d点云数据之间的预定对应关系。
35.在步骤140,基于该当前对象的第二3d点云数据和存储器中预先存储的对象的3d点云模板确定该当前对象的3d位姿。基于该3d位姿能够确定机器臂的抓取位置,以使得机器臂能够根据该抓取位置对当前对象进行拆垛操作。
36.在步骤135中获得了多个对象的第二点云数据的情况下,在步骤140能够针对该多个对象中的每个对象,基于所述对象的第二3d点云数据和存储器中预先存储的对象的3d点云模板确定该对象的3d位姿。
37.具体地,可以采用以下方法来确定对象的3d位姿。先采用基于点对特征的算法(ppf)粗略确定该对象的六维位姿,这包括三维坐标位置和取向(俯仰角、偏航角和翻滚
角),该六维位姿用作迭代最近点算法(icp)的初始位姿,以确定该对象的3d位姿。采用ppf和icp算法的结合能够获得更准确的位姿信息。
38.在步骤140中确定了当前对象的3d位姿之后,在步骤145,基于所述当前对象的所述3d位姿生成用于机器臂的控制信号,以对当前对象进行拆垛。如果在步骤140中确定了多个对象的3d位姿,则在步骤145中能够依次针对每个对象基于对应的3d位姿生成用于机器臂的控制信号。
39.在步骤150中,该控制信号被传送给控制设备4,以使得该控制设备4能够根据该控制信号对当前对象进行拆垛。在完成当前对象的拆垛之后,一个信号可以被返回给计算机引导的拆垛设备3。
40.在接收到该信号之后,该方法100可以前进到步骤155,确定是否完成了当前最高层所包括的所有对象的拆垛,如果没有完成(即图2中示出的“n”),则该方法100返回到步骤130,进一步提取最高层中的下一个对象作为当前对象,进而针对该对象执行步骤130-150;如果已经完成(即图2中示出的“y”),则该方法100返回到步骤105,从立体视觉装置2接收由该立体视觉装置2所采集的进一步的rgbd图像,其包括一垛对象6的2d图像和3d点云数据,重复图2所示的方法,以对下一个最高层进行拆垛。
41.在一个实施例中,如果在步骤140中针对当前最高层中的全部对象中的每个对象均确定了其3d位姿,则在步骤155中确定没有完成对当前最高层所包括的所有对象的拆垛之后,使得该方法100返回到步骤145,以基于当前最高层中下一个对象的3d位姿生成用于机器臂的控制信号,以对当前最高层中的下一个对象进行拆垛。
42.以上参考图1-2描述了计算机视觉引导的拆垛方法和设备的各个实施例,这些实施例能够彼此组合以获得不同的效果,而不受主题类型的限制。再者,以上所提到的各个单元/步骤/处理不是限制性的,上述各个单元/步骤/处理的功能能够被合并/组合/变更/修改,以获取对应的效果。
43.在一个实施例中,如图2所示的方法中的部分步骤能够由控制设备4执行,例如步骤145和150也可以由控制设备4执行。
44.这些单元的功能能够由软件或者相应的硬件来实现,或者借助于处理器来实现上述各个单元的功能,例如处理器能够读取在存储器中的计算机程序,运行这些计算机程序来实现上述各个单元的功能。
45.具体地,上述设备的功能能够在移动设备的处理器中实现,或者能够在相对于移动设备的远程位置处实现。
46.可以理解,本公开的各个实施例的计算机视觉引导的拆垛方法和设备能够由计算机程序/软件实现。这些软件能够被载入到微处理器的工作存储器中,当运行时用于执行根据本公开的各实施例的方法。
47.本公开的示范性实施例覆盖以下两者:从一开始就创建/使用本公开的计算机程序/软件,以及借助于更新将已有程序/软件转为使用本公开的计算机程序/软件。
48.根据本公开另外的实施例,提供一种计算机程序产品,诸如机器(如计算机)可读介质,如cd-rom,其中包括计算机程序代码,该计算机程序代码当被执行时令计算机或处理器执行根据本公开的各实施例的方法。该机器可读介质例如是与其他硬件一起或作为其他硬件的部分供应的光学存储介质或固态介质。
49.也可以将用于执行根据本公开的各实施例的方法的计算机程序以其他形式发布,例如经由因特网或者其他有线或无线电信系统。
50.计算机程序也可以被提供在诸如万维网的网络上,并且能够从这样的网络被下载到微处理器的工作计算机中。
51.必须指出,本公开的实施例是参考不同主题来描述的。尤其地,一些实施例是参考方法型权利要求来描述的,而其他实施例是参考设备型权利要求来描述的。然而,本领域技术人员将从以上和以下描述获悉,除非另外指明,除了属于一种类型的主题的特征的任意组合以外,涉及不同主题的特征之间的任意组合也被视为被本技术公开了。并且,能够组合全部特征,提供大于特征的简单加和的协同效应。
52.上述对本公开特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施例中,多任务处理和并行处理也是可以的或者可能是有利的。
53.以上参照特定的实施例描述本公开,本领域技术人员应当理解,在不背离本公开的精神和基本特征的情况下,能够以各种方式来实现本公开的技术方案。具体的实施例仅仅是示意性的,而非限制性的。另外,这些实施例之间能够任意组合,来实现本公开的目的。本公开的保护范围由所附的权利要求书来定义。
54.说明书和权利要求中的“包括”一词不排除其它元件或步骤的存在,“第一”,“第二”,“步骤”等表述以及图中示出的各个步骤的次序不限定其顺序,也不限定数量。在说明书中说明或者在权利要求中记载的各个元件的功能也可以被分拆或组合,由对应的多个元件或单一元件来实现。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献