用于控制游戏中的虚拟角色的方法和设备与流程

文档序号:20836797发布日期:2020-05-22 16:58阅读:152来源:国知局
用于控制游戏中的虚拟角色的方法和设备与流程

本公开涉及游戏的技术领域,具体地涉及用于控制游戏中的虚拟角色的方法和设备。



背景技术:

人工智能(artificialintelligence,ai)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。

随着人工智能技术研究和进步,人工智能技术在多个领域展开研究和应用。例如,目前在游戏开发及应用中,很多场景下都会用到人工智能,称为游戏人工智能,即游戏ai。例如,在游戏开发过程中,游戏ai可以替代测试人员的角色,通过游戏ai玩游戏获得测试数据,以实现游戏性能测试。再例如,在游戏应用过程中,游戏玩家在掉线或游戏人数不够的情况下,可以主动选择游戏ai来控制游戏角色与真人进行游戏。

目前,主要是利用深度学习网络来实现对游戏角色的人工智能控制,其将游戏图像作为网络输入,通过多个卷积层和池化层后提取图像的深度特征,最后输出游戏动作。然而,由于当前游戏的场景图像越来越复杂,很难直接从场景图像提取合适的深度特征,且深度学习网络的参数数量较多,容易过拟合。此外,深度学习网络的训练需要大量的样本数据,一旦遇到之前未出现的场景图像,很容易输出错误的动作。



技术实现要素:

有鉴于此,本公开提供了用于控制游戏中的虚拟角色的方法和设备,期望克服上面提到的部分或全部缺陷以及其它可能的缺陷。

根据本公开的第一方面,提供了一种用于控制游戏中的虚拟角色的方法,包括:获取所述游戏中所述虚拟角色当前所在的游戏场景的场景图像;利用经训练的目标检测网络检测所述场景图像中的目标对象的类别和位置,所述目标对象至少包括所述虚拟角色;响应于所述场景图像中存在所述虚拟角色之外的另外目标对象,基于所述检测到的目标对象的类别和位置确定所述场景图像的状态特征数据,所述状态特征数据表征每个另外目标对象与所述虚拟角色之间位置关系;将所述场景图像的状态特征数据输入动作输出模型以得到与所述场景图像对应的目标动作;控制所述虚拟角色在所述游戏场景中执行所述目标动作。

在一些实施例中,所述经训练的目标检测网络是通过如下步骤训练的:从录制的玩所述游戏时的视频样本中采集用于训练的场景图像以形成图像训练集;在训练集中的每个用于训练的场景图像中标注目标对象的类别和位置;将所述每个用于训练的场景图像输入所述目标检测网络,以得到所述目标对象的预测的类别和位置;确定所述目标对象的预测的类别和位置和所述目标对象的被标注的类别和位置的总损失;更新所述目标检测网络的参数使得所述总损失最小化。

在一些实施例中,所述总损失为针对所述目标对象的类别的交叉熵损失和针对所述目标对象的位置的l1损失之和,其中针对所述目标对象的类别的交叉熵损失表征所述目标对象的预测的类别和所述目标对象的被标注的类别间的误差,以及针对所述目标对象的位置的l1损失表征所述目标对象的预测的位置和所述目标对象的被标注的位置间的误差。

在一些实施例中,从录制的玩所述游戏时的视频样本中采集用于训练的场景图像包括:每隔固定游戏时间间隔从所述视频样本中采集用于训练的场景图像;响应于所述用于训练的场景图像中的第一场景图像与第二场景图像的相似度大于相似度阈值,则移除所述第一场景图像与第二场景图像之一。

在一些实施例中,基于所述检测到的目标对象的类别和位置确定所述场景图像的状态特征数据包括:以所述虚拟角色的中心为原点在整个场景图像的平面内辐射建立m条射线;确定所述每个另外目标对象的距离量化索引,所述距离量化索引表征所述每个另外目标对象在每条射线上距离所述原点的最短距离,以m×n×q大小的特征矩阵来表征所述状态特征数据,其中在特征矩阵的第一通道表示所述每个另外目标对象所在的射线且射线的总数为m,在特征矩阵的第二通道表示场景图像中的目标对象的类别且类别的总数为n,在特征矩阵的第三个通道表示所述每个另外目标对象的距离量化索引且距离量化索引的总数为q。

在一些实施例中,基于所述检测到的目标对象的类别和位置确定所述场景图像的状态特征数据包括:建立直角坐标系,其中以虚拟角色的中心为原点、以虚拟角色的前进方向为+x方向、以及与x方向垂直的方向为y方向;以所述虚拟角色的中心为原点在x方向上大于等于零的区域内辐射建立m条射线;确定所述每个另外目标对象的距离量化索引,所述距离量化索引表征所述每个另外目标对象在每条射线上距离所述原点的最短距离;以m×n×q大小的特征矩阵来表征所述状态特征数据,其中在特征矩阵的第一通道表示所述每个另外目标对象所在的射线且射线的总数为m,在特征矩阵的第二通道表示场景图像中的目标对象的类别且类别的总数为n,在特征矩阵的第三个通道表示所述每个另外目标对象的距离量化索引且距离量化索引的总数为q。

在一些实施例中,所述距离量化索引包括对所述最短距离的量化值进行独热编码形成的向量。

在一些实施例中,将所述场景图像的状态特征数据输入动作输出模型以得到与所述场景图像对应的目标动作包括:将所述特征矩阵转化为1×w的特征向量,其中,w为m、n、q的积;将所述1×w的特征向量输入动作输出模型以得到与所述场景图像对应的目标动作。

在一些实施例中,将所述场景图像的状态特征数据输入动作输出模型以得到与所述场景图像对应的目标动作包括:将所述场景图像连同在所述场景图像之前获取的多帧场景图像的状态特征数据输入动作输出模型以得到与所述场景图像对应的目标动作。

