gpt4 book ai didi

python - 从视频游戏屏幕截图中尽可能多地识别文本的最佳方法是什么?

转载 作者:太空狗 更新时间:2023-10-29 17:19:24 24 4
gpt4 key购买 nike

我正在尝试使用 tesseract ocr tool从视频游戏中提取 ocr 文本(我正在预处理屏幕截图并将它们传递给命令行工具 tsv 输出并进行解析)。

我想将它用于测试自动化,这与 selenium 网络测试不同。也就是说,我希望能够等待元素出现,而不是休眠并单击按钮(主要是菜单)。

为了能够做到这一点,我需要能够始终如一地找到相同的按钮文本,并针对一系列视频游戏找到尽可能多的文本。为了抽象起见,我希望每个游戏的预处理/tesseract 选项都相同。

我可能可以为每个游戏中遇到的每个单词添加一个字典,但我不想这样做。

我有一个设置,我可以在其中测试许多不同的预处理/tesseract 选项组合并查看生成的单词。

我已经尝试将屏幕截图(70-90 dpi)放大 5 次,并在将其传递给 tesarect 之前将其设为灰度。

我可以使用哪些其他技术来提高结果的数量和准确性?我应该查看哪些 tesseract 旋钮?我可以添加任何其他有用的预处理吗?

附言我发现如果我将图片放大到两倍的长/宽 tesseract 似乎会爆炸,因为它耗尽了图像的内存。有静态限制吗?我可以找到它以便放大接近最大尺寸的图像吗?我可以调整吗?

最佳答案

训练自己的测试数据

这是迄今为止我从 tesseract 经验中学到的最重要的一课。开箱即用的 tesseract 非常适合识别扫描的书籍和报纸文本,但根据我的经验,当您尝试使用与标准书籍和报纸字体(如 Times New Roman)不相似的字体时,准确性会显着降低。以前训练难度大,但现在tesstrain.sh使它不在话下。您将不得不收集您的视频游戏字体(或至少看起来与它们相似的字体)并将它们作为训练脚本的输入提供。即使您的字体差异很大,tesseract 也能够在运行时以惊人的准确性为提供的图像选择正确的字体。另外,我知道这很乏味,但将视频游戏中遇到的所有单词的单词表提供给训练脚本会很有帮助。使用您自己的字体和您自己的单词列表训练 tesseract 将使您获得近乎完美的准确性,而无需执行任何其他操作。

预处理图像以识别

不要依赖 tesseract 的布局分析

如果可以,请自己进行布局分析并将图像裁剪为包含文本的部分。 Teseract 有一个内置的页面分割引擎,但它必须涵盖如此广泛的用例,以至于它很可能无法满足您的特定需求。此外,根据我的经验,如果将图像分成单行文本并使用分割模式 7(将图像视为单个文本行),它会进一步帮助提高准确性。

提高输入文本的 x 高度

如果您将输入文本的 x 高度增加到您用于训练 tesseract 的高度(IIRC,在我的例子中是 70 像素),这会有所帮助。

提高输入文本的 DPI

超正方体 really likes 300 DPI .请注意,更改图像的 DPI 与更改其大小不同。 (例如,使用 ImageMagick,您可以 use the -density option 来更改图像的 DPI)。

要使用的 Tesseract 配置变量

根据我的经验,调整与匹配词典单词有关的不同“惩罚”设置对提高准确性影响最大。对我有用的设置:

language_model_penalty_non_dict_word      0.975
language_model_penalty_non_freq_dict_word 0.575
segment_penalty_dict_case_bad 1.3125
segment_penalty_dict_case_ok 1.1
segment_penalty_dict_nonword 10.25

但是您显然应该自己进行调整。此外,我发现 x 高度设置在运行时非常有用:textord_min_xheightmin_sane_x_ht_pixels


我不知道 tesseract 有任何内存大小限制。您是否可能通过具有自身限制的包装器使用 tesseract?


注意:此答案假设您使用的是 tesseract 的最新稳定版本,即 tesseract 3.05。如果您使用的是 tesseract 4.0,您自己的训练和分割仍然适用,但答案的其他部分可能是 OBE。

关于python - 从视频游戏屏幕截图中尽可能多地识别文本的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50169850/

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