前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >玩王者荣耀用不好英雄?两阶段算法帮你精准推荐精彩视频

玩王者荣耀用不好英雄?两阶段算法帮你精准推荐精彩视频

作者头像
AI科技大本营
发布2019-08-12 19:36:19
6610
发布2019-08-12 19:36:19
举报

作者 | Wentao Yao, Zixun Sun, Xiao Chen

译者 | 孙薇

编辑 | Jane

出品 | AI科技大本营(ID: rgznai100)

【导读】近日,腾讯三位工程师在arXiv上发表了论文,分析如何利用算法,针对热门手游“王者荣耀”游戏视频进行快速检测与识别,辨识视频中的角色(即“英雄”),以推荐视频给目标受众。为了提取游戏视频标签,需要在游戏视频中检测并识别其中的英雄及其阵营。本文提出了一种有效的两阶段算法,基于血条模板匹配方法检测视频中的所有英雄,再根据阵营分类,然后使用一个或多个深度卷积神经网络识别英雄姓名。实验证明了方法的效率与准确性。

原文链接: https://arxiv.org/pdf/1907.07854

介绍

推荐系统在我们生活中越来越重要,作为其重要组成部分,内容标注在个性化推荐中起着重要作用。热门手游“王者荣耀”有着大量粉丝,除了玩游戏,许多玩家还会花费大量时间观看相关游戏视频。那么,用户在浏览游戏社区时,如何自动推荐其喜爱的视频便成为我们所要解决的问题。准确的推荐会极大激发用户兴趣,并提高用户体验。而标记游戏视频的重要前提,便是识别视频中的英雄。

通常,基于神经网络的目标检测与识别有两种流行算法。一是两阶段算法(two-stage algorithms):首先检测图像中的对象,并获得每个对象的边界框,然后识别各个边界框以获得对象类别。基于卷积神经网络的典型两阶段算法包括R-CNN、SPP Net、Fast R-CNN、Mask R-CNN等。而另一种则是一阶段算法(one-stage algorithms):在一次运行中直接检测并识别图像中的对象,包括SSD和YOLO等。

经过分析后发现“王者荣耀”游戏的英雄有个重要特征,便是血条。所有血条均有相同的外观(包括大小及形状),而唯一区别是血条颜色、生命值与水平。为此,本文将采用两阶段算法。第一阶段,基于模板匹配方法,检测视频中的英雄血条,并获得其边界框列表。第二阶段,训练一个深度卷积神经网络来识别各个边界框,获取英雄姓名。

数据集

经过验证,我们发现不同视频中的血条大小只与视频高度相关,因此我们将数据集中的所有视频转为标准高度,即720px,同时保持其宽高比不变。

为了进行大量训练,我们从一些热门的视频网站上收集了大量游戏视频,其中包括截至目前的所有英雄(共92个)。各个视频包含一个标签,标记其中的主要英雄。针对各个英雄,我们下载了大约4-5个视频,其中尽可能涵盖了此英雄的各种外观和皮肤。

除了外观分类器,框架右下角是主英雄的技能区域,同一个主英雄的技能区域完全相同。我们决定利用技能区域,以及其他两个基于卷积神经网络的分类器进行训练,以提高识别准确性。技能区域的位置并不固定,且随着视频宽高比变化。因此,检测技能区域的算法应调整视频的宽高比。同时,我们使用圆检测算法,基于裁剪的技能区域来检测首技能(即第一个技能)圈。

综上,我们收集三种类型的样本:英雄的外观、首技能和技能区域。

方法

(1)血条模板匹配

将视频中的英雄血条与预定义模板匹配。由于不同血条的生命值、颜色、水平的差异,必须设置遮罩,区分该区域是否用于匹配。

图1(a)用于匹配的血条模板

图1(b)模板遮罩,其中白色像素将用于匹配

针对通道输入的视频帧,先将其转换为灰度图像,然后执行模板匹配。所有输入图像需缩放至标准尺寸(即高度为720px),采用32位浮点图像。由于视频中英雄数量不定,我们需对原始视频帧和相应匹配图像进行观察,如图2:

图2(a)原始视频帧

图2(b)相应的匹配图像

图2(c)匹配图像的局部极大值

在图2(a)中,存在四个血条,在图2(b)中可以找到相对应位置。用恰当半径的极大值过滤器过滤匹配图像,则获得图2(c)。显然,四个极大值的位置对应四个血条。按照像素值降序,取前20个像素可快速处理图像并有效保留血条信息。我们设计了一个函数以计算像素分值,此函数基于两个要素——局部极大像素值,与周围像素的对比度,这两者都利于匹配模板。假设:极大过滤器区域中共有n个像素,将局部极大像素值设为v0,将过滤器中其他像素值设为vi(1≤i≤n),v0≥vi,然后计算:

其中α和β是平衡两部分权重的系数。分数越高,模板匹配的结果越好。排序后取前20,但由于不确定英雄数量,仍需设定一个阈值。

(2)非极大值抑制

英雄血条形状接近矩形,在模板匹配中,水平偏移不会显著减少匹配响应(因为模板水平线上的大多像素仍可以匹配图像中的真实血条像素)。为了避免相同血条出现多个检测结果,我们引入了非极大值抑制。在模板匹配阶段已经获得分值最高的前20个像素,我们按分值降序排序。使用四个属性(x,y,score,is_real_detection)描述每个像素。在非极大值抑制阶段,按照算法1设计抑制算法,其中Tx和Ty分别是水平和垂直偏移的阈值。我们将Tx设为模板宽度的一半,将Ty设为1像素。图4(b)显示了非极大值抑制后的检测结果,修复了所有的错误检测。

算法1非极大值抑制

(3)阵营分类

根据血条颜色,可将英雄分为三个阵营:自己(主英雄)、友军、敌军。由于血条生命值可能很低,我们采用了一种简单的算法,使用血条最左侧位置的平均颜色对血条进行分类。3通道平均颜色表示为(cr,cg,cb),英雄阵营的分类规则如下:

  • 对于(r,g,b)中的颜色i,如果ci> 100且ci> 1.5 * cj(j≠i),则血条的颜色为i(绿色代表自己,蓝色代表友军,红色代表敌军);
  • 如果没有ci符合上述规则,则:
    • 对于(r,g,b)的每个i,如果满足70≤ci≤100,血条几乎为空,无法确定阵营;
    • 否则并非血条,取消检测。

应用

为了识别英雄姓名,我们需要训练几个分类器。针对英雄外观,只需在检测到的血条下面为主英雄裁剪一个固定区域,外观图像尺寸为163×163;对主英雄的技能区域,根据视频的宽高比进行位置补偿。在下面的方程式中,带有下标s的变量x,y,w,h指技能区域,带有下标image的变量则指图像。wnorm是指标准化16:9调整后的图像宽度。

为了减少非游戏界面中技能区域的虚假裁剪,只在检测到主英雄时裁剪技能区域,大小为360×360。对于英雄的首技能,我们在提取技能区域的左下角运行圆检测算法。检测到至少一个圆的话,使用最大圆的中心和固定大小来裁剪首技能区域,大小为110×110。

图6:用于训练分类器的典型训练与测试样本

如上所述,我们使用检测算法自动收集培训和测试样本,对每个分类器,我们收集了超过10万的样本。表1列出了训练及测试样本的数量:

用到三种常用的深度卷积神经网络来训练分类器,包括: Inception V3/V4及Inception-ResNet V2,对于每个采样帧中检测到的英雄,通过分类器获得其姓名与可信度分数,再根据英雄姓名累积每个英雄的可信度分数。最终通过选择最高累积可信度分数的英雄来获得最终结果。

图7:英雄检测和识别的整体方案

实验结果

Inception V3 / V4和Inception-ResNet V2网络的输入图像大小均为299×299,使用检测算法提取训练和测试样本。使用平均准确度,将marco-f1和micro-f1作为三种样本和三种网络模型的评估标准。表2中列出了经过训练的神经网络的性能表现。使用Tesla M40 GPU,GTX1060 GPU。

根据表2,我们发现对于所有类型的图像,Inception V3网络优于Inception V4和Inception-ResNet V2网络,Inception V3网络运行速度比图像上的Inception V4和Inception-ResNet V2网络更快,因为其结构更简单,参数更少。每帧中所有英雄的检测时间约为80ms。每个框架中所有英雄的检测和识别的整个过程,包括主英雄的技能区域和首技能区域,对Inception V3网络是200ms,对Inception V4网络是280ms,对Inception-ResNet V2网络是320ms。

从实验中我们发现,在准确性和识别时间方面,Inception V3网络对于游戏视频中的识别任务比其他两个更复杂的网络更好。在任务中我们使用Inception V3作为基础网络。与YOLOv3比较结果如图8,YOLO倾向于仅检测图像中心的英雄,而我们的方法可检测识别图像中的所有英雄。

图 8(a)(b):YOLOv3与我们的方法的比较

(a)YOLOv3模型的检测和识别结果

(b)我们方法的检测和识别结果

虽然该方法表现良好,还是会有失败。最典型的是英雄的新皮肤及新增英雄,需要不断更新模型。

结论

本文为“王者荣耀”提出一种高效准确的英雄检测和识别算法,有助于快速定义游戏视频内容并加注标签和推荐。我们使用两阶段方法检测与识别视频中的所有英雄,这种方式性能上更优于YOLO等一阶段方法,训练和测试样本的工作量却大体相同。未来我们还将探索更多关于游戏视频内容理解的内容,如游戏视频场景识别和类型分类。并将工作扩展到其他游戏,如“英雄联盟”,这将使该算法通用性更强。

(*本文为 AI科技大本营编译文章,转载请联系微信 1092722531)

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI科技大本营 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
视频理解
视频理解是基于腾讯领先的 AI 技术和丰富的内容运营经验,对视频内容输出涵盖人物、场景、物体、事件的高精度、多维度的优质标签内容。通过对视频内容进行细粒度的结构化解析,应用于媒资系统管理、素材检索、内容运营等业务场景中。其中一款产品是媒体智能标签(Intelligent Media Label Detection)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档