通过视觉系统同时考虑图像特征中边缘和法线的系统和方法与流程

文档序号:18548135发布日期:2019-08-27 21:53阅读:364来源:国知局
通过视觉系统同时考虑图像特征中边缘和法线的系统和方法与流程

本发明涉及机器视觉系统,更具体地,涉及识别三维(3d)图像特征并关于于训练的3d图案对准3d图像特征的视觉系统。



背景技术:

机器视觉系统,本文中也称为“视觉系统”,用于在制造环境中执行各种任务。一般来说,视觉系统由一个或多个具有图像传感器(或“成像器”)的相机组件组成,该图像传感器获取包含制造中的对象的场景的灰度或彩色图像。可分析对象的图像以向用户和相关的制造过程提供数据/信息。相机产生的数据通常由视觉系统在一个或多个视觉系统处理器中分析和处理,视觉系统处理器可以是专用处理器,或者是在通用计算机(例如pc、笔记本电脑、平板电脑或智能手机)内实例化的一个或多个软件应用程序的一部分。

常见的视觉系统任务包括对准和检查。在对准任务中,视觉系统工具,例如从cognexcorporationofnatick,ma购得的众所周知的系统,将场景的二维(2d)图像中的特征与训练过的(使用实际或合成模型)2d图案进行比较,并确定2d图像场景中2d图案的存在/不存在和姿态。该信息可用于后续检查(或其他)操作,以搜索缺陷和/或执行其他操作,例如零件抛弃。

使用视觉系统的特定任务是在运行时基于训练好的3d模型形状对准三维(3d)目标形状。3d相机可以基于多种技术——例如,激光位移传感器(轮廓仪)、立体相机、声纳、激光或lidar测距相机、飞行时间相机以及各种其他被动或主动距离感测技术。这种相机产生距离图像,其中产生了图像像素阵列(通常表征为沿着正交x和y轴的位置),该阵列还包含每个像素的第三(高度)维度(通常表征为沿着垂直于x-y平面的z轴)。替代地,这种相机可以生成成像对象的点云表示。点云是空间中3d点的集合,其中每个点i可以表示为(xi,yi,zi)。点云可以表示完整的3d对象,包括对象的背面和侧面、顶部和底部。3d点(xi,yi,zi)表示空间中对象对于相机可见的位置。在该表示中,不存在点表示空白空间。

作为比较,3d距离图像表示z(x,y)类似于2d图像表示i(x,y),其中深度或高度z代替了图像中的位置x,y处的亮度/强度i。距离图像专门表示直接面对相机的对象的正面,因为只有一个深度与任意点位置x,y相关联。距离图像通常不能表示对象的背面或侧面、顶部或底部。距离图像通常在每个位置(x,y)处都有数据,即使相机在这些位置处没有信息。可以以本领域的技术人员清楚的方式将距离图像变换为3d点云。

在将获取的或通过合成(例如cad)处理生成的目标图像与模型图像(也是获取或合成的)对准时,一种方法涉及将目标3d点云与模型匹配/比较,以努力找到最佳匹配姿态。该比较可以涉及对目标相对于模型的覆盖范围的评分。超过某一阈值的分数被认为是可接受的匹配/姿态估计,并且该信息用于生成对准结果。然而,基于3d图像精确且有效地生成对准结果具有挑战性。

对准3d距离图像或3d点云图像中的3d对象最好通过适用于这些对象的3d形状的一个或多个相应的3d对准(配准)算法来实现。如果使用了不适当的3d对准算法,则3d对准处理可能会失败,或者因为发现不正确的结果姿态或者根本没有发现结果而表现不佳。更具体地说,称为迭代最近点(icp)的技术是细化点云对准/配准姿态估计的经典方法。其使用一组特征(如点位置或点法线)来迭代地将粗略姿态细化为最终姿态。必须做出的一个选择是icp例程将最小化的度量。标准选择是点到线,其中icp处理最小化从源点到其最近边缘的距离总和,以及点到平面,其中icp处理最小化从源点到通过其最近目标点的平面的距离总和,由目标点处的法线表示。然而,人们认识到,由于各种原因,这两个度量都不是特别令人满意。例如,在将平面与平面对准的使用情况下,如果使用点到平面度量,则系统可以确定关于法线的偏移和旋转,但是不提供关于围绕法线的旋转的信息。点到线的度量也表现出了技术人员应该清楚的其他缺点。



技术实现要素:

本发明通过使用视觉系统在获取的图像中基于每个边缘在点到平面与点到边缘度量之间进行动态加权,克服了现有技术的缺点。这使得所应用的icp技术对各种对象(零件)几何形状和/或遮挡而言变得更加稳健。在一个实施例中,本文的系统和方法提供一能量函数,该能量函数被最小化以生成候选3d姿态,用于将对象的运行时3d图像数据与模型3d图像数据对准。由于法线比边缘精确得多,因此在可能的情况下,使用法线是可取的。然而,在某些使用情况下,例如平面,边缘提供法线不提供的相对方向的信息。因此,该系统和方法定义了“法线信息矩阵”,该矩阵表示存在足够信息的方向。对该矩阵执行(例如)主分量分析(pca)为可用信息提供了基础。举例来说,然后根据每个边缘在各个方向上贡献的信息量以及已经可用的信息来评估每个边缘。如果边缘在对分析有重要意义的方向上贡献了重要信息,则在计算中该边缘被分配了较高的权重(例如,接近1.0)。否则,边缘被分配相对较低的权重(例如,接近0.0)。使用(例如)线性最小化函数来处理该加权数据,该线性最小化函数同时(同步)最小化点到平面距离的总和加点到边缘距离的总和。有利的是,当对象的几何形状需要该处理来确定正确姿态时,该处理(仅仅)排他地使用(通常)不太精确的边缘。还要注意,这里的对象可以是平面表面的一部分。因此,例如,在为平面的使用情况下,系统和方法可以使用法线来建立法线通常提供信息的三个自由度(dof)(两个倾斜和沿着平面法线的偏移),然后使用剩余dof的边缘(例如,平面内的两个平移和围绕法线的旋转)。相反,采用点到线度量本身通常会产生精确度低得多的结果,而仅采用点到面度量也不够稳健。

在一说明性实施例中,本发明提供了一种用于在由3d相机组件获取的对象的3d图像中查找3d模型的姿态的系统和方法。3d模型与获取的3d图像一起由视觉系统处理器处理。与处理器相关联的姿态查找处理/模块同时将3d模型中的3d边缘与3d图像中的3d边缘匹配,并将3d模型中的3d法线与3d图像中的3d法线匹配,以确定3d姿态。说明性地,姿态查找处理/模块将权重应用于3d图像中的3d边缘和3d图像中的3d法线,以对图像中的3d边缘相对3d法线的使用进行加权。姿态查找处理还可以分别确定(a)对象的平面是否提供了关于平行于3d法线方向上的对准的信息,以及(b)对象的边缘是否提供了关于在垂直于边缘的一个或多个方向上的对准的信息。其还可以进行以下匹配的至少其中之一:(a)使用点到线度量将3d模型中的3d边缘与3d图像中的3d边缘进行匹配,以及(b)使用点到平面度量将3d模型中的3d法线与3d图像中的3d法线进行匹配。此外,姿态查找处理可以定义法线信息矩阵,该矩阵表示存在足够数量信息的方向。可以对矩阵执行主分量分析(pca),以识别信息,并确定其可用性,用于查找姿态。姿态查找处理还可以包括评估处理,该评估处理分别针对在各个方向上贡献的信息量和可用的信息来评估边缘。说明性地,评估处理根据以下内容来评估姿态边缘:(a)如果各个边缘中的其中一个边缘在重要的方向上贡献了大量信息,则在计算中为该边缘分配较高的权重,以及(b)如果各个边缘中的其中一个边缘在重要的方向上没有贡献大量信息,或者如果方向不重要,则在计算中为该边缘分配相对较低的权重。此外,可以提供线性最小化处理,其同时(同步)最小化使用点到平面度量计算的距离总和加使用点到边缘度量计算的距离总和。

