一种基于机器视觉的通用平面尺寸检测软件系统

2018-03-29 07:20肖书浩
制造业自动化 2018年3期
关键词:边界点机器平面

肖书浩,何 为,吴 蕾

(武昌首义学院,武汉 430064)

0 引言

随着机器视觉在工业生产中的应用越来越普及,产品生产流水线上对自动尺寸检测的需求越来越多。目前,通用尺寸测量软件基本上为国外品牌[1~3],这些测量软件也只是提供一个开发平台,需要用户针对具体测量任务做二次开发[4~6]。国内也有很多这方面的研究,但主要应用在一些特殊场景[7~13]。本文介绍了一种通用的应用于产品流水线平面尺寸检测的软件系统,该系统不需要用户进行二次开发,只需要通过不同测量工具的组合,就可以完成各种尺寸测量任务。为了达到通用的要求,在软件结构上设计了识别区(Region of Interest ,简写为ROI)和尺寸测量工具(Tool)的灵活层次架构(C++类),在算法上形成了一套完整的计算模型:ROI数据结构表达、边界点识别、平面曲线拟合和平面尺寸计算。该系统作为尺寸测量子系统已经成功应用在武昌首义学院与亚旭电子科技(江苏)有限公司合作开发的机器视觉软件中。

1 系统方案

图1为系统框架示意图。该系统用C++语言开发,使用OpenCV作为图像与分析底层平台,使用QT作为界面和人机交互库。

软件界面与交互框架:实现软件的界面和人机交互框架。

工业相机驱动与配置模块:各种型号工业相机驱动,相机拍照控制方式设置,相机参数设置。

图1 平面尺寸检测系统框架示意图

工业相机标定模块:相机畸变矫正,图像坐标与世界坐标的转换[14]。

测量任务管理模块:测量任务命名、保存和打开。

测量工具设定模块:测量工具的编辑。

自动运行模块:系统进行自动测量,并输出测量结果。

流水线上的产品尺寸检测过程如图2所示,开始一个新尺寸检测任务时,必须先进行测量工具设定,然后开始自动运行。

1)测量工具设定

该设定只需在有新的测量任务时才需要(如图2上图所示)。选择多个测量工具(Tool)来完成测量任务,每个工具按以下步骤配置。

(1)选择是否需要定位器。如果选择了定位器,需要选取待测零件上几何特征比较明显且不易受到周围形状干扰的形状为定位器。

(2)在需要识别平面曲线(直线或圆弧)的地方放置相应ROI。

2)自动运行

当工业相机传来需要测量的零件图片时,系统按以下步骤进行每个测量工具的尺寸测量计算(如图2下图所示)。

(1)ROI定位:首先识别出定位器位置,并更新所有ROI的位置;

(2)平面曲线识别:通过ROI的识别算法,识别出每个ROI对应的平面曲线(直线、园等);

(3)尺寸计算:通过多个ROI平面曲线计算需测量的尺寸(如:两个平行线之间的距离)。

图2 流水线产品尺寸检测流程示意图

下面将介绍该系统的关键技术:系统底层结构(C++类)设计和平面尺寸测量计算模型(ROI数据结构表达、边界点识别、平面曲线拟合和平面尺寸计算)。

2 系统底层(C++类)设计

为了实现尺寸测量的通用性,在软件的底层设计上必须要有足够的灵活性[15]。该系统设计了两大C++类:ROI和Tool(如图3所示)。ROI负责局部平面曲线的识别,Tool负责测量尺寸计算。图3(a)表示了部分ROI的类,MeasureROI为曲线识别ROI,下面分直线识别(LineROI)、圆弧识别(CircleROI)等,RangeROI为分析与识别范围ROI,下面分矩形(RectROI)等。

具体尺寸测量通过工具类Tool来实现(如图3(b)所示)。例如:DistanceTool为两平行线间的距离测量,包含两个LineROI作为成员变量,实现平行间的距离测量。CircleTool为园测量工具,包含一个CircleROI作为成员变量。HoughCircleTool是用霍夫方法测量园的工具,包含一个RectROI作为成员变量,HoughCircleTool常用作定位器使用。

图3 ROI和Tool类示意图

在定义了ROI和Tool两大类后,系统在自动运行时就只需要遍历所有Tool就可以了(如图4所示)。

图4 工具的遍历示意图

3 平面曲线识别

3.1 ROI数据结构表达

ROI是平面曲线识别的范围。分为直线ROI和圆弧ROI(如图5所示)。直线ROI用来识别直线,圆弧ROI用来识别圆弧。为了便于计算,将所有ROI的数据(像素坐标,像素灰度值等)保存到一组矩阵容器中(或者是一个多通道矩阵容器,例如OpenCV中的Mat数据结构),如图5所示。这样做的好处是,后面的算法可以作用在一个统一的容器上。因为ROI的像素与原始图片的像素不是精确对应,计算中要用到双线性插值算法。

图5 ROI与矩阵容器的对应

3.2 边界点识别

图6 图像特定方向灰度梯度曲线

图6显示了在圆弧ROI中沿与圆弧法线方向搜寻边界点的情形。通过灰度值梯度(一阶导数)的变化可以方便识别出边界点(图中白色填充的点)[16]。

3.3 平面曲线拟合

每个ROI中可以包含多条曲线,本文只讨论ROI只包含一条曲线(直线或者圆)。3.1节已经识别出边界点,本节的任务就是由这些点拟合相应的曲线(直线或圆弧)。

