CN107741924B - 一种计算机处理复杂表单的方法 - Google Patents

一种计算机处理复杂表单的方法 Download PDF

Info

Publication number
CN107741924B
CN107741924B CN201711025018.7A CN201711025018A CN107741924B CN 107741924 B CN107741924 B CN 107741924B CN 201711025018 A CN201711025018 A CN 201711025018A CN 107741924 B CN107741924 B CN 107741924B
Authority
CN
China
Prior art keywords
line segment
cells
cell
complex
tan
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201711025018.7A
Other languages
English (en)
Other versions
CN107741924A (zh
Inventor
路通
吴子涵
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing University
Original Assignee
Nanjing University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nanjing University filed Critical Nanjing University
Priority to CN201711025018.7A priority Critical patent/CN107741924B/zh
Publication of CN107741924A publication Critical patent/CN107741924A/zh
Application granted granted Critical
Publication of CN107741924B publication Critical patent/CN107741924B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/177Editing, e.g. inserting or deleting of tables; using ruled lines
    • G06F40/18Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/253Grammatical analysis; Style critique
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/284Lexical analysis, e.g. tokenisation or collocates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • G06F8/22Procedural

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Machine Translation (AREA)

Abstract

本发明公开了一种计算机处理复杂表单的方法,执行如下步骤:步骤1,对表单图像进行预处理;步骤2,提取出表格区域中的所有表格单元格;步骤3,分析单元格内信息键值对的逻辑关系,基于ABNF范式设计规则;步骤4,根据步骤3中设计的规则使用开源词法分析器Lex和语法分析器Yacc构造编译器;步骤5,使用设计的语言描述表格单元格,通过解析描述语言得到表格单元格内逻辑结构。

Description

一种计算机处理复杂表单的方法
技术领域
本发明涉及一种版面分析方法,特别是一种计算机处理复杂表单的方法。
背景技术
随着信息时代的来临,数字信息已经成为人类最重要的资源。而表格是最常见的一种信息载体,如何将表格中的信息电子化、数字化,已经成为研究的热点之一。
表单版面分析作为表单文档电子化的重要部分,然而由于表单结构的多样性,很难通过一种单一的规则来分析表单中的逻辑结构,本发明对复杂表单的版面分析进行了深入的探讨。
发明内容
本发明所要解决的技术问题是针对现有技术的不足,提供一种处理复杂表单的综合方法,实现了复杂表单的半自动化处理,节省了大量的人力和时间,提高了工作效率。
本发明公开了一种处理复杂表单的综合方法,执行如下步骤:
步骤1:对表单图像进行预处理;
步骤2:提取出表格区域中的所有表格单元格;
步骤3:分析单元格内信息键值对的逻辑关系,基于ABNF范式设计规则(引用文献:RFC 5234-Augmented BNF for Syntax Specifications:ABNF);
步骤4:根据步骤3中设计的规则使用词法分析器Lex和语法分析器Yacc构造编译器(引用文献:ANSI C Yacc grammar,Lex–A Lexical Analyzer Generator);
步骤5:使用设计的语言描述表格单元格,通过解析描述语言得到表格单元格内的逻辑结构,其中,设计的语言即为步骤3中定义的一组规则,描述语言即为符合规则的字符串
步骤1包括如下步骤:
步骤1-1,去除表单图像中红色的印章:遍历表单图像中的所有像素点,如果像素点红色通道值大于200且蓝色通道和绿色通道值均小于200,则判定该像素点是印章像素点,令该像素点各通道值均为255;
步骤1-2,对表单进行倾斜校正:提取出表单图像中所有线段,如果线段的左右端点分别是其外接矩形的左上端点和右下端点,则判定该线段是顺时针偏转线段;如果线段的左右端点分别是其外接矩形的左下端点和右上端点,则判定该线段是逆时针偏转线段;筛选出顺时针偏转线段和逆时针偏转线段,组成顺时针偏转线段组和逆时针线段组,计算顺时针线段组中线段偏转正弦值之和,记为:Clockwise,计算逆时针线段组中线段偏转正弦值之和,记为:Counterclockwise,通过如下公式计算线段的正弦值tan:
tan=height/width,
其中,height为线段外接矩形的长度,width为线段外接矩形的宽度;
如果Clockwise大于Counterclockwise则选用顺时针线段组,判定表单顺时针方向倾斜,否则选用逆时针线段组,判定表单逆时针方向倾斜;假设选用的线段组的正弦值之和为tansum,选用线段组中线段个数为m,计算倾斜角度的正弦值tanaverage
tanaverage=tansum/m,
通过如下公式计算倾斜角度α:
α=tan-1(tanaverage)*180/π,
如果表单逆时针方向倾斜,定义变换矩阵
Figure BDA0001448193210000021
如果表单顺时针方向倾斜,则定义变换矩阵
Figure BDA0001448193210000022
根据变换矩阵对表单作仿射变换,校正表单,对表单图像进行倾斜校正;
步骤1-3,利用Unsharp Mask锐化算法对表单图像进行锐化(引用文献:Imageenhancement via adaptive unsharp masking);
步骤2包括如下步骤:通过图像形态学操作分别提取出水平线段图和竖直线段图,将水平线段图和竖直线段图转化为灰度图,对两个灰度图像中同一位置像素点进行与操作,通过与操作将两个灰度图像合并为表格图;其中,图像形态学方法引用文献:Imageanalysis and mathematical morphology;
步骤3包括如下步骤:
步骤3-1,根据单元格内逻辑结构将单元格分类:单元格内信息键值对只存在一种逻辑关系为简单单元格,单元格内信息键值对存在两种或两种以上的逻辑关系为复杂单元格;
步骤3-2,根据单元格内信息键值对的结构分类:单元格内只存在一组信息键值对,键的几何位置在值的几何位置的上方为单一上下逻辑关系;单元格内只存在一组信息键值对,键的几何位置在值的几何位置的左边为单一左右逻辑关系;单元格内存在两组或两组以上信息键值对,键的几何位置均在值的几何位置的上方为多重上下逻辑关系;单元格内存在两组或两组以上信息键值对,键的几何位置均在值的几何位置的左边为多重左右逻辑关系;
步骤3-3,根据复杂单元格的组成分为三类:第一类,复杂单元格由两个简单单元格组成,两个简单单元格为左右分布或者上下分布;第二类,复杂单元格递归的由一个简单单元格和一个复杂单元格组成,简单单元格和复杂单元格为左右分布或者上下分布;第三类,复杂单元格递归的由两个复杂的单元格组成,两个复杂单元格为左右分布或者上下分布;
步骤3-4,设计键的形式,符合正则表达式key[{},a-z]+的字符串认定为键;
其中,用方括号(“[”和“]”)括起来的成分表示可选的,“+”表示不定循环,表示方括号中可选字符可以循环1次或无穷次,a-z表示字符a到字符z之间的所有字符;
步骤3-5.设计值的形式,符合正则表达式value[{},a-z]+的字符串认定为键;
其中,用方括号(“[”和“]”)括起来的成分表示可选的,“+”表示不定循环,表示方括号中可选字符可以循环1次或无穷次,a-z表示字符a到字符z之间的所有字符;
步骤3-6,设计信息键值对的逻辑关系符号,“->”表示单一左右关系,“=>”表示多重左右关系,“+>”表示单一上下关系,“++>”表示多重上下关系;
步骤3-7,设计复杂单元格中单元格分布符号,“++”表示两单元格左右分布,“--”表示两单元格上下分布;
步骤3-8,基于ABNF范式设计文法规则,规则包括定义单元格类型规则、定义简单单元格键值对逻辑关系规则,定义复杂单元格组成规则,定义键的规则,定义值的规则,定义键值对中逻辑关系规则,定义复杂单元格中单元格分布规则;
步骤5中,实际上是用ABNF文法定义了一种字符串模式规则,匹配符合语法的表格单元格描述语言;
有益效果:
本发明处理复杂表单方法具有如下优点:
对表格单元格内存在信息键值对这一类型表格区域,基于ABNF范式设计文法规则,使用设计的语言描述单元格,通过解析描述语言得到单元格内逻辑结构。这种方法有效解决了由于单元格内逻辑结构复杂多样,难以提取出结构化信息的问题。
附图说明
下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述或其他方面的优点将会变得更加清楚。
图1为本发明处理复杂表单方法第一部分的流程图;
图2为本发明步骤3中简单单元格内单一上下逻辑关系;
图3为本发明步骤3中简单单元格内单一左右逻辑关系;
图4为本发明步骤3中简单单元格内多重上下逻辑关系;
图5为本发明步骤3中复杂单元格,单元格左半部分是单一上下逻辑关系,右半部分是多重的左右逻辑关系;
图6表示原图;
图7表示消除印章之后的图;
图8表示提取出来的线段;
图9是简单单元格;
图10是复杂单元格;
图11是复杂单元格;
具体实施方式
下面结合附图及实施例对本发明做进一步说明。
如图1所示,执行如下步骤:
步骤1:对表单图像进行预处理;
步骤2:提取出所有表格单元格;
步骤3:分析单元格内信息键值对的逻辑关系,基于ABNF范式设计规则;
步骤4:使用词法分析器Lex和语法分析器Yacc构造编译器;
步骤5:使用设计的语言描述表格单元格,通过解析描述语言得到表格单元格内的逻辑结构;
本发明步骤1中包括如下步骤:
除去表单中的红色印章,遍历表单图像中的所有像素,如果像素点红色通道值大于200且蓝色通道和绿色通道值均小于200,则认为该点是印章像素点,令该点像素通道值均为255。
图6表示原图,图7表示消除印章之后的图。
本实施例中,对表单进行倾斜校正,定义1×2的矩阵[1,100]对原图进行形态学闭运算,提取出单据中的线段,筛选出在X轴上投影长度大于表单宽度×0.5的线段。遍历线段组,如果线段的左右端点分别是其外接矩形的左上端点和右下端点,则认为该线段是顺时针偏转线段;如果线段的左右端点分别是其外接矩形的左下端点和右上端点,则认为该线段是逆时针偏转线段。分别筛选出顺时针偏转线段和逆时针偏转线段,分别遍历顺时针偏转线段组和逆时针线段组,统计两组线段偏转正弦值之和;线段的正弦值计算方法如下:
tan=height/width
其中,tan为计算后的正弦值,height为线段外接矩形的长度,width为线段外接矩形的宽度。
选取正弦值之和较大的线段组,可以认定表单往该方向上倾斜,计算平均倾斜角度的正弦值:
tanaverage=tansum/m
其中,tanaverage表示平均倾角的正弦值,tansum表示选取线段组的正弦值之和,m表示选取线段组的线段个数。
根据计算出的倾角正弦值,计算倾斜角度,倾斜角度计算方法如下:
angle=tan-1(tanaverage)*180/π
其中,angle为倾斜角度。
根据计算出来的倾斜角度对单据进行倾斜校正。
利用Unsharp Mask锐化算法对原图进行锐化,提高OCR识别准确度。
图8表示提取出来的线段。
本发明步骤2中包括如下步骤:
定义1×2的矩阵[1,100]对原图进行形态学闭运算,提取出水平线段图,定义1×2的矩阵[100,1]对原图进行形态学闭运算,提取出竖直线段图,将两图转化为灰度图。对两灰度图像中同一位置像素点进行与操作,通过与操作将两图合并为表格图。
定义1×2的矩阵[1,25]对表格进行形态学闭运算连接水平方向断线,定义1×2的矩阵[20,1]对表格进行形态学闭运算连接竖直方向断线,完善表格框。
本发明步骤3中包括如下步骤:
本实施例中,根据表格单元格内信息键值对的逻辑关系,可将单元格分为两种类型:
简单单元格:单元格内信息键值对只有一种逻辑关系。
复杂单元格:单元格内信息键值对存在多种逻辑关系。
简单单元格内逻辑关系通常有四种,如图2~图5所示,分别是单一上下逻辑关系,单一左右逻辑关系,多重上下逻辑关系,多重左右逻辑关系。
描述复杂单元格时,如图5所示,存在两种情况:一种是可以看作由两个简单单元格组成;另一种可以递归的看作由一个复杂单元格和一个简单单元格组成。
设计文法之前需要考虑:信息键值对的逻辑关系,复杂单元格中简单单元格的分布,键值对中的键和值的描述;然后再根据ABNF范式设计文法,对每个单元格输入描述语言,通过解析语言得到单元格内逻辑结构。
如图9所示,单元格为简单单元格,“Address”“Post Code”“Area”与其对应的信息是单一上下关系。
如图10所示,单元格为复杂单元格,由左右分布的一个复杂单元格和一个简单单元格组成,左半部分复杂单元格又由上下分布的简单单元格组成,上半部分“Address”与其对应信息是单一上下关系,下半部分“Tel”“Fax”与其对应信息是多重左右关系;右半部分“Date”“Time”“Number”与其对应信息是多重左右关系。
如图11所示,单元格为复杂单元格,有上下分布的两个简单单元格组成,上半部分“Weather”“River”“Color”“Area”“City”与其对应信息是多重上下关系;下半部分“Height”“Address”“Mountain”“Sea”与其对应信息是多重左右关系。
本发明提供了一种计算机处理复杂表单的方法,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。

Claims (1)

1.一种计算机处理复杂表单的方法,其特征在于,执行如下步骤:
步骤1:对表单图像进行预处理;
步骤2:提取出所有表格单元格;
步骤3:分析单元格内信息键值对的逻辑关系,基于ABNF范式设计规则;
步骤4:根据步骤3中设计的规则使用词法分析器Lex和语法分析器Yacc构造编译器;
步骤5:使用设计的语言描述表格单元格,通过解析描述语言得到表格单元格内的逻辑结构;
步骤1包括如下步骤:
步骤1-1,去除表单图像中红色的印章:遍历表单图像中的所有像素点,如果像素点红色通道值大于200且蓝色通道和绿色通道值均小于200,则判定该像素点是印章像素点,令该像素点各通道值均为255;
步骤1-2,对表单进行倾斜校正:提取出表单图像中所有线段,如果线段的左右端点分别是其外接矩形的左上端点和右下端点,则判定该线段是顺时针偏转线段;如果线段的左右端点分别是其外接矩形的左下端点和右上端点,则判定该线段是逆时针偏转线段;筛选出顺时针偏转线段和逆时针偏转线段,组成顺时针偏转线段组和逆时针线段组,计算顺时针线段组中线段偏转正弦值之和,记为:Clockwise,计算逆时针线段组中线段偏转正弦值之和,记为:Counterclockwise,通过如下公式计算线段的正弦值tan:
tan=height/width,
其中,height为线段外接矩形的长度,width为线段外接矩形的宽度;
如果Clockwise大于Counterclockwise则选用顺时针线段组,判定表单顺时针方向倾斜,否则选用逆时针线段组,判定表单逆时针方向倾斜;假设选用的线段组的正弦值之和为tansum,选用线段组中线段个数为m,计算倾斜角度的正弦值tanaverage
tanaverage=tansum/m,
计算倾斜角度α:
α=tan-1(tanaverage)*180/π,
如果表单逆时针方向倾斜,定义变换矩阵
Figure FDA0002214372320000011
如果表单顺时针方向倾斜,则定义变换矩阵
Figure FDA0002214372320000021
根据变换矩阵对表单作仿射变换,校正表单;
步骤1-3,利用Unsharp Mask锐化算法对表单图像进行锐化;
步骤2包括如下步骤:通过图像形态学操作分别提取出水平线段图和竖直线段图,将水平线段图和竖直线段图转化为灰度图,对两个灰度图像中同一位置像素点进行与操作,通过与操作将两个灰度图像合并为表格图;
步骤3包括如下步骤:
步骤3-1,根据单元格内逻辑结构将单元格分类:单元格内信息键值对只存在一种逻辑关系为简单单元格,单元格内信息键值对存在两种或两种以上的逻辑关系为复杂单元格;
步骤3-2,根据单元格内信息键值对的结构分类:单元格内只存在一组信息键值对,键的几何位置在值的几何位置的上方为单一上下逻辑关系;单元格内只存在一组信息键值对,键的几何位置在值的几何位置的左边为单一左右逻辑关系;单元格内存在两组或两组以上信息键值对,键的几何位置均在值的几何位置的上方为多重上下逻辑关系;单元格内存在两组或两组以上信息键值对,键的几何位置均在值的几何位置的左边为多重左右逻辑关系;
步骤3-3,根据复杂单元格的组成分为三类:第一类,复杂单元格由两个简单单元格组成,两个简单单元格为左右分布或者上下分布;第二类,复杂单元格递归的由一个简单单元格和一个复杂单元格组成,简单单元格和复杂单元格为左右分布或者上下分布;第三类,复杂单元格递归的由两个复杂的单元格组成,两个复杂单元格为左右分布或者上下分布;
步骤3-4,设计键的形式,符合正则表达式key[{},a-z]+的字符串认定为键;
其中,用方括号[和]括起来的成分表示可选的,+表示不定循环,表示方括号中可选字符能够循环1次或无穷次,a-z表示字符a到字符z之间的所有字符;
步骤3-5,设计值的形式,符合正则表达式value[{},a-z]+的字符串认定为键,其中,a-z表示字符a到字符z之间的所有字符;
步骤3-6,设计信息键值对的逻辑关系符号,->表示单一左右关系,=>表示多重左右关系,+>表示单一上下关系,++>表示多重上下关系;
步骤3-7,设计复杂单元格中单元格分布符号,++表示两单元格左右分布,--表示两单元格上下分布;
步骤3-8,基于ABNF范式设计文法规则,规则包括定义单元格类型规则、定义简单单元格键值对逻辑关系规则,定义复杂单元格组成规则,定义键的规则,定义值的规则,定义键值对中逻辑关系规则,定义复杂单元格中单元格分布规则。
CN201711025018.7A 2017-10-26 2017-10-26 一种计算机处理复杂表单的方法 Active CN107741924B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711025018.7A CN107741924B (zh) 2017-10-26 2017-10-26 一种计算机处理复杂表单的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711025018.7A CN107741924B (zh) 2017-10-26 2017-10-26 一种计算机处理复杂表单的方法

Publications (2)

Publication Number Publication Date
CN107741924A CN107741924A (zh) 2018-02-27
CN107741924B true CN107741924B (zh) 2020-02-21

Family

ID=61238401

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711025018.7A Active CN107741924B (zh) 2017-10-26 2017-10-26 一种计算机处理复杂表单的方法

Country Status (1)

Country Link
CN (1) CN107741924B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109086314A (zh) * 2018-06-27 2018-12-25 国网新疆电力有限公司喀什供电公司 变电站电子化点表自动生成方法及系统
CN113128512A (zh) * 2021-04-14 2021-07-16 浪潮天元通信信息系统有限公司 一种基于颜色通道去红章的方法及工具

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101887413B (zh) * 2009-05-14 2012-07-04 北大方正集团有限公司 版式表格的结构处理方法和系统
CN104516867A (zh) * 2013-09-30 2015-04-15 北大方正集团有限公司 一种表格重排方法和系统
US20160117412A1 (en) * 2014-10-28 2016-04-28 International Business Machines Corporation Recursive extraction and narration of nested tables
CN105630916B (zh) * 2015-12-21 2018-11-06 浙江工业大学 一种大数据环境下非结构化表格文档数据抽取与组织方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Modification Table Form Generation System based on the Form Recognition;A. Amano 等;《ICPR 2004》;20040920;第1-4页 *

Also Published As

Publication number Publication date
CN107741924A (zh) 2018-02-27

Similar Documents

Publication Publication Date Title
CN109886974B (zh) 一种印章去除方法
US8351691B2 (en) Object extraction in colour compound documents
US6233353B1 (en) System for segmenting line drawings from text within a binary digital image
CN107248134B (zh) 一种文本文档中的信息隐藏方法和装置
CN105654072A (zh) 一种低分辨率医疗票据图像的文字自动提取和识别系统与方法
CN107741924B (zh) 一种计算机处理复杂表单的方法
CN111353961B (zh) 一种文档曲面校正方法及装置
CN109815948B (zh) 一种复杂场景下的试卷分割算法
CN112861865B (zh) 一种基于ocr技术的辅助审计方法
CN113888536B (zh) 一种基于计算机视觉的印刷品重影检测方法及系统
CN109190625A (zh) 一种大角度透视变形的集装箱箱号识别方法
CN105701491A (zh) 固定格式文档图像模版的制作方法及其应用
CN110598581B (zh) 基于卷积神经网络的光学乐谱识别方法
CN112949455A (zh) 一种增值税发票识别系统及方法
US6813367B1 (en) Method and apparatus for site selection for data embedding
JP2007189319A (ja) 線分検出器及び線分検出方法
CN114004962A (zh) 一种电力营业厅发票ocr识别方法
Suwa Segmentation of connected handwritten numerals by graph representation
CN111666977A (zh) 一种单色图像的阴影检测方法
Ho et al. Perfect metrics
CN1403937A (zh) 半色调点消除方法及其系统
CN114387592B (zh) 一种复杂背景下字符定位和识别方法
CN114445814B (zh) 一种字符区域提取方法、计算机可读存储介质
JP4756436B2 (ja) パターン認識装置とそのパターン認識方法、及びパターン認識プログラム
Solanki et al. Performance evaluation of thresholding techniques on Modi script

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant