基于机器视觉与图像处理的IC浅插检测研究与应用

2015-07-18 11:26
关键词:插槽图像处理机器

柏 涛 涛

(安徽广播电视大学滁州分校区,安徽 滁州 239000)

基于机器视觉与图像处理的IC浅插检测研究与应用

柏 涛 涛

(安徽广播电视大学滁州分校区,安徽 滁州 239000)

电子产品中IC的pin脚需要准确插入插槽完成电路连接,但是在实际作业中往往存在一定程度的浅插,即电路连接不到位,不符合工业规定,造成不良多发。本系统基于机器视觉与图像处理,构建一个完整的工程。首先基于相机VB版SDK二次开发,完成图像采集。然后评价光源、镜头,构建视觉硬件平台。接着,基于C++、OpenCV开发浅插检测算法,封装成DLL在VB.NET的环境下调用。最后基于VB.NET开发软件UI,集成PMS功能、IO通信、USB读码功能。经过实验验证,与人工检测相比,本系统在速度、精度上有绝对优势,可应用于工程。

浅插检测;图像处理;机器视觉;OpenCV;VB.NET

0 引言

近年来,随着社会发展和科技进步,人们对显示器的需求量越来越大,尤其在金融、安防、传媒领域。这些日益旺盛的需求不断刺激了电子制造的产量,产量提升的同时,人们越来越多地开始关注产品质量和制造效率[1-3]。显示器中IC的pin脚需要插入插槽,在实际作业中往往存在一定程度的浅插,目前检查方法主要依靠人眼检查。由于人眼本身带有主观性和局限性,往往无可避免地会发生不良漏检,而且效率低下,同时随着经济发展,人力成本也越来越高。在这样的背景下,越来越的工厂提出智能工厂、工业4.0、自动化、信息化的概念并逐步实施。

本文对IC的pin脚浅插问题展开研究,系统基于机器视觉思想,评价相机、光源、镜头,构建视觉硬件平台。基于图像处理理论,研究检测算法,采用C++、OpenCV开发浅插检测算法,封装成DLL在VB.NET的环境下调用。基于软件开发,构建起一个完整的工程,首先基于相机VB版SDK二次开发,完成图像采集。然后基于VB.NET开发软件UI,集成PMS功能、IO通信、USB读码功能。

图像处理系统根据目标的形态、颜色、亮度特征得到判别结果来控制现场设备动作。机器视觉技术在中国市场的热度成上升趋势,应用范围涵盖工业、农业、医药、安全、航天、军事[4-6]。其主要原因是中国已成为全球制造业加工中心,高要求的零部件加工及其相应的生产线,对先进水平的机器视觉系统需求越来越大。机器视觉系统的优势是:①提高生产柔性,在危险环境下代替人工视觉;②大批量生产过程中,提高自动化程度;③易于实现信息集成,是实现计算机集成制造的基础技术[5]。

本系统的软件架构主要是运用C++开发算法,由VB.NET承担UI、采集、机构通信、网络通信等。采用这样结构的原因是:C++直接编译成机器代码,可以充分发挥硬件性能,而如果使用脚本语言如matlab,运行时翻译成机器代码,这样会消耗一定的硬件能效。同时,matlab还需要有授权的license,且不同版本还有不兼容,相比之下,很多开源数值计算库都采用C++开发。C++管理内存灵活,可提前预算需要多少内存,而脚本语言在解释过程的内存无法提前预知,所以本系统采用C++开发算法。当然C++也有缺点,某些具体功能不如其他语言方便,比如处理文本、操作字符串,尤其是可视化方面[7-10]。相比之下,这些不足正是VB.NET的优势。所以本系统采用VB.NET开发系统UI、通信等。

最后实验证明研究机制实现了预期功能,精度优于传统算法机制,效率高于人工机制。

1 机器视觉系统整体机制

