一种应用策略模型的训练方法及装置转让专利

申请号 : CN201910127497.6

文献号 : CN109947344B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 杨夏周大军张力柯荆彦青

申请人 : 腾讯科技(深圳)有限公司

摘要 :

本发明实施例公开了应用策略模型的训练方法及装置,应用于信息处理技术领域。应用策略平台会与应用终端建立连接,并通过建立的连接,采集应用终端的运行状态及用户操作应用终端的用户操作事件;然后根据预置的各个状态对象执行动作的描述信息,解析用户操作事件得到应用终端的状态对象执行动作,最后建立运行状态与状态对象执行动作之间的对应关系,一个对应关系则为一个样本对,以训练应用策略模型。这样,通过部署一个独立的平台即应用策略平台就可以获取到应用策略模型的训练样本,而不需要在应用终端内置样本记录模块,方便了对训练样本的采集,且扩展性较强。

权利要求 :

1.一种应用策略模型的训练方法,其特征在于,包括:

与应用终端建立连接;

通过所述建立的连接,采集所述应用终端在预设时间段内的运行状态;所述运行状态是所述应用终端在运行应用过程中显示的运行界面;

通过所述建立的连接,采集在所述预设时间段内用户操作所述应用终端的用户操作事件;

根据预置的状态对象执行动作的描述信息,解析所述用户操作事件,得到所述应用终端基于所述用户操作的状态对象执行动作;所述状态对象执行动作指当应用终端处于某一运行状态时某一运动对象的动作;

建立所述运行状态与状态对象执行动作之间的对应关系,将每个对应关系作为一个样本对,以训练应用策略模型;

其中,所述用户操作事件包括所述预设时间段内,多个时间点上用户操作所述应用终端的按键信息;所述解析所述用户操作事件,得到所述应用终端基于所述用户操作的状态对象执行动作,具体包括:根据所述多个时间点上用户操作所述应用终端的按键信息,分别确定所述多个时间点上用户操作所述应用终端的按键操作类型;根据各个时间点上的按键操作类型、按键信息及预置的各个状态对象执行动作的描述信息,确定所述各个时间点的状态对象执行动作;

所述预置的各个状态对象执行动作的描述信息包括动作标识、按键区域和按键操作类型。

2.如权利要求1所述的方法,其特征在于,所述用户操作应用终端的按键信息包括触控点的坐标信息;则根据某一时间点上用户操作所述应用终端的按键信息,确定所述某一时间点上用户操作所述应用终端的按键操作类型,具体包括:如果某一时间点上用户操作所述应用终端的第一触控点的坐标信息在预置的某一按键区域内,确定所述某一时间点的按键操作类型为点击或按压;

如果某一时间点上用户操作所述应用终端的第一触控点的坐标信息在预置的某一按键区域内,且所述某一时间点的下一时间点上用户操作所述应用终端的第二触控点的坐标信息不在所述某一按键区域内,所述第一触控点与第二触控点为同一触控点,则确定所述下一时间点的按键操作类型为松开。

3.如权利要求2所述的方法,其特征在于,所述根据某一时间点上用户操作所述应用终端的按键信息,确定所述某一时间点上用户操作所述应用终端的按键操作类型,还包括:如果某一时间点上用户操作所述应用终端的第一触控点的坐标信息,及所述某一时间点的上一时间点上用户操作所述应用终端的第三触控点的坐标信息在所述预置的某一按键区域内,且所述第一触控点与第三触控点为同一触控点,所述第一触控点与第三触控点之间向量的角度在预置范围内,则确定所述某一时间点的按键操作类型为滑动。

4.如权利要求1至3任一项所述的方法,其特征在于,在每个样本对中的运行状态为运行界面,状态对象执行动作为界面对象执行动作,所述方法还包括:显示所述运行界面,并在所述运行界面上展示所述界面对象执行动作。

5.如权利要求1至3任一项所述的方法,其特征在于,所述方法还包括:按照预置的策略对所述样本对进行修正,用修正后的样本对训练所述应用策略模型。

6.如权利要求5所述的方法,其特征在于,所述方法还包括:

获取所述应用终端的待处理运行状态;

根据所述待处理运行状态及所述应用策略模型,确定对应的状态对象执行动作。

7.如权利要求1至3任一项所述的方法,其特征在于,

不同应用对应的所述状态对象执行动作的描述信息不同,一个应用对应的状态对象执行动作的描述信息以文件形式储存在本地。

8.一种应用策略平台,其特征在于,包括:

连接建立单元,用于与应用终端建立连接;

状态采集单元,用于通过所述建立的连接,采集所述应用终端在预设时间段内的运行状态;所述运行状态是所述应用终端在运行应用过程中显示的运行界面;

操作采集单元,用于通过所述建立的连接,采集在所述预设时间段内用户操作所述应用终端的用户操作事件;

解析单元,用于根据预置的状态对象执行动作的描述信息,解析所述用户操作事件,得到所述应用终端基于所述用户操作的状态对象执行动作;所述状态对象执行动作指当应用终端处于某一运行状态时某一运动对象的动作;

样本建立单元,用于建立所述运行状态与状态对象执行动作之间的对应关系,将每个对应关系作为一个样本对,以训练应用策略模型;

其中,所述解析单元,具体用于所述用户操作事件包括所述预设时间段内,多个时间点上用户操作所述应用终端的按键信息;所述解析所述用户操作事件,得到所述应用终端基于所述用户操作的状态对象执行动作,具体包括:根据所述多个时间点上用户操作所述应用终端的按键信息,分别确定所述多个时间点上用户操作所述应用终端的按键操作类型;

根据各个时间点上的按键操作类型、按键信息及预置的各个状态对象执行动作的描述信息,确定所述各个时间点的状态对象执行动作;所述预置的各个状态对象执行动作的描述信息包括动作标识、按键区域和按键操作类型。

9.一种服务器,其特征在于,包括处理器和存储介质,所述处理器,用于实现各个指令;

所述存储介质用于储存多条指令,所述指令用于由处理器加载并执行如权利要求1至7任一项所述的应用策略模型的训练方法。

说明书 :

一种应用策略模型的训练方法及装置

技术领域

[0001] 本发明涉及信息处理技术领域,特别涉及一种应用策略模型的训练方法及装置。

背景技术

[0002] 人工智能现已应用于很多领域,比如应用于游戏领域中,可以代替真实操作者(比如玩家)在游戏应用运行的过程中进行操作。这就需要事先训练一个应用策略模型,该应用策略模型用于根据游戏状态输出执行动作的信息,例如,根据某一游戏画面输出某一动作的标记,这样,游戏应用可以直接根据该应用策略模型输出的信息,执行相应操作。
[0003] 在训练应用策略模型的过程中,需要先采集训练样本,在训练样本中包括多个样本对,每个样本对都包括游戏状态和执行动作的信息。在现有的样本数据采集过程中,一般会在游戏应用内集成样本记录模块,当操作者通过操作应用终端,使得应用终端在运行游戏应用的过程中,该样本记录模块会记录多帧游戏画面,及每帧游戏画面对应的动作信息。然后将样本记录模块记录的数据作为训练样本,以训练上述应用策略模型。
[0004] 但是,为了实现现有的样本数据采集,需要在游戏应用开发阶段,在游戏应用内集成样本记录模块,这就要求与游戏开发商进行合作;或者游戏本身是开源应用,这对很多商业游戏来说是不可行的。

发明内容

[0005] 本发明实施例提供一种应用策略模型的训练方法及装置,实现了由独立的应用策略平台通过建立的连接,对应用终端的运行状态及用户操作事件,以得到样本对。
[0006] 本发明实施例第一方面提供一种应用策略模型的训练方法,包括:
[0007] 与应用终端建立连接;
[0008] 通过所述建立的连接,采集所述应用终端在预设时间段内的运行状态;
[0009] 通过所述建立的连接,采集在所述预设时间段内用户操作所述应用终端的用户操作事件;
[0010] 根据预置的状态对象执行动作的描述信息,解析所述用户操作事件,得到所述应用终端基于所述用户操作的状态对象执行动作;
[0011] 建立所述运行状态与状态对象执行动作之间的对应关系,将每个对应关系作为一个样本对,以训练应用策略模型。
[0012] 本发明实施例第二方面提供一种应用策略平台,包括:
[0013] 连接建立单元,用于与应用终端建立连接;
[0014] 状态采集单元,用于通过所述建立的连接,采集所述应用终端在预设时间段内的运行状态;
[0015] 操作采集单元,用于通过所述建立的连接,采集在所述预设时间段内用户操作所述应用终端的用户操作事件;
[0016] 解析单元,用于根据预置的状态对象执行动作的描述信息,解析所述用户操作事件,得到所述应用终端基于所述用户操作的状态对象执行动作;
[0017] 样本建立单元,用于建立所述运行状态与状态对象执行动作之间的对应关系,将每个对应关系作为一个样本对,以训练应用策略模型。
[0018] 本发明实施例第三方面提供一种存储介质,所述存储介质储存多条指令,所述指令适于由处理器加载并执行如本发明实施例第一方面所述的应用策略模型的训练方法。
[0019] 本发明实施例第四方面提供一种终端设备,其特征在于,包括处理器和存储介质,所述处理器,用于实现各个指令;
[0020] 所述存储介质用于储存多条指令,所述指令用于由处理器加载并执行如本发明实施例第一方面所述的应用策略模型的训练方法。
[0021] 可见,在本实施例的方法中,应用策略平台会与应用终端建立连接,并通过建立的连接,采集应用终端的运行状态及用户操作应用终端的用户操作事件;然后根据预置的各个状态对象执行动作的描述信息,解析用户操作事件得到应用终端的状态对象执行动作,最后建立运行状态与状态对象执行动作之间的对应关系,一个对应关系则为一个样本对,以训练应用策略模型。这样,通过部署一个独立的平台即应用策略平台就可以获取到应用策略模型的训练样本,而不需要在应用终端内置样本记录模块,方便了对训练样本的采集;且对不同应用的应用策略模型的训练样本进行采集时,只需预置相应的状态对象执行动作的描述信息即可,不需要改动太大,扩展性较强;且在这个过程中,用户对应用终端的操作只是普通操作,而不需要另外定义用户操作,进一步地简化了训练样本采集的过程。

附图说明

[0022] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0023] 图1是本发明实施例提供的一种应用策略模型的训练方法的示意图;
[0024] 图2是本发明一个实施例提供的一种应用策略模型的训练方法的流程图;
[0025] 图3a是本发明一个实施例中判定按键操作类型是否为点击或按压的方法流程图;
[0026] 图3b是本发明一个实施例中判定按键操作类型是否为松开的方法流程图;
[0027] 图3c是本发明一个实施例中判定按键操作类型是否为滑动的方法流程图;
[0028] 图4是本发明一个实施例中应用策略平台展示的一个样本对的示意图;
[0029] 图5是本发明应用实施例中一种应用策略模型的训练方法所应用于的系统示意图;
[0030] 图6是本发明应用实施例提供的一种应用策略模型的训练方法的示意图;
[0031] 图7a是本发明应用实施例中一种用户操作事件解析方法的流程图;
[0032] 图7b是本发明应用实施例中另一种用户操作事件解析方法的流程图
[0033] 图8是本发明应用实施例中确定的初始游戏策略模型的结构示意图;
[0034] 图9是本发明实施例提供的一种应用策略平台的结构示意图;
[0035] 图10是本发明实施例提供的另一种应用策略平台的结构示意图;
[0036] 图11是本发明实施例提供的一种服务器的结构示意图。

具体实施方式

[0037] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0038] 本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排它的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0039] 本发明实施例提供一种应用策略模型的训练方法,主要可以应用于如图1所示的系统中,该系统中应用策略平台可以与一个或多个应用终端(图1以1个应用终端为例说明)建立连接,且可以按照如下的方法进行应用策略模型的训练:
[0040] 与应用终端建立连接;通过所述建立的连接,采集所述应用终端在预设时间段内的运行状态;通过所述建立的连接,采集在所述预设时间段内用户操作所述应用终端的用户操作事件;根据预置的状态对象执行动作的描述信息,解析所述用户操作事件,得到所述应用终端基于所述用户操作的状态对象执行动作;建立所述运行状态与状态对象执行动作之间的对应关系,将每个对应关系作为一个样本对,以训练应用策略模型。
[0041] 其中,应用终端具体可以是游戏等应用的终端。如果应用策略平台连接的应用终端为多个时,这些应用终端可以是相同应用的终端,比如,都为某一游戏应用的终端,这样,这些应用终端也可以是不相同应用的终端,比如,为不同游戏应用的终端。
[0042] 这样,通过部署一个独立的平台即应用策略平台就可以获取到应用策略模型的训练样本,而不需要在应用终端内置样本记录模块,方便了对训练样本的采集;且对不同应用的应用策略模型的训练样本进行采集时,只需预置相应的状态对象执行动作的描述信息即可,不需要改动太大,扩展性较强;且在这个过程中,用户对应用终端的操作只是普通操作,而不需要另外定义用户操作,进一步地简化了训练样本采集的过程。
[0043] 本发明实施例提供一种应用策略模型的训练方法,主要是由上述的应用策略平台所执行的方法,流程图如图2所示,包括:
[0044] 步骤101,与应用终端建立连接,该连接可以是物理连接,也可以是无线网络的连接等。
[0045] 可以理解,用户可以通过操作应用终端,使得应用终端连接到应用策略平台,比如通过数据线连接到应用策略平台等,这样,应用策略平台可以直接发起本实施例的步骤;或是等待与应用策略平台建立连接的应用终端数量达到预置数量时,直接发起本实施例的步骤。
[0046] 在应用终端与应用策略平台建立连接后,用户可以操作应用终端,使得应用终端运行应用,而应用策略平台执行如下的步骤102到105。
[0047] 其中,与应用策略平台建立连接的应用终端为一个应用中的一个或多个应用终端;也可以为多个应用的多个应用终端。
[0048] 步骤102,通过建立的连接,采集应用终端在预设时间段内的运行状态。
[0049] 具体地,应用策略平台可以发送运行状态采集命令给应用终端,当应用终端接收到运行状态采集命令后,开启状态采集模块,由状态采集模块在应用终端运行应用的过程中,采集应用终端的运行状态,并将采集的运行状态通过上述建立的连接传输给应用策略平台。
[0050] 其中,预设时间段是应用策略平台中事先设置的时间段,比如1个小时等;运行状态主要是指应用终端在运行应用的过程中显示的运行界面,例如,游戏应用终端显示的某一游戏画面等,该运行界面随着用户对应用终端操作的变化而变化,且应用终端在不同时间点显示的运行界面也会不同,则应用策略平台采集到的运行状态具体可以是应用终端在预设时间段内的各个时间点上的运行界面。
[0051] 步骤103,通过建立的连接,采集在预设时间段内用户操作应用终端的用户操作事件。
[0052] 具体地,应用策略平台可以发送操作采集命令给应用终端,当应用终端接收到操作采集命令后,开启操作采集模块,由操作采集模块在应用终端运行应用的过程中,采集用户对应用终端的用户操作事件,并将采集的用户操作事件通过上述建立的连接传输给应用策略平台。
[0053] 其中,采集用户操作事件对应的时间段,需要和上述采集运行状态对应的时间段一致,且用户操作事件和运行状态的采集频率需要保持一致,这样,才能得知某一个运行状态时对应的用户操作事件包括些什么信息。本实施例中采集的用户操作事件是指用户在操作应用终端时,应用终端所检测到的用户操作信息,具体可以包括:在预设时间段内,各个时间点上用户对应用终端操作的用户操作事件。
[0054] 某一时间点上,用户对应用终端操作的用户操作事件可以包括用户操作应用终端的按键信息,及用户操作应用终端的时间点等信息。其中,如果应用终端包括触控显示屏,则用户操作应用终端的按键信息主要是虚拟按键的信息,可以包括触控点个数,及各个触控点分别对应的触控位置(比如坐标信息等)和标识等信息,例如,用户通过1个手指操作触控显示屏的左下角的位置,则按键信息可以包括触控点个数为1个,触控位置为该触控点在左下角相应位置的坐标信息等信息。如果应用终端包括物理按键,则用户操作应用终端的按键信息可以包括操作的物理按键等信息,可以包括一个或多个物理按键的信息。
[0055] 需要说明的是,上述步骤102和103之间并没有绝对的顺序关系,可以同时进行,也可以顺序进行,图2中显示的流程只是其中一种具体的实例。
[0056] 步骤104,根据预置的状态对象执行动作的描述信息,解析用户操作事件,得到应用终端基于上述用户操作的状态对象执行动作。
[0057] 这里,状态对象执行动作是指用户在操作应用终端的过程中,当应用终端处于某一运行状态时,该运行状态中的某一运动对象的动作,其中,这些动作是运动对象的基本动作,运动对象可以是虚拟人物或虚拟物体等。应用策略平台具体可以解析得到上述预设时间段内,各个时间点的状态对象执行动作,且针对不同应用,状态对象执行动作也是不同的。
[0058] 比如,在某一游戏应用中,状态对象执行动作为游戏终端显示的游戏画面中游戏对象的执行动作,例如,“none”为游戏对象无动作,“Forward”为游戏对象前进,“Backward”为游戏对象后退,“left”为游戏对象左移,“right”为游戏对象右移,“turn_left”为游戏对象左转,“turn_right”为游戏对象右转等。
[0059] 具体地,应用策略平台在解析用户操作事件时,可以先根据多个时间点上用户操作应用终端的按键信息,分别确定多个时间点上用户操作应用终端的按键操作类型;然后根据各个时间点上的按键操作类型、按键信息及预置的各个状态对象执行动作的描述信息,确定各个时间点的状态对象执行动作。
[0060] 其中,每个时间点的按键操作类型可以包括用户操作应用终端中按键的类型,具体可以包括无操作、按压、松开、滑动或点击中的任一类型。进一步地,在本实施例中,在应用策略平台中事先预置的各个状态对象执行动作的描述信息中可以包括如下信息:动作标识、按键区域和按键操作类型等信息。每个应用对应有一套描述信息,针对不同应用所预置的描述信息是不同的,例如,针对某一应用,在“右移”这个状态对象执行动作的描述信息中包括:按键区域为应用终端的触控显示屏的右下角区域,及按键操作类型为滑动等;且一套描述信息可以以文件的形式储存在本地的应用策略平台中,比如,以JSON格式的文件进行储存,则一个应用对应一个JSON文件的描述信息。
[0061] 例如,一个具体的JSON文件可以包括如下表1所示的信息:
[0062]
[0063]
[0064] 表1
[0065] 其中,actions列表中每个元素为一个状态对象执行动作的定义,其字段中,startRectx、startRecty、width和height用于指明该动作对应的按键区域,具体为矩形框;id用于表示该状态对象执行动作的唯一标识;type用于表示按键操作类型,其中,0表示误操作,1表示按压,2表示松开,3表示点击,4表示滑动;name表示该状态对象执行动作的名称。
[0066] 在本步骤104中,应用策略平台在确定各个时间点的状态对象执行动作时,可以将先确定的按键操作类型结合上述步骤103采集的用户操作事件中的按键信息,与预置的描述信息进行匹配,从而匹配得到与确定的按键操作类型结合按键信息相匹配的状态对象执行动作。
[0067] 另外,应用策略平台在确定按键操作类型时,主要可以包括如下几种方式:
[0068] (1)如图3a所示,可以通过如下步骤来确定按键操作类型是否为点击或按压。
[0069] 步骤A1,判断某一时间点上用户操作应用终端的第一触控点的坐标信息是否在预置的描述信息中的按键区域内,如果在某一按键区域内,则执行步骤B1;如果不在任一按键区域内,则判定失败。
[0070] 步骤B1,确定某一时间点的按键操作类型为点击或按压。
[0071] (2)如图3b所示,可以通过如下步骤来确定按键操作类型是否为松开。
[0072] 步骤A2,判断某一时间点上用户操作应用终端的第一触控点的坐标信息是否在预置的描述信息中的按键区域内,如果在某一按键区域内,则继续执行步骤B2;如果不在任一按键区域内,则判定失败。
[0073] 步骤B2,判断某一时间点的下一时间点上用户操作应用终端的第二触控点的坐标信息是否在上述的某一按键区域内,如果在,则继续执行步骤C2,如果在,则判定失败。
[0074] 步骤C2,判断上述第一触控点与第二触控点是否为同一触控点,如果不是,则执行步骤D2;如果是,则判定失败。
[0075] 步骤D2,确定下一时间点的按键操作类型为松开。
[0076] (2)如图3c所示,可以通过如下步骤来确定按键操作类型是否为滑动。
[0077] 步骤A3,判断某一时间点上用户操作应用终端的第一触控点的坐标信息是否在预置的描述信息中的按键区域内,如果在某一按键区域内,则继续执行步骤B3;如果不在任一按键区域内,则判定失败。
[0078] 步骤B3,判断某一时间点的上一时间点上用户操作应用终端的第三触控点的坐标信息是否在上述的某一按键区域内,如果在,则继续执行步骤C3,如果不在,则判定失败。
[0079] 步骤C3,判断上述第一触控点与第三触控点是否为同一触控点,如果是,则执行步骤D3;如果不是,则判定失败。
[0080] 步骤D3,判断第一触控点与第三触控点之间向量的角度是否在预置范围内(比如是否小于45度等),如果在,则执行步骤E3;如果不在,则判定失败。
[0081] 步骤E3,确定某一时间点的按键操作类型为滑动。
[0082] 需要说明的是,如果某一时间点上用户操作应用终端的按键信息包括多个触控点的坐标信息,则应用策略平台在确定该时间点的按键操作类型时,需要根据多个触控点的坐标信息,分别确定多个按键操作类型;且在根据按键操作类型确定状态对象执行动作时,会确定各个触控点分别对应的状态对象执行动作。
[0083] 步骤105,建立运行状态与状态对象执行动作之间的对应关系,将每个对应关系作为一个样本对,以训练应用策略模型。
[0084] 具体地,在形成样本对时,应用策略平台可以按照上述预设时间段内各个时间点,将同一个时间点的运行状态与状态对象执行动作进行关联,形成一个样本对,这样,可以形成多个样本对,通过这多个样本对训练应用策略模型。具体地,应用策略平台可以将这些样本对进行划分,将多个样本对中的一部分样本对作为训练集,另一部分样本对作为验证集,来训练应用策略模型。其中,训练的应用策略模型的结构可以为卷积神经网络结构等;也可以由用户通过应用策略平台进行定制,即用户通过应用策略平台设置应用策略模型中所包括的结构。
[0085] 进一步地,应用策略平台在得到多个样本对后,可以先按照预置的策略对这些样本对进行修正,然后再用修改后的样本对训练应用策略模型,使得训练得到的应用策略模型更准确。其中,预置的策略是指修正样本对的策略,具体可以包括:去掉某些样本对,比如对多个样本对进行跳帧重采样,去掉过多冗余的样本对,即均匀地去掉某些时间点对应的样本对;修正样本对中状态对象执行动作的信息。
[0086] 进一步地,应用策略平台在得到多个样本对后,可以展示各个样本对,具体地,在每个样本对中的运行状态为运行界面,状态对象执行动作为界面对象执行动作,则应用策略平台会显示运行界面,并在运行界面上展示界面对象执行动作,且在运行界面上还可以展示其它信息,比如,展示各个界面对象执行动作的描述信息中的按键区域,及展示应用策略平台采集的用户操作应用终端的按键信息。应用策略平台在运行界面上展示各种不同信息时,可以采用不同的形式进行展示,比如可以同不同颜色框展示采集到的按键信息,与按键区域等。
[0087] 例如图4所示,应用策略平台会显示采集的某一游戏应用终端的游戏画面,即运行界面,并在游戏画面中用实线方框1、2和3展示在应用策略平台中预置的各个游戏对象执行动作(即界面对象执行动作)的描述信息中的按键区域;且通过实线方框4和5展示游戏对象在执行相应动作前后的区域;而用虚线方框0展示采集到的用户操作事件中按键信息对应的按键区域。
[0088] 这样,通过展示各个样本对,可以得知各个样本对中的运行状态与状态对象执行动作是否相符合,如果不相符合,可以修正或去除样本对。
[0089] 可见,在本实施例的方法中,应用策略平台会与应用终端建立连接,并通过建立的连接,采集应用终端的运行状态及用户操作应用终端的用户操作事件;然后根据预置的各个状态对象执行动作的描述信息,解析用户操作事件得到应用终端的状态对象执行动作,最后建立运行状态与状态对象执行动作之间的对应关系,一个对应关系则为一个样本对,以训练应用策略模型。这样,通过部署一个独立的平台即应用策略平台就可以获取到应用策略模型的训练样本,而不需要在应用终端内置样本记录模块,方便了对训练样本的采集;且对不同应用的应用策略模型的训练样本进行采集时,只需预置相应的状态对象执行动作的描述信息即可,不需要改动太大,扩展性较强;且在这个过程中,用户对应用终端的操作只是普通操作,而不需要另外定义用户操作,进一步地简化了训练样本采集的过程。
[0090] 需要说明的是,上述步骤101到105是选择训练应用策略模型的训练样本的过程,当应用策略模型训练好后,应用策略平台可以获取应用终端的待处理运行状态,然后就根据待处理运行状态及训练好的应用策略模型,直接确定出对应的状态对象执行动作。
[0091] 其中,应用策略平台可以通过上述建立的连接,向应用终端获取待处理运行状态;当确定出对应的状态对象执行动作后,可以发送给应用终端,由应用终端展示状态对象执行动作。
[0092] 以下以一个具体的应用实例来说明本发明中应用策略模型的训练方法,本实施例的方法可以应用如图5所示的系统中,在该系统中,应用策略平台可以包括采集装置、训练服务器和应用装置;且连接应用策略平台的应用终端为游戏终端,采集的应用终端的运行状态具体为游戏画面,得到的状态对象执行动作具体为游戏对象执行动作,训练的应用策略模型为游戏策略模型。具体地,本发明实施例的方法可以包括如下两个部分:
[0093] (1)参考图6所示,应用策略平台可以按照如下步骤来实现游戏策略模型的训练:
[0094] 步骤201,应用策略平台中的采集装置分别与多个游戏终端建立连接,这多个游戏终端为同一游戏的终端,比如穿越火线或极速飞车等游戏的终端。多个用户分别操作多个游戏终端,使得每个游戏终端运行游戏,且每个游戏终端都包括触控显示屏。
[0095] 针对每一个游戏终端,可以执行如下步骤202到205的方法。
[0096] 步骤202,采集装置可以向游戏终端发送运行状态采集命令,这样游戏终端会开启截屏模块,在游戏终端运行游戏的过程中,截屏模块可以以固定帧率实时获取游戏画面,并将获取的多帧游戏画面通过上述建立的连接,发送给采集装置。其中,用户可以通过事先通过游戏终端设置游戏画面的分辨率和帧率。
[0097] 一帧游戏画面为一个时间点的运行状态。
[0098] 步骤203,采集装置可以向游戏终端发送操作采集命令,这样游戏终端会开启操作采集模块,在上述截屏模块获取游戏画面的同时,操作采集模块可以向采集装置输出各个时间点的用户操作事件。
[0099] 其中,每个时间点的用户操作事件都可以包括用户操作游戏终端的触控显示屏的按键信息,比如,触控点个数及各个触控点分别对应的坐标信息等。
[0100] 例如,游戏终端可以通过调试软件ADB的获取事件(getevent)命令来采集用户操作事件。
[0101] 步骤204,采集装置在获取到用户操作事件后,根据预置的各个游戏对象执行动作的描述信息,解析用户操作事件,得到多个时间点的游戏对象执行动作(即上述的状态对象执行动作)。
[0102] 具体地,采集装置可以先从用户操作事件中解析得到各个时间点上用户操作游戏终端的触控点个数及各个触控点的坐标信息等信息。具体可以包括如下两种解析方法:
[0103] (1)如图7a所示,可以通过如下步骤实现用户操作事件的一种解析:
[0104] 步骤11,判断在用户操作事件中的信息类型是否为多点触控的标识(ABS_MT_tracking_id),如果是,则记录多点触控的标识;如果不是,继续执行步骤12。
[0105] 步骤12,判断用户操作事件中的信息类型是否为坐标点X和Y,如果是,则记录触控点的坐标信息为X和Y;如果不是,继续执行步骤13。
[0106] 步骤13,判断用户操作事件中的信息类型是否为同步多点报告(SYN_MT_report),如果是,表示在同时操作游戏终端的多个触控点中,某一个触控点信息的结束,则需要将这个触控点的信息添加到多点触控列表中;如果不是,继续执行步骤14。
[0107] 步骤14,判断用户操作事件中的信息类型是否为同步报告(SYN_report),如果是,表示当前时间点的多个触控点操作游戏终端的结束,则输出多个触控点的信息,且清除多点触控列表中的信息;如果不是,返回执行步骤11。
[0108] (2)如图7b所示,可以通过如下步骤实现用户操作事件的另一种解析:
[0109] 步骤21,判断在用户操作事件中的信息类型是否为多点位置(ABS_MT_slot),如果是,则记录位置信息(slot);如果不是,继续执行步骤22。
[0110] 步骤22,判断用户操作事件中的信息类型是否为坐标点X和Y,如果是,则记录触控点的坐标信息为X和Y;如果不是,继续执行步骤23。
[0111] 步骤23,判断用户操作事件中的信息类型是否为多点触控的标识(ABS_MT_tracking_id),如果是,则将多点触控的标识与上述记录的位置信息进行关联;如果不是,继续执行步骤24。
[0112] 步骤24,判断用户操作事件中的信息类型是否为按键触摸类型(BTN_touch),如果是,则如果该BTN_touch的值为松开(up),则说明用户多点触摸游戏终端结束,需要输出上述触控点的信息,且删除与上述记录的位置信息关联的触控点的信息,即解除位置信息与触控点的标识的对应关系;如果不是,返回执行步骤21。
[0113] 然后采集装置根据上述解析得到的各个时间点上的触控点个数及各个触控点的坐标信息,确定各个时间点上用户操作游戏终端的按键操作类型,具体地,可以按照上述图3a到图3c所示的方法来确定按键操作类型是点击,或是按压,或是滑动,或是松开等。
[0114] 最后采集装置根据各个时间点上的按键操作类型、按键信息及预置的各个游戏对象执行动作的描述信息,确定所述各个时间点的游戏对象执行动作。
[0115] 步骤205,采集装置建立上述步骤202获取的游戏画面与步骤204得到的游戏对象执行动作之间的对应关系,即将同一时间点的游戏画面与游戏对象执行动作进行关系,得到的每个对应关系即为一个样本对,从而可以得到多个样本对。
[0116] 在得到样本对后,采集装置将每个时间点的游戏画面以帧序号来标记,并将多个时间点的游戏画面储存为图片或固定帧率的视频,例如,魂斗罗中的某一帧游戏画面对应图片的命名可以为“2018-05-21_11_16_27_640X360_XXX.jpg”,其中,XXX为帧序号。
[0117] 且采集装置会将各个时间点的游戏对象执行动作以某一格式的文件进行储存,比如以CSV文件的形式进行储存。
[0118] 例如下表2所示的CSV文件中,每行为一帧游戏画面对应的游戏对象执行动作的信息,第一列为游戏画面对应图片的文件名,第二列为游戏对象执行动作的标识,第三列为游戏对象执行动作的名称。
[0119] 图片的文件名 标识 名称Output/ShootGame/2018-5-11_11_16_27_640X360_298.ipg 4 Jump
…… …… ……
Output/ShootGame/2018-5-11_11_16_27_640X360_315.ipg 1 Right
[0120] 表2
[0121] 采集装置可以直接将样本对发送给应用策略平台中的训练服务器;或先对多个样本对进行修正后,将修正后的样本对发送给训练服务器。
[0122] 步骤206,训练服务器根据获取的多个样本对训练游戏策略模型(即上述的应用策略模型),具体地,训练服务器会先将获取的多个样本对进行划分,将其中一部分样本对作为训练集,另一部分样本对作为验证集。
[0123] 然后确定初始游戏策略模型的结构,具体地,游戏策略模型的结构可以是卷积神经网络结构,或是用户定制的其它结构;且对初始游戏策略模型进行初始化,即确定初始游戏策略模型在计算过程中的固定参数的初始值。
[0124] 例如图8所示,初始游戏策略模型可以包括:特征提取模块和分类器,其中特征提取模块可以包括多个(图中以一个为例说明)卷积层、多个池化层和多个全连接层等,用于对游戏画面的特征进行提取后,输出给分类器;其中分类器的分类类别的个数与上述游戏应用中游戏对象执行动作的个数一致,用于根据特征提取模块提取的游戏画面的特征,输出该游戏画面对应的各个游戏对象执行动作的概率,将概率最大的游戏对象执行动作作为该游戏画面游戏对象执行动作。
[0125] 将训练集中各个样本对中的游戏画面输入到初始游戏策略模型中,得到各个游戏画面对应的游戏对象执行动作;并根据通过初始游戏策略模型得到的游戏对象执行动作与训练集中各个样本对中的游戏对象执行动作的信息,计算得到初始游戏策略模型的计算误差,具体可以采用交叉熵损失函数;然后根据计算的误差调整初始游戏策略模型中的固定参数值;在调整了固定参数值后,针对调整固定参数值的初始游戏策略模型,返回对训练集进行处理并继续根据计算的误差调整固定参数值。
[0126] 这样,循环对游戏策略模型中的固定参数值进行调整,直到对固定参数值的调整达到收敛,或是对固定参数值的调整次数达到预置值(比如20次),训练服务器可以停止循环过程,并得到最终的游戏策略模型。
[0127] 训练服务器可以用户上述确定的验证集,对最终训练得到的游戏策略模型进行验证。
[0128] (2)游戏策略模型的应用
[0129] 在训练服务器训练得到游戏策略模型后,应用策略平台中的应用装置可以从游戏终端获取到多帧待处理的游戏画面,则应用装置会根据通过游戏策略模型直接确定多帧待处理的游戏画面,分别对应的游戏对象执行动作;然后将游戏对象执行动作的信息发送给游戏终端,由游戏终端根据这些信息实现游戏人物在游戏中的操作,而在游戏过程中不需要游戏玩家操作游戏终端。
[0130] 可见,本实施例的方法可以实现如下效果:
[0131] (1)方便快捷地获取到样本对,从而训练得到游戏策略模型。例如,在针对极速飞车游戏,应用策略平台从获取样本对到游戏策略模型的训练,再到将游戏策略模型进行应用,这整个流程所花费的时间不到一天。
[0132] (2)可扩展性较强,如果需要训练某一游戏的游戏策略模型时,只需在应用策略平台中预置该游戏中各个游戏对象执行动作的描述信息即可,方便应用于多种游戏的游戏策略模型。
[0133] (3)在采集样本对的过程中,用户操作游戏终端时,只需像普通游戏玩家一样操作游戏终端即可。
[0134] 本发明实施例还提供一种应用策略平台,其结构示意图如图9所示,具体可以包括:
[0135] 连接建立单元10,用于与应用终端建立连接;
[0136] 状态采集单元11,用于通过所述连接建立单元10建立的连接,采集所述应用终端在预设时间段内的运行状态;
[0137] 操作采集单元12,用于通过所述连接建立单元10建立的连接,采集在所述预设时间段内用户操作所述应用终端的用户操作事件。
[0138] 解析单元13,用于根据预置的状态对象执行动作的描述信息,解析所述操作采集单元12采集的用户操作事件,得到所述应用终端基于所述用户操作的状态对象执行动作。其中,不同应用对应的所述状态对象执行动作的描述信息不同,一个应用对应的状态对象执行动作的描述信息以文件形式储存在本地。
[0139] 该解析单元13,具体用于如果所述用户操作事件包括所述预设时间段内,多个时间点上用户操作所述应用终端的按键信息,则根据所述多个时间点上用户操作所述应用终端的按键信息,分别确定所述多个时间点上用户操作所述应用终端的按键操作类型;根据各个时间点上的按键操作类型、按键信息及预置的各个状态对象执行动作的描述信息,确定所述各个时间点的状态对象执行动作。
[0140] 具体地,如果所述预置的状态对象执行动作的描述信息中包括按键区域,所述用户操作应用终端的按键信息包括触控点的坐标信息,则解析单元13在确定某一时间点的状态对象执行动作时:
[0141] 如果某一时间点上用户操作所述应用终端的第一触控点的坐标信息在预置的某一按键区域内,确定所述某一时间点的按键操作类型为点击或按压;
[0142] 如果某一时间点上用户操作所述应用终端的第一触控点的坐标信息在预置的某一按键区域内,且所述某一时间点的下一时间点上用户操作所述应用终端的第二触控点的坐标信息不在所述某一按键区域内,所述第一触控点与第二触控点为同一触控点,则确定所述下一时间点的按键操作类型为松开;
[0143] 如果某一时间点上用户操作所述应用终端的第一触控点的坐标信息,及所述某一时间点的上一时间点上用户操作所述应用终端的第三触控点的坐标信息是在所述预置的某一按键区域内,且所述第一触控点与第三触控点为同一触控点,所述第一触控点与第三触控点之间向量的角度在预置范围内,则确定所述某一时间点的按键操作类型为滑动。
[0144] 样本建立单元14,用于建立所述状态采集单元11采集到的运行状态与解析单元13得到的状态对象执行动作之间的对应关系,将每个对应关系作为一个样本对,以训练应用策略模型。
[0145] 可见,在本实施例的应用策略平台中,连接建立单元10会与应用终端建立连接,状态采集单元11和操作采集单元12通过建立的连接,采集应用终端的运行状态及用户操作应用终端的用户操作事件;然后解析单元13根据预置的各个状态对象执行动作的描述信息,解析用户操作事件得到应用终端的状态对象执行动作,最后样本建立单元14建立运行状态与状态对象执行动作之间的对应关系,一个对应关系则为一个样本对,以训练应用策略模型。这样,通过部署一个独立的平台即应用策略平台就可以获取到应用策略模型的训练样本,而不需要在应用终端内置样本记录模块,方便了对训练样本的采集;且对不同应用的应用策略模型的训练样本进行采集时,只需预置相应的状态对象执行动作的描述信息即可,不需要改动太大,扩展性较强;且在这个过程中,用户对应用终端的操作只是普通操作,而不需要另外定义用户操作,进一步地简化了训练样本采集的过程。
[0146] 参考图10所示,在一个具体的实施例中,应用策略平台除了可以包括上述图9所示的结构外,还可以包括展示单元15、训练单元16和应用单元17,其中:
[0147] 展示单元15,用于如果在上述样本建立单元14得到的每个样本对中的运行状态为运行界面,状态对象执行动作为界面对象执行动作,显示所述运行界面,并在所述运行界面上展示所述界面对象执行动作。
[0148] 训练单元16,用于按照预置的策略对所述样本建立单元14得到的样本对进行修正,用修正后的样本对训练所述应用策略模型。该训练单元16还可以不对上述样本对进行修正,直接训练应用策略模型。
[0149] 应用单元17,用于获取所述应用终端的待处理运行状态;根据所述待处理运行状态及所述训练单元16训练得到的应用策略模型,确定对应的状态对象执行动作。
[0150] 本发明实施例还提供一种服务器,其结构示意图如图11所示,该服务器可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)20(例如,一个或一个以上处理器)和存储器21,一个或一个以上存储应用程序221或数据222的存储介质22(例如一个或一个以上海量存储设备)。其中,存储器21和存储介质22可以是短暂存储或持久存储。存储在存储介质22的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器20可以设置为与存储介质22通信,在服务器上执行存储介质22中的一系列指令操作。
[0151] 具体地,在存储介质22中储存的应用程序221包括应用策略模型训练的应用程序,且该程序可以包括上述应用策略平台中的连接建立单元10,状态采集单元11,操作采集单元12,解析单元13,样本建立单元14,展示单元15,训练单元16和应用单元17,在此不进行赘述。更进一步地,中央处理器20可以设置为与存储介质22通信,在服务器上执行存储介质22中储存的应用策略模型训练的应用程序对应的一系列操作。
[0152] 服务器还可以包括一个或一个以上电源23,一个或一个以上有线或无线网络接口24,和/或,一个或一个以上操作系统223,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
[0153] 上述方法实施例中所述的由应用策略平台所执行的步骤可以基于该图11所示的服务器的结构。
[0154] 本发明实施例还提供一种存储介质,所述存储介质储存多条指令,所述指令适于由处理器加载并执行上述应用策略平台所执行的应用策略模型的训练方法。
[0155] 本发明实施例还提供一种终端设备,包括处理器和存储介质,所述处理器,用于实现各个指令;所述存储介质用于储存多条指令,所述指令用于由处理器加载并执行上述应用策略平台所执行的应用策略模型的训练方法。
[0156] 本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM)、随机存取存储器RAM)、磁盘或光盘等。
[0157] 以上对本发明实施例所提供的应用策略模型的训练方法及装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。