我目前正在尝试编写一个机器人,在tetrisfriends.com上玩俄罗斯方块来练习机器学习,但遇到了困难。我试图找到一种方法从游戏中读取玩家的得分,但Tesseract无法识别字体/数字,我认为我无法重新训练Tesseract来识别这些数字,因为这不是一个完整的字体,只是一些数字。
我试图读取数字的图像是这个:https://i.sstatic.net/7mCsv.jpg
当我使用Tesseract时,我可以识别页面上的其他文字,但无法识别我需要的数字部分。
有没有人有方法可以做到这一点,无论是通过重新训练Tesseract,还是其他方法,或者任何其他方式?
回答:
我对Tesseract并不是很熟悉,但它可能不是这里的最佳选择。如果最终目标只是制作一个机器人,你可能可以直接从应用程序中提取文本,而不是担心光学字符识别(OCR),但如果你想了解更多关于机器学习的知识,并且你还没有做过的话,MNIST和CIFAR-10数据集是非常好的起点。
无论如何!你试图测试的图像对比度非常低,字体也非常风格化。从网站本身来看,字符似乎是黄色的:
如果你预处理图像,使黄色像素变为黑色,其他所有像素变为白色,你将获得一个更清晰的源图像,例如:
如果你想继续使用Tesseract,并且预处理还不够,那么你可能需要为这种字体重新训练它。你需要准备一个语料库,按照你期望的源数据的方式处理它,然后使用类似qt-box-editor的东西来校正数据。这篇指南应该可以引导你完成重新训练的基本步骤。