Linux系统上的OCR


14

我一直发现OCR技术在开源系统上落后。自成立以来,我还看过Ocropus项目。我已经尝试过听说是适用于Linux的最佳OCR引擎Tesseract,但发现它严重缺乏商业文档。还有其他更有希望的OCR实现方案吗?解释笔迹更抱有希望的目标呢?* nix系统在该领域有什么可能?


1
是否应该将其迁移到softwarerecs?
杰夫·谢勒

@Jeff可能没有,因为已经快七岁了。从那以后发生了很多事情。其中一些发生在OCR ... ;-)
roaima

Answers:


4

Tesseract

截至2018年,可用的最佳开源OCR软件是Tesseract 4(beta)及其新的LSTM神经网络OCR模型。它的OCR性能比版本3中使用的以前的OCR模型好得多。

示例(output.pdf为扫描的德语文档生成带有文本层的PDF文件):

$ echo page-*.png > input.list
$ tesseract --oem 1 -l deu input.list output pdf

将识别的文本打印到标准输出:

$ tesseract --oem 1 -l deu page page-0001.png stdout

列出已安装的语言:

$ tesseract --list-langs

支持许多语言/脚本,其形式为可下载的经过培训的数据集,例如,甚至还有Fraktur的数据集。

借助新的LSTM模型,Tesseract从OCRopus研究项目中获得了一些启发。

Tesseract版本3即使在高质量的输入图像上也表现相对较差,即,它经常错误地检测出灰尘像素中的单个字符(在任何文本上下文之外),并且容易在众所周知的单词中引入单个字符错误。

楔形文字

Cuneiform OCR的性能还不错,但是并没有得到积极维护(2011年最新发布的版本1.1),并且很容易崩溃,并存在其他一些问题:

您可以像这样禁用布局算法:

$ cuneiform --singlecolumn -l ger -f text -o foo.txt image-0001

-l指定源文档的语言)

奥克拉德

$ ocrad -F utf8 image-0001

默认情况下,文本将打印到标准输出。

在商业文档中,它缺少带下划线的单词,而楔形文字/ tesseract / gocr没有。

Gocr

$ gocr image-0001

默认情况下,文本将打印到标准输出。

硬件

Sane对许多自动文档进纸(ADF)扫描仪(例如AvisionFujitsu扫描仪)都提供了很好的支持。

Sane随附的scanimage命令行程序可用于构建脚本化的扫描管道(例如,参考我的adf2pdf.py脚本)。


我试过楔形文字。如果您需要识别扫描的图像(而不是照片),则效果很好。我使用Yagf作为GUI。
谢尔盖(Sergei)2012年

3

我发现了一个类似的问题在StackOverflow上Asprise OCR SDK,链接的一个商业产品,拥有的Linux版本。


尽管此链接可以回答问题,但最好在此处包括答案的基本部分,并提供链接以供参考。如果链接的页面发生更改,仅链接的答案可能无效。- 评论
托马斯

1
@Thomas链接是唯一可能的答案,因为该链接指向OP要求的特定工具。并非所有仅链接的答案都是错误的。这给出了特定软件的名称以及指向其网页的链接。即使链接断开,您仍然应该能够从名称中找到它。
terdon

1

很少有流行的OCR命令行工具:

  • Tesseract自述文件常见问题解答)(Python)

    也可用于:Tesseract .NETTesseract iOS

    OCR引擎是1985年至1995年在HP实验室开发的,现在在Google上进行了开发。Tesseract可能是可用的最准确的开源OCR引擎。

    用法:

    tesseract [inputFile] [outputFile] [-l optionalLanguageFile] [PathTohOCRConfigFile]
    

    示例:通过命令行/脚本使现有的PDF可搜索(OCR)

  • GOCR

    开源字符识别。它将扫描的文本图像转换回文本文件。GOCR可以与不同的前端一起使用,这使得移植到不同的OS和体系结构非常容易。它可以打开许多不同的图像格式,并且其质量每天都在提高。

  • OCRopus ™(常见问题解答)(用Python,NumPy和SciPy编写)

    OCR系统专注于使用大规模机器学习解决文档分析中的问题,具有可插拔布局分析,可插拔字符识别,统计自然语言建模和多语言功能。

    OCRopus引擎基于两个研究项目:90年代中期开发并由美国人口普查局部署的高性能手写识别器,以及新颖的高性能布局分析方法。

    OCRopus是Google赞助的开发项目,最初旨在进行高通量,大容量的文档转换工作。我们希望它对于许多其他应用也将是一个出色的OCR系统。

  • Tessnet2(开源,OCR,Tesseract,.NET,DOTNET,C#,VB.NET,C ++ / CLI)

    Tesseract是C ++开源OCR引擎。Tessnet2是.NET程序集,它公开了执行OCR的非常简单的方法。Tessnet2已获得Apache 2许可(例如tesseract),这意味着您可以随意使用它,该产品已包含在商业产品中。

其他已经建议的:用于Linux的ABBYY CLI OCRAsprise OCR

另请阅读:

有关更完整的列表,请检查:Wikipedia上的光学字符识别软件列表


0

... OCR不仅仅是“仅字符识别”。图像处理,预处理-页面/布局分析以查找文本,图像,表格或条形码。为了获得识别,您必须处理不同的字体,大小和语言。这很重要,因为要获得良好的结果,您必须使用字典和语言定义。最后,人们期望比文本(例如XML,RTF或可搜索PDF)更多的导出选项。SDK有一些商业选择,但它们并不便宜且免费。

最近,我从ABBYY找到了LinuxCLI OCR。有100页的免费试用版。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.