CN111461062B - 一种票据图像文本信息的结构化抽取方法 - Google Patents
一种票据图像文本信息的结构化抽取方法 Download PDFInfo
- Publication number
- CN111461062B CN111461062B CN202010326925.0A CN202010326925A CN111461062B CN 111461062 B CN111461062 B CN 111461062B CN 202010326925 A CN202010326925 A CN 202010326925A CN 111461062 B CN111461062 B CN 111461062B
- Authority
- CN
- China
- Prior art keywords
- textinfo
- list
- character
- bill
- stringlist
- 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
- 238000000605 extraction Methods 0.000 title claims abstract description 17
- 238000000034 method Methods 0.000 claims abstract description 15
- 238000012545 processing Methods 0.000 claims description 7
- 238000004364 calculation method Methods 0.000 claims description 6
- 238000001514 detection method Methods 0.000 claims description 6
- 238000001914 filtration Methods 0.000 claims description 4
- 238000012163 sequencing technique Methods 0.000 claims description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000003321 amplification Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/40—Document-oriented image-based pattern recognition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种票据图像文本信息的结构化抽取方法,利用顺次邻近算子可以依据文本在图像上的间隔规律来形成文本字符串,并基于不同字符串的交叠和长度情况对冗余内容进行删除,实现文本信息的结构化抽取。能够自动的基于票据上文本字符邻近、排列规律情况的结构化规律,并基于结构输出文本内容,防止票据上不同文本的排列结构对票据文本内容抽取造成的干扰,提高票据图像文本信息抽取质量。
Description
技术领域
本发明涉及图像内容的理解和识别方法,具体涉及一种票据图像文本信息的结构化抽取方法。
背景技术
随着财务管理和审批流程的电子化,很多系统都需要将票据的内容上传到系统中,这些内容通常为一个图像文件,抽取出这些图像文件中的关键文本信息对于理解票据的内容,汇总和发现财务数据中的规律十分重要,因此非常有必要进行票据图像文本信息的抽取。
当前OCR技术已经十分成熟,能够以较高的精度在图像中识别出字符内容。然而面对票据的图像文件,直接使用OCR技术会遇到以下问题:(1)票据中的文本大小不一、间距以及字体不一致,这会使得在识别出的文本之中包含较多的无用制表符、空格。(2)票据中文字按照不同间隔规律和位置排列,还有可能出现互相遮挡与覆盖的问题(如盖章位置),这些问题使得不相关位置的文本混杂在一起,直接破坏了其中的信息。以上问题直接导致了OCR技术识别出的文本内容出现较大偏差难以理解。为了解决上述问题,目前较常用的方法是:(1)自己定义识别模板,在模板中逐一定义要识别的位置,基于这些位置将文本抽取出来分组并输出;这种方法面对单一类型的文档较为有效;然而,面对票据图像,票据种类多种多样,同一类型票据由于来源地区和行业的不同其内容和位置也会不一样,实际工作中逐一为所有票据定义识别模板难于实现。(2)利用人工智能识别表格,基于表格框架来将文本内容抽取出来,由于表格颜色、线型、拍照角度等问题,目前表格识别的精度也存在偏差,基于表格识别之后的位置文本识别可能会引起误差的放大,从而丢失部分关键信息。
因此十分有必要提出一种票据图像文本信息的结构化抽取方法,能够自动的基于票据上文本字符邻近、排列规律情况的结构化规律,并基于结构输出文本内容。
发明内容:
针对现有技术中存在的问题,本发明提供一种票据图像文本信息的结构化抽取方法,利用顺次邻近算子可以依据文本在图像上的间隔规律来形成文本字符串,并基于不同字符串的交叠和长度情况对冗余内容进行删除,实现文本信息的结构化抽取。
本发明提供的一种票据图像文本信息的结构化抽取方法,技术解决方案包括以下步骤:
S1, 输入待识别票据影像Image;构建票据字符列表TextInfo,计算最大距离因子MaxP,计算最大纵向因子MaxZ,计算混杂容忍因子MaxH,对TextInfo进行排序,计算TextInfo的元素个数TextNUM;
S101,输入待识别票据影像Image,利用OCR算法识别Image中的每一个字符,在删除掉所有标点符号、空格以及回车之后,将所有字符存储在票据字符列表TextInfo之中;
文字列表TextInfo为一个列表,该列表的每一个元素为一个结构体TextStruct,TextStruct包含以下字段内容:
SChar:结构体对应字符内容;
SX: 该字符中心点在Image上的X坐标;
SY:该字符中心点在Image上的Y坐标;
S102,获得待识别票据影像Image的宽度IWidth,获得待识别票据影像Image的高度IHeight;获得票据字符列表TextInfo的元素个数INumber;
S103,计算最大距离因子MaxP,对应的公式为:
其中,round为进行四舍五入;
S104, 计算最大纵向因子MaxZ, 对应公式为:
S105,计算混杂容忍因子MaxH,对应的公式为:
其中tanh为双曲正切函数;
S106,根据TextInfo中每一个元素的SX值,按照从小到大对TextInfo所有元素进行排序;
S2,构建顺次邻近算子NOperator,该算子的输入为位置整型数NPos,该算子的输出为与票据字符列表TextInfo上第NPos个字符顺次邻近的所有字符所构成的串结构体StringStruct;
S201,构建位置邻居字符算子NOperator,该算子的输入为位置整型数NPos;
S202,建立串结构体StringStruct,StringStruct包括如下内容:
DList:内容字符,建立时为空字符串;
DPosList: 位置列表,建立时为空列表;
DJJ:字符间距,建立时的值0;
DSX:起始X值;
DSY:起始Y值;
DEX:结束X值;
DEY:结束Y值;
DINUM:结构体表达的字符个数,建立时的值0;
S203,设置StringStruct.DList=TextInfo[NPos].SChar;
S204,设置StringStruct.DSX=TextInfo[NPos].SX; StringStruct.DSY=TextInfo[NPos].SY;
S205,设置StringStruct.DEX=TextInfo[NPos].SX; StringStruct.DEY=TextInfo[NPos].SY;
S206,将NPos加入到StringStruct.DPosList之中;
S207,初始化顺次邻近算子计数器NCounter=NPos+1;
S208,如果NCounter>TextNUM则转到S219,否则转到S209;
S209,计算顺次邻近算子第一变量ND1=ABS(TextInfo[NCounter].SX-StringStruct.DEX);其中ABS为计算绝对值;
S210,计算顺次邻近算子第二变量ND2=ABS(TextInfo[NCounter].SY-StringStruct.DEY));其中ABS为计算绝对值;
S211,如果ND1<MaxP并且ND2<MaxZ则转到S212,否则转到S218;
S212,如果StringStruct.DPosList的元素个数大于1则转到S213,否则转到S214;
S213,计算公式ABS(ND1-StringStruct.DJJ)/StringStruct.DJJ,如果该公式的值大于MaxH则转到S218,否则转到S214;
S214,设置StringStruct.DList=StringStruct.DList+TextInfo[NCounter].SChar;
S215,设置
StringStruct.DEX=TextInfo[NCounter].SX; StringStruct.DEY=TextInfo[NCounter].SY;
S216, 将NCounter加入到StringStruct.DPosList之中;
S217,StringStruct.DJJ=ND1;
S218,设置NCounter=NCounter+1, 如果NCounter小于等于TextNUM则转到S208,否则转到S219;
S219,StringStruct.DINUM=StringStruct.DPosList的元素个数;
S220,输出StringStruct;
S3, 利用顺次邻近算子NOperator处理TextInfo的所有内容,获得串结构体列表StringList,过滤StringList中互相重叠内容;
S301,设置串结构体列表StringList=空列表;
S302,初始化生成列表计数器SCounter=1;
S303,利用顺次邻近算子NOperator进行处理,算子输入的NPos= SCounter,获得输出结果StringStruct;
S304,将StringStruct加入到StringList之中;
S305,SCounter=SCounter+1;
S306,如果SCounter大于TextNUM则转到S307,否则转到S303;
S307,根据StringList中每个元素的DINUM值从大到小对StringList进行排序;
S308,设置待删除列表DeleteList=空列表;
S309,初始化位置探测变量FPos=1;
S310,串结构体列表第一暂存变量T1=StringList[FPos];
S311,位置探测比对变量TestPos=FPos+1;
S312,串结构体列表第二暂存变量T2=StringList[TestPos];
S313,如果T1.DPosList和T2.DPosList存在交集,则将位置TestPos加入到DeleteList之中;
S314,TestPos=TestPos+1,如果TestPos小于等于StringList的元素个数则转到S312,否则转到S315;
S315,对于DeleteList列出的所有位置,删除掉StringList中对应位置的元素;
S316, FPos=FPos+1,如果FPos小于StringList的元素个数则转到S310,否则转到S317;
S317,该计算过程结束;
S4,输出StringList中DINUM大于等于2的所有元素内容;
S401,SSCounter=1;
S402,如果StringList[SSCounter].DINUM>2 则输出StringList[SSCounter].DList;
S403,SSCounter=SSCounter+1;
S404,如果SSCounter<=StringList中元素的个数则转到S402,否则转到S405;
S405,该部分计算过程结束。
本发明的有益效果是:提供一种票据图像文本信息的结构化抽取方法,利用顺次邻近算子可以依据文本在图像上的间隔规律来形成文本字符串,并基于不同字符串的交叠和长度情况对冗余内容进行删除,实现文本信息的结构化抽取。能够自动的基于票据上文本字符邻近、排列规律情况的结构化规律,并基于结构输出文本内容,防止票据上不同文本的排列结构对票据文本内容抽取造成的干扰,提高票据图像文本信息抽取质量。
附图说明
图1为实施例2票据影像。
具体实施方式
通过以下实施例进一步举例描述本发明,并不以任何方式限制本发明,在不背离本发明的技术解决方案的前提下,对本发明所作的本领域普通技术人员容易实现的任何改动或改变都将落入本发明的权利要求范围之内。
实施例1
本发明的一种票据图像文本信息的结构化抽取方法,其特征在于包括以下步骤:
S1, 输入待识别票据影像Image;构建票据字符列表TextInfo,计算最大距离因子MaxP,计算最大纵向因子MaxZ,计算混杂容忍因子MaxH,对TextInfo进行排序,计算TextInfo的元素个数TextNUM;
S101,输入待识别票据影像Image,利用OCR算法识别Image中的每一个字符,在删除掉所有标点符号、空格以及回车之后,将所有字符存储在票据字符列表TextInfo之中;
文字列表TextInfo为一个列表,该列表的每一个元素为一个结构体TextStruct,TextStruct包含以下字段内容:
SChar:结构体对应字符内容;
SX: 该字符中心点在Image上的X坐标;
SY:该字符中心点在Image上的Y坐标;
S102,获得待识别票据影像Image的宽度IWidth,获得待识别票据影像Image的高度IHeight;获得票据字符列表TextInfo的元素个数INumber;
S103,计算最大距离因子MaxP,对应的公式为:
其中,round为进行四舍五入;
S104, 计算最大纵向因子MaxZ, 对应公式为:
S105,计算混杂容忍因子MaxH,对应的公式为:
其中tanh为双曲正切函数;
S106,根据TextInfo中每一个元素的SX值,按照从小到大对TextInfo所有元素进行排序;
S2,构建顺次邻近算子NOperator,该算子的输入为位置整型数NPos,该算子的输出为与票据字符列表TextInfo上第NPos个字符顺次邻近的所有字符所构成的串结构体StringStruct;
S201,构建位置邻居字符算子NOperator,该算子的输入为位置整型数NPos;
S202,建立串结构体StringStruct,StringStruct包括如下内容:
DList:内容字符,建立时为空字符串;
DPosList: 位置列表,建立时为空列表;
DJJ:字符间距,建立时的值0;
DSX:起始X值;
DSY:起始Y值;
DEX:结束X值;
DEY:结束Y值;
DINUM:结构体表达的字符个数,建立时的值0;
S203,设置StringStruct.DList=TextInfo[NPos].SChar;
S204,设置StringStruct.DSX=TextInfo[NPos].SX; StringStruct.DSY=TextInfo[NPos].SY;
S205,设置StringStruct.DEX=TextInfo[NPos].SX; StringStruct.DEY=TextInfo[NPos].SY;
S206,将NPos加入到StringStruct.DPosList之中;
S207,初始化顺次邻近算子计数器NCounter=NPos+1;
S208,如果NCounter>TextNUM则转到S219,否则转到S209;
S209,计算顺次邻近算子第一变量ND1=ABS(TextInfo[NCounter].SX-StringStruct.DEX);其中ABS为计算绝对值;
S210,计算顺次邻近算子第二变量ND2=ABS(TextInfo[NCounter].SY-StringStruct.DEY));其中ABS为计算绝对值;
S211,如果ND1<MaxP并且ND2<MaxZ则转到S212,否则转到S218;
S212,如果StringStruct.DPosList的元素个数大于1则转到S213,否则转到S214;
S213,计算公式ABS(ND1-StringStruct.DJJ)/StringStruct.DJJ,如果该公式的值大于MaxH则转到S218,否则转到S214;
S214,设置StringStruct.DList=StringStruct.DList+TextInfo[NCounter].SChar;
S215,设置
StringStruct.DEX=TextInfo[NCounter].SX; StringStruct.DEY=TextInfo[NCounter].SY;
S216, 将NCounter加入到StringStruct.DPosList之中;
S217,StringStruct.DJJ=ND1;
S218,设置NCounter=NCounter+1, 如果NCounter小于等于TextNUM则转到S208,否则转到S219;
S219,StringStruct.DINUM=StringStruct.DPosList的元素个数;
S220,输出StringStruct;
S3, 利用顺次邻近算子NOperator处理TextInfo的所有内容,获得串结构体列表StringList,过滤StringList中互相重叠内容;
S301,设置串结构体列表StringList=空列表;
S302,初始化生成列表计数器SCounter=1;
S303,利用顺次邻近算子NOperator进行处理,算子输入的NPos= SCounter,获得输出结果StringStruct;
S304,将StringStruct加入到StringList之中;
S305,SCounter=SCounter+1;
S306,如果SCounter大于TextNUM则转到S307,否则转到S303;
S307,根据StringList中每个元素的DINUM值从大到小对StringList进行排序;
S308,设置待删除列表DeleteList=空列表;
S309,初始化位置探测变量FPos=1;
S310,串结构体列表第一暂存变量T1=StringList[FPos];
S311,位置探测比对变量TestPos=FPos+1;
S312,串结构体列表第二暂存变量T2=StringList[TestPos];
S313,如果T1.DPosList和T2.DPosList存在交集,则将位置TestPos加入到DeleteList之中;
S314,TestPos=TestPos+1,如果TestPos小于等于StringList的元素个数则转到S312,否则转到S315;
S315,对于DeleteList列出的所有位置,删除掉StringList中对应位置的元素;
S316, FPos=FPos+1,如果FPos小于StringList的元素个数则转到S310,否则转到S317;
S317,该计算过程结束;
S4,输出StringList中DINUM大于等于2的所有元素内容;
S401,SSCounter=1;
S402,如果StringList[SSCounter].DINUM>2 则输出StringList[SSCounter].DList;
S403,SSCounter=SSCounter+1;
S404,如果SSCounter<=StringList中元素的个数则转到S402,否则转到S405;
S405,该部分计算过程结束。
实施例2
本实施例是对XXXX公司的票据图像文本信息的结构化抽取试验:
S1,输入待识别票据影像Image,该Image为下图1所示:
构建票据字符列表TextInfo,计算最大距离因子MaxP=58,计算最大纵向因子MaxZ=2.9,计算混杂容忍因子MaxH=0.11,对TextInfo进行排序,计算TextInfo的元素个数TextNUM=66;
TextInfo为一个66个元素的列表,列表中的元素如下所示:
第1个元素: SChar=发 SX=25 SY=18;
第2个元素: SChar=发 SX=25 SY=59;
第3个元素: SChar=开 SX=25 SY=100;
第4个元素: SChar=校 SX=25 SY=140;
第5个元素: SChar=票 SX=45 SY=18;
第6个元素: SChar=票 SX=45 SY=99;
第7个元素: SChar=票 SX=46 SY=58;
第8个元素: SChar=验 SX=55 SY=140;
第9个元素: SChar=号 SX=67 SY=58;
第10个元素: SChar=代 SX=68 SY=17;
第11个元素: SChar=日 SX=68 SY=99;
第12个元素: SChar=码 SX=87 SY=141;
第13个元素: SChar=码 SX=88 SY=17;
第14个元素: SChar=期 SX=88 SY=99;
第15个元素: SChar=码 SX=89 SY=58;
第16个元素: SChar=0 SX=114 SY=18;
第17个元素: SChar=6 SX=114 SY=60;
第18个元素: SChar=7 SX=115 SY=141;
第19个元素: SChar=2 SX=116 SY=101;
第20个元素: SChar=2 SX=124 SY=16;
第21个元素: SChar=3 SX=125 SY=59;
第22个元素: SChar=4 SX=125 SY=142;
第23个元素: SChar=0 SX=128 SY=100;
第24个元素: SChar=1 SX=132 SY=17;
第25个元素: SChar=2 SX=135 SY=58;
第26个元素: SChar=0 SX=135 SY=142;
第27个元素: SChar=1 SX=140 SY=100;
第28个元素: SChar=0 SX=143 SY=17;
第29个元素: SChar=9 SX=143 SY=59;
第30个元素: SChar=4 SX=145 SY=141;
第31个元素: SChar=0 SX=153 SY=18;
第32个元素: SChar=7 SX=153 SY=59;
第33个元素: SChar=5 SX=154 SY=142;
第34个元素: SChar=9 SX=155 SY=101;
第35个元素: SChar=1 SX=162 SY=18;
第36个元素: SChar=6 SX=163 SY=59;
第37个元素: SChar=年 SX=170 SY=101;
第38个元素: SChar=9 SX=172 SY=19;
第39个元素: SChar=3 SX=173 SY=58;
第40个元素: SChar=6 SX=173 SY=142;
第41个元素: SChar=0 SX=181 SY=18;
第42个元素: SChar=9 SX=181 SY=143;
第43个元素: SChar=4 SX=183 SY=60;
第44个元素: SChar=0 SX=191 SY=100;
第45个元素: SChar=0 SX=192 SY=18;
第46个元素: SChar=4 SX=192 SY=143;
第47个元素: SChar=0 SX=202 SY=141;
第48个元素: SChar=1 SX=203 SY=17;
第49个元素: SChar=6 SX=203 SY=100;
第50个元素: SChar=1 SX=212 SY=17;
第51个元素: SChar=7 SX=212 SY=142;
第52个元素: SChar=1 SX=222 SY=17;
第53个元素: SChar=月 SX=223 SY=99;
第54个元素: SChar=0 SX=231 SY=142;
第55个元素: SChar=4 SX=241 SY=142;
第56个元素: SChar=2 SX=242 SY=100;
第57个元素: SChar=6 SX=251 SY=142;
第58个元素: SChar=9 SX=255 SY=100;
第59个元素: SChar=5 SX=262 SY=142;
第60个元素: SChar=7 SX=270 SY=142;
第61个元素: SChar=日 SX=273 SY=100;
第62个元素: SChar=0 SX=288 SY=141;
第63个元素: SChar=6 SX=298 SY=142;
第64个元素: SChar=3 SX=308 SY=141;
第65个元素: SChar=0 SX=317 SY=142;
第66个元素: SChar=2 SX=328 SY=141;
S2,构建顺次邻近算子NOperator,该算子的输入为整型数NPos,该算子的输出为与票据字符列表TextInfo上第NPos个字符顺次邻近的所有字符所构成的串结构体StringStruct;
S3,利用顺次邻近算子NOperator处理TextInfo的所有内容,获得串结构体列表StringList,过滤StringList中互相重叠内容;
StringList最终包含11个元素,列表中元素如下所示:
第1个元素: DList='发票代码'; DPosList={1,5,10,13}; DJJ=20; DSX=25;DSY=18; DEX=88; DEY=17; DINUM=4;
第2个元素: DList='发票号码'; DPosList={2,7,9,15}; DJJ=20; DSX=25; DSY=59; DEX=89; DEY=58; DINUM=4;
第3个元素: DList='开票日期'; DPosList={3,6,11,14}; DJJ=20; DSX=25;DSY=100; DEX=88; DEY=99; DINUM=4;
第4个元素: DList='校验码'; DPosList={4,8,12}; DJJ=33; DSX=25; DSY=140; DEX=87; DEY=141; DINUM=3;
第5个元素: DList='021001900111'; DPosList={16,20,24,28,31,35,38,41,45,48,50,52}; DJJ=13; DSX=114; DSY=18; DEX=222; DEY=17; DINUM=12;
第6个元素: DList='63297634'; DPosList={17,21,25,29,32,36,39,43}; DJJ=20; DSX=114; DSY=60; DEX=183; DEY=60; DINUM=8;
第7个元素: DList='74045'; DPosList={18,22,26,30,33}; DJJ=13; DSX=115;DSY=141; DEX=154; DEY=142; DINUM=5;
第8个元素: DList='2019年06月29日'; DPosList={19,23,27,34,37,44,49,53,56,58,61}; DJJ=15; DSX=116; DSY=101; DEX=273; DEY=100; DINUM=11;
第9个元素: DList='69407'; DPosList={40,42,46,47,51}; DJJ=13; DSX=173;DSY=142; DEX=212; DEY=142; DINUM=5;
第10个元素: DList='04657'; DPosList={54,55,57,59,60}; DJJ=13; DSX=231; DSY=142; DEX=270; DEY=142; DINUM=5;
第11个元素: DList='06302'; DPosList={62,63,64,65,66}; DJJ=13; DSX=288; DSY=141; DEX=328; DEY=141; DINUM=5;
S4,输出StringList中字符串长度大于等于2的所有内容:
输出为:
发票代码;
发票号码;
开票日期;
校验码;
021001900111;
63297634;
74045;
2019年06月29日;
69407;
04657;
06302。
结论:与输入的票据图像文件进行比对,从本实施例的输出可以看出,本发明方法自主的适应了文本之间横向的结构规律,能够自动的基于票据上文本字符邻近、排列规律情况的结构化规律,将位置邻近的文本无混杂的输出,实现了票据图像文本信息的结构化抽取。
Claims (1)
1.一种票据图像文本信息的结构化抽取方法,其特征在于包括以下步骤:
S1, 输入待识别票据影像Image;构建票据字符列表TextInfo,计算最大距离因子MaxP,计算最大纵向因子MaxZ,计算混杂容忍因子MaxH,对TextInfo进行排序,计算TextInfo的元素个数TextNUM;
S101,输入待识别票据影像Image,利用OCR算法识别Image中的每一个字符,在删除掉所有标点符号、空格以及回车之后,将所有字符存储在票据字符列表TextInfo之中;
文字列表TextInfo为一个列表,该列表的每一个元素为一个结构体TextStruct,TextStruct包含以下字段内容:
SChar:结构体对应字符内容;
SX: 该字符中心点在Image上的X坐标;
SY:该字符中心点在Image上的Y坐标;
S102,获得待识别票据影像Image的宽度IWidth,获得待识别票据影像Image的高度IHeight;获得票据字符列表TextInfo的元素个数INumber;
S103,计算最大距离因子MaxP,对应的公式为:
;
其中,round为进行四舍五入;
S104, 计算最大纵向因子MaxZ, 对应公式为:
;
S105,计算混杂容忍因子MaxH,对应的公式为:
;
其中tanh为双曲正切函数;
S106,根据TextInfo中每一个元素的SX值,按照从小到大对TextInfo所有元素进行排序;
S2,构建顺次邻近算子NOperator,该算子的输入为位置整型数NPos,该算子的输出为与票据字符列表TextInfo上第NPos个字符顺次邻近的所有字符所构成的串结构体StringStruct;
S201,构建位置邻居字符算子NOperator,该算子的输入为位置整型数NPos;
S202,建立串结构体StringStruct,StringStruct包括如下内容:
DList:内容字符,建立时为空字符串;
DPosList: 位置列表,建立时为空列表;
DJJ:字符间距,建立时的值0;
DSX:起始X值;
DSY:起始Y值;
DEX:结束X值;
DEY:结束Y值;
DINUM:结构体表达的字符个数,建立时的值0;
S203,设置StringStruct.DList=TextInfo[NPos].SChar;
S204,设置StringStruct.DSX=TextInfo[NPos].SX; StringStruct.DSY=TextInfo[NPos].SY;
S205,设置StringStruct.DEX=TextInfo[NPos].SX; StringStruct.DEY=TextInfo[NPos].SY;
S206,将NPos加入到StringStruct.DPosList之中;
S207,初始化顺次邻近算子计数器NCounter=NPos+1;
S208,如果NCounter>TextNUM则转到S219,否则转到S209;
S209,计算顺次邻近算子第一变量ND1=ABS(TextInfo[NCounter].SX-StringStruct.DEX);其中ABS为计算绝对值;
S210,计算顺次邻近算子第二变量ND2=ABS(TextInfo[NCounter].SY-StringStruct.DEY));其中ABS为计算绝对值;
S211,如果ND1<MaxP并且ND2<MaxZ则转到S212,否则转到S218;
S212,如果StringStruct.DPosList的元素个数大于1则转到S213,否则转到S214;
S213,计算公式ABS(ND1-StringStruct.DJJ)/StringStruct.DJJ,如果该公式的值大于MaxH则转到S218,否则转到S214;
S214,设置StringStruct.DList=StringStruct.DList+TextInfo[NCounter].SChar;
S215,设置
StringStruct.DEX=TextInfo[NCounter].SX; StringStruct.DEY=TextInfo[NCounter].SY;
S216, 将NCounter加入到StringStruct.DPosList之中;
S217,StringStruct.DJJ=ND1;
S218,设置NCounter=NCounter+1, 如果NCounter小于等于TextNUM则转到S208,否则转到S219;
S219,StringStruct.DINUM=StringStruct.DPosList的元素个数;
S220,输出StringStruct;
S3, 利用顺次邻近算子NOperator处理TextInfo的所有内容,获得串结构体列表StringList,过滤StringList中互相重叠内容;
S301,设置串结构体列表StringList=空列表;
S302,初始化生成列表计数器SCounter=1;
S303,利用顺次邻近算子NOperator进行处理,算子输入的NPos= SCounter,获得输出结果StringStruct;
S304,将StringStruct加入到StringList之中;
S305,SCounter=SCounter+1;
S306,如果SCounter大于TextNUM则转到S307,否则转到S303;
S307,根据StringList中每个元素的DINUM值从大到小对StringList进行排序;
S308,设置待删除列表DeleteList=空列表;
S309,初始化位置探测变量FPos=1;
S310,串结构体列表第一暂存变量T1=StringList[FPos];
S311,位置探测比对变量TestPos=FPos+1;
S312,串结构体列表第二暂存变量T2=StringList[TestPos];
S313,如果T1.DPosList和T2.DPosList存在交集,则将位置TestPos加入到DeleteList之中;
S314,TestPos=TestPos+1,如果TestPos小于等于StringList的元素个数则转到S312,否则转到S315;
S315,对于DeleteList列出的所有位置,删除掉StringList中对应位置的元素;
S316, FPos=FPos+1,如果FPos小于StringList的元素个数则转到S310,否则转到S317;
S317,该计算过程结束;
S4,输出StringList中DINUM大于等于2的所有元素内容;
S401,SSCounter=1;
S402,如果StringList[SSCounter].DINUM>2 则输出StringList[SSCounter].DList;
S403,SSCounter=SSCounter+1;
S404,如果SSCounter<=StringList中元素的个数则转到S402,否则转到S405;
S405,该部分计算过程结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010326925.0A CN111461062B (zh) | 2020-04-23 | 2020-04-23 | 一种票据图像文本信息的结构化抽取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010326925.0A CN111461062B (zh) | 2020-04-23 | 2020-04-23 | 一种票据图像文本信息的结构化抽取方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111461062A CN111461062A (zh) | 2020-07-28 |
CN111461062B true CN111461062B (zh) | 2023-12-19 |
Family
ID=71682010
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010326925.0A Active CN111461062B (zh) | 2020-04-23 | 2020-04-23 | 一种票据图像文本信息的结构化抽取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111461062B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112115892A (zh) * | 2020-09-24 | 2020-12-22 | 科大讯飞股份有限公司 | 一种关键要素抽取方法、装置、设备及存储介质 |
CN112364857B (zh) * | 2020-10-23 | 2024-04-26 | 中国平安人寿保险股份有限公司 | 基于数值抽取的图像识别方法、装置及存储介质 |
CN112926577B (zh) * | 2021-02-20 | 2021-11-26 | 杭州海量信息技术有限公司 | 一种医疗票据图像结构化方法和装置、计算机可读介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005141306A (ja) * | 2003-11-04 | 2005-06-02 | Seiko Epson Corp | 改行ルール抽出システム、改行ルール抽出プログラム及び改行ルール抽出方法 |
CN107346580A (zh) * | 2016-05-05 | 2017-11-14 | 腾讯科技(深圳)有限公司 | 票据信息识别方法及装置 |
-
2020
- 2020-04-23 CN CN202010326925.0A patent/CN111461062B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005141306A (ja) * | 2003-11-04 | 2005-06-02 | Seiko Epson Corp | 改行ルール抽出システム、改行ルール抽出プログラム及び改行ルール抽出方法 |
CN107346580A (zh) * | 2016-05-05 | 2017-11-14 | 腾讯科技(深圳)有限公司 | 票据信息识别方法及装置 |
Non-Patent Citations (1)
Title |
---|
表格型文档自动识别系统及其应用;张艳;郁生阳;张重阳;娄震;杨静宇;;系统仿真学报(第10期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111461062A (zh) | 2020-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111461062B (zh) | 一种票据图像文本信息的结构化抽取方法 | |
CN109887153B (zh) | 一种财税处理方法和处理系统 | |
US7305129B2 (en) | Methods and apparatus for populating electronic forms from scanned documents | |
CN112528863A (zh) | 表格结构的识别方法、装置、电子设备及存储介质 | |
JPS60204086A (ja) | 物体識別装置 | |
CN108830275B (zh) | 点阵字符、点阵数字的识别方法及装置 | |
US20200081967A1 (en) | User interface for contextual document recognition | |
CN110427853B (zh) | 一种智能票据信息提取处理的方法 | |
CN105279525A (zh) | 一种图像处理的方法及装置 | |
CN110704880A (zh) | 一种工程图纸的关联方法 | |
US20140010452A1 (en) | Optical character recognition verification and correction system | |
CN110414632A (zh) | 一种针对手写物流单据的信息识别存储方法 | |
CN115471858A (zh) | 一种用于票据管理的数据处理方法及装置 | |
CN111768565B (zh) | 一种增值税发票中发票代码识别后处理方法 | |
CN110688900A (zh) | 一种基于图像识别的撤回表计管理方法 | |
CN116664066B (zh) | 一种管理企业计划收入与实际收入的方法及系统 | |
CN113420684A (zh) | 基于特征提取的报表识别方法、装置、电子设备及介质 | |
CN111292068B (zh) | 一种合同信息审核方法、装置、电子设备及存储介质 | |
CN111428497A (zh) | 一种自动抽取出资信息的方法、装置及设备 | |
CN114913517B (zh) | 一种自动获取并分析关键数据形成避免可疑资金交易报告的方法及装置 | |
CN115510530A (zh) | 一种CAD平面图纸自动化构建Revit三维模型的方法 | |
CN110147516A (zh) | 页面设计中前端代码的智能识别方法及相关设备 | |
JP4651876B2 (ja) | パターン識別装置、パターン識別方法及びパターン識別用プログラム | |
JP3463008B2 (ja) | 媒体処理方法及び媒体処理装置 | |
JP3463009B2 (ja) | 媒体処理方法及び媒体処理装置 |
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 |