android - 改进 Android 上的 Tesseract 结果

标签 android image-processing ocr tesseract

我一直在开发一个使用 tesseract OCR(光学字符识别)的 android 应用程序,想知道是否有一种方法可以改进小文本的结果。

我已经尝试用我自己的常用词列表(使用 wordlist2dawg)重新编译标准词典,但没有看到任何改进(我什至不知道它是否有帮助!)。我还听说可以更改 tesseract 使用字典单词的阈值,但我不知道该怎么做。

如果有人知道我可以如何改进 tesseract 给我的结果,我将非常感激!

最佳答案

我知道一些可能对您有帮助的选项:

  1. 在图像边框和文本之间添加额外的空间。如果图像中的文本位于边缘,Tesseract 会很糟糕。
  2. 复制你的形象。例如,如果您对单词“foobar”执行 OCR,克隆图像并将“foobar foobar foobar foobar foobar”发送到 tesseract,结果会更好。
  3. Google 为 tesseract 进行字体训练和图像二值化。

请记住,移动设备中的内置摄像头大多会生成低质量图像(模糊、噪点、倾斜等)。OCR 本身是一个资源消耗过程,如果您为此添加有值(value)的图像预处理,低端和中端移动设备(可能有安卓系统)可能会面临意外的性能下降甚至资源匮乏。这对于免费/学习项目来说没问题,但如果您计划开发商业应用程序,请考虑使用更好的 SDK。

有关详细信息,请查看此问题:OCR for android

关于android - 改进 Android 上的 Tesseract 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9711323/

相关文章:

java - Glide 4.7.1 监听器不适用于 onResourceReady 方法和异常监听器

iphone - Cocos2D图像如何反复缩小

algorithm - 模板与旋转匹配

php - 如何使用 OCR (TesseractOCR) php 库

c - 整体文字识别算法详解

java - 安卓 list : Ignoring unknown 'shape' XML element

android - Genymotion/Android : Keyboard Input and Big Icons

android - 当自动增量列超过 SQLite 中的最大值时会发生什么

image-processing - 如何在 cuda 中管理大型二维 FFT

terminal - unicharset_extractor : command not found