基于机器视觉的条形码识别方法与流程

文档序号:13250802阅读:814来源:国知局
技术领域本发明涉及条形码识别技术领域,特别是涉及一种基于机器视觉的条形码识别方法。

背景技术:
近年来,随着计算机应用的不断普及,条形码的应用得到了很大的发展,条形码可以标出商品的生产国、制造厂家、商品名称、生产日期、图书分类号、邮件起止地点、类别、日期等信息,条形码识别技术是信息数据自动识别、输入的重要方法和手段,现已应用到了商业、工业、交通运输业、邮电通讯业、物流、医疗卫生等国民经济各行各业。目前,世界上有225种以上条形码,每种条形码都有各自的编码规则,满足生产过程中物流跟踪、状态记录、仓储管理等要求,在流水线作业过程中自动识别条形码记录相关数据成为行业中亟需实现的一种技术。传统的条形码扫描器识别方法是通过光电二极管(LED)或激光扫描阅读装置,将条形码字符的条空图形变换成相应的电信号,经整形和译码算法处理,最终获得条码字符信息,送入计算机进行处理。该方法对于生产流水线或物流传送带上的产品条形码识别,受条形码印刷技术、印制材料以及条形码本身的运动速度和角度的影响,扫描效率较低,识别率低,并且需要人工操作才能完成。因此,现有的光电转换扫描技术的条形码识别在生产线流水中由于距离的变化、运行速度快、条形码种类多等原因基本无法满足条形码的复杂性识别要求。为此采用机器视觉识别技术在没有人为干预的情况下使用计算机来处理和分析图像信息并输出结果,解决生产流水线上运动条形码的识别问题。然而,目前的机器视觉识别方法仅能识别一种或者几种条形码类型,识别条形码种类有限,不能根据需要增加条形码识别类型,可扩展性差,导致条形码识别效率低。

技术实现要素:
基于此,有必要针对现有技术识别条形码种类少,不能根据需要增加条形码识别类型,可扩展性差的问题,提供一种基于机器视觉的条形码识别方法,能根据需要增加条形码识别类型,识别种类多,从而提高条形码识别种类的可扩展性和识别效率。一种基于机器视觉的条形码识别方法,包括以下步骤:S202、获取已知编码规则的条形码图像;S204、对所述条形码图像进行图像预处理,对预处理后的条形码图像进行图像分割,提取条形码图像的黑白条区域;S206、从条形码图像黑白条区域中提取条形码的特征值,建立特征向量;S208、特征向量作为神经网络训练的输入信息,在神经网络中进行训练,分析条形码的特征,神经网络在经过学习训练后收敛于给定的收敛目标;S210、建立条形码数据库,其中条形码数据库包括样本库和解码库,将特征向量加入到样本库中,特征向量作为样本库的样本数据,将条形码对应的解码程序加入到解码库中;S212、用户通过摄像机获取待识别条形码图像;S214、对所述待识别条形码图像重复步骤S204、S206;S216、采用神经网络对所述待识别条形码的特征向量进行分析,判断所述待识别条形码是否是样本库中的已知编码规则条形码类型,若是,调用解码库中相应的解码程序进行解码,识别所述条形码,若不是,需要发送信息询问用户是否需要将所述条形码的信息添加到所述条形码数据库,更新所述条形码数据库。上述基于机器视觉的条形码识别方法,对获取的已知编码规则的条形码特征向量采用神经网络进行训练,对条形码特征进行分析,建立条形码数据库,获得训练稳定的神经网络,所述训练稳定的神经网络具有识别判断能力,并且能够在条形码识别过程中分析待识别条形码特征向量判断出所述条形码是否为样本库中的条形码类型,若是,调用解码库中相应的解码程序进行解码,识别条形码,若不是,根据用户需要可以将该条形码特征向量加入到样本库中,再采用神经网络进行训练,并将对应的解码程序加入到解码库中,可在下次识别过程中识别出该类条形码,所述方法可以根据需要自由添加样本库的样本数据类型和数量,以及对应的解码程序,将条形码编码类型识别和解码分离,使得条形码数据库维护更方便,增加了条形码识别类型,识别种类更多,从而提高了条形码识别种类的可扩展性和识别效率。附图说明图1为基于机器视觉的条形码方法所涉及的一种实施环境的示意图;图2为一个实施例中基于机器视觉的条形码方法的流程图;图3为一个实施例中图2中步骤S204的具体实现流程。具体实施方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。图1为基于机器视觉的条形码识别方法所涉及的一种实施环境的示意图。该实施环境包括摄像机110、光源120、图像采集卡130、计算机140、显示器150、被检测条形码160。其中,计算机140分别与图像采集卡130、显示器150相连,摄像机110和图像采集卡130相连。计算机140控制摄像机110移动选取工作区域;摄像机110通过镜头拍摄在光源120照射下被检测条形码160的图像;图像采集卡130对摄像机110拍摄的图像进行采集,并传输给计算机140进行分析处理识别条形码,并由显示器150显示识别出的条形码信息。在工业领域生产使用中,摄像机抓拍比较频繁,对快门的使用寿命要求比较高,摄像机110要根据拍摄距离和频率选择合适的工业相机。考虑到工业现场的使用条件和使用时间要求,可选择具有发热少、发光效率高、照明亮度强、均匀性好、寿命长等特点的LED光源作为光源120。图2为一个实施例中基于机器视觉的条形码识别方法的流程图。结合图1、图2所示,该基于机器视觉的条形码识别方法,包括:S202、获取已知编码规则的条形码图像。具体的,可以通过计算机140控制摄像机110选择工作区域,与图像采集卡130配合采集大量的已知编码规则条形码图像;或者计算机140直接采用现有的已知编码规则条形码图像。获取大量的已知编码规则条形码图像是为后面的神经网络训练提供足够的样本数据。S204、对所述条形码图像进行图像预处理,对预处理后的条形码图像进行图像分割,提取条形码图像的黑白条区域。具体的,由于受流水线运行速度,以及条形码印刷技术、印制材料、拍摄距离和拍摄角度、硬件设备、图像传输等因素的影响,摄像机110采集的条形码图像可能发生变形、倾斜,同时携带噪声信息等情况,因此,要对可能倾斜变形携带噪声的条形码图像进行图像预处理,校正图像,去除噪声,提高条形码图像的质量,为后期的图像分割和特征提取提供良好的数据源信息。图像预处理后进行图像分割,将条形码黑白条区域从图像背景中提取出来。S206、从条形码图像黑白条区域中提取条形码的特征值,建立特征向量。具体的,由于条形码的编码规则多样性,最终反馈到图像上是条形码的图像特征的变化,图像特征的变化是区分条形码编码规则的依据。条形码目标区域包含了粗细黑白相间的线条,这些线条互相之间存在相对位置关系、长宽、分布排序等特性,由于条形码成像距离远近和摄像机分辨率的影响,使得每一个黑条和白条在图像上占有的像素值变化较大,但条形码是依靠黑条和白条之间的关系进行编码,所以需要描述出黑条和白条之间的关系,条形码特征值提取正是计算黑条和白条之间关系,并将这些关系建立成一个多维数组,即特征向量。这样做可以很好的避免摄像机和拍摄距离带来成像上的波动,提取有价值的特征值,同时降低其他因素的影响。S208、特征向量作为神经网络训练的输入信息,在神经网络中进行训练,分析条形码的特征,神经网络在经过学习训练后收敛于给定的收敛目标。具体的,人工神经网络(ArtificialNeuralNetworks,简写为ANNs)也简称为神经网络(NNs)或称作连接模型(ConnectionModel),它是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。这种神经网络依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的。在实际应用过程中,由已知编码规则条形码特征值建立的特征向量作为神经网络的输入信息,给神经网络的各连接权值赋予(0,1)区间内的随机值,神经网络将输入特征向量加权求和、与门限比较、再进行非线性运算,得到神经网络的输出,当实际输出与期望输出不符时,不断调整神经网络的各连接权值,这一过程也是神经网络学习训练的过程,此过程一直进行到神经网络输出的误差减少到可以接受的程度,或者预先设定的学习训练次数为止,给定一个合适的收敛目标为神经网络输出的可以接受的误差。大量的特征向量在神经网络中进行训练,达到收敛目标,获得训练稳定的神经网络,该神经网络具备了识别能力,识别能力大大提升,当再次遇到该类型条形码的特征向量输入时,它能够做出准确的判断,输出正确结果。S210、建立条形码数据库,其中条形码数据库包括样本库和解码库,将特征向量加入到样本库中,特征向量作为样本库的样本数据,将条形码对应的解码程序加入到解码库中。样本库中可以有多种编码规则的条形码特征向量,每种条形码有大量的特征向量作为样本库的样本数据,并且每种条形码都有一个对应的解码程序,解码库可以由多种编码规则条形码对应的解码程序构成。样本库中样本数据可以在线添加也可以离线添加,因此样本库的维护既可在线也可以离线操作。S212、用户通过摄像机获取待识别条形码图像。用户要识别条形码为被检测物体上的条形码,通过摄像机110只需获取单幅条形码图像。S214、对所述待识别条形码图像重复步骤S204、S206。S216、采用神经网络对所述待识别条形码的特征向量进行分析,判断所述待识别条形码是否是样本库中的已知编码规则条形码类型,若是,调用解码库中相应的解码程序进行解码,识别所述条形码,若不是,需要发送信息询问用户是否需要将所述条形码的信息添加到所述条形码数据库,更新所述条形码数据库。具体的,将所述待识别条形码的特征向量输入到所述训练稳定的神经网络中进行分析,所述训练稳定的神经网络具有识别判断能力,能够识别条形码的类型;判断所述待识别条形码是否是样本库中的已知编码规则条形码类型,若是,调用解码库中相应的解码程序进行解码,识别所述条形码,若不是,需要发送信息询问用户是否需要将所述条形码的特征向量和编码规则分别添加到所述条形码数据库的样本库和解码库中,更新所述条形码数据库,再将所述条形码的特征向量输入神经网络进行训练,可在下次识别过程中识别出该类条形码。所述条形码的信息为所述条形码的特征向量和编码规则。上述基于机器视觉的条形码识别方法,对获取的已知编码规则的条形码特征向量采用神经网络进行训练,对条形码特征进行分析,建立条形码数据库,获得训练稳定的神经网络,所述训练稳定的神经网络具有识别判断能力,并且能够在条形码识别过程中分析待识别条形码特征向量判断出所述条形码是否为样本库中的条形码类型,若是,调用解码库中相应的解码程序进行解码,识别所述条形码,若不是,根据用户需要可以将该条形码特征向量加入到样本库中,再采用神经网络进行训练,并将对应的解码程序加入到解码库中,可在下次识别过程中识别出该类条形码,所述方法可以根据需要自由添加样本库的样本数据类型和数量,以及对应的解码程序,将条形码编码类型识别和解码分离,使得条形码数据库维护更方便,增加了条形码识别类型,识别种类更多,从而提高了条形码识别种类的可扩展性和识别效率。在其中一个实施例中,如图2所示,所述特征向量作为神经网络训练的输入信息,在神经网络中进行训练,分析条形码的特征的步骤之后,神经网络在经过学习训练后收敛于给定的收敛目标的步骤之前还包括步骤:判断所述神经网络在经过学习训练以后是否收敛于给定的收敛目标,是则训练结束,否则需要继续增加所述条形码的特征向量数量进行所述神经网络训练分析,直到达到所述收敛目标训练结束。具体的,所述特征向量作为所述神经网络训练的输入信息,并在所述神经网络中进行训练分析,所述神经网络在经过学习训练以后将会收敛逼近给定的收敛目标,达到所述收敛目标以后训练结束;如果不收敛,需要继续增加所述条形码的特征向量数量进行所述神经网络训练分析,直到达到所述收敛目标训练结束。由已知编码规则条形码特征值建立的特征向量作为神经网络的输入信息,给神经网络的各连接权值赋予(0,1)区间内的随机值,神经网络将输入特征向量加权求和、与门限比较、再进行非线性运算,得到神经网络的输出,当实际输出与期望输出不符时,不断调整神经网络的各连接权值后,仍然不能达到给定的收敛目标,需要继续增加所述条形码的特征向量数量以便提供足够的样本数据在所述神经网络中进行训练分析,直到达到所述收敛目标训练结束。提供的样本数据越多神经网络训练越稳定,输出的结果越准确。在其中一个实施例中,如图2所示,所示样本库中的样本数据是可分类的,输入神经网络训练的大量特征向量是可分类的,为同一编码规则条形码的特征向量,所述条形码数据库可以有一种以上编码规则的条形码样本数据以及对应的解码程序,所述神经网络可以选择BP神经网络(BP,BackPropagation,一种按误差逆传播算法训练的多层前馈网络)、RBF神经网络(RBF,RadicalBasisFunction,一种三层前向网络)。在神经网络训练过程中,获得训练稳定的神经网络,前提是输入的样本数据是可分类的,这样只需要选择满足需求的神经网络类型,进行大量的样本数据训练,神经网络就具备了识别能力,神经网络在充分训练以后,会达到收敛,识别率会大大提升。在其中一个实施例中,如图2所示,所述采用神经网络对所述待识别条形码的特征向量进行分析,判断所述待识别条形码是否是样本库中的已知编码规则条形码类型,若是,调用解码库中相应的解码程序进行解码,识别所述条形码,若不是,需要发送信息询问用户是否需要将所述条形码的信息添加到所述条形码数据库,更新所述条形码数据库的具体步骤包括:所述待识别条形码的特征向量作为训练稳定的神经网络的输入信息进行分析,判断所述待识别条形码是否是所述样本库中的已知编码规则条形码类型;如果是,调用所述解码库中对应的解码程序进行解码,识别所述条形码;如果不是,发送信息询问用户是否需要重复步骤S202至S210,若用户需要,重复步骤S202至S210,可在下次检测所述条形码的过程中识别所述条形码,若不需要则结束。具体的,将所述待识别条形码的特征向量输入到所述训练稳定的神经网络中进行分析,所述训练稳定的神经网络具有识别判断能力,判断所述待识别条形码是否是样本库中的已知编码规则条形码类型,如果是,直接从解码库中调用所述条形码对应的解码程序进行解码,识别出所述条形码,如果不是样本库中的已知编码规则条形码类型,发送信息询问用户是否需要重复步骤S202至S210,如果用户需要则首先需要获知所述待识别条形码的编码规则,将新的条形码的特征向量添加到样本库中,并在神经网络中进行训练,根据其编码规则添加对应的解码程序到解码库中,以便在下次检测的过程中支持对该类条形码编码规则的识别,如果用户不需要则结束。在本实施例中,用户识别条形码,可以根据需要自由添加样本库的样本数据类型和数量,以及对应的解码程序,增加条形码识别类型。在其中一个实施例中,结合图2、图3所示,所述对所述条形码图像进行图像预处理,对预处理后的条形码图像进行图像分割,提取条形码图像的黑白条区域的具体步骤包括:S302、采用逆时针旋转齐次矩阵对所述条形码图像进行几何校正,得到几何旋转校正后的图像。S304、采用图像滤波算法对所述几何校正后的图像进行去噪处理,图像滤波算法可以是中值滤波、均值滤波。S306、对所述去噪后的进行图像二值化,再进行图像边缘化,将所述条形码的黑白条区域从背景信息中分割出来,提取所述黑白条区域。具体的,采用Hough变换(HoughTransform,霍夫变换),可以确定逆时针旋转齐次矩阵的图像变换关键值θ,通过该逆时针旋转齐次矩阵校正倾斜变形的图像,再采用中值滤波或者均值滤波算法去除图像噪声,提高条形码图像的质量,图像二值化后采用sobel算子(Sobeloperator,离散性差分算子)或者canny算子(Canny,多级边缘检测算子)对图像进行边缘提取,得到条形码边缘信息,提取后边缘信息进行合并查找到包含条形码区域的最小矩形,这样条形码的黑白条区域从背景信息中分割出来,提取出黑白条区域。在其中一个实施例中,如图2所示,所述从条形码图像黑白条区域中提取条形码的特征值,建立特征向量的具体步骤包括:确定所述条形码的黑白条的位置、相对位置关系、分布排序,计算黑白条的长宽以及黑白条之间的距离,将X1,X2,X3…Xn(n为条形码中黑条或白条的数量)作为特征值,按照顺序统计建立特征向量。具体的,首先在提取出来的黑白条区域图像中确定各黑白条的位置、相对位置关系、分布排序,计算各黑白条的长宽以及黑白条之间的距离,采用X1,X2,X3…Xn(n为条形码中黑条或白条的数量)分别表示一个特征值,每个特征值为Bn、Sn、T(Bn表示第n条黑条的宽度、Sn表示第n条白条的宽度、Tn表示n条黑条和n条白条的宽度之和)之间的相对关系值组成,将这些特征值按照对应的黑条或者白条分布顺序统计建立特征向量,作为神经网络的输入信息。以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1