一种基于图像识别的快速指针读数方法

时间:2022-05-17 06:52:39

一种基于图像识别的快速指针读数方法

摘 要:指针式仪表广泛应用于现代生产、生活中,在仪表检测、表刻度数值记录等诸多领域,对指针式仪表自动读数需求愈来愈强。本文提出一种改进型的图像减影法快速读数方法。

关键词:图像识别;减影法;指针

中图分类号:TP391.41

指针式仪表广泛存在于现代生产、生活中,如电压表、电流表、水温表、水压表等,在电力、石油、化工等行业中,指针式仪表的使用量尤为巨大。随着社会的发展,对该类仪表在检测、使用过程中的自动化读数需求比以往任何时候更加强烈,因为在仪表检测过程中技术人员从事的工作是高重复型、易疲劳的乏味劳动,检测结果既易受人为因素影响,也易受环境因素影响,如天气、环境、人的健康(如视力、视疲劳)状况,这些主客观因素对检测结果必然带来不可预知的负面效果,即检测的不确定性程度增加。在仪表的使用过程中,很多时候依赖人员的现场读数来记录某个特定的工作状态,但是在一些特定的工作环境中(如高噪声、高温、潮湿、有毒、有异味),不适宜甚至不允许人员进入,这时更需要一种替代人工角色能完成仪表读数的系统。

基于图像识别的指针读数方法,就是以取代人工读数,实现自动读数功能为目标,以期达到既准确又高效地实现指针读数的目的。

1 图像识别方法介绍

图像识别是计算机、图像处理技术和其他光学设备结合体,是现代计算机技术发展的延伸。图像识别最大的优点在于处理的颜色、灰度范围远比人类视觉的要广泛得多,识别精度也是人眼所不可企及的范围。

图像识别过程包括灰度化图像、滤波去噪、二值化图像、图像增强、图像分割等技术,实现图像识别是一项系统工程。

1962年美国学者Paul Hough提出Hough变换[1],Hough变换实现从图像空间到参数空间的映射关系,为图像识别开启智慧之门。2001年JiangLong Zhu利用小波变换对车牌图像进行识别 [2]。2004年,陶唐飞提出了一种综合应用边缘检测和区域生长方法的图像分割方法。先对图像进行边缘提取,得到边缘像素点集,然后利用该点集的平均灰度和目标区域的连通性作为生长判决条件,采用区域生长法实现图像分割[3,4]。

2004年,吉文华等提出了基于区域搜索算法的自动图像边缘提取和分割算法[5],并用实验证明了该算法的优越性能。2006年,唐艳等提出一种基于一边缘检测和区域合并的图像组合分割算法[6],算法是采用某种相似性准则对原始图像进行检测,从不同的种子出发可以到达各自区域的边缘,对这些边缘加以标注,采用相似性规则合并处里,获取同质性和连通性俱佳的目标图像。

华南理工大学何智杰在指针读数领域提出条件霍夫变换(Constrained Hough Transfer),结合中心投影分析,并通过一种迭代方法,实现刻度识别[7]。南京工业大学戴海港等针对精度等级为0.5级的高精度指针式仪表的判读[8],提出了一种使用霍夫变换相与减影法结合的指针式仪表自动识别系统。由于运算量的减少,导致速度提升较快,使系统的实时性指标得到大幅度提高,满足仪表自动判读的要求,他具有很高的自动判读精度,符合工业控制的需要。

2 指针图像识别系统设计

根据指针仪表图像采集的要求,系统主要包含设备初始化、图像采集、图像处理、数据存储四大部分,其中图像处理部分是核心,需运用多项图像处理的技术。系统结构图如图1所示。

图1 指针仪表图像识别系统结构图

系统结构图中各部分功能设计:

(1)设备初始化:检测照相机与打印机设备的连接情况,保证设备正常连接,完成接口间的初始化工作;

(2)仪表图像采集:通过一个联机控制程序连接图像采集软件和数码相机,该程序可以预览数码相机的动态取景内容、控制相机快门的释放、调整相机的拍摄模式、白平衡、光圈、快门等各种设置;拍摄的照片可以立即通过USB等接口传入到人像采集软件,进行编辑处理;

(3)仪表图像处理:对获取的图像进行自动裁剪、缩放处理,得到尺寸要求符合规范的图像(800×600);能自动完成色彩修正进和行各种颜色方案的调整,包括RGB值调整,亮度与对比度调整,色调与饱和度调整等;依据图像特有性质,对仪表指针特征进行提取,根据指针偏角和仪表量程得到读数;