构建机器视觉系统的难点在于相机、镜头、光源的选型,评判标准取决于取像是否清晰,对比度是否明显,是否有利于后期图像分析。本系统中的视觉硬件主要由工业相机、CCTV镜头、同轴光、环形光组成。工业相机采用basler-aca2500-14 um,分辨率2 590*1 942,感光芯片是AptinaMT9P,CMOS滚动快门,帧速率14帧/S。镜头采用kowa-25mm-CCTV。同轴光源(漫射同轴灯)提供了比传统光源更均匀的照明,因此提高了机器视觉的准确性和重现性。环形光源可以突出显示被测物体边缘和高度变化,突出原本难以看清的部分。最终打光效果如图1所示,可见图像清晰、对比度明显。

本系统图像处理部分由工控PC完成,PC与相机用千兆网线连接。PC同时还承担与机构交互、与服务器PC通信的功能。整个系统硬件组织架构图如图2所示。

图1 采集图像 图2 本系统架构图

2 基于图像处理的浅插检测算法

检测IC是否浅插,根据IC与插槽间距离是否在标准距离范围内来判断。如图3所示,pin脚中第二条白色长杠露出,即浅插不良。图1中第二条白色长杠未露出,只露第一条白色长杠,为良品。本系统根据第一条白色长杠中心点与插槽中心点距离来判断是否浅插。经过一定量良品测试,得出标准距离50 mm,如果低于标准值,则判为不良,即浅插。

图3 浅插图像

算法主要步骤:

1)观察一定数量的材料,划定IC和插槽所在的大致区域,以保证IC和插槽在区域内为前提,提取ROI,这个ROI区域是经验值。采用OpenCV函数cvSetImageROI,从原图提取感兴趣区域图像,采用cvCopy函数把感兴趣区域图像数据复制到目标图像,最后用cvResetImageROI函数释放原图ROI。

2)对IC和插槽进行定位,计算两者中心位置和距离。分析图像可知,IC第一条白杠与插槽轮廓明显,采用OpenCV的cvMatchTemplate函数定位目标轮廓。该函数先在原图中截取目标,作为模板,然后对测试图像划分区域后,进行模板定位,依次计算模板与待测图像的重叠区域相似度。匹配方法支持平均差匹配法、相关匹配法、相关系数匹配法、归一化平方差匹配法,本系统采用平均差匹配法,匹配值最好为0,匹配越差,匹配值越大[11,12]。cvMinMaxLoc函数得到匹配最大值最小值对应的坐标。定位结果见图4与图5。其中,图4是定位算法对图1的定位效果;而图5是定位算法对图3的定位效果。

3)对IC第一条白杠与插槽轮廓定位成功,用红色矩形框画出轮廓,表示定位准确程度,再计算出矩形框中心点,即IC第一条白杠与插槽轮廓中心点坐标。此时,容易计算出2坐标距离,即IC第一条白杠与插槽轮廓距离,根据上节得到的标准距离50 mm,判断是否不良。

图4 识别效果 图5 识别效果

检测算法部分关键代码:

IplImage *src_qiancha;

cvSetImageROI(image1,cvRect(image1->width/3,image1->height/3,image1->width/3,image1->height/3));

src_qiancha=cvCreateImage(cvGetSize(image1),image1->depth,image1->nChannels);

cvCopy(image1,src_qiancha,NULL);

cvResetImageROI(image1);

IplImage *temp_qiancha,*ftmp_qiancha;

temp_qiancha=cvLoadImage("qiancha1.bmp");

int iw=src_qiancha->width-temp_qiancha->width+1;

int ih=src_qiancha->height-temp_qiancha->height+1;

ftmp_qiancha=cvCreateImage(cvSize(iw,ih),32,1);

double min_val;

double max_val;

cvMatchTemplate(src_qiancha,temp_qiancha,ftmp_qiancha,1);

cvMinMaxLoc(ftmp_qiancha,&min_val,&max_val,&min_loc_qiancha,&max_loc_qiancha,NULL);cvRectangle(src_qiancha,cvPoint(min_loc_qiancha.x,min_loc_qiancha.y),cvPoint((min_loc_qiancha.x+temp_qiancha->width),(min_loc_qiancha.y+temp_qiancha->height)),CV_RGB(255,0,0),2,CV_AA,0);

