【问题标题】:Most simple approach for digit recognition in Python [closed]Python中最简单的数字识别方法[关闭]
【发布时间】:2017-07-30 21:06:40
【问题描述】:

我有一个简单的数字识别项目,并注意到人们在 Python 中通常使用两种方法。我的目标是输入 PDF 文档并在页面的特定位置获取 HANDWRITTEN 数字。

我看到人们要么使用opencv,如this 问题,要么使用scikitlearn,如this 示例。我都不熟悉,并且想知道哪个最容易学习和实施,考虑到我的预期用途。谢谢。

【问题讨论】:

  • “获取数字”是什么意思?一般来说,你可以使用任何 pdf 阅读工具(pdfminer 等),打开它并使用正则表达式来查找你的数字,如果你指的是那个。考虑到您提到了 scikit,我认为您并不打算这样做。
  • scikit-learn 示例并没有解决同样的问题! (对预处理和裁剪的数字进行分类!= 找到一个数字)。
  • 我总是推荐 scikit-learn,它更加健壮,并且有许多功能可以帮助您处理大型数据集。要获取数字,请根据像素位置裁剪它们,然后将它们提供给您的机器学习算法。你打算用什么?
  • sklearn 没有对象检测器。所以它还没有为 OCR 做好准备。 OP应该定义他的任务。 particular places 是什么?

标签: python opencv image-processing scikit-learn classification


【解决方案1】:

我建议你应该同时使用opencvscikitlearn。将pdf转成图片后,可以使用opencv进行图片预处理(高斯模糊、阈值化、侵蚀/膨胀滤镜),这样数字会变得更容易提取。然后您可以使用轮廓跟踪(同样opencv)来检测各个数字。提取数字后(并假设您有一个训练集),您可以使用scikitlearn 进行分类。

【讨论】:

  • 谢谢,这很有用。我没有训练集。有什么地方可以找到通用的数字训练集吗?
  • 据我所知,最著名的手写数字训练集是MNIST