1.一种基于改进MaskRCNN与SEED框架的自然场景文字检测识别方法,其特征在于,具体包括如下步骤:
步骤1,采集待识别文字图片,通过Labelme对图片内文字的位置进行多边形框标注,并对文字内容进行标注;
步骤2,利用影像变换方法对上述标注后的待识别文字图片进行预处理,将预处理后的图片按照一定比例划分为训练集、验证集与检测集;
步骤3,构建目标检测器与识别器,并利用训练集与验证集分别训练目标检测器与识别器,得到训练好的目标检测器与识别器;所述目标检测器,用于定位图片文字区域;所述识别器,用于识别图片中文字内容;
步骤4,利用改进的RoI Masking方法连接训练好的目标检测器与识别器,并利用距离补偿值对目标检测器的输出进行调整,得到文字检测识别模型;
步骤5,将步骤2所述检测集输入至步骤4所述文字检测识别模型,输出文字识别结果。
2.根据权利要求1所述的一种基于改进MaskRCNN与SEED框架的自然场景文字检测识别方法,其特征在于,步骤2所述利用影像变换方法对上述标注后到的待识别文字图片进行预处理,方法如下:
步骤2.1,利用Python图片处理包中的Image读取图片的尺寸,获取每张图片的长与宽;
并选择其中最大的长度值记作MAX_length,最大的宽度值记作MAX_width;
步骤2.2,对每一张图片比较其长与宽大小;若图片长度值大于宽度值,则将该图片等比例放大至其长度值为MAX_length的大小;若图片长度值不大于宽度值,则将该图片等比例放大至其宽度值为MAX_length的大小;
步骤2.3,将全局损失函数作为约束条件,利用模拟退火算法将步骤2.2得到的图片进行两两配对;其中,全局损失函数如下:式中,LOSS为全局损失函数值,SUM()为求和函数,Length1为配对的图片1的长度值,Length2为配对的图片2的长度值,Width1为配对的图片1的宽度值,Width2为配对的图片2的宽度值,MAX()为求最大值函数;
步骤2.4,将拼接后的图片统一化调整尺寸大小,并将调整后的图片集转化为COCO数据集。
3.根据权利要求1所述的一种基于改进MaskRCNN与SEED框架的自然场景文字检测识别方法,其特征在于,步骤3所述目标检测器,具体为MaskRCNN网络模型,包括数据输入模块、主体网络、RPN网络和ROI模块;
其中,所述数据输入模块为特征金字塔FPN,用于对输入图片进行不同尺度的图片特征提取;所述主体网络为ResNet101;所述RPN网络,用于对图片特征图进行处理并生成候选区域;所述ROI模块,用于判断候选区域是否有文字内容,若有文字内容则生成文字边框,同时预测分割得到蒙板Mask。
4.根据权利要求1所述的一种基于改进MaskRCNN与SEED框架的自然场景文字检测识别方法,其特征在于,步骤3所述识别器,具体为SEED框架,包括编码器、解码器与语义模型;所述编码器采用CNN+LSTM的结构;所述解码器采用注意力机制+RNN的结构;所述语义模型是由两层全连接层与预训练语言模型构成的;所述预训练语言模型采用Facebook开源的Fasttext模型。
5.根据权利要求1所述的一种基于改进MaskRCNN与SEED框架的自然场景文字检测识别方法,其特征在于,所述步骤3中,利用训练集与验证集分别训练目标检测器与识别器,方法如下:
输入:待识别文字图片;
目标检测器输出:蒙版Mask和边框Box;
识别器输出:文字内容;
设置最大训练epoch次数为30,初始化学习率为0.003,在10次epoch后调整为0.001,批处理大小设为4;利用ADAM优化器进行梯度更新;
训练过程中,每训练完成一个周期时,则利用验证集计算当前训练周期的损失函数值,并在当前训练周期下选择损失函数值最小的模型作为优化模型更新模型参数;直至达到最大训练epoch次数时,训练结束。
6.根据权利要求1所述的一种基于改进MaskRCNN与SEED框架的自然场景文字检测识别方法,其特征在于,步骤4所述改进的RoI Masking方法,用于增强目标检测器定位出的文字区域特征,方法如下:
当图片输入至训练好的目标检测器中,得到蒙版Mask和边框Box,将蒙版Mask覆盖的区域以0.13的权重叠加到边框Box所覆盖的图片的特征图像上,由此增强图片中文字区域的特征,表示如下:
IMAGE=image×(1+MATRIXMask)*MATRIXBox式中,IMAGE为信息增强后的特征图片,image为输入的图片,MATRIXMask为蒙版Mask的矩阵信息,MATRIXBox为边框Box的矩阵信息。
7.根据权利要求6所述的一种基于改进MaskRCNN与SEED框架的自然场景文字检测识别方法,其特征在于,步骤4所述利用距离补偿值对目标检测器的输出进行调整,表示如下:式中,Mask(X,Y)为蒙版Mask上点(X,Y)的坐标,Box(X,Y)为边框Box上点(X,Y)的坐标,Distance()为距离公式,frame(X,Y)为利用距离补偿值对点Mask(X,Y)修正后得到的坐标,当对边框Box在对应横轴方向上进行修正时,length(X,Y)=length(X),表示边框Box在横轴上的距离总长度;当对边框Box在对应纵轴方向上进行修正时, length(X,Y)=length(Y),表示边框Box在纵轴上的距离总长度。