在一些实施例中,所述动作输出模型包括基于强化学习的深度学习模型,其中强化学习中的奖励函数与所述虚拟角色在游戏场景中执行动作后的表现得分正相关。

根据本公开的第二方面,提供了一种用于控制游戏中的虚拟角色的设备,包括:获取模块,被配置成获取所述游戏中所述虚拟角色当前所在的游戏场景的场景图像;检测模块,被配置成利用经训练的目标检测网络检测所述场景图像中的目标对象的类别和位置,所述目标对象至少包括所述虚拟角色;确定模块,被配置成响应于所述场景图像中存在所述虚拟角色之外的另外目标对象,基于所述检测到的目标对象的类别和位置确定所述场景图像的状态特征数据,所述状态特征数据表征每个另外目标对象与所述虚拟角色之间位置关系;输入模块,被配置成将所述场景图像的状态特征数据输入动作输出模型以得到与所述场景图像对应的目标动作;控制模块,被配置成控制所述虚拟角色在所述游戏场景中执行所述目标动作。

在一些实施例中,所述确定模块还包括:建立子模块,被配置成以所述虚拟角色的中心为原点在整个场景图像的平面内辐射建立m条射线;确定子模块,被配置成确定所述每个另外目标对象的距离量化索引,所述距离量化索引表征所述每个另外目标对象在每条射线上距离所述原点的最短距离;表征子模块,被配置成以m×n×q大小的特征矩阵来表征所述状态特征数据,其中在特征矩阵的第一通道表示所述每个另外目标对象所在的射线且射线的总数为m,在特征矩阵的第二通道表示场景图像中的目标对象的类别且类别的总数为n,在特征矩阵的第三个通道表示所述每个另外目标对象的距离量化索引且距离量化索引的总数为q。

在一些实施例中,所述动作输出模型包括基于强化学习的深度学习模型,其中强化学习中的奖励函数与所述虚拟角色在游戏场景中执行动作后的表现得分正相关。

根据本公开的第三方面,提供了一种计算设备,包括处理器;以及存储器,配置为在其上存储有计算机可执行指令,当计算机可执行指令被处理器执行时执行如上面所述的任意方法。

根据本公开的第四方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,当所述计算机可执行指令被执行时,执行如上面所述的任意方法。

通过本公开要求保护的用于控制游戏中的虚拟角色的方法和设备,达到了依据当前游戏的界面做出实时反应的目的,实现了游戏ai的效果。在本公开要求保护的用于控制游戏中的虚拟角色的方法和设备中,采用目标检测网络检测游戏中目标对象的类别和位置,并且通过状态特征数据有效描述了当前的游戏状态,这有效降低了动作输出模型学习场景图像的关键特征的难度,降低了动作输出模型的复杂度,防止了模型过拟合。此外,在本公开要求保护的用于控制游戏中的虚拟角色的方法和设备中,还可以采用基于强化学习的深度学习模型作为动作输出模型来实施游戏ai,通过状态特征数据作为基于强化学习的深度学习模型的输入,使得能够对游戏进行更多的探索,免去了对大量的样本数据的需要,极大降低了训练的难度,提升动作输出模型的鲁棒性。

根据下文描述的实施例,本公开的这些和其它优点将变得清楚,并且参考下文描述的实施例来阐明本公开的这些和其它优点。

附图说明

现在将更详细并且参考附图来描述本公开的实施例,其中:

图1图示了根据本公开的实施例的技术方案可以实施在其中的示例性应用场景;

图2图示了根据本公开的一个实施例的一种用于控制游戏中的虚拟角色的方法的示意性流程图;

图3图示了根据本公开的实施例中使用的一种目标检测网络的示意图;

图4图示了根据本公开的实施例中使用的dqn(深度q网络)算法的示意性架构图;

图5图示了根据本公开的一个实施例的用于对目标检测网络进行训练的方法的示例性流程图;

图6图示了根据本公开的一个实施例的用于基于检测到的目标对象的类别和位置确定场景图像的状态特征数据的方法的示例性流程图。;

图7a图示了根据本公开的一个实施例的虚拟角色当前所在的游戏场景的场景图像的示意图;

图7b和7c图示了利用目标检测网络检测到的、图7a所示的场景图像中的目标对象的类别和位置的示意图;

图8图示了根据本公开的另一个实施例的用于基于检测到的目标对象的类别和位置确定场景图像的状态特征数据的方法的示例性流程图;

图9图示了根据本公开的一个实施例的用于控制游戏中的虚拟角色的设备的示例性结构框图;以及

图10图示了一个示例系统,其包括代表可以实现本文描述的各种技术的一个或多个系统和/或设备的示例计算设备。

具体实施方式

下面的说明提供用于充分理解和实施本公开的各种实施例的特定细节。本领域的技术人员应当理解,本公开的技术方案可以在没有这些细节中的一些的情况下被实施。在某些情况下,并没有示出或详细描述一些熟知的结构和功能,以避免不必要地使对本公开的实施例的描述模糊不清。在本公开中使用的术语以其最宽泛的合理方式来理解,即使其是结合本公开的特定实施例被使用的。

首先,对本申请实施例中涉及的部分用语进行说明,以便于本领域技术人员理解:

ai是artificialintelligence的缩写,中文译为人工智能;

yolo是youonlylookonce的缩写,是一种目标检测框架;

darknet53:是包含53层卷积层的深度网络;

dqn算法:deepq-learning的缩写,深度q网络算法,是一种深度价值学习算法;

ac强化学习:actor-critic强化学习算法的,是一种动作评论强化学习算法。

图1图示了根据本公开的实施例的技术方案可以实施在其中的示例性应用场景100。如图1所示,所述应用场景100包括终端101、服务器102,所述终端101通过网络103与服务器102通信地耦合在一起。终端101上可以运行有游戏客户端104,游戏客户端104可以显示包括供玩家控制的虚拟角色的游戏。作为示例,当玩家在玩游戏的过程中离开或者掉线时、以及在游戏的自动化运行或者测试等时,可以将对虚拟角色的控制托管给服务器102。在服务器102上可以运行根据本公开的实施例的用于控制游戏中的虚拟角色的方法。作为示例,服务器102可以获取所述虚拟角色当前所在的游戏场景的场景图像,利用经训练的目标检测网络检测所述场景图像中的目标对象(包括所述虚拟角色)的类别和位置,并且如果所述场景图像中存在所述虚拟角色之外的另外目标对象,则基于所述检测到的目标对象的类别和位置确定用于表征每个另外目标对象与所述虚拟角色之间位置关系的状态特征数据,然后利用动作输出模型输出与所述场景图像对应的目标动作,最后控制所述虚拟角色在所述游戏场景中执行所述目标动作。应当指出,根据本公开的实施例的用于控制游戏中的虚拟角色的方法不仅可以实施在服务器102上,还可以实施在客户端101上或者任何其它可能的实体上,这也不是限制性的。

可选地,上述终端101可以包括但不限于以下至少之一:手机、平板电脑、笔记本电脑、台式pc机、数字电视等可以运行游戏客户端的终端。上述服务器102可以包括但不限于以下至少之一:pc机及其他用于进行游戏控制的设备。所述网络103例如可以是广域网(wan)、局域网(lan)、无线网络、公用电话网、内联网以及本领域的技术人员熟知的任何其它类型的网络。应当指出,上面描述的场景仅仅是本公开的实施例可以被实施在其中的一个示例,并不是限制性的。

图2图示了根据本公开的一个实施例的一种用于控制游戏中的虚拟角色的方法200的示意性流程图。如图2所示,所述方法200包括如下步骤。

在步骤201,获取所述游戏中所述虚拟角色当前所在的游戏场景的场景图像。换句话说,所述场景图像为当前的游戏画面,其中包括所述虚拟角色。作为示例,所述虚拟角色指在游戏场景中代表用户或者可以经由用户或者控制程序控制的目标对象,其可以是人物、动物或者任何物体等等。

在步骤202,利用经训练的目标检测网络检测所述场景图像中的目标对象的类别和位置,所述目标对象至少包括所述虚拟角色。在游戏中,上面所述的虚拟场景除了上面所述的虚拟角色外,还可以可选地包括其它的目标对象,例如天空、陆地、海洋、建筑、山林等,而且并不限于此。作为示例,在常见的酷跑游戏中,如图7a中所示,通常包括虚拟角色701、地板702、火圈703、果冻704、柱子(未示出)五种目标对象,其中的一帧场景图像包括虚拟角色,并且可选地还可以包括地板、火圈、果冻、柱子中的一个或多个。

所述经训练的目标检测网络例如可以是各种用于目标检测的深度学习网络,例如常见的r-cnn(基于区域的卷积神经网络,region-basedconvolutionalneuralnetworks)网络,yolo(你只用看一次,youonlylookonce)网络。

作为示例,可以使yolov3(第三版yolo)网络作为目标检测网络来检测所述场景图像中的目标对象的类别和位置。yolov3网络预测速度快、预测精度高、尤其在预测小尺度的对象方面更具优势。yolov3的模型结构如图3所示,包括特征提取部分和目标预测部分。yolov3的特征提取部分采用了称之为darknet-53的网络结构(含有53个卷积层)。yolov3通过3种不同尺度的特征图输出目标检测结果,尺度三适合于检测图像中的小目标(例如,酷跑类游戏场景中的果冻,如图7a所示),尺度二适合于检测中等大小的目标(例如,酷跑类游戏场景中的火圈,如图7a所示),尺度一适合于图像中的大目标(例如,酷跑类游戏场景中的地板或者柱子)。在使用yolov3进行检测时,首先需要将场景图像转换为416×416像素大小。在目标预测部分,yolov3将一幅图像划分成13×13,26×26和52×52的网格,如果某个目标对象的中心落在这个网格中,则这个网格就负责预测这个目标对象。每个网格要预测三个边界框,每个边界框负责预测自身位置和信任度两个参数。yolov3模型输出检测到的所有的目标对象的类别以及每个类别的目标对象的对应位置,所述位置包括检测到所述目标对象的边界框的左上角的x、y坐标以及宽w和高h。

在步骤203,响应于所述场景图像中存在所述虚拟角色之外的另外目标对象,基于所述检测到的目标对象的类别和位置确定所述场景图像的状态特征数据,所述状态特征数据表征每个另外目标对象与所述虚拟角色之间位置关系。在检测到所有目标对象的类别和位置关系后,采用表征每个另外目标对象与所述虚拟角色之间位置关系的状态特征数据来描述整个场景图像的状态是非常有利的。因为游戏的场景图像通常是非常复杂的,存在着大量的背景噪声,即在场景图像中存在许多在目标检测时起到干扰作用而并不希望检测到的对象,因此很难直接从图像提取合适的目标对象的特征。采用所述状态特征数据的形式是有利,因为可以不使用状态特征数据表征场景图像中的作为背景噪声的对象,从而去除游戏的场景图像中的背景噪声。可以使用各种可能的方式来表示所述状态特征数据,这并不是限制性的。当然,如果所述场景图像中不存在所述虚拟角色之外的另外目标对象,则不需要基于所述检测到的目标对象的类别和位置确定所述场景图像的状态特征数据。

在步骤204,将所述场景图像的状态特征数据输入动作输出模型以得到与所述场景图像对应的目标动作。在一些实施例中,可以将所述场景图像的状态特征数据连同在所述场景图像之前获取的多帧场景图像(如果存在的话)的状态特征数据输入动作输出模型以得到与所述场景图像对应的目标动作,所述多帧图像的帧数可以根据实际需要确定,而不是限制性的,这可以更全面的考虑游戏的进程,从而有利于动作输出模型输出与所述场景图像对应的目标动作的准确性。

所述动作输出模型可以基于所述场景图像的状态特征数据获取到所述场景图像的全连接特征,该全连接特征用于表示与所述场景图像对应的每个动作的概率,所述动作输出模型的输出为概率最大的动作,记为目标动作。所述动作输出模型可以是各种合适的深度学习模型,所述深度学习模型的全连接层输出与所述场景图像对应的每个动作的概率。特别地,所述动作输出模型甚至可以仅仅包括全连接层,这不是限制性的。

在一些实施例中,所述动作输出模型可以是基于强化学习的深度学习模型。强化学习是一种试错方法,其思路非常简单,目标是让软件智能体在特定环境中能够采取回报最大化(即,奖励函数的值最大化)的行为,这可以避免对大量训练样本进行标注。以游戏为例,如果在游戏中采取某种策略或者采取某个或一系列动作可以取得较高的游戏得分,那么就给予正奖励以便记住这种策略或者采取的动作。基于强化学习的深度学习模型例如可以是通过dqn(deepq-learning,深度价值学习)、ac(actor-critic,动作评论)等强化学习算法等得到的,当然这不是限制性的。作为示例,dqn是一种基于深度学习和强化学习技术的决策算法,其本质是一个最优决策网络,将表征图像的状态特征数据作为该网络的输入,网络给出当前的最优动作。dqn算法包括3层卷积层和2个全连接层,卷积层用于学习状态特征数据中的特征,然后再使用全连接层进行训练。如图4所示,通过全连层最后输出做各种动作以及不做任何动作的概率。所述动作例如是向前走、向后走、向左走、向右走、上跳、下蹲等。在本实施中,强化学习中的奖励函数与所述虚拟角色在游戏场景中执行动作后的表现得分正相关。所述表现得分在不同的游戏中的表现形式可能不同,其可能是游戏分数、获得的金币的数量、击杀对方角色的次数等等。例如,在酷跑类游戏中,所述表现得分可能是通过虚拟角色移动的距离来表现的,如果在执行所述目标动作后移动距离增加,给予正奖励;如果移动距离不变,给较小的负奖励;如果直接导致虚拟角色死亡,给予较大的负奖励。

在步骤205,控制所述虚拟角色在所述游戏场景中执行所述目标动作。例如,如果所述目标动作为上跳,则控制所述虚拟角色在所述游戏场景中执行上跳动作。在执行所述目标动作后,会产生相应的游戏结果,例如上面所述的移动距离增加、不变等等,然后所述游戏进入到下一游戏场景。

在根据本公开的上述实施例中,利用经训练的目标检测网络检测场景图像中的各个目标对象的类别和位置,并基于所述类别和位置得到用于表征虚拟角色与每个另外目标对象之间位置关系的状态特征数据以用来描述所述场景。然后,将所述状态特征数据输入动作输出模型以得到与所述场景图像对应的目标动作,并基于此来控制所述虚拟角色,从而达到了依据当前游戏的界面做出实时反应的目的,实现游戏ai的效果。在本实施例中,采用目标检测网络检测游戏中目标对象的类别和位置,并且通过状态特征数据有效描述了当前的游戏状态,这有效降低了动作输出模型学习场景图像的关键特征的难度,降低了动作输出模型的复杂度,防止模型过拟合。此外,在本技术方案中,可以采用基于强化学习的深度学习模型作为动作输出模型来实施游戏ai,通过状态特征数据作为基于强化学习的深度学习模型的输入,这使得能够对游戏进行更多的探索,免去了对大量的样本数据的需要,极大降低了训练的难度,提升动作输出模型的鲁棒性。

图5图示了根据本公开的一个实施例的用于对经训练的目标检测网络进行训练的方法500的示例性流程图。所述目标检测网络例如可以是参照图3描述的yolov3(第三版yolo)网络。如图5所示,所述方法500包括如下步骤。

在步骤501,从录制的玩所述游戏时的视频样本中采集用于训练的场景图像以形成图像训练集。所述视频样本可以是录制的众多游戏玩家在玩游戏时的视频。同样地,所述场景图像可以包括目标对象,所述目标对象至少包括所述虚拟角色。所述场景图像还可以选择性地包括其它的目标对象。

在一些实施例中,可以每隔固定游戏时间间隔从所述视频样本中采集用于训练的场景图像以形成图像训练集。所述时间间隔为游戏中的时间间隔。作为示例,可以每隔两秒从所述视频样本中采集用于训练的场景图像。如果间隔时间过短,相邻图像之间有较大的冗余,容易让目标检测网络过拟合。在所述用于训练的场景图像中的第一场景图像与第二场景图像的相似度大于相似度阈值时,则移除所述第一场景图像与第二场景图像之一,这可以避免采集到外观很相似的场景图像,节省处理资源。所述相似度阈值可以根据需要具体确定,其值不是限制性的。

在步骤502,在训练集中的每个用于训练的场景图像中标注目标对象的类别和位置。作为示例,可以使用人工或者使用各种样本标注工具来标注目标对象的类别和位置,所述样本标注工具例如可以是labelimg、yolo_mark等等。

作为示例,在酷跑类游戏中,存在五个目标对象的类别,即虚拟角色、地板、火圈、果冻、柱子。为了在训练过程中让目标检测网络充分学习到不同类别的外观特征,可以在采集场景图像时确保采集到的包括每一类别的目标对象的场景图像的帧数都超过一定数目,例如1000。

在步骤503,将所述每个用于训练的场景图像输入所述目标检测网络,以得到所述目标对象的预测的类别和位置。作为示例,所述目标检测网络可以是上面所述的yolov3(第三版yolo)网络来,其模型结构如图3所示。yolov3的特征提取部分采用了称之为darknet-53的网络结构(含有53个卷积层)。yolov3通过3种不同尺度的特征图输出目标检测结果。在一些实施例中,为了防止目标检测网络的模型过拟合,可以采用在大规模数据库imagenet上训练的darknet53深度网络的权重作为所述yolov3网络特征提取部分(53个卷积层)的初始权重,其中,权重指的是各个卷积层的参数。采用在大规模数据库imagenet上训练的darknet53深度网络的权重具有较好的效果,并且避免了进行大量的训练。

在步骤504,确定所述目标对象的预测的类别和位置和所述目标对象的被标注的类别和位置的总损失。换句话说,利用所述目标对象的预测的位置和真实的位置(即,被标注的位置)间的差异以及预测的类别和真实的类别(即,被标注的类别)间的差异计算总损失。在一些实施例中,所述总损失可以被确定为针对所述目标对象的类别的交叉熵损失和针对所述目标对象的位置的l1损失之和。针对所述目标对象的类别的交叉熵损失表征所述目标对象的预测的类别和所述目标对象的被标注的类别间的误差,以及针对所述目标对象的位置的l1损失表征所述目标对象的预测的位置和所述目标对象的被标注的位置间的误差。训练的目标就是最小化这个总损失。l1损失也被叫做最小化绝对误差,就是最小化真实值和预测值之间差值的绝对值的和,即min,其中。常见交叉熵损失可以表示为:

其中m为类别的数量;指示变量(0或1),如果该类别和样本的类别相同就是1,否则是0;表示对于样本属于类别c的预测概率。

在步骤505,更新所述目标检测网络的参数使得所述总损失最小化。在得到所述总损失之后,可以迭代更新所述目标检测网络的参数(例如,深度学习网络中卷积层的各种权重)使得所述总损失最小化。

采用本公开的实施例的所述对目标检测网络进行训练的方法,能够快速有效地使目标检测网络收敛,高效地完成对所述目标检测网络的训练。

图6图示了根据本公开的一个实施例的用于基于检测到的目标对象的类别和位置确定场景图像的状态特征数据的方法600的示例性流程图。所述方法600可以用于实施如参照图2描述的步骤203。如图6所示,所述方法600包括如下步骤。

在步骤601,以所述虚拟角色的中心为原点在整个场景图像的平面内辐射建立m条射线,可选地以将整个平面内围绕原点的360度角进行等分。m为不为零的正整数。可选地,所述m条射线将360度角等分,以增强该方法的普遍适用性。所述虚拟角色的中心可以被确定为检测到所述虚拟角色的边界框的中心像素的位置。

作为示例,图7a图示了根据本公开的一个实施例的虚拟角色当前所在的游戏场景的场景图像的示意图。如图7a所示,该场景图像中存在虚拟角色701、地板702、火圈703、果冻704等目标对象以及例如树木705这样的背景噪声。图7b图示了利用经训练的目标检测网络检测到的所述场景图像中的目标对象的类别和位置的示意图。如图7b所示,以所述虚拟角色的中心为原点在整个场景图像的平面内辐射建立m=16条射线,以将整个平面内围绕原点的360度角进行等分,图中所示的0-15分别代表不同的射线编号,相邻编号的射线间的夹角都是相同的。

在步骤602,确定所述每个另外目标对象的距离量化索引,所述距离量化索引表征所述每个另外目标对象在每条射线上距离所述原点的最短距离。以图7b中的火圈703为所述另外目标对象为例,所述火圈703在第3号射线上与原点(图7b中的黑色原点)的最短距离为d,并且其它射线没有辐射到火圈703,因此火圈在其它射线上没有最短距离。

作为示例,还可以使用将所述最短距离进行量化得到量化值,以便减少需要探索的数值的量。所述量化指将在一数值区间范围内的所有数值都表示为相同的预定的数值。作为示例,为了便于计算,可以首先利用公式(w-d)/w来表示最短距离的特征值,以将所述最短距离的特征值限定到[0,1]范围内,其中w为场景图像的宽度,d为所述最短距离;然后,将所述特征值进行量化。作为示例,[0,0.2)的特征值量化为0,[0.2,0.4)的特征值量化为1,[0.4,0.6)的特征值量化为2,[0.6,0.8)的特征值量化为3,[0.8,1]的特征值量化为4。最后,可以对所述最短距离的量化值进行独热编码(one-hot)以形成向量,并将所述向量作为距离量化索引。独热编码又称一位有效编码,其方法是使用n位状态寄存器来对n个状态进行编码,每个状态都有它独立的寄存器位,并且在任意时候,其中只有一位有效。作为示例,在独热编码时,可以用向量[1,0,0,0,0]表示量化值0,用向量[0,1,0,0,0]表示量化值1,用向量[0,0,1,0,0]表示量化值2,用向量[0,0,0,1,0]表示量化值3,用向量[0,0,0,0,1]表示量化值4。

在步骤603,以m×n×q大小的特征矩阵来表征所述状态特征数据,其中在特征矩阵的第一通道表示所述每个另外目标对象所在的射线且射线的总数为m,在特征矩阵的第二通道表示场景图像中的目标对象的类别且类别的总数为n,在特征矩阵的第三个通道表示所述每个另外目标对象的距离量化索引且距离量化索引的总数为q。m、n和q均是不为零的正整数。在确定所述每个另外目标对象在每条射线上的距离量化索引后,即可以以这种方式将所述状态特征数据确定为m×n×q大小的特征矩阵。

以上面描述的游戏中共有5种目标对象的类型、以所述虚拟角色的中心为原点辐射建立16条射线以及距离量化索引的总数为5为例,所确定的特征矩阵为16×5×5的矩阵。如果第i号射线上不存在第j个类别的目标,则将第i行第j列的特征设置为[0,0,0,0,0]。

以这种方式,可以基于所述检测到的目标对象的类别和位置确定所述场景图像的状态特征数据,从而使得所述场景图像转换为状态特征数据形式的语义图像,去除游戏的场景图像中的背景噪声,有利于从图像提取合适的深度特征以进行后续的处理,极大减小了后续动作输出模型训练的复杂度。

在一些实施例中,例如在酷跑类游戏中,虚拟角色只能前进,典型地是向着屏幕的一侧的方向移动。图8图示了这种情形下用于基于检测到的目标对象的类别和位置确定场景图像的状态特征数据的方法800的示例性流程图。所述方法800同样可以用于实施如参照图2描述的步骤203。如图8所示,所述方法800包括如下步骤。

在步骤801,建立直角坐标系,其中以虚拟角色的中心为原点o、以虚拟角色的前进方向为+x方向、以及与x方向垂直的方向为y方向。由于在这种情况下,仅需要考察虚拟角色前进方向上的目标对象,所以建立这样的坐标系后仅需要考察+x方向一侧的目标对象。所述虚拟角色的中心同样可以被确定为检测到所述虚拟角色的边界框的中心像素的位置。图7c图示了这种情形下利用经训练的目标检测网络检测到的图7a所示的场景图像中的目标对象的类别和位置的示意图,其中示出了所建立的所述直角坐标系xoy。

在步骤802,以所述虚拟角色的中心为原点在x方向上大于等于零的区域内辐射建立m条射线,可选地将y方向的180度角进行等分。如图7c所示,以所述虚拟角色的中心为原点在x方向上大于等于零的区域内辐射建立m=9条射线。可选地,所述m条射线将y方向的180度角进行等分,以增强该方法的普遍适用性。图7c中所示的0-8分别代表这9条射线的不同的射线编号,相邻编号的射线间的夹角都是相同的。

在步骤803,确定所述每个另外目标对象的距离量化索引,所述距离量化索引表征所述每个另外目标对象在每条射线上距离所述原点的最短距离。步骤803的具体原理与参照图6描述的步骤602的原理相同,此处不再详述。

在步骤804,以m×n×q大小的特征矩阵来表征所述状态特征数据,其中在特征矩阵的第一通道表示所述每个另外目标对象所在的射线且射线的总数为m,在特征矩阵的第二通道表示场景图像中的目标对象的类别且类别的总数为n,在特征矩阵的第三个通道表示所述每个另外目标对象的距离量化索引且距离量化索引的总数为q。在确定所述每个另外目标对象在每条射线上的距离量化索引后,即可以以这种方式将所述状态特征数据确定为m×n×q大小的特征矩阵。步骤84的具体原理与参照图5描述的步骤603的原理相同,此处不再详述。

以上面描述的游戏中共有5种目标对象的类型、以所述虚拟角色的中心为原点在x方向上大于等于零的区域内辐射建立9条射线以及距离量化索引的总数为5(即0、1、2、3、4共五个值)为例,所确定的特征矩阵为9×5×5的矩阵。如果第i号射线上不存在第j个类别的目标,则将第i行第j列的特征设置为[0,0,0,0,0]。

以这种方式,即可以基于所述检测到的目标对象的类别和位置确定所述场景图像的状态特征数据,从而使得所述场景图像转换为状态特征数据形式的语义图像,不仅去除游戏的场景图像中的背景噪声,有利于从图像提取合适的深度特征以进行后续的处理,极大减小了后续动作输出模型训练的复杂度,而且极大地简化了确定场景图像的状态特征数据的复杂度。该方法在酷跑类游戏中(其中虚拟角色只能前进,典型地是向着屏幕的一侧的方向移动)是特别有利的,极大地降低了确定图像的状态特征数据的复杂度。

在一些实施例中,在利用方法600或800将所述状态特征数据确定为m×n×q大小的特征矩阵后,可以在方法200的步骤204中将所述特征矩阵转化为1×w的特征向量,其中,w为m、n、q的乘积,然后将所述1×w的特征向量输入动作输出模型以得到与所述场景图像对应的目标动作。在这种情况下,由于特征向量是一维向量,因此所述动作输出模型可以仅仅包括2个全连接层。

图9图示了根据本公开的一个实施例的用于控制游戏中的虚拟角色的设备900的示例性结构框图。如图9所示,所述设备900包括获取模块901,检测模块902,确定模块903,输入模块904,控制模块905。

所述获取模块901被配置成获取所述游戏中所述虚拟角色当前所在的游戏场景的场景图像。作为示例,所述虚拟角色指在游戏场景中代表用户或者可以经由用户或者控制程序控制的目标对象,其可以是人物、动物或者物体等等。

所述检测模块902被配置成利用经训练的目标检测网络检测所述场景图像中的目标对象的类别和位置,所述目标对象至少包括所述虚拟角色。所述目标对象至少包括所述虚拟角色。在游戏中,上面所述的虚拟场景除了上面所述的虚拟角色外,还可以可选地包括其它的目标对象,例如天空、陆地、海洋、建筑、山林等,而且并不限于此。所述经训练的目标检测网络例如可以是各种用于目标检测的深度学习网络,例如常见的r-cnn(基于区域的卷积神经网络,region-basedconvolutionalneuralnetworks)网络,yolo(你只用看一次,youonlylookonce)网络。

所述确定模块903被配置成响应于所述场景图像中存在所述虚拟角色之外的另外目标对象,基于所述检测到的目标对象的类别和位置确定所述场景图像的状态特征数据,所述状态特征数据表征每个另外目标对象与所述虚拟角色之间位置关系。所述确定模块903可以被配置成使用各种可能的方式来确定所述状态特征数据,例如使用参照图6或图8所示的方法来确定所述状态特征数据,这并不是限制性的。

