用于检测和减轻光学系统中的光学损伤的方法和装置与流程

文档序号:11142971阅读:806来源:国知局
用于检测和减轻光学系统中的光学损伤的方法和装置与制造工艺

本发明一般地涉及诸如可包括在机器视觉系统或其它光电子系统中的光学系统,并且特别地涉及检测和减轻光学系统中的机械不对准。



背景技术:

光学系统在各种行业中被广泛地使用。光电子系统特别地提供宝贵的监视和对象检测能力,包括在安全关键应用中。作为示例,可使用单相机或多相机成像系统来监视或“保护”工业机器人、金属压机或其它危险机器周围的区域,并响应于检测到人类正进入受保护的危险区域的侵入而提供应急停止信令。

许多机器视觉系统使用体视(stereoscopic)视觉或多相机成像,其涉及到具有重叠视场的两个或更多相机。通过从不同的视角观察相同的一个或多个对象,多个视图中的各个视图中的对象位置之间的观察到的差异(disparity)提供用于计算到那些对象的距离的基础。在示例性情况下,机器视觉系统使用体视图像处理来检测被监视区中的对象并计算到那些对象的距离。此类检测可以是安全关键的,诸如当被监视区表示工业机器周围的危险区域或体积且依赖于机器视觉系统以便检测对象进入被监视区域的侵入时。在这里,术语“对象”可以被宽泛地理解成包括人类。

机器视觉系统的准确度和总体性能取决于许多关键的机械对准。考虑例如图1,其描绘了可能包括在机器视觉系统的传感器头或其它相机组件内的示例性透镜6和图像传感器8(“成像器8”)。在适用制造精度和公差的极限内,相机组件固定透镜6和成像器8的相对定位,成像器8其可以是电荷耦合器件(CCD)或其它像素阵列。

在图2的背景下更好地理解这些关键对准,图2示出了关于透镜6的焦平面的成像器8的图像平面。在没有不对准问题的情况下,相机组件将图像平面平行于焦平面固定,并且将图像平面固定在距焦平面适当距离d处。

然而,由于老化、热膨胀、振动、冲击等,可引入各种类型的机械不对准,诸如成像器8在垂直于光轴的方向上相对于透镜6的相对移位或平移。这些横向移位(无论是由透镜6还是成像器8还是两者的移动引起的)使图像平面的光学中心或原点R从光轴移开且与焦平面的光学中心或原点O不对准。

此外,透镜6和/或成像器8可能沿着光轴移位。这些移位(被称为纵向平移)改变透镜6与成像器8之间的距离d。纵向平移有效地改变相机组件的放大率或焦距。

作为不对准的另一示例,成像器8可绕着光轴旋转。此类旋转有效地使图像投影从透镜6旋转到图像平面上。此外,透镜6和/或成像器8的任何相对倾斜将导致图像平面不再与焦平面平行。倾斜改变到图像平面上的图像投影,并且类似于另一个(前述不对准),降低机器视觉系统准确地处理从其相机获得的图像的能力。

在聚焦质量和/对比度的背景下出现其它问题。透镜6可具有例如聚焦质量轮廓,其中,透镜6的聚焦质量在透镜中心处最高且在透镜的边缘处最低。图3描绘了用于透镜6的示例性聚焦质量轮廓。

虽然透镜6的聚焦质量轮廓一般将使得透镜的最低聚焦质量是可接受的,至少在标称操作条件下,透镜6和/或成像器8上的朦胧、雾化、油污、灰尘等将降低在从成像器8获取的图像中看到的聚焦质量和/或对比度。诸如场景照明中的变化之类的其它环境变化也可使对比度或其它图像参数退化。



技术实现要素:

根据本文中的教导的一个方面,一种方法和装置在机器视觉系统的运行时操作期间检测机器视觉系统中的机械不对准,并且基于检测到的不对准来补偿图像处理,除非检测到的不对准过多。可通过基于它们来确定最坏情况误差来检测过多不对准。如果最坏情况误差超过定义极限,则机器视觉系统过渡至故障状态。故障状态可包括中断危险机器的操作或执行一个或多个其它故障状态操作。在检测到的不对准之中的是用于成像的单独相机内的内部不对准以及相机之间的相对不对准。该方法和装置还可执行焦点的运行时验证,并响应于检测到不足的聚焦质量而使机器视觉系统过渡至故障状态。

在示例性实施例中,在运行状态下操作的机器视觉系统实现一种方法,该方法包括从包括立体相机对并对包含一个或多个参考标记的场景进行成像的第一和第二相机获得一对图像或当前帧。本方法包括基于将当前参考标记位置与最初的参考标记位置相比较来估计第一和第二相机中和/或之间的机械不对准。在这里,根据当前帧来确定当前参考标记位置,而从存储在机器视觉系统中的设置数据而已知最初的参考标记位置。本方法进一步包括根据估计的机械不对准来计算用于由机器视觉系统进行的立体视觉处理的最坏情况误差,并且响应于确定最坏情况误差超过经定义的阈值而使机器视觉系统从运行操作状态过渡至故障操作状态。

在另一示例性实施例中,一种机器视觉系统包括接口电路,其被配置成从包括立体相机对并对包含一个或多个参考标记的场景进行成像的第一和第二相机获得图像。该机器视觉系统还包括处理电路,其被与接口电路操作地相关联,并且在机器视觉系统的运行状态操作期间,被配置成估计第一和第二相机中和/或之间的机械不对准。该估计是基于处理电路将当前参考标记位置与最初的参考标记位置相比较,并且处理电路被配置成根据所估计的机械不对准来计算用于由机器视觉系统进行的立体视觉处理的最坏情况误差。该处理电路进一步被配置成响应于确定最坏情况误差超过经定义的阈值而使机器视觉系统从运行操作状态过渡至故障操作状态。

