如何提高Tesseract识别结果

3
我希望在使用OpenCV和tesseract的过程中检测图像中的文本。我的步骤如下:
  1. 为了检测文本,我使用cv::text的场景文本检测算法。即使在困难情况下,它也能很好地工作。
  2. 从主图像中提取出包含文本的图像区域
  3. 将每个子图像传递给Tesseract
然而,Tesseract几乎找不到文本,如果找到文本,就是错误的。例如:(图像来自https://github.com/opencv/opencv_contrib/blob/master/modules/text/samples/scenetext01.jpg

enter image description here

绿色:OpenCV检测到的文本(良好)。

黄色:基于绿色矩形识别的tesseract文本(差)。

提取的文本为“DOUBLEI”。右侧的“I”是黑色边框的结果。

您可以看到,如“PROHIBITED”等其他单词也应该很容易被tesseract检测到。我尝试增加包含文本的提取子图像的大小并使用阈值处理,但无法改善我的结果。

在各种教程中,我看到tesseract在更困难的条件下工作,因此它实际上应该能够工作。

直接使用相同图像的“tesseract.exe”时根本没有检测到任何文本:

enter image description here


我看到这两个单词之间唯一的区别是在单词“Prohibited”中,字母更小且彼此更接近。我不知道这是否有帮助,但尝试将图像重新缩放为更大并再次运行。 - Amitay Nachmani
你能否编辑你的问题并附上提取的文本图像? - thewaywewere
我会尝试。有所帮助的是显著增加文本图像大小,例如增加400%。这有助于识别所有文本,但顶部的“NOTICE”没有红色背景。 - Anonymous
1个回答

0

尝试添加一点白色背景。我记得 tesseract 在处理接近图像边界的文本时遇到了很大的问题。在每个侧面添加10像素的白色,看看是否有所帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接