用于提高三维姿态评分和消除三维图像数据中杂点的系统及方法与流程

文档序号:13663187阅读:208来源:国知局
用于提高三维姿态评分和消除三维图像数据中杂点的系统及方法与流程

相关申请

本申请要求于2016年8月1日提交的序列号为62/369,709、名称为“用于在视觉系统中提高存在局部视图和自遮挡对象的3d姿态评分的系统及方法(systemandmethodforimprovedscoringof3dposesinthepresenceofpartialviewsandself-occlusionsinavisionsystem)”的共同未决美国专利申请的权益,该共同未决美国专利申请的教导在此通过引用并入本申请。

本发明涉及机器视觉系统,尤其涉及相对于训练三维(3d)模式识别和配准3d图像特征的视觉系统。



背景技术:

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

视觉系统的共同任务包括配准和检查。在配准任务中,视觉系统工具(如,著名的系统)将场景中的二维(2d)图像特征用于与2d培训模式(使用实际模型或合成模型)对比,并判断2d成像场景中是否存在2d模式以及2d模式的姿态,其中的系统可从马萨诸塞州纳蒂克康耐视公司购得。该信息可在后续检查(或其他操作)中用于搜索缺陷和/或执行其他操作(如,拒收部件)。

视觉系统的一项特定任务是在运行时期间基于3d训练模型形状配准三维(3d)目标形状。3d相机可基于多种技术实现操作,例如,激光位移传感器(轮廓仪)、立体照相机、声呐、激光或lidar测距相机、飞行时间传感器以及多种其他有源或无源测距技术。此类相机可生成距离图像,其中,还可生成包含每个像素的第三维(高度)(通常沿垂直于x-y平面的z轴表征)的图像像素阵列(通常沿x和y正交轴表征为位置变量)。另外,此类相机还可生成成像对象的点云表示图像。点云是空间中的3d点集合,每个点i在空间中均可表示为(xi、yi、zi)。点云可表示一个完整的3d对象,包括对象背面、侧面、顶部和底部。3d点(xi、yi、zi)表示对象的空间位置,其中,对象对相机可见。在这种表示法中,空白空间表示不存在点。

相比较而言,3d距离图像的表示z(x、y)类似于2d图像表示(x、y),其中,深度或高度z代替了图像中位置x、y的亮度或强度。距离图像专门用于表示直接面向相机的对象的正面,这是因为只有一个单一深度与任意点位置x、y有关联。虽然距离图像是一种密集型表示,但也可用于表示未被相机观察到的位置(x、y)。距离图像可以以技术人员了解的方式转换为3d点云。

在配准由合成进程(如,cad)获取或生成的目标图像与模型图像(也通过获取或合成获得)时,一种方法涉及匹配或对比目标图像中的3d点与模型图像中的3d点,以找到最优匹配姿态。其中的对比可包括使用一种或多种3d配准算法,其中,涉及一种相对于模型图像对目标图像的覆盖度进行评分的度量法。对于任何3d配准算法而言,在有些情况下,训练模型由相较于运行时观察到的部分更大(或更完整)的部分的视图组成,如,一部分运行时对象图像可位于视野之外或被切断(如,因自遮挡)。同样地,在有些情况下,运行时场景包含的信息比训练模型更多。例如,如果利用单个相机既可获得模型,又可获得运行时场景(分别从对象上获得),但对象在每个版本中表示的方位不同,那么运行时场景可包含模型中不存在的部分的区域,反之亦然。如果配准评分标准中未考虑到这些情况,那么计算得出的分数可能会低于实际匹配分数,并且候选姿态可能会被拒绝。更通俗地说,这种担忧在任何应用中都存在,其中,在图像处理阶段,待配准对象可能存在大量自遮挡,或者多张图像在训练时期间融合,虽然获得了对象的360°完整视图,但是,却只有一张获取的对象图像可用于运行时运算。此外,运行时对象图像或训练时对象图像中的一些图像可在图像传感器的合并工作区段(视野)之外。这些情况可通过各种不同方式影响3d配准算法的应用及结果。

对3d视觉系统进程的另一个担忧在于,3d图像传感器在获取对象测量值时通常只测量对象面向传感器的部分,从而导致传感器只获取了对象在测量域范围内的那一部分。3d图像数据有时包含伪数据、错误数据或测量数据(可能由于相互反射作用)。错误数据或伪数据可影响测量进程的效率和准确性。