当然,本发明不限于上述特征和优点。本领域普通技术人员在阅读以下详细描述时以及在观察附图时将认识到附加特征和优点。

附图说明

图1是相机组件内的示例性透镜和图像传感器的图,并且图示出其之间的关键机械对准。

图2是对应于图1的透镜和图像传感器的焦平面和图像平面的图,并且图示出透镜与图像传感器之间的机械对准的其它方面。

图3图示出用于相机透镜的示例性聚焦质量轮廓。

图4是图示出根据本文中的教导的机器视觉系统的一个实施例的框图。

图5是在机器视觉系统的运行时操作期间检测机械不对准的方法的一个实施例的逻辑流程图。

图6是在机器视觉系统的运行时操作期间检测机械不对准的方法的另一实施例的逻辑流程图。

图7是图示出适用于来自立体相机对的帧或立体图像对的不同坐标系之间的示例性关系的图。

图8是图示出被用来估计用于立体视觉处理的最坏情况误差的拐角位置确定的示例的图。

具体实施方式

图4是根据一个实施例的装置10的框图。在下文中称为“机器视觉系统10”的装置10包括控制单元12和一个或多个传感器头或SH 14。为了方便起见,仅图示出一个传感器头14。然而,在一个或多个实施例中,控制单元12可被通信耦合到两个或更多此类传感器头14,例如传感器头14-1、14-2等。

每个传感器头14提供多视图成像能力,例如体视成像能力。在本示例性实施例中,传感器头14(其也可称为相机头或相机单元)包括第一和第二相机组件16-1和16-2,其操作为立体相机对。相机组件16-1和16-2在下文中简单地称为相机16-1和16-2或者简单地称为“相机16”,除非为了明了起见需要后缀。

每个相机16包括包含一个或多个透镜的透镜组件18、被放置成与透镜组件18精确光学对准的成像器20,以及图像处理器22,其可以是被配置成操作成像器20、提供图像传感器数据的读出、控制曝光时间等的预处理器或其它处理电路。在下文中,将每个透镜组件18简单地称为“透镜18”,并且将每个图像传感器20简单地称为“成像器20”。

传感器头14还包括立体图像处理电路24,其可包括一个或多个基于微处理器、基于DSP、基于ASIC和/或基于FPGA的电路。宽泛地,立体图像处理电路24包括被配置成对由相机16-1和16-2捕捉的立体图像执行立体图像相关处理的数字处理电路。特别地,针对传感器头14包括超过两个相机16的情况,一个或多个实施例中的立体图像处理电路24更一般地执行多视图图像处理,诸如生成深度图、确定到被成像场景内的对象的距离等。

在示例性实施例中,立体图像处理电路24从相机16-1和16-2中的每一个接收连续图像,也称为“帧”。在这里,“帧”或“图像”包括针对给定图像捕捉的来自涉及到的成像器20的图像数据,例如像素数据。例如,立体图像处理电路24在连续捕捉间隔中的每一个期间接收一对图像,一个来自第一相机16-1且一个来自第二相机16-2。帧速率或捕捉速率确定由相机16捕捉新图像的速率。

立体图像处理电路24基于跨来自两个相机16-1和16-2的相应图像对执行相关处理来对捕捉图像执行3D测距。两个相机16-1和16-2可被沿着水平线布置在某个分隔距离处,以实现作为左图像和右图像相机的操作。针对相同的被成像对象或特征,在左图像与右图像中的像素位置之间看到的“差异”或位移提供用于确定3D测距信息的基础,如本领域普通技术人员所理解的。可将两个相机16-1和16-2之间的水平距离称为“基线”。

在一个或多个实施例中,立体图像处理电路24包括存储设备26或与之相关联。存储设备26将被理解为包括在非临时的基础上提供用于计算机程序28和配置数据30的一个或多个项目的非临时存储的一种计算机可读介质(例如,闪存或EEPROM)。在这里,“非临时”不一定意指永久性或不变的存储,并且可包括易失性存储,而是意味着一定定义的持久性的存储且不包括仅仅传播的信号。

在某些实施例中,立体图像处理电路24特别地适合于基于其执行计算机程序指令(包括计算机程序28)而执行在本文中讲授的相应处理。此外,配置数据30包括例如操作配置设置,诸如被用来定义监视边界或其它关键对象检测距离的3D距离或范围。

传感器头14还包括控制单元接口电路32,其将控制单元12通信耦合到传感器头14,从而允许传感器头14向控制单元12提供图像数据和/或导出的对象检测数据,并且允许控制单元12为传感器头14提供配置数据30和/或用来导出配置数据30的信息。当然,可在控制单元12与传感器头14之间载送其它信令,例如测试等。

控制单元12因此包括用于将控制单元12接合到本质上任何数目的传感器头14的相应一个或多个传感器头接口电路34。控制单元12还包括处理电路36,其在一个或多个实施例中包括提供用于计算机程序40和配置数据42的非临时存储的存储设备38或与之相关联。存储设备38包括计算机可读介质,诸如FLASH或EEPROM,其提供用于计算机程序40和配置数据42的非临时存储。

在这里,配置数据42可以是从用户(或用户设备)接收到的,或者可从此类信息导出的,并且其可与传感器头14中的配置数据30重叠或提供用于导出该配置数据30的基础。配置数据42包括例如监视区定义以及控制行为定义,例如定义控制单元12如何对由传感器头14所指示的对象检测进行响应,包括何时从控制单元12输出哪些控制信号。此类信令是从控制/安全接口电路44输出的,并且经由配置和/或监视接口电路来交换来自用户(用户设备,诸如膝上型计算机)的数据。

在某些实施例中,处理电路36包括一个或多个微处理器、DSP、ASIC、FPGA或其它数字处理电路。更宽泛地,处理电路36包括固定电路或编程电路以及固定和编程电路的某种组合。在至少一个实施例中,例如,在处理电路36包括一个或多个处理器或其它可编程电路的情况下,处理电路36特别地适合于基于其执行包括计算机程序40的计算机程序指令根据本文中的教导进行操作。

鉴于上述内容,传感器头14经由相机16-1和16-2的其立体成像对来提供用于重叠视场(FOV)50的成像。当然,机器视觉系统10可具有附加相机16,其还具有至少部分地重叠的FOV 50。配置数据42例如就定义有界区域或有界体积的3D范围或坐标而言定义一个或多个监视或危险区52。

可例如存在警告区和关键(critical)“停止”或停工区。例如,可将警告区定义为在距被机器视觉系统10监视的危险机器的六米的距离处开始并延伸至距机器两米的距离,在该距离处停工区开始。

在示例性配置中,在警告区内的坐标位置处检测到的对象引起机器视觉系统10输出一个或多个警告信号和/或记录相应检测数据等。相反地,在关键停止区内的坐标位置处检测到的对象引起机器视觉系统10输出一个或多个机器停止和/或其它安全关键信号。

请注意,FOV 50具有放置在其内部(例如在位于FOV 50内的底的一部分上)的一个或多个参考标记54。参考标记54(RM)可具有已知尺寸、形状、色彩和/或图案化,使得其被机器视觉系统10认为是RM 54。在至少一个实施例中,传感器头14中的立体图像处理电路24被配置成识别包括从相机16-1和16-2输出的立体图像对的像素数据中的RM 54。至少在其中图像数据被从传感器头14传送至控制单元12的实施例中,可在控制单元12的处理电路36中提供相同功能。配置数据30和/或42包括例如指示RM 54的已知或预期属性的信息,诸如尺寸、色彩、形状、图案细节以及在FOV 50内的位置,例如对应于RM 54的位置的坐标。

鉴于上述内容,在示例性实施例中,机器视觉系统10包括被配置成从第一和第二相机16-1和16-2获得一对图像的接口电路。在这里,该对图像包括当前帧,即来自相机16-1和16-2的当前立体图像对,其中一个图像来自第一相机16-1且一个图像来自第二相机16-2。在这里,假设第一和第二相机16-1和16-2对包含一个或多个RM 54的场景进行成像。

机器视觉系统10还包括与接口电路操作地相关联的处理电路。如果处理电路被合并在包含第一和第二相机16-1和16-2的传感器头14中,例如立体图像处理电路24,则接口电路将被理解为包括立体图像处理电路24和/或从成像器20读入图像数据的相应图像处理器22中的接口电路。如果处理电路被合并在控制单元12中,例如处理电路36,则接口电路将被理解为包括将控制单元12通信耦合到传感器头14的接口电路34。为了方便起见,参考这些可能性,处理电路将被称为“处理电路24和/或36”或者简单地称为“处理电路24、36”。两个命名都应被理解为表示“和/或”,除非根据上下文显而易见或叙述了不同的意义。

在机器视觉系统的运行状态操作期间,处理电路24和/或36被配置成基于将当前参考标记位置与最初的参考标记位置相比较来估计第一和第二相机16-1和16-2中和/或之间的机械不对准。当前参考标记位置是根据当前帧(即如在组成当前帧的图像数据中观察到的)确定的,并且从存储在机器视觉系统10中的设置数据得知最初的参考标记位置。配置数据30和/或配置数据42包括例如设置数据。

关于估计的机械不对准,一个或多个实施例中的处理电路24和/或36被配置成基于被配置成估计以下各项中的至少一项来估计机械不对准:每相机(per-camera)成像器移位、每相机放大率变化、相机之间的相对旋转以及相机之间的放大率比。每相机成像器移位估计虑及例如透镜18与成像器20之间的相对平移,其垂直于涉及到的相机16的光轴。每相机放大率变化说明(account for)透镜18与成像器20之间的距离的变化,即沿着光轴的平移,并且每相机放大率变化可以用来确定相机之间的放大率比。

虽然处理电路24和/或36的某些实施例被配置成估计所有上面识别的不对准,但还设想估计少于全部,诸如在处理电路24和/或36仅估计每相机成像器移位并补偿检测到的移位和/或相对于检测到的移位执行故障处理的情况。

在任何情况下,处理电路24和/或36进一步被配置成根据所估计的机械不对准来计算用于由机器视觉系统10进行的立体视觉处理的最坏情况误差。此外,处理电路24和/或36被配置成响应于确定最坏情况误差超过经定义的阈值而使机器视觉系统10从运行操作状态过渡至故障操作状态。定义的阈值例如是在配置数据30和/或42中定义的,并且最坏情况误差涉及机器视觉系统10的立体相关性能,使得相机16-1或16-2内或其之间的过多机械不对准引起机器视觉系统10过渡至故障操作状态。

在一个或多个实施例中,处理电路24和/或36被配置成在机器视觉系统10的经定义的响应时间内执行上述操作的获得、估计和计算。这里的经定义的响应时间与由机器视觉系统10执行的安全关键对象检测功能相关联。

在相同或其它实施例中,处理电路24和/或36被配置成基于每个帧重复获得、估计和计算的操作,除非在任何给定帧中计算的最坏情况误差超过经定义的阈值,或者机器视觉系统10的运行操作状态以其他方式被中断。

例如,机器视觉系统10可针对由立体相机对输出—或者来自与机器视觉系统10相关联的任何数目的立体相机对中的每一个—的每个帧检查机械不对准和最坏情况误差。根据此每个帧检查,处理电路24和/或36继续机器视觉系统10在运行状态下的操作,除非检测到过多最坏情况误差,或者发生另一故障,或者其它操作(诸如控制信令进入机器视觉系统10)指示应结束或中止运行状态操作。

