原作者: Chintan Trivedi
鏈接: https://towardsdatascience.com/using-tensorflow-object-detection-to-control-first-person-shooter-games-c2c7f1daf2e9
在本文中店量,我將解釋如何使用tensorflow的對象檢測模型來玩經(jīng)典的FPS游戲“CS”。
不久前哮翘,我遇到了這個非常有趣的項目,文章作者使用網(wǎng)絡(luò)攝像機播放經(jīng)典的格斗游戲碴萧,真人快打。他利用卷積神經(jīng)網(wǎng)絡(luò)和遞歸神經(jīng)網(wǎng)絡(luò)的結(jié)合,從他的網(wǎng)絡(luò)攝像頭記錄中識別出踢和打的動作胚吁。然后撑毛,他將模型的預(yù)測轉(zhuǎn)化為游戲中要采取的適當行動书聚。這是很酷的游戲方式!
以此為靈感雌续,我創(chuàng)建了一個類似的控制器接口,可以使用Tensorflow對象檢測模型的預(yù)測玩第一人稱射擊游戲胯杭。
以下是該項目的代碼鏈接:
此控制器用于處理游戲中的以下操作:
1. 槍的瞄準
首先驯杜,為了在游戲中四處看看,我在網(wǎng)球上使用了目標檢測做个。根據(jù)屏幕上檢測到的球的位置鸽心,我們可以設(shè)置鼠標的位置,從而控制玩家在游戲中的視角位置居暖。
2. 玩家的移動
接下來顽频,為了指導玩家在游戲中前進,我使用了食指檢測太闺。當手指向上時糯景,玩家向前移動,再次向下放置手指將停止玩家的移動省骂。
3. 開槍
這里支持的第三個行動是開槍蟀淮。由于兩只手都用來瞄準和移動,我用張開嘴的姿勢來控制槍的射擊钞澳。
目標檢測模型
本文所采用的目標檢測模型是MobileNet結(jié)合單點多盒探測器(SSD灭贷,Single-Shot Multi-Box Detector)進行圖像定位。它被訓練成各種各樣的網(wǎng)球略贮、手指抬起和牙齒張開的圖像甚疟。它能夠以合理的速度運行,從而能夠?qū)崟r使用輕量級模型來控制我們的游戲逃延。
模型性能
從模型的性能來看览妖,在玩游戲時手指和牙齒的檢測似乎相當可靠。主要的問題是把槍對準我們想要的地方揽祥,因為模型運行的幀速率比游戲低得多讽膏,因此鼠標的移動是跳躍的,不是很平滑拄丰。此外府树,對圖像邊緣的球的檢測也很差俐末,這使得它不可靠。這個問題可以通過調(diào)整模型來可靠地檢測離攝像頭稍遠的物體來解決奄侠,這樣我們就有足夠的空間來移動網(wǎng)球卓箫,從而更好地控制我們的目標。
結(jié)論
我覺得用攝像頭控制游戲的總體體驗垄潮,沒有額外的硬件仍然是一個非常誘人的概念烹卒。由于深度學習模式的進步,這已經(jīng)成為非惩湎矗可能旅急。這種控制機制的實際實施需要完善,以取代更為傳統(tǒng)的玩這些游戲的方式牡整。我可以看到這個想法的完美實現(xiàn)是玩FPS游戲的有趣方式藐吮。