CN112396056B - 对文本图片ocr结果进行高准确率分行的方法 - Google Patents
对文本图片ocr结果进行高准确率分行的方法 Download PDFInfo
- Publication number
- CN112396056B CN112396056B CN202011461822.1A CN202011461822A CN112396056B CN 112396056 B CN112396056 B CN 112396056B CN 202011461822 A CN202011461822 A CN 202011461822A CN 112396056 B CN112396056 B CN 112396056B
- Authority
- CN
- China
- Prior art keywords
- line
- frame
- ocr
- new
- frames
- 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
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/60—Type of objects
- G06V20/62—Text, e.g. of license plates, overlay texts or captions on TV images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/189—Automatic justification
-
- 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/289—Phrasal analysis, e.g. finite state techniques or chunking
-
- 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
- G06V30/14—Image acquisition
- G06V30/148—Segmentation of character regions
- G06V30/153—Segmentation of character regions using recognition of characters or words
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Multimedia (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Character Input (AREA)
Abstract
本发明公开了一种对文本图片OCR结果进行高准确率分行的方法。属于文本图片OCR准确率分行技术领域,提供一种易于对OCR结果进行高准确分行,可靠性高,方法的实现过程如下:开始,进行第一遍分行,取第一次分行的最优行,然后基于找到的最优行进行往上和往下再次分行,然后结合往上和往下分行的结果进行合并,最后得到分好行后的结果。
Description
技术领域
本发明涉及文本图片OCR准确率分行技术领域,具体涉及一种对文本图片OCR结果进行高准确率分行的方法。
背景技术
目前对于非常标准、用人眼看起来就是从左到右、从上到下的文本图片的光学字符识别OCR(OpticalCharacterRecognition),要对其OCR结果进行分行,则非常简单,一般按照正常分行方法,从左到右、从上到下按x坐标和y坐标进行排序遍历,新的框距离最新的一行的距离超过某个阈值时,则是新的一行,否则是当前的行,依次遍历所有OCR结果框,即可分行。
但是对于实际场景中,图片往往大部分都存在扭曲、透视和旋转的问题,以上用于非常标准的图片的分行算法思路将不再适用。
发明内容
本发明是为了解决现在对OCR结果进行高准确分行不便,提供一种易于对OCR结果进行高准确分行,可靠性高的对文本图片OCR结果进行高准确率分行的方法。
为实现以上目的,本发明通过以下技术方案予以实现:
对文本图片OCR结果进行高准确率分行的方法,方法的实现过程如下:
步骤1,对OCR结果框依次进行x、y坐标递增排序;
步骤2,按排序后的顺序依次遍历OCR框,其中第一个框必定是第一行,也是最新的一行,记作L_1,读作第1行,以此类推,第N行记作L_n,读作第n行,最新的一行记作L_new;
步骤3,依次遍历接下来的OCR框,把遍历到的OCR框记作H框;尝试放到某一行中,尝试规则按步骤4执行;
步骤4,尝试把H框放到第L_(new-4)中,判定H框是否属于L(new-4),如果属于则放到该行,不属于则判定H框在L_(new-4)行的上一行还是在L_(new-4)行的下一行;如果是在L_(new-4)行的上一行则尝试放到L_(new-5)上,如果是在L_(new-4)行的下一行则尝试放到L_(new-3)上;
以此类推,如果判定到L_new的时候,H框任然处于L_new之下,则创建新行并把H框放到新创建的最新的行中,重复新的H框判定;判定一个H框是否属于某一行,按步骤5的规则判定执行;
步骤5,如果L_new的框个数不足两个或者该行的唯一一个框的宽高比不足5,则按步骤6处理,否则按步骤7步处理;
步骤6,取H框的往上和往下各15个OCR框的平均斜率作为对齐斜率,过H框的中点用此斜率虚拟出一条直线F,如果这条直线F过待判定的行距离H框最近的一个框的距离低于某个阈值,则H框属于该行,否则属于上一行或者下一行;
步骤7,取H框距离该行往上的一行最近的两个框的中点连接线斜率作为参考的直线F斜率,过H框的中点用此斜率虚拟出一条直线F,如果这条直线F过待判定的行距离H框最近的一个框的距离低于某个阈值,则H框属于该行,否则属于上一行或者下一行;
步骤8,经过上面7个步骤后,会得到第一版的分行结果,然后在分行结果中找出最优的一行,最优判定条件为,某行中两个邻近框的连接线斜率差最小,同时OCR框斜率差也为最小,则分行结果就为最优行;
步骤9,用最优行作为初始参考行,然后取最优行往上的所有OCR框和最优行往下的所有OCR框再次进行步骤1到步骤7后得到两份分行结果,然后再拼成一个完整分行结果,至此分行结束。
本方案易于对OCR结果进行高准确分行,可靠性高,一是对扭曲图片任然具备很高的分行准确率;二是对旋转不超过30度的图片具备很高的分行准确率;三是泛化能力强,只要本身图片中的文本按行排版,都可以用本算法进行分行。
作为优选,在步骤6或步骤7中,还包括,如果这条直线F过待判定的行距离H框最近的一个框的距离低于某个阈值时,并且在H框对应的OCR框的左下角顶点处画平行于直线F的直线J,如果直线J与H框所在行的上一行前一个OCR框相交或下一行后一个OCR框相交时,则判定该H框属于该行。
作为优选,如果H框所在行的上一行前一个OCR框的左下角顶点落在直线J上,或者H框所在行的下一行后一个OCR框的左下角顶点落在直线J上时,则判定该H框属于该行,并且该H框处于最优行上。
本发明能够达到如下效果:
本发明易于对OCR结果进行高准确分行,可靠性高,一是对扭曲图片任然具备很高的分行准确率;二是对旋转不超过30度的图片具备很高的分行准确率;三是泛化能力强,只要本身图片中的文本按行排版,都可以用本算法进行分行。
附图说明
图1为本发明的一种流程示意图。
图2为本发明的一种示意图。
图3为本发明的一种流程示意图。
图4为本发明实施例2的一种示意图。
具体实施方式
下面结合附图与实施例对本发明作进一步的说明。
对文本图片OCR结果进行高准确率分行的方法,参见图1所示,方法的实现过程如下:
步骤1,对OCR结果框依次进行x、y坐标递增排序;
步骤2,按排序后的顺序依次遍历OCR框,其中第一个框必定是第一行,也是最新的一行,记作L_1,读作第1行,以此类推,第N行记作L_n,读作第n行,最新的一行记作L_new;
步骤3,依次遍历接下来的OCR框,把遍历到的OCR框记作H框;尝试放到某一行中,尝试规则按步骤4执行;
步骤4,尝试把H框放到第L_(new-4)中,判定H框是否属于L(new-4),如果属于则放到该行,不属于则判定H框在L_(new-4)行的上一行还是在L_(new-4)行的下一行;如果是在L_(new-4)行的上一行则尝试放到L_(new-5)上,如果是在L_(new-4)行的下一行则尝试放到L_(new-3)上;
以此类推,如果判定到L_new的时候,H框任然处于L_new之下,则创建新行并把H框放到新创建的最新的行中,重复新的H框判定;判定一个H框是否属于某一行,按步骤5的规则判定执行;
步骤5,如果L_new的框个数不足两个或者该行的唯一一个框的宽高比不足5,则按步骤6处理,否则按步骤7步处理;
步骤6,取H框的往上和往下各15个OCR框的平均斜率作为对齐斜率,过H框的中点用此斜率虚拟出一条直线F,如果这条直线F过待判定的行距离H框最近的一个框的距离低于某个阈值,则H框属于该行,否则属于上一行或者下一行;
步骤7,取H框距离该行往上的一行最近的两个框的中点连接线斜率作为参考的直线F斜率,过H框的中点用此斜率虚拟出一条直线F,如果这条直线F过待判定的行距离H框最近的一个框的距离低于某个阈值,则H框属于该行,否则属于上一行或者下一行;
步骤8,经过上面7个步骤后,会得到第一版的分行结果,然后在分行结果中找出最优的一行,最优判定条件为,某行中两个邻近框的连接线斜率差最小,同时OCR框斜率差也为最小,则分行结果就为最优行;
步骤9,用最优行作为初始参考行,然后取最优行往上的所有OCR框和最优行往下的所有OCR框再次进行步骤1到步骤7后得到两份分行结果,然后再拼成一个完整分行结果,至此分行结束。
参见图2所示,开始,进行第一遍分行,取第一次分行的最优行,然后基于找到的最优行进行往上和往下再次分行,然后结合往上和往下分行的结果进行合并,最后得到分好行后的结果。
在判定某个框是处于某行之上还是某行之下,如图1所示,假设判断H13是否属于L_4,则虚拟出一条虚线,该虚线斜率是通过本专利使用的一种最优参考邻近算法得到的H8和H10的中心连接线斜率,过H13中点,如果此虚线穿过L_4的距离H13最邻近点H11,则H13属于L_4,否则属于其他行,在其他行进行同样的判断,直到找到H13所处的行。
实施例1的核心思想就是在判定一个新的OCR框是否属于某一行时,会取某行的上几行和该OCR框的x坐标最近的线段的斜率作为该OCR框的对齐斜率,同时结合当前框和上几行的距离进行综合判定,提升分行准确率。
实施例1一是对扭曲图片任然具备很高的分行准确率;二是对旋转不超过30度的图片具备很高的分行准确率;三是泛化能力强,只要本身图片中的文本按行排版,都可以用本算法进行分行。本实施例能高精度地对OCR结果进行准确分行,并且存在很高的泛化能力。
开始分行处理,对OCR进行y坐标从上到下排序,遍历每个OCR框;参见图3所示。
然后判断当前框是否是第一个框;
如果当前框是第一个框,则取当前框前后15个框的平均斜率作为斜率,然后用斜率画过参考框中心点的直线;
如果当前框不是第一个框,则判断上行是否有两个以上框或上行这个框的长度够长;
如果上行有两个以上框或上行一个框的长度够长,则取上一行x坐标最邻近的两个框中点连接线斜率,然后用斜率画过参考框中心点的直线;
如果上行只有一个框或这个框的长度不够长,则判断当前行是否有两个以上的框,如果当前行没有两个以上的框,则取当前框前后15个框的平均斜率作为斜率;如果当前行有两个以上的框,则取当前行x坐标最邻近的两个框中点连接线斜率,然后用斜率画过参考框中心点的直线;
当用斜率画过参考框中心点的直线后,再判断直线是否经过当前框,如果直线经过当前框,则属于当前行,如果直线没有经过当前框,则判断当前框在直线之下还是在直线之上,如果是在直线之下,则属于下一行,如果是在直线之上则属于上一行;然后对结果进行整合后结束。
例如,对于一张医疗票据的实现过程如下:
S1、在OCR识别返回的结果中,会给出每个文本框的信息,文本框的信息包括位置、大小、角度和具体识别的文本。
S2、对OCR结果进行排版,也就是分行;排版实现过程如下:
S2.1、对整体OCR结果进行y坐标从上到下排序。
S2.2、取OCR结果框相对于该框前后15个框的斜率(每个框旋转角度算出的斜率)平均值作为平均斜率,消除起始框斜率异常。
S2.3、以平均斜率过第一个框的中点画出一条直线,然后往下一一遍历OCR框,过这条直线的属于同一行,在这条直线之上的属于上一行,在这条直线之下的属于下一行。
S2.4、在遍历过程中,每次遍历过一个新的OCR框的时候,斜率都需要更新,更新按如下的规则遍历:
S2.4.1、如果该框是第一个OCR框,或者上一行只有一个框,同时框的宽度过小时,则使用用平均斜率。
S2.4.2、上一行的框宽度够长或者上一行的框个数大于等于两个,则取当前框相对于上一行最近的两个框的中点连接线的斜率作为该框的搜索斜率。
S2.4.3、如果上一行没有有效的参考行,但是该行已经存在了两个以上的框,则使用该行的两个框的中点连接线的延长线的斜率作为斜率。
S5、按照不同斜率不断更新,按照第“S2.3”步中的规则不断遍历搜索,即可得到按行分好的OCR结果。
S6、在OCR结果预处理完成后,将得到一份按行区分好的OCR结果。
S7、提取字段关键字列表,提取的内容分为两个类型,规则也对应分为两个类型的规则。
S7.1、内容类型提取规则,包括三个关键字“姓名”、“性别”“医院”,如果OCR结果中有这样的一行内容“姓名:张三,性别:男,医院:市中医院”,那么使用规则库定义,算法将会使用规则关键字“姓名”“性别”“医院”对OCR行进行搜索和分割成为“姓名:张三”、“性别:男”和“医院:市中医院”,那么再在每个分割后的单元中去掉关键字,将得到“张三”、“男”和“市中医院”这三个内容,把所需要的数据从每行中提取出来。
S7.2、表格类型成行列分布的数据,这种在表格中分好行以后,建立的规则只包括表头标记和内容行结尾关键词,表头标记包括项目名称、金额、单价和数量这些关键字,在算法从上往下搜索,找到表头标记的内容开始,然后继续往下搜索所有行,直到找到结尾关键字,这些关键字都在数据库中定义好,然后指定表头行开始往下、结尾行标记往上都是有效内容行,然后对这些有效内容行进行分列处理,然后对分好列的内容进行表头对齐和正则判断,即可格式化输出整张表的有效内容。
实施例2,实施例2与实施例1不同在于,参见图4所示,在步骤6或步骤7中,还包括,如果这条直线F过待判定的行距离H框最近的一个框的距离低于某个阈值时,并且在H框对应的OCR框的左下角顶点处画平行于直线F的直线J,如果直线J与H框所在行的上一行前一个OCR框相交或下一行后一个OCR框相交时,则判定该H框属于该行。
如果H框所在行的上一行前一个OCR框的左下角顶点落在直线J上,或者H框所在行的下一行后一个OCR框的左下角顶点落在直线J上时,则判定该H框属于该行,并且该H框处于最优行上。
Claims (3)
1.对文本图片OCR结果进行高准确率分行的方法,其特征在于,方法的实现过程如下:
步骤1,对OCR结果框依次进行x、y坐标递增排序;
步骤2,按排序后的顺序依次遍历OCR框,其中第一个框必定是第一行,也是最新的一行,记作L_1,读作第1行,以此类推,第N行记作L_n,读作第n行,最新的一行记作L_new;
步骤3,依次遍历接下来的OCR框,把遍历到的OCR框记作H框;尝试放到某一行中,尝试规则按步骤4执行;
步骤4,尝试把H框放到第L_(new-4)中,判定H框是否属于L_ (new-4),如果属于则放到该行,不属于则判定H框在L_(new-4)行的上一行还是在L_(new-4)行的下一行;如果是在L_(new-4)行的上一行则尝试放到L_(new-5)上,如果是在L_(new-4)行的下一行则尝试放到L_(new-3)上;
以此类推,如果判定到L_new的时候,H框任然处于L_new之下,则创建新行并把H框放到新创建的最新的行中,重复新的H框判定;判定一个H框是否属于某一行,按步骤5的规则判定执行;
步骤5,如果L_new的框个数不足两个或者该行的唯一一个框的宽高比不足5,则按步骤6处理,否则按步骤7步处理;
步骤6,取H框的往上和往下各15个OCR框的平均斜率作为对齐斜率,过H框的中点用此斜率虚拟出一条直线F,如果这条直线F过待判定的行距离H框最近的一个框的距离低于某个阈值,则H框属于该行,否则属于上一行或者下一行;
步骤7,取H框距离该行往上的一行最近的两个框的中点连接线斜率作为参考的直线F斜率,过H框的中点用此斜率虚拟出一条直线F,如果这条直线F过待判定的行距离H框最近的一个框的距离低于某个阈值,则H框属于该行,否则属于上一行或者下一行;
步骤8,经过上面7个步骤后,会得到第一版的分行结果,然后在分行结果中找出最优的一行,最优判定条件为,某行中两个邻近框的连接线斜率差最小,同时OCR框斜率差也为最小,则分行结果就为最优行;
步骤9,用最优行作为初始参考行,然后取最优行往上的所有OCR框和最优行往下的所有OCR框再次进行步骤1到步骤7后得到两份分行结果,然后再拼成一个完整分行结果,至此分行结束。
2.根据权利要求1所述的对文本图片OCR结果进行高准确率分行的方法,其特征在于,在步骤6或步骤7中,还包括,如果这条直线F过待判定的行距离H框最近的一个框的距离低于某个阈值时,并且在H框对应的OCR框的左下角顶点处画平行于直线F的直线J,如果直线J与H框所在行的上一行前一个OCR框相交或下一行后一个OCR框相交时,则判定该H框属于该行。
3.根据权利要求2所述的对文本图片OCR结果进行高准确率分行的方法,其特征在于,如果H框所在行的上一行前一个OCR框的左下角顶点落在直线J上,或者H框所在行的下一行后一个OCR框的左下角顶点落在直线J上时,则判定该H框属于该行,并且该H框处于最优行上。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011461822.1A CN112396056B (zh) | 2020-12-09 | 2020-12-09 | 对文本图片ocr结果进行高准确率分行的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011461822.1A CN112396056B (zh) | 2020-12-09 | 2020-12-09 | 对文本图片ocr结果进行高准确率分行的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112396056A CN112396056A (zh) | 2021-02-23 |
CN112396056B true CN112396056B (zh) | 2022-04-19 |
Family
ID=74624849
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011461822.1A Active CN112396056B (zh) | 2020-12-09 | 2020-12-09 | 对文本图片ocr结果进行高准确率分行的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112396056B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113723301A (zh) * | 2021-08-31 | 2021-11-30 | 广州新丝路信息科技有限公司 | 一种进口货物报关单ocr识别分行处理方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0513678A2 (en) * | 1991-05-13 | 1992-11-19 | Eastman Kodak Company | Fast character segmentation of skewed text lines for optical character recognition |
CN101887521A (zh) * | 2010-06-22 | 2010-11-17 | 中兴通讯股份有限公司 | 一种实现文件纠偏的方法及终端 |
CN102332096A (zh) * | 2011-10-17 | 2012-01-25 | 中国科学院自动化研究所 | 一种视频字幕文本提取和识别的方法 |
CN109871844A (zh) * | 2019-01-09 | 2019-06-11 | 东南大学 | 一种拍摄小票图像文本矫正和提取方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10417516B2 (en) * | 2017-08-24 | 2019-09-17 | Vastec, Inc. | System and method for preprocessing images to improve OCR efficacy |
-
2020
- 2020-12-09 CN CN202011461822.1A patent/CN112396056B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0513678A2 (en) * | 1991-05-13 | 1992-11-19 | Eastman Kodak Company | Fast character segmentation of skewed text lines for optical character recognition |
US5172422A (en) * | 1991-05-13 | 1992-12-15 | Eastman Kodak Company | Fast character segmentation of skewed text lines for optical character recognition |
CN101887521A (zh) * | 2010-06-22 | 2010-11-17 | 中兴通讯股份有限公司 | 一种实现文件纠偏的方法及终端 |
CN102332096A (zh) * | 2011-10-17 | 2012-01-25 | 中国科学院自动化研究所 | 一种视频字幕文本提取和识别的方法 |
CN109871844A (zh) * | 2019-01-09 | 2019-06-11 | 东南大学 | 一种拍摄小票图像文本矫正和提取方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112396056A (zh) | 2021-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112446351B (zh) | 医疗票据智能识别方法 | |
CN110147774B (zh) | 表格式图片版面分析方法和计算机存储介质 | |
Diem et al. | cBAD: ICDAR2017 competition on baseline detection | |
CN105528604B (zh) | 一种基于ocr的票据自动识别与处理系统 | |
US7801358B2 (en) | Methods and systems for analyzing data in media material having layout | |
CN108287843B (zh) | 一种兴趣点信息检索的方法和装置、及导航设备 | |
CN109446487A (zh) | 一种解析便携式文档格式文档表格的方法及装置 | |
CN111931775B (zh) | 自动获取新闻标题方法、系统、计算机设备及存储介质 | |
CN107292302B (zh) | 检测图片中兴趣点的方法和系统 | |
CN105740378B (zh) | 一种数字病理全切片图像检索方法 | |
CN109635808B (zh) | 一种在自然场景图像中对中文关键词及上下文的提取方法 | |
CN108154157A (zh) | 一种基于集成的快速谱聚类方法 | |
CN111091124A (zh) | 一种书脊文字识别方法 | |
CN111144411A (zh) | 一种基于显著图的不规则文本修正与识别方法及系统 | |
CN112396056B (zh) | 对文本图片ocr结果进行高准确率分行的方法 | |
CN106844733B (zh) | 基于词汇树信息融合与豪斯多夫距离结合的图像检索方法 | |
CN115953797A (zh) | 表格识别、文档获取方法和存储介质 | |
CN116092231A (zh) | 票证识别方法、装置、终端设备以及存储介质 | |
CN109766893A (zh) | 适于购物小票的图片文字识别方法 | |
CN104965928A (zh) | 一种基于形状匹配的汉字图像检索方法 | |
CN109101973B (zh) | 文字识别方法、电子设备、存储介质 | |
KR20110039900A (ko) | 지능형 인식 라이브러리 및 관리 도구를 활용한 고문서 이미지 데이터 인식 및 처리 방법 | |
CN106844767B (zh) | 格式文档关键信息块配准及提取的方法及装置 | |
CN110727820B (zh) | 一种为图片获得标签的方法和系统 | |
CN112115949B (zh) | 一种烟草证件以及订单的光学文字识别方法 |
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 |