新智元報(bào)道
編輯:好困 袁榭
【新智元導(dǎo)讀】單憑一個CNN網(wǎng)絡(luò),居然能在快20年前的經(jīng)典賽車游戲里跑自動駕駛!不過,你這個AI咋不躲障礙物呢?
最近,一位Reddit網(wǎng)友自己搭了個CNN模型,讓AI在2005年出的經(jīng)典游戲「極品飛車9:最高通緝」里開車。
點(diǎn)贊超過1700,可謂是機(jī)器學(xué)習(xí)子版塊里一時以來最高的貼。
至于效果嘛……
在寬闊的大路上,AI開得還算平穩(wěn),但時不時就會去「畫蛇」……
好在速度控制得還行,不會輕易引起「警察」的注意。
雖然是游戲機(jī)制的一部分,但想要甩掉這些窮追不舍的警車,玩家手動操作時幾乎每次都把人整得心力憔悴、手指酸痛。
尤其是隨著追捕等級的提升,對付的將不再是那些老舊的巡邏車了,而是重型SUV甚至是直升機(jī),逃脫難度直線上升。
大概是訓(xùn)練數(shù)據(jù)的緣故,當(dāng)AI在路上遇到障礙物時,表現(xiàn)得簡直就和人類玩家一模一樣:
「躲」這個詞,在AI的字典里是不存在的。
輕打方向,微調(diào)路線,瞄準(zhǔn)了直接撞上去才是王道!
從路牌到三角錐,一個都不能放過。
項(xiàng)目很簡單,就是數(shù)據(jù)不太夠
「Deep For Speed」基于Python 3.9和Pytorch 1.10,只需要安裝Numpy、Matplotlib庫即可。
作者表示,這個項(xiàng)目的創(chuàng)意來自于英偉達(dá)項(xiàng)目的啟發(fā)。
論文中英偉達(dá)只用單個卷積神經(jīng)網(wǎng)絡(luò)、而非大堆炫目算法就做出了自動駕駛汽車。
基礎(chǔ)架構(gòu)
作者表示,自己項(xiàng)目的工作流程非常簡單。
程序首先會將游戲中的速度儀表盤、小地圖和視野中直觀路面錄屏并存儲為numpy數(shù)組,之后再去調(diào)用np.load()函數(shù)進(jìn)行處理就可以了!
模型中的play.py和play_util.py函數(shù),實(shí)質(zhì)上是鍵盤輸入模擬器,將AI的自動駕駛結(jié)果模擬成物理鍵盤輸入,操控游戲。
不過可能是作為參考的項(xiàng)目比較古老,這里只能把游戲調(diào)成分辨率為800x600的窗口放在屏幕左上角運(yùn)行。
創(chuàng)建和處理數(shù)據(jù)
使用模型
項(xiàng)目作者稱,做出可以運(yùn)行的模型雛形用了兩周,把模型修改到其他用戶也能用,又花了兩周??偣苍陧?xiàng)目上投入的時間大概1個月。
其中,訓(xùn)練數(shù)據(jù)集的搜集可以說是最難的部分了。
作者表示,自己耍游戲20小時中搜集的數(shù)據(jù),因?yàn)槟P透膭拥念l度和幅度,最后只有兩小時的數(shù)據(jù)能用。
項(xiàng)目的開源部分也是因?yàn)閿U(kuò)充訓(xùn)練數(shù)據(jù)集的需求:想要擴(kuò)大數(shù)據(jù)包,但自己搞不定了。
不過,如果能讓大家一起來玩的話,說不定有同好會做出更大的訓(xùn)練數(shù)據(jù)集、訓(xùn)練自己的模型,然后再共享給他
由此,作者也模仿原來游戲的名字「Most Wanted」給項(xiàng)目起了一個別稱——「DeepForSpeed: Data Wanted」。
作為最終目標(biāo),項(xiàng)目作者還想將自己的CNN項(xiàng)目做成一個可以實(shí)驗(yàn)多種架構(gòu)的通用平臺/界面。
讓玩家同好們在體驗(yàn)?zāi)M器娛樂的同時,也能實(shí)驗(yàn)自己做的其他神經(jīng)網(wǎng)絡(luò)。
極品飛車:最高通緝
《極品飛車:最高通緝》(Need For Speed: Most Wanted),是游戲業(yè)界著名廠商藝電(EA)推出的《極品飛車系列》賽車游戲中的第九作,于2005年11月15日開始在美國發(fā)售。
當(dāng)年,開局一上來就不得不按照劇情需要把自己心愛的「寶駒」BMW M3 GTR輸?shù)?,著?shí)讓小編難受了好久。
尤其是之后要從最基礎(chǔ)的車開始,堪稱教科書式的「摩托變單車」……
游戲結(jié)合了沙盒開放世界、警匪跑跑追追模式、子彈時間視覺效果、以及玩家改裝車輛等特色。
這些特色功能在當(dāng)時幾乎所有大游戲廠商都還在搞參與式電影類游戲項(xiàng)目的風(fēng)氣中,堪稱走在時代的前沿。
游戲除了推出Windows版本外,還為GameCube、GBA、NDS,PlayStation 2、PSP,Xbox,Xbox 360等多個游戲機(jī)平臺推出相應(yīng)版本。
2009年底,游戲的全平臺銷量達(dá)到了1600萬套,是整個極品飛車系列最暢銷的一部作品,也曾是當(dāng)時全球非獨(dú)占平臺的單一賽車游戲作品中的最高銷量。
游戲女主角聲優(yōu)是這位超級辣阿姨Josie Maran,在2000年代曾經(jīng)短暫從超模業(yè)改行作女演員,沒走紅后改做化妝品品牌,終于成功。
在當(dāng)年的游戲媒體網(wǎng)站中也廣受好評。Metacritic和Game Rankings都給出了82的高分(滿分100分)。
Eurogamer稱之為「畫面效果驚艷不已」,GameSpot給出8.4分(滿分10分),并贊揚(yáng)游戲「圖像銳利」「音效出眾」,但批評游戲的AI起初太容易而之后太難。
國內(nèi)有玩家想憶童年,于是又扒出來玩了一下,評價是:「速度感仍舊一流,發(fā)黃、模糊的光影和粒子效果遮蓋了許多場景的簡陋之處,還算比較討巧?!?/p>
不過托這款游戲現(xiàn)在畫面質(zhì)量一般、但游戲操作系統(tǒng)仍然犀利的特色,正好符合機(jī)器學(xué)習(xí)模型的個人開發(fā)者的要求:
因?yàn)楫嬅尜|(zhì)量一般,對硬件的要求就低,個人買得起;因?yàn)橛螒蛉匀缓猛?,?xùn)練AI模型來玩仍然有價值。
靈感來自2016年的論文
此外,作為idea來源的英偉達(dá)論文,年代也十分久遠(yuǎn),不過效果依然拔群。
論文鏈接:https://arxiv.org/abs/1604.07316
論文中,作者訓(xùn)練了一個卷積神經(jīng)網(wǎng)絡(luò)(CNN),將單個前置攝像頭的原始像素直接映射為轉(zhuǎn)向指令。
只需用到很少的人類數(shù)據(jù),AI就能學(xué)會駕駛汽車,即便是在沒有標(biāo)記或者視覺引導(dǎo)不明確的地方。
作者并沒有訓(xùn)練AI去檢測道路的邊界,而是用人類的轉(zhuǎn)向角度作為訓(xùn)練信號來檢測有用的道路特征,從而讓AI學(xué)到內(nèi)部的表征。
與諸如車道標(biāo)記檢測、路徑規(guī)劃和控制這種對問題的明確分解相比,英偉達(dá)提出的端到端系統(tǒng)同時優(yōu)化了所有處理步驟。
作者認(rèn)為,這種方法可以得到更好的性能和更小的系統(tǒng)。其中,內(nèi)部的自我優(yōu)化,可以最大化整體系統(tǒng)的性能,而不是優(yōu)化人類選擇的中間標(biāo)準(zhǔn),例如車道檢測。
在訓(xùn)練過程中,圖像最先會被輸入到一個CNN網(wǎng)絡(luò)之中,然后計(jì)算出一個轉(zhuǎn)向的指令。
之后,將這個指令與圖像的期望指令進(jìn)行比較,調(diào)整CNN的權(quán)重,使CNN的輸出更接近期望的輸出。其中,權(quán)重調(diào)整是通過反向傳播完成的。
一旦完成訓(xùn)練,神經(jīng)網(wǎng)絡(luò)就可以從視頻圖像中生成正確的轉(zhuǎn)向命令。
網(wǎng)友:和FSD差不多嘛!
「游戲中AI駕駛表現(xiàn)比大部分加州公路上的人類司機(jī)好」
「AI在游戲里開車,和特斯拉FSD差不多嘛!很贊!」
網(wǎng)友:「大兄弟干得漂亮,能做個馬里奧賽車版本的么?我愿意打錢?!?/p>
項(xiàng)目作者:「好啊,我要是能在玩馬里奧賽車同時也錄屏,說不定可行哦。」
「千萬別把這當(dāng)成軟件升級賣給特斯拉」
參考資料:
https://github.com/edilgin/DeepForSpeed
關(guān)鍵詞: 低配版AI車神網(wǎng)友用單個CNN在極品飛車9里飆車