关键词:Halcon;C#;视觉;爱普生机器人
中图法分类号:TP273文献标识码:A
引言
近年来,社会发展节奏越来越快,人们思想发生了巨大转变加上适龄劳动力减少,各行各业都想导入自动化设备。由于工况越来越复杂,对设备的精度要求也越来越高。为了提高精度,引入了相机视觉定位。
业界普遍使用视觉有两种方式,智能相机和基于PC自主开发的视觉软件。前者使用方便成本高,好多规模不大的公司用不起。后者成本适中但是开发任务繁重,开发周期较长。如果能够自主开发一套具备常用功能的视觉通用软件,将会极大节约成本又可以在较短时间内应用。本文就这方面做一个简单介绍。
1.软件总体介绍
软件使用C#和Halcon混合编程开发而成,开发工具是VS2012和Halcon11.0。软件功能主要由七部分构成:相机参数设置模块,二维码读取模块,OCR识别模块,模式匹配模块,串口通讯模块,网络通讯模块和状态显示模块。下面简单介绍下各模块功能:
相机参数设置模块主要用于相机类型选择,相机名称选择,曝光和增益调节,搜索当前已连接相机及保存当前 参数。
二维码读取模块可以设置二维码类型,条码极性等参数并可以显示读码结果和内容。
OCR识别模块可以设置OCR参数,区域及显示当前读取结果。
模板匹配模块可以设置匹配参数,模板参数,创建模板,设置ROI及显示当前检测结果。
串口通讯模块用来和外部通讯设置相关参数,包括串口号等,设置好后可以保存至XML文件。
网络通讯模块可以设置TCP/IP相关参数及保存至XML文件。软件整体界面如下图1所示:
图1
2.软件详细介绍
本软件采用传统的软件开发生命周期的方法,采用自上而下的开发顺序,逐步求精细化的结构化软件设计方法。从用户使用需求方面上讲,软件可分为运行状态、测试类型、实时显示、模式选择、文件加载等功能,如图2所示。
2.1通讯协议
本软件具有两种通讯方式和外部交互数据,分别是串口通讯和网络通讯。
串口通讯包括串口号、波特率、数据位、停止位、校验位、保存和打开串口等信息,如图3所示。其中串口号为连接相机端口号,图中为COM6。波特率要与数据交互端设置成一致,图中为9600(常用的波特率有9600、19200、38400、43000、56000、57600、115200等)。数据位、停止位、校验位设置,图中设置为8位、1位、无校验。“保存”是用来存储设置的参数信息。“打开串口”是用来测试通讯端口是否能打开。
网络通讯界面包括端口号、联机信息、数据内容、考试监听、发送信息和保存等信息,如图4所示。“端口号”设置的是60000,“联机信息”会显示连接状态,“数据内容”会显示收到的数据,当需要启用网络通信时点选开始监听。
2.2相机参数
相机参数设置界面主要用于相机类型、相机名称、曝光、增益、搜索相机、保存、打开相机、实时图像、停止。如图5所示,
图5相机参数设置界面选择相机类型:选择相机的品牌,如Basler、Dahua等;
搜索相机:搜索当前连接的相机的型号;
选择相机名称:根据搜索到的相机型号选择对应的型号;打开相机:手动打开相机,使相机能够正常工作;
实时图像:实时显示当前相机视野范围内的物体;
曝光和增益:调整相机的曝光值和增益值,使图像能够清晰成像;保存:将当前所有的参数设置保存到对应的文件中;
停止:使相机停止工作;
2.3二维码
二维码测试界面包括二维码测试和二维码参数2个板块,如图7所示。图中绿色的拾取框为二维码的边缘,可以自动在视野范围内搜索到二维码的位置,检测到二维码的内容为1234567890,相机的像素为640*480,即30万像素的黑白相机。二维码测试主要是手动测试二维码是否合格,以及显示测试的二维码内容,如图7所示。二维码参数主要是设置二维码的类型(常用的有DataMatrix,MaxiCode,Aztec,QRCode,Vericode,PDF417,Ultracode,Code49,Code16K等)、条码的极性(dark_on_light或者light_on_dark),以及设置超时时间,如图8所示。
2.4OCR识别
OCR识别包括OCR识别、设置区域和OCR参数3个板块。图中绿色外框为设置的ROI区域,当设置的ROI区域越小,检测的精度就会越高,出现误判的几率就会越小,同时因为检测区域小,所以检测速度非常快,能够有效节省时间;红色的小框为每一个字符的拾取框,会根据字符的大小和宽度自动分配;红色的字符是显示识别到的信息内容为97527,与要识别的字符一致。OCR识别界面主要是识别OCR字符,并显示识别结果,如图10所示。设置区域界面主要包括OCRROI和屏蔽区域。其中OCRROI主要是设置OCR识别的检测区域;屏蔽区域是为了减少干扰而屏蔽一些外部多余的特征,保证检测的精度和速度,如图11所示。
OCR参数界面主要是ROI设置、ROI读取、屏蔽数量。对应的选择不同的ROI名称,可以识别不同的模板特征,如图12所示。
2.5匹配测试界面
匹配测试界面包括匹配测试、创建模板、模板参数、匹配参数4个板块。其中绿色外框为拾取范围,即相机会在设定好的拾取范围内寻找设定的模板,同样的要使拾取范围尽可能小;蓝色框为模板匹配区域,将当前模板为设定的匹配模板进行对比,按照阈值/匹配度来进行判断,结果大于和等于阈值判定为OK,结果小于阈值判定为NG。图中绿色字体为显示信息,Result为检测到的模板的坐标位置和角度;Score为得分阈值。
匹配测试界面主要是显示检测结果和检测匹配度,如图14所示。创建模板界面包括创建模板和设置ROI,其中创建模板是用来设置视觉抓取匹配所需的模板,设置ROI是设置视觉匹配的区域,如图15所示。模板参数界面包括模板旋转角度、模板最小对比度、金字塔层数、设定模板名称。匹配参数界面包括匹配阈值、搜索角度、选择模板。其中匹配阈值是用来设置合格和不合格之间的评判标准;搜索角度是在匹配过程中在一定的角度范围内进行搜索,超过设定角度的物体视为NG;选择模板是用来设置匹配模板的名称,如图17所示。
4.结语
上述软件经测试效果良好。二维码识别成功率较高,OCR字符识别对于印刷质量好的字符效果也不错,但是对于字符质量不好的字符会出现误判,这方面功能还需优化。和爱普生机器人配合的定位功能可以在软件这一端完成标定,机器人端只需要接收世界坐标走位置即可。