APP下载

复杂环境下基于决策树的数码管识别算法研究

2023-08-10熊经先李慧慧刘思尧黄锡文张李轩

计算机应用与软件 2023年7期
关键词:二值数码管决策树

熊经先 李慧慧 闫 坤* 刘思尧 黄锡文 张李轩

1(桂林金格电工电子材料科技有限公司 广西 桂林 541004)2(桂林电子科技大学卫星导航定位与位置服务国家地方联合工程研究中心 广西 桂林 541004)

0 引 言

近年来,工业自动化领域的相关技术研究方兴未艾。作为工业自动化系统的重要组成部分,信息采集一直是一个研究热点[1-2]。常用的信息采集方式主要有两类,第一类被称为侵入式信息采集,需要将传感器嵌入仪器设备内部[3]。第二类为非接触式信息采集,基于图像处理的信息采集就是这一类中最重要的实现手段[4],由于易于部署,不影响设备工作,受到各种工业生产厂商的欢迎。

与其他环境中的图像识别任务相比,工业环境中的识别目标相对单一[5-7]。识别目标主要是各种设备仪表的读数。数码管识别难度主要在于复杂工业环境中,常用的识别方法无法完成数字区域与背景区域的高精度分割,进而影响后续识别算法的准确度[8-9]。在数码管识别方面,国内外研究团队已经做出很多工作[10-14]。Rasines等[15]针对带背光显示器设计了数字检测识别算法,该算法依赖色彩空间中特定通道,使用阈值检测识别区域。该算法仅适用于具备发光背景的显示器,无法应用于无背光的数码管识别。文献[16-17]设计了一种图形用户界面(Graph User Interface,GUI),用户可在GUI中选择包含数字的区域。系统仅在一个医疗设备上的300个数字上受过训练,因此无法在相对复杂的工业场景中使用。Li等[18]提出的方法无须图像二值化,而是采用笔画宽度变换来定位可能感兴趣区域(Region of Interest,ROI),并使用支持向量机(Support Vector Machine,SVM)来进一步筛选。但是,文中采用的测试图像中有很大一部分是从互联网上获取的干净图像,并不是在现实情况下捕获的。Prakruthi等[19]开发了一种基于输入图像的Canny边缘图的屏幕检测算法,并搜索最大的矩形轮廓,从而提取原始图像中的多个ROI区域。但是,系统需要先验数字在屏幕上的位置。因此,一旦屏幕尺寸不同,算法错误概率提高。Ghosh等[20]提出了一种利用OCR技术从数字万用表和其他类似的数字显示设备中获取自动数据的系统,此方法的显著优势是它可以自动检测小数点和负号,不过这种方法只针对七段显示数码管。

针对复杂工业场景,为提高数码管识别应用时的可靠性,本文提出一种基于决策树的数码管识别方法。首先从设备采集图像中提取数码管所在区域,即ROI,然后对ROI区域进行灰度化,计算灰度图的Tsallis熵[21-23]。不同Tsallis熵值对应于不同的工作环境、数码管状态。然后基于Tsallis熵值,选择预设的二值化算法,完成灰度图的二值化。由于数码管中的数字往往多于一个,需要对数字区域分别识别,因此二值化后,利用数字定位算法对数码管区域进行切分。最后分别对每个数字区进行识别。数字识别算法采用常用的穿线法。针对在实际工业环境中采集的数码管图片进行测试。本文方法实验效果比其他识别方法更高效可靠,适用于工业场景应用。

1 系统介绍

本文提出的数码管识别方法如图1所示,整个流程分为三个步骤,第一个步骤为图像采集,是指获取图像中的图案的扫描图像(数字图像)的过程。本文假设数码管所在区域(即图1中数码管ROI)为已知。因此可以从采集到的图像中提取出多个ROI用于后续处理。整个流程针对复杂的工业场景设计,旨在实现工业环境中高效可靠的数码管识别。

图1 数码管识别流程

数码管识别流程的第二个步骤为预处理。首先,对每个ROI区域的彩色图片进行二值化处理,我们提出一种基于决策树的二值化算法,根据灰度的样本Tsallis熵,选择相应的二值化方法。图像二值化后完成噪声消除,通过边缘消除以及膨胀和填充去除图像中噪点。最后对不同尺寸的ROI进行尺寸归一,方便后续处理。

第三个步骤为数码管识别,包括三个具体步骤:数字分割、特征提取和数值判定。由于实际工作中的数码管位数差异较大,甚至是时变的,因此需要实时自适应的数字分割,本文中以数码管色块分布特征为依据完成数字分割。最后对特征编码进而估计数值。

2 基于决策树的二值化算法

