概述
在机器视觉检测过程中,需要夹具对每一个被检测零件进行定位,保证光源照射到零件,让相机能拍摄到被照射的零件,使位置传感器能够在同一位置进行触发,防止零件发生晃动或旋转。当每一个所要检测的零件到达检测区域时,视觉系统就对它进行检测。但是在很多情况下,即使夹具特别精确,也不能保证不发生位置变化,零件不可能总是准确定位在期望的位置,即零件不能重复地关于摄像机定位,如图1所示。
在很多情况下,这种未对准情况可以通过使用相关的测量方法进行补偿。例如,在Sherlock软件中可以得到零件的长度,方法是使用线感兴趣区域(peek)找到所要测量的端点,然后使用距离公式计算两个端点之间的距离。这样,测量值将保持恒定,即使零件移动了一点位置,只要它没有移动很远,它的一个端点没有移出相应的线区域即可。
然而在某些情况下,需要绝对对准。如果使用理想模板,或者要测量一个小零件,不考虑零件位置的正常变化,过度扩大感兴趣区域,将不太可能保证鲁棒性。在这些情况下,利用机器视觉软件sherlock的定位点(landmark)就很容易解决零件不能对准的问题。
零件对准的工作过程
当被检测零件不在最初训练的位置时,Sherlock的零件对准功能依靠定位点自动找到所要检测的位置。所有点的读数都可以在读数编辑对话框中标记为定位点。通过指令返回定位点标记的点的位置,然后根据定位点的位置对所要处理的感兴趣区域进行自动定位。
● 零件只发生移动时的对准
当所检测的零件只发生X方向或Y方向的移动时,只需要一个定位点进行定位就可以实现自动对准,操作过程如下。
(1)首先在所拍摄的合格零件图像上选定一个点作为定位点,如利用矩形感兴趣区域的SmartSearch分析算法对零件的某一特征部分进行训练,将该特征的最佳点(best point)作为定位点。
(2)将矩形感兴趣区域的范围拉大,使所检测零件上与所训练的特征相应的特征部分总在该感兴趣区域范围内。
(3)对需要检测的区域进行训练,添加相应的程序。
(4)运行所做的检测程序,当零件位置发生移动时,所要检测部位的感兴趣区域就会根据定位点,自动精确地找到所要检测部位进行检测。
在图2中,将十字架作为训练的模板,十字架的中心作为定位点,需要检测的位置为梳状齿。当零件发生移动时,感兴趣区域B可以自动找到所要检测的位置。
● 零件既发生移动又有旋转时的对准
当被检测零件相对与训练模板在位置上既有X、Y方向移动,又发生旋转时,一个定位点就不能找到所要检测的位置。在Sherlock中使用两个定位点就能实现自动对准。其中,一个定位点计算移动的信息,另一个计算旋转的信息。操作过程如下。
1)在所拍摄的合格零件图像上选定两个可以被可靠定位的特征点作为定位点进行训练。
2)训练完成后,分别将两个特征点的感兴趣区域拉大,使每一个特征点都在自己的感兴趣区域范围内。
3)对需要检测的区域进行训练,添加相应的程序。
4)运行检测程序,当零件位置既发生移动,又发生旋转时,所要检测部位的感兴趣区域就会根据定位点,自动精确地找到所要检测部位进行检测。
零件位置发生旋转时,也可以使用三个定位点实现对准,假定第一点相对于零件来说是一个固定点,随后的两点只被用来计算旋转信息。记录下点之间的原始角度,找出运行时的新角度,通过新角度和原始角度之间的比较,计算出旋转距离,从而实现零件对准。
● 使用Smart Search360的结果来实现零件对准
Sherlock软件中的分析算法Smart Search360是一个模式识别的分析算法,该算法可识别旋转的物体,也可以实现零部件对准。Smart Search360的返回结果中有一个最佳点和一个最佳角度。使用点的转换函数Formula—Align把该点和该角度转换成两个定位点,从而实现零件对准。
责任编辑:gt
全部0条评论
快来发表一下你的评论吧 !