我用深度学习分析 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,来收集关于他如何操作和真正学习的数据。

让我们讨论一下。

我为什么做这个?

我已经在电子竞技系统工作了大约四年了,其中最有趣的事情之一就是做一个支持团队的幕后工作。球员会得到教练、分析师、厨师、健身教练、心理学家等方面的疯狂支持,而球员们除了比赛本身没什么可担心的。 但是,这个行业刚刚兴起,目前使用的方法可能不是最好的。 为了说明这一点,我想谈谈一个全职英雄联盟分析师的一些主要职责:

  • 观察相当长时间的不同地区的比赛视频,比如欧洲和韩国。在比赛水平提升前,抓住其中重要的元素,使自己队伍处于领先地位。
  • 对那些似乎在特定的补丁上过度使用的冠军做笔记,这样他们就可以在自己的游戏中利用这些“力量选择”。
  • 记录下无数其他的事情,比如:守卫分布,丛林路线,团队拿龙的时候,团队聚集在一起的时机,团队蹲人的时机,玩家死亡的地方,他们推进的地方等等。

当你想成为一名分析师的时候,阅读了职位描述时

这适用于每一位辛勤工作的教练/分析师。确保你的团队有最好的获胜机会的唯一方法是,先收集所有这些信息,理解它,然后弄清楚如何将信息反馈给那些在游戏中处于主导位置的玩家。我相信你可以看到,没有教练或分析师的英雄联盟球队是少数!

但是,分析师的工作听起来很痛苦。最糟糕的是,因为这个行业是新兴的,目前对分析师来说最好的工具就是微软的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模型,我用它来实时地从行车记录仪中检测对象。

那么现在的问题是:用于物体检测的深层神经网络,是否被训练用来识别电子游戏中的物体?

嗯。这是有意义的,对吧?如果我们可以训练一个神经网络,来理解在现实世界中复杂场景中的物体是什么样的,我们应该能够在视频游戏对象上训练它!使用此基础,我开始创建数据集。

未完待续,敬请期待

原文发布于微信公众号 - AI研习社(okweiwu)

原文发表时间:2018-02-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏CDA数据分析师

【零一】从0开始,教你如何做数据分析#中阶#第九篇

大家好,我是零一。这一篇给大家介绍探索关系。 我的公众微信号是start_data,欢迎大家关注。 探索关系是非常好玩的一件事情。先给大家讲个故事。据说很久很久...

2268
来自专栏AI科技评论

虽又击败了人类选手,但我们认为 OpenAI 的 5v5 DOTA AI 不过如此

AI 科技评论按:各位读者想必今天一睁眼就被「OpenAI 的人工智能在 DOTA 5v5 比赛中也打败了人类选手」的新闻刷屏了。OpenAI 开发的 DOT...

1155
来自专栏新智元

DeepMind 让AI 拥有记忆并实现序列学习,AlphaGo 一周年技术盘点

【新智元导读】在 AlphaGo 获胜一周年的今天,DeepMind 发表最新研究成果,让神经网络成功在学习新任务的同时,不忘老的任务,向着自适应学习迈出重要一...

3639
来自专栏新智元

【史上最强机械手】无需提前了解物体,100%识别,适用多种非结构化场景

新智元编译 来源:MIT 编译:克雷格 【新智元导读】最近,由MIT和普林斯顿大学研究人员开发一款名为“拾放(pick-and-place)”的系统。“...

39211
来自专栏华章科技

生命的意义是什么? 谷歌机器人的答案:为了永生

据英国每日邮报报道,当英国剧作家道格拉斯•亚当斯(Douglas Adams)写《银河系漫游指南》时,他写道这样一句话:“有关生命、宇宙和万物的终极问题的答案是...

1052
来自专栏CSDN技术头条

数据vs.算法,究竟谁更重要

【编者按】随着服务器愈加的廉价,集群计算框架愈加成熟,大家似乎已经完全把眼光放到海量的数据上,算法的精心调校似乎已成为某些领域或者某些公司才去钻研的事情。那么,...

2009
来自专栏大数据文摘

学界 | MIT深度学习课程全部视频及课件开放

2474
来自专栏新智元

视频人脸模糊:微软研究院最新基于 AI 算法的自动打码技术

【新智元导读】 将模糊图像变高清的技术很受关注,不过同样应用范围很广的视频自动打码技术似乎比较低调。微软研究院最新提出一套基于人工智能算法的视频人脸模糊解决方案...

48713
来自专栏Python中文社区

用Python分析股市指数

專 欄 ❈本文作者:王勇,目前感兴趣项目商业分析、Python、机器学习、Kaggle。17年项目管理,通信业干了11年项目经理管合同交付,制造业干了6年项目...

29510
来自专栏机器之心

学界 | 南科大翁文康:「量子霸权」的基础概念和可行方案

论文:Quantum supremacy: some fundamental concepts

1610

扫码关注云+社区

领取腾讯云代金券