CN110348339B - 一种基于实例分割的手写文档文本行的提取方法 - Google Patents
一种基于实例分割的手写文档文本行的提取方法 Download PDFInfo
- Publication number
- CN110348339B CN110348339B CN201910562052.0A CN201910562052A CN110348339B CN 110348339 B CN110348339 B CN 110348339B CN 201910562052 A CN201910562052 A CN 201910562052A CN 110348339 B CN110348339 B CN 110348339B
- Authority
- CN
- China
- Prior art keywords
- handwritten document
- image
- img
- value
- label
- 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.)
- Expired - Fee Related
Links
- 230000011218 segmentation Effects 0.000 title claims abstract description 56
- 238000000034 method Methods 0.000 title claims abstract description 40
- 238000012549 training Methods 0.000 claims abstract description 41
- 238000013507 mapping Methods 0.000 claims abstract description 40
- 239000013598 vector Substances 0.000 claims abstract description 35
- 238000000605 extraction Methods 0.000 claims abstract description 33
- 238000012360 testing method Methods 0.000 claims description 35
- 230000006870 function Effects 0.000 claims description 28
- ORILYTVJVMAKLC-UHFFFAOYSA-N Adamantane Natural products C1C(C2)CC3CC1CC2C3 ORILYTVJVMAKLC-UHFFFAOYSA-N 0.000 claims description 12
- 238000012545 processing Methods 0.000 claims description 11
- 238000004364 calculation method Methods 0.000 claims description 6
- 238000011478 gradient descent method Methods 0.000 claims description 6
- 238000010606 normalization Methods 0.000 description 24
- 230000004913 activation Effects 0.000 description 18
- 239000011800 void material Substances 0.000 description 10
- 238000011176 pooling Methods 0.000 description 9
- 101100295091 Arabidopsis thaliana NUDT14 gene Proteins 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 101100129590 Schizosaccharomyces pombe (strain 972 / ATCC 24843) mcp5 gene Proteins 0.000 description 6
- 238000005070 sampling Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 239000011541 reaction mixture Substances 0.000 description 1
Images
Classifications
-
- 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/40—Document-oriented image-based pattern recognition
- G06V30/41—Analysis of document content
- G06V30/413—Classification of content, e.g. text, photographs or tables
Landscapes
- Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种基于实例分割网络的手写文档文本行的提取方法,其特征在于,具体按照如下步骤进行:步骤1:对手写文档数据集中的图片进行缩放操作,最终得到训练集;步骤2:对步骤1中得到的训练集中的数据集进行训练,以此更新得到实例分割网络的权重;步骤3:将待处理的手写文档图像经步骤2得到的实例分割网络中,得到映射后的映射图;步骤4:利用均值漂移算法对待处理的手写文档图像中的黑色像素点在映射图中对应的映射向量进行聚类操作,最终提取得到单个文本行。本发明一种基于实例分割网络的手写文档文本行的提取方法使得手写文档文本行的提取更为准确。
Description
技术领域
本发明属于图像处理方法技术领,具体涉及一种基于实例分割的手写文档文本行的提取方法。
背景技术
手写文档的文本行提取方法是手写文档图像处理的一个重要问题。文本行提取对手写文档的内容识别及手写文档单个字符的提取都有重要意义。手写文档存包含拍照文档、支票、证件、手稿文书等诸多类型,这些文档的自动处理能够较大程度地减轻人为的劳动力。手写文档图像不同于字符大小及排列都比较规整的打印文档图像,手写文档的书写风格各异,各字符之间可能存在大小不一,且各字符之间容易存在粘连、交叉等情况,以上这些因素都可能会给手写文档的文本行提取带来一定的困难,传统的人工设计的特征无法较为准确地定位或者提取文本行。鉴于以上原因,综上所述,目前的手写文档文本行提取中存在提取不够准确的问题。
发明内容
本发明的目的是提供一种基于实例分割的手写文档文本行的提取方法,解决了目前的手写文档文本行提取中存在提取不够准确的问题。
本发明所采用的技术方案是,
一种基于实例分割网络的手写文档文本行的提取方法,具体按照如下步骤进行:
步骤1:对手写文档数据集中的图片进行缩放操作,最终得到训练集;
步骤2:对步骤1中得到的训练集中的数据集进行训练,以此更新得到实例分割网络的权重;
步骤3:将待处理的手写文档图像经步骤2得到的实例分割网络中,得到映射后的映射图;
步骤4:利用均值漂移算法对待处理的手写文档图像中的黑色像素点在映射图中对应的映射向量进行聚类操作,最终提取得到单个文本行。
本发明的特点还在于,
步骤1中对ICDAR2013HandSegmCont手写文档数据集中的图片进行缩放操作,其中图片的高和宽分别为h和w,若h≤max_size,w≤max_size,则不进行缩放操作,否则,则使用Image库中的最近邻插值法将该图片和标签均缩小为高和宽分别为h×scale和w×scale的图片,其中,其中max_size的值取600-1000,其中需要对h×scale和w×scale进行四舍五入,对训练集中的每张图片及其标签均进行上述操作,得到最终的训练集。
步骤2中选取步骤1中任意一张手写文档图像,记作handwrit_img,其中,bandwidth取值为0.5-1.0,其中,标签图像与所述手写文档图像大小相同,记作label;将handwrit_img输入实例分割网络中,输出的结果为一张高和宽与手写文档图像相同且通道数为feature_dims的映射图图像,记作logits;其中,feature_dims为人为设定的需要值。
步骤2的实例分割网络中按照实例分割网络中的损失函数对手写文档图像进行训练,所述损失函数公式如下:
L=α·Lvar+β·Ldist+γ·Lreg (4)
其中,||·||表示向量的2范数,[x]+=max(0,x);式(1)中,Lvar为偏差损失,C表示一张手写文档图像中的文本行数目,Nc表示属于第c个文本行的像素点的数目,C和Nc可从手写文档图像对应的标签图label中获取,向量xi表示某个文本行的第i个像素点在映射图logits中的对应向量,μc表示第c个文本行的所有像素点对应的映射向量的中心,δv为人为设定的类内距离;式(2)中,Ldist为距离损失,δd为人为设定的类间距离,其余字母的含义同式(1);式(3)中,Lreg为正则损失;式(4)中,L为总损失;α,β,γ分别为和Lvar,Ldist,Lreg对应的人为设定的权重。
步骤2中使用Adam梯度下降方法来更新实例分割网络的权重,表示为Adam(w,L,lr),其中,lr表示梯度下降的学习率,然后循环执行上述步骤直到损失L足够小,训练完成,其中,lr采用poly学习率衰减策略,lr的计算公式如下:
lr=(init_lr-end_lr)×(1-step/decay_step)power+end_lr
式中,init_lr表示初始学习率,取值为10-4,end_lr表示终止学习率,取值为10-7,step为当前迭代次数,decay_step为衰减步数,取值为2500-3500,power取值0.7-1.0。
步骤3中对手写文档图像进行二值化处理,处理后的图像的字符间对应的像素点像素值为0,背景对应的像素点为255,对处理后的图像进行缩放操作,缩放前的图片记作test_img,缩放后的图片记作test_img2,然后将二值化处理后的图像输入训练完成的实例分割网络中,得到映射图logits。
步骤4中记录handwrit_img中像素值为0的像素点的位置,利用sklearn库中的MeanShift聚类方法进行聚类,聚类后每个位置会对应一个标签值,标签值为从0开始的整数,创建一张与test_img2大小相同且初始像素值为255的图像result_img,根据对应的标签值对result_img中相同位置的像素点赋值,然后利用Image库中的最近邻插值法,对result_img进行还原缩放,缩放后的尺寸和test_img相同,对result_img中像素值做进一步调整,使得result_img中的像素值相同且不为255的点属于同一文本行,得到最终的文本行提取结果。
本发明的有益效果是:本发明提供一种基于实例分割网络的手写文档文本行的提取方法,通过实例分割网络将手写文档图像中的像素点映射至一个高维空间,再利用均值漂移算法对高维空间中的点进行聚类操作,最终将单个文本行提取出来。对于书写风格各异、字符大小不一且存在粘连的手写文档均能得到较好的提取效果。
(1)本发明一种基于实例分割网络的手写文档文本行的提取方法主要是基于卷积神经网络和聚类损失函数进行训练和测试,其中,测试过程仅需增加一个聚类操作,较为简单,容易实现;
(2)本发明一种基于实例分割网络的手写文档文本行的提取方法,对存在粘连、交叉及字符大小、书写风格不一的手写文档,均能较好地完成对其文本行的提取,对手写文档的内容分析、单字提取、识别等后续研究提供了良好的基础,具有良好的实用价值。
附图说明
图1是本发明一种基于实例分割网络的手写文档文本行的提取方法中训练过程的流程图;
图2是本发明一种基于实例分割网络的手写文档文本行的提取方法中实例分割网络的网络结构图;
图3是本发明一种基于实例分割网络的手写文档文本行的提取方法中Block1的网络结构图;
图4是本发明一种基于实例分割网络的手写文档文本行的提取方法中Bottleneck1的网络结构图;
图5是本发明一种基于实例分割网络的手写文档文本行的提取方法中ASPP模块的网络结构图;
图6是本发明一种基于实例分割网络的手写文档文本行的提取方法中实施例文本行提取示意图。
具体实施方式
下面结合附图和具体实施方式对本发明进行详细说明。
本发明一种基于实例分割的手写文档文本行提取方法,具体按照以下步骤进行:
步骤1,对现有数据集进行预处理;
步骤2,对步骤1中经过预处理后的数据集进行训练,更新实例分割网络的权重;
步骤3,将待处理的手写文档图像经步骤2得到的实例分割网络中,得到映射后的高维数据;
步骤4,利用均值漂移算法,对原图中黑色像素点在映射图中对应的映射向量进行聚类,最终提取得到单个文本行。
其中,步骤1的具体操作为:
对ICDAR2013HandSegmCont手写文档数据集中的图片进行缩放操作。假设某张图片的高和宽分别为h和w,若h≤max_size,w≤max_size,则不进行缩放操作,否则,使用Image库中的最近邻插值法,将该图片和标签均缩小为高和宽分别为h×scale和w×scale的图片,其中,其中max_size的值取600-1000,其中需要对h×scale和w×scale的值进行四舍五入。对训练集中的每张图片及其标签均进行上述操作,得到最终的训练集。
其中,步骤2的具体操作为:
选取步骤1中任意一张手写文档图像handwrit_img,其标签图像与其大小相同,记作label。将handwrit_img输入实例分割网络中,输出的结果为一张高和宽与原图相同,但通道数为feature_dims的映射图,记作logits.其中,feature_dims为人为设定的值。
实例分割网络损失函数公式如下:
L=α·Lvar+β·Ldist+γ·Lreg (4)
其中,||·||表示向量的2范数,[x]+=max(0,x)式(1)中,Lvar为偏差损失,C表示一张手写文档图像中的文本行数目,Nc表示属于第c个文本行的像素点的数目,C和Nc可从手写文档图像对应的标签图label中获取,向量xi表示某个文本行的第i个像素点在映射图logits中的对应向量,μc表示第c个文本行的所有像素点对应的映射向量的中心,δv为人为设定的类内距离;式(2)中,Ldist为距离损失,δd为人为设定的类间距离,其余字母的含义同式(1);式(3)中,Lreg为正则损失;式(4)中,L为总损失,α,β,γ分别为和Lvar,Ldist,Lreg对应的人为设定的权重。
将一张手写文档图像输入实例分割网络中,根据其对应的标签label和网络的输出logits,计算出实例分割网络的总损失L,使用Adam梯度下降方法来更新实例分割网络的权重,表示为Adam(w,L,lr),其中,lr表示梯度下降的学习率。循环执行该步骤直到损失足够小,训练完成;其中,lr采用poly学习率衰减策略,lr的计算公式如下:
lr=(init_lr-end_lr)×(1-step/decay_step)power+end_lr
式中,init_lr表示初始学习率,取值为10-4,end_lr表示终止学习率,取值为10-7,step为当前迭代次数,decay_step为衰减步数,取值为2500-3500,power取值0.7-1.0。
其中,步骤3的具体操作为:
对手写文档图像进行二值化处理,处理后的图像,字符对应的像素点像素值为0,背景对应的像素点为255.并进行和步骤1相同的缩放操作。缩放前的图片记作test_img,缩放后的图片记作test_img2。
将二值化处理后的图像输入步骤2训练好的实例分割网络中,得到映射图logits。
其中,步骤4具体步骤为:
记录handwrit_img中像素值为0的像素点的位置,利用sklearn库中的MeanShift聚类方法,设置bandwidth值,对映射图logits中这些位置的点所代表的向量进行聚类。聚类后,每个位置会对应一个标签值,标签值为整数,从0开始,bandwidth取值为0.5-1.0。
创建一张与test_img2大小相同的图像result_img,初始像素值为255,根据记录的值为0的像素点的位置及其对应的标签值,对result_img中相同位置的像素点赋值。即将该点的像素值赋值为该点的标签值。
利用Image库中的最近邻插值法,对result_img进行缩放,缩放后的尺寸和test_img相同,结合test_img,对result_img中像素值做进一步调整。调整结束后,result_img中像素值相同且值不为255的点属于同一文本行,即得到最终的文本行提取结果。
实施例1
本实施例提供一种基于实例分割的手写文档文本行提取方法,具体按照以下步骤进行:
步骤1,对手写文档数据集中的图片进行缩放操作,最终得到训练集;
对ICDAR2013HandSegmCont手写文档数据集中的图片进行缩放操作。假设某张图片的高和宽分别为h和w,若h≤max_size,w≤max_size,则不进行缩放操作,否则,使用Image库中的最近邻插值法,将该图片和标签均缩小为高和宽分别为h×scale和w×scale的图片,其中,其中,max_size的值取800,需要对h×scale和w×scale的值进行四舍五入。对训练集中的每张图片及其标签均进行上述操作,得到最终的训练集。
步骤2,对步骤1中得到的训练集中的数据集进行训练,以此更新得到实例分割网络的权重,图1为训练过程的流程图。
选取步骤1中任意一张手写文档图像handwrit_img,其标签图像与其大小相同,记作label。将handwrit_img输入实例分割网络中,输出的结果为一张高和宽与原图相同,但通道数为feature_dims的映射图,记作logits.其中,feature_dims为人为设定的值。feature_dims的值取8.具体过程为:输入图片经过一个卷积模块和一个池化模块,再经过4个Block模块,再经过ASPP模块,再经过一个反卷积模块,输出记为out1,low levelfeatures经过一个卷积层和归一化层,输出记为out2,将out1和out2在第四个维度进行concat,再经过一个卷积层和归一化层,最后经过一个反卷积层,得到最终的映射图logits.
如图2所示,在实例分割网络中,Conv,7*7,c=64,stride=2,表示卷积核大小为7*7,通道数为64,步长为2的卷积操作;Max_pool,3*3,stride=2表示核大小为3*3,步长为2的最大池化操作;Block1,depth1,s1,num1表示Block1中包含num1个Bottleneck,depth1和s1与Bottleneck中卷积核的通道数和步长有关;Deconv表示反卷积操作;low levelfeatures为Block1的第三个Bottleneck的第二个卷积层的输出;concat表示直接相连操作;Relu表示一个非线性激活函数;BN表示Batch Normalization归一化操作。Block1至Block4的具体参数(depth,s,num)分别为(64,2,3),(128,2,4),(256,2,6),(512,1,3)。
如图3所示,在Block1模块中,depth1,s,r与Bottleneck中卷积核的通道数和步长和空洞率有关,具体参数设置为,Block1参数如图3所示,Block2至Block4的最后一个Bottleneck的s=1,r分别为2,4,8,其它参数与Block1相同。
如图4所示,在Bottleneck1模块中,Conv中的rate=r表示该卷积的空洞率为r,特征图先经过一个归一化层和激活函数层,输出记为out0,out0经过一个卷积层,再经过一个激活函数层和归一化层,再经过一个空洞卷积层,再经过一个激活函数层和归一化层,再经过一个卷积层,输出记为out1;out0经过一个卷积层,输出记为out2,将out1和out2直接相加。具体参数设置如图4所示。
如图5所示,在ASPP模块中,特征图经过四个卷积层,再分别经过一个激活函数层和归一化层,其中三个为空洞卷积,通过一个全局平均池化,再进行上采样,上采样后的特征图的前三个维度与四个卷积层的输出一致,对五个输出进行在第四个维度进行concat操作,再经过一个卷积层,一个激活函数层和归一化层。具体参数设置如图5所示。
实例分割网络损失函数公式如下:
L=α·Lvar+β·Ldist+γ·Lreg (4)
式(1)中,Lvar为偏差损失,C表示一张手写文档图像中的文本行数目,Nc表示属于第c个文本行的像素点的数目,C和Nc可从手写文档图像对应的标签图label中获取,向量xi表示某个文本行的第i个像素点在映射图logits中的对应向量,μc表示第c个文本行的所有像素点对应的映射向量的中心,δv为人为设定的类内距离;式(2)中,Ldist为距离损失,δd为人为设定的类间距离,其余字母的含义同式(1);式(3)中,Lreg为正则损失;式(4)中,L为总损失,α,β,γ分别为和Lvar,Ldist,Lreg对应的人为设定的权重。四个式子中,||·||表示向量的2范数,[x]+=max(0,x)。具体参数设置为α=1,β=1,γ=0.001,δv=0.5,δd=1.5。
将一张手写文档图像输入实例分割网络中,根据其对应的标签label和网络的输出logits,计算出步骤2.2中实例分割网络的总损失L,使用Adam梯度下降方法来更新实例分割网络的权重,表示为Adam(w,L,lr),其中,lr表示梯度下降的学习率。循环执行该步骤直到损失足够小,训练完成。其中,lr采用poly学习率衰减策略,lr的计算公式如下:
lr=(init_lr-end_lr)×(1-step/decay_step)power+end_lr
式中,init_lr表示初始学习率,取值为10-4,end_lr表示终止学习率,取值分别为10-7,step为当前迭代次数,decay_step为衰减步数,取值为3000,power取值0.9.
步骤3,将待处理的手写文档图像经步骤2得到的实例分割网络中,得到映射后的映射图。
对手写文档图像进行二值化处理,处理后的图像,字符对应的像素点像素值为0,背景对应的像素点为255.并进行和步骤1相同的缩放操作。缩放前的图片记作test_img,缩放后的图片记作test_img2,
将二值化处理后的图像test_img2输入步骤2训练好的实例分割网络中,得到映射图logits.
步骤4,利用均值漂移算法对待处理的手写文档图像中的黑色像素点在映射图中对应的映射向量进行聚类操作,最终提取得到单个文本行。
记录handwrit_img中像素值为0的像素点的位置,利用sklearn库中的MeanShift聚类方法,设置bandwidth值,对映射图logits中这些位置的点所代表的向量进行聚类。聚类后,每个位置会对应一个标签值,标签值为整数,从0开始,bandwidth取值为0.7。
创建一张与test_img2大小相同的图像result_img,初始像素值为255,根据步骤4.1中记录的值为0的像素点的位置及其对应的标签值,对result_img中相同位置的像素点赋值。即将该点的像素值赋值为该点的标签值。
利用Image库中的最近邻插值法,对result_img进行缩放,缩放后的尺寸和test_img相同,结合test_img,对result_img中像素值做进一步调整。调整结束后,result_img中像素值相同且值不为255的点属于同一文本行,即得到最终的文本行提取结果。如图6所示是本方法将手写文档提取为单个文本行的示意图。
实施例2
本实施例提供一种基于实例分割的手写文档文本行提取方法,具体按照以下步骤进行:
步骤1,对手写文档数据集中的图片进行缩放操作,最终得到训练集;
对ICDAR2013HandSegmCont手写文档数据集中的图片进行缩放操作。假设某张图片的高和宽分别为h和w,若h≤max_size,w≤max_size,则不进行缩放操作,否则,使用Image库中的最近邻插值法,将该图片和标签均缩小为高和宽分别为h×scale和w×scale的图片,其中,其中,max_size的值取1000,其中需要对h×scale和w×scale的值四舍五入。对训练集中的每张图片及其标签均进行上述操作,得到最终的训练集。
步骤2,对步骤1中得到的训练集中的数据集进行训练,以此更新得到实例分割网络的权重,
选取步骤1中任意一张手写文档图像handwrit_img,其标签图像与其大小相同,记作label,将handwrit_img输入实例分割网络中,输出的结果为一张高和宽与原图相同,但通道数为feature_dims的映射图,记作logits.其中,feature_dims为人为设定的值,具体过程为:输入图片经过一个卷积模块和一个池化模块,再经过4个Block模块,再经过ASPP模块,再经过一个反卷积模块,输出记为out1,low level features经过一个卷积层和归一化层,输出记为out2,将out1和out2在第四个维度进行concat,再经过一个卷积层和归一化层,最后经过一个反卷积层,得到最终的映射图logits.
在实例分割网络中,Conv,7*7,c=64,stride=2,表示卷积核大小为7*7,通道数为64,步长为2的卷积操作;Max_pool,3*3,stride=2表示核大小为3*3,步长为2的最大池化操作;Block1,depth1,s1,num1表示Block1中包含num1个Bottleneck,depth1和s1与Bottleneck中卷积核的通道数和步长有关;Deconv表示反卷积操作;low level features为Block1的第三个Bottleneck的第二个卷积层的输出;concat表示直接相连操作;Relu表示一个非线性激活函数;BN表示Batch Normalization归一化操作。Block1至Block4的具体参数(depth,s,num)分别为(64,2,3),(128,2,4),(256,2,6),(512,1,3)。
在Block1模块中,depth1,s,r与Bottleneck中卷积核的通道数和步长和空洞率有关。具体参数设置为,Block1参数为s=3,r=3,Block2至Block4的最后一个Bottleneck的s=1,r分别为3,5,7,其它参数与Block1相同。
在Bottleneck1模块中,Conv中的rate=r表示该卷积的空洞率为r,特征图先经过一个归一化层和激活函数层,输出记为out0,out0经过一个卷积层,再经过一个激活函数层和归一化层,再经过一个空洞卷积层,再经过一个激活函数层和归一化层,再经过一个卷积层,输出记为out1;out0经过一个卷积层,输出记为out2,将out1和out2直接相加。
在ASPP模块中,特征图经过四个卷积层,再分别经过一个激活函数层和归一化层,其中三个为空洞卷积,通过一个全局平均池化,再进行上采样,上采样后的特征图的前三个维度与四个卷积层的输出一致,对五个输出进行在第四个维度进行concat操作,再经过一个卷积层,一个激活函数层和归一化层。
实例分割网络损失函数公式如下:
L=α·Lvar+β·Ldist+γ·Lreg (4)
||·||表示向量的2范数,[x]+=max(0,x)。具体参数设置为α=1,β=1,γ=0.001,δv=0.5,δd=1.5,式(1)中,Lvar为偏差损失,C表示一张手写文档图像中的文本行数目,Nc表示属于第c个文本行的像素点的数目,C和Nc可从手写文档图像对应的标签图label中获取,向量xi表示某个文本行的第i个像素点在映射图logits中的对应向量,μc表示第c个文本行的所有像素点对应的映射向量的中心,δv为人为设定的类内距离;式(2)中,Ldist为距离损失,δd为人为设定的类间距离,其余字母的含义同式(1);式(3)中,Lreg为正则损失;式(4)中,L为总损失,α,β,γ分别为和Lvar,Ldist,Lreg对应的人为设定的权重。
将一张手写文档图像输入实例分割网络中,根据其对应的标签label和网络的输出logits,计算出实例分割网络的总损失L,使用Adam梯度下降方法来更新实例分割网络的权重,表示为Adam(w,L,lr),其中,lr表示梯度下降的学习率。循环执行该步骤直到损失足够小,训练完成。其中,lr采用poly学习率衰减策略,lr的计算公式如下:
lr=(init_lr-end_lr)×(1-step/decay_step)power+end_lr
式中,init_lr表示初始学习率,取值为10-4,end_lr表示终止学习率,取值分别为10-7,step为当前迭代次数,decay_step为衰减步数,取值为3500,power取值1.0.
步骤3,将待处理的手写文档图像经步骤2得到的实例分割网络中,得到映射后的映射图。
对手写文档图像进行二值化处理,处理后的图像,字符对应的像素点像素值为0,背景对应的像素点为255.并进行和步骤1相同的缩放操作。缩放前的图片记作test_img,缩放后的图片记作test_img2,
将二值化处理后的图像test_img2输入步骤2训练好的实例分割网络中,得到映射图logits.
步骤4,利用均值漂移算法对待处理的手写文档图像中的黑色像素点在映射图中对应的映射向量进行聚类操作,最终提取得到单个文本行。
记录handwrit_img中像素值为0的像素点的位置,利用sklearn库中的MeanShift聚类方法,设置bandwidth值,对映射图logits中这些位置的点所代表的向量进行聚类。聚类后,每个位置会对应一个标签值,标签值为整数,从0开始,bandwidth取值为1.0。
创建一张与test_img2大小相同的图像result_img,初始像素值为255,根据记录的值为0的像素点的位置及其对应的标签值,对result_img中相同位置的像素点赋值。即将该点的像素值赋值为该点的标签值。
利用Image库中的最近邻插值法,对result_img进行缩放,缩放后的尺寸和test_img相同,结合test_img,对result_img中像素值做进一步调整。调整结束后,result_img中像素值相同且值不为255的点属于同一文本行,即得到最终的文本行提取结果。
实施例3
本实施例提供一种基于实例分割的手写文档文本行提取方法,具体按照以下步骤进行:
步骤1,对手写文档数据集中的图片进行缩放操作,最终得到训练集;
对ICDAR2013HandSegmCont手写文档数据集中的图片进行缩放操作。假设某张图片的高和宽分别为h和w,若h≤max_size,w≤max_size,则不进行缩放操作,否则,使用Image库中的最近邻插值法,将该图片和标签均缩小为高和宽分别为h×scale和w×scale的图片,其中,其中,max_size的值取600,其中需要对h×scale和w×scale的值四舍五入。对训练集中的每张图片及其标签均进行上述操作,得到最终的训练集。
步骤2,对步骤1中得到的训练集中的数据集进行训练,以此更新得到实例分割网络的权重;
选取步骤1中任意一张手写文档图像handwrit_img,其标签图像与其大小相同,记作label,将handwrit_img输入实例分割网络中,输出的结果为一张高和宽与原图相同,但通道数为feature_dims的映射图,记作logits.其中,feature_dims为人为设定的值。feature_dims的值,具体过程为:输入图片经过一个卷积模块和一个池化模块,再经过4个Block模块,再经过ASPP模块,再经过一个反卷积模块,输出记为out1,low level features经过一个卷积层和归一化层,输出记为out2,将out1和out2在第四个维度进行concat,再经过一个卷积层和归一化层,最后经过一个反卷积层,得到最终的映射图logits.
在实例分割网络中,Conv,7*7,c=64,stride=2,表示卷积核大小为7*7,通道数为64,步长为2的卷积操作;Max_pool,3*3,stride=2表示核大小为3*3,步长为2的最大池化操作;Block1,depth1,s1,num1表示Block1中包含num1个Bottleneck,depth1和s1与Bottleneck中卷积核的通道数和步长有关;Deconv表示反卷积操作;low level features为Block1的第三个Bottleneck的第二个卷积层的输出;concat表示直接相连操作;Relu表示一个非线性激活函数;BN表示Batch Normalization归一化操作。Block1至Block4的具体参数(depth,s,num)分别为(64,2,3),(128,2,4),(256,2,6),(512,1,3)。
在Block1模块中,depth1,s,r与Bottleneck中卷积核的通道数和步长和空洞率有关。具体参数设置为,Block1参数为s=3,r=3,Block2至Block4的最后一个Bottleneck的s=1,r分别为3,5,7,其它参数与Block1相同。
在Bottleneck1模块中,Conv中的rate=r表示该卷积的空洞率为r,特征图先经过一个归一化层和激活函数层,输出记为out0,out0经过一个卷积层,再经过一个激活函数层和归一化层,再经过一个空洞卷积层,再经过一个激活函数层和归一化层,再经过一个卷积层,输出记为out1;out0经过一个卷积层,输出记为out2,将out1和out2直接相加。
在ASPP模块中,特征图经过四个卷积层,再分别经过一个激活函数层和归一化层,其中三个为空洞卷积,通过一个全局平均池化,再进行上采样,上采样后的特征图的前三个维度与四个卷积层的输出一致,对五个输出进行在第四个维度进行concat操作,再经过一个卷积层,一个激活函数层和归一化层。
实例分割网络损失函数公式如下:
L=α·Lvar+β·Ldist+γ·Lreg (4)
||·||表示向量的2范数,[x]+=max(0,x)。具体参数设置为α=1,β=1,γ=0.001,δv=0.5,δd=1.5,式(1)中,Lvar为偏差损失,C表示一张手写文档图像中的文本行数目,Nc表示属于第c个文本行的像素点的数目,C和Nc可从手写文档图像对应的标签图label中获取,向量xi表示某个文本行的第i个像素点在映射图logits中的对应向量,μc表示第c个文本行的所有像素点对应的映射向量的中心,δv为人为设定的类内距离;式(2)中,Ldist为距离损失,δd为人为设定的类间距离,其余字母的含义同式(1);式(3)中,Lreg为正则损失;式(4)中,L为总损失,α,β,γ分别为和Lvar,Ldist,Lreg对应的人为设定的权重。
将一张手写文档图像输入实例分割网络中,根据其对应的标签label和网络的输出logits,计算出实例分割网络的总损失L,使用Adam梯度下降方法来更新实例分割网络的权重,表示为Adam(w,L,lr),其中,lr表示梯度下降的学习率。循环执行该步骤直到损失足够小,训练完成。其中,lr采用poly学习率衰减策略,lr的计算公式如下:
lr=(init_lr-end_lr)×(1-step/decay_step)power+end_lr
式中,init_lr表示初始学习率,取值为10-4,end_lr表示终止学习率,取值分别为10-7,step为当前迭代次数,decay_step为衰减步数,取值为2500,power取值0.7.
步骤3,将待处理的手写文档图像经步骤2得到的实例分割网络中,得到映射后的映射图。
对手写文档图像进行二值化处理,处理后的图像,字符对应的像素点像素值为0,背景对应的像素点为255.并进行和步骤1相同的缩放操作。缩放前的图片记作test_img,缩放后的图片记作test_img2,
将二值化处理后的图像test_img2输入步骤2训练好的实例分割网络中,得到映射图logits.
步骤4,利用均值漂移算法对待处理的手写文档图像中的黑色像素点在映射图中对应的映射向量进行聚类操作,最终提取得到单个文本行。
记录handwrit_img中像素值为0的像素点的位置,利用sklearn库中的MeanShift聚类方法,设置bandwidth值,对映射图logits中这些位置的点所代表的向量进行聚类。聚类后,每个位置会对应一个标签值,标签值为整数,从0开始,bandwidth取值为0.5。
创建一张与test_img2大小相同的图像result_img,初始像素值为255,根据记录的值为0的像素点的位置及其对应的标签值,对result_img中相同位置的像素点赋值。即将该点的像素值赋值为该点的标签值。
利用Image库中的最近邻插值法,对result_img进行缩放,缩放后的尺寸和test_img相同,结合test_img,对result_img中像素值做进一步调整。调整结束后,result_img中像素值相同且值不为255的点属于同一文本行,即得到最终的文本行提取结果。
本发明手写文档文本行提取方法主要是基于卷积神经网络和聚类损失函数进行训练和测试,其中,测试过程仅需增加一个聚类操作,较为简单,容易实现;对存在粘连、交叉及字符大小、书写风格不一的手写文档,均能较好地完成对其文本行的提取,对手写文档的内容分析、单字提取、识别等后续研究提供了良好的基础,具有良好的实用价值。
Claims (1)
1.一种基于实例分割网络的手写文档文本行的提取方法,其特征在于,具体按照如下步骤进行:
步骤1:对手写文档数据集中的图片进行缩放操作,最终得到训练集;
对ICDAR2013HandSegmCont手写文档数据集中的图片进行缩放操作,其中图片的高和宽分别为h和w,若h≤max_size,w≤max_size,则不进行缩放操作,否则,则使用Image库中的最近邻插值法将该图片和标签均缩小为高和宽分别为h×scale和w×scale的图片,其中,其中max_size的值取600-1000,上面需要对h×scale和w×scale进行四舍五入,对训练集中的每张图片及其标签均进行上述操作,得到最终的训练集;
步骤2:对步骤1中得到的训练集中的数据集进行训练,以此更新得到实例分割网络的权重;
选取步骤1中任意一张手写文档图像,记作handwrit_img,其中,bandwidth取值为0.5-1.0,其中,标签图像与所述手写文档图像大小相同,记作label;将handwrit_img输入实例分割网络中,输出的结果为一张高和宽与手写文档图像相同且通道数为feature_dims的映射图图像,记作logits;其中,feature_dims为人为设定的需要值;
实例分割网络中按照实例分割网络中的损失函数对手写文档图像进行训练,所述损失函数公式如下:
L=α·Lvar+β·Ldist+γ·Lreg (4)
其中,||·||表示向量的2范数,[x]+=max(0,x);式(1)中,Lvar为偏差损失,C表示一张手写文档图像中的文本行数目,Nc表示属于第c个文本行的像素点的数目,C和Nc可从手写文档图像对应的标签图label中获取,向量xi表示某个文本行的第i个像素点在映射图logits中的对应向量,μc表示第c个文本行的所有像素点对应的映射向量的中心,δv为人为设定的类内距离;式(2)中,Ldist为距离损失,δd为人为设定的类间距离,其余字母的含义同式(1);式(3)中,Lreg为正则损失;式(4)中,L为总损失;α,β,γ分别为和Lvar,Ldist,Lreg对应的人为设定的权重;
使用Adam梯度下降方法来更新实例分割网络的权重,表示为Adam(w,L,lr),其中,lr表示梯度下降的学习率,然后循环执行上述步骤直到损失L足够小,所述训练完成;其中,lr采用poly学习率衰减策略,lr的计算公式如下:
lr=(init_lr-end_lr)×(1-step/decay_step)power+end_lr
式中,init_lr表示初始学习率,取值为10-4,end_lr表示终止学习率,取值为10-7,step为当前迭代次数,decay_step为衰减步数,取值为2500-3500,power取值0.7-1.0;
步骤3:将待处理的手写文档图像经步骤2得到的实例分割网络中,得到映射后的映射图;
对手写文档图像进行二值化处理,处理后的图像的字符间对应的像素点像素值为0,背景对应的像素点为255,对处理后的图像进行缩放操作,缩放前的图片记作test_img,缩放后的图片记作test_img2,然后将二值化处理后的图像输入训练完成的实例分割网络中,得到映射图logits;
步骤4:利用均值漂移算法对待处理的手写文档图像中的黑色像素点在映射图中对应的映射向量进行聚类操作,最终提取得到单个文本行;
具体为:记录handwrit_img中像素值为0的像素点的位置,利用sklearn库中的MeanShift聚类方法进行聚类,聚类后每个位置会对应一个标签值,标签值为从0开始的整数,创建一张与所述test_img2大小相同且初始像素值为255的图像result_img,根据对应的标签值对result_img中相同位置的像素点赋值,然后利用Image库中的最近邻插值法,对result_img进行缩放,缩放后的尺寸和test_img相同,对result_img中像素值做进一步调整,使得result_img中的像素值相同且不为255的点属于同一文本行,得到最终的文本行提取结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910562052.0A CN110348339B (zh) | 2019-06-26 | 2019-06-26 | 一种基于实例分割的手写文档文本行的提取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910562052.0A CN110348339B (zh) | 2019-06-26 | 2019-06-26 | 一种基于实例分割的手写文档文本行的提取方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110348339A CN110348339A (zh) | 2019-10-18 |
CN110348339B true CN110348339B (zh) | 2021-11-16 |
Family
ID=68183166
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910562052.0A Expired - Fee Related CN110348339B (zh) | 2019-06-26 | 2019-06-26 | 一种基于实例分割的手写文档文本行的提取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110348339B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111444818A (zh) * | 2020-03-24 | 2020-07-24 | 哈尔滨工程大学 | 一种基于cnn的市场摊区违规摊位检测方法 |
CN112308867B (zh) * | 2020-11-10 | 2022-07-22 | 上海商汤智能科技有限公司 | 牙齿图像的处理方法及装置、电子设备和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108537146A (zh) * | 2018-03-22 | 2018-09-14 | 五邑大学 | 一种印刷体与手写体混合文本行提取系统 |
CN109522900A (zh) * | 2018-10-30 | 2019-03-26 | 北京陌上花科技有限公司 | 自然场景文字识别方法及装置 |
CN109712118A (zh) * | 2018-12-11 | 2019-05-03 | 武汉三江中电科技有限责任公司 | 一种基于Mask RCNN的变电站隔离开关检测识别方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9384409B1 (en) * | 2015-01-29 | 2016-07-05 | Konica Minolta Laboratory U.S.A., Inc. | Word segmentation for document image using recursive segmentation |
CN109902622B (zh) * | 2019-02-26 | 2020-06-09 | 中国科学院重庆绿色智能技术研究院 | 一种用于登机牌信息验证的文字检测识别方法 |
-
2019
- 2019-06-26 CN CN201910562052.0A patent/CN110348339B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108537146A (zh) * | 2018-03-22 | 2018-09-14 | 五邑大学 | 一种印刷体与手写体混合文本行提取系统 |
CN109522900A (zh) * | 2018-10-30 | 2019-03-26 | 北京陌上花科技有限公司 | 自然场景文字识别方法及装置 |
CN109712118A (zh) * | 2018-12-11 | 2019-05-03 | 武汉三江中电科技有限责任公司 | 一种基于Mask RCNN的变电站隔离开关检测识别方法 |
Non-Patent Citations (5)
Title |
---|
Mask TextSpotter: An End-to-End Trainable Neural Network for Spotting Text with Arbitrary Shapes;Pengyuan Lyu et al;《arXiv:1807.02242v2》;20180801;1-18 * |
PixelLink:基于实例分割的自然场景文本检测算法;邓丹;《中国优秀硕士学位论文全文数据库信息科技辑》;20190115;第2019年卷(第1期);第3-5章 * |
Semantic Instance Segmentation with a Discriminative Loss Function;Bert De Brabandere et al;《arXiv:1708.02551v1》;20170808;第3、4.2节 * |
回归—聚类联合框架下的手写文本行提取;朱健菲等;《中国图象图形学报》;20180831;1207-1217 * |
基于贝叶斯模型的自然场景文本检测算法研究;匡娇娇;《中国优秀硕士学位论文全文数据库信息科技辑》;20180815;第2018年卷(第8期);第4章第4.2节 * |
Also Published As
Publication number | Publication date |
---|---|
CN110348339A (zh) | 2019-10-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111325203B (zh) | 一种基于图像校正的美式车牌识别方法及系统 | |
CN111783782B (zh) | 融合改进UNet和SegNet的遥感图像语义分割方法 | |
US11854244B2 (en) | Labeling techniques for a modified panoptic labeling neural network | |
CN112116605A (zh) | 一种基于集成深度卷积神经网络的胰腺ct图像分割方法 | |
CN112308866B (zh) | 图像处理方法、装置、电子设备及存储介质 | |
CN111709929B (zh) | 一种肺部癌变区域分割与分类检测系统 | |
CN111563563B (zh) | 一种手写体识别的联合数据的增强方法 | |
CN107506792B (zh) | 一种半监督的显著对象检测方法 | |
CN113379764B (zh) | 一种基于域对抗自监督学习的病理图像分割方法 | |
CN110348339B (zh) | 一种基于实例分割的手写文档文本行的提取方法 | |
CN110475123A (zh) | 一种用于显微镜视频流的手动实时拼接方法 | |
CN116486074A (zh) | 一种基于局部和全局上下文信息编码的医学图像分割方法 | |
CN111640116A (zh) | 基于深层卷积残差网络的航拍图建筑物分割方法及装置 | |
CN107169498B (zh) | 一种融合局部和全局稀疏的图像显著性检测方法 | |
CN110751271B (zh) | 一种基于深度神经网络的图像溯源特征表征方法 | |
CN113065404B (zh) | 基于等宽文字片段的火车票内容检测方法与系统 | |
CN114037720A (zh) | 基于半监督学习的病理图像分割与分类的方法及装置 | |
CN117437423A (zh) | 基于sam协同学习和跨层特征聚合增强的弱监督医学图像分割方法及装置 | |
CN111563462A (zh) | 图像元素的检测方法及装置 | |
CN114359739B (zh) | 目标识别方法及装置 | |
Song et al. | A robust framework of chromosome straightening with vit-patch gan | |
CN114708591A (zh) | 基于单字连接的文档图像中文字符检测方法 | |
CN113470035A (zh) | 一种基于序列图像误差网络校正的图像分割方法 | |
CN114111647A (zh) | 一种基于人工智能的绝缘子伞裙破损面积测量方法及测量系统 | |
CN112950655A (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20211116 |