一种控件识别方法和相关装置与流程

专利2022-05-09  61



1.本申请涉及数据处理领域,特别是涉及一种控件识别方法和相关装置。


背景技术:

2.随着云技术的发展,各类云产品例如云游戏等应运而生,云产品可以作为应用部署到终端设备中。云产品将大部分甚至绝大部分的数据处理、运算移至云端服务器完成,终端设备主要用于接收用户操作和接收、展示云端服务器的处理结果,针对云产品,终端设备更像是一台云产品的显示媒介,不再需要执行复杂的数据处理,由此用户可以使用原本终端设备不足以运行的各类产品。
3.为了提升云产品的使用效率,一些场景下需要直接将某些核心使用界面快速的甚至直接展示给使用终端设备的用户,以便用户快速了解或使用云产品。例如在云游戏的场景中,有时需要直接向用户提供开始游戏的界面,无需用户从游戏开始的主界面一步一步点击到开始游戏的界面。
4.为了实现上述目的,相关技术采用云端服务器模拟用户触发虚拟控件的方式,将终端设备准备打开的云产品的展示界面跳转到需要展示给用户的核心使用界面,以省去用户自己触发界面上的虚拟控件。然而,相关技术中对不同显示界面上的虚拟控件位置识别并不准确,容易导致模拟操作的操作位置未处于应该被触发的虚拟控件的控件区域,增加了重试次数和响应时间。


技术实现要素:

5.为了解决上述技术问题,本申请提供了一种控件识别方法和相关装置,用于提高显示界面上的虚拟控件位置识别的准确性。
6.本申请实施例公开了如下技术方案:
7.一方面,本申请提供一种控件识别方法,所述方法包括:
8.获取终端设备针对云产品发送的触发操作,所述触发操作包括所述终端设备的终端标识;
9.根据所述终端标识,获取所述云产品对应所述触发操作的第一显示界面;
10.获取与所述第一显示界面相关的第一控件模板和至少一张分辨率模板,所述分辨率模板为对所述第一控件模板进行分辨率调整得到的,所述分辨率模板的图像分辨率与所述第一控件模板的图像分辨率不同;
11.根据所述第一控件模板和所述分辨率模板分别对所述第一显示界面进行控件识别,确定所述第一显示界面中与所述第一控件模板对应的第一控件的控件区域;
12.通过在所述控件区域模拟触发操作,获取所述第一控件指向的第二显示界面,所述第二显示界面用于确定向所述终端设备返回的目标显示界面。
13.另一方面,本申请提供一种控件识别装置,所述装置包括:获取单元和识别单元;
14.所述获取单元,用于获取终端设备针对云产品发送的触发操作,所述触发操作包
括所述终端设备的终端标识;根据所述终端标识,获取所述云产品对应所述触发操作的第一显示界面;获取与所述第一显示界面相关的第一控件模板和至少一张分辨率模板,所述分辨率模板为对所述第一控件模板进行分辨率调整得到的,所述分辨率模板的图像分辨率与所述第一控件模板的图像分辨率不同;
15.所述识别单元,用于根据所述第一控件模板和所述分辨率模板分别对所述第一显示界面进行控件识别,确定所述第一显示界面中与所述第一控件模板对应的第一控件的控件区域;
16.所述获取单元,还用于通过在所述控件区域模拟触发操作,获取所述第一控件指向的第二显示界面,所述第二显示界面用于确定向所述终端设备返回的目标显示界面。
17.另一方面,本申请提供一种计算机设备,所述设备包括处理器以及存储器:
18.所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
19.所述处理器用于根据所述程序代码中的指令执行上述方面所述的方法。
20.另一方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行上述方面所述的方法。
21.另一方面,本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方面所述的方法。
22.由上述技术方案可以看出,为了快速进入云产品的目标显示界面,从终端设备获取携带其终端标识的触发操作,根据该终端标识获取该云产品对应触发操作的第一显示界面。在第一显示界面中包括原本进入目标显示界面时需要用户触发的第一控件,为了简化用户的操作实现自动触发,通过第一控件对应的第一控件模板识别第一显示界面中第一控件的控件区域,为了提高识别精度,对第一控件模板进行分辨率调整,得到至少一张分辨率模板,由于该分辨率模板的图像分辨率与第一控件模板的图像分辨率不同,通过第一控件模板和分辨率模板分别对第一显示图像进行控件识别,可以得到基于不同分辨率的模板所确定的更为丰富的控件识别信息。由于采用多分辨率的控件模板进行控件识别,针对不同分辨率的第一显示界面均能达到较好的控件识别效果,提高模拟触控第一控件的成功率,降低了获取第一控件所指向第二显示界面的重试次数,并提高了向终端设备返回目标显示界面的效率。
附图说明
23.为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
24.图1为本申请实施例提供的一种控件识别方法的应用场景示意图;
25.图2为本申请实施例提供的一种云游戏的服务器架构的示意图;
26.图3为本申请实施例提供的一种控件识别方法的流程图;
27.图4为本申请实施例提供的不同分辨率的终端设备显示同一显示界面的示意图;
28.图5为本申请实施例提供的一种运维模块的示意图;
29.图6为本申请实施例提供的对应图5的执行顺序图;
30.图7为本申请实施例提供的一种目标显示界面触发流程工作的流程图;
31.图8为一种上采样和下采样的示意图;
32.图9为一种下采样的示意图;
33.图10为本申请实施例提供的一种对第一控件模板进行分辨率调整的示意图;
34.图11为本申请实施例提供的一种第一显示界面的示意图;
35.图12为本申请实施例提供的对应图11第一显示界面的特征点的示意图;
36.图13为一种识别控件的示意图;
37.图14为一种识别控件的示意图;
38.图15为一种识别控件的示意图;
39.图16为一种识别特征点的示意图;
40.图17为本申请实施例提供的一种识别特征点的示意图;
41.图18为一种surf算法模型的参数配置的示意图;
42.图19为本申请实施例提供的一种开始游戏显示界面的示意图;
43.图20为本申请实施例提供的一种游戏大厅显示界面的示意图;
44.图21为本申请实施例提供的一种人机对战场景对应的显示界面的示意图;
45.图22为本申请实施例提供的一种控件识别装置的示意图;
46.图23为本申请实施例提供的服务器的结构示意图;
47.图24为本申请实施例提供的终端设备的结构示意图。
具体实施方式
48.下面结合附图,对本申请的实施例进行描述。
49.相关技术中,针对云产品,云端的服务器根据本应该显示在终端设备的显示界面图像与对应的模板图像,识别虚拟控件位置,从而模拟用户触发虚拟控件,使得云产品直接进入核心使用界面。以云游戏为例,云端的服务器替代用户触发游戏登陆、开始游戏等虚拟控件,使得用户可以直接进入游戏界面,省去用户自己在终端设备上触发相应的虚拟控件。但是,模板图像一般只有一张,对应一种图像分辨率,而终端设备的显示界面的分辨率多种多样,当显示界面图像的图像分辨率与模板图像的图像分辨率的差距较大时,会影响识别虚拟控件位置的准确性。
50.基于此,本申请实施例提供一种控件识别方法和相关装置,用于提高识别虚拟控件位置的准确性。
51.本申请实施例提供的控件识别方法是基于人工智能实现的,人工智能(artificial intelligence,ai)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
52.人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层
面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
53.在本申请实施例中,主要涉及的人工智能技术包括上述计算机视觉技术、机器学习/深度学习等方向。
54.本申请提供的控件识别方法可以应用于具有数据处理能力的控件识别设备,如终端设备、服务器。其中,终端设备具体可以为智能手机、台式计算机、笔记本电脑、平板电脑、智能音箱、智能手表等,但并不局限于此;服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器。终端设备以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
55.该控件识别设备可以具备计算机视觉技术能力。计算机视觉技术(computer vision,cv)计算机视觉是一门研究如何使机器“看”的科学,更进一步的说,就是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。作为一个科学学科,计算机视觉研究相关的理论和技术,试图建立能够从图像或者多维数据中获取信息的人工智能系统。计算机视觉技术通常包括图像处理、图像识别等技术。
56.该控件识别设备可以具备机器学习能力。机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络等技术。
57.在本申请实施例提供的控件识别方法中,采用的人工智能模型主要涉及对计算机视觉技术的应用,通过图像识别等技术对第一显示界面中与第一控件模板对应的第一控件的控件区域进行识别。
58.此外,本申请实施例提供的控件识别方法还可以基于云计算技术实现。云计算(cloud computing)指it基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需资源;广义云计算指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需服务。这种服务可以是it和软件、互联网相关,也可是其他服务。云计算是网格计算(grid computing)、分布式计算(distributed computing)、并行计算(parallel computing)、效用计算(utility computing)、网络存储(network storage technologies)、虚拟化(virtualization)、负载均衡(load balance)等传统计算机和网络技术发展融合的产物。
59.随着互联网、实时数据流、连接设备多样化的发展,以及搜索服务、社会网络、移动商务和开放协作等需求的推动,云计算迅速发展起来。不同于以往的并行分布式计算,云计算的产生从理念上将推动整个互联网模式、企业管理模式发生革命性的变革。
60.本申请实施例提供的控件识别方法还可以应用在云游戏中,云游戏(cloud gaming)又可称为游戏点播(gaming on demand),是一种以云计算技术为基础的在线游戏技术。云游戏技术使图形处理与数据运算能力相对有限的轻端设备(thin client)能运行
高品质游戏。在云游戏场景下,游戏并不在玩家游戏终端,而是在云端服务器中运行,并由云端服务器将游戏场景渲染为视频音频流,通过网络传输给玩家游戏终端。玩家游戏终端无需拥有强大的图形运算与数据处理能力,仅需拥有基本的流媒体播放能力与获取玩家输入指令并发送给云端服务器的能力即可。
61.如本申请所公开的控件识别方法,其中第一控件模板可保存于区块链上。
62.为了便于理解本申请的技术方案,下面结合实际应用场景,以服务器作为控件识别设备对本申请实施例提供的控件识别方法进行介绍。
63.参见图1,该图为本申请实施例提供的一种控件识别方法的应用场景示意图。在图1所示的应用场景中,包括终端设备100和服务器200,服务器200可以模拟用户在终端设备100中对云产品的触发操作。其中,云产品是以云计算技术为基础的产品,如云游戏、云教育、云会议等,下面以云产品为一种云游戏应用(application,app)为例进行说明。
64.用户通过终端设备100对云游戏app进行触发操作后,终端设备100发送携带终端标识100的触发操作给服务器200,服务器200获取该触发操作后,根据触发操作中的终端标识100获取云游戏app对应触发操作的第一显示界面(如图1所示的开始游戏显示界面),该显示界面的图像分辨率为576*1280,且包括原本进入目标显示界面(如图1所示的游戏大厅显示界面)时需要用户触发的第一控件(如图1所示的开始游戏控件)。
65.服务器200获取与开始游戏显示界面相关的开始游戏控件对应的第一控件模板,其图像分辨率为720*1280,由于第一控件模板与开始游戏显示界面的图像分辨率不同,会影响识别开始游戏控件的准确性。为了提高识别精度,对第一控件模板进行分辨率调整,如对第一控件模板进行放大采样,得到如图1所示的分辨率模板,其图像分辨率为720*864。
66.由于分辨率模板的图像分辨率与第一控件模板的图像分辨率不同,通过第一控件模板和分辨率模板分别对开始游戏显示界面中的开始游戏控件进行识别,相比于仅基于单一图像分辨率的模板对开始游戏控件进行识别,可以得到更为丰富的控件识别信息,能够获得较好的控件识别效果,识别出的开始游戏的控件区域更为准确,从而服务器200在模拟用户触发开始游戏控件的成功率更高。
67.服务器200模拟用户触发开始游戏控件,即触发识别出的控件区域,从而使云游戏app从开始游戏显示界面跳转至游戏大厅显示界面,即第二显示界面,此时第二显示界面是目标显示界面,服务器200将游戏大厅显示界面返回给终端设备200,从而用户无需触发开始游戏控件,便可以直接进入游戏大厅,快速开始游戏。
68.由此,由于采用多分辨率的控件模板进行控件识别,针对不同分辨率的第一显示界面均能达到较好的控件识别效果,提高模拟触控第一控件的成功率,降低了获取第一控件所指向第二显示界面的重试次数,并提高了向终端设备返回目标显示界面的效率。
69.下面结合附图,以服务器作为控件识别设备,下面对本申请实施例提供的一种控件识别方法进行介绍。
70.在介绍控件识别方法之前,先对服务器架构进行说明。云产品是以云计算技术为基础的产品,不在用户的终端设备中运行,而是在云端的服务器(以下简称服务器)中运行,以云游戏为例对服务器架构进行说明。参见图2,该图为本申请实施例提供的一种云游戏的服务器架构的示意图。
71.在服务器中具有多个板卡或容器,云游戏安装在板卡或容器上(也称为云游戏主
机),板卡和容器的功能类似于终端设备的功能,可以处理云游戏相关的数据,但是板卡和容器没有物理显示屏幕,在板卡或容器处理完相关的数据,通过终端设备为用户提供对应的显示,以及接收用户的触发操作。板卡或容器会有一个推流进程,将云游戏的声音和画面通过推流服务器,发送给用户的终端设备上的app或者html5(构建web内容的一种语言描述方式),用户在试玩云游戏过程中,通过终端设备将用户的触发操作,回传至云游戏的板卡或容器。其中,推流服务器可以与服务器相同,也可以不同,本申请对此不做具体限定。
72.为了让云游戏进入到可以试玩的界面,本申请实施例在服务器中新增了集成图像识别和游戏操控等功能的运维模块。例如,在云游戏启动和游戏过程中,运维模块会对云游戏进行截图和图像识别,根据图像识别结果对游戏进行点击、滑动屏幕、主动通知用户的终端设备结束游戏等触发操作,将云游戏进入至某个场景,例如人机对战的游戏场景,将对应人机对战的游戏场景分配给用户试玩,使得用户无需在终端设备中触发登录游戏控件、进入游戏大厅后触发人机对战控件等,减少了用户的等待时间,简化的了用户的操作。其中,可以每一个板卡或容器分别对应一个运维模块,也可以多个板卡或容器共用一个运维模块,本申请对此不做具体限定。
73.下面对服务器中的运维模块通过图像识别获取控件位置进行说明。参见图3,该图为本申请实施例提供的一种控件识别方法的流程图。如图3所示,该控件识别方法包括以下步骤:
74.s301:获取终端设备针对云产品发送的触发操作。
75.在实际应用中,用户通过终端设备触发云产品,其中,触发操作可以是单击、双击、滑动等,本申请对此不做具体限定。终端设备将该触发操作发送给服务器,以便服务器知晓用户开始使用云产品,用户使用云产品的时机可以是刚开启云产品时,也可以是开启云产品之后,本申请对此不做具体限定。
76.在服务器获取的触发操作中,包括终端设备的终端标识,该终端标识不仅可以标识终端设备,使得服务器可以将对应的运行结果返回给对应的终端设备,该终端标识还可以标识终端设备对应的板卡或容器。例如,在用户开启云游戏之后,将运行该云游戏的板卡或容器用终端标识进行标识,在本次运行云游戏的过程中,依据终端标识将该终端设备发送到的后续触发操作发送给终端标识对应的板卡或容器,可以明确当前云游戏的运行进度,使云游戏的运行顺畅。
77.s302:根据终端标识,获取云产品对应触发操作的第一显示界面。
78.服务器根据触发操作中的终端标识,在终端标识对应的板卡或容器中,明确用户运行的云产品对应触发操作的第一显示界面。例如,当用户在终端设备中打开云游戏app,服务器根据终端设备发送的触发操作中的终端标识,在对应的板卡或容器中运行该云游戏,此时对应打开云游戏app的第一显示界面可以是开始游戏显示界面。
79.在第一显示界面中包括需要用户触发的第一控件,为了简化用户的操作实现自动触发,服务器会对第一显示界面进行如截图等操作,通过对第一显示界面进行图像识别,获取第一显示界面中第一控件的位置,从而替代用户触发第一控件,实现自动触发。
80.s303:获取与第一显示界面相关的第一控件模板和至少一张分辨率模板。
81.在相关技术中,由于控件模板一般是在720p下采样获得的,一个显示界面一般只对应一张控件模板,即控件模板对应一种固定的图像分辨率,而用户的终端设备多种多样,
对应多种分辨率。继续以云游戏为例,为了适应不同分辨率的终端设备的页面布局,在推流服务器推送云游戏的画面时,会进行自适应的放大或缩小,但是缩放的比例和范围是由游戏开发者决定,目前并没有统一的规范。参见图4,同一款云游戏的显示界面在不同分辨率的终端设备显示的分辨率大小不同。
82.由此可见,针对不同分辨率的显示界面,采用固定分辨率的控件模板进行图像识别,获得的识别效果有可能大相径庭,难以保证第一控件位置的识别精度稳定性。为了提高第一控件位置的识别精度,对第一控件模板进行分辨率调整,得到至少一张分辨率模板,由于分辨率模板的图像分辨率与第一控件模板的图像分辨率不同,通过第一控件模板和分辨率模板分别对第一显示图像进行控件识别,可以得到基于不同分辨率的模板所确定的更为丰富的控件识别信息,针对不同分辨率的第一显示界面均能达到较好的控件识别效果。
83.需要说明的是,对第一控件模板进行分辨率调整,获得至少一张分辨率模板可以在s303之前的任何时机进行,例如,在获得第一控件模板后进行分辨率调整,将获得的分辨率模板与第一控件模板一起存储至服务器中。又如,在获得第一显示界面后对第一控件模板进行分辨率调整。
84.作为一种可能的实现方式,在对第一控件模板进行分辨率调整后,可以获得至少一张第一分辨率模板和至少一张第二分辨率模板。其中,第一分辨率模板的图像分辨率小于第一控件模板的图像分辨率,第二分辨率模板的图像分辨率大于第一控件模板的图像分辨率,从而在根据模板图像对第一显示界面进行图像识别时,既有较低分辨率的第一分辨率模板,又有较高分辨率的第二分辨率模板,多种分辨率不同的模板可以尽可能的适应多种不同分辨率的第一显示界面,即第一控件模板、第一分辨率模板和第二分辨率模板中总会有一种模板的图像分辨率更接近第一显示界面的图像分辨率,降低模板与第一显示界面的图像分辨率的差距,从而在图像识别过程中,可以根据与第一显示界面的图像分辨率更为接近的模板进行匹配,获得更多的特征点,从而针对不同分辨率的第一显示界面均能达到较好的控件识别效果,兼容性较好。
85.s304:根据第一控件模板和分辨率模板分别对第一显示界面进行控件识别,确定第一显示界面中与第一控件模板对应的第一控件的控件区域。
86.根据在s303获取的第一控件模板和分辨率模板,分别对第一显示界面进行控件识别,确定第一显示界面中第一控件的控件区域。
87.可以理解的是,第一显示界面中可以具有多个控件,不同的控件对应不同的模板,如第一控件与第一控件模板对应。
88.s305:通过在控件区域模拟触发操作,获取第一控件指向的第二显示界面。
89.由于采用多分辨率的控件模板进行控件识别,针对不同分辨率的第一显示界面均能达到较好的控件识别效果,即识别出的第一控件的控件区域更为准确,在控件区域模拟用户对第一控件的触发操作,从而根据第一控件使第一显示界面跳转至第二显示界面,例如,从登陆游戏显示界面跳转至游戏大厅显示界面。
90.通过s301

