基于深度学习的文档单字坐标检测和修正方法及系统与流程

文档序号:29126912发布日期:2022-03-05 00:19阅读:271来源:国知局
1.本发明属于文档单字检测
技术领域
:,具体涉及基于深度学习的文档单字坐标检测和修正方法及系统。
背景技术
::2.ocr是一种通过计算机视觉技术将电子文档上的字符进行提取和转化为计算机可读的文本数据的技术。这里的电子文档可以是通过扫描仪得到的纸质文档的影印件,也可以是通过高拍仪、相机、手机等拍摄得到的纸质文档的拍摄件,ocr技术在本发明中主要用于识别文档中的文字符号。3.传统的文字检测方法通常主要依赖于从输入图像中提取手工设计的特征向量。连接组件分析标签和滑动窗口等方法被广泛用于该任务。目前,随着深度学习技术的发展,ocr检测识别技术都得到了显著的改善。不同于传统的ocr检测技术框架,现有的ocr检测模型主要有基于分割的检测模型和基于回归的检测模型的两大类模型。依赖于深度学习的ocr文字检测一般用到的模型算法主要有ctpn、db、east、pixellink等。4.传统的ocr识别过程主要分为两步:单字切割和分类。而目前基于深度学习的文字识别主要是端到端的文字识别,即不需要显式进行文字切割,而是将直接文字识别转化为序列学习问题。目前基于深度学习的端到端ocr技术主要有:crnnocr和attentionocr。其主要区别在于翻译层的不同。这两大主流技术在其特征学习阶段都采用了cnn+rnn的网络结构,crnnocr在对齐时采取的方式是ctc算法,而attentionocr采取的方式则是attention机制。5.目前深度学习的ocr检测算法输出是文本行内容,再由文字识别模型,将文本行内容识别转化为序列问题,识别出文本行内容。在此技术上进行单字坐标的检测,进而辅助定位到文档中文字信息,对文档文本进行审核、对比、纠错。6.现有的文档单字检测相关技术存在以下缺点:1、无法精确定位文本行中单字位置:目前主流的深度学习算法检测的是整个文本行的区域,识别模型是基于文本行进行识别,很少有针对单字符检测的深度学习模型,一般流程是先对文档图像进行预处理,对原图进行文字位置的检测,检测结果可能是水平矩形框,也有可能是倾斜的矩形框。再将原图中文字框对应的图片切片,在进行旋转矫正,得到水平的切片图;得到切片图后再以此送入识别网络,识别出相应的文字内容。其中切片文本做了旋转矫正,对应原图位置困难,并且检测区域的单字宽高不一,其中标点符号所占的区域较小,需要对每个文字字符进行长高自适应检测。7.2、传统的检测技术效果不稳定:如传统的检测单字算法:最大稳定极值区域(mser-maximallystableextremalregions),是一种检测图像中文本区域的传统图像算法,主要是基于分水岭的思想来对图像进行斑点(blob)区域检测。mser对灰度图像取阈值进行二值化处理,阈值从0到255依次进行递增,阈值的递增类似于分水岭算法,部分文字边缘会被处理,尤其是一些小的标点符号,而且阈值设定困难,检测效果不稳定。8.基于上述问题,设计一种能准确、高效、稳定地解析文本图片中的文本行位置内容,根据识别的文本行内容和结果,对ctc进行优化,结合位置变化信息进行逆变换,进而实现单字符的识别和检测的基于深度学习的文档单字坐标检测和修正方法及系统,就显得十分重要。9.例如,申请号为cn201911225976.8的中国专利文献描述的一种基于多任务深度学习的票据文本检测方法,所述方法包括:构建多层卷积神经网络作为图像特征提取骨干网络,实现票据图像的特征提取;在卷积特征图上标注票据文本区域及区域中心线并训练,实现票据文本信息区域分割与文本中心线检测;在票据文本信息区域内通过滑动窗口方法沿着文本中心线前行,实现票据文本信息区域的单字符分割;依次对分割后的单个字符进行分类识别,形成完成票据文本信息。虽然利用深度学习强大的特征提取、归纳能力,提出采用端到端的多任务学习方法,实现票据文本区域分割、文本字符分割、文本字符识别,解决经典票据文本信息检测方法适用性不足、效率不高的问题,但是其缺点在于,仍然存在无法精确定位文本行中单字位置以及检测技术效果不稳定的问题。技术实现要素:10.本发明是为了克服现有技术中,现有的文档单字检测技术存在无法精确定位文本行中单字位置以及检测技术效果不稳定的问题,提供了一种能准确、高效、稳定地解析文本图片中的文本行位置内容,根据识别的文本行内容和结果,对ctc进行优化,结合位置变化信息进行逆变换,进而实现单字符的识别和检测的基于深度学习的文档单字坐标检测和修正方法及系统。11.为了达到上述发明目的,本发明采用以下技术方案:基于深度学习的文档单字坐标检测和修正方法,包括如下步骤;s1,将文档处理成文本图片,并对文本图片进行图像预处理;s2,对图像预处理后的文本图片进行文字检测,识别出文本行,并对识别出的文本行进行矫正;s3,对矫正后的文本行进行文字识别;s4,对文字识别中的ctc解码结果进行优化,获得单字坐标;s5,对单字坐标进行修正,定位到单字的文字中心;s6,根据每个单字的文字中心,并结合矫正信息进行坐标逆变换以及宽度的换算,反算获得文本行中单字的坐标信息,同时获得单字对应的字符位置内容。12.作为优选,步骤s1中所述图像预处理包括对图片进行亮度、对比度、光照、透视变形和残缺遮挡处理。13.作为优选,步骤s2包括如下步骤:s21,用框标识出文本图片中所有文字的位置,并输出所有文本行位置;s22,对所有倾斜、宽高比例不协调的文本行进行旋转矫正,同时将旋转辅助标志位传入文字识别过程。14.作为优选,步骤s3包括如下步骤:s31,采用crnn+ctc网络结构,在卷积层内将文本行图片转换为卷积特征矩阵;s32,将文本行图片在固定长宽比的情况下缩放到32*w*3,w表示任意宽度,然后经过cnn网络后变为1*(w/4)*512,同时针对深层双向lstm网络设置t=(w/4),并将卷积特征矩阵输入深层双向lstm网络;s33,对深层双向lstm网络的输出内容做softmax后,将文本行内容转化为单字符信息输出。15.ctc是将crnn输出作为输入,计算最大概率对应的输出序列。如果假设时间片之间相互独立,那么只需将每一时间片对应概率最大的字符作为预测值,然后组成序列,最后做去重等处理得到最终结果。16.作为优选,步骤s4包括如下步骤:s41,设定列表a存储ctc解码的全部结果,列表b对相邻的解码结果进行计数;s42,得到居中的单字解码结果:单字坐标=列表a中的ctc解码结果+列表b/2。17.作为优选,步骤s5包括如下步骤:s51,设定单字的坐标序号为i,则文本行输出的单字中心点坐标为:式中,i为文本行中单字对应的坐标序号,为单字符坐标修正后的横坐标,为单字符坐标修正后的纵坐标;设定在保持文本行图片长宽比的情况下,将文本行图片的高缩放到32,则各个文字的中心点高度均为16;s52,设定旋转矫正后的文本行中,单字中心点坐标为:式中,为旋转矫正后的单字横坐标,为旋转矫正后的单字纵坐标,为文本行图片的宽度,透视变换为:其中,x、y为源点,x、y为目标点,m为透视变换矩阵,z为目标点在图像坐标系中z轴上的坐标;则最终得到透视变换后的单字中心点坐标为:其中,xi、yi、zi分别表示透视变换后单字在图像坐标系的横坐标、纵坐标和z轴坐标。18.作为优选,步骤s6包括如下步骤:s61,对旋转矫正后的单字中心点坐标,进行逆变换得到的坐标为:其中,,为透视变换后的单字中心点坐标;s62,求解步骤s61中的方程组,得到源坐标:式中,为反算后的单字中心点横坐标,为反算后的单字中心点纵坐标,所述源坐标对应检测出的文本行单字坐标;s63,设定两个单字ctc解码的中心点距离的一半,为对应单字的宽度,同时结合ctc解码的结果内容,获得单字对应的字符位置内容。19.本发明还提供了基于深度学习的文档单字坐标检测和修正系统,包括:文本检测模块,用于对图像预处理后的文本图片进行文字检测,识别出文本行,并对识别出的文本行进行矫正;文本识别模块,用于对矫正后的文本行进行文字识别;ctc优化模块,用于对文字识别中的ctc解码结果进行优化,获得单字坐标;单字符坐标修正模块,用于对单字坐标进行修正,定位到单字的文字中心,并根据每个单字的文字中心,并结合矫正信息进行坐标逆变换以及宽度的换算,反算获得文本行中单字的坐标信息,同时获得单字对应的字符位置内容。20.作为优选,基于深度学习的文档单字坐标检测和修正系统还包括;文本图片生成模块,用于将文档处理成文本图片。21.作为优选,基于深度学习的文档单字坐标检测和修正系统还包括;图像预处理模块,用于对文本图片进行图像预处理。22.本发明与现有技术相比,有益效果是:(1)本发明独创性地将对文本识别进行优化;首先借助ocr通用小模型的文字检测和文字识别技术,快速定位文本图片中文本行信息位置;其次,采用ctc优化、字符序列编码自适应字符宽高等技术对识别的单字内容进行中心点修正,以便得到更为准确的文字中心点;最后对于文本识别时的输入信息作为单字坐标的先验,引入了文字宽度和高度的修正,进而确定对应的文字区域,可以大幅缩小单字区域的误差,通过一系列逆变换可以精确得到单字在原图的位置;(2)通过本发明技术方案,可以实现文本识别场景下的高效、准确、鲁棒的单字检测和识别。附图说明23.图1为本发明中基于深度学习的文档单字坐标检测和修正方法的一种流程图;图2为本发明中文本识别过程的一种流程图;图3为本发明中文字矫正位置变换操作过程的一种流程图;图4为本发明实施例所提供的单字检测应用于文档比对场景下的一种流程图。具体实施方式24.为了更清楚地说明本发明实施例,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。25.实施例1:如图1所示,本发明提供了基于深度学习的文档单字坐标检测和修正方法,包括如下步骤;s1,将文档处理成文本图片,并对文本图片进行图像预处理;所述图像预处理包括对图片进行亮度、对比度、光照、透视变形和残缺遮挡处理。26.s2,对图像预处理后的文本图片进行文字检测,识别出文本行,并对识别出的文本行进行矫正;步骤s2具体包括如下步骤:s21,用框标识出文本图片中所有文字的位置,并输出所有文本行位置;s22,对所有倾斜、宽高比例不协调的文本行进行旋转矫正,同时将旋转辅助标志位传入文字识别过程;相比于传统检测技术,本发明基于深度学习的文字检测包含大量的标注样本,且更加稳定和可控。将旋转辅助标志位传入文字识别过程,用于进一步辅助定位单字符位置。27.s3,对矫正后的文本行进行文字识别;如图2所示,步骤s3具体包括如下步骤:s31,采用crnn+ctc网络结构,在卷积层内将文本行图片转换为卷积特征矩阵;s32,将文本行图片在固定长宽比的情况下缩放到32*w*3,w表示任意宽度,然后经过cnn网络后变为1*(w/4)*512,同时针对深层双向lstm网络设置t=(w/4),并将卷积特征矩阵输入深层双向lstm网络;s33,对深层双向lstm网络的输出内容做softmax后,将文本行内容转化为单字符信息输出。28.深层双向lstm网络有256个隐藏节点,经过lstm后变为长度为t×nclass的向量,再经过softmax处理,列向量每个元素代表对应的字符预测概率,最后再将这个t的预测结果去冗余合并成一个完整识别结果即可。29.s4,对文字识别中的ctc解码结果进行优化,获得单字坐标;步骤s4具体包括如下步骤:s41,设定列表a存储ctc解码的全部结果,列表b对相邻的解码结果进行计数;s42,得到居中的单字解码结果:单字坐标=列表a中的ctc解码结果+列表b/2。30.s5,对单字坐标进行修正,定位到单字的文字中心;得到ctc解码的序号位置,就可以反推单字符在文本行中的大致位置,如图3所示,步骤s5具体包括如下步骤:s51,设定单字的坐标序号为i,则文本行输出的单字中心点坐标为:式中,i为文本行中单字对应的坐标序号,为单字符坐标修正后的横坐标,为单字符坐标修正后的纵坐标;设定在保持文本行图片长宽比的情况下,将文本行图片的高缩放到32,则各个文字的中心点高度均为16;由于padding是在图片后进行padding,故不影响单字符的位置,在旋转矫正中,文本行会检测出宽度小于高度的文本行进行旋转,确保高度为32。31.s52,设定旋转矫正后的文本行中,单字中心点坐标为:式中,为旋转矫正后的单字横坐标,为旋转矫正后的单字纵坐标,透视变换为:其中,x、y为源点,x、y为目标点,m为透视变换矩阵,z为目标点在图像坐标系中z轴上的坐标;其中,m矩阵内的各个aij为透视变换矩阵m的具体数值,通过计算得到。32.则最终得到透视变换后的单字中心点坐标为:其中,xi、yi、zi分别表示透视变换后单字在图像坐标系的横坐标、纵坐标和z轴坐标。33.s6,根据每个单字的文字中心,并结合矫正信息进行坐标逆变换以及宽度的换算,反算获得文本行中单字的坐标信息,同时获得单字对应的字符位置内容。34.步骤s6具体包括如下步骤:s61,对旋转矫正后的单字中心点坐标,进行逆变换得到的坐标为:其中,,为透视变换后的单字中心点坐标;s62,求解步骤s61中的方程组,得到源坐标:式中,为反算后的单字中心点横坐标,为反算后的单字中心点纵坐标,所述源坐标对应检测出的文本行单字坐标;s63,设定两个单字ctc解码的中心点距离的一半,为对应单字的宽度,同时结合ctc解码的结果内容,获得单字对应的字符位置内容。35.综上,原有的ctc解码坐标,就可以映射到矫正前的文本行坐标。此时得到的坐标为单字符中心点坐标,由于矫正后文字高度和宽度比较准确,高度可直接采用同样方式进行映射。36.但是对文字宽度,无法确定,在ctc解码中,包含了文字序列信息,可利用这一信息来确定单文字的范围。为避免漏识造成的误差,不直接采用解码列表b中每个字符长度来估计宽度,而是通过两个不同解码中心的距离确定:两个文字解码的中心点距离的一半可初步估计为相应文字宽度。此时的文字宽度正好贴合文字内容,为避免识别误差造成宽度计算异常,对宽度做了自适应限制。37.将逆变换前的单字坐标中心点、宽、高经过以上映射即可得到最终文本行中的距离坐标。再结合解码内容,得到精确的单字坐标和内容。38.本发明还提供了基于深度学习的文档单字坐标检测和修正系统,包括:文本检测模块,用于对图像预处理后的文本图片进行文字检测,识别出文本行,并对识别出的文本行进行矫正;文本检测模块类似于目标检测,即用框标识出文本图片中所有文字的位置。解决的是文本图片中哪里有文字,文字的范围是多少。模块采用的是dbnet文本检测算法,dbnet是基于深度学习的文字检测算法,主干网络为resnet18,输入是一张文本图片,输出是文本图片所有文本行位置。在文本行矫正中,对所有倾斜、宽高比例不协调的文本行进行矫正,确保文本识别的精准。39.文本识别模块,用于对矫正后的文本行进行文字识别;文本识别模块用于对定位好的文字行区域进行识别,主要解决的问题是每个文字是什么,将文本行中的文字区域进转化为字符信息。文本识别模块采用的是crnn+ctc网络结构。另外,在处理输入图像的时候,在保持长宽比的情况下将高缩放到32,这样能够尽量不破坏图像中的文本细节,提高文字识别的精度和准确度。40.ctc优化模块,用于对文字识别中的ctc解码结果进行优化,获得单字坐标;ctc优化模块对普通ctc解码进行优化,普通ctc在解码的过程中,相邻的同一解码结果取第一次出现的结果,这样会导致在文字解码的过程中预测的文字坐标整体偏左,为了得到文字较为准确的中心点坐标,做出步骤s41和步骤s42的优化过程。提供ctc优化模块得到的ctc解码结果使得单字坐标更为的准确。41.单字符坐标修正模块,用于对单字坐标进行修正,定位到单字的文字中心,并根据每个单字的文字中心,并结合矫正信息进行坐标逆变换以及宽度的换算,反算获得文本行中单字的坐标信息,同时获得单字对应的字符位置内容。42.单字符坐标修正模块通过得到ctc解码的序号位置,反推单字符在文本行中的大致位置。43.进一步的,基于深度学习的文档单字坐标检测和修正系统还包括;文本图片生成模块,用于将文档处理成文本图片。44.进一步的,基于深度学习的文档单字坐标检测和修正系统还包括;图像预处理模块,用于对文本图片进行图像预处理。45.基于本发明的技术方案,在具体实施和操作过程中,以图4所示单字检测应用于文档比对场景下的流程图说明本发明具体实施流程。46.如图4所示,具体实施流程如下:1.输入文本图片1,文本图片2;2.将2张图输入文本检测,分别检测出所有文本行坐标;3.将第2步检测出的文本行经过文本行矫正操作后,送入文本识别器(文本识别模块);4.在文本识别器解码部分,对单字坐标进行修正和设计,并逆变换所有坐标相关操作(此逆变换需要集合矫正中的信息);5.解码出的位置和内容经过逆变换对应到文本行,再对应到文本行在原图的位置坐标,实现原图文本内容的单字检测;6.将2张文本图片识别的内容进行比对,输出差异内容,并返回差异点的坐标信息。47.本发明将文本识别得到的信息反向输入利用到单字检测中,在ocr基础上来解决单字符无法定位的问题。在文本识别解码的过程中,对单字符文字进行修正,设计了单字符自适应宽度计算,可以自适应文字的宽度,且将检测识别过程中的所有关于坐标的运算进行逆变换,可以准确定位单字符的位置。48.本发明在文本识别过程中,利用解码信息来预测单字符的中心点坐标,并首次提出了对解码过程文字中心点的坐标进行自适应的修正。49.本发明预测出单字符文字的中心点后,设计了单字符宽度自适应算法,结合文本行高度,准确定位单字区域。50.本发明针对文字识别过程中预测的单字区域,提出了针对所有位置进行逆变换的算法,可准确映射回单字在原图的源坐标,效果稳定。51.以上所述仅是对本发明的优选实施例及原理进行了详细说明,对本领域的普通技术人员而言,依据本发明提供的思想,在具体实施方式上会有改变之处,而这些改变也应视为本发明的保护范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1