python - 使用 Tesseract python 进行数字识别

标签 python computer-vision tesseract

对于我正在进行的一个项目,我尝试使用 OCR 检测食品托盘图像上的数字。为此,我在 python 中使用了 Tesseract 4。但它无法正确检测我拥有的大多数图像的数字。我尝试使用 OpenCV 进行各种图像预处理,例如模糊、阈值、锐化、腐 eclipse 和膨胀,以提高准确性。但似乎没有任何作用。我是计算机视觉的新手,因此任何建议或替代解决方案都会有很大帮助。我已在下面的链接中附加了图像。提前致谢。

Link to Images

最佳答案

您需要更强大的文本检测来为您裁剪文本候选区域。

处理会稍微复杂一些,如下:

  1. 运行文本检测,获取文本候选区域
  2. 提取该区域
  3. 使用tesseract读取文本

OpenCV 的 DNN 模块内部有一个很棒的文本检测脚本,名为:text_detection.py这是使用 EAST 文本检测。使用您的示例图像,我可以在绿色矩形中提取以下文本候选区域。所以接下来的步骤就是上面的步骤 2 和 3。

enter image description here

enter image description here

当然,EAST 没有针对您的场景进行训练,因此 100% 的准确度是不可能的。您可以尝试收集数据并为您的场景训练 EAST。但我认为,默认的准确率将达到 90% 以上。

希望这有帮助。

关于python - 使用 Tesseract python 进行数字识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58281656/

相关文章:

python - 如何在二维 numpy 数组中查找行?

c++ - 发现图像偏移

android - 没有从 Tesseract OCR 获得有效的结果作为 newocr 生产

c++ - 使用 Leptonica API 裁剪图片 -> 或者使用哪个图像处理库?

c++ - Blas 看起来很慢

opencv - cv2.projectPoints 实际上是如何工作的?

Python:期望一个缩进 block

c++ - QT 版本、套件和编译器

python - SciPy 创建 2D 多边形蒙版

java - 不同语言中模运算符的差异