s305可以实现服务器代替用户对显示界面中的控件进行自动触发,从而使得用户通过终端设备对云产品进行触发操作后,直接便可以进入目标显示界面,目标显示界面是服务器在模拟触发操作后返回给终端设备的显示界面,例如,可以是游戏大厅显示界面,还可以是人机对战场景对应的显示界面,使得用户可以快速开始游戏。
91.需要说明的是,第二显示界面可以是目标显示界面,还可以是经过服务器多次模拟触发操作后得到的目标显示界面,本申请对此不做具体限定。
92.由上述技术方案可以看出,为了快速进入云产品的目标显示界面,从终端设备获取携带其终端标识的触发操作,根据该终端标识获取该云产品对应触发操作的第一显示界面。在第一显示界面中包括原本进入目标显示界面时需要用户触发的第一控件,为了简化用户的操作实现自动触发,通过第一控件对应的第一控件模板识别第一显示界面中第一控件的控件区域,为了提高识别精度,对第一控件模板进行分辨率调整,得到至少一张分辨率模板,由于该分辨率模板的图像分辨率与第一控件模板的图像分辨率不同,通过第一控件模板和分辨率模板分别对第一显示图像进行控件识别,可以得到基于不同分辨率的模板所确定的更为丰富的控件识别信息。由于采用多分辨率的控件模板进行控件识别,针对不同分辨率的第一显示界面均能达到较好的控件识别效果,提高模拟触控第一控件的成功率,降低了获取第一控件所指向第二显示界面的重试次数,并提高了向终端设备返回目标显示界面的效率。
93.在s303中获取了第一控件模板和至少一张分辨率模板,下面先对获取第一控件模板的方式进行说明,再对获取至少一张分辨率模板的方式进行说明。
94.在用户触发云产品后,服务器模拟用户的触发操作,返回目标显示界面给终端设备,使得用户省去在进入目标显示界面之前的触发操作,服务器可能模拟一次用户的触发操作便可进入目标显示界面,还有可能模拟多次用户的触发操作才能进入目标显示界面。
95.由此,服务器在对云产品的显示界面截图后,需要明确当前截图的显示界面对应的运行进程,以便获取对应的第一控件模板。故针对云产品,可以制定与云产品关联的目标显示界面触发流程,使得服务器可以基于目标显示界面触发流程,确定与第一显示界面相关的第一控件模板,进而获取第一控件模块。
96.参见图5,该图为本申请实施例提供的一种运维模块的示意图。将目标显示界面触发流程内置于服务器中的运维模块中,通过逻辑控制模块读取目标显示界面触发流程,确定并获取第一控件模板。图像识别模块根据第一控件模板和分辨率模板,以及从运行在板卡或容器中的云产品获得的第一显示界面进行图像识别,获得第一控件在第一显示界面中的位置,并将该位置告知逻辑控制模块,逻辑控制模块指示操控模块,模拟用户对云产品的触发操作,直至进入目标显示界面,将目标显示界面通过如图2所示的推流服务器返回给终端设备中的app或h5。
97.需要说明的是,针对同一个云产品,可以具有一个或多个显示界面触发流程,本申请对此不做具体限定。目标显示界面触发流程可以是预先设置的,还可以是用户选择的。下面分别进行说明。
98.若目标显示界面触发流程是预先设置的,在获取的触发操作中还会携带流程标识,从而根据流程标识,从多个显示界面触发流程中确定目标显示界面触发流程。例如,在云产品测试过程中,可以针对测试需求(如登陆流程是否异常),预先设置对应的目标显示界面触发流程。例如,预先设置了3个显示界面流程,分别对应的流程标识为1、2、3。若从触发操作中获取的流程标识为2,则可以获取流程标识为2的显示界面触发流程作为目标显示界面触发流程。
99.若显示界面触发流程是用户选择的,根据云产品预设的流程标识,从多个显示界
面触发流程中确定目标显示界面触发流程。例如,用户可以根据个人习惯,对在打开云产品后直接想要进入的目标显示界面进行预先设置,将从打开云产品至进入目标显示界面对应的界面触发流程确定为目标显示界面流程,对应一个唯一的流程标识,当服务器从触发操作中获取的该流程标识,则可以帮助用户直接进入其想要进入的目标显示界面,使得用户可以根据个人习惯个性化设置目标显示界面触发流程,提高用户的使用感。
100.由前述可知,服务器可能模拟一次用户的触发操作便可进入目标显示界面,还有可能模拟多次用户的触发操作才能进入目标显示界面,即目标显示界面触发流程可能包括一次控件模拟操作,还可能包括多次控件模拟操作,下面分别进行说明。
101.若目标显示界面触发流程包括一次控件模拟操作,即服务器在第一次模拟用户触发第一控件后,本次控件模拟操作是目标显示界面触发流程的最后一次控件模拟操作,第一控件指向的第二显示界面即为目标显示界面,向终端设备返回该第二显示界面。
102.若目标显示界面触发流程包括多次控件模拟操作,即服务器在第一次模拟用户触发第一控件后,本次控件模拟操作不是目标显示界面触发流程的最后一次控件模拟操作,在从第一显示界面跳转至第二显示界面后,还需继续进行其他显示界面的跳转,才能进入目标显示界面,即此时第二显示界面不是目标显示界面,需要触发第二显示界面中的第二控件,以便后续可以进入目标显示界面。故需要识别第二控件的位置,可以基于目标显示界面触发流程确定与第二显示界面相关的第二控件模板,然后将第二控件模板作为第一控件模板,将第二显示界面作为第一显示界面,执行s303和s304,直至控件模拟操作为目标显示界面触发流程的最后一次控件模拟操作,此时第二显示界面即为目标显示界面,向终端设备返回该第二显示界面。
103.作为一种可能的实现方式,显示界面触发流程可以是可扩展标记语言(extensible markup language,xml)文件,将需要识别的第一控件模板和触发流程顺序均用xml语言来描述,用于描述如何使用opencv(open source computer vision library,一种图像识别软件开发工具包)进行模板图片识别,并通过发送点击或输入命令等操作来控制云产品进入至目标显示界面。其中,opencv一般用c 语言(一种计算机程序设计语言)和python语言(一种计算机程序设计语言)编写调用。相比于json(javascript object notation,javascript对象表示法)语言,使用xml语言的逻辑层次更清晰,易于修改,且属性名称配置更为规范。其中,
104.服务器一般采用linux系统(一种计算机操作系统),服务器可以采用c 语言进行开发,以便服务器执行速度快,占用较少的服务器系统资源,不会和游戏抢占服务器系统资源。
105.参见图6,该图为本申请实施例提供的对应图5的执行顺序图。通过xml文件描述目标显示界面触发流程,在该目标显示界面触发流程中包括脚本逻辑结构、控件模板和其他输入参数,逻辑控制模块采用c 语言开发,读取xml文件,根据输入参数,进行opencv图像匹配操作,然后根据图像识别结果,发送指令给操控模块,使得操控模块模拟用户对云产品的触发操作。
106.其中,目标显示界面触发流程中包括的脚本逻辑结构可以为表1所示的功能节点,以适配云产品中各种场景。
107.表1
[0108][0109][0110]
下面以云游戏为例对脚本逻辑进行说明,在该脚本逻辑中包括了上述的参数信息,方便修改,对应的程序如下:
[0111]
<?xml version="1.0"encoding="utf

8"?>
[0112]

<root>
[0113]
<!
‑‑
检测开始游戏按钮
‑‑
>
[0114]

<match method="surf"roi="393,447,652,215"delay="2000"retry="5000"
[0115]
hessian="500"template="tmp_main_start_game.png"name="match_main">
[0116]

<true>
[0117]
<!
‑‑
点击开始游戏按钮
‑‑
>
[0118]
<input offset="0,0"actiontype="0"/>
[0119]
<!
‑‑
检测游戏大厅的竞技按钮
‑‑
>
[0120]

<match method="surf"roi="401,482,461,174"delay="2000"retry="5"
[0121]
hessian="500"template="tmp_jingji_1280x720.png"name="match_jingji">
[0122]

<true>
[0123]
<!
‑‑
点击进入竞技模式
‑‑
>
[0124]
<input offset="0,0"actiontype="0"/>
[0125]
<!
‑‑
游戏已进入大厅,可以将云游戏设备分配给玩家了此时玩家连接上云游戏后,将看到游戏大厅的竞技模式
‑‑
>
[0126]
<function actiontype="8"/>
[0127]
</true>
[0128]
</match>
[0129]
</true>
[0130]
<!
‑‑
没检测到开始游戏按钮,就看是否要登陆
‑‑
>
[0131]
<!
‑‑
有时游戏会记住登录态,所以不是每次都需要登录
‑‑
>
[0132]

<falsecase method="surf"roi="451,484,614,204"hessian="500"
[0133]
template="tmp_qq_login_btn.png">
[0134]
<!
‑‑
点击并拉起登录sdk
‑‑
>
[0135]
<input offset="0,0"actiontype="0"/>
[0136]
<function actiontype="5"loadprevscript="1"/>
[0137]
</falsecase>
[0138]
<!
‑‑
如果有更新按钮,点击更新
‑‑
>
[0139]

<falsecase method="surf"roi="500,300,

1,

1"hessian="900"
[0140]
template="tmp_gengxin_1280x720.png">
[0141]
<input offset="0,0"actiontype="0"/>
[0142]
</falsecase>
[0143]
</match>
[0144]
</root>
[0145]
参见图7,该图为本申请实施例提供的一种目标显示界面触发流程工作的流程图,每个match节点为一个步骤,match节点可以嵌套,以形成一条完整的链路来描述目标显示界面的工作流程,即预加载目标显示界面的步骤。
[0146]
执行每个步骤获得匹配失败的结果时,可能是遇到了一些异常场景,需要truecase或falsecase节点来应对异常场景。每个匹配步骤可以具有特有的异常处理,也可以具有共有的异常处理,如图7中所示的异常3,例如侦测游戏公告弹窗。
[0147]
以上为获取第一控件模板的方式的说明,下面对获取至少一张分辨率模板的方式进行说明。对获取的第一控件模板进行分辨率调整,得到至少一张分辨率模板,下面以分辨率调整的方式为缩放采样为例进行说明。
[0148]
缩放采样的目的是对第一控件模板进行缩小处理和放大处理。在相关技术中,若想对第一控件模板进行缩小或放大,需要先经过高斯模糊和平滑处理,用于仿真人眼对于物体远景的观察效果,其中,物体越近越清晰,物体越远就越模糊。参见图8,该图为一种上采样和下采样的示意图。若按比例缩小第一控件模板,即下采样,反之,若按比例放大第一控件模板,即上采样。参见图9,该图为一种下采样的示意图。
[0149]
但是,在云产品的图像识别过程中,与云产品关联的第一控件模板只是分辨率改变,没有像现实生活中存在距离远近的图像模糊度改变,所以不需要考虑图像模糊的情况,仅需要考虑图像缩放的问题。由此,可以通过改变高斯滤波窗口的大小来获得不同尺度的图像,例如,盒子滤波初始尺寸从9*9像素开始。
[0150]
其中,盒子滤波也称为方框滤波,是一种线性滤波技术,它的实现借鉴了积分图像的原理思想,在快速积分图像求解中,将计算某个矩阵像素间的和值运算,转化为求矩阵对应边角点的求和差值运算。盒式滤波的实现关键的步骤就是初始化数组s,数组s的每个值
是存放像素邻域内的像素和值,在求解某矩形块中的像素和时,只需要索引对应区域的位置存放的和值就可以完成计算。
[0151]
参见图10,该图为本申请实施例提供的一种对第一控件模板进行分辨率调整的示意图。在图10中登陆方式二为第一控件,通过对第一控件模板进行缩小处理,获得第一分辨率模板,第一分辨率模板的图像分辨率小于第一控件模板的图像分辨率。通过对第一控件模板进行放大处理,获得第二分辨率模板,第二分辨率模板的图像分辨率大于第一控件模板的图像分辨率。由此,通过对第一控件模板进行缩放采样,至少获得一张第一分辨率模板和一张第二分辨率模板,但是在缩放采样过程中,由于不需要考虑图像模糊的情况,故不会改变第一控件模板的图像清晰度,即第一分辨率模板、第二分辨率模板和第一控件模板具有一致的图像清晰度。
[0152]
由此,针对云产品的图像识别,由于不存在远近距离的问题,相比于相关技术中,本申请实施例提供的缩放采样方式,无需改变图像清晰度,故可以提升匹配速度。
[0153]
在对第一控件进行图像识别的过程中,可以通过先提取第一显示界面中与第一控件有关的特征点,然后进行特征点匹配,最后根据特征点匹配结果确定第一控件的位置。
[0154]
其中,特征点又称兴趣点、关键点,它是在图像中突出且具有代表意义的一些点,通过这些点可以进行图像识别、进行图像配准、进行3d重建等。特征点包含了重要信息:距离(distance),距离为表示图像识别结果好坏的量化值,距离越小代表模版与待匹配图像越相似。
[0155]
由前述可知,在相关技术中一般仅采用一张第一控件模板进行图像识别,若第一控件模板的图像分辨率与第一显示界面的图像分辨率差距较大时,会影响识别第一控件位置的准确性。
[0156]
下面以第一控件为云游戏登陆界面中的登陆方式二为例进行说明,其中,第一控件模板的图像分辨率为1280*720。参见图13,该图为一种识别控件的示意图。若第一显示界面的图像分辨率与第一控件模板的图像分辨率相同,可以获取到的有效特征点为65个。若第一显示界面的图像分辨率与第一控件模板的图像分辨率不同,如第一显示界面的图像分辨率为864*720,参见图14,可以获取到的有效特征点却只有12个。
[0157]
获取特征点数量太少带来的问题是:判断标准不好制定,甚至在其他场景获取到的有效特征点的数量只有几个,若此时显示界面中存在一些相似区域,容易造成误判。参见图15,该图为一种识别控件的示意图。在一些低分辨率的场景下,获取的特征点已经出现误差,如果显示界面本身特征点也较少,会更容易造成误判。
[0158]
基于此,作为一种可能的实现方式,s304可以为:根据第一控件模板、第一分辨率模板和第二分辨率模板分别与第一显示界面进行针对第一控件的特征点匹配,从而得到与第一控件模板对应的第一特征点识别结果,与第一分辨率模板对应的第二特征点识别结果,以及与第二分辨率模板对应的第三特征点识别结果。根据第一特征点识别结果、第二特征点识别结果和第三特征点识别结果,确定第一显示界面中与第一控件模板对应的第一控件的控件区域。
[0159]
第一控件模板、第一分辨率模板和第二分辨率模板具有一致的清晰度,且三种模板的图像分辨率不同,通过三种不同分辨率模板一一与第一显示界面进行控件匹配,第一控件模板、第一分辨率模板和第二分辨率模板之中总会有一张模板的图像分辨率与第一显
示界面的图像分辨率的差值较小,利用图像分辨率更接近于第一显示界面的模板与第一显示界面得到的特征点识别结果,能够得到数量更多的特征点,从而可以在保证提取特征点数量的前提下,提升匹配速度。
[0160]
本申请实施例不具体限定根据三种特征点识别结果确定第一控件的控件区域的方式,下面以两种方式为例进行说明。
[0161]
方式一:综合第一特征点识别结果、第二特征点识别结果和第三特征点识别结果中分别识别到的特征点,确定第一显示界面中与第一控件模板对应的第一控件的控件区域。由此,综合特征点识别结果可以获取更为丰富的控件识别信息,从而确定的第一控件的控件区域更为准确。
[0162]
方式二:确定第一特征点识别结果、第二特征点识别结果和第三特征点识别结果中分别识别到的特征点数量,将第一特征点识别结果、第二特征点识别结果和第三特征点识别结果中特征点数量超出阈值的特征点识别结果作为目标识别结果,根据目标识别结果确定第一显示界面中与第一控件模板对应的第一控件的控件区域。由此,根据预先设置的阈值,可以在多个结果中筛选出符合实际需要的特征点识别结果,从而根据较好的特征点识别结果确定第一控件的控件区域,避免较差的特征点识别结果影响对控件区域的识别精确度。
[0163]
作为一种可能的实现方式,可以通过特征点采样模型对第一显示界面进行特征点识别,从而根据识别出的特征点确定第一控件的控件区域。
[0164]
具体地,根据第一控件模板和分辨率模板,通过特征点采样模型对第一显示界面进行特征点识别,根据特征点采样模型识别出的特征点,确定第一显示界面中与第一控件模板对应的第一控件的控件区域。
[0165]
其中,由于特征点采样模型的输入是多张不同图像分辨率的分辨率模板,且云产品的第一显示界面不存在距离远近的问题,故特征点采样模型中特征点采样层的层数可以被设置为小于特征点采样模型的特征点采样层的默认层数,从而提高图像识别速度。
[0166]
下面以特征点采样模型为加速稳健特征(speeded

up robust features,surf)算法模型为例进行说明。
[0167]
其中,surf算法模型中的算子在保持尺度不变特征变换(scale

invariant feature transform,sift)算子优良性能特点的基础上,同时解决了sift计算复杂度高、耗时长的缺点,对兴趣点提取及其特征向量描述方面进行了改进,且计算速度得到提高。
[0168]
由于第一控件模板一般都是在1280*720的图像分辨率下制作的,且为了加快识别速度,surf算法模型通过2组金字塔(octave)和3层图片(layer)的参数配置进行图像识别(以下简称surf(2 3))。
[0169]
由前述可知,若第一显示界面的图像分辨率与第一控件模板的图像分辨率相差较大,识别出的特征点的数量会变少,为了有利于排除误判。在相关技术中,通过增加surf算法模型中金字塔数量增加识别出的特征点的数量,从而降低误判的概率。
[0170]
参见图16,该图为一种识别特征点的示意图。图16使用的surf算法模型中采用了4组金字塔和3层图片,得到的特征点数量为14个。此时surf算法模型的特征点采样层的默认层数surf(4 3)。
[0171]
参见表2,该表为surf(2 3)与surf(4 3)识别出的特征点与匹配速度的对比情况。
[0172]
表2
[0173]
特征点采样模型获得的特征点数量匹配所用时间(毫秒)surf(2 3)1247surf(4 3)1478
[0174]
由表2可知,对于图像分辨率为864*720的第一显示界面,虽然增加了金字塔数量,但是获得的特征点数量并没有显著增多,但是匹配速度变慢了50%。
[0175]
基于此,通过将surf算法模型的输入由单一的第一控件模板变为第一控件模板与分辨率模板的组合,由于surf算法模型的输入是多张多分辨率模板,且不存在模糊第一控制模板的过程,故此,可以将surf算法模型中特征点采样层的层数被设置为小于特征点采样模型的特征点采样层的默认层数,从而提高图像识别速度。下面以surf算法模型中特征点采样层的层数被设置为surf(1 3)为例进行说明。
[0176]
参见图17,该图为本申请实施例提供的一种识别特征点的示意图。在图17中,surf(1 3)对图像分辨率为864*720的第一显示界面中的第一控件进行识别,其中,surf(1 3)的输入包括第一控件模板与至少一张分辨率模板,通过输入多张多分辨率模板,surf算法模型不仅识别特征点的数量增多,还增加了图像识别速度。
[0177]
参见表3,该表为surf(2 3)、surf(4 3)与surf(1 3)识别出的特征点与匹配速度的对比情况。
[0178]
表3
[0179]
特征点采样模型获得的特征点数量匹配所用时间(毫秒)surf(2 3)1247surf(4 3)1478surf(1 3)3048
[0180]
在相关技术中,图像识别过程中使用的匹配器为近似最近邻的快速库(fast library for approximate nearest neighbors,flann)匹配器,其中,flann匹配器包括一组算法,这些算法针对大型数据集中的快速最近邻搜索和高维特征进行了优化。对于大型数据集,它的运行速度比暴力匹配器(bruteforcematcher,bfmatcher)快。
[0181]
其中,bfmatche暴力匹配器会首先在第一幅图像中选取一个关键点,然后依次与第二幅图像的每一个关键点进行(描述符)距离测试,最后返回距离最近的关键点。暴力匹配在特征点较少的场景速度要优于flann匹配器。
[0182]
在相关技术中,采用flann匹配器进行图像识别的过程为:通过surf算法模型提取第一显示界面的特征点,然后使用flann匹配器进行特征点匹配。经过研究发现flann匹配器在surf算法模型中金字塔数量较多时,匹配速度较快,其中以surf(4 3)的效果最好,如图18所示,其对应的程序如下:
[0183]
cv_wrap static ptr<surf>create(double hessianthreshold=100,
[0184]
int n0ctaves=4,int n0ctavelayers=3,
[0185]
bool extended=false,bool upright=false);
[0186]
故若将surf算法模型中金字塔数量降低,flann匹配器的匹配速度会不如bfmatcher快,原因是flann匹配器仅在金字塔数量较多的情况下,此时数据运算量较大,flann匹配器的匹配效率比bfmatcher要好。而flann匹配器在金字塔数量较少的情况下,此
时数据运算量较小,flann匹配器的匹配效率反而不如bfmathcer。也就是说,flann匹配器的匹配速度与识别出的特征点数量有关。
[0187]
基于此,可以根据识别出的特征点数量采用不同的匹配器,从而提高匹配速度。具体地,在识别第一控件的控件区域时,可以确定识别出的特征点的特征点数量,若特征点数量达到数量阈值,采用第一类匹配器确定特征点的特征点质量;若特征点数量未达到数量阈值,采用第二类匹配器确定特征点的特征点质量,在根据第一类匹配器或第二类匹配器确定特征点的特征点质量后,根据特征点和对应的特征点质量确定第一显示界面中与第一控件模板对应的第一控件的控件区域。
[0188]
其中,特征点质量为特征点间的距离,例如,第一控件的控件区域的特征点在第一显示界面中的相对位置,与其对应在第一控件模板中的特征点对应的相对位置之间的距离。
[0189]
例如,以云游戏为例,距离小于等于0.15可以将其当作较好的特征点,大于0.15小于0.20可当作可参考特征点,其余的为较差的特征点。若想识别图11中的开始游戏控件,通过图像识别找到的特征点如图12所示,其中,圆圈的为较好的特征点(距离小于或等于0.15),矩形的为较差但可以做参考的特征点(距离大于0.15)。
[0190]
以第一类匹配器为flann匹配器,第二类匹配器为bfmatcher为例,若图像分辨率为1280*720的第一控件模板与图像分辨率为860*724的第一显示界面进行匹配,获得的结果可以参见表4,该表为surf(2 3)与surf(1 3)采用不同采样方式识别出的特征点与匹配速度的对比情况。
[0191]
表4
[0192][0193][0194]
由此,当保证得到的特征点的数量较多时,可以将surf算法模型中的参数配置降低至1组金字塔和3层图片,从而加快特征点提取速度,并使用bfmatcher,图像识别速度可以提升至30%左右。
[0195]
接下来,将结合图19

