全国免费咨询:

13245491521

VR图标白色 VR图标黑色
X

中高端软件定制开发服务商

与我们取得联系

13245491521     13245491521

2020-04-17_GTA 5真香!哦不,我在用深度学习做自动驾驶

您的位置:首页 >> 新闻 >> 行业资讯

GTA 5真香!哦不,我在用深度学习做自动驾驶 选自GitHub 项目作者:Iker García 机器之心报道 参与:Racoon X 用深度学习当「外挂」,本文将教你如何用 PyTorch 在GTA 5 中训练自动驾驶模型。最新一代的侠盗猎车手 GTA 5 是这样一款游戏,它内含一个故事驱动的高度自由化世界,以至于游戏推出之后,很多人在通关之后(或者一点剧情没打)会尝试很多非常规的玩法。调整游戏中的物理参数、当一个遵纪守法的「好人」,甚至在游戏里学习侧方位停车帮助考驾照…… 对于 AI 开发者来说,GTA 5 有一个庞大的虚拟世界,我们在里面可以开车。所以为什么不能用来训练自动驾驶呢?在新冠疫情期间,我们打游戏的时间不断增加,进而产生了大胆的想法。 项目简介 这是一个使用深层神经网络并运用监督学习实现在 Grand Theft Auto V 中自动驾驶的开源项目。项目使用 PyTorch 编写,并使用了 Nvidia 的 Apex 扩展库,支持混合精度训练与推断,最多大约有两倍的速度提升。训练后模型在驾驶时的策略是模仿人玩 GTA 时的操作,并不会去遵守游戏里的交通规则。例如:地板油在街道上穿行,并躲避其他车辆与行人。当在游戏中设置好目标点后,训练好的模型能够自主地驾驶到对应目标点。 项目地址:https://github.com/ikergarcia1996/Self-Driving-Car-in-Video-Games 项目使用人工标记的数据来训练深层神经网络,即首先记录下游戏中的画面已经人玩游戏时的键盘操作,之后使用该数据集来训练神经网络模型。 这里需要指出的是,本项目只是用 GTA V 作为自动驾驶的例子,理论上其可用于任意一款驾驶的电子游戏中。下图为使用训练后模型进行自动驾驶的效果展示。 这技术,比玩家都稳? 整体框架 此前大多数尝试在电子游戏中实现自动驾驶的模型均包含有深层卷积神经网络(通常是 Inception 或 Resnet)。这些模型以单一图像作为输入。当你看到如下这样一张图像时你会作出什么样的反应呢? 你可能会想到,最好的选择是刹车来避让图中蓝色和灰色车辆。但是,如果这两辆车都停下来让你先过马路怎么办呢?假如你现在实际上是在倒车呢?你当前的车速以及其他车辆的速度是否允许你穿过马路而不会发生碰撞?单一的图像无法为自动驾驶车辆提供足够的信息。我们需要更多的信息,这就是为什么本项目使用一系列图像作为输入的原因。间隔 0.1 秒捕捉 5 张连续的图像,这样的方式为模型提供了更多关于自身、其他车辆与环境的信息。 T.E.D.D. 1104 由一个深层卷积神经网络(Resnet)之后连接一个循环神经网络(LSTM)组成。CNN 用以上 5 张连续的图片作为输入,并为其产生对应的向量表征。之后这些表征将会输送到 RNN 中,RNN 会为整个序列输入产生一个独特的向量表征。最后通过一个全连接网络输出以上序列输入在电脑键盘上对应的按键。整体结构如下图所示。 如何使用 这个项目包含了所有用于生成训练数据、进行模型训练以及使用训练好的模型在游戏中自动驾驶的文件。整个项目使用 Python 3 编写。作者仅在 Windows 10 系统下进行了测试,毕竟大多数人都是在 Win 10 操作系统下玩的 PC 游戏,Linux 和 Mac 上的游戏还是比较偏小众一些。 依赖环境 运行本项目需要安装的依赖环境如下: Pytorch Torchvision NvidiaApex(onlyforFP16training) numpy cupy(optionalbuthighlyrecommendedespeciallyfortrainingthemodel,10xspeedupindatapreprocessingcomparatedwithnumpy) cv2(opencv-python) glob h5py json win32api(PythonWin)-ShouldbeinstalledbydefaultinnewestPythonversions(Python3.7reccomended) 生成训练数据集 首先将游戏设置为桌面模式,分辨率设置为 1600x900,将游戏窗口移到桌面左上角位置,如下图所示: 运行如下代码并开始玩游戏: pythongenerate_data.py--save_dirtedd1007\training_data 该程序会自动地捕捉屏幕并生成用于训练的样本。这些文件将会被保存为「training_dataX.npz」。重新运行以上代码时不用担心原数据集被覆盖,程序会自动检测目录中是否已经存在数据集文件。使用 Q + E 停止收集数据。 训练模型 使用如下代码对模型进行训练: pythontrain.py--train_new --train_dirtedd1007\training_data\train --dev_dirtedd1007\training_data\dev --test_dirtedd1007\training_data\test --output_dirtedd1007\models --batch_size10 --num_epochs5 --fp16 其中--fp16 能够让我们使用混合精度训练(需要显卡支持半精度浮点运算,如:RTX 2000、RTX Titan、Titan V、Tesla V100 等),使用了 Nvidia 的 Apex 扩展库:https://github.com/NVIDIA/apex。训练模型需要消耗大量的显存,项目作者把 batch size 设置为 15 在 RTX 2080 上进行训练。 使用如下代码从保存的 checkpoint 中继续训练: pythontrain.py--continue_training --train_dirtedd1007\training_data\train --dev_dirtedd1007\training_data\dev --test_dirtedd1007\training_data\test --output_dirtedd1007\models --batch_size10 --num_epochs5 --checkpoint_pathtedd1007\checkpoint\epoch1checkpoint.pt 运行模型 训练完成之后,接下来就可以看 AI 是如何「开车」的了。使用如下命令运行模型: pythonrun_TEDD1104.py--model_dirD:\GTAV-AI\models--show_current_control--fp16 假如读者的 GPU 有 tensor core 的话(如 RTX 2000、RTX Titan、Titan V、Tesla V100 等),推荐使用--fp16,能够将推理速度大约提升 2 倍并只消耗一半的显存。 GTA 5 里的载具手感和极品飞车等游戏有所不同,对于手残的我们来说撞墙在所难免。自从学习了人工智能,一切看来变得有了希望。 机器之心 CVPR 2020 线上分享的第一期,我们邀请到北京大学智能科学系陈汉亭(论文一作)为我们分享主题《加法神经网络:在深度学习中我们是否真的需要乘法?》,欢迎读者报名学习。

上一篇:2025-05-14_ICML 2025 | 如何在合成文本数据时避免模型崩溃? 下一篇:2024-03-20_研究完500+品牌名,我们发现了这11个规律(两万字干货)

TAG标签:

18
网站开发网络凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设网站改版域名注册主机空间手机网站建设网站备案等方面的需求...
请立即点击咨询我们或拨打咨询热线:13245491521 13245491521 ,我们会详细为你一一解答你心中的疑难。
项目经理在线

相关阅读 更多>>

猜您喜欢更多>>

我们已经准备好了,你呢?
2022我们与您携手共赢,为您的企业营销保驾护航!

不达标就退款

高性价比建站

免费网站代备案

1对1原创设计服务

7×24小时售后支持

 

全国免费咨询:

13245491521

业务咨询:13245491521 / 13245491521

节假值班:13245491521()

联系地址:

Copyright © 2019-2025      ICP备案:沪ICP备19027192号-6 法律顾问:律师XXX支持

在线
客服

技术在线服务时间:9:00-20:00

在网站开发,您对接的直接是技术员,而非客服传话!

电话
咨询

13245491521
7*24小时客服热线

13245491521
项目经理手机

微信
咨询

加微信获取报价