基于OpenCV的桌面贴片机上位机设计

2016-05-30 10:48朱佳鹏罗梓杰庄钧善陈燕林
科技创新导报 2016年15期
关键词:贴片机上位机

朱佳鹏 罗梓杰 庄钧善 陈燕林

摘要:目前市场上贴片机种类繁多,但它们的整体布局均有类似之处,多数大型贴片机上都采用了视觉对中系统,但小型桌面贴片机则较少采用视觉对中系统。因此本文设计了一种调用OpenCV视觉库的上位机,可应用于小型桌面贴片机,构建视觉对中系统,实现图像的采集、处理、轮廓识别提取、角度偏移计算以及与下位机通讯。

关键词:贴片机;OpenCV视觉库;视觉识别;上位机

Abstract:There are many different kinds of SMT machine on the market at present, but their overall layout all has similarities, visual system is used in most large SMT machine, but less desktop SMT machine use visual system.So this article designs upper machine called OpenCV visual library, can be applied to small desktop SMT machine, build a visual system, realize the recognition of the image acquisition, processing, contour extraction, angular deflection calculation and communicates with the lower machine.

Key words: SMT machine;OpenCV Database;Visual Identity;Upper Monitor System

中圖分类号:TP273 文献标识码:A 文章编号:1674-098X(2016)05 (c)-00

0 引言

当前电子产品发展的方向是更轻,更小以及更稳定,精密的电子产品需要高精度的贴片机来保证制造精度,这样在制造精度和工作效率上对贴片机提出了更高的要求,既要降低生产成本与其它费用,也要提高市场中的普及程度。现在国外贴片机生产厂商纷纷采用视觉对中系统来提高贴装的精度和准确性,而国内这方面才刚刚起步,虽然有厂家在大型贴片机上采用了视觉对中系统,但经济的小型桌面贴片机多数没有采用视觉对中系统,只能靠机械对中来贴小元件,其他的密脚芯片等则都需要手工补贴,而且贴装精度受摩擦抖动等因素影响较大。[1]

本文通过设计调用OpenCV视觉库的上位机对桌面贴片机的视觉对中系统进行改进,可应用于小型桌面贴片机,使小型桌面贴片机精度提高,成本降低,维护更方便。与传统的贴片机相比,其低成本、实用性强的特点,可以在保持贴装精度的前提下降低成本,满足小企业及个人对贴片机的需求。

1视觉对中系统

在一个完善的贴装设备中,视觉对中系统起着重要的作用。通过精密的硬件装置、可调节的光照条件以及高清晰度的摄像装置采集到高质量的元器件图像,通过运算处理算法计算出电路板与元器件的调整参数。为了提高贴装速率与整条生产线上的生产量,降低元器件拾取时所发生的问题,应采用先进的视觉装置。

与传统的机械定位方式相比,视觉对中系统对元件的定位是非接触测量,并且通过PC的高速处理器运行先进的视觉处理算法,能够快速得到结果,节省了机械定位行程且不会对元件引脚等产生破坏,使定位精度和贴装效率都有了很大的提高。[2]

视觉对中系统的基本要求是处理速度快、实时性强、计算精度高、稳定性高。元件检测与元件纠偏,是指对采集到的元器件图像提取边缘和计算偏差,其对高精度的贴装而言非常关键。

典型的贴片视觉对中系统,由上位机、贴装头和上视摄像装置三大部分组成,本文着重介绍上位机部分编写思路。大型贴片机上位机采用的视觉库过于昂贵,且视觉处理过程难以应用于小型桌面贴片机,因此设计了一种调用OpenCV视觉库的贴片机上位机,适用于小型桌面贴片机。

2 贴片机上位机设计

2.1 贴片机上位机

上位机是控制者控制、操作下位机的平台,一般是指计算机或者计算机上的软件。其设计准则就是要有良好的人机交互能力,操作简便,界面简洁明了。应用于贴片机的上位机,则是通过摄像头获取吸取元件的图像,分析和处理后得到元件的位置偏移和角度偏差等数据,并传递给控制系统,再通过执行机构修正偏差,从而提高元件的贴装精度和准确度。

现有贴片机上位机的视觉库多数采用德国MVtec公司开发的标准机器视觉算法包Halcon,该算法包拥有应用广泛的机器视觉集成开发环境,但其属于商业性机器视觉库,源代码没有开源,成本过于高昂。用于小型桌面贴片机上位机设计显然不划算,所以本文采用开源视觉库OpenCV来执行。

本上位机的软件开发环境采用Visual C++6.0中的 MFC方式编写,再挂接OpenCV视觉库,最终生成可执行的文件(exe格式),可在任意window系统下正常运行。该上位机具备识别图像并对图形图像进行处理的功能,其使用UART串口与下位机通讯,实现视觉对中功能。

2.2OpenCV视觉库简介

OpenCV是一个基于C/C++语言的开源的图像处理函数库,全称是Open source Computer Vision Library,其设计的目标是提高执行速度,主要关注实时应用。OpenCV将其API函数所有的源代码全部公开,其内部程序步骤的实现过程能够被使用者清楚地看到,OpenCV的源代码能够由使用者进行修改,并且编译生成所需的API函数。获取图像数据、数据预先处理、提取图像特征、选择图像特征、设计与训练分类器、判别分类,包括以上六个处理步骤才是一个典型的计算机视觉算法库,OpenCV对这六个部分分别提供了API。[3-4]

由于OpenCV可用于实时处理图像,进行图像与视频的载入、保存和采集的常规操作;且具有免费、持续更新的特点,方便维护,符合小型桌面贴片机的经济性要求。

2.3上位机开发环境

Microsoft Visual C++ 6.0,简称VC6.0,是微软设计的一种将“高级语言”翻译为“机器语言(低级语言)”的程序,也是一款C++编译器。自从微软公司于1993年正式推出Visual C++1.0以来,不断有新的程序版本推出,Visual C++已经成为了一个具有强大编辑功能的可视化软件开发工具,多数程序员优先选择Visual C++作为首选工具进行软件开发。[5]。

3图像采集处理识别

3.1 图像采集设计

图像最高分辨率由所用的摄像头决定,为了支持高分辨率图像采集,得到相对质量较好的图像,可以利用采集多幅图像后进行平均的方式,采集4幅图像后进行平均,由此得到的图像信噪比是普通方法的两倍。因需要通过采集连续的多帧图像,约需0.25秒,因此适合对象是运动缓慢或静态的物体图像的采集。本上位机通过计算机的串口连接摄像头,在上位机中启动摄像头,采用 DirectShow 实现视频采集,使用时调用CameraDS中的函数来实现原始图像被上位机读取。

读取到摄像头获取的图像后,开始进行图像处理,需进行灰度、滤波、二值化等图像处理操作,才能减弱乃至除去图像中的噪声得到质量良好的图像,易于对图像中的元器件轮廓进行识别。

3.2图像灰度处理

图像灰度处理的流程如下,先将三通道彩色图像进行转换,转换成单通道的灰度图像,实现该操作可通过调用OpenCV中的函数cvCvtColor(src,gray,CV_BGR2GRAY);图像在滤波前有较高的清晰度,边缘过于分明清楚,故使用Smooth函数针对单通道的灰度图像滤波,使边缘变得更加光滑,图像变得更加模糊,方便处理外形轮廓,避免后续处理的二值化黑白处理后,图像中元器件的边缘不平整。由于光照等外部条件以及视觉装置本身精度等问题,得使视觉装置采集到的图像存在一定的噪声,降低了图像本身的质量,通过滤波来去除图像中的噪声可提高图像的质量。

3.3图像滤波处理

图像滤波处理中,常用的平滑滤波方式有均值滤波与中值滤波,均值滤波算法简单,通过将每个像素的周围的8个像素,都拿来进行均值操作,幅值近似相等且隨机分布在不同位置上,其执行速度相对较快,能够平滑图像,但是只能微弱的减弱噪声,无法完全去除噪声;常用的非线性滤波方法是中值滤波,同时也是最常用的图像预处理技术,此种方法在平滑脉冲噪声方面效果显著,选择适当的点来替代污染点的值,处理效果较好,能够把图像尖锐的边缘保护好。优化后的加权中值滤波使中值滤波的边缘信号更加清晰。故采用平滑处理方式为中值滤波。但是滤波也不能过度,因为滤完后图像跟原图有所不同,会导致精准度产生误差。