在至少某些实施例中,处理电路34和/或36被配置成获得来自第一和第二相机16-1和16-2的一定数目的帧范围内的机械不对准的已过滤估计。相应地,处理电路24和/或36被配置成从已过滤估计获得已过滤最坏情况误差,并且如果已过滤最坏情况误差超过经定义的阈值,则使机器视觉系统10从运行操作状态过渡至故障操作状态。

例如,处理电路24和/或36被配置成基于被配置成获得一定数目的帧的范围内的已过滤参考标记位置并通过根据已过滤参考标记位置来计算第一和第二相机中和之间的机械不对准而获得机械不对准的已过滤估计而获得一定数目的帧范围内的机械不对准的已过滤估计。替换地,作为在一定数目的帧范围内对参考标记位置进行过滤的替代,处理电路24和/或36被配置成对在每个涉及到的帧中的估计的估计的机械不对准进行过滤,以获得已过滤机械不对准。

一般地,在本文中设想的至少一个实施例中,处理电路34和/或36被配置成获得来自第一和第二相机16-1和16-2的一定数目的帧范围内的机械不对准的已过滤估计。相应地,处理电路24和/或36被配置成根据已过滤机械不对准而补偿机器视觉系统10相对于第一和第二相机16-1和16-2的立体视觉处理。在至少一个此类实施例中,处理电路24和/或36被配置成通过使被机器视觉系统10在对从第一和第二相机16-1和16-2获得的图像对进行修正时所使用的一个或多个校准参数适应而补偿立体视觉处理。

一个或多个校准参数结合或取决于检测到的不对准,并且处理电路24和/或36更新被用于已修正坐标系中的第一和第二相机图像之间的差异确定和/或其它相关处理的相关存储值。因此,可针对检测到的成像器移位、检测到的相机中或之间的放大率变化以及检测到的相机之间的相对旋转的变化中的一个或多个来补偿第一和第二相机图像中的对象之间的“表观”差异。

虽然可以将图4理解为图示出用于机器视觉系统10的有利示例性布置,但可将处理电路的其它布置等用于获得并处理来自立体相机对的帧。因此,可以将在图5中看到的方法500理解为经由图4中所示的机器视觉系统10的固定和/或编程配置来实现,但是该示例是非限制性的,并且可以用其它电路布置来实现图5的处理。

此外,将认识到的是方法500中所示的一个或多个步骤或操作可按照除由图提出的顺序之外的顺序实现,或者可并行地执行,或者可在进行中(例如重复或循环)执行。事实上,在至少某些实施例中,在机器视觉系统10在运行状态下操作的同时基于每个帧而循环或重复方法500,并且相对于任何数目的立体相机对执行。

鉴于上述可能性,方法500包括从第一和第二相机16-1和16-2获得(方框502)的获得包括当前帧的一对图像。如前所述,相机16-1和16-2包括对包含一个或多个RM 54的场景进行成像的立体相机对。

方法500还包括估计(方框504)第一和第二相机16-1和16-2中和之间的机械不对准。估计处理是基于将当前参考标记位置与最初的参考标记位置相比较,其中,当前参考标记位置是根据当前帧确定的,并且最初的参考标记位置是根据存储在机器视觉系统中的设置数据而已知的。例如,可就色彩、尺寸、形状以及图案中的任何一个而言识别RM 54,并且将包括当前帧的像素或图像数据中的RM 54的观察到的x-y位置与RM 54的最初的x-y位置相比较。

机械不对准的估计(方框505)包括每相机不对准的估计(方框504A)和/或相机16-1和16-2之间的相对不对准的估计(方框504B),可将其称为“跨相机”不对准。例如,方框504A包括估计每个相机16-1和16-2的成像器移位和/或放大率变化。方框504B包括例如估计相机16-1和16-2之间的相对旋转和/或相机16-1和16-2之间的放大率比。

方法500还包括计算(方框506)用于由机器视觉系统10进行的立体视觉处理的最坏情况误差。根据所估计的机械不对准来计算最坏情况误差,并且方法500还包括响应于确定最坏情况误差超过经定义的阈值(来自方框508的NO)而使机器视觉系统10从运行操作状态过渡(512)至故障操作状态。另一方面,如果最坏情况误差被确定为在定义极限内(来自方框508的YES),则方法500包括继续机器视觉系统10的运行状态操作(方框510)。

图6图示出检测机器视觉系统10中的机械不对准并对其进行响应的另一实施例。可以将方法600理解为方法500的扩展或更详细版本。虽然不限于在图4中看到的机器视觉系统10,但将认识到的是图4的机器视觉系统10在一个或多个实施例中被配置成执行方法600。方法600基于每个帧而重复,并且可相对于一个或多个立体相机对中的每一个串行地或并行地执行。还应认识到的是方法600包括当前帧值的处理以及处理已过滤的和/或在先帧值。

在步骤1(方框602)处,方法600包括“跟踪”当前帧中的RM 54的位置。在这里,“跟踪”表示观察到的RM位置与预期RM位置的比较。观察到的RM位置是如在包括当前帧的图像数据中检测到的位置,而预期RM位置是例如从机器视觉系统10的最初的设置配置已知的最初的位置。

RM位置跟踪可使用已修正坐标来完成。在这里,可注意到的是每个相机16具有相机坐标系,可将其称为“原始”或“畸变”坐标系,因为其包括透镜畸变等效应。因此,当参考从任何给定相机获取的任何给定图像时,将认识到的是图像可在畸变坐标系中或在无畸变坐标系中或者在已修正坐标系中。基于表达涉及到的相机透镜的已知或表征畸变的配置数据,可将畸变坐标系中的图像变换成无畸变坐标系。此外,可将无畸变坐标系中的图像变换到已修正坐标系中,该已修正坐标系被用来修整立体图像对中的左图像和右图像,使得两个图像具有相同的水平参考系。

