《深入浅出OCR》第七章:文本识别后处理

⚠️本文为稀土掘金技术社区首发签约文章,30天内禁止转载,30天后未获授权禁止转载,侵权必究!

专栏介绍: 经过几个月的精心筹备,本作者推出全新系列《深入浅出OCR》专栏,对标最全OCR教程,具体章节如导图所示,将分别从OCR技术发展、方向、概念、算法、论文、数据集等各种角度展开详细介绍。
💙个人主页: GoAI |💚 公众号: GoAI的学习小屋 | 💛交流群: 704932595 |💜个人简介 : 掘金签约作者、百度飞桨PPDE、领航团团长、开源特训营导师、CSDN、阿里云社区人工智能领域博客专家、新星计划计算机视觉方向导师等,专注大数据与人工智能知识分享。

💻文章目录


👨‍💻本篇导读: 本章将介绍常见的文字识别后处理方法,按照不同的目的将内容分为两部分:文本纠错和文本结构化。文本纠错的目标是纠正 OCR输出文本中错误的文字,而文本结构化则是从OCR输出文本中定位需要的信息,并按照应用要求组织成特定的结构,方便小白或AI爱好者快速了解OCR方向知识.

《深入浅出OCR》第七章:文本识别后处理

1.文本纠错

文本纠错的目标是纠正OCR输出文本中错误的文字,通常是基于先验信息来达到纠正的目的。当前文本纠错一般应用于机器翻译、Speech2Text(语音转文本)、输入法等,其类型分为以下三类:

1)词法错误:词语级别的错误,常见于形近字或者音近字;

2)句法错误:与语法相关的错误,常见于语病句子;

3)知识错误:与特定领域现有知识发生矛盾。

在OCR文字识别中往往只涉及到简单的第一类词法错误,比如身份证识别结果将"上海市"错误识别为"上海币"。在实际OCR的后处理应用中,大多数情况下根据先验词典即可解决。

得益于深度学习的迅猛发展,目前工业界更加倾向于使用语言模型进行中文纠错,如知名的pycorrector就是基KenLM语言模型进行纠错的。而近两年随着BERT的强势兴起,一系列基于BERT的中文纠错模型陆续上线,如SoftMaskBERT。

经典的解决算法有两类:

  1. 基于先验词典的改进BK-tree;
  2. 基于语言模型的纠错机制。

(1)BK-tree

(2)基于语言模型的中文纠错

中文纠错与英文纠错一样,可以分为两步:首先确定错误的位置,然后完成错误的纠正。本节会介绍一个简单的OCR文本纠错系统,对应框架图如下。对于OCR模型的输出文字,我们会先用语言模型判断可能的错误位置,然后通过融合OCR模型和语言模型信息,输出最可能正确的纠正文本。

语言模型是NLP领域十分常用的基础模型。简单来说,语言模型是对文本概率分布的建模,它可以给出一段文本出现的概率。通过出现概率,我们可以判断这段文本常见与否,常见的文本很可能是正常用法,不常见的文本则可能存在错误,很少被人使用,因此一定程度上也可以看作是文本合法性的衡量标准。

2.文本结构化

2.1 版面分析

随着OCR和版面分析处理技术不断发展,信息电子化的效率已经大幅度提高,人工智能已经能够将很多格式规整的资料轻松转化为可编辑的电子文稿;但生活中更多的内容资料往往是复杂的,具有字体样式多元、颜色丰富的特点,因此实现复杂版面的识别至关重要。本次赛题希望选手有所突破,解决复杂版面的分析难点,精准识别扫描资料中的字体样式以及颜色,大幅度提高人们的使用效率。

版面分析(Layout Analysis)技术常见于文档识别应用中,是文档信息理解的重要步骤,可以对文档内的图像、文本、公式、表格信息和位置关系进行自动分析、识别和理解。通过版面分析,可以获得文档的逻辑结构,如文本块、段落、行以及表格的位置。

目前大多数的都是用规则引擎来做,但随着业务量增大规则将不能满足需求,端到端的版面分析模型也应运而生。但是在将文档图片输入到模型之前有研究者发现存在图像扭曲的现象,因此又出来了文档恢复这一方向,用于将扭曲的文档图像进行还原。

版面分析:

版面分析指的是对图片形式的文档进行区域划分,定位其中的关键区域,如文字、标题、表格、图片等。

github.com/PaddlePaddl...

2.2 NLP集成

在得到文本识别的结果后,对于版面分析要求不高的业务应用,通常可以借助NLP相关工具来得到结构化信息。通常有以下两种做法:

(1)规则模板解析

以身份证识别为例,对于识别结果可以借助正则表达式来高效抽取"身份证号"、"性别"、"地址"这样的特征明显的信息。而且对于这样的信息,规则维护起来也很容易,很少会发生变化,不像"姓名"没有固定的特征表达形式。

(2)NLP信息抽取

同样以身份证识别为例,对于识别结果可以借助NLP信息抽取工具来得到结构化信息,如使用针对身份证信息训练的命名实体识别模型即可端到端的抽取出"姓名"、"性别"、"地址"等所有的信息。也可以借助分类模型来识别出各段文本对应的类型,随后将对应类型结果拼接,通过这种方式也能得到结构化信息。重点是如何灵活的运用NLP信息抽取工具了。

前大多数的都是用规则引擎来做,但随着业务量增大规则将不能满足需求,端到端的版面分析模型也应运而生。但是在将文档图片输入到模型之前有研究者发现存在图像扭曲的现象,因此又出来了文档恢复这一方向,用于将扭曲的文档图像进行还原

后续章节将对上述部分进一步介绍,结合现有工具重点对表格识别、关键信息抽取等方向进行详细介绍,敬请期待!

相关推荐
Mephisto.java26 分钟前
【力扣 | SQL题 | 每日四题】力扣2082, 2084, 2072, 2112, 180
sql·算法·leetcode
robin_suli27 分钟前
滑动窗口->dd爱框框
算法
丶Darling.28 分钟前
LeetCode Hot100 | Day1 | 二叉树:二叉树的直径
数据结构·c++·学习·算法·leetcode·二叉树
labuladuo52039 分钟前
Codeforces Round 977 (Div. 2) C2 Adjust The Presentation (Hard Version)(思维,set)
数据结构·c++·算法
jiyisuifeng19911 小时前
代码随想录训练营第54天|单调栈+双指针
数据结构·算法
꧁༺❀氯ྀൢ躅ྀൢ❀༻꧂1 小时前
实验4 循环结构
c语言·算法·基础题
新晓·故知1 小时前
<基于递归实现线索二叉树的构造及遍历算法探讨>
数据结构·经验分享·笔记·算法·链表
总裁余(余登武)2 小时前
算法竞赛(Python)-万变中的不变“随机算法”
开发语言·python·算法
Eric.Lee20212 小时前
音频文件重采样 - python 实现
人工智能·python·深度学习·算法·audio·音频重采样
huapiaoy2 小时前
Redis中数据类型的使用(hash和list)
redis·算法·哈希算法