附图说明

以下参考附图描述本发明,其中:

图1是包括一个或多个3d相机组件的视觉系统的图,该3d相机组件在训练或运行时获取对象的图像,其中视觉系统采用同时对准(配准)算法;

图2是根据一个实施例的用于对准运行时所获取的图像数据的模型3d图像数据的示例性训练处理的流程图;

图3是示出模型3d图像数据的训练时间描绘的图,其中在两个不同定向上的3d特征集周围以及与每个示例性特征集的3d表面几何形状相关联的表面法线周围提供了示例性边界框,并且,示出了方向上的差异,以及由此从每个特征集导出的信息的重要性;

图4是示出处于特定定向的长方体形状的对象的图,其中构成该形状的多个平面和边缘的定位可以根据所获取的3d图像确定;

图5是示出了图4的长方体形状的图,与图4所示定向不同,该长方体形状面向上定向,在该定向中,可以基于主导定向精确地确定较少的平面和边缘;

图6是对所获取的待对准对象的3d图像中的边缘和法线相对图2的模型数据进行运行时加权以便考虑多个3d对准算法中的每一个的适用性的处理的流程图;

图7-7d是相对于图6的加权处理示出高斯函数g(λ)相对本征值λ的示例性曲线图;以及

图8是根据一说明性实施例的用于在运行时应用具有使用图6的程序确定的适当权重的3d对准算法的程序的流程图。

具体实施方式

i.系统概述

图1示出了用于检查和/或分析在一个或多个3d视觉系统相机组件120和130的视场(fov)内成像的对象110的表面112上的特征的机器视觉系统布置(在此也称为“视觉系统”)100。每个相机组件120、130可以是用于3d成像的部件的任何可接受的布置。相机组件120、130各自适于确定构成对象表面112的3d“距离图像”(在此以非限制性示例的方式示出为长方体形状)的第三正交维度(例如,沿着每个相应相机的坐标系128、138的相应z1、zn轴的高度)。可以采用各种技术来生成各个图像像素的高度数据,例如激光位移传感器(轮廓仪)、立体相机、声纳、激光或lidar测距相机、飞行时间相机以及各种其他被动或主动距离感测技术。注意,在总体布置中可以仅使用一个相机组件,或者更多数量(例如三个或更多)的相机组件,并且术语“3d相机组件”可以在此替代地用于描述用于生成对象表面的3d点云或距离图像表示的一个或多个离散3d相机组件的总体布置。

虽然未示出,但是用于生成3d距离图像或点云的一种示例性类型的3d相机组件是激光位移传感器,其在对象表面112投射扇形激光束(或另一种结构化照明)以形成一条线(例如,跨越x轴方向定向),并且在激光位移传感器的相应成像器126、136处以照明扇形的平面和相应成像器的光轴oa1、oan之间的相对(锐角)角度(a)接收来自投射线的反射光。如上所述,其他模态可用于生成距离或高度信息,包括例如lidar、结构化光系统、立体视觉系统(例如一对间隔开的相机120和130)、dlp计量等。这些系统都生成为像素提供高度值(例如z坐标)的图像。

在典型的布置中,3d相机组件120和/或对象110可以处于相对运动中(例如,在一个或多个相机的物理y轴坐标方向上),使得对象表面112被激光位移传感器扫描,并且以期望的空间间隔—通常与将运动信息140传递给系统视觉处理器(150,如下所述)的运动控制器和相关联的编码器或其他运动测量装置相关联(或者,可选地,以基于时间的间隔)获取激光线的图像序列。在这方面,对象上的点沿运动方向的位置被定义为坐标yi。3d相机组件获取的点集合(xi,yi,zi)被定义为点云。在其他实施例中,3d相机组件不相对于对象运动。

相机主体124、134可包含构成操作相关联的视觉处理的视觉系统处理器150的各种图像处理部件。视觉处理器150基于所获取的场景和/或其他源的图像(例如模型的cad表示)对图像数据142进行操作,并且可以使用视觉系统工具和处理152来从所获取的图像中提取信息。该信息可以与感兴趣的特征和图像中出现的其他项目相关——例如视觉系统工具,例如从马萨诸塞州纳蒂克的cognex公司获得的众所周知的可以用于分析图像中的2d和3d特征,并提供关于相对姿态、对准和其他细节的信息——例如边缘、斑点等。虽然可以在相机组件120、130的主体124、134内实例化视觉系统处理的一部分或全部,但是可以明确地设想,部分或全部处理可以由具有适当用户接口(鼠标/键盘)162和/或显示器164(例如触摸屏)的互连(有线或无线)计算装置/处理器160来执行,例如专用处理器或通用计算机(例如服务器、pc、笔记本电脑、智能手机、平板电脑等)。互连的计算装置/处理器160可以经由通信链路166或其他接口装置使用处理后的图像数据来执行进一步的利用处理或任务。例如,在视觉系统执行检查任务的情况下,该信息可用于向数据库提供质量控制信息或在线拒绝有缺陷的零件。如下所述,利用任务包括使用3d对准信息168。

训练处理(处理器)或模块154处理由3d距离图像或点云数据组成的一个或多个3d模型/表示的训练和存储,所述3d距离图像或点云数据定义有助于将模型与运行时(目标)对象的运行时3d距离图像或点云图像中找到的特征对准的特征。训练的模型可以包括在对象的总体视图中发现的特征、特定对象的不同部分或定向和/或多个对象。

在说明性实施例中,视觉处理和处理器150包括对准处理(处理器)或模块156,其采用适当的对准算法(或处理),试图对准模型的特征和运行时(目标)3d图像的特征。对准处理(处理器)156和训练处理(处理器)154各自与同时算法考虑处理(处理器)或模块158互操作,该同时算法考虑处理(处理器)或模块158基于模型的3d表面特征来协调两个或更多3d对准算法的使用。如本文所使用的,术语“同时”是作为一般命题的示例,即可以在图像上同时地或者在同一处理事务内考虑和/或操作两组或多组特征和相关联的运行时姿态确定处理,因此不需要真正的同时性。

ii.训练3d模型

如下所述,该系统和方法在整个对准处理中使用经训练的图像数据。图2示出了一般化的训练处理200,其中系统在训练时间获取或被提供以模型的图像作为3d点云或距离图像。该图像可以通过在一个或多个定向上对包含模型/训练对象的场景进行成像,或者提供对象和/或其一部分的“合成”(例如cad)表示来产生。在步骤212中,作为训练处理的一部分,可以经由接口向用户提供实际或合成图像。注意,步骤212是可选的,并且可以在没有关于对象类型或阈值设置的任何用户输入的情况下将图像直接提供给系统。替代地,可以基于使用视觉系统工具自动识别对象或表面特征的类型来设置阈值。在使用用户接口的情况下,可以如图3的显示器300中一般所示那样显示图像。用户可以操纵图像,包括围绕部分或全部训练对象设置边界框(步骤214),如围绕相应图像312和322的边界框310和320所示。边界框的大小和形状可以由用户决定,或者可以通过本领域技术人员应该清楚的自动机制来界定感兴趣区域。替代地,感兴趣区域和相应的训练特征可以由cad数据源提供,或者由一些其他模态提供/与图像数据一起提供。通过界定待分析的感兴趣区域,对准处理省略了与对准无关的任何模型特征和/或与模型分离的背景特征。替代地,整个获取的图像可以用作模型。在处理200的步骤216中,算法选择处理(处理器)(图1中的158)在界定的感兴趣区域中的特征上建立表面法线(参见图3中的边界框310、320)。所得到的模型被提供给该处理以在运行时对准期间使用,下文将对此进行进一步描述(步骤218)。

