借助光学字符识别(OCR)技术,从图像中提取文本从未像现在这样容易。
OCR允许我们做各种有用的事情,例如使用文本搜索图像查询,无需手动键入即可复制文档,甚至将手写文本转换为数字文本。
但是什么是光学字符识别?它实际上如何运作?对您来说,这似乎是不可思议的事情,但是到本文结尾,您将对计算机如何识别字母和单词有深刻的了解。
光学字符识别的工作原理
要了解如何从图像中提取文本,我们首先必须了解什么是图像以及它们如何存储在计算机上。
像素是一个点一种特定的颜色。 图像本质上是像素的集合。图像中的像素越多,分辨率越高。计算机不知道路标的图像确实是路标,它只知道第一个像素是该颜色,下一个像素是该颜色,并显示所有像素供您查看。
这意味着文本和非文本与计算机没有区别,这就是为什么光学字符识别如此困难的原因。牢记这一点,这就是它的工作原理。
在拉动文本之前,需要以某种方式对图像进行按摩,以使提取更加容易并且更有可能成功。这称为预处理,并且不同的软件解决方案使用不同的技术组合。
更常见的预处理技术包括:
二进制化
图像中的每个像素都将转换为黑色或白色。目的是弄清楚哪些像素属于文本,哪些像素属于背景,从而加快了实际的OCR处理过程。
歪斜
因为文档很少以完美对齐方式扫描后,字符可能最终会倾斜甚至颠倒。此处的目标是识别水平文本行,然后旋转图像,使这些行实际上是水平的。
去斑点
无论图像是否已被二值化,可能是会干扰字符识别的噪音。去斑点消除了该噪音,并试图使图像平滑。
行去除
识别所有可能不是字符的行和标记,然后将其除去,以便实际的OCR流程不会引起混淆。
分区
尤其重要。
分区
将图像分为不同的文本块,例如在多列文档。
首先,OCR流程尝试为图像中每行文本建立基线(或者如果在预处理中将其划分区域,它将遍历每个区域一次一个)。识别出的每行字符都被一个一个地处理。
对于每行字符,OCR软件都会通过查找非文本像素的垂直线来识别字符之间的间距(通过适当的二值化,这很明显)。这些非文本行之间的每个像素块都被标记为代表一个字符的“令牌"。因此,此步骤称为令牌化。
一旦图像中的所有潜在字符都被令牌化,OCR软件可以使用两种不同的技术来识别这些令牌实际使用的字符分别是:
模式识别
将每个令牌与一整套已知字形(包括数字,标点,和其他特殊符号-并选择最接近的匹配项。这种技术也称为矩阵匹配。
这里有几个缺点。首先,标记和字形的大小必须相似,否则它们都不匹配。其次,令牌的字体必须与字形类似,以排除手写体。但是,如果知道令牌的字体,则模式识别可以快速准确。
特征提取
每个令牌都与不同规则进行了比较,描述它可能是什么样的角色。例如,由一条水平线连接的两条等高的垂直线可能是大写的H。
此技术很有用,因为它不仅限于某些字体或大小。在认识大写字母I,小写字母L和数字1之间的细微差别时,它也可能会更加细微差别。对规则进行编程比简单地将令牌中的像素与字形中的像素进行比较要复杂得多。
一旦所有令牌匹配完成,OCR软件就可以将其命名为一天并显示结果给你。但是通常需要做更多的摸索,以确保您不会对那些乱码的结果视而不见。
词法限制
所有单词都与词典进行了比较批准的单词,以及所有不匹配的单词将替换为最接近的合适单词。字典是词典的一个例子。这可以帮助纠正带有错误字符的单词,例如“ thorn"而不是“ th0rn"。
特定于应用程序的优化
在小众环境中使用OCR时,例如对于医疗或法律文件,可以使用为该环境专门设计的特殊类型的OCR。在这种情况下,OCR软件可能会寻找数学方程式,行业特定术语等。
自然语言
该高级技术通过使用一种语言模型来纠正句子描述某些单词后面跟着其他单词的可能性。类似于预测您要在移动键盘上接下来键入的单词的技术。
做得好,可以使文本清晰可读。
推荐的光学字符识别工具
现在您已经知道OCR的工作原理,应该可以很容易地看出并非所有OCR工具都是一样的。结果的准确性将在很大程度上取决于该软件如何实现本文讨论的各种OCR技术。
为此,我们强烈推荐OneNote,这只是它在做笔记方面胜过Evernote的原因之一。
如何使用OCR?有没有我们没有提到的最喜欢的OCR工具?在下面的评论中让我们知道!