一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于3D游戏的数据集构建方法、装置、设备及存储介质与流程

2022-03-02 03:05:20 来源:中国专利 TAG:

基于3d游戏的数据集构建方法、装置、设备及存储介质
技术领域
1.本发明涉及计算机图形学领域,特别涉及一种基于3d游戏的数据集构建方法、装置、设备及存储介质。


背景技术:

2.伴随着科技的不断发展,人们需求的不断提升,深度学习技术已经成为当今社会中炙手可热的焦点。深度学习技术是机器学习领域下的一个新的研究方向,它通过学习样本数据的内在规律和表示层次等,从中学习到用于下游任务的特征,从而让机器在一些任务上能够像人一样具有分析判别能力。伴随着社交平台的快速发展,人们每天都会制造出海量的数据,这些海量的数据也使得深度学习模型的训练有了更多的可能,现阶段深度学习模型在文本分类、图像分类、机器翻译等任务上突显出了巨大的优势,其效果远超于先前的传统方法。
3.数据在深度学习模型训练的过程中是至关重要的,从一定意义上可以说数据的数量和质量决定了最终模型效果的好坏。然而现实世界中构建一个数据集的成本是非常昂贵的,它往往需要大量人员花费大量时间去采集数据,并对数据进行筛选、标注等。


技术实现要素:

4.基于此,本技术实施例提供了一种基于3d游戏的数据集构建方法、装置、电子设备及存储介质,可以有效解决从真实环境收集图像成本较高,且很难获得精确的深度数据的问题。
5.第一方面,提供了一种基于3d游戏的数据集构建方法,该方法包括:
6.获取目标3d游戏的编译后的游戏数据抓取脚本;
7.运行所述目标3d游戏,根据所述游戏数据抓取脚本得到游戏画面数据,所述游戏画面数据包括图像数据和非图像数据;
8.对所述游戏画面数据进行数据清洗得到待标注的样本数据;
9.构建数据标注系统,通过所述数据标注系统对所述样本数据进行标注。
10.可选地,述构建数据标注系统,通过所述数据标注系统对所述样本数据进行标注,包括:
11.构建基于移动终端的数据标注系统,所述数据标注系统包括用户登录组件和数据标注组件;
12.所述用户登录组件用于使用户通过在用户登录页面输入账号与密码登录所述数据标注系统;
13.所述数据标注组件用于对数据标注页面内展示的样本数据进行打分与描述。
14.可选地,在对所述样本数据进行标注之后,所述方法还包括:
15.通过标注后的样本数据对单目深度图估计模型、无绿幕抠图模型、文本生成布局以及人体骨骼关键点预测模型进行训练。
16.可选地,所述游戏画面数据包括游戏截图、深度图以及模板图;所述非图像数据包括摄像机参数信息、物体2d包围盒数据、物体3d包围盒数据、物体3d模型名称以及人体3d骨骼关键点信息。
17.可选地,所述游戏画面数据还包括:
18.基于所述模板图通过膨胀腐蚀法来得到当前帧的三元图,所述膨胀腐蚀法具体包括使用opencv中的cv2.dilate和cv2.erode。
19.可选地,所述根据所述游戏数据抓取脚本得到游戏画面数据,包括:
20.通过人为判断当前游戏页面质量满足要求时,根据所述游戏数据抓取脚本自动捕获当前游戏画面数据;其中,所述游戏页面质量包括画面中实体的数量、画面中实体的相对位置、画面中人物的行为动作。
21.可选地,所述根据所述游戏数据抓取脚本得到游戏画面数据,包括:
22.使用gtavisionexport工具来从缓存中获取图像数据;
23.基于scripthookvdotnet游戏脚本库来从gtav游戏中获取非图像数据。
24.第二方面,提供了一种基于3d游戏的数据集构建装置,该装置包括:
25.编译模块,用于获取目标3d游戏的编译后的游戏数据抓取脚本;
26.获取模块,用于运行所述目标3d游戏,根据所述游戏数据抓取脚本得到游戏画面数据,所述游戏画面数据包括图像数据和非图像数据;
27.预处理模块,用于对所述游戏画面数据进行数据清洗得到待标注的样本数据;
28.标注模块,用于构建数据标注系统,通过所述数据标注系统对所述样本数据进行标注。
29.第三方面,提供了一种电子设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现上述第一方面任一所述的基于3d游戏的数据集构建方法。
30.第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述第一方面任一所述的基于3d游戏的数据集构建方法。
31.本技术实施例提供的技术方案中,首先获取目标3d游戏的编译后的游戏数据抓取脚本;运行目标3d游戏,根据游戏数据抓取脚本得到游戏画面数据,其中,游戏画面数据包括图像数据和非图像数据;之后对游戏画面数据进行数据清洗得到待标注的样本数据;最后构建数据标注系统,通过数据标注系统对样本数据进行标注。可以看出,本技术从游戏中获取数据相较于现实世界中获取真实数据有两个优点:
32.1、从游戏中获取数据往往可以实现自动化,大大简化了数据采集过程;
33.2、游戏数据往往可以从游戏中获取相应的语义信息,大大简化了数据标注等过程。
附图说明
34.为了更清楚地说明本发明的实施方式或现有技术中的技术方案,下面将对实施方式或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是示例性的,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图引伸获得其它的实施附图。
35.图1为本技术实施例提供的一种基于3d游戏的数据集构建方法的数据集构建流程图;
36.图2为本技术实施例提供的一种基于3d游戏的数据集构建方法的步骤流程图;
37.图3为本技术实施例提供的数据标注系统中用户登录组件示意图;
38.图4为本技术实施例提供的数据标注系统中数据标注组件示意图;
39.图5为本技术实施例提供的一种基于3d游戏的数据集构建装置的框图。
具体实施方式
40.以下由特定的具体实施例说明本发明的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本发明的其他优点及功效,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
41.伴随着游戏产业的高速发展,近几年越来越多的学者将目光投向于游戏,试图从游戏中获取数据用于模型训练。从游戏中获取数据相较于现实世界中获取真实数据有两个优点:1、从游戏中获取数据往往可以实现自动化,大大简化了数据采集过程;2、游戏数据往往可以从游戏中获取相应的语义信息,大大简化了数据标注等过程。
42.本技术提出一个面向多种任务的3d游戏数据集,该数据集包含了原始游戏原图、深度图、模板图、trimap图、摄像机参数信息、物体2dboundingbox、物体3d boundingbox、物体3d模型名称、人体3d骨骼关键点信息、人工标注的image caption信息。数据集构建流程如图1所示。
43.本技术提出一种面向3d游戏的数据集构建方法,可以面向多种任务的收集3d游戏数据集,该方法主要获取两类数据:图像数据和非图像数据。该方法通过拦截游戏和硬件的通信来捕获游戏截图、深度图、模板图,并通过后处理的方法获得对应的三元图(trimap图)。该方法通过利用scripthookvdotnet来获取摄像机坐标信息、摄像机欧拉角信息、摄像机视野,物体的坐标信息以及对应的前向向量(forward vector)和物体模型名称,人体的3d骨骼关键点坐标信息等非图像数据。
44.为便于对本实施例进行理解,首先对本技术实施例所公开的一种基于3d游戏的数据集构建方法进行详细介绍。请参考图2,其示出了本技术实施例提供的一种基于3d游戏的数据集构建方法的流程图,该方法可以包括以下步骤:
45.步骤101,获取目标3d游戏的编译后的游戏数据抓取脚本。
46.在本技术实施例中,目标3d游戏可以是gtav(grand theft auto v),可以使用gtavisionexport工具来从缓存中获取游戏截图、深度图和模板图,并基于模板图通过膨胀腐蚀的方法来得到对应的三元图。
47.其中,具体地:
48.步骤1011,从github上获取gtavisionexport项目源码文件,用于后续编译脚本。
49.github是一个面向开源及私有软件项目的托管平台,上面托管有各种开源代码,在其中选择名为gtavisionexport项目源码文件进行复制,具体位置存放于(gitclonehttps://github.com/umautobots/gtavisionexport)
50.步骤1012,下载eigen3模板库,下载后将其放到gtav游戏对应的文件夹目录下。
51.其中,enigen3具体为支持线性代数运算、矩阵和矢量运算、数值分析及其相关算法的开源模版库。
52.步骤1013,通过cmake对gtavisionexport源码进行编译,得到关于gtav的游戏数据抓取脚本。
53.其中,cmake是一个跨平台的安装(编译)工具,利用cmake在客户端具体的编译过程包括了:
54.①
下载cmake后首先从windows开始菜单运行cmake-gui程序。
55.在打开的windows工具界面中找到“浏览源(browsesource)”,点击并选择gtavisionexport/native文件夹,即gtav游戏对应的文件夹目录。点击“浏览构建(browsebuild)”,创建gtavisionexport/native/build文件夹并选择它,点击“安装(configure)”选择项目生成器“visualstudio152017win64”并保留选项“usedefaultnativecompilers”,在弹出失败对话框之后,修改eigen3_include_dir指向eigen3文件夹,再次运行“安装(configure)”,然后运行“生成(generate)”,cmake已将visualstudio(开发工具)解决方案生成到项目文件gtavisionexport/build中。
56.②
在visualstudio中打开项目文件,从解决方案(solutionconfigurations)下拉列表中选择释放(release)。
57.③
在visualstudio中编辑gtavisionnative项目属性/配置属性/c/c /additionalincludedirs以添加gtavisionexport/native/src文件夹,编辑gtavisionnative项目属性/配置属性/链接器/输入/附加依赖项以添加:"..\..\deps\libminhook.x64.lib"按f6构建解决方案。编译后的游戏数据抓取脚本会保存在“gtavisionexport\native\build\src\release”,将gtavisionnative.asi和gtavisionnative.lib复制到gtav游戏文件夹中。
58.步骤102,运行目标3d游戏,根据游戏数据抓取脚本得到游戏画面数据。
59.其中,游戏画面数据包括图像数据和非图像数据,游戏画面数据包括游戏截图、深度图以及模板图;非图像数据包括摄像机参数信息、物体2d包围盒数据、物体3d包围盒数据、物体3d模型名称以及人体3d骨骼关键点信息。
60.在本技术实施例中,在步骤1013之后具体包括了:
61.步骤1021,在得到编译后的游戏脚本文件之后,运行gtav游戏。
62.本发明所提出的数据集中的数据均是由人工从游戏剧情动画中获取的,数据采集时需要人为综合考虑如下几个因素:1、当前游戏画面中实体的丰富性,是否包含不同实体。2、不同实体之间的位置是否合理,是否存在遮挡等情况。2当前游戏画面中不同实体行为动作的丰富性。再确认当前游戏页面游戏质量满足要求后,只需要并手动按键盘“z”键,脚本即可自动捕获当前帧各类数据。脚本将自动在游戏文件夹下创建当前帧原始图、深度图、模板图对应raw文件(color.raw、stencil.raw、depth.raw)。
63.在本技术一个可选的实施例中,在实施步骤1021抓取图像数据之后还包括:
64.步骤1022,基于模板图利用膨胀腐蚀原理来获得对应三元图。
65.具体地,将步骤1021中的raw文件转换为jpg,基于模板图利用膨胀腐蚀原理来获得对应三元图。膨胀是指取每一个位置的矩形领域内值的最大值作为该位置的输出灰度值,腐蚀是指取结构元所指定的领域内值的最小值作为该位置的输出灰度值,在本技术实
施例中具体使用opencv中的cv2.dilate和cv2.erode方法。
66.本技术基于scripthookvdotnet游戏脚本库来从gtav游戏中获取非图像数据,其主要包含摄像机数据(摄像机坐标、旋转角等),实体数据(实体对应的坐标、模型名称等),人体的骨骼数据(55个骨骼关键点相对坐标)。
67.具体而言,我们利用其中的摄像机类来获取当前游戏中使用的摄像机的世界坐标、旋转角等属性,利用玩家类来获取以当前角色为中心50f为半径的圆的范围内所有的人和实体,然后获取每一个实体对应的世界坐标、屏幕坐标、内存地址等信息,并利用内存地址得到其对应的模型文件的名称,并根据名称解析出物体类别;对每一个人,本技术利用骨骼子类来分别获取每个人55个骨骼关键点的相对坐标(相对于骨骼根节点),其中骨骼关键点包含:骨骼根节点(一般指尾巴骨),头,脖子,盆骨,脊椎(包含4个点)以及左右对称的小腿,锁骨,手指(包含15个点),脚,前臂,手,大腿,脚趾,上臂。
68.步骤103,对游戏画面数据进行数据清洗得到待标注的样本数据。
69.在本技术实施例中所提出数据集中的数据在进行标注之前均通过人工进行初步筛选,主要将误差较大、画面较乱的数据剔除,同时将数据进行化简(将画面中无用的实体对应的数据删除),方便后续数据标注。
70.步骤104,构建数据标注系统,通过数据标注系统对样本数据进行标注。
71.在本技术实施例中,为了简化数据标注过程,本发明构建了简易的手机版数据标注系统,用户可以通过手机随时随地的对数据进行标注。该系统主要包含用户登录和数据标注两个页面(如图3和图4所示),最后使用mysql数据库来存储数据。
72.数据标注系统中,数据标注过程主要包含用一句话来对画面内容进行描述以及对当前数据质量进行打分两部分,在对画面进行描述时中需要满足如下准则:
73.1、图片中绿色框圈起来的物体为已知数据物体,基于这些物体对画面进行描述(左上角为该物体3d模型文件名称,可作为参考);
74.2、描述过程中忽略一些不重要地细节,例如人穿着什么样得衣服等;
75.3、不要使用“有一个。。。”或者“有。。。”等句式;
76.4、不要描述过去和未来可能发生的事情;
77.5、不要擅自给人或道具起名字;
78.6、由于很多数据时间间隔较短,因此画面很相似,为了保证数据标注多样性,在描述相似数据时,采用不同的描述方法。
79.例如:
80.一个男人和一个女人面对面站着聊天。
81.一个男人笔直站着,另外一个女人很生气的朝着他说话。
82.7、描述画面内容时,尽可能包含画面中尽可能多的物体,若一些物体与画面主要内容没有很大的相关性可忽视。
83.在对数据质量进行标注与打分时,主要的影响方面具体包括了:
84.1、画面中数据偏差是否严重(根据2d包围盒来进行判断);
85.2、画面中不相关元素是否过多。
86.整个标注过程共6人参与,两人一组,每组分别对1111条数据进行独立标注,最终获得3333条画面描述(每条数据对应三条描述),并将三组质量评分的均值当作最终的质量
标注。
87.在本技术一个可选的实施例中,在对样本数据进行标注之后,还包括:
88.应用于多个子任务模型的训练,主要包含如下几个任务:
89.1、单目深度图估计
90.本技术实施例所提出数据集中的原始图片和深度图可以用于单目深度图估计任务。
91.2、无绿幕抠图
92.本技术实施例所提出数据集中的原始图片和三元图可以用于无绿幕抠图任务。
93.3、文本生成布局
94.本技术实施例所提出数据集中包含图片内容的文本描述,以及图片中物体的2d、3d坐标,可用于2d、3d布局生成任务。
95.4、人体骨骼关键点预测
96.本技术实施例所提出数据集中包含55个人体骨骼关键点2d、3d坐标信息,可用于2d、3d骨骼关键点预测任务。
97.请参考图5,其示出了本技术实施例提供的一种基于3d游戏的数据集构建装置200的框图。如图5所示,该装置200可以包括:编译模块201、获取模块202、预处理模块203、标注模块204。
98.编译模块201,用于获取目标3d游戏的编译后的游戏数据抓取脚本;
99.获取模块202,用于运行所述目标3d游戏,根据所述游戏数据抓取脚本得到游戏画面数据,所述游戏画面数据包括图像数据和非图像数据;
100.预处理模块203,用于对所述游戏画面数据进行数据清洗得到待标注的样本数据;
101.标注模块204,用于构建数据标注系统,通过所述数据标注系统对所述样本数据进行标注。
102.关于基于3d游戏的数据集构建装置的具体限定可以参见上文中对于基于3d游戏的数据集构建方法的限定,在此不再赘述。上述基于3d游戏的数据集构建装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
103.在一个实施例中,提供了一种电子设备,该电子设备可以是计算机。该电子设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该设备的处理器用于提供计算和控制能力。该设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于基于3d游戏的数据集构建数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于3d游戏的数据集构建方法。
104.在本技术的一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述基于3d游戏的数据集构建方法的步骤。
105.本实施例提供的计算机可读存储介质,其实现原理和技术效果与上述方法实施例类似,在此不再赘述。
106.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以m种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(symchlimk)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
107.以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
108.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献