处理继续进行步骤2(方框604),其也表示相对于当前帧的每帧处理,并且包括子方框604A、604B和604C。总体上,方框604表示“损失”测试,其中机器视觉系统10确定从检测到的机械不对准产生的最坏情况误差是否超过适用的误差预算所允许的误差。在这里,可将术语“损失”理解为机器视觉系统10对象检测能力的损失,至少相对于某个指定水平的检测性能,诸如用最小对象尺寸、距离检测准确度等表示的。

损失测试是基于检测机械不对准,包括垂直于和沿着光轴两者的每相机成像器移位。损失测试还包括确定相机之间的放大率比(即两个相机16-1和16-2之间的放大率的失配)和相机16-1和16-2之间的相对旋转。这些估计然后被用来确定用于由机器视觉系统10进行的立体视觉处理的最坏情况误差,并且确定最坏情况误差是否超过定义极限(方框604B)。

如果是这样(来自方框604B的YES),则处理继续至方框604C,在那里,机器视觉系统10从运行操作状态过渡至故障操作状态,其为本示例性方法中的“机器停止”条件。在这里,“机器停止”表示其中使用机器视觉系统10来保护或监视制造设备或其它机器的项目周围的区域或体积,并且响应于在机器周围定义的距离或边界内的对象的侵入且响应于检测到检测能力的损失或其它故障而将机器停止的示例性情形。

假设方框604的处理遵循从方框604B到方框606中的“NO”路径,方法600继续进行方框606A所表示的处理,其包括针对“退化”的不对准和放大率测试。也就是说,方框604表示针对机器视觉系统10的检测能力损失的测试,例如相对于某些定义性能要求(诸如最小对象尺寸、最小距离估计准确度等)的检测能力的损失。相反地,方框606表示针对机器视觉系统10的检测能力退化的测试。

可以将这些退化理解为引起在针对机器视觉系统10定义的误差预算所允许的公差内的误差。在这里,“误差预算”包括其每个由机器视觉系统10的图像获取和处理流程中的不同组件或操作引起的许多组成误差。将理解的是本文讨论中的机械不对准全部对误差预算内的组成误差有所贡献。

此外,虽然在方框604中讨论的损失测试关于每帧值(即关于机械不对准和结果产生的最坏情况误差计算)进行操作,但作为基于在当前帧中观察到的RM位置,在方框606中讨论的退化测试使用已过滤值进行操作,或者另外使用来自当前帧和一个或多个先前帧的值。在这里,“值”一般地被用来指代以下各项中的任何一个或多个:跟踪的RM位置、检测到的机械不对准、估计最坏情况误差以及在此类计算中使用的任何中间值。

虽然方框604在机器视觉系统10的经定义的响应时间(RT)内检测检测损失并对损失做出反应,但作为非限制性示例,方框606的测试一般用完较长的持续时间(诸如在图中表示的五秒(5S))。在这里,机器视觉系统10的“响应时间”是其在检测到对象侵入到危险区域中和/或检测到检测能力的损失与关联的被保护机器的关断之间必须呈现的经定义的反应时间。

在方框606的一个示例性实施方式中,机器视觉系统10将针对当前帧计算的最坏情况误差与针对在先帧(例如来自过去的一定秒数的帧)计算的最坏情况误差相比较(方框606A)。如果两个最坏情况误差之间的差超过经定义的阈值(来自方框606B的YES),则机器视觉系统10从运行操作状态过渡至故障操作状态。可以将此处理理解为检测逐渐增加的误差并对其进行响应。

另一方面,如果不存在故障(来自方框606B的NO),则处理继续进行方框606D中的系统误差消除。系统误差消除使机器视觉系统10在其立体视觉处理中使用的一个或多个参数适应。例如,为了确定到存在于FOV 50中的对象的距离,机器视觉系统10确定从相机16-1和从相机16-2观察的对象之间的立体差异。在这里,“立体差异”是两个图像中的相应点之间的位置的差。在机器视觉系统10的初始设置时,立体差异取决于两个相机16之间的实际间隔(“基线”)及其相对角度或定位。宽泛地,配置数据准确地捕捉或说明初始的总体相机对准。

在设置时确定或加载的校准参数然后被机器视觉系统10在其后续的运行状态机器视觉处理期间(例如在修正立体对中的图像时和当计算立体差异时)使用。然而,关键地,校准参数随着在机器视觉系统10的后续操作期间出现机械不对准而变得不准确。

因此,在方框606D中,机器视觉系统10响应于检测到相对于设置条件的机械不对准而更新其校准参数中的一个或多个。例如,机器视觉系统10保持或更新反应相机之间的相对旋转角(例如,以度为单位)的参数并使用检测到的相对旋转角来补偿图像修正。在这里,可以将图像“修正”理解为使得来自立体相机对的左图像和右图像相对于相机之间的基线而言共面,即所有极线(epipolar line)平行于由相机16之间的基线确立的横轴。

通过连续地或重复地估计相机16-1和16-2之间的相对旋转角,机器视觉系统10可以保持用于表示或关于相对旋转角的校准参数的已更新值。对于相机之间的放大率中的失配和放大率比而言同样如此。此外,可将例如可用图像坐标或像素行-列值表示的x-y偏移值保持在配置数据30和/或42中,以捕捉检测到的成像器移位,并且可使用此类值来补偿立体差异计算等。

