岳志豪,赵明冬,周 斌,马金辉
(郑州科技学院,河南 郑州 450064)
在20 世纪70—80 年代,随着数字图像处理技术与计算机性能的提升,计算机视觉技术已经得到快速发展,现已被广泛应用于生产生活中的各个领域。 在仪表图像识别与处理方面的应用中,国内外部分学者已经取得重大研究成果。 2005 年段会川等[1]提出了一种基于模糊识别最大隶属原则自动定位分割仪表图像中数字区域的方法,该法可以实现自动读数,但是对于复杂或模糊的仪表图像,由于识别的不确定性,会导致误识率较高;2006 年雷丽婷等[2]提出了多种自适应算法和协同模式识别算法,实现了数字仪表自动识别,但该算法会消耗大量计算机资源,导致识别速度较慢;2018 年蔡梦倩等[3]通过构建卷积神经网络用于数字仪表识别的方法,有效提高了识别精度,并且降低了算法的复杂度,具有较强的泛化能力,不过利用已有的数据库无法涵盖所有数字仪表类型与场景,也会对识别结果产生影响。
为进一步优化识别系统,提升系统鲁棒性与识别准确性,本文首先从待识别图像质量着手,对硬件设备如相机、镜头及光源进行选择调试,然后将待识别图像进行灰度化、轮廓波变换、二值化和定位切割处理,从而提高识别准确性;其次,收集各类、各场景数字仪表图像,建立自己的样本库并对其进行不断扩充以提高系统鲁棒性;最后,优化卷积神经网络结构,增加网络深度,提高网络识别率和鲁棒性。
该系统硬件主要包含相机、镜头及光源3 部分,硬件系统结构如图1 所示。 高质量的源图像在一定程度上简化了图像处理和识别算法,提升了整个系统的鲁棒性。
图1 硬件系统方案
相机选择130 万像素的CMOS 工业相机,可以获得更高分辨率的图像,从而更清晰地显示数字仪表上的数字。
镜头选择16 mm 的变焦工业镜头,可以调整视场角度,适应不同大小、不同距离的仪表,提高图像采集的灵活性。
为保证光源均匀照射在仪表上且防止距离较近或较远产生阴影,本研究采用了线性的白色光源。 光源摆放在距离仪表30 cm 处并且呈45° 夹角。 通过线性的白色光源提供均匀的照明条件,可以保持物体真实颜色的同时减少阴影和反射对图像的影响,从而突出仪表细节特征,获得更加清晰、真实的图像,提高识别准确性。
在项目前期,研究组成员已经采集了一定数量的样本数据,并利用第三方标注工具Labellmg 进行标注,构成了最初的识别样本库,后期随着系统的完善会继续收集样本、进行标注,以扩充样本库,提高识别准确度。
传统的神经网络在理论上能很好地分析图像,但由于现实中计算机的资源有限,导致识别精度不足,而卷积神经网络的问世使得上述问题得到了较好的解决。 卷积神经网络是一种多层前馈型神经网络[4],从功能上分为特征提取和分类识别两个阶段。 特征提取阶段能够提取输入数据的特征并作为分类识别依据,提取网络由卷积层与池化层堆叠而成,具体结构如图2 所示,较前的几层能够捕获局部细节信息,较后的几层则捕获更加高层抽象的信息;分类识别阶段由全连接层作为分类器,依据所提取的特征完成分类识别。
2.2.1 卷积层
卷积层是卷积神经网络的核心层之一,用于提取水平与垂直两个方向上的图像特征,具有两方面特点,一方面是多个卷积核对图像进行卷积后能得到多个特征图,另一方面是层层递进可以逐步减少网络的参数量和计算量,从而达到提高网络的训练效率和泛化性能的目的,卷积层计算方法如下:
其中,∗为卷积运算符,X 为输入,Mj为神经元输入特征图集,l 为层数,i 为神经元标号,k 为卷积核,b为神经元的偏置。
在进行卷积操作时,由于卷积核不能扩展到边缘区域以外,边缘处只能检测到部分像素点,可能导致无法充分提取所有特征。 为解决这个问题,本文使用Padding 扩充法,对原始图像进行扩充,然后对其进行卷积运算,防止部分特征没有被提取出来。
2.2.2 池化层
图像经卷积层输出后进入池化层,该层用于压缩数据和参数,在保证提取图像特征的同时,可以优化图像过度拟合的问题,从而提高算法的计算速度和特征提取的鲁棒性。 池化操作分为MAX 和AVERAGE两种,本文采用MAX 池化,其过程如图3 所示,池化后的数据保留了原始数据最精准的特征。
图3 MAX 池化过程
2.2.3 全连接层
卷积层与池化层的输出经扁平化处理后,把数据转化为一维的数据条,并作为全连接层的输入,而全连接层的作用是对之前卷积层与池化层所提取的特征进行分类或回归,其中任意神经元都与前层所有神经元相关联,能够实现特征的高层次表示,该过程用于完成后续的分类或回归。
2.2.4 输出层
在输出层增加激活函数,可以提高网络的非线性。 使用Softmax 函数实现输出0~9 各个数字的概率,以便于计算损失函数并进行反向传播更新模型参数,其所有输出概率合为1。 计算公式为:
式中,Si为第i 个节点输出的概率值,e ≈2.71 为常数,yi 为第i 个节点的输出值,j 为分类的类别个数。
卷积神经网络模型的训练过程为:首先,对图像数据进行卷积、池化等操作得到特征图像;然后,将其交由全连接层进行分类识别;最后,判断是否符合期望,符合则作为结果直接输出,此为前向传播过程。如果判断与期望不符,需要调整卷积核与神经元的权值,降低下次传播的分类误差,从而减小整体误差,此为反向传播[5]。 神经网络训练流程如图4 所示,经过前向传播和反向传播多次迭代可以使得误识率不断降低且趋向于某一固定值,其中,训练迭代次数关系到模型的准确率和收敛速度[6],训练后的神经网络能够对图像进行更高精度的分类识别,识别过程是通过前向传播进行的,最后输出相应分类概率。
图4 卷积神经网络模型流程
由于采集的图像色彩和大小不一、灰度模糊、光照不均,严重影响识别准度,需对图像进行优化处理,其主要步骤是在RGB 图像灰度化基础上进行轮廓波变换和图像二值化,最后进行数字定位和切割。
图像在采集和传输时会不可避免地存在噪声干扰,为能进一步保留原彩色图像的局部对比度与特征信息、增强图像识别精度,需采用相应算法对图像进行细节增强处理。
轮廓波变换是由拉普拉斯金字塔(Laplacian Pyramid,LP)和方向滤波器(Directional Filter Bank,DFB)共同完成多尺度分解与分析,其变换原理如图5所示,拉普拉斯金字塔将采集到的图像分为低频子带和带通子带,低频子带由原始图像经过低通滤波和下采样后形成,高频子带是由原始图像减去经上采样和低通滤波后得到的低频分量形成的。 方向滤波器对高频子带进行方向滤波,得到2n个方向子带( n 为正整数),对低频子频重复上述操作,可以实现原始图像的多分辨率和多方向分解。
图5 轮廓波变换原理
以轮廓波变换[7]算法为基本原理,对彩色图像和初步灰度化图像进行多尺度、多方向的轮廓波分解,调节局部色彩对比度比值来增强图像细节的对比度;通过逆变换后得到细节增强图像,再将初步灰度化图像与细节增强图像进行叠加,得到最终的灰度图像,变换结果如图6 所示。
图6 轮廓波变换结果
由于灰度图像经二值化处理后,可进一步减少图像中的无用信息,增强特征信息,所以本文采用最大类间方差算法(Otsu 算法)对图像先进行二值化处理。
将处理过的图像进行区域定位,确定数字在仪表中的位置和范围,分割算法如下:
(1)将宽度大于数字最大宽度的区间进行分割,使其宽度(wc)在wc/2 到wc 区间内,利用迭代法再次分割,将区间分割成基本单位;
(2)将具有明显的左弧右弧特性且宽度满足条件的区间进行合并;
(3)将1/7 等具有明显高宽比与无弧特性的数字进行特殊处理。
考虑到数字的宽度、高度和数字串的长度具有一定范围的特性,充分利用这些特性是进行定位的关键所在。 从左到右、从下到上对图像进行扫描,由于大多数字存在左弧右弧的特性[8],左弧区间不能与左边的区间重合,右弧区间不能与右边的区间重合,因此,利用这一特性可以大大提高分割正确率(见图7)。
图7 定位切割后的图像
实验中数字的识别过程如下:将实时采集的图像进行优化处理后,输入训练好的神经网络,通过前向与反向的循环操作,最后由输出层输出各个数字的概率,概率值最大且达到97%及以上即为最终识别结果。 对于识别概率达不到标准的错误结果,可以作为样本数据扩充到样本库中,增强系统的识别能力。
将前期建立的数据样本库作为训练集进行模型训练,把随机采集的图像进行上述的预处理优化与分割,输入网络模型进行模型对照,可以得到最终的识别结果。 经过多次实验,数字0~9 的识别正确率如表1 所示,平均正确识别率可达到97%,满足预期期望,鲁棒性好,精准度高。
表1 数字识别正确率
本文基于计算机视觉,建立并不断扩充样本库、训练卷积神经网络、优化图像处理方法,从而达到提高数字识别精准度的目的,在一定程度上解决了人工读数存在的弊端。 该方法鲁棒性高,成本低,能够适应各类监测环境,满足无人化工作发展需求,具有良好的经济应用前景。