石玮玮,孙辉,李晓峰,程远方,王涛
(国营洛阳丹城无线电厂,河南 洛阳 471000)
长期以来,仪表示数的智能识别一直受到学者们的关注,利用图像处理和识别技术,可以实现数显仪表的自动识别,既可以提高工作效率,又可以保证采集数据的准确性[1-6]。因此仪表的自动识别方法层出不穷,包括模板匹配方法、基于特征的机器学习方法和深度学习方法[7-9]。传统的字符识别方法大多是利用字符本身的特征进行识别,陆靖滨等[10]提出了一种改进的最大类间方差法自适应提取数显仪表的字符,采用穿线法实现字符的自动识别。董延华等[11]在模式识别技术的基础上,通过改进的特征匹配算法改变了特征向量,增加了学习次数。陈玮等[12]提出了基于欧拉数的模板匹配,将模板图像分组,只匹配具有相同欧拉数模板的目标图像。然而,上述传统的字符识别方法容易受到环境因素的影响,背景的变化、数字的浮动和漂移、光照强度对识别效果都有很大的影响。深度学习神经网络作为一种有效方法,在字符识别领域得到了广泛的应用。识别方法首先需要人工选取字符目标0~9的特征图像,构建10个字符的特征向量作为输入矩阵。通过CNN模型的训练,固化神经网络各层神经元的连接权重和阈值。将训练好的CNN模型应用于仪表识别推理,输出一个由10个元素组成的向量来区分显示的具体字符数字[13]。该方法具有分类能力强、容错性好等优点。
本文系统研究了基于CNN原理的游标卡尺智能识别算法。随机改变游标卡尺在测试区域的位置、角度和高度,显示屏会出现反光现象。在识别过程中,首先要对游标卡尺的数显区域进行粗定位和精确定位,才能获得数显区域。其次使用图像处理算法进行操作,如倾斜校正、灰度、二值化、腐蚀和膨胀等。最后,建立了分割数字对应的0~9个类别字符的浅层CNN模型,对分割后的游标卡尺数字进行训练和测试,完成对数字式游标卡尺在多场景下的智能识别,可以大大提高字符识别的效率。
高分辨率工业相机和高性能计算机是人工智能领域数字仪器自动识别的主要设备。为了实现仪器图像的自动识别,需要将摄像头固定在数字式仪表前。为了提高仪表字符数据识别的正确性,必须保证工业相机的分辨率。对于高分辨率工业相机拍摄图像的预处理工作,也是能够成功识别字符的关键步骤。相关图像采集软件、图像分析软件和图像识别软件的操作主要由计算机完成。为减少不必要的工作负担,提高工作效率,自动信息识别的后续处理可由同一台计算机完成。本文采用的CMOS工业相机最大分辨率为2448×3264;训练高性能计算机平台选用戴尔T640塔式服务器,CPU为志强处理器,CPU主频1.7 GHz,NVIDA GeForce RTX2080Ti显卡1块。
仪器数据自动识别软件分为3个模块:图像采集模块、图像处理模块和字符识别模块。当图像采集模块获取包含仪表的图像后,相机由特定的编程接口驱动,调用CNN目标定位模型,进行推理,可以对识别出的数据区域图像进行定位和分割,同时完成上层的图像传输。中间模块为图像处理模块,不仅可以将图像采集模块得到的彩色图像转换为灰度图像,还可以实现图像增强、图像去噪和二值化等功能,最终完成黑白图像的处理。在图像数据的识别中,数据识别模块起到了作用,主要是在浅层神经网络模型的作用下,快速准确识别分割后的字符,并重组最终输出数值。在自动识别数字式游标卡尺数据之前,还需要对相应的字体进行训练,最终完成仪器数据的智能识别。
为了提高仪表测量数据自动识别的效率,仪表测量数据识别软件可以封装成一个独立运行的程序,在与其他程序进行信息交换的过程中可以通过进程间调用来完成。另外,在调用其他程序时,可以直接通过编程接口函数获取捕获目标的属性。接口函数的形式不仅可以使信息的调用更加高效,还可以增加操作的灵活性。
本文算法所采用的技术路线图如图1所示。游标卡尺数据的智能识别包括图像采集、数据区域提取和智能识别3部分。图像采集包括从相机的图像采集到图像预处理。数据区域定位包括构建CNN模型对图像样本的特征进行训练和提取,根据图像特征提取图像的数字显示区域,对待识别的有效字符区域进行分割。然后对分割后的游标卡尺图像数据集进行灰度化、二值化、边缘检测、腐蚀噪声和封闭运算等方法实现仪表数据区域的精确定位和分割,从而得到分割字符。数据识别是再次利用浅层神经网络对游标卡尺数据进行智能识别。
图1 基于CNN模型的智能识别系统技术路线图
为了实现游标卡尺的智能识别,需对数显区域进行有效定位和提取。为了消除背景的干扰,提高识别准确率,本文提出一种CNN模型目标检测与定位算法。由于要保证游标卡尺的全像,拍摄范围会比较宽,所以在图像中,游标卡尺的面积和角度是不确定的,干扰信息很复杂。在提取表盘特征时,采集的不同图像每帧之间没有规律性,且仪表位置都有所不同,加之光照饱和度的干扰也是随机的,这些因素都给后续进一步的表盘图像处理带来困难。本文使用CNN算法定位,提取图像中的数字显示区域。为了得到鲁棒性较强的目标检测模型,就需要大量的训练样本。本文中样本采用数据增强技术对原始拍摄的有限数据样本进行数据多类型数据量的自主扩充,其中包括翻转、旋转、裁剪、变形和缩放等操作,目的是为了产生更多的数据样本,以丰富样本类型,增加训练模型的泛化能力。
训练结束后,研究人员开始验证训练效果,将随机的4张图像放入输入层,推理得到如图2所示的数显区域定位结果。由图2可以看出,检测概率均超过99%,图2(b)甚至高达100%。虽然数显区的定位精度很高,但定位框中含有边缘的黑色区域和游标卡尺的单位mm字符,每次覆盖的黑色区域大小不一,很难对游标卡尺中的显示字符进行分段。因此,需要对数显区域进行二次定位,即精准定位。由于第二次定位是在第一次粗定位的基础上进行的,因此操作过程更简单,精度更高。
图2 游标卡尺数据区定位结果图
在定位游标卡尺的数字显示区域后,基于数学形态学理论提出了游标卡尺字符显示区域图像的处理方法。首先对图像进行灰度化和二值化,使图像的处理数据量大大减少,轮廓变得更为清晰,突出所需的边缘特征,应用腐蚀操作去除图像中不连续的边界点。然后进行闭合操作,连接图像中的小区域。最后,根据图像的高宽比等信息,滤除非数字区域,得到游标卡尺的数字显示区域图像。
字符分割是将数字序列分割成独立的数字,或分割出所需的区域块,是游标卡尺数据智能识别中必不可少的程序。根据液晶显示屏幕的字符显示方式,通过查找轮廓找到每个数字边缘,建立每个轮廓的轮廓矩,并将每组数字分段,如图3所示。虽然游标卡尺的数据是分成单个数字,每个数字图像的大小并不完全相同。例如,图3上半部分单位mm的尺寸比其他数字图像小,无法在CNN模型中训练数字。因此,需要对每个分割后的图像进行归一化处理,处理后的数字图像大小为28×28,如图3下半部分所示。
图3 游标卡尺数字分割图
因为游标卡尺字符受拍摄角度、光线和距离的影响。因此,根据游标卡尺的单个数字特性,本文选择不同条件下拍摄的数字图像制作数据集,用于输入样本训练和检验浅层神经网络模型,具体样本比例为7∶3。因此,构建了一套基于3层神经网络模型算法的游标卡尺数字识别算法,来识别分割后的单个字符。
为了验证CNN模型的准确率,随机选取1000张图像进行实验,结果表明平均识别准确率在95%以上。其中,再选择测试样本200张图片中的字符共计875个字符进行识别。将本文算法与穿线法、模板匹配算法进行比较,见表1,在单个字符识别准确率方面,较模板匹配法提升了4.69%,较穿线法提升了6.63%,具有较为明显的改善。在进一步优化的基础上,说明基于该CNN模型的智能识别系统具有很强的应用和推广价值。
表1 不同识别算法下的单个字符识别结果
本文设计了一种基于CNN的智能仪表识别系统,首先,对所有采集到的游标卡尺图像进行2次标记,以精确定位游标卡尺的数据区域。然后利用图像灰度、二值化、腐蚀和膨胀等算法对准确定位的图像进行处理。其次,将分割后的数字图像作为样本放入浅层神经网络模型中进行训练和测试,从而实现对相应数字字符的识别,最终识别游标卡尺的数据。实验结果表明,无论是在图像整体字符串识别率,还是在字符的识别方面,都存在着明显的优势,其识别率明显高于传统的算法,该模型算法具有识别率高、实时性高及可靠性好等优点,具有一定的应用价值。