用于分析物体轮廓图像的方法与图像处理装置,用于检测物体的方法与图像处理装置...的制作方法

文档序号:6497270阅读:154来源:国知局
专利名称:用于分析物体轮廓图像的方法与图像处理装置 ,用于检测物体的方法与图像处理装置 ...的制作方法
技术领域
本发明涉及一种用于分析轮廓图像的方法。
本发明还涉及一种用于检测图像中物体的方法。
本发明还涉及一种用于分析物体轮廓图像的图像处理装置。
本发明还涉及一种用于检测图像中物体的图像处理装置。
本发明还涉及一种包括一个或多个所述图像处理装置的工业视觉设备。
本发明还涉及一种包括一个或多个所述图像处理装置的智能相机。
本发明还涉及一种包括一个或多个所述图像处理装置的图像显示器。
本发明还涉及一种包括所述工业视觉设备的安全系统。
本发明还涉及一种计算机程序产品,包括使得处理器能够执行至少一种所述方法的代码。
在现有技术中,存在分析图像的方法,特别是为了检测这些图像中的物体的方法。例如在一个产品线中,必须将次品重路由到一个手工修复单元而不是继续沿着主线前进,这必须通过分析相机捕获的图像来自动地完成。可以通过将捕获的图像与一个灰度值像素模板进行关联来检测物体。这些灰度值关联方法的一个缺点在于它们常常由于例如光照效果特别是强光照射而产生不正确的结果。其它被设计用来克服这些问题的物体检测方法基于物体轮廓来检测物体。如果一个轮廓在形状上充分地富有特征,并且足够大的部分未被遮挡,那么这些方法工作良好。通常,通过应用诸如边缘检测的操作,将捕获的图像转换成一种轮廓图像。所述轮廓接着可被变换成某种表示(例如通用变换轮廓曲率表示)并被分析。用于检测轮廓的直接方法是使用一个匹配函数将假定落在被搜索物体的轮廓上的轮廓图像的像素与模板轮廓窗口中的像素进行匹配。如果轮廓图像中的大量像素落在模板轮廓轨迹上,匹配函数产生一个高值,指示已经发现一个模板轮廓。所有低于预定接受门限的值表面了在正被测试的轮廓图像中当前位置可能没有期望类型之物体。
这些基于匹配物体轮廓的现有技术之物体检测方法的一个缺点在于基本上对于轮廓图像中的每个像素,都必须通过匹配来检验每个模板的存在。即使仅仅搜索一个物体,但该物体可能例如以十个不同方向和十个不同比例出现,这意味着对于轮廓图像中的每个像素(在工业视觉应用中,轮廓图像可能包含例如4000×3000个像素),必须匹配成百上千个模板。如果匹配函数对模板与轮廓图像中像素之差的绝对值进行相加,并且模板轮廓窗口包含例如5000个有关的像素(这对于良好成像的物体轮廓是典型的,它占据了轮廓图像的很大部分),这几百个模板匹配每个都需要5000个减法操作。这使得基于轮廓匹配的物体检测成为一种非常缓慢的方法,因此无法用于许多实时应用。在今后,当工业视觉系统变得很通用时,例如用于机器人设备,其必须在典型家庭中众多物体之间寻找路线,必须同时检查几个物体。
本发明的一个目的是提供一种用于物体检测的分析轮廓图像的方法,该方法相对较快。
这个目的得以实现,是在于所述分析轮廓图像的方法包括-指定一条由轮廓图像中位置构成的扫描路径,每个位置对应于一个感兴趣区;-构造第一表格,该第一表格为所述轮廓图像中每个非零值像素包含至少一个位置坐标;-构造其表项与所述感兴趣区之位置相对应的第四表格,该第四表格为每条具有预定方向并穿越所述感兴趣区的像素构成的平行线包含至少一个所述第一表格中一个表项的索引,对于给定的一个扫描方向,该第一表格中的表项对应于落在该平行线上并且处于所述感兴趣区内部的所述轮廓图像之第一个非零像素;以及-构造其表项与所述感兴趣区之位置相对应的第五表格,该第五表格为每条具有预定方向并穿越所述感兴趣区的像素构成的平行线包含至少一个关于所述第一表格中一个表项的索引,对于给定的一个扫描方向,该第一表格中的表项对应于落在该平行线上并且处于所述感兴趣区内部的所述轮廓图像之最后一个非零像素。
用于物体检测的方法无法避免检查整个轮廓图像来判断期望物体的存在。即使轮廓图像的一小部分未被检查,也可能发生这种情况期望的物体恰恰就在这部分中,因而所有执行的操作都白执行了。然而,所述方法可被优化从而使得它执行尽可能少的无关工作。本发明所基于的一个见解在于与模板轮廓上的像素数量相比,如果一个区域没有包含足够多的像素,那么就可以避免更多高昂的匹配验证。此外,由于图像的连续本质,有可能跳过许多匹配位置,因为可能需要许多行(或列)才能到达所需的像素数量。然而,为分析轮廓图像区域的精细结构以及像素数量会引入更加昂贵的操作,在按照本发明的方法中,优选地,将这个操作量保持得较低。按照本发明的分析物体轮廓图像之方法(该方法被设计用在物体检测方法中),构造了一种简单的表格数据结构,其允许对轮廓像素或一般地感兴趣的像素进行快速计数(例如,通过在轮廓图像上进行距离变换会产生更多像素)。
因此,在窗口中引入了一条扫描路径,例如Z字形对角扫描,或沿着希尔伯特分形,或从上到下从左到右。所述扫描路径使得基本上分析了在相应感兴趣区中的轮廓图像中的所有像素位置。在只有相机捕获之图像的部分可能包含期望之物体的情况下,这部分可被称为轮廓图像。在第一表格中,所有非零(轮廓像素或一般地,感兴趣的像素)像素被包含并被给与至少一个坐标。注意不应该赋予术语“非零”特别的重要性,因为这仅仅反映了按照本发明之方法的最直接实现,使得该方法被更容易更清楚地描述。通常,非零应当被解读为不等于一个预定第一值,以便覆盖微小的修改,例如,其中向轮廓图像的所有值添加了一个常数值,例如3。
例如,一个图像被按行扫描(如在电视系统中),则存在关于所有像素的一个一维自然序,因此,假定考虑所有行(在本方法的一个实施例中,这是通过如果在一行中没有非零像素则插入一个“非数字(NaN)”码来实现的),一个x坐标就足够了(当然,同样可以使用y坐标,这对应于轮廓图像的90度旋转)。
对至少所有穿越感兴趣区(对应于用于匹配的模板轮廓窗口的大小)的平行线上的第一个以及最后一个非零像素建立索引表使得统计像素很容易。可以由45度向下倾斜的直线来构成感兴趣区,例如,第一条直线仅仅穿越感兴趣区1个像素,第二条直线2个像素,等。扫描方向例如可以从左上到右下。第一个遇到的非零像素可以例如是第五条直线上的第2个,最后一个可以是第5个。通过使用第一表格中的索引而不是像素坐标,可以进行快速统计。如果感兴趣区被划分成水平的行,这将更加容易理解。这样第一个像素可以在一行的像素3上,最后一个像素在像素10上。仅仅从10中减去3并不会可靠地指示出该行上有8个非零像素,因为在中间可能有零像素。对第一表格(仅仅包含所有非零像素)中表项的索引相减的确可以给出该行上像素的数量。通过对所有行上的计数进行相加,可以获得感兴趣区中像素的总体数量。第四和第五表格分别提供了第一个和最后一个像素,以便获得所有穿越这些行的直线上的部分计数。在后文中,感兴趣区的位置被解释为其左上像素的(x,y)坐标,虽然可以由其它方式来定义,例如,中心像素的坐标。
所述分析轮廓图像之方法的实施例包括-指定由沿着一列向下并随后跳到下一列的连续位置构成的扫描路径;-构造第一表格,该第一表格为轮廓图像中每个非零像素包含至少一个位置坐标;-构造第四表格,该第四表格至少为穿越感兴趣区的每条水平像素线包含一个第一表格中表项的索引,所述表项对应于落在相应水平线上并位于感兴趣区内部的轮廓图像之最左侧的非零像素;以及-构造第五表格,该第五表格至少为穿越感兴趣区的每条水平像素线包含一个第一表格中表项的索引,所述表项对应于落在相应水平线上并位于感兴趣区内部的轮廓图像之最右侧的非零像素。
正如上面已经解释的,以类似电视的方法来扫描轮廓图像,例如在相邻的列上向下扫描,是一个概念上简单的确保整个轮廓图像被处理的方法。此外,表处理很简单。然而在有些应用中,可能更希望其它扫描路径,例如按行向右扫描图像然后跳到下一行的开头是与当前的电视扫描标准兼容的,因此对于实时处理这种到达的电视信号是有利的。
所述分析轮廓图像的方法的另一个实施例包括-构造第二表格,该第二表格为轮廓图像的基本上每条水平线包含一个第一表格中表项的索引,所述表项对应于轮廓图像在该水平线上最左侧的非零像素;以及-构造第三表格,该第三表格为轮廓图像的基本上每条水平线包含一个第一表格中表项的索引,所述表项对应于轮廓图像在该水平线上最右侧的非零像素;以及-在第一表格、第二表格和第三表格的基础上构造第四表格和第五表格。
如果如前所述沿着相邻的列来执行扫描,可以实现一个更加快速的优化。不是为感兴趣区的每个(垂直)位置计算一个新的第四和第五表格(在这些列仅仅包含位于当前感兴趣区中最左侧和最右侧的点的情况下),而是为每个相邻的列扫描(即为当前列位置上的所有行)计算一次第四和第五表格。此外,可以很容易地从为整个轮廓图像的每一行包含最左侧和最右侧像素的第二和第三表格来获得它们。
一种在轮廓图像中检测物体的方法如果还包括以下内容,则能够充分利用所述分析方法-基于第四和第五表格,为沿着扫描路径的连续位置计算位于感兴趣区内的大量非零像素的计数;以及-如果该计数大于或等于一个预定的像素数量,利用感兴趣区内的像素和模板轮廓窗口中的像素作为参数,计算一个匹配函数来获得对模板轮廓与出现在感兴趣区内的轮廓图像的像素之间的匹配的指示;或者-如果该计数小于预定的像素数量,则沿着扫描路径执行一个到下一位置的跳转。
如上面所解释的,不需要考虑具有过少轮廓点的区域,即通过跳转向一个相邻位置可以避免昂贵的匹配。相邻位置并不意味着沿着扫描路径其坐标变化必然为一的位置。它们仍然是沿着扫描线的位置,但可以向前跳转3个坐标。
借助一个在轮廓图像中检测物体的方法的实施例,可以实现进一步的图像处理速度增长,对于该实施例,要被检验的模板轮廓是模板轮廓窗口中模板轮廓的一个几何变换,包括
-在轮廓图像中的一个位置为模板轮廓窗口中的一个像素获取相应的像素,该位置由模板轮廓窗口中该像素的位置以及所述几何变换确定;以及-基于模板轮廓窗口中的像素与所述相应像素之间的相似性来计算匹配函数。
只有轮廓的一个子集需要被检验,并且如果应用需要可以作更加精细的匹配(例如为了获得一个物体确切的朝向角度)。
所述检测物体的方法可被直接应用在例如从相机获得的图像上,通过在分析轮廓图像之前对所述图像进行轮廓检测而获得轮廓图像。
本发明的第二个目的是提供一种用于分析轮廓图像以进行物体检测的相对较快的图像处理装置。
所述图像处理装置包括-第一单元,被安排用来在感兴趣区的轮廓图像内的扫描路径上指定一个位置;以及-第二单元,被安排用来构造以下内容并将其存储在存储器中a)第一表格,所述第一表格为轮廓图像中每个非零值像素包含至少一个位置坐标,b)第四表格,所述第四表格为像素的穿过感兴趣区的每条平行线至少包含第一表格中表项的索引,对于给定的一个扫描方向,该表项对应于落在相应平行线上并且位于感兴趣区内部的所述轮廓图像第一个非零像素,以及c)第五表格,所述第五表格为像素的每条穿越感兴趣区的平行线包含至少一个第一表格中表项的索引,对于给定的一个扫描方向,该表项对应于落在相应平行线上并且位于感兴趣区内部的所述轮廓图像的最后一个非零像素。
这种图像处理装置可以被包括在用于检测轮廓图像中的物体的图像处理装置中,该装置还包括-一个匹配单元,被安排用来以感兴趣区中的像素以及模板轮廓窗口中的像素作为参数计算一个匹配函数;以及-一个决策单元,被安排用来基于第四和第五表格计算感兴趣区内的多个非零像素的计数,被安排用来在该计数小于预定的像素数量的情况下指令第一单元沿着扫描路径跳转到下一个位置,并且在该计数大于或等于该预定的像素数量的情况下指令匹配单元为当前的感兴趣区计算匹配函数。
或者图像处理装置可以被包括在工业视觉设备中,所述工业视觉设备还包括-一个轮廓生成单元,被安排用来从一个可从照相机接收的图像生成轮廓图像;以及-一个控制单元,被安排用来根据匹配函数之结果输出信号。
或者图像处理装置可以被包括在智能相机中,所述智能相机还包括-一个轮廓生成单元,被安排用来从相机捕获的图像生成轮廓图像;以及-一个图像处理单元,被安排用来向由照相机捕获的图像的一个区域施加一种图像变换,该区域是基于图像处理装置检测到的物体而确定的。
或者图像处理装置可以被包括在图像显示器中,所述图像显示器还包括-一个轮廓生成单元,被安排用来从图像显示器接收的一个图像生成轮廓图像;以及-一个图像处理单元,被安排用来向所接收图像的一个区域施加一种图像变换,该区域是基于图像处理装置检测到的物体而确定的。


