一种表格识别方法、装置、设备及存储介质与流程

未命名 10-09 阅读:98 评论:0
1.本公开涉及计算机
技术领域
:,尤其涉及一种表格识别方法、装置、设备及存储介质。
背景技术
::2.在日常生产生活中经常需要对可携带文件格式(pdf,portabledocumentformat)文档或图片中的表格进行解析识别等操作,现有技术主要以文本行检测的方式对表格进行识别,即对表格图像进行文本行检测,确定表格图像中文本行的位置,并根据文本行的位置对表格图像进行识别,得到表格图像的表格结构信息和文字信息等。3.然而,根据上述现有技术进行表格识别时,若表格内一个单元格内的文字或符号比较特殊,不在文字识别算法的字库里,则无法识别到该单元格内的文字,也就难以确定该单元格的位置,另外,仅根据文本行的位置也无法确定表格中合并多行的单元格的位置以及复杂表头。技术实现要素:4.本公开提供了一种表格识别方法、装置、设备及存储介质,以至少解决现有技术中存在的以上技术问题。5.根据本公开的第一方面,提供了一种表格识别方法,该方法包括:对待识别表格对应的表格图像进行单元格扫描,得到扫描结果,所述扫描结果包括单元格图片以及单元格的第一顶点坐标和第二顶点坐标;根据第一顶点坐标,判断所述待识别表格中是否存在复杂表头,得到第一判断结果,所述第一判断结果包括待识别表格中表头单元格的编号;根据第一顶点坐标、第二顶点坐标和第一判断结果,对待识别表格的单元格进行结构遍历,得到所述待识别表格对应的表格结构信息;对单元格图片进行文本检测,得到所述待识别表格对应的单元格文本信息。6.在一可实施方式中,所述对待识别表格对应的表格图像进行单元格扫描,得到扫描结果,包括:对表格图像进行单元格扫描,提取待识别表格中的单元格轮廓;根据所述单元格轮廓的第一外接矩形的顶点坐标,确定单元格的第一顶点坐标和第二顶点坐标;所述单元格轮廓的第一外接矩形满足预设条件,则根据所述第一外接矩形,对表格图像进行裁剪,得到单元格图片。7.在一可实施方式中,所述判断所述待识别表格中是否存在复杂表头,包括:根据第一顶点坐标,确定待识别表格的首行首列单元格、首行末列单元格、二行首列单元格和二行末列单元格;计算二行首列单元格的第一顶点横坐标与首行首列单元格的第一顶点横坐标的第一差值,以及计算二行末列单元格的第二顶点横坐标与首行末列单元格的第二顶点横坐标的第二差值;所述第一差值和所述第二差值均小于第一预设阈值,则确定待识别表格中不存在复杂表头;所述第一差值或所述第二差值不小于第一预设阈值,则确定待识别表格中存在复杂表头,并将二行的所有单元格标注为表头单元格。8.在一可实施方式中,所述对待识别表格的单元格进行结构遍历,包括:所述第一判断结果为是,根据第一顶点坐标和第二顶点坐标,将表头单元格与首行单元格进行合并,得到待识别表格的表头位置;所述第一判断结果为否,将首行单元格的位置确定为待识别表格的表头位置;根据表头位置、第一顶点坐标和第二顶点纵坐标,逐行对待识别表格的单元格进行结构遍历,得到表格结构信息。9.在一可实施方式中,所述逐行对待识别表格的单元格进行结构遍历,包括:根据表头位置和第一顶点坐标,对当前行的所有单元格进行排序,得到排序结果;根据排序结果和第二顶点纵坐标,依次判断当前行中的当前单元格是否为合并单元格,得到第二判断结果;所述第二判断结果为是,则根据当前行之后的每行单元格,对合并单元格进行填充,直到每行单元格的第二顶点纵坐标与合并单元格的第二顶点纵坐标的差值小于第二预设阈值。10.在一可实施方式中,所述依次判断当前行中的当前单元格是否为合并单元格,包括:计算当前单元格的第二顶点纵坐标与当前行已遍历单元格的第二顶点纵坐标的第三差值;所述第三差值大于第三预设阈值,则确定当前单元格为合并单元格。11.在一可实施方式中,所述对单元格图片进行文本检测,包括:对单元格图片进行文本检测,得到单元格图片中文本行的第二外接矩形;根据第二外接矩形,对单元格图片进行裁剪,得到文本行图片;所述文本行图片的数量大于1,对文本行图片进行文本识别,得到多个文本行,并对多个文本行进行合并,得到单元格文本信息;所述文本行图片的数量不大于1,对文本行图片进行文本识别,得到单元格文本信息。12.根据本公开的第二方面,提供了一种表格识别装置,该装置包括:扫描模块,用于对待识别表格对应的表格图像进行单元格扫描,得到扫描结果,所述扫描结果包括单元格图片以及单元格的第一顶点坐标和第二顶点坐标;判断模块,用于根据第一顶点坐标,判断所述待识别表格中是否存在复杂表头,得到第一判断结果,所述第一判断结果包括待识别表格中表头单元格的编号;遍历模块,用于根据第一顶点坐标、第二顶点坐标和第一判断结果,对待识别表格的单元格进行结构遍历,得到所述待识别表格对应的表格结构信息;文本检测模块,用于对单元格图片进行文本检测,得到所述待识别表格对应的单元格文本信息。13.根据本公开的第三方面,提供了一种电子设备,包括:14.至少一个处理器;以及15.与所述至少一个处理器通信连接的存储器;其中,16.所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本公开所述的方法。17.根据本公开的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行本公开所述的方法。18.本公开的一种表格识别方法、装置、设备及存储介质,首先对待识别表格对应的表格图像进行单元格扫描,得到单元格图片以及单元格的第一顶点坐标和第二顶点坐标,然后根据第一顶点坐标,判断待识别表格中是否存在复杂表头,得到第一判断结果,最后根据第一顶点坐标、第二顶点坐标和第一判断结果,对待识别表格的单元格进行结构遍历,得到待识别表格对应的表格结构信息,并对单元格图片进行文本检测,得到待识别表格对应的单元格文本信息。由此,本方法基于待识别表格中单元格的位置信息确定表格结构信息,能够避免由于无法识别到单元格内的文字而难以确定单元格位置的情况,并且能够确定复杂表头和合并多行的单元格,提高了表格识别的精确性。19.应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。附图说明20.通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,其中:21.在附图中,相同或对应的标号表示相同或对应的部分。22.图1示出了本公开实施例一种表格识别方法的流程示意图一;23.图2示出了本公开实施例一种表格识别方法的场景示意图一;24.图3示出了本公开实施例一种表格识别方法的流程示意图二;25.图4示出了本公开实施例一种表格识别方法的场景示意图二;26.图5示出了本公开实施例一种表格识别装置的结构示意图;27.图6示出了本公开实施例一种电子设备的组成结构示意图。具体实施方式28.为使本公开的目的、特征、优点能够更加的明显和易懂,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而非全部实施例。基于本公开中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。29.图1示出了本公开实施例一种表格识别方法的流程示意图一,如图1所示,一种表格识别方法主要包括:30.步骤s101,对待识别表格对应的表格图像进行单元格扫描,得到扫描结果。31.在本实施例中,待识别表格通常存在于pdf文档和word文档中,对这些文档中待识别表格所在区域进行截图即可得到待识别表格对应的表格图像,然后对该表格图像进行单元格扫描,得到扫描结果,扫描结果中包括单元格图片以及单元格的第一顶点坐标和第二顶点坐标,其中,单元格图片可以根据单元格的编号进行命名,第一顶点坐标可以为单元格的左上顶点坐标,第二顶点坐标可以为单元格的右下顶点坐标。32.步骤s102,根据第一顶点坐标,判断待识别表格中是否存在复杂表头,得到第一判断结果。33.在本实施例中,复杂表头为包括多行单元格的表头,以图2为例,待识别表格的表头中“结果”单元格之下还对应一行单元格,包括“no.1”单元格、“no.2”单元格和“no.3”单元格,因此,图2中的待识别表格的表头为复杂表头。具体的,由于表格中每一行单元格中位于首列的单元格的左上顶点横坐标与表头中位于首列的单元格的左上顶点横坐标相同,且每一行单元格中位于末列的单元格的右下顶点横坐标与表头中位于末列的单元格的右下顶点横坐标相同,因此,可以对比待识别表格的扫描结果中首行首列单元格的左上顶点横坐标与二行首列单元格的左上顶点横坐标,得到第一对比结果,并对比首行末列单元格的右下顶点横坐标与二行末列单元格的右下顶点横坐标,得到第二对比结果,若第一对比结果或第二对比结果显示坐标的差值大于预设阈值,则待识别表格中存在复杂表头,并记录表头单元格的编号。34.步骤s103,根据第一顶点坐标、第二顶点坐标和第一判断结果,对待识别表格的单元格进行结构遍历,得到待识别表格对应的表格结构信息。35.在本实施例中,若第一判断结果为是,则根据表头单元格的第一顶点坐标和第二顶点坐标,确定待识别表格的表头位置;若第一判断结果为否,则根据扫描结果中第一行单元格的第一顶点坐标确定待识别单元格的表头位置,然后根据每个单元格的第一顶点坐标和第二顶点纵坐标确定表头位置之下的每一行单元格,从而得到待识别表格对应的表格结构信息。36.步骤s104,对单元格图片进行文本检测,得到待识别表格对应的单元格文本信息。37.在本实施例中,可以根据光学字符识别(ocr,opticalcharacterrecognition)算法对单元格图片进行文本检测,得到每个单元格图片对应的文本信息,并根据单元格的编号对单元格文本信息进行存储。38.本公开的一种表格识别方法,基于待识别表格中单元格的位置信息确定表格结构信息,能够避免由于无法识别到单元格内的文字而难以确定单元格位置的情况,并且能够确定复杂表头和合并多行的单元格,从而提高了表格识别的精确性。39.在本公开的一个实施例中,步骤s101对待识别表格对应的表格图像进行单元格扫描,得到扫描结果,包括:40.对表格图像进行单元格扫描,提取待识别表格中的单元格轮廓;根据单元格轮廓的第一外接矩形的顶点坐标,确定单元格的第一顶点坐标和第二顶点坐标;单元格轮廓的第一外接矩形满足预设条件,则根据第一外接矩形,对表格图像进行裁剪,得到单元格图片。41.在本实施例中,首先对表格图像进行单元格扫描,提取待识别表格中的单元格轮廓,并确定单元格轮廓的第一外接矩形,将第一外接矩形的左上顶点坐标确定为单元格的第一顶点坐标,将第一外接矩形的右下顶点坐标确定为单元格的第二顶点坐标,如果单元格轮廓的第一外接矩形满足预设条件,即第一外界矩形的面积满足第一指定阈值且长宽比满足第二指定阈值,则根据第一外接矩形,对表格图像进行裁剪,得到单元格图片,并根据单元格的编号对单元格图片进行命名。42.在一可实施方式中,可以先对表格图像进行二值化,若二值化后待识别表格的框线变为白色,则对二值化后的表格图像进行黑白色反转,从而凸显单元格的轮廓,然后对黑白色反转后的表格图像进行单元格扫描,这样可以提高扫描结果的准确性。43.在本公开的一个实施例中,步骤s102中的判断待识别表格中是否存在复杂表头,包括:44.根据第一顶点坐标,确定待识别表格的首行首列单元格、首行末列单元格、二行首列单元格和二行末列单元格;计算二行首列单元格的第一顶点横坐标与首行首列单元格的第一顶点横坐标的第一差值,以及计算二行末列单元格的第二顶点横坐标与首行末列单元格的第二顶点横坐标的第二差值;第一差值和第二差值均小于第一预设阈值,则确定待识别表格中不存在复杂表头;第一差值或第二差值不小于第一预设阈值,则确定待识别表格中存在复杂表头,并将二行的所有单元格标注为表头单元格。45.在本实施例中,首先以从小到大的顺序对第一顶点纵坐标进行排序,将排序结果中的首个第一顶点纵坐标(即最小第一顶点纵坐标)对应的单元格确定为首行单元格,将排序结果中的第二个第一顶点纵坐标对应的单元格确定为二行单元格,然后将首行单元格中第一顶点横坐标最小的单元格确定为首行首列单元格,将首行单元格中第一顶点横坐标最大的单元格确定为首行末列单元格,并将二行单元格中第一顶点横坐标最小的单元格确定为二行首列单元格,将二行单元格中第一顶点横坐标最大的单元格确定为二行末列单元格。46.在本实施例中,计算二行首列单元格的第一顶点横坐标与首行首列单元格的第一顶点横坐标的第一差值,以及计算二行末列单元格的第二顶点横坐标与首行末列单元格的第二顶点横坐标的第二差值,若第一差值和第二差值均小于第一预设阈值,即二行单元格与首行单元格整体对齐,则认为二行单元格并非表头的一部分,从而确定待识别表格中不存在复杂表头;若第一差值或第二差值不小于第一预设阈值,则认为二行单元格为表头的一部分,从而确定待识别表格中存在复杂表头,并将二行的所有单元格标注为表头单元格。47.在一可实施方式中,以图2为例,首行单元格包括“测试项目”单元格、“单位”单元格、“测试方法”单元格、“mdl”单元格和“结果”单元格,其中“测试项目”单元格为首行首列单元格,“结果”单元格为首行末列单元格;二行单元格包括“no.1”单元格、“no.2”单元格和“no.3”单元格,其中,“no.1”单元格为二行首列单元格,“no.3”单元格为二行末列单元格,且“测试项目”单元格的第一顶点横坐标与“no.1”单元格的第一顶点横坐标的差值不小于第一预设阈值,因此,图2中的待识别表格中存在复杂表头,可以将“no.1”单元格、“no.2”单元格和“no.3”单元格标注为表头单元格。48.在一可实施方式中,若第一差值和第二差值均小于第一预设阈值,即二行单元格与首行单元格整体对齐,还可以计算三行首列单元格的第一顶点横坐标与首行首列单元格的第一顶点横坐标的第四差值,以及计算三行末列单元格的第二顶点横坐标与首行末列单元格的第二顶点横坐标的第五差值,若第四差值和第五差值均小于第一预设阈值,则确定待识别表格中不存在复杂表头;第四差值或第五差值不小于第一预设阈值,则确定待识别表格中存在复杂表头,并将二行和三行的所有单元格标注为表头单元格,这样可以识别出包括三行单元格的复杂表头,进一步提高第一判断结果的准确性。49.图3示出了本公开实施例一种表格识别方法的流程示意图二,如图3所示,步骤s103中对待识别表格的单元格进行结构遍历,包括:50.步骤s201,第一判断结果为是,根据第一顶点坐标和第二顶点坐标,将表头单元格与首行单元格进行合并,得到待识别表格的表头位置。51.在本实施例中,若第一判断结果为是,即待识别表格中存在复杂表头,则根据表头单元格的第一顶点横坐标和第二顶点横坐标确定与表头单元格对应的首行单元格,并将表头单元格按照第一顶点横坐标从小至大的顺序合并至该首行单元格之下,从而得到待识别表格的表头位置。以图2为例,对于表头单元格“no.1”单元格、“no.2”单元格和“no.3”单元格来说,其中,“no.1”单元格的第一顶点横坐标(即最小第一顶点横坐标)与“结果”单元格的第一顶点横坐标相等,且“no.3”单元格的第二顶点横坐标(即最大第二顶点横坐标)与“结果”单元格的第二顶点横坐标相等,因此,表头单元格对应的首行单元格为“结果”单元格,将表头单元格按照第一顶点横坐标从小至大的顺序,即以“no.1”单元格、“no.2”单元格和“no.3”单元格的顺序将表头单元格合并至“结果”单元格下,从而得到图2中待识别表格的表头位置。52.步骤s202,第一判断结果为否,将首行单元格的位置确定为待识别表格的表头位置。53.在本实施例中,若第一判断结果为否,即待识别表格中不存在复杂表头,则直接将首行单元格的位置确定为待识别表格的表头位置,即将扫描结果中第一顶点纵坐标最小的单元确定为首行单元格,然后根据首行单元格的第一顶点横坐标从小到大进行合并,从而得到待识别表格的表头位置。54.步骤s203,根据表头位置、第一顶点坐标和第二顶点纵坐标,逐行对待识别表格的单元格进行结构遍历,得到表格结构信息。55.在本实施例中,逐行对待识别表格的单元格进行结构遍历,包括:根据表头位置和第一顶点坐标,对当前行的所有单元格进行排序,得到排序结果;根据排序结果和第二顶点纵坐标,依次判断当前行中的当前单元格是否为合并单元格,得到第二判断结果;第二判断结果为是,则根据当前行之后的每行单元格,对合并单元格进行填充,直到每行单元格的第二顶点纵坐标与合并单元格的第二顶点纵坐标的差值小于第二预设阈值。56.在一可实施方式中,对当前行的所有单元格进行排序时,首先根据表头位置和第一顶点纵坐标确定当前行的所有单元格,其中,当前行包括当前进行结构遍历的单元格所在行,以图2为例,在确定表头位置之后,当前行则为表头位置的下一行,即“项目1”单元格所在行,在“项目1”单元格所在行遍历完毕之后,当前行则为“项目2”单元格所在行;具体地,可以将尚未遍历的单元格中第一顶点纵坐标最小的单元格确定为当前行的单元格,以图2为例,在确定表头位置之后,即表头中所属的单元格已经进行遍历,尚未遍历的单元格中第一顶点纵坐标最小的单元格为“项目1”单元格所在行的所有单元格,因此将“项目1”单元格所在行的所有单元格确定为当前行的单元格;然后按照第一顶点横坐标从小到大的顺序对当前行的单元格进行排序,得到排序结果。57.在一可实施方式中,依次判断当前行中的当前单元格是否为合并单元格,包括:计算当前单元格的第二顶点纵坐标与当前行已遍历单元格的第二顶点纵坐标的第三差值,第三差值大于第三预设阈值,则确定当前单元格为合并单元格,优选地,第三预设阈值可以为30个像素点。以图2为例,若当前行为“项目1”单元格所在行,按照排序结果依次对当前行的单元格进行遍历,当“项目1”单元格为当前单元格时,直接将其合并至与其第一顶点横坐标相同的表头单元格下方,即将“项目1”单元格合并至“测试项目”单元格下方;当“mg/kg”单元格作为当前单元格时,计算“mg/kg”单元格的第二顶点纵坐标与“项目1”单元格的第二顶点纵坐标的第三差值,由于该第三差值不大于第三预设阈值,因此,“mg/kg”单元格不为合并单元格,将“mg/kg”单元格合并至“单位”单元格下方;当“算法1”单元格作为当前单元格时,分别计算“算法1”单元格的第二顶点纵坐标与“mg/kg”单元格和“项目1”单元格的第二顶点纵坐标的第三差值,由于两个第三差值中存在大于第三预设阈值的差值,因此,“算法1”单元格为合并单元格,将“算法1”单元格标注为合并单元格,并将“算法1”单元格合并至“测试方法”单元格下方,当前行后续单元格的遍历方法以此类推。58.在一可实施方式中,可以根据如下公式(一)计算当前单元格的第二顶点纵坐标与当前行已遍历单元格的第二顶点纵坐标的第三差值res(i):[0059][0060]其中,为当前单元格的第二顶点纵坐标,为当前行已遍历单元格的第二顶点纵坐标,k为当前行中单元格的总数。[0061]在一可实施方式中,在对当前行遍历完毕之后,还可以确定当前行单元格对应的最小第二顶点坐标,并计算当前行单元格的第二顶点坐标与最小第二顶点坐标的差值,若该差值大于第三预设阈值,则该当前行单元格为合并单元格。由此,可以判断当前行中首个单元格是否为合并单元格,而且可以识别出当前行中的多个合并单元格,从而提高第二判断结果的精确性。[0062]在一可实施方式中,若第二判断结果为是,即当前行中存在合并单元格,则根据当前行之后的每行单元格,对合并单元格进行填充,直到每行单元格的第二顶点纵坐标与合并单元格的第二顶点纵坐标的差值小于第二预设阈值。以图2为例,“算法1”单元格为合并单元格,则由当前行之后的每行单元格对“算法1”单元格进行填充,即由“项目2”单元格、“项目3”单元格、“项目4”单元格等所在行的单元格对“算法1”单元格进行填充,由于“项目5”所在行的第二顶点纵坐标与“算法1”单元格的第二顶点纵坐标的差值小于第二预设阈值,因此,“项目5”所在行遍历完毕之后就可以完成对“算法1”单元格的填充,后续对“项目6”所在行的单元格进行正常遍历即可。[0063]本公开的一种表格识别方法,在对待识别表格的单元格进行结构遍历时,基于表头位置与合并单元格对待识别表格的单元格进行逐行遍历,能够识别出合并多行的单元格,从而提高了表格识别的精确性。[0064]在本公开的一个实施例中,步骤s104中对单元格图片进行文本检测,包括:[0065]对单元格图片进行文本检测,得到单元格图片中文本行的第二外接矩形;根据第二外接矩形,对单元格图片进行裁剪,得到文本行图片;文本行图片的数量大于1,对文本行图片进行文本识别,得到多个文本行,并对多个文本行进行合并,得到单元格文本信息;文本行图片的数量不大于1,对文本行图片进行文本识别,得到单元格文本信息。[0066]图4示出了本公开实施例一种表格识别方法的场景示意图二,以图4为例,对图2中的“测试项目”单元格对应的图片进行文本检测时,首先根据ocr算法对单元格图片进行文本检测,得到单元格图片中“测试项目”文本行和“(testitems)”文本行的第二外接矩形,并根据第二外接矩形对单元格图片进行裁剪,得到“测试项目”文本行图片和“(testitems)”文本行图片,由于文本行图片数量大于1,因此,对文本行图片进行文本识别,得到“测试项目”文本行和“(testitems)”文本行,并对其进行合并,得到“测试项目”单元格对应的文本信息。[0067]需要强调的是,本公开中的“第一预设阈值”、“第二预设阈值”和“第三预设阈值”均可以根据实际情况自行设定,且“第一预设阈值”、“第二预设阈值”和“第三预设阈值”可以相同也可以不同。[0068]图5示出了本公开实施例一种表格识别装置的结构示意图,如图5所示,一种表格识别装置主要包括:[0069]扫描模块10,用于对待识别表格对应的表格图像进行单元格扫描,得到扫描结果,扫描结果包括单元格图片以及单元格的第一顶点坐标和第二顶点坐标;判断模块11,用于根据第一顶点坐标,判断待识别表格中是否存在复杂表头,得到第一判断结果,第一判断结果包括待识别表格中表头单元格的编号;遍历模块12,用于根据第一顶点坐标、第二顶点坐标和第一判断结果,对待识别表格的单元格进行结构遍历,得到待识别表格对应的表格结构信息;文本检测模块13,用于对单元格图片进行文本检测,得到待识别表格对应的单元格文本信息。[0070]在一可实施方式中,扫描模块10还用于:对表格图像进行单元格扫描,提取待识别表格中的单元格轮廓;根据单元格轮廓的第一外接矩形的顶点坐标,确定单元格的第一顶点坐标和第二顶点坐标;单元格轮廓的第一外接矩形满足预设条件,则根据第一外接矩形,对表格图像进行裁剪,得到单元格图片。[0071]在一可实施方式中,判断模块11还用于:根据第一顶点坐标,确定待识别表格的首行首列单元格、首行末列单元格、二行首列单元格和二行末列单元格;计算二行首列单元格的第一顶点横坐标与首行首列单元格的第一顶点横坐标的第一差值,以及计算二行末列单元格的第二顶点横坐标与首行末列单元格的第二顶点横坐标的第二差值;第一差值和第二差值均小于第一预设阈值,则确定待识别表格中不存在复杂表头;第一差值或第二差值不小于第一预设阈值,则确定待识别表格中存在复杂表头,并将二行的所有单元格标注为表头单元格。[0072]在一可实施方式中,遍历模块12主要包括:第一表头位置识别子模块,用于第一判断结果为是,根据第一顶点坐标和第二顶点坐标,将表头单元格与首行单元格进行合并,得到待识别表格的表头位置;第二表头位置识别子模块,用于第一判断结果为否,将首行单元格的位置确定为待识别表格的表头位置;遍历子模块,用于根据表头位置、第一顶点坐标和第二顶点纵坐标,逐行对待识别表格的单元格进行结构遍历,得到表格结构信息。[0073]在一可实施方式中,遍历子模块还用于:根据表头位置和第一顶点坐标,对当前行的所有单元格进行排序,得到排序结果;根据排序结果和第二顶点纵坐标,依次判断当前行中的当前单元格是否为合并单元格,得到第二判断结果;第二判断结果为是,则根据当前行之后的每行单元格,对合并单元格进行填充,直到每行单元格的第二顶点纵坐标与合并单元格的第二顶点纵坐标的差值小于第二预设阈值。[0074]在一可实施方式中,遍历子模块还用于:计算当前单元格的第二顶点纵坐标与上一个单元格的第二顶点纵坐标的第三差值;第三差值大于第三预设阈值,则确定当前单元格为合并单元格。[0075]在一可实施方式中,文本检测模块13还用于:对单元格图片进行文本检测,得到单元格图片中文本行的第二外接矩形;根据第二外接矩形,对单元格图片进行裁剪,得到文本行图片;文本行图片的数量大于1,对文本行图片进行文本识别,得到多个文本行,并对多个文本行进行合并,得到单元格文本信息;文本行图片的数量不大于1,对文本行图片进行文本识别,得到单元格文本信息。[0076]根据本公开的实施例,本公开还提供了一种电子设备和一种可读存储介质。[0077]图6示出了可以用来实施本公开的实施例的示例电子设备800的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。[0078]如图6所示,设备800包括计算单元801,其可以根据存储在只读存储器(rom)802中的计算机程序或者从存储单元808加载到随机访问存储器(ram)803中的计算机程序,来执行各种适当的动作和处理。在ram803中,还可存储设备800操作所需的各种程序和数据。计算单元801、rom802以及ram803通过总线804彼此相连。输入/输出(i/o)接口805也连接至总线804。[0079]设备800中的多个部件连接至i/o接口805,包括:输入单元806,例如键盘、鼠标等;输出单元807,例如各种类型的显示器、扬声器等;存储单元808,例如磁盘、光盘等;以及通信单元809,例如网卡、调制解调器、无线通信收发机等。通信单元809允许设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。[0080]计算单元801可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元801的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元801执行上文所描述的各个方法和处理,例如一种表格识别方法。例如,在一些实施例中,一种表格识别方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元808。在一些实施例中,计算机程序的部分或者全部可以经由rom802和/或通信单元809而被载入和/或安装到设备800上。当计算机程序加载到ram803并由计算单元801执行时,可以执行上文描述的一种表格识别方法的一个或多个步骤。备选地,在其他实施例中,计算单元801可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行一种表格识别方法。[0081]本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。[0082]用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。[0083]在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。[0084]为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。[0085]可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。[0086]计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。[0087]应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。[0088]此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本公开的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。[0089]以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本
技术领域
:的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以所述权利要求的保护范围为准。当前第1页12当前第1页12
技术特征:
1.一种表格识别方法,其特征在于,所述方法包括:对待识别表格对应的表格图像进行单元格扫描,得到扫描结果,所述扫描结果包括单元格图片以及单元格的第一顶点坐标和第二顶点坐标;根据第一顶点坐标,判断所述待识别表格中是否存在复杂表头,得到第一判断结果,所述第一判断结果包括待识别表格中表头单元格的编号;根据第一顶点坐标、第二顶点坐标和第一判断结果,对待识别表格的单元格进行结构遍历,得到所述待识别表格对应的表格结构信息;对单元格图片进行文本检测,得到所述待识别表格对应的单元格文本信息。2.根据权利要求1所述的方法,其特征在于,所述对待识别表格对应的表格图像进行单元格扫描,得到扫描结果,包括:对表格图像进行单元格扫描,提取待识别表格中的单元格轮廓;根据所述单元格轮廓的第一外接矩形的顶点坐标,确定单元格的第一顶点坐标和第二顶点坐标;所述单元格轮廓的第一外接矩形满足预设条件,则根据所述第一外接矩形,对表格图像进行裁剪,得到单元格图片。3.根据权利要求1所述的方法,其特征在于,所述判断所述待识别表格中是否存在复杂表头,包括:根据第一顶点坐标,确定待识别表格的首行首列单元格、首行末列单元格、二行首列单元格和二行末列单元格;计算二行首列单元格的第一顶点横坐标与首行首列单元格的第一顶点横坐标的第一差值,以及计算二行末列单元格的第二顶点横坐标与首行末列单元格的第二顶点横坐标的第二差值;所述第一差值和所述第二差值均小于第一预设阈值,则确定待识别表格中不存在复杂表头;所述第一差值或所述第二差值不小于第一预设阈值,则确定待识别表格中存在复杂表头,并将二行的所有单元格标注为表头单元格。4.根据权利要求1所述的方法,其特征在于,所述对待识别表格的单元格进行结构遍历,包括:所述第一判断结果为是,根据第一顶点坐标和第二顶点坐标,将表头单元格与首行单元格进行合并,得到待识别表格的表头位置;所述第一判断结果为否,将首行单元格的位置确定为待识别表格的表头位置;根据表头位置、第一顶点坐标和第二顶点纵坐标,逐行对待识别表格的单元格进行结构遍历,得到表格结构信息。5.根据权利要求4所述的方法,其特征在于,所述逐行对待识别表格的单元格进行结构遍历,包括:根据表头位置和第一顶点坐标,对当前行的所有单元格进行排序,得到排序结果;根据排序结果和第二顶点纵坐标,依次判断当前行中的当前单元格是否为合并单元格,得到第二判断结果;所述第二判断结果为是,则根据当前行之后的每行单元格,对合并单元格进行填充,直
到每行单元格的第二顶点纵坐标与合并单元格的第二顶点纵坐标的差值小于第二预设阈值。6.根据权利要求5所述的方法,其特征在于,所述依次判断当前行中的当前单元格是否为合并单元格,包括:计算当前单元格的第二顶点纵坐标与当前行已遍历单元格的第二顶点纵坐标的第三差值;所述第三差值大于第三预设阈值,则确定当前单元格为合并单元格。7.根据权利要求1所述的方法,其特征在于,所述对单元格图片进行文本检测,包括:对单元格图片进行文本检测,得到单元格图片中文本行的第二外接矩形;根据第二外接矩形,对单元格图片进行裁剪,得到文本行图片;所述文本行图片的数量大于1,对文本行图片进行文本识别,得到多个文本行,并对多个文本行进行合并,得到单元格文本信息;所述文本行图片的数量不大于1,对文本行图片进行文本识别,得到单元格文本信息。8.一种表格识别装置,其特征在于,所述装置包括:扫描模块,用于对待识别表格对应的表格图像进行单元格扫描,得到扫描结果,所述扫描结果包括单元格图片以及单元格的第一顶点坐标和第二顶点坐标;判断模块,用于根据第一顶点坐标,判断所述待识别表格中是否存在复杂表头,得到第一判断结果,所述第一判断结果包括待识别表格中表头单元格的编号;遍历模块,用于根据第一顶点坐标、第二顶点坐标和第一判断结果,对待识别表格的单元格进行结构遍历,得到所述待识别表格对应的表格结构信息;文本检测模块,用于对单元格图片进行文本检测,得到所述待识别表格对应的单元格文本信息。9.一种电子设备,其特征在于,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的方法。10.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使计算机执行根据权利要求1-7中任一项所述的方法。

技术总结
本公开提供了一种表格识别方法、装置、设备及存储介质,涉及计算机技术领域。方法主要包括:对待识别表格对应的表格图像进行单元格扫描,得到扫描结果,扫描结果包括单元格图片以及单元格的第一顶点坐标和第二顶点坐标;根据第一顶点坐标,判断待识别表格中是否存在复杂表头,得到第一判断结果,第一判断结果包括待识别表格中表头单元格的编号;根据第一顶点坐标、第二顶点坐标和第一判断结果,对待识别表格的单元格进行结构遍历,得到待识别表格对应的表格结构信息;对单元格图片进行文本检测,得到待识别表格对应的单元格文本信息。本公开能够确定复杂表头和合并多行的单元格,提高表格识别的精确性。高表格识别的精确性。高表格识别的精确性。


技术研发人员:邵俊 刘浩 钟权 王骏荣 张学钢
受保护的技术使用者:合肥联宝信息技术有限公司
技术研发日:2023.06.05
技术公布日:2023/10/7
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