技术实现要素:

本发明通过提供一种在运行时期间提高对象3d配准性能(寻找正确配准结果)的系统及方法克服了现有技术的缺点,其中,这些对象在获取到的以3d点云形式表示的运行时图像中被部分地遮挡。相机总成(如,一个或多个3d相机)生成的3d点云信息包含相机光心(从工厂标定中获得)的位置,因此,连接查询点(querypoint)和相机总成的线段是已知的。因此,查询点可分类为:(1)完全可见,其中,该点在相机总成中的相机合并工作区段内,并且场景中没有其他点阻挡采集系统对该点进行观察;(2)遮挡,其中,该点在相机总成的合并工作区段内,但在场景中有另外一个点阻挡采集系统对该点进行观察;以及(3)工作区段之外,其中,该点在特定相机的合并工作区段之外,因此,采集系统无法观察到该点,不论剩余场景如何。可通过仅考虑完全可见的点或仅考虑完全可见的点以及在相关相机工作区段之外的点对3d点云进行评分,以测定匹配度。这可由用户依据应用进行选择。对遮挡式工作点或完全可见工作点的识别允许系统基于可视性检查或调整修改3d配准算法的覆盖度分数,其中,某些点不包含在评分算法中。

在一说明性实施例中,提供了一种在视觉系统中评估运行时3d点云相对于训练模型3d点云的3d配准姿态匹配度的系统及方法。该系统和方法包括用视觉系统处理器对运行时3d点云相对于训练模型3d点云的候选姿态匹配度进行评分,包括提供可视性检查。该可视性检查包括:(a)接收3d相机光心;(b)接收训练模型3d点云;(c)接收运行时3d点云;以及(d)构建多条从光心到运行时候选姿态的训练模型3d点云或运行时3d点云的多个3d点的线段。因此,该系统和方法基于分别沿线段分布的3d点的位置,判断是否在评分中排除或包含3d点。举例来说,评分步骤可包括下列步骤中的至少一个:(a)计算覆盖度分数,该覆盖度分数定义所包含的3d点的总数(如,利用点到平面/表面、点到线或点到点度量);以及(b)计算相对于训练模型3d点云,该相对于训练模型3d点云定义所排除的运行时3d点的总数。评分步骤包括增量式执行可视性检查。或者,通过基于点到表面网格测试来测试3d点是否可见,来执行可视性检查。举例来说,该项测试可由simd机器加速硬件(隐藏线消除算法)执行。可视性检查可基于距离图像进行。3d相机是3d相机总成的一部分,其中,该3d相机总成具有多个互连至视觉系统处理器的3d相机。运行时3d点云可从由3d相机中的至少两个成像的对象获取,其中,一部分对象在该至少两个3d相机中的每一个的工作区段被成像。该运行时3d点云还可从在3d相机工作区段内为自遮挡的对象中获取。

在另一实施例中,提供了一种允许组合对象的多个视图的测量值,同时剪除伪数据或错误数据的系统及方法。该系统和方法将来自多个点云(来自多个3d采集)的3d数据(3d点)组合起来,并对3d伪数据进行识别,以剪除该数据。在操作中,该系统和方法假设传感器以特定的相对姿态获取场景的3d测量。该相对姿态可由用户提供(如果部件或传感器已经以已知的姿态定位,例如,由机器人定位,其中,机器人与传感器之间的手/眼标定已知),或由推断获得(基于多个3d测量值中的特征配准子集)。分析全部视图,包括每个视图中的全部3d测量值。该系统和方法基于预期可视性启发式算法(expectedvisibilityheuristic)进行操作,该启发式算法判断3d点是否应当对3d传感器可见。该预期可视性启发式算法基于传感器的测量区域(指定为整个视野(fov)的工作区段)和与每个3d点相关的局部表面法线(大致上如上所述)。

