我用深度学习分析LoL小地图,自制数据集DeepLeague开源(上)
本文为
雷锋字幕组
编译的技术博客,原标题 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。
翻译 | 曹永胜 校对 | 李振 整理 | 凡江
深度联盟(DeepLeague):在英雄联盟(League of Legends)的小地图上应用机器视觉和深度学习,并给出了超过10万个的标记图像,用于后续的电竞(esports)研究。
GitHub Repo + Dataset: https://github.com/farzaa/DeepLeague
作者注1:所有这些都是免费和开源的。我在这篇文章的第2部分解释了所有的技术细节,你可以在 这里 找到。如果您有任何问题,请随时 与我联系 。
作者注2:如果你是一个LCS团队(The League of Legends Championship Series,LCS。英雄联盟冠军系列赛),请雇佣我!我将帮助你打败韩国 Overlords。在 Twitter 上联系我吧。
DeepLeague正在工作。 我输入的只是一个LCS游戏的VOD(Video-On-Demand,VOD,点播视频),通过分析VOD的像素,DeepLeague可以告诉我们每个冠军是如何在地图上移动的。 厉害!
暂时想象自己是一名足球队教练,有人给你提供了一个程序。它可以播放足球比赛的视频,并在比赛的每一个时刻输出你球队球员的坐标。 如果我们将数据可视化,它看起来就像下面的GIF图片,你可以看到蓝色团队的玩家们有一个小盒子,上面画着程序生成的程序。程序替我们“监控”比赛。
通过哪些蓝色队员身上的边界框(the bounding boxes),可以看出我们的程序在监控比赛的视频
你可以看出这个信息将对一个足球教练多么有用么?有了这些数据,你可以对你的球员运动做无数的分析。例如,如果想提高自己球队的防守能力,可以分析每个球员的运动。不论是对方球队进了1个球时,或是你想创造1个新的策略来弥补缺陷时,都可以使用。
那么,这个概念可以应用到视频游戏中吗?
答案是肯定的,我可以展示给你看。
DeepLeague是什么?
DeepLeague是第一个将计算机视觉、深度学习和英雄联盟结合在一起的算法和数据集(超过100,000个图像),通过让开发人员能够轻松访问游戏中像素的数据,将LoL分析提升到下一个级别。给定一个关于英雄联盟小地图的图片,它可以为冠军选手预测边界框和标签。所以,你给DeepLeague的是一个VOD(基本上只是一堆图像),它会输出这样的东西:
跟着Rengar !对DeepLeague(左)的输入仅仅是一张迷你地图的图像,没有别的。输出描述了比赛中所有冠军的坐标和冠军的名字。厉害!
它使用 深度卷积神经网络 ,并在一个非常大的数据集上进行训练,这个数据集大约有10万个标记的迷你地图图像(见下图),我以编程方式创建并免费赠送修改为我编了个程序完成了标注工作,并免费发布给大家。硅谷AI公司花了很多钱来获得标签上的数据。我没有钱,但有时把钱扔在一个问题上不一定是最好的解决办法。有时候你只是需要一点小聪明!
然后是数据集本身,我给出了我创建数据集的实际方法,你可以在第2部分中读到。我想要AI在esports方面的研究成长起来,并且开始有开发支持它的开发人员。我希望通过提供数据集/方法,人们会变得更感兴趣。
Regi’s 在我给他看了 DeepLeague之后的反应。
DeepLeague “监控”着小地图,然后在没有任何其他输入的情况下,告诉你,每个冠军选手在每个时刻的位置。
所以,只要有一段视频,你就可以在比赛的每一秒内聚集冠军和冠军的位置。这方面有很多用例,特别是在LoL esport场景中,这些数据非常有用,因为你需要给DeepLeague提供一个玩家游戏的VOD。这意味着它适用于scrims、solo-q游戏和其他个人游戏,其中所有需要的都是一个简单的VOD(甚至ARAM! )
在DeepLeague之前,没有办法得到这种游戏内的数据,因为Riot API只提供post游戏分析。
当你拿到DeepLeague的输出数据后,可以做的事情:
-
分析一下打野的路径,他在哪里开始他的路线,当他在哪里,当他回来的时候,他在什么时候,施加了最大的压力。
-
分析团队什么时候拿“龙”,当他们决定拿“龙”的时候,他们是如何在地图上以团队的形式轮换的,作为一个团队,他们是如何拿下男爵的的。
-
分析什么时候一路会崩,什么时候他们受到其他路想的压力时,什么时候他们会失去一条线路,什么他们被单杀,什么时候他们离开推进的线路。
-
当然. 你可以在Faker的VODs上运行DeepLeague,来收集关于他如何操作和真正学习的数据。
让我们讨论一下。
我为什么做这个?
这个GIF图片没有任何用途,我就是喜欢这两个人
我已经在电子竞技系统工作了大约四年了,其中最有趣的事情之一就是做一个支持团队的幕后工作。球员会得到教练、分析师、厨师、健身教练、心理学家等方面的疯狂支持,而球员们除了比赛本身没什么可担心的。 但是,这个行业刚刚兴起,目前使用的方法可能不是最好的。 为了说明这一点,我想谈谈一个全职英雄联盟分析师的一些主要职责:
-
观察相当长时间的不同地区的比赛视频,比如欧洲和韩国。在比赛水平提升前,抓住其中重要的元素,使自己队伍处于领先地位。
-
对那些似乎在特定的补丁上过度使用的冠军做笔记,这样他们就可以在自己的游戏中利用这些“力量选择”。
-
记录下无数其他的事情,比如:守卫分布,丛林路线,团队拿龙的时候,团队聚集在一起的时机,团队蹲人的时机,玩家死亡的地方,他们推进的地方等等。
当你想成为一名分析师的时候,阅读了职位描述时
这适用于每一位辛勤工作的教练/分析师。确保你的团队有最好的获胜机会的唯一方法是,先收集所有这些信息,理解它,然后弄清楚如何将信息反馈给那些在游戏中处于主导位置的玩家。我相信你可以看到,没有教练或分析师的英雄联盟球队是少数!
但是,分析师的工作听起来很痛苦。最糟糕的是,因为这个行业是新兴的,目前对分析师来说最好的工具就是微软的Excel。
现在,您已经了解了一些幕后发生的事情,让我来谈谈为什么更有用的工具不存在 。
要理解的最重要的事情之一是,Riot Games没有任何API,可以让你知道在游戏中每秒会发生什么。他们所提供的只是游戏后的统计数据,比如死亡,死亡等等。这对人们来说是很糟糕的,就像传奇队的职业联盟一样,他们会从这些详细的现场游戏信息中获益。这里有一个非永久性的解决方案,我稍后会解释,但它只适用于live LCS游戏。让我们看一看可能的情况。
Riot听到这句话“Hey Riot! 你是否会给我们一个API,给我们开发者更多的实时数据,这样我们就可以改进分析,创建其他工具来帮助玩家变得更好?“时的反应
让我们假设TSM是另一个团队,比如Cloud 9。玩家们将在各自的游戏房间里玩他们的个人电脑。游戏结束后,没有办法弄清楚到底发生了什么,而又不去看VOD。他死在哪里?在哪里他守卫吗?他从哪里开始他的打野?所有这些信息都必须手动聚合。有些人可能会说,“为什么不能直接将数据与客户端聚合?”,1)这是违反服务条款的,2)它是加密的,尤其难以破解。
小地图
我马上就知道我想用小地图来做这个小项目。它以最简单的方式提供了关于这个游戏的最简单的信息。对于你的数据集来说,这是一种非常好的获得数据的方式,尤其是在深度学习的时候,因为这意味着你的算法可能会更容易学习。
小地图还提供了与游戏状态相关的惊人数量的信息。如果一个人每分钟看一次微型地图,他们就会很清楚地了解谁是赢家,有多少建筑被毁,守卫的位置等等。下一步你会搞清楚我是如何通过计算机视觉来收集这些数据的。
我能在小地图上训练一个深度神经网络来预测边界框,并分类冠军队员么?
在过去,我曾使用过深度神经网络来处理与自动驾驶汽车相关的任务,而且很明显它们的功能非常强大。我知道这篇文章的一些读者可能不理解神经网络是如何工作的或者他们有什么能力,但是让我举个例子来帮助你理解。
下面是我创建的一个神经网络的小GIF,它是为一辆汽车训练的,用来预测转向角度(你可以用自动驾驶汽车来查看我的工作)。我设计了自己的神经网络体系结构,并在8小时的驾驶数据上训练了它。
只用了8个小时的数据,神经网络就神奇地学会了一些基本的规则,而不被告知。黑点就是实际的转向角。这就是最初控制车辆的司机的角度。红点是我的神经网络预测的转向角度是基于它在图像中看到的。
你几乎看不到黑点,因为它通常被红点覆盖。这是好!这意味着我们的神经网络在预测如何以图像中的像素为基础来驾驶车辆方面做得很好。 这他tm的笨蛋。
我想再展示更多的经网络,因为我认为这些概念与DeepLeague背后的思想有很大联系。神经网络也可以用于对象检测。我见过很多不同的模型,它们专门用于对象检测,比如SSD、R-CNNs、更快的R-CNN和YOLO9000。对于我的一个项目,我需要在一个大屏幕视频中实时地执行对象检测。这意味着当一个人开车时,这个神经网络会说“嘿,那是一个人”或者“嘿,那是一辆车”。 我决定使用YOLO9000,因为它是最快的探测器,但不需要最高的精确率。
下面是一个GIF,是一个预先训练的YOLO模型,我用它来实时地从行车记录仪中检测对象。
那么现在的问题是:用于物体检测的深层神经网络,是否被训练用来识别电子游戏中的物体?
嗯。这是有意义的,对吧?如果我们可以训练一个神经网络,来理解在现实世界中复杂场景中的物体是什么样的,我们应该能够在视频游戏对象上训练它!使用此基础,我开始创建数据集。
未完待续,敬请期待
用深度学习玩LOL,数据集DeepLeague开源(下)
博客原址 https://medium.com/@farzatv/deepleague-leveraging-computer-vision-and-deep-learning-on-the-league-of-legends-mini-map-giving-d275fd17c4e0
更多文章,关注雷锋网
添加 雷锋字幕组 微信号(leiphonefansub)为好友
备注「我要加入」,To be a AI Volunteer !
雷锋网
(公众号:雷锋网)
雷锋网雷锋网
。