AI玩微信跳一跳的正確姿勢:跳一跳Auto-Jump演算法詳解,aiauto-jump

來源:互聯網
上載者:User

AI玩跳一跳的正確姿勢:跳一跳Auto-Jump演算法詳解,aiauto-jump
作者:肖泰洪 安捷
北京大學 | 數學科學學院研究生
量子位 已獲授權編輯發布
轉載請聯絡原作者

最近,小遊戲跳一跳可以說是火遍了全國,從小孩子到大孩子彷彿每一個人都在刷跳一跳。

作為無(zhi)所(hui)不(ban)能(zhuan)的AI程式員,我們在想,能不能用人工智慧(AI)和電腦視覺(CV)的方法來玩一玩這個遊戲?

於是,我們開發了跳一跳Auto-Jump演算法,重新定義了玩跳一跳的正確姿勢,我們的演算法不僅遠遠超越了人類的水平,在速度和準確度上也遠遠超越了目前已知的所有演算法,可以說是跳一跳界的state-of-the-art,下面我們詳細介紹我們的演算法。

演算法的第一步是擷取手機螢幕的並可以控制手機的觸控操作,我們的github倉庫裡詳細介紹了針對Android和IOS手機的配置方法。

GitHub地址:
https://github.com/Prinsphield/Wechat_AutoJump

你只需要按照將手機串連電腦,按照教程執行就可以完成配置。在擷取到螢幕之後,就是個簡單的視覺問題。我們需要找的就是小人的位置和下一次需要跳的檯面的中心。

,綠色的點代表小人當前的位置,紅點代表目標位置。

多尺度搜尋(Multiscale Search)

這個問題可以有非常多的方法去解,為了糙快猛地刷上榜,我一開始用的方式是多尺度搜尋。我隨便找了一張圖,把小人摳出來,就像下面這樣。

另外,我注意到小人在螢幕的不同位置,大小略有不同,所以我設計了多尺度的搜尋,用不同大小的進行匹配,最後選取信賴度(confidence score)最高的。

多尺度搜尋的代碼長這樣——

我們來試一試,效果還不錯,應該說是又快又好,我所有的實驗中找小人從來沒有失誤。

不過這裡的位置框的底部中心並不是小人的位置,真實的位置是在那之上一些。

同理,目標檯面也可以用這種辦法搜尋,但是我們需要收集一些不同的檯面,有圓形的,方形的,便利店,井蓋,稜柱等等。由於數量一多,加上多尺度的原因,速度上會慢下來。這時候,我們就需要想辦法加速了。

首先可以注意到目標位置始終在小人的位置的上面,所以可以操作的一點就是在找到小人位置之後把小人位置以下的部分都捨棄掉,這樣可以減少搜尋空間。但是這還是不夠,我們需要進一步去挖掘遊戲裡的故事。

小人和目標檯面基本上是關於螢幕中心對稱的位置的。這提供了一個非常好的思路去縮小搜尋空間。假設螢幕解析度是(1280,720)的,小人底部的位置是(h1, w1),那麼關於中心對稱點的位置就是(1280-h1,720-w1),以這個點為中心的一個邊長300的正方形內,我們再去多尺度搜尋目標位置,就會又快有準了。

效果如下,其中藍色框是(300,300)的搜尋地區,紅色框是搜到的檯面,矩形中心就是目標點的座標了。

加速的奇技淫巧(Fast-Search)

玩遊戲需要細心觀察。我們可以發現,小人上一次如果跳到檯面中心,那麼下一次目標檯面的中心會有一個白點,就像剛才所展示的圖裡的。

更加細心的人會發現,白點的RGB值是(245,245,245),這就讓我找到了一個非常簡單並且高效的方式,就是直接去搜尋這個白點,注意到白點是一個連通地區,像素值為(245,245,245)的像素個數穩定在280-310之間,所以我們可以利用這個去直接找到目標的位置。

這種方式只在前一次跳到中心的時候可以用,不過沒有關係,我們每次都可以試一試這個不花時間的方法,不行再考慮多尺度搜尋。

講到這裡,我們的方法已經可以啟動並執行非常出色了,基本上是一個永動機。下面是用My Phone玩了一個半小時左右,跳了859次的狀態,我們的方法正確的計算出來了小人的位置和目標位置,不過我選擇狗帶了,因為手機卡的已經不行了。

這裡有一個樣本視頻,歡迎觀看!


到這裡就結束了嗎?那我們和業餘玩家有什麼區別?下面進入正經的學術時間,非戰鬥人員請迅速撤離!

CNN Coarse-to-Fine 模型

考慮到IOS裝置由於螢幕抓取方案的限制(WebDriverAgent獲得的經過了壓縮,映像像素受損,不再是原來的像素值,原因不詳,歡迎瞭解詳情的小夥伴提出改進意見~)無法使用fast-search,同時為了相容多解析度裝置,我們使用卷積神經網路構建了一個更快更魯棒的目標檢測模型,下面分資料擷取與預先處理,coarse模型,fine模型,cascade四部分介紹我們的演算法。

資料擷取與預先處理

基於我們非常準確的multiscale-search、fast-search模型,我們採集了7次實驗資料,共計大約3000張螢幕,每一張均帶有目標位置標註,對於每一張圖,我們進行了兩種不同的預先處理方式,並分別用於訓練coarse模型和fine模型,下面分別介紹兩種不同的預先處理方式。

Coarse 模型資料預先處理

由於每一張映像中真正對於當前判斷有意義的地區只在螢幕中央位置,即人和目標物體所在的位置,因此,每一張的上下兩部分都是沒有意義的,因此,我們將採集到的大小為1280720的映像沿x方向上下各截去320720大小,只保留中心640*720的映像作為訓練資料。

我們觀察到,遊戲中,每一次當小人落在目標物中心位置時,下一個目標物的中心會出現一個白色的圓點。

考慮到訓練資料中fast-search會產生大量有白點的資料,為了杜絕白色圓點對網路訓練的幹擾,我們對每一張圖進行了去白點操作,具體做法是,用白點周圍的純色像素填充白點地區。

Fine 模型資料預先處理

為了進一步提升模型的精度,我們為fine模型建立了資料集,對訓練集中的每一張圖,在目標點附近截取320*320大小的一塊作為訓練資料,

為了防止網路學到trivial的結果,我們對每一張圖增加了50像素的隨機位移。fine模型資料同樣進行了去白點操作。

Coarse 模型

我們把這一問題看成了迴歸問題,coarse模型使用一個卷積神經網路迴歸目標的位置,

經過十小時的訓練,coarse模型在測試集上達到了6像素的精度,實際測試精度大約為10像素,在測試機器(MacBook Pro Retina, 15-inch, Mid 2015, 2.2 GHz Intel Core i7)上inference時間0.4秒。

這一模型可以很輕鬆的拿到超過1k的分數,這已經遠遠超過了人類水平和絕大多數自動演算法的水平,日常娛樂完全夠用,不過,你認為我們就此為止那就大錯特錯了~

Fine 模型

fine模型結構與coarse模型類似,參數量稍大,fine模型作為對coarse模型的refine操作。

經過十小時訓練,fine模型測試集精度達到了0.5像素,實際測試精度大約為1像素,在測試機器上的inference時間0.2秒。

Cascade

總體精度1像素左右,時間0.6秒。

總結

針對這一問題,我們利用AI和CV技術,提出了合適適用於IOS和Android裝置的完整解決方案,稍有技術背景的使用者都可以實現成功配置、運行,我們提出了Multiscale-Search,Fast-Search,CNN Coarse-to-Fine三種解決這一問題的演算法,三種演算法相互配合,可以實現快速準確的搜尋、跳躍,使用者針對自己的裝置稍加調整跳躍參數即可接近實現“永動機”。

講到這裡,似乎可以宣布,我們的工作terminate了這個問題,小遊戲跳一跳game over!

友情提示:適度遊戲益腦,沉迷遊戲傷身,技術手段的樂趣在於技術本身而不在遊戲排名,希望大家理性對待遊戲排名和本文提出的技術,用遊戲娛樂自己的生活

聲明:本文提出的演算法及開原始碼符合MIT開源協議,以商業目的使用該演算法造成的一切後果須由使用者本人承擔

Contributors

Xiao Taihong 

xiaotaihong@126.com

An Jie 

jie.an@pku.edu.cn

點擊左下角“閱讀原文”,可解鎖更多作者的文章

還可以直接參与討論~

量子位特約稿件,轉載請聯絡原作者。

加入社群

量子位AI社群13群開始招募啦,歡迎對AI感興趣的同學,加小助手qbitbot5入群;


此外,量子位專業細分群(自動駕駛、CV、NLP、機器學習等)正在招募,面向正在從事相關領域的工程師及研究人員。


進群請加小助手號qbitbot5,並務必備忘相應群的關鍵詞~通過審核後我們將邀請進群。(專業群審核較嚴,敬請諒解)

誠摯招聘

量子位正在招募編輯/記者,工作地點在北京中關村。期待有才氣、有熱情的同學加入我們!相關細節,請在量子位公眾號(QbitAI)對話介面,回複“招聘”兩個字。

量子位 QbitAI · 頭條號簽約作者

վ'ᴗ' ի 追蹤AI技術和產品新動態


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.