在一说明性实施例中,提供了一种用于去除对象3d图像中的杂点的系统及方法,其中的系统具有多个3d相机,被配置为分别从多个视点获取3d相机工作区段内的对象的3d图像。可视性进程(a)从多个3d相机中的3d相机接收测得的3d点云,(b)相对于测得的3d点云生成对象的假设姿态,以及(c)利用3d相机相对于对象的位置和方位信息,判断3d点云中的点的可视性。复合点云生成进程通过去除由于出现在足够数量的点云中而为被验证的点(基于可视性进程,这些点应当可见),将来自多个3d相机的3d点云组合成无杂点的复合3d点云。该可视性进程可基于3d相机各测量位置和相对于3d相机3d测量点中的点的各局部表面法线。举例来说,该局部表面法线基于邻近点至包含表面法线的点而生成。点云的预定数量可由自动阈值或用户定义阈值设定。

附图说明

下面结合附图对本发明进行说明,其中:

图1是包括一个或多个3d相机总成的视觉系统的示图,该3d相机总成在训练或运行时期间获取一个或多个对象的图像,其中,该示例性对象中的至少一个部分地在至少一个相机的视野之外,或以其他方式被遮断或遮挡,而该示例性对象中的另一个为缺陷对象,或者一个或多个对象在一个或多个3d相机总成中生成杂点;

图2是根据说明性实施例的用于配准训练模型和运行时对象的3d点云的示例性整体过程流程图,其中的过程包括执行运行时对象的3d点云的部分遮挡的可视性检查或调整进程;

图3是根据图2中所示过程的可视性检查或调整过程的流程图;

图4是包含对象全模型的示例性3d点云的示图,其中的对象在训练时期间提供并根据图2中的过程配准;

图5是运行时期间提供的对象的示例性3d点云的示图,其中的对象包括相对于训练模型的模式的部分遮挡;

图6是运行时3d点云和模型3d点云定义最优匹配的配准重叠区域的示图,其中,一部分模型3d点云缺失(由于相对于运行时部分被遮挡等);

图7是图3中所示的可视性检查或调整进程的示图,其中,运行时3d点云上的查询点识别为全部可见,并且包括在覆盖度分数中;

图8是图3中所示的可视性检查或调整进程的示图,其中,模型3d点云上的查询点识别为被遮挡并且不包括在覆盖度分数中;

图9是根据图3中所示的示例性可视性检查或调整进程利用体素化栅格法将查询点分类为遮挡点或完全可见点的技术的示图;

图10是具有一个或多个相机总成的视觉系统的配置图,其中,由一个或多个获取场景图像的3d相机总成获取的3d图像中出现杂点;

图11是判断图10中所示配置中的3d点云是否存在杂点并生成无杂点复合点云的整体过程的流程图;

图12是在图10中所示配置中使用的示例性3d相机总成的正视图,示出了获取3d点云的适用工作区段;

图13是向复合点云(根据图11中所示的整体过程生成)中添加点的过程的更详细的流程图;

图14是基于由一个或多个3d相机获取的对象(如,齿轮)的3d点云进行2d渲染的示图,其中,显示存在杂点;和

图15是去除3d点云中的杂点后基于图14中所示对象的3d点云进行2d渲染的示图。

具体实施方式

一、系统概述

图1示出了用于检查和/或分析一个或多个对象110、112的特征的机器视觉系统100(在本文中也被称为“视觉系统”)的配置,其中的一个或多个对象在具有3d离散相机120、122的一个或多个3d视觉系统相机总成的工作空间或视野(fov)中进行成像。注意,虽然本说明书在下文中仅述及了示例性相机120,但是,整个相机总成可包括多个其他相机(如,虚线所示的相机总成122)。这些相机可与整个视觉系统过程(处理器)150互连(下文将进一步说明)。每个3d相机(120、122)都可基于任何认可的成像技术(如,ccd或cmos),采用任何认可的部件配置,并且通常分别包括镜头总成121和容纳图像传感器(或“成像器”)s的相机主体124。该成像器s可被配置为从图像像素阵列中获取一维或二维图像(如,分别沿相机坐标系128的xi和yi轴),该像素阵列可用于感测场景的灰度或彩色图像。相机总成120可被进一步用于确定构成每个对象110和112表面的3d“距离图像”的第三正交维度(如,分别沿zi轴的高度)。各图像像素的高度数据可采用多种技术生成。或者,3d视觉系统相机总成可利用相应相机的功能和设置直接获取3d点(点云)集合。注意,除了图1中所示的一个或两个相机示例外,在整个3d相机总成的配置中还可使用更多数量的相机(如,三个或更多),另外,术语“3d相机总成”在本文中还可用于描述一个或多个用于生成3d点云或对象表面距离图像表示的3d离散相机的整体配置。

虽然未示出,但是,激光位移传感器可被当作一种示例性3d相机总成,用于生成3d距离图像或点云,其中,激光位移传感器向对象表面发射一扇形激光线,以形成一线(如,横跨x轴方向定向),并以发光扇形平面与各成像器s光轴oa形成的相对角度(锐角)接收反射光线。如上所述,还可采用其他方式来生成距离或高度信息,包括例如lidar、结构光系统、飞行时间传感器、立体视觉系统(如,一对间隔相机120和122)和dlp计量技术等。所有这些系统都可生成带像素高度值(如,z坐标)的图像。

在典型配置中,3d相机120和/或对象110可相对运动(如,在一个或多个相机的物理坐标轴y方向上),使对象表面接受激光位移传感器扫描,并以期望空间间隔从激光线中获得图像序列,该空间间隔与通常与运动控制器和相关编码器或其他运动测量装置(或者替代地,基于时间间隔)关联,这些运动测量装置将运动信息140传送给视觉系统处理器150(如下所述)。就这方面而言,对象上沿运动方向的点位置被定义为坐标yi。由3d相机总成获取到的点集合(xi、yi、zi)被定义为点云。在其他配置中,如果配置了带飞行时间传感器的3d相机,则不需要进行相对运动。

相机主体124可包含各种构成视觉系统处理器150的图像处理部件,其中的视觉系统处理器150用于执行相关的视觉进程。该视觉处理器150基于获取的场景图像和/或其他来源(如,模型的cad表示)对图像数据142进行操作,并可利用视觉系统工具和进程152从该获取的图像上提取信息。该信息可以涉及感兴趣特征以及出现在图像中的其他项,例如,视觉系统工具(如公知的其可从马萨诸塞州纳蒂克康耐视公司购得)可用于分析图像的2d和3d特征以及提供相对姿态信息、配准信息和其他详细信息(如,边缘、斑点等)。虽然一些或全部视觉系统过程可在相机总成120的主体124中实例化,但是,一些或全部进程可由具有合适用户接口(鼠标/键盘)162和/或显示器164(如触摸屏)的互连的(有线或无线)计算设备/处理器160(如,专用处理器或通用计算机(如服务器、个人计算机、笔记本电脑、智能手机、平板电脑等))执行是显而易见的。互连的计算设备/处理器160可利用与对象/配准168有关的处理图像信息,通过通信链路166或其他接口配置进一步执行利用进程或任务。例如,视觉系统在执行检查任务时,该信息可被用于向数据库提供质量控制信息或拒收生产线上的缺陷部件。

训练进程(处理器)或模块154处理一个或多个由3d距离图像或点云数据组成的3d模型/表示的训练和存储,其中的3d距离图像或点云数据定义了特征,该特征可促使模型与运行时3d距离图像或运行时(目标)对象的点云图像中发现的特征进行配准。训练模型可包括在对象整体视图、特定对象的不同部分或方位和/或多个对象中发现的特征。

在说明性实施例中,视觉进程和处理器150包括配准进程(处理器)或模块156,该配准进程(处理器)或模块156利用适当的配准算法(或进程),以配准模型特征和运行时(目标)3d图像的特征。配准进程(处理器)156和训练进程(处理器)154每个都与3d配准可视性进程(处理器)或模块158进行相互操作,其中的3d配准可视性进程(处理器)或模块158对运行时3d点云的自遮挡姿态执行可视性检查。此时,允许对3d配准所依据的覆盖度和/或杂波分数进行修改。

处理器150进一步包括杂点消除进程(处理器)159(下文中将进一步说明),该杂点消除进程(处理器)159常用于确保通过各3d相机总成(如,相机120、122)从多个视点获取的对象(如,对象110)的整个3d点云中不存在不属于实际对象一部分的杂点(噪声)。

二、部分遮挡对象的配准

参照图2中所示的过程200,系统在步骤210中提供一张或多张3d训练图像,这些图像通常被定义为一个或多个相应的3d点云。该过程200针对运行时场景中的训练模型图的位置。系统及相关过程200运行期间,可生成多个候选姿态。每个候选姿态都是场景中的训练模型图的可能位置。这样做的目的是将0.0-1.0之间的分数或分值(由非限制性示例进行归一化处理)分配给每个候选姿态,其中,0.0表示可能最差匹配,1.0表示可能最优匹配。

训练模型图像可从实际对象中获取,或者被定义为合成图像,如,对象从一个或多个视点的cad表示。通常情况下,训练模型图为3d数据结构形式(如,点云),用户在寻找系统执行3d配准过程期间使用的一组辅助数据结构时,试图一起寻找该3d数据结构。在该示例中,训练模型图对从cad或采集系统(包含多个视图)中获得的对象全视图进行了定义。该示例性模型410,如图4中所示。

在步骤220中,过程200获取含有一个或多个运行时对象图像数据的一个或多个运行时3d点云。如图1中所示,示例性对象110和112分别表示相机总成120对不完整图像进行成像的实例,其中的不完整图像可能会对配准过程造成潜在影响。更具体而言,对象110全部在相机的工作区段170(通常被定义为朝向相机光学器件121向上逐渐变小的金字塔形)内,但包括以运行时对象缺失部分174的形式存在的实际缺陷172(以虚线示出)。在检查环境中,此类对象将被拒收。相反地,完整和无缺陷对象112在成像时部分地在相机120的工作区段之外,或以其他方式被遮挡(一部分174在工作区段170的界限之外)。注意,该部分174在相机122的工作区段176内(以虚线示出)。

更具体地,参照图5,图中示出了运行时场景示例。该图像包括另一个含0个或更多对象510实例的3d数据结构,其中的对象510实例与不同姿态下的训练模式类似。每个实例都可相对于训练图平移和旋转。在该示例中,运行时场景是对象的单视图(即,部分视图)。

相机总成包括多个被当作其装置的一部分保存的标定参数或信息。配准算法可访问感应装置的相关信息(如,标定信息)。这可在过程200的后续步骤使用。

在过程步骤230中,过程200试图相对于训练点云对运行时点云执行粗配准,以定位任何潜在候选姿态。使用粗配准是为了基于候选姿态的进一步评估(如下所述)进行精配准。

过程200评估每个候选姿态与模型点云的匹配质量(步骤240)。该过程步骤用于评估候选姿态的质量。除训练模型、运行时图像和标定信息的输入外,该过程还接收一个将图案映射到一部分运行时场景上的候选姿态。该过程假设该部分场景包含图案实例,并且分数是衡量过程与假设的匹配程度的数值。图5示出了包括运行时图像510的潜在候选姿态600,其中的运行时图像510与模型图410的缺失部分610相组合。这即是模型的完整图案,表示可能的最优匹配。因此,该候选姿态应获得高分。

参照过程200中的步骤250,计算候选姿态的基本覆盖度分数和杂波分数,然后将两个分数相加组合成候选姿态的总分数。覆盖度分数是运行时场景中可见的图案的比例。杂波分数用于衡量相邻于图案实例的场景中的“额外”噪声点数量,其中的图案实例正由系统进行分析。在一实施例中,最终分数可表示为:

分数=覆盖度分数-0.5×杂波分数

杂波分数的计算通过利用由贾红骏等人(hongjunjia)于2015年11月11日提交的共同转让的美国专利申请(序列号:14/938,981;名称:在视觉系统中对用于3d点云匹配的杂波评分的系统及方法(systemandmethodforscoringclutterforusein3dpointcloudmatchinginavisionsystem))中的有用背景资料进行探讨,该美国专利申请的教导通过引用并入本申请中。然而,由于在候选姿态600中只有一部分运行时对象510可用,因此,大部分(610)模型图案(410)与运行时图像不匹配。在传统的评分算法中,所有不匹配部分610都不会被计入覆盖度分数的初始定义中。否则,所述匹配将是基本完美的匹配,因此,最好避免仅仅因为一部分运行时图像被遮挡而扣罚候选姿态分数。

