机器视觉原理及应用--控制网



机器视觉原理及应用
企业:控制网 日期:2005-06-13
领域:SCADA-RTU 点击数:5950

摘要:主要介绍了机器视觉的测量原理及其在尺寸测量上的应用,系统通过运动控制卡驱动伺服滑台,带动产品运动,在运动中通过CCD相机将被测目标转成图像信号而送至影像处理卡。PC对经初步处理的信号进行各种运算来抽取目标特征,进而转化成尺寸测量数据。
关键词:机器视觉;CCD;相机;影像处理卡;运动控制卡;测量

Abstract: The paper presents the principle of the PC-based machine vision systems and the application in range measurement. The images of the measured objects are taken by a CCD camera, and then sent to the vision card .The features of object are extracted by processing the information of images by a pc, and the final range data is obtained from these features.
Key words: Machine vision; CCD; Camera; Vision card; Motion card; Measurement

1  前言

    在电子行业日新月异飞速发展的情况下,电子连接器的发展也一日千里,日益呈精巧化发展。如SMD类产品(如IC及连接器等)的平面度(coplanarity)一般为0.08mm~0.1mm,其间距(pitch)也由2.54mm发展到0.6mm、0.5mm甚至0.4mm。再如PC主板中CPU连接器(Socket)也由PGA发展成BGA封装。而其生产过程中零件及成品的尺寸测量的在线测量用传统方式已无法胜任,采用机器视觉测量渐渐被业界所接受,本文即就机器视觉在电子连接器生产中在线尺寸测量的具体应用做一详细介绍。

2  机器视觉原理及特点

    所谓机器视觉,就是用机器代替人眼来做测量及判断。具体来讲,是指通过镜头将被测目标转化为图像信号,投射至影像接受器件(一般为CCD元件)上再通过计算机进行分析处理。CCD是英文(Charge Coupling Device)的缩写,其中文含义为电荷耦合组件。当不同强度的光线照射在CCD表面,CCD即发生光电效应,产生对应分布的电荷量。通过模数转换即可得到对应的数字量。由于一般均采用8位模数转换,则最低强度光线(黑)到最高强度光线(白)分成256等分(0~255),专业术语称之为灰阶或灰度。
    当外部影像通过镜头投影到一块由很多CCD组成阵列的元件板上,每个CCD即可分到该影像的一部分。这样计算机通过A/D转换,读取所有CCD的数据,从而就可得到一幅完整的影像。由于CCD阵列有很多种组合,如:512*480、640*480、800*600、1024*768等等,专业术语称之为解析度。其中每个CCD称为一个像素(pixel)。当CCD阵列已固定,如采用800*600 CCD,一幅影像即被分成800*600等份。当计算机从CCD端取得一幅影像,即根据系统的灰阶设定,通过二值化处理,得出影像的轮廓。即可得出指定部位轮廓的像素位置差,根据以标准量块对每像素对应尺寸进行标定,得出换算系数。从而可得出指定测量的尺寸数值。
    机器视觉系统的特点是测量精确、稳定、快速、可大幅度提高生产的柔性及自动化程度以提高生产效率,且易于实现信息集成,是实现计算机集成制造的核心技术之一。如在一些不适合人工作业的危险环境;在当前大批量工业自动生产过程中,用人工检查产品质量效率过低且精度不高;和其他一些人工视觉难以满足要求的场合,机器视觉正在迅速取代人工视觉。事实上,也正因如此,在世界上现代自动化生产过程中,机器视觉已经广泛用于工况监控,成品检验及其他质量控制等领域。在我国,这种应用也逐渐被认知,对机器视觉的需求也越来越多。

3  系统技术方案简述

    本系统整体技术方案为:在自动流水线上,由自动机械手A将被测产品从包装盘中用真空吸盘吸取,放置在测量承座上。由伺服滑台带动向前运动,每运动到一个测量位置,即通过PC触发CCD相机取像,取像结束,伺服滑台又运动到下一个测量位置,同时即对取得影像进行处理,待全部图像取完即测量完成。系统根据设定的规格判别产品的PASS/FAIL,如为PASS则由自动机械手B将其取放至下一个工位;如为FAIL则由该机械手将其取放至不良品放置盒以等待处理。其系统架构如图1所示。


图1  系统架构框图

4  系统硬件架构

    系统主要包括CCD相机、镜头、光源、PC(含影像处理卡及运动控制卡) 、伺服执行机构等。其主要架构可分为影像测量及位置控制两大部分。
