用自己訓練的 AI 玩王者榮耀是什麼體驗?



大家好,我是程序員吳師兄。


「王者榮耀」想必大家就算沒有玩過,也都聽過。


騰訊 AI Lab 開發的策略協作型 “絕悟”,最強 AI 分分教你做人。


但那個是像 Alpha Go 一樣,需要掌握海量數據和機器的團隊,才能玩得起的。

今天,就給大家帶來一個「平民版」,咱們都能玩的王者榮耀 AI。


先睹爲快:



視頻兩倍速播放,只訓練了一個「後裔」英雄,如果想用其他英雄,可以自己訓練。


今天繼續手把手教學,你準備好了嗎?

1


實現原理

爲了讓我們的代碼能夠控制手機的「王者榮耀」,我們需要實現在電腦上操控手機。

需要用到什麼呢?scrcpy 和 minitouch。

scrcpy 可以將安卓手機的畫面投屏到電腦桌面顯示上並進行操控。

簡單地說,就是可以讓你在電腦上控制手機!它支持鼠標控制、鍵盤輸入、電腦剪切板複製粘貼、拖放文件傳輸到手機、以及拖放 APK 文件進行安裝。

使用 scrcpy 你無需 ROOT 手機,也不需在手機上安裝 APP,只需在系統設置裏啓用 “USB 調試”( adb 調試) 即可。

minitouch 提供了一個 socket 接口用在 Android 設備上的多點觸摸事件以及手勢。也是無需 ROOT 手機。

用 scrcpy 獲取遊戲畫面,獲取 scrcpy 的句柄,然後截圖,根據圖片生成操作指令,然後利用 minitouch 高效的執行這些操作指令。

所以關鍵在於,如何根據圖片生成操作指令

沒錯,用 Transformer。

上兩天火的 DALL・E 都見到了吧?OpenAI 最新發布的,它可以魔法一般按照自然語言文字描述直接生成對應圖片!

比如輸入文本:鱷梨形狀的扶手椅。

AI 生成的圖像:


這生產效果真是堪稱神奇!自然語言與視覺的壁壘正在被逐漸打通。


反過來,圖片生成描述,更簡單了,這樣的工作幾年前就用了。

使用 Transformer,根據遊戲圖像,生成當前畫面操作描述


比如前進、攻擊、釋放技能。

2


算法測試

首先你得有個能跑 Transformer 的顯卡,安裝需要的第三方庫,例如 pyminitouch、pytorch 等。

然後安裝 scrcpy,這個安裝教程很多,百度一搜一大把,將所有東西放在與下載的代碼同級目錄下。


下載訓練好的模型文件。

還是老規矩,我將代碼和模型打包了,方便大家直接下載(提取碼:jack)。
https://pan.baidu.com/s/19kjTuX4DeTVE3B3HGw0uOw

需要注意的是,不同手機的 minitouch 配置可能有所不同,代碼的測試機器分辨率是 1080*2160,這裏需要根據自己的情況進行修改。

配置好環境後,就可以運行代碼了。

運行文件 “啓動和結束進程.py”,啓動 scrcpy。把 “訓練數據截取_A.py” 中的兩項改成你的設備:


啓動王者榮耀進入 5v5 人機對戰後,運行 “訓練數據截取_A.py” 即可。

趕快自己體驗一波吧!訓練一個你最愛的英雄!

項目地址:
https://github.com/FengQuanLi/ResnetGPT

3


最後

這個項目的代碼,有些凌亂,還有硬核的中文變量。


算法性能有待提高,目前打打人機還行。


後面有時間,我會做整理和升級,在這個基礎上改進版本,看情況吧~

推薦閱讀:
一道 LeetCode 周賽的題目,讓我自信滿滿!
LeetCode 全站第一,牛逼!



     
     
     

本文分享自微信公衆號 - 五分鐘學算法(CXYxiaowu)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章