棉加工机械仪表中的数字识别研究初探

2020-08-29 02:11
中国纤检 2020年8期
关键词:数字图像数码管小数点

引言

随着机器视觉[1]、物联网技术及人工智能(Atificial Intelligence)技术的发展,半自动甚至全自动机械设备的广泛使用将成为主流趋势,现代化的工厂中每台设备中都有若干个传感器,能源源不断地将控制信息和状态信息传给中央控制台统一管理。然而一些老式的加工设备中没有装备这些设备,只有一些仪表或七段数码管显示设备,对这些设备集中管理主要有人工巡检、加装传感器及机器人自动巡检3种方案。显然人工巡检成本高、效率低;加装传感器的方案更可行一点,但对已有设备要做较大改动,有可能会损坏设备;采用机器人自动巡检成本低、无时间限制,可以24小时工作且不需要改动原有机器设备,是一种较优的方案。要让机器人自动巡检,首先要解决仪表及数码管的自动识别问题。

由于七段数码管数字显示设备[2]具有可靠性高、精度高、控制简单等特点,被广泛应用于工厂自动化流水生产线、仪器仪表显示等领域;七段数码管数显设备的自动识别技术,是实现各种老式数显设备互联和集成,实现管控一体化、智能化的关键,也是仪表自动校正和仪表数据自动录入系统的核心。

本文初步探讨了七段数码管数字的识别方法,提出了一种使用神经网络分类、识别数显仪表的字符图像特征向量的算法。试验结果表明,该系统的分类正确率较高,对于带小数点的数字图像能达到94%,对于不带小数点的数字图像能达到98%。本方法暂时仅用于识别七段数码管显示的数字字符图像,应用领域有一定限制。后续研究中将进一步提高算法的正确率和鲁棒性,完善其他仪表的识别功能[3],为实现远程仪表数据识别和录入以及各种数显设备互联和集成提供技术支持。

1 数显仪表数字识别算法

七段数码管图像中数字识别算法的流程框图如图1所示。首先由数码相机获取仪表盘的图像,由于厂房内一般是灯光照明而非自然日光照明,拍摄的数码图像上往往存在噪声,表现在数码管图像上的颜色不够均一,会影响数字的提取;这就需要先去除图像上的噪声,再对图像进行平滑,使数字上颜色值尽可能相同,便于从图片中提取数字。为便于进一步处理,将提取出的数字图像设置为黑色,其余部分全部设置为白色;为便于用神经网络进行识别,还需要进一步将多数字图片分割为一个个独立数字的图片,并转化为相同的图片尺寸,即对图片尺寸进行归一化处理;归一化后的图片若直接作为神经网络输入,以一幅图片像素为例,将产生900个数据,这对神经网络来说是很庞大的数据,将影响神经网络计算的实时性,比如将图片分块为分割成块,则只有25个数据,容易实现实时计算。为使得神经网络能识别出对应的数字,需要先用多幅数字0~9的图片的特征向量对神经网络进行训练,得到神经网络正确的参数以后,神经网络才能根据输入向量输出对应的识别结果。

2 预处理与特征提取

2.1 去噪与平滑

图像去噪算法主要有均值滤波、众值滤波、中值滤波、傅里叶变换及小波变换等算法。傅里叶变换及小波变换时间复杂度高,一般难以满足实时性要求,中值滤波在滤除椒盐噪声方面效果较好且算法简单、运行速度快,因而本文采用中值滤波先过滤椒盐噪声。中值滤波的原理如图2所示,9是待处理的像素点,要同时考虑其周围8个像素点的值,将9个点从小到大排序,取中间一个值作为最终结果,本例中将以6代替中间的9。

图2 中值滤波原理

去除噪声点后的数字图像中各像素值的差异仍然比较大,为便于根据颜色提取数字图像,需要将图像进行平滑,也即低通滤波,其效果就是图像看起来更加模糊。最简单的低通滤波算法就是将一个像素值与其周围8个点取平均值,算法简单,但效果不好。二维高斯函数[见公式(1)]由于存在中间最大、四周逐渐变小的特性,能够很好地处理当前像素点与周围像素点之间的关系,且可以通过标准差(σ)调节函数的凹凸程度,使用较灵活、方便,因而本文使用二维高斯函数作为低通滤波器。如公式(2)所示,I(x,y)表示原图像,如图3中A1到A5所示;G(x,y,σ)表示二维高斯函数;L(x,y,σ)表示经过二维高斯函数滤波后的图像,如图3中B1到B5所示,(x,y),表示图像中x,y处的像素。

图3 样本及识别过程

2.2 提取数字区域与二值化

图3中B1到B5是几种典型颜色(粉红色、深黄色、淡黄色、绿色、红色)的七段数码管去噪并平滑后的图像,每种数码管的典型色彩也列于图片下方。提取时以典型颜色为中心,上下浮动30级,其区间内的颜色作为数码管的颜色,并将其设置为黑色,其余部分设置为白色。提取出的结果如图3中C1到C5所示。

2.3 字符分割与尺寸归一化

经过上一步操作得到的是包含多个数字的黑白图像,为识别出各个独立的数字需要对这幅图像进行分割。为使分割容易进行,最好先将C1到C5中的黑白图像先放大一倍,虽然使黑色数字区域增大了,但也使得数字之间的白色间隔增大了一倍,使分割出错的概率明显降低。分割时,先对图像进行行扫描,若一行中所有像素都是白色,表示其中没有字符组成像素,直接忽略;若该行中存在多个黑色像素点,说明该行跨过了字符像素,需要保留。经过行扫描后,可以得到一行或数行字符图片,再对这些图片进行列扫描,即可得到一个一个独立的数字图片,如图D1到D5所示。

值得注意的是,同一幅图片中的各个数字高和宽是基本相同的,但1除外。1不但在高度方向上短于其他字符,在宽度方向上也比其他字符窄很多。为便于神经网络的识别,需要将这些数字图片归一化为相同的高和宽的图片,与非归一化相比,统一高宽的字符图像的识别准确率更高。字符图片宽、高的归一化处理也会在一定程度上破坏原来的图像,给识别带来困难;若调整后的宽与高比原来的图像小很多,会压缩字符图像,丢失图像的细节,不利于识别;若调整后的宽与高过大,图像处理的计算量大,处理速度缓慢,考虑到数字图片呈长方形状,本文将调整后的宽、高分别设置为30与50。

拍摄的数码管字符图像中,有些图像的数字组合中是带小数点的,需要先处理小数点。对于带有小数点的图像,由于小数点离数字非常近,在分割图像中的数字区域时,容易把小数点和其左边的数字作为同一个数字划分为一个字符,特别是数码管是倾斜字体时更容易出现这种错误划分,这种误分对数字的识别影响不大,但损失了小数点的信息。字符分割前,先要判别图像中是否带有小数点及其具体位置,数字图像中是否存在小数点的具体算法。首先定位小数点所在区域,一般在一个数字图像的右下角,再统计此区域内黑色像素的个数,与区域整体像素个数相除,得出黑色像素比例m,若m大于通过试验事先确定的阈值M,则表示此处有小数点,否则说明无小数点。

2.4 特征提取

图像的特征是指图像中可以与其他图像相区别的标志性信息。特征提取是将图像中不易受随机因素干扰的信息作为该图像的标识提取出来。特征提取操作会产生一组数据,按一定规律组合起来就是特征向量,特征向量所包含的信息虽比原图像少,但它过滤了随机噪声,且包含识别、分类所需的关键信息,使识别或分类结果更稳定。

本文中特征提取采用分块法,将每一个数字图形划分为H×W个模块,即将每个数字图片的高度分为H份,宽度分为W份,整个图像被分为H×W块,统计每一块内黑色像素个数占本块内像素总数的比例,作为该块区域的特征值。H、W的值越大,所得特征数据就越多,但计算量就越大。文中将图片分块为5×3块,可提取出15个特征值,将这15个特征值按从左至右、从上往下的次序组合起来就成为特征向量,可进一步作为神经网络输入,由神经网络识别出对应的数字。

图4 数字2的特征提取示例

图4中是提取数字2的图像中特征向量的例子,为简单起见,本例中只将图像分为4(2×2)块;首先计算出每个分块中黑色像素所占比例,如图中箭头所指各块中黑色像素所占比例分别为0.04、0.27、0.25、0.07;再将这4个数字按从左至右、从上往下的次序组合起来就得到右边的特征向量。

3 神经网络训练与数字识别

在求出数字图像的特征向量之后,就可以使用人工神经网络、SVM(Support Vector Machine)等分类算法进行识别。经试验确定选择3层BP(Back Propagation)[4]神经网络对数字图像的特征向量进行分类,每个数字图像经过预处理,得到一个含15个特征值的特征向量,因此将神经网络的输入层神经元设置为15个;隐含层的神经元数设置为20个;输出层神经元数为10个,分别对应数字0到9;当识别出是某个数字时,输出神经元对应位置上为1,其余位置为-1。选择S(Sigmoid)型函数作为隐含层的激励函数,线性函数作为输出层的激励函数。神经网络的结构如图5所示,采用梯度下降法调整神经网络各节点的权重和偏置值,调整为公式(3)和(4)。

其中,W(m)——第m层的权重;b(m)——第m层的偏置值;k——第k次训练;δ——调整速率因子;s(m)——第m层敏感因子,a(m-1)——第m-1层的实际输出。

先要用若干特征向量的样本对神经网络进行训练,训练后的神经网络才能用于识别与分类。

图5 识别用神经网络结构

4 试验

为了测试算法的性能和分类准确率,文中进行了一定量的试验。其中,不带小数点的数码管图像及带小数点的数码管图像各用了50张,0到9每个数字各5张,分别来自不同的棉花加工设备的数显仪表,这些图像的拍摄角度及拍摄时的环境光线均不完全相同。测试结果如表1所示。从表1可见,无小数点的数码管图像的识别率要稍高于带小数点的图像,说明小数点对图像识别准确性有些干扰,但强度不大。

表1 分类试验与结果

5 结束语

本文初步探讨了七段数码管数字的识别方法,提出了一种使用神经网络分类、识别数显仪表的字符图像特征向量的算法。试验结果表明,该系统的分类正确率较高,对于带小数点的数字图像能达到94%,对于不带小数点的数字图像能达到98%。后续研究中将进一步提高算法的正确率和鲁棒性,完善其他仪表的识别功能,为实现各种数显设备互联和集成提供技术支持。

猜你喜欢
数字图像数码管小数点
小数点添在哪儿
Arduino编程
MC9S08FL16单片机数码管静态显示分析
单片机控制的四位数码管动态显示编程
基于Qt的数码管数字编码系统的设计与实现
ARGUS-100 艺术品鉴证数字图像比对系统
基于块效应测度的JPEG数字图像盲取证
小数点移到哪去了
数字图像修复在图像压缩上的应用
基于DirectShow的便携式X射线数字图像采集的实现