APP下载

基于多线程串行通讯的机器视觉瓶盖缺陷检测

2012-10-08龙智帆孙志海孔万增

关键词:瓶盖线程串口

龙智帆,孙志海,孔万增

(杭州电子科技大学计算机应用技术研究所,浙江杭州310018)

0 引言

大批量工业生产过程中,用人工视觉检查产品质量,人眼容易疲劳,主观性强、效率低且精度不高。运用工业机器视觉[1,2]技术对其进行检测,具有非接触、实时、精度高等特点,可以大大提高生产效率和生产过程的自动化水平。近几年,工业机器视觉在工业生产过程中的应用越发得到生产流水线设计人员及研发人员的青睐。但产品质量检测过程中实时检测系统的整体性能及可靠性制约着流水线的生产效率。为此,本文以工业机器视觉产品实时检测过程中多任务并发执行及软硬器件之间的通讯为设计出发点,给出了一种基于多线程串行通讯的工业机器视觉饮料瓶盖缺陷检测的软件设计方案。

1 检测系统

本检测系统由设备控制单元、图像传感单元、图像采集单元、图像处理单元及饮料瓶剔除单元5部分组成。系统结构示意图如图1所示。

图1 系统结构示意图

本系统的工作原理是通过随流水线运动的饮料瓶触发传感器件的瞬间,由图像传感单元向图像采集单元发出采集信号,并由图像采集单元采集1张图像传给图像处理单元,若图像处理单元检测到不符合检测要求的饮料瓶,则向可编程逻辑控制器 (Programmable Logic Controller,PLC)发出不合格信号并由PLC向剔除设备发出剔除信号以进行剔除。

2 多线程串行通讯

2.1 多线程及串行通讯技术

线程是进程内的一个相对独立的单元,它在系统指定的时间片中完成特定的功能。多线程则是将程序任务分成几个并行的子任务。虽然多线程在微观上是分时的,但这种调度的策略确实能够提高CPU的利用率,从而提高程序的执行效率。但由于各线程访问共享资源的时机不定,一块数据共享区在使用的时候,其数据的完整性或一致性就会受到挑战[3]。现在的操作系统提供了许多安全、高级的线程同步控制方法。以Win32系统为例,系统提供了同步对象来协调多线程的执行,同步对象有:事件对象,临界区对象,信号量对象和互斥对象。这样就保证了不会在同一时刻出现多个线程访问共享资源,避免了多线程共享资源冲突。

串行通讯是计算机与其他设备进行数据交换时常使用的方法之一,具有实现简单,使用灵活方便,数据传输可靠等优点,因而在工业监控、数据采集和实时监控系统中得到广泛应用。但实时性和系统资源利用率不足。基于多线程和消息的多任务处理可以有效地解决通讯的实时性,且能提高数据的吞吐量和应用程序的可靠性[4]。

2.2 多线程串行通讯的实现

本检测系统分为上位机和下位机两部分,上位机和下位机通过串口进行通讯,下位机PLC的型号是西门子S7-200PLC CPU224XP。本检测系统的线程调度及串行通讯如图2所示。

图2 系统线程调度及串行通讯示意图

图2中,检测系统的处理流程如下:上位机部分,一旦监听线程查询到有数据发送至串口,主线程便调用读线程接收数据,若该数据采集信号,则采集1张存入缓存区。同时处理线程发现有未处理的图像,便从缓存区读入1张图像进行处理,并将处理后的图像数据和检测数据分别存入相应缓冲区,等待存储线程和显示线程的处理,同时通知主线程调用写线程将相应的数据写入串口。下位机部分,饮料瓶触发传感器的瞬间,由PLC发出采集信号,并写入串口。然后,等待接收由上位机发送至串口的数据。最后,PLC从串口读入数据,并根据数据发出相应的信号以控制剔除设备的动作。

3 图像处理

3.1 图像阈值化

阈值法是一种简单有效的图像分割方法,但阈值法的分割结果在很大程度上依赖于阈值的选择,因此该方法的关键是如何选择合适的阈值。各阈值法对瓶盖处理的效果如图3所示。

图3 阈值化效果图

图3从左到右依次为原图,Otsu、Niblack3×3及Niblack全局阈值化效果图。

Otsu阈值法是自适应单阈值计算的简单高效方法[5]。Otsu阈值法如:

式中,ω0为前景点数占图像比例,μ0为前景平均灰度,ω1为背景点数占图像比例μ1,为背景平均灰度,μ为图像的总平均灰度。记t为前景与背景的分割阈值,从最小灰度值到最大灰度值遍历t,使得值g最大时的t值即为分割最佳阈值。由图3可知,Otsu阈值法能更好的将瓶盖与背景色区分开,更适合本文。