为了处理图6中所示的情况,过程200在覆盖度评估(步骤250)期间执行可视性检查/调整,以判断运行时图像510中的给定点是否有助于整体覆盖度的评估(过程200中的步骤260)。图3中示出了执行可视性检查/调整的通用进程300。作为该进程的一部分,在步骤310中,提供的标定信息包括相机光心和工作区段(见图1中所示的工作区段170和光心180表示)。这些参数属于相机的固有可用信息(如,由工厂标定提供),因此,根据说明性实施例,该进程使用了这些参数(连同训练模型和运行时图像的3d点云——步骤320)来确定可视性检查/调整。在步骤330中,假设输入这些参数,进程300构建了从光心180到训练模型3d点云或运行时3d点云的多个点中的每一个点的线段。在步骤340中,进程300限制或排除考虑没有(无)对运行时候选姿态处的训练模型3d点云的视图进行显式渲染的点信息。该可视性检查/调整进程的操作示例,如图7-9中所示。

在图7中,候选姿态600以相机120光心180(可从标定信息中获知)到运行时图像部分510的点云上的点720之间的线段710表示,其中的点有助于获得覆盖度分数。相反地,图8示出了光心到候选姿态600的遮挡部分610上的点之间的线段810,其中的点被排除在外,对覆盖度分数数学关系式中的分子或分母无任何作用。这是因为沿该线段的运行时部分510上有介入遮挡点830,而该介入遮挡点相较于遮挡点820更接近于相机120。

以非限制性示例为例,计算覆盖度分数的例程总结如下:

numpointsconsidered=0;

numpointscovered=0;

对于图案中的每个点:

通过候选姿态映射该点。

如果该映射点未被遮挡:[visiblitycheck]

numpointsconsidered=numpointsconsidered+1;

如果该映射点邻近运行时场景中的点:

numpointscovered=numpointscovered+1

覆盖度分数=numpointscovered/numpointsconsidered

其中,visibilitycheck(可视性检查)是指执行上述进程300(图7-8)。

注意,杂波对候选姿态整体分数的作用可以采用与修改覆盖度分数相似的方法进行修改,以避免造成逆向问题(如,运行时场景包含模式中被遮挡的部分)。在这种情况下,从光心绘制线段,以识别和排除候选姿态上的点,其中的点通常可在对象存在完整运行时图像时被排除。

简单来说,评估可视性检查/调整的步骤包括使用(a)相机配置信息;(b)查询点,其包括来自上述例程的“映射点”;以及(c)运行时场景,其中,该运行时场景可保持在体素栅格内。这可由一系列体素定义,每个体素可包含预定数量的点。该体素栅格910可根据图9表示。体素中的每个点沿遮挡方向940在下方遮挡体素中的所有点,这是因为在所述配置中,相机120向上定位。因此,该例程检查栅格910内的每一列体素,其中的栅格910包含连接查询点930与相机120的线段920的任意部分。如果该列中的最高点高于线段中的任意点,那么该线与运行时场景相交,而查询点被遮挡。否则,查询点未被遮挡。因此,在图9中所示的示例中,体素列(穿过运行时部分510)上沿线段920布置的点遮挡查询点930。因而例程指示查询点930被遮挡。

根据定义,查询点可分类为:(1)完全可见,其中,该点在相机总成中的相机合并工作区段内,并且场景中没有其他点阻挡采集系统对该点进行观察;(2)遮挡,其中,该点在相机总成的合并工作区段内,但在场景中有另外一个点阻挡采集系统对该点进行观察;以及(3)工作区段之外,其中,该点在特定相机的合并工作区段之外,因此,采集系统无法观察到该点,不论剩余场景如何。

再参照图2中所示的整体过程200,根据步骤250和260评估和修改每个候选姿态的覆盖度分数,直至全部候选姿态都获评分(通过决策步骤270)。然后(通过决策步骤270),比较分数并将候选姿态的最高分数和/或超出预定阈值的那些分数作为配准结果返回步骤280中。注意,整个相机总成中的每个相机及相关工作区段都可使用过程200,并且配准结果可根据情况进行组合。举例来说,可利用如手眼标定技术将相机总成全部标定到单一全局坐标系,或者每个相机都可通过其局部坐标系进行操作。

可进一步修改可视性检查/调整进程,以提高精度和/或性能。例如,上述可视性进程采用了批处理法(batchapproach),在判定最后覆盖度(和/或杂波)分数前,对每个点都进行了考虑。另外,可在以下过程中使用增量式法(incrementalapproach):(a)评估大量候选姿态的一部分训练模型图,(b)选择这些姿态的子集做进一步处理,以及(c)考虑图案的不同部分。重复步骤(a)-(c),直至该过程已评估整个训练模型图或降低可能候选姿态为仅一个。在本文中使用的术语“增量式的”或“增量式地”是指上述中的通用过程。在多个实施例中,还可用隐线消除硬件来判断遮挡部分,如,单指令多数据(simd)机器加速硬件。

