发明内容
本发明涉及一种方法包括:以附接至机器人臂的夹持器夹持物体;捕捉包括物体的区域的至少两个源图像;计算至少两个源图像的平均图像;计算至少两个源图像的方差图像;从方差图像形成过滤图像;并通过将过滤图像用作位掩膜来对平均图像进行掩膜以获取结果图像。
本发明还涉及一种设备,包括:用于控制夹持器和机器人臂以夹持物体的装置;用于获取包括物体的区域的至少两个源图像的装置;用于计算至少两个源图像的平均图像的装置;用于计算至少两个源图像的方差图像的装置;用于从方差图像形成过滤图像的装置;以及用于通过将过滤图像用作位掩膜来对平均图像进行掩膜以获取结果图像的装置。
本发明还涉及在计算机可读介质上具体体现的计算机程序,该计算机程序包括用于控制处理器执行如下方法的代码,该方法包括:控制夹持器和机器人臂以夹持物体;以图像传感器获取包括物体的区域的至少两个源图像;计算至少两个源图像的平均图像;计算至少两个源图像的方差图像;从方差图像形成过滤图像;以及通过将过滤图像用作位掩膜来对平均图像进行掩膜以获取结果图像。
本发明还涉及计算机程序产品包括:控制夹持器和机器人臂以夹持物体;以图像传感器获取包括物体的区域的至少两个源图像;计算至少两个源图像的平均图像;计算至少两个源图像的方差图像;从方差图像形成过滤图像;以及通过将过滤图像用作位掩膜来对平均图像进行掩膜以获取结果图像。
本发明还涉及包括存储器和至少一个处理器的设备,该至少一个处理器被配置成:控制夹持器和机器人臂以夹持物体,以图像传感器获取包括物体的区域的至少两个源图像,计算至少两个源图像的平均图像,计算至少两个源图像的方差图像,从方差图像形成过滤图像以及通过将过滤图像用作位掩膜来对平均图像进行掩膜以获取结果图像。
本发明还涉及一种方法,该方法包括:以附接至机器人臂的夹持器夹持物体;以图像传感器捕捉包括物体的至少两个源图像;记录在捕捉至少两个源图像期间的夹持器的移动;基于所记录的夹持器的移动来确定针对至少两个源图像之间的运动的至少一个第一运动向量;将至少两个源图像中的至少一个划分成多个图像区域;并基于在至少两个源图像中的图像数据的比较来确定至少一个第二运动向量,该至少一个第二运动向量代表图像区域的运动;并将至少一个第二运动向量与至少一个第一运动向量匹配,以获取用于物体分类的至少一个图像区域。
本发明涉及一种设备,包括:用于以附接至机器人臂的夹持器夹持物体的装置;用于以图像传感器捕捉包括物体的至少两个源图像的装置;用于记录在捕捉至少两个源图像期间的夹持器的移动的装置;用于基于所记录的夹持器的移动来确定针对至少两个源图像之间的运动的至少一个第一运动向量的装置;用于将至少两个源图像中的至少一个划分成多个图像区域的装置;以及用于基于在至少两个源图像中的图像数据的比较来确定至少一个第二运动向量的装置,该至少一个第二运动向量代表图像区域的运动;和用于将至少一个第二运动向量与至少一个第一运动向量匹配,以获取用于物体分类的至少一个图像区域的装置。
本发明还涉及在计算机可读介质上具体体现的计算机程序产品或计算机程序。计算机程序产品或计算机程序包括用于控制处理器执行如下方法的代码,该方法包括:以附接至机器人臂的夹持器夹持物体;捕捉包括物体的至少两个源图像;记录在捕捉至少两个源图像期间的夹持器的移动;基于所记录的夹持器的移动来确定针对至少两个源图像之间的运动的至少一个第一运动向量;将至少两个源图像中的至少一个划分成多个图像区域;并基于在至少两个源图像中的图像数据的比较来确定至少一个第二运动向量,至少一个第二运动向量代表图像区域的运动;以及将至少一个第二运动向量与至少一个第一运动向量匹配,以获取用于物体分类的至少一个图像区域。
本发明还涉及一种方法或执行该方法的设备或包括该方法的步骤的计算机程序,该方法包括:以夹持器夹持物体,该夹持器附接至机器人臂或单独安装;使用图像传感器捕捉包括物体的区域的多个源图像;在多个源图像的捕捉时间期间,基于与所记录的夹持器运动的对应关系(correspondence),从多个源图像中选择移动图像元素;使用在所选的移动信息元件上的信息产生结果图像;以及使用结果图像来对被夹持的物体进行分类。在本发明的一个实施例中,移动图像元素的选择可包括计算至少两个源图像的平均图像,计算至少两个源图像的方差图像并从方差图像形成过滤图像。在本发明的一个实施例中,结果图像的产生可包括通过将过滤图像用作位掩膜来对平均图像进行掩膜以获取结果图像。在本发明的一个实施例中,移动图像元素的选择可包括:基于所记录的夹持器的移动来确定至少针对两个源图像之间的运动的至少一个第一运动向量,将至少两个源图像中的至少一个划分成多个图像区域,基于在至少两个源图像中的图像数据的比较来确定至少一个第二运动向量,该至少一个第二运动向量代表图像区域的运动以及将至少一个第二运动向量与至少一个第一运动向量匹配。
在本发明的一个实施例中,图像传感器被配置成沿夹持器移动,例如图像传感器可附接至夹持器或至机器人臂。
在本发明的一个实施例中,图像传感器被定位到:当物体正被移动时允许获取包括物体的区域的至少两个源图像的位置。
在本发明的一个实施例中,设备被配置成识别在至少两个源图像中的夹持器的图像。设备计算在第一源图像和第二源图像之间的夹持器的图像的至少一个位移并且基于位移来确定第一源图像和第二源图像的相互位置以用于至少计算平均图像和计算方差图像的步骤。位移可用于滚动第二源图像以准确地叠加在第一和第二源图像中的被夹持的物体的图像。被夹持的物体的实际图像可被移除。滚动可只是逻辑的并且只在平均图像和方差图像的计算中用作位移delta(Δ)值。
在本发明的一个实施例中,设备确定至少两个源图像的相互位置,相互位置的移动对应于所记录的夹持器的移动,以用于至少基于位移计算平均图像和计算方差图像的步骤。
在本发明的一个实施例中,设备确定在至少两个源图像中的至少一个移动区域,其移动对应于所记录的夹持器的移动并且该设备从至少两个源图像中过滤该至少一个移动区域。过滤可包括将区域中的像素设定为诸如0或1的预定值。移动区域可包括在块中,轮廓中或一形状中或其可为单个像素。
在本发明的一个实施例中,对应于随后两个源图像(其在至少两个源图像之中)之间的夹持器的移动的至少一个运动向量从为机器人臂记录的移动信息获取。在本发明的一个实施例中,移动向量可如在机器人臂坐标和图像坐标的移动之间的映射函数中转换那样来获取。移动向量可与通过比较随后两个源图像而获取的块或像素移动信息一起使用。这些具有与夹持器的已知运动对应的运动向量的块或像素可从至少两个源图像中过滤出。以这种方式,可以从至少两个源图像中完全移除移动背景,并且在平均和方差图像计算步骤中只严格限制物体与夹持器一起运动。移动块的示例为运动图像专家组(MPEG)宏块。
在本发明的实施例中,夹持器的至少一个视觉特征用于由设备中的物体识别器实体来识别在至少两个源图像中的夹持器。在至少两个源图像内的夹持器图像的至少部分的移动被用于获取指示出夹持器的运动的量级与方向的夹持器的运动向量。夹持器的运动向量也是被夹持物体(夹持器物体的至少部分)的运动向量,这源于其由夹持器保持的事实。应当注意的是,在长的物体的情况下,物体可以具有与直接接触夹持器而被保持的部分相关的抖动、摆动或滞后的部分。运动向量可用于对应于相应的两个源图像之间的夹持器的运动向量的逆向量而彼此相关的滚动至少两个源图像。包括至少计算至少两个源图像的平均图像、计算至少两个源图像的方差图像、从方差图像形成过滤图像、以及通过将过滤图像用作位掩膜来对平均图像进行掩膜以获取结果图像的进一步程序,随后可针对与运动向量的逆向量成比例而滚动的至少两个源图像来被执行。
在本发明的一个实施例中,设备中的臂控制器实体检测物体的成功夹持。该设备连至夹持器和机器人臂。响应于该检测,臂控制器实体将此指示给设备中的相机控制实体,该相机控制实体控制图像传感器以捕捉至少两个源图像。相机控制实体从图像传感器获取至少两个捕捉到的源图像给设备。
在本发明的一个实施例中,设备中的物体识别器实体从包括夹持器和机器人臂中的至少一个的视觉特征的结果图像中移除至少一个图像区域。
在本发明的一个实施例中,物体识别器实体基于结果图像中的至少一个视觉特征而对结果图像中的物体进行分类并且指导臂控制实体以引起机器人臂来移动物体至与分类对应的位置。
在本发明的一个实施例中,计算方差图像的步骤包括计算在至少两个源图像中的每个相应像素的方差;以及将计算出的方差设定为在方差图像中的相应像素的值。
在本发明的一个实施例中,通过方差图像意味着对于每个像素都具有与在跨至少两个源图像的该像素中的值的方差成比例的值的图像。测量在跨至少两个源图像的像素中的值的方差的一个方式是计算统计方差。
在本发明的一个实施例中,形成过滤图像的步骤包括在过滤图像中将每个相应像素设定成1,针对该过滤图像,在方差图像中的相应像素具有在预定阈值以下的值。
在本发明的一个实施例中,获取结果图像的步骤包括,只有过滤图像中的相应像素的值为1,才从平均图像中选择每个相应像素至结果图像。过滤图像可被理解为用于使能从平均图像中选择像素的二维位掩膜。
在本发明的一个实施例中,至少两个图像相对于包括潜在干扰被夹持物体的识别的其他物体的背景而取得。物体的背景可被理解为非结构化活动区域,亦即,在一个或多个其特征(诸如背景颜色或几何)中未被确定的、并可包括除所关心的物体外的未知特征的其他物体的环境或通常的三维空间。例如,一堆垃圾可构成非结构化活动区域,亦即机器人的操作空间。非结构化活动区域还可随着时间的推移改变。例如,当多件垃圾被从堆中移除时,该多件垃圾可能被搅乱、移动或倒塌。新垃圾也会加入堆中。
在本发明的一个实施例中,图像传感器为相机、红外相机和激光扫描器中的至少一个。
在本发明的一个实施例中,计算平均图像、计算方差图像以及形成过滤图像的步骤针对每个像素颜色通道而单独执行。在本发明的一个实施例中,至少两个源图像被转换为灰度,并且计算平均图像、计算方差图像以及形成过滤图像的步骤针对灰度而执行。
在本发明的一个实施例中,图像传感器被附接至夹持器或形成夹持器的部分。相机还可直接或经由轴附接至每个机器人臂。
在本发明的一个实施例中,本发明包括由控制单元控制的机器人臂并且该机器人臂被安装为使得其能到达驻留在非结构化活动区域中的物体。
在本发明的一个实施例中,系统另外包括附接至机器人臂并由控制单元控制的夹持器。例如,夹持器可为以类似手或爪的方式围住物体来夹持它们的装置。
在本发明的一个实施例中,系统另外包括可用于产生关于非结构化活动区域的感测数据的至少一个传感器装置。例如,一个这种传感器装置可为定向于观察非结构化活动区域的数字相机。
在本发明的一个实施例中,夹持器包括传感器,其可用于测量:夹持器是否与非结构化活动区域中的物体直接接触,例如当夹持器移动并且其碰触到物体时,或当物体被夹持时。
在本发明的一个实施例中,夹持操作的成功使用来自传感器的数据来确定。如果夹持不成功,那么机器人臂被移动至不同的位置以进行另一个尝试。
在本发明的一个实施例中,利用可在设备中运行的学习系统来进一步改进系统。
在本发明的一个实施例中,计算机程序存储在计算机可读介质上。计算机可读介质可为可拆卸的存储器卡、可拆卸的存储器模块、磁盘、光盘、全息存储器或磁带。例如,可拆卸的存储器模块可为USB记忆棒、PCMCIA卡或智能存储器卡。
在上文中描述的本发明的实施例可相互结合使用。多个实施例可结合在一起以形成本发明的进一步实施例。本发明涉及的方法、系统、设备、计算机程序或计算机程序产品可包括上文描述的本发明的实施例的至少一个。
本发明的益处涉及在从机器人的操作空间中选择物体的改进质量。本发明还用于进一步简化用于例如识别目标物体的形状或纹理的目标物体识别方法。本发明还通过避免图像移至空白背景来减少机器人臂所要求的移动并因此可导致减少由机器人臂造成的电力消耗。
具体实施方式
现在将详细参考本发明实施例,在附图中示出本发明实施例的示例。
图1是示出在本发明的一个实施例中的执行目标物体图像过滤的机器人系统的框图。在图1中,机器人系统100包括机器人110(例如工业机器人),其包括机器人臂116。机器人臂116连至夹持器112,其也可是夹具或爪。机器人臂116能够在操作区域102内移动夹持器112。机器人臂116可包括多个电动机(例如伺服电动机),其使机器人臂的夹持、旋转和提升能够受控。机器人臂116和夹持器112的不同移动由致动器实现。通过示例的方式,致动器可以是电动的、气动的或液压的,或者是这些的任意结合。致动器可移动或旋转机器人110的不同元件。电驱动器组可用于将数据处理信号(换句话说,来自设备120的指令)转换为适合的电压和功率水平以控制机器人臂116的致动器。响应于来自设备120的控制信号,致动器执行不同的机械功能,机械功能包括但不必限制为:在操作区域102内的特定位置上定位夹持器112,降低或提升夹持器112,以及关闭或打开夹持器112。机器人110可包括不同的传感器。通过示例的方式,传感器包括不同的位置传感器(未示出),其指示机器人臂116和夹持器112的位置,以及夹持器112的打开/关闭状态。夹持器的打开/关闭状态并不仅限于单一的是/否位(bit)。在本发明的一个实施例中,夹持器112可指示关于其每个指状物的多位打开/关闭状态,由此可获取夹持器中的一个或多个物体的尺寸和/或形状的指示。除了位置传感器之外,传感器组可包括应变传感器(还被称为应变测量仪或力反馈传感器),其指示由机器人臂116和夹持器112的不同元件经历的应变。在说明性的但是非限制性的实施示例中,应变传感器包括可变电阻,其阻抗取决于施加给它们的压缩张力而改变。因为阻抗的改变与电阻的绝对值相比是很小的,所以可变电阻典型地在惠斯通电桥(Wheatstone bridge)配置中被测量。
夹持器112或机器人臂116连接到相机114,其关注于(至少部分地)在其视野中的由夹持器112夹持的物体。在图1中,相机被示出在夹持器112内部。相机还可位于连至机器人臂116的单独的轴上并且被定位为使得由夹持器112所夹持的的物体也是良好地在相机114的视野中。相机可还位于在独立于机器人臂116的远程位置中。机器人110挑选包括在非结构化活动区域102中(即,在其操作活动区域中)的物体。活动区域102包括多个物体,诸如物体103、物体104和物体105。在图1中,示出了机器人110已经在目标物体105上执行了夹持操作并且将其保持在夹持器112中。
机器人110连至数据处理设备120(简言之为设备)。设备120的内部功能利用框140来示出。设备120包括至少一个处理器142、随机存取存储器(RAM)148和硬盘146。一个或多个处理器142通过执行软件实体150、软件实体152、软件实体154、软件实体156来控制机器人臂。设备120还包括至少一个相机外围接口145和机器人接口144以控制机器人110。外围接口145可为总线,例如为通用串行总线(USB)。设备120还连至终端130,其包括至少一个显示器和一个键盘。终端130可为使用局域网而连至设备120的笔记本电脑。
为了与外部装置(诸如机器人110)通信,设备120包括或利用外部接收/发送电路(诸如机器人接口144),其包括发送电路、接收电路并且其可包括内部或外部天线(未示出)。设备120可利用用于与实体世界通信的多个不同接口技术,实体世界在本示例中包括机器人110、夹持器112和相机114。无线局域网(WLAN)和短程无线接口(诸如红外线、无线电或蓝牙)是这种无线接收/发送电路的说明性的但非限制性的示例。替代这种无线通信技术或除了它们之外,数据处理设备可利用有线连接,诸如USB、任何并行或串行接口、或其他种类的工业标准接口或专用接口。
另外,设备120的存储器140包括通常地由至少一个处理器142执行软件实体或者程序的集合。存在臂控制器实体150,其经由机器人接口144发布指令给机器人110以控制机器人臂116和夹持器112的旋转、提升和夹持。臂控制器实体150还可接收关于机器人臂116和夹持器112的测得的旋转、提升和夹持的传感器数据。臂控制器可以基于经由接口144被接收到设备120的反馈而发布的新指令来对臂进行致动。臂控制器150被配置为发布指令给机器人110以执行限定好的高级别操作。高级别操作的示例为将机器人臂移动至特定的位置。臂控制器150可利用不同软件驱动器、例程或动态链接库以将高级别操作转换成一系列低级别操作,诸如经由电驱动器来将适当的输出信号序列输出至机器人110的致动器。相机控制器实体152使用接口145与相机114进行通信。相机控制器实体引起相机114以预定的时间间隔(在由相机控制器实体152指示的时刻处开始)拍摄许多照片。通常,相机控制器152可发布指令至相机114以在任意时刻拍摄照片。相机控制器实体152经由接口145获取由相机114拍下的照片并将照片存储在存储器140中。物体提取器实体154被配置成从预定的多个源照片(未示出)中提取目标物体。在本发明的一个实施例中,物体提取器实体154使用源照片以计算平均图像160和方差图像162。在本发明的一个实施例中,从方差图像152中,物体提取器实体154计算掩膜图像(未示出),其用于通过使用由掩膜图像构成的二维位图对平均图像160进行掩膜来形成结果照片164。从源照片过滤出的、如在结果照片164中显现的目标物体被进一步提供给物体识别器156,其可基于目标物体的不同视觉特征(诸如形状、颜色、纹理、多个离散余弦变换(DCT)系数、多个小波变换系数、MPEG宏块以及轮廓)执行目标物体的进一步分析。物体识别器还可包括关于夹持器112的图像的视觉特征的信息并且可使用该信息以去除在结果照片164中可见的夹持器的部分以产生甚至更好的结果照片用于进一步分析。夹持器112的图像的视觉特征可包括形状、颜色、纹理、多个离散余弦变换(DCT)系数、多个小波变换系数、MPEG宏块以及轮廓中的至少一种。基于目标物体识别中的结果,物体识别器156可将目标物体进行分类并经由臂控制器150指示机器人110以将目标物体移动至例如对应于目标容器的特定位置。
由物体提取器实体154所执行的过滤在下面的示例性实施例中说明。在本发明的一个实施例中,在相机114的视野中,目标物体105被相对于夹持环境102的背景而观察。然而,由于机器人臂116的移动是已知的(这是因为其是预定的操作或因为机器人控制系统准确地测量了移动),所以夹持器112的移动以及因此的在相机图像中的目标物体105的移动是已知的,而相机传感器视野的背景以不同的方式移动。于是,可通过从图像数据中只选择以与机器人臂的已知移动相对应的方式而改变的那些区域,来从相机图像中更准确地识别目标物体112。这个简单示例实施方式具有附接至夹持器112的相机114。在这种配置中,随着夹持器移动的物体在相机图像中看起来静止,而背景看起来在移动。从相机图像数据的物体的识别可以以“在线”方式实施。随着时间的推移,接收来自相机的新相机图像。取决于所使用的相机类型,新相机图像可能由于从相机请求新图像数据的物体识别系统而被构造,或者相机可以以相机固有的某速率来构造新的图像,并且物体识别系统可以随后请求最新的图像(其可能与之前请求的一个图像是同一图像),或者物体识别系统可在当新图像数据可用时从相机接收指示。当接收到新图像时,先前接收到的图像以及新图像中的像素值的移动平均(running average)和方差被计算,其可被认为是形成两个图像(平均图像和方差图像)。所使用的先前接收的图像的数量可设定为参数以最好地适合即将到来的应用。当以这种方式接收并处理了足够数量的相机图像时,通过将其中方差图像中的对应像素小于预定阈值的那些像素中的像素值设定为1及否则为零来计算掩膜图像。然后,平均图像用于执行物体识别(导致特征图像),其包括在平均图像中的、被认为是具有物体识别系统被设定以识别的某些视觉特征的那些像素。例如,如果物体识别系统被设定成识别红色物体,则特征图像会包括来自平均图像的、被物体识别系统认为是“红色”的那些像素。一旦特征图像被计算出,最终的图像通过使用掩膜图像对特征图像进行掩膜来计算出。这通过从特征图像只选择对于其在掩膜图像中的对应像素具有像素值为1的那些像素来完成。对应于被夹持物体的图像的部分从而容易地从最终图像中识别出来。一旦对应于被夹持物体的相机图像数据的部分被识别出,当物体移动时,数据就可由物体识别系统使用以确定被夹持的物体的类型。这种新型信息然后可与先前确定的类型信息结合使用以选择在物体上执行的操作。
当至少一个处理器执行与本发明关联的功能实体时,存储器包括诸如臂控制器实体150、相机控制器实体152、物体提取器实体154和物体识别器实体156之类的实体。在图1中示出的设备120内的功能实体可由多种方式实施。它们可被实施为在网络节点的本地操作系统下执行的进程。实体可作为单独的进程或线程而实施,或实施为使得许多不同的实体通过一个进程或线程来实施。进程或线程可为包括多个例程(即例如程序和函数)的程序块的实例。功能实体可实施为单独的计算机程序或实施为包括多个例行程序的单个计算机程序或实施实体的功能。程序块存储在至少一个计算机可读介质(诸如例如存储器电路、存储器卡、磁盘或光盘等)。一些功能实体可实施为连接至另一个功能实体的程序模块。图1中的功能实体还可存储在单独存储器中并由单独存储器执行,其例如经由消息总线或在网络节点内的内部网络来通信。诸如这种消息总线的示例是外围组件互联(PCI)总线。
在本发明的一个实施例中,软件实体150-156可实施为单独软件实体,诸如例如子例程,进程,线程,方法,对象,模块和程序代码序列等。它们还可只是设备120中的软件内的逻辑功能,该逻辑功能未被归组为任何特定的单独子例程,进程,线程,方法,对象,模块和程序代码序列。它们的功能可遍布整个设备120的软件。一些功能可在设备120的操作系统中执行。
在说明性但非限制性的示例中,非结构化活动区域102是输送带或与机器人的操作区域相交的输送带的部分。设备120不太具有或没有关于非结构化活动区域102内的物体103、104、105的先验信息,诸如所关心的物体的尺寸、形状和/或颜色。在本发明的一些实施例中,设备120可具有关于所关心物体的一些先验信息,或通过学习已获取关于物体的信息,但至少所关心的物体的背景(其他物体)、位置和定向是典型的未知先验。也就是说,物体103、104和105可能处于非结构化活动区域102中的随机位置和随机定向,并且物体可彼此重叠。
关于图1的上文中所描述的发明实施例可彼此结合使用。多个实施例可结合在一起以形成本发明的进一步实施例。
图2A是示出在本发明一个实施例中的、在机器人系统(诸如图1中示出的机器人系统100)中的目标物体图像的过滤的框图。图2中的起始点是:连至机器人臂116的夹持器112成功地夹持了物体(例如图1中示出的物体105)。因此,机器人臂116开始将物体105移动至给定的方向。在臂移动期间,相机114拍摄一序列五张照片(亦即相机图像250、相机图像252、相机图像254、相机图像256和相机图像258,以此顺序)。物体105的成功夹持和机器人臂116的移动的开始可充当触发器以开始拍摄一序列相机图像。照片以预定时间间隔拍摄,该时间间隔可为例如100毫秒至5秒。例如,时间间隔可为0.5秒。相机114被定位以便物体105适合其视场。在相机图像250中,物体105可见为框280。在相机图像250中,夹持器112的两个指状物可见为矩形282和矩形284。在相机图像250中,还有可见的背景物体,诸如物体285。机器人臂的移动可见为相机图像250-258的改变,并且以箭头286示出。方向是相对于诸如物体285的背景物体向下。速度是一个像素/每张照片,其汇总由相机图像250、相机图像252、相机图像254、相机图像256和相机图像258组成的图像序列中的四个像素的移动。应当注意的是,图2中示出的相机图像与真实相机图像相比是经高度简化的。示出相机图像以突出本发明的方法。
如以标记为201的箭头所示出的那样,设备120例如使用物体提取器实体154来从相机图像250、相机图像252、相机图像254、相机图像256和相机图像258计算平均图像260。对于在平均图像中的在坐标x,y处的给定像素值p,使用公式
来计算,其中i是相机图像的索引且n是相机图像的数量。在图2的情况中,假设n=5。数字n可具有整数值,例如3<n<20。图2中的灰度示出计算出的像素值。
如标记为202的箭头所示出的那样,设备120例如使用物体提取器实体154来从相机图像250、相机图像252、相机图像254、相机图像256和相机图像258计算方差图像262。对于在方差图像中的在坐标x,y上的给定的像素值p,使用公式
来计算,其中i是相机图像的索引且n是相机图像的数量。图2中的灰度示出计算出的像素值。
在本发明的一个实施例中,针对每个颜色通道(即例如针对R、G和B通道)形成单独平均图像和单独方差图像。在本发明的一个实施例中,相机图像被转换成灰度图像并且只形成单个平均图像和单个方差图像。
因此,物体提取器实体154如箭头203所示的那样计算掩膜图像264。通过在掩膜图像264中将在给定像素p(x,y)处的像素值设定为1而获取掩膜图像264,如果这个像素的值是在预定阈值以下的话。否则,在这个像素处的值被设定成0。
因此,物体提取器实体154使用掩膜图像264来从平均图像260中移除在掩膜图像264中在位置x,y处具有值为0的那些像素p(x,y),如箭头204A和箭头204B所示出的那样。移除的像素p(x,y)在结果图像266中被设定成零。在结果图像266中的其他各个像素被设定成从平均图像260获取的各个像素的值。来自掩膜操作的结果作为结果图像266被存储。最后,物体识别器实体156可进一步执行针对结果图像266的处理。例如,基于夹持器指状物的已知结构,物体识别器实体156可移除关于夹持器112的指状物的视觉特征。
图2B是示出在本发明的一个实施例中,在机器人系统(诸如图1中所示的机器人系统100)中基于夹持器或机器人臂的运动向量来滚动目标物体图像的框图。
在图2B中存在如下的相机,其与机器人臂和夹持器分开地安装到其中可捕捉包括由夹持器(诸如夹持器112)携带的物体231的至少相机图像291、相机图像292、相机图像293和相机图像294的相机图像的时间序列的位置。参考标号的标号顺序291-294指示相机图像291-294的捕捉的可能顺序。在相机图像291-294的捕捉之后,与包括颜色、纹理、多个离散余弦变换(DCT)系数、多个小波变换系数、MPEG宏块以及轮廓中的至少一个的至少一个视觉特征有关的预定信息被用于由例如设备120中的物体提取器实体154来识别夹持器(诸如相机图像291-294中的夹持器112)的图像230。在相机图像291-294内的夹持器图像230的移动用于获取夹持器图像230的运动向量221、运动向量222和运动向量223。在本发明的一个实施例中,夹持器图像230的运动向量221-223也是被夹持物体231(亦即被夹持物体231的至少部分)的运动向量。应当注意的是,在长物体的情况下,物体可具有抖动、摆动或滞后的部分。运动向量221、运动向量222和运动向量223用于获取各个逆运动向量224、225和226。夹持器图像230可从相机图像291-294中被过滤出,从而只维持被夹持物体231的图像。过滤可使用由物体提取器实体154使用的在存储器140中存储的视觉特征信息以移除与视觉特征信息匹配的区域。逆运动向量224、逆运动向量225和逆运动向量226用于滚动相机图像292、相机图像293和相机图像294以获取各个滚动的相机图像296、相机图像297和相机图像298。在滚动的相机图像295-298的序列中,其他物体(诸如物体232)看起来在移动,而被夹持的物体231看起来是静止的。应注意到,在本发明的一个实施例中,滚动的相机图像295-298可不实际形成到存储器140,但在当从不同的相机图像中读取像素值时,可例如在计算平均图像和计算方差图像以作为图像位移信息的步骤中使用逆运动向量224-226。在本发明的一个实施例中,只有对应于相机图像295-298的区域的相交的区域可被维持。在本发明的一个实施例中,相机图像295-298可针对由于滚动而出现的新图像区域使用单值像素(诸如零值像素)来修正。图像还可替代地被卷绕(wrap around)。因此,等同于安装至夹持器或机器人臂的相机的情况的结果可针对随后的计算来获取。于是,计算平均图像的步骤,计算方差图像的步骤和形成过滤掩膜的步骤可随着关联图2A所述而发生。
上文中描述的关于图2A和2B的本发明实施例可以任意互相结合使用。一些实施例可结合在一起以形成本发明的进一步实施例。
图3是示出在本发明的一个实施例中的机器人系统中的目标物体图像的过滤方法的流程图。该方法可被应用到如图1所示的机器人系统中。
在步骤300中,使用附接至机器人臂的夹持器夹持实际目标物体。
在步骤302中,在夹持器中的实际物体随着夹持器和机器人臂中的至少一个移动。
在步骤304中,使用连至例如夹持器的机器人臂的相机来捕捉多个图像。相机还可位于离机器人臂和夹持器的一段距离内。当目标物体被移动时,捕捉图像。目标物体可在包括多个其他物体的背景上移动,该多个其他物体可受到机器人臂稍后处理或可在分类中被忽略。机器人臂的移动可包括朝着目标物体的可能目的地(诸如多个挑选容器或架)的初始移动。背景可为非结构化活动区域。图像的数量可为例如4、5、10或大于1的任意自然数。
在步骤306中,平均图像由多个图像中计算出。例如,平均图像可使用公式
来计算,其中i是相机图像的索引,n是相机图像的数量并且x,y是像素坐标。
在步骤308中,方差图像由多个图像计算出。例如,方差图像可使用公式 来计算,其中i是相机图像的索引,n是相机图像的数量并且x,y是像素坐标。
在步骤310中,从方差图像中形成过滤掩膜图像。
在本发明的一个实施例中,过滤掩膜图像通过在过滤掩膜图像中将给定像素p(x,y)处的像素设定成1而获取,如果那个像素的值在预定阈值以下的话。否则在那个像素处的值被设定成0。
在步骤312中,包括目标物体的经过滤的图像通过使用过滤掩膜来对平均图像进行掩膜而获取。
在本发明的一个实施例中,掩膜图像用于从平均图像中移除在掩膜图像中在x,y处具有值0的那些像素p
(x,y)。那些像素p
(x,y)被设定成0。来自掩膜操作的结果作为结果图像(即经过滤的图像)而存储。换句话说,过滤掩膜是在操作中与平均图像一起使用的二维位掩膜,该操作从自平均图像返回像素值,如果在位掩膜中的对应的像素的值为1的话。这可在以下正式方式中被表达:
其中掩膜(x,y)代表在掩膜图像中的像素,结果(x,y)代表在结果图像中的像素并且平均(x,y)代表在平均图像中的像素。符号“:=”代表赋值操作。
在本发明的一个实施例中,在步骤314中,具有夹持器或机器人臂的纹理的图像区域从经过滤的图像中移除,从而便于例如目标物体的形状的更好识别。于是,完成该方法。
在本发明的一个实施例中,从相机接收的输入数据为包括像素二维阵列的数字图像,每个像素具有针对红色、绿色和蓝色分量的数值,下文中分别指定为R-值、G-值和B-值。数据中像素的数量对应于相机的分辨率。
在本发明的一个实施例中,为了减少计算总量,从相机接收的图像数据被向下采样至经适于分析而确定的分辨率。
在本发明的一个实施例中,由于照明状态的改变的原因,结果向下采样的图像然后被标准化(normalized)。标准化可分别针对向下采样图像中的每个像素而进行。
在本发明的实施例中,设备被配置成识别在至少两个源图像中的夹持器的图像。设备计算在第一源图像和第二源图像之间的夹持器的图像的至少一个位移,并且基于该位移来确定第一源图像和第二源图像的相互位置以用于至少计算平均图像和计算方差图像的步骤。位移可用于滚动第二源图像以精确叠加在第一和第二源图像中的被夹持物体的图像。被夹持物体的实际图像可被移除。滚动可以仅为逻辑的并且只用作在平均和方差图像的计算中的位移索引或值。
在上文中描述的关于图3的本发明的实施例可相互结合。多个实施例可结合在一起以形成本发明的进一步实施例。本发明涉及的方法、系统、设备、计算机程序或计算机程序产品可包括上文中描述的本发明的至少一个实施例。
图4是示出在本发明的实施例中的在机器人系统中的基于物体移动的物体识别方法的方法的流程图。使用保持要被识别的物体的夹持器或机器人臂的已知运动来确定所使用的物体移动。
在步骤400中,要识别的物体使用附接至机器人臂的夹持器来夹持。
在步骤402中,要识别的物体随着夹持器和机器人臂中的至少一个移动。
在步骤404中,使用连至例如机器人臂或夹持器的相机来捕捉多个图像。相机还可是静止的并观察离机器人臂一段距离的夹持器的移动。当目标物体被移动时捕捉图像。要识别的物体可相对于包括可受到机器人臂稍后处理的或在分类中被忽略的多个其他物体的背景而被移动。机器人臂的移动包括朝着针对要识别的物体的可能目的地(诸如一些挑选容器或架)的初始移动。背景可为非结构化活动区域。图像的数量可为例如4、5、10或大于1的任意自然数。
在步骤406中,在多个图像的捕捉期间,夹持器的移动被记录。这个步骤自然地与步骤404并行发生。例如使用从机器人臂获取的传感器数据记录移动。传感器数据可对应于在真实世界坐标中的夹持器位置的改变。夹持器位置的改变可在从真实世界坐标到图像坐标的映射函数中转换,这代表在用相机捕捉的图像(诸如多个图像)内的夹持器的移动。映射函数可使用机器学习来构建。
在步骤408中,针对多个图像之间的运动的至少第一运动向量基于所记录的夹持器移动确定。至少第一运动向量可代表在图像坐标中(例如在每个随后捕捉到图像之间的像素中)的夹持器的移动。
在步骤410中,多个图像中的至少一个图像被分成多个(例如至少四个)区域。区域可为像素、像素块或形状不一的区域。
在步骤412中,至少一个第二运动向量基于多个图像内的随后图像中的图像数据的比较而针对至少一个区域来确定。比较可包括从第二稍后图像搜索第一图像的区域的视觉特征。
在步骤414中,至少一个第二运动向量与至少一个第一运动向量匹配。这种比较可关注方向和长度,亦即量级。如果比较显示出向量的方向和长度在误差容限内匹配或向量是误差容限内的逆向量。具有对应于至少一个第一运动向量的运动向量的至少一个区域被选择。误差容限包括关于向量的方向和长度的误差容限。
在本发明的一个实施例中,被选区域从进一步处理中移除或针对进一步处理来选择。进一步处理的区域经受进一步物体识别步骤。
在本发明的一个实施例中,被选区域从多个图像中移除。因此,计算平均图像的步骤,计算方差图像的步骤和形成过滤图像的步骤可遵循与图3中的这些步骤关联而解释的方式,这些步骤以参考标号306、参考标号308和参考标号310来分别指示。移除可包括设定像素值为诸如0或1的预定值。
在本发明的一个实施例中,来自多个图像中的一个图像的至少一个被选区域被用于直接获取结果图像。结果图像可用在要识别的物体的分类中。在分类前可有进一步识别步骤,例如夹持器视觉特征从结果图像中的移除。
上文描述的关于图4的本发明的实施例可相互结合使用。多个实施例可结合在一起以形成本发明的进一步实施例。
本发明的示例性实施例可包括在能够执行示例性实施例的过程的任何合适的装置中,例如包括任何合适的服务器、工作站、PC、笔记本电脑、PDA、网络应用、手持装置、移动电话、无线装置、其他装置等等,并且可通过一个或多个接口机制进行通信,接口机制包括例如网络接入、任意合适形式(例如,语音、调制解调器等)中的电信、无线通信媒体、一个或多个无线通信网络、蜂窝通信网络、3G通信网络、4G通信网络、共用交换电话网(PSTNs)、分组数据网络(PDNs)、因特网、内部网、以及它们的结合,等等。
应当理解的是,示例性实施例是用于示例性目的,因为用于实施示例性实施例的特定硬件的许多变型是可以的,如由硬件领域中的技术人员所理解的那样。例如,示例性实施例的一个或多个组件的功能可经由一个或多个硬件装置来实施。
示例性实施例可存储关于本文中描述的不同过程的信息。这种信息可存储在一个或多个存储器中,诸如硬盘、光盘、磁光盘、RAM等等。一个或多个数据库可存储用于实施本发明示例性实施例的信息。数据库可使用包括在本文中列举的一个或多个存储器或存储装置中的数据结构(例如,记录、表格、阵列、字段、图形、树、列表等等)来组织。关于示例性实施例描述的过程可包括适当的数据结构,以用于在一个或多个数据库中存储由示例性实施例的子系统和装置的过程来收集和/生成的数据。
示例性实施例的所有或部分可通过准备特定应用的集成电路或通过互连传统组件电路的适当网络来实施,如电领域中技术人员将理解到的那样。
如上所述,根据本发明的教导,示例性实施例的组件可包括计算机可读介质或存储器,并用于保持本文中描述的数据结构、表、记录和/或其他数据。计算机可读介质可包括参与提供指令给处理器以执行的任何合适的介质。这种介质可采取许多形式,包括但不限于,非易失性介质,易失性介质,传输介质,等等。非易失性介质可包括例如光盘或磁盘,磁光盘,等等。易失性介质可包括动态存储器等等。传输介质可包括同轴电缆、铜线、光纤等等。传输介质还可采用声、光、电磁波等等的形式,诸如在射频(RF)通信、红外线(IR)数据通信等期间生成的那些。计算机可读介质的共同形式可包括例如,软盘、柔性盘、硬盘、磁带、任何其他合适的磁介质、CD-ROM、CDRW、DVD、任何其他适合的光介质、打孔卡、纸带、光学标记表、具有孔图案或其他光学可识别标记的任何其他合适的物理介质、RAM、PROM、EPROM、FLASH-EPROM、任何其他合适的存储器芯片或盒式磁带、载波或计算机可读的任何其他合适介质。
尽管连接多个示例性实施例和实施方式而描述了本发明,但本发明不限于,而是覆盖不同修改和等同布置,其落入预期的权利要求的范围内。
对于本领域技术人员来说,明显的是,通过使用技术的改进,本发明的基本思想可以以不同方式实施。本发明和其实施例从而不限于上述的实施例,相反它们可在权利要求的范围内变化。