APP下载

自适应×字算法识别仪表数字

2022-05-31谌珺瑶

仪表技术与传感器 2022年4期
关键词:中心点像素点交点

邹 彤,乐 健,3,谌珺瑶,徐 繁,张 华

(1.南昌大学信息工程学院,江西南昌 330031;2.南昌大学江西省机器人与焊接自动化重点实验室,江西南昌 330031;3.上海交通大学材料科学与工程学院,上海 200240)

0 引言

数字仪表相对于传统的指针式仪表更加方便,易读,精准,在工业环境中大量使用。在许多情况下,仍然需要人工识别数字,如焊接时需要不断调整焊接电源的电压与电流大小,操作人员需要往返于焊接点与焊接电源之间,耗时且不安全,同时焊接自动化研究中[1-4],对于焊接电源的电流与电压的自动识别研究较少,不能做到真正的自动化;一些变电站中的数字仪表不能自动同步到系统中,需要人工抄写,既存在数据质量问题,也不能保证实时性[5],大多数变电站的巡检机器人数字仪表的识别度不高[6]。船舶等行业也存在类似问题。

针对数字仪表的数字字符识别问题,国内外研究人员发明改进了许多识别算法。孙顺远等利用改进的SSD目标检测算法对仪表进行定位检测与数字识别[7]。段会川等基于模糊理论,模糊识别最大隶属原则的数字识别器,快速识别仪表数字[8]。周曼等基于OCR光学字符识别的数字仪表自动识别[9]。朱立倩提出基于深度学习的DDICRNet的数显仪表字符识别算法[10]。

在工业设备中许多仪表没有人机接口,不能将设备信息及时录入系统,需要人工识别,既费时也不能保证准确率,不利于工业智能化,依据仪表数字的特征,提出了一种自适应×字算法识别仪表显示数字,既不需要收集大量的数据图片进行训练,也相比模板匹配[11]、穿针引线法[12]等更快速,具备普遍性。利用USB摄像头采集图片,进行预处理后裁剪出ROI(regio of interest)即数字区域,去除图片中的小数点,将数字单个剪裁出来,利用横纵比识别数字1,其他数字画出×字,根据交点个数与交点位置做出判断,进行识别。

1 预处理

1.1 二值化

图像中过多的其他色彩对于识别的数字来说相当于“噪声”,所以要对图像进行灰度化并且灰度化对要识别的数字没有影响,故将图像中的所有像素点变成只含有亮度信息的像素点,常用计算像素点的亮度值L的公式为

L=0.299×R+0.114×B+0.587×G

(1)

式中:R、G、B分别代表像素点对应的红、绿、蓝的颜色值。

灰度化后边缘检测,并设定灰度图像的上下值消除数字区域以外的其他线条,使图像成为二值图像。再进行膨胀,腐蚀操作方便下一步水平矫正,剪裁出ROI。

1.2 水平矫正

利用radon算子进行水平矫正,其原理如图1所示。图1(a)中线段L的像素点在X轴上累加的结果为线段T,在Y轴上累加的结果为线段P,可以看出X、Y坐标轴上像素点的累加都很平均,不存在突变,即某一个位置像素点的累加要多于其他像素点。在坐标轴从0°逐渐旋转至179°过程中,当坐标轴旋转到线段L水平偏移角度θ,如图1(b)所示位置时,线段L的像素点在旋转后的X′轴上累加的结果为线段T′,在旋转后的轴上Y′累加的结果为线段P′,相较于坐标轴旋转角度小于θ时线段P′发生了突变,并且当坐标轴旋转角度大于θ时,线段P′又将变得平缓,以此得到旋转角度θ,将图像顺时针旋转θ后就可以完成水平矫正。当对象为一副图像时,可以对图像进行膨胀处理,然后边缘提取,再通过radon算子提取直线,旋转角度为提取直线中像素累计点最大的直线所对应的角度。

1.3 裁剪ROI

定位ROI的方法有基于颜色特征的HSV色彩空间[13],基于数学形态学的腐蚀、膨胀[14],小波变换[15]、遗传算法[16]、神经网络[17]等。逐行累加图像中的像素点的值并按行保存,图像膨胀腐蚀后,只有数字区域存在大量的图像,脱离数字区域时像素点的值存在突变。传统的像素点的值累加为逐行逐点或逐列逐点的累加,图像的分辨率往往很高,识别速度过慢,采用式(2)累加像素点的值可大幅度提高识别速度。

(2)

式中:sum为(x+1)行1列的矩阵,存放像素点的值的累加;m、n为图片分辨率即长、宽;N为步长,每行每列移动的距离;f为图片所对应的矩阵;i为像素点的横坐标;AxN为步长整数倍行的像素点值的累加。

取分辨率为1 280像素×720像素的图片,当步长N为20时,像素点的累加程序改进后运行时间由1.03 s变为0.08 s,速度显著提高且剪裁出的数字区域与传统方法得到的剪裁区域基本相同,分别如图2(a)、图2(b)所示。

1.4 字符分割

需将数字单个分割出来分别进行识别,分别使用传统的投影法,将数字的上下多余空间去除以及分割提取出单个数字,分割后的结果如图3所示。

2 垂直矫正

当USB摄像头超出数字区域的右边或左边一定距离时,数字存在垂直倾斜,影响数字识别,不能正确分割出小数点并进行识别。大多数算法依据小数点位置直接在识别结果中添加小数点,不具备普遍性。提出一种方法矫正垂直倾斜,并识别出小数点,在需要进行垂直矫正时可作如下处理。其原理为:将图片底部固定不动,顶部向倾斜相对的方向移动,将原本的矩形拉伸为平行四边形,如图4所示,矫正前后如图5(a)、图5(b)所示,移动的单位个数l由式(3)~式(5)得出。