cvCircle(src_qiancha,cvPoint((min_loc_qiancha.x+temp_qiancha->width/2),(min_loc_qiancha.y+temp_qiancha->height/2)),6,CV_RGB(255,0,0),-1)。

3 基于.NET的软件UI开发

本系统界面采用VB.NET开发,界面主要功能有:图像采集、读码、电算(PMS)、IO卡通信。图像采集主要基于相机VB.NET版本的SDKAPI函数进行二次开发,这需要了解SDK开发手册后进行。用SDK函数驱动相机,取出采集到的裸数据,转换为VB环境下的Bitmap格式,最后基于传入C++DLL处理。电算部分,基于VB控件WebRequest,将带有数据信息的一串连接传入该控件,通过网线传入服务器。读码器采用外接USB接口,基于VB控件SerialPort读取读码枪信息。本系统与硬件机构交互,依靠IO卡传输信号,通过VB驱动IO卡SDK的API函数,实现视觉与运动机构的互动。当传送带承载材料到位时,IO卡发送信号给PC,PC进行取像和处理,完成后发送信号给IO卡,传送带继续前进。

VB版SDK二次开发关键代码:

Pylon.Initialize()

numDevices=Pylon.EnumerateDevices()

hDev=Pylon.CreateDeviceByIndex(0)

Pylon.DeviceOpen(hDev,Pylon.cPylonAccessModeControl Or Pylon.cPylonAccessModeStream)

Pylon.DeviceFeatureIsAvailable(hDev,"EnumEntry_PixelFormat_Mono8")

Pylon.DeviceFeatureFromString(hDev,"PixelFormat","Mono8")

Pylon.DeviceFeatureIsAvailable(hDev,"EnumEntry_TriggerSelector_AcquisitionStart")

Pylon.DeviceFeatureFromString(hDev,"TriggerSelector","AcquisitionStart")

Pylon.DeviceFeatureFromString(hDev,"TriggerMode","Off")

Pylon.DeviceFeatureIsAvailable(hDev,"EnumEntry_TriggerSelector_FrameStart")

Pylon.DeviceFeatureFromString(hDev,"TriggerSelector","FrameStart")

Pylon.DeviceFeatureFromString(hDev,"TriggerMode","Off")

Pylon.DeviceFeatureIsWritable(hDev,"GevSCPSPacketSize")

Pylon.DeviceSetIntegerFeature(hDev,"GevSCPSPacketSize",1500)

电算发送、读码、IO卡关键代码:

WEB.Navigate(PATH)

BarcodeID=SerialPort1.ReadExisting()

DASK.DO_WritePort(m_dev,0,1)

m_dev=Register_Card(PCI_7230,0)

4 实验与讨论

本文不但实现了浅插检测算法,而且从系统工程高度,搭建并实现了整个流程:视觉硬件选型、平台搭建、视觉算法开发、UI开发、电算、读码、IO卡通信功能集成。同时实现了整个机器视觉系统,并满足工厂实际需求及整个生产流程所需要的功能。实验验证,此机制可以对浅插不良产品进行视觉检测,并且与机构进行交互。而传统人工机制具有主观性、同时效率有限,灵活性极差。

图6为本系统软件UI图,有图像采集和显示功能、定位检查功能,操作方便,界面友好,非常适合工厂作业员使用。图7为待定位检查图,图8为定位检测结果图,可见准确定位第一条白杠和插槽中心点位置。

图6 本系统UI图

以下对相同一组材料(1 000枚)进行检测,先用人工检查;然后本研究开发的系统检查,分别记录所用时间和检查结果。结果见表1。由表1可知,本研究机制的检查精度比人工机制要高,所用时间也少于人工机制。

表1 测试数据表

图7 待定位监测图 图8 定位结果图

5 结 论

