郝林倩,王明辉
(1.福建船政交通职业学院,福建 福州 350007;2.四川大学,四川 成都 610065)
智能电表是智能电网系统建设中的重要组成部分,对于实现电网建设的自动化、信息化、智能化和互动化目标具有重要支撑作用。智能电表具有复杂多样的功能,高效的智能电表自动化监测方法,能够提升智能电表的检测效率,提高检测质量。在一款智能电表中,LCD显示屏、LED指示灯、标牌的印刷和制造工艺中无法避免的存在一定缺陷,会给智能电表外观质量和计量信息带来不利影响。所以,对智能电表出厂之前进行外观缺陷检测是出厂必须经过的环节。传统的电表出厂检测一般采用人工检测,工序复杂且检测效率低,人工因素对检测结果的影响较大,无法满足信息化的发展要求[1]。
本文立足于实践和生产需要,借助.NET开发平台,开发基于图像处理技术的智能电表缺陷自动检测系统,实现电表外观缺陷的自动化和智能化检测,提升劳动效率和自动化程度的同时,确保缺陷检测的精确度和连续监测效率,符合生产现场的需要。
在实际生产过程中,智能电表的外观缺陷比较常见,尤其是LED指示灯和LCD显示屏的缺陷频发,例如LCD显示屏无法正确亮灭,显示码出现断码、字节缺失、显示模糊问题;标牌内容印刷错误;LED灯无法给出正确指示,亮度不足以及指示灯显示错误等。传统的智能电表外观检测主要是通过肉眼判断异常情况,开关电表来判断显示屏是否能够正确显示,这种检测方法的效率较低,员工劳动强度大,检测的错检率高。智能电表缺陷自动检测系统能够满足智能电表缺陷的高速连续在线监测需要,同时能检测多种类型的外观缺陷。
基于此,本文提出一种基于图像处理的智能电表外观缺陷自动检测系统,采用高速摄像机采集智能电表外观图像,通过中值滤波、灰度化处理等图像预处理技术,突出待检验的图像区域,减少噪音和干扰因素,结合边缘检测、字符识别等方式,精确识别图像中的信息,判断电表外观是否存在缺陷,完成缺陷的高速、高效的自动检测。智能电表外观检测系统包括图像采集、图像处理、计算机控制、PLC控制以及数据库管理五个部分,系统结构如图1所示。
图1 智能电表自动检测系统结构示意图
图像采集系统:系统的硬件部分主要有光源、CCD摄像机、图像采集卡、计算机。光源的作用是当外界光线较弱或不均匀时,为拍摄环境提供稳定的光线来源,使拍摄到的图片背景和目标能够区别明显,为后续图片的处理做准备。
智能电表显示自动检测系统的控制系统为PLC和计算机控制的双层控制结构,计算机控制系统负责系统协调、数据库管理、图像采集与处理、用户界面管理等,PLC控制负责底层控制。在控制系统中增加红外通信接口,与智能电表内部的通信接口建立通信通道,通过计算机实现智能电表上的LED指示灯和LCD数字显示屏的控制,智能电表外观缺陷自动检测系统的控制系统如图2所示。
图2 智能电表缺陷检测控制系统
将CCD摄像机与PC连接起来,所有采集到的图像自动传送到PC机。图像的质量会受到采集设备所在环境、感光元件、镜头抖动情况的影响,所以图像必然存在噪声污染,甚至模糊图像关键信息,导致图像信息丢失和无法使用。因此,要对采集到的图像进行预处理,保证图像质量,为后续图像信息识别和分析奠定基础。在有限的条件下,应该尽可能选择高效的算法,保证系统运算速度和精度符合适用要求,避免出现卡顿等问题。
采集到的图像,不可避免的存在噪声,要更好地实现图像识别,必须经过一系列图像预处理操作[2]如图3所示。
图3 图像预处理流程图
2.2.1灰度转换
在彩色图像中,包含大量的颜色信息以及图像强度信息,如果直接对其进行处理,那么运算量将会非常大,影响运算速度[3]。大多数图像识别都是基于灰度图像展开的,因此在采集到图像之后,在预处理环节将图像转变为灰度图像。彩色位图都是由R、G、B三种分量按照不同比例构成,灰度图像中包含基本的量度信息,但是不包括彩色的信息。彩色图像灰度化的过程就是将图像的位图用0和255两种量度来表示。
2.2.2图像去噪处理
图像滤波就是在保留更多图像细节信息的基础上,尽可能地抑制目标对象的噪声信息,图像滤波在图像预处理中占据重要地位,滤波效果直接影响后续图像处理的效率和精度。常见噪声包括量化噪声、加性噪声、承性噪声,为了更好地展示图像处理效果,就必须进行图像噪声消除。最常使用的图像去噪方式包括高斯滤波、小波变换、均值滤波、中值滤波以及低通滤波等。
高斯滤波是建立在高斯函数基础上的一种线性平滑滤波器,是根据函数的形状来确定波形权值,是一种典型的低通滤波器,对于正态分布噪声具有良好的处理效果,其函数如式(1)所示:
(1)
均值滤波,就是用周边像素点的均值来替代像素值,均值滤波可以选择不同大小的模板,包含目标像素的所有像素的灰度值的平均值作为处理后的灰度值,可以将其函数表示为:
(2)
如果均值滤波选择的模板是3*3,则图4-a中所示的圆圈中的值就是目标像素,均值滤波处理之后的结果如图4-b所示。
(3)
图4-a 灰度图像的像素数组
中值滤波就是将待处理像素点周围固定区域中的所有像素值按照从小到大或者从大到小的顺序排列,用中间值来替代目标像素的灰度值。噪声点的像素点相对于周边各个像素点的亮度具有明显差别,按照特定顺序排列像素值,那么噪声点的值必然处于两端,所以用中值滤波的方式能够很好地消除噪声。
2.2.3图像分割
灰度图像的灰度级有0-255,如果将灰度图像进行二值化处理,图像的灰度值就是0或者255,一般可以用图像分割的方式来确定像素值。二值化处理之后,图像相对简单,图像处理的速度更快,所占的系统内存更小,便于后续处理和识别,常见的图像分割方法包括阈值分割法、基于边缘或者基于区域的分割方法等。
阈值分割法,就是提前设定一个分割的阈值,大于这个阈值的灰度值设置为255,小于阈值的灰度值设置为0,以此实现图像的分割。阈值分割法的一个关键所在就是寻找最佳阈值,获得最好的分割效果。如果阈值设置太大,那么很多图像信息无法提取;如果阈值的设置太小,那么就可能会丢失图像中的关键信息。基于边缘的图像分割法,就是按照边缘特征的不确定性来分割,如果灰度值发生阶跃变化,以差分算子来进行图像分割,常见的图像分割算子包括laplace、sobel、canny等[4]。
针对二值图像的处理而衍生的一种形态学运算,就是利用膨胀、腐蚀、开闭运算的方式对图像进行处理,提升图像的质量。
腐蚀运算可以很好地将边界点消除,图像整体收缩,其表达式为:
S=X⊗B={x,y|Bxy⊆X}
(4)
上述表达式中,S表示的是经过腐蚀处理之后的图像,源图像为X,结构元素为B,像素点可以表示为 (x,y)代表像素点。腐蚀过程的原理如图5所示,膨胀原理如图6所示。
图5 腐蚀原理示意图
图像膨胀和腐蚀操作是一对互反的操作,可以将膨胀运算表示为:
图6 膨胀原理示意图
开运算是先腐蚀再膨胀,如式(5)所示:
SB=XοB=(X⊗B)⨁B
(5)
闭运算是先膨胀再腐蚀,如式(6)所示:
SB=X·B=(X⨁B)⊗B
(6)
经过图像分割操作之后,所有字符按照特定顺序存储,图像识别模板需要按照相同方法进行制作,然后将模板与图像容器做比较分析,判断是否存在误差。模板容器从现场拍摄的合格产品中选择,能够将现场环境带来的检测误差降到最低。常见模板匹配方法包括相关匹配法、平方差匹配法等[5]。如果不存在缺陷,那么平方差匹配的结构为0,如果缺陷越大,那么平方差值越大。相关匹配法中,待测试图像和模板图像进行乘处理,如果结果数值越大,那么匹配程度就越高,最差的结果是匹配值为0。
摄像机采集到的图像与电表的LCD显示屏的尺寸不同,要将所有的待识别信息包含在内,就必须将整个LCD屏包含在图像采集范围内。
图7 电表外观图像
如图7所示,智能电表的LCD显示屏部分颜色是统一的,并且该部分颜色与其他部分具有显著的区别,基于这一差异,可以完成图像的特征提取。
若对图7进行图像处理,图中显示数字的LCD屏为待检测区域,首先要将该区域确定为样本,然后提取样本直方图,通过直方图的归一化处理,得出图像的函数。对图像进行预处理,LCD范围内的像素标记为0,范围之外的像素标记为1,将图像投影到灰度空间中,然后对结果进行二值化处理,得到LCD区域的基本轮廓如图8所示。
图8 图像预处理效果和边缘识别效果
检测LED指示灯时,要改变指示灯的亮灭,检测灯是否存在缺陷。在智能电表的内部装有通信模块,电表能够实现与外部控制设备的通信,通过计算机控制系统实现指示灯的外部控制。检测之前,要检验通信是否正常,对彩色图像显示情况进行检测。以红绿LED指示灯的显示识别为例进行分析,首先选择LED指示灯的区域,进行二值化处理,然后对图像进行行分割和列分割,将分割后的LED框定,对于框定结果不精确的,可以进行修正,根据像素结果识别灯的颜色如图9所示。
图9 LED指示灯识别
.NET Framework是微软公司在Window DNA之后开启的全新的开发平台,它在快速应用开发、构建可视化应用程序方面拥有尤其独特的优势,同时.NET Framework支持各种类型的业务流程,可以实现跨技术边界的无缝通信,它是以Web Services为核心,为人、信息、系统、设备之间的连接构建桥梁。C#编程语言是微软公司专门为.NET平台开发的一种面向对形象的高级程序设计语言,它是从C、C++和Java语言发展而来的,在兼具上述三者的优点之外,它还具有其自己的特点。C#是借鉴了Delphi的与组件对象模型直接集成的特点,成为第一个面向组件的编程语言,具有较高的稳定性,同时具有良好的容错性和交互性,且方便易用,支持网络编程的各项新标准。C#语言的产生是基于.NET Framework平台的,它充分体现了.NET Framework平台类型安全、版本控制严格的优点,是最适合.NET Framework开发的语言。
基于图像处理的智能电表外观显示缺陷自动检测的流程如图10所示,采集到图像之后,对图像进行预处理,然后图像定位,确定待分析区域,识别图像中的字符或者LED亮灭情况,根据分析结果,调整图像处理的阈值,减小偏差,获得更好的图像识别结果。
图10 外观显示缺陷自动检测系统的检测流程
利用本文介绍的检测系统,开发基于LabView软件的外观缺陷检测系统,系统与生产线连接,通过红外通信,实现在线监测,能够满足生产需要。对500只智能电表进行在线检测试验。结果表明,相较于人工检测,智能在线监测能够极大地提高检测效率。
按照智能电表外观显示特征,设计基于图像处理的智能电表外观显示缺陷自动检测分析系统,搭建检测系统框架和硬件结构,提出合适的图像处理算法,能够实现缺陷的自动检测,有效提高检测效率,检测误差率较低,能够满足生产需要,具有良好的应用前景。