注意,上述过程及其修改通常考虑使用可在计算机中央处理器(cpu)而不是显卡图形处理器(gpu)(如,simd机器)上运行的编程语言。如果该进程在gpu上运行,可考虑同时映射大量点,并考虑采用gpu语言并行执行可视性检查/调整,如,directx着色语言(hlsl)或opengl着色语言(glsl)。

三、消除3d点云中的杂点和/或噪声

再参照图1中所示的处理器150,除了上述其他进程(处理器)和/或模块152、154、156和158外,还提供了一种杂点消除进程(处理器)。进一步参照图10中所示的示例性配置1000,说明性实施例消除了3d点云中的杂点,其中的3d点云由多个相应相机1020和1022结合获取的图像数据1010和1012生成,相机1020和1022相对于示例性对象1030的预定视点(oa1和oa2)定位。如图所示,为了简单起见,该示例性对象1030定义了一个不带外部特征的六边形直线图形。由于光学效应或其他因素(如,内反射),每个获取的3d点云1010和1012包括合并入配准的整体3d点云1050的其他点或特征1040、1042,其中的3d点云1050由处理器150生成。如下所述,从终版点云中去除(剪除)虚线1060和1062所示的杂点图像数据。虽然未示出,但可以预见的是,多个相机可以采用能够获取示例性对象360°全视图的方式定位,并传输点云数据,其中的点云数据由处理器组合为成像对象的整体3d点云表示。

图11示出从对象的多个3d配准图像中生成复合点云的整体过程1100的流程图,其中的图像为训练或运行时使用的、去除了杂点的图像。在步骤110中,系统从3d相机传感器中获取对象多个方位/视点中的每一个方位/视点处的一张或多张3d图像,并将该图像的数据作为3d点云数据提供给系统处理器及相关视觉系统进程。在步骤1120中,系统提供每个相机的位置或定位信息。该信息可被定义为在标定期间确定的全局坐标系中的相对光轴角度、与其他相机的相对距离和/或坐标系中的参照点。还可提供焦距等其他参数。该信息可被用于帮助判断点可视性(如下文中进一步所述)。

在步骤1130中,系统使用3d点云和相机位置的信息计算对象的假设姿态。该姿态信息(图10中1070)被转发给视觉系统进程(处理器)。因此,总之,此处的基本过程输入为一组数据集,包括:(a)点云,(b)对象姿态以及(c)传感器信息,其中的每个数据集又包括:(i)测量点云,(ii)引起点云的对象假设姿态以及(iii)用于计算每个点可视性的传感器的信息。可视性标准可基于相对于传感器测量区域的测量位置以及相对于传感器的局部表面法线(如上文中所述)。然后,可通过考虑“邻近”(如下所定义的)点,从点云中推断出该局部表面法线。

通常情况下,进一步参照图12,示例性相机/传感器配置1200示出了3d相机/传感器1210获取场景1212的图像,其中,较小工作区段1220被定义在较宽视野(fov)1230内,该较宽视野1230部分地受远场fov1240和近场fov1250的限制,这是因为光轴oa3没有相对于成像场景1212平面垂直。过程1100在此处假设相机/传感器1210在特定相对姿态下获取场景3d测量值,并且假设该相对姿态可由用户提供(如果部件或传感器已经以已知姿态定位,如,由机器人定位,其中,机器人与传感器之间的手眼标定(在给定的运动坐标空间内)为已知或可推断得知(基于多次3d测量中的配准特征子集))。在说明性过程中,全部视图(包括每个视图中发生的所有3d测量)都由视觉系统进程(处理器)进行分析。分析中的主要操作原理基于预期可视性启发式算法,预期可视性启发式算法判断对象上的3d点是否应该对特定3d传感器可见。该预期可视性启发式算法进一步基于传感器的测量区域(如,工作区段1220)和与每个3d点相关联的局部表面法线。

