专利名称:用于对象姿态估计的方法和设备的制作方法
技术领域:
在现今的许多工业设置中,使用机器人进行零件组装和制造。这些机器人装配有给予它们图像的一个或多个照相机,例如,C⑶和CMOS。通常,对象(即,零件)包含在箱柜中。机器人必须识别箱柜中的对象/零件,使其能够拣起对象/零件来组装产品。然而,对象可能处于任意多种姿态(位置、方位、旋转)。所以,必须训练机器人来识别零件,而不管零件的姿态如何。本发明涉及根据二维(2D)图像(例如,照相机图像)估计三维(3D)对象的姿态,使得机器人可以被训练成识别对象而不管从其上装载的照相机看到的姿态如何。如在本领域公知的,机器人包括试图根据照相机图像标识对象的软件。因此,对于这样的软件而言,与机器人照相机捕获的图像相比具有对象图像的鲁棒且精确的数据库是重要的。
发明内容
本发明的一方面是用于根据输入图像估计对象的姿态并存储对象姿态估计的方法和设备,包括:输入包含对象的图像;创建输入图像的二值掩码;从输入图像的二值掩码中提取单线组,每条单线表示输入图像中的对象的内轮廓和外轮廓中的点;将单线组连接成被表示为双线矩阵的网格;将两个双线矩阵进行比较,以产生一组候选姿态;以及产生对象姿态估计,并存储对象姿态估计。在本发明的实施例中,输入对象的多幅图像,每幅图像包含的对象的视图与多幅图像中的其它每幅图像的视图不同。一方面包括使用对象的CAD模型来生成对象的多幅图像中的每幅图像的视图。另一方面包括使用装配有照相机的机器人来生成对象的多幅图像中的每幅图像的视图。本发明的另一方面包括检测输入图像中的对象并且计算对象的边界框。另一方面包括提取对象的内轮廓和外轮廓。在本发明的另一实施例中,通过将姿态估计建模为能量函数的优化来精化对象姿态估计。在一个方面,本发明迭代地计算姿态估计以最小化能量函数的能量值。另一方面计算速度旋量(velocity screw)以迭代地计算姿态估计。另一方面使用诸如OpenGL、DirectX、光线追踪等的绘制应用程序编程接口(API)将对象的模型轮廓曲线投影到虚拟图像中。在本发明的又一实施例中,通过如下步骤精化对象姿态估计:输入处于估计姿态的对象的图像、对象的模型和用于拍摄处于估计姿态的对象的图像的照相机的参数;使用照相机的参数和初始姿态参数来将对象的模型投影到对象的虚拟图像中,以获得二值掩码图像和图像深度信息;使用二值掩码图像和图像深度信息将初始姿态参数更新为新的姿态参数,并且迭代地更新该新的姿态参数以最小化能量函数或者直到达到最大迭代次数。本发明的另一方面包括:使用成本函数计算对象内部和外部的平均值;以及使用图像深度信息、根据二值掩码图像和3D轮廓点计算对象的轮廓C。又一方面包括:针对轮廓点计算在X方向和Y方向上的梯度J);计算图像雅克比矩阵;以及使用高斯牛顿法来计算梯度流和速度旋量。
本发明的另一方面包括使用速度旋量和给定步长(stepwise)来计算相对位移。通过参照结合附图得到的以下描述和权利要求,其它目的和成就以及对本发明的更全面理解将变得明显。
在附图中,类似的附图标记是指类似的部分。图1是利用本发明的对象处理装置和系统的通用框图;图2是本发明的通用方法的流程图;图3是图2所示的方法的对象提取阶段的流程图;图4示出针孔照相机模型中的立体投影;图5示出OpenGL投影和归一化装置坐标(NDC);图6(a)_(d)示出投影模型曲线相对于对象的边界的位置的全部四种可能情况;以及图7示出照相机运动的构图。
具体实施例方式在以下详细描述中,参照通过图示示出本发明的示例实施例的附图。在附图中,类似附图标记在几幅视图中描述基本上类似的部件。充分详细地描述这些实施例,以使得本领域技术人员能够实践本发明。在不背离本发明的范围的情况下,可以利用其它实施例以及可以作出结构、逻辑和电气改变。此外,应理解,本发明的各种实施例尽管不同,但不一定相互排斥。例如,一个实施例中所描述的特定特征、结构或特性可以包括在其它实施例中。因此,以下详细描述不是以限制意义作出的,并且本发明的范围仅由所附权利要求以及这样的权利要求赋予权利的等同方案的全范围限定。通常,示例性实施例涉及用于检验图像(尤其是一个或多个对象的数字图像)的方法、装置和计算机可读介质。对图像进行检验以估计以2D图像表示的相应3D对象的姿态(位置和方位)。示例实施例创建图像的二值掩码,并且从二值掩码中提取单线组。每条单线将表示对象的内轮廓和外轮廓中的点。该单线组连接成被表示为双线矩阵的网格。对两个双线矩阵进行比较以产生一组候选姿态。然后,产生对象姿态估计并且将其存储以供后续使用,例如在用于机器人零件组装的视觉系统中。图1中示出示例对象处理装置100的示意性表示。对象处理装置100经由中间接口 102与主机计算机150交换数据。也可以存储应用程序和对象处理装置驱动程序以对主机计算机150进行访问。当从例如应用程序接收到图像检索命令时,对象处理装置驱动程序控制命令数据到适合于对象处理装置100的格式的转换,并且将转换后的命令数据发送到对象处理装置100。驱动程序还接收并解释来自对象处理装置100的各种信号和数据,并且经由主机计算机150将所需信息提供给用户。当主机计算机150发送数据时,接口 102接收数据并将其存储在RAM104的接收缓冲器形成部中。可以例如通过寻址将RAM 104分成多个扇区,并且将多个扇区分配作为不同缓冲器,诸如接收缓冲器或发送缓冲器。也可以通过对象处理装置100从捕获机构112、闪存EEPROM 110或ROM 108获得诸如数字图像数据的数据。捕获机构11可以是例如照相机,并且通过拍摄一个或多个对象(诸如,在制造和/或组装诸如打印机的装置中所使用的零件)来生成数字图像。照相机112可以由例如机器人116或人来控制,或者可以由例如计算机150来自动控制。然后,可以将对象的数字图像存储在RAM 104的接收缓冲器或发送缓冲器中。例如,处理器106使用存储在R0M108上或在闪存EEPR0M110上的计算机可执行指令,来执行例如某一功能或一组功能,诸如方法200 (图2)。本文中稍后将更详细描述方法200。在RAM104的接收缓冲器中的数据是例如数字图像的情况下,处理器106可以对数字图像实施方法300的方法动作,以提取数字图像中的特征并基于所提取的特征进一步分析图像。然后,在将图像显示在例如显示器114 (诸如,IXD显示器)上或者传送到主机计算机150以在打印机162上打印、利用投影仪164投影图像或将其存储在例如硬盘160上之前,可以对数字图像执行成像过程中的进一步处理。可以使用承载或存储有计算机可执行指令或数据结构的非暂态计算机可读介质来执行本文中所公开的示例方法200及其变型。这样的计算机可读介质可以是可以由通用或专用计算机的处理器访问的任何可用介质。作为示例但不作为限制,这样的计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储器、磁盘存储器或其它磁存储装置、或者可以用于以计算机可执行指令或数据结构的形式承载或存储程序代码并且可以由通用计算机或专用计算机访问的任何介质。上述介质的组合还应该包括在计算机可读介质的范围内。计算机可执行指令例如包括使通用计算机或专用计算机的处理器执行某一功能或一组功能的指令和数据。尽管本文中以方法动作专用的语言描述主题,但是应该理解,所附权利要求中所限定的主题不一定限于本文中所述的具体动作。而是,披露本文中所述的具体动作作为实现权利要求的示例形式。专用计算机的示例包括图像处理装置,诸如数字照相机(其示例包括但不限于总部设于日本长野撖访的精工爱普生(Seiko Epson)公司制造的Epson R-Dl数字照相机)、数字摄像机、投影仪、打印机、扫描仪、复印机、便携式图片浏览器(其示例包括但不限于SeikoEpson公司制造的Epson P-3000或P-5000便携式图片浏览器)、或者便携式电影播放器、或者其组合(诸如,打印机/扫描仪/复印机组合(其示例包括但不限于Seiko Epson公司制造的 Epson Stylus Photo RX580、RX595 或 RX680、Epson Stylus CX4400、CX7400、CX8400或CX9400Fax、以及Epson Acillaser CXlINF)或者打印机/扫描仪组合(其示例包括但不限于全部由 Seiko Epson 公司制造的 Epson TM-J9000、TM-J9100、TM-J7000、TM-J7100 和TM-H6000 III)或数字照相机/摄像机组合)。输入图像规格参照图2,方法200中的第一步骤是输入图像(步骤210)。所输入的图像可以由机器人116操作照相机(捕获机构)112生成。如果输入的图像包括一个对象,则该对象优选地应该占据图像面积的至少10%。如果在场景中存在多于一个对象,则关注的对象优选地应该比图像(场景)中的任何其它对象大至少两倍。输入的图像还可以是例如存储在RAM104或硬盘160中的对象的CAD模型。在优选实施例中,如以下所述,输入并分析对象的多幅图像。多幅图像中的每幅图像优选地包括与其它图像中的每幅图像中所示出的视图不同的、对象的视图。可以使用CAD模型和/或机器人116操作照相机来生成这多幅图像。
对象定位和提取本发明的对象定位(步骤212)和对象提取(步骤214)阶段检测存在于图像或场景中的对象并计算其边界框。对象提取阶段还提取对象的轮廓(内轮廓和外轮廓两者)。图3中更详细地示出了这些步骤/阶段。通常,这些步骤处理单通道图像310 (图3),该单通道图像在素色背景上包括一个或更多个对象。这些步骤基本上发现了图像中的活动区域,并且因此,对背景中的伪像敏感。输入图像中的对象优选地是单色的且具有背景与对象之间的最小对比度。对于背景的颜色或不同对象的颜色不存在其它限制。一些对象可以比背景深,而一些对象可以比背景亮。对象可以具有类似或不同的颜色。活动计算(图3,步骤312)在活动计算步骤期间,将图像310划分成大小为SXS的块。S是像素数量。作为示例,S是8,但可以根据特定环境选择不同的值。该配置参数S在本文中被称为ACTIVITY.SCALE。然后,该步骤计算每个块的标准偏差和平均强度,并且返回两个矩阵作为输出,标准(std)和平均(ave)。有效区域选择(步骤314)在该步骤中,本发明将矩阵Std的元素与阈值进行比较,并且标识超过阈值的那些元素,其中,可以针对特定环境选择该阈值。例如,其可以是颜色阈值。如果使用8位表示色深度,则阈值将被设置为2与255之间的某点。如应理解的,有效区域选择步骤标识对应于与素色背景形成对比的彩色对象的像素块。将被标识为超过所选的活动阈值的元素输入到活动地图。区域分析(步骤316)区域分析步骤316对在前一步骤314中所产生的活动地图执行斑点(blob)分析。在该步骤中所使用的参数是由OBJECTS.SIZE.MIN (默认值是0.001)和OBJECTS.SIZE.MAX(默认值是0.1)控制的尺寸,以及候选区域的数量OBJECTS.COUNT (默认值是8)。首先,将尺寸限值除以ACTIVITY.SCALE的平方,以便将这些配置参数从像素转换为块。区域分析步骤返回每个对象的边界框以及其一阶和二阶平均数及面积。在区域分析步骤期间,给予每个区域索引。区域的索引从一开始但不一定是连续的。也就是说,存在缺失的索引值,这些缺失的索引值对应于与尺寸约束不匹配的区域。索引地图承载有分配给每个块的索引。该地图被称为边界地图。边界地图中被给予非零索引的任何块是边界块。剩余的块是背景或表示对象的内部。在下文中所述的步骤320中检测内部块。阈值计算(步骤318)阈值计算步骤318确定用于将每个区域的边界块的内容分成前景和背景的最佳阈值。通过针对每个区域单独完成的以下阶段来实现该过程。这里,I是落入区域的一个边界块中的全部点的集合。1.针对I的内容产生256格(bin)直方图。2.将t计算为I的平均值。3.1利用值t作为阈值,并产生I+和Γ。4.将t+计算为I+的平均值。
5.将t_计算为Γ的平均值。6.将 t* 计算为(t++0 /2。7.如果t与之间的差小于一,则返回t作为阈值,否则,设置t=t*且转到3。在后续步骤中使用在该阶段所算出的阈值(0SMX_THRESH0LD)。阈值计算步骤318还确定对象是否比背景深或者背景是否比对象深。该确定基于检查在每个对象的边界框的边界处的像素以及确定超过阈值的像素数量。如果该数量超过所计数的总像素数量的一半,则确定该对象比背景深。在后续步骤中使用该信息0SMX_INVERSE。例如,如果对象比背景深,则可以将0SMX_INVERSE设置为1,而如果对象比背景淡,则将0SMX_INVERSE设置为O。内部检测(320)内部检测步骤320使用边界地图并构建内部地图。该过程开始于全零内部地图,并且对于每个区域,针对其边界框中的每个块执行以下操作。1.如果该块不在边界地图内,并且如果该块的平均值超过或小于(取决于如何设置0E_INVERSE ) 0E_THRESH0LD,以及如果该块在边界地图中具有至少一个4邻点(4-connected neighbors),则在内部地图中标记该块。边界封闭(步骤322)边界地图可以不包围内部地图。结果,根据对象提取阶段的特性,如下描述的,在所提取的对象内可能出现不想要的“凹痕”,为了解决该问题,边界封闭步骤322通过在每个区域的边界框内执行以下操作来封闭每个区域的边界地图,1.如果块不在边界地图或内部地图内以及如果该块在内部地图中具有至少一个4邻点,则在边界地图中标记该块。对象提取(步骤324 )对象提取步骤324基于边界地图和内部地图提取对象。在每个对象的自身边界框内,该过程对每个对象执行以下操作。1.如果在内部地图中标记了该块,则将与该块对应的全部像素设置为属于对象。2.如果在边界地图中了标记该块,则在该块的平均值超过或低于(取决于如何设置0E_INVERSE) 0E_THRESH0LD的情况下,将与该块对应的全部像素设置为属于对象。双线创建(图2,步骤216)双线创建是本发明的最后的步骤,在该步骤中,使用实际图像。在该阶段后,对双线矩阵以及其它特征点和向量进行工作。双线创建包括以下分别描述的轮廓追踪、单线检测和双线创建三个子块。轮廓追踪轮廓追踪是追踪通过对象提取阶段返回的全部轮廓的过程。在单线检测过程中使用在该阶段收集的信息。在本发明中可以使用任何已知的轮廓追踪算法,其不限于特定算法。可利用的轮廓追踪算法的示例包括矩形追踪、摩尔邻域、径向扫描。在优选实施例中,使用了 Theo Pavlidis 算法。单线检测该阶段取决于两个参数TRACE_WIND0W和SINGLET_DISTANCE,可以针对特定环境选择这两个参数。这两个参数的默认值都是12个像素。对于比TRACE_WIND0W的两倍长的全部轮廓,针对轮廓上的每个点执行以下过程:1.求在轮廓上的点周围的TRACE_WIND0W个点的平均X和Y坐标。2.将轮廓上的点连接到向左偏移TRACE_WIND0W和向右偏移TRACE_WIND0W的两个点。3.求两个角度;将它们称为输入角和输出角。4.求表不输入角和输出角的两个向量的内积。改变该内积的符号并且将其称为曲率。5.如果该点在其周围的SINGLET_DISTANCE个点中具有最高曲率,则将该点标记为单线。6.存储每条单线的X和Y坐标、以及输入角和输出角及与它们对应的曲率。双线创建双线创建是将所检测到的单线组合成双线的过程。创建双线的处理包括以下步骤:1.产生矩阵D,其中,其(i,j)元素包括第i条单线与第j条单线之间的距离。2.将D中小于最小阈值或超过最大阈值的全部元素改变为NAN (非数字,表示未被初始化的变量的标识符)。计算最小阈值和最大阈值作为分别与图像的最小维度相乘的DISTANCE.MIN (默认值为 0.01)和 DISTANCE.MAX (默认值是 0.25)。3.产生全部为零的Sxl阵列并且将其称为deg。deg(s)将包括连接到第s条单线的数个单线。4.扫描D,直到其仅包含NAN为止,或者当指定单线的最大数量并达到最大值时扫描D。5.寻找D的最小元素。将其称为(sl, s2)。deg (si)和deg (s2)都递增。如果deg(sl)或deg(s2)大于最大度DEGREE(默认值为10),则将对应于单线的行和列中的全部元素设置为MN。例如,如果deg(sl)大于DEGREE,则对于全部s,将D (s,sl)和D(sl,s)设置为MN。6.对于对(sl,s2),计算将它们连接在一起的角度以及连接它们的线的长度,将它们分别称为角度和距离。从两条单线的临时副本的输入角和输出角中减去某一角度。现在,双线将被表示为〈角度,距离,sl.1n-coming, sl.0ut-going, s2.1n-coming,s2.0ut-going>。7.返回双线矩阵。双线比较(图2,步骤218)双线比较是将两个双线矩阵中的各项进行比较并且产生匹配列表(因此产生候选姿态第一列表)的处理。假设两个双线矩阵是Dl和D2,则如下执行处理:1.对于Dl中的任意双线dl和D2中的d2,确定是否全部满足这些条件,I dl.sl.1n-coming-d2.sl.1n-coming I < THRESHOLD,I dl.sl.0ut-going-d2.sl.0ut-going I < THRESHOLD,I dl.s2.1n-coming-d2.s2.1n-coming I < THRESHOLD,I dl.s2.0ut-going-d2.s2.0ut-going I < THRESHOLD。这里,THRESHOLD由配置变量 DUPLETS.THRESHOLD 确定。
如果满足这些条件,则将候选姿态(dl.1ength/d2.length, dl.angle_d2.angle)添加到候选列表。此外,注意两条单线和两条双线的X坐标和Y坐标。将该候选标记为“直的”。2.类似地,确定是否满足这些条件,I dl.sl.1n-coming-d2.s2.1n-coming I < THRESHOLD,I dl.sl.0ut-going-d2.s2.0ut-going I < THRESHOLD,I dl.s2.1n-coming-d2.sl.1n-coming I < THRESHOLD,I dl.s2.0ut-going-d2.sl.0ut-going I < THRESHOLD。在该情况下,除了将被记录为dl.angle-d2.angle-pi的角度外,将类似的候选姿态添加到列表中。将该候选标记为“反向的”。3.将候选列表传递至接下来描述的聚类阶段。候选聚类(图2,步骤220 )候选聚类是接收通过双线比较所产生的姿态候选并估计每一个均由候选的大集合表示的有限数量的姿态的处理。该过程包括两个阶段,如下描述的比例-角度聚类以及X-Y聚类。比例-角度聚类该阶段的目的在于基于通过双线比较所产生的候选姿态而产生候选(比例,角度)对的列表。假设S和A是带有候选比例和角度的两个lxN。如下完成比例-角度聚类过程,1.通过计算值S的底BASE对数来产生S_L。2.单独地产生A和S_L的直方图。每个直方图将包括BINS格。A的直方图将覆盖-pi到pi的范围。将SCALE.MIN和SCALE.MAX(二者都以BASE为底)的范围内分析S L。3.如果任一直方图上的点高于其右侧的D个点且高于或等于其左侧的D个点,则将该点标记为“峰”。4.针对每个直方图独立地选择Cl个最高峰。5.将各比例候选与各角度候选相交,并且产生比例-角度候选的列表。将该列表传递至X-Y聚类阶段。对于每个比例-角度候选,也发送产生该对的匹配双线中的单线的位置。6.计算每个比例-角度候选的置信度作为双线匹配的对数,其表示除以两个双线矩阵中的双线的最小数量后的对数。7.如果比例-角度候选的数量超过C2,则选取具有最高置信度的C2。X-Y 聚类比例-角度聚类阶段的输出是(比例,角度)候选的集合。X-Y聚类阶段是针对每个(比例,角度)候选如下将翻译信息添加到候选的处理。1.修改该候选的单线位置,使得轴系统的中心移动至图像的中心。将对两个双线矩阵单独地执行该处理。2.将查询单线位置旋转一角度。3.按比例缩放查询单线。4.针对查询与参考之间的单线位置,单独地求X与Y之差。将这些称为dx和dy阵列。5.在该阶段,dx-dy对可以经历与对于比例-角度对执行的算法类似的二维聚类算法,或者可以如下进行更快的操作。6.单独地求dx与dy的平均值,并且将该信息附于比例-角度对,从而产生姿态候选(角度,比例,dx, dy,置信度)。该姿态候选的置信度将保持等于比例-角度对的置信度。7.如果配置参数需要,则如下所述,执行重叠检验。8.取与置信度的最高值对应的C2个候选,并且将它们报告给下一个阶段。重叠考虑 重叠考虑仅在OVERLAP非负的情况下起作用。如下进行重叠考虑:1.根据(角度,比例,dx,dy,置信度)信息变换参考边界框。找到覆盖旋转、缩放和移位后的边界框的最小矩形。2.找到覆盖修改后的参考边界框和查询边界框这两者的最小矩形。将该矩形的面积称为A。3.如果min (Al,A2)/A小于OVERLAP,则将该候选标记为不适合的。这里,Al和A2是修改后的参考边界框和查询边界框的面积。4.从该列表中排除标记为不适合的候选。轮廓-双线数据库(图2,222)轮廓-双线数据库(⑶DB)文件包括双线矩阵的列表,每一个均附带仰角和方位角。为了生成⑶DB文件,上述算法将对训练图像执行双线创建(图2,224),并且将所得到的双线矩阵存储在CDDB222中,每个双线矩阵均附带有仰角-方位角表征。这些样本被称为视图。⑶DB文件实际上附带有包括关于训练图像的细节的文件。这些细节对于产生不同的显象是必须的,而对于算法的常规操作而言是不必要的。当进行查询时,针对数据库中的每幅视图重复过程。算法的最终输出是具有最高对应置信度值的候选的数量⑶DBC.SEARCH.CANDIDATES.TOTAL。然后,将已产生每个候选的视图的角度表征附加于每个候选,因而产生姿态的(仰角,方位角,角度,比例,dx,dy,置信度)表征。上述的对象检测步骤的结果是姿态的这些表征,其是姿态估计并且存储在存储器(例如,RAM104或硬盘160)中。然后,在组装产品时,在机器人对象/零件进行识别时使用这些姿态估计。输出显象可以产生不同的显象。这些显象中的两种显象是模型视图和覆盖图。模型视图是被修改为反映比例、角度和平移的匹配训练图像的图像。覆盖图是模型视图在查询图像上
的覆盖图。对象模型规格当前,训练过程需要表示如利用不同参数控制的处于不同姿态的关注对象的图像。用于产生这些图像的实际且更方便的方法是通过样本模拟器228,样本模拟器228是产生对象的3D视图的三维可视化工具。配置实用程序(图2,230)如上所述,本发明的方法的不同部分使用不同的配置参数。在以上描述中给出了这些参数的一些示例性(默认)值。然而,用户可以将这些值设置成适合特定环境。配置实用程序是发现这些参数的适当值并使用从用户直观输入的最小值来相应地设置它们的交互工具。以下章节描述本发明的如下方面:尤其在对象的图像是照相机图像的情况下,精化对象的姿态估计。本发明的姿态精化被建模为对准问题。以关注对象的3D模型(B卩,机器人必须标识并拾取的部分)以及用于对对象成像的照相机112的照相机参数开始。目的在于发现应用于模型的3D (欧几里得,6个自由度)变换,使得其与图像中的关注对象一致。结果,作为成本函数的交互优化问题,实现姿态精化。除了对象前景覆盖成本外,成本函数还可以涉及图像匹配成本,其与局部特征点或边界特征点对准或匹配。为了更好理解该算法,将在定义成本函数和松弛方案前导出照相机投影模型、OpenGL虚拟照相机模型和图像雅克比矩阵。照相机投影模型本发明的照相机投影模型基于针孔照相机模型。针孔照相机是最简单且理想的照相机功能模型。针孔照相机具有极小的孔,在面向孔的照相机表面上形成倒像之前光通过该孔进入。如图4所示,立体投影是三维对象到二维图像平面上的投影。实际上,必须使用透镜来将图像聚焦到照相机的焦平面上。焦平面是与图像平面平行的一个特定平面。假设针孔照相机坐标与世界坐标对准,则简单的几何表示:
权利要求
1.一种用于根据输入图像估计对象的姿态并存储对象姿态估计的方法,包括: 输入包含对象的图像; 创建所输入图像的二值掩码; 从所述输入图像的所述二值掩码中提取单线组,每条单线表示所述输入图像中的所述对象的内轮廓和外轮廓中的点; 将所述单线组连接成被表示为双线矩阵的网格; 将两个双线矩阵进行比较,以产生一组候选姿态;以及 产生对象姿态估计,并存储所述对象姿态估计。
2.根据权利要求1所述的用于估计对象的姿态的方法,还包括:输入所述对象的多幅图像,每幅图像包含的所述对象的视图与所述多幅图像中的其它每幅图像中的视图不同。
3.根据权利要求2所述的用于估计对象的姿态的方法,还包括:使用所述对象的CAD模型来生成所述对象的多幅图像中的每幅图像中的视图。
4.根据权利要求2所述的用于估计对象的姿态的方法,还包括:使用装配有照相机的机器人来生成所述对象的多幅图像中的每幅图像中的视图。
5.根据权利要求1所述的用于估计对象的姿态的方法,还包括:检测所述输入图像中的对象并且计算所述对象的边界框。
6.根据权利要求1所述的用于估计对象的姿态的方法,还包括:提取所述对象的内轮廓和外轮廓。
7.根据权利要求1所述的用于估计对象的姿态的方法,还包括:通过将所述姿态估计建模为能量函数的优化来精化所述对象姿态估计。
8.根据权利要求7所述的用于估计对象的姿态的方法,还包括:迭代地计算姿态估计以最小化所述能量函数的能量值。
9.根据权利要求8所述的用于估计对象的姿态的方法,还包括:计算速度旋量以迭代地计算姿态估计。
10.根据权利要求7所述的用于估计对象的姿态的方法,还包括:使用绘制应用编程接口 API将所述对象的模型轮廓曲线投影到虚拟图像中。
11.一种用于根据输入图像估计对象的姿态并存储对象姿态估计的设备,包括: 处理器,其执行以下处理: 接收包含对象的输入图像; 创建所述输入图像 的二值掩码; 从所述输入图像的二值掩码中提取单线组,每条单线表示所述输入图像中的所述对象的内轮廓和外轮廓中的点; 将所述单线组连接成被表示为双线矩阵的网格; 将两个双线矩阵进行比较,以产生一组候选姿态;以及 产生对象姿态估计;以及 存储器,其存储所述对象姿态估计。
12.根据权利要求11所述的用于估计对象的姿态的设备,其中,所述处理器接收所述对象的多幅图像,每幅图像包含的所述对象的视图与所述多幅图像中的其它每幅图像中的视图不同。
13.根据权利要求12所述的用于估计对象的姿态的设备,还包括存储所述对象的CAD模型的存储装置,并且所述处理器使用所述对象的CAD模型来生成所述对象的多幅图像中的每幅图像中的视图。
14.根据权利要求12所述的用于估计对象的姿态的设备,还包括装配有照相机的机器人,所述照相机生成所述对象的多幅图像中的每幅图像中的视图。
15.一种用于精化对象的估计姿态的方法,包括: 输入处于估计姿态的对象的图像、所述对象的模型和照相机的参数,其中所述照相机用于拍摄处于所述估计姿态的所述对象的图像; 使用所述照相机的参数和初始姿态参数来将所述对象的模型投影到所述对象的虚拟图像中,以获得二值掩码图像和图像深度信息; 使用所述二值掩码图像和所述图像深度信息来将所述初始姿态参数更新为新的姿态参数,并且迭代地更新所述新的姿态参数以最小化能量函数或者直到达到最大迭代次数。
16.根据权利要求15所述的用于精化对象的估计姿态的方法,还包括: 使用成本函数计算所述对象内部和外部的平均值;以及 使用所述图像深度信息、根据所述二值掩码图像和3D轮廓点计算所述对象的轮廓C。
17.根据权利要求16所述的用于精化对象的估计姿态的方法,还包括: 计算所述轮廓点在X方向和I方向上的梯度少); 计算图像雅克比矩阵;以及 使用高斯牛顿法来计算梯度流和`速度旋量。
18.根据权利要求17所述的用于精化对象的估计姿态的方法,还包括: 使用速度旋量和给定步长来计算相对位移。
19.根据权利要求15所述的用于精化对象的估计姿态的方法,其中,处于估计姿态的对象的图像通过以下步骤形成: 输入包含对象的图像; 创建所输入图像的二值掩码; 从所述输入图像的二值掩码中提取单线组,每条单线表示所述输入图像中的所述对象的内轮廓和外轮廓中的点; 将所述单线组连接成被表示为双线矩阵的网格; 将两个双线矩阵进行比较,以产生一组候选姿态;以及 产生对象姿态估计。
20.一种或多种有形的、非暂态计算机可读介质,所述计算机可读介质上具有计算机可读指令,当通过处理器执行所述计算机可读指令时,依据权利要求1所述的方法来根据输入图像估计对象的姿态。
全文摘要
本发明提供用于对象姿态估计的方法和设备,根据输入图像估计对象姿态并存储对象姿态估计输入包含对象的图像;创建输入图像的二值掩码;从输入图像的二值掩码中提取单线组,表示输入图像中的对象的内、外轮廓中的点;将单线组连接成被表示为双线矩阵的网格;将两个双线矩阵比较以产生一组候选姿态;产生对象姿态估计并存储对象姿态估计。所估计的对象的姿态如下精化输入处于估计姿态的对象的图像、对象的模型和用于拍摄处于估计姿态的对象的图像的照相机的参数;使用照相机的参数和初始姿态参数将对象的模型投影到对象的虚拟图像中,以获得二值掩码图像和图像深度信息;使用二值掩码图像和图像深度信息将初始姿态参数更新为新的姿态参数。
文档编号G06K9/46GK103150544SQ20121027966
公开日2013年6月12日 申请日期2012年8月7日 优先权日2011年8月30日
发明者阿拉什·阿巴德普尔, 符国益, 伊沃·莫拉韦克 申请人:精工爱普生株式会社