3.4图像二值化处理

滤波后的灰度值图像直接二值化变成黑白二色图像。在实际贴装时,固定算法的阈值受PCB板的表面材质和光源光照的影响,在自动阈值的基础上,为了获得较为一个稳定的理想阈值,可通过手动微调阈值来给图像进行二值化处理,使图像中的元器件与背景环境形成对比明显的图像即可,这是一种简单直接的办法。

3.5轮廓提取

图像经过适当中值滤波后边缘平滑,二值化后较为平整,通过调用OpenCV视觉库中的轮廓识别函数cvFindContours()来实现,能够直接从二值化图像中检索出目标轮廓,再将目标的轮廓在上位机界面的图像显示区中高亮显示,使其清楚直观地被观察到。

从摄像头采集到的图像经滤波、二值化处理后和执行轮廓识别后的图像分别发送到上位机的三个窗口显示出来,并显示元件具体的位置与偏差参数。

4 上位机功能界面设计

4.1 上位机界面功能设计

上位机界面设置了以下多种控件,输入控件如对串口进行设置的选择串口、波特率、数据位、校验位、停止位与关闭串口、smooth函数光滑滤波除燥以及二值化黑白图像的滑动杆、开始识别、关闭摄像头、退出程序清除发送与接收字节计数按钮、接收与发送数据格式在十进制与十六进制之间进行切换按钮、清空接收与发送区域按钮、设置数据发送为手东发送或自动发送按钮,另外还有角度校正、XY校正、暂停校正、一键校正,执行抛料等按钮;显示控件如经smooth函数平滑滤波除燥图像显示区域、二值化黑白图像显示区域、轮廓捕捉处理图像显示区域、串口通讯状态、发送与接收字节显示区域、数据接收显示区域、元器件偏移角度、PCB应放置的中心点坐标;其它命令如开/关灯、启动/停止、手/自动矫正指令。

4.2 上位机操作过程

经过编程和反复调试,本上位机具体的操作步骤是:先调节光照亮度,增大背景与物体颜色的反差,再调节smooth函数滤波除燥滑块对原始图像进行适当滤波,并调节二值化滑块使图像显示出平滑边缘,通过上述操作后可以比较准确的地识别出图像中的物体,要使得图像识别精准度越高,则要使图像清晰度够高,可以通过调节摄像装置各种参数达到最佳效果,完成元件位置参数的设置后,再点击一键校正按钮,完成元件的校正。

5 结论

经过测试,本上位机可以在搭载Window系统的电脑里面正常运行。该上位机采用 DirectShow 实现视频采集功能,调用OpenCV视觉库中的函数cvCvtColor(src,gray,CV_BGR2GRAY)将三通道的彩色图像进行转换,转换成单通道的灰度图像,再将灰度值图像进行二值化,直接转换成黑白图像,调用视觉库中的轮廓识别函数cvFindContours()直接检索出目标轮廓,最后通过按键交互串口实现与下位机通讯。

参考文献

[1]李存鹏.STM多功能PCB贴标机的设计与实现[J].长江大学学报(自然版)理工上旬刊,2014,11(1):68-70.

[2]鲜飞.贴片机现状及发展趋势[J].电子工业专用设备,2006,(7):29-37.

[3]黎志华,李新国.基于OpenCV的红外弱小运动目标检测与跟踪[J].红外与激光工程,2013,(9):2561-2565.

[4]田甜,肖曙红,徐攀等.基于OpenCV的贴片机基准点定位与实现[J].机床与液压,2015,43(11):16-19.

[5]谭浩强.C++程序设计[M].北京:清华大学出版社,2011.

作者简介:朱佳鹏,(1994-),男,广东汕头人,本科生,主要研究方向为电子设计;

猜你喜欢
贴片机上位机
七星天禹携带新款贴片机亮相2015NEPCON中国电子展
今年上半年我国自动贴片机进出口额小幅增长
2013年中国大陆SMT自动贴片机市场分析
2014年1-2月我国自动贴片机进口量同比减少11.47%
环球仪器以全备的Fuzion贴片机系列出击
2010年中国SMT自动贴片机市场分析与展望