APP下载

一种基于PNN的点阵喷码字符识别方法

2020-07-15罗晓曙蒋品群

关键词:喷码字符识别角点

马 玲,罗晓曙,蒋品群

(广西师范大学 电子工程学院,广西 桂林 541004)

食品、药品的生产日期、生产批次及产地信息一般都是使用点阵喷码字符喷印在外包装袋上,消费者和生产者都可以通过这些喷码字符来了解产品的相关信息。目前,传统的喷码字符检测是靠人眼完成,这种方法效率低且成本高。因此,研究自动识别点阵喷码字符的方法对于满足工业生产自动化具有重要意义。

目前喷码字符识别方法主要有:基于模板匹配的方法、基于支持向量机(SVM)的方法和基于人工神经网络的识别方法等[1-5]。文献[1]是基于模板匹配的识别方法,采用特征加权模板的模板匹配方法对钢板喷印字符进行识别,算法简单,较易实现,但对噪声比较敏感,可靠性不高;文献[2]使用支持向量机(SVM)实现了对板材喷码字符的识别,在针对多格式字符识别方面,设计的SVM分类器较为复杂;文献[3]使用BP神经网络实现了对柱面压印字符的识别,其性能与初始权值、学习率等参数有关,易陷入局部最优值和过拟合等缺陷[4];文献[5]采用基于HALCON的方法对乳制品箱体喷码字符进行识别,但仅适用于采集到的图像背景单一、不包含标准字符的场合,这简化了识别任务,应用范围受限;文献[6]提出了一种对LED点阵文本检测和识别的方法,该方法从自然图像中定位LED点阵字符,对本文有一定的指导,但该方法使用KNN分类器来识别点阵字符,识别准确率不高。

产品外包装上的喷码字符周围常混杂着标准印刷字符和图案,且点阵喷码字符的字体大小、喷墨量及受到的光照影响时常变化,这些因素会对点阵喷码字符的自动识别产生严重的干扰。针对以上问题,本文提出基于PNN的点阵喷码字符识别方法。该方法先利用改进的FAST(features from accelerated segment test)角点检测算法快速、准确定位点阵喷码字符;然后,提取字符的HOG特征和网格特征进行联合;最后,利用PNN建立分类模型识别点阵喷码字符。

1 基于概率神经网络的点阵喷码字符识别方法

本文点阵喷码字符识别方法如图1所示。输入图像经过预处理后,先进行点阵喷码字符区域定位和分割;然后,提取单个字符的HOG特征和网格特征,将这2种特征联合后输入到PNN,建立分类模型;最后,利用建立好的PNN分类模型来识别点阵喷码字符。

图1 点阵喷码字符识别流程

1.1 喷码字符定位

Rosten等[7]在2010年提出FAST角点检测算法,该算法是一种简单且快速的角点检测算法。

如图2所示,FAST-16角点检测是以某一像素p为圆心像素点,计算以3为半径的圆上的16个邻域像素点的灰度值大小。若这16个像素点连续n个像素点(本文n取9)的灰度值都比Ip+t大,或者都比Ip-t小,即满足式(1),则该圆心像素点p为角点。

(1)

式中:Ip为圆心像素点的灰度值;t为阈值;Ip→x为这16个像素点中的某一像素点的灰度值。如图2,假设p1~p9这9个点的灰度值都大于或者小于中心点p的灰度值,则该点p被判定为角点。

图2 FAST角点特征提取

利用FAST角点检测方法检测灰度图像中的角点,如图3中绿色点所示为初始检测到的所有角点。此时,角点中属于点阵喷码字符角点的数量居多,这是由于喷码字符是由一个个离散小黑点组成,其周围灰度变化大,因此,FAST角点数量较多。但是,检测到的角点中还有属于标准打印字符的,如“滋养生命活力”,需要将检测的角点进行筛选。

图3 初始检测到的FAST角点

将检测到的角点按其特征强度值进行排序,根据实验结果得到,只保留排序结果前40%的角点位置信息时,既能够保留点阵喷码字符的角点又能够删除一定的非点阵喷码字符角点。这是由于点阵喷码字符是由离散小黑点组成,与邻域内的像素点灰度相差较大,即其强度值大于大多数非喷码字符的强度值,故可删除一些非喷码字符角点。删除部分角点后的结果如图4中品红点所示。相比图3,已经删除大部分非点阵字符角点,但是还有一些干扰角点的存在。

图4 保留特征强度较强的角点位置

考虑到点阵喷码字符的角点空间分布集中的特点,计算角点在X轴和Y轴出现的频率,频率低的角点视为干扰角点,实验结果如图5中青色点所示,此时,检测到的角点都位于点阵喷码字符处。保留角点位置坐标并保存,如图6中红色方框所示,即定位到点阵喷码字符。

图5 最终角点位置

图6 最终喷码字符区域定位

将去噪后的灰度图像采用底帽变换法[8]来消除图像由于受采集环境影响而引起的非均匀光照影响或者存在阴影区域的现象;然后,采用自适应阈值的二值化方法即最大类间方差法[9]得到二值化图像。根据前面保存的喷码字符区域位置坐标,将图像中除喷码字符区域位置以外的位置都视为背景,即0值,在二值图像中只保留一个包含喷码字符的图像,如图7所示。

图7 喷码字符二值化

1.2 喷码字符分割

喷码字符在喷印过程中会出现字符随机角度倾斜,本文采用Hough变换法[10]计算喷码字符的倾斜角度,使用双线性差值算法将倾斜的喷码字符校正到水平方向,并采用水平投影法将本例中喷码字符分割成2行,如图8所示。若这2行字符在行方向出现黏连,考虑2行字符的高度基本一致,将这黏连的2行字符平均分割成上下两部分。

图8 行分割后的喷码字符

喷码字符由于其本身的非连续性及在喷印过程中有可能会出现点缺失或喷墨渗出的情况,需要将倾斜校正后的喷码字符使用3 × 1结构元素进行膨胀操作,提高字符质量,以便后续进行识别操作,如图9所示。然后,采用垂直投影法对字符进行列分割,得到单个喷码字符图像,并统一调整为42 × 24像素大小字符图像,如图10所示,将单个喷码字符按类存储并建立字符库。

图9 膨胀后的喷码字符

图10 列分割后的单个喷码字符

1.3 喷码字符识别

1.3.1 字符特征提取

由于将得到的单个喷码字符图像采用逐个像素特征提取算法时,图像所提取的信息量过大、耗时长,且识别准确率低,所以,本文采取对整体图像进行特征提取的方法,即采用提取喷码字符的HOG特征和喷码字符的网格特征,并将这2种特征进行联合,来表征原喷码字符。

HOG特征是通过计算一幅图像的局部区域的梯度方向直方图来构成的[11-12]。HOG特征提取步骤如下:

Step1分别使用[-1,0,1]和[-1,0,1]T滤波器,提取字符二值化图像的水平和竖直方向梯度,通过式(2)~(5)求得该像素的梯度方向和大小。

Gx(x,y)=H(x+1,y)-H(x-1,y),

(2)

Gy(x,y)=H(x,y+1)-H(x,y-1)。

(3)

式中:Gx(x,y)表示图像(x,y)像素处的水平梯度;Gy(x,y)表示图像(x,y)像素处的垂直梯度;H(x,y)表示图像(x,y)像素处的像素值。像素(x,y)处的梯度大小和方向为:

(4)

(5)

Step2原二值字符图像大小为42 × 24像素,取6 × 6像素为一个单元,把梯度方向0~360°划分为9个区间。此时,统计每个单元里面36个像素的各个方向区间的梯度方向直方图,得到一个9维特征向量。将相邻2 × 2个单元组成一个像素块,则一个块内可得到36维特征向量,并采用2-范数对向量进行归一化处理。

Step3用一个块的大小即12 × 12像素对原二值字符图像进行扫描,取一个单元即6 × 6像素为扫描步长,则原二值字符图像水平方向步数设置为6,垂直方向步数设置为3,则总共提取36 × 6 × 3 = 648维特征,以供分类使用。

本文中点阵喷码字符的网格特征是将字符分割成由40个网格组成的形式,横向分为8等份,纵向分为5等份,取每个网格中字符像素的个数即白色像素的个数,将所有值排成一列形成40维[13]特征向量,如图11所示。

图11 网格特征提取

这样,就得到了648维的HOG特征和40维网格特征,2种特征联合[14]起来组成一个688维特征列向量,该特征列向量反映了原来的二值字符图像。

1.3.2 概率神经网络(PNN)

PNN是D.F.Specht提出的一种基于贝叶斯决策理论和Parzen窗概率密度函数估计的前馈型神经网络,适用于模式分类问题[15]。PNN在模式层中的激活函数为径向基函数,选取输入特征空间的子集作为中心,计算出局部决策函数,然后将所有的局部决策函数求和,计算出全局决策函数。因此,该网络结构简单,收敛速度快,不存在局部最优值问题[16]。

贝叶斯决策理论为:给定输入向量x=[x1,x2,…,xd](d维)分类到ωi(i=1,2,…,m)中之一,其中m是x可以属于的可能类的总数量。根据贝叶斯公式,后验概率计算公式为

(6)

式中P(ωi|x)是x发生情况下,类别ωi的后验概率,P(ωi)为属于ωi类的先验概率。当满足P(ωi|x)>P(ωj|x),∀i,j=1, 2, …,m,i≠j,则输入向量x被分类为属于ωi类。而大多数情况下,P(ωi|x)是未知的。为了解决这个问题,Parzen提出了从训练样本来估计概率密度函数的方法

(7)

式中:xai为ωA类的第i个训练向量;m为ωA类的训练样本数目;σ为平滑因子。fA(x)为ωA类的概率密度函数,它是以训练样本为中心的高斯函数的总和。由此可以看出,PNN使用所有训练数据集来估计概率密度函数,从而估计输入样本属于某一类别的可能性。

PNN的基本结构由输入层、模式层、求和层和输出层组成,如图12所示。

图12 概率神经网络(PNN)的基本结构

第一层为输入层,接收来自训练样本的特征向量,每个神经元都完全连接到下一层的神经元,该层神经元数目和特征向量维数相等。

第二层为模式层,该层神经元的个数和输入的训练样本的个数相等。该层每一个神经元都以训练样本为中心,计算输入特征向量与中心的距离送入高斯函数,使用激活函数为

(8)

式中:x为输入向量;xi为训练样本中心;σ为平滑参数,是该网络的唯一参数。模式层的输出为

(9)

式中:xij为第i类的第j个训练中心;d为样本输入空间的维数。

第三层为求和层,该层神经元的数目与类别数目相等。模式层中的神经元只与求和层中对应类别的神经元有连接,与其他神经元并无连接。按公式(10)求输入向量x被分类为属于ωi类:

(10)

式中Ni为属于类别ωi的训练样本个数。

第四层为输出层,根据贝叶斯决策规则输出分类决策,如公式(11)。

(11)

式中m为总类别数。

2 实验结果与分析

本文所有实验运行在64位操作系统的PC机上:CPU为Intel Core i3 3.9 GHz,内存12 GiB,软件环境为Matlab R2016a。

2.1 点阵喷码字符定位结果

将文献[17]采用基于投影的钢板图像定位方法来定位钢板字符,文献[18]采用基于数学形态学与连通域的定位方法定位易拉罐底喷码字符,与本文提出的基于FAST角点检测的点阵喷码字符定位方法进行对比,部分实验结果如图13所示。

图13 点阵喷码字符定位实验结果对比

图13(a)是从本文实验图像中随机选取的字体、背景不同的4幅点阵喷码字符图像。通过观察可以发现,图13(b)采用文献[17]的方法,多数情况下未定位到点阵喷码字符。图13(c)是文献[18]的定位结果,在背景稍微复杂的情况下,定位出现错误。以上2种方法均给下一步点阵喷码字符的准确识别带来困难。图13(d)是本文方法的定位结果,能准确定位到点阵喷码字符。可见,文献[17]和文献[18]不适用于背景复杂的点阵喷码字符识别应用场合。随机选取100幅点阵喷码字符图像,进行点阵字符定位实验,结果如表1所示:可见本文定位准确率及速度均高于其他2种方法。

表1 定位实验结果对比

2.2 点阵喷码字符识别结果

2.2.1 建立模板字符库

将原始采集到的100幅点阵喷码字符图像,经过预处理、定位、字符分割等操作后得到42 × 24像素的单字符图像,每幅图像大约可得到22个点阵喷码字符,共计约2 200个点阵喷码字符。但图像中某些点阵喷码字符出现次数多,如“0”“1”等,某些字符出现次数少,如“4”“7”“6”等,造成分割后的不同类别的点阵喷码字符数量相差较大,因此对出现次数较少的喷码字符采用轻微旋转方法丰富字符库,使每类图片都达到100张,并设定好相应的标签。字符库中部分点阵喷码字符图像如图14所示。

图14 字符库中部分点阵喷码字符

2.2.2 构建PNN分类模型

将联合特征输入到PNN网络的第一层输入层中,第一层神经元个数为字符特征维数。第二层是网络的模式层:该层神经元的个数为训练样本的个数;该层主要是计算输入特征向量和训练样本中心的距离;该层需要设置PNN分类模型的平滑参数σ,平滑参数σ对于PNN模型的性能有着较大影响,经过多次实验,本文设置σ为0.3。第三层的神经元个数等于需要分类的类别数目,该层只与属于自己类的模式层神经元相连接,将属于自己类的模式层神经元的输出求和。最后一层为输出层:该层的神经元个数等于类别数目;该层将求和层输出的概率密度函数最大的神经元输出为1,其他神经元输出为0。这样就可以得到一个用于点阵喷码字符识别的PNN分类模型,保存该模型用于点阵喷码字符识别。

2.2.3 点阵字符识别实验结果及分析

图15为部分点阵喷码字符实验图像,第1列到第6列喷码字符的字体大小、喷墨量及光照影响都有一定的差异。模型的输入是随着外界条件的变化而变化的,如光照影响、采集设备的位置影响等,识别模型有一定的自适应能力对识别准确率的提高是非常有益的[19]。将450幅原始图像经定位、倾斜矫正、字符分割、特征提取后,利用训练好的PNN分类模型进行测试,准确识别图像为437幅,识别准确率为97.1%。

图15 部分点阵喷码字符实验图像

将文献[20]和文献[21]2种识别方法在本文制作的数据集上进行实验,实验结果与本文方法比较见表2。可以看出,本文识别准确率优于其他2种算法,识别准确率达97.1%,平均识别2行喷码字符的时间为0.56 s。

表2 识别实验结果对比

为了模拟实际工业喷码过程中出现喷头堵塞而造成墨点缺失的情况,本文人为抹掉喷码字符部分离散点,利用PNN训练的分类模型进行喷码字符识别,实验结果如图16所示。

图16 部分少量点缺失点阵喷码字符实验图像

实验结果表明,本文提出的方法对非单一字体、背景复杂及墨点少量缺失的点阵喷码字符识别的鲁棒性更好,工业应用场合更宽。

3 结束语

实验证明,点阵喷码字符准确定位是准确识别点阵字符的关键。本文利用改进的FAST角点检测算法能快速、准确定位到点阵喷码字符。本文提出的基于PNN点阵喷码字符识别方法,对于采集到的原始图像中含有非点阵喷码字符、点阵喷码字符的字体大小不一、喷墨量及受到的外界光照变化时,该方法都能有效地识别喷码字符,且建立的模型所需参数少,能够满足一些工业点阵喷码字符识别应用场合。

猜你喜欢

喷码字符识别角点
一种喷码位置偏移的检测方法及装置设计
DOD 喷码技术在激光切割行业的应用
基于安川工业机器人的钢卷自动喷码系统开发
全新70 微米喷嘴为制造商提供更多优势
基于FAST角点检测算法上对Y型与X型角点的检测
基于边缘的角点分类和描述算法
一种基于OpenCV的车牌识别方法
仪表字符识别中的图像处理算法研究
基于MATLAB的图片中字符的分割与识别
基于圆环模板的改进Harris角点检测算法