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

时间:2012-07-15 06:07:23

标签: python opencv computer-vision ocr tesseract

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

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

我的具体问题如下:

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

有什么建议吗?

4 个答案:

答案 0 :(得分:69)

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

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

如果您想要了解OCR的难度,请尝试使用OpenCV。 Tesseract适用于真正的 OCR。

答案 1 :(得分:62)

我是您提到的数字识别教程的作者,我想说,这无法替代tesseract。

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

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

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

答案 2 :(得分:7)

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

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

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

答案 3 :(得分:1)

OpenCV是CV的库,用于分析和处理图像。 Tesseract是OCR的库,它是CV的专用子集,专门用于从图像中提取文本。

来自OpenCV.org

  

.....用于检测和识别面部,识别物体,对视频中的人体动作进行分类,跟踪相机移动,跟踪移动物体,提取物体的3D模型,从立体相机生成3D点云,将图像拼接到一起生成整个场景的高分辨率图像,从图像数据库中找到相似的图像,从使用闪光灯拍摄的图像中移除红眼,跟踪眼睛运动,识别风景并建立标记以用增强现实覆盖它等等。

来自Tesseract Github

  

.....可以直接使用,或者(对于程序员)使用API​​从图像中提取打字,手写或打印的文本。它支持多种语言。

相关问题