APP下载

基于多级多线程和缓存的雪糕棒质量在线检测系统

2016-08-09沈阳工业大学信息科学与工程学院苑玮琦魏智鹏李德健

电子世界 2016年13期
关键词:在线检测

沈阳工业大学信息科学与工程学院 苑玮琦 魏智鹏 李德健



基于多级多线程和缓存的雪糕棒质量在线检测系统

沈阳工业大学信息科学与工程学院 苑玮琦 魏智鹏 李德健

【摘要】本文针对多摄像机在线视觉检测系统普遍存在的检测速度慢、检测结果不可靠问题,提出了一种基于多级多线程和缓存的视觉在线检测方法。本方法使用一个控制线程动态开辟多个处理线程,并将处理结果按拍照时刻的先后顺序存储在对应的结果缓存器中,当多个摄像头都检测完毕后再将多个检测结果合并输出。多级多线程和缓存的结合使用,不仅提高了在线检测系统多线程并发处理的效率,而且提高了系统的抗干扰能力。本课题研究成果可为常规的在线检测系统提供一种设计方案和实现方法参考,具有一定的理论和应用价值。

【关键词】多级多线程;结果缓存器;在线检测

1 引言

目前,国内外大部分雪糕棒厂商采用人工检测方法区分雪糕棒的质量等级,这种方式不仅效率十分低下,而且成本很高。针对这个难题,一些学者对雪糕棒质量在线检测做出了探索。文献[1]主要在硬件层面描述了雪糕棒质量在线检测系统设计与实现,文献[2]则在算法层面对雪糕棒的多种缺陷提出了检测方法。经由文献研究,基于多摄像机的在线检测系统,通常采用了多线程的软件设计方法。多线程的方式适用于时间要求较为宽松、负载的最大时间估计量小于规定时间且无外界干扰的场合。但是对于时间要求严格,负载估计量有可能超出规定范围并且存在软件干扰的场合,仅使用多线程已经无法保障在线检测速度和检测结果的可靠性。

本文针对前面学者研究的雪糕棒质量在线检测系统存在的在线检测速度慢、检测结果不可靠的问题,从软件架构设计方面提出了基于多级多线程和缓存的在线检测系统,有效地解决了在线检测系统的检测效率和干扰问题。文中所涉及的软件设计架构可以为常规的多摄像机在线检测系统的应用提供一套有效的设计方案。本设计以雪糕棒质量在线检测为应用实例讲述详细的设计方法,具有较强的实际应用价值。

2 雪糕棒质量在线检测系统构建

2.1系统整体工作原理

本文所设计的雪糕棒质量在线检测系统模型如图1所示。雪糕棒质量检测系统由机械平台和视觉检测系统两部分构成。其中机械平台由动力控制模块、流水线和分拣模块组成。视觉检测系统由4台高速摄像机、一个光电传感器和一台计算机组成。雪糕棒放入到储箱后,会自动掉入到链条凹槽内,链条向上运动把凹槽内的雪糕棒从储箱带到流水线。储槽上方的扫棒装置会把搭载在链条凹槽上多余的雪糕棒扫回到储箱中。光电传感器安装在链条侧面,流水线运动时,每一个凹槽经过传感器便会产生一个脉冲信号,该信号用来触发系统中的4个摄像机拍照。雪糕棒运动依次经过左侧、右侧、正面和反面检测摄像机。正面和反面之间由两个链轮相互配合的结构完成翻转动作。最后雪糕棒会经过由单片机模块和气泵组成的分拣系统,分拣出J(优)、U(次优)、B(良)、C(中)、D(差)5个等级。

图1 雪糕棒质量在线检测系统模型图

2.2多级多线程架构设计

在实际应用中,多个线程的运算量存在差异。此时,多线程的调度[3]存在一个最优调度[4],这种最优调度可以进一步提高多线程的效率。例如雪糕棒正面和反面面积较大,处理时间比侧面要长很多。当多个线程同时开启时,运算速度快的线程将会继续查询摄像机的数据从而消耗了CPU的时间片,运算慢的线程始终只获得系统平均分配的固定时间片。针对多线程存在的缺点,本文设计了一种多级多线程[5]的结构,进一步提高多线程的工作效率。雪糕棒在线检测系统中设计的多级多线程结构图如图2所示。

图2 三级线程关系图

多级多线程的设计使得系统对时间片的分配适应每个线程的运算复杂度。运算量小的线程运算结束后系统会自动把CPU资源分配给运算量大的线程。多级多线程和多线程的运行时间比较如图3所示,P和Q(P<Q)分别为多级多线程和多线程架构下的运行时间。从图中可知多级多线程的应用使得系统可以自适应多个线程运算量的差异,缩短了单次检测的运算周期。

图3 多级多线程和多线程运行时间比较

多级多线程使得消耗时间大的线程越到后期,可以获得的CPU资源越多。多线程方式下和多级多线程方式下运行时的CPU占用率曲线图如图4所示。从图中可以看出多线程下的CPU占用率比较平稳,但是总的运行时间较长。而在多级多线程下,CPU的占用率会随着其他线程的关闭而增加,使得总的运行时间缩短。

(a)多线程下的CPU占用率

图4 速度曲线

2.3数据缓存机制设计

在线检测系统在运行过程中存在一些干扰,这些干扰会导致某次检测运算的时间超出检测时间限制。随机抽取1000根雪糕棒,其检测时间曲线如图5所示。从图5中可以看出,运行过程中偶尔会有一些较大的时间干扰脉冲。

图5 随机抽取1000根雪糕棒检测时间曲线

分析产生时间干扰的原因有以下几种:

(1)操作系统本身对CPU资源的竞争,因为操作系统线程的优先级始终高于应用程序。

(2)其他进程对CPU资源抢占。在线检测程序运行过程中用户打开了其他应用程序造成。

(3)检测目标的不确定性。例如某根雪糕棒的表面较为复杂时,算法的时间复杂度会随之增大,从而导致处理时间变长。

本文充分利用计算机缓存机制[6]解决在线检测系统的干扰问题。当图像采集完成时,系统就为当前的雪糕棒检测分配了结果缓存器。处理线程运算完成后便把检测结果存储在事先分配的结果缓存器中。只有等到当前雪糕棒运动到输出系统时,才会使用之前的检测结果。设雪糕棒从图像采集系统到分拣输出系统之间的间隔为n根雪糕棒。n只需要满足如下数学关系即可:

式中i表示第i根雪糕棒,ti表示第i根雪糕棒的检测时间,T表示每根雪糕棒的规定检测时间。由上式可知,当n很小的时候,对ti的要求就高,例如当n=1时,有ti<T,缓冲时间为T-ta;当n=2时,有, 缓冲时间为2(T-ta); 当n=3时,有缓冲时间为。由此可知n越大缓冲时间越多,但是n值的增大会造成机械空间和计算机存储空间的浪费越多。在缓冲时间内,检测时间短的雪糕棒把时间余量腾让给检测时间长的雪糕棒使用,如图6所示。缓存实现了各次耗时不等检测的时间互补,合理利用了各次检测的时间余量。从而使得在线检测系统具备了抗干扰能力。

图6 使用缓存与未使用缓存检测时间对比

3 实验结果与性能分析

(1)多级多线程性能测试:依次从产品中随机抽取1000根雪糕,分别使用多线程和多级多线程架构进行检测,检测算法完全一致。测试过程中,将雪糕棒的运行速度调至1根/S,计时从摄像机采集完成时刻开始,到处理完成时刻停止计时。从多次抽样测试中,随机抽取五组数据计算其平均检测时间,以此来验证设计的有效性,随机抽取实验结果制作表格如表1所示。

表1 多线程与多级多线程平均检测时间结果比较

从以上数据可以看出多级多线程的使用使得平均检测时间缩短了5.38 ms,由此算得计算机CPU的使用效率提高了9.2%。

(2)缓存性能测试:从产品中随机抽出一部分雪糕棒,分别用未使用缓存和使用缓存的程序进行对比测试。测试过程中雪糕棒的运行速度从1根/S逐步提升至18根/S,通过对结果的观察统计得到实验数据如表2所示。

表2 未使用缓存和使用缓存实验结果对比

从实验结果看出,当雪糕棒的运行速度在11根/S以内时,未使用缓存和使用缓存的程序运行都没有漏检;当速度超过11根/S时未使用缓存的测试结果开始出现漏检现象,而使用缓存的程序还是没有漏检;当检测速度在16根/S以内时,使用缓存的程序都没有漏检。超过16根/S时,使用缓存的程序也开始出现漏检。使用缓存后雪糕棒的检测速度从11根/S提高到了16根/S,检测速度提高了45.5%。

4 结论

经过对本文设计的基于多级多线程和缓存的雪糕棒质量在线检测系统样机的现场测试,可以得出以下结论:

(1)多级多线程的设计架构可以更加合理地分配CPU资源的使用,使得耗时不等的线程间进行时间均摊,单次检测的整体运算时间缩短了9.2%。

(2)所提出的多级多线程和缓存结合的设计方法,充分利用了空间换时间思想,避免了因单次检测时间超长而可能引起的结果混乱。在缓冲时间内,使得多次耗时不等的检测时间均摊,最终使得检测速度提高了45%。

参考文献

[1]苑玮琦,李德健.雪糕棒轮廓质量视觉在线检测方法[J].计算机应用研究,2015,11(33).

[2]苑玮琦,成丽佳.雪糕棒质量在线视觉检测系统设计与实现[J].计算机测量与控制,2015,23(8):2679-2682.

[3]马超,尹杰,江凌波.基于长并行距离优先的确定性多线程调度[J].小型微型计算机系统,2012,10(10):2177-2181.

[4]唐夷简.芯片多线程处理器线程调度的性能测试与优化研究[D].国防科学技术大学,2009.

[5]孟小锋,陈晓华,曹红苹.基于多级多线程的数据库并发控制测试系统[J].电脑知识与技术(学术交流),2007,09:728-730.

[6]吴继栋.浅论计算机缓存的工作机制[J].科技信息(科学教研),2007,33:411+422.

作者简介:

苑玮琦(1960—),辽宁沈阳人,博士,教授,主要研究方向:视觉检测技术、生物特征识别等。

魏智鹏【通讯作者】(1991—),福建龙岩人,硕士,现就读于沈阳工业大学信息科学与工程学院,主要研究方向:机器视觉。

李德健(1990—),辽宁锦州人,博士,现就读于沈阳工业大学信息科学与工程学院。

猜你喜欢

在线检测
研究电力电缆线路运行温度在线检测技术的应用
二次表在石油树脂粘度检测中的应用
基于度分布的流量异常在线检测方法研究
新型过滤器箱体的国产化研发
基于可见光谱的非接触式金属离子水质监测原理研究
功能性涂层织物涂层克重在线检测技术研究进展
基于DSP的磨削表面粗糙度在线检测系统开发
浅谈安全阀在线检测
过温红外远程在线监控系统在变电站的应用