您的位置:首頁>科技>正文

滴滴接入小藍,原押金今日啟動返還、用AI玩微信跳一跳,高分逆襲

滴滴正式投放小藍單車, 原押金今日啟動返還

據1月17日消息, 在滴滴接管小藍單車後, 滴滴已經開始重新投放小藍單車。 昨晚開始, 已經有網友在社交網路上陸續分享照片, 小藍單車重新在北京多處進行投放, 被網友稱為“最好騎的單車”又回來了。

目前我們登陸滴滴出行App, 在單車下已經可以看到小藍單車的選項, 使用者可直接在App中看到附近的單車, 無需支付押金便可使用。

此前, 我們報導過, 小藍單車的押金返還將於本月17號正式上線。 屆時, 滴滴將在app上推送相關內容, 點擊即可進入相關頁面。 另外, 在app上也將會有入口, 用戶提出申請後, 經滴滴審核成功即可收到單車券和出行券。

滴滴給出兩種返還方案:

1、小藍單車app上的所有押金和充值餘額都將以1元單車券的方式下發到使用者帳戶;鑒於滴滴app內的共用單車平臺將彙集ofo、小藍單車和即將上線的自有品牌,

該單車券也同樣適用於這三種單車;

2、充值餘額以1元單車券的方式返還, 押金分兩部分下發:

押金為99元的用戶將收到49張1元單車券和50元的出行券, 出行券包括5張5元的快車券和5張5元的專車券, 均為無門檻的現金抵扣券;

押金為199元的用戶將收到99張1元單車券和100元的出行券, 出行券包括10張5元的快車券和10張5元的專車券, 也均為無門檻的現金抵扣券。

根據客服人員的介紹, 如果小藍單車用戶對滴滴的返還方案存有異議, 需聯繫小藍官方詢問押金事宜。

王者逆襲:用AI玩微信跳一跳, 自動刷分可破10000分

最近, 微信小遊戲跳一跳可以說是火遍了全國, 從小孩子到大孩子仿佛每一個人都在刷跳一跳, 作為無(zhi)所(hui)不(ban)能(zhuan)的 AI 程式師, 我們在想, 能不能用人工智慧(AI)和電腦視覺(CV)的方法來玩一玩這個遊戲?

演算法的第一步是獲取手機螢幕的截圖並可以控制手機的觸控操作,

我們的 github 倉庫裡詳細介紹了針對 Android 和 IOS 手機的配置方法。

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

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

多尺度搜索 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 之間,所以我們可以利用這個去直接找到目標的位置。

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

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

以下是效果演示:

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

CNN Coarse-to-Fine 模型

考慮到 iOS 設備由於螢幕抓取方案的限制(WebDriverAgent 獲得的截圖經過了壓縮,圖像圖元受損,不再是原來的圖元值,原因不詳,歡迎瞭解詳情的小夥伴提出改進意見)無法使用 fast-search,同時為了相容多解析度設備,我們使用卷積神經網路構建了一個更快更魯棒的目標檢測模型。

下面分資料獲取與預處理,coarse 模型,fine 模型,cascade 四部分介紹我們的演算法。

資料獲取與預處理

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

?Coarse 模型資料預處理

由於每一張圖像中真正對於當前判斷有意義的區域只在螢幕中央位置,即人和目標物體所在的位置,因此,每一張截圖的上下兩部分都是沒有意義的。

於是,我們將採集到的大小為 1280*720 的圖像沿 x 方向上下各截去 320*720 大小,只保留中心 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 三種解決這一問題的演算法,三種演算法相互配合,可以實現快速準確的搜索、跳躍,使用者針對自己的設備稍加調整跳躍參數即可接近實現“永動機”。

多尺度搜索 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 之間,所以我們可以利用這個去直接找到目標的位置。

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

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

以下是效果演示:

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

CNN Coarse-to-Fine 模型

考慮到 iOS 設備由於螢幕抓取方案的限制(WebDriverAgent 獲得的截圖經過了壓縮,圖像圖元受損,不再是原來的圖元值,原因不詳,歡迎瞭解詳情的小夥伴提出改進意見)無法使用 fast-search,同時為了相容多解析度設備,我們使用卷積神經網路構建了一個更快更魯棒的目標檢測模型。

下面分資料獲取與預處理,coarse 模型,fine 模型,cascade 四部分介紹我們的演算法。

資料獲取與預處理

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

?Coarse 模型資料預處理

由於每一張圖像中真正對於當前判斷有意義的區域只在螢幕中央位置,即人和目標物體所在的位置,因此,每一張截圖的上下兩部分都是沒有意義的。

於是,我們將採集到的大小為 1280*720 的圖像沿 x 方向上下各截去 320*720 大小,只保留中心 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 三種解決這一問題的演算法,三種演算法相互配合,可以實現快速準確的搜索、跳躍,使用者針對自己的設備稍加調整跳躍參數即可接近實現“永動機”。

Next Article
喜欢就按个赞吧!!!
点击关闭提示