特别地,一个或多个实施例中的机器视觉系统10在其系统误差消除处理中使用过滤。也就是说,作为基于与一个帧相关联的值来更新校准参数的替代(该值可能有噪声),机器视觉系统10可使用已过滤值。例如,机器视觉系统10使用已过滤RM位置(例如,在一定数目的帧(例如100个帧)内观察)来计算机械不对准,并且基于那些不对准进行其校准参数更新。替换地,作为对观察到的RM位置进行过滤的替代,机器视觉系统10跨一定数目的帧对机械不对准进行过滤,并且基于已过滤机械不对准进行其校准参数更新。

还看到图6在方框608中包括焦点测试,方框608包括方框608A、608B和608C。在方框608A中,机器视觉系统10执行焦点测试。如果焦点测试失败(来自方框608B的YES),则处理继续进行机器视觉系统10从运行操作状态过渡至故障操作状态。如果焦点测试通过(来自方框608B的NO),则处理在运行操作状态下继续。可在例如被用于方框606的时间帧内(即比机器视觉系统10的基础响应时间要求更缓慢地)执行方框608,并且其可将已过滤值用于此类测试和/或可在抛出故障之前要求一定次数的失败。

在焦点测试的一个示例中,应理解的是RM 54具有促进焦点测试的一个或多个视觉属性,诸如色彩、形状、图案、与背景的对比度等。相应地,为了检测不聚焦(out of focus)条件,机器视觉系统10在一个或多个实施例中:(1)计算在对应于每个RM 54的图像数据中观察到的高频图像分量的量,该RM可在策略上被置于场景中从而出现在图像拐角处或附近;并且(2)估计图像中的最坏模糊效果的程度。如果该程度超过被定义为可容忍的水平,则机器视觉系统10从运行状态过渡至机器停止或其它指定故障条件。

此外,为了放松对在被成像场景内的RM放置的要求,机器视觉系统10在一个或多个实施例中:(1)存储表征涉及到的相机透镜的散焦分布的信息(通过设计得知或者由出厂表征);并且(2)根据在图像内的某个RM位置处测量的实际散焦水平来估计最坏散焦水平。也就是说,机器视觉系统10可使用涉及到的透镜的焦点轮廓根据正在图像中的哪里评估焦点而评估焦点质量。

为了以更详细的方式且在一个或多个示例性实施例的背景下更好地理解上述处理,考虑图7。针对立体对中的相机16中的第一个或主要的一个,图描绘了已修正坐标系和用于已修正图像的x-y维度的相应符号。该图进一步描绘了针对主要相机的无畸变坐标系和用于无畸变图像的相应符号。此外,该图描绘了畸变或原始图像坐标系和用于畸变图像的x-y维度的相应符号。针对成对相机16之中的第二个或副的一个给出了相应坐标系和维度表达式,其中,用针对“副”的“s”而不是针对“主要”的“p”来对这些项加上标。

由涉及到的相机16提供的图像最初在那些相机16的畸变坐标系中。针对对象检测及其它处理,机器视觉系统10将图像从畸变坐标系变换到相应无畸变坐标系,并且然后从无畸变坐标系到已修正坐标系。

当在本公开的上下文中提及“图像”时,图像可采取任何上述坐标系和/或可在一个坐标系中对图像执行某些操作,同时对该图像执行其它操作,但是在将其变换到另一坐标系之后。因此,可将来自给定相机16的当前帧中的给定图像输出称为原始或畸变图像或者称为无畸变图像或者称为已修正图像,全部取决于哪个坐标系在该特定时间或在视觉处理流程中的特定点处可用。

例如,在本文中设想的一个或多个实施例中,机器视觉系统10使用已修正图像来跟踪RM位置,但是使用无畸变图像来估计立体相机对中的相机16之间的相对旋转。因此,当处理组成由相机16-1和16-2的立体对输出的当前帧的图像对时,机器视觉系统10将该图像对变换成其相应的无畸变坐标系,并且使用无畸变图像来估计相机16-1和16-2之间的相对旋转。然而,机器视觉系统10使用已修正坐标系来确定来自每个相机16-1和16-2的图像内的RM位置的移位的表观移动。

坐标系之间的变换是基于上述配置数据30和/或42,其包括上述校准参数,包括被用于图像修正的那些参数。因此,根据适用关系,可以将已修正图像中的RM位置变换成无畸变坐标系和畸变图像坐标系。

更详细地,3D相机坐标与图像坐标K之间的关系是固有相机矩阵,并且可以定义为。这里,f是焦距【像素】,【像素】是相机16的主点。W 每个图像坐标具有其自己的K。坐标系中的3D位置被如下用K投射到图像坐标。此转换使用针孔相机模型。

针对每个相机16,用赋予坐标系之间的相对旋转的旋转矩阵R来表示已修正坐标系与无畸变坐标系之间的关系。此外,为了从主相机16-1的无畸变坐标系投射或转换成副相机16-2的无畸变坐标系,可使用转换矢量t。在这里,矢量t表示主相机16-1的无畸变坐标系的原点与副相机16-2的无畸变坐标系的原点之间的移位。因此,可以如下使用这两个参数使3D坐标可在两个相机16-1和16-2的无畸变坐标系之间变换:

关于无畸变坐标与已修正坐标之间的关系,仅定义相对旋转,因为已修正坐标是使得属于立体相机对的图像相互平行的虚拟坐标。关于无畸变图像与畸变图像之间的关系,用适用的透镜畸变模型和畸变系数k和p来表示该关系。系数对应于径向畸变。系数对应于切向畸变。

因此,可以如下将无畸变图像坐标转换成畸变图像坐标:

