视觉系统中用于3D点云匹配的杂波评分系统及方法与流程

文档序号:11591660阅读:345来源:国知局

本发明涉及用于在成像场景中对准和检查对象的机器视觉系统及其相关方法。



背景技术:

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

常见的视觉系统任务包括对准和检查。在对准任务中,视觉系统工具,如可从内蒂克郡(natick)、马尔迈松市(ma)的康耐视公司购买的公知的系统,将场景的2d图像中的特征与经训练的(使用实际或合成模型)2d图案进行比较,并且确定2d成像场景中的2d图案的存在/不存在以及姿态。该信息能够用在随后的检查(或其它的)操作中,以搜索缺陷和/或执行其它操作,如部分拒绝。

利用视觉系统的特定任务为,基于经训练的三维(3d)模型形状于运行期间对3d目标形状进行对准。3d相机能够基于各种技术-例如,激光位移传感器(分析器)、立体相机、声纳、激光或者激光雷达测距相机、以及各种其它被动或主动测距技术。此类相机产生深度图像,其中产生图像像素阵列(通常表征为沿着正交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深度图像有时能够使用常规2d图像处理技术来处理,其中高度维度z被亮度/强度i所取代,并且以特殊的方式来处理丢失像素或者将它们忽略。

作为进一步的背景,在3d的深度图像表示和3d点云表示之间转换3d图像能够通过适当的技术来完成,但是并非没有信息损失和/或精度损失。一些3d相机能够在获取图像时(同时)直接产生3d点云图像或3d深度图像。一旦获取图像,即使在来自能够产生任一表示的相机的表示之间转换图像也可能导致精度的损失。因此,当由相机以该相应模式获取时,3d点云或者深度图像是最精确的。

在将目标图像(获取或者通过合成过程生成的)与模型图像(也是或者合成的)对准的过程中,一种方法涉及目标中的3d点云与模型中的3d点云的匹配/比较,以努力找到最佳匹配姿态。该比较可能涉及目标相对于模型的覆盖分数。高于某一阈值的分数被认为是可接受的匹配/姿态估计,并且使用该信息生成对准结果。然而,基于3d图像精确和有效地产生对准结果是有挑战性的,并且采用模型3d点云匹配目标3d点云的实际的、通用的技术通常是不可用的。



技术实现要素:

通过提供了一种使用3d(点云)图像中的杂波将3d目标图像与3d模型图像对准的系统和方法,从而提供了一种用于在各种表面形状上操作的3d匹配的通用技术,本发明克服了现有技术的缺点。在目标图像中识别杂波,其表示不期望出现于图像中的元素,并且用于计算杂波分数,该杂波分数用于匹配来自各种姿态的对准候选者。如果在3d图像中观测到太多杂波,则不建议匹配。该姿态因此对分数产生负面影响,并且这样的姿态被拒绝作为候选者。相反,满足预定阈值的那些分数被认为是能够用于生成对准结果的姿态候选者(posecandidate)。

在说明性实施例中,提供了一种使用视觉系统处理器将第一3d点云图像与第二3d点云图像对准的系统和方法,其包括第一3d点云图像(通常为对象资源(称为“模型”)的图像)以及第二3d点云图像(通常为运行时的对象(称为“目标”)的图像)。为所述第一3d点云图像与第二3d点云图像的可能对准建立合格总分。为所述第一3d点云图像与第二3d点云图像的至少一种可能对准估计覆盖分数,使得所述覆盖分数描述第一3d点云图像中的期望特征存在于第二3d点云图像中的量。同样地,为所述第一3d点云图像与第二3d点云图像的至少一种可能对准估计杂波分数,使得所述杂波分数描述第二3d点云图像中的无关(extraneous)特征。将所述总分计算为所述覆盖分数和所述杂波分数之间的差。

说明性地,使用3d相机和3d计算机辅助设计描述中的至少一个来定义所述模型。以及使用3d相机和3d计算机辅助设计描述中的至少一个来定义所述目标。说明性地,所述系统和方法定义了围绕第一3d点云图像的包围体,以计算所述覆盖分数和杂波分数。能够自动地或基于用户指定的定义来定义所述包围体。该体积可以例如限定具有成直角侧面的长方体或任何其它期望形状。在实施例中(根据某些标准),其能够是轴对准的和/或设置为包围/界定(包含)3d点云图像的最小体积。作为初始步骤,基于所述第一3d点云图像和第二3d点云图像中的每一个的预定排列的点的匹配,执行所述第一3d点云图像和第二3d点云图像的粗略配准。说明性地,所述第一3d点云图像和第二3d点云图像中的每一点能够定义用于分数计算的覆盖权重,其中所述覆盖权重的值能够定义在0和1之间。另外,能够基于杂波分数乘以杂波率常数来估计总分。所述杂波率常数能够由用户(例如)使用gui来设置并且其值能够为1或更小(例如0.5)。

附图说明

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

图1为视觉系统的示意图,该视觉系统设置为用于为对准目的而获取对象(示例性的平截头体)表面的3d(点云)图像;

图2示出了训练时的视觉系统的示意图,该视觉系统设置为用于定义围绕无杂波区的示例性模型对象(平截头体)的合适大小的包围体;

图3示出了运行时的视觉系统的示意图,其中图2中经训练的3d包围体位于示例性的运行时的对象(平截头体)的周围,该对象包括凹陷在对象顶部内的杂波区,使得经训练的包围体的大小为包括该杂波;

图4示出了训练时的视觉系统的示意图,该视觉系统设置为用于定义围绕无杂波区的示例性模型对象(平截头体)的合适大小的包围体;

图5示出了运行时的视觉系统的示意图,其中图4中经训练的3d包围体位于示例性的运行时的对象(平截头体)的周围,该对象包括在对象顶部上方突起的杂波区,使得经训练的包围体的大小为包括该杂波;

图6为使用估计的覆盖分数和杂波分数将模型3d点云图像与目标3d点云图像对准的过程的流程图;以及

图7为手动或自动设置包围体以计算3d点云图像的杂波分数的过程的流程图。

具体实施方式

图1示出了机器视觉系统装置(本文也称为“视觉系统”)100,其用于检查和/或分析对象112表面110上的特征,对象112在3d视觉系统的相机组件120(也称为“位移传感器”)的视场(fov)内成像。相机组件120能够是任何可接受设置的部件并且通常包括镜头组件122以及容纳图像传感器(成像器)126的相机主体124,成像器126基于任何可接受的成像技术,如ccd或cmos。成像器126能够设置为用于获取一个或两个维度(例如,沿着x和y轴)的图像,该图像使用能够适用于以灰度或颜色感测场景的图像像素阵列。相机组件120进一步适用于确定第三正交维度(例如,沿着z轴的高度),其构成对象表面110的3d“深度图像”。能够利用各种技术来生成相应图像像素的高度数据。将高度数据及其相关深度图像转换成点云。替代地,3d视觉系统的相机组件能够使用适当的相机功能和设置来直接获取3d点(点云)的集合。值得注意的是,能够以阵列的形式使用多个相机和/或传感器,并且使用术语3d相机组件来描述用于生成对象表面的点云表示的整体装置。

用于生成点云的示例性类型的3d相机组件(如图1所示)为激光位移传感器,其将扇形130激光(或其它结构的光照)投影在对象表面110以形成线(例如,横跨x方向定向的)132,并且在激光位移传感器的成像器126处以扇形130平面和成像器光轴oa之间的相对(锐角)角度(a)接收来自投影线的反射光。因此,基于每一点处的对象表面的高度,投影线132在成像器的像素阵列126中呈现沿y方向、横跨x方向的位移。这个基于y的位移由相机组件转换成沿着z轴的高度值。检测点在空间中的相应x坐标为xi。该检测点的相应高度值为zi。下文讨论yi值的获取。

在典型的设置中,3d相机组件120和/或对象112处于相对运动中(例如,朝箭头138所示的物理y坐标方向),以便对象表面110由一个或多个激光位移传感器来扫描,并且以所需的空间间隔-通常与运动控制器140以及相关编码器或者其它运动测量装置(其将运动信息144传送给系统视觉处理器(150,下文描述))关联-(或者替代地,以基于时间的间隔)从激光线130中获取图像序列。对象上的点沿运动方向的位置定义为坐标yi。通过3d相机组件获取的点(xi,yi,zi)的集合定义为点云。

可明确设想的是,也能够采用使用其它功能原理操作的3d相机组件来获取场景中的对象的3d图像(深度图像或点云)。例如,结构光系统、立体视觉系统、dlp计量装置以及其它装置。这些系统均生成提供高度值(例如,z坐标)给像素的图像。

由各种类型的3d相机组件生成的3d点云图像能够用于定位和确定对象表面上的特定特征的存在和/或特性。

相机主体124能够容纳各种图像处理部件,这些部件构成操作相关视觉过程的视觉处理器130。视觉处理器150对所获取的场景图像进行操作并且能够利用视觉系统工具和过程152来从所获取的图像中提取信息。该信息能够关于感兴趣特征以及出现在图像中的其它项-例如,视觉系统工具,如可从内蒂克郡(natick)、马尔迈松市(ma)的康耐视公司购买的公知的系统,能够用于分析图像中的2d和3d特征并且提供关于相对姿态、对准以及其它细节(例如,边缘、斑点等)的信息。同时能够将某些或者全部视觉系统过程在相机组件120的主体124内实例化。可明确设想的是,某些或者全部过程能够通过互连的(有线或无线)计算装置/处理器160来执行,如通过专用处理器或通用计算机(例如,服务器、pc、笔记本、智能手机、平板电脑等),其具有合适的用户接口162和显示器164。互连的计算装置/处理器160能够使用经处理的图像数据来执行进一步的利用任务(即,使用“利用元件”或者“利用器(utilizer)”处理)170。例如,当视觉系统执行检查任务时,该信息能够用于提供质量控制信息给数据库或者拒绝线上的缺陷部分。通过读取对象上的标签和/或id代码,该信息还能够用在(例如)物流应用中。还能够使用图像数据及其相关信息进行各种其它利用任务。

在说明性实施例中,视觉过程和处理器包括对准过程(处理器)154,其使用杂波测定过程(处理器)来促进模型3d图像和目标3d图像的对准。根据本文的实施例,对准过程(处理器)154运行以确定所获取的图像中的杂波水平。杂波通常被认为是图像中的信息,其中根据经训练的图像中的图案,不应存在杂波。一般来说,大多数常规搜索工具寻找经训练的图案的存在,并且如果找到,则返回指示成功的结果。然而,如果在对象表面的图像中存在杂波或其它不期望的“噪声”,则可能存在期望的/经训练的图案,但是整体图像仍然指示缺陷(由于附加的噪声或杂波),这将导致用户因为有缺陷而拒绝该对象。

在确定对准中,过程(处理器)150采用显示为评分模块156的杂波评分过程,评分模块156生成与图像数据的每一姿态关联的杂波分数(下文描述)。结合每个可能姿态的模型和目标图像之间产生的覆盖分数,对准过程(处理器)确定目标相对于模型的最佳对准。

现在参考图2,其示出了在视觉系统的训练时间期间由上述3d视觉系统相机/传感器120和过程(处理器)150来成像的示例性模型对象(例如,平截头体)210。由相机/传感器120生成的图像能够定义为3d点云(模型)图像,因为其由具有关联的x和y和z坐标的点集组成,x和y和z坐标全部与相机的坐标空间关联。视场240包围整个对象,该对象定义了最大高度深度do(沿所示x轴)、最大宽度wo(沿所示y轴)、以及最大高度ho(沿所示z轴)。视觉系统设置为,定义围绕对象220的3d包围体250(在该示例中为具有直角/正交平面的长方体或“盒”),其以包围(界定)对象的全部深度、宽度以及高度的方式而具有相应尺寸db、wb以及hb。如下文所述,在该示例中,对象不具有杂波特征,并且包围体的大小适配为完全包围对象。值得注意的是,此实施例中的3d相机/传感器基于朝扫描方向(箭头260)的对象和传感器之间的相对运动来操作。

现在参考图3,通过视觉系统相机/传感器120(经由扫描箭头260)对类似形状的、示例性的运行时的对象(本文一般称为“目标”)320(平截头体)进行成像,以为了将其3d点云图像与模型3d点云图像进行对准以确定最佳姿态。在训练时定义的包围体250现在通过视觉系统来定位,以便其完全包围目标320的图像。在该示例中,对象320包括以对象顶面中的示例性凹口或凹槽330形状的杂波区。在训练时对包围体积尺寸的选择允许该包围体250完全包围对象320的特征,包括当将其映射到图像时的示例性杂波区。如下文进一步所述,包围体250的定义足以允许凹槽表面上的大多数点接收杂波权重值。这些权重值用作为对成像目标的特定姿态的总杂波分数的贡献。

在图4中,类似的训练对象(平截头体)420由相机/传感器120以及关联的视觉过程(处理器)150成像。该系统期望杂波可以超过对象的标准最大尺寸do1、wo1以及ho1中的至少一个(在本情形中为高度ho1),并且因此将3d包围体450的尺寸db1、wb1以及hb1扩展(在本情形中为包围体的高度hb1),以包围由杂波区引起的预期过高。如图5所示,接着在运行时将不太紧的包围体应用至成像目标520的姿态。在本情形中,当映射到图像时,突起物530提供了扩展的包围体40包括在其范围内的杂波区。这确保了突起物(杂波)530被包括在杂波权重值中并且成为总杂波分数计算的一部分。在各个实施例中,包围体定义了顶面和底面(例如,在长方体形状内),其分别平行于基面,并且该包围体保持为仅绕z轴旋转。

现在参考图6,其示出了过程600,通过使用估计的覆盖分数和杂波分数来选择表示最佳姿态的对准候选者,将模型3d点云图像与目标3d点云图像对准。在步骤610中,将基于上述对象模型的第一3d点云图像输入视觉系统对准过程(处理器)(图1中的154)。在步骤620中,同样地,将基于目标的第二3d点云图像输入对准过程(处理器)154。在步骤630中,用户或者自动化系统为模型3d点云图像和目标3d点云图像之间的可能对准设置最小的合格分数。这可能需要在设置/训练时在系统gui中设置一值或者在运行时设置该值。

接着,在步骤640中,针对模型3d点云和目标3d点云之间的一种或多种可能的对准,过程600估计相应的覆盖分数。在步骤650中,针对模型的3d点云和目标的3d点云之间的一种或多种可能的对准,过程600接着估计杂波分数。值得注意的是,说明性系统和方法基于在对准两个3d点云之后的整体覆盖和杂波条件来选择最佳对准候选者。将生成的姿态应用至运行时的云(目标)以将其与训练时的云(模型)对准。接着,从两个对准的云中计算两个分数,即覆盖分数和杂波分数。

覆盖分数表示为模型上所有点的覆盖分数的总和与所有模型点的数量之间的比值,而杂波分数则定义为所有目标点的杂波分数的总和与所有模型点的数量之间的比值。如果任何映射的目标点位于该点的领域内,则认为模型点被对准目标所覆盖,并且将其覆盖分数设置为1,否则设置为0。如果目标点能够映射到模型云区域内或附近的位置同时附近没有实际的模型点(该区域基本上没有模型点),则其杂波分数为1;否则,杂波分数则为0。说明性地,覆盖分数描述了模型上的期望特征被目标覆盖了多少,而杂波分数则描述了无关特征从目标云被引入到模型空间中的程度。可选地,还能够将0和1之间的权重引入到每一目标/模型点,以进一步强调一些点的重要性,并且替代上述的覆盖/杂波分数。

在说明性实施例中,根据过程600的步骤660,最终的估计分数定义为:

分数=覆盖分数-杂波分数*杂波率。

杂波率为控制杂波分数的惩罚(penalty)的常数,其处于0和1之间-例如,其能够被设置为1/2(0.5),但是能够基于各种其他因数而变化,并且能够使用(例如)上述的gui来定义。说明性地,如果上述等式产生负值,则该分数设置为0。替代地,能够设置该过程,以将模型和目标的3d点云转移进3d体积或网格中,并且使用重叠区域的体积或者表面积来计算覆盖和杂波分数。如果点云具有在每个点上定义的更多属性,则能够基于除距离之外的属性相似性来计算上述分数。值得注意的是,模型3d点云中的每一点具有计算的“覆盖权重”,目标3d点云中的每一点具有计算的“覆盖权重”以及计算的“杂波权重”。所有此类权重均定义在范围[0,1]内。覆盖分数为模型的覆盖权重的总和与模型点的数量的比值。类似地,杂波分数为杂波权重的总和与模型点的数量的比值。

对于运行时的点,覆盖权重和杂波权重分别基于离其最近的映射模型点的距离来计算。如果该距离足够近(例如,小于阈值dist_thres1),则覆盖权重等于1,并且覆盖权重值随距离的增大而减小。因此,如果该距离足够远(例如,大于阈值dist_thres2),则杂波权重等于1,并且杂波权重随着距离变小而变小。用于模型点的覆盖权重为基于运行时的点的覆盖权重。说明性地,模型点的覆盖权重等于与其对应的运行时的点的覆盖权重的最大值。根据以下关系描述,其中t是从模型空间映射到目标空间的变换:

映射盒←t*包围盒

映射模型←t*模型云

n模型←模型点的数量

w覆盖←所有模型点上的覆盖权重的总和。如果模型点靠近映射盒中的点,则其“被覆盖”。

w杂波←映射盒中所有运行时的点的权重总和

分数覆盖←w覆盖/n模型

分数杂波←w杂波/n模型

如上所述,以及进一步参考图7和过程700,基于模型点云的大小,确定用于计算杂波分数的包围体的尺寸(步骤710)。包围体的大小能够由用户在训练时指定,或者用户能够请求自动计算包围盒(判定步骤720)。如果自动设置,则根据某些标准,能够将包围体的尺寸(大小)设置为(例如)完全包含模型点云的最小体积的包围体(步骤730)。在实施例中,根据某些标准,包围体能够是轴对准的。如果是用户定义的,则基于经由(例如)视觉系统的gui(160、162、164)的输入,将包围体大小设置为用户定义的尺寸(步骤740)。如上所述,基于设置盒的大小,接着基于驻留在粗略对准的包围体内的目标的3d点云来确定杂波分数(步骤750)。值得注意的是,所有分数在最终的、完善的姿态上进行。为了对模型和目标点云进行初始评分,基于粗糙特征或者能够用于相对模型上已知的特征识别目标特征的小的点集(例如,角、边缘等),作为初始步骤将模型和目标点云粗略对准。

再次参考过程600,一旦确定覆盖分数和杂波分数的差值,从而为每一可能的对准候选者估计总分时(步骤660),在步骤670中,选取具有最高总分(如果有的话)的一个或多个对准候选者。这成为用于该目标的对准方案。

在说明性实施例中,所述系统和方法能够用于在图像包含杂波情况下在图像中找到目标的多个实例。当定位到多个实例时,根据上述步骤对每一实例进行评分,并且将具有最佳分数的一个或多个实例识别为用于进一步处理的发现目标。

应当清楚的是,上述系统和方法提供了,一种用于测量3d点云匹配结果的准确性的相对简单的技术。0和1之间的分数提供了可理解的度量,其中1定义了模型和目标点云之间的完美匹配,而较高的分数表示较好的姿态估计,并且较低的分数定义了较不理想的估计,并且当低于给定分数阈值时,潜在地定义了被拒绝的候选者。这种分数能够与用于确定匹配的技术无关,因此能够用作为基于类似标准来评估来自不同方法的结果的度量。另外,说明性系统和方法提供了处理点云图像中的杂波的独特能力,这在确定对象上的某些特征时提供附加的益处。

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

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