在步骤1140中,过程1100判断每个点云中的确定点。这包括对比每个点云中的点与应当在从传感器传送到处理器的整个配准点云群中的其他点云中可见的确定点。这一可视性判断根据图13中的过程1310推导得出,其可用下列算法表示:

对于来自点云的每个点p,

如果p在其点云中可见(这种情况并不常见,尤其是在p是杂点的情况下),则对比其他每个配准点云ci,其中,p应当可见(步骤1310);

判断ci中是否有相应的点pi,其中的ci足够邻近p,并且如果ci中有相应的点pi,则指定该ci(相对于p)可见(步骤1320)。如果点云ci(其中,p可见,即,|visible({ci})|/|{ci}|)的比例超过阈值t(决策步骤1330),则将p添加入复合点云(步骤1340)。否则,将点p标记为杂点,并从复合点云中去除(步骤1350)。

注意,(1)计算源点云(若有)的表面法线,用于可视性过程(1300),(2)复合点云复制第一源点云的client3dfrompointcloud3d变换,以及(3)将传感器信息(若原始源点云中提供)正确地包含入复合点云(包括更新client3dfrompointcloud3d变换,以表明client3dfrompointcloud3d变换是从每个源点变为复合点云)。

该启发式算法包括两个参数:(1)距离公差(原始点p与其他点云ci中的相应变换点pi),以及(2)可视性比例阈值t,即全部点云的比例,其中的预期可见点必须可见,以便将其纳入复合点云。阈值t可基于各种参数或特征自动设置,如,传感器数量和曝光度等。或者,阈值t还可通过视觉系统软件应用中的用户界面进行设置。

然后,主过程1100在步骤1150中通过连接所有确定点(相应点云内)来计算来自多个配准点云的复合点云,如果这些点在他们应当可见的其它点云中可见,则表明这些点已经被验证。然后,过程1100在步骤1160中提供已消除或去除杂点的复合点云。这可为生成模型或执行多个视觉系统分析进程(如,配准、检查和机器人导引等)提供正确的对象3d表示。

参照图14中所示的屏幕显示,其中示出了一张由多个3d点云生成传感器获取的对象(例如齿轮)图像1400。该图像1400包含由一个或多个点云中的杂点导致的噪声。相反地,根据本文中的示例性实施例,通过执行消除过程,可生成最终的图像1500(如图15中所示)。注意,图像边缘看起来更清晰、明确,杂点/噪声较少。

虽然未示出,但可安装相机或传感器对对象进行全方位360°成像是显而易见的。fov和/或工作区段可重叠,以确保对对象的全覆盖。此外,还可适当提供照明。

上述配准系统及方法在自遮挡时为模型3d点云与运行时3d点云的配准提供了一种有效技术,这是显而易见的。该系统及方法可与多个具有相关工作区段的相机一起使用,其中的工作区段可以包括或不包括运行时对象的全部可见视图。该系统及方法适合在多种处理平台上运行。同样地,本文中还描述了一种用于生成对象3d图像的有效技术。该技术通过对比多个点云中的预期可见点来去除未出现在足够数量的该点云中的点,从而有效地消除以杂点形式出现的任何噪声。

上文中已经对本发明的说明性实施例进行了详细描述。在不脱离本发明精神与范围的前提下,可对本发明做各种修改和增添。上述多个实施例中的每一个实施例的特征都可根据情况与其他所述实施例的特征相组合,以便在相关的新实施例中提供多种特征组合。此外,虽然前文中对本发明的装置和方法的多个单独实施例进行了描述,但是,这些描述的单独实施例在本文中仅仅是本发明原理的说明性应用。例如,本文中使用的各种方向与方位用语(及其语法变体),如,“垂直的”、“水平的”、“向上”、“向下”、“底部”、“顶部”、“侧面”、“前”、“后”、“左”、“右”、“向前”和“向后”等仅作相对性用语,不能视为相对于固定坐标系的绝对方位(如,重力作用方向)。此外,一个描述的进程或处理器可与其他进程和/或处理器相结合或分为多个子进程或子处理器。该子进程和/或子处理器可根据本文中的实施例进行多种组合。同样地,本文中的任何功能、进程和/或处理器可以使用电子硬件、程序指令的非暂态计算机可读介质组成的软件或硬件及软件的组合来执行是显而易见的。因此,本说明书仅作示例之用,而并非旨在限制本发明的范围。

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