当在相机16-1和16-2中或之间发生机械移位时,诸如在图4的示例中看到的,可以假设映射到机器视觉系统10所使用的一个或多个校准参数的变化。相应地,图8图示出基于使用“拐角移动矢量”来确定用于由机器视觉系统10进行的立体视觉处理的最坏情况误差的示例性方法。

首先,机器视觉系统10从立体相机对16-1和16-2获得帧,即包括左图像和右图像或主图像和副图像的一对图像。机器视觉系统10将那些图像变换成涉及相机16-1和16-2的已修正坐标系,确定已修正图像中的观察到的RM位置相对于从设置开始的其最初的位置之间的差,并且使用那些差来确定每相机不对准,包括成像器20相对于相机16的光轴的垂直移位或偏移和相机16的放大率比。可相对于在设置时已知或确定的相应参数来确定或表示这些检测。

机器视觉系统10基于每相机放大率确定来确定相机16-1和16-2之间的相对放大率比,并且进一步确定相机16-1和16-2之间的相对旋转。在这里,相对旋转的估计是基于机器视觉系统10将观察到的RM位置从已修正坐标系变换成相应无畸变坐标系。机器视觉系统10使用机械不对准的这些估计(即每相机移位)以及根据其RM位置跟踪确定的跨相机放大率比和相对旋转,以估计用于由机器视觉系统10进行的立体视觉处理的最坏情况误差。

特别地,机器视觉系统10在一个或多个实施例中使用“拐角移动矢量”来估计最坏情况误差,因为可预期立体差异误差对于图像拐角而言将处于其最坏情况。看图8中的主相机列时,拐角移动矢量处理从“点A”开始,其是已修正坐标系中的拐角位置。机器视觉系统10将来自已修正坐标系的点A变换成主相机16的无畸变坐标系中的“点B”,并且将点B变换成主相机16的畸变坐标系中的“点C”。

机器视觉系统10然后将针对主相机16确定的每相机不对准应用于点C,这具有将点C移位至畸变坐标系中的“点D”的效果。从那里,机器视觉系统10将点D变换回到无畸变坐标系(作为“点E”),并且将点E变换到已修正坐标系作为“点F”。

机器视觉系统10然后在主相机16的已修正坐标系中基于点A与点F之间的x-y位置差来计算第一拐角移动矢量。可将点A表示为,并且可将点F表示为。因此,可将第一拐角移动矢量表示为

机器视觉系统10还计算第二拐角移动矢量,其不仅考虑到副相机16的每相机不对准,而且考虑到主相机与副相机16之间的相对旋转。首先,机器视觉系统10将点B从主相机16的无畸变坐标系投射到副相机16的无畸变坐标系中,以获得“点H”。可将点B表示为,并且可将点H表示为,并且将理解的是通过应用上文所解释的变换(被针对由机器视觉系统10基于观察的RM位置的其评估而确定的相对旋转进行调整)而获得。

机器视觉系统10然后对副相机16的无畸变坐标系内的点H进行移位以获得“点I”。特别地,根据主相机和副相机16之间的检测到的相对旋转来对点H进行移位。机器视觉系统10然后将点I变换成第二相机16的畸变坐标系中的“点J”。机器视觉系统10然后将点J移位至畸变坐标系中的“点K”,其中,根据由机器视觉系统10针对副相机16确定的每相机不对准来计算移位。处理继续进行机器视觉系统10将点K变换到副相机16的无畸变坐标系中,以获得“点L”。点L然后被变换到副相机16的已修正坐标系中,以获得“点M”。机器视觉系统10进一步基于将点H从副相机16的无畸变坐标系变换到副相机16的已修正坐标系中而获得副相机16的已修正坐标系中的“点N”。

点N并未说明主和副相机16之间的相对旋转,并且替代地说明没有任何机械不对准的情况下的相应拐角“移动”。然而,点M说明主相机和副相机16之间的相对旋转和副相机16的每相机不对准两者。根据点M和N的x-y位置的差来计算第二移动矢量。如果将点M表示为并将点N表示为,则可将第二拐角移动矢量表示为

因此,可以将用于在机器视觉系统10的设置时存在的不对准的极线误差和差异表示为:

其中,按照在设置条件期间的计算,是图8中的点A且是图8中的点N。机器视觉系统10的运行时操作期间的这些不对准的范围或性质的变化改变极线误差和差异。因此,可以将用于机器视觉系统10的运行时操作期间的任何点的极线误差和差异表示为:

其中,是图8中的点F,并且是图8中的点M。

因此可以将运行时操作期间的用于由机器视觉系统10进行的立体视觉处理的最坏情况误差理解为相对于机器视觉系统10的设置条件而言的极线误差和差异的变化或差。就这些项而言,可以将最坏情况误差表示为:

通过简单替代,可看到是第一拐角移动矢量与第二拐角移动矢量之间的差,即:

因此,相对于图5的方框508中的讨论中的每帧处理和/或相对于图6中的方框604的每帧处理,将理解的是在一个或多个实施例中,机器视觉系统10确定机械不对准,其中,短语“机械不对准”在这里并不意图宽泛地涵盖本文所述的每相机和跨相机(相机之间)不对准和差,并且然后使用那些确定的机械不对准来计算第一和第二拐角移动矢量,并且然后使用那些拐角移动矢量来计算最坏情况误差。

然而,此每帧误差确定在一个或多个实施例中被配置成对帧间变化进行操作。例如,可使用“t-n”来表示具有机械不对准的“有效”确定的前一帧,并且使用“t”来表示当前帧。然后,假设用于当前帧的机械不对准确定也是有效的,可以执行关于用于当前帧的最坏情况误差是否在容许极限内的确定作为表示为下式的帧间变化确定:

其中,n例如在在紧接地前面的帧有效的情况下等于1,或者在其有效之前的帧的情况下等于2,以此类推。