通过边界点拟合平面曲线有很多算法,被广泛使用的有:M-估计法(M-estimators)[17]和随机抽样一致算法(Random sample consensus,即RANSAC)[18],最小二乘法是M-估值法的一个特例。该系统使用了RANSAC算法,这种算法可以很好剔除异常点,用于直线或圆拟合的流程图如图7所示。

图7 曲线(圆或者直线)拟合RANSAC算法流程图

4 平面尺寸测量

图8 不同测量工具(Tool)通过ROI的组合完成测量任务

测量要达到通用的目的,必须能完成各种各样的尺寸测量任务。本系统通过不同ROI之间的组合可以完成不同的测量任务,图8列举了部分测量工具的ROI组合。

为了完成具体测量的计算,系统必须建立几何计算的数学模型。下面介绍部分数学计算模型和具体公式。

4.1 直线和圆的表达

为了避免数据计算的溢出,直线可以用以下两种方式表达:

1)直线的通用表达式:

2)直线通过一个点(x0,y0),方向矢量为(u,v)的参数方程为:

圆心在(x0,y0),半径为r的圆用参数方程表示:

4.2 点到直线距离计算

图9 点到直线距离

图9中两直线的方程表示为:

解方程可求出:

进而可求出(xN,yN),最后可求出d。

4.3 圆与直线的关系

图10 直线与圆关系示意图

如图10所示,需要判断直线(通过点(x0,y0),方向矢量为(u,v))与圆(圆心为(xc,yc),半径为r)的关系(相切、相离和相交)。通过4.2节可以计算出点(xc,yc)到直线L的垂足(xN,yN)和距离d。

给定阈值deltaD(大于零的值),得到以下结论:1)如 果直 线 与 圆 相 切 ;2) 如 果d−r >deltaD ,直线与圆相离;3)如果d− r < −deltaD ,直线与圆相交。

4.4 霍夫工具

HoughCircleTool使用了霍夫变换(Hough transform)[19,20]的原理,将候选形状从图像空间映射到参数空间,并用统计学方式确定概率最大的形状为识别结果。HoughCircleTool相比CricleTool,鲁棒性更强,可以大范围搜寻几何体,但识别精度较差,比较适用于定位器工具。霍夫变换内容不在本文详细讨论。

5 结束语

本文介绍的系统通过底层灵活的类设计和任务设定功能,实现了流水线上通用产品尺寸测量。该系统作为尺寸测量子系统已经成功应用在武昌首义学院与亚旭电子科技(江苏)有限公司合作开发的机器视觉软件中。图11显示的是多个尺寸同时测量的情形,ROI中较粗的灰色线条为尺寸计算结果。

图11 多个尺寸同时测量情形

[1]MVTec Software GmbH. Solution Guide I-Basic[Z].2014.

[2]Teledyne DALSA Incorporated. iNspect Express Software Users Manual[Z].2014.

【】【】

[3]Cognex Corporation.VisionPro 9.1 SR1 About This Release.2017.

[4]唐松,杨其华,刘刚海.基于Halcon的阀芯尺寸亚像素级测量[J].计算机工程与应用,2017,53(3):237-241.

[5]朱先锋,潘洪军.基于Halcon的硒鼓缺陷检测与一维尺寸测量[J].吉林大学学报(信息科学版),2014(3):308-315.

[6]郭超,马麟.基于机器视觉的尺寸测量方法研究[J].机械工程与自动化,2012(1):15-17.

[7]刘艳雄,张亮杰,毛华杰,等.基于机器视觉的精冲零件断面缺陷检测系统研究[J].制造业自动化,2016,38(4):3-7.

[8]杨琨,高勇.基于机器视觉的夏比试样缺口测量系统[J].制造业自动化,2016,38(11):37-39.

[9]周应斌,何林,刘持平,等.基于机器视觉的铣刀钝化钝圆半径检测[J].制造业自动化,2015(2):46-49.

[10]李钊宝,汪新新,贾茜媛.基于机器视觉的工件尺寸高精度测量方法[J].计算机测量与控制,2015,23(6):1866-1870.

[11]郭瑞峰,袁超峰,杨柳,等.基于OpenCV的机器视觉尺寸测量研究[J].计算机工程与应用,2017,53(9):253-257.

[12]张平生,张桂梅.基于机器视觉的管孔类零件尺寸测量方法[J].机械设计与制造,2012(12):139-141.

[13]王冠英,胡心平,刁维龙.基于机器视觉的复杂形状模具尺寸测量[J].计算机测量与控制,2015,23(3).

[14]尹英杰,徐德,张正涛,等.基于单目视觉的平面测量[J].电子测量与仪器学报,2013,27(4):347-352.

[15]JohnLakos,洛科什,Lakos,等.大规模C++程序设计[M].机械工业出版社,2014.

[16]Steger C, Ulrich M,Wiedemann C. Machine Vision Algorithms and Applications[M].2008.

[17]Vaart A W V D, Wellner J A. M-Estimators[M].Weak Convergence and Empirical Processes. Springer New York,1996.

[18]Fischler M A, Bolles R C. Random sample consensus: a paradigm for model fitting with applications to image analysis and automated cartography[M].ACM, 1981.

[19]Hough P V C.Method and means for recognizing complex patterns[P].u.s:No.3019654,1962.

[20]Duda R O,Hart P E. Use of the Hough transformation to detect lines and curves in pictures[J].Communications of the Acm,1972,15(1):11-15.

猜你喜欢
边界点机器平面
机器狗
机器狗
玩转高考真题——平面解析几何篇
立体几何基础训练A卷参考答案
未来机器城
区分平面中点集的内点、边界点、聚点、孤立点
基于降维数据边界点曲率的变电站设备识别
参考答案
多阈值提取平面点云边界点的方法
基于网格聚类中边界点的处理