CN107741924B - 一种计算机处理复杂表单的方法 - Google Patents
一种计算机处理复杂表单的方法 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/177—Editing, e.g. inserting or deleting of tables; using ruled lines
- G06F40/18—Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/253—Grammatical analysis; Style critique
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/284—Lexical analysis, e.g. tokenisation or collocates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/22—Procedural
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/π,
步骤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/π,
步骤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范式设计文法规则,规则包括定义单元格类型规则、定义简单单元格键值对逻辑关系规则,定义复杂单元格组成规则,定义键的规则,定义值的规则,定义键值对中逻辑关系规则,定义复杂单元格中单元格分布规则。
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)
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)
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 | 浙江工业大学 | 一种大数据环境下非结构化表格文档数据抽取与组织方法 |
-
2017
- 2017-10-26 CN CN201711025018.7A patent/CN107741924B/zh active Active
Non-Patent Citations (1)
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 |