0
本文作者: AI研習(xí)社-譯站 | 2018-03-01 15:18 |
本文為雷鋒字幕組編譯的技術(shù)博客,原標(biāo)題 DeepLeague: leveraging computer vision and deep learning on the League of Legends mini map + giving away a dataset of over 100,000 labeled images to further esports analytics research,作者Farza。
翻譯 | 曹永勝 校對(duì) | 李振 整理 | 凡江
深度聯(lián)盟(DeepLeague):在英雄聯(lián)盟(League of Legends)的小地圖上應(yīng)用機(jī)器視覺和深度學(xué)習(xí),并給出了超過10萬個(gè)的標(biāo)記圖像,用于后續(xù)的電競(jìng)(esports)研究。
GitHub Repo + Dataset:https://github.com/farzaa/DeepLeague
作者注1:所有這些都是免費(fèi)和開源的。我在這篇文章的第2部分解釋了所有的技術(shù)細(xì)節(jié),你可以在這里找到。如果您有任何問題,請(qǐng)隨時(shí)與我聯(lián)系。
作者注2:如果你是一個(gè)LCS團(tuán)隊(duì)(The League of Legends Championship Series,LCS。英雄聯(lián)盟冠軍系列賽),請(qǐng)雇傭我!我將幫助你打敗韓國(guó) Overlords。在Twitter上聯(lián)系我吧。
DeepLeague正在工作。 我輸入的只是一個(gè)LCS游戲的VOD(Video-On-Demand,VOD,點(diǎn)播視頻),通過分析VOD的像素,DeepLeague可以告訴我們每個(gè)冠軍是如何在地圖上移動(dòng)的。 厲害!
暫時(shí)想象自己是一名足球隊(duì)教練,有人給你提供了一個(gè)程序。它可以播放足球比賽的視頻,并在比賽的每一個(gè)時(shí)刻輸出你球隊(duì)球員的坐標(biāo)。 如果我們將數(shù)據(jù)可視化,它看起來就像下面的GIF圖片,你可以看到藍(lán)色團(tuán)隊(duì)的玩家們有一個(gè)小盒子,上面畫著程序生成的程序。程序替我們“監(jiān)控”比賽。
通過哪些藍(lán)色隊(duì)員身上的邊界框(the bounding boxes),可以看出我們的程序在監(jiān)控比賽的視頻
你可以看出這個(gè)信息將對(duì)一個(gè)足球教練多么有用么?有了這些數(shù)據(jù),你可以對(duì)你的球員運(yùn)動(dòng)做無數(shù)的分析。例如,如果想提高自己球隊(duì)的防守能力,可以分析每個(gè)球員的運(yùn)動(dòng)。不論是對(duì)方球隊(duì)進(jìn)了1個(gè)球時(shí),或是你想創(chuàng)造1個(gè)新的策略來彌補(bǔ)缺陷時(shí),都可以使用。
那么,這個(gè)概念可以應(yīng)用到視頻游戲中嗎?
答案是肯定的,我可以展示給你看。
DeepLeague是什么?
DeepLeague是第一個(gè)將計(jì)算機(jī)視覺、深度學(xué)習(xí)和英雄聯(lián)盟結(jié)合在一起的算法和數(shù)據(jù)集(超過100,000個(gè)圖像),通過讓開發(fā)人員能夠輕松訪問游戲中像素的數(shù)據(jù),將LoL分析提升到下一個(gè)級(jí)別。給定一個(gè)關(guān)于英雄聯(lián)盟小地圖的圖片,它可以為冠軍選手預(yù)測(cè)邊界框和標(biāo)簽。所以,你給DeepLeague的是一個(gè)VOD(基本上只是一堆圖像),它會(huì)輸出這樣的東西:
跟著Rengar !對(duì)DeepLeague(左)的輸入僅僅是一張迷你地圖的圖像,沒有別的。輸出描述了比賽中所有冠軍的坐標(biāo)和冠軍的名字。厲害!
它使用深度卷積神經(jīng)網(wǎng)絡(luò),并在一個(gè)非常大的數(shù)據(jù)集上進(jìn)行訓(xùn)練,這個(gè)數(shù)據(jù)集大約有10萬個(gè)標(biāo)記的迷你地圖圖像(見下圖),我以編程方式創(chuàng)建并免費(fèi)贈(zèng)送修改為我編了個(gè)程序完成了標(biāo)注工作,并免費(fèi)發(fā)布給大家。硅谷AI公司花了很多錢來獲得標(biāo)簽上的數(shù)據(jù)。我沒有錢,但有時(shí)把錢扔在一個(gè)問題上不一定是最好的解決辦法。有時(shí)候你只是需要一點(diǎn)小聰明!
然后是數(shù)據(jù)集本身,我給出了我創(chuàng)建數(shù)據(jù)集的實(shí)際方法,你可以在第2部分中讀到。我想要AI在esports方面的研究成長(zhǎng)起來,并且開始有開發(fā)支持它的開發(fā)人員。我希望通過提供數(shù)據(jù)集/方法,人們會(huì)變得更感興趣。
Regi’s 在我給他看了 DeepLeague之后的反應(yīng)。
DeepLeague “監(jiān)控”著小地圖,然后在沒有任何其他輸入的情況下,告訴你,每個(gè)冠軍選手在每個(gè)時(shí)刻的位置。
所以,只要有一段視頻,你就可以在比賽的每一秒內(nèi)聚集冠軍和冠軍的位置。這方面有很多用例,特別是在LoL esport場(chǎng)景中,這些數(shù)據(jù)非常有用,因?yàn)槟阈枰oDeepLeague提供一個(gè)玩家游戲的VOD。這意味著它適用于scrims、solo-q游戲和其他個(gè)人游戲,其中所有需要的都是一個(gè)簡(jiǎn)單的VOD(甚至ARAM! )
在DeepLeague之前,沒有辦法得到這種游戲內(nèi)的數(shù)據(jù),因?yàn)镽iot API只提供post游戲分析。
當(dāng)你拿到DeepLeague的輸出數(shù)據(jù)后,可以做的事情:
分析一下打野的路徑,他在哪里開始他的路線,當(dāng)他在哪里,當(dāng)他回來的時(shí)候,他在什么時(shí)候,施加了最大的壓力。
分析團(tuán)隊(duì)什么時(shí)候拿“龍”,當(dāng)他們決定拿“龍”的時(shí)候,他們是如何在地圖上以團(tuán)隊(duì)的形式輪換的,作為一個(gè)團(tuán)隊(duì),他們是如何拿下男爵的的。
分析什么時(shí)候一路會(huì)崩,什么時(shí)候他們受到其他路想的壓力時(shí),什么時(shí)候他們會(huì)失去一條線路,什么他們被單殺,什么時(shí)候他們離開推進(jìn)的線路。
當(dāng)然. 你可以在Faker的VODs上運(yùn)行DeepLeague,來收集關(guān)于他如何操作和真正學(xué)習(xí)的數(shù)據(jù)。
讓我們討論一下。
我為什么做這個(gè)?
這個(gè)GIF圖片沒有任何用途,我就是喜歡這兩個(gè)人
我已經(jīng)在電子競(jìng)技系統(tǒng)工作了大約四年了,其中最有趣的事情之一就是做一個(gè)支持團(tuán)隊(duì)的幕后工作。球員會(huì)得到教練、分析師、廚師、健身教練、心理學(xué)家等方面的瘋狂支持,而球員們除了比賽本身沒什么可擔(dān)心的。 但是,這個(gè)行業(yè)剛剛興起,目前使用的方法可能不是最好的。 為了說明這一點(diǎn),我想談?wù)勔粋€(gè)全職英雄聯(lián)盟分析師的一些主要職責(zé):
觀察相當(dāng)長(zhǎng)時(shí)間的不同地區(qū)的比賽視頻,比如歐洲和韓國(guó)。在比賽水平提升前,抓住其中重要的元素,使自己隊(duì)伍處于領(lǐng)先地位。
對(duì)那些似乎在特定的補(bǔ)丁上過度使用的冠軍做筆記,這樣他們就可以在自己的游戲中利用這些“力量選擇”。
記錄下無數(shù)其他的事情,比如:守衛(wèi)分布,叢林路線,團(tuán)隊(duì)拿龍的時(shí)候,團(tuán)隊(duì)聚集在一起的時(shí)機(jī),團(tuán)隊(duì)蹲人的時(shí)機(jī),玩家死亡的地方,他們推進(jìn)的地方等等。
當(dāng)你想成為一名分析師的時(shí)候,閱讀了職位描述時(shí)
這適用于每一位辛勤工作的教練/分析師。確保你的團(tuán)隊(duì)有最好的獲勝機(jī)會(huì)的唯一方法是,先收集所有這些信息,理解它,然后弄清楚如何將信息反饋給那些在游戲中處于主導(dǎo)位置的玩家。我相信你可以看到,沒有教練或分析師的英雄聯(lián)盟球隊(duì)是少數(shù)!
但是,分析師的工作聽起來很痛苦。最糟糕的是,因?yàn)檫@個(gè)行業(yè)是新興的,目前對(duì)分析師來說最好的工具就是微軟的Excel。
現(xiàn)在,您已經(jīng)了解了一些幕后發(fā)生的事情,讓我來談?wù)劄槭裁锤杏玫墓ぞ卟淮嬖?。
要理解的最重要的事情之一是,Riot Games沒有任何API,可以讓你知道在游戲中每秒會(huì)發(fā)生什么。他們所提供的只是游戲后的統(tǒng)計(jì)數(shù)據(jù),比如死亡,死亡等等。這對(duì)人們來說是很糟糕的,就像傳奇隊(duì)的職業(yè)聯(lián)盟一樣,他們會(huì)從這些詳細(xì)的現(xiàn)場(chǎng)游戲信息中獲益。這里有一個(gè)非永久性的解決方案,我稍后會(huì)解釋,但它只適用于live LCS游戲。讓我們看一看可能的情況。
Riot聽到這句話“Hey Riot! 你是否會(huì)給我們一個(gè)API,給我們開發(fā)者更多的實(shí)時(shí)數(shù)據(jù),這樣我們就可以改進(jìn)分析,創(chuàng)建其他工具來幫助玩家變得更好?“時(shí)的反應(yīng)
讓我們假設(shè)TSM是另一個(gè)團(tuán)隊(duì),比如Cloud 9。玩家們將在各自的游戲房間里玩他們的個(gè)人電腦。游戲結(jié)束后,沒有辦法弄清楚到底發(fā)生了什么,而又不去看VOD。他死在哪里?在哪里他守衛(wèi)嗎?他從哪里開始他的打野?所有這些信息都必須手動(dòng)聚合。有些人可能會(huì)說,“為什么不能直接將數(shù)據(jù)與客戶端聚合?”,1)這是違反服務(wù)條款的,2)它是加密的,尤其難以破解。
小地圖
我馬上就知道我想用小地圖來做這個(gè)小項(xiàng)目。它以最簡(jiǎn)單的方式提供了關(guān)于這個(gè)游戲的最簡(jiǎn)單的信息。對(duì)于你的數(shù)據(jù)集來說,這是一種非常好的獲得數(shù)據(jù)的方式,尤其是在深度學(xué)習(xí)的時(shí)候,因?yàn)檫@意味著你的算法可能會(huì)更容易學(xué)習(xí)。
小地圖還提供了與游戲狀態(tài)相關(guān)的驚人數(shù)量的信息。如果一個(gè)人每分鐘看一次微型地圖,他們就會(huì)很清楚地了解誰是贏家,有多少建筑被毀,守衛(wèi)的位置等等。下一步你會(huì)搞清楚我是如何通過計(jì)算機(jī)視覺來收集這些數(shù)據(jù)的。
我能在小地圖上訓(xùn)練一個(gè)深度神經(jīng)網(wǎng)絡(luò)來預(yù)測(cè)邊界框,并分類冠軍隊(duì)員么?
在過去,我曾使用過深度神經(jīng)網(wǎng)絡(luò)來處理與自動(dòng)駕駛汽車相關(guān)的任務(wù),而且很明顯它們的功能非常強(qiáng)大。我知道這篇文章的一些讀者可能不理解神經(jīng)網(wǎng)絡(luò)是如何工作的或者他們有什么能力,但是讓我舉個(gè)例子來幫助你理解。
下面是我創(chuàng)建的一個(gè)神經(jīng)網(wǎng)絡(luò)的小GIF,它是為一輛汽車訓(xùn)練的,用來預(yù)測(cè)轉(zhuǎn)向角度(你可以用自動(dòng)駕駛汽車來查看我的工作)。我設(shè)計(jì)了自己的神經(jīng)網(wǎng)絡(luò)體系結(jié)構(gòu),并在8小時(shí)的駕駛數(shù)據(jù)上訓(xùn)練了它。
只用了8個(gè)小時(shí)的數(shù)據(jù),神經(jīng)網(wǎng)絡(luò)就神奇地學(xué)會(huì)了一些基本的規(guī)則,而不被告知。黑點(diǎn)就是實(shí)際的轉(zhuǎn)向角。這就是最初控制車輛的司機(jī)的角度。紅點(diǎn)是我的神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)的轉(zhuǎn)向角度是基于它在圖像中看到的。
你幾乎看不到黑點(diǎn),因?yàn)樗ǔ1患t點(diǎn)覆蓋。這是好!這意味著我們的神經(jīng)網(wǎng)絡(luò)在預(yù)測(cè)如何以圖像中的像素為基礎(chǔ)來駕駛車輛方面做得很好。 這他tm的笨蛋。
我想再展示更多的經(jīng)網(wǎng)絡(luò),因?yàn)槲艺J(rèn)為這些概念與DeepLeague背后的思想有很大聯(lián)系。神經(jīng)網(wǎng)絡(luò)也可以用于對(duì)象檢測(cè)。我見過很多不同的模型,它們專門用于對(duì)象檢測(cè),比如SSD、R-CNNs、更快的R-CNN和YOLO9000。對(duì)于我的一個(gè)項(xiàng)目,我需要在一個(gè)大屏幕視頻中實(shí)時(shí)地執(zhí)行對(duì)象檢測(cè)。這意味著當(dāng)一個(gè)人開車時(shí),這個(gè)神經(jīng)網(wǎng)絡(luò)會(huì)說“嘿,那是一個(gè)人”或者“嘿,那是一輛車”。 我決定使用YOLO9000,因?yàn)樗亲羁斓奶綔y(cè)器,但不需要最高的精確率。
下面是一個(gè)GIF,是一個(gè)預(yù)先訓(xùn)練的YOLO模型,我用它來實(shí)時(shí)地從行車記錄儀中檢測(cè)對(duì)象。
那么現(xiàn)在的問題是:用于物體檢測(cè)的深層神經(jīng)網(wǎng)絡(luò),是否被訓(xùn)練用來識(shí)別電子游戲中的物體?
嗯。這是有意義的,對(duì)吧?如果我們可以訓(xùn)練一個(gè)神經(jīng)網(wǎng)絡(luò),來理解在現(xiàn)實(shí)世界中復(fù)雜場(chǎng)景中的物體是什么樣的,我們應(yīng)該能夠在視頻游戲?qū)ο笊嫌?xùn)練它!使用此基礎(chǔ),我開始創(chuàng)建數(shù)據(jù)集。
未完待續(xù),敬請(qǐng)期待
用深度學(xué)習(xí)玩LOL,數(shù)據(jù)集DeepLeague開源(下)
更多文章,關(guān)注雷鋒網(wǎng)
添加雷鋒字幕組微信號(hào)(leiphonefansub)為好友
備注「我要加入」,To be a AI Volunteer !
雷鋒網(wǎng)雷鋒網(wǎng)
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。