0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

怎么用Python玩GTA5?跟著教程玩!

馬哥Linux運維 ? 來源:未知 ? 作者:李倩 ? 2018-11-15 12:55 ? 次閱讀

當OpenAI's Universe(Universe)出現(xiàn)后,很多文章都在鼓吹大量的游戲(甚至GTA5)已經(jīng)做好了迎接AI時代的準備。我當時躍躍欲試,然而GTA5最終被神神秘秘的清除出Universe,連個解釋都沒有。

后來我短暫的放棄了這個念頭,但偶爾想起來依然有點抑制不住的小激動。所以我還是決定在這件事情上多花點功夫,同時好好思考這件事情到底是不是非得用OpenAI不可。OpenAI的好處在于針對一些簡單的游戲項目可以實現(xiàn)每分鐘上千次的迭代訓練,但是GTA5這種游戲嘛,情況就不一樣了。

我們來說一下為什么選擇GTA5。至少對我來說,GTA5是一個有無數(shù)理由讓我去進行練習的絕佳環(huán)境。在這個開放世界里你幾乎沒有不能做的事情——舉一個最簡單的例子:自動駕駛汽車。在游戲中,我們可以用MOD控制時間、天氣、交通、速度、遇到的緊急狀況等等等等。這是個完全的、可以量身訂制(有時需要MOD)的世界。

我的教程有時候經(jīng)過充足的計劃、有些計劃過一點、有的完全沒有計劃過。這個項目就是完全沒有計劃的教程之一。我知道不是所有人都有GTA5,不過我想你可以使用其他類似的游戲來和我一起學習這個項目——我們有很多游戲都可以拿來使用。(如果使用其他游戲)你需要對某些部分進行調整以使其正常運行,所以你可能得有點基礎才行。

我的初步目標是創(chuàng)造一個自動駕駛汽車,所以任何一個有公路和汽車的游戲都可以拿來用。我用來接入游戲的方法幾乎可以在其他所有游戲中也使用,如果你選擇了更簡單的游戲,那就省事多了。因為GTA5的高度擬真,陽光會讓電腦識別變得更加具有挑戰(zhàn)性。

我可能也會嘗試其他游戲——因為我相信我們可以通過簡單示范來教AI怎么玩。通過卷積神經(jīng)網(wǎng)絡處理信息,然后讓AI進行練習就行。

我的初步判斷是:

盡管Python并沒有現(xiàn)成的庫可用,不過1.我們可以讀取屏幕圖像2.我們可以模擬按鍵

這兩項足夠我們處理常規(guī)事務,不過對于深度學習來說,我們可能還想要記錄游戲世界的進程。好在現(xiàn)在的大部分游戲已經(jīng)完全可視化,這已經(jīng)不再是個難題,我們可以通過追蹤鼠標和按鍵,這一切都為深度學習提供了條件。

我猜這一路不會一帆風順,但至少會很有趣。我的擔憂主要集中在項目推進的速度上。我們可以做,最少是值得做。

總而言之,這是一個大項目,如果我們不拆分來做,顯然就超綱了。所以我們來一點一點的嘗試,第一步的目標是:

找個像樣的FPS工具以訪問游戲畫面,能用就行的那種。我們的要求是能看就行。

確保鍵盤輸入的指令可用。我覺得這很簡單,但是必須得試試才知道。

嘗試手柄輸入。特別是轉向、剎車等操作。

嘗試使用OpenCV。希望不會遇到大問題。

在簡單的道路環(huán)境下實現(xiàn)自動駕駛。

好了,第一步,我們?nèi)绾螌崿F(xiàn)讀取屏幕畫面?我一直在想可以做,但還真沒想過怎么做。所以,Google!我找到不少案例,不過大部分都不能用,只有這個還算可以:Screen Capture with OpenCV and Python-2.7。

注意:導入的時候似乎有點錯誤,ImageGrab是PIL的一部分。

果然出錯了,我們改一下:

什么鬼?dtype明顯應該是字符串,而不是什么沒定義的變量名。這哥們寫完代碼到底運行了沒?

這回終于正常了。不過這段代碼太長,而且太慢。改一下吧。

這個看著還不錯,就是太慢了,每秒大概只能有個2-3幀的樣子。再改一下試試。

還是2-3幀。所以問題不是出在imshow函數(shù)上。

好了,現(xiàn)在的成績是:

loop took 0.05849909782409668 secondsloop took 0.044053077697753906 secondsloop took 0.04760456085205078 secondsloop took 0.04805493354797363 secondsloop took 0.05989837646484375 seconds

我們還需要一個numpy數(shù)組給OpenCV的imshow函數(shù)使用。相對于重新編寫.getdata,我還是選擇把ImageGrab.grab(bbox=(0,40,800,640))轉化為numpy數(shù)組。重寫是沒必要的。

做了這么多事,現(xiàn)在大概有個每秒12-13幀的樣子。這個成績不算好,但是夠用了。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • AI
    AI
    +關注

    關注

    87

    文章

    31891

    瀏覽量

    270708
  • python
    +關注

    關注

    56

    文章

    4811

    瀏覽量

    85119
  • 深度學習
    +關注

    關注

    73

    文章

    5521

    瀏覽量

    121672

原文標題:用Python玩GTA 5—使用OpenCV讀取游戲面面

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    美移動AI解決方案再拓展:全新AI卷發(fā)分析,將AI發(fā)質檢測技術推向新高度

    作為美移動AI發(fā)質分析解決方案的新成員,AI卷發(fā)分析方案助力品牌為消費者提供個性化的產(chǎn)品推薦。此外,該技術還結合了諸如發(fā)質分析、發(fā)長分析、虛擬染發(fā)以及虛擬試發(fā)型等工具,為消費者帶來全方位的個性化
    的頭像 發(fā)表于 02-13 16:42 ?89次閱讀

    Share Boom第12期:云終端2.0時代-無影隨行,且好贏沙龍圓滿落幕

    近日Share Boom第12期主題沙龍分享活動在福州市鼓樓區(qū)AI算力運營加速中心圓滿落幕。這場以“云終端2.0時代-無影隨行,且好贏”為主題活動,吸引了大量互聯(lián)網(wǎng)企業(yè)家以及游戲發(fā)燒友的關注,現(xiàn)場
    的頭像 發(fā)表于 12-02 16:11 ?202次閱讀

    剛到手的NAS怎么?這些TIPS請收好~

    怎么? 鐵威馬教你輕松上手 鐵威馬NAS上手指南 01 快速安裝指南 新鮮NAS剛到手,突然腦袋一片空白,不知道該從何設置? 不用慌張,進入鐵威馬官網(wǎng),選擇【支持】→【快速安裝指南】,選擇對應的型號,點擊一下,讓你快速了解如何安裝使用鐵威馬NAS。 02 基礎安全
    的頭像 發(fā)表于 11-25 15:46 ?236次閱讀
    剛到手的NAS怎么<b class='flag-5'>玩</b>?這些TIPS請收好~

    CR5791GTA是一款高度集成的移動電源無線充方案

    簡介 CR5791GTA是一款高度集成的移動電源無線 充方案,支持給多種類型無線充終端充電。搭配不 同移動電源SOC芯片滿足客戶不同需求,支持客 戶定制不同顯示功能如:燈顯示、數(shù)碼管顯示、及 呼吸燈
    發(fā)表于 11-04 15:41

    【RA-Eco-RA0E1-32PIN-V1.0開發(fā)板試用】開箱+環(huán)境搭建 終于會用HAL框架了,環(huán)境搭建成了!

    【RA-Eco-RA0E1-32PIN-V1.0開發(fā)板試用】開箱+環(huán)境搭建終于會用HAL框架了,環(huán)境搭建成了! 粗心的我把RASC中設置成32腳芯片, 在KEIL中設置成了同名64腳芯片, 所以燒不進代碼, 終于解決了問題,
    發(fā)表于 11-01 13:18

    為什么I2C 一直失???

    第一次Cypress的PSOC,的是CY8CKIT-042開發(fā)板,按照官方的例程下Capsense,調用調諧器Tuner,一直提示I2C連接不上,管腳都確認了,管腳電平也都確認了? 有沒有大佬碰到過同樣問題,怎么解決的
    發(fā)表于 10-20 16:38

    《科普時報》:探索量子奧秘,跟著院士去“追光”

    《科普時報》:探索量子奧秘,跟著院士去“追光”
    的頭像 發(fā)表于 10-12 08:06 ?287次閱讀
    《科普時報》:探索量子奧秘,<b class='flag-5'>跟著</b>院士去“追光”

    《黑神話:悟空》,除了“官配”硬件還需要注意這些......

    《黑神話:悟空》,除了“官配”硬件還需要注意這些......
    的頭像 發(fā)表于 08-30 14:58 ?569次閱讀
    暢<b class='flag-5'>玩</b>《黑神話:悟空》,除了“官配”硬件還需要注意這些......

    python寫驗證環(huán)境cocotb

    本文介紹了cocotb的安裝、python tb文件的寫法、xrun仿真cocotb的腳本等,我們來看看體驗如何。
    的頭像 發(fā)表于 07-24 09:38 ?649次閱讀
    <b class='flag-5'>用</b><b class='flag-5'>python</b>寫驗證環(huán)境cocotb

    如何實現(xiàn)Python復制文件操作

    Python 中有許多“開蓋即食”的模塊(比如 os,subprocess 和 shutil)以支持文件 I/O 操作。在這篇文章中,你將會看到一些 Python 實現(xiàn)文件復制的特殊方法。下面我們開始學習這九種不同的方法來實現(xiàn)
    的頭像 發(fā)表于 07-18 14:53 ?499次閱讀

    pycharm進行python爬蟲的步驟

    以下是使用PyCharm進行Python爬蟲的步驟: 安裝PyCharm和Python 首先,您需要安裝PyCharm和Python。PyCharm是一個流行的Python集成開發(fā)環(huán)境
    的頭像 發(fā)表于 07-11 10:11 ?985次閱讀

    RetroArch iOS模擬器現(xiàn)已發(fā)布,可暢多平臺游戲

    作為第一款公開獲得tvOS認證的模擬器,RetroArch讓iPhone、iPad及Apple TV用戶能夠暢多種系統(tǒng)的游戲。同時,該模擬器支持MFi手柄,方便用戶在大屏設備上進行游戲體驗。
    的頭像 發(fā)表于 05-16 11:08 ?1339次閱讀

    Python怎么讀取STM32串口數(shù)據(jù)?

    Python寫的一個串口讀取代碼 :import serial import timeser=serial.Serial(\'com5\',9600,timeout=2)s
    發(fā)表于 04-24 07:30

    賽車游戲還能這么?看移遠如何賦能遠程現(xiàn)實賽車游戲新體驗

    你喜歡賽車游戲嗎?賽車游戲作為一種競技類游戲,不僅能帶來虛擬世界的“速度與激情”,更能在游戲中宣泄情緒、釋放壓力,深受年輕玩家的青睞。 ? 傳統(tǒng)賽車類游戲通過逼真的物理引擎以及細致的賽道
    發(fā)表于 04-03 14:51 ?369次閱讀
    賽車游戲還能這么<b class='flag-5'>玩</b>?看移遠如何賦能遠程現(xiàn)實賽車游戲新體驗

    賽車游戲還能這么?看移遠如何賦能遠程現(xiàn)實賽車游戲新體驗

    ··你喜歡賽車游戲嗎?賽車游戲作為一種競技類游戲,不僅能帶來虛擬世界的“速度與激情”,更能讓人們在游戲中宣泄情緒、釋放壓力,深受年輕玩家的青睞。傳統(tǒng)賽車類游戲通過逼真的物理引擎以及細致的賽道
    的頭像 發(fā)表于 04-03 08:27 ?420次閱讀
    賽車游戲還能這么<b class='flag-5'>玩</b>?看移遠如何賦能遠程現(xiàn)實賽車游戲新體驗

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品