一种粘连字符识别方法及系统与流程

文档序号:23720530发布日期:2021-01-24 07:57阅读:96来源:国知局
一种粘连字符识别方法及系统与流程

[0001]
本专利申请属于喷码字符识别技术领域,更具体地说,是涉及一种粘连字符识别方法及系统。


背景技术:

[0002]
在信息化快速发展的现代,字符识别是一种重要的录入与转化信息的方法。在车牌识别、邮政编码识别、乳制品喷码识别等领域有着非常广泛的应用。随着生活水平的提高,牛奶乳制品成为人们生活中不可缺少的一部分。因此,乳制品生产的质量监测就变得尤为重要。
[0003]
当前的喷码字符识别一部分依赖于人工检测,这种检测的弊端是成本高,检测速度较慢,达不到工业化的要求。另一部分是依赖常规的字符识别算法,把分割后的单个字符当作模板,与待检测的字符相比较来进行识别。但是在喷码的过程中,由于机器操作的不稳定性等因素,难免会出现喷码字符不完整,字符混乱和粘连等现象。运用传统的模板匹配等方法进行字符识别,对于不规则的字符或者粘连的字符,适应性较差,识别率较低,识别方法待进一步改进。


技术实现要素:

[0004]
本发明需要解决的技术问题是提供一种粘连字符识别方法及系统,对于不规则或者出现粘连的字符适应性较好,总体识别率较高。
[0005]
为了解决上述问题,本发明所采用的技术方案是:一种粘连字符识别方法,步骤为:s1、自动获取图像:形成测试图像;s2、目标区域的检测与截取;对测试图像提取感兴趣区域,形成目标区域裁剪图;s3、图像预处理:对获取的目标区域裁剪图进行去噪和二值化处理,得到二值图像;s4、图像行分割:在获得的二值图像中,对具有两行字符的二值图像进行行分割,形成单行字符图像;s5、图像列分割:基于字符宽度分割算法和垂直投影法对单行字符图像进行列分割,形成单个字符;s6、字符识别:基于卷积神经网络对单个字符进行识别;s7、输出结果:对识别结果进行验证,若正确,输出结果;若不正确,返回步骤s2继续执行。
[0006]
本发明技术方案的进一步改进在于:步骤s2中,通过labelimg对样本图像进行感兴趣区域标签的标记,用神经网络yolov3对打过标签的数据集进行训练,通过训练过的神经网络yolov3模型对测试图像(测试集)进行目标检测并对预测的区域进行裁剪,得到目标区域裁剪图。
[0007]
本发明技术方案的进一步改进在于:步骤s3中,根据得到的目标区域裁剪图,通过
非线性中值滤波算法,对图中存在的椒盐噪声进行降噪处理,并采取最大类间方差法基于全局进行自适应二值化,得到二值图像。
[0008]
本发明技术方案的进一步改进在于:步骤s4中,对于获得的具有两行字符的二值图像,根据其在垂直方向上像素的投影明显差异性,利用水平投影法将两行字符二值图像分割成两张单行字符的二值图像。
[0009]
本发明技术方案的进一步改进在于:步骤s5中,对于分割后的单行字符二值图,基于字符宽度分割算法与垂直投影分割相结合的方法,通过设定相邻字符间的像素阈值,比较相邻字符间的像素值与所设像素阈值的大小关系,来决定选择字符宽度分割还是垂直投影分割。本发明技术方案的进一步改进在于:相邻字符间的像素值>所设像素阈值,选取基于字符宽度分割算法;相邻字符间的像素值<所设像素阈值,选取基于垂直投影分割算法。
[0010]
本发明技术方案的进一步改进在于:步骤s6中,卷积神经网络为增加下采样层和dropout层的卷积神经网络lenet-5。
[0011]
本步骤中,利用步骤s5中的单个字符作为训练样本,通过对传统的卷积神经网络lenet-5网络进行改进,增加下采样层和dropout层,对基于字符宽度和垂直投影法进行分割的单个字符进行训练,增加了训练的泛化性。用测试集对训练所得到的模型进行预测,结果显示,识别率较高,对不规则的字符和粘连字符的识别适应性较好。
[0012]
一种粘连字符识别系统,用于实现上述的识别方法,包括图像读入模块、目标区域获取模块、字符分割模块和字符识别模块,以按钮点击形式操作,其中:图像读入模块用于对工业相机拍摄的原始图片进行读入;点击图像读入按钮,可以打开对应文件夹,选择要识别的生产日期图像,然后图片会显示在相应位置。
[0013]
目标区域获取模块:直接将yolov3训练好的模型嵌入目标区域获取按钮下的函数中,该按钮下的函数能够直接将生产日期区域进行裁剪并重新生成适合界面的图片尺寸;点击目标区域获取按钮,会将图片中生产日期的部分截取出来。
[0014]
字符分割模块:(用qt designer)设计好单个字符显示的位置,通过相应的函数将目标区域获取模块中裁剪得到的目标区域进行去噪和二值化处理,并利用投影法和字符宽度相结合的方法完成字符的分割;点击字符分割按钮,字符分割结果将会显示在界面相应的位置。
[0015]
字符识别模块:利用卷积神经网络将预先分割好的单个字符(也就是训练集)进行训练,得到一个训练模型,将该训练模型直接用于字符分割模块分割后的单个字符识别,识别原理是将模块三分割后的图片转换为相应的标签输出到界面上。
[0016]
本发明技术方案的进一步改进在于:基于pycharm平台,利用python和pyqt5进行识别系统设计,通过qt designer对操作界面(也就是字符识别界面)进行美化。
[0017]
由于采用了上述技术方案,本发明取得的有益效果是:(1)与传统的人工检测相比,提高了80%的检测速度,降低了检测成本,能够保证字符识别的准确率和稳定性。
[0018]
(2)通过改进的卷积神经网络,基于字符宽度和垂直投影法相结合,完成了对粘连字符的分割,同时对不规则的字符和不完整的字符与正常字符一起作为训练集进行训练,增加了神经网络模型的泛化性,对不规则字符以及粘连字符的识别适应性较强,识别率为
99.8%以上,识别率较高。
附图说明
[0019]
图1是通过工业相机拍摄的生产日期原始图像;图2是用yolov3模型检测的字符区域并截取后的图像;图3是经过中值滤波后的图像;图4是用水平投影法分割后的第一行字符图像;图5是用水平投影法分割后的第二行字符图像;图6是字符宽度分割算法示意图;图7是利用基于字符宽度和垂直投影法相结合的方法分割的单个字符图像;图8是对多张单行字符图片分割后分出的字符1的图像;图9是改进的卷积神经网络模型的结构图;图10是本发明利用pyqt5设计的粘连字符识别系统界面;图11是本发明的方法流程图。
具体实施方式
[0020]
下面结合实施例对本发明做进一步详细说明。
[0021]
本发明公开了一种粘连字符识别方法,参见图11,具体方法包括如下步骤:s1、自动获取图像:形成测试图像;s2、目标区域的检测与截取;对测试图像提取感兴趣区域,形成目标区域裁剪图;s3、图像预处理:对获取的目标区域裁剪图进行去噪和二值化处理,得到二值图像;s4、图像行分割:在获得的二值图像中,对具有两行字符的二值图像进行行分割,形成单行字符图像;s5、图像列分割:基于字符宽度分割算法和垂直投影法对单行字符图像进行列分割,形成单个字符;s6、字符识别:基于卷积神经网络对单个字符进行识别;s7、输出结果:对识别结果进行验证,若正确,输出结果;若不正确,返回步骤s2继续执行。
[0022]
下面举例详细说明。
[0023]
图1是工业相机拍摄的带有生产日期的图像,我们只需要带字符的那一部分区域,其余部分需要去掉,只保留字符区域。为此,本发明选取目标检测算法,通过labelimg对样本图像进行感兴趣区域标签的标记,用神经网络yolov3对打过标签的数据集进行训练,通过训练过的神经网络yolov3模型对测试图像(测试集)进行目标检测并对预测的区域进行裁剪,得到目标区域裁剪图。
[0024]
具体选取操作时,对字符区域用矩形框进行标记,打上interest的标签,进行样本的训练。训练选取1000张图片进行标签的标记并进行样本集的训练,同时用不同于样本集的120张图片来测试模型的准确度,通过实验验证,interest区域检测的准确度为99.98%,检测结果较好。
[0025]
图2是经过yolov3目标检测算法对字符区域进行定位并裁剪后的图片,图2中的外
围背景以及“生产日期”字样已经全部剔除,用于后续的二值化,字符分割识别等步骤。
[0026]
图3采用中值滤波算法对图2进行降噪。从图2中可以看出,图像中有很多噪点,这些噪点会对后面的字符分割和字符识别带来影响,有必要去除。非线性中值滤波算法对这种椒盐噪声的去除有很好的效果,其原理是将一个5*5的矩阵中的25个像素点进行排序,并将矩阵的中心点赋值为这25个像素的中值。进行中值滤波后得到图3。
[0027]
图4和图5分别是图3二值化后利用水平投影分割后得到的上下两行单行字符图片。首先选取最大类间方差法进行自适应阈值二值化,它是一种基于全局的二值化算法,能够根据图像灰度特征将图像分为前景和背景,获取最佳阈值。获得二值图后,根据其在垂直方向上像素的投影明显差异性,利用水平投影法将两行字符二值图像分割成两张单行字符的二值图像。
[0028]
从图4中,可以明显看出相邻字符2和0之间发生了粘连,而图5中没有发生粘连。设定相邻字符间的像素阈值,根据相邻字符间的像素值与所设阈值的大小关系,当相邻字符间的像素值>所设像素阈值,选取基于字符宽度分割算法;当相邻字符间的像素值<所设像素阈值,选取基于垂直投影分割算法。图4中的字符需要根据字符宽度进行分割,图5利用垂直投影进行分割。
[0029]
图6为字符宽度分割算法示意图,设出现字符像素的起始点为,字符像素的中止点为。现对要分割的每个字符宽度进行如下定义:经过行分割后得到的单行字符图片宽度为,要进行分割的单行字符图片宽度为,其中,分割后单个字符的宽度为。
[0030]
式中
-ꢀ
增余系数,像素起始点和中止点需要加的宽度
-ꢀ
根据单行字符图片估算的等宽度字符个数,本文中根据单行字符图片估算的等宽度字符个数,本文中
-ꢀ
修正系数,因此起始分割位置为,中止分割位置为,要分割的单行字符图片宽度分割后单个字符的宽度基于以上算法,从起始分割位置以宽度进行12等份分割,可得到单个字符分割的图片。
[0031]
图7为一张原始图像利用基于字符宽度和垂直投影分割后的单个字符。从图中可以看出,粘连字符很好的被分割开。实验选取了1000张图片,最后得到的分割准确率为
99.16%,分割准确率较高。从图8可以看出,分割后的字符形态不一,若用模板匹配等方法对这些字符进行识别,识别率将会大大降低。但是如果把这些字符全部当作样本进行训练,模型会把这些字符的特征全部收集起来,因此增加了字符识别的泛化性。
[0032]
图9为卷积神经网络的结构图,传统的lenet-5结构第三卷积层直接与全连接层相连,本发明采用改进的卷积神经网络对样本集进行训练,与传统的卷积神经网络lenet-5结构相比,在第三卷积层(conv2d-2)后接第三池化层,第三池化层后面再接一层dropout层,dropout层是对神经元进行随机的丢失,能够防止训练过程中的过拟合。本实验选取11000张图片作为样本图像进行训练,得到最终的模型用于字符的识别。测试集为2200张与训练集不同的图像,对测试集进行实验后,得到最终的识别率为98.65%,相较于传统的卷积神经网络95.13%和模板匹配89.79%识别率明显提高,具有较高的识别效果。
[0033]
利用步骤s5中的单个字符作为训练样本,通过对传统的卷积神经网络lenet-5网络进行改进,增加下采样层和dropout层,对基于字符宽度和垂直投影法进行分割的单个字符进行训练,增加了训练的泛化性。用测试集对训练所得到的模型进行预测,结果显示,识别率较高,对不规则的字符和粘连字符的识别适应性较好。
[0034]
本发明还提供了一种粘连字符识别系统,基于pycharm平台,利用python和pyqt5进行识别系统设计,通过qt designer对字符识别界面进行美化。图10为利用pyqt5设计的字符识别系统界面,包括图像读入模块、目标区域获取模块、字符分割模块和字符识别模块这四个模块,在图10的界面中分别为选择图片、目标区域提取、字符分割、字符识别这四个按钮。分为左右两个区域,左侧区域从上到下依次为读入图片区、目标区域提取结果区;右侧区域从上到下依次为字符分割结果区、生产日期区,四个操作按钮一字排开、位于界面最下方。
[0035]
图像读入模块主要是对工业相机拍摄的原始图片进行读入,点击选择图片按钮,可以打开对应文件夹,选择要识别的生产日期图像,然后图片会显示在相应位置。
[0036]
目标区域获取模块直接将yolov3训练的模型嵌入目标区域按钮下的函数中,该按钮下的函数能够直接将生产日期区域进行裁剪并重新生成适合界面的图片尺寸。点击目标区域提取按钮,会将图片中生产日期的部分截取出来。
[0037]
字符分割模块,用qt designer设计好单个字符显示的位置,通过相应的函数将目标区域获取模块中裁剪得到的目标区域进行去噪二值化处理,并利用投影法和字符宽度相结合的方法完成字符的分割。在操作界面上,点击字符分割按钮,字符分割结果将会显示在界面相应的位置。
[0038]
字符识别模块是利用卷积神经网络将预先分割好的单个字符(也就是训练集)进行训练,得到一个训练模型。将该训练模型直接用于字符分割模块分割后的单个字符识别,识别原理是将模块三分割后的图片转换为相应的标签输出到界面上。
[0039]
利用代表上述四个模块的按钮,以按钮点击形式操作,直接点击相应按钮即可实现对应操作,一键式设计,方便人员处理操作。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1