邹华东,林胜鹏,张志田,李祖明
(清远职业技术学院,广东清远 511510)
打印机在世界各地使用非常广泛,打印机墨水作为一种耗材,其消耗量非常大,市场前景广阔。采用全自动灌墨包装线,既减少劳动力,又提高生产效率和准确度,是解决目前生产工厂劳动力紧缺的重要手段。国内不少自动化设备公司都投入较大的研发资源对自动灌墨包装线进行开发,出现了一些市场推广应用产品。由于打印机厂家数量较多,墨水瓶生产型号和种类较为繁多,且其机械结构也都有所差异,这就造成自动灌墨线需要针对不同产品进行个性化定制和研发,增加了自动灌墨包装线的开发难度。
针对自动灌装线设计中带有外部把手的墨水瓶的自动定位问题,研究一种亚像素图像边缘检测算法,利用该算法检测把手的边缘点信息,进而确定把手角度,完成后将角度信息传递给SCARA机器人,机器人根据角度信息调整机械手的角度,避开瓶盖把手位置并将墨水瓶盖自动夹取到指定工位。
墨水瓶自动灌装线主要包括空瓶送料、墨水灌装、封口和瓶盖旋紧等几个主要工序。瓶盖旋紧环节中,由于瓶盖具有把手,需要在抓取的前端环节能够识别出把手的方向,以便抓取机器人能够避开把手位置进行抓取并将瓶盖移送到传送带规整排放。整齐排放的瓶盖送到传输线上后,后续旋盖工位才能够顺利工作。视觉检测技术因其非接触、准确和高效率等优点在机器人定位方面应用非常广泛[1-2]。
图1为墨水瓶盖视觉检测与机器人夹放系统示意。工作时,墨水瓶盖由振动盘振动,使得其排队由传送带传输;当瓶盖传送到预定工位,PLC 检测到位置传感器信号后,控制移动机械手夹取瓶盖到预定载物台;载物台上的光纤位置传感器检测到有瓶盖时,传递信号给PLC 并由PLC 发送指令给工业机器人;SCARA 工业机器人接收到信号后,通过网络接口发送检测开始的指令给计算机;计算机接收到后,进行把手角度测量,完成后将信号反馈给工业机器人,由工业机器人根据信号转动第4 轴调整夹取装置角度,移动到瓶盖位置夹取,夹取完成后进行旋转调整;最后移动机械臂将瓶盖规整放置在预定的传送带位置;传送带移动瓶盖到下一个工位进行旋盖操作。
图1 视觉检测与机器人夹放系统示意图Fig.1 Schematic diagram of vision inspection and robot clamping system
图2为墨水瓶盖的俯视和侧试图,瓶盖的最大直径为27 mm,把手最外端到圆心的距离为27.5 mm,夹取速度为0.5 个/s,前端排队和夹取2 道工序保证圆心位置能够较为准确放置,偏差在2 mm 以内,但是把手的边在放置好后可能出现在左侧,也可能出现在右侧,所以需要视觉检测系统能够判断出把手的方位。设计机械手张开到最大位置时,最大内径为33 mm,夹取时的间隙在2.5~5 mm,所以放置的圆心偏差不影响夹取。视觉检测只需要检测出把手的偏角。由于把手为弹性塑料制品,且瓶盖有一定的高度,所以存在成像和安装误差,导致视觉测量时,投影的把手不一定为正投影,存在重影,影响测量精度。为保证夹取效率,设定系统的检测速度为3 ms/次,视场范围为115×86 mm,测量角度允许最大误差为3°。
图2 墨水瓶盖俯视和侧视图Fig.2 Top and side view of ink bottle cap
视觉检测部分的硬件构成主要包括有相机、镜头、光源和工控机。根据需要检测的工件尺寸、检测精度和检测速度要求,系统选用微视图像的130 万像素高分辨千兆网工业相机RSA1400-GM60,图幅尺寸为1 280×1 024 Pixel,像元尺寸为5.3×5.3 µm,采集帧率为60 fps/s;镜头选用Computar 百万像素镜头M3514-MP2,镜头焦距f为35 mm;照明采用诺视80*80 mm 的阵列LED光源。
相机的安装高度可以由下式求得。
式中 L——安装高度,mm;
W——视场范围,mm;
f——镜头焦距,mm;
w——相机靶面宽度,mm。
代入所选部件的技术参数,求得:L= (115 × 35 ×1000 )/ (5.3 × 1280 )=585.5 mm。该安装高度能够让视觉采集装置避开机械手的操作行程范围。
当计算机通过网络接口接收到机器人传递的角度信号后,计算机通过工业相机进行墨水瓶盖图像采集,然后对图像进行预处理,即通过中值滤波,过滤掉图像中可能存在的离散小颗粒杂点。这些杂点通常为工作时落在台面上的粉尘的投影,对于亚像素边缘检测影响很大。该步完成后,对图像进行亚像素边缘检测,获取图像把手的边缘点数据,获取后进行角度计算,得到的计算结果由计算机传递给机器人,供机器人调整夹具的偏转角度。
在图像分割、尺寸检测和模式识别等机器视觉应用领域,图像边缘检测已成为一项基本任务,很多像素级检测算法不断被提出,如Sobel、Roberts、Prewitt、Canny 算子,这些算法得到了国内外学者的广泛研究和关注。但是随着技术的发展,像素级检测结果已经不能满足实际应用需要,像素级边缘检测技术逐渐发展为亚像素边缘检测。亚像素边缘检测最早由Hueckel 提出,现已发展为基于空间矩、基于插值法、基于拟合、基于小波变换的四大类亚像素检测算法[3-8]。
基于空间矩的算法计算量较大,对噪声敏感,而且都是针对理想边缘模型提出,理想边缘模型与真实模型间存在差异,因此存在原理误差;基于拟合和基于小波变换的检测算法虽然抗噪声能力强,但是计算量较大;基于插值的方法算法设计简单,计算量相对较小但是抗噪声能力不足[9-12]。
本文针对墨盒灌装线的墨盒把手检测需求,设计一种亚像素边缘检测算法,用于快速准确确定把手位置,算法的总体流程如图3所示。
图3 亚像素边缘算法总体流程Fig.3 Overall flow chart of sub pixel edge algorithm
进行边缘点探测时,首先设定侦测线起点和终点坐标,获得侦测线上的n 个像素点,每个像素点对应一个向量P[i],表示为{X[i],Y[i],f[i]},其中f[i]对应于侦测线上第i+1 个点的灰阶值,对应坐标值为(X[i],Y[i])的像素点的灰度值。通过维度变换后,向量P[i]可以表示为(i,f[i]),其中i 代表点的实际像素坐标为(X[i],Y[i]),坐标系由原来的三维变为二维。经过维度变换,探测线上每个像素点的一阶导数为:
一阶导数的大小反映图像灰度的变化率。边缘的亚像素位置,通常存在于过渡区域中的灰度曲线斜率最大处,因此一阶导数极值位置就是图像的边缘位置,边缘检测的目的就是获取一阶微分的峰值位置。为减少噪声和杂散信号对侦测的影响,根据边缘过渡区域的灰度变化规律,设置一阶微分峰值的阈值DThreshold,超过阈值的峰值才列入考虑,此时有公式:
由高等数学Rolle 定理和函数极值的判定方法可以推导出:当1 条连续曲线2 次穿越零位,其极限值位置必然在2 个零位之间。当V[i]值2 次超越零位时,根据其特征(V[i]>0 且V[i+1]<0 或V[i]<0 且V[i+1]>0),可以得到边缘过渡曲线的2 个像素点对应位置。
图4中直线为阈值线,曲线为一阶微分曲线。可以看出,灰度小幅波动的一阶峰值全部被排除在外,而灰度小幅波动代表了成像时的杂讯波,所以设置峰值阈值可以提高系统的抗噪能力,避免找到多个局部极值,造成虚拟边界点。如果把峰值线当作X 轴,此时阈值线与一阶峰值曲线有2个交点,分别为PP1 和PP2,而一阶微分的峰值点一定位于2 点之间的某一位置。
图4 零位穿越示意图Fig.4 The schematic diagram of zero crossing
PP1、PP2 两点在侦测线上的具体位置,可以通过弦截法获得。图5为弦截法原理图,在曲线上如果存在点X1和X2,如 果f(x1)<0,f(x2)>0,那么2 点连线与X 轴的交点坐标如式(4)所示。
图5 弦截法原理图Fig.5 Schematic diagram of chord section method
当2 点较为靠近时,可以用x 值来近似f(x)与X 轴坐标的交点。因此在V[i]值超越零位时(V[i]>0 且V[i+1]<0 或V[i]<0 且V[i+1]>0),穿越的零位点的实际位置坐标估计值:
此时的T[i]值就是该零位点在侦测线上的估计位置,位于第i 和第i+1 点之间。通过该步骤,2 个穿越点的位置就已经确定,一阶微分峰值点位置位于2 点之间,实际上相当于在过渡区域人工插入2 个图像中并不存在的像素点,2 点对应的一阶微分值等于峰值阈值,2 点之间沿着侦测线方向的像素点用于边界点拟合评价。该2 点的确定使得过渡边缘点的评估范围大幅度缩减,评估点的减少有效缩短计算时间,而且范围缩减使得大多数接近峰值的像素点被用作评价点,有利于提高定位精度。
经过峰值阈值设置和过零点的插入,边缘点的位置范围已经缩减到PP1、PP2 两点之间。假设PP1、PP2 之间有k 个像素点,那么参与评价的像素点的个数为k+2。
此时记X0=IntSPt,Y0=0;Xk+1=IntEPt,Yk+1=0。其中IntSPt 和IntEPt 分别是由式(5)计算出的坐标值,其余像素点的坐标值:
为方便拟合数据,将坐标原点平移到插值起点,完成后X0=0,Y0=0;Xk+1=IntEPt-IntSPt,Yk+1=0。其余像素点的坐标值Yi不变,Xi变为:
侦测线上的所有像素点的一阶微分曲线经过峰值阈值截取后所得曲线形状与二次曲线相似,因此边缘过渡区域的曲线采用二次曲线模型,如下式所示。
数据拟合方法中,基于最小二乘准则的函数拟合是一个有效的数学工具[13],可以保证测量的可靠性和效率。其原理是给定一系列点(Xi,Yi),在某一函数类f(x)中,寻求一个函数f*(x),使得目标函数S 取值最小,其中:
S 的大小反映全部实际值与回归函数值之间的偏离程度,拟合过程用来确定函数f*(x)系数的最佳取值,即确定系数值使得误差偏离累积值S 最小。由于过渡区域的像素点灰度值曲线分布近似二次曲线,所以目标函数定义为f*( x )= ax2+ bx +c 。根据矩阵求解的规则可知,在拟合点数≥3 时能够找到最优的系数解。具体求解如下式所示。
其中:
在系数求得的情况下,由过原点的二次曲线方程可以得到过渡边缘的峰值点位置和幅值:
由于拟合点的坐标值都经过了1 次平移,所以探测线上的边缘点实际位置:
根据数学中的积分可知,二次曲线峰值区域包围面积就是曲线的定积分值,如下式所示。
令d=IntEPt-IntSPt,代入公式后有:
二次曲线峰值区域面积实际上是一阶微分值的积分,代表灰度峰值两侧灰阶值变化大小。由于干扰信号产生的局部极值,其灰度一阶微分曲线包围面积较小。
通过二次曲线拟合获得了一阶微分值的峰值位置,但是由于噪声和干扰信号的影响,有的情况下会出现局部极值点,所以峰值位置是否为边界位置还需要进一步确定。局部极值点有2 个特点:一是峰值相较于真正的极值要小;二是峰值幅度小,或者有时仅仅是受局部较少几点的影响,其峰值区域的积分面积也较小。所以通过设置二次峰值幅度Hysteresis、区域面积阈值MinGStep 来去除局部极值点,降低干扰信号对边缘检测影响,其判断式:
二次曲线模型对于大多数应用场合都适用。在比对实际图像边缘的灰度曲线和灰度一阶微分曲线的情况下,可以根据实际情况选择修正为其他类型的曲线模型,仅仅需要改变拟合曲线类型,因此算法的扩展性良好。
通过数值拟合等计算,边缘在侦测线上的位置已经得到精确计算,并存储在浮点型变量Plocation 中,但是该数字仅仅代表其在侦测线上的位置,即一维坐标值,通过维度转换后可以精确获得边缘点最终的二维度亚像素标值。
图7为带把手的墨水瓶盖在自动灌装线工位上的图像。
图7 墨水瓶瓶盖图像Fig.7 Image of ink bottle cap
可以看出,工装夹具中间为圆形定位部分,让瓶盖放置能够对位到中心,为方便找到墨水瓶盖把手的角度,需要准确找到圆弧中心点。采用本文所提供的亚像素检测方法,沿着点(450,296)至(450,600)和点(444,424)至点(872,424)分别绘出1 条垂直侦测线和1 条水平侦测线,分别找到黑到白和白到黑的亚像素边缘点,具体如图8所示。检测到的边缘点的坐标值见表1。由几何特征知识可知瓶的放置中心点的坐标为(631.746,435.202),即分别取水平探测线的边缘点的中点X 坐标和垂直探测到的边缘点的中点Y 坐标。完成中心点探测后,即存储在图像检测软件中供后续调用。
表1 边缘点坐标探测值Tab.1 Detection values of coordinates of edge points
图8 垂直探测和水平探测物体边缘点Fig.8 Edge points on the vertical and horizontal detection line
图9为工件以起点(380,358)和终点(380,528)作探测线进行亚像素边缘点定位,用于提取把手的位置。检测获得2 个边界点坐标,其中白到黑的边缘点为(390,441.042),黑到白的边缘点为(390,273.526),因此其中心点的坐标为(390,357.284)。将该点和墨水瓶中心点连接,利用求角度的公式可以求得其角度为183.842°。和实际量取的183.6°接近。
图9 单探测线法测量把手角度(正投影)Fig.9 Measurement of handle angle by single detection line method(orthographic projection)
把手实际放置不一定为正投影,采用亚像素检测算法如果仅通过1 条直线搜素边缘点,偏斜的影响导致采集的边缘像素点可能并不分别位于把手的上侧和下侧。
实际检测时,可以通过双检测线方法来解决该问题,即从上到下搜索边缘点和从下到上搜索边缘点,2 条探测线在X 方向的间距为6 个像素点距离,分别进行亚像素边缘检测获得边缘点然后取平均值,这样可以减少测量的角度偏差。图11(a)为单探测线方法测到的把手的方向线图像,检测到的把手角度为-16.58°;图11(b)为双探测线方法得到的结果,测到的角度为-19.13°。可以看出,双探测线方法能够减少测量偏差,当偏斜量大时其效果更明显。
图11 单探测线方法和双探测线方法测量结果Fig.11 Measuring results of single detection line method and double detection line method
图12 为墨水瓶自动灌装线机器人夹盖工位的现场照片,应用设计的亚像素边缘检测算法对墨水瓶盖进行视觉检测,单个瓶盖的平均检测时间为2.15 ms,瓶盖的角度测量偏差在3°以内,总体夹放速度达到0.4 s/个,优于设计要求。
图12 墨水瓶自动灌装线机器人夹盖工位Fig.12 Robot cap clamping station of ink bottle autopackaging line
设计一种基于二次曲线拟合的2 步定位亚像素边缘检测算法,边缘定位过程中采用降维的方法将探测直线上像素点二维坐标转化为一维坐标,完成定位后将边缘点一维坐标转换为图像像素坐标,减少运算时间。算法分为初定位和精确定位2 步,根据定位点探测线的灰度微分特性曲线,通过弦截法定位出粗略的边缘点范围,减少精确定位时的拟合点数目;精确定位通过二次曲线拟合确定出边缘点的准确位置,依据实际物理模型的不同改变拟合算法,提高算法的适应能力。利用亚像素边缘检测算法设计一种双探测线法并应用到墨水瓶盖的灌装线上,保证机器人夹取瓶盖时有效避开把手位置,取得良好应用效果。该算法可以广泛应用于视觉检测中需要快速精确进行边缘点定位的场合。