CN111563563B - 一种手写体识别的联合数据的增强方法 - Google Patents
一种手写体识别的联合数据的增强方法 Download PDFInfo
- Publication number
- CN111563563B CN111563563B CN202010686369.8A CN202010686369A CN111563563B CN 111563563 B CN111563563 B CN 111563563B CN 202010686369 A CN202010686369 A CN 202010686369A CN 111563563 B CN111563563 B CN 111563563B
- Authority
- CN
- China
- Prior art keywords
- character
- splicing
- characters
- rendering
- database
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/24—Character recognition characterised by the processing or recognition method
- G06V30/242—Division of the character sequences into groups prior to recognition; Selection of dictionaries
- G06V30/244—Division of the character sequences into groups prior to recognition; Selection of dictionaries using graphical properties, e.g. alphabet type or font
- G06V30/245—Font recognition
Abstract
本发明涉及一种手写体识别的联合数据的增强方法,包括以下步骤:S1选取独立字符数据库,再加入独立字符进行字符拼接,独立字符数据库中的数据在字符级均进行了分割和注释,获得数据集;S2判断是否进行联合数据增强,若不进行联合数据增强则对字符图片中的独立字符进行简单拼接,生成训练集,进行步骤S3;若进行联合数据增强,则判断是否进行混淆字符拼接,若进行混淆字符拼接,则在混淆字符拼接完成后进行复杂拼接;若不进行混淆字符拼接则直接进行复杂拼接,复杂拼接完成后再判断是否需要进行网格染色,生成训练集,进行步骤S3;S3采用手写体识别模型,依赖于卷积层与池化层,对感受野进行了划分并对损失函数进行调整,计算得到结果。
Description
技术领域
本发明涉及图像处理技术领域,尤其涉及一种手写体识别的联合数据的增强方法。
背景技术
在神经网络中使用越来越大的训练数据集已经成为一种趋势。更多的数据可以提升模型预测的效果,但在大多数情况下,收集或手动创建数据是昂贵和耗时的,特别是在需要给图像注释的复杂的文档识别中。
为了增加训练数据量,许多数据增强的方法被提出。常用的方法有随机改变文本的尺寸,改变清晰度,倾斜透视等。实验证明,通过生成合成图像来增加训练数据,特别是根据一定语义合成,大大提高了印刷体文字识别的准确率。然而手写体识别的准确率却无法由常用的数据增强方法的组合来得到较大的提升。由于字体的形状、比例和空间位置的变化,手写文本的生成非常复杂,而且由于手写体比印刷体更为潦草的原因,可能会变得更加复杂。
因此,本发明提出了一种手写体识别的联合数据的增强方法,在给定孤立字符样本的情况下,通过更多的数据增强方法生成合成手写体文本行,从而提高识别率。
发明内容
本发明要解决的技术问题是,提供一种手写体识别的联合数据的增强方法,在给定孤立字符样本的情况下,通过更多的数据增强方法生成合成手写体文本行,从而提高识别率。
为了解决上述技术问题,本发明采用的技术方案是:该手写体识别的联合数据的增强方法,具体包括以下步骤:
S1建立数据库:选取独立字符数据库,再加入独立字符进行字符拼接,所述独立字符数据库中的数据在字符级均进行了分割和注释,获得数据集;
S2数据增强:判断是否进行联合数据增强,若不进行联合数据增强则对字符图片中的独立字符进行简单字符拼接,生成训练集,进行步骤S3;
若进行联合数据增强,则判断是否进行混淆字符拼接,若进行混淆字符拼接,则在混淆字符拼接完成后进行复杂拼接;若不进行混淆字符拼接则直接进行复杂拼接,复杂拼接完成后再判断是否需要进行网格染色,再生成训练集,进行步骤S3;
S3模型训练:采用手写体识别模型,依赖于卷积层与池化层,对感受野进行了划分,并对损失函数进行调整,计算得到结果;
所述步骤S2具体包括以下步骤:
S21:若不进行联合数据增强则对字符图片中的独立字符进行简单字符拼接,生成训练集,所述简单字符拼接的方法为:将独立字符的图片按指定顺序一个一个拼接;
S22:若进行联合数据增强,则判断是否进行混淆字符拼接,若进行混淆字符拼接,则在混淆字符拼接完成后进行复杂拼接;若不进行混淆字符拼接则直接进行复杂拼接;
复杂拼接使得合成的手写体具有两种特性:纵轴中心位置不处于同一水平线和字符与字符之间存在重叠与包含的位置关系;则采用复杂拼接的方法具体包括以下步骤:
S221:当纵轴中心位置不处于同一水平线的字符的合成方法;
S222:字符与字符之间存在重叠与包含的位置关系的合成方法;
S23:复杂拼接完成后再判断是否需要进行网格染色,再生成训练集,若需要进行网格染色,则先进行网格染色后再生成训练集,采用网格染色法渲染背景,对字符图片的背景中的每个像素点创建可渲染路径,建立好渲染路径后,每当一个像素点被渲染,其相邻点除去在该像素点所在方向的渲染路径;每次像素点被渲染后,在其可选择的渲染路径上选择一个方向,作为下一个被渲染的像素点;重复该网格染色法渲染背景的过程,直至渲染结束。
采用上述技术方案,通过联合数据增强,再通过模型计算结果,通过上述处理后,提高了手写体文本字符的识别率和准确率;将独立字符数据库(DB1.0 1.2)以及收集的一些独立字符进行拼接,1020位作家用阳极笔在纸上创作了这些手写样本,从而获得了线上和线下的数据;样本包括孤立字符(DB1.0 1.2)和手写文本(连续脚本)(DB2.0 2.2);无论在线还是离线,孤立字符数据集包含7356个类别(7185个汉字和171个符号)的约390万个样本,手写文本数据集包含约5090页和135万个字符样本。
其中简单字符拼接需要将独立字符的图片按指定顺序一个一个拼接;然而,与印刷体合成文本的字符间隔等距的特性不同,根据书写习惯,手写体字符与字符之间的间隔并不固定;除此之外,手写字符串中,字符与字符间的大小也并不完全相同,在拼接过程中需要注意适当调整每个字符的尺寸。
复杂字符拼接因在印刷体文本合成时,字符间等距且字符的纵轴中心都处于同一水平的直线上,然而手写体则会有更为复杂的位置特性;同时手写体也存在字符与字符之间有相互包含和重叠的位置关系;对于字符间纵轴中心位置不同的问题:可以根据字符大小计算出第一个字符的纵轴的中心位置,再根据书写习惯计算出每个字符的中心位置,由中心位置进行字符拼接。
所述步骤S1中的独立字符数据库包括开源手写体数据库,所述开源手写体数据库包括CASIA数据库、HIT-MW数据库和HIT-OR3C数据库。
其中CASIA数据库包括线上手写体库和线下手写体库,每个所述数据集都被划分为标准的训练子集和测试子集。
HIT-MW数据库:该数据集支持手写中文汉字识别、手写笔迹鉴别等任务,是手写中文文字研究上第一款数据集。
HIT-OR3C数据库:该数据库是使用手写板输入采集的汉字手写字符和文档库,也是第一个通过工具包实现自动采集的数据库;HIT-OR3C由5个子集组成(GB1,GB2,Digit,Letter,和Document),GB1和GB2是汉字标注库GB2312-80内2个子集的简写;GB1,GB2,Digit,和Letter子集已采集完成122套,共832,650个手写汉字;Document子集包括10个从新浪网收集的文档,每个文档采集2套,共收集了20套。文档子集共有77,168个字符,覆盖2,442个字符,其中2,286个来自GB1,97个来自GB2,49个来自Letter,10个来自Digit。
作为本发明的优选技术方案,所述步骤S221中当纵轴中心位置不处于同一水平线的字符的合成方法具体为:
S2211:计算出第一个字符的中心位置,计算公式为:yc1=h1/2,其中yc1表示表示第一个字符的中心位置,h1为第一个字符的高度;
S2212:循环While字符串,当前字符=字符串[0],计算公式为:
yi=yi-1+hi-1/2+C+random(-C/2,C/2),其中yi为当前字符的中心位置,yi-1为上一个字符的中心位置,hi-1为上一个字符的高度,C为常数;循环直至字符串=字符串[1:]。
作为本发明的优选技术方案,所述步骤S222中当两个字符之间存在包含和重叠的位置关系,则根据两个字符之间存在包含和重叠的位置关系的产生的原因选择不同的方法进行处理:
S2221:若由于字符大小不同,则对字符进行尺度变换;
S2222:若字符中心位置不同,则根据字符大小计算出前一个字符的横轴起点,若后一个字符与第一个字符存在包含重叠的关系,则后一个字符的横轴起点位置的计算公式如下:Xi=xi-1+wi-1-random(0,C),其中Xi为当前字符的横轴起点,xi-1为上一个字符的横轴起点,wi-1为上一个字符的宽,C为常数;但根据横轴起点位置进行字符拼接时,会导致后一个字符覆盖前一个字符,从而使信息丢失;此时则利用一个常数alpha,通过两张字符图片来创造合成出新的字符图片。
作为本发明的优选技术方案,所述步骤S2222中,利用alpha通过两张字符图片来创造合成出新的字符图片的具体合成过程包括以下步骤:
S22221:根据公式Xi=xi-1+wi-1-random(0,C)计算出每个字符的横轴起点位置;
S22222:创建一张指定大小的空白图片background;
S22223:循环While字符串,当前字符=字符串[0],创建一张与background相同尺寸的空白图片temp,根据当前字符的起始位置,将当前字符图片粘贴到空白图片temp上;即background=alpha*background+(1-alpha)*temp;background=1/alpha*background;循环直至字符串=字符串[1:]。
作为本发明的优选技术方案,所述步骤S23中采用网格染色法渲染背景的方法具体包括以下步骤:
S231:对背景上的每个像素点创建可渲染路径;
S232:确定需要渲染的像素点的总数totalpixel;
S233:确定当前渲染点currentpixel;
S234:循环While像素点的总数totalpixel;首先渲染当前像素点currentpixel;再对当前渲染点currentpixel的临近点进行渲染路径更新;若当前像素点currentpixel存在渲染路径,则在当前像素点currentpixel可选择的渲染路径中选择一个渲染路径,更新当前像素点currentpixel;从而需要渲染的像素点的总数totalpixel=totalpixel-1;否则当前像素点currentpixel=在未被渲染的像素点中选择一个随机像素点。
作为本发明的优选技术方案,所述步骤S3采用CNN+RNN+CTC(CRNN+CTC)的框架进行不定长手写体图片的识别。同时增加了一层BiLSTM(Bi-directional Long Short-TermMemory);损失函数从原来的CTC变为focal CTC,focal CTC是焦点CTC损失函数,为了平衡文字识别中,字符出现概率不平衡的情况;计算过程为:While迭代次数,训练模型,计算CTCLoss,根据公式Focal_CTC(l|y)=-αt(1-P(l|y))γlog(P(l|y))计算Focal CTC Loss,其中P(l|y)为给定y输出序列为1的概率,焦点参数γ平滑地调整简单样本被加权的速率;当γ=0时,focal loss效果与交叉熵函数相同,并且随着γ增加,调制因子的影响同样增加,α平衡Focal loss,相对于非α平衡形式可以略微提高准确度,最后通过反向传播算法更新参数;循环直至迭代次数不为0。
即For i in range(0,epoch):
训练模型
计算CTC Loss
计算Focal CTC Loss:
Focal_CTC(l|y)=-αt(1-P(l|y))γlog(P(l|y))
更新参数。
其中,CRNN是卷积循环神经网络,CTC是Connectionist TemporalClassification的简写,是一种损失函数。本文采用的网络结构可以分为三个部分,分别是:卷积层,循环网络层,转录层。其中卷积层采用了VGG16的结构,对输入的图片进行特征图的提取。循环网络层采用了三层BiLSTM。RNN多用于自然语言处理(NLP),它被广泛应用于建立语言模型和语音识别任务中,其输入的值通常为语音特征。而在CRNN中,RNN的输入则为图像特征。CNN与RNN的结合,使得网络既提取了文本图片的鲁棒特征,又结合了序列识别,极大程度上解决了传统算法在做文字识别时需要对字符串先进行单字符切割的难题。转录层采用了CTC,其作用就是将RNN预测出的标签转换成最终的预测结果。本专利对CRNN与CTC的结构进行了微调,依赖于卷积层与池化层,对感受野进行了划分,感受野的个数从手写体识别模型中的W/4变为W/2。其中反向传播算法是现有技术。
作为本发明的优选技术方案,所述步骤S22222后还包括每次合成新的图片background之后,对合成的新的图片background进行对比度增强。而不每次调整alpha的值,使得前面的图片占比大而后面的图片占比小是为了避免随着字符长度增加,后面的字符逐渐变淡甚至消失。
与现有技术相比,本发明具有的有益效果是:手写体文本字符的识别率显著提高,识别的准确率也显著提高。
附图说明
下面结合附图进一步描述本发明的技术方案:
图1是本发明的手写体识别的联合数据的增强方法的流程图;
图2a、图2b分别是本发明的手写体识别的联合数据的增强方法中的步骤S1中的CASIA数据库和收集的独立字符中的手写字体图;其中图2a为CASIA数据库的手写字体图;图2b为收集的独立字符中的手写字体图;
图3是本发明的手写体识别的联合数据的增强方法中的步骤S21中的简单字符拼接合成的数据的效果图;
图4是本发明的手写体识别的联合数据的增强方法中的步骤S22中的复杂字符拼接中的真实手写数据与印刷体数据的对比效果图;
图5是本发明的手写体识别的联合数据的增强方法中的步骤S22中单纯根据横轴起点位置进行字符拼接导致后一个字符覆盖部分前一个字符的效果图;
图6是本发明的手写体识别的联合数据的增强方法中的步骤S22223中不进行background对比度增强的效果图;
图7是本发明的手写体识别的联合数据的增强方法中的步骤S22223中调整alpha的值导致后面字符逐渐变淡甚至消失的效果图;
图8是本发明的手写体识别的联合数据的增强方法中的步骤S222中最终合成具有重叠区域的效果图;
图9是本发明的手写体识别的联合数据的增强方法中的步骤S23中含有背景干扰的合成数据的效果图;
图10a、10b是本发明的手写体识别的联合数据的增强方法中的计算结果效果图;其中图10a为原始手写体字符图片,图10b为识别后转化为印刷体的字符图片。
具体实施方式
为了加深对本发明的理解,下面将结合附图和实施例对本发明做进一步详细描述,该实施例仅用于解释本发明,并不对本发明的保护范围构成限定。
实施例:如图1所示,该手写体识别的联合数据的增强方法,具体包括以下步骤:
S1建立数据库:选取独立字符数据库,再加入独立字符进行字符拼接,所述独立字符数据库中的数据在字符级均进行了分割和注释,获得数据集;
所述步骤S1中的独立字符数据库采用的是开源手写体数据库中的CASIA数据库,包括线上手写体库和线下手写体库,每个所述数据集都被划分为标准的训练子集和测试子集;将独立字符数据库(DB1.0 1.2)以及收集的一些独立字符进行拼接,1020位作家用阳极笔在纸上创作了这些手写样本,从而获得了线上和线下的数据;样本包括孤立字符(DB1.01.2)和手写文本(连续脚本)(DB2.0 2.2);无论在线还是离线,孤立字符数据集包含7356个类别(7185个汉字和171个符号)的约390万个样本,手写文本数据集包含约5090页和135万个字符样本;部分手写体字形如图2a和图2b所示,图2a为CASIA数据库的手写字体图;图2b为收集的独立字符中的手写字体图,图2a和图2b均有在一张独立字符图片上,笔迹轻重不一的特征;
S2数据增强:判断是否进行联合数据增强,若不进行联合数据增强则对字符图片中的独立字符进行简单字符拼接,生成训练集,进行步骤S3;
若进行联合数据增强,则判断是否进行混淆字符拼接,若进行混淆字符拼接,则在混淆字符拼接完成后进行复杂拼接;若不进行混淆字符拼接则直接进行复杂拼接,复杂拼接完成后再判断是否需要进行网格染色,再生成训练集,进行步骤S3;
S21:若不进行联合数据增强则对字符图片中的独立字符进行简单字符拼接,生成训练集,所述简单字符拼接的方法为:将独立字符的图片按指定顺序一个一个拼接;
S22:若进行联合数据增强,则判断是否进行混淆字符拼接,若进行混淆字符拼接,则在混淆字符拼接完成后进行复杂拼接;若不进行混淆字符拼接则直接进行复杂拼接;
复杂拼接使得合成的手写体具有两种特性:纵轴中心位置不处于同一水平线和字符与字符之间存在重叠与包含的位置关系;则采用复杂拼接的方法具体包括以下步骤:
S221:当纵轴中心位置不处于同一水平线的字符的合成方法;如图4所示,图中的“571”和“559”是真实的手写数字,可见两张手写体图片中,字符间纵轴的中心并不处于同一条直线上;其中‘559’,‘9’包含了部分‘5’。然而简单的字符拼接方法并不能合成有这样位置关系的样本;
所述步骤S221中当纵轴中心位置不处于同一水平线的字符的合成方法具体为:
S2211:计算出第一个字符的中心位置,计算公式为:yc1=h1/2,其中yc1表示表示第一个字符的中心位置,h1为第一个字符的高度
S2212:循环While字符串,当前字符=字符串[0],计算公式为:
yi=yi-1+hi-1/2+C+random(-C/2,C/2),其中yi为当前字符的中心位置,yi-1为上一个字符的中心位置,hi-1为上一个字符的高度,C为常数;循环直至字符串=字符串[1:];
S222:字符与字符之间存在重叠与包含的位置关系的合成方法;
所述步骤S222中当两个字符之间存在包含和重叠的位置关系,则根据两个字符之间存在包含和重叠的位置关系的产生的原因选择不同的方法进行处理:
S2221:若由于字符大小不同,则对字符进行尺度变换;
S2222:若字符中心位置不同,则根据字符大小计算出前一个字符的横轴起点,若后一个字符与第一个字符存在包含重叠的关系,则后一个字符的横轴起点位置的计算公式如下:Xi=xi-1+wi-1-random(0,C),其中Xi为当前字符的横轴起点,xi-1为上一个字符的横轴起点,wi-1为上一个字符的宽,C为常数;但根据横轴起点位置进行字符拼接时,会导致后一个字符覆盖前一个字符,从而使信息丢失;此时则利用一个常数alpha,通过两张字符图片来创造合成出新的字符图片;如图5所示,‘7624’中的‘6’由于‘2’的覆盖,已经很难被分辨出,此时则利用一个常数alpha,通过两张字符图片来创造合成出新的字符图片;对于字符间存在包含和重叠的位置关系:字符间存在包含重叠的位置关系,是由于字符大小不同,字符中心位置不同,字符间距过近共同导致的;字符大小不同可以由尺度变换解决,字符中心位置不同可由上面提到的方法解决;
所述步骤S2222中利用alpha通过两张字符图片来创造合成出新的字符图片的具体合成过程包括以下步骤:
S22221:根据公式Xi=xi-1+wi-1-random(0,C)计算出每个字符的横轴起点位置;
S22222:创建一张指定大小的空白图片background;所述步骤S22222后还包括每次合成新的图片background之后,对合成的新的空白图片background进行对比度增强;
S22223:循环While字符串,当前字符=字符串[0],创建一张与background相同尺寸的空白图片temp,根据当前字符的起始位置,将当前字符图片粘贴到空白图片temp上;即background=alpha*background+(1-alpha)*temp;background=1/alpha*background;循环直至字符串=字符串[1:];
如图6所示,图中的‘7.135’,位置靠前的字符比位置靠后的字符淡了许多,这是因为如果不做对比度增强,随着字符串的增长,最开始被合成的字符会逐渐变淡直至消失不见,从而引起信息丢失;而不每次调整alpha的值,使得前面的图片占比大而后面的图片占比小是为了避免随着字符长度增加,后面的字符逐渐变淡甚至消失;如图7中的‘0.828’,第一个字符变淡是因为一开始合成时,alpha是一个在0到1之间的数值,第一个字符图片*alpha后变淡;而后面的字符逐渐变淡是因为图片占比逐渐变小导致的;如图8所示为经过复杂字符拼接后最终合成的具有重叠,包含位置关系的样本,其中‘7’包含部分‘5’,也与‘4’有共同的重叠区域;
S23:采用网格染色法渲染背景,对字符图片的背景中的每个像素点创建可渲染路径,建立好渲染路径后,每当一个像素点被渲染,其相邻点除去在该像素点所在方向的渲染路径;每次像素点被渲染后,在其可选择的渲染路径上选择一个方向,作为下一个被渲染的像素点;重复该网格染色法渲染背景的过程,直至渲染结束;在手写体的识别中,待识别数据可能存在背景干扰,并且呈扩散性不规则分布;对于这种情况,可通过网格染色法渲染,从而使合成数据与真实数据相似;首先需要对背景中的每个像素点创建可渲染路径,对于大多数像素点,其渲染路径可以为四个方向:上,左,右,下;对于在边界线的像素点,以最左侧的像素点为例:最左侧的像素点,其渲染路径均不包含向左侧渲染,特别注意的是,对于左上角的那个像素点,其渲染路径除了不包含左侧,也不包含上侧;对于左下角的像素点,其渲染路径除了不包含左侧,也不包含下侧;建立好渲染路径后,每当一个像素点被渲染,其相邻点除去在该点所在方向的渲染路径;每次像素点被渲染后,在其可选择的渲染路径上选择一个方向,作为下一个被渲染的像素点;重复该过程,直至渲染结束;含有背景干扰的合成数据的效果图如图9所示;
所述步骤S23中采用网格染色法渲染背景的方法具体包括以下步骤:
S231:对背景上的每个像素点创建可渲染路径;
S232:确定需要渲染的像素点的总数totalpixel;
S233:确定当前渲染点currentpixel;
S234:循环While像素点的总数totalpixel;首先渲染当前像素点currentpixel;再对当前渲染点currentpixel的临近点进行渲染路径更新;若当前像素点currentpixel存在渲染路径,则在当前像素点currentpixel可选择的渲染路径中选择一个渲染路径,更新当前像素点currentpixel;从而需要渲染的像素点的总数totalpixel=totalpixel-1;否则当前像素点currentpixel=在未被渲染的像素点中选择一个随机像素点;
S3模型训练:采用手写体识别模型,依赖于卷积层与池化层,对感受野进行了划分,计算得到结果;
所述步骤S3中采用采用CNN+RNN+CTC(CRNN+CTC)的框架进行不定长手写体图片的识别;其中,CRNN是卷积循环神经网络,CTC是Connectionist Temporal Classification的简写,是一种损失函数。本文采用的网络结构可以分为三个部分,分别是:卷积层,循环网络层,转录层;其中卷积层采用了VGG16的结构,对输入的图片进行特征图的提取;循环网络层采用了三层BiLSTM。RNN多用于自然语言处理(NLP),它被广泛应用于建立语言模型和语音识别任务中,其输入的值通常为语音特征。而在CRNN中,RNN的输入则为图像特征。CNN与RNN的结合,使得网络既提取了文本图片的鲁棒特征,又结合了序列识别,极大程度上解决了传统算法在做文字识别时需要对字符串先进行单字符切割的难题。转录层采用了CTC,其作用就是将RNN预测出的标签转换成最终的预测结果。本专利对CRNN与CTC的结构进行了微调,依赖于卷积层与池化层,对感受野进行了划分,感受野的个数从手写体识别模型中的W/4变为W/2;同时增加了一层BiLSTM(Bi-directional Long Short-Term Memory);损失函数从原来的CTC变为focal CTC,focal CTC是焦点CTC损失函数,为了平衡文字识别中,字符出现概率不平衡的情况,计算过程为:
While迭代次数,训练模型,计算CTC Loss,根据公式
Focal_CTC(l|y)=-αt(1-P(l|y))γlog(P(l|y))计算Focal CTC Loss,其中P(l|y)为给定y输出序列为1的概率,焦点参数γ平滑地调整简单样本被加权的速率;当γ=0时,focal loss效果与交叉熵函数相同,并且随着γ增加,调制因子的影响同样增加,α平衡focal loss,相对于非α平衡形式可以略微提高准确度,最后通过反向传播算法更新参数;循环直至迭代次数不为0;
For i in range(0,epoch):
训练模型
计算CTC Loss
计算Focal CTC Loss:
Focal_CTC(l|y)=-αt(1-P(l|y))γlog(P(l|y))
更新参数;
其中采用的CRNN结构如下:
Input |
Conv3-64,kernel(3,3),stride(1,1),padding(1,1) |
Maxpool,kernel(2,2),stride(2,2) |
Conv3-128,kernel(3,3),stride(1,1),padding(1,1) |
Maxpool,kernel(2,1),stride(2,1) |
Conv3-256,kernel(3,3),stride(1,1),padding(1,1) |
Conv3-256,kernel(3,3),stride(1,1),padding(1,1) |
Maxpool,kernel(2,1),stride(2,1) |
Conv3-512,kernel(3,3),stride(1,1),padding(1,1) |
Conv3-512,kernel(3,3),stride(1,1),padding(1,1) |
Maxpool,kernel(2,1),stride(2,1) |
Conv3-512,kernel(2,1),stride(1,1) |
BiLSTM |
BiLSTM |
BiLSTM |
采用上述手写体识别的联合数据增强的方法对1800个真实手写数字字符串进行测试,未做联合数据增强的合成数据训练出的模型,在该测试集上的准确率为82.67%;做联合数据增强的合成数据训练出的模型,在该测试集上准确率为94.99%,效果图如图10a、图10b所示,其中图10a为原始手写体字符图片,图10b为识别后转化为印刷体的字符图片。
对于本领域的普通技术人员而言,具体实施例只是对本发明进行了示例性描述,显然本发明具体实现并不受上述方式的限制,只要采用了本发明的方法构思和技术方案进行的各种非实质性的改进,或未经改进将本发明的构思和技术方案直接应用于其它场合的,均在本发明的保护范围之内;例如本发明申请中,所述步骤S1中的独立字符数据库还可以采用HIT-MW数据库和HIT-OR3C数据库开源手写体数据库,得到的效果与CASIA数据库基本一致。
Claims (5)
1.一种手写体识别的联合数据的增强方法,其特征在于,具体包括以下步骤:
S1建立数据库:选取独立字符数据库,再加入独立字符进行字符拼接,所述独立字符数据库中的数据在字符级均进行了分割和注释,获得数据集;
S2数据增强:判断是否进行联合数据增强,若不进行联合数据增强则对字符图片中的独立字符进行简单字符拼接,生成训练集,进行步骤S3;
若进行联合数据增强,则判断是否进行混淆字符拼接,若进行混淆字符拼接,则在混淆字符拼接完成后进行复杂拼接,若不进行混淆字符拼接则直接进行复杂拼接,复杂拼接完成后再判断是否需要进行网格染色,再生成训练集,进行步骤S3;
S3模型训练:采用手写体识别模型,依赖于卷积层与池化层,对感受野进行了划分,并对损失函数进行调整,计算得到结果;
所述步骤S2具体包括以下步骤:
S21:若不进行联合数据增强则对字符图片中的独立字符进行简单字符拼接,生成训练集,所述简单字符拼接的方法为:将独立字符的图片按指定顺序一个一个拼接;
S22:若进行联合数据增强,则判断是否进行混淆字符拼接,若进行混淆字符拼接,则在混淆字符拼接完成后进行复杂拼接;若不进行混淆字符拼接则直接进行复杂拼接;
复杂拼接使得合成的手写体具有两种特性:纵轴中心位置不处于同一水平线和字符与字符之间存在重叠与包含的位置关系;则采用复杂拼接的方法具体包括以下步骤:
S221:当纵轴中心位置不处于同一水平线的字符的合成方法;
所述步骤S221中当纵轴中心位置不处于同一水平线的字符的合成方法具体为:
S2211:计算出第一个字符的中心位置,计算公式为:yc1=h1/2,其中yc1表示表示第一个字符的中心位置,h1为第一个字符的高度;
S2212:循环While字符串,当前字符=字符串[0],计算公式为:yi=yi-1+hi-1/2+C+random(-C/2,C/2),其中yi为当前字符的中心位置,yi-1为上一个字符的中心位置,hi-1为上一个字符的高度,C为常数;循环直至字符串=字符串[1:];
S222:字符与字符之间存在重叠与包含的位置关系的合成方法;
所述步骤S222中当两个字符之间存在包含和重叠的位置关系,则根据两个字符之间存在包含和重叠的位置关系的产生的原因选择不同的方法进行处理:
S2221:若由于字符大小不同,则对字符进行尺度变换;
S2222:若字符中心位置不同,则根据字符大小计算出前一个字符的横轴起点,若后一个字符与第一个字符存在包含重叠的关系,则后一个字符的横轴起点位置的计算公式如下:Xi=xi-1+wi-1-random(0,C),其中Xi为当前字符的横轴起点,xi-1为上一个字符的横轴起点,wi-1为上一个字符的宽,C为常数;但根据横轴起点位置进行字符拼接时,会导致后一个字符覆盖前一个字符,从而使信息丢失;此时则利用一个常数alpha,通过两张字符图片来创造合成出新的字符图片;
所述步骤S2222中,利用alpha通过两张字符图片来创造合成出新的字符图片的具体合成过程包括以下步骤:
S22221:根据公式,Xi=xi-1+wi-1-random(0,C)计算出每个字符的横轴起点位置;
S22222:创建一张指定大小的空白图片background;
S22223:循环While字符串,当前字符=字符串[0],创建一张与background相同尺寸的空白图片temp,根据当前字符的起始位置,将当前字符图片粘贴到空白图片temp上;即background=alpha*background+(1-alpha)*temp;background=1/alpha*background;循环直至字符串=字符串[1:];
S23:复杂拼接完成后再判断是否需要进行网格染色,再生成训练集,若需要进行网格染色,则先进行网格染色后再生成训练集,采用网格染色法渲染背景,对字符图片的背景中的每个像素点创建可渲染路径,建立好渲染路径后,每当一个像素点被渲染,其相邻点除去在该像素点所在方向的渲染路径;每次像素点被渲染后,在其可选择的渲染路径上选择一个方向,作为下一个被渲染的像素点;重复该网格染色法渲染背景的过程,直至渲染结束。
2.根据权利要求1所述的手写体识别的联合数据的增强方法,其特征在于,所述步骤S1中的独立字符数据库包括开源手写体数据库,所述开源手写体数据库包括CASIA数据库、HIT-MW数据库和HIT-OR3C数据库。
3.根据权利要求1所述的手写体识别的联合数据的增强方法,其特征在于,所述步骤S23中采用网格染色法渲染背景的方法具体包括以下步骤:
S231:对背景上的每个像素点创建可渲染路径;
S232:确定需要渲染的像素点的总数totalpixel;
S233:确定当前渲染点currentpixel;
S234:循环While像素点的总数totalpixel;首先渲染当前像素点currentpixel;再对当前渲染点currentpixel的临近点进行渲染路径更新;若当前像素点currentpixel存在渲染路径,则在当前像素点currentpixel可选择的渲染路径中选择一个渲染路径,更新当前像素点currentpixel;从而需要渲染的像素点的总数totalpixel=totalpixel-1;否则当前像素点currentpixel=在未被渲染的像素点中选择一个随机像素点。
4.根据权利要求3所述的手写体识别的联合数据的增强方法,其特征在于,所述步骤S3中采用CNN+RNN+CTC的框架进行不定长手写体图片的识别;同时增加了一层BiLSTM;损失函数从原来的CTC变为focal CTC,focal CTC是焦点CTC损失函数,为了平衡文字识别中,字符出现概率不平衡的情况,计算过程为:While迭代次数,训练模型,计算CTC Loss,根据公式Focal_CTC(l|y)=-αt(1-P(l|y))γlog(P(l|y))计算Focal CTC Loss,其中P(l|y)为给定y输出序列为l的概率,焦点参数γ平滑地调整简单样本被加权的速率;当γ=0时,focalloss效果与交叉熵函数相同,并且随着γ增加,调制因子的影响同样增加,α平衡Focalloss,相对于非α平衡形式可以略微提高准确度,最后通过反向传播算法更新参数;循环直至迭代次数不为0。
5.根据权利要求1所述的手写体识别的联合数据的增强方法,其特征在于,所述步骤S22222后还包括每次合成新的图片background之后,对合成的新的图片background进行对比度增强。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010686369.8A CN111563563B (zh) | 2020-07-16 | 2020-07-16 | 一种手写体识别的联合数据的增强方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010686369.8A CN111563563B (zh) | 2020-07-16 | 2020-07-16 | 一种手写体识别的联合数据的增强方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111563563A CN111563563A (zh) | 2020-08-21 |
CN111563563B true CN111563563B (zh) | 2020-11-03 |
Family
ID=72071291
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010686369.8A Active CN111563563B (zh) | 2020-07-16 | 2020-07-16 | 一种手写体识别的联合数据的增强方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111563563B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113011299A (zh) * | 2021-03-09 | 2021-06-22 | 天津职业技术师范大学(中国职业培训指导教师进修中心) | 一种文本检测训练集中增加特殊负例的方法 |
CN113408387A (zh) * | 2021-06-10 | 2021-09-17 | 中金金融认证中心有限公司 | 用于复杂书写场景的手写文本数据生成方法及计算机产品 |
CN114241495B (zh) * | 2022-02-28 | 2022-05-03 | 天津大学 | 一种用于脱机手写文本识别的数据增强方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007079009A1 (en) * | 2005-12-29 | 2007-07-12 | Microsoft Corporation | Handwriting recognition training and synthesis |
CN101853313A (zh) * | 2010-07-01 | 2010-10-06 | 无锡骏聿科技有限公司 | 一种基于字型分类的手写字体库生成方法 |
CN107491729A (zh) * | 2017-07-12 | 2017-12-19 | 天津大学 | 基于余弦相似度激活的卷积神经网络的手写数字识别方法 |
CN109858488A (zh) * | 2018-12-28 | 2019-06-07 | 众安信息技术服务有限公司 | 一种基于样本增强的手写样本识别方法与系统 |
-
2020
- 2020-07-16 CN CN202010686369.8A patent/CN111563563B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007079009A1 (en) * | 2005-12-29 | 2007-07-12 | Microsoft Corporation | Handwriting recognition training and synthesis |
CN101853313A (zh) * | 2010-07-01 | 2010-10-06 | 无锡骏聿科技有限公司 | 一种基于字型分类的手写字体库生成方法 |
CN107491729A (zh) * | 2017-07-12 | 2017-12-19 | 天津大学 | 基于余弦相似度激活的卷积神经网络的手写数字识别方法 |
CN109858488A (zh) * | 2018-12-28 | 2019-06-07 | 众安信息技术服务有限公司 | 一种基于样本增强的手写样本识别方法与系统 |
Non-Patent Citations (2)
Title |
---|
Deep Network with Pixel‑Level Rectification and Robust Training for Handwriting Recognition;Shanyu Xiao;《SN Computer Science》;20200428;第1-13页 * |
基于深度卷积神经网络的脱机手写汉字识别系统的设计与实现;林恒青;《湖北理工学院学报》;20190415;第35卷(第2期);第31-34页 * |
Also Published As
Publication number | Publication date |
---|---|
CN111563563A (zh) | 2020-08-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Jiang et al. | Scfont: Structure-guided chinese font generation via deep stacked networks | |
CN109299274B (zh) | 一种基于全卷积神经网络的自然场景文本检测方法 | |
Wick et al. | Fully convolutional neural networks for page segmentation of historical document images | |
CN111723585B (zh) | 一种风格可控的图像文本实时翻译与转换方法 | |
CN111563563B (zh) | 一种手写体识别的联合数据的增强方法 | |
CN109190722B (zh) | 基于满文字符图片的字体风格迁移变换方法 | |
CN111325203B (zh) | 一种基于图像校正的美式车牌识别方法及系统 | |
JP7011146B2 (ja) | 画像処理装置、画像処理方法、画像処理プログラム、及び教師データ生成方法 | |
CN107403130A (zh) | 一种字符识别方法及字符识别装置 | |
CN111242841B (zh) | 一种基于语义分割和深度学习的图片背景风格迁移方法 | |
US20150310305A1 (en) | Learning painting styles for painterly rendering | |
CN111291629A (zh) | 图像中文本的识别方法、装置、计算机设备及计算机存储介质 | |
CN108154167A (zh) | 一种汉字字形相似度计算方法 | |
CN113673338B (zh) | 自然场景文本图像字符像素弱监督自动标注方法、系统及介质 | |
CN112365514A (zh) | 基于改进PSPNet的语义分割方法 | |
CN110674777A (zh) | 一种专利文本场景下的光学字符识别方法 | |
CN107305691A (zh) | 基于图像匹配的前景分割方法及装置 | |
CN112163401A (zh) | 基于压缩与激励的gan网络的汉字字体生成方法 | |
CN111401099A (zh) | 文本识别方法、装置以及存储介质 | |
CN111368695A (zh) | 一种表格结构提取方法 | |
Ko et al. | Skelgan: A font image skeletonization method | |
CN113158977B (zh) | 改进FANnet生成网络的图像字符编辑方法 | |
CN112801092B (zh) | 一种自然场景图像中字符元素检测方法 | |
CN113963232A (zh) | 一种基于注意力学习的网络图数据提取方法 | |
CN110348339B (zh) | 一种基于实例分割的手写文档文本行的提取方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |