HI,欢迎来到起点商标网!
24小时服务QQ:2880605093

虚拟对象的控制方法、装置、设备及存储介质与流程

2021-01-11 14:01:35|302|起点商标网
虚拟对象的控制方法、装置、设备及存储介质与流程

本申请实施例涉及计算机技术和人工智能技术领域,特别涉及一种虚拟对象的控制方法、装置、设备及存储介质。



背景技术:

在游戏应用程序的开发过程中,有时需要游戏中的目标虚拟对象(如游戏角色)自动前行。

在相关技术中,为了使虚拟对象在自动前进的过程中避开虚拟障碍物,需要相关技术人员预先人为地规划尽可能多的具体路径,若目标虚拟对象需要从当前位置移动到目标位置,则从已规划好的路径中选择一条路径,并控制目标虚拟对象沿着该路径方向前进。

在上述相关技术中,需要预先人为地规划大量的路径,导致时间和人力成本较高。



技术实现要素:

本申请实施例提供了一种虚拟对象的控制方法、装置、设备及存储介质,能够降低实现虚拟对象自动移动所需的时间和人力成本。所述技术方案如下:

根据本申请实施例的一个方面,提供了一种虚拟对象的控制方法,所述方法包括:

获取目标虚拟对象的当前视角下的界面图像,所述界面图像用于展示所述当前视角的虚拟环境,所述虚拟环境中包括所述目标虚拟对象;

生成所述界面图像的深度图,所述深度图用于表征所述界面图像中所述虚拟环境的元素相对于所述目标虚拟对象的深度距离;

根据所述深度图确定所述目标虚拟对象的移动方向;

控制所述目标虚拟对象按照所述移动方向进行移动。

根据本申请实施例的一个方面,提供了一种虚拟对象的控制装置,所述装置包括:

图像获取模块,用于获取目标虚拟对象的当前视角下的界面图像,所述界面图像用于展示所述当前视角的虚拟环境,所述虚拟环境中包括所述目标虚拟对象;

深度图生成模块,用于生成所述界面图像的深度图,所述深度图用于表征所述界面图像中所述虚拟环境的元素相对于所述目标虚拟对象的深度距离;

方向确定模块,用于根据所述深度图确定所述目标虚拟对象的移动方向;

移动控制模块,用于控制所述目标虚拟对象按照所述移动方向进行移动。

根据本申请实施例的一个方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现上述虚拟对象的控制方法。

根据本申请实施例的一个方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现上述虚拟对象的控制方法。

根据本申请实施例的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述虚拟对象的控制方法。

本申请实施例提供的技术方案可以包括如下有益效果:

通过获取目标虚拟对象的当前视角下的界面图像,并根据界面图像生成对应的深度图,深度图能够表征的目标虚拟对象的当前视角的虚拟环境中,各虚拟障碍物距离目标虚拟对象的深度距离,进而能够根据深度图控制目标虚拟对象避开虚拟障碍物,本身申请实施例无需预先人工规划大量路径,只需实时地自动分析界面图像即可在移动过程中避开虚拟障碍物,降低了实现虚拟对象自动移动所需的时间和人力成本。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请一个实施例提供的实施环境的示意图;

图2是本申请一个实施例提供的虚拟对象的控制方法的流程图;

图3是本申请一个实施例提供的深度图的示意图;

图4是本申请另一个实施例提供的虚拟对象的控制方法的流程图;

图5是本申请另一个实施例提供的深度图的示意图;

图6是本申请一个实施例提供的深度估计模型的训练方法的流程图;

图7是本申请一个实施例提供的不同游戏应用程序的示意图;

图8是本申请一个实施例提供的深度估计模型的结构示意图;

图9是本申请另一个实施例提供的虚拟对象的控制方法的流程图;

图10是本申请一个实施例提供的全局地图的示意图;

图11是本申请一个实施例提供的方向提示区域的示意图;

图12是本申请一个实施例提供的目标视角方向对应的角度的示意图;

图13是本申请一个实施例提供的虚拟对象的控制装置的框图;

图14是本申请另一个实施例提供的虚拟对象的控制装置的框图;

图15是本申请一个实施例提供的计算机设备的结构框图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的方法的例子。

人工智能(artificialintelligence,ai)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。人工智能技术涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。机器学习(machinelearning,ml)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、示教学习等技术。

计算机视觉技术(computervision,cv)计算机视觉是一门研究如何使机器“看”的科学,更进一步的说,就是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。作为一个科学学科,计算机视觉研究相关的理论和技术,试图建立能够从图像或者多维数据中获取信息的人工智能系统。计算机视觉技术通常包括图像处理、图像识别、图像语义理解、图像检索、ocr、视频处理、视频语义理解、视频内容/行为识别、三维物体重建、3d技术、虚拟现实、增强现实、同步定位与地图构建等技术,还包括常见的人脸识别、指纹识别等生物特征识别技术。

本申请实施例提供的方案涉及人工智能的机器学习技术和计算机视觉技术,例如利用机器学习技术训练深度估计模型;又例如利用计算机视觉技术识别图像中的数字或像素的颜色。

另外,本申请实施例提供的技术方案,还可以应用于现实生活的智能避障、路径规划和自动驾驶等技术领域。例如,本申请实施例提供的根据界面图像确定目标虚拟对象的移动方向这一技术方案,在现实中能够实现成为根据实时拍摄的环境照片,确定目标对象下一步的移动方向,目标对象可以是现实的自动驾驶中的交通工具(如自动驾驶的汽车、自动驾驶的船等)、智能机器人(如快递机器人、送餐机器人、扫地机器人等)、工业机器人等等。目标对象还可以是现实中的其他物体,本申请实施例对此不作限定。

请参考图1,其示出了本申请一个实施例提供的实施环境的示意图。该实施环境能够实现为虚拟环境的控制系统,该系统可以包括终端11。

终端11是具备数据计算、处理和存储能力的电子设备,终端11中安装并运行有目标应用程序,如目标应用程序的客户端。终端11可以是智能手机、平板电脑、pc(personalcomputer,个人计算机)、可穿戴设备等等,本身申请实施例对此不作限定。可选地,终端11是具备触摸显示屏的移动终端设备,用户能够通过该触摸显示屏实现人机交互。

该目标应用程序可以是游戏应用程序,如射击类游戏应用程序、多人枪战类生存游戏应用程序、大逃杀生存类游戏应用程序、lbs(locationbasedservice,基于位置服务)类游戏应用程序、moba(multiplayeronlinebattlearena,多人在线战术竞技)类游戏应用程序等等,本申请实施例对此不作限定。该目标应用程序还可以是社交应用程序、支付应用程序、视频应用程序、音乐应用程序、购物应用程序、新闻应用程序等任何能够显示虚拟环境和目标虚拟对象的应用程序。本申请实施例提供的方法,各步骤的执行主体可以是该终端,如运行在该终端中的上述目标应用程序。

虚拟环境是目标应用程序(如游戏应用程序)的客户端在终端上运行时显示(或提供)的场景,该虚拟环境是指营造出的供目标虚拟对象进行活动(如游戏竞技)的场景,如虚拟房屋、虚拟岛屿、虚拟地图等。该虚拟环境可以是对真实世界的仿真环境,也可以是半仿真半虚构的环境,还可以是纯虚构的环境。虚拟环境可以是二维虚拟环境,也可以是2.5维虚拟环境,或者是三维虚拟环境,本申请实施例对此不作限定。目标虚拟对象是指用户帐号在目标应用程序中控制的虚拟角色。以目标应用程序为游戏应用程序为例,目标虚拟对象是指用户帐号在游戏应用程序中控制的游戏角色。目标虚拟对象可以是人物形态,可以是动物、卡通或者其它形态,本申请实施例对此不作限定。目标虚拟对象可以三维形式展示,也可以二维形式展示,本申请实施例对此不作限定。可选地,当虚拟环境为三维虚拟环境时,第一虚拟对象可以是基于动画骨骼技术创建的三维立体模型。目标虚拟对象在三维虚拟环境中具有自身的形状和体积,占据三维虚拟环境中的一部分空间。可选地,目标应用程序可以具有模拟真实物理环境的功能。在虚拟环境中,各个虚拟元素(如目标虚拟对象)的运动规律符合或接近现实的物理规律。

在一些实施例中,该系统10还包括服务器12,服务器12与终端11建立有通信连接(如网络连接),服务器12用于为目标应用程序提供后台服务。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器。

需要说明的是,本申请实施例提供的各方法步骤,其执行主体可以是终端11,可以是服务器12,还可以由终端11和服务器12交互配合执行,本申请实施例对此不作限定。

下面,通过几个实施例对本申请技术方案进行介绍说明。

请参考图2,其示出了本申请一个实施例提供的虚拟对象的控制方法的流程图。在本实施例中,以该方法应用于上述客户端中来举例说明。该方法可以包括如下几个步骤(201~204):

步骤201,获取目标虚拟对象的当前视角下的界面图像。

在一些实施例中,界面图像用于展示当前视角的虚拟环境,虚拟环境中包括目标虚拟对象。视角也可称为fov(fieldofview,视场角),视角是指目标对象(如相机、人等)可以接收的影像的角度范围。在本申请实施例中,当前视角是指目标虚拟对象在当前的朝向,其所能够观察到的画面的角度范围。

在一些实施例中,客户端的用户界面中显示有目标虚拟对象的当前视角的虚拟环境,通过屏幕快照(即屏幕截图)能够获取到用户界面中当前显示的图像,即得到目标虚拟对象的当前视角的界面图像。

步骤202,生成界面图像的深度图。

其中,深度图用于表征界面图像中虚拟环境中的元素相对于目标虚拟对象的深度距离。虚拟环境中的元素构成了该虚拟环境,虚拟环境中的元素包括:虚拟建筑物(如虚拟房屋、虚拟围墙、虚拟塔防、虚拟雕像)、虚拟载具(如虚拟汽车、虚拟摩托车、虚拟轮船、虚拟快艇、虚拟飞机)、虚拟自然环境元素(如虚拟岩石、虚拟树木、虚拟山坡)、虚拟对象等等。在一些实施例中,能够阻碍目标虚拟对象移动的虚拟环境中的元素称为虚拟障碍物,如虚拟房屋、虚拟围墙、虚拟塔防、虚拟雕像、虚拟汽车、虚拟摩托车、虚拟岩石、虚拟树木等等。在另一些实施例中,虚拟障碍物包括虚拟环境中除目标虚拟对象之外的其他元素。

在一些实施例中,通过分析界面图像,如分析界面图像中包括的虚拟障碍物的相对大小、虚拟障碍物对应的像素的颜色差别、虚拟障碍物总体呈现的颜色等等,能够得到界面图像中各个像素表示的虚拟障碍物,相对于目标虚拟对象的深度距离(即与目标虚拟对象之间的距离),并对各个像素对应于目标虚拟对象的深度距离进行标记,进而得到界面图像的深度图。界面图像由多个像素组成,对于界面图像中的一个像素,其可以和其他像素一起共同表示虚拟环境中的一个元素。像素表示的虚拟障碍物中的位置相对于目标虚拟对象的距离,即为该像素对应的深度距离。

可选地,深度图的尺寸与界面图像相等,或深度图的长宽比与界面图像的长宽比相同。在一个示例中,如图3所示,界面图像32用于指示在目标虚拟对象33当前视角下的虚拟环境,深度图31是界面图像32的深度图。其中,深度图31通过不同的颜色表示虚拟环境中的元素相对于目标虚拟对象33的深度距离。可选地,在深度图31中,相同颜色的像素表示相同的深度距离,相近的颜色的像素表示的深度距离也相近。

步骤203,根据深度图确定目标虚拟对象的移动方向。

在一些实施例中,当获取到界面图像对应的深度图,即已获取目标虚拟对象的当前视角的界面图像中,各个区域包括的虚拟障碍物相对于目标虚拟对象的深度距离。将对应的深度距离较大的区域所在的方向,确定为目标虚拟对象下一步的移动方向。

步骤204,控制目标虚拟对象按照移动方向进行移动。

当确定目标虚拟对象的移动方向之后,控制目标虚拟对象按照该移动方向进行移动,从而避开距离目标虚拟对象较近的虚拟障碍物,减少目标虚拟对象撞上虚拟障碍物而导致的原地空跑或保持原地不动的概率,提高控制虚拟对象自动移动的避障准确率。

在一些实施例中,目标虚拟对象按照移动方向匀速移动。在另一些实施例中,若移动方向上的虚拟障碍物相对于目标虚拟对象的深度距离大于或等于第一阈值,表示移动方向上的虚拟障碍物与目标虚拟对象相距较远,则控制目标虚拟对象按照移动方向加速移动。在又一些实施例中,若移动方向上的虚拟障碍物与目标虚拟对象之间的距离小于或等于第二阈值,表示移动方向上的虚拟障碍物与目标虚拟对象相距较近,则控制目标虚拟对象减速移动。

可选地,第一阈值大于或等于第二阈值。在一些实施例中,若移动方向上的虚拟障碍物相对于目标虚拟对象之间的距离大于第二阈值且小于第一阈值,控制目标虚拟对象以当前速度按照移动方向匀速移动。其中,第一阈值和第二阈值的具体取值可以由相关技术人员根据实际情况进行设定,本申请实施例对此不作限定。

在一些实施例中,每隔第一间隔时长执行一次上述步骤(201~204),即每第一间隔时长根据深度图确定一次目标虚拟对象的移动方向,从而保证目标虚拟对象能够及时调整移动方向,提高目标虚拟对象成功避障的概率。其中,第一间隔时长包括:0.1秒、0.2秒、0.25秒、0.3秒、0.5秒、0.8秒、1秒、1.5秒等等。可选地,第一间隔时长的具体时长由相关技术人员根据实际情况进行设定,本申请实施例对此不作限定。

在一些实施例中,若本申请实施例各步骤的执行主体是服务器,则该步骤具体可实现为:向客户端发送控制数据,控制数据包括移动方向。

综上所述,本申请实施例提供的技术方案,通过获取目标虚拟对象的当前视角下的界面图像,并根据界面图像生成对应的深度图,深度图能够表征的目标虚拟对象的当前视角的虚拟环境中,各虚拟障碍物距离目标虚拟对象的深度距离,进而能够根据深度图控制目标虚拟对象避开虚拟障碍物,本身申请实施例无需预先人工规划大量路径,只需实时地自动分析界面图像即可在移动过程中避开虚拟障碍物,降低了控制虚拟对象自动移动的成本。

请参考图4,其示出了本申请另一个实施例提供的虚拟对象的控制方法的流程图。在本实施例中,以该方法应用于上述客户端中来举例说明。该方法可以包括如下几个步骤(401~407):

步骤401,获取目标虚拟对象的当前视角的界面图像。

本步骤401的内容与上文图2实施例的步骤201相同或相似,此处不再赘述。

步骤402,通过深度估计模型对界面图像进行处理,得到深度图。

其中,深度估计模型是用于对深度距离进行预估的机器学习模型,如cdd(curvaturedrivendiffusion,基于曲率确定扩散)模型、cnn(convolutionalneuralnetworks,卷积神经网络)、朴素贝叶斯模型、决策树模型、knn(k-nearestneighbor,最邻近结点)算法模型、svm(supportvectormachine,支持向量机)等模型。在一些实施例中,预先训练深度估计模型,得到训练完成的深度估计模型,使得基于训练深度估计模型,能够得到对应于界面图像的较为准确的深度图。

在一些实施例中,本步骤402还包括如下子步骤:

1、将界面图像输入至深度估计模型,由深度估计模型输出预测深度图,预测深度图中包含界面图像中像素表示的虚拟环境中的元素分别对应的深度值,其中上述深度值为归一化后的深度值;

2、对预测深度图进行反归一化处理,得到上述的深度图。

通过将界面图像输入至训练完成的深度估计模型,深度估计模型能够得到预测深度图。在一些实施例中,由于深度估计模型在训练时所采用的用于对照的真实深度图为经过归一化处理的深度图,而深度估计模型的训练过程,就是使得深度估计模型输出的预测深度图尽量与真实深度图相符的过程,所以,由深度估计模型输出的预测深度图,表示的是界面图像中像素表示的虚拟环境中的元素分别对应的归一化后的深度值。因而,需要对深度估计模型输出的预测深度图进行反归一化处理,才能够得到界面图像对应的深度图。归一化是指将一组数据映射到一个确定的数值范围内的过程。在本申请实施例中,归一化是指将深度值映射到一个具体的深度值的取值范围内的过程。反归一化是归一化的逆过程。本申请实施例关于归一化和反归一化的具体实现方式可以参见下述步骤601,此处不作赘述。

步骤403,将深度图划分为多个区域。

在一些实施例中,将深度图划分为多个区域,不同的区域对应于目标虚拟对象不同的移动方向。其中,上述多个区域包括至少两个区域。深度图可以划分为2个区域、3个区域、4个区域、5个区域、6个区域……本申请实施例对此不作限定。在一个示例中,如图5所示,将深度图50从左至右划分为5个尺寸相同的区域;其中,5个区域从左至右依次为左侧区域51、左前方区域52、正前方区域53、右前方区域54和右侧区域55。其中,不同的区域对应于不同的移动方向是指目标虚拟对象指向对应区域的中心的方向,也即,左侧区域51对应的移动方向是指目标虚拟对象指向左侧区域51中心的方向;左前方区域52对应的移动方向是指目标虚拟对象指向左前方区域52中心的方向;正前方区域53对应的移动方向是指目标虚拟对象指向正前方区域53中心的方向;右前方区域54对应的移动方向是指目标虚拟对象指向右前方区域54中心的方向;右侧区域55对应的移动方向是指目标虚拟对象指向右侧区域55中心的方向。

步骤404,分别计算每个区域中的深度值的平均值,得到多个区域分别对应的深度均值。

对深度图进行划分得到深度图的多个区域之后,获取各个区域中像素分别对应的深度值,并分别计算每个区域中像素分别对应的深度值的平均值,即得到多个区域分别对应的深度均值。

步骤405,根据多个区域分别对应的深度均值,从多个区域中选择一个区域作为目标区域。

当得到各个区域分别对应的深度均值之后,可以根据深度均值从多个区域中选择一个区域作为目标区域,目标区域所在的方向即为目标虚拟对象下一步的移动方向。

在一些实施例中,若多个区域中的正前方区域的深度均值大于深度阈值,则选择正前方区域作为目标区域,正前方区域对应的移动方向为正前方。本申请实施例中,优先将正前方区域作为目标区域。当正前方区域的深度均值大于深度阈值时,表示正前方区域中的虚拟障碍物距离目标虚拟对象较远,则将正前方区域作为目标区域。也就是说,若其他区域的深度均值大于正前方区域的深度均值,只要正前方区域的深度均值大于深度阈值,就将正前方区域作为目标区域,从而在确保目标虚拟对象能够避开虚拟障碍物的情况下,尽可能地保证目标虚拟对象的移动方向不改变。

在另一些实施例中,若正前方区域的深度均值小于深度阈值,则从多个区域中选择深度均值最大的区域作为目标区域。当正前方区域的深度均值小于深度阈值,表示正前方区域中的虚拟障碍物距离目标虚拟对象较近,则将多个区域中选择深度均值最大的区域作为目标区域。

在又一些实施例中,若正前方区域的深度均值小于深度阈值,且距离正前方区域最近的区域深度均值大于深度阈值,则将该区域作为目标区域。从而在确保目标虚拟对象能够避开虚拟障碍物的情况下,尽可能小幅度地调整目标虚拟对象的移动方向。

其中,深度阈值可以为33、35、38、40、50、55等等,深度阈值的具体取值由相关技术人员根据实际情况进行设定,本申请实施例对此不作限定。

步骤406,将目标区域对应的移动方向,确定为目标虚拟对象的移动方向。

确定目标区域之后,将目标区域对应的移动方向,确定为目标虚拟对象的移动方向。例如,若目标区域为正前方区域,则将正前方确定为目标虚拟对象的移动方向;若目标区域为左前方区域,则将左前方确定为目标虚拟对象的移动方向;若目标区域为右前方区域,则将右前方确定为目标虚拟对象的移动方向;若目标区域为左侧区域,则将左侧方确定为目标虚拟对象的移动方向;若目标区域为右侧区域,则将右侧方确定为目标虚拟对象的移动方向。

步骤407,控制目标虚拟对象按照移动方向进行移动。

本步骤407的内容与上文图2实施例的步骤204相同或相似,此处不再赘述。

综上所述,本申请实施例提供的技术方案,通过将深度图划分为多个区域,尽可能使目标虚拟对象按照正前方区域或距离正前方区域最近的区域对应的移动方向移动,从而在保证避开虚拟障碍物的前提下,尽可能不调整或小幅度地调整目标虚拟对象的移动方向,进而尽可能减小目标虚拟对象偏离目标位置所在方向的概率,提高目标虚拟对象自动移动过程的精确性。

在一些实施例中,深度估计模型的训练过程包括如下子步骤(601~604):

步骤601,获取至少一个训练样本。

其中,训练样本的样本数据包括界面图像样本,训练样本的标签数据包括界面图像样本的真实深度图。

在一些实施例中,训练深度估计模型所采用的界面图像样本,与使用深度估计模型时输入深度估计模型的界面图像,来自于同一应用程序的不同模式或同一应用程序的同一模式。例如,某一游戏应用程序包括第一游戏模式和第二游戏模式。其中,第一游戏模式和第二游戏模式中虚拟环境的环境类型不相同,例如,第一游戏模式的虚拟环境为海岛,第二游戏模式的虚拟环境为沙漠;又例如,第一游戏模式的虚拟环境为晴天,第二游戏模式的虚拟环境为阴雨天。在一个示例中,训练深度估计模型所采用的界面图像样本来自于该游戏应用程序的第一游戏模式,使用深度估计模型时输入深度估计模型的界面图像来自于该游戏应用程序的第二游戏模式;或,训练深度估计模型所采用的界面图像样本来自于该游戏应用程序的第二游戏模式,使用深度估计模型时输入深度估计模型的界面图像来自于该游戏应用程序的第一游戏模式。在另一个示例中,训练深度估计模型所采用的界面图像样本,与使用深度估计模型时输入深度估计模型的界面图像,均来自于该游戏应用程序的第一游戏模式;或,训练深度估计模型所采用的界面图像样本,与使用深度估计模型时输入深度估计模型的界面图像,均来自于该游戏应用程序的第二游戏模式。