如图3所示,模型312、322的所描绘的表面(实际上被定义为3d距离图像或3d点云)包括表示沿着相应表面的局部点处的垂线的表面法线的集合。法线的粒度是高度可变的。通常,其可以是用户在训练时间指定的参数的一部分,或者在训练时间由对准系统使用(例如)技术人员清楚的技术自动确定。通常,系统可以存储系统通常遇到的各种类型的表面和/或对象类别(例如螺栓、球、计算机屏幕、电路芯片、瓶、罐、盖等)的参数集。为这些项目提供了预定参数。替代地,特定参数可以由用户为特定模型设置,或者自动确定。还可以为模型的特定定向设置参数。例如,从瓶子的侧面看与从瓶子的顶部看,瓶子会显得不同。

iii.运行时对准

在一个实施例中,在运行时期间,考虑处理158同时(也称为“同步”)采用基于法线的对准和基于边缘的对准算法来执行精细对准。这在通过初始粗略对准步骤将训练的3d模型与图像数据粗略配准之后进行。精细对准处理使能量函数最小化,如下文进一步详细描述。因为法线比边更精确,所以通常优先使用法线。然而,在某些情况下,例如在分析平面特征的情况下,边缘在法线不提供信息的方向上为处理提供信息。因此,该处理定义了“法线信息矩阵”,该矩阵表示图像特征信息可用的方向。举例来说,采用该矩阵上的主分量分析(pca)来为处理中的信息提供基础。然后,根据每个边缘在每个方向上贡献的信息量以及处理已经拥有的信息来评估每个边缘。如果该边缘在对对准有用的方向上贡献了重要信息,则该边缘被高度加权(即接近1.0)。否则,其相对权重很低(即接近0.0)。然后对权重进行线性最小化函数,该函数最小化点到平面距离的总和加上加权的点到边缘距离的总和。

有利的是,上述处理排他地(仅仅)在3d成像对象的几何形状需要其时使用不太精确的边缘。例如,在平面特征的使用情况下,系统可以使用法线来固定法线通常提供关于其的信息的三个自由度(即两个正交倾斜角度和沿着平面法线的偏移),然后使用剩余自由度(dof)的边缘(即平面内的两个平移和围绕法线的旋转)。单独使用点到线度量会提供不太准确的结果,并且使用点到面度量一点也不稳健。

作为进一步的描述,当试图在3d场景中定位对象的实例时,存在通常导致丢失信息的相机视角和场景特征。如果使用cad文件描述对象,则可以完全描述对象,并完全指定每个表面和关联特征。然而,如果使用单个3d传感器来获取场景,那么传感器的局限性会约束和限制可用的信息。例如,场景的某些部分可能会阻止对象整体可见,和/或对象本身可能会遮挡其自身的某些部分——例如,相机可以对对象的正面进行成像,但不能对背面进行成像。作为说明,参考图4和图5,图4和图5分别示出了示例性场景400和500,其中以不同的角度/视点(pov)观察所定向的长方体形状的盒子410。在图4的场景400中示出了面412和416。然而,随着图5的场景500中pov的改变,仅面414可见,而场景400中不存在的底面510现在也可见。这可能会限制系统正确测量3d对象的能力。更一般地,由于丢失信息的可能性,用于对对象410进行3d成像的pov可使得在坐标系的所有三个正交轴(图4中的420)上定义对象维度具有挑战性。

细化姿态估计的经典技术是迭代最近点(icp)。这个处理/算法使用一组特征(例如点位置或点法线)来迭代地将粗姿态细化为最终(精细)姿态。必须做出的一个选择是icp例程将最小化的度量。标准选择是点到线,其中icp处理最小化从源点到其最近边缘的距离总和,以及点到平面,其中icp处理最小化从源点到通过其最近目标点的平面的距离总和,由目标点处的法线表示。在icp算法中,一个3d点云(参考或目标)保持固定,而另一个3d点云(源)被变换为与目标最匹配。参考和源可以对应于训练的模型和获取的运行时对象图像。icp算法迭代地修正使从源到参考点云的距离最小化所需的变换(平移和旋转的组合)。可以对变换进行初始估计,以将源与参考对准,并且还提供了一个或多个停止迭代的准则。然后,该算法输出精确变换(结果姿态)。在操作中,该算法如下进行:

对于源点云中的每个点,找到参考点云中最近的点;

使用均方误差代价函数来估计旋转和平移的组合,该均方误差代价函数将使每个源点与其在前一步骤中找到的匹配点最佳对准;

使用所获得的变换来变换源点;以及

迭代,重新关联这些点。

注意,icp算法对于表面正态分布方差高(高于给定的“高”阈值)的某些对象形状(例如,图3中的形状322)特别有用。相反,对于表面正态分布方差低(低于给定的“低”阈值)的某些对象形状(例如,图3中的形状312),icp和基于边缘特征的混合算法更理想。

这样,如果使用成像场景500(图5)来对准长方体/盒状对象410,那么点对点技术将失败。进行完全、正确对准所需的信息(事实上)存在于成像场景500中,但是点到面度量不能访问该信息,因为该信息在对象的边缘530中表示,而非在暴露的平面414和510中表示。在该使用情况下,点到面的度量不能区分仅水平滑动不同的两个结果。

当在诸如盒410的成像对象上排他地使用点到线度量时,存在类似的退化。挑战在于,由于3d图像传感器pov的局限性,某些信息只有在考虑特定特征时才可用。因此,为了在多个定向上稳健地对准各种零件,在icp细化处理中应考虑多个特征。

示例性实施例克服的挑战是提供一种将多个特征组合成单个混合度量的有效技术的技术。由于点到平面度量意味着到平面的距离,而点到线度量意味着到线的距离,因此将这些度量组合成可以最小化的单一全局拟合误差并不简单。此外,典型的3d图像可以包含比边缘多得多的法线,这一特性应该被考虑进去,因为如若不然,边缘的贡献将会非常小,从而在本质上产生点到平面度量(因为点到平面度量使用大量的法线,而点到线度量使用很少的边缘)。由于这种不平衡,权重基本上转移到点到面的结果。此外,法线(通常)基本上比工业视觉系统应用中常见的图像类型中的边缘更精确,并且可以将更多的点一起平均来估计法线,而不是分组来估计边缘。虽然使用多个(两个或更多)度量在学术环境或与icp相关的文献中用处不大(部分由于混合实现的复杂性),但是在此认识到,使用两个或更多度量来利用icp分析对象可能是特别理想的。也就是说,单个度量的局限性(通常)仅在以多个相对定向上对准多个对象的图像时才成为有问题——如本文所述,这是工业视觉系统环境中特别存在的挑战。

如上所述,icp迭代地操作,其中每次迭代由两个阶段组成:(a)源数据集和目的地数据集之间的对应特征,以及(b)基于对应特征最小化度量。度量采用函数的形式,其输入为特征对应,其输出是单个数字。点到面度量具有以下函数:

f=∑((di-m*si)·ni)2

其中di是第i个目的地位置,si是第i个源位置,ni是第i个源法线,m是将源映射到目的地的姿态,并且·表示点积。

点到线度量具有以下公式:

g=∑||((di-m*si)×ui||2

符号ui是第i个边缘方向,而×表示叉积。一般来说,技术人员应该清楚上述关系。在示例性实施例中,混合度量h现在贡献于由以下等式组成的关系:

h=∑((di-m*si)·ni)2+∑αi||((di-m*si)×ui||2

该度量值h由点到平面和点到线度量之和组成,其中新的每边缘对应权重项为αi。说明性地,在每次迭代期间动态计算这些权重,而非预先计算或存储。每一个权重都是非负数,表示对应对于找到好的姿态有多重要(数字越高表示重要性越高)。以下根据实施例描述了如何计算权重。

计算权重考虑了至少两个因素:(a)对象的平面提供了关于在平行于法线的方向上的对准的信息,以及(b)对象的边缘提供了关于在垂直于边缘的方向上的对准的信息。基于这些考虑以及如果存在足够的信息则采用法线而非边缘的偏好,则处理600适用,参考图6。首先,使用获取的运行时图像,在步骤610中计算法线提供最少量信息的方向。这可以通过在正常情况下使用主分量分析来实现。作为非限制性示例,该处理找到由计算的矩阵的三个本征向量。该方法从而输出三个本征向量和本征值。本征值提供指示在本征值的本征向量的方向上存在多少信息的数字(其中本征值接近零指示低信息,而本征值较大指示更多信息)。当存在足够的信息时,可以使用适当的阈值来确定截止。

更具体地,在处理600的步骤620中,本征值被映射到确定赋予该本征向量的重要程度的测量计算中。这可以通过将本征值λ映射到高斯函数f(x;a,b,c)来实现,也表征为g(λ),

其中在图7的曲线图700中示出了基本分布曲线710,并且三个常数a、b和c是定义高斯形状的数字。第一,a,是曲线最高点的值;b定义沿x轴的平移;c定义曲线的宽度。在示例性实施方式中,可以将a设置为10,b设置为0,c设置为2(因此指数的分母等于8)。然而,由于说明性本征值λ对于当前的使用情况总是正的,所以曲线710的左侧可以被忽略,从而产生图7a中所描述的曲线图720,以及关联的正值曲线722。这表示在本文的系统和方法的实施例中使用的示例性分布。x轴表示本征值,y轴是一个常数,用于在考虑该方向时乘以边缘的权重。因此,在这种情况下,如果特定特征方向的本征值非常小,权重乘数可以等于大约10,如果特定特征方向的本征值非常大,那么权重乘数可以接近0。因此,如果边缘在本征值较大的方向上贡献信息(即,如果对于该方向已经存在重要信息),则该边缘被分配较低的权重(因为权重乘数较低)。相反,如果边缘在本征值小的方向上(即,在很少或没有信息可用的方向上)贡献信息,则其权重很大(因为权重乘数很高)。更一般地,在替代实施例中可以采用多种这样的函数:(a)当输入很小时输出很大,(b)当输入很大时输出很小,(c)是连续的,以及(d)单调递减。在一个示例中,向下倾斜的线可以提供可行的功能。因此,基于参数a、b和c采用的特定值,上述高斯函数是用于实现期望目标的方便且有效的机制。可以将参数设置为另一个值以实现期望的结果—例如可以将c设置为2.5。

通过改变参数a,可以控制权重边缘何时会在新的方向上贡献信息。请注意,如果a等于100,则边缘将变得比法线重要得多。相反,如果a等于1,则边缘变得不如当前实施方式重要。

通过改变参数b(从其正常值0),高斯曲线732水平移动,如图7b中的示例性曲线图730所示。因为该函数(例如,b=2)在实数的正半部不是单调递减的,并且对于该实施例来说不是有效函数。同样,b的负值产生图7c的曲线图740中的曲线742。如图所示,在该示例中,曲线742的正半部表现出更急剧的初始衰减。这种特性(可能不利地)忽略了衰减较小的曲线部分(例如0和0.001之间的区域)。

改变c值会改变曲线的向外延伸,这可能会影响低信息边缘的权重分配。因此,为了使低信息边缘的权重更高,可以增加c值。为了使低信息边缘的权重更低,可以减小c值。图7d示出了曲线图750,其描绘了上述高斯曲线752(图7d),以及c值等于4的附加分布曲线754。在第二曲线754中,应该清楚的是,低信息边缘(本征值较大的边缘)位于x轴右侧更远的位置,并且将被分配更高的权重。

还应该清楚的是,低本征值在高斯(或类似)函数中是有意义的,因为如果法线没有提供关于方向的足够信息,那么边缘应该提供这样的信息。

然后,在处理600的步骤630中,由以下公式确定每个单独边缘的权重α:

其中u为边缘,vi是第i个本征向量。上面的公式包含两个部分。第一部分涉及各个边缘对给定方向贡献了多少信息,以及该方向对权重的整体计算有多重要。因此,如果边缘提供了重要信息,而法线没有提供该方向,那么计算的权重应该很高。相反,信息和方向重要性的任何其他组合都应该导致低计算权重。此外,由于边缘和本征向量之间的角度的正弦是两个向量的垂直程度的量度,因此其量度了边缘对相应方向贡献了多少信息(因为边缘对垂直于自身的方向贡献了信息)。上述公式的第二部分涉及各个方向有多重要—如果本征值很小,那么法线在各个方向上不会提供重要信息,因此,值g(λ)会很大。图7中的曲线图700示出了此,曲线图700示出了g(λ)相对于本征值λ的示例性曲线图710。请注意,随着λ的增加(在本例中,高于大约λ=7),g(λ)的值接近零(0)。

在步骤640中,将计算的权重值α被供给边缘和法线的运行时对准处理。利用这些权重,该处理可以定义混合度量,然后使用本领域技术人员已知的标准演算技术来确定在对准中最小化该度量的候选姿态(例如仿射变换等)。

现在参考图8的运行时粗略和精细3d对准处理800。在步骤810中,将一个或多个运行时对象放置在一个或多个3d相机的视场内,并且获取场景的一个或多个图像。在步骤820中,提供存储的训练/模型信息用于对准运行时图像数据以及完成对准处理所需的任何其他数据——阈值、特定算法、设置等(这可以在下个步骤830中的粗略对准之前或之后进行)。在步骤830中执行粗略对准,在步骤830中,将对象的识别特征与模型特征粗略对准。这可以包括将运行时图像中的特征与各种模型进行比较,以提供最接近的匹配,例如最接近运行时特征的定向的模型定向。粗略对准可以基于边缘对准或源表面法线和目标表面法线的比较,以及其他粗略对准技术。

然后,在步骤840中细化3d对准,这需要分析3d图像中的对象特征,并确定边缘和法线的特征以生成上述加权。这些加权以如上所述的迭代方式应用于(例如)点到线和点到面(和/或基于icp)的处理,从而可以生成候选3d姿态。值得注意的是,生成了候选姿态,该姿态同时(同步)将3d模型中的3d边缘与3d图像中的3d边缘匹配,并将3d模型中的3d法线与3d图像中的3d法线匹配。然后,可将常规对准处理应用于姿态,例如,将某些3d形状解析成2d图像,并使用视觉工具应用基于边缘的仿射变换(图1中的152)。然后,在步骤850中,将结果提供给后续处理使用,例如质量控制、零件检查、机器人操作和/或零件组装。

iv.结论

应该清楚的是,上述用于相对于模型3d数据对准3d对象的系统和方法有效地处理了这样一个事实,即可以在成像场景内以不适合于特定姿态确定/对准算法的各种定向观察对象。更具体地说,说明性系统和方法可以对所获取的3d特征集中的边缘或法线的使用是否是优选的做出灵活的决定。这以更有效的方式产生了更好的结果。

前面已经详细描述了本发明的说明性实施例。在不脱离本发明的精神和范围的情况下,可以进行各种修改和添加。上述各种实施例中的每一个的特征可以适当地与所描述的其它实施例的特征组合,以便在相关联的新实施例中提供多种特征组合。此外,尽管前面描述了本发明的设备和方法的多个单独的实施例,但是这里所描述的仅仅是对本发明原理的应用的说明。注意,如本文所定义的,“对象”可以包括平面表面的一部分。此外,例如,如本文所使用的,各种方向和定向术语(及其语法变体),例如“垂直”、“水平”、“上”、“下”、“底部”、“顶部”、“侧部”、“前部”、“后部”、“左侧”、“右侧”、“向前”、“向后”等,仅用作相对于固定坐标系的相对约定,而不是用作相对于固定坐标系的绝对定向,例如重力的作用方向。此外,所描绘的处理或处理器可以与其他处理和/或处理器组合,或者被划分为各种子处理或处理器。根据本文的实施例,这种子处理和/或子处理器可以进行不同组合。同样,明确地预期,本文的任何功能、处理和/或处理器可以使用电子硬件、由程序指令的非暂时性计算机可读介质组成的软件、或者硬件和软件的组合来实现。因此,该描述仅作为示例,而不是限制本发明的范围。

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