图像处理方法、装置、电子设备及计算机可读存储介质与流程
本申请涉及人工智能和大数据技术,尤其涉及一种图像处理方法、装置、电子设备及计算机可读存储介质。
背景技术:
人工智能(artificialintelligence,ai)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。计算机视觉技术(computervision,cv)是人工智能的一个重要分支,主要研究相关的理论和技术,试图建立能够从图像或者多维数据中获取信息的人工智能系统。
动作预测涉及到计算机视觉技术以及云技术领域中的大数据技术,主要通过模型对与特定的对象(如虚拟对象)相关的图像进行处理,从而预测对象所要执行的动作。在模型的训练阶段会获取多个类别的样本,但是,不同类别的样本往往存在数量不平衡的问题,即某个类别的样本的数量会远超其他类别,这会导致训练后的模型的输出更倾向于数量最多的类别,图像处理的效果差,预测出的动作的错误率高。
针对于此,相关技术尚未提供有效的解决方案。
技术实现要素:
本申请实施例提供一种图像处理方法、装置、电子设备及计算机可读存储介质,能够优化图像处理的效果,提升预测出的动作的精度。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种图像处理方法,包括:
获取包括虚拟对象的虚拟场景的多个场景图像、以及在每个所述场景图像对应时刻控制所述虚拟对象执行的动作,根据每个所述场景图像及对应的动作构建动作样本;
根据所述动作对多个所述动作样本进行分类,并根据与每个类别的动作样本的数量负相关的采样概率进行采样处理,得到样本集;
对所述样本集中的多个所述场景图像进行融合处理得到图像融合结果,对所述样本集中的多个所述动作进行融合处理得到动作融合结果,根据所述图像融合结果和所述动作融合结果构建融合动作样本;
根据所述融合动作样本训练图像处理模型,并通过训练后的所述图像处理模型预测目标动作。
本申请实施例提供一种图像处理装置,包括:
获取模块,用于获取包括虚拟对象的虚拟场景的多个场景图像、以及在每个所述场景图像对应时刻控制所述虚拟对象执行的动作,根据每个所述场景图像及对应的动作构建动作样本;
采样模块,用于根据所述动作对多个所述动作样本进行分类,并根据与每个类别的动作样本的数量负相关的采样概率进行采样处理,得到样本集;
融合模块,用于对所述样本集中的多个所述场景图像进行融合处理得到图像融合结果,对所述样本集中的多个所述动作进行融合处理得到动作融合结果,根据所述图像融合结果和所述动作融合结果构建融合动作样本;
预测模块,用于根据所述融合动作样本训练图像处理模型,并通过训练后的所述图像处理模型预测目标动作。
本申请实施例提供一种电子设备,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现本申请实施例提供的图像处理方法。
本申请实施例提供一种计算机可读存储介质,存储有可执行指令,用于引起处理器执行时,实现本申请实施例提供的图像处理方法。
本申请实施例具有以下有益效果:
在根据动作对构建的多个动作样本进行分类后,确定与每个类别的动作样本的数量负相关的采样概率,从而有更大机会将少数类的动作样本添加至样本集中,改善参与模型训练的不同类别的动作样本之间数量不平衡的情况;对采样得到的样本集中的多个场景图像和多个动作分别进行融合,得到新的融合动作样本,能够避免训练图像处理模型时出现过拟合的情况,提升图像处理的效果,即提升最终预测出的目标动作的精度。
附图说明
图1是本申请实施例提供的图像处理系统的一个架构示意图;
图2是本申请实施例提供的终端设备的一个架构示意图;
图3a是本申请实施例提供的图像处理方法的一个流程示意图;
图3b是本申请实施例提供的图像处理方法的一个流程示意图;
图3c是本申请实施例提供的图像处理方法的一个流程示意图;
图4a是本申请实施例提供的虚拟场景的一个示意图;
图4b是本申请实施例提供的虚拟场景的一个示意图;
图4c是本申请实施例提供的虚拟场景的一个示意图;
图5是本申请实施例提供的图像处理方法的一个流程示意图;
图6是本申请实施例提供的轻量化模型中用于进行特征提取处理的部分的一个架构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。在以下的描述中,所涉及的术语“多个”是指至少两个。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)虚拟场景:指利用设备输出的区别于现实世界的虚拟场景,通过裸眼或设备的辅助能够形成对虚拟场景的视觉感知,例如通过显示屏幕输出的二维影像,通过立体投影、虚拟现实和增强现实技术等立体显示技术来输出的三维影像;此外,还可以通过各种可能的硬件形成听觉感知、触觉感知、嗅觉感知和运动感知等各种模拟现实世界的感知。值得说明的是,本申请实施例也可以延伸至现实场景,如现实中的车辆自动驾驶场景。
2)虚拟对象:指虚拟场景中用于被控制以实现特定目的的对象,例如,虚拟对象可以是虚拟场景中进行交互的各种人和物的形象,或在虚拟场景中的可活动对象。该可活动对象可以是虚拟人物、虚拟动物、动漫人物等,也可以是在虚拟场景中显示的人物、动物、植物、油桶、墙壁、石块等。该虚拟对象还可以是该虚拟场景中的一个虚拟的用于代表用户的虚拟形象。例如,该虚拟对象可以是在虚拟场景中用于收集虚拟资源以获得积分的虚拟人物。虚拟场景中的虚拟对象的数量可以是预先设置的,也可以是根据加入互动的客户端的数量动态确定的。
3)场景图像:对虚拟场景进行图像采集所得到的图像,场景图像可以包括全量场景或部分场景。其中,场景图像可以是以第三人称视角对虚拟场景进行观察得到的(可以包括虚拟对象在内),也可以是以虚拟对象的第一人称视角所观察得到的。
4)动作:虚拟场景中的虚拟对象可以执行的动作。在虚拟场景中,往往会设定多个类别的动作,例如在酷跑类游戏的虚拟场景中,动作的类别可以包括跳跃、下蹲和不做动作。
5)图像处理模型:用于根据虚拟场景的虚拟图像,来预测控制虚拟对象执行的动作。本申请实施例对图像处理模型的类型不做限定,例如可以是神经网络模型。
6)负相关:一种数值关系,举例来说,若存在变量a和b,且在a的数值越大时,b的数值越小;在a的数值越小时,b的数值越大。则称a与b之间成负相关。
7)采样处理:在本申请实施例中,指根据多个动作样本的采样概率,在多个动作样本中进行选择,并将选择出的动作样本添加至样本集中。采样处理往往包括多轮选择,每轮选择出一个动作样本添加至样本集中,选择的轮数与样本集包括的动作样本的数量(可以预先设定)相同。
8)反向传播:模型训练的一种机制。以包括输入层、隐藏层及输出层的神经网络模型进行举例,前向传播是指按照输入层-隐藏层-输出层的顺序,对输入的数据进行传播(即处理),最终得到输出层输出的预测结果;反向传播是指将预测结果与实际结果之间的差异(损失值),按照输出层-隐藏层-输入层的顺序进行传播,在反向传播的过程中,可以结合梯度下降的机制调整各个层的权重参数,实现模型训练。
9)大数据(bigdata):指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。在本申请实施例中,可以利用大数据技术实现动作样本的构建、采样处理以及融合处理等。
本申请实施例提供一种图像处理方法、装置、电子设备和计算机可读存储介质,能够改善不同类别的动作样本之间数量不平衡的问题,同时也可避免模型过拟合,提升最终预测出的目标动作的精度。
本申请实施例可以应用于包括虚拟对象的虚拟场景,以游戏的虚拟场景为例,受控的虚拟对象可以是虚拟人物,在人类通过终端设备的客户端游玩游戏,即控制虚拟人物在虚拟场景中执行动作的过程中,通过截图或者录制视频的方式,获取多个场景图像以及在每个场景图像对应时刻控制虚拟对象执行的动作。通过这些场景图像及动作训练图像处理模型,并根据训练后的图像处理模型实现虚拟人物的自动控制,即根据客户端当前的实时场景图像,预测针对虚拟人物的目标动作,并控制虚拟人物执行该目标动作,上述方式适用于人机对战、自动挂机及自动化游戏测试等任务,能够有效地节省人力成本。
除此之外,本申请实施例还可以应用于包括现实对象的现实场景,以车辆自动驾驶场景中的转向模仿为例,受控的现实对象可以是车辆,在人类驾驶车辆的过程中,通过车辆的前置摄像头(或其他图像采集部件)获取车辆的多个场景图像,同时,通过车辆的动作传感器(如方向盘上的动作传感器,当然也可以是其他动作采集部件),获取在每个场景图像对应时刻控制车辆执行的动作。其中,动作的类别可以包括左转方向盘、右转方向盘以及不做动作,进一步还可以包括多个转向角度。当然,动作并不限于针对方向盘的动作,例如还可以是针对油门、刹车及离合器等部件的操作,这里仅以针对方向盘的动作进行示例。通过这些场景图像及动作训练图像处理模型,并根据训练后的图像处理模型实现自动驾驶,即根据车辆的前置摄像头所采集的实时场景图像,预测针对车辆的方向盘的目标动作,并控制车辆的方向盘(如借助特定的嵌入式设备进行控制)执行该目标动作,如此,可以代替人类来驾驶车辆,减少人类在驾驶过程中的疲劳感。
下面说明本申请实施例提供的电子设备的示例性应用,本申请实施例提供的电子设备可以实施为各种类型的终端设备,也可以实施为服务器。
参见图1,图1是本申请实施例提供的图像处理系统100的一个架构示意图,终端设备400通过网络300连接服务器200,网络300可以是广域网或者局域网,又或者是二者的组合。为了便于理解,图1中以虚拟场景进行示例说明,终端设备400可以通过运行客户端来输出虚拟场景。
在一些实施例中,以电子设备是终端设备为例,本申请实施例提供的图像处理方法可以由终端设备实现。当需要形成虚拟场景的视觉感知时,终端设备400通过图形计算硬件计算显示所需要的数据,并完成显示数据的加载、解析和渲染,在图形输出硬件输出能够对虚拟场景形成视觉感知的视频帧,例如,在智能手机的显示屏幕呈现二维的视频帧,或者,在增强现实/虚拟现实眼镜的镜片上投射实现三维显示效果的视频帧;此外,为了丰富感知效果,终端设备还可以借助不同的硬件来形成听觉感知(如借助麦克风)、触觉感知(如借助振动器)、运动感知和味觉感知的一种或多种。
作为示例,如图1所示,终端设备400运行客户端410(例如单机版游戏的应用程序),在客户端410的运行过程中输出虚拟场景500,虚拟场景500是供虚拟对象(如虚拟人物)交互的环境,例如可以是用于供虚拟对象采集虚拟资源的平原、街道、山谷等等。以酷跑类的游戏进行举例,虚拟场景500中包括虚拟对象510和虚拟资源520,虚拟对象的目标是收集尽量多的虚拟资源,以提升游戏积分。其中,虚拟对象510可以是受用户(或称玩家)控制的虚拟人物(或称游戏角色),即虚拟对象510受控于真实用户,将响应于真实用户针对动作区域的触发操作(如点击操作)而在虚拟场景500中执行相应的动作。当然,虚拟对象510也可受控于ai。
在图1中,示例性地示出了以控件形式呈现的第一动作区域530和第二动作区域540。客户端410响应于针对第一动作区域530的触发操作,控制虚拟对象510执行下蹲动作;响应于针对第二动作区域540的触发操作,控制虚拟对象510执行跳跃动作;当未接收到针对第一动作区域530及第二动作区域540中的任意一个区域的触发操作时,默认控制虚拟对象510不做动作。值得说明的是,这里的不做动作,是指不执行下蹲及跳跃中的任意一种动作,在酷跑类游戏中,不做动作往往意味着控制虚拟对象510继续奔跑。
在用户通过客户端410控制虚拟对象510的过程中,客户端410可以获取多个场景图像、以及在每个场景图像对应时刻控制虚拟对象执行的动作,以训练图像处理模型。然后,通过训练后的图像处理模型预测目标动作,代替用户控制虚拟对象510在虚拟场景500中执行目标动作,适用于人机对战、自动挂机及自动化游戏测试等任务。
在一些实施例中,以电子设备是服务器为例,本申请实施例提供的图像处理方法可以由服务器和终端设备协同实现,适用于依赖服务器200的计算能力完成虚拟场景计算、并在终端设备400输出虚拟场景的情况。
以形成虚拟场景的视觉感知为例,服务器200进行虚拟场景相关显示数据的计算并发送到终端设备400,终端设备400依赖于图形计算硬件完成计算显示数据的加载、解析和渲染,依赖于图形输出硬件输出虚拟场景以形成视觉感知。
终端设备400可以运行客户端410(例如网络版游戏的应用程序),通过连接游戏服务器(即服务器200),在人机交互界面中输出虚拟场景500。举例来说,当客户端410接收到针对第一动作区域530或第二动作区域540的触发操作时,将触发操作通过网络300发送至服务器200,服务器200根据预先设定的动作逻辑,将动作指令发送至客户端410,以使客户端410根据动作指令控制虚拟对象510执行相应的动作。在用户通过客户端410控制虚拟对象510的过程中,客户端410可以将获取到的多个场景图像、以及在每个场景图像对应时刻控制虚拟对象执行的动作发送至服务器200,以使服务器200训练图像处理模型。
然后,服务器200通过训练后的图像处理模型预测目标动作,并将目标动作的动作指令发送至客户端410,以使客户端410根据控制虚拟对象510执行目标动作。或者,服务器200可以将训练后的图像处理模型发送至终端设备400,以使客户端410通过训练后的图像处理模型预测目标动作,并控制虚拟对象510执行目标动作。
值得说明的是,在图1中,虚拟场景500是以第三人称的视角进行观察得到的,但这并不构成对本申请实施例的限定,即虚拟场景500也可以是根据第一人称的视角(虚拟对象510的视角)进行观察得到的。
在一些实施例中,终端设备400可以通过运行计算机程序来实现本申请实施例提供的图像处理方法,例如,计算机程序可以是操作系统中的原生程序或软件模块;可以是本地(native)应用程序(app,application),即需要在操作系统中安装才能运行的程序,例如军事仿真程序、游戏应用程序(即上述的客户端410);也可以是小程序,即只需要下载到浏览器环境中就可以运行的程序;还可以是能够嵌入至任意app中的游戏小程序。总而言之,上述计算机程序可以是任意形式的应用程序、模块或插件。对于游戏应用程序来说,其可以是酷跑类游戏、第一人称射击(first-personshooting,fps)游戏、第三人称射击(third-personalshooting,tps)游戏或者多人在线战术竞技(multiplayeronlinebattlearena,moba)游戏中的任意一种,对此不做限定。
本申请实施例可以借助于云技术(cloudtechnology)实现,云技术是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。在另一种意义上,云技术也是基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、以及应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源。
在一些实施例中,服务器200可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn、以及大数据和人工智能平台等基础云计算服务的云服务器,例如,云服务可以是虚拟场景的服务,供终端设备400调用,以向终端设备400发送与虚拟场景相关的显示数据。终端设备400可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、智能电视等,但并不局限于此。终端设备400以及服务器200可以通过有线或无线通信方式进行直接或间接地连接,本申请实施例中不做限制。
以本申请实施例提供的电子设备是终端设备为例说明,可以理解的,对于电子设备是服务器的情况,图2中示出的结构中的部分(例如用户接口、呈现模块和输入处理模块)可以缺省。参见图2,图2是本申请实施例提供的终端设备400的结构示意图,图2所示的终端设备400包括:至少一个处理器410、存储器450、至少一个网络接口420和用户接口430。终端400中的各个组件通过总线系统440耦合在一起。可理解,总线系统440用于实现这些组件之间的连接通信。总线系统440除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统440。
处理器410可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(dsp,digitalsignalprocessor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
用户接口430包括使得能够呈现媒体内容的一个或多个输出装置431,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口430还包括一个或多个输入装置432,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
存储器450可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器450可选地包括在物理位置上远离处理器410的一个或多个存储设备。
存储器450包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(rom,readonlymemory),易失性存储器可以是随机存取存储器(ram,randomaccessmemory)。本申请实施例描述的存储器450旨在包括任意适合类型的存储器。
在一些实施例中,存储器450能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统451,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块452,用于经由一个或多个(有线或无线)网络接口420到达其他计算设备,示例性的网络接口420包括:蓝牙、无线相容性认证(wifi)、和通用串行总线(usb,universalserialbus)等;
呈现模块453,用于经由一个或多个与用户接口430相关联的输出装置431(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
输入处理模块454,用于对一个或多个来自一个或多个输入装置432之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
在一些实施例中,本申请实施例提供的装置可以采用软件方式实现,图2示出了存储在存储器450中的图像处理装置455,其可以是程序和插件等形式的软件,包括以下软件模块:获取模块4551、采样模块4552、融合模块4553及预测模块4554,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
将结合本申请实施例提供的电子设备的示例性应用和实施,说明本申请实施例提供的图像处理方法。
参见图3a,图3a是本申请实施例提供的图像处理方法的一个流程示意图,将结合图3a示出的步骤进行说明。
在步骤101中,获取包括虚拟对象的虚拟场景的多个场景图像、以及在每个场景图像对应时刻控制虚拟对象执行的动作,根据每个场景图像及对应的动作构建动作样本。
本申请实施例可以应用于包括现实对象的现实场景,也可以应用于包括虚拟对象的虚拟场景,这里以后者情况进行示例说明。在虚拟场景中的虚拟对象被控制的过程中,获取虚拟场景的多个场景图像,针对获取到的每个场景图像,在场景图像对应的时刻,还获取控制该虚拟对象执行的动作,以作为场景图像对应的动作。例如,在游戏的虚拟场景中,若获取的是游戏对局开始后第10秒的场景图像,则获取第10秒时控制虚拟对象执行的动作,作为该场景图像对应的动作。其中,虚拟场景中的虚拟对象可以是被人类(用户)或ai控制的,例如,为了保证构建出的动作样本的准确性,可以在人类控制虚拟对象的过程中,获取场景图像及对应的动作。根据获取到的每个场景图像及对应的动作构建动作样本,即每个动作样本包括一个场景图像及一个动作。
对于场景图像的获取,可以在虚拟对象被控制的过程中,周期性地(如1秒10次)获取场景图像以及对应的动作。获取到的场景图像可以是虚拟场景的全量场景或部分场景,场景图像可以包括整个虚拟对象在内,可以包括虚拟对象的部分(如虚拟人物的手臂部分)在内,还可以不包括虚拟对象,根据实际场景而定。
值得说明的是,虚拟场景中的动作可以预先设定,通常包括多个类别,例如在酷跑类游戏的虚拟场景中,动作的类别包括下蹲、跳跃和不做动作。
在一些实施例中,虚拟场景包括至少一种触发动作及一种非触发动作,每种触发动作对应虚拟场景中的一个触发区域;在获取虚拟场景的场景图像时,还包括:当检测到针对任意一个触发区域的触发操作时,将任意一个触发区域对应的触发动作,作为场景图像对应时刻控制虚拟对象执行的动作;当检测到针对至少一个触发区域之外的区域的触发操作、或者未检测到触发操作时,将非触发动作作为场景图像对应时刻控制虚拟对象执行的动作。
在本申请实施例中,可以设定虚拟场景包括至少一种触发动作及一种非触发动作,其中,触发动作需要主动触发。例如,在酷跑类游戏的虚拟场景中,触发动作可以包括下蹲和跳跃,非触发动作为不做动作。在虚拟场景中,呈现与每种触发动作对应的触发区域,为了保证动作获取的准确性,可以设定不同触发动作对应的触发区域互不相交。
在获取虚拟场景的场景图像时,判断在场景图像对应的时刻,是否检测到针对任意一个触发区域的触发操作。当检测到针对任意一个触发区域的触发操作时,将被触发的触发区域对应的触发动作,作为场景图像对应时刻控制虚拟对象执行的动作;当检测到针对所有触发区域之外的区域的触发操作(即无效的触发操作)、或者未检测到触发操作时,将非触发动作作为场景图像对应时刻控制虚拟对象执行的动作。在本申请实施例中,对触发操作的类型不做限定,例如可以是点击操作或长按操作等。
在一些实施例中,虚拟场景包括多种触发动作,每种触发动作对应虚拟场景中的一个触发区域;在获取虚拟场景的场景图像时,还包括:当检测到针对任意一个触发区域的触发操作时,将任意一个触发区域对应的触发动作,作为场景图像对应时刻控制虚拟对象执行的动作;当检测到针对多个触发区域之外的区域的触发操作、或者未检测到触发操作时,丢弃场景图像。
在虚拟场景中,所有动作也可以均为需要触发的触发动作,例如虚拟场景包括跳跃和下蹲两种触发动作。同样地,每种触发动作对应虚拟场景中的一个触发区域,不同触发动作对应的触发区域可以互不相交。
在获取虚拟场景的场景图像时,判断在场景图像对应的时刻,是否检测到针对任意一个触发区域的触发操作。当检测到针对任意一个触发区域的触发操作时,将被触发的触发区域对应的触发动作,作为场景图像对应时刻控制虚拟对象执行的动作;当检测到针对所有触发区域之外的区域的触发操作、或者未检测到触发操作时,证明在场景图像对应时刻并未控制虚拟对象执行动作,则直接丢弃场景图像,从而节省存储资源和计算资源。通过上述两种方式,提升了动作获取的灵活性,适用于不同类型的虚拟场景。
在一些实施例中,在获取虚拟场景的场景图像时,方法还包括:根据虚拟对象在虚拟场景中收集的虚拟资源的数量、虚拟对象的移动距离、以及虚拟对象击杀敌人的数量中的至少一种,确定场景图像对应时刻的动作积分;当动作积分小于场景图像对应时刻的设定积分阈值时,丢弃场景图像。
这里,对于获取到的场景图像,确定虚拟对象在场景图像对应时刻的动作积分,其中,动作积分可以通过虚拟对象在虚拟场景中收集的虚拟资源的数量、虚拟对象的移动距离、以及虚拟对象击杀敌人的数量中的至少一种来计算得到,例如可以直接将虚拟对象在虚拟场景中收集的虚拟资源的数量作为动作积分。当然,还可以根据虚拟场景中的更多数据,例如虚拟对象与特定的虚拟道具(如用于施加正面效果的虚拟道具)的交互次数等,来计算动作积分,并不限于上述示例。
场景图像对应时刻的动作积分越大,表示场景图像对应时刻的控制效果越好。当场景图像对应时刻的动作积分小于场景图像对应时刻的设定积分阈值时,证明场景图像对应时刻的控制效果不佳,则丢弃场景图像,以避免构建质量较低的动作样本。这里,对设定积分阈值的设定标准不做限定,可以根据实际应用场景而定,例如,在游戏的虚拟场景中,针对虚拟场景的某个时刻,可以获取用户排行榜中前1%的多个用户在该时刻的动作积分的平均值,以作为该时刻的设定积分阈值,当然,虚拟场景中多个时刻的设定积分阈值也可以由相关人员进行手动设置。通过上述方式,能够有效保证场景图像以及后续构建出的动作样本的质量,便于提升图像处理的精度。
在步骤102中,根据动作对多个动作样本进行分类,并根据与每个类别的动作样本的数量负相关的采样概率进行采样处理,得到样本集。
在通过步骤101构建出多个动作样本后,根据动作对所有动作样本进行分类,例如虚拟场景中动作的类别包括下蹲、跳跃和不做动作,则可以相应地将所有动作样本分为三类,即第一个类别的动作样本包括的动作为下蹲,第二个类别的动作样本包括的动作为跳跃,第三个类别的动作样本包括的动作为不做动作。针对每一个类别的动作样本,获取该类别的动作样本的数量,并将与该数量负相关的采样概率,作为该类别的动作样本的采样概率。其中,负相关是一种数值关系,即某一类别的动作样本的数量越多,对应的采样概率越小;某一类别的动作样本的数量越少,对应的采样概率越大,具体的负相关关系可以根据实际应用场景进行设定。值得说明的是,属于同一类别的所有动作样本的采样概率相同。
在得到每个动作样本的采样概率后,按照采样概率对所有动作样本进行采样处理,得到样本集。其中,样本集包括的动作样本的数量可以预先设定,如设定为2。通过上述方式,保证少数类样本的采样概率比多数类样本更大,即少数类样本被添加至样本集的概率更大,能够避免过多地采样多数类样本,有效改善参与模型训练的不同类别的动作样本之间的数量不均衡的情况。
在一些实施例中,可以通过这样的方式来实现上述的根据与每个类别的动作样本的数量负相关的采样概率进行采样处理,得到样本集:执行多次以下的处理:根据每个类别的动作样本的采样概率,从多个动作样本中选择出一个动作样本,并将选择出的动作样本添加至样本集中;其中,任意一个类别的动作样本的采样概率与任意一个类别的动作样本的数量负相关。
这里,采样处理包括多轮选择,在每一轮选择中,根据每个动作样本的采样概率,从所有动作样本中选择出一个动作样本,并将选择出的动作样本添加至样本集中,即动作样本的采样概率,实际上是动作样本在每轮选择中被添加至样本集的概率。其中,选择的轮数与样本集包括的动作样本的数量(可以预先设定)相同。举例来说,某个动作样本的采样概率是5%,预先设定的样本集包括的动作样本的数量为2,则采样处理包括2轮选择,在每一轮选择中,该动作样本被添加至样本集的概率为5%。值得说明的是,模型训练往往需要大量样本,因此,可以对所有动作样本进行多次采样处理,以得到多个样本集。
在步骤103中,对样本集中的多个场景图像进行融合处理得到图像融合结果,对样本集中的多个动作进行融合处理得到动作融合结果,根据图像融合结果和动作融合结果构建融合动作样本。
若根据重复的动作样本直接对图像处理模型进行训练,则容易导致模型过拟合,降低训练效果。因此,在本申请实施例中,针对通过步骤102得到的样本集,对样本集中的所有场景图像进行融合处理得到图像融合结果,同时对样本集中的所有动作进行融合处理得到动作融合结果,并根据图像融合结果和动作融合结果构建新的融合动作样本。其中,对融合处理的方式不做限定,例如可以是相加处理、乘积处理及加权处理中的至少一种等。
在步骤104中,根据融合动作样本训练图像处理模型,并通过训练后的图像处理模型预测目标动作。
这里,根据得到的融合动作样本对图像处理模型进行训练,为了提升图像处理模型的训练效果,在步骤102中可以进行多次采样处理得到多个样本集,并根据对应的多个融合动作样本对图像处理模型进行训练。在训练过程中,可以为图像处理模型设定收敛条件,当满足收敛条件时停止训练,例如收敛条件可以是设定的训练轮数或其他条件。
完成模型训练后,可以通过训练后的图像处理模型对场景图像进行处理,得到预测出的目标动作。本申请实施例对目标动作的用途不做限定,例如在游戏的虚拟场景中,可以在教程环节预测目标动作,并显示与预测出的目标动作对应的动作提示,从而帮助用户熟悉游戏玩法。
在一些实施例中,步骤104之后,还包括:控制虚拟对象在虚拟场景中执行目标动作。
在通过训练后的图像处理模型预测出目标动作后,还可以控制虚拟对象在虚拟场景中执行目标动作,即实现对虚拟对象的自动控制。举例来说,在游戏的虚拟场景中,可以将训练后的图像处理模型部署至游戏ai,以使游戏ai执行人机对战、自动挂机或自动化游戏测试等任务,能够有效地节省人力成本,提升游戏ai的控制效果。
在一些实施例中,用于预测目标动作的图像处理模型的数量包括多个;不同图像处理模型的模型结构不同;步骤102之后,还包括:将多个样本集划分为训练样本集和测试样本集;其中,训练样本集用于训练每个图像处理模型;可以通过这样的方式来实现上述的通过训练后的图像处理模型预测目标动作:根据测试样本集,确定训练后的每个图像处理模型的训练效果指标;通过训练效果指标最高的训练后的图像处理模型,预测目标动作。
在本申请实施例中,可以预先设定多个图像处理模型,不同图像处理模型的模型结构不同,其中,模型结构可以包括网络层的数量及网络层的组合方式等。例如某个图像处理模型包括10个卷积层,另一个图像处理模型包括20个卷积层,则这两个图像处理模型的模型结构不同。
为了提升图像处理模型的训练效果,可以经过多次采样处理得到多个样本集,并将多个样本集划分为训练样本集和测试样本集,其中,划分比例可根据实际应用场景进行设定。例如训练样本集的数量:测试样本集的数量=8:2,样本集的数量包括100个,则可以随机将其中的80个样本集作为训练样本集,将剩余的20个样本集作为测试样本集,实现划分。
根据划分出的所有训练样本集对每个图像处理模型进行训练,例如,图像处理模型包括a和b,则根据所有训练样本集对图像处理模型a进行训练,根据所有训练样本集对图像处理模型b进行训练,即不同图像处理模型的训练过程互不影响。
在对多个图像处理模型训练完成后,根据所有测试样本集,确定训练后的每个图像处理模型的训练效果指标,其中,不同图像处理模型的测试过程互不影响。在根据测试样本集进行测试之前,同样可以对测试样本集中的多个场景图像进行融合处理,同时对测试样本集中的多个动作进行融合处理,以构建用于进行测试的融合动作样本。本申请实施例对训练效果指标的类型不做限定,例如可以是精确率(precision)、召回率(recall)或f1分数等,训练效果指标越高,代表模型训练的效果越好。
最后,选择训练效果指标最高的训练后的图像处理模型,以用于预测目标动作。通过上述方式,能够选择出最优的模型结构进行应用,进一步提升预测出的目标动作的精度。
如图3a所示,本申请实施例通过确定与每个类别的动作样本的数量负相关的采样概率,使得少数类的动作样本的采样概率较之多数类的动作样本更大,改善参与模型训练的不同类别的动作样本之间数量不平衡的情况;对采样处理得到的样本集进行融合处理,得到新的融合动作样本,避免训练图像处理模型时出现过拟合的情况,提升最终预测出的目标动作的精度。
在一些实施例中,参见图3b,图3b是本申请实施例提供的图像处理方法的一个流程示意图,图3a示出的步骤103可以通过步骤201至步骤204实现,将结合各个步骤进行说明。
在步骤201中,通过图像处理模型对样本集中的场景图像进行特征提取处理,得到图像特征。
这里,由于图像的图像特征可以表示图像的核心语义,故可以对样本集中的每个场景图像进行特征提取处理得到图像特征。例如,图像处理模型包括用于进行特征提取处理的部分、以及用于进行预测处理的部分,则可以通过用于进行特征提取处理的部分,对样本集中的每个场景图像进行特征提取处理,得到图像特征。
在步骤202中,根据样本集中的多个场景图像分别对应的融合权重,对样本集中的多个场景图像分别对应的图像特征进行加权处理,得到图像融合结果。
这里,在得到与样本集中的所有场景图像分别对应的图像特征后,将这些图像特征进行融合处理,得到图像融合结果。例如,一种融合处理的方式是,根据样本集中的所有场景图像分别对应的融合权重,对样本集中的所有场景图像分别对应的图像特征进行加权处理(如加权求和),得到图像融合结果。其中,场景图像对应的融合权重是在对场景图像对应的图像特征进行加权处理时,为该图像特征所设置的比重,例如,样本集包括动作样本(场景图像p1,动作a1)和动作样本(场景图像p2,动作a2),p1对应的融合权重为30%,p2对应的融合权重为70%,则图像融合结果=30%×p1对应的图像特征+70%×p2对应的图像特征。值得说明的是,样本集中的所有场景图像分别对应的融合权重之和为1,融合权重可以预先设定,也可以随机生成,对此不做限定。
在步骤203中,根据样本集中的多个场景图像分别对应的融合权重,对样本集中的多个动作的向量进行加权处理,得到动作融合结果。
这里,在对样本集中的所有动作进行融合处理时,为了便于计算,可以先确定出每个动作的向量,动作的向量即为动作在计算机中的数值化表现形式,例如,可以预先设定每个动作的向量。然后,再对样本集中的所有动作的向量进行融合处理,例如,可以沿用场景图像对应的融合权重,对样本集中所有动作的向量进行加权处理(如加权求和),得到动作融合结果。以上述例子再次举例,则动作融合结果=30%×a1的向量+70%×a2的向量。通过上述方式,能够对样本集中的内容进行有效融合。
在步骤204中,根据图像融合结果和动作融合结果构建融合动作样本。
在图3b中,图3a示出的步骤104可以通过步骤205至步骤210实现,将结合各步骤进行说明。
在步骤205中,通过图像处理模型,对融合动作样本中的图像融合结果进行预测处理,得到待对比的向量。
这里,通过图像处理模型中用于进行预测处理的部分,对融合动作样本中的图像融合结果进行预测处理,为了便于区分,将这里通过预测处理得到的向量命名为待对比的向量。
在步骤206中,根据待对比的向量与融合动作样本中的动作融合结果之间的差异,更新图像处理模型的权重参数;其中,图像处理模型的权重参数包括用于进行特征提取处理的参数、以及用于进行预测处理的参数。
这里,通过图像处理模型的损失函数,确定待对比的向量与融合动作样本中的动作融合结果(同样为向量形式)之间的差异,该差异即损失值。然后,根据该差异在图像处理模型中进行反向传播,并在反向传播的过程中,沿梯度下降方向更新图像处理模型的权重参数,实现对图像处理模型的训练。其中,对损失函数的类型不做限定,例如可以是交叉熵损失函数。
这里的反向传播是模型训练的一种机制,在模型预测时,是结合前向传播的机制,例如按照输入层-隐藏层-输出层的顺序,对输入的数据进行处理,得到结果;在模型训练时,是结合反向传播的机制,例如按照输出层-隐藏层-输入层的顺序,将差异(即损失值)进行传播,从而实现各个层的权重参数的更新。
值得说明的是,在本申请实施例中,图像处理模型的权重参数包括用于进行特征提取处理的参数、以及用于进行预测处理的参数,即在反向传播的过程中,不光对图像处理模型中用于进行预测处理的部分进行权重参数的更新,还对图像处理模型中用于进行特征提取处理的部分进行权重参数的更新。
在步骤207中,获取虚拟场景的实时场景图像。
在对图像处理模型训练完成后,即可根据训练后的图像处理模型实现自动控制,首先,获取虚拟场景的实时场景图像。
在步骤208中,通过训练后的图像处理模型,对实时场景图像进行特征提取处理,得到图像特征。
这里,通过训练后的图像处理模型中用于进行特征提取处理的部分,对实时场景图像进行特征提取处理,得到图像特征。
在步骤209中,通过训练后的图像处理模型,对实时场景图像对应的图像特征进行预测处理,得到目标向量。
这里,通过训练后的图像处理模型中用于进行预测处理的部分,对步骤208中提取得到的图像特征进行预测处理,为了便于区分,将这里通过预测处理得到的向量命名为目标向量。
在步骤210中,根据目标向量确定目标动作。
这里,基于确定动作的向量的方式,根据目标向量反向确定出目标动作。
在一些实施例中,步骤203之前,还包括:构建维度与虚拟场景中动作的类别数量相同的初始向量;将初始向量中与任意一个动作的类别对应的数值更新为设定数值,并将初始向量中的其他数值更新为零,得到任意一个动作的向量;其中,设定数值大于零;可以通过这样的方式来实现上述的根据目标向量确定目标动作:将目标向量中最大的数值对应的动作,作为目标动作。
本申请实施例提供了确定动作的向量的一种方式,首先,获取虚拟场景中动作的类别数量,并构建维度与该类别数量相同的初始向量,其中,初始向量中的每一个数值对应动作的一个类别。例如,虚拟场景中的动作包括下蹲、跳跃及不做动作三类,则构建维度为3的初始向量,该初始向量中的第1个维度的数值对应下蹲,第2个维度的数值对应跳跃,第3个维度的数值对应不做动作。
针对任意一个动作,将初始向量中与该动作的类别对应的数值更新为设定数值,并将初始向量中的其他数值更新为零,得到该动作的向量,其中,设定数值大于0。以上述例子再次举例,若设定数值为1,动作为下蹲,则可以得到该动作的向量为[1,0,0]。
在通过训练后的图像处理模型得到目标向量后,将目标向量中最大的数值对应的动作,作为目标动作。通过上述方式,实现了动作的向量的自动确定,无须人为参与,同时提升了对动作类别数量不同的虚拟场景的适用性。
如图3b所示,本申请实施例对样本集中的内容进行融合得到新的融合动作样本,能够提升用于进行模型训练的样本的多样性,避免模型训练时出现过拟合的情况。
在一些实施例中,参见图3c,图3c是本申请实施例提供的图像处理方法的一个流程示意图,图3a示出的步骤102可以通过步骤301至步骤305实现,将结合各步骤进行说明。
在步骤301中,根据动作对多个动作样本进行分类。
在步骤302中,将动作样本的总数量除以虚拟场景中动作的类别数量,得到类别平均数量。
根据动作对多个动作样本进行分类后,可以得到多个类别的动作样本,这里,以第c个类别的动作样本进行举例,说明确定第c个类别的动作样本的采样概率的过程,其中,c为大于0的整数,且c不超过虚拟场景中动作的类别数量。首先,将动作样本的总数量除以虚拟场景中动作的类别数量,得到类别平均数量,该类别平均数量是每个类别的动作样本的理想数量(即作为标准的数量),后续以该类别平均数量作为标准,得到第c个类别的动作样本的采样概率。
在步骤303中,将类别平均数量除以任意一个类别的动作样本的数量,得到任意一个类别的动作样本的采样权重。
例如,将类别平均数量除以第c个类别的动作样本的数量,得到第c个类别的动作样本的采样权重,该采样权重用于表示采样处理时第c个类别的动作样本的重要程度。若第c个类别的动作样本的数量越小,则对应的采样权重越大;若第c个类别的动作样本的数量越大,则对应的采样权重越小。如此,能够实现为少数类样本赋予较大的采样权重,为多数类样本赋予较小的采样权重的目的。
在步骤304中,对任意一个类别的动作样本的采样权重进行归一化处理,得到任意一个类别的动作样本的采样概率。
仅仅根据采样权重无法实现有效的采样处理,因此,进行进一步处理得到采样概率。例如,对第c个类别的动作样本的采样权重进行归一化处理,即是将采样权重映射到特定的数值范围内,得到第c个类别的动作样本的采样概率,便于后续进行采样处理。
在一些实施例中,步骤304之前,还包括:将任意一个类别的动作样本的采样权重与设定权重进行相加处理,得到新的采样权重;其中,不同的动作样本对应的设定权重相同。
这里,在得到第c个类别的动作样本的采样权重后,将采样权重与设定权重进行相加处理,得到新的采样权重。其中,所有动作样本对应的设定权重相同,设定权重为大于零的数,可根据实际应用场景进行具体设定。通过上述方式,能够避免后续为少数类样本赋予的采样概率过高,从而避免后续训练图像处理模型时出现过拟合的情况。
在一些实施例中,可以通过这样的方式来实现上述的对任意一个类别的动作样本的采样权重进行归一化处理,得到任意一个类别的动作样本的采样概率:将多个动作样本的采样权重的和,作为总采样权重;将任意一个类别的动作样本的采样权重除以总采样权重,得到任意一个类别的动作样本的采样概率。
本申请实施例提供了归一化处理的一种示例,首先,将所有动作样本的采样权重的和,作为总采样权重。然后,将第c个类别的动作样本的采样权重除以总采样权重,得到第c个类别的动作样本的采样概率。如此,能够将第c个类别的动作样本的采样权重映射到(0,1)的数值范围,并且使得所有动作样本的采样概率之和为1,提升了后续采样处理的有效性。
在步骤305中,根据每个类别的动作样本的采样概率进行采样处理,得到样本集。
在得到每个类别的动作样本的采样概率后,根据采样概率对所有动作样本进行采样处理,得到样本集。
如图3c所示,本申请实施例提供了确定采样概率的一种方式,能够有效改善参与模型训练的不同类别的动作样本之间数量不均衡的情况,从而避免图像处理模型陷入过拟合。
下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。为了便于理解,以酷跑类游戏的虚拟场景进行说明,在该虚拟场景中,游戏目标是控制虚拟对象收集尽量多的虚拟资源,并且移动尽量远的距离,从而提升动作积分。本申请实施例通过训练图像处理模型,并将图像处理模型部署至酷跑类游戏的游戏ai,能够提升游戏ai的控制效果,适用于人机对战、自动挂机及自动化游戏测试等任务。下面进行详细说明。
本申请实施例提供了如图4a、图4b及图4c所示的虚拟场景的示意图,在图4a中,示出了虚拟对象41、虚拟资源42、下蹲动作区域43及跳跃动作区域44,此外,还示出了虚拟资源的资源收集状态45、动作积分(包括表现积分和技巧积分两类)、以及虚拟对象41已奔跑(移动)的距离。
其中,客户端响应于针对下蹲动作区域43的触发操作(如点击操作),控制虚拟对象41执行下蹲动作;响应于针对跳跃动作区域44的触发操作,控制虚拟对象41执行跳跃动作;若未接收到针对下蹲动作区域43及跳跃动作区域44中的任意一个区域的触发操作,控制虚拟对象41不做动作,这里的不做动作是指不执行下蹲动作及跳跃动作中的任意一种动作,实际上还需控制虚拟对象41继续奔跑。
作为示例,还示出了与图4a中的虚拟场景所在时刻不同的图4b和图4c,在图4b中,示出了虚拟资源46;在图4c中,示出了虚拟资源47。
在酷跑类游戏的虚拟场景中,动作包括下蹲、跳跃和不做动作三类。由于酷跑类游戏本身具有的特性,在人类控制虚拟场景中的虚拟对象的过程中获取一段时间内的样本(对应上文的动作样本)后,不做动作的样本的数量往往远高于其他两类的样本的数量,如果直接根据获取到的样本来训练模型,则会让模型更倾向于输出不做动作的结果,导致模型的训练效果差。如果将训练后的模型部署于游戏ai,则在通过游戏ai控制虚拟对象的过程中,会出现虚拟对象在应该下蹲时没有下蹲,在应该跳跃时没有跳跃的情况,即预测出的目标动作的精度低,动作模仿的效果差。
针对于不同类别的样本之间数量不均衡的情况,在本申请实施例中,通过域混合的机制进行改善。作为示例,本申请实施例提供了如图5所示的图像处理方法的流程示意图,为了便于理解,以步骤形式进行说明:
1)录制游戏样本。
在人类控制虚拟场景中的虚拟对象的一段时间(如半小时)内,周期性地获取虚拟场景的图像(对应上文的场景图像)以及动作,根据获取到的每个图像、以及与图像对应的动作,构建样本。例如,在某个图像对应的时刻接收到了针对下蹲动作区域的触发操作,则将下蹲动作作为该图像对应的动作。其中,周期可以预先设定,如1秒10次。
2)挑选样本对(对应上文的样本集)。
这里,根据动作对样本进行分类,即分为下蹲、跳跃和不做动作三类。然后,确定每个类别的样本数量,基于每个类别的样本数量计算每个样本的采样权重,第i个样本(i为大于0的整数)的采样权重的计算公式如下:
其中,wi表示第i个样本的采样权重,n表示所有样本的数量,
计算出每个样本的采样权重后,对采样权重进行归一化处理,得到每个样本的采样概率,第i个样本的采样概率的计算公式如下:
其中,ρi表示第i个样本的采样概率,n表示所有样本的数量。
计算出每个样本的采样概率后,根据采样概率对所有样本进行采样,直至得到m个样本对,其中,每个样本对包括两个样本。这里,以
3)通过域混合生成混合特征。
这里,域混合对应上文的融合处理,在本申请实施例中,需要在两个方面应用域混合的机制,第一方面是对样本对中的两个图像的图像特征进行域混合;第二方面是对样本对中的两个动作的标签进行域混合。
在本申请实施例中,可以采用轻量级深度网络模型(后文简称为轻量化模型)来作为图像处理模型,轻量化模型的参数量较小,可以部署至中央处理器(centralprocessingunit,cpu)或嵌入式设备中,也适用于部署至酷跑类游戏的游戏ai。
在得到样本对后,将样本对中的两个图像分别缩放至150×150像素(轻量化模型对输入图像的尺寸要求,根据采用模型的不同,也可以缩放至其他尺寸),将缩放后的两个图像分别作为轻量化模型的输入,通过轻量化模型中用于进行特征提取处理的部分,提取图像的全连接特征(即图像特征)。作为示例,提供了如图6所示的轻量化模型中用于进行特征提取处理的部分的架构示意图,在图6中,轻量化模型包括9个卷积层和1个全连接层,全连接层输出的1024维的特征即为全连接特征,其中,层与层之间还包括激活层(未在图6中示出),激活层的目标是引入非线性。
在得到样本对中的两个图像的全连接特征后,对这两个全连接特征进行域混合。例如,随机生成融合权重,根据融合权重对两个图像的全连接特征进行加权求和,得到混合特征(对应上文的图像融合结果)。混合的目的是扩充少数类样本的数量,改善不同类别样本之间数量不平衡的情况,同时防止模型陷入过拟合。对两个图像的全连接特征进行域混合的计算公式如下:
其中,xm表示对第m个样本对中的两个图像对应的全连接特征进行域混合后,得到的混合特征,f(x)表示通过轻量化模型中用于进行特征提取处理的部分,对图像x进行特征提取处理得到的全连接特征,α表示基于均匀分布随机采样得到的融合权重,α的取值范围是(0,1)。
4)通过域混合生成混合标签。
针对第m个样本对,在执行步骤3)的同时,对第m个样本对中的两个标签进行域混合,得到混合标签(对应上文的动作融合结果),计算公式如下:
其中,α的取值与步骤3)中一致,
5)训练轻量化模型。
在构建出域混合样本后,将域混合样本中的混合特征(如xm)输入轻量化模型中用于进行预测处理的部分(例如一个全连接层),得到一个3维向量(对应上文的待对比的向量)。根据输出的3维向量以及域混合样本中的混合标签,计算损失值,公式如下:
其中,l表示损失值,m表示域混合样本的数量(同样也是样本对的数量),c表示虚拟场景中动作的类别数量,g表示轻量化模型输出的3维向量,
在得到损失值后,通过梯度下降法更新轻量化模型的权重参数,其中,可采用批量梯度下降(batchgradientdescent,bgd)、随机梯度下降(stochasticgradientdescent,sgd)或小批量梯度下降(mini-batchgradientdescent,mbgd)机制,对此不做限定。
根据所有的域混合样本对轻量化模型的权重参数进行更新后,返回步骤2),即重新挑选样本对,进入下一次迭代,持续迭代至模型收敛。其中,对轻量化模型的收敛条件不做限定,例如可以是设定的迭代轮数,
当轻量化模型收敛时,将轻量化模型部署至酷跑类游戏的游戏ai,该游戏ai用于获取虚拟场景中的实时游戏图像(对应上文的实时场景图像),并调用轻量化模型对实时游戏图像进行处理,得到一个3维向量(对应上文的目标向量)。然后,游戏ai控制虚拟对象执行该3维向量中最大的数值对应类别的动作(对应上文的目标动作),如此,可以实现对人类的动作模仿,节省人力成本,适用于酷跑类游戏中的人机对战、自动挂机或自动化游戏测试等任务。
下面继续说明本申请实施例提供的图像处理装置455实施为软件模块的示例性结构,在一些实施例中,如图2所示,存储在存储器450的图像处理装置455中的软件模块可以包括:获取模块4551,用于获取包括虚拟对象的虚拟场景的多个场景图像、以及在每个场景图像对应时刻控制虚拟对象执行的动作,根据每个场景图像及对应的动作构建动作样本;采样模块4552,用于根据动作对多个动作样本进行分类,并根据与每个类别的动作样本的数量负相关的采样概率进行采样处理,得到样本集;融合模块4553,用于对样本集中的多个场景图像进行融合处理得到图像融合结果,对样本集中的多个动作进行融合处理得到动作融合结果,根据图像融合结果和动作融合结果构建融合动作样本;预测模块4554,用于根据融合动作样本训练图像处理模型,并通过训练后的图像处理模型预测目标动作。
在一些实施例中,图像处理装置455还包括:概率确定模块,用于针对任意一个类别的动作样本,执行以下处理:将动作样本的总数量除以虚拟场景中动作的类别数量,得到类别平均数量;将类别平均数量除以任意一个类别的动作样本的数量,得到任意一个类别的动作样本的采样权重;对任意一个类别的动作样本的采样权重进行归一化处理,得到任意一个类别的动作样本的采样概率。
在一些实施例中,概率确定模块,还用于:将任意一个类别的动作样本的采样权重与设定权重进行相加处理,得到新的采样权重;其中,不同的动作样本对应的设定权重相同。
在一些实施例中,概率确定模块,还用于:将多个动作样本的采样权重的和,作为总采样权重;将任意一个类别的动作样本的采样权重除以总采样权重,得到任意一个类别的动作样本的采样概率。
在一些实施例中,融合模块4553,还用于:通过图像处理模型对样本集中的场景图像进行特征提取处理,得到图像特征;根据样本集中的多个场景图像分别对应的融合权重,对样本集中的多个场景图像分别对应的图像特征进行加权处理,得到图像融合结果;根据样本集中的多个场景图像分别对应的融合权重,对样本集中的多个动作的向量进行加权处理,得到动作融合结果。
在一些实施例中,图像处理装置455还包括:向量转换模块,用于构建维度与虚拟场景中动作的类别数量相同的初始向量;将初始向量中与任意一个动作的类别对应的数值更新为设定数值,并将初始向量中的其他数值更新为零,得到任意一个动作的向量;其中,设定数值大于零。
在一些实施例中,预测模块4554,还用于:通过训练后的图像处理模型进行预测处理,得到目标向量;将目标向量中最大的数值对应的动作,作为目标动作。
在一些实施例中,用于预测目标动作的图像处理模型的数量包括多个;不同图像处理模型的模型结构不同;图像处理装置455还包括:划分模块,用于将多个样本集划分为训练样本集和测试样本集;其中,训练样本集用于训练每个图像处理模型;预测模块4554,还用于:根据测试样本集,确定训练后的每个图像处理模型的训练效果指标;通过训练效果指标最高的训练后的图像处理模型,预测目标动作。
在一些实施例中,虚拟场景包括至少一种触发动作及一种非触发动作,每种触发动作对应虚拟场景中的一个触发区域;在获取虚拟场景的场景图像时,获取模块4551还用于:当检测到针对任意一个触发区域的触发操作时,将任意一个触发区域对应的触发动作,作为场景图像对应时刻控制虚拟对象执行的动作;当检测到针对至少一个触发区域之外的区域的触发操作、或者未检测到触发操作时,将非触发动作作为场景图像对应时刻控制虚拟对象执行的动作。
在一些实施例中,虚拟场景包括多种触发动作,每种触发动作对应虚拟场景中的一个触发区域;在获取虚拟场景的场景图像时,获取模块4551还用于:当检测到针对任意一个触发区域的触发操作时,将任意一个触发区域对应的触发动作,作为场景图像对应时刻控制虚拟对象执行的动作;当检测到针对多个触发区域之外的区域的触发操作、或者未检测到触发操作时,丢弃场景图像。
在一些实施例中,在获取虚拟场景的场景图像时,获取模块4551还用于:根据虚拟对象在虚拟场景中收集的虚拟资源的数量、虚拟对象的移动距离、以及虚拟对象击杀敌人的数量中的至少一种,确定场景图像对应时刻的动作积分;当动作积分小于场景图像对应时刻的设定积分阈值时,丢弃场景图像。
在一些实施例中,采样模块4552,还用于:执行多次以下的处理:根据每个类别的动作样本的采样概率,从多个动作样本中选择出一个动作样本,并将选择出的动作样本添加至样本集中;其中,任意一个类别的动作样本的采样概率与任意一个类别的动作样本的数量负相关。
在一些实施例中,图像处理装置455还包括:控制模块,用于控制虚拟对象在虚拟场景中执行目标动作。
本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例上述的图像处理方法。
本申请实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的方法,例如,如图3a、图3b或图3c示出的图像处理方法。
在一些实施例中,计算机可读存储介质可以是fram、rom、prom、eprom、eeprom、闪存、磁表面存储器、光盘、或cd-rom等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(html,hypertextmarkuplanguage)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
综上,通过本申请实施例能够实现以下技术效果:
1)通过确定与每个类别的动作样本的数量负相关的采样概率,并对多个动作样本进行采样处理,能够改善参与模型训练的不同类别的动作样本之间数量不平衡的情况;对采样处理得到的样本集中的内容进行融合处理,能够避免根据大量重复的动作样本进行模型训练所导致的过拟合,实现了提升最终预测出的目标动作的精度的效果。
2)在确定出动作样本的采样权重后,将采样权重与统一的设定权重进行相加处理,得到新的采样权重,如此,可以避免给少数类样本赋予过于高的采样概率,有效防止图像处理模型陷入过拟合。
3)可以预先设定模型结构不同的多个图像处理模型,并对每个图像处理模型进行单独训练,最后挑选出其中训练效果最好的图像处理模型来预测目标动作,进一步提升图像处理的精度。
4)本申请实施例可以适用于各种虚拟场景,可扩展性和灵活性强,此外,还可延伸至对现实场景中的现实对象进行控制。例如,训练后的图像处理模型可以部署于游戏ai中,使得游戏ai可以对虚拟对象进行自动控制;训练后的图像处理模型可部署于车辆的嵌入式设备中,使得嵌入式设备可以对车辆进行自动控制,实现自动驾驶。
以上,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。
起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。
此文章来源于网络,如有侵权,请联系删除