gpt4 book ai didi

android - 数字识别的建议

转载 作者:可可西里 更新时间:2023-11-01 19:06:15 24 4
gpt4 key购买 nike

我正在编写一个 Android 应用程序来从图片中提取数独谜题。对于 9x9 数独网格中的每个单元格,我需要确定它是包含数字 1 到 9 之一还是空白。我从这样的数独游戏开始:

enter image description here

我使用 OpenCV 对数独进行预处理,以提取各个数字的黑白图像,然后将它们放入 Tesseract 中。不过,Tesseract 有一些限制:

  1. Tesseract 很大,包含许多我不需要的功能(即全文识别),并且需要英语培训数据才能运行,我认为必须继续设备的 SD 卡。至少我可以告诉它只使用 tesseract.setVariable("tessedit_char_whitelist", "123456789");
  2. 查找数字
  3. Tesseract 经常将单个数字误解为一串数字,通常包含换行符。有时它也只是简单地弄错了。以下是上述数独中的几个示例:

enter image description here

我有三个问题:

  1. 有什么方法可以克服 Tesseract 的局限性吗?
  2. 如果不是,什么是有用的、准确的检测单个数字(不是 k 最近邻)的方法,可以在 Android 上实现 - 这可以是免费的库或 DIY 解决方案.
  3. 如何改进预处理以针对该方法?我考虑过的一种可能性是使用细化算法,正如 this post 所建议的那样,但我不会费心去实现它,除非它会有所作为。

最佳答案

我用 one 上过课在数字识别算法排名中名列前茅的计算机视觉巨星。他非常坚定地认为进行数字识别的最佳方法是...

1. Get some hand-labeled training data.
2. Run Histogram of Oriented Gradients (HOG) on the training data, and produce one
long, concatenated feature vector per image
3. Feed each image's HOG features and its label into an SVM
4. For test data (digits on a sudoku puzzle), run HOG on the digits, then ask
the SVM classify the HOG features from the sudoku puzzle

OpenCV 有一个 HOGDescriptor 对象,它计算 HOG features .看this paper有关如何调整 HOG 功能参数的建议。任何 SVM 库都可以完成这项工作……CvSVM stuff that comes with OpenCV应该没问题。

对于训练数据,我建议使用 MNIST handwritten digit database ,其中包含数千张带有真实数据的数字图片。

一个稍微难一点的问题是在自然界中出现的数字周围绘制一个边界框。幸运的是,看起来您已经找到了处理边界框的策略。 :)

关于android - 数字识别的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13319730/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com