首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

斗鱼是如何获取主播绝地求生中存活人数的

最近小编痴迷“吃鸡游戏”(绝地求生),闲暇之余也会去斗鱼直播的绝地求生板块观看视频直播,不经意间发现,斗鱼直播默默的上了一个骚气、无敌、高大上的功能,“实时”展示在线主播在游戏中的存活人数,如下图:

图1

那么问题来了,在绝地求生官方未开放实时的游戏数据查询的情况下,斗鱼是如何获取这些主播的数据的呢?作为喜欢意淫的python爱好者,小编做出以下猜测:斗鱼是通过获取游戏视频截图(斗鱼直播平台拥有所有主播的直播视频),运用数字图像技术和机器学习算法,实现的图像中数字的识别。

为了证实小编这一设想的可行性,在一个月黑风高的晚上,小编决定动手尝试,准备工作如下:

1、小编手动截取了69张在线绝地求生主播的视频截图(1920*1080,无字幕遮挡),其中59张作为训练数据,10张作为测试数据(因为是试探验证,所以没有截取较多的图片);如下:

图2

2、了解数字图像概念,以及RGB图像的灰度过程、去燥算法;

RGB图像(3维)灰度图像(2维)

3、基于Python的数据清洗、加工、抽取等基本数据分析能力;

4、了解机器学习——分类、有监督学习等知识(本场景是将0-9所有的数字各做为1类);

写到这里,肯定有很多人已经迫不及待的想继续看,小编到底是怎么实现的了,不卖关子了,大步进入正题!!!

-----------我------是-------一-----条------分------割----线---------

第一步

对图像数据进行降维,在不丢失图像主要特征基础上,将数据从3维数据降到2维,并且定位数字在图像中的位置;

Data_pic

第二步

对数据进行去燥和二值化处理,将灰度值超过0.9(数字主要轮廓特征)重新赋值为1,否者赋值为,并且将两位的数字,进行分割,处理成一位数字,如:99转化成9、9,实现将所有数字的识别问题都可以转变成对0--9这10个数字的识别问题;

第三步

对截取到的所有的数字图像进行特征提取,将上千维的离散特征转换成低维特征,如下图,首先将图片分为四部分,选取1占所在区域的比例作为图片特征;

第四步

训练数据和测试数据准备(其中0,1,2,3,4列表示特征,Y表示目标类);

第五步

选取机器学习分类算法——KK算法作为训练模型,进行KNN模型训练和预测;(

K近邻模型,也常被叫做K最邻近结点算法。它是直接拿已经标注的数据做模型的一种统计学习方法(即,不需要额外的训练过程)。对于待分类的样本点,在已经标注的数据集合中,找到与目标样本点最近的K个(K通常小于20)点,用K个点的标注类别来投票,得票最多的标注类别即作为目标点的分类结果)

第六步

预测结果准确率:12/20*100%=60%

小编在这里只是一种简单的Demo实现,证明思路的可行性,显然准确率还不能满足真实的应用场景,要想达到工程上线标准,各个步骤都需要进行严谨且大量的优化,如果你有更好的Idea,欢迎联系小编一起学习进步!!!!!

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180212G17EGP00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券