在一些实施例中,所述确定模块903可以包括建立子模块9031,确定子模块9032以及表征子模块9033。所述建立子模块9031可以被配置成以所述虚拟角色的中心为原点在整个场景图像的平面内辐射建立m条射线,可选地以将整个平面内围绕原点的360度角进行等分。所述确定子模块9032可以被配置成确定所述每个另外目标对象的距离量化索引,所述距离量化索引表征所述每个另外目标对象在每条射线上距离所述原点的最短距离。所述表征子模块9033可以被配置成以m×n×q大小的特征矩阵来表征所述状态特征数据,其中在特征矩阵的第一通道表示所述每个另外目标对象所在的射线且射线的总数为m,在特征矩阵的第二通道表示场景图像中的目标对象的类别且类别的总数为n,在特征矩阵的第三个通道表示所述每个另外目标对象的距离量化索引且距离量化索引的总数为q。

所述输入模块904被配置成将所述场景图像的状态特征数据输入动作输出模型以得到与所述场景图像对应的目标动作。在一些实施例中,所述输入模块904可以被配置成将所述场景图像连同在所述场景图像之前获取的多帧场景图像(如果存在的话)的状态特征数据输入动作输出模型以得到与所述场景图像对应的目标动作,所述多帧图像的帧数可以根据实际需要确定,而不是限制性的,

在一些实施例中,所述动作输出模型可以是基于强化学习的深度学习模型,其中强化学习中的奖励函数与所述虚拟角色在游戏场景中执行动作后的表现得分正相关。

所述控制模块905被配置成控制所述虚拟角色在所述游戏场景中执行所述目标动作。例如,如果所述目标动作为上跳,则所述控制模块905被配置成控制所述虚拟角色在所述游戏场景中执行上跳动作。

图10图示了示例系统1000,其包括代表可以实现本文描述的各种技术的一个或多个系统和/或设备的示例计算设备1010。计算设备1010可以是例如服务提供商的服务器、与服务器相关联的设备、片上系统、和/或任何其它合适的计算设备或计算系统。上面关于图9描述的用于控制游戏中的虚拟角色的设备900可以采取计算设备1010的形式。替换地,用于控制游戏中的虚拟角色的设备900可以以角色控制应用1016的形式被实现为计算机程序。

如图示的示例计算设备1010包括彼此通信耦合的处理系统1011、一个或多个计算机可读介质1012以及一个或多个i/o接口1013。尽管未示出,但是计算设备1010还可以包括系统总线或其他数据和命令传送系统,其将各种组件彼此耦合。系统总线可以包括不同总线结构的任何一个或组合,所述总线结构诸如存储器总线或存储器控制器、外围总线、通用串行总线、和/或利用各种总线架构中的任何一种的处理器或局部总线。还构思了各种其他示例,诸如控制和数据线。

处理系统1011代表使用硬件执行一个或多个操作的功能。因此,处理系统1011被图示为包括可被配置为处理器、功能块等的硬件元件1014。这可以包括在硬件中实现为专用集成电路或使用一个或多个半导体形成的其它逻辑器件。硬件元件1014不受其形成的材料或其中采用的处理机构的限制。例如,处理器可以由(多个)半导体和/或晶体管(例如,电子集成电路(ic))组成。在这样的上下文中,处理器可执行指令可以是电子可执行指令。

计算机可读介质1012被图示为包括存储器/存储装置1015。存储器/存储装置1015表示与一个或多个计算机可读介质相关联的存储器/存储容量。存储器/存储装置1015可以包括易失性介质(诸如随机存取存储器(ram))和/或非易失性介质(诸如只读存储器(rom)、闪存、光盘、磁盘等)。存储器/存储装置1015可以包括固定介质(例如,ram、rom、固定硬盘驱动器等)以及可移动介质(例如,闪存、可移动硬盘驱动器、光盘等)。计算机可读介质1012可以以下面进一步描述的各种其他方式进行配置。

一个或多个i/o接口1013代表允许用户向计算设备1010输入命令和信息并且可选地还允许使用各种输入/输出设备将信息呈现给用户和/或其他组件或设备的功能。输入设备的示例包括键盘、光标控制设备(例如,鼠标)、麦克风(例如,用于语音输入)、扫描仪、触摸功能(例如,被配置为检测物理触摸的容性或其他传感器)、相机(例如,可以采用可见或不可见的波长(诸如红外频率)将不涉及触摸的运动检测为手势)等等。输出设备的示例包括显示设备(例如,监视器或投影仪)、扬声器、打印机、网卡、触觉响应设备等。因此,计算设备1010可以以下面进一步描述的各种方式进行配置以支持用户交互。

计算设备1010还包括角色控制应用1016。角色控制应用1016可以例如是用于控制游戏中的虚拟角色的设备900的软件实例,并且与计算设备1010中的其他元件相组合地实现本文描述的技术。

本文可以在软件硬件元件或程序模块的一般上下文中描述各种技术。一般地,这些模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、元素、组件、数据结构等。本文所使用的术语“模块”,“功能”和“组件”一般表示软件、固件、硬件或其组合。本文描述的技术的特征是与平台无关的,意味着这些技术可以在具有各种处理器的各种计算平台上实现。

所描述的模块和技术的实现可以存储在某种形式的计算机可读介质上或者跨某种形式的计算机可读介质传输。计算机可读介质可以包括可由计算设备1010访问的各种介质。作为示例而非限制,计算机可读介质可以包括“计算机可读存储介质”和“计算机可读信号介质”。

