一种基于深度学习的手写气象档案资料的字符识别方法与流程

文档序号:23222851发布日期:2020-12-08 15:05阅读:271来源:国知局
一种基于深度学习的手写气象档案资料的字符识别方法与流程

本发明涉及手写气象档案资料识别技术领域。具体地说是一种基于深度学习的手写气象档案资料的字符识别方法。



背景技术:

气象档案为气象监测与科学研究等各个领域提供着重要的数据支持,具有很高的保存与研究价值。现存许多的历史气象档案多为手写纸质档案,为了更妥善的保存与保护,利用科技手段数字化储存十分有必要。气象档案数字化的常规方法是人工比对数据并录入,最终以电子档案的形式进行保存。人工整理流程繁杂,录入精度较低且耗时太长,通常需要投入大批量的人力物力,效率也得不到保障。近些年来,人工智能技术取得长足进步,为工业生产带来了诸多便利,以人工智能代替人工是时代的潮流。采用深度学习的方法对要录入的内容进行自动识别,减少人工工作量,提升工作效率。纸质气象档案数字化将大大方便档案的管理、传播与使用。为了长久的保护保存档案,更有效的利用气象资料,将气象档案数字化非常有必要。

字符识别是气象档案数字化的重要任务。字符识别任务可分为手写字识别和印刷字识别,手写字符识别又可分为联机识别与脱机识别。印刷体字符形状规则,结构清晰,便于识别。手写字符受每个人的用笔方式,书写习惯,文化背景等因素的影响,书写的字符差异较大,较难识别。脱机识别是指先将纸质文字信息通过扫描仪等扫描仪器转换为图片信息,再进行快速识别的过程,大多用于工整清晰的印刷体字符识别。联机识别是指利用触压电子屏,电子手写板等仪器手动书写,仪器根据书写的笔画与顺序进行识别,现在广泛应用于移动设备输入法程序的手写输入识别,识别精度较高。纸质气象档案数字化属于脱机识别,但手写字符的复杂性加大了识别的难度。

近年来,人工智能发展迅猛,深度学习技术在各个领域都有着十分广泛的应用,包括数字图像处理,语音识别,数据分析等。以人工智能代替人工是大势所趋。在图像识别领域,深度神经网络以图像各通道像素值为输入数据,通过隐含层的层层计算,得到预测结果,通过大量的图片数据反复训练,不断修改隐含层的参数值,减少预测值与真实标签数据之间的差异,使预测值逼近真实值,不断提高预测精度。手写字识别是计算机图像处理的重要组成部分,深度学习对此有着广泛的研究。



技术实现要素:

为此,本发明所要解决的技术问题在于提供一种基于深度学习的手写气象档案资料的字符识别方法,该方法针对手写字体的问题,在粘连字符识别问题上有明显的优势,且能准确的甄别出涂改字符,能够显著减少工作量,提高工作效率。

为解决上述技术问题,本发明提供如下技术方案:

一种基于深度学习的手写气象档案资料的字符识别方法,包括如下步骤:

(1)图像预处理与字符识别数据集制作:将纸质气象档案扫描为数字图像格式,先做图像预处理,再使用ctpn算法定位字符位置,和人工书写的影像数据共同构建字符识别数据集;

(2)字符识别:将字符识别数据集送入crnn识别模型进行识别;

(3)检查识别结果。

上述一种基于深度学习的手写气象档案资料的字符识别方法,在步骤(1)中,图像预处理包括:

(a)中值滤波:对图像做了中值滤波处理,平滑图像信息,为图像二值化做准备;

(b)otsu二值化:采取otsu算法自动选取二值化阈值,将降噪过的图片做自适应阈值二值化处理;

(c)霍夫直线检测:使用霍夫变换检测倾斜角度并校正图像,霍夫变换将图片信息由图像空间变换到霍夫空间,图像空间当中的相交直线转换为霍夫空间中的点,在霍夫空间形成峰值,峰值就是相交直线的个数;采用霍夫变换对二值化图片中的长直线进行提取,获得各个直线的倾斜角度;

(d)倾斜校正:对扫描图像进行倾斜矫正,取所有倾斜角的均值,用旋转函数将图像进行校正,以保证后面的步骤能够顺利进行;

(e)表格提取:对倾斜校正过的二值图做形态学开运算,先做腐蚀后做膨胀,其中腐蚀与膨胀的核分别为n*1与1*n,只保留竖线,剔除了横线;再做1*n的腐蚀和n*1的膨胀,只保留了横线,剔除了竖线;腐蚀操作会将文字非直线像素抹消,再将两次操作的结果叠合;

(f)按表格截取局部图像:调用opencv函数搜索图中轮廓,根据轮廓信息裁剪原始图像并保存。

上述一种基于深度学习的手写气象档案资料的字符识别方法,在步骤(1)中,利用ctpn算法进行文本定位制作数据集:

先随机选取了50张扫描图片,用xnview软件或其他截图软件将字符从扫描图片中截取并保存;然后将数据分成小批量送入模型,利用ctpn网络结构进行模型训练,每一批32张图片,共训练20轮次,得到文本定位后的结果;在ctpn定位模型训练完成后,又以定位模型对文本目标位置进行提取,自动裁剪保存。

上述一种基于深度学习的手写气象档案资料的字符识别方法,在步骤(1)中,制作人工书写数据集:使用人工书写的方式按照档案数据的形式将数据誊写与纸面上,再将这些数据送入扫描仪成像,作为字符识别的数据集,裁剪保存;

邀请10人按照档案数据的形式将数据誊写于纸面上,再将这些数据送入扫描仪成像,裁剪保存;所有裁剪图片由人工比对图片字符信息进行命名,总共120178张;

在人工命名过程中,将裁剪图片中含有涂改字符的图片挑出,共5516张,命名为‘错’,即对应标签为‘错’,并不是对应修改后的信息;

挑出字迹不清难以区分,可能影响训练精度的图片,标签为字符信息,共7124张;

将所有挑出的图片单独存于一个文件夹,再从剩余字迹清晰无涂改的图片中随机挑选12000张图片,共24640张图片共同作为低质量数据集;

剩余图片制作高质量数据集,取出剩余图片的十分之一作为测试集;

低质量数据集和高质量数据集这两个数据集分别将所有裁剪图像的图片路径与标签名称按行存储于单独的txt文件中,作为两个数据集的标签文件。

上述一种基于深度学习的手写气象档案资料的字符识别方法,在步骤(2)中,包括:

(2-1)特征序列提取:采用vgg网络作为卷积提取网络提取图像特征,并对输出张量的形状做变换,以作为特征序列输入rnn;

(2-2)在vgg网络之后,构造blstm双向循环网络来对输入序列逐一预测;

(2-3)转录结构位于crnn的顶部,用于将循环结构的预测序列转换成结果序列,是最终的输出结果;

整个网络用统一的损失函数进行训练及优化。

上述一种基于深度学习的手写气象档案资料的字符识别方法,在步骤(2-1)中,特征序列提取是在将图片输入crnn模型前,所有图像都将高度设为统一的定值,宽度随比例变换;经过vgg网络的卷积池化层从输入图像中提取出空间特征信息,再输入到循环网络;特征序列是一组有序特征向量,而每个特征向量都是卷积输出特征图上的一列数据,从左到右顺序排列;特征向量的宽度为一个特征点,由于输入图像高度相同,所以特征向量的高度是不变的,特征向量的个数为特征图的宽度。

上述一种基于深度学习的手写气象档案资料的字符识别方法,在步骤(2-2)中:

