Python中最快的网络游戏截图方法

问题描述 投票:0回答:2

我目前正在尝试构建一个可以仅使用屏幕截图的像素进行训练来玩在线游戏“直升机游戏”(如果您不熟悉,请参见下图)的 ANN。

我已经在 OpenAI Universe 中构建了类似的模型,但希望尝试直接在在线游戏上进行训练,而不是使用模拟器。

我尝试的第一件事是使用Selenium屏幕截图方法以每秒10帧的速度捕获100张屏幕截图。

for i in range(100):
    driver.save_screenshot(r'C:\Users\MyName\Desktop\Screenshots\shot'+str(i)+'.png')
    time.sleep(0.1)

但是 Selenium 似乎无法处理这种速度,即使我去掉时间延迟,它每秒也只能捕获大约 2 或 3 个屏幕截图,而且这是在对图像进行任何预处理之前。

有人知道比我用 Selenium 尝试完成的更快的方法吗?

python selenium tensorflow screenshot
2个回答
3
投票

您可以尝试使用MSS模块,更准确地说是该示例,以仅捕获屏幕的相关部分。

该模块可以与 PIL、Numpy 和 OpenCV 一起用于其他工作,只需查看文档即可:)


0
投票

要以更快的速度捕获屏幕截图以指导您的人工神经网络 (ANN) 玩“直升机游戏”,您可以使用 Python 中的 mss(多显示屏幕截图)库。 mss 库可以快速、绿色地拍摄屏幕截图。以下是如何调整代码以应用 mss:

enter image description here

此代码利用mss库快速抓取屏幕截图,不受Selenium的限制。它会立即从显示屏上抓取屏幕截图,从而考虑到更高的抓取价格。如果需要,您可以修改显示参数以捕获屏幕的独特区域。

捕获屏幕截图后,您可以预处理像素并使用它们来教育您的 ANN 进行“直升机游戏”赌博。

© www.soinside.com 2019 - 2024. All rights reserved.