LabVIEW 目标测量方法(基础篇—12)
目标测量(Dimensional Measurements)是机器视觉的重要应用之一,它以被测目标的关键尺寸信息为特征,对这些尺寸进行测量,或根据测量结果来判定产品质量是否合格。尺寸信息包括间距、角度、面积以及根据边缘点拟合得到的线段、多边形、圆或椭圆等解析几何形状的参数等。
基于机器视觉的目标测量系统一般用于对尺寸小、生产批量大的工件进行测量和质量检测,如电子连接器件、继电器开关等。若要人工对这些器件的尺寸进行测量,不仅要耗费大量时间和精力,而且由于受人为因素影响,常不能得到准确的检测结果。
此外,机器视觉目标测量系统能在一些人类无法进入的环境中工作,如有毒或高温的环境等。机器视觉目标测量系统可以在线或离线的方式解决各种实际问题。
在线方式下,测量和判定过程发生在生产线的生产或装配过程中。常见的在线测量应用包括机械装配验证、电子包装检验、集装箱检验、玻璃瑕疵检验和电子连接器检验等;
离线方式下,测量和判定过程则发生在生产线下,它对实时性的要求相对于在线测量判定过程要低些。
下图汇总了机器视觉目标测量系统的常见应用:
机器视觉系统的目标测量通常包括目标搜索、特征定位、尺寸测量和结果判定 4 个过程。
目标搜索过程用于从图像中寻找被测目标或参考目标;
特征定位过程则通过边缘检测或图像匹配来确定被测量在图像中的位置;
随后,就可基于它实现几何测量过程,并进而根据测量结果以及设定的阈值来判定被测目标的质量。
实际测量过程中,由于目标的旋转或移动,被测目标或被测量并不总是位于图像中的某一固定位置。这就要求机器视觉系统具有可根据被测目标位置在图像中自动调整测量区域的能力。
机器视觉系统可以测量的量通常包括距离、角度、面积等。在图像中对这些量进行测量的方法大致分为卡钳(Clamp)、卡尺(Caliper)和解析几何法。
下图对机器视觉系统目标测量的过程、方法进行了汇总:
1、目标搜索
机器视觉目标测量系统的目标搜索过程一般用于从图像中寻找两类目标:被测目标或参考目标。被测目标是指被测量所在的目标,参考目标则是指用于确定参考坐标系和测量坐标系的目标。换句话说,在图像中搜索到的目标,既可直接用于测量,又能用于确定测量过程的参考坐标系或测量坐标系。
由于实际测量过程中,被测目标并不总是位于图像中的某一固定位置,而是会在视场内平移或旋转,因此对于每一幅采集到的图像,都必须重新搜索目标所在的位置和旋转角度。边缘检测和图像模式匹配是完成该任务的两种较好的方法。其中图像模式匹配方法包括:LabVIEW图像模式匹配详细介绍的灰度匹配和几何匹配。无论是使用边缘检测法还是模式匹配法搜索目标,都必须确保被测目标可以出现在指定的 ROI 内。
Nl Vision 提供了使用边缘检测法搜索被测目标和参考目标的函数。若搜索的目标位置和角度直接用于测量,则可使用位于 LabVIEW 的视觉与运动→Machine Vision→Caliper 函数选板中的各种边缘检测 VI。如下图所示:
函数说明及使用可参见帮助手册:
如果从图像中搜索的目标并非直接用于测量,而是用其位置来创建参考坐标系,则可使用位于 LabVIEW 的视觉与运动→Machine Vision→Coordinate System 函数选板中的 IMAQ Find CoordSys (Rect)2、IMAQ Find CoordSys (2 Rects)2。如下图所示:
函数说明及使用可参见帮助手册:
以灌装检测为例,系统要求生产线上各瓶内所灌装的液位必须在指定的范围内,液位不能过高也不能过低。由于相机相对于生产线上的瓶子位置固定,且各瓶子不会在图像垂直方向上移动,因此可以瓶子顶端构成的边缘线作为参考,通过测量液位(由亮到暗的边缘)到该参考线的距离来判断液位是否合格。距离大于指定阈值,则说明液位过低;距离小于阈值,则说明液位过高。程序设计思路如下所示:
程序一开始先将被测图像读入内存,并设定了用于从上到下、从左到右检测边缘的矩形 ROI;
随后程序调用 IMAQ Find CoordSys(2 Rects)2,基于从这两个 VI 中检测到的边缘来创建测量坐标;
在创建测量坐标时,IMAQ Find CoordSys(2 Rects)2 先将从上到下搜索到的边缘线作为坐标系的纵轴(主轴),然后再以从左到右搜索到的边缘与水平边缘的交点为坐标原点,参照坐标系的类型(直接/间接)确定坐标系的横轴。Options 参数用于控制边缘的搜索过程和搜索结果的显示。
程序设计如下所示:
如下图所示的实例运行结果中显示了搜索矩形、搜索方向和最终确定的坐标系:
资源下载请参见:LabVIEW目标测量方法:目标搜索-硬件开发文档类资源-CSDN下载
2、特征定位
搜索到被测目标并确定了测量坐标系之后,就可以定位被测特征的位置。由于实际工业生产环境中被测目标并不总是固定在视场中,因此待测的特征位置也会随着目标在图像中平移、旋转。这意味着对每一幅采集到的图像,开发人员必须先设法重新定位被测特征的位置,才能进行准确测量。
如前所述,可以基于参考坐标系和测量坐标系来解决这一问题,其过程可分为以下两步:
在系统初始化阶段,从标准图像中搜索被测目标,确定参考坐标系并放置定位待测特征的 ROI;
在系统采集和检测阶段,从每幅被测图像中重新搜索目标位置更新测量坐标系,并根据新坐标系和参考坐标系的关系,变换搜索待测特征的 ROI 位置。
例如,以下视频显示了牙线检测系统特征定位过程各阶段的坐标系与 ROl 的变换情况。
00:09
LabVIEW 牙线产品合格检测
不脱发的程序猿
的视频
· 69 播放
这个案例的实现原理如下所示:
在初始化阶段,程序调用 IMAQ Find CoordSys(Pattern)3 从标准件中搜索牙线底座,并根据匹配到的目标位置、角度创建参考坐标系;
为了能根据牙线的有无(区域灰度)判断产品的质量,程序还参照参考坐标系放置了检测牙线的 ROI;
此后,对于每一个被测件的图像,程序再次调用 IMAQ Find CoordSys(Pattern)3 从图像中定位牙线底座的位置,并根据其位置、角度更新测量坐标系;
一旦得到新的测量坐标系,程序就可以根据参考坐标系和测量坐标系之间的关系,对特征 ROl 的位置进行相应的平移和旋转,确保待测特征能准确落在 ROI 中。
3、几何测量
准确锁定目标和待测量的特征后,就可以基于特征进行各种测量任务。Nl Vision 提供的目标测量函数可分为卡钳、卡尺和解析几何法三大类。使用这些工具可以实现距离、角度、面积等物理量的测量。
3.1、卡钳
卡钳工具位于 LabVIEW 的视觉与运动→Machine Vision→Measure Distance 函数选板中,如下所示:
函数说明及使用可参见帮助手册:
使用卡钳不仅可以测量同一方搜索向上目标两边缘之间的最大或最小距离,还可以测量目标轮廓上位于同一直线上的两点间的最大距离,测量原理可如以下方式理解:
通过使用 IMAQ Clamp Horizontal Max 测量某一工件沿矩形 ROI 水平搜索方向上最大距离的实例,了解卡钳的使用方法。
程序已开始先为图像处理分配内存,读取图像文件并设定默认矩形搜索区域。随后,While 循环将监测下述 3 个条件:
循环是否首次执行;
图像显示控件中是否有绘制 ROI 的 Draw 事件发生;
测量类型控件 Distance Type 的值是否有变换。
程序设计如下所示:
通过运行程序,效果如下所示:
资源下载请参见:LabVIEW目标测量方法-硬件开发文档类资源-CSDN下载
3.2、卡尺
与卡钳工具在图像中测量两个平行线所夹的目标长度不同,卡尺工具则主要用来沿图像中某一指定的 ROI 路径检测该路径上的边缘、灰度峰值,根据该路径上像素特征检测目标的旋转角度,或者测量 ROI 路径上的其他图像特征。测量原理可如以下方式理解:
Nl Vision 提供的卡尺工具位于 LabVIEW 的视觉与运动→Machine Vision→Caliper 函数选板中,如下图所示:
函数说明及使用可参见帮助手册:
Nl Vision 的 Caliper 工具中的大多数边缘检测 VI 在前面已经详细介绍过。例如,IMAQSimple Edge 和 IMAQ Edge Tool 3 用于边缘点的检测。其中 IMAQ Simple Edge 可以沿一维像素序列检测其中的灰度边缘点;IMAQ Edge Tool 3 则可基于优化后的边缘检测算法,沿图像中任意指定的路径检测各类边缘点,包括上升边缘、下降边缘、搜索路径上的首、尾或所有边缘点以及边缘强度最大的最佳边缘点。
除了边缘检测,Caliper 工具中还包括波峰–波谷检测、边缘对检测、灰度插值、边缘间距测量和旋转检测等函数。IMAQ Peak-Valley Detector 可检测以数组形式输入的一组像素波峰或波谷的位置、灰度以及二阶导数。它依次对个数等于宽度(Width)参数的像素进行二次多项式拟合,然后将结果与阈值(Threshold)参数比较,最终返回高于阈值的波峰或低于阈值的波谷部分。
3.3、解析几何
卡钳和卡尺工具可直接对图像中的目标进行尺寸测量,解析几何法则基于各种图像分析或图像处理结果,使用解析几何原理,间接计算各种待测量的值,如距离、面积或角度等。
Nl Vision 提供的解析几何函数位于 LabVIEW 的视觉与运动→Machine Vision→Analytic Geometry 函数选板中,如下图所示:
按照处理对象和计算结果不同,Nl Vision 的解析几何函数可以分为点、线、角度、面积以及曲线拟合相关的几大类。
与像素点相关的函数 IMAQ Point Distance 可以计算像素与像素之间的距离,IMAQ Lines Intersection 可计算两直线的交点,IMAQ GetPointsOnLine 可返回输入直线所覆盖的所有像素点,IMAQ GetPointsOnContour 则可提取图像中的边缘并返回各边缘上的像素及各边缘的信息。与线相关的函数 IMAQ Perpendicular Line 可确定一点到直线的垂直线并计算点到线的距离,IMAQ Bisecting Line 可确定两直线的平分线,IMAQ Mid Line 则用来计算某一点与某一直线的平分线。
函数说明及使用可参见帮助手册:
使用机器视觉进行目标测量的目的可大致分为两类:一是对目标的尺寸进行度量,二是根据测量得到的尺寸信息判断被测件的质量。
无论出于何种目的,多数机器视觉目标测量系统最终都需要求得被测件的实际尺寸信息,或根据被测件的实际尺寸信息作出检测结果的判定。这不仅要求机器视觉目标测量系统必须被校准,还要求像素分辨率能最大限度地满足测量的要求。
系统校准过程不仅可建立图像与世界坐标的关系,还能矫正系统畸变。它先建立系统的数学模型,然后再根据系统特性选择能使真实坐标与通过模型计算得到的对应坐标的误差平方和最小的参数,以最终确定系统的模型公式。常见的系统校准方法包括简易校准法和点阵校准法,后者常用于对透视畸变、镜头径向或切向畸变以及非线性畸变进行校准。
版权声明: 本文为 InfoQ 作者【不脱发的程序猿】的原创文章。
原文链接:【http://xie.infoq.cn/article/a0c77aea41eed020ac85e143f】。文章转载请联系作者。
评论