如何在Python中识别图像中的数字?

我目前正在尝试编写一个机器人,在tetrisfriends.com上玩俄罗斯方块来练习机器学习,但遇到了困难。我试图找到一种方法从游戏中读取玩家的得分,但Tesseract无法识别字体/数字,我认为我无法重新训练Tesseract来识别这些数字,因为这不是一个完整的字体,只是一些数字。

我试图读取数字的图像是这个:https://i.sstatic.net/7mCsv.jpg

当我使用Tesseract时,我可以识别页面上的其他文字,但无法识别我需要的数字部分。

有没有人有方法可以做到这一点,无论是通过重新训练Tesseract,还是其他方法,或者任何其他方式?


回答:

我对Tesseract并不是很熟悉,但它可能不是这里的最佳选择。如果最终目标只是制作一个机器人,你可能可以直接从应用程序中提取文本,而不是担心光学字符识别(OCR),但如果你想了解更多关于机器学习的知识,并且你还没有做过的话,MNISTCIFAR-10数据集是非常好的起点。

无论如何!你试图测试的图像对比度非常低,字体也非常风格化。从网站本身来看,字符似乎是黄色的:

before

如果你预处理图像,使黄色像素变为黑色,其他所有像素变为白色,你将获得一个更清晰的源图像,例如:

after

如果你想继续使用Tesseract,并且预处理还不够,那么你可能需要为这种字体重新训练它。你需要准备一个语料库,按照你期望的源数据的方式处理它,然后使用类似qt-box-editor的东西来校正数据。这篇指南应该可以引导你完成重新训练的基本步骤。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注