(4)保存图像及读数:根据需要把采集的图像按JPEG文件格式存储在图像库中,处理后得到的读数同步保存;

四部分紧密结合构成一个有机整体,能够快速、高效地实现仪表自动检测。

3 关键技术

3.1 图像灰度化算法

采集的图像是24位真彩色图像,R、G、B分别代表红、绿、蓝三种颜色,分度化就是把三种颜色分量按照一定比例转换成为灰度值。转换公式为:I=0.3R+0.596G+O.11B,该方法是早期采用的加权转换法,其中I作为灰度图像相应像素点的像素值,I取值范围为0―255式中的三个系数为经验值,R、G、B分别为像素的三个分量,红、绿、蓝。

3.2 中值滤波去噪

由于环境、设备等因素的影响,图像采集、处理、传输过程中会带来噪声,为了消除噪声平滑图像,人们在空间域、频率域研究了多种方法,设计出多种线性滤波、非线性滤波器和自适应滤波器,其中在空间域最常见的两种滤波器是中职滤波和均值滤波,他们有着设计简单、运算速度快等共同优点。

3.3 图像二值化

灰度图像有256个级别,在一些特定的场合,我们对图像的灰度级别并不关心,有时候只要能区分黑白两种色系就能够解决问题,即明、暗(俗称黑白)两种区别色。如何把256级灰度图像转变成2种色系的图像,这一转换过程我们通称灰度化。通常我们可以把图像理解成背景和前景,如把背景区域的像素值设为“1”,把目标区域的像素值设为“0”,反之得到的图像可以称之为反白。简单而言,我们可以把灰度级大于127的像素值设为“1”,其余的统统设为“0”。然后这样得到的图像并不是我们需要的图像,如何合理有效地对这个分界值进行设定,这才是研究图像二值化技术的关键,也成为阀值技术。

为取得好的二值化图像效果,在阀值分割的算法中不把边缘区域像素统计进来,使统计结果只反映指针和刻度所在的局部区域的最佳分割闭值。以此局部区域的最佳分割闭值来对整幅图像进行二值化。采用这种目标区域Otsu法二值化的方法,指针和刻度所在区域就能获得最佳的二值化效果。方法如下:

设图象包含L个灰度级(0,1…,L-1),灰度值为i的的象素点数为Ni ,图象总的象素点数为N=N0+N1+...+N(L-1)。灰度值为i的点的概率为:

P(i)=N(i)/N。

门限t将整幅图象分为暗区c1和亮区c2两类,则类间方差σ是t的函数:

σ=a1*a2(u1-u2)^2

Otsu算法的依据就是类间方差最大。

目标区域的确定可以采用窗口像素平均值分割的办法。步骤如下:

(1)输入图像指针,该指针可以访问到每一个像素,起始点为图像初点;

(2)用一个窗口(5×5)作为运算模板,该模板根据需要可以调整大小;

(3)对窗口内像素点求像素平均值,该均值作为二值化的依据;

(4)根据经验值,若某一窗口经过运算的平均值符合设定条件,则把该模板所处位置的像素统统记为“0”值;

(5)重复上述第三、四步骤直至遍历整个图像。

3.4 图像分割

在针对仪表图像二值化信息进行仔细分析后,发现在拍摄角度相对稳定,环境变化影响程度低的情况下,每次得到的二值化图像差异很小,变化的是指针,不变的是表盘。基于仪表图像变化很微弱的实际情况,最后选用运算速度极快的减影法来获取目标图像。

减影法[8]提取指针。根据图像动静态特性,选取两幅图像进行异或操作,动态变化的是指针,不同时刻采集的图像指针不同,即减影法操作得到的值记为1(指针),相对静态不变的是表盘图像,即减影法操作中为相同的部分记为0(即表盘),图2所示图像为0刻度指针图像与待识别指针运算结果,这两根指针夹角的大小就是待识别指针偏离零刻度指针的角度大小。

图2 减差影处理后存在二值图像(为便于观察作反色处理) 右图为去干扰图像

4 改进的快速指针读数方法

经过图像分割,获得指针偏转图像(如图3所示),接下来只需要处理指针具体偏转角度。

图3坐标变换示意图

把指针的偏转角转化为对应的读数。为获得偏转角度,根据指针的直线特性如图3所示,为高度为height,宽度为width的图像,经减影法处理后得到的示意图。此时表盘上有两根指针,分别为零刻度指针和待识别读数指针。指针读数识别过程如下:

