文件内容提取方法、装置、电子设备及存储介质与流程

文档序号:20920101发布日期:2020-05-29 14:02阅读:220来源:国知局
本申请属于文字处理领域,具体涉及一种文件内容提取方法、装置、电子设备及存储介质。
背景技术
::近年来,对图像文本的文字识别和文字理解方面的研究逐渐成为热点。ocr(opticalcharacterrecognition,光学字符识别)是文本识别最主要的方式之一,在扫描简单的文本(例如,背景单一、排版整齐的文本)上能够达到较高的识别准确率,但由于在实际应用场景中,待识别的文本往往较为复杂,例如文字格式多样、存在褶皱、存在阴影等,使得将ocr应用到实际场景中时得到的识别效果较差,因此,ocr不能满足对文本内容进行提取的实际需求。技术实现要素:有鉴于此,本申请的目的在于提供一种文件内容提取方法、装置、电子设备及存储介质,以提供一种可以适应于实际应用场景的复杂性的文件内容提取方案。本申请的实施例是这样实现的:第一方面,本申请实施例提供一种文件内容提取方法,所述方法包括:获取待提取文件;通过文本分割模型对所述待提取文件进行分割,得到包含文本的多个文本框;通过文本识别模型对每个文本框进行识别,得到每个文本框内的文字内容。由于文本识别模型是对每个文本框内的内容进行识别,可以减少位于文本框之外的干扰因素对识别准确率的影响,从而可以提高整体的识别准确率。结合第一方面实施例,在一种可能的实施方式中,所述待提取文件为红头文件,所述红头文件包括红色分隔线,所述方法还包括:从所述待提取文件中确定出用于表征红色分隔线的位置;以所述用于表征红色分隔线的位置为基准,确定出所述红头文件的文件头以及文件主体;分别输出所述文件头的文字内容以及所述文件主体的文字内容。结合第一方面实施例,在一种可能的实施方式中,在所述得到包含文本的多个文本框之后,在所述通过文本识别模型对每个文本框进行识别之前,所述方法还包括:计算每个文本框的框线高度;将位于同一行且框线高度之差小于阈值的文本框合并为一个文本框。结合第一方面实施例,在一种可能的实施方式中,在所述获取待提取文件之后,在所述通过文本分割模型对所述待提取文件进行分割,得到包含文本的多个文本框之前,所述方法还包括:去除所述待提取文件中的干扰因素,得到预处理文件;相应的,所述通过文本分割模型对所述待提取文件进行分割,得到包含文字的多个文本框,包括:通过所述文本分割模型对所述预处理文件进行分割,得到包含文本的多个文本框。结合第一方面实施例,在一种可能的实施方式中,所述去除所述待提取文件中的干扰因素,包括:去除所述待提取文件的预设位置的红色内容。结合第一方面实施例,在一种可能的实施方式中,所述方法还包括:通过预先保存的文字纠错模型对所述每个文本框内的文字内容进行纠错。第二方面,本申请实施例提供一种文件内容提取装置,所述文件内容提取装置包括:获取模块、分割模块及识别模块。获取模块,用于获取待提取文件;分割模块,用于通过文本分割模型对所述待提取文件进行分割,得到包含文本的多个文本框;识别模块,用于通过文本识别模型对每个文本框进行识别,得到每个文本框内的文字内容。结合第二方面实施例,在一种可能的实施方式中,所述待提取文件为红头文件,所述红头文件包括红色分隔线,所述文件内容提取装置还包括确定模块以及输出模块。所述确定模块,用于从所述待提取文件中确定出用于表征红色分隔线的位置;所述确定模块,还用于以所述用于表征红色分隔线的位置为基准,确定出所述红头文件的文件头以及文件主体;所述输出模块,用于分别输出所述文件头的文字内容以及所述文件主体的文字内容。结合第二方面实施例,在一种可能的实施方式中,所述文件内容提取装置还包括计算模块以及合并模块。所述计算模块,用于计算每个文本框的框线高度;所述合并模块,用于将位于同一行且框线高度之差小于阈值的文本框合并为一个文本框。结合第二方面实施例,在一种可能的实施方式中,所述文件内容提取装置还包括去除模块,用于去除所述待提取文件中的干扰因素,得到预处理文件;相应的,所述分割模块,用于通过所述文本分割模型对所述预处理文件进行分割,得到包含文本的多个文本框。结合第二方面实施例,在一种可能的实施方式中,所述去除模块,用于去除所述待提取文件的预设位置的红色内容。结合第二方面实施例,在一种可能的实施方式中,所述文件内容提取装置还包括纠错模块,用于通过预先保存的文字纠错模型对所述每个文本框内的文字内容进行纠错。第三方面,本申请实施例还提供一种电子设备,包括:存储器和处理器,所述存储器和所述处理器连接;所述存储器用于存储程序;所述处理器调用存储于所述存储器中的程序,以执行上述第一方面实施例和/或结合第一方面实施例的任一种可能的实施方式提供的方法。第四方面,本申请实施例还提供一种非易失性计算机可读取存储介质(以下简称存储介质),其上存储有计算机程序,所述计算机程序被计算机运行时执行上述第一方面实施例和/或结合第一方面实施例的任一种可能的实施方式提供的方法。本申请的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例而了解。本申请的目的和其他优点可通过在所写的说明书以及附图中所特别指出的结构来实现和获得。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。通过附图所示,本申请的上述及其它目的、特征和优势将更加清晰。在全部附图中相同的附图标记指示相同的部分。并未刻意按实际尺寸等比例缩放绘制附图,重点在于示出本申请的主旨。图1示出了本申请实施例提供的一种文件内容提取方法的流程图之一。图2示出了本申请实施例提供的一种pixellink模型的工作示意图。图3示出了本申请实施例提供的一种文件内容提取方法的流程图之二。图4示出了本申请实施例提供的一种文件内容提取装置的结构框图。图5示出了本申请实施例提供的一种电子设备的结构示意图。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中诸如“第一”、“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。再者,本申请中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。本申请实施例提供一种文件内容提取方法、装置、电子设备及存储介质,以便对应用于实际场景中的文件内容进行提取。该技术可采用相应的软件、硬件以及软硬结合的方式实现。以下对本申请实施例进行详细介绍。下面将针对本申请所提供的文件内容提取方法进行介绍。请参阅图1,本申请实施例提供一种应用于电子设备的文件内容提取方法。下面将结合图1对其所包含的步骤进行说明。步骤s110:获取待提取文件。于本申请实施例中,待提取文件可以为图片格式,也可以为pdf(portabledocumentformat,便携式文档)格式。此外,待提取文件可以为普通文件,也可以为官方发布的红头文件。作为一种可选的实施方式,为了提高后续的识别过程的识别准确率,在获取到待提取文件后,可以针对待提取文件进行预处理,得到预处理文件。其中,预处理的内容包括但不限于去除待提取文件中的水印、去除待提取文件中由于采集文本图像时,由光线问题造成的阴影、对待提取文件中的倾斜进行校正中的至少一项。其中,去除水印以及去除阴影可以通过对待提取文件高斯模糊后动态调整提取文件的二值化值来实现。对待提取文件中的倾斜进行校正可以先通过傅里叶变换求出待提取文件在频域的图像,然后利用霍夫直线变换求出频域内的直线的倾斜角度,然后对频域内的直线的倾斜角度进行调整,实现对待提取文件中的倾斜进行校正。此外,当待提取文件为红头文件时,预处理的内容还可以包括去除预设区域的红色内容,其中,红色内容包括但不限于待提取文件所包括的红色印章。由于针对红头文件而言,其红色印章一般位于文件的左下角或者右下角处,因此,可以检测待提取文件的预设区域(例如左下角以及右下角)的红色通道,然后该预设区域的红色通道值调整为0,从而达到去除红色印章的目的。值得指出的是,上述预处理过程都是现有技术,其详细实现过程不再赘述。此外,还值得指出的是,在对待提取文件进行后续操作之前,若对待提取文件进行过预处理得到预处理文件,相应的,后续可以将预处理文件作为处理对象进行后续的操作。步骤s120:通过文本分割模型对所述待提取文件进行分割,得到包含文本的多个文本框。于本申请实施例中,文本分割模型为pixellink模型,pixellink模型具备文本与非文本的分类功能。具体的,pixellink模型主要基于cnn(卷积神经网络)对某个像素(pixel)做文本/非文本的分类预测,以及对该像素的8个邻域方向是否存在连接(link)的分类预测,如图2所示,虚线框中的八个热图代表八个方向的连接预测。然后,pixellink模型基于opencv对连通域进行minarearect(最小外接矩形)操作,获取不同大小的文本连通域。得到不同大小的文本连通域后,pixellink模型对连通域进行噪声滤除操作,然后,通过并查集(disjoint-setdatastructure)并出多个具有边框边界的文本框。其中,在每个文本框内包括不同的文本。在文本分割模型对待提取文件或者预处理文件进行文本分割的过程中,pixellink模型可能会将位于同一行的文字分割为多个文本框。对于票据类文本,例如发票,若将位于同一行的文字分割为多个文本框,可能会对后续的文本框的识别过程造成影响。为了避免上述情况,在一种可选的实施方式中,在得到多个文本框后,电子设备计算每个文本框的框线高度(上框线与下框线之间的距离)以及每个文本框的高度(下框线距离待提取文件的底部的垂直距离),然后将位于同一行(当两个文本框的高度相等时,这两个文本框位于同一行)且框线高度之差小于阈值的文本框合并为一个文本框。其中,阈值可以根据实际情况进行设置。步骤s130:通过文本识别模型对每个文本框进行识别,得到每个文本框内的文字内容。于本申请实施例中,文本识别模型为crnn(卷积循环神经网络模型)。一般而言,crnn包括卷积层、循环层、输出层。其中,卷积层用于从输入图像中提取特征序列;循环层用于预测从卷积层获取的特征序列的标签分布;输出层用于把从循环层获取的标签分布通过去重整合等操作转换成最终的识别结果。当然,需要预先对crnn进行特征训练,使得crnn充分学习到各种文字内容的特征。由于在本申请实施例中,crnn是对每个文本框内的内容进行识别,可以减少位于文本框之外的干扰因素对识别准确率的影响,从而可以提高整体的识别准确率。此外,为了进一步提高最后得到的文字内容的准确率,在一种可选的实施方式中,在电子设备内还可以预先训练并保存文字纠错模型,文字纠错模型预先学习有大量与正常语法对应的文字用语规则。在基于crnn识别出每个文本框内的文字内容后,可以将得到的文字内容输入文字纠错模型,以便文字纠错模型标识出可能存在错误识别的文字内容,从而有助于对错误识别的文字内容进行纠错。此外,红头文件一般包括红色分隔线,用于区分文本的文件头和文件主体,因此,当待提取文件为红头文件时,作为一种可选的实施方式,还可以针对红头文件所包括的红色分隔线,对红头文件的文件头以及文件主体进行区分。在这种实施方式下,请参看图3,所述方法还包括:步骤s140:从所述待提取文件中确定出用于表征红色分隔线的位置。由于在不同的红头文件中,红色分隔线的长度和颜色一般都相近,因此,可以通过搜索红头文件的颜色通道,提取出红色部分,然后通过canny边缘检测算法对提取出的红色部分进行边界检测,通过霍夫变换检测边界检测的结果所包括的直线。在得到多条直线后,通过去除短噪声直线,组合近邻直线等操作,将最长的直线确定为红色部分红色分隔线,从而确定出用于表征红色分隔线的位置。步骤s150:以所述用于表征红色分隔线的位置为基准,确定出所述红头文件的文件头以及文件主体。在确定出红色分隔线的位置后,电子设备可以以红色分隔线为基准,将红色分隔线以上的文字内容确定为文件头,将红色分隔线以下的内容确定为文件主体。步骤s160:分别输出所述文件头的文字内容以及所述文件主体的文字内容。在这种实施方式中,步骤s140-步骤s150的执行顺序可以在步骤s130之后,即先确定出每个文本框内的文字内容后,再根据确定出的红色分隔线的位置确定出红头文件的文件头的文字内容以及文件主体的文字内容,然后分别输出文件头的文字内容以及文件主体的文字内容。此外,在另一种可选的实施方式中,可以在执行步骤s130之前,按照步骤s140-步骤s150的流程先确定出的红色分隔线的位置,然后再根据红色分隔线确定出红头文件的文件头所在的区域以及文件主体所在的区域。在确定出文件头所在的区域以及文件主体所在的区域后,可以根据实际需求识别出各个区域所包括的每个文本框内的文字内容,然后进行输出。例如,在一种实施方式下,用户只关心文件头的文字内容,那么可以在确定出文件头所在的区域后,识别出文件头所在区域所包括的每个文本框内的文字内容,然后只输出文件头的文字内容。本申请实施例所提供的一种文件内容提取方法,电子设备通过获取待提取文件;然后通过文本分割模型对所述待提取文件进行分割,得到包含文本的多个文本框;然后通过文本识别模型对每个文本框进行识别,得到每个文本框内的文字内容。由于文本识别模型是对每个文本框内的内容进行识别,可以减少位于文本框之外的干扰因素对识别准确率的影响,从而可以提高整体的识别准确率。如图4所示,本申请实施例还提供一种文件内容提取装置400,文件内容提取装置400可以包括:获取模块410、分割模块420、识别模块430。获取模块410,用于获取待提取文件;分割模块420,用于通过文本分割模型对所述待提取文件进行分割,得到包含文本的多个文本框;识别模块430,用于通过文本识别模型对每个文本框进行识别,得到每个文本框内的文字内容。在一种可能的实施方式中,所述待提取文件为红头文件,所述红头文件包括红色分隔线,所述文件内容提取装置400还包括确定模块以及输出模块。所述确定模块,用于从所述待提取文件中确定出用于表征红色分隔线的位置;所述确定模块,还用于以所述用于表征红色分隔线的位置为基准,确定出所述红头文件的文件头以及文件主体;所述输出模块,用于分别输出所述文件头的文字内容以及所述文件主体的文字内容。在一种可能的实施方式中,所述文件内容提取装置400还包括计算模块以及合并模块。所述计算模块,用于计算每个文本框的框线高度;所述合并模块,用于将位于同一行且框线高度之差小于阈值的文本框合并为一个文本框。在一种可能的实施方式中,所述文件内容提取装置400还包括去除模块,用于去除所述待提取文件中的干扰因素,得到预处理文件;相应的,所述分割模块420,用于通过所述文本分割模型对所述预处理文件进行分割,得到包含文本的多个文本框。在一种可能的实施方式中,所述去除模块,用于去除所述待提取文件的预设位置的红色内容。在一种可能的实施方式中,所述文件内容提取装置400还包括纠错模块,用于通过预先保存的文字纠错模型对所述每个文本框内的文字内容进行纠错。本申请实施例所提供的文件内容提取装置400,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。此外,本申请实施例还提供一种存储介质,该存储介质上存储有计算机程序,该计算机程序被计算机运行时,执行如上述的文件内容提取方法所包含的步骤。此外,请参看图5,本申请实施例还提供一种用于实现本申请实施例的文件内容提取方法、装置的电子设备100,电子设备100可以包括:处理器110、存储器120。可选的,电子设备100,可以是,但不限于个人电脑(personalcomputer,pc)、智能手机、平板电脑、移动上网设备(mobileinternetdevice,mid)。其中,电子设备100。应当注意,图5所示的电子设备100的组件和结构只是示例性的,而非限制性的,根据需要,电子设备100也可以具有其他组件和结构。处理器110、存储器120以及其他可能出现于电子设备100的组件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,处理器110、存储器120以及其他可能出现的组件相互之间可通过一条或多条通讯总线或信号线实现电性连接。存储器120用于存储程序,例如存储有前文出现的文件内容提取方法对应的程序或者前文出现的文件内容提取装置400。可选的,当存储器120内存储有文件内容提取装置400时,文件内容提取装置包括至少一个可以以软件或固件(firmware)的形式存储于存储器120中的软件功能模块。可选的,文件内容提取装置400所包括软件功能模块也可以固化在电子设备100的操作系统(operatingsystem,os)中。处理器110用于执行存储器120中存储的可执行模块,例如文件内容提取装置400包括的软件功能模块或计算机程序。当处理器110在接收到执行指令后,可以执行计算机程序,例如执行:获取待提取文件;通过文本分割模型对所述待提取文件进行分割,得到包含文本的多个文本框;通过文本识别模型对每个文本框进行识别,得到每个文本框内的文字内容。当然,本申请任一实施例所揭示的方法都可以应用于处理器110中,或者由处理器110实现。综上所述,本发明实施例提出的文件内容提取方法、装置、电子设备及存储介质,电子设备通过获取待提取文件;然后通过文本分割模型对所述待提取文件进行分割,得到包含文本的多个文本框;然后通过文本识别模型对每个文本框进行识别,得到每个文本框内的文字内容。由于文本识别模型是对每个文本框内的内容进行识别,可以减少位于文本框之外的干扰因素对识别准确率的影响,从而可以提高整体的识别准确率。需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,笔记本电脑,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本
技术领域
:的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1