基于特征选择和LM-BP神经网络的条形码辨识方法
技术领域
本发明涉及一种条形码辨识技术领域,是一种基于特征选择和LM-BP神经网络的条形码辨识方法。
背景技术
近年来,随着计量生产自动化系统在电能计量器具检定和仓储作业中的广泛应用,从根本上改变了传统的人工作业方式,使得人工成本大幅降低,工作效率极大提高。其中,周转箱条形码作为生产自动化系统的重要组成部分,在工业生产线的中转、出入库操作中对产品信息标识起着基础、关键的作用。然而,随着周转箱在生产线的长期使用,箱体条形码逐渐出现褪色、破损、浸渍等现象,严重的将使得激光扫描设备无法有效对条形码进行识别,进而影响到生产流水线的正常运转。现有异常条形码辨识方法提取异常条形码某一特征进行辨识,存在辨识不准确的问题。
发明内容
本发明提供了一种基于特征选择和LM-BP神经网络的异常条形码辨识方法,克服了上述现有技术之不足,其能有效解决现有条形码辨识方法特征提取单一,造成异常条形码辨识不准确的问题。
本发明的技术方案是通过以下措施来实现的:一种基于特征选择和LM-BP神经网络的条形码辨识方法,包括以下步骤:
第一步:获取现有条形码图像及每个条形码图像对应的识别标签,所获取的条形码图像包括正常条形码和异常条形码;
第二步:提取每个条形码图像的特征,特征包括自相关纹理粗糙度特征、纹理不变矩特征、曲线特征和HOG特征;
第三步:建立特征样本,并将特征样本分为训练特征样本和测试特征样本;
第四步:根据特征样本和LM-BP神经网络建立辨识模型;
第五步:导出辨识模型,进行条形码辨识。
下面是对上述发明技术方案的进一步优化或/和改进:
上述第二步中通过自相关函数和Hu矩,分别提取每个历史条形码的自相关纹理粗糙度特征和纹理不变矩特征。
上述第二步中提取每个历史条形码期限特征的具体步骤如下:
(一)通过canny边缘检测将条形码图像转化为二值化图像;
(二)通过深度优先搜索算法对图像中的连通域个数进行统计,完成曲线特征提取。
上述第二步中提取每个历史条形码HOG特征的具体步骤如下:
(一)对条形码图像进行灰度化处理;
(二)采用Gamma校正法对该条形码图像进行颜色空间标准化;
(三)计算该条形码图像每个像素的梯度;
(四)将该条形码图像划分成若干细胞单元,统计每个细胞单元的梯度直方图;
(五)将若干细胞单元组成一个块,块内归一化梯度直方图;
(六)串联该条形码图像内所有HOG特征,完成该条形码图像的HOG特征提取。
上述第四步中根据样本和LM-BP神经网络建立辨识模型的具体步骤如下:
(一)建立LM-BP神经网络模型;
(二)通过训练特征样本对LM-BP神经网络模型进行训练,得到辨识模型;
(三)设定辨识模型的识别率限值,并通过测试特征样本检测辨识模型的识别率,判断检测得到的识别率是否小于设定的识别率限值,若小于,则对该辨识模型进行优化,并继续执行第(二)步。
本发明的有益效果如下:
(1)本发明提取条形码图像的HOG特征、曲线特征、自相关纹理粗糙度特征、纹理不变矩特征,完成对条形码图像进一步的表征;每个条形码的图像特征和对应的识别标签形成一个特征样本,将提取的各类型图像特征作为输入,对LM-BP神经网络模型进行训练,建立辨识模型,进一步提高辨识模型对条形码的识别精度,有效增加异常条形码的识别率。
(2)本发明建立测试特征样本,对建立后辨识模型进行测试,估算其识别率,识别率较低时,通过优化算法对关键参数(LM-BP网络层数以及每层神经元数目)进行调整优化,进一步优化辨识模型,提高辨识模型的识别率。
附图说明
附图1为本发明实施例1的流程图。
附图2为本发明实施例1获取现有条形码图像及对应的识别标签的流程图。
附图3为本发明实施例1条形码HOG特征提取的流程图。
附图4为本发明实施例1建立辨识模型的流程图。
附图5为本发明实施例2的正常条形码示意图。
附图6为本发明实施例2的异常条形码示意图。
具体实施方式
本发明不受下述实施例的限制,可根据本发明的技术方案与实际情况来确定具体的实施方式。
下面结合实施例及附图对本发明作进一步描述:
实施例1:如附图1、2所示,该基于特征选择和LM-BP神经网络的条形码辨识方法,包括以下步骤:
第一步:获取现有条形码图像及每个条形码图像对应的识别标签,所获取的条形码图像包括正常条形码和异常条形码;
第二步:提取每个条形码图像的特征,特征包括自相关纹理粗糙度特征、纹理不变矩特征、曲线特征和HOG特征;
第三步:建立特征样本,并将特征样本分为训练特征样本和测试特征样本;
第四步:根据特征样本和LM-BP神经网络建立辨识模型;
第五步:导出辨识模型,进行条形码辨识。
上述第一步获取现有条形码图像及每个条形码图像对应的识别标签,其具体步骤如下:
(一)根据现场实际的生产环境和条形码情况获取现有条形码图像,设定获取的现有条形码图像总数为N,历史条形码图像包括正常条形码和异常条形码(正常条形码和异常条形码的所占比例根据实际情况进行设定);
(二)对每张条形码图像进行切割,保留条形码区域,并存储于图像数据库;
(三)判断每张条形码图像是否能识别,若能识别,则设定该条形码图像对应的识别标签Yi为1,若不能识别,则设定该条形码图像对应的识别标签Yi为0。其中为i=1,2,...,N。
上述第二步的特征提取过程均可基于Matlab2012b软件平台实现。
上述第三步,建立特征样本,并将特征样本分为训练特征样本和测试特征样本;本发明的每一个特征样本均包括条形码图像特征Xi=(xi1,xi2,xi3,xim),(i=1,2,…,N)和对应的识别标签Yi,其中M为训练样本总数,条形码图像特征Xi=(xi1,xi2,xi3,xim),(i=1,2,…,N)为训练输入;本发明中可采用十折交叉验证方式训练及验证模型,因此可将特征样本中的90%作为训练特征样本,10%作为测试特征样本。
下面是对上述发明技术方案的进一步优化或/和改进:
如附图1所示,第二步中通过自相关函数提取每个条形码的自相关纹理粗糙度特征。
纹理用于反映图像的灰度统计信息、空间分布信息和结构信息。而纹理粗糙性与局部结构的空间重复周期有关,周期大的纹理粗,周期小的纹理细。能通过统计分析法提取图像纹理粗糙度特征。在本发明中条形码在长期周转使用的过程中,因摩擦、浸渍等原因会造成条形码表面纹理粗糙度改变。因此可通过自相关函数提取图像纹理粗糙度特征,即对于含有重复纹理模式的图像,在纹理粗糙时,自相关函数会缓慢下降,而细纹理下降迅速。
设定图像为f(i,j),则自相关函数如下所示:
其中ε和η分别表示图像在x和y方向的偏移值;M和N分别表示图像的尺寸。
如附图1所示,第二步中通过Hu矩提取每个历史条形码的纹理不变矩特征。
图像的大小、形心等关键特征与图像的矩有关,原点矩能较好地表征图像纹理特征,但缺乏不变性。因此Hu矩作为为表征图像的特征之一。
通过Hu矩提取每个历史条形码的纹理不变矩特征的具体过程如下:
(一)以灰度函数f(x,y)表示m×n二维离散图像,则图像的p+q阶区域的中心矩定义如下所示:
(二)对中心矩进行归一化,归一化结果如下所示:
(三)根据归一化之后的中心矩计算七个不变矩,计算公式如下所示:
如附图1所示,第二步中提取每个条形码曲线特征的具体步骤如下:
(一)通过canny边缘检测将条形码图像转化为二值化图像;
这里采用canny边缘检测将条形码图像转化为二值化图像为现有公知技术,在此不进行赘述。在二值化图像转化完成后,将二值化图像中的白像素点取值为1,黑像素点取值为0。
(二)通过深度优先搜索算法对图像中的连通域个数进行统计,完成曲线特征提取。其具体过程如下:
1、初始化连通域个数count=0;
2、首先判断二值化图像第一行第一列像素点的像素值Image[1][1]是否为1,若为0,则退回,若为1,则令Image[1][1]=count,由于当前点左、上并无像素点,则分别搜索当前像素点下方和右方两个像素点;
3、判断当前像素点的像素值是否为1,若为0,则退回前一像素点,若为1,则令Image[2][1]=count/Image[1][2]=count,判断该像素点上、下、左、右四个方向是否分别存在像素点,若存在,则搜索所存在的像素点的像素值;
4、判断当前像素点的像素值是否为1,若为1,则令Image[i][j]=count(i和j根据行和列的变化进行变化),继续以该像素点作为中心点,判断当前像素点上、下、左、右四个方向是否分别存在像素点;
5、循环第4步,直至本轮搜索完;
6、本轮搜索完成后,count自增1,继续搜索本行下一列像素点,若本行搜索完成则跳到下一行第一列搜索直至遍历完整个图像;
7、将count值赋值给图像中连通域的个数,完成曲线特征提取。
上述通过对定位后的条形码进行canny边缘检测能发现规则条码黑色边缘线齐整、光滑、连续,有浸渍褶皱的条形码黑色边缘不规则、断开、混乱。通过分析,浸渍的条形码边缘不连续,一整条条形码被截成多段。因此,将条形码所在区域的连通域的个数即曲线数目count作为评判一个条形码是否污损的标准是合理且可行的。
如附图1、3所示,第二步中提取每个历史条形码HOG特征的具体步骤如下:
(一)对条形码图像进行灰度化处理;
(二)采用Gamma校正法对该条形码图像进行颜色空间标准化;
该步骤为将整个图像进行归一化,目的是调节图像的对比度,降低图像局部的阴影和光照变化所造成的影响,同时可以抑制噪音的干扰。
(三)计算该条形码图像每个像素的梯度;
该步骤主要是为了捕获轮廓信息,同时进一步弱化光照的干扰。其中梯度包括大小与方向。
(四)将该条形码图像划分成若干细胞单元,统计每个细胞单元的梯度直方图;
这一步首先将图像划分成若干细胞单元cells,其次得到每个cell的梯度直方图。
(五)将若干细胞单元组成一个块,块内归一化梯度直方图;
这里由于局部光照的变化以及前景-背景对比度的变化,使得梯度强度的变化范围非常大。这就需要对梯度强度做归一化。归一化能够进一步地对光照、阴影和边缘进行压缩。
其方法为把若干个cell组合成大的、空间上连通的块(blocks)。将一个block内所有cell的特征串联起来便得到该block的HOG特征。这些区间是互有重叠的,这就意味着:每一个单元格的特征会以不同的结果多次出现在最后的特征向量中。并将归一化之后的块描述符(向量)就称之为HOG描述符。
(六)串联该条形码图像内所有HOG特征,完成该条形码图像的HOG特征提取。
将图像内的所有block的HOG特征串联起来就得到了该图像的HOG特征。
本发明以列为单位,正常条形码黑白分明,间隔齐整,每一列的若干个block中的HOG特征应该相似,所以以列取各个block中HOG特征的方差。以行为单位,相邻两个block间有重复的cell,重复的cell在各block中的HOG特征也应相似,再以行取各个block中HOG特征的方差。
如附图1、4所示,第四步中根据样本和LM-BP神经网络建立辨识模型的具体步骤如下:
(一)建立LM-BP神经网络模型;
(二)通过训练特征样本对LM-BP神经网络模型进行训练,得到辨识模型;
(三)设定辨识模型的识别率限值,并通过测试特征样本检测辨识模型的识别率,判断检测得到的识别率是否小于设定的识别率限值,若小于,则对该辨识模型进行优化,并继续执行第(二)步。
上述第(一)步,建立LM-BP神经网络模型,LM-BP神经网络模型的建立过程为现有公知技术,在此不进行赘述。
上述第(二)步,通过训练特征样本对LM-BP神经网络模型进行训练,即将训练特征样本的条形码图像特征Xi=(xi1,xi2,xi3,xim),(i=1,2,…,N)作为输入进行LM-BP神经网络模型训练,LM-BP网络训练流程如下所述:
1、初始化网络参数:设定网络训练误差ε;常数μ0,β(0<β<1);初始化权重和阈值向量,令k=0,μ=μ0。
2、计算网络输出和误差相应的E(wk);
3、计算Jacobian矩阵J(w);
4、计算Δw;
5、若E(wk)<ε,算法结束;
6、根据wk+1=wk+Δw,计算E(wk+1),若E(wk+1)<E(wk),k=k+1,μ=μβ,转至第2步,否则转至第4步。
上述第(三)步,设测试阶段的样本输入为Xi(i=1,2,…,K),Yi(i=1,2,…,K)为真实的样本标识标签,为LM-BP网络辨识输出,K为测试样本总数。
若则表明该辨识模型对第i个样本进行了正确的辨识,反之辨识不正确。
本发明辨识模型在辨识阶段的识别率可表示为:
在测试过程中,若识别率较低,则可通过对LM-BP网络层数以及每层神经元数目进行调整。本发明可采用Lippmann提出的优化方法进行模型优化,即可将LM-BP神经网络层数指定为2,接着对每个隐藏层的神经元个数进行优化,具体步骤如下:
设Ni xm为i隐层节点x学习第m个样本的输出,Ni ym为i隐层y节点学习第m个样本的输出,K为学习样本总数,则节点x学习完所有样本的平均输出为节点y学习完所有样本的平均输出为令:
则i隐层节点x,y的相关系数为:
若|ρxy|越接近1,则表示i隐层节点x,y线性相关性越大,反之,则越小,本方法首先按照经验指定每层节点数目为25,若同层节点线性相关性系数大,则删除其中一个。
本发明的有益效果如下:
(1)本发明提取条形码图像的HOG特征、曲线特征、自相关纹理粗糙度特征、纹理不变矩特征,完成对条形码图像进一步的表征;每个条形码的图像特征和对应的识别标签形成一个特征样本,将提取的各类型图像特征作为输入,对LM-BP神经网络模型进行训练,建立辨识模型,进一步提高辨识模型对条形码的识别精度,有效增加异常条形码的识别率。
(2)本发明建立测试特征样本,对建立后辨识模型进行测试,估算其识别率,识别率较低时,通过优化算法对关键参数(LM-BP网络层数以及每层神经元数目)进行调整优化,进一步优化辨识模型,提高辨识模型的识别率。
实施例2:根据现场实际情况条形码在长期使用过程中存在磨损、缺失、浸渍等显现,为验证基于特征提取和LM-BP神经网络的辨识效果,通过模拟条形码磨损、条形码缺失、条形码浸渍等情况,剪辑条形码主要识别部分,并在此基础上建立特征库。其中,剪辑后的条形码典型图片分别如图5至图6。
为验证本发明方法的辨识效果,利用LM-BP神经网络对异常条形码进行辨识时,采用十折交叉验证方式,将现场采集的图像的特征库分为两组,在每次训练和辨识的过程中,90%的特征样本数据作为训练数据集,10%的特征样本数据作为测试数据集。
在利用LM-BP神经网络对训练特征集进行学习时,神经网络参数如表1所示。该网络模型有两个隐含层,每层的节点数均为25个,输入层有11个节点。本方法具有一定的通用性,其输入层的节点数与图像提取的特征向量密切先关,若某一特征需要用更多的结点作为网络网络的输入,则输入节点应当相应的进行扩展,而不局限于表1的参数设置。由于只对条形码图像进行二分类状态辨识,即异常或者正常。因此,输出层的结点数为1个即可。
为进一步反映辨识效果,将LM-BP的辨识结果与支持向量机(Support VectorMachine,SVM)、概率神经网络(Probabilistic Neural Network,PNN)进行比较,平均测试结果如下表2所示。
根据表2所示,基于特征提取与LM-BP神经网络的辨识准确率均比SVM和PNN高。因此,该方法可用于异常条形码的辨识中。
以上技术特征构成了本发明的最佳实施例,其具有较强的适应性和最佳实施效果,可根据实际需要增减非必要的技术特征,来满足不同情况的需求。
表1:LM-BP神经网络参数设置
表2:训练样本集数量及识别率