CN110751013A - 场景识别方法、装置和计算机可读存储介质 - Google Patents

场景识别方法、装置和计算机可读存储介质 Download PDF

Info

Publication number
CN110751013A
CN110751013A CN201910764051.4A CN201910764051A CN110751013A CN 110751013 A CN110751013 A CN 110751013A CN 201910764051 A CN201910764051 A CN 201910764051A CN 110751013 A CN110751013 A CN 110751013A
Authority
CN
China
Prior art keywords
scene
image
interface
interface image
identification
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201910764051.4A
Other languages
English (en)
Other versions
CN110751013B (zh
Inventor
赵菁
方李志
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201910764051.4A priority Critical patent/CN110751013B/zh
Publication of CN110751013A publication Critical patent/CN110751013A/zh
Application granted granted Critical
Publication of CN110751013B publication Critical patent/CN110751013B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/22Matching criteria, e.g. proximity measures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • General Engineering & Computer Science (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Multimedia (AREA)
  • Image Analysis (AREA)

Abstract

本申请涉及一种场景识别方法、装置、计算机可读存储介质和计算机设备,所述方法包括:获取界面图像,并提取界面图像中的界面对象;根据界面对象,确定界面图像的场景类型;基于场景类型,确定界面图像中的场景对象;确定并标记场景对象中的标识对象,并遍历操作场景对象,获得操作结果,并根据操作结果确定并标记场景对象中的操作对象。本申请提供的方案可以实现场景对象的自动化标记,提高场景识别效率。

Description

场景识别方法、装置和计算机可读存储介质
技术领域
本申请涉及图像处理技术领域,特别是涉及一种场景识别方法、装置、计算机可读存储介质和计算机设备。
背景技术
用户界面是系统和用户之间进行交互、以及信息交换的媒介,它实现信息的内部形式与人类可以接收形式之间的转换。目的在于使得用户能够方便有效率地去操作硬件以达成双向之交互,完成所希望借助硬件完成的工作。而由于应用系统所具备的功能多且复杂的原因,使得系统的界面往往复杂多样。想要区分界面图像,则需要确定界面图像所属的场景。传统一般通过识别界面图像中已标记的对象来确定场景。
然而,目前对象的标记工作主要依赖于人工标记,即由人工在界面中标识该场景的对象,后续通过识别和操作人工标记的对象确定场景。传统使用人工标记场景,当场景较多时,标记的工作量会随着界面数量的增加而增加,标记的效率也会随之降低,从而降低了场景识别的效率。
发明内容
基于此,有必要针对降低了场景识别效率的技术问题,提供一种场景识别方法、装置、计算机可读存储介质和计算机设备。
一种场景识别方法,包括:
获取界面图像,并提取所述界面图像中的界面对象;
根据所述界面对象,确定所述界面图像的场景类型;
基于所述场景类型,确定所述界面图像中的场景对象,所述场景对象包括所述界面对象中属于场景对象的界面对象;
确定并标记所述场景对象中的标识对象,并遍历操作所述场景对象,获得操作结果,并根据所述操作结果确定并标记所述场景对象中的操作对象。
在其中一个实施例中,所述方法还包括:
确定所述标识对象的面积;
根据所述标识对象的面积对所述标识对象进行排序后,将所述界面图像以及对应的标识对象和操作对象保存至自动标记场景图像中。
在其中一个实施例中,在获取界面图像之后,提取所述界面图像中的界面对象之前,还包括步骤:识别所述界面图像是否属于已有场景图像;
当识别确定所述界面图像不属于已有场景图像时,进入所述提取所述界面图像中的界面对象的步骤。
在其中一个实施例中,识别所述界面图像是否属于已有场景图像,包括:
将所述界面图像与所述已有场景图像进行模板匹配,得到匹配值;
当所述界面图像与所述已有场景图像的匹配值不满足预设匹配值时,获取所述已有场景图像的标识对象;
在所述界面图像不包括标识对象时,将所述已有场景图像的标识对象与所述界面图像进行图像匹配;
当所述已有场景图像的标识对象中存在至少一个标识对象与所述界面图像不匹配时,确定所述界面图像不属于已有场景图像。
在其中一个实施例中,所述方法还包括:
在所述界面包括标识对象时,将所述已有场景图像的标识对象与所述界面图像的标识对象进行图像匹配;
当所述已有场景图像的标识对象中存在至少一个标识对象与所述界面图像的标识对象均不匹配时,确定所述界面图像不属于已有场景图像。
在其中一个实施例中,所述方法还包括:
在识别确定所述界面图像属于已有场景图像时,获取所述已有场景图像的标记对象和操作对象;
将所述已有场景图像的标记对象和操作对象作为所述界面图像的标识对象和操作对象;所述已有场景图像包括脚本场景图像和自动标记场景图像。
在其中一个实施例中,提取所述界面图像中的界面对象,包括:
将所述界面图像进行颜色空间的转换,得到转换后的界面图像;
从所述转换后的界面图像中提取亮度通道图像;
利用亮度阈值将所述亮度通道图像进行图像二值化,得到所述界面图像对应的二值化图像;
对所述二值化图像进行形态学处理,提取形态学处理后的二值化图像内的轮廓;
计算所述轮廓的外接矩形,并过滤所述轮廓的外接矩形,得到所述界面图像的界面对象。
在其中一个实施例中,所述根据所述界面对象,确定所述界面图像的场景类型,包括:
根据所述界面对象的位置和面积确定所述界面图像是否存在弹窗;
当所述界面图像中存在弹窗时,确定所述界面图像的场景类型为弹窗类场景,所述场景类型包括弹窗类场景;
当所述界面图像中不存在弹窗时,确定所述界面图像的场景类型为非弹窗类场景,所述场景类型包括非弹窗类场景。
在其中一个实施例中,所述根据所述界面对象的位置和面积确定所述界面图像是否存在弹窗,包括:
当任一个所述界面对象的位置和面积均满足预设要求时,确定所述界面图像存在弹窗;
当任一个所述界面对象的位置和面积至少一项不满足预设要求时,确定所述界面图像不存在弹窗。
在其中一个实施例中,在所述界面图像的场景类型为弹窗类场景时,基于所述场景类型,确定所述界面图像中的场景对象,包括:
从所述界面对象中获取所述界面图像的弹窗;
获取所述弹窗区域内的界面对象作为所述界面图像的场景对象。
在其中一个实施例中,在所述界面图像的场景类型为非弹窗类场景时,基于所述场景类型,确定所述界面图像中的场景对象,包括:
过滤所述界面对象,得到第一场景对象;
对所述界面图像进行字符识别,得到文字对象;
过滤所述文字对象,得到第二场景对象;
合并所述第一场景对象和所述第二场景对象,得到所述界面图像的场景对象。
在其中一个实施例中,遍历操作所述场景对象,获得操作结果,根据所述操作结果确定并标记所述场景对象中的操作对象,包括:
依次点击所述场景对象;
当各所述场景对象被点击时,所述界面图像均未发生场景变化,则确定所述场景不包括操作对象;
当各所述场景对象被点击时,所述界面图像发生场景变化,则将发生场景变化对应的场景对象标记为所述界面图像的操作对象;
获取发生场景变化时的新场景图像;
将所述新场景图像作为界面图像,并返回识别界面图像是否属于已有场景图像的步骤。
一种场景识别装置,所述装置包括:
提取模块,用于获取界面图像,并提取所述界面图像中的界面对象;
场景确定模块,用于根据所述界面对象,确定所述界面图像的场景类型;
对象确定模块,用于基于所述场景类型,确定所述界面图像中的场景对象,所述场景对象包括所述界面对象中属于场景对象的界面对象;
遍历模块,用于确定并标记所述场景对象中的标识对象,并遍历操作所述场景对象,获得操作结果,并根据所述操作结果确定并标记所述场景对象中的操作对象。
一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行上述任一项所述的场景识别方法的步骤。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行上述任一项所述的场景识别方法的步骤
上述场景识别方法、装置、计算机可读存储介质和计算机设备,从获取的界面图像中提取界面对象,从而得到界面图像对应的界面对象。根据界面对象确定界面图像的场景类型,并基于场景类型确定界面图像中的场景对象,从而保证根据不同的场景准确地得到界面对应的场景对象。进一步的,确定并标记场景对象中的标识对象,并遍历操作场景对象,根据得到的操作结果确定并标记场景对象中的操作对象,从而实现界面中标识对象和操作对象的自动标记。上述场景识别方法无需进行人工标注,能够自动提取界面的对象,提高了对象标记的效率,实现了场景识别的自动化,提高了场景识别的效率。
附图说明
图1为一个实施例中场景识别方法的应用环境图;
图2为一个实施例中场景识别方法的流程示意图;
图3为一个实施例中二值化图像的示意图;
图4为一个实施例中弹窗类场景图像的示意图;
图5为一个实施例中当界面图像的场景类型为弹窗类场景时,基于场景类型,确定界面图像中的场景对象步骤的流程示意图;
图6为一个实施例中弹窗类场景图像的场景对象的示意图;
图7为一个实施例中关闭控件模板的示意图;
图8为另一个实施例中当界面图像的场景类型为弹窗类场景时,基于场景类型,确定界面图像中的场景对象步骤的流程示意图;
图9为一个实施例中非弹窗类场景图像的场景对象的示意图;
图10a和图10b为另一个实施例中非弹窗类场景图像的场景对象的示意图;
图11为一个实施例中场景对象合并的示意图;
图12为一个实施例中识别确定界面图像是否属于已有场景图像步骤的流程示意图;
图13为另一个实施例中识别确定界面图像是否属于已有场景图像步骤的流程示意图;
图14为一个实施例中自动处理逻辑的示意图;
图15为一个实施例中场景识别装置的结构框图;
图16为一个实施例中计算机设备的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
图1为一个实施例中场景识别方法的应用环境图。参照图1,该场景识别方法应用于场景识别系统。该场景识别系统包括终端110和服务器120。终端110和服务器120通过网络连接。终端110具体可以是台式终端或移动终端,移动终端具体可以手机、平板电脑、笔记本电脑等中的至少一种。服务器120可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
其中,终端110可以是识别请求终端,用于向服务器120下达识别指令。具体地,服务器120接收终端110发送的识别请求,获取界面图像,并提取面图像中的界面对象;服务器120根据界面对象,确定界面图像的场景类型;服务器120基于场景类型,确定界面图像中的场景对象,场景对象包括界面对象中属于场景对象的界面对象;服务器120确定并标记场景对象中的标识对象,并遍历操作场景对象,获得操作结果,并根据操作结果确定并标记场景对象中的操作对象。
如图2所示,在一个实施例中,提供了一种场景识别方法。本实施例主要以该方法应用于上述图1中的服务器120来举例说明。参照图2,该场景识别方法具体包括如下步骤:
S202,获取界面图像,并提取界面图像中的界面对象。
其中,界面图像是指应用系统的应用界面图像,比如,应用程序可以是游戏软件,应用界面图像则可以是游戏软件的游戏场景图像等。游戏场景图像具体可以是终端截取的整个游戏画面,比如可以是从手机截取的整个游戏画面。界面对象是指界面图像上某一区域的图像,可以是标识对象、操作对象或者其他对象等。标识对象是指特殊的、有代表性的对象,可以用于识别区分界面图像。操作对象即为可操作的对象。比如,在界面图像为游戏场景时,标识对象即可以为用于识别该游戏场景与其他游戏场景的对象,操作对象即该游戏场景中可以点击操作的对象,当操作对象被点击时,游戏场景会发生变化,例如出现新的游戏场景等。
具体地,进行场景识别时,工作人员通过终端向服务器下达识别指令。当服务器接收到识别指令后,获取对应的界面图像。可以理解为,界面图像可以是随识别指令一并发送过来的图像。也可以是提前录制已存储在本地的图像,而服务器根据接收到的识别指令从存储界面图像的路径获取对应的界面图像。获取到界面图像后,从界面图像中提取界面图像中的界面对象。
在一个实施例中,提取界面图像中的界面对象,包括以下步骤:
S2021,将界面图像进行颜色空间的转换,得到转换后的界面图像。
其中,颜色空间也称为彩色模型、彩色空间或者彩色系统,它的用途是在某些标准下用通常可接受的方式对彩色加以说明。本质上,颜色空间是坐标系统和子空间的阐述,位于系统的每种颜色都有单个点标识。颜色空间从提出到现在已经有上百种,比如,常用的有RGB、CMY、HSV、HSL、HIS等。
具体地,获取到界面图像之后,调用图像处理工具对界面图像进行颜色空间的转换。图像处理工具包括但不限于OpenCV(Open Source Computer VisionLibrary,开源计算机视觉库)、MATLAB(Matrix Laboratory,矩阵实验室)等。也就是说,当进行颜色空间转换时,使用图像处理工具对应的颜色空间转换函数即可将界面图像转换为所需的颜色空间。由于进行识别的界面图像通常为终端截取的界面图像,即界面图像原本的颜色空间一般为RGB图像。传统也有直接将RGB图像先转灰度图后再二值化处理的方法,但是对于界面的场景识别来说,由于亮度更加符合视觉注意力,因此直接将RGB图像进行二值化处理得到的图像效果不好。因此,在本实施例中,将原本的RGB颜色空间转换为包括明亮度分量的颜色空间。以工具OpenCV以及转换的颜色空间为HSV为例,当将界面进行颜色空间的转换时,通过调用OpenCV的IMG_HSV函数,将界面从RGB颜色空间转换为HSV颜色空间。
S2022,从转换后的界面图像中提取亮度通道图像。
其中,由颜色空间的组成即可得知,一幅完整的图像通常由三个通道组成,而亮度通道图像则是颜色空间中用于表示色彩明亮度的分量构成的图像。例如,HSV中的V分量表示色彩的明亮度,HSL中的L分量同样表示色彩的明亮度。
具体地,界面图像转换亮度图像之后,从转换后的界面图像中提取亮度通道图像。同样,通过调用图像处理工具从界面图像中将亮度通道图像提取出来。以HSV颜色空间为例,HSV颜色空间中表示亮度的为V分量,即从HSV颜色空间的界面图像中提取V分量,V分量构成的图像为亮度通道图像。即调用用于提取V通道图像的函数对HSV颜色空间的界面图像进行图像的提取。比如,通过调用OpenCV的split函数即可提取出HSV三通道中任一通道的图像。
S2023,利用亮度阈值将亮度通道图像进行图像二值化,得到界面图像对应的二值化图像。
其中,图像的二值化就是对图像上的像素的灰度值进行赋值,使得整个图像呈现出明显的黑白效果。亮度阈值是指用于进行图像二值化的亮度的临界值,亮度阈值可根据实际应用场景情况进行设定,从视觉角度来说,亮度较高的值比较容易引起注意力。图像的像素值区为0-255,一般根据需求选择120-220之间。若以游戏系统为例,也就是说界面图像是属于游戏系统中的某一游戏场景图像,游戏场景图像中通常包括大量的弹窗且由于弹窗面积较大,因此在此场景下选择中间值即可,即亮度阈值可以优选150。而如果想识别更为明显的对象,比如弹窗区域内的对象,即可将亮度阈值设为更高,例如200。图像二值化则是通过亮度阈值将图像中的像素值进行赋值过程。即,大于等于亮度阈值的像素值赋值1,小于亮度阈值的赋值0,进行图像二值化处理后的图像为二值化图像。
具体地,将亮度通道图像中各像素的像素值与亮度阈值进行比较,大于等于亮度阈值的像素值设为1,小于亮度阈值的像素值设为0,从而实现二值化。比如,将150与亮度通道图像中各像素的像素值进行比较,当任一个像素的像素值大于等于150时,将该像素值赋值1,而当任一个像素值小于150时,将该像素值赋值0。如图3所示,图3所示即为二值化处理后的图像。其中,图像中黑色部分即为像素值为0的部分,白色部分即为像素值为1的部分。
S2024,对二值化图像进行形态学处理,提取形态学处理后的二值化图像内的轮廓。
其中,形态学即为数学形态学,是图像中应用最为广泛的技术之一,主要用于从图像中提取对表达和描绘区域形状有意义的图像分量,使得后续的识别工具能够抓住目标对象最为本质的形状特征,比如边界和连通区域等。图像的形态学处理包括腐蚀、膨胀、开闭运算等。二值化图像内的轮廓是指二值化图像中黑白边界的闭合曲线,参考图3,图像中白色区域的边框、以及白色区域内包含文字“确定”的黑色区域的边框,均为二值化图像中的轮廓。
具体地,二值化处理得到二值化图像后,对二值化图像进行形态学处理并提取形态学处理后的二值化图像内的轮廓。即可通过调用OpenCV或者MATLAB对二值化图像进行形态学处理。当二值化图像进行形态学处理后,通过使用OpneCV的findContours函数就可以提取出二值化图像内的轮廓。
S2025,计算轮廓的外接矩形,并过滤轮廓的外接矩形,得到界面图像的界面对象。
其中,最小外接矩形又称为最小边界矩形,是指以二维坐标表示若干二维形状的最大范围,例如点、直线、多边形等。即以给定的二维形状各顶点中的最大横坐标、最小横坐标、最大纵坐标、最小纵坐标定下边界的矩形。
具体地,当提取出轮廓之后,再对每一个轮廓使用OpneCV的boundingRect函数就可以计算出轮廓的最小外接矩形。由于场景中合适的界面对象具有一定的尺寸,因为界面对象尺寸太小可能会无法注意到,不满足视觉注意力需要。因此,当得到每个轮廓的最小外接矩形之后,根据预设的过滤尺寸对最小外接矩形进行过滤,过滤后得到的轮廓即为界面图像的界面对象。过滤尺寸可根据界面图像实际所属的应用系统的情况进行预设,若本实施例中以游戏系统为例,过滤尺寸优先预设为400像素,即高宽均为20像素。低于该过滤尺寸的最小外接矩形都过滤掉,剩余的最小外接矩形即为界面对象。在本实施例中,通过对界面图像进行图像处理,从而确定界面图像中包括的界面对象。
S204,根据界面对象,确定界面图像的场景类型。
其中,场景类型包括弹窗类场景和非弹窗类场景。弹窗类场景即为包括弹窗的界面图像,非弹窗类场景即为不包括弹窗的界面图像。
具体地,通过界面对象的位置和面积确定界面对象是否属于弹窗,当界面对象属于弹窗时,则表示包括该界面对象对应的界面图像包括弹窗,属于弹窗类场景。否则,属于非弹窗类场景。通过确定不同的场景类型,便于后续选择合适方法获取场景对象。
在一个实施例中,根据界面对象确定界面图像的场景类型,包括以下步骤:
S2041,根据界面对象的位置和面积确定界面图像是否存在弹窗。
其中,位置是指界面对象在界面图像中的坐标位置,面积是指界面对象在界面图像中所占区域的面积。若在游戏应用场景中,弹窗通常需要满足两点要求,一是弹窗往往不能太小,因此,弹窗区域的面积大小应当占整个界面图像面积的10%-90%。二是弹窗的位置通常位于界面图像的中间,而考虑到避免设备的不同而导致弹窗不完全居中,因此,弹窗区域的中心位置和界面图像的中心位置的坐标不会相差超过50像素。
在一个实施例中,根据界面对象的位置和面积确定界面图像是否存在弹窗,具体包括:当任一个界面对象的位置和面积均满足预设要求时,确定界面图像存在弹窗;当任一个界面对象的位置和面积至少一项不满足预设要求时,确定界面图像不存在弹窗。
其中,预设要求是指上述两点要求,即界面对象的中心位置和界面图像的中心位置的坐标应当不会相差超过50像素。而面积需满足的预设条件即为界面对象的区域面积应当占整个界面图像面积的10%-90%。
具体地,当提取得到界面图像之后,获取界面图像的位置和面积,分别判断界面对象的位置和面积是否满足上述两点要求。只有当界面对象的位置与对应界面图像的中心位置的坐标差小于等于50像素,以及界面对象的面积处于10%-90%之间,则确定同时满足两点要求的界面对象为弹窗,而对应的界面图像中存在弹窗。否则,若界面图像中所有的界面对象均不满足上述两点要求的,则确定界面对象中没有弹窗,对应的界面图像不存在弹窗。
S2042,当界面图像中存在弹窗时,确定界面图像的场景类型为弹窗类场景,场景类型包括弹窗类场景。
具体地,当确定界面图像中存在弹窗时,即可确定该界面图像的场景类型为弹窗类场景。如图4所示,提供一种弹窗类场景图像,参考图4,其中,白色闭合虚线区域为弹窗区域。
S2043,当界面图像中不存在弹窗时,确定界面图像的场景类型为非弹窗类场景,场景类型包括非弹窗类场景。
具体地,当确定界面图像中不存在弹窗时,即可确定界面图像为非弹窗类场景。在本实施例中,根据游戏应用场景领域中弹窗的特性识别界面是否包括弹窗,保证弹窗识别的精度。
S206,基于场景类型,确定界面图像中的场景对象。
其中,不同场景类型的界面图像,采用不同的策略进行场景对象的提取。场景对象属于界面对象,包括标识对象和操作对象。
在一个实施例中,如图5所示,当界面图像的场景类型为弹窗类场景时,基于场景类型,确定界面图像中的场景对象,包括以下步骤:
S502,从界面对象中获取界面图像的弹窗。
具体地,界面图像是否为弹窗类场景,取决于其包括的界面对象是否为弹窗。当界面对象为弹窗时,该界面对象即为界面图像的弹窗。从界面对象中获取为弹窗的界面对象,获取的界面对象即为界面图像的弹窗。
S504,获取弹窗区域内的界面对象作为界面图像的场景对象。
具体地,当确定界面图像为弹窗类场景且获取到对应的弹窗后,该弹窗区域内的界面对象即为界面图像的场景对象。
如图6所示,提供一种弹窗类场景的场景对象示意图,参考图6,白色闭合虚线区域为弹窗区域,而虚线闭合区域内中的黑色闭合虚线,即确定控件区域为弹窗内的界面对象,即该确定控件为界面对象的场景对象。并且,由于弹窗上通常设有关闭控件,且关闭控件通常设于弹窗右上角100*100的区域。即,当界面图像为弹窗类场景时,不仅将弹窗区域内的界面对象作为场景对象,同样获取预设的关闭控件模板,如图7所示,提供一种关闭控件模板的示意图。当获取到关闭控件模板之后,利用多尺度模板匹配算法将图7所示的关闭控件模板在弹窗右上角100*100的区域进行匹配,识别弹窗是否包括关闭控件。关闭控件同样为界面图像的场景对象,以及关闭控件是可以操作的返回对象,即关闭控件属于可操作的操作对象,而当识别出弹窗包括关闭控件之后,即可先对关闭控件进行点击操作。在本实施例中,根据弹窗类场景的特性进行场景对象的提取,保证不同场景类型中场景对象提取的准确性。
在一个实施例中,如图8所示,当界面图像的场景类型为非弹窗类场景时,基于场景类型,确定界面图像中的场景对象,包括以下步骤:
S802,过滤界面对象,得到第一场景对象。
其中,第一场景对象为过滤后的界面对象,过滤即为剔除不满足要求的界面对象,由于非弹窗类场景往往亮度变化小,且场景对象多,因此需要对界面对象进行轮廓过滤从而得到准确的场景对象。
具体地,获取预设的第一过滤条件,根据第一过滤条件对界面对象进行过滤,从而得到第一场景对象。其中,第一过滤条件包括:区域宽和区域高小于20像素的删除、区域长边和短边的比例大于5的删除、大区域中完全包含小区域的,只保留小区域、以及两个区域相交且没有被完全包含的则删除。也就是说,根据第一过滤条件中的条件对界面对象进行剔除,剩余的界面对象即为第一场景对象。
如图9所示,提供一种非弹窗类场景的场景对象示意图。参考图9,白色闭合虚线区域内即为过滤后得到的第一场景对象。
S804,对界面图像进行字符识别,得到文字对象。
其中,字符识别是指光学字符识别(Optical Character Recognition,OCR),是指采用光学的方式将纸质文档中的文字转换成为黑白点阵的图像文件,并通过识别软件将图像中的文字识别出来。
具体地,在本实施例中,利用OCR对界面图像进行字符识别,提取界面图像中所有的文字区域,得到包括文字的文字对象。
S806,过滤文字对象,得到第二场景对象。
其中,第二场景对象即为过滤后的文字对象,过滤即为剔除不满足要求的文字对象,剩余的文字对象即为第二场景对象。
具体地,获取预设的第二过滤条件,根据第二过滤条件对文字对象进行过滤,从而得到第二场景对象。其中,第二过滤条件包括:由于长文字通常为说明性和公告等内容,即文字长度大于8的删除、区域宽或区域高小于20像素的删除、区域长边和短边的比例大于5的删除、删除包含特殊文字的文字对象、以及计算文字对象对应图像区域的亮度均值,根据亮度阈值以及亮度均值进行过滤。其中,特殊文字是指特定的文字,由于包括特定的文字的区域通常是不可操作的,因此通过逐一判断文字对象中的文字是否为特殊文字,当确定文字对象包括特殊文字时,进行删除。特殊文字包括但不下限于“未、不可、没有、无、进行中”等等,可以理解为,特殊文字可根据实际应用情况设定。
而通过文字对象区域对应图像区域的亮度均值,根据亮度阈值以及亮度均值进行过滤即为,计算文字对象对应图像区域HSV颜色空间的亮度V的亮度均值,如果该图像区域的亮度均值小于亮度阈值150,则进一步判断是否有其他文字对象对应的图像区域与该文字对象对应的图像区域属于同行或者同列。通过比较每个文字对象的中心位置坐标(x,y),如果坐标x相同,则表示同列,坐标y相同则表示同行。在本实施例中,为避免一定误差,允许偏差5个像素。即坐标x之间差值的绝对值小于等于5,则表示同列,而坐标y之间差值的绝对值小于等于5,则表示同行。当根据中心位置坐标确定当前文字对象没有同行或者同列文字对象时,则将当前文字对象删除。而当前文字对象有同行或者同列文字对象以及所有同行或者同列文字对象均小于亮度阈值150时,则将当前文字对象以及同行同列的文字对象删除。反之,只要至少一个同行或者同列的文字对象所对应的图像区域的亮度均值大于亮度阈值150,则所有同行或者同列的文字对象均保留。也就是说,根据第二过滤条件中的条件对文字对象进行剔除,剩余的文字对象即为第二场景对象。
如图10a和10b所示,提供一种非弹窗类场景的场景对象示意图。参考图10a,其中,白色闭合虚线区域内表示文字识别得到的文字对象,参考图10b,其中,白色闭合虚线区域内即为过滤文字对象后得到的第二场景对象。
S808,合并第一场景对象和第二场景对象,得到界面图像的场景对象。
具体地,将第一场景对象和第二场景对象合并,共同构成非弹窗类场景的场景对象。如图11所示,提供一种场景对象合并的示意图,参考图11,将图9的第一场景对象和图10b的第二场景对象进行合并,得到图11所示的场景对象。在本实施例中,根据非弹窗类场景的特性进行场景对象的提取,保证不同场景类型中场景对象提取的准确性。
S208,确定并标记场景对象中的标识对象,并遍历操作场景对象,获得操作结果,并根据操作结果确定并标记场景对象中的操作对象。
其中,由于场景对象属于界面图像,即所有场景对象均可用于识别该界面图像的所属场景,即确定所有场景对象为标识对象并进行标记。而在本实施例中,由于无法得知哪些场景对象是否为可操作的操作对象,通过遍历操作,即依次点击所有的场景对象进行操作对象的确定。当点击场景对象,确定其可操作时,即确定可操作的场景对象为操作对象,并标记为该场景对象为界面图像的操作对象。
具体地,当得到场景对象后,为所有场景对象添标识标记参数,并将标识标记参数初始化赋值1,用于标记该场景对象为界面图像的标识对象。假设标识标记参数为id_obj,即id_obj=1。同时,为场景对象添加操作标记参数和操作参数,操作标记参数用于标记该场景对象是否为操作对象,操作对象用于标记该场景对象是否被操作过。比如,操作标记参数为opt_obj、操作参数为is_done,首先对初始化opt_obj=0,is_done=0。当场景对象被点击时,将其对应的操作参数is_done记为1,即is_done=1。以及,当场景对象被点击时,确定点击有效时,同样将操作标记参数修改为opt_obj=1。
在一个实施例中,遍历操作场景对象,获得操作结果,并根据操作结果确定并标记场景对象中的操作对象,具体包括步骤:依次点击场景对象;当各场景对象被点击时,界面图像均未发生场景变化,则确定界面图像不包括操作对象。
具体地,依次对场景对象进行点击,一旦点击则将场景对象对应的操作参数is_done记为1,即is_done=1,则表示该场景对象已被点击,待下一次遍历到该界面图像时,即可确定该场景对象已被点击,不用再进行点击。而当点击之后,当前场景发生了变化,即确定点击有效,将操作标记参数修改为opt_obj=1。当点击场景对象之后,在点击之后的场景图像中匹配不到原来的标识对象时,即可确定场景发生了变化。比如,当点击界面图像中的某一场景对象之后,将界面图像的标识对象与点击之后显示的场景图像进行图像匹配。当点击之后显示的场景图像能够匹配上界面图像所有的标识对象,则确定场景没有发生变化。而一旦点击之后显示的场景图像存在任一个界面图像的标识对象无法匹配,则确定场景发生了变化。而当场景对象被点击之后,没有发生场景变换,则点击下一个场景对象。若所有的场景对象均未发生场景变化,则确定界面图像中不存在操作对象,所有操作标记参数均为opt_obj=0。
进一步的,当确定场景发生变化之后,即出现了新场景图像之后,判断新场景图像与界面图像对应的上一场景图像是否为同一个场景。如果是,则将点击的场景对象标记为界面图像的返回对象,添加返回标记参数is_back_obj=1。比如,对界面图像中的场景对象1点击,确定场景发生变化从而出现了新场景图像,获取界面图像的上一场景图像。将新场景图像与上一场景图像进行图像匹配,从而确定是否为同一个场景。当为同一个场景时,即可确定界面图像中的场景对象1为界面图像的返回对象,即为场景对象1再添加一个返回标记参数is_back_obj=1。在本实施例中,通过遍历点击场景对象,从而自动实现操作对象的标记。其中,图像匹配包括模板匹配和特征点匹配。即,将新场景图像与上一个场景图像进行图像匹配时,可以先将新场景图像与上一个场景图像进行模板匹配。当模板匹配得到的匹配值不满足预设匹配值,即匹配值小于预设匹配值时,进一步利用新场景图像的标识对象以及上一个场景图像的标识对象进行特征点匹配。
在一个实施例中,遍历操作场景对象,获得操作结果,并根据操作结果确定并标记场景对象中的操作对象,还包括步骤:当各场景对象被点击时,界面图像发生场景变化,则将场景变化对应的场景对象标记为界面图像的操作对象;获取发生场景变化时的新场景图像;将新场景图像作为界面图像,并返回识别界面图像是否属于已有场景图像的步骤。
具体地,一旦确定点击场景对象之后,场景发生了变化,则将发生变化得到的新场景图像作为界面图像,并返回识别界面图像是否属于已有场景图像的步骤。即,进一步进行图像匹配识别新场景图像是否为已有场景图像,若新场景图像不是已有场景图像,则说明是一个全新的场景图像,即可进入对新场景图像进行自动标记的流程。而当新场景图像为已有场景图像中的脚本场景图像,则获取脚本场景图像的标识对象和操作对象作为新场景图像的标识对象和操作对象。其中,已有场景图像包括脚本场景图像和自动标记场景图像,而当新场景图像为已有场景图像中的自动标记场景图像时,则说明该新场景图像之前进行过自动标记流程。同样直接将自动标记场景图像之前标记过的标识对象和操作对象作为新场景图像的标识对象和操作对象。但是,若根据自动标记场景图像的场景对象的操作参数is_done确定自动标记场景图像中存在没有点击过的场景对象,则对没有点击过的场景图像进行遍历点击,确定未被点击的场景对象中是否还存在操作对象。
在一个实施例中,确定并标记场景对象中的标识对象,并遍历操作场景对象,获得操作结果,并根据操作结果确定并标记场景对象中的操作对象之后,还包括以下步骤:确定标识对象的面积;根据标识对象的面积对标识对象进行排序后,将界面图像以及对应的标识对象和操作对象保存至自动标记场景图像中。
具体地,由于使用大面积的标识对象进行场景区分会比较明确,所以将所有场景对象标记为标识对象之后,通过标识对象的面积为标识对象进行面积从大到小的排序。当识别场景与其他场景图像进行区分时,优先选面积最大的3个标识对象进行识别区分。当3个标识对象无法与其他场景进行区分时,可以依次根据排序添加标识对象。然后,当界面图像的标识对象和操作对象均被自动标记完成之后,将其保存至自动标记场景图像中。当下一次识别该界面图像时,即可直接获取对应的标识对象和操作对象进行识别。在本实施例中,提取到界面图像的场景对象之后,将场景对象标记为标识对象,从而实现标识对象的自动标记,无需手动进行标记。并且,将界面对象以及对应的标识对象和操作对象进行存储,便于简化后续识别工作流程。
上述场景识别方法、装置、计算机可读存储介质和计算机设备,从获取的界面图像中提取界面对象,从而得到界面图像对应的界面对象。根据界面对象确定界面图像的场景类型,并基于场景类型确定界面图像中的场景对象,从而保证根据不同的场景准确地得到界面对应的场景对象。进一步的,确定并标记场景对象中的标识对象,并遍历操作场景对象,根据得到的操作结果确定并标记场景对象中的操作对象,从而实现界面中标识对象和操作对象的自动标记。上述场景识别方法无需进行人工标注,能够自动提取界面的对象,提高了对象标记的效率,实现了场景识别的自动化,提高了场景识别的效率。
在一个实施例中,获取界面图像之后,提取界面图像中的界面对象之前,还包括:识别界面图像是否属于已有场景图像,当识别确定界面图像不属于已有场景图像时,进入提取界面图像中的界面对象的步骤。
其中,已有场景图像包括脚本场景图像和自动标记场景图像,脚本场景图像为人工预先录制的已经人工标记好标识对象和操作对象的场景图像,自动标记场景图像为通过自动标记流程已经自动标记好标识对象和操作对象的场景图像。在本实施例中,通过判断界面图像是否为已有场景图像,当界面图像为已有场景图像时,即可直接获取对应的已有场景图像的标记对象和操作对象,无需进入自动标记流程,节约识别时间,提高效率。
在一个实施例中,如图12所示,识别界面图像是否属于已有场景图像,包括以下步骤:
S1202,将界面图像与已有场景图像进行模板匹配,得到匹配值。
其中,模板匹配是一种最原始、最基本的模式识别方法,是图像处理中最基本最常用的匹配方法。匹配值则是模板匹配得到的数值,用于衡量图像之间的匹配程度。
具体地,获取已有场景图像,将界面图像与已有场景图像进行模板匹配,得到对应的匹配值。即,通过模板匹配算法,将界面图像与已有场景图像进行模板匹配,得到匹配值。根据匹配值确定界面图像是否与已有场景图像相匹配,若相匹配,则确定界面图像属于已有场景图像,否则,确定界面图像不属于已有场景图像。
S1204,当界面图像与已有场景图像的匹配值不满足预设匹配值时,获取已有场景图像的标识对象。
其中,标识对象是指特殊的、有代表性的对象,可以用于识别区分界面图像。已有场景图像包括脚本场景图像和自动标记场景图像,脚本场景图像和自动标记场景图像均有对应的标识对象。脚本场景图像的标识对象为人工预先标记好,而自动标记场景图像的标识对象则是,在此之前通过自动标记流程标记好的。预设匹配值则是预先设置的阈值,用于衡量得到的匹配值是否能够表示界面图像与已有场景图像相匹配的值。匹配值可根据实际需求情况进行设定,在本实施例中,预设匹配值优选90%。
具体地,将根据模板匹配算法进行模板匹配得到的匹配值与预设匹配值进行比较。当匹配值大于等于预设匹配值时,比如,匹配值大于等于90%时,确定匹配值满足预设匹配值,即表示已有场景图像中有与界面图像相匹配的已有场景图像。而当匹配值小于预设匹配值,比如,匹配值小于90%时,则确定匹配值不满足预设匹配值,即表示已有场景图像中不存在与界面图像相匹配的已有场景图像。当确定已有场景图像中不存在与界面图像相匹配的已有场景图像之后,获取已有场景图像的标识对象。
S1206,在界面图像不包括标识对象时,将已有场景图像的标识对象与界面图像进行图像匹配。
其中,图像匹配包括模板匹配和特征点匹配,特征点匹配是指从图像中提取的特征作为共轭实体,而将所提取特征的特征属性或描述参数作为匹配实体,通过计算匹配实体之间的相似性测度以实现共轭实体配准的图像匹配方法。
具体地,界面图像可能包括标识对象,也可能不包括标识对象。也就是说,若当前的界面图像为全新未经过处理的图像,即不属于预先录制好的脚本场景图像,以及不属于经过自动标记流程的自动标记场景图像,则表示界面图像没有经过人工标记,也没有经过自动标记,即界面图像为不包括标识对象的场景图像。而若当前界面图像为进行自动标记过的图像时,界面图像可能已经确定了对应的标识对象。进一步,当确定界面图像为不包括标识对象时,将已有场景图像对应的标识对象与界面图像进行图像匹配。即,将标识对象与界面图像进行模板匹配,或者将标识对象与界面图像进行特征点匹配。或者,首先将标识对象与界面图像进行模板匹配,当模板匹配得到的匹配值不满足预设匹配值时,进一步将标识对象与界面图像进行特征点匹配。在本实施例中,当通过界面图像与已有场景图像进行快速的模板匹配而没有匹配到对应的图像时,进一步通过标识对象进行图像匹配,从而进行细粒度的匹配,提高匹配的准确率。其中,特征点匹配通过特征点匹配算法将已有场景图像的标识对象与界面图像进行匹配,特征点匹配算法包括但不限于SIFT(Scale-invariantfeature transform,尺度不变特征变换)算法、SURF(Speeded Up Robust Features,加速稳健特征)算法、ORB(Oriented FAST and Rotated BRIEF,快速定向和快速旋转)算法、Harris角点提取算法。
S1208,当已有场景图像的标识对象中存在至少一个标识对象与界面图像不匹配时,确定界面图像不属于已有场景图像。
具体地,场景图像标识对象的数量一般不止一个,一般情况下,为了准确的区分每张场景图像,用于区分的标识对象会根据面积进行排序,通常首先根据面积最大的前三个标识对象进行匹配。在当前数量的标识对象无法区分时,则根据排好的顺序依次增加标识对象,直到完全可以确定是否相匹配为止。可以理解为,标识对象的数量可根据实际需求进行限定。而当根据标识对象进行图像匹配时,只要已有场景图像中任意一个标识对象与界面图像匹配不上,则确定已有场景图像与界面图像不匹配。当所有已有场景图像均与界面图像不匹配时,确定界面图像不属于已有场景图像。在本实施例中,首先通过全图像之间的模板匹配,而模板匹配得到的匹配值不满足要求时,进一步进行图像与标识对象的匹配确定是否相匹配,在保证匹配速度的前提下还能保证匹配的精度。
在一个实施例中,如图13所示,识别界面图像是否属于已有场景图像,还包括以下步骤:
S1210,在界面图像包括标识对象时,将已有场景图像的标识对象与界面图像的标识对象进行图像匹配。
S1212,当已有场景图像的标识对象中存在至少一个标识对象与界面图像的标识对象均不匹配时,确定界面图像不属于已有场景图像。
具体地,当界面图像为包括标识对象时,则直接获取已有场景图像的标识对象,以及获取界面图像的标识对象。将已有场景图像的标识对象与界面图像的标识对象进行图像匹配,即,标识对象与标识对象之间可以进行模板匹配或者特征点匹配。或者,标识对象与标识对象之间首先进行模板匹配,当模板匹配得到的匹配值不满足预设匹配值时,进一步进行特征点匹配。特征点匹配同样利用特征点匹配算法进行匹配。而只有当已有场景图像的标识对象在界面图像的标识对象中均有对应匹配的标识对象时,比如,已有场景图像的标识对象有3个,界面图像的标识对象同样为3个,且已有场景图像的3个标识对象与界面图像的3个标识对象一一对应且相匹配,则确定存在与界面图像的已有场景图像,即界面图像属于已有场景图像。而若已有场景图像的3个标识对象中任意一个标识对象在界面图像的3个标识对象中匹配不到对应的标识对象。或者,已有场景图像的标识对象的数量和界面图像的标识对象的数量不相等,即表示存在不匹配的标识对象,则确定不存在与界面图像的已有场景图像,即界面图像不属于已有场景图像。在本实施例中,当界面图像和已有场景图像均包括对应的标识对象时,直接进行标识对象的匹配,从而加快匹配速度,提高匹配和识别的效率。
在一个实施例中,通过将场景识别方法与自动化测试框架进行结合,实现一种场景测试方法。以及,在本实施例中,通过结合自动化测试框架对场景识别方法进行详细解释说明,具体包括:
在进行场景测试之前,将场景识别模块引用自动化测试框架中,让自动化测试框架具备自动标记和识别游戏场景的功能。并且,提前录制操作复杂的场景,比如游戏对局等,而其他的简单游戏场景可以使用自动标记功能和识别游戏场景功能,从而将录制的场景生成脚本场景图像。其中,脚本场景图像中的标识对象和操作对象预先人工进行标记。在自动化测试框架具备自动标记和识别游戏场景功能以及提前将复杂的场景录制完成之后,测试人员通过终端向自动化测试框架下达测试指令。
当自动化测试框架接收到测试指令之后,获取对应的待测试界面图像。首先需要识别待测试界面图像,判断待测试界面图像是否需要自动标记和识别处理,即识别待测试界面图像是否属于已录制好的脚本中的脚本场景图像。比如,通过特征点匹配算法,逐一识别脚本场景图像中的标识对象与待测试界面图像进行匹配,看待测试界面图像属于脚本场景图像中的哪一个场景图像。如果没有在脚本场景图像中识别到对应的场景,则进入自动处理。如图14所示,假设脚本中录制了2个脚本场景图像,而没有识别到当前场景,即待测试界面图像属于其中任一个脚本场景图像,则进入自动处理。
当进入自动处理后,由于本实施例中将自动标记的场景大致分为弹窗类场景和非弹窗类场景两类,以及不同的场景类型采用不同的策略进行处理,并且,由于弹窗类的操作相比较简单一些,因此需要先识别待测试界面图像中是否包含弹窗。具体为,首先将待测试界面图像从原本的RGB颜色空间转换到HSV颜色空间,获取亮度V通道图像,使用亮度阈值T=150对V通道图像进行二值化处理,得到二值化图像。形态学处理二值化图像之后,提取二值化图像内的轮廓,然后计算轮廓的外接矩形,对结果进行过滤。由于游戏场景中合适的界面对象其具有一定的尺寸,太小会无法注意到,从而需要满足视觉注意力需要。因此本实施例中设置界面对象对应的图像区域大小为400像素,即宽高均为20像素,低于该值的区域过滤掉,得到结果为最终提取的界面对象。
提取到界面对象之后,进一步判断提取到的界面对象是否存在弹窗。即需要满足两点,第一,弹窗往往不会太小,因此界面对象对应的图像区域的面积大小占整个待测试界面图像面积的10%-90%。第二,弹窗位置通常位于场景的中间,因此界面对象对应的图像区域的中心位置和待测试界面图像的中心位置的坐标相差不会超过50像素,主要是考虑到测试中某些设备会出现导航边框导致弹窗不完全居中,根据以上条件判断确定界面对象中是否存在弹窗。存在弹窗则表示待测试界面图像为弹窗类场景,否则,为非弹窗类场景。当待测试界面图像为弹窗类场景时,由于弹窗类的场景处理简单,界面对象通常位于弹窗内,而且一般分为两类,“确定”、“取消”等控件,右上角关闭控件,因此当待测试界面图像为弹窗类场景时,进行如下操作来提取弹窗类场景的场景对象:
1、保留弹窗内的界面对象,如图6所示的“确定”控件区域。
2、在弹窗右上角100*100的区域,使用如图7所示的关闭按钮模版,进行多尺度模版匹配算法,识别是否包括关闭控件。
而当待测试界面图像为非弹窗类场景时,采用两种方法结合的方式进行场景对象的提取,具体如下:
1、由于非弹窗类场景往往亮度变化小,对象多,因此提取到的界面对象进行过滤筛选,过滤条件如下:区域宽或者高小于20像素的删除、区域长边和短边的比例大于5的删除、大区域中完全包含小区域的,只保留小区域、以及两个区域相交且没有被完全包含的则删除,剩余的界面对象即为第一场景对象。
2、使用OCR方法提取待测试界面图像中所有包括文字的文字对象,然后对文字对象进行过滤筛选,这种方法可以弥补上述高亮区域轮廓提取方法,过滤条件如下:文字长度大于8的删除,因为长文字的通常为说明性和公告等内容、区域宽或者高小于20像素的删除、区域长边和短边的比例大于5的删除、计算区域HSV颜色空间亮度V的均值,如果区域亮度V<150,判断是否有区域和该区域同行或者同列,根据区域中心判断,偏差为5像素,如果没有同排列,则删除;如果有同排列,但是所有同排列区域亮度均小于150,则删除;反之,至少有一个同排列的区域亮度大于阈值,则所有同排列的区域,均保留。以及如果文字中包含“未、不可、没有、无、进行中和已结束”等特征字符,则这些文字对象的区域是不可操作的,需要删除,剩余的文字对象即为第二场景对象。最后,将第一场景对象和第二场景对象进行合并得到非弹窗类场景的场景对象。
当得到场景对象之后,每一个场景对象添加两个标记参数id_obj和opt_obj,分别表示标识对象和操作对象。首先将所有场景对象初始化为标识对象,即id_obj=1,opt_obj=0,并且使用is_done=0标记场景对象是否操作过。如果标识对象数目大于3,则按照标识对象的区域面积排序,使用面积较大的3个对象优先用于标记当前待测试界面图像,用于与其他场景进行区分。如果使用3个对象无法区分场景,可以根据面积依次再添加标识对象。进一步的,点击该待测试界面图像场景对象的中心位置,并且将当前场景对象标记为已遍历,则is_done=1。然后检查操作是否有效,判断依据是对象消失或者场景发生变化。如果操作有效,则将该对象的操作标记参数修改为opt_obj=1,并且判断操作后的场景和当前待测试界面图像的上一个场景是否为同一个场景,如果是,则将该操作对象标记为该测试界面图像的返回对象,记为is_back_obj=1。如果操作无效,则按照同样的方法操作下一个is_done=0,即未遍历的对象,直至操作有效,场景发生变化。
若操作有效,则在操作有效后识别新场景图像,识别方法包括两个步骤:首先对整个场景图进行模板匹配,相似度大于90%,则匹配成功,如果没有匹配到对应的场景或者匹配到多个,则根据标识对象,将新场景图像与已有场景图像进行细粒度的特征点匹配,根据场景的识别结果,分为三种处理方法:其一,如果识别新场景图像为脚本场景图像,则直接获取脚本场景图像执行相应点击操作。其二,如果新场景图像为自动标记过的自动标记场景图像,说明当前新场景图像之前操作过,只需要获取新场景图像未操作的场景对象,按照上述方法继续操作未遍历过的场景对象。如果所有场景对象均已经遍历完,则操作该新场景图像中已标记的返回对象,防止程序中断,如果该新场景图像没有返回对象,则重启整个识别游戏场景流程,重新开始新一轮的识别。重新开始新一轮的识别可以理解为从已遍历过的待测试界面图像中选择一张待测试界面图像作为新一轮识别的入口图像,入口图像即为新一轮识别的第一张图像。而由于游戏的不同设计,入口图像具体是哪一张图像由被测试的游戏来决定。其三,如果新场景图像识别不到,则说明新场景图像是一个全新的场景,则按照自动处理逻辑,提取新场景图像的界面图像开始,直至标记完新场景图像的标识对象,并且操作了新场景图像所有场景对象为止。在传统的测试方法中,当测试流程遇到未知场景或者无法识别的场景时,会结束测试流程直到人工将未知场景标记后再重启测试流程。而本实施例中,当待测试界面图像不属于已有场景图像时,进入自动标记流程,即进入提取待测试界面的界面对象的步骤。从而保证遇到未知场景或者无法识别的场景进入自动标记流程,无需中途结束测试流程,实现测试全自动化,提高测试的效率。
图2、图5、图8、图12、图13为一个实施例中场景识别方法的流程示意图。应该理解的是,虽然图2、图5、图8、图12、图13的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2、图5、图8、图12、图13中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图15所示,提供一种场景识别装置,参考图15,场景识别装置包括:提取模块1502、场景确定模块1504、对象确定模块1506和遍历模块1508,具体包括:
提取模块1502,用于获取界面图像,并提取界面图像中的界面对象;
场景确定模块1504,用于根据界面对象,确定界面图像的场景类型;
对象确定模块1506,用于基于场景类型,确定界面图像中的场景对象,场景对象包括界面对象中属于场景对象的界面对象;
遍历模块1508,用于确定并标记场景对象中的标识对象,并遍历操作场景对象,获得操作结果,并根据操作结果确定并标记场景对象中的操作对象。
在一个实施例中,场景识别装置还包括保存模块,用于确定标识对象的面积;根据标识对象的面积对标识对象进行排序后,将界面图像以及对应的标识对象和操作对象保存至自动标记场景图像中。
在一个实施例中,场景识别装置还包括识别模块,用于识别界面图像是否属于已有场景图像;当识别确定界面图像不属于已有场景图像时,进入提取所述界面图像中的界面对象的步骤。
在一个实施例中,识别模块还用于将界面图像与已有场景图像进行模板匹配,得到匹配值;当界面图像与已有场景图像的匹配值不满足预设匹配值时,获取已有场景图像的标识对象;在界面图像不包括标识对象时,将已有场景图像的标识对象与界面图像进行图像匹配;当已有场景图像的标识对象中存在至少一个标识对象与界面图像不匹配时,确定界面图像不属于已有场景图像。
在一个实施例中,识别模块还用于在界面包括标识对象时,将已有场景图像的标识对象与界面图像的标识对象进行图像匹配;当已有场景图像的标识对象中存在至少一个标识对象与界面图像的标识对象均不匹配时,确定界面图像不属于已有场景图像。
在一个实施例中,遍历模块1508还用于在在识别确定界面图像属于已有场景图像时,获取已有场景图像的标记对象和操作对象;将已有场景图像的标记对象和操作对象作为界面图像的标识对象和操作对象;已有场景图像包括脚本场景图像和自动标记场景图像。
在一个实施例中,提取模块1502还用于将界面图像进行颜色空间的转换,得到转换后的界面图像;从转换后的界面图像中提取亮度通道图像;利用亮度阈值将亮度通道图像进行图像二值化,得到界面图像对应的二值化图像;对二值化图像进行形态学处理,提取形态学处理后的二值化图像内的轮廓;计算轮廓的外接矩形,并过滤轮廓的外接矩形,得到界面图像的界面对象。
在一个实施例中,场景确定模块1504还用于根据界面对象的位置和面积确定界面图像是否存在弹窗;当界面图像中存在弹窗时,确定界面图像的场景类型为弹窗类场景,场景类型包括弹窗类场景;当界面图像中不存在弹窗时,确定界面图像的场景类型为非弹窗类场景,场景类型包括非弹窗类场景。
在一个实施例中,场景确定模块1504还用于当任一个界面对象的位置和面积均满足预设要求时,确定界面图像存在弹窗;当任一个界面对象的位置和面积至少一项不满足预设要求时,确定界面图像不存在弹窗。
在一个实施例中,对象确定模块1506还用于从界面对象中获取界面图像的弹窗;获取弹窗区域内的界面对象作为界面图像的场景对象。
在一个实施例中,对象确定模块1506还用于过滤界面对象,得到第一场景对象;对界面图像进行字符识别,得到文字对象;过滤文字对象,得到第二场景对象;合并第一场景对象和第二场景对象,得到界面图像的场景对象。
在一个实施例中,遍历模块1508还用于依次点击场景对象;当各场景对象被点击时,界面图像均未发生场景变化,则确定界面图像不包括操作对象;当各场景对象被点击时,界面图像发生场景变化,则将发生场景变化对应的场景对象标记为界面图像的操作对象;获取发生场景变化时的新场景图像;将新场景图像作为界面图像,并返回识别界面图像是否属于已有场景图像的步骤。
图16示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是图1中的服务器120。如图16所示,该计算机设备包括该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、输入装置和显示屏。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现场景识别方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行场景识别方法。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图16中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,本申请提供的场景识别装置可以实现为一种计算机程序的形式,计算机程序可在如图16所示的计算机设备上运行。计算机设备的存储器中可存储组成该场景识别装置的各个程序模块,比如,图15所示的提取模块1502、场景确定模块1504、对象确定模块1506和遍历模块1508。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的场景识别方法中的步骤。例如,图16所示的计算机设备可以通过如图15所示的场景识别装置中的提取模块1502执行步骤S202,获取界面图像,并提取界面图像中的界面对象。计算机设备可通过场景确定模块1504执行步骤S204,根据界面对象,确定界面图像的场景类型。计算机设备可通过对象确定模块1506执行步骤S206,基于场景类型,确定界面图像中的场景对象。计算机设备可通过遍历模块1508执行步骤S208,确定并标记场景对象中的标识对象,并遍历操作场景对象,获得操作结果,并根据操作结果确定并标记场景对象中的操作对象。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述场景识别方法的步骤。此处场景识别方法的步骤可以是上述各个实施例的场景识别方法中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述场景识别方法的步骤。此处场景识别方法的步骤可以是上述各个实施例的场景识别方法中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (15)

1.一种场景识别方法,包括:
获取界面图像,并提取所述界面图像中的界面对象;
根据所述界面对象,确定所述界面图像的场景类型;
基于所述场景类型,确定所述界面图像中的场景对象,所述场景对象包括所述界面对象中属于场景对象的界面对象;
确定并标记所述场景对象中的标识对象,并遍历操作所述场景对象,获得操作结果,并根据所述操作结果确定并标记所述场景对象中的操作对象。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
确定所述标识对象的面积;
根据所述标识对象的面积对所述标识对象进行排序后,将所述界面图像以及对应的标识对象和操作对象保存至自动标记场景图像中。
3.根据权利要求1所述的方法,其特征在于,在获取界面图像之后,提取所述界面图像中的界面对象之前,还包括步骤:识别所述试界面图像是否属于已有场景图像;
当识别确定所述界面图像不属于已有场景图像时,进入所述提取所述界面图像的界面对象的步骤。
4.根据权利要求3所述的方法,其特征在于,所述识别界面图像是否属于已有场景图像,包括:
将所述界面图像与所述已有场景图像进行模板匹配,得到匹配值;
当所述界面图像与所述已有场景图像的匹配值不满足预设匹配值时,获取所述已有场景图像的标识对象;
在所述界面图像不包括标识对象时,将所述已有场景图像的标识对象与所述界面图像进行图像匹配;
当所述已有场景图像的标识对象中存在至少一个标识对象与所述界面图像不匹配时,确定所述界面图像不属于已有场景图像。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
在所述界面包括标识对象时,将所述已有场景图像的标识对象与所述界面图像的标识对象进行图像匹配;
当所述已有场景图像的标识对象中存在至少一个标识对象与所述界面图像的标识对象均不匹配时,确定所述界面图像不属于已有场景图像。
6.根据权利要求3所述的方法,其特征在于,所述方法还包括:
在识别确定所述界面图像属于已有场景图像时,获取所述已有场景图像的标记对象和操作对象;
将所述已有场景图像的标记对象和操作对象作为所述界面图像的标识对象和操作对象;所述已有场景图像包括脚本场景图像和自动标记场景图像。
7.根据权利要求1所述的方法,其特征在于,提取所述界面图像中的界面对象,包括:
将所述界面图像进行颜色空间的转换,得到转换后的界面图像;
从所述转换后的界面图像中提取亮度通道图像;
利用亮度阈值将所述亮度通道图像进行图像二值化,得到所述界面图像对应的二值化图像;
对所述二值化图像进行形态学处理,提取形态学处理后的二值化图像内的轮廓;
计算所述轮廓的外接矩形,并过滤所述轮廓的外接矩形,得到所述界面图像的界面对象。
8.根据权利要求1所述的方法,其特征在于,所述根据所述界面对象,确定所述界面图像的场景类型,包括:
根据所述界面对象的位置和面积确定所述界面图像是否存在弹窗;
当所述界面图像中存在弹窗时,确定所述界面图像的场景类型为弹窗类场景,所述场景类型包括弹窗类场景;
当所述界面图像中不存在弹窗时,确定所述界面图像的场景类型为非弹窗类场景,所述场景类型包括非弹窗类场景。
9.根据权利要求8所述的方法,其特征在于,所述根据所述界面对象的位置和面积确定所述界面图像是否存在弹窗,包括:
当任一个所述界面对象的位置和面积均满足预设要求时,确定所述界面图像存在弹窗;
当任一个所述界面对象的位置和面积至少一项不满足预设要求时,确定所述界面图像不存在弹窗。
10.根据权利要求1所述的方法,其特征在于,在所述界面图像的场景类型为弹窗类场景时,基于所述场景类型,确定所述界面图像中的场景对象,包括:
从所述界面对象中获取所述界面图像的弹窗;
获取所述弹窗区域内的界面对象作为所述界面图像的场景对象。
11.根据权利要求1所述的方法,其特征在于,在所述界面图像的场景类型为非弹窗类场景时,基于所述场景类型,确定所述界面图像中的场景对象,包括:
过滤所述界面对象,得到第一场景对象;
对所述界面图像进行字符识别,得到文字对象;
过滤所述文字对象,得到第二场景对象;
合并所述第一场景对象和所述第二场景对象,得到所述界面图像的场景对象。
12.根据权利要求1所述的方法,其特征在于,遍历操作所述场景对象,获得操作结果,根据所述操作结果确定并标记所述场景对象中的操作对象,包括:
依次点击所述场景对象;
当各所述场景对象被点击时,所述界面图像均未发生场景变化,则确定所述场景不包括操作对象;
当各所述场景对象被点击时,所述界面图像发生场景变化,则将发生场景变化对应的场景对象标记为所述界面图像的操作对象;
获取发生场景变化时的新场景图像;
将所述新场景图像作为界面图像,并返回识别界面图像是否属于已有场景图像的步骤。
13.一种场景识别装置,其特征在于,所述装置包括:
提取模块,用于获取界面图像,并提取所述界面图像中的界面对象;
场景确定模块,用于根据所述界面对象,确定所述界面图像的场景类型;
对象确定模块,用于基于所述场景类型,确定所述界面图像中的场景对象,所述场景对象包括所述界面对象中属于场景对象的界面对象;
遍历模块,用于确定并标记所述场景对象中的标识对象,并遍历操作所述场景对象,获得操作结果,并根据所述操作结果确定并标记所述场景对象中的操作对象。
14.一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如权利要求1至12中任一项所述方法的步骤。
15.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至12中任一项所述方法的步骤。
CN201910764051.4A 2019-08-19 2019-08-19 场景识别方法、装置和计算机可读存储介质 Active CN110751013B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910764051.4A CN110751013B (zh) 2019-08-19 2019-08-19 场景识别方法、装置和计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910764051.4A CN110751013B (zh) 2019-08-19 2019-08-19 场景识别方法、装置和计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN110751013A true CN110751013A (zh) 2020-02-04
CN110751013B CN110751013B (zh) 2024-08-20

Family

ID=69275920

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910764051.4A Active CN110751013B (zh) 2019-08-19 2019-08-19 场景识别方法、装置和计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN110751013B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111298434A (zh) * 2020-02-25 2020-06-19 腾讯科技(深圳)有限公司 业务处理方法、装置、设备及存储介质
CN112742026A (zh) * 2020-03-17 2021-05-04 腾讯科技(深圳)有限公司 游戏控制方法、装置、存储介质和电子设备

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080252722A1 (en) * 2007-04-11 2008-10-16 Yuan-Kai Wang System And Method Of Intelligent Surveillance And Analysis
CN104536750A (zh) * 2014-12-26 2015-04-22 北京奇虎科技有限公司 遍历窗口对象的方法及装置
CN105653441A (zh) * 2014-11-21 2016-06-08 中国科学院声学研究所 一种ui遍历测试方法与系统
US20170364766A1 (en) * 2014-12-22 2017-12-21 Gonzalo Vaca First-Person Camera Based Visual Context Aware System
CN108427633A (zh) * 2017-02-15 2018-08-21 腾讯科技(深圳)有限公司 显示界面的处理方法及装置
CN108537239A (zh) * 2018-04-18 2018-09-14 西南科技大学 一种图像显著性目标检测的方法
CN109359056A (zh) * 2018-12-21 2019-02-19 北京搜狗科技发展有限公司 一种应用程序测试方法及装置
CN109753975A (zh) * 2019-02-02 2019-05-14 杭州睿琪软件有限公司 一种训练样本获得方法、装置、电子设备和存储介质
CN109819338A (zh) * 2019-02-22 2019-05-28 深圳岚锋创视网络科技有限公司 一种视频自动剪辑方法、装置及便携式终端
CN109919164A (zh) * 2019-02-22 2019-06-21 腾讯科技(深圳)有限公司 用户界面对象的识别方法及装置

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080252722A1 (en) * 2007-04-11 2008-10-16 Yuan-Kai Wang System And Method Of Intelligent Surveillance And Analysis
CN105653441A (zh) * 2014-11-21 2016-06-08 中国科学院声学研究所 一种ui遍历测试方法与系统
US20170364766A1 (en) * 2014-12-22 2017-12-21 Gonzalo Vaca First-Person Camera Based Visual Context Aware System
CN104536750A (zh) * 2014-12-26 2015-04-22 北京奇虎科技有限公司 遍历窗口对象的方法及装置
CN108427633A (zh) * 2017-02-15 2018-08-21 腾讯科技(深圳)有限公司 显示界面的处理方法及装置
CN108537239A (zh) * 2018-04-18 2018-09-14 西南科技大学 一种图像显著性目标检测的方法
CN109359056A (zh) * 2018-12-21 2019-02-19 北京搜狗科技发展有限公司 一种应用程序测试方法及装置
CN109753975A (zh) * 2019-02-02 2019-05-14 杭州睿琪软件有限公司 一种训练样本获得方法、装置、电子设备和存储介质
CN109819338A (zh) * 2019-02-22 2019-05-28 深圳岚锋创视网络科技有限公司 一种视频自动剪辑方法、装置及便携式终端
CN109919164A (zh) * 2019-02-22 2019-06-21 腾讯科技(深圳)有限公司 用户界面对象的识别方法及装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111298434A (zh) * 2020-02-25 2020-06-19 腾讯科技(深圳)有限公司 业务处理方法、装置、设备及存储介质
CN111298434B (zh) * 2020-02-25 2021-08-06 腾讯科技(深圳)有限公司 业务处理方法、装置、设备及存储介质
CN112742026A (zh) * 2020-03-17 2021-05-04 腾讯科技(深圳)有限公司 游戏控制方法、装置、存储介质和电子设备

Also Published As

Publication number Publication date
CN110751013B (zh) 2024-08-20

Similar Documents

Publication Publication Date Title
CN108345880B (zh) 发票识别方法、装置、计算机设备和存储介质
CN109142366B (zh) 球形外壳缺陷检测方法、装置及计算机可读存储介质
CN110390666B (zh) 道路损伤检测方法、装置、计算机设备及存储介质
WO2019232853A1 (zh) 中文模型训练、中文图像识别方法、装置、设备及介质
CN111753692B (zh) 目标对象提取方法、产品检测方法、装置、计算机和介质
WO2019237549A1 (zh) 验证码识别方法、装置、计算机设备及存储介质
CN107784301A (zh) 用于识别图像中文字区域的方法和装置
CN110728687B (zh) 文件图像分割方法、装置、计算机设备和存储介质
CN108579094B (zh) 一种用户界面检测方法及相关装置、系统和存储介质
CN110598687A (zh) 车辆识别码的检测方法、装置及计算机设备
CN110163864B (zh) 图像分割方法、装置、计算机设备和存储介质
WO2019232850A1 (zh) 手写汉字图像识别方法、装置、计算机设备及存储介质
US7370059B2 (en) Model of documents and method for automatically classifying a document
CN113963353A (zh) 一种文字图像处理识别方法、装置、计算机设备和存储介质
CN110751013B (zh) 场景识别方法、装置和计算机可读存储介质
CN109389110B (zh) 一种区域确定方法及装置
CN114782711B (zh) 一种基于图像识别的智能化风险检测方法及系统
CN112464829B (zh) 一种瞳孔定位方法、设备、存储介质及视线追踪系统
CN114067431A (zh) 图像处理方法、装置、计算机设备和存储介质
CN113537184A (zh) Ocr模型训练方法、装置、计算机设备、存储介质
CN111178310A (zh) 手掌特征识别方法、装置、计算机设备和存储介质
CN114581928A (zh) 一种表格识别方法及系统
Yaba et al. Plate Number Recognition based on Hybrid Techniques
JPH11306325A (ja) 対象物検出装置及び対象物検出方法
JP2007156741A (ja) 文字抽出方法、文字抽出装置およびプログラム

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant