何林远,毕笃彦,熊磊,周理
(空军工程大学 航空航天工程学院,陕西 西安,710038)
在人类科学探索和生产实践活动中,仪器仪表是认知世界的重要工具和手段。它采用一定的转换关系,通过测量机构把被量数转换为数字显示或者角位移量,实现读数。仪表具有结构简单、使用方便、价格低廉等特性,在民用、军用等诸多领域中应用极其广泛。尤其对机载设备而言,从设备现场调试、使用、计量和告警,到电压、电流、功率、功率因数、频率等参数的监测,都要以仪表为基准,因此,仪表的准确性对机载设备的可靠运行起着至关重要的作用[1]。目前,通用的仪表校验方法基本可归为2 类,一类可称为“传统检表”法,一类称为“数字判读法”。“传统检表”法主要以人工操作为主,通过第三方来观测表的准确度。“数字判读法”主要是应用计算机辅助手段,对仪表进行识别判读,从而计算仪表指针的读数[2-3]。前者检测仪器虽具有便捷、快速优点,但检测主要依靠人力,其准确度、精确度受主观因素影响较大;后者虽解决了人工判读的问题,提高了工作效率。但由于仪表指针千差万别,对不同的仪表采用同种技术,得出的效果不好。近年来,也出现了多种不同的算法,尤其是对图像分割和读数识别这2 个方面存在着多种理解和解决方法。主要方法有减影法、Hough变换法、最小二乘法、中心投影法以及这些方法的联合应用[4-5]。这些方法虽有各自的特点,但亦存在计算度复杂,精准度不高且不适用于不同类别指针仪表的问题。例如,中心投影法不适用于寻求椭圆表盘的检测和识别、Hough 变换计算量大、时间较长等等。因此,本文作者设计开发了一种具有性能良好的仪表自动识别和检测的方法。
根据实际需要和经验,本系统采用三星公司生产的S3C2440 作为平台处理器,利用CCD 摄像头对仪表进行实时监控拍摄,将录入的图像通过相关设计软件的处理转化为指针的真实读数。其系统构造如图1所示。
图1 仪表识别检测系统结构示意图Fig.1 Schematic diagram for recognition and test of cockpit meters
实际测试时,摄像头将拍摄的仪表画面送入图像处理设备,经过相关软件的预处理,将仪表图像中关键点进行分割,提取出图像的整体轮廓和骨架,最终得出数据,将数据存入硬盘并在显示器中显示。图像处理平台主要以基于Linux 的OpenCV 为源开发库,从而实现指针刻度的识别。第1 次识别时,可将表盘特征数据存入硬盘中,建立模板数据库,以便后来识别该刻度盘时,调用表盘特征数据进行模板匹配。而对识别得到的各指针测量读数,一方面可通过外接LCD 实时显示识别结果,另一方面也可以通过网络上传到中心数据库,实现在线检测指针仪表。
仪表自动识别和检测流程如图2 所示,步骤如下:
step 1:读入仪表图像;
step 2:对图像进行采样;
step 3:采用同态滤波与中值滤波相结合的方法对图像进行降噪处理;
step 4:采用改进的类间方差法(Otsu),将仪表图像二值化,获得二值化图像;
step 5:对图像进行细化,准确检测出指针,经细化处理后的指针成单像素宽度指针;
step 6:利用改进的交叉皮质视觉模型(ICM),提取仪表边缘;
step 7:根据先验知识,进行学习训练,寻找相似特征,对仪表进行分类比对;
step 8:利用梯度法,计算指针的角度;
step 9:通过角度,并结合先验知识,计算数值,并进行存储显示。
图2 仪表自动识别和检测流程图Fig.2 Flow chart for auto recognition and test of cockpit meters
本方法以机载仪表为处理对象,在读取图像后,整个过程包括采样、降噪滤波、图像二值化、细化、提取仪表边缘、对图像细化(提取骨架)、判断指针具体位置和计算指针角度这8 个处理过程。
设备启动后,仪表影像被反射光送入三棱镜内,并在设备内部被转换成电信号(模拟信号),经由A/D转换器转换成数字信号,将信号存储在内存中,由相关软件进行处理分析。为了避免由于角度、光照等问题引起的仪表指针偏差,结合本方法应用的具体环境,选择平行光源的正面照明方式,即光线从正面照射到仪表,摄像机放置在光的反射方向上,在满足奈奎斯特采样定理的前提下,对该视频序列进行等间隔采样,这样处理能够降低计算复杂度,而且其操作简单,易于软件实现。
机载仪表经摄像头转换为数字图像要经过光学反射、采样、转换等诸多环节,这样会引入各种噪声,从而导致仪表的真实精度和准度略有偏差。为了降低噪声干扰,校正光照反射引起的畸变,本方法采用空域、频域相结合的方式(即同态滤波与中值滤波相结合)对仪表图像进行降噪处理。同态滤波是依据照度-反射模型开发的一种频域处理,通过调整灰度范围及对比度增强来对图像进行降噪。中值滤波是一种经典的非线性滤波方法[6-7]。其实质就是让与周围像素灰度差比较大的像素改取为与周围像素接近的值,从而达到对孤立噪声像素点的消除。预处理的效果如图3 所示。具体实现步骤如下。
(1) 由于光照变化、指针表蒙对实际指针读数的影响,通过同态滤波的方法,可增强对比度来消除光照的不利作用;
(2) 由于传感器成像质量不同、各种噪声的引入,使得对后续指针和读数的快速检索带来的一定的困难,为了消除噪点,本方法采用自适应中值滤波(全局+局部阈值处理)方法对噪点进行滤除。
图3 预处理的效果图Fig.3 Effect drawing for preprocessing
图像二值化是将图像上的点的灰度置为0 或255,使整个图像呈现出明显的黑白效果。它使需要处理的图像变得简单,减少了细节并降低了数据量,同时凸显感兴趣区域,分离识别对象与背景。该方法的关键是阈值的选取,当获取阈值后,把灰度图像转变成二值图像。阈值的作用范围,可以分为全局法和局部法,全局二值化是指整幅图像只有1 个阈值,而局部二值化是指整幅图像有多个阈值,阈值过大或过小都会使目标和背景分离不清。所有灰度小于或等于阈值的像素被认为是目标物体,大于阈值的像素被认为是背景。可见,阈值的选取决定后续测量的精度。目前,国内主要采用类间方差法(OSTU)[8]、最大熵法及最小误差法[9]等方法对图像进行二值化处理。但此类方法往往计算时间较长,对于灰度变化不大的背景及目标提取效果不是很理想。为此,本方法采用改进的OSTU 方法对图像进行二值化处理。具体流程如图4 所示。
(1) 读取图像,并根据图像大小,将图像自动分割为一系列可变的r×r 的子图像,方便对图像进行区块的划分;
(2) 在邻域内,根据仪表特性,将其分为2 类(目标及背景),统计各像素点的灰度分布,将灰度范围较为接近的归为一类,并算出2 类特征点的数学期望和方差。根据经典OTSU 准则,找出局部阈值T1(i);
(3) 对该窗口进行二值化处理,后进行循环流程B操作,直至搜索图像完毕;
(4) 为避免对区域边缘的点产生误判,将每个区域视为1 个像素点,以灰度为阈值T1(i),对整幅进行求解期望、协方差,找出全局阈值,对误判点进行修复。
图4 图像二值化流程图Fig.4 Flow chart for image binarization
该算法采用自顶向下的方法,根据图像的大小,将图像分割相应的区块模板,将子图作为分割的对象,并考虑到区块边缘的相关性,利用协方差进行边缘点的重新判读,提高了算法的精度和准度。利用此方法,本方法在保证提取目标图像的同时,大大提高了算法处理的速度,获得较好的二值化处理效果,如图5 所示。
图5 二值化效果图Fig.5 Effect drawing for binarization
根据测量原理可知,仪表指针的特征提取是本识别和检测方法的一个相当重要的环节,图像经二值化处理后,表盘图像凸显的只有表针与表的轮廓。但如何突出表针,便成为问题的核心步骤。细化是生成对象骨架的过程。所谓骨架,就是以相对较少的像素来表示对象的形状[10]。针对座舱仪表主要以线性指针表示的特性,骨架的提取可以明晰指针具体指向的位置、方向和长度,并结合边缘特征的提取,为下一步判读指针所指的读数做必要准备。传统提取骨架的方法为中轴变换法。主要步骤为:(1) 计算每一个对象像素与最近边缘像素之间的距离;(2) 计算距离图像的拉普拉斯算子,具有较大值的像素属于中轴。本方法在传统方法的基础上,引入了迭代式形态学方法,采用3×3 模板来提取座舱仪表的骨架。Stentiford 细化算法中的模板如图6 所示。具体方法为:
(1) 找到像素(i, j)使图像中的像素和模板A 中的像素匹配;
(2) 若中心像素不是一个端点,则令连通数为1后将像素标记为删除;
(3) 对所有匹配模板A 的像素做步骤(1)和(2);
(4) 依次对模板B,C 和D 重复步骤(1)和(3);
(5) 若有像素被标记删除,则将其设置为白色并删除;
图6 Stentiford 细化算法中的模板Fig.6 Template for Stentiford algorithm
(6) 重复步骤(1)~(5),否则,停止。
在扫描图像对模板进行匹配时,有一定的扫描顺序。匹配模板A 的目的是在目标对象的上边缘找到可以移除的像素点,故按照从左至右的顺序进行匹配,后按照从上至下的顺序进行匹配。B 模板匹配目标左侧的像素,按照自底向上,从左到右的顺序进行扫描。C 模板匹配目标底边缘的像素,按照从右至左,自底向上的顺序扫描。D 模板匹配右侧像素,按照自顶向下,从右至左的顺序扫描,进行一步一步迭代运算,最终算出结果。算法最后获得的骨架如图7 所示。
图7 细化效果图Fig.7 Effect drawing for thinning
边缘是目标对象和背景之间的边界。如果图像中边缘可以准确地被识别出来,那么所有的对象均可以被定位,而且对象的基本属性(面积、周长和形状)都可以被测量出来。针对座舱仪表的特征,对仪表特别是指针边缘的提取成为分析指针读数的关键步骤。一般来说,用来定位目标边缘的有3 种常见算子。(1) 导数算子,这种常被用来标识发生巨大强度变化的地方;(2) 模板匹配,其中边缘由一个很小的图像进行建模,表现为近似完美的边缘属性;(3) 采用一些经典的边缘数学模型,例如:Marr-Hildreth 和Canny Edge 边缘检测器等。
传统检测的方法需要的先验知识少,但对阴影、光照变化较为敏感,从而使算法的实用化难以得到保证。本方法结合航空实际需要,采用交叉视觉皮质模型(intersecting cortical model)[11]对座舱仪表进行分割提取,在保证精度准度的同时,大大提高了运行的速率。ICM 源于人们对哺乳动物视觉皮层神经元脉冲同步振荡现象的研究成果[12],具有生物系统中的信息传递延迟性和非线性耦合调制特性,更加接近生物视觉神经网络,非常适用于图像处理,尤其是图像分割领域。
ICM 神经元由树突、非线性连接调制、脉冲产生部分3 部分组成[8]。树突部分的作用是接收来自相邻神经元的输入信息,它由线性连接输入通道和反馈通道2 部分组成。线性连接输入通道接收来自局部相邻神经元突触输入信息,而反馈输入通道除了接收这种局部输入信息外,还直接接收来自外部的刺激信息输入。神经元间通过突触函数进行互联构成复杂的非线性动力学系统。脉冲的产生取决于树突的输入是否超过其激发动态阈值,而此阈值随神经元输出状态的变化相应的发生变化。图8 所示为ICM 神经元架构图。
图8 ICM 神经元架构图Fig.8 Architecture diagram for ICM
ICM 中每一个神经元对于上一个状态Fij[n-1]具有记忆功能且状态Fij随着时间的变化其记忆内容会发生衰减,其衰减速度受到衰减因子f (f>1)的影响。ICM 的数学表达如下:
其中:Sij为输入图像对应像素;i,j 为各个像素点的坐标;Wij{}为神经元之间的连接函数;Tij为动态阈值;Yij为神经元的输出;f,g,h 均为标量系数,g<f<1,保证动态阈值随迭代最终会低于神经元的状态值,h为一很大标量,保证神经元点火后能较大的提升阈值,使神经元在下次迭代不被激发。ICM 神经元固有点火周期为T =logg(1 +h / sij),可见,ICM 神经元点火周期与输入激励有关。
ICM 用于图像处理时,其为单层二维局部连接的网络,神经元个数与图像中像素点的个数一一对应。输入图像中较大像素值对应的神经元首先点火,输出脉冲,其阈值突增至较大值后随时间以指数衰减,直至再次达到Fij>Tij时,神经元第2 次点火。同时,点火神经元通过连接函数对其邻域内神经元产生作用,使满足点火条件的邻域神经元相继被捕获点火。ICM每次迭代输出的图像都不同程度地包含了输入图像的区域及边缘信息。
可见,交叉视觉皮质模型(ICM)具备出色的图像分割能力。但ICM 图像分割效果不仅取决于ICM 各参数的合理选择,还取决于最佳分割阈值、循环迭代次数的确定。ICM 神经元的循环迭代次数需要通过人机交互方式确定,这破坏了ICM 不需训练过程的优点以及ICM 处理速度快的优越性。因此,选择合适的准则来自动地确定ICM 神经元的最佳分割阈值以及循环迭代次数是ICM 图像分割的关键。本方法根据实际需要,结合模糊集合及熵的概念,求解最小模糊度的阈值,有效地用于仪表图像的自动分割。图9 所示为ICM 分割后的仪表图像。
图9 改进ICM 分割图Fig.9 Segmentation drawing for changing ICM
ICM 分割步骤如下。
步骤(1) 设定参数f=0.8,g=0.8,h=1 000,初始阈值θ=125,将图像送出模型进行点火;
步骤(2) 完成初始分割后,确定隶属度函数,令背景灰度期望为 μ0,目标的灰度期望为 μ1。C 为最大灰度和最小灰度的差值。任意像素X 的灰度和这一类像素的数学期望之间差别越小,成员函数μX( x)就越大。给定阈值θ=0.35,成员函数定义如下;
步骤(3) 根据香农函数Hf(x),对所有的灰度Ω求和,其中N 和M 表示图像的行数和列数,Z 为灰度直方图。计算模糊集合的熵E(θ)。若E(θ)不满足所设定条件,则更改阈值,重复步骤(1)和(2)。当E(θ)为最小值时,θ 为最小化模糊度的阈值;
步骤(4) 将达到最小化阈值分割后的图像进行二值化处理,以便于与骨架图像拟合,找出指针位置,如图10 所示。
图10 提取指针图Fig.10 Picture for picking up pointer
针对座舱仪表的多样性,为了快速识别和检测表针读数,必须借助先验知识,学习训练后找出某类表的基本特征(量程和零刻度位置),完成对表针读数的精准判断。本方法采用判读仪表标识的方法,对仪表进行归类划分[13]。找出仪表类别后,可通过先验知识,得知仪表的量程、零刻度和最大刻度的具体位置,通过梯度法得知在最小和最大量程上的角度信息,为最终计算表针角度及读数做好基础。
(1) 针对指针,分别求x,y 方向的偏导数;
(2) 得到的向量表示为像素处的强度和方向;
(3) 通过先验知识,得知零刻度线所对应的向量;
(4) 差值求解角度。
图11 梯度算子示意图Fig.11 Map for gradient
该算法以航空仪表为测试对象,部分测试结果如图12 所示,表1 所示为测试数据。从表1 可见,本软件偏离标准值的相对误差在0.3%以内,测量精度准度高。此外,每幅图的整个处理时间均在0.4 s 以内,符合识别检测的实时性需求。与传统Hough 变换、最小二乘法法及中心投影法相比,该算法大大优化了仪表的计算机自动判读过程,大幅提高了判读的速率。
图12 多目标提取指针Fig.12 Multi-target picking up pointer
表1 测试数据Table 1 Data for testing
(1) 分析目前主流识别仪表方法的基础上,提出一种新型的座舱仪表识别和检测方法。采用改进的Otsu 方法对图像进行二值化处理,采用迭代式形态学方法提取仪表骨架,采用交叉视觉皮质模型提取边缘及利用sobel 梯度算子来计算角度等。
(2) 仪表识别检测的重点在于提取边缘和骨架,确定指针的位置。利用改进的交叉视觉皮质模型提取指针的边缘,在保证精度准度的基础上提高了运行的速率。在计算指针读数时,采用梯度最大下降法并结合先验知识来计算角度,大大节省了运算的时间。
(3) 本方案的测量精度能够达到识别检测要求。
[1] Ferrero A, Lazzaroni M, Salicone S. A calibration procedure for a digital instrument for electric power quality measurement[J].IEEE Transactions on Instrumentation and Measurement, 2002,51(4): 716-722.
[2] 黄颖怡. 机器视觉仪表识别方法的研究进展[J]. 自动化仪表,2009, 30(8): 58-60.HUANG Yingyi. Research progress of machine vision instrument recognition[J]. Process Automation Instrumentation,2009, 30(8): 58-60.
[3] 陶冰洁, 韩佳乐, 李恩. 一种实用的指针式仪表读数识别方法[J]. 光电工程, 2011, 38(4): 145-149.TAO Bingjie, HAN Jiale, LI En. An applied method for reading recognition of index-instrument[J]. Opto-Electronic Engineering,2011, 38(4): 145-149.
[4] Alegria F C, Serra A C. Automatic calibration of analog and digital measuring instruments using computer vision[J]. IEEE Transaction on Instrumentation and Measurement, 2000, 49(1):94-99.
[5] Szeliski R. Computer vision: Algorithms and applications[M].London: Springer, 2010: 10-50.
[6] 时军艳, 刘树聃. 基于噪声检测的自适应中值滤波算法[J].计算机工程与设计, 2011, 32(9): 3115-3118.SHI Junyan, LIU Shudan. Dynamic window-based adaptive median filter algorithm[J]. Computer Engineering and Design,2011, 32(9): 3115-3118.
[7] 王晓凯, 李峰. 改进的自适应中值滤波[J]. 计算机工程与应用, 2010, 46(3): 175-176.WANG Xiaokai, LI Feng. Improved adaptive median filtering[J].Computer Engineering and Applications, 2010, 46(3): 175-176.
[8] 汪海洋, 潘德炉, 夏德深. 二维Otsu 自适应阈值选取算法的快速实现[J]. 自动化学报, 2007, 33(9): 968-971.WANG Haiyang, PAN Delu, XIA Deshen. A fast algorithm for two-dimensional Otsu adaptive threshold algorithm[J]. Acta Automatica Sinica, 2007, 33(9): 968-971.
[9] Rosenfeld A. From image analysis to computer vision: An annotated bibliography[J]. Computer Vision and Image Understanding, 2001, 84(2): 298-324.
[10] Gonzalez R C, Woods R E. Digital image processing[M]. NJ:Prentice Hall, 2003: 5-30.
[11] 刘勍. 基于脉冲耦合神经网络的图像处理若干问题研究[D].西安: 西安电子科技大学电子工程学院, 2011: 21-38.LIU Qing. Research on several issues about image processing based on pulse coupled neural networks[D]. Xi’an: Xidian University. School of Mechano-Electronic Engineering, 2011:21-38.
[12] Johnson J L, Padgett M L. PCNN models and applications[J].IEEE Transaction on Neural Networks, 1999, 10(3): 480-498.
[13] Moghaddam R F, Cheriet M. A multi-scale framework for adaptive binarization of degraded document images[J]. Pattern Recognition, 2010, 43(6): 2186-2198.
[14] Palmer P L, Kittler J, Petrou M. Using focus of attention with the Hough transform for accurate line parameter estimation[J].Pattern Recognition, 1994, 27(19): 1127-1133.