通过Tesseract OCR在七段显示器上进行文本检测

时间:2013-07-16 09:24:17

标签: ocr tesseract seven-segment-display

我正在使用的问题是从图像中提取文本,为此我使用了Tesseract v3.02。我必须提取文本的样本图像与仪表读数有关。其中一些具有实心纸张背景,其中一些具有LED显示器。 我已经训练了实体表背景的数据集,结果是有效的。

我现在遇到的主要问题是带有LED / LCD背景的文本图像,Tesseract无法识别,因此不会生成训练集。

任何人都可以指导我如何使用Tesseract与七段显示器(LCD / LED背景),或者是否有任何其他替代方案,我可以使用而不是Tesseract。

LED background image 1 LED background image 2 Meter 1 with solid sheet background enter image description here enter image description here

3 个答案:

答案 0 :(得分:4)

这看起来像是一个图像预处理任务。 Tesseract真的更喜欢它的图像都是位图格式的黑白文本。如果你给它一些不那样的东西,它会尽力将它转换成那种格式。关于如何做到这一点并不是很聪明。使用一些图像处理工具(我碰巧喜欢imagemagick),你需要使图像更符合tesseract的满意度。一个简单的第一步可能是做一个小半径高斯模糊,阈值处于一个相当低的值(你试图只保持黑色,所以15%似乎是正确的),然后反转图像。

然后,困难的部分就会知道要执行哪个预处理任务。如果你有元数据告诉你你正在处理什么样的显示,那很好。如果没有,我怀疑你可以查看图像颜色直方图,以至少弄清楚你的文字是黑底白字还是黑底彩。如果这些是唯一的场景,那么黑底白字总是纯色背景,而黑底彩色总是七段显示,那么你就完成了。如果没有,你必须聪明。祝你好运,请告诉我们你的想法。

答案 1 :(得分:4)

https://github.com/upupnaway/digital-display-character-rec/blob/master/digital_display_ocr.py

这是否使用openCV和tesseract以及“letsgodigital”训练数据

-steps包括边缘检测和使用最大轮廓提取显示。然后使用otsu或二值化的阈值图像,并通过pytesseracts image_to_string函数传递它。

答案 2 :(得分:2)

看看这个项目:

https://github.com/arturaugusto/display_ocr

在那里,您可以下载7段字体的训练数据和带有一些预处理功能的python脚本。