使用 Tensorflow 物体检测来玩射击游戏《反恐精英》

本篇文章我将介绍如何使用TensorFlow目标检测模型来玩经典FPS游戏——“反恐精英”。

 

 

使用我的网络摄像机和TensorFlow目标检测模型玩“反恐精英”

 

方才,我偶然发现了这样一个有趣的项目。文章作者是利用网络摄像头玩经典游戏“格斗之王”。他借助网络摄像头记录的信息、结合CNN和RNN的使用来识别踢打和拳击的动作。之后,他将模型输出的预测值翻译成游戏中用到的准确动作。这确实是一个很棒的玩儿法~

 

 

用网络摄像头和深度学习来玩“格斗之王”。原文可以在这里找到。

 

受这个项目的启发,我于是做了一个类似的控制界面,它可以通过TensorFlow目标检测模型的预测结果玩FPS(第一人称设计游戏)。

 

这个项目的代码可以在我的GitHub主页上找到,链接如下:

 

ChintanTrivedi/DeepGamingAI_FPSAn FPS game controller that uses webcam and deep learning to play games – ChintanTrivedi/DeepGamingAI_FPSgithub.com

 

我设计的这个控制界面可以处理游戏里如下几个动作:

 

1.瞄枪

 

首先,为了在游戏里环顾四周,我将一个网球作为我的目标检测模型。基于屏幕里在我手上的这个网球的位置,我们可以设置鼠标的位置,进而控制我们的玩家在游戏里瞄准的位置。

 

 

2.移动玩家

 

紧接着,为了指挥游戏里的玩家前进,我会检测我的食指动作。当食指竖起来时,玩家会前进;而当我放下手指时,会停止玩家的动作。

 

 

3.开枪

 

第三个支持的动作是开枪。因为两只手都用在了瞄枪和前进上,我只能使用张嘴动作来控制开枪了。

 

 

  目标检测模型

 

这个用作目标检测的模型叫MobileNet,它结合SSD使图片本土化。我在不同的网球图片、竖起的食指图片和代表张开嘴的牙齿图片上训练该模型。它会在一个合理的速率上跑,这样我就可以通过轻量级的模型实时控制我们的游戏。

 

 

    模型性能

 

就模型的性能而言,游戏中检测手指和牙齿的方法似乎相对可靠些。主要的问题在于能够按照我们想要的位置准确地瞄枪。因为模型是跑在比游戏还低的帧率上的,因此鼠标的移动是跳跃式的、不太流畅。此外,在图片边缘网球的检测效果不好,因此这种方法不太可靠。这个问题可以在离网络摄像头稍远的地方通过微调模型来有效检测目标来解决,这样我们就有足够的空间移动网球,就能够对我们的目标有更好的控制。

 

这个模型的游戏性能效果可以在我的YouTube上看到。

 

    总结

 

因为深度学习模型的强化,这个概念已经接近可能。为了替代游戏中更多传统的方式,这种控制机制的实际应用需要变得更完美。我能够预测到这个想法的完美实现将使得FPS的游戏过程变得更有趣。

原标题 :Using Tensorflow Object Detection to control first-person shooter games

作者 |   Chintan Trivedi 翻译 | Yukiqq  校对 | 酱番梨  整理 | 菠萝妹

原文链接:https://towardsdatascience.com/using-tensorflow-object-detection-to-control-first-person-shooter-games-c2c7f1daf2e9

发表评论

电子邮件地址不会被公开。 必填项已用*标注