我最喜欢的YouTuber之一,CodeBullet,曾经尝试创建一个乒乓球 AI来统治所有人。可悲的是,他遇到了麻烦,不是因为他没有能力,而是我认为他当时的经验对计算机视觉没有太大影响。他绝对是个好笑的人,如果你考虑阅读这篇文章的其余部分,我强烈建议你观看他的视频。同样,他是个天才。在这里看他的视频。
- https://www.youtube.com/watch...
这似乎是一个非常有趣且简单的任务,所以我也想尝试一下。在这篇文章中,我将概述一些我考虑过的因素,如果你希望在任何类似的项目上工作,这些因素可能会有所帮助,并且我想我会尝试其中的一些其他工作,因此,如果你喜欢这种类型的事情,可以关注我。
使用计算机视觉的好处是,我可以使用已经构建的游戏并处理图像。话虽如此,我们将使用与ponggame.org上使用的那个与CodeBullet相同的游戏版本。它还具有2人模式,因此我可以与自己的AI对抗;我做到了,这确实很难……
- https://www.ponggame.org/
捕捉屏幕
第一件事就是捕捉屏幕。我想确保我的帧速率尽可能快,为此我发现MSS是一个很棒的python包。有了这个,我很容易达到60帧/秒的最高速度,与 PIL 相比,我只能得到大约20帧每秒。它以 numpy 数组的形式返回。
- MSS: https://pypi.org/project/mss/
Paddle detection
为了简单起见,我们需要定义paddle 的位置。这可以用几种不同的方法来完成,