文献标识码: A
DOI:10.16157/j.issn.0258-7998.2016.09.017
中文引用格式: 苑玮琦,魏智鹏,李德健,等. 高速视觉在线检测系统的软件抗干扰方法[J].电子技术应用,2016,42(9):65-68.
英文引用格式: Yuan Weiqi,Wei Zhipeng,Li Dejian,et al. The software anti-interference method of high-speed visual online detection system[J].Application of Electronic Technique,2016,42(9):65-68.
0 引言
随着工业4.0的到来,自动化技术开始越来越多地在制造业市场中使用,而机器视觉在自动化技术领域中具有举足轻重的地位。作为近年来制造业中的关键技术,机器视觉在线检测技术的发展已经被推上了风口浪尖。然而,基于机器视觉的高速在线检测技术成为了制约制造业发展的瓶颈。学者周文举发表的文献[1]对机器视觉的在线高速检测系统作了比较前沿的描述。
近年来,国内的生产企业大量引进机器视觉在线检测技术,试图用机器取代工人来节约生产成本。机器视觉在线检测系统一般都是安装在生产线作业流程当中,故其检测速度必须大于等于高速生产线现有的运行速度。现有的高速拍照技术也已经很成熟,但在线检测技术却面临着如下问题:(1)速度达不到要求;(2)高速视觉检测软件运行不稳定;(3)漏检误检率高。
本文针对现有的机器视觉在线检测系统所遇到的问题,巧妙利用计算机的数据缓存机制[2]解决由计算机操作系统本身、负载差异和用户操作所带来的干扰问题。本设计以高速雪糕棒质量在线检测[3]应用为案例讲述详细的设计方法。此设计方法不局限于雪糕棒质量在线检测系统,还可以扩展到其他领域产品的高速在线检测系统中。
1 高速在线检测系统架构及工作原理
1.1 总体架构
本文使用高速雪糕棒质量在线检测系统作为一般的高速视觉在线检测系统模型,系统结构图如图1所示。其中A、B、C、D分别为检测雪糕棒的正面、左侧、右侧和反面摄像机。本系统以多摄像机在线检测为例,同样适用于单摄像机。
1.2 工作原理
系统运行时,机器生产出来的雪糕棒直接落入到图1所示的储箱中。储箱下方是带等间距凹槽的链条,储箱中的雪糕棒自动落入到凹槽中,电机带动链条运动,将堆积的雪糕棒转成流水线上等间距排列的雪糕棒,多余的雪糕棒由扫棒器扫回到储箱中。光电传感器正对着链条上凹槽的凹陷处,一个凹槽对应一根雪糕棒,故每经过一根雪糕棒,光电传感器就会产生一个脉冲。4个摄像机的外触发线并联后连接到光电传感器的信号输出端,由一个脉冲同时触发4个摄像机拍照。固定4个摄像机的位置,使得触发时刻流水线上雪糕棒正好落入到摄像机的视场中心。摄像机采集图像完成后通过USB3.0数据线把数据传输到计算机。计算机接收到数据后开启多线程并行处理4摄像机的图像,并将处理结果存储在结果缓存器中等待输出。当雪糕棒运动到第一个气泵时,从结果缓存器中取出当前雪糕棒4个面的检测结果,合并后输出。输出端由4个电磁阀分别弹出U(次优)、B(良)、C(中)和D(差)4个等级的雪糕棒,没有缺陷的雪糕棒跟随流水线落入到最末端的J(最优)级容器中。
2 干扰源分析
计算机运行高速在线检测软件时,计算机硬件和软件等环境因素有时会掩盖算法本身的优劣。所使用的操作系统、编译器、运行框架等软件的不同,可以影响它们的结果。即使是同一台电脑、同一种操作系统,CPU使用率和内存占用情况不一样,也会造成细微的差异。在高速视觉在线检测系统中,这些微小的差异直接影响程序的稳定性。本文总结出3种影响程序稳定性的干扰源。
2.1 系统本身的干扰
Windows操作系统的多线程一直被认为存在着很多问题,例如多线程的不确定性和没有保障性,各个线程的运行完全是以不可预料的方式和速度推进。有时同一个程序运行了N次,其结果也存在着一定的差异。用同一个算法进行1 000次运算所得到的时间曲线图如图2所示。从图中可以看出系统本身的干扰导致检测时间的波动达到±5.5 ms。
2.2 负载干扰
当负载差异[4]较大时,检测时间也会有一定的差异。在高速在线检测系统中,目标的检测时间存在一般估计量,但是程序运行过程中难以保证每次的检测时间都不会超过一般估计量。随机抽取1 000根雪糕棒进行检测,并对检测时间进行统计,得到系统本身干扰和负载干扰叠加的检测时间曲线如图3所示。从图中可以看出系统干扰和负载干扰导致检测时间波动达到±22 ms。
2.3 其他进程干扰
当检测软件正在运行时,系统突然打开一个进程,新的进程会抢占CPU和内存资源,使得当前检测时间突变。在雪糕棒在线检测过程中,打开另一个进程所带来时间突变的曲线如图4所示。从图中可以看出其他进程的开启导致检测时间整体升高了。
在高速视觉在线检测系统[5]中,不管是由系统本身、负载差异还是用户操作所带来的干扰都是不可忽略的。这就决定了在高速视觉在线检测系统中必需要有一种软件抗干扰方法[6,7]可以缓解这些干扰,为高速视觉在线检测系统的实现提供保障。
3 抗干扰方法的设计
通常的软件抗干扰方法[8]有扩频技术、剔除异常数[9]、延时技术[10]等,扩频技术主要解决通信上的干扰问题,剔除异常数要耗费大量CPU资源排除异常,延时技术会耗费大量的时间。常用的软件抗干扰方法无法满足现在的高速视觉在线检测系统。为此本文设计了基于计算机缓存机制的高速视觉在线检测系统的软件抗干扰方法。数据缓存机制可以有效地减少多线程运算的拥塞,减轻计算机的负载,加快整个系统的运行速度。通过部署结果缓存器,可以进一步提高高速视觉在线检测系统的性能。
本设计中光电传感产生的脉冲同时触发4个摄像机采集图像,图像采集完成后送入到计算机内存中,4个摄像机对应4个线程分别对各自的图像进行运算。运算的结果存储在由拍照帧数作为地址偏移量的存储器中。对于同一根雪糕棒,跟随流水线先后分别经过A、B、C和D 4个摄像机。当经过最末端的D摄像机并且D摄像机所对应的线程运算完毕时,一根雪糕棒4个面的检测结果均已存储在结果缓存器中。从图1中可以看出,最末端摄像机与最前端电磁阀之间存在着一定的距离,雪糕棒检测完成后还需要在链条上运动这段距离才到达输出端。本设计就是利用这一段的物理距离和计算机的缓存机制实现的抗干扰方法。显然在这里检测末端与输出前端的距离与缓冲时间是成正比的,该距离可以在机械设计时改变。在此用雪糕棒的数量来衡量这段距离。检测末端与输出前端之间的雪糕棒数量n只需满足如下数学关系即可:
式中,i表示雪糕棒序号,ti表示第i根雪糕棒的检测时间,T表示一根雪糕棒的平均检测时间。由式(1)可知,当n=1时,有t1<T,缓冲时间为(T-ta);当n=2时,有t1+t2<2T,缓冲时间为2(T-ta);当n=3时,有t1+t2+t3<3T,缓冲时间为3(T-ta)。由此可知n越大缓冲时间越大,但是n增大的代价是计算机存储空间和流水线长度的浪费。由大量的雪糕棒样本统计得到结果,每根雪糕棒的平均检测时间ta=51.43 ms,产生干扰脉冲幅值大于2ta的概率为0.6%。雪糕棒生产厂商要求检测的速度为15根/s,算得检测时限T=66.66 ms。平均一根雪糕棒有Td=T-ta=15.23 ms的缓冲时间。计算机缓存的作用相当于是把每次的缓冲时间都收集起来,供给干扰脉冲消耗。同时,雪糕棒的检测时间参差不齐,缓存机制使得各次的检测时间可以互补,处理时间短的线程把CPU腾让出来供给处理时间长的线程使用。程序设计中,使用计数器对摄像机采集的帧数进行计数,每次开启线程时把计得的帧数传递到线程处理函数中,线程处理完成后把结果存储到以传入的帧数为地址偏移量的循环队列中。如此一来,检测时间短的结果数据先入队,检测时间长的结果数据后插队。未使用缓存和使用缓存的检测时间对比如图5所示。未使用缓存时,对单次的最长检测时间M感兴趣,使用缓存后,只对多次检测的平均检测时间N感兴趣。缓存的使用实现了各次耗时不等检测的时间互补,合理利用了各次检测的时间余量。经过缓冲时间后,最终输出的是与单次检测时间长短无关的结果序列,从而使得系统具备了抗干扰能力。
4 实验结果与性能分析
抗干扰方法测试:从工业现场随机抽出一部分雪糕棒,分别运行未使用缓存和使用缓存的程序做了测试。测试过程中雪糕棒运行速度从1根/s逐步提升到19根/s,通过多次测试并对结果观察统计得到的实验数据如表1所示。
从实验结果看出,当雪糕棒的运行速度在10根/s以内时,平均检测时间小于规定检测时间,未使用缓存和使用缓存的程序运行结果都不存在漏检现象;当速度超过10根/s后未使用缓存的测试结果开始出现漏检,而使用缓存的程序还是正常运行;当检测速度提升至15根/s时,未使用缓存的程序出现了严重的漏检现象;当检测速度在17根/s以内,使用缓存的程序均不会出现漏检现象;当速度提升至18根/s时,使用缓存的程序检测结果也开始出现了漏检现象。该实验证明,缓存机制在高速视觉在线检测系统中的应用对程序运行的稳定性有很大的改善。
5 结论
本文所设计的基于计算机缓存机制的软件抗干扰方法充分利用了空间换取时间思想,最终使得雪糕棒在线检测系统的检测速度从原来的10根/s提高到了17根/s,检测速度提高了70%。由此可知,本文所设计的软件抗干扰方法对系统本身、负载差异以及用户操作所带来的干扰具有一定的抵抗力,为一般的高速视觉在线检测系统的高速、稳定运行提供了保障。
参考文献
[1] 周文举.基于机器视觉的在线高速检测与精确控制研究及应用[D].上海:上海大学,2013.
[2] 吴继栋.浅论计算机缓存的工作机制[J].计算机与信息技术,2007,33(13):411-422.
[3] 苑玮琦,李德健.雪糕棒轮廓质量视觉在线检测方法[J].计算机应用研究,2015,11(33):1022-1030.
[4] 张金柱,洪佩琳,薛开平.负载自适应的CoMP调度策略[J].中国科学院研究生院学报,2012,5(29):644-651.
[5] 李晓飞.高速在线机器视觉检测方法的研究[D].天津:天津理工大学,2008.
[6] 史勇,谢晓霞.测控系统中的软件抗干扰技术[J].现代电子技术,2006,5(19):99-101.
[7] 孙亚楠.软件抗干扰技术[J].电子质量,2010,8(8):84-85.
[8] 王建新,杨世凤,史永江,等.系统测试中的软件抗干扰技术[J].国外电子测量技术,2005(10):18-20.
[9] 张慧娟.异常数据检验的几种方法[D].秦皇岛:燕山大学,2012.
[10] 刁一峰,杨培刚,刘丽萍,等.软件延时程序的分析与精确延时程序设计[J].沈阳工程学院学报(自然科学版),2014,10(4):356-358,369.