(1)获得指针的某一个像素。初始化图像的所有点,设为未访问(即可访问)。用一根高度为height/2的线去扫描图像,从图中可以看出,可以分别找到两根指针的其中一个点,并设置改点已访问(即下次不需要再访问,用于防止较大的噪声);

(2)找到直线更多的像素(如40个像素)。考虑到噪声影响,用步骤1中的像素作为出发点,分别向上、下两个方向生成两段线段,各像素设置访问标志,并记下个像素的坐标值(x,y),和像素总个数。

(3)求出指针的直线方程式。根据两个方向上最后找到的像素点,如零刻度指针上的两个像素坐标(x1,y1),(x2,y2),分别代入直线方程y=kx+b,即得到如下两个方程式:

y1=k1x1+b1 (1)

y2=k1x2+b1 (2)

求解公式(1),(2)联立方程,可求出

k1=(y1-y2)/(x1-x2) (3)

b1=y1-x1*(y1-y2)/(x1-x2) (4)

即求出零刻度指针直线方程为:

y1=k1x+b1 (5)

同理可以求出待识别指针方程:

y2=k2x+b2 (6)

由公式5,6联立方程,可求出两根指针线的交点坐标(x0,y0),如图2所示中的延长线交点,y0可能会落在图像区域意外,即大于height值。为简化图像识别难度,在仪表图像采集时尽量保证图像表盘的半程值位于垂直中线位置,即交点坐标的横坐标x值应为width/2(即图像的一般宽度)。实验中,初始采集阶段成为系统学习阶段,如果求解的x值偏离3个像素以上,即|x0-width/2|≥3,则反馈信息为:图像采集时未对准中间刻度值,要求校正,请调整后重新采集。

(4)坐标变换。以上3步都符合要求和,把交点坐标(x0,y0)设置为新的原点,此时原来的点坐标(x1,y1),(x2,y2),经转换后为(x1-x0,y0-y1),(x2-x0,y0-y2)。

(5)分别求出图3中所示的两个内角的弧度,即θ、β的值。设(x1,y1)为远端点,则

tgθ=|(x1-x0)|/(y0-y1) (7)

所以有

θ=arctg|(x1-x0)|/(y0-y1) (8)

同理可以求出β值,求β时用实际运算值参与运算,不需要求绝对值。

(6)计算指针读数。设仪表半程值为V,则读数为:(1+β/θ)V。当β为正值时,表示待识别指针位于标的右半区(如图3中所示),所以实际值大于V,当β为负值时,表示待识别指针位于标的左半区,识别的读数值小于V。

该算法速度快、识别率高,与曲线拟合、模式匹配等算法相比具有明显优势。

5 结束语

通过大量试验证明,该算法速度快、效率高,正确识别有效率在99%以上。实践中也发现,由于环境等因素影响,有时会产生误差,最主要的误差来源是算法中要求待识别仪表半程刻度需垂直于图像中央,这时效果最佳,误差最小。后期将通过智能处理来克服对硬性条件的依赖。

参考文献:

[1]刘义生.基于立体视觉的汽车仪表检测系统的研究[D].长春:吉林大学,2010,24-30.

[2]赵春江.C#数字图像处理算法经典实例[M].北京:人民邮电出版社,2009:220-221.

[3]陶唐飞,韩崇昭,代雪峰等.综合边缘检测和区域生长的红外图像分割方法[J].光电工程,2004,31(10):50-52,68.

[4]单丽杰,刘铁军,朱丹等.一种新的结合区域与边缘特征的目标提取方法[J].计算机工程与应用,2004(21):98-99,103.

[5]吉文华,于慧敏.基于任意种子区域搜寻的自动图像边缘提取和分割算法[J].电视技术,2004(10):16-17,36.

[6]唐艳,李禹.基于MSP-ROA边缘检测和区域合并的图像组合分割方法[J].计算技术与自动化,2006(3):108-110.

[7]何智杰,张彬,金连文.高精度指针仪表自动读数识别方法[J].计算机辅助工程,2006,15(3):9-12.

[8]戴海港,宫宁生,郇洪江.基于图像处理技术的高精度仪表的自动判读[J].化工自动化及仪表,2010,37(8):131-132.

作者单位:湖州职业技术学院 教务处,浙江湖州 313000

基金项目:浙江省教育厅规划课题(课题编号:Y201122320)。

上一篇:基于JAVASE的通用教学游戏框架的设计与实现 下一篇:如何实现高中化学的高效课堂