4.1  影像测量部分
    (1)  CCD相机 
    CCD相机结构基本上与普通相机差异不大,其中最重要的不同在于普通相机的感光元件是胶卷,而CCD相机的是CCD元件。根据CCD元件结构不同,大致可分为线阵CCD相机及面型CCD相机,而线型CCD又可分单沟道线阵CCD和双沟道线阵CCD,面阵CCD根据排列方式可分帧转移、隔列转移、线转移及全帧转移等方式;根据CCD元件辨别色彩能力分黑白型CCD相机及彩色CCD相机。在工业控制领域用途最广的是面型CCD相机(黑白型)。
    当使用普通相机在拍摄快速运动的物体时,图像容易模糊,这要求相机缩短曝光时间即提高快门速度。在CCD相机中,可通过电子快门来实现。CCD相机控制每个像素的电荷积累时间,以控制入射光在CCD芯片上的作用时间,也即只将某一段时间产生的电荷作为图像信号输出,而其他时间产生的电荷则排放掉不予使用。这样,就等效于缩短存储电荷时间,相当于缩短光线照射在CCD上的时间,如同加了快门一样,这就是电子快门的工作原理。
    本系统中采用日本日立公司KP-F3W黑白模拟CCD相机,该相机内置1/3英寸CCD,其最大像素为699(横)*503(纵),其有效像素为647(横)*485(纵)。其电子快门速度为1/16000,1/8000,1/4000,1/2000,1/1000,1/500,1/200可选。
    (2)  镜头
    镜头的选择对系统来说也很重要。普通摄像镜头的最小工作距离约为500mm左右,但在工业机器视觉测量,一般要求工作距离都较小,常为30mm~100mm之间。所以在使用中要采用近摄头镜。简单的近摄镜头是在普通镜头和CCD相机之间加入一个接圈,使CCD可以位于镜头的像方聚焦面之外一段距离,从而可以摄取到较近距离目标的像,但它受到图像清晰度的限制。一般在要求较高的机器视觉系统中均采用专用的近摄镜头。
    首先,镜头的成像面一定要与CCD相机相匹配。CCD芯片一般有1/3英寸、1/2英寸、2/3英寸等等。镜头的成像面不可小于CCD芯片,当然也不要过大。另外如焦距、景深、视野和最小工作距离等也很重要。所有的这些选择,并没有一成之规,只能根据实际情况来决定,如每幅图像所需覆盖的有效工作范围、系统的允许空间、被测物体是否凹凸不平等。一般来说,选择镜头尽可能选择最小工作距离较小,视野较大,且景深较大同时镜头本身的畸变最小。
    (3)  光源   
    一个稳定可靠的处理系统,不能仅局限于在实验室里获得一时性的优质影像,重要的是在实际的生产现场持续获得高质量,高对比度的影像。因为与实验室不同,生产现场环境条件会出现各种变化如环境光线的变化,被测物体表面状况,材质和倾斜角度,被测产品种类的更换等。为保证系统的稳定性,提高照明光源的品质是至关重要的。据有关统计,机器视觉系统不稳定的因素60%以上来自光源的选用不当或打光方式有误。然而,适合于各行各业的万能通用光源是不存在的。以业界观念来看,适合的就是最好的。实际在选光源时,一般根据实际情况和经验决定选择哪一类光源,最好能在决定前先多试用几种以观察效果。
    常见的光源有白灯、卤素灯、LED光源、荧光灯。而现在LED光源在机器视觉上应用越来越广。LED光源主要有以下特点:使用寿命长,反应时间短,有红、绿、蓝等颜色可选。选好光源后,一定要注意周围环境光源对系统的影响,尽可能将测量装置用不透明的防护罩以防干扰。
    本系统采用打正光方式,主光源为常见的红光环形LED光源,再辅45平板式光源以加强影像对比度,如图2所示。


图2  系统光源结构图

    (4)  影像处理装置
    一般机器视觉系统采用基于单独控制器方式或基于PC-BASE影像处理卡方式。二者各有所长,前者简单易用,体积较小,在机器视觉行业应用十分广泛;后者应用较复杂繁琐,但因基于PC的强大数据处理功能及网络能力,且价格较低,于近年来发展迅速,前景可观。
    本影像处理系统采用凌华科技股份有限公司(ADLINK,以下简称凌华公司)代理的EureSys Domino Lota影像卡。该卡为32 BIT PCI总线,支持DMA工作方式,内置8Bit 32MHz A/D转换器和8M板上缓存,同时支持2通道模拟CCD相机输入。
4.2  位置控制部分
    因本测量系统的位置控制如前所述,即为采用运动控制卡驱动伺服电机,带动工作滑台运动。运动控制卡采用凌华公司(ADLINK)的PCI-8132,该卡为2轴步进/伺服运动控制卡。同样为32 Bit PCI总线,采用脉冲输出工作方式,输出最大频率可达2.4MHz。可同时控制2轴电机进行直线/圆弧插补。因本部分只需进行点对点直线运动,结构相对较为简单,其他部分则不再详细介绍。

5  系统软件结构

    本系统软件采用Windows 2000环境下Visual Basic 6.0作为开发平台,以eVISION 7.0和凌华公司所提供的运动控制卡动态链接库文件(*.DLL)为基础开发而成的。
    本系统软件为适应被测产品的多样性,采用了参数化教导测量模式。在新建一个测量模式时,系统根据使用者的设定,以测量画面为单位,记录下每个画面的图像处理参数和运动控制参数而存储为测量参数文件。系统启动后,根据使用者要求调用指定的参数文件,取得各项参数,自动进行测量。
    系统软件同样可分影像处理部分及位置控制部分。
    在影像处理软件部分,由于EureSys Domino Lota影像卡可提供动态连接库文件(.DLL文件)和ActiveX控件(Evison.ocx)。在本系统设计时采用了ActiveX控件(Evison.ocx)。该控件功能十分强大,与系统接口方便易懂。以下就部分程序代码做一说明。
    影像处理卡初始化子程序:
    Dim ImageSizeX As Long
    Dim ImageSizeY As Long
    '设定系统信号输入架构为可同时接受2支CCD Camera
    EConfiguration1.SetParamNm "BoardTopology", "1_1"
    '设定系统CCD Camera的影像输入通道为Y channel
    ECamera1.Mpf = "ALPHA_Y"  
    '设定系统所使用的CCD Camera的参数文件,以使影像处理卡同CCD Camera有效通信
    ECamera1.SetParamNm "CamFile", "KP-F3W_P60SA" 
    '读取CCD Camera 的实际取像尺寸大小
    ImageSizeX = ECamera1.GetParamNm("ImageSizeX
    ImageSizeY = ECamera1.GetParamNm("ImageSizeY")   
    '设定显示画面的尺寸大小与实际CCD Camera 取像尺寸大小相同
    EBW8Image1.SetSize ImageSizeX, ImageSizeY  
    '设定Camera1的取像Buffer为 EBW8Image1
    ECamera1.Cluster = EBW8Image1 
    ECamera1.SetParamNm "SignalEnable", "Filled"   
    '设定Trigger模式
    ECamera1.SetParamNm "TrIgMode", "IMMEDIATE"         
    '设定连续取像
    ECamera1.SetParamNm "GrabCount", -1                
    ECamera1.SetParamNm "ChannelState", "Active"
    '画面刷新
    EBW8Image1.Refresh

    在影像处理软件中,取得影像后需要对其进行一定的前置处理,如增益调整、光线补偿、锐化、边缘提取等处理后才能得到一幅较好的影像以利后段测量。另外,实际上由于产品在装夹过程中无法保证每次装夹位置完全一致,为避免装夹所造成测量误差,需要对影像采用位置补偿处理。
    为降低系统处理工作量,减少不必要的处理时间。系统可以通过在显示图像上设定检测区域,在该区域即进行处理,区域外则不处理,从而大大节省了处理时间。在检测区域通过图像灰阶变化而识别为边缘,同时加以过滤,以避免影像中某些亮点对测量造成误判。
    以下以采集测量边缘上的点坐标数值给出子程序范例:

    Dim i As Byte
    Dim j As Byte
    Dim SamplingPoint As Byte
    Dim CenterX, CenterY As Single
     '画面刷新
    EBW8Image1.Refresh  
    '读取需要采集的点的数量
    SamplingPoint = CCDMeasureParameter.FormROINumber(CurrentSetForm)
    For j = 1 To SamplingPoint
       If CCDMeasureParameter.FormROIArray(CurrentSetForm, j) Then
          CCDEPointGauge(1).Load "D:\CCD自动机\" & CurrentSetForm & j & ".ccd", False
          CenterX = CCDEPointGauge(1).CenterX
          CenterY = CCDEPointGauge(1).CenterY
             For i = 2 To SamplingPoint
              CCDEPointGauge(i).Load "D:\CCD自动机\" & CurrentSetForm & j & ".ccd", False
              CCDEPointGauge(i).SetDragable False, False
              CCDEPointGauge(i).SetResizable False, False
              CCDEPointGauge(i).SetRotatable False, False
              CCDEPointGauge(i).SetCenter CenterX + (i - 1) *     CCDMeasureParameter.FormROIDistance(CurrentSetForm) * 100, CenterY
          Next
          For i = 1 To SamplingPoint
              CCDEPointGauge(i).Measure EBW8Image1.object
          Next
       End If
    Next

    值得注意的是,测量所返回的数据并不是实际的尺寸值,而是像素。要得到最后的实际尺寸数据,需要对其进行标定。标定的方法为:取一个标准尺寸的工件,放在系统进行多次测量,去除变异的数据然后取平均值,其与实际尺寸相比较即为标定转换系数。系统在运算时,用像素值除以该系数即为测量的尺寸值。 
    在伺服控制软件部分中,由于PCI-8132运动控制卡提供动态链接库文件,能方便地与VB开发环境相结合,系统可调用动态链接库文件中的函数来直接操作,以进行原点回归、直线运动及快速返回等。

6  结语

    本机器视觉测量系统现应用于手机连接器自动生产线的在线测量,能对多种产品的二维尺寸如间距(PITCH)、长度、宽度、位置等进行快速在线测量。其CCD像素基本测量精度为0.01mm,通过软件细分,实际测量精度可达0.003~0.005mm。经过一年多的实际上线运行,证明该测量系统运行稳定,测量结果精确可靠,有效地保证了产品品质,取得良好的经济效益。

参考文献:
[1]  王庆有. CCD应用技术[M]. 天津大学出版社,2000.

  • 在线反馈
1.我有以下需求:



2.详细的需求:
姓名:
单位:
电话:
邮件: