复杂光照条件下的数码管字符识别
2022-05-31熊经先周海燕
李 执,熊经先,闫 坤,周海燕,刘 威
(1.桂林电子科技大学信息与通信学院,广西桂林 541004;2.桂林金格电工电子材料科技有限公司,广西桂林 541004)
0 引言
在实际工业生产中,为保证生产质量与效率,常需要进行实时数据监控,如电压、电流、温度、压力等。数码管作为数字仪表的一种[1-5],广泛应用于生产领域。其具有读写方便、安装简易、精度高等优点。现在大多工厂采用的还是人工检测,而工业环境较复杂,如光照不均导致读数不准确、高温高压环境读数不方便等,而且工业生产中数据量较大,采用人工读数,工作量大、正确率难以保证、不能做到全方位检测,采集到数据也不便保存管理。数码管识别,是研究的热点。国内外的学者也做了很多这方面的研究工作。张历等提出了采用局部二值模式特征和支持向量机分类算法对数码管的定位,然后采用穿线法进行数码管字符识别。该算法只适用于数码管字符为统一颜色情况,不适用于由于复杂光照下数码管字符颜色多样数码管的识别[6]。叶景东等采用了模板匹配法对数码管进行识别。通过待检测图像与标准模板的差异对比来识别定位,该方法适合单一同种类仪表的识别[7]。陈刚等提出了基于特征提取的数字仪表快速识别算法,把七段数码管的每一段作为一个特征点,然后分别计算每个特征点的像素值,再与标准像素值大小相比较,从而判断识别出相对应的数字。文中测试图像是字符与背景对比度比较明显情况下,因此不能验证该算法是否适用于背景与检测目标灰度值相近情况下字符的识别[8]。陆靖滨等设计了自适应特征提取算法对不同光照下仪表的自动识别,采用改进的最大类间方差法,通过迭代计算求出在设定的范围内对应的最佳分割阈值。该方法适用于目标与背景区域灰度值差异不大情况,不能应用于更加复杂条件下,且平均识别时间为1.136 s,识别效率较低[9]。
复杂光照一直是图像处理中常见的干扰[10],而在真实的生产环境中,环境光是动态变化的,光照过强会导致图像过度曝光,数码管字体形状也会发生膨胀;光照太弱,数码管点亮字体与熄灭的数码管区域灰度值差异太小,不利于算法的定位与分割。因此会导致采集到的数码管数字的大小、颜色、形状、模糊程度等不一致问题,给数码管的定位和识别带来很大的挑战,为了解决这个问题,减弱光照对数码管定位和识别影响,首先对灰度图像进行灰度均值统计,然后结合灰度直方图特征对图像进行反向灰度拉伸操作,增大与前景的差异,弱化光照问题。为使算法具有更强的适应性,设计了动态自适应阈值分割法来实现对数码管的正确定位及分割,然后再进行校正及识别工作。经过测试验证,该算法识别效率及准确性比较高,与其他识别方法相比,适用性及鲁棒性更强,符合工业生产要求。
1 系统架构
文中对于数码管字符的识别主要运用的是数字图像处理和图像识别技术,其系统结构如图1所示。
图1 系统结构
首先通过选定的摄像头采集数码管图片,通过索引计算初步定位到七段数码管所在的区域位置并进行图像归一化。再对归一化后的图像进行预处理来进一步去除噪声及背景干扰。图像预处理主要包括灰度化、图像增强、动态自适应阈值分割及膨胀腐蚀等形态学操作。特征提取主要目的是根据数字所在的区域特点,通过具有别于背景的特征将数字提取出来。由于数码管中字符往往是多个的,下一步是进行数字分割,将提取出来的一连串数字分割成独立的单个数字。最后采用穿线法识别。
2 图像预处理
2.1 光照条件感知
在真实工业环境中,许多设备是直接暴露在阳光下,加上设备是24 h工作的,一天之内光照是动态变化的。光照角度、光照强度等都会随时间动态变化,这会导致采集到的图像中的数码管字符大小、颜色、清晰度、明暗对比度等不同,给字符定位和识别准确性带来影响。而在进行字符定位前,由于不同光照下成像效果不同,图像中的灰度值差异明显。因此,可以基于灰度特征统计,在进行字符定位前,对图像进行灰度统计来初步判断光照的强弱。
假设R为数码管所在区域,p为区域R内像素点,g(x,y)为像素点p灰度值,F为区域平面所有像素点总和。通过式(1)可计算得出区域灰度均值。
(1)
式中M为目标区域灰度均值。
在实际作业环境中,采集到的图像是复杂多变的,而且受到噪声污染,图像灰度分布变化多样。为了使算法能自适应处理光照的动态变化,需要将图像根据灰度均值大小自动进行分类。图像分类主要为如下7种:
夜晚无光型图像:设备未受到光照直射,周围背景为黑色,数码管亮度高,字符较大,灰度均值大,与背景之间对比度明显,如图2(a)所示。
夜晚正常型图像:光照均匀,图像背景较暗,数码管字符轮廓纹理清晰,如图2(b)所示。
夜晚强光型图像:受到非自然光照的影响,出现过度曝光,数码管字体过度膨胀,字符显示不清晰,如图2(c)所示。
白天弱光型图像:光照强度小,数码管亮度高,字符颜色为白色,图像较清晰,如图2(d)所示。
白天正常型图像:光线适中,数码管字符大小与颜色发生变化,图像对比度也较好,如图2(e)所示。
白天强光型图像:光照强度大,出现发光情况,数码管点亮与熄灭之间灰度值差异小,字体颜色不一,不利于定位与分割,如图2(f)所示。
设备未工作图像:设备未开机,数码管字符全部为熄灭状态,图像整体为灰色状态,如图2(g)所示。
当受到不同程度环境光照射下,对图像的质量也有一定影响,灰度均值是粗略分析与判断光照强弱的一个指标。不同时间段光照下的采集到的图像分类及待检测区域灰度均值分别如图2和表1所示。
(a)夜晚无光型图像
2.2 图像预处理
采集到的图像中存在噪声、模糊等干扰,为了后续能正确定位分割字符以及提高字符的定位和分割的准确性,还需要对图片进行预处理。图像预处理目的是为了去除噪声干扰、光照不均等问题,从而可以更加准确分割及识别字符[11]。其主要步骤包括灰度化、中值滤波、图像增强、阈值分割、形态学处理。流程如图3所示。
图3 图像预处理流程
2.2.1 中值滤波
采集图像的过程中,由于工厂生产环境较复杂,因此原图像会受到噪声的影响。经过实验测试验证,文中选择中值滤波[12]。经过中值滤波处理后,可以减少噪声的干扰,同时也能保留图像细节及边缘信息。图4(a)、图4(b)分别为灰度化及中值滤波后图像。
(a)灰度化后图像
2.2.2 图像增强
为了更好区分数码管亮灭状态,增加前景和背景对比度,同时去除噪声及光照不均的干扰,需要对滤波后的图像进行图像增强处理,进一步定位的数码管字符所在的位置。文中运用的是灰度变换中的线性灰度增强方法来对图像进行处理。其计算公式如下:
g′i(x,y)=Ai(x,y)·gi(x,y)+Bi(x,y)
(2)
式中:i表示第i张图像;g′i(x,y)为变换后的灰度值;gi(x,y)为原来的灰度值;Ai(x,y)为所乘系数;Bi(x,y)为加权偏移值。
Ai(x,y)和Bi(x,y)的最佳取值计算公式如下:
(3)
Bi(x,y)=-Ai(x,y)·Gimin(x,y)
(4)
式中:Gimax为图像最大灰度值;Gimin为图像最小灰度值。
灰度直方图就是通过直方图的形式统计图像中灰度分布频率特性[13],反映了各个级别灰度出现的次数和频率。图5为图4灰度化后和中值滤波后的图像灰度直方图。
(a)灰度化后直方图
对于复杂光照条件下数码管的识别,在不同时间段的光照下数码管成像效果有差异,结合实验测试、灰度统计分析以及光照不均特点,最后选择了反向灰度拉伸。经过该步骤后,去除了噪声,且前景与背景的灰度差异更明显,背景更干净统一,消除了光照对图像的影响,为后续图像阈值分割提供了有利操作。图6为光照较弱和光照较强条件下的图像增强,以及增强后的灰度直方图。
(a)光照较强下图像增强 (b)光照较弱下图像增强
2.2.3 动态自适应阈值分割
阈值分割是根据图像灰度值的分布特征来选择合适的阈值K,将图像灰度值划分成不同的区间范围。分割方法如下:
(5)
式中:g(x,y)为阈值分割后图像灰度值;f(x,y)为图像增强后图像灰度值。
g(x,y)=1的部分表示在设定阈值K下所分割的目标区域,g(x,y)=0表示图像中背景区域。
为解决光照不均的影响,提高算法的适用性及稳定性,设计了动态自适应阈值分割,其主要步骤为:
(1)根据灰度均值将图像进行自动分类。
(2)通过Otsu算法[14]计算得到阈值参数K0。
(3)以K0为基准附加补偿值得到动态阈值参数K。
K=K0+δi
(6)
式中δi为第i张图像的附加补偿值。
由于复杂光照影响,图像的灰度分布并不唯一,会出现超过2个高斯核的灰度分布,此时利用Otsu算法计算得到的阈值参数可能并非为最佳阈值参数,没法得到正确的分割,为了使算法具有更强的适用性和稳定性,通过附加补偿值δi实现动态自适应阈值分割,根据灰度均值M范围设定计算所需要的附加补偿值,从而减少光照对定位分割的影响,提高分割定位的准确性。阈值参数K选择根据不同灰度均值(式(1))动态变化。其具体取值选择如表2所示。
表2 阈值参数K与灰度均值M之间关系
灰度信息是图像的基本特征之一,灰度值的大小可以表示图像的亮暗程度,利用这个特征对图像进行了灰度均值的统计及图像自动分类。阈值门限的大小与灰度均值相关,表2所列的动态阈值参数K取值与灰度均值M的关系主要通过点对点判断,为使算法具有更高的通用性,将这种离散关系通过特征数据拟合成连续的泛化关系。
分别取每一梯度灰度均值M范围的一个特征数据点作为自变量,阈值K作为因变量,进行四阶多项式拟合。
拟合函数原型如下:
p(x)=P4x4+P3x3+P2x2+P1x+P0
(7)
式中:x为灰度均值M;p(x)为阈值K。
将7组数据输入可得多项式系数,得到最终的拟合函数(如图7所示):
图7 多项式拟合函数
p(x)=-1.159×10-7x4+6.014×10-5x3-0.009x2+0.491x-0.031
(8)
通过上述函数关系,将不同类型的图像输入,得到动态自适应阈值分割后结果,如图8所示。
(a)光照较弱时分割结果
2.2.4 形态学处理
阈值分割处理后的图像还存在其他连通区域干扰,需要将字符进一步提取处理。采用形态学处理进一步去除干扰。常见的形态学处理有膨胀、腐蚀、开运算、闭运算。
开运算(先腐蚀后膨胀)、闭运算(先膨胀后腐蚀)。文中根据不同时间段采集到的数码管图像选择不同的形态学处理方法。夜晚采集到的数码管字符比较大,文中选择腐蚀操作,平滑边缘,去除细小毛刺。针对白天情况,选择先进性闭操作,填充孔洞,后进行开操作,消除噪声及干扰区域。图像经过形态学操作后处理效果如图9所示。
图9 形态学处理效果
3 字符分割
经过预处理后的图像再通过特征筛选即可把数码管区域提取出来。但数码管区域都是由多个字符组成的,要进行识别首先要进行字符分割[15-16],把一连串字符分割成单个字符来依次识别。由于每个数字所处的区域不同,并且每个数字的笔画也不同,要将每个数字准确分割出来,就必须找到每个数字的精准位置。根据数字特点及形状特征,选择最小外接旋转矩形法的定位方法。首先统计图像中数字个数,然后依次求出每个数字的最小外接旋转矩形再进行分割。数字分割结果如图10所示。
图10 字符分割处理
4 字符识别
4.1 字符校正
由于拍摄角度原因,采集到图像中的数码管字符并不都是方正的,为提高字符识别准确性,将倾斜的数字进行校正。在前面处理工作中,字符分割时选用的是最小外接旋转矩形方法,可以得到数字区域的倾斜角度θ,判断出字符是否发生倾斜。通过仿射变换将倾斜的字符进行校正。
仿射变换是指二维坐标系经过旋转和平移变换到另一个二维坐标的过程。旋转变换矩阵H1和平移变换矩阵T1分别如下:
式中:θ为旋转角度;Tx为沿x轴平移量;Ty为沿y轴平移量。
假设w(x,y)为原始像素点坐标,w′(x′,y′)为仿射变换后的坐标,通过平移矩阵和平移矩阵关系可以计算得到仿射变换矩阵,仿射变换计算公式为
H′=T1·H1
(9)
(10)
式中H′为仿射变换矩阵。
校正前后图片如图11所示。
(a)校正前图像 (b)校正后图像
4.2 字符识别
数码管字符识别方法选用穿线法[17]。分别采用两次水平扫描和一次垂直扫描,水平扫描选择的分别是数码管字符外接矩形高度1/3和2/3处,垂直方向选择的是数码管字符外接矩形宽度1/2处。然后依次检测3条线与7段数码管的每一段(1,2,3,4,5,6,7)相交情况,相交的记为1,不相交的记为0。再与数码管字符编码表(表3)作对比,以此得到识别结果。
表3 数码管字符八位二进制码表
表3中,数字1具有与其他字符独特的形态,所以可以通过字符面积及长宽比来判断。各类光照条件下字符识别结果如图12所示。
(a)(b)
5 实验结果
实验测试图像全部都是在真实工业条件下采集的,由于工业坏境复杂,一天中光照是动态变化的,不同时间段下采集到的图片由于光照强度不同导致成像效果不一样,为了验证算法的可实施性及准确性,选择不同时间段的、光照不均的,每种图像分类选取不同数目的图片作为测试数据集。数据集中包括875张白天非均匀光照采集(其中825张为数码管正常工作状态,50张为数码管关闭),455张夜晚采集图像,总共测试1 330张图像。为了验证算法的准确性及适用性,此次实验测试选取的图像中都包含4个字符的七段数码管,而且数码管字符大小不一、颜色多样,当且仅当每张图像中4个七段数码管字符全部正确识别才算作一次成功的识别,不同类别图像识别结果如表4所示。
表4 数码管字符识别准确度
根据表4结果,采用文中提出的动态自适应阈值分割方法,总体识别准确性都比较高,在夜晚正常型、白天弱光型及设备未工作类型图像中,识别准确率达到100%。但对于夜晚强光型图像识别准确性比较低,由于过度曝光原因,在这种类型的图像中,一些数码管字符不是标准数字,导致算法造成了误判或不能识别。白天强光型图像识别准确率也较低,经过对图像的分析,发现在这个时间段采集到的图像中由于受到光照影响太大,导致七段数码管点亮的段数和熄灭的段数之间的灰度值差异太小,导致有些数字不能正确分割出来,从而影响识别结果。实验测试总体识别准确率达到98.17%,平均识别时间为0.5 s,具有比较高的稳定性和准确性。也验证了该算法的适用性,可以对复杂光照条件下的数码管进行区域定位以及准确识别字符。
为了验证算法的适用性,将文中方法与文献[9]方法作比较。对于不同光照下数码管阈值分割定位,文献[9]采用改进的最大类间方差法的方法阈值分割方法来处理光照不均的影响,字符识别同样采用穿线法。每个数字的识别准确度如图13所示。
图13 本文方法与文献[9]方法识别准确度对比
受到复杂光照影响,图像灰度分布为动态变化,传统的阈值分割方法不能满足各类情况,相比较可知,本文设计方法可以更好适应复杂光照条件下对数码管的识别,准确性更高,识别效率更快,满足工业生产实时性要求。
6 结束语
在实际生产环境中,由于光照强度和角度的动态变化,导致不同时间段采集到的数码管图像灰度值及形态有明显差异,不利于数码管字符的正确定位与分割,从而给字符的识别带来很大挑战。为解决这个问题,利用图像的灰度特征结合灰度直方图设计了反向灰度拉伸方法,消除了光照不均对数码管定位的影响,为提高字符分割的准确性,提出了动态自适应阈值分割方法,对不同灰度均值范围的图像选用不同的阈值参数,提高了算法的适用性和鲁棒性。通过实验证明,该方法可以解决在复杂光照环境下对七段数码管字符的识别,具有较强的稳定性和适应性而且准确率较高、效率快,符合实际生产应用。下一步将进行的工作是研究图像模糊及数码管字符过度膨胀下识别算法,使算法具有更强的适用性与稳定性。