這只鼠標(biāo)學(xué)會(huì)了自己玩FPS游戲,在訓(xùn)練場(chǎng)中準(zhǔn)度不輸職業(yè)選手
CMU研究生出品
蕭簫 發(fā)自 凹非寺
量子位 | 公眾號(hào) QbitAI
能自動(dòng)瞄準(zhǔn)并“精準(zhǔn)命中”,還不會(huì)被封號(hào)的FPS外掛,你見(jiàn)過(guò)嗎?
現(xiàn)在,真的有一位CMU研究生小哥,將自己的鼠標(biāo)變成了FPS游戲里的“神狙手”!
給它安上四個(gè)輪子后,鼠標(biāo)便能根據(jù)CV算法反饋,自動(dòng)瞄準(zhǔn)并實(shí)現(xiàn)一槍狙擊。
在這之前,雖然也有一些物理外掛,但還不至于自動(dòng)化到讓鼠標(biāo)自己移動(dòng)并完成射擊。
如果選擇第三方軟件修改等外掛,又極容易被直接封號(hào)。
思索一番,這位小哥便開(kāi)發(fā)了一個(gè)能自己瞄準(zhǔn)目標(biāo)的FPS物理外掛,目前在訓(xùn)練場(chǎng)Aim Lab中的成績(jī)已經(jīng)超過(guò)了一些FPS專(zhuān)業(yè)玩家——
人類(lèi)FPS專(zhuān)家平均在80000~90000分左右,而它拿到了110000+分。
有網(wǎng)友看完后表示“絕不簡(jiǎn)單”:對(duì)于寫(xiě)過(guò)代碼的人來(lái)說(shuō),這可沒(méi)聽(tīng)上去那么輕松。
所以,他究竟是怎么做到的呢?
將鼠標(biāo)變成“神狙手”
為了讓鼠標(biāo)自己“學(xué)會(huì)”瞄準(zhǔn),這名小哥首先給鼠標(biāo)設(shè)計(jì)了一個(gè)底盤(pán)。
在他的設(shè)想中,這個(gè)底盤(pán)要能帶著鼠標(biāo)靈活移動(dòng),原理大概像這樣:
思路有了后,最終底盤(pán)用到了四個(gè)全向輪和對(duì)應(yīng)的控制電機(jī)。
簡(jiǎn)單來(lái)說(shuō),各個(gè)方向的全向輪(omni wheels),能夠讓機(jī)器人朝向任意方向靈活運(yùn)動(dòng),包括直接走直線(xiàn)等,而這些輪子分別由不同的電機(jī)控制。
基本的移動(dòng)操作實(shí)現(xiàn)后,就是利用計(jì)算機(jī)視覺(jué)算法,來(lái)讓它學(xué)會(huì)“自己尋找獵物”了。
小哥基于OpenCV寫(xiě)了一個(gè)Python目標(biāo)檢測(cè)算法,訓(xùn)練它能夠根據(jù)目標(biāo)的位置迅速瞄準(zhǔn)對(duì)應(yīng)的目標(biāo):
從視覺(jué)數(shù)據(jù)反饋到操作上,小哥采用了PID控制算法,讓機(jī)器人學(xué)會(huì)自己去找距離最近的“射擊點(diǎn)”,來(lái)在規(guī)定時(shí)間內(nèi)瞄中更多的物體:
當(dāng)瞄準(zhǔn)物體后,這個(gè)機(jī)器人就會(huì)自行觸發(fā)鼠標(biāo)“點(diǎn)擊”的動(dòng)作,從而完成自動(dòng)射擊。
在測(cè)試中超過(guò)部分專(zhuān)業(yè)玩家
為了加強(qiáng)這個(gè)機(jī)器人的能力,小哥在一個(gè)叫做Aim Lab的第一人稱(chēng)射擊游戲模擬器中對(duì)它進(jìn)行訓(xùn)練。
目前,有不少專(zhuān)業(yè)FPS玩家都會(huì)在Aim Lab中訓(xùn)練,里面也包含了各種不同類(lèi)型的射擊任務(wù),例如人形移動(dòng)靶、飛靶等。
小哥訓(xùn)練的這個(gè)“鼠標(biāo)機(jī)器人”,主要針對(duì)的還是顏色球射擊,其中視覺(jué)算法自動(dòng)找到帶顏色的球體,然后機(jī)器人跟上去瞄準(zhǔn)射擊。
調(diào)測(cè)了兩個(gè)月算法后,小哥終于訓(xùn)練出了比較滿(mǎn)意的機(jī)器人,目前在Aim Lab中最高拿到了118494的分?jǐn)?shù),超過(guò)了不少專(zhuān)業(yè)FPS玩家。
△一名職業(yè)選手公開(kāi)分?jǐn)?shù)
不過(guò)目前它還沒(méi)有打破Aim Lab的最高紀(jì)錄(146902分)。
也有一個(gè)原因是在挑戰(zhàn)最高分?jǐn)?shù)的過(guò)程中,它的底盤(pán)因轉(zhuǎn)速過(guò)快燒毀了一個(gè)電機(jī),無(wú)法再度挑戰(zhàn)最高分(手動(dòng)狗頭)。
開(kāi)發(fā)這個(gè)物理外掛的小哥名叫Kamal Carter,本科畢業(yè)于CMU,目前在CMU讀碩士研究生,同時(shí)也在Howie Choset教授創(chuàng)立的HEBI Robotics公司工作。
據(jù)小哥自己介紹,他高中的時(shí)候就開(kāi)始玩機(jī)器人了,目前研究興趣也是機(jī)械設(shè)計(jì)和CAD等。
對(duì)此有網(wǎng)友調(diào)侃,這個(gè)機(jī)器人值得一個(gè)更好的鼠標(biāo):
但也有網(wǎng)友認(rèn)為,小哥具有這般能力,更應(yīng)該做點(diǎn)有用的東西,而不是搞這些物理外掛。
那么,你覺(jué)得呢?
OpenCV視覺(jué)算法教程:
https://docs.opencv.org/4.x/df/d9d/tutorial_py_colorspaces.html
參考鏈接:
[1]https://www.youtube.com/watch?v=ne9bmMX82iY
[2]https://www.pcgamer.com/a-roboticist-built-a-hardware-aimbot-that-could-outperform-the-pros-until-it-aimed-so-hard-it-died/
[3]https://hackaday.com/2022/04/30/aimbot-does-it-in-hardware/
[4]https://krcarter.github.io/