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

一、前言

大家好,我是 Jack 。

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

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

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

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

先睹為快:

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

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

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

二、實現原理

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

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

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

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

使用 scrcpy 你無需 ROOT 手機,也不需在手機上安裝 APP,只需在系統設置里啟用「USB調試」( adb 調試) 即可。

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

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

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

沒錯,用 Transformer。

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

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

AI 生成的影像:

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

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

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

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

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

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

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

三、演算法測試

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

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

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

下載訓練好的模型文件。

還是老規矩,我將程式碼和模型打包了,方便大家直接下載(提取碼:jack)。

//pan.baidu.com/s/1u9zy04L8kvPwyElD0XvpAQ

需要注意的是,不同手機的 minitouch 配置可能有所不同,程式碼的測試機器解析度是 1080*2160,這裡需要根據自己的情況進行修改。

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

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

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

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

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

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

四、最後

這個項目的程式碼,有些凌亂,還有硬核的中文變數。

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

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

祝大家周末玩的開心,我是 Jack ,我們下期見。

文章持續更新,可以微信公眾號搜索【JackCui-AI】第一時間閱讀,本文 GitHub  //github.com/Jack-Cherish/PythonPark 已經收錄,有大廠面試完整考點,歡迎 Star。