使用双视场测量工件长度尺寸

 

 

很多二次元测量仪进行工件尺寸测量的时候,只能在视场里面测量尺寸比较小的尺寸,

如果测量比较大的尺寸的时候,往往需要移动测量仪上面的镜头,改变视场的位置,这样

测量非常费时(毕竟视场可见面积小嘛)。这次,我们将使用实例介绍在机器视觉大师

系统里面使用双视场(相机)对较长尺寸进行测量。

 

准备工作

直尺一把(没有高精度的标定尺,只能凑合着用,能说明问题就好),两个相机,两个远心镜头,

背光光源一块,简陋实验架,工件若干。如下图:

深度学习工件尺寸测量 如何测量工件尺寸_图像处理和分析

深度学习工件尺寸测量 如何测量工件尺寸_尺寸测量_02

深度学习工件尺寸测量 如何测量工件尺寸_深度学习工件尺寸测量_03

 

  

 

将相机,镜头,光源安装到实验架以后,运行机器视觉大师,让我们正式开工吧。

 

平面比例标定

一般尺寸测量之类的工作,平面比例标定时必须的。这个比例标定的目的就是计算工作视场

的坐标(单位:mm),与相机成像平面像素单位的比值。这个比值确定以后,我们得出的

结果才有可能是毫米的,而不是像素的值。虽然两个视场的相机都需要标定的,但这里笔者

仅说明一次相机的标定过程。

 

一.       启动运行监视,将直尺放入到其中一个视场里面。

二.       切换模式到十字鼠标状态,(单击菜单“模式”->”对齐”->”十字鼠标”), 使直尺与鼠标

直线对齐,完成以后,停止监视,视场图像这里应该如下:

深度学习工件尺寸测量 如何测量工件尺寸_自动化_04

为了更好地显示, 这里选择显示为居中,缩小。(镜头灰尘太多,画面比较污,呵呵。)

 

三.       点击菜单”标定”->”毫米”,确定视场以毫米为单位。然后点击菜单”标定”->”2d平面比例”打开

标定窗口。

深度学习工件尺寸测量 如何测量工件尺寸_深度学习工件尺寸测量_05

四.       调整两个MARK控件到合适的位置,然后在”实际长度”文本框里面输入实际的长度值,点击”学习”,

当前视场的平面比例标定工作完成。

 

 

测量算子设计

在实际测量工件的过程中,测量员使用游标卡尺对两个边缘进行对齐,从而获取该工件的尺寸。根据这个原理,

笔者分别在两个视场里面设计一个边缘检测算子,对单边进行测量,将两边距离相加减,即可获得工件尺寸。

由于双视场的算子分布在不同的视场里面,还需要分别设计位置参考算子,以完成工件尺寸的测量。

 

添加位置参考算子

在两个视场下面放置直尺,使两个相机都可以拍摄到直尺,然后进行适当对齐(请参考平面比例标定做法)。

 

一.           分别在两个视场添加为一个位置参考算子。其中一个算子刻度放在11(厘米),另外一个放在直尺的20(厘米)位置。

深度学习工件尺寸测量 如何测量工件尺寸_机器视觉_06

 

二.           双击视场一的位置参考算子,调出该算子的属性设置框,将其参考位置设置为0。如下图:

      

深度学习工件尺寸测量 如何测量工件尺寸_机器视觉_07

      同样的方法,将另外一个视场的算子参考位置设置为90(即200-110),记住单位为毫米,前面标定

的时候已经设置了。

 

 

添加边缘检测算子

将待测工件放置在视场下,分别在两个视场放置边缘检测算子,为了方便查看,将视场窗口设置垂直并排显示。如下图:

 

深度学习工件尺寸测量 如何测量工件尺寸_机器视觉_08

双击视场一的边缘检测算子控件,调出参数设置窗口。在专用页面,设置当前边缘为第一边(左边),选择相对强度,同时

禁用第二边(右边)。在预览窗口,可以看到当前的边缘位置在工件图像的边缘处。

深度学习工件尺寸测量 如何测量工件尺寸_图像处理和分析_09

同样的方法设置另一个视场的边缘检测算子,只是禁用第一边,而使用第二边(右边)。

 

最终设计的算子如下:

 

深度学习工件尺寸测量 如何测量工件尺寸_深度学习工件尺寸测量_10

编写脚本

到现在为止,笔者做的仅仅是设计必要的算子。要真正测出工件的长度,还需要进行最后一步:编写

脚本。

 

点击菜单”模式”->”编辑脚本”, 弹出”编辑脚本”对话框。选择测量类型为“尺寸测量”。

深度学习工件尺寸测量 如何测量工件尺寸_机器视觉_11


下面分别解释每个语句的含义

 

d1 = (mcam1.rpos1.pos -  mcam1.edist1.n1) / mcam1.SCALE_X

这句算术表达式就是将视场一里面位置参考算子的位置与边缘检测算子检测到的第一边的位置相减,

获得两个位置的距离,然后除以像素与毫米的比例,获得实际距离。

 

d2 = ( mcam2.edist1.n2 - mcam2.rpos1.pos  ) / mcam2.SCALE_X

这句算术表达式与上面一句含义一样,只是边缘检测算子在位置参考算子的右边,只能使用边缘检测

算子第二边的距离减去参考算子的位置,以获得实际距离。

 

mvs.ms1=d1+d2 + 90

这句算术表达式实际就是将两个距离与参考距离的值相加而已。(注意:90为我们的参考距离。)这

个语句也可以更改为 mvs.ms1=d1+d2 + mcam2.rpos1.actu,其计算结果一样。

 

尺寸测量类任务最多可以支持4个尺寸同时测量,供支持12个变量。具体如下:

变量名

说明

类型

ms1

测量的尺寸一的实际值

数值

ws1

测量的尺寸一的标准值

数值

dif1

测量的尺寸一的标准值与实际值的差值

数值

ms2

测量的尺寸二的实际值

数值

ws2

测量的尺寸二的标准值

数值

dif2

测量的尺寸二的标准值与实际值的差值

数值

ms3

测量的尺寸三的实际值

数值

ws3

测量的尺寸三的标准值

数值

dif3

测量的尺寸三的标准值与实际值的差值

数值

ms4

测量的尺寸四的实际值

数值

ws4

测量的尺寸四的标准值

数值

dif4

测量的尺寸四的标准值与实际值的差值

数值

 在实际应用中,用户可以根据需要计算上面的变量。


检测运行

点击菜单”相机”->”测量运行”,进入检测状态。

 

放置工件到视场位置(温馨提醒: 将工件的两个边缘放置在各自视场的边缘算子里面,

否则检测将不正确。这次测试的边缘检测算子拉的足够长,非常轻松地可以做到这一点),然后,

点击”下一个”按钮。将完成一次自动测量。

深度学习工件尺寸测量 如何测量工件尺寸_尺寸测量_12

 

下面是实际测量的记录。

 

深度学习工件尺寸测量 如何测量工件尺寸_图像处理和分析_13

结束语

笔者使用的机械结构和工件都是随意制作的,精度不是很高。但从结果上看,测量结果

基本与设计的值相差不大。在正式的产品测量仪或机械装置中,如果要获得比较高的精度,

不但需要保证机构的精度,而且,需要使用高精度的标定尺对视场比例,参考位置的距离

进行高精度标定,从而获得更高的测量精度。