低配版AI车神?网友用单个CNN在“极品飞车9”里飙车

低配版AI车神?网友用单个CNN在“极品飞车9”里飙车
文章图片
新智元报道
编辑:好困袁榭
【新智元导读】单凭一个CNN网络 , 居然能在快20年前的经典赛车游戏里跑自动驾驶!不过 , 你这个AI咋不躲障碍物呢?
最近 , 一位Reddit网友自己搭了个CNN模型 , 让AI在2005年出的经典游戏「极品飞车9:最高通缉」里开车 。
点赞超过1700 , 可谓是机器学习子版块里一时以来最高的贴 。
至于效果嘛……
低配版AI车神?网友用单个CNN在“极品飞车9”里飙车
文章图片
在宽阔的大路上 , AI开得还算平稳 , 但时不时就会去「画蛇」……
好在速度控制得还行 , 不会轻易引起「警察」的注意 。
虽然是游戏机制的一部分 , 但想要甩掉这些穷追不舍的警车 , 玩家手动操作时几乎每次都把人整得心力憔悴、手指酸痛 。
尤其是随着追捕等级的提升 , 对付的将不再是那些老旧的巡逻车了 , 而是重型SUV甚至是直升机 , 逃脱难度直线上升 。
低配版AI车神?网友用单个CNN在“极品飞车9”里飙车
文章图片
大概是训练数据的缘故 , 当AI在路上遇到障碍物时 , 表现得简直就和人类玩家一模一样:
「躲」这个词 , 在AI的字典里是不存在的 。
轻打方向 , 微调路线 , 瞄准了直接撞上去才是王道!
低配版AI车神?网友用单个CNN在“极品飞车9”里飙车
文章图片
从路牌到三角锥 , 一个都不能放过 。
低配版AI车神?网友用单个CNN在“极品飞车9”里飙车
文章图片
项目很简单 , 就是数据不太够
「DeepForSpeed」基于Python3.9和Pytorch1.10 , 只需要安装Numpy、Matplotlib库即可 。
作者表示 , 这个项目的创意来自于英伟达项目的启发 。
论文中英伟达只用单个卷积神经网络、而非大堆炫目算法就做出了自动驾驶汽车 。
低配版AI车神?网友用单个CNN在“极品飞车9”里飙车
文章图片
基础架构
作者表示 , 自己项目的工作流程非常简单 。
程序首先会将游戏中的速度仪表盘、小地图和视野中直观路面录屏并存储为numpy数组 , 之后再去调用np.load()函数进行处理就可以了!
模型中的play.py和play_util.py函数 , 实质上是键盘输入模拟器 , 将AI的自动驾驶结果模拟成物理键盘输入 , 操控游戏 。
不过可能是作为参考的项目比较古老 , 这里只能把游戏调成分辨率为800x600的窗口放在屏幕左上角运行 。
低配版AI车神?网友用单个CNN在“极品飞车9”里飙车
文章图片
创建和处理数据
低配版AI车神?网友用单个CNN在“极品飞车9”里飙车
文章图片
使用模型
项目作者称 , 做出可以运行的模型雏形用了两周 , 把模型修改到其他用户也能用 , 又花了两周 。 总共在项目上投入的时间大概1个月 。
低配版AI车神?网友用单个CNN在“极品飞车9”里飙车
文章图片
其中 , 训练数据集的搜集可以说是最难的部分了 。
作者表示 , 自己耍游戏20小时中搜集的数据 , 因为模型改动的频度和幅度 , 最后只有两小时的数据能用 。
低配版AI车神?网友用单个CNN在“极品飞车9”里飙车
文章图片
项目的开源部分也是因为扩充训练数据集的需求:想要扩大数据包 , 但自己搞不定了 。
不过 , 如果能让大家一起来玩的话 , 说不定有同好会做出更大的训练数据集、训练自己的模型 , 然后再共享给他
由此 , 作者也模仿原来游戏的名字「MostWanted」给项目起了一个别称——「DeepForSpeed:DataWanted」 。