一种基于三维仿真场景的数据标注方法、装置及存储介质
文献发布时间:2023-06-19 12:07:15
技术领域
本发明涉及图像处理技术领域,具体而言,涉及一种基于三维仿真场景的数据标注方法、装置及存储介质。
背景技术
随着虚拟现实与三维渲染技术的发展,虚拟场景已经可以做到以假乱真的程度。三维仿真场景除了可以给人在感官上带来沉浸式体验之外,还可以作为计算机视觉等相关算法的训练数据来源。利用三维仿真场景替代实际场景拍摄的优势在于:可以大大减少人工的数据采集工作量;可以实现实拍场景做不到的自动数据标注;可以与仿真算法结合生成特殊事件下的数据。现有的训练数据集的获取通常采用人工获取待检测图像,并由人工标注的方式,耗费人力,效率低下,利用三维仿真场景生成标注数据的方法还有待开发。
发明内容
本发明解决的问题是如何对三维仿真场景中获得的图像进行像素级的多种角度的标注。
为解决上述问题,本发明提供一种基于三维仿真场景的数据标注方法,包括:
获取三维仿真场景,提取图像帧,对所述图像帧进行预处理获得原始场景着色结果;获取标注类型及其对应的着色策略,根据所述标注类型获取所述图像帧内目标的每个像素的目标属性参数;根据所述目标属性参数,按照所述着色策略,对所述图像帧进行着色,获得着色结果;其中,所述标注类型包含光照属性,所述光照属性对应的着色策略包括:将时间分段,以时间段为单位,对每个时间段的图像帧统一处理,对光照范围内的区域进行标注,将属于同一时间段的所述图像帧对应像素处的标注数据进行叠加,获得光照着色结果。
相对于现有技术,本发明通过获取三维仿真场景,基于不同的着色策略获取相应的标注类型,然后根据着色策略对图像帧进行着色,可以保证标注出的图像帧能适应各种算法的训练;通过对光照范围的区域以像素为单位进行叠加标注,获得光照着色结果,可以保证精确地获得反映光照时间的热力图。
可选地,所述标注包括标注光照的位置和范围;所述将时间分段,以时间段为单位,对每个时间段内的图像帧统一处理,对光照范围内的区域进行标注,将属于同一时间段的所述图像帧对应像素处的标注数据进行叠加,获得光照着色结果包括:将所述三维仿真场景内有光照的时间段进行分段,计算属于同一时间段的各个图像帧的光照范围,并将所述光照范围内的区域渲染成第一颜色;统计属于同一时间段的各个图像帧的每个像素被渲染为第一颜色的次数;根据所述次数计算热力图,将所述热力图叠加回各时间段的第一帧图像帧,渲染获得所述光照着色结果。
由此,通过对光照时间段进行分段,可以获得更细化的光照着色结果,通过对光照区域着色获得热力图,进而获得光照的着色结果,由于光照图的图像帧取自静止的三维仿真场景,故叠加热力图至该时间段的第一帧图像帧,保证获得准确的光照着色结果。
可选地,所述根据所述目标属性参数,按照所述着色策略,对所述图像帧进行着色,获得着色结果包括:基于所述着色策略使用所述顶点着色器进行着色,对所述图像帧进行着色,获得顶点着色图像;使用所述片元着色器,基于所述顶点着色图像、所述着色策略和所述目标属性参数,获得所述着色结果,其中,所述目标属性参数包括以下至少一者:目标的类型参数、速度参数、加速度参数、深度参数、高度参数、颜色参数。
由此,通过图像帧中目标的类型参数、速度参数、加速度参数、深度参数、高度参数、颜色参数分别对图像帧中的像素进行染色,生成对应各自属性的染色结果,用于生成对应的标注图像。
可选地,所述基于所述着色策略使用所述顶点着色器进行着色,对所述图像帧进行着色,获得顶点着色图像包括:
使用所述顶点着色器根据所述图像帧的场景信息对目标进行着色,获得所述顶点着色图像,其中,所述场景信息包括视点位置、贴图法线。
由此,顶点着色器基于视点位置和贴图法线对顶点进行着色,保证获得对顶点的着色结果。
可选地,所述使用所述片元着色器,基于所述顶点着色图像、所述着色策略和所述目标属性参数,获得所述着色结果包括:
使用所述片元着色器获取纹理颜色,将所述纹理颜色叠加至所述顶点着色图像,其中,基于纹理坐标从纹理像素中取样,获得所述纹理颜色。
由此,片元着色器对顶点着色结果进行处理,获取纹理颜色,通过纹理颜色对图像帧进行后续处理。
可选地,当所述标注类型为全景分割属性时,所述使用所述片元着色器获取纹理颜色,将所述纹理颜色叠加至所述顶点着色图像之后,还包括:基于所述图像帧中的对象标记为所述图像帧中每个像素赋予类别和实例ID,将每个对象分别赋予不同颜色,生成全景分割着色结果;当所述标注类型为深度属性时,所述使用所述片元着色器获取纹理颜色,将所述纹理颜色叠加至所述顶点着色图像之后,还包括:计算所述图像帧中像素点距视点的距离,将所述距离归一化并生成深度标注着色结果;当所述标注类型为速度属性时,所述使用所述片元着色器获取纹理颜色,将所述纹理颜色叠加至所述顶点着色图像之后,还包括:基于所述图像帧中目标的速度,对所述图像帧的对象进行标记,以速度标量为标准进行着色,生成速度标注着色结果;当所述标注类型为高度属性时,所述使用所述片元着色器获取纹理颜色,将所述纹理颜色叠加至所述顶点着色图像之后,还包括:基于所述图像帧中像素点对应所述三维仿真场景中的高度进行着色,生成高度标注着色结果。
由此,当标注类型不同时,分别获得对应的属性信息及着色策略,对图像帧进行渲染着色,获得对应的着色结果。
可选地,所述输出图像包括:结构化标注数据,包括所述图像帧每个像素所述类别、实例ID、距离视点的距离、离地高度、光照时间及每个所述目标的速度、加速度、位置、方向角。
由此,可以保证获得结构化标注数据的图像。
可选地,所述计算属于同一时间段的各个图像帧的光照范围之前,包括:
将所述原始场景着色结果和所述各时间段的第一帧图像帧存入临时队列中。
由此,将原始场景着色结果和各时间段的第一帧图像帧存入临时队列,以待后续处理时调用,保证提高后续处理的效率。
本发明还提出一种基于三维仿真场景的数据标注装置,包括:
预处理模块,其用于获取三维仿真场景,提取图像帧,对所述图像帧进行预处理获得原始场景着色结果;输入模块,其用于获取标注类型及其对应的着色策略,根据所述标注类型获取所述图像帧内目标的每个像素的目标属性参数;着色模块,其用于根据所述目标属性参数,按照所述着色策略,对所述图像帧进行着色,获得着色结果;其中,所述标注类型包含光照属性,所述光照属性对应的着色策略包括:将时间分段,以时间段为单位,对每个时间段的图像帧进行处理,对光照范围内的区域进行标注,将属于同一时间段的所述图像帧对应像素处的标注数据进行叠加,获得光照着色结果;输出模块,其用于根据需求选择对应的着色结果与原始场景着色结果叠加获得输出图像。
所述基于三维仿真场景的数据标注装置相对于现有技术与所述三维仿真场景数据标注方法所具有的优势相同,在此不再赘述。
本发明还提出一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器读取并运行时,实现如上所述的基于三维仿真场景的数据标注方法。
所述计算机可读存储介质相对于现有技术与所述三维仿真场景的数据标注方法所具有的优势相同,在此不再赘述。
附图说明
图1为本发明三维仿真场景的数据标注方法一实施例示意图;
图2为本发明三维仿真场景的数据标注方法步骤S300细化后的一实施例示意图;
图3为本发明三维仿真场景的数据标注方法一实施例流程图;
图4为本发明三维仿真场景的数据标注方法一实施例示意图;
图5为本发明三维仿真场景的数据标注方法另一实施例示意图;
图6为本发明三维仿真场景的数据标注方法又一实施例示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。
本发明提出一种基于三维仿真场景的数据标注方法,如图1所示,包括:
步骤S100,获取三维仿真场景,提取图像帧,对所述图像帧进行预处理获得原始场景着色结果。
对图像帧进行预处理,获得原始场景着色结果,即通过预处理得到基础场景图片,用于后续的渲染。
在一实施例中,预处理是通过对图像帧进行初步的标注,以作为后续输出图像的图像基础。
在一实施例中,三维仿真场景面向交通监控场景进行场景建模与情景设置,然后在城市交通运行模拟的过程中,选取视点进行图像数据的生成与标注。
三维仿真场景可以是具有连续帧的仿真场景,即动态的三维场景,故在一实施例中从三维场景中提取连续的图像帧进行预处理,保存至临时队列,用于对动态的目标进行标注,其重点是标注连续图像帧中目标的变化或图像帧中目标所处的状态。
在另一实施例中,基于三维仿真场景提取图像帧,所述图像帧为离散的图像帧,用于对图像的分割数据标注,其重点是标注固定图像中的目标的信息。
在一实施例中,所述图像帧为三维场景图像中的某角度的完整视图,即从该角度观察的完整图像,以完整视图作为图像帧,可以在一帧图像帧内获得更多的信息;在另一实施例中,仅需要特定目标的标注信息,故所述图像帧为从完整视图中截取的图像子块,保证在用于后续深度学习训练时,提供更精确的标注,提高深度学习的计算效率,减小计算量。
可选地,在对图像帧进行与预处理之前包括:定义目标类型,包括马路,人行道,斑马线,小汽车,公交车,货车,行人,护栏,标志牌,建筑物。
定义目标的目的是规定被处理目标的范围和类型,在一实施例中,某物体不属于被定义的目标,则将该物体划分为背景,不对其进行数据的标注。
预处理,包括预渲染,作用是将当前的图像帧预渲染并保存副本到临时队列,以供后续处理,当需要调用此图像帧时,从临时队列中调取图像进行进一步的处理。
可选地,所述对所述图像帧进行预处理包括:
获取所述图像帧,提取所述图像帧内目标的像素的信息;
将所述图像帧进行预处理,获得所述原始场景着色结果。
可选地,在提取所述图像帧内目标的像素的信息之前包括:判断该像素是否属于预设的目标。
对图像帧进行预处理,还包括提取图像帧中的目标的像素信息,即以像素为单位,提取此像素所在的目标的信息,例如,在一实施例中,如图3所示,提取像素的信息的过程为,判断当前像素是否为规定的目标,若是,则提取当前像素的信息,包括像素点距离视点距离,z轴高度,所属物体类别,所属物体实例编号,所属物体的速度与质心点位置,对象的类型,速度信息,加速度信息,深度信息,高度信息,其中,像素点距离视点距离,质心位置通过三维仿真场景中计算。像素的信息用于为后续着色器的处理提供信息数据。
对图像帧进行预处理获得原始场景着色结果,所述原始场景着色结果用于后续的渲染,与后续的着色结果进行叠加,形成最后的输出图像,同时也把后续渲染所需要的所有对象的属性进行提取和传递,作为后续处理的数据基础。
在一实施例中,不对图像帧进行进一步的着色,只输出原始着色结果,将原始着色结果作为输出图像输出。
步骤S200,获取标注类型及其对应的着色策略,根据所述标注类型获取所述图像帧内目标的每个像素的目标属性参数。
将所述图像帧中的矩阵、顶点、法线、属性信息发送至GPU,所述矩阵、顶点、法线用于计算顶点着色图像;顶点着色器与片元着色器在GPU中进行渲染着色。
可选地,顶点着色器用于决定点的颜色,通过对图像帧中视点的位置、贴图法线和光照进行顶点的着色计算。
可选地,片元着色器获取纹理颜色并叠加至所述顶点着色图像,根据不同的属性获得对应的着色结果,其中,基于纹理坐标从纹理像素中取样获得所述纹理颜色。
片元着色器对顶点着色图像进行颜色的填充,因为步骤S100中预处理提供了多种信息,故对不同的信息使用不同的策略进行分别染色,生成与信息类型对应的着色结果,例如,在一实施例中渲染距地面高度着色结果和速度着色结果,则使用预处理传输的目标高度信息,将目标基于不同高度渲染为不同的颜色;使用预处理传输的目标速度信息,将目标基于不同速度渲染为不同的颜色。
标注类型从像素的目标属性参数中选取,根据需求而选择对应的图像帧内的属性作为待标注的属性类型,然后获取相应的着色策略,每种属性都对应有各自的着色策略,根据待标注的属性类型获取目标的每个像素的目标属性参数,也可以获得非目标的每个像素的目标属性参数。
在一实施例中,待标注的属性类型为深度图,则根据需求选择图像帧内的深度作为待标注的属性类型,然后获取深度着色策略,根据深度的大小对图像帧内的所有像素渲染对应的颜色。故此实施例中获得图像帧内的所有的像素的深度数据,依据不同深度而确定不同的颜色,最后对图像帧进行渲染。
步骤S300,根据所述目标属性参数,按照所述着色策略,对所述图像帧进行着色,获得着色结果。
其中,如图4所示(附图为经灰度处理后的图像),所述标注类型包含光照属性,所述光照属性对应的着色策略包括:将时间分段,以时间段为单位,对每个时间段的图像帧统一处理,对光照范围内的区域进行标注,将属于同一时间段的所述图像帧对应像素处的标注数据进行叠加,获得光照着色结果;
标注即为对图像帧进行着色,使用RGB颜色空间的方式对图像进行着色,获得标注后的图像,通过对图像上的颜色数据进行叠加,获得叠加数据后的图像,即光照着色结果,可以反映图像帧中各区域的光照的时间的长度。
所述着色结果包括光照着色结果,所述光照着色结果是一种通过对同一视角中的多个图像帧进行处理所得到的。
根据需求选择对应的着色结果与原始场景着色结果叠加获得输出图像。
对同一个图像帧中包含的多个方面的信息分别进行着色,获得与信息对应的着色结果。
可选地,所述标注包括标注光照的位置和范围;所述将时间分段,对每个时间段内的图像帧统一处理,对光照范围内的区域进行标注,将属于同一时间段的所述图像帧对应像素处的标注数据进行叠加,获得光照着色结果包括:将所述三维仿真场景内有光照的时间段进行分段,计算属于同一时间段的各个图像帧的光照范围,并将所述光照范围内的区域渲染成第一颜色;统计属于同一时间段的各个图像帧的每个像素被渲染为第一颜色的次数;根据所述次数计算热力图,将所述热力图叠加回各时间段的第一帧图像帧,渲染获得所述光照着色结果。
在计算属于同一时间段的各个图像帧的光照范围之前,包括:将所述原始场景着色结果和所述各时间段的第一帧图像帧存入临时队列中。
光照着色结果的渲染过程与其他着色结果的渲染过程不同,主要区别在于其他渲染结果使用一帧图像帧,直接对图像帧进行着色,光照着色结果则是对连续时间段内的图像帧的光照标注数据进行叠加,形成光照图,所述光照图能够直观地显示出图像帧内各区域的光照的时间长度。
在一实施例中,将一天中的时间进行分段,每隔两个小时作为一个时间段,获取每个时间段内的所有图像帧,将所有时间段的第一帧图像帧存入临时队列,作为着色结果的图像载体。将零点到两点的所有图像帧基于光源计算光照范围,将光照范围内的区域渲染成白色,非光照区域渲染成黑色,然后依据渲染黑色或白色的次数计算热力图,叠加至零点的第一帧图像帧上,形成光照图。同理,获得其他时间段的光照图。
可选地,将光照图叠加,形成光照着色结果。
以上个实施例的情况为例,在另一实施例中,将一天的所有时间段的光照图进行叠加,作为光照着色结果,将光照着色结果叠加至零点的第一帧图像帧上。
可选地,如图5所示(附图为经灰度处理后的图像),根据所述目标属性参数,按照所述着色策略,对所述图像帧进行着色,还包括以下几种着色结果:
当所述标注类型为全景分割属性时,所述使用所述片元着色器获取纹理颜色,将所述纹理颜色叠加至所述顶点着色图像之后,还包括:基于所述图像帧中的对象标记为所述图像帧中每个像素赋予类别和实例ID,将每个对象分别赋予不同颜色,生成全景分割着色结果;
当所述标注类型为深度属性时,所述使用所述片元着色器获取纹理颜色,将所述纹理颜色叠加至所述顶点着色图像之后,还包括:计算所述图像帧中像素点距视点的距离,将所述距离归一化并生成深度标注着色结果;
当所述标注类型为速度属性时,所述使用所述片元着色器获取纹理颜色,将所述纹理颜色叠加至所述顶点着色图像之后,还包括:基于所述图像帧中目标的速度,对所述图像帧的对象进行标记,以速度标量为标准进行着色,生成速度标注着色结果;
当所述标注类型为高度属性时,所述使用所述片元着色器获取纹理颜色,将所述纹理颜色叠加至所述顶点着色图像之后,还包括:基于所述图像帧中像素点对应所述三维仿真场景中的高度进行着色,生成高度标注着色结果。
在一实施例中,当标注类型为全景分割属性、深度属性、速度属性、高度属性时,获取一帧图像帧,对所述图像帧进行预处理并存入临时队列,基于标注类型及其对应的着色策略,从临时队列中获取该图像帧,并按照相应的着色策略对图像帧进行着色,本实施例中,对所有属性分别进行着色,分别获得全景分割着色结果、深度着色结果、速度着色结果、高度着色结果,且上述四种着色结果均基于单帧图像帧进行着色。
如图5所示,从左到右依次为深度标注图、速度标注图、高度标注图的一种示例图。
从步骤S200中分别获得对应的目标属性参数,以对图像帧进行分别着色。
在一实施例中,在提取图像帧,且对图像帧进行预处理后,对图像帧进行着色,分别获得光照着色结果、全景分割着色结果、深度标注着色结果、速度标注着色结果、高度标注着色结果,并存储在临时队列中,等待与原始着色结果叠加后输出。
可选地,所述着色结果不是可输出的着色结果,与原始着色结果进行叠加处理,生成最终的图像像素颜色后的结果为输出结果。
可选地,如图2所示,步骤S300包括:
步骤S301,基于所述着色策略使用所述顶点着色器进行着色,对所述图像帧进行着色,获得顶点着色图像。
顶点着色器用于描述在顶点上执行的操作,如坐标变换、计算光照公式产生每个顶点颜色、计算纹理坐标,顶点着色器可以提高渲染场景速度,根据图像帧的视点位置、贴图法线和光照进行顶点的着色计算,对图像帧内的顶点进行着色,获得顶点着色图像。
在一实施例中,顶点着色器用于对图像帧进行顶点着色,获得顶点着色图像,将顶点着色图像发送给片元着色器;计算纹理坐标,将纹理坐标提供给片元着色器进行进一步的渲染着色。
根据当前的渲染模式,从GPU中获取不同的属性信息进行对应的着色,在一实施例中,当前的渲染模式为深度标注模式,故从GPU中获取目标图像帧的像素的深度值,所述深度值包括该像素距离视点的距离。然后通过预设的染色策略将图像帧内的目标进行染色,获得深度标注着色结果。
可选地,使用所述顶点着色器根据所述图像帧的场景信息对目标进行着色,获得所述顶点着色图像,其中,所述场景信息包括视点位置、贴图法线。
可选地,使用所述片元着色器获取纹理颜色,将所述纹理颜色叠加至所述顶点着色图像,其中,基于纹理坐标从纹理像素中取样,获得所述纹理颜色。
片元着色器结合纹理坐标和颜色,对顶点着色图像的进一步填充着色,先获取图像帧中的纹理颜色,然后根据当前的渲染模式对图像帧进行颜色的填充,获得着色图像。
步骤S302,使用所述片元着色器,基于所述顶点着色图像、所述着色策略和所述目标属性参数,获得所述着色结果,其中,所述目标属性参数包括以下至少一者:目标的类型参数、速度参数、加速度参数、深度参数、高度参数、颜色参数。
步骤S400,根据需求选择对应的着色结果与原始场景着色结果叠加获得输出图像。
需要获取着色的图像时,将已处理好的着色结果与原始场景着色叠加,获得输出图像输出。
在一实施例中,如图3所示,需要输出深度图像,则将已处理好的深度着色结果与原始场景着色叠加,生成最终的图像像素颜色。
可选地,所述输出图像包括:结构化标注数据,包括所述图像帧每个像素所述类别、实例ID、距离视点的距离、离地高度、光照时间及每个所述目标的速度、加速度、位置、方向角。
结构化标注数据的内容包括三维仿真场景数据标注方法的所有标注类别,可以全面地获得图像帧内的所有数据类型,以支持机器学习算法的训练。
如图6所示,图6为标注全景分割的输出图像,附图为经灰度处理后的图像,是图像帧经过全景分割标注,获得全景分割着色结果后,与原始标注图像叠加而获得的最终用于输出的图像。
本发明还提出一种基于三维仿真场景的数据标注装置,包括:
预处理模块,其用于获取三维仿真场景,提取图像帧,对所述图像帧进行预处理获得原始场景着色结果;输入模块,其用于获取标注类型及其对应的着色策略,根据所述标注类型获取所述图像帧内目标的每个像素的目标属性参数;着色模块,其用于根据所述目标属性参数,按照所述着色策略,对所述图像帧进行着色,获得着色结果;其中,所述标注类型包含光照属性,所述光照属性对应的着色策略包括:将时间分段,以时间段为单位,对每个时间段的图像帧进行处理,对光照范围内的区域进行标注,将属于同一时间段的所述图像帧对应像素处的标注数据进行叠加,获得光照着色结果;输出模块,其用于根据需求选择对应的着色结果与原始场景着色结果叠加获得输出图像。
所述基于三维仿真场景的数据标注装置相对于现有技术与所述三维仿真场景数据标注方法所具有的优势相同,在此不再赘述。
本发明还提出一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器读取并运行时,实现如上所述的基于三维仿真场景的数据标注方法。
所述计算机可读存储介质相对于现有技术与所述三维仿真场景的数据标注方法所具有的优势相同,在此不再赘述。
虽然本发明公开披露如上,但本发明公开的保护范围并非仅限于此。本领域技术人员在不脱离本发明公开的精神和范围的前提下,可进行各种变更与修改,这些变更与修改均将落入本发明的保护范围。
- 一种基于三维仿真场景的数据标注方法、装置及存储介质
- 一种基于三维场景数据生成机器人仿真场景的方法、装置和存储介质