趋向于端到端的场景文字检测与识别方法以及系统与流程

文档序号:18942837发布日期:2019-10-23 01:17阅读:219来源:国知局
趋向于端到端的场景文字检测与识别方法以及系统与流程

本公开属于文字检测与识别技术领域,具体涉及一种趋向于端到端的场景文字检测与识别方法以及系统。



背景技术:

本部分的陈述仅仅是提供了与本公开相关的背景技术信息,不必然构成在先技术。

文字作为人类最伟大的发明,是人们进行信息传递以及信息交互的主要途径之一。图片是文字的主要载体之一,因此从图片中读取出文字具有重要的实用价值。

据发明人了解,传统的处理方法一般先由文字检测算法检测出原始输入图像上文字的位置,并且用文本框将文字圈起来;然后利用opencv等方法将文字所在的区域从图片上裁剪下来;最后利用文字识别算法识别出这些只包含文字的图片块上的文字序列。这种算法将文字的位置检测和文字的内容识别分开来进行,存在时间差、顺序差,同时,由于文字检测算法和文字识别算法都需要分别利用卷积神经网络来提取特征图谱,浪费了大量的执行时间,同时,文字检测与文字识别被视作两个互不相关的任务,使得检测与识别之间不能互相促进,既会增加系统的复杂度,也不利于提高整个系统的速度和准确率。



技术实现要素:

本公开为了解决上述问题,提出了一种趋向于端到端的场景文字检测与识别方法以及系统,本公开首先通过卷积神经网络计算共享卷积特征图谱,然后使检测部分和识别部分共享上述特征图谱,由于只计算一次卷积特征图谱,避免了一些中间的冗余过程,例如图片裁剪和特征图谱的重复计算,提升了整个场景文字检测与识别系统的速度,而且可以使得文字检测和识别之间互相促进,提高整个系统的识别准确率。

根据一些实施例,本公开采用如下技术方案:

一种趋向于端到端的场景文字检测与识别方法,包括以下步骤:

(1)采集标注有物体类别的图片,构建训练数据集及测试数据集,对数据集进行预处理,用以训练特征提取网络。

(2)采集标注有文字位置的图片,构建训练数据集及测试数据集,对数据集进行预处理,用以训练文字检测部分的网络。

(3)采集同时标注有文字位置以及文字内容的图片,构建训练数据集及测试数据集并且进行相应的图片预处理,用以训练文字识别部分的神经网络。

(4)将步骤(3)的图片输入进卷积神经网络,经过特征提取网络提取出共享卷积特征图谱,文字检测部分利用该共享卷积特征图谱,预测出文字的位置,将预测出的文字位置坐标映射到共享卷积特征图谱上,裁剪下图像中文字部分所对应的特征图谱块并将其转换为特征序列,最后将特征序列解码成人类可读的字符序列。

作为可选的实施方式,所述步骤(1)中,特征提取网络采用vgg16的卷积神经网络部分。

作为可选的实施方式,所述步骤(1)中对标注有物体类别的数据集的预处理包括将图片缩放,并将图片各通道像素值分别减去均值。

作为可选的实施方式,所述步骤(2)中对标注有文字位置的数据集的预处理包括将图片缩放至指定像素。

作为可选的实施方式,所述步骤(2)中,对标注有文字位置的图片进行缩放的同时,也要对标签文件中的文字框坐标做相应的缩放,此外还需要将标签文件中的文本框切割成一个个宽度为16像素的小文本框。

作为可选的实施方式,所述步骤(3)中,利用独立训练法训练文字识别部分的神经网络,即固定文字检测部分网络的参数,仅仅训练文字识别部分的神经网络。

作为可选的实施方式,所述步骤(3)中,利用联合训练法训练文字识别部分的神经网络,即同时训练文字检测部分和文字识别部分的神经网络。

作为可选的实施方式,所述步骤(4)中,只需要将图片及相应的文本框坐标文件,还有相应的转录文本文件作为输入,应用一个多损失函数来同时优化整个模型的参数。

作为可选的实施方式,所述步骤(4)中,对于任意一张输入图片,完整的多损失函数被定义为:

其中:pi代表网络预测出anchori是文本的概率;代表的是标签,其值为0或者为1,i代表的是anchor的索引,nreg代表的是此次迭代过程中正对象(anchor)的数目,我们只对正训练对象计算坐标回归损失,j代表的是正训练对象(anchor)集合中训练对象的索引,δj代表网络预测出来的坐标偏移量,代表的是标签坐标偏移量;代表的是从共享卷积特征图谱上裁剪下来的第k个特征图谱块,代表的是与之对应的第k个标签转录文本,nrec代表的是输入图片上标签文本框的个数。

一种趋向于端到端的场景文字检测与识别系统,包括:

样本采集模块,被配置为采集已有的标注有物体类别的图片,构建训练数据集及测试数据集,对数据集进行预处理,用以训练特征提取网络;

样本采集模块,被配置为采集已有的标注有文字位置的图片,构建训练数据集及测试数据集,对数据集进行预处理,用以训练文字检测部分的网络;

数据采集模块,被配置为采集同时标注有文字位置以及文字内容的图片,构建训练数据集及测试数据集并且进行相应的图片预处理,用以训练文字识别部分的神经网络;

处理模块,被配置为将数据采集模块的图片输入进卷积神经网络,经过特征提取网络提取出共享卷积特征图谱,文字检测部分利用该共享卷积特征图谱,预测出文字的位置,将预测出的文字位置坐标映射到共享卷积特征图谱上,裁剪下图像中文字部分所对应的特征图谱块并将其转换为特征序列,最后将特征序列解码成人类可读的字符序列。

一种计算机可读存储介质,其中存储有多条指令,所述指令适于由终端设备的处理器加载并执行所述的趋向于端到端的场景文字检测与识别方法。

一种终端设备,包括处理器和计算机可读存储介质,处理器用于实现各指令;计算机可读存储介质用于存储多条指令,所述指令适于由处理器加载并执行所述的趋向于端到端的场景文字检测与识别方法。

与现有技术相比,本公开的有益效果为:

本公开是趋向于端到端的,可以同时输出文字的坐标和文字内容,极大的改善了场景文字检测与识别系统的快速性;

本公开提出来的网络可以通过反向传播和随机梯度下降算法进行端到端的训练,网络检测和识别一张图片的时间短,满足应用要求。

本公开首先通过卷积神经网络计算共享卷积特征图谱,然后使检测部分和识别部分共享上述特征图谱,由于只计算一次卷积特征图谱,避免了一些中间的冗余过程,例如图片裁剪和特征图谱的重复计算,提升了整个场景文字检测与识别系统的速度;而且可以使得文字检测和识别之间互相促进,提高整个系统的识别准确率。

附图说明

构成本公开的一部分的说明书附图用来提供对本公开的进一步理解,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。

图1是传统算法的过程示意图;

图2是本公开的过程示意图;

图3是本公开的流程示意图;

图4是本公开的部分检测识别结果示意图。

具体实施方式:

下面结合附图与实施例对本公开作进一步说明。

应该指出,以下详细说明都是例示性的,旨在对本公开提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本公开所属技术领域的普通技术人员通常理解的相同含义。

需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本公开的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。

如图1所示,正如背景技术中所述的,由于现有的方法中,文字检测算法和文字识别算法都需要分别利用卷积神经网络来提取特征图谱,浪费了大量的执行时间。而且上述方法将文字检测与文字识别视作两个互不相关的任务,使得检测与识别之间不能互相促进,不利于提高整个系统的准确率。

如图2所示,本公开首先通过卷积神经网络计算共享卷积特征图谱,然后使检测部分和识别部分共享上述特征图谱,由于只计算一次卷积特征图谱,避免了一些中间的冗余过程,例如图片裁剪和特征图谱的重复计算,提升了整个场景文字检测与识别系统的速度;而且可以使得文字检测和识别之间互相促进,提高整个系统的识别准确率。

具体的,提出一种端到端的场景文字检测与识别方法,可以同时检测文字位置以及识别文字内容,提高文字检测与识别系统的快速性。

如图3所示,具体过程包括:

步骤s1:收集众多标注有物体类别的图片,构建训练数据集及测试数据集,用以训练特征提取网络。

为了训练上述特征提取网络,在本实施例的方法中,采用的是imagenet2012数据集,该数据集包括1000个类别以及数百万计的图片;关于特征提取网络,本实施例采用的是vgg16(只需要用到它的卷积层)。损失函数采用如下的softmax损失函数,优化器采用adam。

n指代的是n张图片,指的是第i-th样本的真实值,yi指的是第i-th样本的预测值。为了加速训练,本实施例也可以在开源权重的基础上微调vgg16网络的参数。

步骤s2:在训练特征提取网络时,需要对数据集进行预处理,以提高整个系统的健壮性以及泛化性。在本实施例中,主要指的是,缩放图片至224*224以及图片各通道像素值分别减去均值[103.94,116.78,123.68](rgb)。

步骤s3:收集众多标注有文字位置的图片,构建训练数据集及测试数据集,用以训练文字检测部分的神经网络。在本实施例方法中,利用的是icdar2015,2017,2019部分数据集以及我们团队手工标注的图片。在训练文字检测部分的神经网络的时候,本实施例需要缩放图片,缩放以后的图片满足,短边长度不低于600像素,长边长度不高于1200像素,同时短边以及长边的长度是16的倍数。在对图片进行缩放的同时,也要对标签文件中的坐标做相应比例的缩放。其次根据ctpn网络的要求,需要将标签文件中的文本框切割成一个个宽度为16像素的小文本框(fine-scaletextproposal)。

文字检测部分网络输出2部分的内容,一部分是proposal的偏移量δx,δy,δw,δh它们分别表示本实施例预测出的小文本框(fine-scaletextproposal)相对于预先设定的anchor在x-axis,y-axis,高度,宽度方向上的偏移量。其定义如下:

δw=log(w/wa);δh=log(h/ha)

δw*=log(w*/wa);δh*=log(h*/ha)

其中wa,ha,分别表示anchor的x-axis坐标,y-axis坐标,宽度还有高度;cx,cy,w,h分别表示网络预测出来的小文本框(proposal)的x-axis,y-axis坐标,宽度还有高度;w*,h*是计算出来的小文本框(proposal)的标签坐标。另外一部分是网络预测出来的小文本框(fine-scaletextproposal)是真实文本框的概率。

当本实施例使用1*1卷积核在共享卷积特征图谱上滑动时,预测出这个位置上的每一个小文本框(proposal)。

根据ctpn网络,本实施例利用文本行构造算法将预测出来的小文本框(proposal)连接成单词或者文本行。

需要将收集到的图片进行缩放,缩放以后的图片满足,短边长度不低于600像素,长边长度不高于1200像素,同时短边以及长边的长度是16的倍数。在对图片进行缩放的同时,也要对标签文件中的文字框坐标做相应的缩放。此外根据ctpn网络的要求,我们需要将标签文件中的文本框切割成一个个宽度为16像素的小文本框(fine-scaletextproposal)。

本实施例将预测出来的单词或者文本行坐标映射到共享卷积特征图谱上,在本实施例的方法中,输入图片上文字的坐标与相对应的特征图谱上的坐标存在16倍的对应关系,即原始图像上文字的坐标是相对应特征图谱上坐标的16倍;裁剪下来的特征图谱块被转换成的特征序列,在本实施例中,hc=512,wf=20,wf主要取决于当前的任务,当输出的字符较多的时候可以适当增大wf的值,当输出的字符较少的时候可以适当减少wf的值。

本实施例应用rnn和ctc将序列特征解码成人类可读的字符序列。正如,图像分类一样,文字识别也是监督学习中的一个子任务。为了训练这个网络,只需要特征序列还有相应的转录文本即可。但是我们不知道特征序列中特征片段如何与转录文本中的字符相对齐,为了解决这个问题,采用ctc算法。这种解码算法不需要知道转录文本y=[y1,y2,y3,…,ym]与特征序列x=[x1,x2,x3,…,xt]之间的对齐关系。ctc将一个新的标记"∈"引入到输出字典。这个标记"∈"不对应任何字符而且可以从输出字符中删掉。如果ctc解码出的序列经过去掉重复字符和去掉"∈"后,和标签转录文本(ground-truth)一样的话,即认为这是正确的预测。例如如果字符串"sun"被输入进本实施例的识别网络而且输出有6个时间步(timestep),本实施例认为"∈∈∈sun","∈∈ssun","∈∈suun",…,"s∈∈unn"都是正确的对齐。在训练过程中,只需要对所有的有效对齐的概率求和即可。例如:

因此对于任何一对输入(x,y),ctc概率为:

a(x,y)代表所有有效的对齐

对于任何一对输入(x,y),ctcloss为:-ln(p("y"|"x"))。

关于文字识别部分,在本实施例的方法中,共设计了2种方法训练文字识别部分的神经网络,即独立训练法和联合训练法。独立训练法指的是指固定住文字检测部分网络的参数,仅仅训练文字识别部分的神经网络;联合训练法指的是本实施例同时训练文字检测部分和文字识别部分的神经网络。

本实施例提出来的网络可以通过反向传播和随机梯度下降算法进行端到端的训练。为了训练神经网络,只需要将图片及相应的文本框标记坐标文件,还有相应的转录文本标记文件作为输入。为了训练文字检测部分,本实施例采用二分类的交叉熵损失lcls用来计算文字或者非文字的分类损失还有smoothl1损失来计算文字位置的回归损失。为了训练文字识别部分,本实施例应用ctc损失。因此可以应用一个多损失函数来同时优化整个模型的参数。对于任意一张输入图片,完整的损失可以被定义为:

在文字检测部分,本实施例的训练对象是anchor。如果一个anchor与任意的fine-scaletextproposal交并比(iou)>=0.7或者与任意一个fine-scaletextproposal的交并比(iou)最大,可认为上述anchor是正anchor。如果一个anchor与所有的fine-scaletextproposal的交并比(iou)都小于0.3,则认为其是负anchor。i代表的是anchor的索引。

在本实施例中,设置ncls为128,包括64个正anchor,还有64个负anchor。如果正anchor的数目低于64个,就用负anchor填充。

当训练二分类分类器的时候,lcls通常作为代价函数,它的数学定义为:

代表网络预测anchori是文本(textproposal)的概率;代表的是标签,其值为0或者为1。为了精准的定位文字位置,本实施例采用smoothl1损失,它的数学定义为:

j代表的是正anchor集合中anchor的索引。δj代表网络预测出来的坐标偏移量,包括代表的是标签(ground-truth)坐标偏移量。nreg代表的是此次迭代过程中正anchor的数目,本实施例只对正anchor计算坐标回归损失。代表的是从共享卷积特征图谱上裁剪下来的第k个特征图谱块,代表的是第k个标签(ground-truth)转录文本。nrec代表的是这张输入图片上有多少个标签(ground-truth)文本框。本实施例的网络检测和识别一张图片大约需要0.3s。

在其他实施例中,上述参数的具体设置值可以根据具体情况进行变换。

通过上述过程,本实施例提供的方法是趋向于端到端的,可以同时输出文字的坐标和文字内容,极大的改善了场景文字识别系统的快速性,如图4所示。

另外,还提用具体的产品应用示例:

一种计算机可读存储介质,其中存储有多条指令,所述指令适于由终端设备的处理器加载并执行所述的趋向于端到端的场景文字检测与识别方法。

一种终端设备,包括处理器和计算机可读存储介质,处理器用于实现各指令;计算机可读存储介质用于存储多条指令,所述指令适于由处理器加载并执行所述的趋向于端到端的场景文字检测与识别方法。

本领域内的技术人员应明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述仅为本公开的优选实施例而已,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。

上述虽然结合附图对本公开的具体实施方式进行了描述,但并非对本公开保护范围的限制,所属领域技术人员应该明白,在本公开的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本公开的保护范围以内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1