Niblack[6]阈值法速度快、效果好,但容易产生噪声。设在图像中取宽为x长为y的模板,Niblack阈值法如:

式中,T(x,y)为模板阈值,m(x,y)为模板数据的均值,s(x,y)为模板数据的均方差,k为常系数,需要根据图像前景和背景的分割效果进行调整,本文采用的是-0.2。

3.2 图像锐化

图像锐化处理的主要目的是突出图像中的细节部分,本文采用边缘检测算子对图像进行锐化处理,各个算子的检测效果如图4所示。

图4 边缘检测检测效果图

图4从左到右依次为原图,Sobel算子、Prewitt算子及Canny算子边缘检测效果图。由图4可知,Sobel算子的处理效果优于另2种方法,能提取出清晰的边缘轮廓。所以,本文采用Sobel算子提取瓶盖边缘轮廓。

Sobel算子和Prewitt算子[7,8]都是对图像进行差分和滤波运算,边缘定位比较准确和完整,对灰度渐变和具有噪声的图像处理效果较好,但对混合多复杂噪声图像处理效果不理想。Canny方法是一阶传统微分中,检测阶跃型边缘效果最好的算法之一,它比Sobel算子和Prewitt算子的去噪能力强,但也容易平滑掉一些边缘信息。

4 瓶盖缺陷检测

本文主要对瓶盖及瓶颈处存在的缺陷进行检测,检测内容包括以下几项,如图5所示。

图5 缺陷检测示意图

缺陷检测是针对图像阈值化、锐化等操作后的图像进行检测,检测流程描述如下:

(1)对图5(a)中E1和E2做差(E1、E2为距离瓶盖上边缘80个象素点处取得的直径长度,E2在正常瓶盖处取得),若两者之差大于给定误差,则判定瓶盖不合格;否则,将L1和L2做差,并与给定误差比较,若也大于,则确认瓶盖不合格;否则,跳到(2);

(2)对图5(b)中W1和W2做差,若其大于误差值,则判定为不合格;否则,将W1和W2与给定高度比较,若两者都满足,则跳到(3);否则,认为瓶盖不合格;

(3)对图5(c)中R1和R2做差,若其大于误差值,则判定瓶盖不合格;否则,判定瓶盖合格。

5 实验结果与分析

为了进一步说明本瓶盖缺陷检测软件的有效性。本文在CPU为Intel(R)Core(TM)2 Duo E8400@3.00GHz,操作系统为Windows XP的PC机上,对工业流水线上的一系列饮料瓶进行检测实验。不同瓶盖样本的部分检测数据如表1所示。

表1 瓶盖缺陷检测数据

表1中的各检测项目分别与图5(a)~(c)中的检测内容相对应。实验结果表明,本缺陷检测软件能准确的将80个饮料瓶中的8个次品剔除,且具有良好的稳定性,且每瓶的处理耗时大概在20ms左右,能很好的满足生产要求。

6 结束语

本文给出了一种基于多线程串行通讯的饮料瓶盖缺陷检测实现方案,描述了整个系统软件的处理流程。实验结果表明本缺陷检测软件具有较好实用性和检测性能。但检测算法在功能上还存在不足,有待进一步研究、改进和增强。

[1]Galbiati Jr,Louis J.Machine vision– an emerging technology[J].The International journal of applied engineering education,1986,2(4):221-225.

[2]刘金桥,吴金强.机器视觉系统发展及其应用[J].机械工程与自动化,2010,(1):215-216.

[3]庞军平,田梦君,陈华.基于串口通讯和多线程技术的应用软件开发[J].机械与电子,2009,(2):46-49.

[4]吴先亮,刘春生.基于多线程的串口通讯软件的设计与实现[J].控制工程,2004,11(2):171-174.

[5]Liu Dongju,Yu Jian.Otsu method and K -means[C].Shengyang:IEEE Computer Society,2009:344 -349.

[6]Farid S,Ahmed F.Application of Niblack’s method on images[C].Islamabad:IEEE Computer Society,2009:280-286.

[7]何斌,马天予,王运坚,等.Visual C++数字图像处理[M].北京:人民邮电出版社,2001:394-426.

[8]韩思奇,王蕾.图像分割的阈值法综述[J].系统工程与电子技术,2002,24(6):91-94.

猜你喜欢

瓶盖线程串口
瓶盖配对
设计巧妙的瓶盖
基于C#线程实验探究
浅谈AB PLC串口跟RFID传感器的通讯应用
基于国产化环境的线程池模型研究与实现
开瓶盖
浅谈linux多线程协作
数字电源内部数据传输的串口通信方法实现
USB接口的多串口数据并行接收方法探索
基于蓝牙串口适配器的GPS接收机与AutoCAD的实时无线通信