构造blstm双向循环网络:序列标注是设rnn输入特征序列为x=x1,...,xt,向量xt的输出标签为yt;rnn的神经元由输入层、隐含层、输出层相互连接;输入的序列向量xt,经由非线性函数推算后,获得内部状态ht,以ht推算预测值yt;此函数除了当前输入xt以外,还将上一时刻内部状态ht-1作为输入参数,即ht=g(xt,ht-1);以此方式获取上一时刻的信息{xt'}t'<t用以预测。

上述一种基于深度学习的手写气象档案资料的字符识别方法,在步骤(2-3)中,转录是将rnn得到的预测序列转换为标签序列的过程,取每一帧概率最大的预测标签;crnn采用了ctc转录方法,将所有预测标签进行去重整合处理,得到最后的结果;

若字符较宽,则同一个字符可能被两个序列预测,ctc会将邻近的字符序列去重处理;若含有重复字符的序列,ctc加入空白符机制,用‘-’代表空白符作为分隔。

上述一种基于深度学习的手写气象档案资料的字符识别方法,网络训练中训练集表示为χ={ii,ii},训练图像表示为ii,标签序列表示为ii,经过卷积层和循环层得到的预测值表示为yi;

最终以预测的条件概率的负对数似然作为损失函数:

损失函数值越小,预测结果越逼近真实标签,训练过程转化为寻找梯度值为零的过程;

采用动态学习率adadelta方法根据梯度自动计算每一维的学习率,最后根据之前准备的两个高质量数据集和低质量数据集分别训练两个识别模型。

上述一种基于深度学习的手写气象档案资料的字符识别方法,在步骤(3)中,crnn模型的识别结果按行保存在txt文件中,一个图片名对应一个识别结果;在测试集中对crnn模型进行精度验证,对于两个模型都检测错误的判定为检测失败。

本发明的技术方案取得了如下有益的技术效果:

本发明将纸质气象档案扫描为数字图像格式,先做图像预处理和定位字符数据集,根据档案特点提取出表格区域,再使用ctpn深度学习模型在小区域范围内定位字符位置。最后将定位好的文本送入识别模型进行识别。字符识别选择了对序列信息敏感,能够识别粘连字符的crnn模型,但crnn方法无法识别涂改字符,会将划掉的字符一并识别为错误的字符。为了解决涂改字符识别的问题,本发明准备了高低质量两个数据集,分别训练了两个具有识别差异的crnn模型,将相同的识别结果作为输出值,结果不同的数据需要人工修改,利用数据集间的差异剔除涂改字符。为了提高训练精度,本发明准备了大量的训练数据,花费了较多的时间整理数据标签,最终达到很高的识别正确率。实验结果表明本发明工作可以显著减少人工工作量,提高工作效率。

在1000张测试图片中将涂改字符全部剔除出来,并达到了99.7%的识别精度。本发明提出的方法定位出了所有的字符,能够准确识别出粘连字符,并且利用模型间的差异,将涂改字符剔除出来,设置结果为“错”,用于后期人工修改,保证了最终的识别精度。

对于涂改字符的识别,本发明构建了两个特征不完全相同的训练数据集分别训练两个模型,数据集之间的差异性使训练的两个模型之间同样具有差异性,最后根据差异剔除涂改字符。

发明采用了不需要手动设定的动态学习率adadelta方法,adadelta方法根据梯度自动计算每一维的学习率。adadelta方法的模型优化收敛速度更快。

附图说明

图1本发明手写气象档案资料的字符识别方法的流程示意图。

具体实施方式

本实施例的手写气象档案资料的字符识别方法的流程如图1所示,具体包括如下三个步骤:

(1)图像预处理与字符识别数据集制作:图像预处理主要实施在表格提取的步骤,预处理主要包括降噪、二值化、倾斜矫正、表格提取、按表格截取局部图像;字符识别数据集制作主要包括利用ctpn算法定位字符位置,和人工书写的影像数据共同构建字符识别数据集。

(2)字符识别:将字符识别数据集送入crnn识别模型进行识别;使用crnn网络结构,采用vgg网络作为卷积提取网络提取图像特征,并对输出张量的形状做变换,以作为特征序列输入rnn。在vgg网络之后,构造了blstm双向循环网络来对输入序列逐一预测。转录结构位于crnn的顶部,用于将循环结构的预测序列转换成结果序列,是最终的输出结果。整个网络用统一的损失函数进行训练及优化。

(3)检查识别结果。本发明提出的字符识别方法能够准确识别出粘连字符,并且利用模型间的差异,将涂改字符剔除出来,设置结果为“错”,用于后期人工修改,保证了最终的识别精度。

在步骤(1)中,图像预处理主要实施在表格提取的步骤,预处理操作有:

(a)中值滤波:对图像做了中值滤波处理,平滑图像信息,为图像二值化做准备;

(b)otsu二值化:采取otsu算法自动选取二值化阈值,将降噪过的图片做自适应阈值二值化处理;

(c)霍夫直线检测:使用霍夫变换检测倾斜角度并校正图像,霍夫变换将图片信息由图像空间变换到霍夫空间,图像空间当中的相交直线转换为霍夫空间中的点,在霍夫空间形成峰值,峰值就是相交直线的个数;采用霍夫变换对二值化图片中的长直线进行提取,获得各个直线的倾斜角度;

(d)倾斜校正:对扫描图像进行倾斜矫正,取所有倾斜角的均值,用旋转函数将图像进行校正,以保证后面的步骤能够顺利进行;

(e)表格提取:对校正过的二值图做形态学开运算,先做腐蚀后做膨胀,其中腐蚀与膨胀的核分别为n*1与1*n,只保留竖线,剔除了横线;再做1*n的腐蚀和n*1的膨胀,只保留了横线,剔除了竖线;腐蚀操作会将文字非直线像素抹消,再将两次操作的结果叠合;

(f)按表格截取局部图像:调用opencv函数搜索图中轮廓,根据轮廓信息裁剪原始图像并保存。

字符识别数据集制作:

字符识别数据集中已经保存了部分人工勾画的字符位置数据,使用python语言调用opencv开源库进行图像处理,读取图像及对应txt文件中的字符位置信息,自动裁剪保存。

仅仅有这些数据是不够的,为了增加数据量,利用ctpn算法进行文本定位制作数据集:随机选取了50张扫描图片,用xnview软件或其他截图软件将字符从扫描图片中截取并保存;然后将数据分成小批量送入模型,利用ctpn网络结构进行模型训练,每一批32张图片,共训练20轮次,得到文本定位后的结果;在ctpn定位模型训练完成后,又以定位模型对文本目标位置进行提取,自动裁剪保存。

为了增加样本的多样性,增强模型的稳定性,制作人工书写数据集:使用人工书写的方式按照档案数据的形式将数据誊写与纸面上,再将这些数据送入扫描仪成像,作为字符识别的数据集,裁剪保存。

具体为:邀请10人按照档案数据的形式将数据誊写于纸面上,再将这些数据送入扫描仪成像,裁剪保存;所有裁剪图片由人工比对图片字符信息进行命名,总共120178张;

在人工命名过程中,将裁剪图片中含有涂改字符的图片挑出,共5516张,命名为‘错’,即对应标签为‘错’,并不是对应修改后的信息;

挑出字迹不清难以区分,可能影响训练精度的图片,标签为字符信息,共7124张;

将所有挑出的图片单独存于一个文件夹,再从剩余字迹清晰无涂改的图片中随机挑选12000张图片,共24640张图片共同作为低质量数据集;

剩余图片制作高质量数据集,取出剩余图片放的十分之一作为测试集;

低质量数据集和高质量数据集这两个数据集分别将所有裁剪图像的图片路径与标签名称按行存储于单独的txt文件中,作为两个数据集的标签文件。

在步骤(2)中:

(2-1)特征序列提取是在将图片输入crnn模型前,所有图像都将高度设为统一的定值,宽度随比例变换;经过vgg网络的卷积池化层从输入图像中提取出空间特征信息,再输入到循环网络;特征序列是一组有序特征向量,而每个特征向量都是卷积输出特征图上的一列数据,从左到右顺序排列;特征向量的宽度为一个特征点,由于输入图像高度相同,所以特征向量的高度是不变的,特征向量的个数为特征图的宽度。

(2-2)序列标注是设rnn输入特征序列为x=x1,...,xt,向量xt的输出标签为yt;rnn的神经元由输入层、隐含层、输出层相互连接;输入的序列向量xt,经由非线性函数推算后,获得内部状态ht,以ht推算预测值yt;此函数除了当前输入xt以外,还将上一时刻内部状态ht-1作为输入参数,即ht=g(xt,ht-1);以此方式获取上一时刻的信息{xt'}t'<t用以预测。

然而随着循环的开始,反向传播随层数的增加造成了梯度消失的问题。梯度消失是困扰传统rnn的最大问题,有效的上下文范围被限制。lstm的出现,解决了这个问题。lstm由存储单元,输入门,输出门以及遗忘门组成。与传统rnn仅有一个隐藏层状态相比,lstm增加了一个用于保存长期信息的单元状态,这个设计使其能够获得远距离的依赖关系。

(2-3)转录是将rnn得到的预测序列转换为标签序列的过程,取每一帧概率最大的预测标签;crnn采用了ctc转录方法,将所有预测标签进行去重整合处理,得到最后的结果。

因为预测序列对应原图的宽度是固定的,若字符较宽,则同一个字符可能被两个序列预测,ctc会将邻近的字符序列去重处理;若含有重复字符的序列,ctc加入空白符机制,用‘-’代表空白符作为分隔。

例如手写字符‘ab’可能会被识别为‘aaabb’,ctc会将邻近的字符序列去重处理;对于‘good’这类本就含有重复字符的序列,ctc加入了空白符机制,用‘-’代表空白符作为分隔,则序列‘gggooo-oodd’会被映射为‘good’。

整个网络用统一的损失函数进行训练及优化。

网络训练中训练集表示为χ={ii,ii},训练图像表示为ii,标签序列表示为ii,经过卷积层和循环层得到的预测值表示为yi;

最终以预测的条件概率的负对数似然作为损失函数:

损失函数值越小,预测结果越逼近真实标签,所以训练过程转化为寻找最优解(梯度值为零)的过程。本发明选用了随机梯度下降进行训练。利用反向传播算法迭代计算梯度。

在学习率的设置上,本发明采用了不需要手动设定的动态学习率adadelta方法,adadelta方法根据梯度自动计算每一维的学习率。模型优化收敛速度比一般方法更快是选用adadelta方法的另一个重要因素。最后根据之前准备的两个高低质量数据集分别训练两个识别模型。

其中对于涂改字符的识别,本发明构建了两个特征不完全相同的训练数据集分别训练两个模型,数据集之间的差异性使训练的两个模型之间同样具有差异性,最后根据差异剔除涂改字符。

在步骤(3)中:crnn模型的识别结果按行保存在txt文件中,一个图片名对应一个识别结果。在测试集中对crnn模型进行精度验证,对于两个模型都检测错误的判定为检测失败。

在1000张测试图片中将涂改字符全部剔除出来,并达到了99.7%的识别精度。

本发明提出的方法定位出了所有的字符,能够准确识别出粘连字符,并且利用模型间的差异,将涂改字符剔除出来,设置结果为“错”,用于后期人工修改,保证了最终的识别精度。

通过对手写气象档案资料的字符识别方法的验证,表明本发明方法定位和识别的字符能达到较高的精度,具有较高的实用性。

显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本专利申请权利要求的保护范围之中。

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