一种基于概率神经网络的喷码字符识别方法
技术领域
本发明涉及字符智能识别技术,具体是一种基于概率神经网络的喷码字符识别方法。
背景技术
食品、药品的生产日期、生产批次及产地信息一般都是使用喷码字符打印在外包装袋上,消费者和生产者都可以通过这些喷码字符来了解产品的相关信息。目前,传统的喷码字符检测是靠人眼完成,这种方法效率低,成本高。因此,研究自动识别喷码字符的方法对于满足食品、药品的安全具有重要应用价值。
目前,喷码字符识别的方法有:基于模板匹配的方法、基于支持向量机(SVM)的方法等。基于模板匹配的识别方法算法简单,较易实现,但对噪声比较敏感,可靠性不高;支持向量机的方法适用于小样本情况,有着很好的泛化性能,但无法直接支持多分类。由于人工神经网络具有很强的非线性映射能力,在分类问题中能得到很好的结果。
概率神经网络(Probabilistic Neural Network,简称PNN)是一种基于贝叶斯决策理论和Parzen窗的概率密度函数估计的前馈型神经网络,适用于模式分类问题,该网络结构简单,训练时间短,在该网络模式层中的激活函数为径向基函数,选取输入特征空间的子集作为中心计算出局部决策函数,然后将所有的局部决策函数求和计算出全局决策函数,因此,不存在局部最优值问题。
发明内容
本发明的目的是针对现有技术的是不足,而提供一种基于概率神经网的喷码字符识别方法。这种方法采用PNN训练的模型对喷码字符进行识别,具有准确度高、训练容易、收敛速度快的优点,在工业喷码字符识别领域具有较好的应用价值。
实现本发明目的的技术方案是:
一种基于概率神经网络的喷码字符识别方法,与现有技术不同的是,包括如下步骤:
1)图像预处理:将输入RGB喷码字符图像进行图像预处理,即将采集到的RGB喷码字符图像转换为灰度图像并进行高斯滤波去噪,保证图像的整体灰度分布特征不变;
2)字符定位:首先采用FAST角点检测方法在步骤2)去噪后的灰度图像中定位喷码字符区域,保存喷码字符区域的位置坐标,然后,将步骤2)中去噪后的灰度图像采用底帽变换法,消除图像受采集环境影响而存在的非均匀光照或阴影区域,并采用自适应阈值的二值化方法即最大类间方差法Otsu得到二值化图像,最后,根据前面保存的喷码字符区域位置坐标,将图像中除喷码字符区域位置以外的位置都视为背景,即取0值,在二值图像中只保留含喷码字符的图像;在二值图像中只保留一个包含两行喷码字符的图像;
3)字符分割:将喷码字符形成两个较大的连通域,采用霍夫变换法计算喷码字符倾斜角度,采用双线性差值算法将倾斜喷码字符矫正到水平方向,然后将倾斜矫正后的喷码字符使用3×1结构元素进行膨胀,得到膨胀后的字符图像后,先采用水平投影法将二值喷码字符进行行分割,得到两行喷码字符,再采用垂直投影法将单行二值喷码字符进行列分割,得到单个喷码字符图像,并归一化为42×24大小字符图像,按类存储并建立字符库;
4)特征融合:若将得到的单个喷码字符图像采用逐像素特征提取算法,则图像所提取的信息量大,耗时,且不能表现图像与图像之间的本质差别,识别正确率低,所以,需要对图像进行特征提取,采用提取喷码字符的方向梯度直方图HOG(Histogram of OrientedGradient,简称HOG)特征和喷码字符的网格特征,将这两种特征进行融合;
5)训练:将喷码字符库中的字符分为训练集和测试集,在训练集上训练PNN,得到分类模型,在测试集上进行测试,以评估所建模型优劣并根据贝叶斯最小风险准则得到最优解。PNN需要设置的参数只有其平滑参数,在测试集上进行测试效果评估,若准确率达到预设要求,则停止网络模型的参数调整,保存PNN分类模型;
6)字符识别:为验证PNN训练的模型对于喷码字符识别的有效性和鲁棒性,采用光照不均、出现倾斜、受噪声污染情况下的图像为实验数据,进行喷码字符的识别。
这种方法采用PNN训练的模型对喷码字符进行识别,具有准确度高、训练容易、收敛速度快的优点,在工业喷码字符识别领域具有较好的应用价值。
附图说明
图1为实施例中的喷码字符识别方法流程示意图;
图2为实施例中预处理后的灰度图像;
图3为实施例中FAST角点特征提取示意图;
图4为实施例中原始检测到的FAST角点图;
图5为实施例中保留特征灰度较强的角点位置图;
图6为实施例中定位到喷码字符区域图像;
图7为实施例中保留喷码字符区域图像;
图8为实施例中行分割后的喷码字符图像;
图9为实施例中膨胀后的喷码字符图像;
图10为实施例中单个喷码字符图像;
图11为实施例中概率神经网络的基本结构图;
图12为实施例中PNN网络训练结果图;
图13为实施例中PNN网络测试结果图;
图14为实施例中部分待识别喷码字符图像。
具体实施方式
下面结合附图和实施例对本发明内容做进一步的详细说明,但不是对本发明的限定。
实施例:
参照图1,一种基于概率神经网络的喷码字符识别方法,包括如下步骤:
1)图像预处理:将输入RGB喷码字符图像进行图像预处理,即将采集到的RGB喷码字符图像转换为灰度图像并进行高斯滤波去噪,保证图像的整体灰度分布特征不变,如图2所示;
2)字符定位:如图3示,FAST-16角点检测是以某一像素P为圆心像素点,本例考虑以3为半径的圆上的16个领域像素点的灰度值大小,若这16个像素点连续n个连续像素点,它们的灰度值都比Ip+t大,或者都比Ip-t小,满足公式(1),则圆心像素点p则为角点,本例n取值为9,
其中,Ip为圆心像素点像素灰度值,t为阈值,Ip→x为这16个像素点中的某一像素点的灰度值,如图3中所示,假设P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12这12个点的灰度值都大于或者小于中心点P的灰度值,则该点P被判定为角点,此时,检测到的角点中既有喷码字符的又有非喷码字符的,如图4中所示,标有“+”符号的地方表示检测到的角点,然后,根据检测到角点的特征灰度值进行排序,保留特征灰度值为检测到的总角点数的前40%的角点的位置信息,而大多数非喷码字符的灰度值小于喷码字符的灰度值,故可删除一些非喷码字符角点,如图5中标有“+”符号的地方所示,相比图4删除了一些角点位置,最后,根据提取到的喷码字符角点灰度值是否相似、数量多、角点位置分布集中特点,第二次删除非喷码字符角点,如图6中标有“+”符号所示,根据筛选到的角点位置坐标定位出喷码字符区域,如图6中黑色方框中即为喷码字符,保存喷码字符区域的位置坐标,将图2去噪后的灰度图像采用底帽变换法,消除图像受采集环境影响存在的非均匀光照或阴影区域,采用自适应阈值的二值化方法即最大类间方差法得到二值化图像,最后,根据前面保存的喷码字符区域位置坐标,将图像中除喷码字符区域位置以外的位置都视为背景,即0值,在二值图像中只保留一个包含两行喷码字符的图像,如图7所示;
3)字符分割:首先,喷码字符在喷印过程中会出现字符随机角度倾斜,将如图7所示定位到的两行喷码字符,使用3×24结构元素将喷码字符膨胀成横向联通区域,提取连通域较大的两个区域,这是为了保证提取到的喷码字符区域不包含其他连续字符,然后,采用霍夫变换法计算喷码字符倾斜角度,采用双线性差值算法将倾斜喷码字符矫正到水平方向,采用水平投影法对字符进行行分割,得到两行喷码字符图像,如图8所示,由于喷码字符本身的非连续性及在喷印过程中有可能会出现点缺失或喷墨渗出的情况,需要将倾斜矫正后的喷码字符使用3×1结构元素膨胀,来提高字符质量,以便后续进行识别操作,如图9所示,采用垂直投影法对字符进行列分割,得到单个喷码字符图像,并归一化为42×24大小字符图像,如图10所示,将单个喷码字符图像按类存储并建立字符库;
4)特征融合:若将得到的单个喷码字符图像采用逐像素特征提取算法,则图像所提取的信息量大,耗时,且不能表现图像与图像之间的本质差别,识别正确率低,所以,需要对图像进行特征提取,本例采用提取喷码字符的方向梯度直方图HOG特征和喷码字符的网格特征,将这两种特征进行融合,HOG特征是通过计算一幅图像的局部区域的梯度方向直方图来构成特征的,通过以下几步来实现HOG特征提取:
Step1:分别使用[-1,0,1]和[-1,0,1]T滤波器,提取字符二值化图像的水平和竖直方向梯度,通过下列公式(2)、公式(3)、公式(4)和公式(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)处的梯度大小和方向为:
Step2:原二值字符图像大小为42×24像素,取6×6像素为一个单元,把梯度方向0-360度划分为9个区间,此时,计算每个单元里面36个像素的各个方向区间的梯度方向直方图统计,得到一个9维特征向量,将相邻2×2个单元组成一个像素块,则一个块内可得到36维特征向量,并采用2-范数对向量进行归一化处理;
Step3:用一个块的大小即12×12像素对原二值字符图像进行扫描,取一个单元即6×6像素为扫描步长,则原二值字符图像水平方向步数为3,垂直方向步数为6,则总共提取36*3*6=648维特征,以供分类使用;
本例中的喷码字符的网格特征是将字符分割成由40个网格组成的形式,横向上分为8份,纵向上分为5份,取每个网格中字符像素的个数即白色像素的个数,将所有值排成一列形成40维特征向量,将获得的648维HOG特征,与40维喷码字符的网格特征一起组成一个688维特征列向量,该特征向量反映了原来的二值字符图像的特征;
5)训练:将字符库中的字符分为训练集和测试集,在训练集上训练PNN,得到分类模型,在测试集上进行测试,以评估所建模型优劣并进行参数调整,PNN需要设置的参数只有其平滑参数,可见其调整参数少,在测试集上进行测试效果评估,若准确率达到预设要求,则停止网络模型的参数调整,本例喷码字符识别中设置PNN的平滑参数为0.3,保存PNN分类模型;
PNN的基本理论:贝叶斯决策理论为给定输入向量x=[x1,x2,...,xd](d维)分类到ωi,i=1,2,...,m中之一,其中m是总类别数,根据贝叶斯公式,后验概率如公式(6)所示:
其中,P(ω
i|x)是x发生情况下,类别ω
i的后验概率,P(ω
i)为属于ω
i类的先验概率,当满足
则输入向量x被分类为属于ω
i类,而大多是情况下,P(ω
i|x)是未知的,为了解决这个问题,Parzen提出了从训练样本中来估计概率密度函数的方法如公式(7)所示:
其中,xai为ωA类的第i个训练向量,m为ωA类的训练样本数目,σ为平滑因子,fA(x)为全局决策函数,它是以训练样本为中心的高斯函数的总和,
概率神经网络的结构如图11所示,它是由输入层、隐含层、求和层和输出层组成,第一层为输入层,接收来自训练样本的特征向量,每个神经元都完全连接到下一层的神经元,该层神经元数目和特征向量维数相等;
第二层为模式层,该层神经元的个数和输入的训练样本的个数相等,该层每一个神经元都以训练样本为中心,计算输入特征向量与中心的距离送入高斯函数,使用激活函数为公式(8)所示:
其中,wi是权重,xi是模型的变量,σ是平滑参数,平滑参数是PNN的唯一参数,本例中取0.3,模式层的输出由公式(9)定义:
其中,xij为第i类的第j个训练中心,d为样本输入空间的维数;
第三层为求和层,该层神经元的数目与类别数目相等,隐含层中的神经元只与求和层中对应类别的神经元有连接,与其他神经元并无连接,按公式(10)求输入向量x被分类为属于ωi类:
其中,Ni为属于类别ωi的训练样本的个数;
第四层为输出层,根据贝叶斯决策规则输出分类决策,即公式(11):
其中m为总类别数;
6)字符识别:为验证PNN训练的模型对于喷码字符识别的有效性有效性和鲁棒性,采用光照不均、出现倾斜、受噪声污染情况下的图像为实验数据,进行喷码字符识别。
本例采用Matlab软件作为模型搭建的工具,实验共收集150幅伊利纯牛奶盒顶面字符图像,每幅图像上有两行喷码字符,大约为22个字符,训练时选择80幅图像,作为训练集,如前所述通过定位、分割后得到的单个二值字符,建立字符库,但图像中的喷码字符中某些字符出现次数多,如“0”、“1”等,某些字符出现次数少,如“4”、“7”、“6”等,采取的方法是每类字符选择60个样本,不足60个样本的采用旋转方法丰富字符库,这样共13类字符,780个字符样本,提取样本喷码字符的HOG特征和样本喷码字符的网格特征后,将字符样本按照7:3的比例分配训练集和测试集,即546幅图像作为训练集,234幅图像作为测试集,模型的训练集和测试集是独立的,在训练集上训练PNN,得到分类模型,在测试集上进行测试效果评估,若准确率达到预设要求,则停止网络模型的参数调整,本例喷码字符识别中设置PNN的平滑参数为0.3,保存PNN分类模型。
图12显示PNN构成的分类器能完全区分训练样本,表明本例提出的将喷码字符的HOG特征和喷码字符的网格特征相融合的方法能够有效地表征喷码字符,不同类型的字符能够被区分开来。
图13显示PNN在测试集上能获得100%的识别准确率,训练时间短,无需调整大量参数,本例中只需设置PNN的平滑参数为0.3,本例部分实验图像如图14所示,来识别喷码字符,实验结果表明喷码字符图像在光照不均、出现倾斜、受噪声污染情况下,本例提供的方法均能有效识别。