图21,以云游戏为例对本申请实施例提供的控件识别方法进行说明。
[0196]
在实际应用中,当用户在智能手机中打开云游戏app后,云游戏会跳过如图19所示的开始游戏显示界面、图20所示的游戏大厅显示界面,直接进入图21所示的人机对战场景对应的显示界面,服务器替代了人为的触发操作,从而简化了用户操作,使得用户可以快速进入游戏,减少了用户等待游戏的时间。
[0197]
实际上,图21所示的显示界面为目标显示界面,从图19所示的显示界面跳转至图20所示的显示界面,直至进入图21所示的显示界面,均为预先设置的目标显示界面触发流
程。
[0198]
当用户在智能手机中打开云游戏app后,服务器会获取智能手机针对该云游戏发送的触发操作,该触发操作中携带终端标识和多个显示界面触发流程中确定目标显示界面触发流程的流程标识。
[0199]
服务器根据终端标识,获取云游戏对应用户触发操作的第一显示界面,即如图19所示的显示界面。根据流程标识与目标显示界面触发流程确定第一控件模板,即开始游戏控件对应的控件模板。
[0200]
服务器获取第一控件模板、第一分辨率模板和第二分辨率模板,其中第一分辨率模板的图像分辨率小于第一控件模板的图像分辨率,第二分辨率模板的图像分辨率大于第一控件模板的图像分辨率,且第一控件模板、第一分辨率模板和第二分辨率模板具有一致的图像清晰度。
[0201]
服务器根据第一控件模板、第一分辨率模板和第二分辨率模板,通过surf算法模型分别与第一显示界面进行针对第一控件的特征点识别,得到与第一控件模板对应的第一特征点识别结果,与第一分辨率模板对应的第二特征点识别结果和与第二分辨率模板对应的第三特征点识别结果,其中使用的surf算法模型的参数配置为surf(1 3)。
[0202]
确定根据surf算法模型识别出的所述特征点的特征点数量。若特征点数量达到数量阈值,采用flann匹配器确定特征点的特征点质量;若特征点数量未达到数量阈值,采用bfmatcher确定特征点的特征点质量。根据特征点和对应的特征点质量采用如前述所述的方式一或方式二确定第一显示界面中与第一控件模板对应的第一控件的控件区域。
[0203]
在确定图19所示的开始游戏控件对应的控件区域后,服务器在该控件区域模拟触发操作,获取第一控件指向的第二显示界面,即如图20所示的显示界面。
[0204]
由于目标显示界面触发流程包括多次控件模拟操作,且服务器当前的模拟触发操作不是多次控件模拟操作的最后一次控件模拟操作,故基于目标显示界面触发流程确定与第二显示界面相关的第二控件模板,即如图20所示的竞技对抗控件对应的模板。将第二控件模板作为第一控件模板,第二显示界面作为第一显示界面,再一次执行获取第一控件模板、第一分辨率模板和第二分辨率模板的操作,根据三种模板和surf算法模型识别竞技对抗控件对应的控件区域。
[0205]
在确定图20所示的竞技对抗控件对应的控件区域后,服务器在该控件区域模拟触发操作,获取第一控件指向的第二显示界面,即如图21所示的显示界面,此时服务器当前的模拟触发操作是多次控件模拟操作的最后一次控件模拟操作,故图21所示的显示界面为目标显示界面,服务器将该目标显示界面返回给智能手机。由此,用户在智能手机中打开云游戏app后,便可直接进入如图21所示的显示界面中。
[0206]
针对上述实施例提供的控件识别方法,本申请实施例还提供了一种控件识别装置。
[0207]
参见图22,该图为本申请实施例提供的一种控件识别装置的示意图。如图22所示,该控件识别装置2200包括:获取单元2201和识别单元2202;
[0208]
所述获取单元2201,用于获取终端设备针对云产品发送的触发操作,所述触发操作包括所述终端设备的终端标识;根据所述终端标识,获取所述云产品对应所述触发操作的第一显示界面;获取与所述第一显示界面相关的第一控件模板和至少一张分辨率模板,
所述分辨率模板为对所述第一控件模板进行分辨率调整得到的,所述分辨率模板的图像分辨率与所述第一控件模板的图像分辨率不同;
[0209]
所述识别单元2202,用于根据所述第一控件模板和所述分辨率模板分别对所述第一显示界面进行控件识别,确定所述第一显示界面中与所述第一控件模板对应的第一控件的控件区域;
[0210]
所述获取单元2201,还用于通过在所述控件区域模拟触发操作,获取所述第一控件指向的第二显示界面,所述第二显示界面用于确定向所述终端设备返回的目标显示界面。
[0211]
作为一种可能的实现方式,所述分辨率调整为缩放采样,所述装置2200还包括分辨率调整单元,用于:
[0212]
对所述第一控件模板进行所述缩放采样,至少获得第一分辨率模板和第二分辨率模板,所述第一控件模板、所述第一分辨率模板和所述第二分辨率模板具有一致的图像清晰度,所述第一分辨率模板的图像分辨率小于所述第一控件模板的图像分辨率,所述第二分辨率模板的图像分辨率大于所述第一控件模板的图像分辨率。
[0213]
作为一种可能的实现方式,所述识别单元2202,用于:
[0214]
根据所述第一控件模板、所述第一分辨率模板和所述第二分辨率模板分别与所述第一显示界面进行针对所述第一控件的特征点匹配,得到与所述第一控件模板对应的第一特征点识别结果,与所述第一分辨率模板对应的第二特征点识别结果和与所述第二分辨率模板对应的第三特征点识别结果;
[0215]
根据所述第一特征点识别结果、所述第二特征点识别结果和所述第三特征点识别结果,确定所述第一显示界面中与所述第一控件模板对应的第一控件的控件区域。
[0216]
作为一种可能的实现方式,所述识别单元2202,用于:
[0217]
综合所述第一特征点识别结果、所述第二特征点识别结果和所述第三特征点识别结果中分别识别到的特征点,确定所述第一显示界面中与所述第一控件模板对应的第一控件的控件区域;或者,
[0218]
确定所述第一特征点识别结果、所述第二特征点识别结果和所述第三特征点识别结果中分别识别到的特征点数量;将所述第一特征点识别结果、所述第二特征点识别结果和所述第三特征点识别结果中特征点数量超出阈值的特征点识别结果作为目标识别结果,根据所述目标识别结果确定所述第一显示界面中与所述第一控件模板对应的第一控件的控件区域。
[0219]
作为一种可能的实现方式,所述装置2200还包括确定单元,用于:
[0220]
基于与所述云产品关联的目标显示界面触发流程,确定与所述第一显示界面相关的所述第一控件模板。
[0221]
作为一种可能的实现方式,所述确定单元,还用于:
[0222]
根据所述触发操作中携带的流程标识,从多个显示界面触发流程中确定所述目标显示界面触发流程;或者,
[0223]
根据所述云产品预设的流程标识,从多个显示界面触发流程中确定所述目标显示界面触发流程。
[0224]
作为一种可能的实现方式,所述装置2200还包括返回单元,用于:
[0225]
若所述目标显示界面触发流程包括一次控件模拟操作,将所述第二显示界面作为所述目标显示界面,并向所述终端设备返回所述第二显示界面;
[0226]
若所述目标显示界面触发流程包括多次控件模拟操作,基于所述目标显示界面触发流程确定与所述第二显示界面相关的第二控件模板;将所述第二控件模板作为所述第一控件模板,所述第二显示界面作为所述第一显示界面,执行所述获取与所述第一显示界面相关的第一控件模板和至少一张分辨率模板的操作。
[0227]
作为一种可能的实现方式,所述识别单元2202,用于:
[0228]
根据所述第一控件模板和所述分辨率模板,通过特征点采样模型对所述第一显示界面进行特征点识别,所述特征点采样模型中特征点采样层的层数被设置为小于所述特征点采样模型的特征点采样层的默认层数;
[0229]
根据所述特征点采样模型识别出的特征点,确定所述第一显示界面中与所述第一控件模板对应的第一控件的控件区域。
[0230]
作为一种可能的实现方式,所述识别单元2202,用于:
[0231]
确定识别出的所述特征点的特征点数量;
[0232]
若所述特征点数量达到数量阈值,采用第一类匹配器确定所述特征点的特征点质量;
[0233]
若所述特征点数量未达到所述数量阈值,采用第二类匹配器确定所述特征点的特征点质量;
[0234]
根据所述特征点和对应的特征点质量确定所述第一显示界面中与所述第一控件模板对应的第一控件的控件区域。
[0235]
本申请实施例提供的控件识别装置,为了快速进入云产品的目标显示界面,从终端设备获取携带其终端标识的触发操作,根据该终端标识获取该云产品对应触发操作的第一显示界面。在第一显示界面中包括原本进入目标显示界面时需要用户触发的第一控件,为了简化用户的操作实现自动触发,通过第一控件对应的第一控件模板识别第一显示界面中第一控件的控件区域,为了提高识别精度,对第一控件模板进行分辨率调整,得到至少一张分辨率模板,由于该分辨率模板的图像分辨率与第一控件模板的图像分辨率不同,通过第一控件模板和分辨率模板分别对第一显示图像进行控件识别,可以得到基于不同分辨率的模板所确定的更为丰富的控件识别信息。由于采用多分辨率的控件模板进行控件识别,针对不同分辨率的第一显示界面均能达到较好的控件识别效果,提高模拟触控第一控件的成功率,降低了获取第一控件所指向第二显示界面的重试次数,并提高了向终端设备返回目标显示界面的效率。
[0236]
前述所述的控件识别设备可以为一种计算机设备,该计算机设备可以为服务器,还可以为终端设备,下面将从硬件实体化的角度对本申请实施例提供的计算机设备进行介绍。其中,图23所示为服务器的结构示意图,图24所示为终端设备的结构示意图。
[0237]
参见图23,图23是本申请实施例提供的一种服务器结构示意图,该服务器1400可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,cpu)1422(例如,一个或一个以上处理器)和存储器1432,一个或一个以上存储应用程序1442或数据1444的存储介质1430(例如一个或一个以上海量存储设备)。其中,存储器1432和存储介质1430可以是短暂存储或持久存储。存储在存储介质1430的程序
可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1422可以设置为与存储介质1430通信,在服务器1400上执行存储介质1430中的一系列指令操作。
[0238]
服务器1400还可以包括一个或一个以上电源1426,一个或一个以上有线或无线网络接口1450,一个或一个以上输入输出接口1458,和/或,一个或一个以上操作系统1441,例如windows servertm,mac os xtm,unixtm,linuxtm,freebsdtm等等。
[0239]
上述实施例中由服务器所执行的步骤可以基于该图23所示的服务器结构。
[0240]
其中,cpu 1422用于执行如下步骤:
[0241]
获取终端设备针对云产品发送的触发操作,所述触发操作包括所述终端设备的终端标识;
[0242]
根据所述终端标识,获取所述云产品对应所述触发操作的第一显示界面;
[0243]
获取与所述第一显示界面相关的第一控件模板和至少一张分辨率模板,所述分辨率模板为对所述第一控件模板进行分辨率调整得到的,所述分辨率模板的图像分辨率与所述第一控件模板的图像分辨率不同;
[0244]
根据所述第一控件模板和所述分辨率模板分别对所述第一显示界面进行控件识别,确定所述第一显示界面中与所述第一控件模板对应的第一控件的控件区域;
[0245]
通过在所述控件区域模拟触发操作,获取所述第一控件指向的第二显示界面,所述第二显示界面用于确定向所述终端设备返回的目标显示界面。
[0246]
可选的,cpu 1422还可以执行本申请实施例中控件识别方法任一具体实现方式的方法步骤。
[0247]
参见图24,图24为本申请实施例提供的一种终端设备的结构示意图。图24示出的是与本申请实施例提供的终端设备相关的智能手机的部分结构的框图,该智能手机包括:射频(radio frequency,简称rf)电路1510、存储器1520、输入单元1530、显示单元1540、传感器1550、音频电路1560、无线保真(wireless fidelity,简称wifi)模块1570、处理器1580、以及电源1590等部件。本领域技术人员可以理解,图24中示出的智能手机结构并不构成对智能手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
[0248]
下面结合图24对智能手机的各个构成部件进行具体的介绍:
[0249]
rf电路1510可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器1580处理;另外,将设计上行的数据发送给基站。通常,rf电路1510包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(low noise amplifier,简称lna)、双工器等。此外,rf电路1510还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(global system of mobile communication,简称gsm)、通用分组无线服务(general packet radio service,简称gprs)、码分多址(code division multiple access,简称cdma)、宽带码分多址(wideband code division multiple access,简称wcdma)、长期演进(long term evolution,简称lte)、电子邮件、短消息服务(short messaging service,简称sms)等。
[0250]
存储器1520可用于存储软件程序以及模块,处理器1580通过运行存储在存储器
1520的软件程序以及模块,从而实现智能手机的各种功能应用以及数据处理。存储器1520可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据智能手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器1520可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
[0251]
输入单元1530可用于接收输入的数字或字符信息,以及产生与智能手机的用户设置以及功能控制有关的键信号输入。具体地,输入单元1530可包括触控面板1531以及其他输入设备1532。触控面板1531,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板1531上或在触控面板1531附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板1531可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器1580,并能接收处理器1580发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板1531。除了触控面板1531,输入单元1530还可以包括其他输入设备1532。具体地,其他输入设备1532可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
[0252]
显示单元1540可用于显示由用户输入的信息或提供给用户的信息以及智能手机的各种菜单。显示单元1540可包括显示面板1541,可选的,可以采用液晶显示器(liquid crystal display,简称lcd)、有机发光二极管(organic light

emitting diode,简称oled)等形式来配置显示面板1541。进一步的,触控面板1531可覆盖显示面板1541,当触控面板1531检测到在其上或附近的触摸操作后,传送给处理器1580以确定触摸事件的类型,随后处理器1580根据触摸事件的类型在显示面板1541上提供相应的视觉输出。虽然在图24中,触控面板1531与显示面板1541是作为两个独立的部件来实现智能手机的输入和输入功能,但是在某些实施例中,可以将触控面板1531与显示面板1541集成而实现智能手机的输入和输出功能。
[0253]
智能手机还可包括至少一种传感器1550,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板1541的亮度,接近传感器可在智能手机移动到耳边时,关闭显示面板1541和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别智能手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于智能手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
[0254]
音频电路1560、扬声器1561,传声器1562可提供用户与智能手机之间的音频接口。音频电路1560可将接收到的音频数据转换后的电信号,传输到扬声器1561,由扬声器1561转换为声音信号输出;另一方面,传声器1562将收集的声音信号转换为电信号,由音频电路1560接收后转换为音频数据,再将音频数据输出处理器1580处理后,经rf电路1510以发送
给比如另一智能手机,或者将音频数据输出至存储器1520以便进一步处理。
[0255]
wifi属于短距离无线传输技术,智能手机通过wifi模块1570可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图24示出了wifi模块1570,但是可以理解的是,其并不属于智能手机的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
[0256]
处理器1580是智能手机的控制中心,利用各种接口和线路连接整个智能手机的各个部分,通过运行或执行存储在存储器1520内的软件程序和/或模块,以及调用存储在存储器1520内的数据,执行智能手机的各种功能和处理数据,从而对智能手机进行整体监控。可选的,处理器1580可包括一个或多个处理单元;优选的,处理器1580可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1580中。
[0257]
智能手机还包括给各个部件供电的电源1590(比如电池),优选的,电源可以通过电源管理系统与处理器1580逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
[0258]
尽管未示出,智能手机还可以包括摄像头、蓝牙模块等,在此不再赘述。
[0259]
在本申请实施例中,该智能手机所包括的存储器1520可以存储程序代码,并将所述程序代码传输给所述处理器。
[0260]
该智能手机所包括的处理器1580可以根据所述程序代码中的指令执行上述实施例提供的控件识别方法。
[0261]
本申请实施例还提供一种计算机可读存储介质,用于存储计算机程序,该计算机程序用于执行上述实施例提供的控件识别方法。
[0262]
本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方面的各种可选实现方式中提供的控件识别方法。
[0263]
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质可以是下述介质中的至少一种:只读存储器(英文:read

only memory,缩写:rom)、ram、磁碟或者光盘等各种可以存储程序代码的介质。
[0264]
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备及系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的设备及系统实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0265]
以上所述,仅为本申请的一种具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。

技术特征:
1.一种控件识别方法,其特征在于,所述方法包括:获取终端设备针对云产品发送的触发操作,所述触发操作包括所述终端设备的终端标识;根据所述终端标识,获取所述云产品对应所述触发操作的第一显示界面;获取与所述第一显示界面相关的第一控件模板和至少一张分辨率模板,所述分辨率模板为对所述第一控件模板进行分辨率调整得到的,所述分辨率模板的图像分辨率与所述第一控件模板的图像分辨率不同;根据所述第一控件模板和所述分辨率模板分别对所述第一显示界面进行控件识别,确定所述第一显示界面中与所述第一控件模板对应的第一控件的控件区域;通过在所述控件区域模拟触发操作,获取所述第一控件指向的第二显示界面,所述第二显示界面用于确定向所述终端设备返回的目标显示界面。2.根据权利要求1所述的方法,其特征在于,所述分辨率调整为缩放采样,所述方法还包括:对所述第一控件模板进行所述缩放采样,至少获得第一分辨率模板和第二分辨率模板,所述第一控件模板、所述第一分辨率模板和所述第二分辨率模板具有一致的图像清晰度,所述第一分辨率模板的图像分辨率小于所述第一控件模板的图像分辨率,所述第二分辨率模板的图像分辨率大于所述第一控件模板的图像分辨率。3.根据权利要求2所述的方法,其特征在于,所述根据所述第一控件模板和所述分辨率模板对所述第一显示界面进行控件识别,确定所述第一显示界面中与所述第一控件模板对应的第一控件的控件区域,包括:根据所述第一控件模板、所述第一分辨率模板和所述第二分辨率模板分别与所述第一显示界面进行针对所述第一控件的特征点匹配,得到与所述第一控件模板对应的第一特征点识别结果,与所述第一分辨率模板对应的第二特征点识别结果和与所述第二分辨率模板对应的第三特征点识别结果;根据所述第一特征点识别结果、所述第二特征点识别结果和所述第三特征点识别结果,确定所述第一显示界面中与所述第一控件模板对应的第一控件的控件区域。4.根据权利要求3所述的方法,其特征在于,所述根据所述第一特征点识别结果、所述第二特征点识别结果和所述第三特征点识别结果,确定所述第一显示界面中与所述第一控件模板对应的第一控件的控件区域,包括:综合所述第一特征点识别结果、所述第二特征点识别结果和所述第三特征点识别结果中分别识别到的特征点,确定所述第一显示界面中与所述第一控件模板对应的第一控件的控件区域;或者,确定所述第一特征点识别结果、所述第二特征点识别结果和所述第三特征点识别结果中分别识别到的特征点数量;将所述第一特征点识别结果、所述第二特征点识别结果和所述第三特征点识别结果中特征点数量超出阈值的特征点识别结果作为目标识别结果,根据所述目标识别结果确定所述第一显示界面中与所述第一控件模板对应的第一控件的控件区域。5.根据权利要求1所述的方法,其特征在于,所述方法还包括:基于与所述云产品关联的目标显示界面触发流程,确定与所述第一显示界面相关的所
述第一控件模板。6.根据权利要求5所述的方法,其特征在于,所述方法还包括:根据所述触发操作中携带的流程标识,从多个显示界面触发流程中确定所述目标显示界面触发流程;或者,根据所述云产品预设的流程标识,从多个显示界面触发流程中确定所述目标显示界面触发流程。7.根据权利要求5所述的方法,其特征在于,若所述目标显示界面触发流程包括一次控件模拟操作,所述方法还包括:将所述第二显示界面作为所述目标显示界面,并向所述终端设备返回所述第二显示界面;若所述目标显示界面触发流程包括多次控件模拟操作,所述方法还包括:基于所述目标显示界面触发流程确定与所述第二显示界面相关的第二控件模板;将所述第二控件模板作为所述第一控件模板,所述第二显示界面作为所述第一显示界面,执行所述获取与所述第一显示界面相关的第一控件模板和至少一张分辨率模板的操作。8.根据权利要求1