在另一些实施例中,训练深度估计模型所采用的界面图像样本,与使用深度估计模型时输入深度估计模型的界面图像来自于不同的应用程序。可选地,上述不同的应用程序可以为同一类型的应用程序。例如,如图7所示,两个游戏应用程序分别为第一游戏应用程序71和第二游戏应用程序72,且第一游戏应用程序71和第二游戏应用程序72为相同类型的游戏应用程序,如同为大逃杀生存类游戏应用程序。而训练深度估计模型所采用的界面图像样本来自于该游戏应用程序的第一游戏应用程序,使用深度估计模型时输入深度估计模型的界面图像来自于该游戏应用程序的第二应用程序。

在一些实施例中,本步骤601(即获取至少一个训练样本),还包括如下子步骤:

1、获取界面图像样本以及界面图像样本的原始深度图;

2、将原始深度图中目标像素的深度值设为门限值,得到处理后的原始深度图;其中,目标像素包括原始深度值大于门限值的像素;

3、对处理后的原始深度图进行归一化处理,得到界面图像样本的真实深度图。

可选地,通过界面图像样本所来自的应用程序的数据接口获取界面图像样本的原始深度图。目标像素的原始深度值是指目标像素在原始深度图中对应的深度值。原始深度图中,像素的原始深度值与对应的深度距离正相关。当原始深度图中目标像素的原始深度值大于门限值时,将其深度值设为门限值,得到处理后的原始深度图,再将处理后的原始深度图进行归一化处理,得到界面图像样本的真实深度图,从而减小界面图像样本的深度图中深度值的动态范围,提升较近距离的深度值的预测精度。

需要说明的是,上述门限值的具体取值由相关技术人员根据实际情况进行设定,本申请实施例对此不作限定。

在一些实施例中,归一化处理的过程参考如下公式一:

公式一:

其中,y’表示归一化后的真实深度图中的深度值,y表示处理后的原始深度图中的深度值,h为常数。可选地,h为上述门限值。可选地,将h设为100,将y的最小值设为5(也即,将处理后的原始深度图中深度值小于5的像素对应的深度值设为5),则,y’的取值范围为[1,20],y’的值越大,像素对应的深度距离越小,从而使得深度估计模型对归一化后的深度值越大(即对应的深度距离越小)的像素越敏感,即深度估计模型对深度距离较小的像素的深度值预测越精确,从而提升目标虚拟对象在移动过程中成功避障的概率。

在一些实施例中,上述步骤402中的反归一化的过程可以参考如下公式二:

公式二:

其中,x表示经过反归一化处理得到的深度图中的深度值,x'表示深度估计模型得到的预测深度图中归一化后的深度值,h为常数。可选地,h为上述门限值。

步骤602,通过深度估计模型对界面图像样本进行处理,得到界面图像样本的预测深度图。

其中,深度估计模型包括至少一个卷积层和至少一个上采样层,卷积层用于对界面图像样本进行特征提取,得到界面图像样本的特征图,上采样层用于对界面图像样本的特征图进行上采样,得到预测深度图。将界面图像样本输入深度估计模型,先经过至少一个卷积层进行特征提取,再经过至少一个上采样层进行上采样,最后输出得到界面图像样本的预测深度图。可选地,在将界面图像样本输入深度估计模型之前,先将界面图像样本缩放至设定的像素大小。如先将界面图像样本缩放至640x480像素。可选地,对于至少一个卷积层和至少一个上采样层,除了最后一层,其余各层之后均存在一个激活层,用于为深度估计模型引入非线性,从而减少了深度估计模型中参数的相互依存关系,避免了过拟合问题,增强深度估计模型的表征能力。

在一些实施例中,如图8所述,深度估计模型包括由5个卷积层81构成的编码层和由5个上采样层82构成的解码层,将缩放为640×480像素的界面图像样本83输入深度估计模型,得到由深度估计模型输出的界面图像样本83的预测深度图84。其中,卷积层81用于对界面图像样本进行卷积特征提取处理,得到界面图像样本83的特征图,上采样层82用于对界面图像样本83的特征图进行上采样,从而将界面图像样本83的特征图还原为640×480像素大小。设置5个卷积层81和5个上采样层82,使得深度估计模型能够在保证较好的预测准确性的前提下,避免模型结构过于复杂。图8仅是对深度估计模型的结构进行的举例说明,相关技术人员还可以结合实际情况灵活设计深度估计模型的结构,本申请实施例对此不作限定。

步骤603,根据界面图像样本的预测深度图和真实深度图,计算深度估计模型的损失函数值。

当深度估计模型的一轮训练结束之后,将预测深度图中预测的深度值与真实深度图中的真实的深度值进行计算,得到深度估计模型的损失函数值。

在一些实施例中,损失函数值的计算公式参考如下公式三:

公式三:

其中,l是深度估计模型的损失函数值,n是界面图像样本中的像素个数,yp是真实深度图中第p个像素的深度值,y'p是预测深度图中第p个像素的深度值。训练深度估计模型的过程的目标是使损失函数值尽可能减小,即使得预测深度图与真实深度图尽可能地接近。

步骤604,根据损失函数值对深度估计模型的参数进行调整。

该损失函数值越小,表示预测深度图与真实深度图的差异越小。因而,计算得到损失函数值之后,对深度估计模型的参数进行调整,使得损失函数值尽可能减小,也即,使得预测深度图与真实深度图尽可能地接近,尽可能地提升深度估计模型输出的预测深度图的准确性。

可选地,当损失函数值小于损失阈值,深度估计模型训练完成。其中,损失阈值的具体取值由相关技术人员根据实际情况进行设定,本申请实施例对此不作限定。

综上所述,本申请实施例中,通过使训练深度估计模型所采用的界面图像样本,与使用深度估计模型时输入深度估计模型的界面图像,来自于同一应用程序的不同模式,使得训练完成的深度估计模型能够从应用程序的一个模式迁移应用于同一应用程序的另一个模式;或使训练深度估计模型所采用的界面图像样本,与使用深度估计模型时输入深度估计模型的界面图像来自于不同的应用程序,使得训练完成的深度估计模型从一个应用程序迁移应用于相同类型的另一个应用程序,也就是说,训练完成的深度估计模型可以应用于界面图像相似的不同模式或不同的应用程序中,从而提升深度估计模型的通用性和可迁移性。

请参考图9,其示出了本申请另一个实施例提供的虚拟对象的控制方法的流程图。该实施例各步骤的执行主体,可以是终端,也可以是服务器,本申请实施例对此不作限定。

在一些实施例中,方法还包括如下步骤(901~903):

步骤901,获取目标虚拟对象的当前位置和当前视角方向。

其中,目标虚拟对象的当前位置可以指目标虚拟对象当前在虚拟环境中的位置,当前视角方向是指目标虚拟对象当前在虚拟环境中的视角方向。需要说明的是,当前视角是指目标虚拟对象此时面朝的方向所能观察到的扇形区域,当前视角方向是指当前视角的中轴线的方向。目标视角和目标视角方向同理,此处不再赘述。

在一些实施例中,获取目标虚拟对象的当前位置,包括如下子步骤:

1、获取虚拟环境当前的全局地图,全局地图用于展示虚拟环境的地形图和目标虚拟对象的当前位置标记;

2、确定当前位置标记对应的像素在全局地图中分别对应的坐标;

3、将当前位置标记对应的像素在全局地图中分别对应的坐标的平均坐标,确定为当前位置。

在一些实施例中,获取虚拟环境当前的全局地图包括获取包括当前的全局地图的界面图像。在一些示例中,全局地图以小地图的状态位于用户界面的角落或侧边。通过针对小地图的触发操作,展开小地图,得到如图10所示的占据用户界面较大区域的全局地图101,此时针对用户界面进行截图,得到包括全局地图的界面图像102,为了突出显示当前位置,当前位置标记103在全局地图中占据若干个像素,当前位置位于当前位置标记103的几何中心。因而,当前位置标记对应的像素在全局地图中分别对应的坐标的平均坐标,即为当前位置在全局地图中的坐标。其中,当前位置标记可以是圆形,可以是三角形,可以是正方形,可以是星形,当前位置标记还可以是其他形状,本申请实施例对此不作限定。

在一些实施例中,获取目标虚拟对象的当前视角方向,包括:将界面图像中,目标数字区域中的数字所指示的方向,确定为当前视角方向。如图11所示,界面图像110中包括用于指示视角方向的视角展示区域111,视角展示区域111的目标数字区域112中的数字所指示的方向,即为目标虚拟对象的当前视角方向。可选地,目标数字区域112为位于界面图像110正中间的区域,或,目标数字区域112为位于视角展示区域111正中间的区域。

在一些实施例中,确定当前位置标记对应的像素在全局地图中分别对应的坐标,包括如下子步骤:

1、基于当前位置标记的颜色的rgb各通道的值,确定rgb各通道的取值范围;

2、将全局地图的像素中,rgb各通道满足取值范围的像素的坐标,确定为当前位置标记对应的像素在全局地图中分别对应的坐标。

rgb色彩模式是一种颜色标准,rgb色彩模式通过对红(r,red)、绿(g,green)、蓝(b,blue)三个颜色通道的变化以及它们相互之间的叠加来得到各种颜色。

在一些实施例中,设置rgb各通道的上下阈值为:

(rsmall,rbig,gsmall,gbig,bsmall,bbig);

则,rgb各通道的取值范围为:

(rbig>r>rsmall)&(gbig>g>gsmall)&(bbig>b>bsmall)。

颜色满足上述取值范围像素即为当前位置标记的像素,对应的坐标即为当前位置标记对应的像素在全局地图中分别对应的坐标。

步骤902,将当前位置指向目标位置的方向,确定为目标视角方向。

在一些实施例中,将从当前位置出发,指向目标位置的方向,确定为目标视角方向。

步骤903,在当前视角方向和目标视角方向之间的夹角大于夹角阈值的情况下,将当前视角方向调整到目标视角方向。

确定当前视角方向和目标视角方向之后,即可识别当前视角方向和目标视角方向之间的夹角,当当前视角方向和目标视角方向之间的夹角大于夹角阈值时,表示当前视角方向偏离目标视角方向较为严重,则将当前视角方向调整到目标视角方向。

在一些实施例中,本步骤903还包括如下子步骤:

1、在目标视角方向对应的角度大于当前视角方向对应的角度的情况下,控制目标虚拟对象向第一方向转动,直至当前视角方向与目标视角方向重合;

2、在目标视角方向对应的角度小于当前视角方向对应的角度的情况下,控制目标虚拟对象向第二方向转动,直至当前视角方向与目标视角方向重合;

其中,第一方向和第二方向为相反的方向,目标视角方向对应的角度为基准方向矢量顺时针旋转到目标视角方向经过的旋转角度,当前视角方向对应的角度为基准方向矢量顺时针旋转到当前视角方向经过的旋转角度,目标视角方向、基准方向矢量和当前视角方向的交点为当前位置。可选地,向第一方向转动为右转,向第二方向转动为左转。

