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

2024-04-19 16:21:54 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

我的具体问题如下:

  • 如何在Tesseract和使用OpenCV构建自定义OCR应用程序之间进行选择?
  • 有可用于不同语言的Tesseract的培训数据集。OpenCV有类似的东西吗,这样我就不必从头开始就实现OCR了?
  • 哪一个更适合商业应用?

有什么建议吗?


Tags: 数据方法图像引擎框架语言应用程序系统
3条回答
  • Tesseract是一个OCR引擎。它由Google使用、开发和资助,专门用于从图像中读取文本、执行基本文档分割和操作特定的图像输入(单个单词、行、段落、页面、有限字典等)。

  • 另一方面,OpenCV是一个计算机视觉库,它包含一些特性,这些特性允许您执行一些特征提取和数据分类。您可以创建一个简单的字母分段器和分类器来执行基本的OCR,但它不是一个很好的OCR引擎(我以前在Python中从头开始就做了一个)。对于偏离训练数据的输入来说,这是非常不准确的)。

如果你想基本了解OCR有多难,可以试试OpenCV。Tesseract用于realOCR。

两者可以互补。如果你读了OpenCV上的文章: https://github.com/tesseract-ocr/docs/blob/master/tesseracticdar2007.pdf

该报告强调,“由于惠普已经独立开发了用于产品的页面布局分析技术(因此没有发布用于开源的技术),Tesseract从不需要自己的页面布局分析。因此,Tesseract假定其输入为二进制图像,并定义了可选的多边形文本区域。”

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

我是你提到的数字识别教程的作者,我想说,这绝对不能替代tesseract。

Tesseract是一个非常好的OCR引擎,可能是最好的开源OCR引擎。

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

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

相关问题 更多 >