因此,在某些实施例中,根据确定最坏情况误差中的帧间变化是否在定义极限内来进行方框508中的YES/NO判定和/或方框604B中的YES/NO判定。多个其它评论适用于用于故障检测的这种方法。

首先,基于跟踪帧间变化的故障检测本身并未虑及缓慢变化不对准。因此,图6的方框606B中的故障检测可以例如执行相同类型的变化评定,但是可将用于当前帧的最坏情况误差与来自在过去更远(例如来自三秒前)的帧的最坏情况误差相比较。当然,可在方框606B中使用过滤来计算最坏情况误差值,但是尽管如此,通过将在当前帧中确定的最坏情况误差与较早(例如早90或100个帧)确定的最坏情况误差相比较,机器视觉系统10也检测逐渐的变化中的不对准并对其进行响应。

其次,在确定帧间变化的上述说明中,应注意的是使用“有效”帧。如果针对该帧进行的机械不对准确定在定义极限内,则可认为该帧是有效的,并且可将那些极限定义为Δ(delta)或允许偏移,其可以被用来确定在任何给定帧中确定的机械不对准是否过大,或者表示如此大的变化以致于被认为对于由机器视觉系统10使用而言是不准确的。

鉴于上述内容,在一个或多个实施例中且在参考图8中看到的点标记,处理电路24和/或36被配置成根据相机16-1和16-2的立体对中的第一相机16-1的成像器移位和放大率变化来计算第一拐角移动矢量,根据第二相机16-2的成像器移位和放大率变化来计算第二拐角移动矢量,并且进一步根据第一和第二相机16-1和16-2之间的相对旋转和放大率比,确定第一和第二拐角移动矢量之间的差,并且将该差与对应于从设置数据已知的最初的第一和第二拐角移动矢量的参考差(例如,上文所解释的确定)相比较。

上述处理是基于处理电路24和/或36基于被配置成通过将用于第一相机16-1的最初的图像拐角位置(点A)从已修正坐标系变换到第一相机16-1的无畸变坐标系中(点B)且从无畸变坐标系变换到第一相机16-1的畸变坐标系中(点C)来获得变换拐角位置(点F)而计算第一拐角移动矢量。在这里,第一相机16-1的畸变坐标系是用于第一相机16-1的原始坐标系,其反应第一相机16-1的透镜畸变。

处理电路24和/或36进一步被配置成根据用于相机16-1的估计的机械不对准和变换拐角位置(点C)来计算用于第一相机16-1的移动拐角位置(点D),并通过将经移动的拐角位置(点D)从第一相机16-1的畸变坐标系变换回到已修正坐标系(即,到点E且然后到点F)中来获得用于第一相机16-1的变换移动拐角位置(点F)。从那里,根据变换移动拐角位置(点F)与最初的图像拐角位置(点A)之间的差来计算处理电路24和/或36被配置成将第一拐角移动矢量。

此外,处理电路24和/或36被配置成基于被配置成通过基于将用于第一相机16-1的最初的图像拐角位置(点A)从第一相机16-1的已修正坐标系变换到第一相机16-1的无畸变坐标系中且将变换拐角位置(点B)投射到第二相机16-2的无畸变坐标系中来获得变换拐角位置(点 B)而获得投影拐角位置(点H)以计算第二拐角移动矢量。

处理电路24和/或36然后通过将投射拐角位置变换到第二相机16-2的已修正坐标系中来获得第二变换拐角位置(点N),并且通过根据第一和第二相机16-1和16-2之间的相对旋转来使经投射的拐角位置(点H)移位并在所述移位之后将投影拐角位置(点I)变换到第二相机16-2的畸变坐标系中(点J)来获得第三变换拐角位置(点I)。

处理电路24和/或36然后根据针对第二相机估计的估计成像器移位和估计放大率变化来使第三变换拐角位置(点J)在畸变坐标系内移位(这产生点K),并且然后通过在第二相机的畸变坐标系中的所述移位(点K)之后将第三变换拐角位置变换到第二相机16-2的无畸变坐标系中(点L)且然后到第二相机16-2的已修正坐标系中(点M)来获得第四变换拐角位置(点M)。根据第二变换拐角位置(点N)与第四变换拐角位置(点M)之间的差来计算处理电路24和/或36然后将第二拐角移动矢量。

并且,如所述,处理电路24和/或36在一个或多个实施例中被配置成评估当前帧或一定数目的帧,以检测RM 54的模糊并响应于检测到超过经定义的阈值的模糊水平而使机器视觉系统10从运行操作状态过渡至故障操作状态。模糊可由透镜劣化和/或均匀污染(诸如灰尘、油等)而引起。在至少一个此类实施例中,处理电路24和/或36被配置成根据涉及到的一个或多个图像内的RM 54的位置和针对第一和第二相机16-1和16-2的透镜18已知的相应焦点质量轮廓来使经定义的模糊阈值适应。

此外,机器视觉系统10可被配置成要求在被相机16-1和16-2的立体对成像的场景中存在一定数目的RM 54。在此类实施例中,处理电路24和/或36被配置成例如在每个帧中评估图像数据,确定最小所需数目的RM 54是否可见,并且如果不可见,则从运行操作状态过渡至故障操作状态。

特别地,已受益于在前文描述和关联附图中提出的教导的本领域的技术人员将想到所公开发明的修改及其它实施例。例如,本文中的教导适用于任何数目的立体相机对以及超过两个相机的使用,例如,其中,具有重叠视场的三个、四个或更多相机中和之间的不对准被用于3D测距和对象检测。

因此,要理解的是本发明不限于公开的特定实施例,并且修改及其它实施例意图被包括在本公开的范围内。虽然在本文中可采用特定术语,但其仅是在一般且描述性的意义上使用而不是出于限制的目的。

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