1 引言
随着自动化流水线逐渐普及,许多工厂的设备需要更新换代。但是,有些老式的设备功能完好,如经简单升级改造,仍可发挥巨大作用,从而提高设备利用率。
CCD在老式仪表改造中可用于实现老式检测设备的实时监测功能,利用CCD对传统的机械表盘进行图像识别,用计算机代替人眼完成读数以及判别工作,减轻了工作人员读数并进行数据处理等繁杂的工作,提高了监测效率,实现了实时在线监测及报警。
2 系统工作原理
如图1所示,该CCD检测系统主要由CCD摄像机、卡座、光源、图像采集卡,计算机以及输出设备组成。机械表盘和CCD摄像机被卡座固定,卡座内部自带光源,以防止外部环境变化影响图像质量,得到相对稳定的图像,简化计算机处理过程,使软件更加简单可靠。得到的图像通过图像采集卡进行A/D转换.传输到计算机进行软件处理和识别,由计算机对获得的图像进行读数并对采集数据进行检测、监控等工作。
由于该设备把机械表盘的信息自动读取到计算机里,因此,用计算机替代人工进行诸多处理工作。如,多次读数进行误差分析和处理;设置值进行预警监控;可远程自动监控危险场所等。
3 选择相关硬件设备
3.1 光源选择及卡座设计
可选数只LED发光二极管均匀安装在卡座内壁四周;也可选圆环状、照度好的节能灯管,避免光源直射CCD镜头,光源面对CCD镜头的一面要有遮挡。这样设计光源和卡座,可以保证光线能均匀的照在表盘上,有利于CCD获得高质量的图像,防止部分CCD单元出现饱和现象使图像部分泛白而影响图像处理。
3.2 CCD及镜头选取
根据表盘本身精度选择CCD,保证图像能分辨表盘最小刻线,且表盘属于小视场,故选择小尺寸一般分辨率的CCD即可。CCD镜头配合表盘大小及视场选取,计算公式如下:
同理:
式中,L为视场,HL为视场的水平方向,VL为视场的垂直方向,f为焦距。
4 图像处理软件的设计
由于表盘离CCD镜头近、视场小,属于近轴光成像,图像形变小。预先处理可只进行简单地滤波去噪。由于VC++简便快捷,因此,处理程序以Windows操作系统为平台,在VC++的环境下开发。
5 边缘检测
通过边缘检测可得到表针的边缘信息,使图像的轮廓更加突出,同时边缘以外区域保持原样。边缘检测与增强处理削弱了图像的低频部分,处理后的图像亮度保持不变,像素值变化缓慢的区域保持不变,而像素值变化剧烈的区域被突出。常用的边缘检测方法有平移和差分边缘增强、梯度方向边缘增强、Laplace边缘增强和Sobel边缘检测。
5.1 Robert检测算子
Robert算子是在2×2邻域上计算对角导数,即:
5.2 Krisch边缘检测算子
Krisch边缘检测算子使用8个模块来确定梯度幅度值和梯度的方向,即表示为:
如上所示,该算子对图像中的每个点都用8个卷积核进行卷积,每个卷积核对某个特定边缘方向作出最大响应,所有8个方向中的最大值作为边缘图像的输出。
Krisch算子是一阶微分算子,用于检测图像的阶跃性边缘,算法简单、编程方便,对带噪声的边缘较敏感,有时会造成假轮廓或生成某些并不存在的边缘点,对于屋顶型边缘无效,其效果图加图3所示。
该Laplace算子的零交叉点也可作为图像的阶跃型边缘点,而其极小值点可作为图像的屋顶型边缘。同时,由于噪声点对边缘检测有一定影响,所以该算子是效果较好的边缘检测器,其效果图如图4所示。
5.4 Sobel检测算子
Sobel检测算子是由两个卷积形成,即:
该算子将方向差分运算与局部平均相结合,在以f(x,y)为中心的3×3的邻域上计算x和y方向的偏导数,即:
(5)
式(5)应用了f(x,y)邻域的图像强度的加权平均差值。其梯度幅度为:
Sobel算子认为,邻域的像素对当前像素产生的影响不是等价的,所以距离不同的像素具有不同的权值,对算子结果产生的影响也不同。一般距离越远,产生的影响越小。其效果图如图5所示。
6 仪表盘的示值图像处理的相关算法
仪表盘的示值图像处理的相关算法主要包括二值化处理、投影法识别等。为了从复杂图像中提取特定的区域和信息。需要对图像进行简化和分割,将背景(不感兴趣的区域)和物体(感兴趣的区域)分开。
最常用的图像分割方法是把图像灰度分成不同的等级,然后用设置灰度门限(阈值)将图像二值化,分割出有意义的区域,使得有用的信息均转换为黑色,而无用的信息被剔除转换为白色。对指示表图像来说有意义的区域是灰度值较小(较暗)的指针,而其他灰度值较大(较亮)的表盘是不感兴趣的区域。由于实际情况下指示表的指针和表盘问有较大的对比度,因此在均匀的光照条件下,很容易自动搜索出一个较为合理的阈值将图像二值化,灰度值大于该阈值的点变为白色,否则变为黑色。
该设计系统采用如下阈值选取算法:首先随机确定一个阈值T(T≠0),然后分别求出灰度大于T的像素的灰度平均值v1和灰度小于T的像素的灰度平均值 v2;再求出T'=(v1+v2)P2。确定一个终止条件,如ε=0.001,判断是否|T'-T|ε。如果不满足,则用T'代替T继续进行下一轮运算;如果满足,则跳出循环,且以T'作为最终的阈值。
将二值化后的表盘图像中的各个像素从中心沿半径向圆周投影,投影的长度代表该方向上黑色像素的个数,投影最长的点应是指示表指针所在的位置,找到该点就可以通过对应关系求出指示表的读数。
7 结束语
该系统硬件部分简单,软件算法可靠性高,具有很高的通用性,对于不同的机械表盘,根据不同的需求添加相应的程序功能模块,选择不同口径的卡座,经简单调试就可以使用。简便易实现,在生产过程中具有广泛的应用价值。