通过后面描述的实现以及实施例,并且结合附图,按照本发明的这些方法以及图像处理装置的这些以及其它方面将得到阐述并且变得很明显。这些附图仅仅作为非限制性的示例。
在附图中图1a示意性地显示了一个简单化的轮廓图像;图1b示意性地显示了按照本发明的感兴趣像素的表格;图2示意性地显示了一个模板轮廓窗口;图3a示意性地显示了沿着轮廓图像的感兴趣区扫描;图3b示意性地显示了按照本发明的更多表格;图3c示意性地显示了图3a所示的感兴趣区位置的像素计数;
图4示意性地显示了一个轮廓图像,具有除了0和1以外的值;图5示意性地显示了当匹配一个模板时用于在轮廓图像中获取相应像素的偏移量,所述模板通过旋转对应于一个参考模板;图6示意性地显示了一个模板轮廓;以及图7示意性地显示了一个示例应用中的图像处理装置。
图1出于示例的目的显示了一个简单化的轮廓图像100,其中物体轮廓101的物体轮廓像素具有示范值1(显示为黑色方块),并且非轮廓像素具有零值(显示为白色方块)。
为了从一个灰度图像(例如从相机获得的图像)获得轮廓像素,通常应用到该灰度图像的第一个操作是边缘检测。现有技术中知名的一种典型的边缘检测器是Canny边缘检测器,它用如下边缘检测器内核K(x)之离散矩阵版本对灰度图像进行卷积K(x)=d/dx(G(x))[方程1]X是水平方向的相对像素坐标,G是高斯平滑函数。可以应用其它典型的边缘检测滤波器,诸如例如Prewitt,Deriche,Kirsch,Marr,等等。方程1之内核仅仅检测水平方向的边缘,但是在现有技术中存在大量的同时考虑垂直方向的技术(例如,结合水平与垂直边缘检测的结果,或使用对两个方向都敏感的一个或一组内核)。
用边缘检测内核求卷积的灰度图像之结果是一个第二灰度图像,其中边缘具有较大的像素灰度值(例如255)并且非边缘(例如物体的光滑内部)具有较小的像素灰度值(例如0)。典型的边缘检测的第二步骤要么是削波要么是找最大值。削波将所有高于一个预定值(例如128)的灰度值设置为1并将所有其它值设置为0。由于期望单像素宽度的轮廓,优选的第二步骤是找最大值,它仅仅将第二灰度图像中的边缘凸起的最大值设置为1并将所有其它像素设置为0。
为了获得用于分析之轮廓的其它步骤可以是边缘链接,乱真边缘修剪以及间隙闭合。最后,可以用特定模型来表示边缘,例如使用直线构成的多边形,或者轮廓可以被表示为一个相对于沿着轮廓的弧度位置的切线的角度的函数。接着,轮廓可以被匹配,例如通过将图像物体轮廓的曲率的特征与一个模型的特征进行比较,所述模型与例如从训练阶段获得的待检测物体的典型形状相对应。
物体轮廓也可以基于色彩信息、纹理信息等获得,例如借助M.Mertens,H.Sahli以及J.Cornelis等人在“一种鲁棒的非线性片断边缘发现器”(IEEE非线性信号与图像处理研讨会1997会议录)一文中描述的边缘检测器。注意虽然按照本发明的方法是以一个2D的示例图像进行描述的,该方法也可以被应用到一维、三维或高维(>3)图像。
给定轮廓图像100,现有技术中的典型轮廓匹配方法必须检查轮廓图像100中物体轮廓的像素是否与模板轮廓像素中的像素相匹配,所述模板轮廓具有一个想要在轮廓图像100中发现的形状。典型地,所述模板轮廓是期望轮廓的一个小的裁剪图像,即,例如对于轮廓图像100中的物体轮廓101,模板轮廓可以是一个4×4的窗口,包含了图示的“倒U”形状。
将这个4×4的窗口在轮廓图像100的每个可能的位置上移动(例如模板轮廓窗口最左侧像素与轮廓图像100的像素(x,y)重叠),并且计算一个匹配函数,例如M(x,y)=Σi=0IΣj=0J[t(i,j)-p(x+i,y+j)]2/N]]>[方程2]其中i和j是轮廓模板窗口中的连续坐标,例如分别从0到I以及从0到J(在图1的例子中I和J等于4),x和y是轮廓图像100中的坐标,指示了进行匹配的位置,t是轮廓模板窗口中位置(i,j)处的像素值,p是轮廓图像100中的像素值,以及N是归一化常数。可以使用其它匹配函数,例如平均绝对差,或布尔匹配函数,诸如M2(x,y)=Σi=0IΣj=0J[t(i,j)p(x+i,y+j)]/N]]>[方程3]其中如果模板和图像在特定位置都具有值为1的像素,则乘法产生一个增加计数。
如果所有像素都匹配,那么匹配值M是最大值,即一个高值(如果适当地归一化,那么等于1),如果没有像素匹配,那么为零,并且如果某些像素匹配,则取中间值。如果模板模式位于图像轮廓附近,但没有适当地对齐,或者尝试了与一个不同形状的匹配,就会发生后一种情况。在一个实际的计算机视觉应用中,通常由于成像的人工因素、噪声等,轮廓图像100并不在正确的位置包含所有的像素,典型发生的问题如下1)某些轮廓像素缺失2)存在额外的所谓乱真轮廓点3)轮廓点从理论位置轻微偏移,例如由于所使用的边缘检测器因此为了改进匹配方法,通常使用一个光滑模板轮廓窗口200,如图2所示。这种窗口在围绕模板轮廓的外形上具有中间值(在0到1之间,或如果所有都被扩展到8比特表示则在0到255之间),典型地,这些值从确切的理论模板轮廓位置处的最大值(例如1)向外单调递减到零。
这种光滑模板轮廓窗口200可以通过向包含理论二元模板的轮廓窗口应用一个距离变换而获得。例如在图2中,如果像素的曼哈顿距离|(i-a)|+|(j-b)|(其中a和b是离得最近的二元模板像素的坐标)为1,那么给它们一个最大值50%的值,如果它们到二元模板像素的距离为2,则给一个最大值20%的值。高斯形状是一种好的可供使用的形状。使用这样一种光滑模板轮廓窗口200对于略微未对齐的轮廓像素(如上所述在点-3下)非常有利。匹配函数可以是方程2,或其它以实数或整数作为参数的匹配函数。使用具有除0和1以外的值的模板轮廓窗口可能有其它原因,例如,如果该模板模式化了一行中三像素(灰度=1)的线段(任一侧上为零),那么匹配标准方程3仅仅检查这种结构的存在。如果在轮廓图像100中有一条10像素的水平线,那么所述三像素的线段将在沿着图像线的任何位置被发现,即在10-2个连续位置。然而,在一个应用中可能要求仅仅发现确切的三像素长的直线,这可以例如通过在模板轮廓窗口200中三个1的线段之任一侧放置-1而不是0来实现,如果模板中-1值与图像中的1值而不是0值匹配,那么匹配函数产生一个较低的值。
这种现有技术中基于轮廓匹配的物体检测方法在它们的应用中工作良好,但由于下面的事实使得它们在计算上非常昂贵必须检查轮廓图像100中所有像素位置来判断特定轮廓(或许多可能的轮廓,例如,如果需要同时检查多个物体或一个物体的旋转版本)的存在,并且可能要借助一个复杂的匹配函数在模板轮廓窗口200的大量像素上作检查。即使借助今天最快的计算机或甚至最强大的Ic,许多应用仍然是不可行的,特别当它们必须被实时完成时(例如为了在经济上可行,邮政分发中心的邮票自动检测需要每秒中处理几封信件)以及对于大型的工业图像(典型地大于720×576的电视图像,例如10000×8000)。
借助按照本发明之基于轮廓的物体检测方法,只需执行尽可能少的操作——同时仍然保持完全检测能力,必须在不引入过多额外的图像分析操作的情况下实现物体检测,这再次增加了算法复杂性。
在所述物体检测方法的一个优选实施例中,作为第一个操作,对于整个轮廓图像100,构造了一个包含三张表的像素位置结构110(图1b),这些表给出了关于轮廓图像100中感兴趣像素的信息(在上面的例子中,从轮廓检测中获得的值为1的像素)-第一表格111,包含非零像素的x坐标;-第二表格113,包含轮廓图像100中每行最左侧像素在第一表格中位置的索引;-第三表格115,包含轮廓图像100中每行最右侧像素在第一表格中位置的索引。
因此,为了获得第一表格,通常从左到右、从上到下扫描轮廓图像100,直到遇到第一个像素。在图1的例子中,这是在位置(10,11)的像素。其x坐标10被写到第一表格111的第一个位置(在例子中位索引0)。遇到的下一个像素在位置(11,11),导致在第一表格111的索引1处写入数字11,以此类推。
随后或并行地,对该图像的所有行进行分析来获得最左侧和左右侧的像素。轮廓图像100的第一行不包含非零像素,因此在第二表格113和第三表格115中没有有效的像素索引可被写入,因此写入一个预定值,例如“非数字(NaN)”。最后到达第11行,物体轮廓101之最左侧像素在位置(10,11)并且物体轮廓101的最右侧像素在位置(13,11)。不是将x坐标写入第二和第三表格,而是将相应像素的索引写入。点(10,11)是第一表格111中的第一个点,因此索引0被写入第二表格113中的位置123。最右侧的点是第四个点,因此索引3被写入第三表格115中的位置125。使用索引而不是坐标导致如下优点特定行中像素的数量可以通过将最右侧索引与最左侧索引相减而获得。如果将x坐标相减,则没有考虑其中的零值。
随后,使用模板轮廓窗口200来扫描轮廓图像100,然而,在按照本发明的方法中,不是检查轮廓图像100中所有像素位置(x,y)以便通过计算匹配函数来判断期望物体轮廓的存在,而仅仅使用匹配函数检查有关的候选区域(可能产生匹配的区域,即那些通过预处理没有作为不可能包含一个匹配而被明确排除的区域)。优选地,扫描从左到右从上到下。因此,首先将模板轮廓窗口200定位于使得其最左侧像素与轮廓窗口100的最左侧像素重叠(实际上可以部分地从轮廓窗口100的外面开始扫描),并且轮廓窗口100的一个垂直部分,按照图2的例子为8列宽(沿着轮廓图像100的整个高度),将经历匹配来检查是否在如下位置存在期望的轮廓该位置对应于模板轮廓窗口200之最左侧角落在轮廓图像100中的定位。
为了加速匹配,按照本发明的方法计算另外两个像素位置结构110的表格,一个第四表格311(见图3b),以及一个第五表格313。第四表格311包含最左侧像素(不是在整个轮廓图像100中,而是在垂直部分301中的最左侧像素)在第一表格111中的位置的索引。类似地,第五表格313包含垂直部分301中最右侧像素在第一表格111中的位置的索引。由于在图3a的例子中,只有单个轮廓,并且它完全落在示范性的垂直部分301内,对于轮廓窗口100上的这个水平扫描位置,第二和第三表格恰恰包含了分别与第四和第五表格相同的值。如果在扫描期间,垂直部分301的右边界305被定位在物体轮廓的中间(即5个轮廓像素在右边并且5个在左边),对于这个垂直部分301,第四表格311与图3b所示的相同,而第五表格为{NaN,...,NaN,1,4,6,8,NaN,NaN,NaN),因为在第11行上,最右侧像素是所遇到的第二个像素,并且在接下来的行中,最右侧像素的索引是最左侧像素的索引,因为垂直部分301在这些行上仅仅包含单个轮廓像素。
可以从给出整个图像中重要像素信息的表格,例如第一表格111,很容易地构造出第四表格311和第五表格313。给定垂直部分301之左边界307的x坐标XL作为第一表格中具有比XL大的最小x值的像素的索引,可以找到垂直部分301的特定行上最左侧的像素。类似地,最右侧像素是如下像素,其索引具有小于垂直部分301的右边界305之x坐标XR的最大x值。
然而,通过使用第二和第三表格,可以更快地为第四和第五表格发现适当的索引。即,例如对于第12行,第二表格113中最左侧像素索引(对于整个轮廓图像100)是索引4。因此,垂直部分301内的最左侧像素只能有等于或大于4的索引,并且类似地,通过在第三表格115中查看第12行的索引,它不能具有大于第12行在整个轮廓图像100中最右侧像素的索引,其等于5。因而不需要检查第一表格的所有表项,而是最多检查与第12行上或所感兴趣的其它行上的轮廓像素一样多的表项。使用沿着轮廓图像的列向下的扫描路径306的另外一个优点在于可以对于每个向下的扫描仅仅计算一次第四和第五表格,而不是对感兴趣区303的每个位置计算一次。
按照本发明的物体检测方法的速度增加部分来自于跳过在轮廓图像100中的某些区域中进行匹配的可能性,这些区域是通过分析像素位置结构110的表格内容而确定的。借助第四表格311和第五表格313中的索引,通过简单地对两个索引相减,就可以计算出每行的像素数量,例如对于第11行,第五表格313给出了最右侧像素的一个索引3,而第四表格311给出了最左侧像素的一个索引0,从而得到垂直部分301中在第11行上的像素总数等于4。因此,通过对垂直部分301内每一行位于感兴趣区303内的像素数量进行相加,就可以获得感兴趣区303(模板轮廓窗口200在轮廓图像101中的当前位置,对于该位置计算匹配函数)内存在的像素总数。如果在轮廓图像100中对应于感兴趣区303的部分存在一个物体轮廓与模板轮廓相匹配,那么应该在感兴趣区303内存在轮廓模板所需像素总数的很大百分比,例如对于图6中的模板,如果允许20%未检测到的像素点,那么至少应该在感兴趣区303中存在32的80%即26个像素。该百分比典型地表示为预定的像素数量,可以基于仍然指示轮廓匹配的最小匹配函数值来确定,并且这个最小匹配函数值再次依赖于以下条件,诸如图像中的噪声数量,将被识别的模板轮廓的数量与形状差异,最大允许的遮断百分比,等等。可以使用图像处理中其它典型的理论分析来获得预定的像素数量。通过假定所需百分比等于100%来简化对于算法的解释,借助图6的错综复杂的物体轮廓解释了按照本发明的物体检测方法的速度提高原因。轮廓图像100中的这个轮廓,以及相应地其模板的主导部分(在二元模板中所有等于1的像素,在经过距离变换的光滑模板中通常具有最高灰度值的像素),由4×8的像素构成。假定对于感兴趣区303的特定垂直位置yR,只有8个像素位于感兴趣区303内。这意味着有一个3×8像素的不足额。加速垂直扫描整个垂直部分301的第一规则说明由于在垂直部分301内每一行最多有8个额外的像素,感兴趣区303必须被向下移动至少三行(最好情况)。当然,观察模板轮廓600的形状,这些额外的24个像素必须落在特定直线上。简单地,轮廓图像100中三个8像素的行将不会匹配图6的轮廓600。因此,可以更加智能地计算出那些可以跳过计算匹配函数的行的数量。在最好的情况,轮廓600第一行601的8个像素都存在于位于位置yR的感兴趣区303的末行,并且在感兴趣区303的下面轮廓600的其余部分(如果这些点以其它方式放置,匹配函数计算将指示出轮廓图像100中的物体轮廓不是期望的模板轮廓600)。由于该模式延续到第一行601下面的6行,感兴趣区303必须跳转6行来完全地与该模式重叠,将第一行601与感兴趣区303的第一行对齐。
笼统地,有两种策略-要么对于感兴趣区303的每个垂直位置yR执行一次感兴趣区303内像素总数的计数320,之后,如果该计数大于或等于待匹配模板的预定像素数量,那么就计算匹配函数;-或者根据对于感兴趣区303的当前垂直位置yR的当前计数与预定像素数量之间的差异(考虑垂直部分301的宽度和/或模板轮廓的形状),同时跳过许多行。
对于第一个策略,对于垂直位置yR来说,感兴趣区303中总的像素之计数可以从紧邻其上的垂直位置yR-1的计数快速获得,通过添加新行的计数,并且减去感兴趣区303上一个位置中最高行的计数C(yR)=C(yR-1)+CL(yR+H-1)-CL(yR-1) [方程4]其中C指示了对于其左上像素(例如yR)之特定位置的整个感兴趣区303中的总体计数,CL指示了对于单个行的计数,并且H是感兴趣区303的高度,即模板轮廓窗口200(600)的高度。
当然,如果有许多乱真轮廓像素,该计数可能超过预定的像素数量,即使感兴趣区303内的部分轮廓图像100中没有像素落在模板轮廓位置。但是所有区域包含小的乱真轮廓,明显属于与使用模板轮廓待检测的物体不同的物体,并且轮廓图像100的大量空白区域被跳过,而不是为它们计算昂贵的匹配函数。
类似的推理导致跳过大量的列,例如在图3a中,前8列根本不包含任何像素,在完成第一垂直部分301之后,感兴趣区303开始扫描下面的8列。总体上,建议跳过的列数取决于当前垂直部分每行中像素的数量,例如上面的行可能不包含像素,而下面的行可能包含像素,因此对于感兴趣区303特定位置的总体计数可能例如为4。这些像素可能位于对应于轮廓600窗口之第一列603的正确模式中,建议跳转7列而不是8列。实际跳转的列数是对感兴趣区303每个垂直位置yR建议的跳转列数的最小值(最坏情况所有不是明显地不匹配的位置必须在剩余扫描过程中被检验)。但是当然,在轮廓图像100之顶部的那些由于较小的水平列跳转而必须被重新处理的空白区域,由于垂直跳跃将被快速地穿越。
虽然使用5个表格的变种特别快速,仍可以建立等价的像素位置结构110,例如代替前三个表格,可以建立包括感兴趣像素的(x,y)元组的单个(第六)表格,其中(x,y)元组被对应于轮廓图像100之连续行的连续组填充,即连续的y值。为了获得如上所述的第四和第五表格,可以使用一种二元搜索标准,直到第六表格中具有期望的行值y的一个元组被发现。接着可以为垂直部分301中最左侧和最右侧像素发现正确的索引,通过在第六表格中在索引增加或减小的方向移动,直到例如遇到具有大于XL的最小x值的元组。
取代如上所解释的二元图像,轮廓图像100可以包含不等于0或1的值,例如0.5,如图4所示。对于应用这种轮廓图像,可能有几个原因,例如-轮廓图像作为两种不同的边缘检测操作的结果被获得,值1指示两种边缘检测器同意在该特定像素位置存在轮廓,0.5指示只有两个边缘检测器之一检测到边缘的存在;或者-通过向二元轮廓图像100应用距离变换而获得图像,如上所述。
在某些应用中,后一个例子很有用。对于轮廓图像100中所有高于特定门限值的像素值计算匹配函数,门限值例如为0.2或0。所述门限确定了一个像素是否是感兴趣的。模板可以是二元的或具有多个值。从存储的观点看,二元模板是有利的,因为如果必须存储并检查许多不同的模板(例如单个物体形状的旋转或缩放版本)的话,如果模板轮廓窗口200的像素值是正数或实数而不是二元值,那么小的存储器可能不够用。此外,在操作数量的分布上存在差异,这也可被有利的使用。例如,如果待匹配的模板是一个两像素的线段,那么在二元模板的情况中,对于每个评估位置只需执行两个像素比较(尽管利用在轮廓图像100上的距离变换,通常需要检验更多位置),而对于一个距离变换模板,需要执行更多几次比较。两个选项——模板距离变换或轮廓图像——中哪个更加经济取决于模板的形状以及轮廓图像100的物体内容,即取决于感兴趣区303的期望的跳转。在动态决策算法的情况中还可以实现加速。
通过利用处理器架构的属性(诸如MMX的单指令多数据)可以获得增加的处理速度。不是使用与模板轮廓窗口200一样宽的感兴趣区303,感兴趣区303例如要宽8个像素。接着对于一个匹配模板可以并行地检查8列。在这个例子中最小的水平跳转为8列。
在具有不同尺寸、旋转或者轻微透视变换的轮廓图像必须进行匹配的情况下,一个轮廓模板匹配策略通常与多个模板轮廓窗口200进行匹配,所述模板轮廓窗口对于特定尺寸、旋转等的每个不同组合包含一个模板。这意味着必须存储大量的模板,需要很大的存储器,并且这些模板中的每个都需要进行匹配。按照本发明的这个实施例,为了有效地匹配那些通过几何变换(例如旋转)而相关的轮廓,只需存储所有这些模板的一个子集。图5显示了用于旋转的这种原则的一个例子。如果为每一度方向变化存储一个模板,大多数模板并不是那么地不同,只有在极端的情况,模板轮廓窗口200的值才会显著的变化。因此,例如对于每个相对于参考方向的10度的倍数的旋转,只有一个模板轮廓窗口200。中间方向——例如9度——的模板503可以这样被匹配通过将邻居模板轮廓501(具有低于中间方向的最高方向角的那个模板,例如图5中的0度)的像素值与轮廓图像100中的像素进行比较,这些值不是在邻居模板轮廓501上这些像素值的相同位置,而是在偏移量(dx,dy)上,这可以从所述变换计算得到。通过察看模板轮廓窗口200而不是轮廓图像100中的偏移量位置,可以获得一个类似的结果,但是在这种情况中,通常模板轮廓窗口200被做的更大,并有可能使用距离变换而生成,所述距离变换为较大的距离引入了非零像素值。例如,指示图5的例子中轮廓图像100中哪些像素匹配的偏移量(dx,dy)为dx=r[cos(α+β)-cos(α)]dy=r[sin(α+β)-sin(α)] [方程5]其中r是到旋转原点的距离,α是相对于模板轮廓窗口200中像素垂线的角度,β是中间方向与邻居模板轮廓501的方向之间的方向差。对于不同模板,可以提前计算出偏移量并存储在查看表中。通过距离变换来补偿重叠误差,即与要匹配形状的相似性有一个折中。由于对于二次采样方向(所有几何变形的二次采样集)的匹配已经粗略地指示了更加精细的方向、尺寸等是什么,因此还存在速度增益。以这种方式可以使用快速搜索技术。
在其它实施例中,通常在例如使用高斯滤波进行第一次滤波后,可以在二次采样的轮廓图像100上进行匹配。或者,在缩放空间中可以使用分层匹配。精细或多步骤匹配策略也是可行的。例如,由于小的钩孔或凹槽的存在,物体会不相同。在第一步骤中,物体被局部化,并在第二步骤中,在期望的位置检验钩孔的存在。
图7显示了一个用于分析物体轮廓图像100的图像处理装置731。第一单元721被安排来在轮廓图像100中感兴趣区303的扫描路径306上指定位置(xR,yR),例如如上所述,第一单元可以产生沿着轮廓图像100的列的连续位置。它被安排将这个位置信息(或者如同在上面的例子中,至少是当前要被扫描的列的y坐标)发送给第二单元723。第二单元被安排用来构造第一表格111,第四表格311,第五表格313,并且如果需要,在与上面描述的一个方法相对应的一个特定实现中,还有第二表格113和第三表格115。第二单元723被连接到存储器715并被安排在这个存储器715中存储这些表格。所述存储器典型地是一个存储器芯片,但也可以是可拆卸的存储器,诸如磁盘或通过网络连接的远程装置中的存储器,以便生成的表格可以被单独的图像处理装置用于其它处理。
用于物体检测的图像处理装置732还可以包括一个匹配单元727,所述单元被安排以上面描述的感兴趣区303中的变元像素以及模板轮廓窗口200中的像素作为参数来计算匹配函数,并且能够访问存储器来存储匹配结果。决策单元725被安排能够访问沿着扫描路径306的当前位置或当前感兴趣区303,并且能够访问存储器725中的表格。决策单元725被安排通过一种或多种上面描述的方法来计算感兴趣区303内非零像素数量的计数320。根据计数值,它被安排用来指令第一单元721跳转到扫描路径306的下一个位置,例如下面的1个或多个像素,或指令匹配单元727为感兴趣区303的当前位置计算匹配函数。
轮廓生成单元711被安排用来从灰度像素、彩色像素或以数学方法或其它方法生成的图像中生成轮廓图像100。在一个典型的应用中,所述图像是从相机701接收到的。
一个控制单元被安排用来基于由图像处理装置732获得的物体轮廓匹配结果计算其它函数,并且得出至少一个信号S。这个信号S可被输出到例如一个机器人,指令该机器人拾取检测到的物体。在一个安全系统中,检测到的物体可以例如是车辆执照牌,并且所述信号可以被输出到栅栏或报警器。
所有处理部件,例如图像处理装置731,可以作为硬件实现,例如一个ASIC,FPGA,或专用电路板,或者运行在专用或通用处理器上例如一台个人计算机内的软件。所显示的单元可被实现在多个或单个物理装置上。
图7显示的一个示例应用是产品线监视。物体703,704沿着传输带705前进。图像处理装置732可能例如正在检查一个部件是否被干净地焊接在一个电路板上。或者,从包装上识别物体。
图像处理装置732还可以被集成在智能相机中,它被安排用来应用变换,诸如基于所检测到的物体的色彩校正或镜头变形校正,例如仅仅针对于该物体的校正。另一个应用是包括这种智能相机的远程控制,如在EP申请02079816.1中所公开的。
一种更加与消费者相关的设备是电视或具有显示器的计算机,它能够处理接收到的图像,例如图标或字幕可被变换成电视信号。
对于计算机程序产品,应当理解指令集合的任何物理实现使得通用或专业处理器在一系列向处理器中加载指令的步骤之后,执行发明的任何特殊功能。特别地,计算机程序产品可以被实现为诸如磁盘或磁带的载体上的数据,存储器中的数据,通过有线或无线网络连接传输的数据,或纸上的程序代码。除了程序代码,该程序所需的特征数据也可以被实现为计算机程序产品。
应当注意,上述实施例是为了举例说明而不是限制本发明。除了权利要求中所作的本发明之元素的组合外,这些元素的其它组合也是可行的。这些元素的任何组合可以被实现成单个专用元素。
权利要求中括号之间的任何参考符号不是为了限制权利要求。“包括”一词不排除存在没有列在权利要求中的元素或方面。一个元素之前的词“一个”不排除存在多个这种元素。
本发明可以通过硬件或运行在处理器上的软件的方式来实现。
权利要求
1.一种分析轮廓图像(100)的方法,包括-指定一条由轮廓图像(100)中的位置(xR,yR)构成的扫描路径(306),每个位置对应于一个感兴趣区(303);-构造第一表格(111),所述第一表格为轮廓图像(100)中每个非零像素包含至少一个位置坐标(x);-构造其表项与感兴趣区(303)的位置相对应的第四表格(311),所述第四表格为每条具有预定的方向并穿过感兴趣区(303)的由像素构成的平行线至少包含第一表格(111)中表项(121)的索引(312),对于给定的一个扫描方向,所述第一表格(111)中的表项(121)对应于落在所述平行线上并且在感兴趣区(303)内部的轮廓图像(100)的第一个非零像素;-构造其表项与感兴趣区(303)的位置相对应的第五表格(313),所述第五表格为每条具有预定的方向并穿过感兴趣区(303)的由像素构成的平行线至少包含第一表格(111)中表项(121)的索引(312),对于给定的一个扫描方向,所述第一表格(111)中的表项(121)对应于落在所述平行线上并且在感兴趣区(303)内部的轮廓图像(100)的最后一个非零像素。
2.权利要求1所述的分析轮廓图像(100)的方法,包括-指定由沿着一列向下并随后跳向下一列的连续位置(xR,yR)构成的扫描路径(306);-构造第一表格(111),所述第一表格为轮廓图像(100)中的每个非零像素包含至少一个位置坐标(x);-构造第四表格(311),所述第四表格至少为每条由像素构成的穿过感兴趣区(303)的水平线包含第一表格(111)中表项(121)的索引(312),所述表项(121)对应于落在所述水平线上并且在感兴趣区(303)内部的轮廓图像(100)的最左侧非零像素;-构造第五表格(313),所述第五表格至少为每条由像素构成的穿过感兴趣区(303)的水平线包含第一表格(111)中表项(121)的索引(314),所述表项(121)对应于落在相应水平线上并且在感兴趣区(303)内部的轮廓图像(100)的最右侧非零像素。
3.权利要求2所述的分析轮廓图像(100)的方法,包括-构造第二表格(113),所述第二表格为轮廓图像(100)的基本上每条水平线包含一个第一表格(111)中表项(121)的索引(123),所述表项(121)对应于轮廓图像(100)的相应水平线上最左侧非零像素;-构造第三表格(115),所述第三表格为轮廓图像(100)的基本上每条水平线包含一个第一表格(111)中表项(121)的索引(125),所述表项(121)对应于轮廓图像(100)的相应水平线上最右侧非零像素;-基于第一表格(111)、第二表格(113)和第三表格(115)构造第四表格(311)和第五表格(311)。
4.权利要求1,2,3其中之一所述在轮廓图像(100)中检测物体的方法,进而包括-基于第四表格(311)和第五表格(313),为沿着扫描路径(306)的连续位置计算位于感兴趣区(303)内的非零像素数量的计数(320);-如果该计数(320)大于或等于预定的像素数量,使用感兴趣区(303)中的像素以及模板轮廓窗口(200)中的像素作为参数计算一个匹配函数,以获得对模板轮廓与存在于感兴趣区(303)中的轮廓图像(100)的像素之间的匹配的指示;-如果该计数(320)小于预定的像素数量,执行到沿着扫描路径(306)的另一个位置的跳转。
5.权利要求4所述的在轮廓图像(100)中检测物体的方法,对于该方法,待检验的模板轮廓是模板轮廓窗口(200)中模板轮廓的几何变换,该方法包括-在轮廓图像中的一个位置(x’,y’)为模板轮廓窗口(200)中的一个像素获取相应的像素,所述位置由模板轮廓窗口(200)中的该像素的位置(x,y)以及所述几何变换确定;并且-基于模板轮廓窗口(200)中的像素与对应的像素之间的相似性,计算匹配函数。
6.权利要求1,2,3,4,5其中之一所述的在图像中检测物体的方法,还包括-向该图像应用轮廓检测来获得轮廓图像(100)。
7.一种用于分析轮廓图像(100)的图像处理装置(731),包括-第一单元(721),被用来在轮廓图像(100)中扫描路径(306)上指定感兴趣区(303)的位置(xR,yR);-第二单元(723),被用来构造并在存储器(715)中存储如下内容a)第一表格(111),所述第一表格(111)为轮廓图像(100)中每个非零像素包含至少一个位置坐标(x);b)第四表格(311),所述第四表格(311)为像素的每条穿过感兴趣区(303)的平行线至少包含第一表格(111)中表项(121)的索引(312),对于给定的一个扫描方向,所述表项(121)对应于落在相应平行线上并且在感兴趣区(303)内部的轮廓图像(100)的第一个非零像素;以及c)第五表格(313),所述第五表格为像素的每条穿过感兴趣区(303)的平行线至少包含第一表格(111)中表项(121)的索引(314),对于给定的一个扫描方向,所述表项(121)对应于落在相应平行线上并且在感兴趣区(303)内部的轮廓图像(100)的最后一个非零像素。
8.一种用于在轮廓图像(100)中检测物体的图像处理装置(732),包括权利要求7所述的图像处理装置(731),还包括-一个匹配单元(727),被用来以感兴趣区(303)中的像素和模板轮廓窗口(200)中的像素作为参数计算匹配函数;以及-一个决策单元(725),被用来基于第四表格(311)和第五表格(313)计算感兴趣区(303)内的多个非零像素的计数(320),如果该计数(320)小于预定的像素数量,则该决策单元(725)被用来指令第一单元(721)沿着扫描路径(306)跳向下一个位置,并且如果该计数(320)大于或等于预定的像素数量,则该决策单元(725)被用来指令匹配单元(727)为当前感兴趣区(303)计算匹配函数。
9.一种工业视觉设备(700),包括权利要求7所述的图像处理装置(731)或权利要求8所述的图像处理装置(732),还包括-轮廓生成单元(711),被用来从一个可从照相机(701)中接收的图像生成轮廓图像(100);以及-控制单元(150),被用来根据匹配函数的结果输出一个信号(S)。
10.一种智能相机,包括权利要求7所述的图像处理装置(731)或权利要求8所述的图像处理装置(732),并且还包括-轮廓生成单元,被用来从照相机(701)所捕获的图像生成轮廓图像(100);以及-图像处理单元,被用来向被照相机捕获的图像的一个区域施加图像变换,所述图像区域是基于图像处理装置(731)检测到的物体而确定的。
11.一种图像显示器,包括权利要求7所述的图像处理装置(731)或权利要求8所述的图像处理装置(732),并且还包括-轮廓生成单元,被用来从一个由图像显示器接收到的图像生成轮廓图像(100);以及-图像处理单元,被用来向接收到的图像的一个区域施加图像变换,所述图像区域是基于图像处理装置(731)检测到的物体而确定的。
12.一种安全系统,包括权利要求9所述的工业视觉设备(700)。
13.一种计算机程序产品,包括使得一个处理器能够执行方法1到6其中之一的程序代码。
全文摘要
分析物体轮廓图像(100)的方法可用于基于轮廓匹配的快速物体检测,包括指定一条由轮廓图像(100)中感兴趣区(303)的位置(xR,yR)构成的扫描路径(306),以便充分地处理轮廓图像(100)的所有像素;构造第一表格(111),该第一表格为所述轮廓图像(100)中每个非零像素包含至少一个位置坐标(x);构造与所述感兴趣区(303)之位置相对应的第四表格(311),该第四表格为穿越所述感兴趣区(303)的每条像素构成的平行线至少包含关于所述第一表格(111)中一个表项(121)的索引(312),给定一个扫描方向,该表项对应于落在相应平行线上并且处于所述感兴趣区(303)内部的所述轮廓图像(100)的第一个非零像素;并且构造与所述感兴趣区(303)之位置相对应的第五表格(313),该第五表格为穿越所述感兴趣区(303)的每条像素构成的平行线至少包含关于所述第一表格(111)中一个表项(121)的索引(314),对于给定的一个扫描方向,该表项对应于落在相应平行线上并且处于所述感兴趣区(303)内部的所述轮廓图像(100)的最后一个非零像素。
文档编号G06K9/50GK1867928SQ200480030320
公开日2006年11月22日 申请日期2004年10月12日 优先权日2003年10月17日
发明者A·J·M·范利尔, H·刘, C·尼科勒斯库, M·B·范利尤文 申请人:皇家飞利浦电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1