Python机器学习之游戏自动驾驶(一)

本文介绍了使用Python和机器学习实现游戏自动驾驶的方法。通过获取每一帧游戏画面并将其转化为分类任务,训练神经网络来识别左转、右转和直行操作。文章详细阐述了获取游戏图片和操作数据的步骤,并提及了数据处理中对游戏画面的裁剪和压缩,以降低训练难度。然而,代码存在一些问题,如按键转换函数未准确反映游戏行为。
摘要由CSDN通过智能技术生成

先说一下总体思路,这一块需要读者有一定的机器学习基础。我们在玩游戏的时候,是眼睛看到了屏幕的画面之后,大脑思考应该怎么操作,然后发送指令到我们的手指,按下指定的按键。

利用机器学习玩游戏也是同样的道理,我们可以把游戏的过程离散化,以每一帧游戏画面为单位,连续的操作则对应到每一张图片的操作。

输入一张图片,就对应了一个操作,这个操作可以作为图片的标签。这时候我们就可以把玩游戏的过程建模为一个图片的分类过程,在跑跑卡丁车自动驾驶中,我对操作进行了简化,一共只有三种操作,左转,右转和直行。

每个图片对应着一种操作,我们要做的就是得到大量的训练数据,然后输入到神经网络中进行训练,训练完成后,把游戏画面一帧一帧的送入网络中,网络根据画面输出一个操作,就可以实现自动驾驶。

这里面有几个比较重要的步骤,首先是如何获取游戏图片和图片对应的操作,将在本篇文章中说明。

1.如何获取数据

这里我们需要用到python中的几个包,win32包和opencv包

win32包主要用来获取按键信息,而opencv包则用来获取图像信息。

下面直接给出代码供大家参考

import win32api
import time


keyList = ["\b"]
for char in "ABCDEFGHIJKLMNOPQRSTUVWXYZ 123456789,.'£$/\\":
    keyList.append(char)


def key_check():
    keys = []
    for key in keyList:
        if win32api.GetAs
  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值