复杂工业环境中,环境光对算法的精度影响较大。首先,同一设备不同光照情况所得的图像灰度分布差别较大。另外,不同数码管亮度也存在差别。这需要二值化算法具有较高的鲁棒性。除了以上难点,常规二值化方法用两个高斯核或两个泊松核拟合图像灰度分布,这种假设并不适合数码管二值化。数码管所在区域在熄灭时,亮度高于其他背景,因此熄灭的数码管区表现出与其他部分不同的统计特征,极大地影响二值化算法的性能。

图2-图4分别为不同光线及设备工作情况下,获取的数码管ROI灰度图。计算不同灰度的统计直方图可知,正常光线、过度曝光、设备关机时灰度的统计分布具有较大差异。为提高二值化算法的适应性,本文提出一种基于决策树的二值化机制。

图2 正常光照条件下数码管及其灰度直方图

图3 过度曝光条件下数码管及其灰度直方图

图4 设备关机条件下数码管及其灰度直方图

假设ROI第i行、第j列的像素值为p(i,j),ROI对应的灰度频数分布图为:

式中:J、I分别为图片的行像素数、列像素数;Q(k)为对应特定灰度的像素点数和;k=1,2,…,256。

计算灰度均值如下:

(2)

计算Tsallis熵如下:

式中:q为Tsallis熵的系数。Tsallis熵是香农熵的扩展,当可调参数q→1时,Tsallis熵等价为香农熵。通过调整q值可以在图像分析中更好地度量图像中不同特征区域的状态差异。本文应用中,图片主要差异表现在亮度较高的数码管区域,这一区域占整个ROI的比例通常较低,因此为突出差异,选择q值为0.5。图5为不同实际场景图片的灰度期望、Tsallis熵值分布图。

图5 均值、Tsallis熵分布图

如图5所示,在Tsallis熵-灰度均值平面上,正常光线、过度曝光、设备关机这三种状态的图像度量值能够被两条直线较好分割。根据这一特征,采用均值和Tsallis熵构建双层决策树将以上三种状态分开,决策树示意图如图6所示。

图6 决策树示意图

计算ROI均值和Tsallis熵,根据决策树判断图片所属场景,进而采用适配不同场景的灰度图二值化方法。

• 正常光线:根据Otsu算法[24]计算二值化门限。Otsu算法又称为最大类间差法,用两个高斯核拟合图像中前景和背景灰度的统计频数,Otsu算法选择最大化类间方差的门限。如图2所示,在正常光线下,前景(发光数码管)和背景(除发光二极管的其他区域)有明显亮度差别,用Otsu算法分割效果较好。

• 过度曝光:如图3所示,过度曝光使背景亮度提高,观察过度曝光的统计频数,与正常光线统计频数相比,前景(发光数码管)和背景(除发光二极管的其他区域)的类间差减少,如使用Otsu算法计算二值化门限,会出现将较亮背景判为前景的问题。因此以Otsu算法计算的门限为基准,并附加余量减少过度曝光的影响。

=ε+δ

(4)

式中:ε、δ分别为Otsu算法门限和附加余量。实验表明,要避免将背景判为前景,应选择δ>0。

• 设备关机:二值化门限选为灰度最大值。以保证二值图片中数码管区域与背景区域一致。

(5)

3 数码管识别

3.1 数字分割

数字分割是扫描整幅图片裁剪数字区域并产生各个分段数字,然后调整所有大小分段的数字,以使其大小相似,降低识别难度。首先,将图片的像素分为两类:数字区域和空白区域。然后根据数字区域的统计特征找到数码管边缘并切出单独数字的图片。这种分割方法的精确性依赖输入图片噪声大小。当输入图片噪声较多、数字变形较大时,分隔准确性下降。

假设第i行、第j列的像素值为p(i,j),计算二值化图中每列的像素和,定义如下:

(6)

式中:I为图片像素的总行数,由于数码管每个数字间存在间隔,因此可以假设,每个数字分割处像素和的特征与数字所在区域不同。利用这种特征上的区别,可以分割出单个数码管。

如图7所示,数字分割点出现在峰值点之间。从左至右将峰值点排序,则第一个数字与第二个数字分割点出现在第二个峰值与第三个峰值间。因此设计数字分割方法如下:

图7 基于像素和的数字分割

式中:di为第i个分割点;mi为第i个峰值点。

3.2 特征提取及数字判定

七段数码管通过调整每段数码段的开关状态来表示0~9十个数字。本文用“0”表示数码管关闭,用“1”表示数码管打开。每个数字都可以表示为长度为7位的“0”“1”编码。由于7段数码管的亮灭方式一致,常用识别方式为先判断对每段数码管亮灭,然后判定相应长度为7的编码。

由于复杂环境中的识别常常受噪声和分段误差的影响,相对固定化的识别规则无法保证较高的准确性。本文中,使用支持向量机(SVM)完成数字的识别。分别计算7段数码管所在区域点亮的数码管区域像素总数作为识别特征,然后将7段数码管的特征组合为一个7维向量。表1给出不同数码管状态对应7维向量标准值。

表1 数据管状态对应7维向量标准值

表1中A表示正常光线下对应段的点亮区域像素总数。复杂环境影响,当数码管点亮时,实际采集图片中每段数码管点亮区域通常为随机变量,其均值为标准值。当数码管熄灭时,实际采集图片中每段数码管点亮区域常大于标准值。

为提高算法适应性,采集不同数字、多种场景下图片,将图片二值化,计算数码管不同段点亮区域像素总数,构造7维向量,训练SVM模型用于数字的识别。

4 实验结果

采集图像设备为200万像素网络摄像头,焦距2.6 mm,图像中无显示屏闪烁或反射。具体拍摄参数在表2给出。本文介绍的原始数据集包含7段数码管,共收集2 000幅数码管图片,每幅图片上有一个数码管,数码管上数字位数最多为6位,最短为4位。

表2 数据集拍摄参数

由于图片在真实工业场景采集,数字出现频率不均匀。数据集中有1 000幅图片为白天均匀光线采集(其中600幅为数码管开启,400幅图片为数码管关闭);1 000幅为白天非均匀光照情况采集(其中:800幅为数码管开启;200幅图片为数码管关闭),数据集规格及其性质在表3中给出。总计捕获数字个数为5 903个,关闭状态数字2 858个。

表3 数据集统计参数

采用本文提出的决策树对图像进行分类,选择1 000幅图片训练决策树,剩余1 000幅图片进行测试。训练集中包含500幅白天均匀光线采集图片(其中:300幅为数码管开启;200幅图片为数码管关闭);500幅为白天非均匀光照情况采集(其中:400幅为数码管开启;100幅图片为数码管关闭)。训练集与测试集均采用随机方式。决策树分类准确性如表4所示。接着采用本文提出的SVM对数字进行识别,随机选择1 000幅数字图片训练SVM,剩余图片进行测试。

表4 决策树分类准确度

对图片二值化后,采用本文提出的数字分割和SVM对数字进行识别,随机选择1 000个数字图片训练SVM,剩余图片进行测试。为测试本文方法的准确性,针对不同数码管显示状态(包括数字和数码管关闭)分别计算识别准确性。将本文设计方法与文献[25]方法对比,数字识别准确度由图8给出。文献[25]采用Otsu图片二值化算法,然后采用模板匹配法识别数码管,比较可知,本文方法能够更好地应对复杂环境中的数字识别,在不同光线下,识别精度达到97.9%以上。而传统方法准确度约为80%。由环境噪声带来的灰度分布变化多样,传统的二值化方法无法给出最佳的二值化门限,这是传统方法准确度低的主要原因,采用本文提出的基于决策树的二值化方法后,数码管识别准确性可提高至90%以上。

图8 本文方法与文献[25]方法检测准确度对比

为进一步优化实验设计,采用消融实验的思想,分析本文设计识别算法不同步骤的作用。将本文方法中的二值化方法替换为Otsu算法,作为第一个对比组。将本文方法中的数字分割和SVM算法替换为平均数字分割和常用的穿线法[26],作为第二个对比组。图9给出了不同对比组与本文方法的数字识别准确度。

图9 本文方法与两组对比组检测准确度对比

三组实验中,本文算法的识别准确性较高,对比组二次之,对比实验组一识别准确性最低,以上实验说明准确地二值化对数字准确识别较重要,换言之,本文设计的二值化算法能够较好地适应复杂环境。另外,平均数字分割和常用的穿线法的识别性能稍逊于本文方法,可见本文方法能够更好地适应多变的实际环境。

5 结 语

数码管的识别是实现工业自动化的基础,寻求复杂环境中鲁棒性强的数码管识别方法具有至关重要的意义。我们提出一种新的基于Tsallis熵的决策树二值化算法,并将二值化图片自适应分割为单个数码管,进而通过特征提取、数码管识别完成数码管自动读数。本文方法与以往的识别方法相比具有更强的适应性,能很好地处理复杂环境中的光线不均问题,同时能够自动识别数码管关闭的情况。

实验证明,与常用的基于单一二值化方法的数码管识别系统相比,本文方法在大幅提高识别准确性的同时,不增加过多的计算负担,只需增加均值、Tsallis熵计算,能够更好地适应复杂环境中的数码光识别应用。未来我们将进一步探索能够自适应调整的图像二值化方法,并将其应用于自然光线图片的分析识别。

猜你喜欢

二值数码管决策树
混沌伪随机二值序列的性能分析方法研究综述
支持CNN与LSTM的二值权重神经网络芯片
一种针对不均衡数据集的SVM决策树算法
Arduino编程
MC9S08FL16单片机数码管静态显示分析
单片机控制的四位数码管动态显示编程
基于Qt的数码管数字编码系统的设计与实现
基于二值形态学算子的轨道图像分割新算法
决策树和随机森林方法在管理决策中的应用
基于曲率局部二值模式的深度图像手势特征提取