一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于Tesseract-OCR引擎的工件产品序列号识别方法、装置及系统

2022-04-27 10:28:59 来源:中国专利 TAG:

基于tesseract-ocr引擎的工件产品序列号识别方法、装置及系统
技术领域
1.本发明属于图像处理、计算机视觉与模式识别领域,具体涉及一种基于tesseract-ocr引擎的工件产品序列号识别方法、装置及系统。


背景技术:

2.中国制造业的快速发展,智慧工厂的概念被提出和逐步实现,工厂的智慧化和信息化的需求也逐渐提升。工件序列号作为验证工件产品合法身份的保障,可以依此确定具体工件的参数和性能指标,进行相应的检测、识别和存储是一项重要工作,较人工采集、记录,自动识别的方法,工件序列号的智能化识别系统,有利于提高准确度,和生产效率。目前,除人工记录的方法外,一些工厂采用二维码的方式记录工件的序列号,虽然部分地提升了效率,但是降低了工件序列号的直观性。
3.场景文本识别是指在复杂的自然场景下,对图像所展示的文字进行检测和识别的过程,目前场景文本识别的方法主要有传统文本检测与识别方法和基于深度学习的文本检测识别方法。传统文本检测与识别方法基于人工设计的特征和规则,模型体量小,但是泛化能力较差,无法应对复杂的工厂环境,而基于深度学习的场景文本检测与识别方法相较于传统文本识别方法,其性能和效率都大大提升。
4.例如在文本检测方面,传统方法通过滑动窗口或者区域连通的方法,对图像进行形态学操作、条件随机场等一些基于图的方法进行抑制和融合,从而获得文字所在区域,而深度学习方法则可以通过例如目标检测或者实例分割技术,检测出实例文本,例如通过faster r-cnn、mask r-cnn或者dbnet技术对图片中的文本进行定位与检测。而在文本识别方面,传统方法通常是以单字符作为输入对切割出文字进行识别,一般采用提取人工设计特征(如hog特征等)提取特征,再通过机器学习分类器(如svm等)进行识别。而深度学习的方法则是可以利用深度网络,例如crnn网络对输入的文字区域整体进行识别。
5.随着场景文本检测定位和光学字符识别准确率的提升,如何提高文本检测与识别模型的泛化能力,将其应用于复杂的、有较多干扰的实际工厂是一个具有现实意义的问题。例如申请号为cn201810846616.9的中国专利申请公开了一种序列号识别方法、系统、移动终端及存储介质,通过获取足够照明条件下的待检测图片,对图片进行预处理如滤波二值化,最后进行字符分割识别,但这种方法依赖于图片的光照环境,并且对于前期图片预处理的要求过高,难以实际的生产需要。因此,构建一套智能化的工件序列号识别系统是十分有必要的,是实现智慧工厂以及智能制造的关键一环,是制造业向智慧化、信息化迈进的重要组成部分


技术实现要素:

6.技术问题:针对目前工厂内工件产品序列号的检测、识别与储存需求的问题,提出了一种基于tesseract-ocr引擎的工件产品序列号识别方法与系统,从而能够有效地对工
件序列号进行识别与归类。
7.技术方案:本发明第一方面,提供一种基于tesseract-ocr引擎的工件产品序列号识别方法,包括:
8.采集场景内各类工件序列号图像,构建工件序列号数据集;
9.利用数据集中的工件序列号图像训练文本检测网络;
10.将待检测的工件序列号图像,输入到训练好的文本检测网络中进行文本检测,定位工件序列号图像中的文本部分;
11.提取数据集中工件序列号图像中的文本部分,通过jtessboxeditor训练得出识别工件序列号图像中文本部分的tesseract-ocr模型;
12.采用训练好的tesseract-ocr模型,对待检测工件序列号图像中的文本部分进行识别,并筛选出序列号。
13.进一步的,所述文本检测网络为ctpn网络,训练所述ctpn网络包括:
14.使用vgg-16网络进行特征提取,在vgg-16网络的最后一个卷积层采用3
×
3的卷积核对特征图进行卷积;
15.将卷积后的特征输入双向长短时记忆模型进行学习;
16.通过全连接层输出预测参数到三个分类或者回归层中。
17.进一步的,在将卷积后的特征输入双向长短时记忆模型进行学习时,使用如下公式作为单元状态更新值的激活函数:
[0018][0019]
并使用自适应算法优化学习率,如下:
[0020][0021]
其中,l0是初始的学习率,需要设置较大,i表示第i次迭代的过程,l表示模型训练的总体迭代次数。
[0022]
进一步的,所述将待检测的工件序列号图像,输入到训练好的文本检测网络中进行文本检测,定位工件序列号图像中文本部分包括:
[0023]
利用高斯模糊变换和二值化去噪方法获取待检测的工件序列号图像的灰度图像;
[0024]
通过文本检测网络选取滑动窗口,同时给出判断该窗口内是否为文字的概率;
[0025]
当概率大于设定阈值则判断为是文字,通过矩形框画出文字部分,并显示概率;
[0026]
通过矩形框的特性利用opencv中的边缘轮廓与面积筛选模块去除过大和过小的文字区域,保留获得的文字区域。
[0027]
进一步的,所述提取数据集中工件序列号图像中的文本部分,通过jtessboxeditor进行训练得出识别工件图像中文本部分的tesseract-ocr模型包括:
[0028]
制作数据集中工件序列号图像的文本部分的训练样本,利用jtessboxeditor中的merge tiff选择文本部分的样本图片,并生成box文件以及字符配置文件,通过字符矫正工具对样本图片中的字符进行相应的位置以及识别矫正并且保存,训练生成语言文件。
[0029]
进一步的,所述采用训练好的tesseract-ocr模型,待检测工件序列号图像中的文
本部分进行识别,并筛选出序列号包括:
[0030]
在待检测图片中选取文字区域,将文字区域的部分先进行图片预处理;
[0031]
输入训练好的tesseract-ocr模型中进行识别,获取文字识别结果;
[0032]
根据序列号的不同特性,筛选出符合条件的区域,若没有符合条件的区域,则表明图像中不包含序列号部分。
[0033]
本发明第三方面,提供一种基于tesseract-ocr引擎的工件产品序列号识别装置,包括:
[0034]
数据集单元,其配置为采集场景内各类工件序列号图像,构建工件序列号数据集;
[0035]
第一训练单元,其配置为利用数据集中的工件序列号图像训练文本检测网络;
[0036]
文本定位单元,其配置为将待检测的工件序列号图像,输入到训练好的文本检测网络中进行文本检测,定位工件序列号图像中的文本部分;
[0037]
第二训练单元,其配置为提取数据集中工件序列号图像中的文本部分,通过jtessboxeditor训练得出识别工件序列号图像中文本部分的tesseract-ocr模型;
[0038]
识别单元,其配置为采用训练好的tesseract-ocr模型,对待检测工件序列号图像中的文本部分进行识别,并筛选出序列号。
[0039]
进一步地,所述文本检测网络为ctpn网络,训练所述ctpn网络包括:
[0040]
使用vgg-16网络进行特征提取,在vgg-16网络的最后一个卷积层采用3
×
3的卷积核对特征图进行卷积;
[0041]
将提取后的特征输入双向长短时记忆模型进行学习;
[0042]
通过全连接层输出预测参数到三个分类或者回归层中。
[0043]
进一步地,在将提取后的特征输入双向长短时记忆模型进行学习时,使用如下公式作为单元状态更新值的激活函数:
[0044][0045]
并使用自适应算法优化学习率,如下:
[0046][0047]
其中,l0是初始的学习率,需要设置较大,i表示第i次迭代的过程,l表示模型训练的总体迭代次数。
[0048]
本发明的一种基于tesseract-ocr引擎的工件产品序列号识别系统,其特征在于,包括客户端和服务器端;
[0049]
所述客户端包括图像采集模块、第一信息传输模块和显示模块;
[0050]
所述图像采集模块用于采集含有工件序列号的工件图像;
[0051]
所述第一信息传输模块,用于向服务器端发送采集的图像信息,并接收服务器端返回的工件序列号上传、识别与存储的状态;
[0052]
所述显示模块用于显示图像采集模块工作状态与信息,显示信息传输和服务端的通讯状况,监测通讯有无异常、网络连接是否稳定,显示返回客户端的工件序列号上传、识别与存储的状态;
[0053]
所述服务器端包括第二信息传输模块、信息处理模块、信息存储模块和数据库;
[0054]
所述信息传输模块,用于接收客户端传输的图像信息,并向客户端发送工件序列号是否上传以及识别存储的状态;
[0055]
信息处理模块,用于根据所述基于tesseract-ocr引擎的工件产品序列号识别方法对输入的工件序列号图像进行文本检测与识别,输出识别的序列号信息;
[0056]
信息存储模块,用于保存采集到的图像以及识别出的序列号文本信息。
[0057]
有益效果:本发明与现有技术相比,具有以下优点:
[0058]
本发明的识别技术方法与现有的识别方法相比,使用ctpn网络的检测方法与使用tesseract-ocr的识别方法更高效便捷易操作,由于对于输入图像的大小,尺寸无特定要求,所以只需拍照上传即可,摆脱了工厂复杂条件的干扰,同时,利用ctpn网络找出图片中待识别文本区域轮廓,可以很好地定位到文本区域,与一般用tesseract-ocr的方法相比提高了检测的效率和时间,同时保证了工件序列号识别的稳定性与准确性。而且,在cptn网络中对双向长短时记忆网络进行改进,使用一种新的生成记忆函数,加快收敛速度,并且利用了自适应算法优化学习率,降低训练成本,节省运算的资源和时间,在整体网络结构基本不变的情况下,提高了模型的运行速度和准确率。另外,根据现有的图像建立训练集,训练之后的ctpn模型泛化能力较强,具有较高的精度和速度,从而对工件序列号可以进行有效地定位与检测。
[0059]
如遇一批字符形态特殊的工件序列号,利用本发明本发明的方法所设计的识别软件提供训练接口供给使用者进行特殊字符的识别,利用软件中的jtessboxeditor可对序列号中形态的特殊字符进行训练,提高识别的准确度,具有较好的兼容和鲁棒性。同时封装训练所得的权重参数以及字库,在使用该项技术时可直接通过执行可执行文件,对文件夹中相应的图片自动依次的操作,并将整理好的序列号文件以文本文件的格式存放在指定文件夹下,极大地提高了工件序列号识别的可操作性和方便性。因此,本技术的技术方案不仅能够有效地满足工件序列号的检测与识别功能,还具有很强的可操作性。
[0060]
进一步地,本发明的实施例中,设计的一套客户端与服务端相结合的智能工件序列号识别系统,通过客户端采集含有序列号的工件图片,在服务端完成对工件序列号的文本检测定位与识别,并在数据库中进行储存。此系统对输入图像尺寸、角度无特殊要求,所以可将客户端搭载在计算机或者手机上,操作简单实用,进一步提升了生产的便利化,节约了工人手动上传工件序列号的时间,提高了识别系统的便携性,是实现智能制造概念的重要一环。
[0061]
本发明的服务端信息处理模块采用gpu进行深度学习网络运算,满足了深度网络对设备性能的要求。以训练好的模型去定位并识别待检测工件图片的序列号文本区域,速度快捷,传输方便,也满足了对于工件序列号实时性识别的要求。
附图说明
[0062]
图1为本发明实施例中基于tesseract-ocr引擎的工件产品序列号识别方法的流程图;
[0063]
图2为本发明实施例中ctpn网络的结构图;
[0064]
图3~图4为本发明的实施例中ctpn的特征提取网络vgg结构图;
[0065]
图5为本发明的实施例中ctpn的特征增强网络blstm结构图;
[0066]
图6~图7为本发明的实施例中目标检测结果展示图;
[0067]
图8为本发明的实施例中tesseract-ocr引擎识别训练的输入图像;
[0068]
图9为本发明的实施例中tesseract-ocr引擎的工作原理图;
[0069]
图10为本发明的实施例中基于tesseract-ocr引擎的工件产品序列号识别系统的结构图。
具体实施方式
[0070]
下面结合实施例和说明书附图对本发明作进一步的说明。
[0071]
本发明的第一方面,提供一种基于tesseract-ocr引擎的工件产品序列号识别方法。如图1所示,本发明的示例中,该方法包括:
[0072]
步骤s100:采集场景内各类工件序列号图像,构建工件序列号数据集。
[0073]
例如,当应用场景为某工厂,可通过实地拍摄现场的大量嵌入式工件图片作为样本,通过opencv对嵌入式工件图片进行相应的预处理,通过缩放功能将尺寸转化成224
×
224大小后,使用labellmg来标注每张图片中的包含文本的区域位置,采用顺时针方向记录坐标,依次是左上角坐标点,右上角坐标点,右下角坐标点,左下角坐标点(即x1,y1,x2,y2,x3,y3,x4,y4),并且设定标签为

text’,同时生成xml格式文件以便用于文本检测网络的训练。
[0074]
步骤s200:利用数据集中的工件序列号图像训练文本检测网络。在本发明的实施例中,文本检测网络采用的是ctpn网络。
[0075]
ctpn网络采用的是采用垂直anchor回归机制,检测小尺度的文本候选框,由于文本的长度不固定,因此使用了vertical anchor的方法,预测文本竖直方向上的位置。之后,采用rnn循环网络将检测到的小尺度文本进行连接得到文本行。另外ctpn网络采用了cnn rnn的端到端的训练方式,支持多尺度和多语言,减少了其他因素对于训练的影响。ctpn的网络构成如图2所示。ctpn网络首先使用vgg16作为基础网络进行特征提取,结构如图3~4所示,得到vgg网络最后一层conv5_3的特征作为特征图,大小是w
×h×
c。
[0076]
在上述特征图上使用3*3的滑动窗口进行滑动,每个窗口都能得到一个长度为3
×3×
c的特征向量,与此同时,滑动窗口的中心都会得到k个相对于anchor的偏移量的预测值。
[0077]
为了利用文本序列的上下文信息,使得检测的文本行更加精确,所以再将上一步得到的特征输入到双向的长短时记忆网络(blstm)中,并且结合自适应算法改进了blstm的学习率。blstm的结构如图5所示,每个lstm包含128个隐藏层,得到长度为w
×
256的输出,然后接一个长度为512的全连接层,准备进行输出。
[0078]
输出层部分主要有三个输出,首先是数量为2k个vertical coordinate,因为一个anchor锚点用的是中心位置的高和矩形框的高度两个值表示的,所以一个用2k个输出来表示anchor的相对偏移量。
[0079]
其次是2k个score,因为预测了k个文本部分,所以有2k个分数,判断是文本或者不是文本各有一个分数。另外,还有k个side-refinement,这部分主要是用来精修文本行的两个端点的,表示的是每个文本部分的水平平移量。之后使用一个标准的非极大抑制算法来滤波除去多余的文本区域,最后使用基于图的文本行构造算法将得到的文本段合并成文本
行。
[0080]
更具体地,改进的ctpn网络使用vgg16作为基础网络,vgg16包含了16个隐藏层,其中包括13个卷积层和3个全连接层,输入为224
×
224的rgb图像。vgg16大量使用3
×
3的卷积核提高感受野,步长为1,获得较大的信息量。并且所有的池化层都为2
×
2池化,步长为2,将图片尺寸从224
×
224变为7
×
7,而与此同时,特征图的通道数也在加倍,从64层到512层。vgg网络经过5层深度卷积和池化,前两层分别有两层卷积核,后三层分别有三层卷积核,最后到三层全连接层输出特征图。
[0081]
更具体地,在ctpn网络用vgg16做特征提取之后,采用经过blstm对序列的各元素进行学习。
[0082]
blstm由前向lstm和后向lstm构成,lstm模型是一种特殊的rnn模型,引入了门(gate)的机制用于控制特征的流通和损失,lstm的核心部分在于单元状态,存在于lstm的整个链式系统中,其中:
[0083][0084]
其中,f
t
被称为遗忘门表示c
t-1
的哪些特征被用于计算c
t
。f
t
是一个向量,向量的每个元素均位于[0,1]范围内,通常使用sigmoid作为激活函数。
[0085]ft
=σ(wi·
[h
t-1
,x
t
] bf)
[0086]
其中表示单元状态更新值,由输入数据x
t
和隐节点h
t-1
经由一个神经网络得到,单元状态更新值的激活函数通常使用tanh。而对于原始的tanh函数而言,一味地增大梯度会导致函数过早的趋于梯度饱和,从而影响收敛的速度。为此,在本发明的实施例中,提出了基于tanh的改进函数,用以增大中心区域的梯度过程,使得梯度不会过快地饱和,具体表达式如下:
[0087][0088]
式中,x表示输入。
[0089]it
被称作输入门,同f
t
一样是一个介于[0,1]区间内的向量,同样由x
t
和隐节点h
t-1
经由sigmoid激活函数计算而成。
[0090]it
=σ(wi·
[h
t-1
,x
t
] bi)
[0091][0092]
其中i
t
用于控制的哪些特征用于更新c
t
,使用方式和f
t
相同。最后为了计算预测值和生成下个时间片完整的输入,需要计算隐节点的输出h
t
[0093]ot
=σ(wo·
[h
t-1
,x
t
] bo)
[0094]ht
=o
t
*tanh(c
t
)
[0095]
另外,采用自适应算法优化学习率,根据迭代次数进行优化。当迭代次数小时,学习率会降低较快,而随着模型迭代次数增加,学习率的变化也会越来越慢,因此满足收敛快,精度高的优点。具体方法如下:
[0096][0097]
其中,l0是初始的学习率,需要设置较大,i表示第i次迭代的过程,l表示模型训练
的总体迭代次数,当i从0开始则代表第一次迭代,当i很小时值接近于1,当i增大时不断减小且趋近于0。
[0098]
通过blstm对于输入的图像特征进行双向编码,能够在减少模型计算消耗、节约训练成本的基础上更准确地获得工件图像文本的序列特征。
[0099]
更具体地,ctpn网络利用anchor回归机制,提出了宽度固定为16个像素的锚点(anchor)策略,从而能有效地用宽度固定的滑动窗口来检测多尺寸的物体。将一张图片进行等间隔划分,由于vgg16模型进行了4次池化操作,输出的特征图的长宽都变为原图的1/16,所以特征图中的一个像素对应原图中长宽均为16个像素的区域,因此一张图片按宽度16进行等间隔划分,并对每个竖长条其进行编号。标签中一个文本区域称为ground truth,在训练时我们并不是直接利用这个标签,而是要将ground truth划分为一系列宽度为16的小矩形框。其中垂直锚点anchor设置如下:
[0100]
设置k个anchor,宽度固定为16,高度范围为11~273个像素。预测到的k个垂直坐标为:
[0101][0102][0103]
更具体地,对于训练而言,判断是否为文本区域的损失是将文本区域通过softmax分类器,然后利用回归进行优化。在softmax分类器中分类时,用iou(intersection over union,交并比)来判断是否为文字类别,用score function来定义文本框选的准确度,将与真值的iou大于0.7的anchor判断作为正样本,与真值iou最大的那个anchor也会被定义为正样本,同时,将真值iou小于0.5的定义为负样本。判断垂直坐标与side-refinement的损失采用的是smooth l1回归来进行垂直坐标和side-refinement的优化,相比于l1回归和l2回归,smooth l1训练后期梯度值更小,并且收敛更快。smooth l1损失函数的具体公式为:
[0104][0105]
更具体地,对于每一张训练图片总共需要抽取128正负个样本,64正64负。当出现正样本数不足的情况,则使用负样本进行补齐。之后,将训练图片短边放缩至600像素,并且保持原图的缩放比例,与此同时,双向长短时记忆网络和输出层采用均值为0,方差为1的参数进行初始化设置,并且将vgg16的前两层参数固定。
[0106]
步骤s300:将待检测的工件序列号图像,输入到训练好的文本检测网络中进行文本检测,定位工件序列号图像中的文本部分。
[0107]
经过训练后的ctpn网络会得到一系列的权重参数,对待检测嵌入式工件图片进行测试时模型会使用这些参数来判断待检测图片的文本位置以及置信度信息。将待检测图像利用高斯模糊变换和二值化去噪方法获取待检测的工件序列号图像的灰度图像;然后输入训练好的ctpn网络中,通过文本检测网络选取滑动窗口,与此同时给出判断该窗口内是否为文字的概率;对每一张图片利用滑动窗口判断该窗口内是否为文字的概率,当概率大于70%则判断为是文字,通过opencv形框画出显示为文字部分,并显示置信度概率,得到检测出文本区域的位置如图6~7所示。由于拍摄的序列号大小在一定的阈值内,所以同时通过
矩形框的大小以及长度信息,利用opencv中的边缘轮廓提取与面积筛选模块去除过大和过小的文字区域,保留获得的文字区域,作为tesseract-ocr模型的输入。
[0108]
步骤s400:提取数据集中工件序列号图像中的文本部分,通过jtessboxeditor训练得出识别工件序列号图像中文本部分的tesseract-ocr模型。
[0109]
制作数据集中工件序列号图像的文本部分的训练样本,利用jtessboxeditor中的merge tiff选择工件序列号文本部分的样本图片,并生成box文件以及字符配置文件,通过字符矫正工具对样本图片中的字符进行相应的位置以及识别矫正并且保存,之后训练生成语言文件。
[0110]
例如,在本发明的一个示例中,构建数字与英文字母字体的数据集,根据得到的现场嵌入式工件序列号图片经裁剪保留序列号部分,并作为训练图片如图8所示,利用jtessboxeditor工具对图片进行保存,保存格式为tiff,保存名称为num.font.exp0.tif。
[0111]
训练tesseract-ocr引擎模型,tesseract的训练模型如图9所示,使用图片文件与jtessboxeditor共同生成num.font.exp0.box文件,之后,将.box文件与.tif样本文件放在同一目录下。选择之前生成的num.font.exp0.tif,确定字符的位置和识别准确度,通过手动的方式完成对特定字符的修改与校正,定义字体特征与字符配置文件,创建名称为font_properties的字体特征文件。文件内容格式如下:《fontname》《italic》《bold》《fixed》《serif》《fraktur》。其中,《fontname》为字体名称,《italic》《bold》《fixed》《serif》《fraktur》的取值为0或者1,表示字体是否有这些属性。生成语言文件后,执行批处理文件,直到生成num.traineddata文件,即最终训练好的语言文件。
[0112]
步骤s500:采用训练好的tesseract-ocr模型,对待检测工件序列号图像中的文本部分进行识别,并筛选出序列号。
[0113]
将训练好的语言文件配置进tesseract-ocr引擎的字符库,同时对于待检测区域进行图片预处理如灰度化操作,同时将经过训练好的ctpn网络检测出的文字区域,经过一次筛选之后的文本区域输入训练好的tesseract-ocr模型中进行识别,获取文字识别结果。根据序列号和文本的不同特性,例如是否为数字和英文字母的组合,固定序列号位数以及确定序列号排列等方式二次筛选出嵌入式工件的序列号,若不符合筛选条件则表明图像中不包含序列号部分。最终,整合改进ctpn网络的目标检测训练所得权重参数以及tesseract-ocr引擎根据不同场景下嵌入式工件的图片生成的字库以及初始代码,通过python中自带os库对指定文件夹进行读取操作,并且实现依次读取文件夹中的图片文件,实现自动将嵌入式工件图片读入训练好的ctpn检测网络的模型并且送到tesseract-ocr引擎中进行识别的功能。同时,封装训练所得权重参数以及tesseract-ocr引擎字库,封装运行代码为可执行文件,运行可执行文件即可自动依次检测从文件夹中读取到图片的文本区域并进行识别,将识别出的序列号生成文本文件保存在本地文件夹中,实现对于大批量上传的图片文件进行实时识别并返回序列号的功能。
[0114]
在本技术的其他实例中,根据不同的序列号识别将有不同识别和检测模型。例如,本实例中采用的是对嵌入式工件图片进行序列号识别,嵌入式工件的序列号一般由sn码构成,具有一定的排列性和一致性。然而,嵌入式工件上还有许多标识其他电子器件的字母或者单词,应当在目标检测之后进行一次粗筛选,在文字识别之后进行一次细筛选,筛去含有电子元件名称部分的文字,并将正确的序列号输出为文本文件。而对于大体量的工件来说,
有些序列号通过钢印印在工件之上,其余无多余的文字部分,则可以直接通过目标检测的一次筛选获得文本区域,并送入tesseract-ocr引擎进行识别,最后生成序列号。同样,对于一些同一批工件二次加工因此有多重序列号以及其他信息的情况,本项申请也可通过改变文本区域目标检测之后用opencv筛选时的阈值以及根据文字识别的结果加以分类和归纳整理。
[0115]
在本技术的实例中,对于嵌入式工件图片的序列号检测总体分为目标检测和文字识别两个部分,整个目标检测部分利用深度网络进行完成,首先利用卷积神经网络作为特征提取的基础网络,由于文本是序列形式的,所以将提取到的特征通过双向长短时记忆网络得到三个输出项,其中判断是否为文本的网络通过阈值进行划分,当大于阈值则被划分为正样本,小于阈值则被划分为负样本,通过该种方式训练的模型能够有效地对工件序列号图片的文本区域进行快速而有效的检测,之后,利用opencv对文本区域的信息进行一次粗筛选,去除过大或者过小的文本框。之后,利用tesseract-ocr模型进行对裁剪出的目标框进行识别,并利用序列号的长度或者语言信息等特性,得到并确定该待检测图片的序列号识别结果,生成相应的文件。本发明所设计的识别软件提供字符训练接口,可以利用jtessboxeditor软件对特定字体进行训练,生成相应的字库。本技术所设计的软件中已包含印刷体字符库、手写字库等一系列常用的字符库,如想要对特殊的工件序列号字符进行识别,可通过该接口对字符进行识别训练。
[0116]
本发明的第二方面,提供一种基于tesseract-ocr引擎的工件产品序列号识别装置。在本发明的一个示例中,该装置包括:
[0117]
数据集单元,其配置为采集场景内各类工件序列号图像,构建工件序列号数据集;
[0118]
第一训练单元,其配置为利用数据集中的工件序列号图像训练文本检测网络;
[0119]
文本定位单元,其配置为将待检测的工件序列号图像,输入到训练好的文本检测网络中进行文本检测,定位工件序列号图像中的文本部分;
[0120]
第二训练单元,其配置为提取数据集中工件序列号图像中的文本部分,通过jtessboxeditor训练得出识别工件图像中文本部分的tesseract-ocr模型;
[0121]
识别单元,其配置为采用训练好的tesseract-ocr模型,对待检测工件序列号图像中的文本部分进行识别,并筛选出序列号。
[0122]
在第一训练单元中,文本检测网络为ctpn网络,训练所述ctpn网络包括:
[0123]
使用vgg-16网络进行特征提取,在vgg-16网络的最后一个卷积层采用3
×
3的卷积核对特征图进行卷积;将提取后的特征输入双向长短时记忆模型进行学习;通过全连接层输出预测参数到三个分类或者回归层中。
[0124]
在将提取后的特征输入双向长短时记忆模型进行学习时,使用如下公式作为单元状态更新值的激活函数:
[0125][0126]
并使用自适应算法优化学习率,如下:
[0127][0128]
其中,l0是初始的学习率,需要设置较大,i表示第i次迭代的过程,l表示模型训练
的总体迭代次数。
[0129]
对于各单元更具体的实现方式,与上文关于方法的说明一致。
[0130]
本发明的第三方面,提供一种基于tesseract-ocr引擎的工件产品序列号识别系统。如图10所示,该系统包括客户端和服务器端,其中,客户端指的是采集并向服务器传输待检测的含有序列号的工件图片信息,并接收服务器返回的工件图片上传、识别以及存储状态。客户端包括图像采集,信息传输和显示等功能;服务器端是指接收到客户端发送的待检测的含有序列号的工件图片信息,调用已经封装好的识别系统软件,将识别结果送入数据库,并将上传、识别与存储状态发送给客户端。因此,在本发明的示例中,客户端包括图像采集模块、第一信息传输模块和显示模块;其中,图像采集模块用于采集含有工件序列号的工件图像;第一信息传输模块,用于向服务器端发送采集的图像信息,并接收服务器端返回的工件序列号上传、识别与存储的状态;显示模块用于显示图像采集模块工作状态与信息,显示信息传输和服务端的通讯状况,监测通讯有无异常、网络连接是否稳定,显示返回客户端的工件序列号上传、识别与存储的状态。
[0131]
服务器端包括第二信息传输模块、信息处理模块、信息存储模块和数据库;其中信息传输模块,用于接收客户端传输的图像信息,并向客户端发送工件序列号是否上传以及识别存储的状态;信息处理模块,用于根据本发明所提出的任一种基于tesseract-ocr引擎的工件产品序列号识别方法对输入的工件序列号图像进行文本检测与识别,输出识别的序列号信息;信息存储模块,用于保存采集到的图像以及识别出的序列号文本信息。
[0132]
整个系统的实现通过用户经由客户端拍摄所上传的图片文件传输到后端服务器,调用检测和识别模型得到工件的序列号,并且自动存储工件的序列号至服务器中。可以完整地实现对一批工件的序列号拍照识别并储存,节约了工人手动输入序列号的时间和精力。
[0133]
上述实施例仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和等同替换,这些对本发明权利要求进行改进和等同替换后的技术方案,均落入本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献