tanθ=k

(3)

(4)

(5)

式中:θ为垂直倾斜的角度;k为线段3、5的斜率,k=tanθ;x1、y1,x2、y2为l1、l2与线段3、5的交点;d为过中心点做一条竖线与线段6交点的纵坐标与交点p的纵坐标的差值;l为移动的单位个数。

长、宽为m、n的图片,即n×m的二值矩阵,将矩阵大小由n×m拓展为n×(m+l),新增的像素点的值都为0。矩阵按从上往下每行元素向倾斜相对的方向移动l个单位,每向下一行更新d值即减1,l值随着d值改变,元素向倾斜相对的方向移动l个单位,至d值为0即到线段1后d值为负数即每行开始向着倾斜的方向移动l个单位至最后一行,完成后字符分割,判别分割后的2张图片是否有小数点。公式求解过程:中心点为(m/2,n/2),中心点上或下移动(有时中心点会在线段1的上方)距离s与线段1的交点记为p(m/2,n/2±s),若无交点则将中心点作为交点p,利用交点p与图片右方边界上两点确定l1、l2,用x1、y1,x2、y2求出斜率后根据d值求出l。

计算得到l后进行垂直矫正,矫正后可以准确分割出小数点,再结合小数点的统计特征和几何特征[18]、位置特征等进行识别。

3 数字识别

传统的数字识别方法有穿针引线法、模板匹配法等,现在的数字识别方法多为支持向量机、深度学习、神经网络算法等。传统的数字识别有识别率不高、识别速度慢的缺点,而深度学习、神经网络算法需要大量的数据进行学习,数据的收集过于繁锁。本文根据数字仪表显示的数字具有的结构特征,设计一种准确识别数字的×字法,如图6所示,原理如下:m、n为图片的长、宽,取图像长宽的一半为中心点,在图片左右边界上分别取n/4与3n/4两点,共4点分别与中心点得到4条线段。将中心点与线段向上或向下移动小段距离,若中心点与水平线段1有交点则将对应线段编号值置1;反之置0,且中心点与线段回到起始位置。所求得的4条线段分别对应线段2、3、4、5,同理当与对应线段有交点时对应线段编号值置1,反之置0。数字3识别过程如图7所示。

数字的识别由以下过程确定:

(1)线段1是否有交点:有交点的为1、2、3、4、5、6、8、9归为A类,无交点的为0、7归为B类。

(2)线段2、3、4、5与所求得的4条线段的交点个数:A类中,1的交点个数为0;2、3、5的交点个数为2;4、6、9的交点个数为3;8的交点个数为4。B类中,0的交点个数为4;7的交点个数为2。可识别出数字0、1、7、8,将2、3、5归为C类,4、6、9归为D类。

(3)线段2、3、4、5与所求得的4条线段编号的值:C类中,2为0、1、0、1;3为0、1、1、0;5为1、0、1、0;D类中,4为1、1、1、0;6为1、0、1、1;9为1、1、1、0。可识别出数字2、3、5、6,剩余4、9。

(4)识别数字4、9:以中心点的横坐标做竖线,统计竖线与图像的交点个数,个数为1时,识别为数字4,个数为3时,识别为数字9。

当得到线段2、3、4、5上的4个交点后,识别下一张分割出的数字图片时,可根据得到的交点位置,以交点为中心拓宽成I×J的矩阵,检测该矩阵内的像素点值是否含有1即可确定该交点所对应的线段是否有交点,不需要再作“×”,实现自适应。

在实际识别中发现对数字1的识别准确率不高,原因是数字1字符分割后像素点在X轴上的投影范围为其他数字的一半左右,当将分割后的图片归一化为统一的分辨率后,数字1被横向拉伸,垂直压缩,骨架提取,骨刺消除后仍存在许多骨刺,干扰识别。故提出一种基于横纵比的方法识别数字1与其他数字,算法的描述如下:

li=ci-di

(6)

(7)

(8)

式中:li为除数字1外其余数字在X轴上的投影范围长度;ci、di为对应数字在X轴上的投影起点与终点横坐标;m为图片宽度;ki为其余数字的横纵比;V为选取的其余数字图片的个数;W为判别数字1的阈值。

当识别图片的横纵比小于0.7W时,判定其为数字1,反之为其余数字用×字法进一步识别。

4 结果与分析

使用USB摄像头采集焊接电源的电压与电流图像,并且图像具有一定倾斜,统计各个数字在不同位置下的识别准确度。

由表1能够看出,在一定倾斜角度下,不同数字在不同位置下识别的准确率非常高。识别的时间在0.60~0.75 s之间,能够适用于大多数实时识别的场合。

表1 数字的识别结果

5 结束语

依据仪表显示数字的结构特点设计了一种识别仪表数字的算法,本设计不需要收集大量数据进行权值训练,依据仪表数字的特征,相比部分算法更准确、更快速;当需要进行垂直倾斜矫正时,与自适应×字算法配备了相容的垂直倾斜矫正的算法;具有自适应性,可进一步提高识别速度。

猜你喜欢

中心点像素点交点
图像二值化处理硬件加速引擎的设计
基于局部相似性的特征匹配筛选算法
一种基于标准差的K-medoids聚类算法
Scratch 3.9更新了什么?
如何设置造型中心点?
阅读理解
一种X射线图像白点噪声去除算法
基于canvas的前端数据加密
借助函数图像讨论含参数方程解的情况
试析高中数学中椭圆与双曲线交点的问题