如何在Tesseract和OpenCV之间进行选择?

Leg*_*end 86 python ocr opencv tesseract computer-vision

我最近遇到了TesseractOpenCV.看起来Tesseract是一个成熟的OCR引擎,OpenCV可以用作创建OCR应用程序/服务的框架.

我尝试在我的一些图像上使用Tesseract,它的准确性似乎不错.后来,我遇到了一个非常简单的使用OpenCV来使用Python执行OCR的教程,并给人留下了深刻的印象.几分钟后,我完成了系统的培训,其准确性很好.但是,当然,采用这种方法意味着我需要使用大型训练集来广泛训练我的系统.

我的具体问题如下:

  • 如何在Tesseract和使用OpenCV构建自定义OCR应用程序之间进行选择?
  • 有针对不同语言的Tesseract提供的培训数据集.OpenCV是否有类似的东西,以便我不必开始实现OCR?
  • 对于想成为商业应用程序哪个更好?

有什么建议?

注意:我24小时在计算机视觉领域,但我愿意花时间和精力学习先决条件.

Ble*_*der 69

  • Tesseract是一个OCR引擎.它由Google专门用于阅读文档,进行基本文档分割以及对特定图像输入(单个单词,行,段落,页面,有限词典等)进行操作.

  • 另一方面,OpenCV是一个计算机视觉库,其中包含可以执行某些特征提取和数据分类的功能.你可以创建一个简单的字母分段器和分类器来执行基本的OCR,但它不是一个非常好的OCR引擎(我从头开始在Python中制作一个.对于偏离你的训练数据的输入来说真的不准确).

如果您想基本了解OCR的难度,请尝试使用OpenCV.Tesseract用于真正的 OCR.

  • Tesseract经过培训,可以阅读特定的字体集.那些块状的字母不是其中之一.您必须向Google展示动物牺牲品并尝试自行培训Tesseract:http://code.google.com/p/tesseract-ocr/wiki/TrainingTesseract3 (5认同)
  • 这取决于您输入的图像.当字母清晰,水平线,间隔,未连接且完美的黑白时,Tesseract效果最佳.我在DIY书籍扫描/保存社区中修改了大约一年,并在我的空闲时间处理软件以简化过程.*最佳*软件(商业与否)用于后处理*任何*带有文本的图像是[Scan Tailor](http://scantailor.sourceforge.net/).它有一些CLI选项,但如果你花点时间看看它是如何工作的,那就太棒了. (3认同)
  • 我曾在Scan Tailor的源代码上工作过一段时间,并没有在内部使用OpenCV,但是很多创建的算法都可以很容易地用OpenCV的函数重写.如果您的图像没有扭曲并且没有降级,那么在将图像输入Tesseract之前,您实际上只需要实现自适应二值化和一些简单的去斑. (2认同)

Abi*_*n K 62

我是你提到的那个数字识别教程的作者,我想说,这无法替代tesseract.

Tesseract是一款非常好的OCR引擎,可能是最好的OpenSource OCR引擎.

您提到的教程只是一个尝试,以了解OCR最简单的工作.

因此,如果您正在寻找OCR应用程序,我建议您使用OpenCV预处理图像,然后应用tesseract引擎.

  • @GangstaGraham您只需要训练tesseract,您可以在几小时或几天而不是几年内获得更好的结果.http://opensource.newmediaist.com/tesseract-training.html (4认同)
  • +1 谢谢。首先,感谢您的教程 :) 这是一本非常有趣的读物。您是否知道有关如何使用 OpenCV 和 Tesseract 的任何参考资料/教程?不是在谈论接口,而是在谈论需要进行哪些图像转换或预处理以提高 Tesseract 的准确性? (2认同)
  • 我只想说,虽然Tesseract与其他人相比是一个很好的OCR引擎,但它仍然相当不准确,我在获得正确的文本识别方面的成功率约为40%.希望在几年内会更好. (2认同)

小智 7

这两者可以互补.如果您阅读OpenCV上的论文 http://tesseract-ocr.googlecode.com/svn/trunk/doc/tesseracticdar2007.pdf

它强调"由于惠普拥有独立开发的产品中使用的页面布局分析技术(因此未针对开放源代码发布),Tesseract从不需要自己的页面布局分析.因此,Tesseract假设其输入是二进制图像可选的多边形文本区域."

这种类型的任务可以由OpenCV执行,并将生成的图像传递给Tesseract.您可以在Git仓库中找到此类代码的示例:https://github.com/Itseez/opencv_contrib/tree/master/modules/text/samples 这些示例使用Tesseract API进行图像到文本转换.