点击上方“视学算法”,选择加"星标"或“置顶

重磅干货,第一时间送达

来源丨新智元

编辑丨极市平台

导读

单凭一个CNN网络,居然能在快20年前的经典赛车游戏里跑自动驾驶!不过,你这个AI咋不躲障碍物呢?

最近,一位Reddit网友自己搭了个CNN模型,让AI在2005年出的经典游戏「极品飞车9:最高通缉」里开车。

点赞超过1700,可谓是机器学习子版块里一时以来最高的贴。

至于效果嘛……

在宽阔的大路上,AI开得还算平稳,但时不时就会去「画蛇」……

好在速度控制得还行,不会轻易引起「警察」的注意。

虽然是游戏机制的一部分,但想要甩掉这些穷追不舍的警车,玩家手动操作时几乎每次都把人整得心力憔悴、手指酸痛。

尤其是随着追捕等级的提升,对付的将不再是那些老旧的巡逻车了,而是重型SUV甚至是直升机,逃脱难度直线上升。

大概是训练数据的缘故,当AI在路上遇到障碍物时,表现得简直就和人类玩家一模一样:

「躲」这个词,在AI的字典里是不存在的。

轻打方向,微调路线,瞄准了直接撞上去才是王道!

从路牌到三角锥,一个都不能放过。

项目很简单,就是数据不太够

「Deep For Speed」基于Python 3.9和Pytorch 1.10,只需要安装Numpy、Matplotlib库即可。

作者表示,这个项目的创意来自于英伟达项目的启发。

论文中英伟达只用单个卷积神经网络、而非大堆炫目算法就做出了自动驾驶汽车。

基础架构

作者表示,自己项目的工作流程非常简单。

程序首先会将游戏中的速度仪表盘、小地图和视野中直观路面录屏并存储为numpy数组,之后再去调用np.load()函数进行处理就可以了!

模型中的play.py和play_util.py函数,实质上是键盘输入模拟器,将AI的自动驾驶结果模拟成物理键盘输入,操控游戏。

不过可能是作为参考的项目比较古老,这里只能把游戏调成分辨率为800x600的窗口放在屏幕左上角运行。

创建和处理数据

使用模型

项目作者称,做出可以运行的模型雏形用了两周,把模型修改到其他用户也能用,又花了两周。总共在项目上投入的时间大概1个月。

其中,训练数据集的搜集可以说是最难的部分了。

作者表示,自己耍游戏20小时中搜集的数据,因为模型改动的频度和幅度,最后只有两小时的数据能用。

项目的开源部分也是因为扩充训练数据集的需求:想要扩大数据包,但自己搞不定了。

不过,如果能让大家一起来玩的话,说不定有同好会做出更大的训练数据集、训练自己的模型,然后再共享给他

由此,作者也模仿原来游戏的名字「Most Wanted」给项目起了一个别称——「DeepForSpeed: Data Wanted」。

作为最终目标,项目作者还想将自己的CNN项目做成一个可以实验多种架构的通用平台/界面。

让玩家同好们在体验模拟器娱乐的同时,也能实验自己做的其他神经网络。

极品飞车:最高通缉

《极品飞车:最高通缉》(Need For Speed: Most Wanted),是游戏业界著名厂商艺电(EA)推出的《极品飞车系列》赛车游戏中的第九作,于2005年11月15日开始在美国发售。

当年,开局一上来就不得不按照剧情需要把自己心爱的「宝驹」BMW M3 GTR输掉,着实让小编难受了好久。

尤其是之后要从最基础的车开始,堪称教科书式的「摩托变单车」……

游戏结合了沙盒开放世界、警匪跑跑追追模式、子弹时间视觉效果、以及玩家改装车辆等特色。

这些特色功能在当时几乎所有大游戏厂商都还在搞参与式电影类游戏项目的风气中,堪称走在时代的前沿。

游戏除了推出Windows版本外,还为GameCube、GBA、NDS,PlayStation 2、PSP,Xbox,Xbox 360等多个游戏机平台推出相应版本。

2009年底,游戏的全平台销量达到了1600万套,是整个极品飞车系列最畅销的一部作品,也曾是当时全球非独占平台的单一赛车游戏作品中的最高销量。

游戏女主角声优是这位超级辣阿姨Josie Maran,在2000年代曾经短暂从超模业改行作女演员,没走红后改做化妆品品牌,终于成功。

在当年的游戏媒体网站中也广受好评。Metacritic和Game Rankings都给出了82的高分(满分100分)。

Eurogamer称之为「画面效果惊艳不已」,GameSpot给出8.4分(满分10分),并赞扬游戏「图像锐利」「音效出众」,但批评游戏的AI起初太容易而之后太难。

国内有玩家想忆童年,于是又扒出来玩了一下,评价是:「速度感仍旧一流,发黄、模糊的光影和粒子效果遮盖了许多场景的简陋之处,还算比较讨巧。」

不过托这款游戏现在画面质量一般、但游戏操作系统仍然犀利的特色,正好符合机器学习模型的个人开发者的要求:

因为画面质量一般,对硬件的要求就低,个人买得起;因为游戏仍然好玩,训练AI模型来玩仍然有价值。

灵感来自2016年的论文

此外,作为idea来源的英伟达论文,年代也十分久远,不过效果依然拔群。

论文链接:https://arxiv.org/abs/1604.07316

论文中,作者训练了一个卷积神经网络(CNN),将单个前置摄像头的原始像素直接映射为转向指令。

只需用到很少的人类数据,AI就能学会驾驶汽车,即便是在没有标记或者视觉引导不明确的地方。

作者并没有训练AI去检测道路的边界,而是用人类的转向角度作为训练信号来检测有用的道路特征,从而让AI学到内部的表征。

与诸如车道标记检测、路径规划和控制这种对问题的明确分解相比,英伟达提出的端到端系统同时优化了所有处理步骤。

作者认为,这种方法可以得到更好的性能和更小的系统。其中,内部的自我优化,可以最大化整体系统的性能,而不是优化人类选择的中间标准,例如车道检测。

在训练过程中,图像最先会被输入到一个CNN网络之中,然后计算出一个转向的指令。

之后,将这个指令与图像的期望指令进行比较,调整CNN的权重,使CNN的输出更接近期望的输出。其中,权重调整是通过反向传播完成的。

一旦完成训练,神经网络就可以从视频图像中生成正确的转向命令。

网友:和FSD差不多嘛!

「游戏中AI驾驶表现比大部分加州公路上的人类司机好」

「AI在游戏里开车,和特斯拉FSD差不多嘛!很赞!」

网友:「大兄弟干得漂亮,能做个马里奥赛车版本的么?我愿意打钱。」

项目作者:「好啊,我要是能在玩马里奥赛车同时也录屏,说不定可行哦。」

「千万别把这当成软件升级卖给特斯拉」

参考资料:

https://github.com/edilgin/DeepForSpeed

点个在看 paper不断!

低配版AI车神?网友用单个CNN在「极品飞车9」里飙车相关推荐

  1. 【Node.js】论一个低配版Web实时通信库是如何实现的1( WebSocket篇)

    引论 simple-socket是我写的一个"低配版"的Web实时通信工具(相对于Socket.io),在参考了相关源码和资料的基础上,实现了前后端实时互通的基本功能 选用了Web ...

  2. 谷歌 ARCore 就是低配版 Tango,它比苹果 ARKit 好在哪?

    [转] https://www.leiphone.com/news/201709/hioiZlgdXIj9fFex.html 雷锋网按:本文作者为 Matt Miesnieks,目前担任 6D.ai ...

  3. 大神解读:谷歌 ARCore 就是低配版 Tango,它比苹果 ARKit 好在哪?

    转自雷锋网:点击打开链接 原标题:大神解读:谷歌 ARCore 就是低配版 Tango,它比苹果 ARKit 好在哪? 雷锋网按:本文作者为 Matt Miesnieks,目前担任 6D.ai 的 C ...

  4. 实现一个基于 IConfiguration 的低配版 FeatureFlag

    实现一个基于 IConfiguration 的低配版 FeatureFlag Intro 在我们的应用中,可能有一些配置开关的需求,某些功能是否启用使用一个配置开关,用的时候就打开,不用的时候就关掉, ...

  5. lga2066服务器准系统,LGA2066低配版Corei7-7740K再曝光:21WTDP换来100MHz频率

    Intel的HEDT高端处理器平台的发布时间从之前的8月份提前到了5月底,台北电脑展上就会正式公布,新一代平台插槽从目前的LGA2011升级到LGA2066,而且会有两个版本--Skylake-X架构 ...

  6. miix4linux双系统,情理之中,意料之外:Lenovo 联想 MIIX4 平板电脑 低配版

    情理之中,意料之外:Lenovo 联想 MIIX4 平板电脑 低配版 2016-01-27 09:20:17 35点赞 36收藏 53评论 自从我的神舟精盾服役4年之后,终于进入半退役,我一直在等su ...

  7. PS快捷键大法,初级低配版

    在PS中,对于初学者,我个人认为其实不用快捷键更能深刻的理解各个工具.操作之间联系和原理,但对于以后的作图修图来说,快捷键实在是装逼利器,并且确实方便快捷,能给我们的工作带来很多便捷.百度上的PS快捷 ...

  8. 项目:低配版Everything

    一.项目背景     在任何操作系统中,搜索工具都是必不可少的,不管我们多么认真的对文件进行整理,当文件数量非常多时,都可能需要我们花很长时间来找某个文件.搜索工具可以让我们从大量文件中快速找到我们所 ...

  9. java muki_基于canvas和web audio实现低配版MikuTap

    导言 最近发掘了一个特别happy的网页小游戏--MikuTap.打开之后沉迷了一下午,导致开发工作没做完差点就要删库跑路了,还好boss瞥了我一眼就没下文了.于是第二天我就继续沉迷,随着一阵抽搐,这 ...

最新文章

  1. java项目close wait_服务器TIME_WAIT和CLOSE_WAIT详解和解决办法
  2. 通过VNC Viewer使用VMware虚拟机的远程桌面连接
  3. SharePoint Online 创建和使用栏
  4. 帕秋莉·诺蕾姬 (Standard IO)
  5. Android 可拖拽的GridView效果实现, 长按可拖拽和item实时交换
  6. 日志规范之为什么要使用SLF4J
  7. 客户细分模型_Avarto金融解决方案的客户细分和监督学习模型
  8. 贪吃蛇大作战html5,贪吃蛇大作战5.0.1
  9. 基于JAVA+SpringMVC+Mybatis+MYSQL的图书馆预约占座管理系统
  10. 12满秩分解与奇异值分解(2)
  11. 缠论中枢python源码_通达信缠论中枢主图公式源码
  12. Axure RP10——值得信赖的强大的原型制作工具,无需编写代码即可创造无限可能
  13. 有关白鹭egret引擎EUI Editor 打开项目报错问题的解决
  14. 去哪找计算机相关论文,计算机行业论文在哪发表有影响力
  15. 微信小程序服务器云端,微信小程序云端解决方案.PDF
  16. jquery 实现的省市区级联,无ajax
  17. 【openface : RuntimeError: Unable to open shape_predictor_68_face_landmarks.dat】
  18. 生成自己的浏览器证书
  19. 全国青少年编程等级考试python一级真题2020年6月(含题库答题软件账号)
  20. 如何在Axure中使用Iconfont图标字体

热门文章

  1. Unity 单元测试(PLUnitTest工具)
  2. [JAVA] DUMP
  3. 【青少年编程】【三级】打气球游戏
  4. 技术图文:集合技术在求解算法题中的应用
  5. 【PAT (Basic Level) 】1030 完美数列 (25 分)
  6. 【数据结构】顺序串的插入算法,删除算法,连接运算,顺序串求子串算法
  7. 实时音视频的超级风口,开发者的机会在哪里?
  8. 深度学习中的注意力机制(一)
  9. AAAI 2020 | 时间可以是二维的吗?基于二维时间图的视频内容片段检测
  10. 图灵奖得主Bengio再次警示:可解释因果关系是深度学习发展的当务之急