陈继华,李 勇,田增国,李 磊
(郑州大学物理工程学院,河南郑州450001)
基于机器视觉的机械式表盘自动读表技术的实现
陈继华,李 勇,田增国,李 磊
(郑州大学物理工程学院,河南郑州450001)
针对当前机械式表盘自动读表技术存在计算量大、需采集多幅图像以及需要标定等问题,提出了基于改进的Canny边缘检测算子的指针旋转中心求解算法,该方法可基于单帧表盘图像快速解算出其回转中心及半径,并定位出表盘的有效显示区域,避免了复杂背景的干扰;基于表盘指针所在直线经过圆心这一前提,设计了过定氛的Hough直线检测算法,显著降低了表盘指针检测时间.详细论述了算法的设计原理,并给出时间复杂度分析.实验表明:该方案算法稳定且计算量小,检测速度提高4~5倍,并可减少存储空间,具有良好的工程实用价值.
机械表盘;坎尼算子;霍夫变换;图像识别;自动读表
指针式机械表具有安装维护方便、结构简单、防电磁干扰等诸多优点,目前广泛应用于工矿企业、能源及计量等部门.随着仪表数量的增加及精密仪表技术的发展,人工判读已经不能满足实际应用需求[1].实现指针式机械表自动读表的关键技术在于定位表盘回转中心及指针中心线.当前采用的识别算法主要存在如下问题:第一、需采集多幅指针处于不同角度的表盘图像[2-3],如仪表已经安装使用,现场拨动表盘指针采集图像操作复杂,并存在较大误差;第二、需针对每个表盘标定相应参数[4-5],如表盘回转半径[4]、指针中心线起点、长度[5]等,不便于后期校准;第三、检测算法复杂且运算量大[6-8],不能满足自动读表的实时性,难以移植、应用到嵌人式环境.同时,不同的仪表图像灰度分布特征存在较大差异,而指针定位和特征提取算法又非常依赖于特定的灰度分布特征,同一款指针式仪表的识别方案难以应用到不同类型的仪表图像[9].
笔者通过改进的Canny算子获取表盘图像的单像素边缘,避免了冗余像素点参与运算,降低了圆心检测时间.在表盘的有效显示区域内,采用过定点的Hough直线变换检测指针中心线,避免了表盘图像背景的干扰并提高了检测速度.该读表方案避免了标定工作并提高了表盘识别的自动化程度及实时性.
根据机械式表盘的图像特征,采用图像边缘点法线方向计数累加的圆心定位方法及过定点的直线检测算法,提出了一种表盘识别方案.仪表刻度检测流程如图1所示:摄像头采集表盘图像,送人计算机进行预处理及边缘检测操作;计算机检测出表盘回转中心及半径,并定位出表盘的有效显示区域;在此区域内,利用过定点(回转中心)的Hough直线变换,基于特征点对应角度的峰值搜索算法识别出指针中心线,从而输出检测结果.
2.1 基于改进的Canny算子的表盘回转中心定位算法
结合识别表盘前易得知表盘半径大致范围这一优势,采用图像边缘点法线方向累计法定位表盘回转中心.为避免冗余像素点参与运算,需提前获取图像的单像素边缘,形态学运算[10]和Canny算子[11]是获取图像单像素边缘的常用算法.考虑到在计算像素法线方向时,需要获取像素的梯度角度,而Canny算子的计算过程中已包含这一步,因此采用Canny算子.首先通过高斯滤波平滑图像,然后基于2×2领域一阶偏导的有限差分计算图像的梯度幅值和方向,并对梯度幅值进行非极大值抑制,最后采用双阈值法确定和连接边缘,得到图像的单像素边缘图.
图1 仪表刻度检测流程Fig.1 Principle of dial scale detection
在求得表盘的单像素边缘图像的前提下,已知表盘的半径范围(rmin<=ri<=rmax),复用Canny算子第二步计算中得到的像素梯度方向,在其梯度切线的法线方向上,对与该点距离为ri的点进行计数并累计.定位圆心示意图如图2所示,黑色方框代表可能的圆心位置,对于边缘点(x0,y0),其对应可能的圆心点为(x1,y1)、(x2, y2),满足
式中:θ为点(x0,y0)的梯度方向角.
每次计数累计的峰值Cmax若满足
则判断已检测到半径为ri、圆心坐标为(xi, yi)的圆.式中Ci代表以ri为半径的圆周长,λ为比例系数,满足0<λ<1.根据表盘图像特征设置相应的参数λ,即可求得表盘回转中心及半径.
累计法定位圆心的关键在于尽力获取图像的真实轮廓边缘点.考虑到表盘图像具有一定程度的光照度及噪声变化,传统的Canny算子存在如下不足:其中,Canny算子的第一步中需要人工设定高斯函数的方差,且高斯滤波之后的图像在噪声得到抑制的同时,其边缘清晰度降低.为避免上述缺陷,采用自适应平滑滤波法[12]替代高斯滤波,滤波的同时可锐化图像的边缘.该算法的基本思想是采用一个局部加权模板与原始图像信号进行迭代卷积,每次迭代时自适应改变各像素加权系数,经多次迭代后,滤波器的输出图像可在降低噪声的同时,保留更多的边缘和局部细节.设f(x,y)为输人图像,则一次迭代的计算过程如下:
式中:k为恒定参数,确定了在平滑过程中可以保留的边缘幅度;gx(x,y)、gy(x,y)分别代表图像右、左邻接像素差值和下、上邻接像素差值,可表示为
此外,Canny算子在最后一步确定图像边缘时需人为设定高低阈值,若对每一幅图像采用相同阈值,则会检测出虚假边缘或丢失局部边缘.笔者采用文献[13]提出的基于梯度直方图和类间方差最大法的自动阈值选取方法:将Canny算子中非极大值抑制后边缘图中的像素分为D1、D2、D3共3个类别,其中D1代表原图中的非边缘点, D2代表需要判断是否为边缘点,D3代表原图中的边缘点.利用梯度直方图求出各个类别的概率分布,通过搜索类间方差的最大值确定上述3个区间的2个分界点,即为所求的Canny算子高、低阈值.
分别采用常规Canny算法(高斯滤波、高低阈值比例系数为0.5)与文中改进的Canny算法进行边缘检测,并比对边缘完整程度,部分实验结果如图3所示:第一行为两幅曝光度不同的表盘图像;第二行为传统Canny算法边缘检测结果;第三行为本文改进的Canny算法边缘检测结果.可以看出,改进的Canny算法能够有效提出图像边缘,得到的图像边缘线条清晰连续,较传统方法更具有优势,且对于不同光照度的图像有较好的自适应.表盘的回转中心及半径定位结果如图4所示,其有效显示区域位于检测得到的两个圆之间.
图3 Canny边缘检测结果对比Fig.3 Edge detection based on different canny operators
设图像的边缘点数为N,传统Hough圆变换需作图像空间到参数空间的映射,根据圆的方程可知,在标定半径的条件下,其时间复杂度为O(N2);本算法在计数累计时,每个边缘像素点仅会对两个像素坐标进行计数,时间复杂度可近似为O(2*N*R′),其中R′=Rmax-Rmin.
2.2 基于过定点Hough变换的表盘指针定位算法
传统Hough直线变换运算量巨大,难以应用在表盘图像的在线实时检测,其原理在于笛卡尔坐标系下直线上的所有点对应于参数空间下的同一点,将图像空间的各个点映射到参数空间之后,找到参数坐标系下的聚集点,就对应了笛卡尔坐标系下的直线[14].
图4 表盘回转中心及指针中心线识别结果Fig.4 Result of detecting circle center and point center line of dial
考虑到表盘指针所在直线必然经过回转中心,可采用过回转中心的Hough直线变换检测表盘指针.当直线经过定点(xr,yr)时,满足
设x′=x-xr及y′=y-yr,可得y′=kx′,即以(xr,yr)为坐标原点的坐标系中,该直线经过坐标原点,直线的斜率满足k∈(-∞,+∞),如图5所示.为表示形如x=c的直线,可将直线表示为极坐标形式,令kx′-y′=0,两边同时除以有
已知x′=x-xr及y′=y-yr,满足
上式包括x,y,θ3个变量,每次代人一个特征点坐标(xi,yi),即可求出该特征点与定点所确定直线的角度θi,且同一直线上特征点对应相同的角度值.统计所有特征点对应的角度值,并累计具有相同角度值的特征点,最终计数值最大的角度值表示表盘指针所在直线.量化Hough参数空间(ρ,θ)时,可取角度的步长为1°.考虑到角度的变化范围为[0,180°),可申请一个长度为180的数组用来保存角度值的累计值,其数组元素的索引i与角度值θi一一对应.图4中黑色方框表示待投影的特征点,其位于表盘的有效显示区域; R(xr,yr)为表盘的回转中心.图4(a)、4(b)的有效显示区域内特征点对应角度值统计结果分别如图6(a)、6(b)所示.
设图像为W行H列,传统Hough直线变换需要H×W字节的额外存储空间,检测直线时需穷举(x,y,θ)3个参数空间,时间复杂度为O(H,W,θ);相比于传统的Hough直线变换,过定点的Hough直线变换仅需180字节额外计算空间,时间复杂度为O(H,W).
图5 过定点的Hough直线变换Fig.5 Hough transform passing by a specified point
图6 表盘特征点对应角度值统计结果Fig.6 Results of angles'statistics corresponding with feature points
3.1 仿真实验及结果分析
实验以2.5级精度等级、总量程为1 MPa的MKZ-Im型气压表为识别对象,其最小刻度值为0.02 MPa.现场采集18组各50幅指针处于不同刻度的表盘图像进行试验比对.仿真实验中,识别算法在CPU为1 GHz,内存为1 G的计算机上实现.
分别采用Hough圆变换法(已知半径)与累计法(已知半径范围)定位表盘的回转中心;并采用常规及过定点的Hough直线变换检测表盘的指针中心线,计算各组单幅图像的平均消耗时间,如图7(a)、7(b)所示.由实验结果可以看出,与Hough圆变换相比,累计法能够更快定位出表盘的回转中心,且不需要提前标定表盘半径;而标定半径的Hough圆变换平均检测时间在1.8 s以上.相比于常规Hough直线变换,文中设计的直线检测算法能够提高约4~5倍速度,单幅图像的平均检测时间不超过50 ms.
3.2 系统设计及实验结果
系统的硬件结构框图如图8所示.利用CMOS图像传感器OV7725将当前的表盘图像采集下来,并存储到SRAM;采用嵌人式微处理器STM32F103X对所采集的图像进行识别处理,并将得到的当前表盘读数通过RS—485总线将计算结果送至控制中心,作为仪表的历史数据保存,并判断是否产生警报信号.
图7 算法检测时间对比Fig.7 Comparison of time-consuming between different a lgorithm
图8 系统框图Fig.8 System diagram
将定位装置固定在发电厂的一款MKz-Im型SF6压力表盘上,待系统稳定后,每隔5 m in检定表盘标准数值,其部分检测结果与标准数值对比如表1所示.
表1 表盘示值与识别结果比对Tab.1 Comparison between original and detection results of dial MPa
系统平台的识别结果表明,设计的识别方案能够较为精确地识别出表盘示值,识别精度约为表盘最小刻度的1/4,明显高于人工读表的精度.表盘的回转中心及半径只需在系统上定时计算一次,之后每次只需检测指针中心线.整体识别时延(图像采集、检测)不超过400 ms,适合应用于机械表盘的实时在线检测.
针对指针式机械表自动读表技术存在的问题,结合表盘的图像特征,重新设计了表盘回转中心及指针中心线定位算法.实验表明,该方案不需采集多幅图像,不需标定表盘半径并显著减少了运算量,具有较准确的识别精度,在指针式表盘的自动化识别设计中具有工程实用价值.且识别方法同样适用于扇形表盘,以及多指针表盘,可进一步推广应用至更多种类指针式表盘的自动识别之中.
[1] 黄颖怡,汪仁煌.机器视觉仪表识别方法的研究进展[J].自动化仪表,2009,30(1):58-60.
[2] ALEGRIA F C,SERRA A C.Automatic calibration of analog and digitalmeasuring instruments using computer vision[J].IEEE Transactions on Instrumentation and Measurement,2000,49(1):94-99.
[3] 王三武,戴亚文.多指针水表自动识别系统[J].仪器仪表学报,2005,26(11):1178-1120.
[4] ROBERT S,WALTER G.Application constraints in the design of an automatic reading device for analog display instruments[C]//Applications of Computer Vision,Proceedings of the second IEEE workshop on IEEE.Sarasota,Florida:IEEE Press 1994:205-212.
[5] BELAN P,ARAJJO S A.Segmentation-free approaches of computer vision for automatic calibration of digital and analog instruments[J].Measurement,2013, 46(1):181-184.
[6] 吴梅,王瑞.基于总体最小二乘法的表盘图像中心点提取[J].自动化与仪表,2013,28(10):54-56.
[7] 岳国义,李宝树等.智能型指针式仪表识别系统的研究[J].仪器仪表学报,2003,24(4):430-431.
[8] ALEGRIA F C,SERRA A C.Computer vision applied to the automatic calibration of measuring instruments[J].Measurement,2000,28(3):185-195.
[9] 邹俊贵,陈以.常用指针式仪表识别技术研究综述[J].仪器仪表与分析监测,2009(1):1-4.
[10]LI Chao,ZHAO Lin-du.An adaptive morphological edge detection algorithm based on image fusion[C]// Image and Signal Processing,2010 third International conference on IEEE.Yantai,China:IEEE Press, 2010:1072-1076.
[11]CANNY J.A computational approach to edge detection[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,1986,8(6):679-698.
[12]景晓军,李剑峰.静止图像的一种自适应平滑滤波算法[J].通信学报,2002,23(10):7-14.
[13]唐路路,张启灿.一种自适应阈值的Canny边缘检测算法[J].光电工程,2011,5(38):127-131.
[14]陈玉梅,余洪山,贺攀峰.一种分层并行迭代式链码跟踪直线提取算法[J].郑州大学学报:工学版, 2006,27(2):94-97.
Implementation of Automatic Reading Mechanical Gauge Technique Based on Machine Vision
CHEN Ji-hua,LIYong,TIAN Zeng-guo,LILei
(School of Physical Engineering,Zhengzhou University 450001,China)
In order to overcome the shortcomings of current automatic recognition schemes applied to mechanical gauges including huge computing quantity,calibration based on multi dial's images,this paper proposes a rotation center acquisition method based on improved Canny edge detection operator,which can acquire rotation center as well as radius quickly based on single dial image.and designs hough transform algorithm passing by a specified point based on precondition that dial's pointer centerline and rotation center locate on same line,which decreases detecting time significantly.Design principle and time complexity analysis of algorithms are introduced in detail. Experimental results demonstrate the algorithms stable with low computational complexity,detecting speed is4~5 times faster with memory space reduced.All of which verifies algorithms'possibility in engineering application.
mechanical gauge;canny operator;hough transform;image recognition;automatic-meter reading
TP391.4
A
10.3969/j.issn.1671-6833.2015.03.022
1671-6833(2015)03-0101-05
2015-01-15;
2015-03-22
河南省教育厅科学技术重点研究项目(13A140661)
陈继华(1972-),男,四川大竹人,郑州大学副教授,博士,主要从事大型工业产品尺寸检测方法及相关计算理论、视觉测量技术研究,E-mail:chenjihua01@sina.com.