League-X:使用深度学习的英雄联盟小地图辅助器
简介
本人是一个英雄联盟爱好者,同时对人工智能,深度学习之类的课题很感兴趣,去年心血来潮,使用图像识别写了一个识别英雄联盟小地图的代码:
这是第一代的演示
第一代文章链接:Python Tensorflow + CNN + Opencv 英雄联盟小地图识别,LOL Minimap Scanner
今年初我又开始收集更多数据(玩英雄联盟),并且优化了第一代的神经网络和流程,做出了第二代,我将它命名为 League-X. 这代程序可以将对方打野上次出现的位置用透明颜色标定,我放一张演示图上来:
这是第二代 “League-X” 的演示
本项目已经在github上公开,可以访问 League-X获得。
相似项目:
在我之前,Farza Majeed 与 Ian Shoneveld 已经做过类似的项目,有兴趣的可以去点击下面的链接来看他们写的文章:
Deep League
Getting Champion Coordinates from the LoL Minimap using Deep Learning
思路
如果已经读过我的第一篇文章,可以直接挑到“训练神经网络“”部分
总的来说,我的目标就是针对在小地图中区分并标定英雄图标。有两种识别方式可以完成我的目的:
- 图片分类(Image Classification)
- 物体识别(Object Recognition)
其中,图片分类要求在向神经网络输入图片前处理图像,并将英雄的头像提取,从而尽可能地减少图像中的相似之处,这种方法的优点是速度快,准确率高。 而以物体识别为目的的神经网络不需要提前提取英雄的图像,可以将整个小地图输入进神经网络,得到的是一系列的英雄名字以及他们的坐标。 物体识别好在不需要提前手写图像处理算法,弱在需要处理更多的像素,速度慢,且更多的相似特征将使其准确率降低。
我的选择是采用图片分类算法基于本人对此算法更有经验且提取英雄的头像的图像处理算法并不复杂,利用OpenCV可以高速运行。
整的流程如下图所示