吴 瑞,罗亚波
(武汉理工大学 机电工程学院,湖北 武汉 430070)
羽毛球口的直径和圆度直接影响到羽毛球的外观及飞行特性[1],目前其尺寸检测是工人使用专用口径仪测量,效率低,易受工人疲劳等因素影响,因此,有必要通过搭建机器视觉检测平台对其进行快速且精确的测量。
机器视觉测量方法是一种非接触的测量方法,具有高精度、高效率、可重复等优点,国内外众多学者对其在质量检测及尺寸测量方向进行了大量研究:聂鹏等[2]在测量飞机铆接高度差时,通过3D激光扫描仪获取图像,采用Canny算子结合最小外接圆算法完成铆钉的边缘提取及拟合,运用形态学方法分割铆钉和零件表面区域后计算得到铆接高度差;金昭等[3]在测量斜齿轮螺旋角时,将Canny算子与同态滤波相结合对斜齿轮侧面图像提取边缘,通过斜率筛选后仅保留齿线边缘,从而检测出斜齿轮的螺旋角;郑晓昱等[4]通过激光点标定的方法,让该视觉系统能在不同视距的情况下完成测量任务,采用大津算法改进Canny算子的双阈值联接阶段,通过霍夫变换得到边缘直线的解析式从而计算出门窗洞的尺寸信息;肖剑等[5]选用机器视觉技术提高螺纹钢丝头的检测效率,计算轮廓曲率方差对螺纹钢丝头的特征点进行检测,为了提高检测精度,结合Sigmoid函数对边缘进行拟合,提取亚像素特征点,完成了对螺纹钢丝头的尺寸测量。
笔者针对轻工业产品中羽毛球测量困难的问题,搭建视觉实验平台,通过轮廓跟踪的方法获取边缘坐标,改进FAST(features from accelerated segment test)算法筛选特征点,提高检测速度,结合局部尖锐度和凹凸性筛选得到真实特征点,利用最小二乘法拟合得到羽毛球圆度信息。
笔者选用灰度相机获取羽毛球图像,其相对于彩色相机有着更好的光效率[6]。在采集到的图像中存在有实验台面和环境噪声等干扰因素,因此有必要对图像进行预处理。预处理可分为滤波降噪、阈值分割和孔洞填充3部分。
羽毛球图像在采集过程中受到光照影响,以及在传输过程中受到电磁干扰,图像会产生噪声。笔者选用高斯滤波对羽毛球图像进行滤波处理,以便较好地滤除噪声,保护边缘。
阈值分割是将图像划分为背景区域以及羽毛球区域,由于羽毛球整体颜色偏白,与实验台的灰度值相差较大,通过设置单阈值即可完成图像分割,从而将图像转化为二值图像,其公式为:
(1)
式中:f(x,y)为图像灰度值;T为图像分割阈值。
在阈值分割处理后,由于羽毛球的特性,在羽毛球区域内部有着小块的黑色区域,对羽毛球进行轮廓提取时会将其误检为边缘轮廓。为了更好地提取羽毛球的边缘轮廓,对阈值分割后的图像进行孔洞填充[7]处理,对羽毛球内部的黑色孔洞区域进行填充。图像预处理过程如图1所示。
图1 图像预处理过程
羽毛球是由16片羽毛构成,羽毛球的直径以及圆度直接影响到羽毛球的外观质量和击打稳定性。羽毛球的直径可以通过相对羽毛尖点的距离进行计算,因此,选用基于轮廓跟踪的边缘提取方法,改进FAST算法提取出候选特征点,再通过对羽毛图像特征的分析,计算局部尖锐度和凹凸性对特征点进行二次筛选,完成对16片羽毛尖点的检测和定位。
羽毛球的边缘轮廓提取是检测羽毛尖点的基础,运用轮廓跟踪[8]的方法能精准地获取羽毛球的边缘点坐标信息。笔者采用Freeman链码对羽毛球边缘轮廓进行跟踪,其步骤如下:
步骤1对输入图像从上至下,从左至右的顺序进行扫描,将扫描到的第一个灰度值为255的像素点设置为轮廓起点P0;
步骤2在P0的八邻域范围内以图2中1~8的顺序依次判断像素点的灰度值,当找到灰度值为255的像素点时,将其设置为新的邻域中心并将其存入轮廓点集;
图2 链码跟踪顺序图
步骤3重复步骤2,直至新的邻域中心与P0重合时,轮廓跟踪结束。最终得到的轮廓集合就是羽毛球边缘的坐标信息。
在羽毛球图像中,特征点往往是边缘的交点,因此,以提取出来的边缘像素点集为基础,通过特征点检测算法进行初步筛选,得到候选角点,可以起到减少计算量,加快检测速度的作用。目前常用的特征点提取算法有:Harris算法、FAST算法和Susan算法[9]等。其中,FAST算法适用于检测局部灰度变化较大的像素点,且运行速度较快,在文中用来对图像特征点进行初步筛选。FAST算法的检测步骤如下:
步骤1从轮廓跟踪得到的边缘坐标点集中选取候选点P,其灰度值为IP,通常将阈值T设置为IP×10%;
步骤2如图3所示,以点P为圆心,3个像素点为半径作圆,圆周上有16个像素点,将这16个像素点与P进行比较后可分类成3种状态,第一种是darker,是相对较暗的点;第二种是similar,是比较大众的点;第三种是brighter,是相对较亮的点。其可以表示为:
图3 FAST算法检测流程图
I(x) IP-T≤I(x)≤IP+T (2) IP+T 式中,I(x)为圆周上像素点的灰度值。 步骤3如果圆周上有连续9个像素点的灰度值与IP的差值大于给定的阈值,则判定P点为候选角点。 按照上述的算法流程,需要将邻域16个像素点完全遍历,可以在其基础上进行优化。羽毛球的羽毛顶端呈三角状,针对这一特性,优先检测候选点对角线方向,即3、7、11、15这4个像素点,如果这4个点中至少有两个点与IP的差值大于阈值,则对其余12个点进行计算,否则认为该候选点不是特征点,对下一个候选轮廓点进行判断。候选特征点检测结果如图4所示。 图4 改进FAST方法检测结果图 从图4可知,改进的FAST算法对羽毛球16片羽毛尖点均能检测出来,但存在3个问题:①有较多图像边缘点被误检为角点;②局部区域检测出多个角点;③羽毛尖端呈现三角状,会将两端的干扰点检测出来,然而目标点仅为羽毛尖点,无法对其进行区分。针对前两个问题,可通过计算候选角点的尖锐度并进行局部非极大值抑制解决,第三个问题可通过角点的凹凸性进行分类。 尖锐度可以衡量图像特征点的尖锐程度,边缘像素点的支撑角接近180°时,尖锐度接近0,羽毛尖点的支撑角度较小,尖锐度较大,设置合适的尖锐度阈值以及局部非极大值抑制后,能有效地筛除边缘上的特征点。特征点Pi的支撑区域如图5所示,该点的尖锐度S计算公式为: 图5 特征点局部支撑区域 (3) (4) 式中:Pi为目标特征点;Pi-m,Pi+m分别为轮廓线上与Pi间隔为m的像素点,Pi-m与Pi+m之间的区域则为Pi的支撑区域;α为Pi的支撑角。 经过尖锐度筛选后的特征点如图6所示。分析得知,设置尖锐度阈值能较好地筛除掉边缘上被误检的特征点,但是无法区分羽毛尖端的3个特征点。对羽毛球图像进行分析发现,目标需要检测到的特征点是羽毛尖点,其呈现凸特性,而羽毛上另外两个干扰点呈现凹特性,根据这一特点,在该点支撑区域内计算每个特征点的凹凸性,完成对干扰特征点的剔除,凹凸性指数A的计算公式为: 图6 尖锐度筛选结果 (5) 如果A<0,则Pi呈凸特性,判定为目标特征点,否则将其判定为干扰特征点进行剔除,经过凹凸性判定筛选后的特征点如图7所示,从图7可知,经过凹凸性筛选能将羽毛上的干扰特征点剔除,且准确地保留了16个目标特征点信息。 图7 凹凸性的二次筛选结果 为了验证本文特征点检测算法的有效性,将本文算法与Harris算法、文献[10]算法、Susan算法进行对比,选取大小为1 280×1 024的羽毛球图像进行检测,其结果如图8所示。如图8(a)所示,本文算法在经过尖锐度和凹凸性二次筛选后,能准确检测到16片羽毛尖点,不存在误检以及漏检情况;图8(b)、图8(d)为两种经典算法的角点检测结果,特点是数量多和检测全面,在对羽毛尖点检测时,没有出现漏检的情况,但是会出现多个角点描述一个羽毛尖点的问题,且Susan算法出现了将边缘误检为角点的情况,这两种算法的误检率都较高;图8(c)为文献[10]利用灰度差分和模板相结合的方法筛选候选点,计算角点响应函数后进行局部非极大值抑制确定最终的角点,对羽毛尖点的检测效果较好,未出现漏检情况,但是对尖锐度较大的角点检测时出现了重复角点。 图8 各类算法检测结果 为了能直观地表现本文算法的性能,对以上4种算法检测的角点数目以及运行时间进行统计,其结果如表1所示。 表1 各类算法检测结果统计 由于本文算法根据羽毛球特性做了凹凸性筛选,因此将比对算法中凹特性角点的检测结果不计为伪角点。从表1可知,在Harris算法和Susan算法检测时间较长,其时间主要消耗在计算图像中所有像素的响应函数上[11],文献[10]基于Harris算法,在计算响应函数之前,用灰度差分与模板结合筛选角点,减少了一部分计算量,且误检率较低;本文算法以Freeman链码结合改进FAST算法的策略筛选初始角点,只需计算初始角点在局部支撑区域的尖锐度及凹凸性进行二次筛选,减少了绝大部分的计算量,本文算法的检测时间约为文献[10]算法的84.8%,Harris算法的30.7%,能满足对羽毛球的检测速度要求。 针对羽毛球外观质量检测中的球口直径及其圆度测量问题,为了方便算法设计、验证算法检测准确率以及实验对比,搭建了如图9所示的视觉实验平台。该系统可分为3部分:计算机、图像采集和废品剔除,其中CCD相机分辨率为1 280×1 024,像元尺寸为5.2 μm×5.2 μm,安装6~12 mm变焦镜头。 图9 视觉实验平台 测量系统的工作原理为:当传感器检测到待测对象时,触发工业相机完成图像的采集并传输给计算机;计算机对图像进行算法处理后,对检测对象的尺寸信息进行可视化输出,并将是否合格信号传输给单片机;当单片机同时收到传感器检测到待测目标以及不合格的信号时,控制步进电机旋转一周,将不合格的对象剔除。 测量系统流程如图10所示。 图10 测量系统流程图 采集到的图像在经过预处理之后,为了减少计算量,对图像进行轮廓跟踪获取边缘坐标信息,改进FAST算法对边缘像素点检测,提取出候选特征点,再根据羽毛球特性,在特征点支撑区域内计算尖锐度和凹凸性后进行非极大值抑制,完成毛尖特征点的提取。对提取到的16个特征点进行最小二乘法拟合,得到羽毛球的尺寸数据,并计算其最大偏离度和圆度误差。其公式为: (Xi-Xc)2+(Yi-Yc)2=R2 Rerr=Rmax-Rmin (6) 式中:(Xi,Yi)为特征点坐标;(Xc,Yc)为拟合圆心坐标;R为拟合圆半径;ε为实际半径与预测半径的偏离值;G(a,b,c)为εi的平方和;Rerr为圆度误差;Rmax,Rmin分别为特征点到拟合圆心的最大距离和最小距离;ω为最大偏离度;Ri为特征点到拟合圆心的距离。 为了得到羽毛球圆度的实际值,需要对相机进行标定,确定图像中每个像素点对应的实际尺寸。在进行标定之前,调节镜头参数,使羽毛球图像尽可能大地占据相机视野。在实验条件不变的情况下,采集棋盘格图像,获取棋盘格角点的坐标信息,根据式(7)计算出相机标定系数K。 K=D/L (7) 式中:L为角点间的像素距离;D为棋盘格角点间的实际距离。 对棋盘格多次标定后取平均值,得到最终的相机标定系数K=0.069 mm/pixel。 为了验证本文算法的有效性和普适性,选择两组羽毛球进行测量,第一组为合格羽毛球,第二组为次品羽毛球,表现为少数羽毛不同程度的外翻,内折以及羽毛球整体受到挤压变形。采取两点法对羽毛球直径进行多次测量,取平均值作为实际测量结果。在羽毛球加工工艺中,羽毛球标准半径为33 mm,最大偏离度要求在直径的百分之一范围内,即小于0.66 mm,圆度变形在3%以下,即圆度误差要小于0.99 mm,将测量指标不满足要求的羽毛球视为不合格羽毛球。实验结果如表2和表3所示。 表2 合格羽毛球圆度测量结果 表3 次品羽毛球圆度测量结果 从表2和表3可知,机器视觉测量系统对合格羽毛球半径的最大测量误差为0.34 mm,平均测量误差为0.21 mm;对次品羽毛球半径的最大测量误差为0.38 mm,平均测量误差为0.23 mm,羽毛球加工工艺中要求羽毛球半径测量精度误差在0.5 mm范围内,因此测量系统能满足羽毛球测量的精度要求。系统测量合格羽毛球的平均圆度误差为0.59 mm,平均最大偏离度为0.38 mm,次品羽毛球圆度的平均圆度误差为4.97 mm,平均最大偏离度为3.32 mm,能够准确地对合格羽毛球和次品进行分类。在测量速度方面,本文算法的平均测量速度为452 ms,能满足测量实时性的要求。 针对羽毛球质检工艺中对球口直径及其圆度测量的精度和速度要求,搭建了视觉实验平台。首先对采集到的图像进行预处理;其次采用Freeman链码结合改进FAST算法筛选出候选特征点,结合羽毛球几何特征,计算轮廓尖锐度和凹凸性筛选得到羽毛尖点坐标信息;最后以最小二乘法对羽毛尖点拟合,以最大偏离度和圆度误差作为圆度评定标准。实验结果表明,本文测量系统能满足羽毛球圆度测量的精度要求,相比传统检测算法,所提出的方法速度快,准确性高,测量结果稳定,为羽毛球质量检测自动化提供了一种新的方法。2.3 基于尖锐度和凹凸性的二次筛选
2.4 检测结果对比
3 视觉测量系统设计
3.1 实验平台设计
3.2 测量系统流程
4 实验结果与分析
4.1 系统标定
4.2 圆度测量结果分析
5 结论