熊 峰,王桂棠,陈建强,陈永彬,陈志盛,吴佳毅
基于机器视觉的平面工件自动化检测系统,其便捷之处在于使用工业相机代替人眼,以图像处理算法代替手工测量,极大缩短检测时间及减少人为误差[1]。但是,对于较大尺寸的平面工件,需要减小相机的拍照采集视场以保证检测精度,同时通过精密数字运动控制使相机沿检测图元的轮廓运动并采用局部图像,然后结合运动坐标和图像拼接得到工件的高精度图像。依据检测需求,测量图元对象以及尺寸项目的选择等需要预先进行规划设置。对于需要检测众多尺寸的复杂形状工件,当测量点数较多时,依靠手工操作就显得相当复杂繁琐、费时费力[2]。
DXF文件包含了工件的详细图形和尺寸信息。目前有研究者提出了利用解析DXF文件来获取输入工件信息的方法[3-4],但均未实现整体检测规划。本文研发了一种综合了DXF文件解析、图像重构、自动定位等技术的智能规划方法,大大提高了基于机器视觉的较大尺寸复杂工件的智能检测系统的工作效率和智能化水平。
DXF是一种CAD图形交换文件,它以带标记数据的形式表示AutoCAD图形文件中包含的信息[4],非常适合用来提取检测零件的形位信息[5]。
带标记数据是指文件中的每个数据元素前面都带有一个“组码”——表示特定数据对象的含义。对于待测件的图像重构,只需要关心图像实体,而一般图像实体信息全部包含在DXF文件的ENTITIES段中,将这些信息按构成元素划分为以下几类组码,如表1所列。
表1 ENTITES段组码解析表Tab.1 ENTITIESBlock Code Parsing Table
由于每类数据都由固定排列的组码表示,可以利用正则表达式遍历提取的方法来获取所需解析内容,再将解析内容存入对应结构体中,即得到了每个图像实体的形位数据。DXF解析器运行流程如图1所示。
图1 DXF文件解析流程Fig.1 DXFFile-pasring Flow
为了使机器视觉检测系统检测操作的交互过程方便直观,需要将检测对象图像重构并显示出来。考虑到算法统一性,需要将解析数据进行归并:将直线归入多段优化线,将圆、圆弧归入椭圆,将直径标注归入半径标注,最后得到5种数据类型。
本文应用Qt作为软件开发平台,其图形界面开发工具应用非常广泛,操作简便,内部库已经实现了很多交互方法。本文通过继承Qt库中的现有图元类QGraphics Item来得到基本绘图方法,再以这5种数据类型分别进行派生,实现各自的属性,最后得到对应图元类,派生关系如表2[4]。
通过图元类头文件定义了图形的各种属性(起点、终点、类型等)和必要方法(选中、绘制等)。
例如DXF Polyline Item图元类的定义如下:
class DXFPolyline继承自QGraphicsItem
{
共有:
构造函数1 #导入多段线数据
构造函数2 #导入单段线数据
类型函数 #返回图元类型
表2 图元类派生对照表Tab.2 Image Primitive Class Deriving Table
使能可处理函数 #控制选中是否有效
控制点列表 #多段线的控制点坐标
保护:
图元边框 #控制鼠标选择热点区
绘制函数 #实现图元绘制工作
私有:
线段类型 #指示是否闭合
控制点坐标列表
};
图2 轮廓重构(上:零件照片,下:图像)Fig.2 Outline Restructure(UP:Photo,DOWN:Image)
由于重构图像的数据来自DXF文件,当界面显示比例为1像素代表1毫米时,显示形位尺寸与真实形位尺寸信息相同,则通过在重构图像上设置检测采样点,就可以直接得到实际的采样坐标。图2为轮廓重构实例。
在执行检测前,需要先确定检测对象图元,然后设定检测项目,最后设置采样坐标。本文设计了智能交互的方式来完成这些步骤。
重构图像中的所有图元都有可选属性,可将其解析数据作为图元类成员,构建回调函数实现鼠标选中时返回对应成员数据,再根据指定的检测项目调用相应算法就能生成一条完整检测指令,整体流程如图3。
为实现算法的统一性,将检测项目划分为8种基本类型:线长、直线度、半径、圆度、角度、点点距、点线距和线线距,检测对象与这8种检测项目也有一一对应关系,通过分析概括如表3。
表3 检测对象与检测项目关系Tab.3 Measure Object and Item Map
每个图元类中都设置了类型标识,在每次交互选择时,根据类型标识判断对象类型后,与关系表中的检测项目绑定,实现智能候选菜单,其算法流程图如图4。
图4 交互算法流程Fig.4 Interaction Algorithm Flow
由前文分析知,实际采样坐标可以由图像上的定位点得到,自动定位算法所做的工作就是生成图像定位点。同样,对应2种形位图元有2种生成子算法,算法定义如下,其中genNodeList(*)方法根据传入的图元属性来对其图像边缘进行分割然后由optimze(&)方法对分割点列表进行二次筛选处理,以下是算法定义:
class RoutePlanner
{
共有:
构造函数 #传入采样间距值
多段线图元的采样点计算函数 #返回节点列表
椭圆图元的采样点计算函数 #返回节点列表
节点过滤排序函数 #优化并生成运动路径
私有:
节点列表
};
算法中的节点间距,是指相邻采样点之间的距离,对于视觉检测定位,其节点间距就是相机视野直径,这样保证了采样的完整性。(说明:当零件尺寸较大时,需要移动相机拍摄多幅局部照片,只有移动距离≤视场半径时才能覆盖到完整对象。
在设定好节点间距后,将选择的图元指针传入,由genNodeList(*)方法即可得到图元上的采样点,主要原理为边缘分割,分割数N由公式(1)、(2)确定:
其中L表示线长、S表示节点间距、R表示圆半径、A表示圆弧角,得到分割数N后,再通过公式(3)、(4)就可得到定位点坐标:
以上公式中i∈[1,N]。公式(3)求出直线上的定位点坐标,其中(X0,Y0)代表直线起点;公式(4)求出圆弧上定位点坐标,a代表圆弧起始角。
然而并不是所有的检测项目都需要所有定位点[6-14],比如求线长只需要两个端点、求半径只需要3点定圆等,那么还需要调用路径优化函数op⁃timze(&)去除多余点,优化列表见表4。
表4 采样点优化列表Tab.4 Sampling Node Optimization List
点线距、点点距、线线距为以上的多项组合。
之后,再去除重复点,就得到了优化后的实际采样坐标,算法流程如图5。
图5 自动定位算法流程Fig.5 Auto-Positioning Algorithm Flow
最后将以上设计思路进行编程实现,以验证实际效果。首先,选取零件图纸文件,例如“厚度仪安装板.dxf”载入解析器,得到结果如图6所示。
图6 DXF重构Fig.6 DXFRestructure
然后分别测试4种测量项目的自动规划算法,得到结果如图7~10。
以上所有采样点若通过手工输入,至少需要21次操作,并且容易出错。使用本文算法自动生成规划方案,只需要4次交互,高效且可靠,节省时间75%,达到了设计目标。
图7 直线度测量采样点生成Fig.7 Straightness Measuring Node Generation
图8 点点距测量采样点生成Fig.8 Point to Point Measuring Node Generation
图9 两线夹角测量采样点生成Fig.9 Two Lines'Included Angle Measuring Node Generation
图10 线线距测量采样点生成Fig.10 Lines'Distance Measuring Node Generation
基于图像交互的机器视觉尺寸检测系统智能规划算法,能有效提高现有检测系统的整体效率。形状越复杂、检测参数越多的零件,缩短的规划时间越多(在图元总数不变情况下,随检测点数目线性增加)。
本算法不仅仅能运用于平面尺寸检测系统,也很容易拓展到涉及二维定位的其他系统上,如加工制造;适应性较强,与其他算法搭配也能应用于三维空间定位系统。
参考文献:
[1]刘霞.工业零件形状尺寸的机器视觉检测系统的研究[D].哈尔滨:哈尔滨理工大学,2009.
[2]张燕,王贵成,张占胜.机器视觉定位平台的研究与应[J].机电产品开发与创新,2012,25(5):30-31.
[3]梁艳青.基于DXF文件的数控自动编程系统的设计与实现[D].沈阳:中国科学院沈阳计算技术研究所,2015.
[4]付泰,王桂棠,程书豪,等.基于机器视觉的复杂平面零件尺寸精密检测[J].机电工程技术,2016,45(08):7-9.
[5]吕欣泽.基于DXF文件的激光雕刻系统的设计与实现[D].天津:天津师范大学,2010.
[6]马凯,杨泽林,吕静.基于DXF文件的CAD/CAM刀具路径优化与生成[J].机床与液压,2011,39(10):40-42.
[7]邓小峰.基于机器视觉的零件识别和测量系统研究[D].南京:南京航空航天大学,2014.
[8]叶鹏,高兴宇.基于机器视觉的工业零件通用检测平台[J].桂林电子科技大学学报,2016,36(3):227-230.
[9]卢婷婷.基于DXF文件的水切割机床轨迹优化及仿真加工的研究与实现[D].南京:南京航空航天大学,2010.
[10]姚宜斌,孔建.基于DXF文件的图件转换方法研究及程序实现[J].大地测量与地球动力学,2011,31(1):118-122.
[11]但永平,张蕾,张国涛,等.基于VC++的DXF数据文件接口程序设计[J].电子设计工程,2012,20(23):70-74.
[12]陈大川,许小东,陈永彬,等.基于机器视觉的铰链精密检验系统 [J].机电工程技术,2015(3):64-67.
[13]董富强.基于机器视觉的零件轮廓尺寸精密测量系统研究[D].天津:天津科技大学,2014.
[14]马建伟,赵朋可.基于机器视觉和OPC的多轴运动控制实验平台设计[J].工业仪表与自动化装置,2013(6):35-38.