概述

CV(Computer Vision)在事实世界的利用绝对比拟胜利,如日常生活中的人脸识别,车牌辨认,指纹比对,电子稳像,行人,车辆的跟踪,等等。那么在其余畛域呢,比方大家常玩的手机游戏,CV又能够有哪些利用呢?游戏场景的图像和事实场景的图像还是有差异的,有些游戏的场景绝对比较复杂,如特效烦扰、游戏人物不似真人一样有规定,艺术字体也不像车牌一样字体固定,并且有对立底色等等;有些元素是绝对比较简单的,如游戏中的固定地位的固定图标等等。简略的游戏元素能够用传统图像检测的办法,也能够获得比拟好的成果。本篇文章,将率领大家一起剖析常见的游戏场景的辨认。

1. 解决流程

游戏场景的辨认能够次要分为两个模块,GameClient和CVServer, GameClient模块负责从手机或是PC端实时获取图像,并转发给CVServer。CVServer解决收到的游戏图像,后果返给Game Client。Game Client依据需要进一步解决后,再反馈给游戏端。流程如图1所示。

图1游戏场景辨认主流程

2. 利用举例

上一大节次要跟大家分享了游戏场景辨认的次要流程,这一大节咱们将次要剖析图像识别在游戏中的利用。

2.1 游戏状态的确定
每个游戏UI称为一个游戏状态。游戏可被认为有很多不同的UI组成。先建设好这些UI的样本库,实时获取一张游戏画面时,比对以后的图像和样本图像,可判断出以后的游戏状态。比对两张图像是否类似的办法很多,这里咱们以特色点匹配为例,次要步骤如下:

Step1:样本图像的特色点提取,测试图像的特色点匹配

图2特色点提取

Step2:特色点匹配

图3特色点匹配

Step3:匹配筛选

图4依据ratio-test进行匹配筛选

ORB特色点匹配是绝对比拟成熟的技术。在采集到的测试数据集中,会因为手机分辨率,刘海或渲染的不同,导致图像的大小或UI渲染地位等差别比拟大,罕用的模板匹配很难适配这种状况。基于特色点的匹配计划则不会存在这种状况,特色点个别是指图像中的角点,或是显著点。跟图像中物体元素所在的地位和大小关系不显著,所以适用性更强。ORB特色点是将FAST特色点的检测办法与BRIEF特征描述子联合起来,并在它们原来的根底上做了改良与优化。ORB特色点具备旋转不变性和尺度不变性。上面别离介绍特色点提取、特色点形容、特色点匹配和特色点筛选。

2.1.1 特色点提取:FAST

FAST的根本思维,若某像素p与其四周邻域内(1到16),足够多的像素点相差较大,则该像素可能是角点。原始的FAST特色点是没有尺度不变性的,OPENCV中的ORB的实现通过构建高斯金字塔,而后在每一层金字塔图像上检测角点,来实现尺度不变性。原始的FAST也不具备方向不变性,ORB的论文中提出了一种利用灰度质心法来解决这个问题。对于任意一个特色点p来说,定义p的邻域像素的矩为

,其中 I(x,y)为点(x,y)处的灰度值,图像的质心为:

,特色点和质心的夹角,即为FAST特色点的方向:


图5 FAST 特色点图示(图像来自论文:Faster and better: A machine learning approach to corner detection)

2.1.2 特色点形容:BRIEF

BRIEF算法的核心思想是在关键点P的四周以肯定的形式选取N个点对,而后把这N个点对的比照后果组合成一个长度为n的二值码串,作为该关键点的形容子。ORB在计算BRIEF形容子的时候,建设的坐标系是以关键点为圆心,以特色点P和取点区域的质心(Q)的连线为X轴建设的二维坐标系。圆心是固定的,以PQ为x轴坐标,垂直方向为y轴坐标,在不同的旋转角度下,同一特色点取出来的点对是统一的,这就解决了旋转一致性的问题。

2.1.3 特色点匹配:Hamming Distance

两个等长二进制串的汉明间隔是两个二进制串对应地位的不同字符的个数。ORB中用Hamming Distance来掂量两个形容子之间的间隔。

2.1.4 特色点筛选:Ratio-Test

Ratio-Test用来剔除间隔比例(最近邻间隔/第二近邻间隔)近似的含糊匹配点对。这里应用一个参数ratio来管制剔除间隔比例在肯定范畴之外的特色点。由下图所示,可知ratio为0.75左右时,能够把正确匹配和谬误匹配状况的最好的拆散。

图 7 最近邻间隔和第二近邻间隔的ratio图,实线为匹配正确时的ratio的pdf,虚线为谬误匹配时的ratio的pdf。图像来自论文:D. G. Lowe. Distinctive imagefeatures from scale-invariant keypoints, 2004

2.2 场景覆盖率

基于特色点匹配的办法,也可用在场景覆盖率的利用上。首先是加载外围场景的模板图像,AI在运行过程中会采集大量的游戏运行中的游戏截图。基于这些游戏截图造成的测试数据集,遍历每一张测试数据集,别离基于局部图像的特色点算法匹配外围场景图像和测试图像,全图像的特色点匹配办法匹配外围场景图像和测试图像,最终筛选出匹配后果,过滤失去匹配到的外围场景的图像。通过匹配到的外围场景的图像和数目,揣测AI运行过程中的场景笼罩状况。

2.3 游戏中数字的辨认

游戏中的数字图像很多,如关卡数,得分数,倒计时数等,咱们能够基于CNN的办法对数字进行辨认。基于CNN的分类办法很早就被提出,晚期比拟经典的CNN网络是1998年提出的Lenet网络,Lenet网络采纳2层卷积,2层池化层,2层全连贯层,最初一层softmax层组成。输出的是数字图像,输入的是数字图像的类别。

图 6 Lenet网络

咱们能够先对全数字图像进行宰割,宰割成一个一个独立的数字,而后通过Lenet网络对每一个数字图像进行预测,输入的数字图像类别即为辨认出的数字,最初再对全数字进行组装,失去最初的全数字辨认后果。

图 7 数字辨认过程

随着网络结构加深,卷积性能的增强,以及GPU和大数据带来的历史时机,CNN近些年出现爆炸式倒退。而且CNN不仅用于分类,还能够用来对物体检测,即最初一层由原来的输入物体的类别,到输入物体在图像中的地位和在此地位处的物体的类别。咱们能够采纳折中速度和准确度的算法YOLOV3,并基于工程的图像特色,基于缩小网络层个数和缩小特色图个数两个方向去优化网络,近一步优化网络速度。

图 9 数字辨认和重组的过程

2.4 固定地位固定图标的辨认

模板匹配的利用很多,咱们就固定按钮的辨认,提示信息的辨认,卡住状态的检测这三个方面举例说明。游戏主界面中,英雄的技能,配备,操作键等这些按钮个别都是在固定地位。提取按键为可用状态时的按钮图标作为模板,实时获取的游戏界面检测到模板,检测到就阐明以后这个按钮可用。游戏AI获取这些按键的信息后,即可采取相应的策略,如开释技能,购买配备等。游戏提示信息也是相似,游戏界面中固定地位呈现一些提示信息,如图7中显示的路线批示信息,游戏完结状态(胜利/失败)等,游戏运行状态(开始)等。咱们先采集这些提示信息呈现的地位,以及这些提醒图标模板,在游戏实时运行过程中,在呈现的地位处,实时匹配是否和采集的图标模板匹配,如果匹配到了,阐明以后呈现了此提示信息。如匹配到游戏胜利图标,则在此局中的AI策略应该给予处分,相同应该给予惩办等。

图 10 固定Button的辨认

图 11 游戏提醒图标的辨认

模板匹配的思维是在一幅图像中寻找与另一幅模板图像最匹配局部。流程如图12所示。

图 12 模板匹配的过程

模板匹配的解决步骤如下:

Step1:从原图像的左上角开始,从左向右,从上到下,步长为1,采纳滑动窗口的形式,顺次去计算模板图像和窗口子图像的类似度。
Step2:把类似后果存在后果矩阵中。
Step3:最终在后果矩阵中找到最佳匹配值,如果越类似,值越大,那么后果矩阵中最亮的局部,即为最佳匹配。
openCV中提供了接口函数cv2.matchTemplate(src, tmpl, method) 进行模板匹配,其中method示意匹配办法的抉择。

2.5 基于像素特色的物体过滤

依据各通道色彩值的范畴,对检测区域内像素进行过滤,能够失去合乎这种色彩特色的指标物在什么地位。

游戏中血条的色彩特色也是比拟显著的。如红色血条的R通道值比拟大;绿色血条的G通道值比拟大; 蓝色血条的B通道值比拟大。咱们提取血条的色彩特色,依据色彩特色能够过滤出血条像素点,很多像素点组成了血条,计算血条的连通区域,能够晓得血条的长度,进而能够晓得血量百分比。通过血条像素点的过滤,咱们即可晓得以后游戏主界面友方单位(绿色血条或蓝色血条),敌方单位(红色血条)的地位属性,血量百分比属性。依据这些属性游戏AI能够采取逃跑,向前攻打,组队等不同的策略。

图 13 血条百分比计算的流程

MOBA类游戏,常在小地图中,呈现我方塔和敌方塔。提取塔的色彩范畴R(0, 90),G(90, 190),B(110,200)。在小地图范畴内,过滤像素灰度值在此范畴内的像素点,即可晓得我方(敌方)塔在什么地位,以及塔的血量(像素点的多少)。如果小地图中呈现了本人的英雄,且本人英雄头像四周有绿色外接圆,咱们也能够提取出绿色外接圆的像素值范畴R(80, 140),G(170, 210),B(70,110).通过各个通道灰度值过滤出本人英雄在什么地位,进而进行寻路或是策略抉择等。

图 14 MOBA类游戏中小地图像素点筛选的利用

2.6 其余
图像识别在游戏中的利用还有很多,比方游戏场景中的行人检测,英雄检测,花屏检测,空气墙,穿模,去重等等。

3 总结

本篇文章次要介绍了图像识别在游戏中的利用,如游戏状态的确定,场景覆盖率的计算,游戏中数字的辨认,固定地位固定图标的辨认等。心愿读者看了本篇文章后,对图像识别在游戏中的利用有进一步的意识。

“UQM 用户品质治理”业余的游戏客户端性能(卡顿、发热、内存/CPU、网络等)和异样(解体闪退、ANR、Error)的监测剖析平台。借助深度品质的大数据分析,为游戏业务提供全方位的品质监测、数据分析、业务洞察服务。

点击链接:

UQM 用户品质治理丨 WeTest行业当先的品质云服务厂商 理解详情