为了解决当前制造业人力成本越来越高及人工检测的精度、效率问题,本研究从视觉硬件搭建、算法开发、到UI通信功能集成,实现整个机器视觉系统。以工厂实际需求为导向,从系统的高度实现了该解决方案,应用于产品IC浅插不良检测。吸收VB开发UI的效率优势和界面友好优势,同时吸收C++开发算法的灵活优势,选择了兼容性好且打光效果稳定的视觉硬件。实验结果表明:与传统人工机制相比,本研究机制具有更好的精度和更高的效率。

[1]黄紫青.基于机器视觉的芯片引脚识别与中心定位算法研究[J].软件导刊,2015,31(02):227-240.

[2]王云良.基于机器视觉的O型圈质量检测智能系统开发[J].软件导刊,2015,1(11):83-87.

[3]陈大川.基于机器视觉的铰链精密检验系统[J].机电工程技术,2015,3(04):11-15.

[4]黄志平.基于机器视觉的工业炸药包装缺陷在线检测系统[J].爆破器材,2015,53(07):96-99.

[5]宋玉琴.基于机器视觉的太阳能电池片外观缺陷检测[J].单片机与嵌入式系统应用,2015,43(10):86-90.

[6]吕鸣.提高自学考试答题卡识别准确率的探讨及实践[J].中国考试,2011,23(02):371-376.

[7]Noori H,Saryazdi S.A bilateral image inpainting[J].IJST Trans Electr Eng,2011,25(E2):95-108.

[8]Y Kuang,L Zhang,Z Yi.An adaptive rank-sparsity K-SVD algorithm for image sequence denoising[J].Patt Recogn Lett,2014,33(17):1021-1032.

[9]吴忠云.机器视觉检测技术在烟箱缺条检测方面的运用[J].制造业自动化,2014,8(15):42-47.

[10]Ehmann J,Pappas T,Neuhoff D.Structure texture similarity metrics for image analysis and retrieval[J].IEEE Transact,2013,22(7):2545-2258.

[11]Xu X Y,Xu S Z,Jin L H,et al.Characteristic analysis of Otsu threshold and its applications[J].Pattern Recogn,2011,2(01):124-128.

[12]赵霁文.机器视觉测量中成像系统光瞳球差对测量影响的研究[J].光学与光电技术,2014,36(04):181-185.

[责任编辑:王荣荣 英文编辑:刘彦哲]

Research and Application on IC Shallow Detection Based on Machine Vision and Image Processing

BO Tao-tao

(Anhui University of Radio and Television at Chuzhou,Chuzhou,Anhui 239000,China)

IC pin in electronic products needs to be accurately inserted into the slot to complete circuit connection,but in actual operation there is certain degree of shallow,that is the circuit connection is not in place to meet the requirements of industrial,resulting in adverse multiple.This system is based on machine vision and image processing to build a complete project.First,based on the camera VB version of SDK two development,image acquisition is completed.And then,after the evaluation of the light source and the lens,the visual hardware platform is constructed.Then,based on OpenCV,C++ to develop the shallow detection algorithm,DLL is encapsulated in the environment of VB.NET call.Finally,based on VB.NET,UI integrated PMS function,IO communication and USB read code function.After the experiment,compared with the manual detection,this system has the absolute advantage in speed and accuracy,and can be applied to engineering.

shallow detection;image processing;machine vision;OpenCV;VB.NET

安徽省自然科学基金资助项目(KJ2013B091)

柏涛涛(1983-), 男,安徽凤阳人,安徽广播电视大学教师,硕士。研究领域:图像处理、计算机应用。

TP 391

A

10.3969/j.issn.1673-1492.2015.04.010

来稿日期:2015-05-27

猜你喜欢
插槽图像处理机器
机器狗
机器狗
英特尔发布 第3代至强处理器
基于ARM嵌入式的关于图像处理的交通信号灯识别
基于图像处理的机器人精确抓取的设计与实现
机器学习在图像处理中的应用
未来机器城
升级M.2没反应 PCI-E共享通道要注意
KD399:便装式窗帘固定架
基于图像处理的定位器坡度计算