与单纯的信号传输、载波或信号本身相反,“计算机可读存储介质”是指能够持久存储信息的介质和/或设备,和/或有形的存储装置。因此,计算机可读存储介质是指非信号承载介质。计算机可读存储介质包括诸如易失性和非易失性、可移动和不可移动介质和/或以适用于存储信息(诸如计算机可读指令、数据结构、程序模块、逻辑元件/电路或其他数据)的方法或技术实现的存储设备之类的硬件。计算机可读存储介质的示例可以包括但不限于ram、rom、eeprom、闪存或其它存储器技术、cd-rom、数字通用盘(dvd)或其他光学存储装置、硬盘、盒式磁带、磁带,磁盘存储装置或其他磁存储设备,或其他存储设备、有形介质或适于存储期望信息并可以由计算机访问的制品。

“计算机可读信号介质”是指被配置为诸如经由网络将指令发送到计算设备1010的硬件的信号承载介质。信号介质典型地可以将计算机可读指令、数据结构、程序模块或其他数据体现在诸如载波、数据信号或其它传输机制的调制数据信号中。信号介质还包括任何信息传递介质。术语“调制数据信号”是指以这样的方式对信号中的信息进行编码来设置或改变其特征中的一个或多个的信号。作为示例而非限制,通信介质包括诸如有线网络或直接连线的有线介质以及诸如声、rf、红外和其它无线介质的无线介质。

如前所述,硬件元件1014和计算机可读介质1012代表以硬件形式实现的指令、模块、可编程器件逻辑和/或固定器件逻辑,其在一些实施例中可以用于实现本文描述的技术的至少一些方面。硬件元件可以包括集成电路或片上系统、专用集成电路(asic)、现场可编程门阵列(fpga)、复杂可编程逻辑器件(cpld)以及硅中的其它实现或其他硬件设备的组件。在这种上下文中,硬件元件可以作为执行由硬件元件所体现的指令、模块和/或逻辑所定义的程序任务的处理设备,以及用于存储用于执行的指令的硬件设备,例如,先前描述的计算机可读存储介质。

前述的组合也可以用于实现本文所述的各种技术和模块。因此,可以将软件、硬件或程序模块和其它程序模块实现为在某种形式的计算机可读存储介质上和/或由一个或多个硬件元件1014体现的一个或多个指令和/或逻辑。计算设备1010可以被配置为实现与软件和/或硬件模块相对应的特定指令和/或功能。因此,例如通过使用处理系统的计算机可读存储介质和/或硬件元件1014,可以至少部分地以硬件来实现将模块实现为可由计算设备1010作为软件执行的模块。指令和/或功能可以由一个或多个制品(例如,一个或多个计算设备1010和/或处理系统1011)可执行/可操作以实现本文所述的技术、模块和示例。

在各种实施方式中,计算设备1010可以采用各种不同的配置。例如,计算设备1010可以被实现为包括个人计算机、台式计算机、多屏幕计算机、膝上型计算机、上网本等的计算机类设备。计算设备1010还可以被实现为包括诸如移动电话、便携式音乐播放器、便携式游戏设备、平板计算机、多屏幕计算机等移动设备的移动装置类设备。计算设备1010还可以实现为电视类设备,其包括具有或连接到休闲观看环境中的一般地较大屏幕的设备。这些设备包括电视、机顶盒、游戏机等。

本文描述的技术可以由计算设备1010的这些各种配置来支持,并且不限于本文所描述的技术的具体示例。功能还可以通过使用分布式系统、诸如通过如下所述的平台1022而在“云”1020上全部或部分地实现。

云1020包括和/或代表用于资源1024的平台1022。平台1022抽象云1020的硬件(例如,服务器)和软件资源的底层功能。资源1024可以包括在远离计算设备1010的服务器上执行计算机处理时可以使用的应用和/或数据。资源1024还可以包括通过因特网和/或通过诸如蜂窝或wi-fi网络的订户网络提供的服务。

平台1022可以抽象资源和功能以将计算设备1010与其他计算设备连接。平台1022还可以用于抽象资源的分级以提供遇到的对于经由平台1022实现的资源1024的需求的相应水平的分级。因此,在互连设备实施例中,本文描述的功能的实现可以分布在整个系统1000内。例如,功能可以部分地在计算设备1010上以及通过抽象云1020的功能的平台1022来实现。

应当理解,为清楚起见,参考不同的功能单元对本公开的实施例进行了描述。然而,将明显的是,在不偏离本公开的情况下,每个功能单元的功能性可以被实施在单个单元中、实施在多个单元中或作为其它功能单元的一部分被实施。例如,被说明成由单个单元执行的功能性可以由多个不同的单元来执行。因此,对特定功能单元的参考仅被视为对用于提供所描述的功能性的适当单元的参考,而不是表明严格的逻辑或物理结构或组织。因此,本公开可以被实施在单个单元中,或者可以在物理上和功能上被分布在不同的单元和电路之间。

将理解的是,尽管第一、第二、第三等术语在本文中可以用来描述各种设备、元件、部件或部分,但是这些设备、元件、部件或部分不应当由这些术语限制。这些术语仅用来将一个设备、元件、部件或部分与另一个设备、元件、部件或部分相区分。

尽管已经结合一些实施例描述了本公开,但是其不旨在被限于在本文中所阐述的特定形式。相反,本公开的范围仅由所附权利要求来限制。附加地,尽管单独的特征可以被包括在不同的权利要求中,但是这些可以可能地被有利地组合,并且包括在不同权利要求中不暗示特征的组合不是可行的和/或有利的。特征在权利要求中的次序不暗示特征必须以其工作的任何特定次序。此外,在权利要求中,词“包括”不排除其它元件,并且不定冠词“一”或“一个”不排除多个。权利要求中的附图标记仅作为明确的例子被提供,不应该被解释为以任何方式限制权利要求的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1