7任意一项所述的方法,其特征在于,所述根据所述第一控件模板和所述分辨率模板对所述第一显示界面进行控件识别,确定所述第一显示界面中与所述第一控件模板对应的第一控件的控件区域,包括:根据所述第一控件模板和所述分辨率模板,通过特征点采样模型对所述第一显示界面进行特征点识别,所述特征点采样模型中特征点采样层的层数被设置为小于所述特征点采样模型的特征点采样层的默认层数;根据所述特征点采样模型识别出的特征点,确定所述第一显示界面中与所述第一控件模板对应的第一控件的控件区域。9.根据权利要求8所述的方法,其特征在于,所述根据所述特征点采样模型识别出的特征点,确定所述第一显示界面中与所述第一控件模板对应的第一控件的控件区域,包括:确定识别出的所述特征点的特征点数量;若所述特征点数量达到数量阈值,采用第一类匹配器确定所述特征点的特征点质量;若所述特征点数量未达到所述数量阈值,采用第二类匹配器确定所述特征点的特征点质量;根据所述特征点和对应的特征点质量确定所述第一显示界面中与所述第一控件模板对应的第一控件的控件区域。10.一种控件识别装置,其特征在于,所述装置包括:获取单元和识别单元;所述获取单元,用于获取终端设备针对云产品发送的触发操作,所述触发操作包括所述终端设备的终端标识;根据所述终端标识,获取所述云产品对应所述触发操作的第一显示界面;获取与所述第一显示界面相关的第一控件模板和至少一张分辨率模板,所述分辨率模板为对所述第一控件模板进行分辨率调整得到的,所述分辨率模板的图像分辨率与所述第一控件模板的图像分辨率不同;所述识别单元,用于根据所述第一控件模板和所述分辨率模板分别对所述第一显示界面进行控件识别,确定所述第一显示界面中与所述第一控件模板对应的第一控件的控件区域;
所述获取单元,还用于通过在所述控件区域模拟触发操作,获取所述第一控件指向的第二显示界面,所述第二显示界面用于确定向所述终端设备返回的目标显示界面。11.根据权利要求10所述的装置,其特征在于,所述分辨率调整为缩放采样,所述装置还包括分辨率调整单元,用于:对所述第一控件模板进行所述缩放采样,至少获得第一分辨率模板和第二分辨率模板,所述第一控件模板、所述第一分辨率模板和所述第二分辨率模板具有一致的图像清晰度,所述第一分辨率模板的图像分辨率小于所述第一控件模板的图像分辨率,所述第二分辨率模板的图像分辨率大于所述第一控件模板的图像分辨率。12.根据权利要求11所述的装置,其特征在于,所述识别单元,用于:根据所述第一控件模板、所述第一分辨率模板和所述第二分辨率模板分别与所述第一显示界面进行针对所述第一控件的特征点匹配,得到与所述第一控件模板对应的第一特征点识别结果,与所述第一分辨率模板对应的第二特征点识别结果和与所述第二分辨率模板对应的第三特征点识别结果;根据所述第一特征点识别结果、所述第二特征点识别结果和所述第三特征点识别结果,确定所述第一显示界面中与所述第一控件模板对应的第一控件的控件区域。13.根据权利要求12所述的装置,其特征在于,所述识别单元,用于:综合所述第一特征点识别结果、所述第二特征点识别结果和所述第三特征点识别结果中分别识别到的特征点,确定所述第一显示界面中与所述第一控件模板对应的第一控件的控件区域;或者,确定所述第一特征点识别结果、所述第二特征点识别结果和所述第三特征点识别结果中分别识别到的特征点数量;将所述第一特征点识别结果、所述第二特征点识别结果和所述第三特征点识别结果中特征点数量超出阈值的特征点识别结果作为目标识别结果,根据所述目标识别结果确定所述第一显示界面中与所述第一控件模板对应的第一控件的控件区域。14.一种计算机设备,其特征在于,所述设备包括处理器以及存储器:所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;所述处理器用于根据所述程序代码中的指令执行权利要求1

9任意一项所述的方法。15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行权利要求1

9任意一项所述的方法。
技术总结
本申请实施例公开了一种控件识别方法和相关装置,至少涉及人工智能中的计算机视觉技术,包括:根据触发操作中的终端标识获取云产品对应的第一显示界面。在第一显示界面中包括原本进入目标显示界面时需要用户触发的第一控件,获取第一控件模板和对第一控件模板进行分辨率调整得到的至少一张分辨率模板,由于获取的模板的图像分辨率不同,利用其对第一显示界面中的控件区域进行识别时,可以得到基于不同分辨率的模板所确定的更为丰富的控件识别信息,从而针对不同分辨率的第一显示界面均能达到较好的控件识别效果,提高模拟触控第一控件的成功率,降低了获取第一控件所指向第二显示界面的重试次数,并提高了向终端设备返回目标显示界面的效率。标显示界面的效率。标显示界面的效率。


技术研发人员:任明星
受保护的技术使用者:腾讯科技(深圳)有限公司
技术研发日:2021.04.27
技术公布日:2021/6/29

转载请注明原文地址:https://doc.8miu.com/read-12982.html

最新回复(0)