如图12所示,基准方向矢量121为以当前位置122为起点的竖直向上的矢量,目标视角方向123为以当前位置122为起点,指向目标位置124的方向,基准方向矢量121顺时针旋转到目标视角方向123经过的旋转角度125,即为目标视角方向对应的角度。当前视角方向对应的角度同理,此处不再赘述。

可选地,每隔第二间隔时长执行一次上述步骤901~903。第二间隔时长的具体取值可以为:5秒、10秒、15秒等等,第二间隔时长的具体取值可以由相关技术人员根据实际情况进行设定,本申请实施例对此不作限定。

在上述实现方式中,通过设置基准方向矢量,并分别获取当前视角方向和目标视角方向相对于基准方向矢量的旋转角度,可以使当前视角方向以最小的旋转角度旋转后与目标视角方向重合,节省时间。

下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。

请参考图13,其示出了本申请一个实施例提供的虚拟对象的控制装置的框图。该装置具有实现上述虚拟对象的控制方法示例的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置可以是上文介绍的终端或服务器,也可以设置在终端或服务器上。该装置1300可以包括:图像获取模块1310、深度图生成模块1320、方向确定模块1330和移动控制模块1340。

所述图像获取模块1310,用于获取目标虚拟对象的当前视角下的界面图像,所述界面图像用于展示所述当前视角的虚拟环境,所述虚拟环境中包括所述目标虚拟对象。

所述深度图生成模块1320,用于生成所述界面图像的深度图,所述深度图用于表征所述界面图像中所述虚拟环境的元素相对于所述目标虚拟对象的深度距离。

所述方向确定模块1330,用于根据所述深度图确定所述目标虚拟对象的移动方向。

所述移动控制模块1340,用于控制所述目标虚拟对象按照所述移动方向进行移动。

综上所述,本申请实施例提供的技术方案,通过获取目标虚拟对象的当前视角下的界面图像,并根据界面图像生成对应的深度图,深度图能够表征的目标虚拟对象的当前视角的虚拟环境中,各虚拟障碍物距离目标虚拟对象的深度距离,进而能够根据深度图控制目标虚拟对象避开虚拟障碍物,本身申请实施例无需预先人工规划大量路径,只需实时地自动分析界面图像即可在移动过程中避开虚拟障碍物,降低了实现虚拟对象自动移动的时间和人力成本。

在一些实施例中,如图14所示,所述方向确定模块1330包括:区域划分子模块1331、均值计算子模块1332、区域选择子模块1333和方向确定子模块1334。

所述区域划分子模块1331,用于将所述深度图划分为多个区域,不同的区域对应于所述目标虚拟对象不同的移动方向。

所述均值计算子模块1332,用于分别计算每个区域中的深度值的平均值,得到所述多个区域分别对应的深度均值。

所述区域选择子模块1333,用于根据所述多个区域分别对应的深度均值,从所述多个区域中选择一个区域作为目标区域。

所述方向确定子模块1334,用于将所述目标区域对应的移动方向,确定为所述目标虚拟对象的移动方向。

在一些实施例中,所述多个区域包括正前方区域,所述正前方区域对应的所述目标虚拟对象的移动方向为正前方;如图14所示,所述区域选择子模块1333,用于:

若所述多个区域中的正前方区域的深度均值大于深度阈值,则选择所述正前方区域作为所述目标区域;

若所述正前方区域的深度均值小于所述深度阈值,则从所述多个区域中选择所述深度均值最大的区域作为所述目标区域。

在一些实施例中,如图14所示,所述区域划分子模块1331,用于:

将所述深度图从左至右划分为5个尺寸相同的区域;其中,所述5个区域从左至右依次为左侧区域、左前方区域、正前方区域、右前方区域和右侧区域。

在一些实施例中,如图14所示,所述深度图生成模块1320,用于:

用于将所述界面图像输入至深度估计模型,由所述深度估计模型输出预测深度图,所述深度估计模型是用于对所述深度距离进行预估的机器学习模型,所述预测深度图中包含所述界面图像中所述虚拟环境的元素分别对应的深度值,所述深度值为归一化后的深度值;

用于对所述预测深度图进行反归一化处理,得到所述深度图。在一些实施例中,如图14所示,所述装置1300还包括:样本获取模块1350、图像处理模块1360、损失计算模块1370和参数调整模块1380。

所述样本获取模块1350,用于获取至少一个训练样本,所述训练样本的样本数据包括界面图像样本,所述训练样本的标签数据包括所述界面图像样本的真实深度图。

所述图像处理模块1360,用于通过所述深度估计模型对所述界面图像样本进行处理,得到所述界面图像样本的预测深度图;其中,所述深度估计模型包括至少一个卷积层和至少一个上采样层,所述卷积层用于对所述界面图像样本进行特征提取,得到所述界面图像样本的特征图,所述上采样层用于对所述界面图像样本的特征图进行上采样,得到所述预测深度图。

所述损失计算模块1370,用于根据所述界面图像样本的预测深度图和真实深度图,计算所述深度估计模型的损失函数值。

所述参数调整模块1380,用于根据所述损失函数值对所述深度估计模型的参数进行调整。

在一些实施例中,如图14所示,所述样本获取模块1350用于:

获取所述界面图像样本以及所述界面图像样本的原始深度图;

将所述原始深度图中目标像素的深度值设为门限值,得到处理后的原始深度图;其中,所述目标像素包括原始深度值大于所述门限值的像素;

对所述处理后的原始深度图进行归一化处理,得到所述界面图像样本的真实深度图。

在一些实施例中,如图14所示,所述装置1300还包括:方位获取模块1390和方向调整模块1395。

所述方位获取模块1390,用于获取所述目标虚拟对象的当前位置和当前视角方向。

所述方向确定模块1330,还用于将所述当前位置指向目标位置的方向,确定为目标视角方向。

所述方向调整模块1395,用于在所述当前视角方向和所述目标视角方向之间的夹角大于夹角阈值的情况下,将所述当前视角方向调整到所述目标视角方向。

在一些实施例中,如图14所示,所述方位获取模块1390,包括:地图获取子模块1391、坐标确定子模块1392和位置确定子模块1393。

所述地图获取子模块1391,用于获取所述虚拟环境当前的全局地图,所述全局地图用于展示所述虚拟环境的地形图和所述目标虚拟对象的当前位置标记。

所述坐标确定子模块1392,用于确定所述当前位置标记对应的像素在所述全局地图中分别对应的坐标。

所述位置确定子模块1393,用于将所述当前位置标记对应的像素在所述全局地图中分别对应的坐标的平均坐标,确定为所述当前位置。

所述方向确定子模块1334,还用于识别所述界面图像中方向提示区域中的方向信息,得到所述当前视角方向。

在一些实施例中,如图14所示,所述装置1300还包括:色彩值获取模块1396,用于:获取所述全局地图中像素分别对应的色彩rgb通道的值。

所述坐标确定子模块1392,用于:基于所述当前位置标记的颜色的rgb各通道的值,确定rgb各通道的取值范围;

将所述全局地图的像素中,rgb各通道满足所述取值范围的像素的坐标,确定为所述当前位置标记对应的像素在所述全局地图中分别对应的坐标。

在一些实施例中,如图14所示,所述方向调整模块1395,用于:

在所述目标视角方向对应的角度大于所述当前视角方向对应的角度的情况下,控制所述目标虚拟对象向第一方向转动,直至所述当前视角方向与所述目标视角方向重合;

在所述目标视角方向对应的角度小于所述当前视角方向对应的角度的情况下,控制所述目标虚拟对象向第二方向转动,直至所述当前视角方向与所述目标视角方向重合;

其中,所述第一方向和所述第二方向为相反的方向,所述目标视角方向对应的角度为基准方向矢量顺时针旋转到所述目标视角方向经过的旋转角度,所述当前视角方向对应的角度为所述基准方向矢量顺时针旋转到所述当前视角方向经过的旋转角度,所述目标视角方向、所述基准方向矢量和所述当前视角方向的交点为所述当前位置。

需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

请参考图15,其示出了本申请一个实施例提供的计算机设备的结构框图。该计算机设备用于实施上述实施例中提供的虚拟对象的控制方法。具体来讲:

所述计算机设备1500包括cpu(centralprocessingunit,中央处理单元)1501、包括ram(randomaccessmemory,随机存取存储器)1502和rom(read-onlymemory,只读存储器)1503的系统存储器1504,以及连接系统存储器1504和中央处理单元1501的系统总线1505。所述计算机设备1500还包括帮助计算机内的各个器件之间传输信息的基本i/o(input/output,输入/输出)系统1506,和用于存储操作系统1513、应用程序1514和其他程序模块1515的大容量存储设备1507。

所述基本输入/输出系统1506包括有用于显示信息的显示器1508和用于用户输入信息的诸如鼠标、键盘之类的输入设备1509。其中所述显示器1508和输入设备1509都通过连接到系统总线1505的输入输出控制器1510连接到中央处理单元1501。所述基本输入/输出系统1506还可以包括输入输出控制器1510以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器1510还提供输出到显示屏、打印机或其他类型的输出设备。

所述大容量存储设备1507通过连接到系统总线1505的大容量存储控制器(未示出)连接到中央处理单元1501。所述大容量存储设备1507及其相关联的计算机可读介质为计算机设备1500提供非易失性存储。也就是说,所述大容量存储设备1507可以包括诸如硬盘或者cd-rom(compactdiscread-onlymemory,只读光盘)驱动器之类的计算机可读介质(未示出)。

不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括ram、rom、eprom(erasableprogrammablereadonlymemory,可擦除可编程只读存储器)、eeprom(electricallyerasableprogrammablereadonlymemory,可擦除可编程只读存储器)、闪存或其他固态存储其技术,cd-rom、dvd(digitalvideodisc,高密度数字视频光盘)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器1504和大容量存储设备1507可以统称为存储器。

根据本申请的各种实施例,所述计算机设备1500还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即计算机设备1500可以通过连接在所述系统总线1505上的网络接口单元1511连接到网络1512,或者说,也可以使用网络接口单元1511来连接到其他类型的网络或远程计算机系统(未示出)。

在一些实施例中,还提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集在被处理器执行时以实现上述虚拟对象的控制方法。

可选地,该计算机可读存储介质可以包括:rom(read-onlymemory,只读存储器)、ram(random-accessmemory,随机存储器)、ssd(solidstatedrives,固态硬盘)或光盘等。其中,随机存取记忆体可以包括reram(resistancerandomaccessmemory,电阻式随机存取记忆体)和dram(dynamicrandomaccessmemory,动态随机存取存储器)。

在一些实施例中,还提供了一种计算机程序产品或计算机程序,所述计算机程序产品或计算机程序包括计算机指令,所述计算机指令存储在计算机可读存储介质中。计算机设备的处理器从所述计算机可读存储介质中读取所述计算机指令,所述处理器执行所述计算机指令,使得所述计算机设备执行上述虚拟对象的控制方法。

应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。

以上所述仅为本申请的示例性实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。

此文章来源于网络,如有侵权,请联系删除

tips