用于具有深度地面实况注释的虚拟传感器数据生成的方法和系统与流程

文档序号:11176548阅读:225来源:国知局
用于具有深度地面实况注释的虚拟传感器数据生成的方法和系统与流程

本公开总体上涉及虚拟数据生成和注释,并且更具体地涉及用于生成适用于开发、训练、测试和验证从图像中估算对象的深度的基于车辆的计算机视觉算法的虚拟传感器数据的方法和系统。



背景技术:

在通过监督式机器学习以检测驾驶环境中的对象的计算机视觉算法的开发中,需要不同组传感器数据来训练、开发、测试和验证检测算法和与算法相关联的附加下游功能。然而,这通常需要大量的金钱、时间和资源来获取真实世界传感器数据。例如,为了获得真实世界传感器数据,传感器可能需要沿着行驶路径物理地设置或安装在车辆上,并且实际驾驶运行可能需要在各种类型的道路上、针对各种交通条件并且在各种天气和照明条件下进行,以便传感器收集针对各种场景的多组传感器数据。例如,为了算法在各种条件下的稳健性,环境变量或参数(例如天气、温度、风、照明条件和其他因素)可能需要被包括在真实世界传感器数据集中。因此,要收集的传感器数据组的数量可能是巨大的。一般来说,需要从数百甚至数千英里的道路收集到的传感器数据(其可以包括多达数千个不同的图像)来开发准确且可靠的计算机视觉检测算法,这转换为获取这样的数据所需的相当大量的时间、金钱和资源。



技术实现要素:

根据本发明,提供一种方法,该方法包含:

由处理器生成虚拟环境;

由处理器将虚拟传感器定位在虚拟环境中的第一位置处;

由处理器记录表征虚拟环境的数据,该数据对应于由感测虚拟环境的虚拟传感器生成的信息;以及

由处理器为数据注释表征虚拟传感器与虚拟环境之间的空间关系的深度映射图。

根据本发明的一个实施例,该方法进一步包含:

由处理器将虚拟传感器从第一位置移动到虚拟环境中的第二位置,使得虚拟传感器被配置为从第二位置、沿着第一位置与第二位置之间的路径或二者来感测虚拟环境。

根据本发明的一个实施例,其中虚拟环境包含分布在其中的多个虚拟对象,虚拟对象中的每一个相对于虚拟传感器是静止的或可移动的,并且虚拟对象中的每一个可由虚拟传感器来感测。

根据本发明的一个实施例,其中空间关系包含多个虚拟对象中的一个或多个相对于虚拟传感器的距离信息。

根据本发明的一个实施例,其中虚拟传感器包含虚拟摄像机,并且其中数据包含由第一位置处的虚拟摄像机感知到的虚拟环境内的多个虚拟对象的一个或多个虚拟图像。

根据本发明的一个实施例,其中虚拟传感器在第一位置处的定位包含将虚拟摄像机布置在第一位置处并且将虚拟摄像机设置在相对于虚拟环境的第一取向上,并且其中数据对应于由感测虚拟环境的虚拟摄像机从第一位置在第一取向上生成的信息。

根据本发明的一个实施例,该方法进一步包含:

由处理器将虚拟摄像机从第一位置移动到虚拟环境中的第二位置,使得虚拟摄像机被配置为从第二位置感测虚拟环境;以及

由处理器将虚拟摄像机设置在相对于虚拟环境的第二取向上,使得虚拟摄像机被配置为在第二取向上感测虚拟环境。

根据本发明的一个实施例,其中数据包含一个或多个虚拟图像,其中一个或多个虚拟图像中的每一个包含像素阵列,并且其中像素阵列中的每一个像素与由第一位置处的虚拟摄像机感知到的虚拟环境中的多个虚拟对象之一相关联。

根据本发明的一个实施例,其中深度映射图包含元素阵列,元素阵列中的每一个元素对应于像素阵列的相应像素,并且包含相应的数值,每一个所述数值对应于虚拟环境中虚拟传感器和与相应像素相关联的多个虚拟对象中相应的一个之间的距离。

根据本发明的一个实施例,该方法进一步包含:

由处理器基于第一位置的坐标和虚拟环境中的多个虚拟对象中相应的一个的坐标来计算虚拟传感器和与相应像素相关联的多个虚拟对象中相应的一个之间的距离。

根据本发明的一个实施例,其中数据进一步对应于被配置为至少说明虚拟环境的天气条件和照明条件的一个或多个环境参数。

根据本发明的一个实施例,其中虚拟环境的生成包含至少采用三维(3d)建模技术和动画技术。

根据本发明,提供一种传感器数据生成系统,该传感器数据生成系统包含:

一个或多个处理器;以及

存储器,存储器被可操作地连接到一个或多个处理器,存储器存储可由一个或多个处理器执行的多个成分,多个成分包含:

虚拟环境,该虚拟环境被编程为包括多个虚拟对象;

传感器模型,该传感器模型被编程为模拟传感器;

定位模块,该定位模块被编程为设置传感器在虚拟环境中的位置和取向;

模拟模块,该模拟模块被编程为利用虚拟环境、传感器模型和定位模块来产生数据,该数据模拟感测类似于或匹配虚拟环境的实际环境的真实世界场景中的传感器的输出;以及

注释模块,该注释模块被编程为为数据注释表征传感器与虚拟环境中的多个虚拟对象中的一个或多个之间的空间关系的深度映射图。

根据本发明的一个实施例,其中虚拟环境包含三维(3d)环境,并且其中多个虚拟对象中的每一个相对于3d环境中的传感器是静止的或可移动的。

根据本发明的一个实施例,其中传感器包含虚拟摄像机,并且其中数据包含由位置处和取向上的虚拟摄像机感知到的虚拟环境的一个或多个虚拟图像。

根据本发明的一个实施例,其中一个或多个虚拟图像中的每一个包含像素阵列,像素阵列中的每一个像素与由位置处和取向上的虚拟摄像机感知到的多个虚拟对象中相应的一个相关联。

根据本发明的一个实施例,其中深度映射图包含元素阵列,元素阵列中的每一个元素对应于像素阵列的相应像素,并且包含相应的数值,每一个数值对应于虚拟环境中传感器和与相应像素相关联的多个虚拟对象中相应的一个之间的距离。

根据本发明的一个实施例,其中传感器和与相应像素相关联的多个虚拟对象中相应的一个之间的距离是基于位置的坐标和虚拟环境中的多个虚拟对象中相应的一个的坐标来确定的。

根据本发明的一个实施例,其中存储器进一步存储数据和深度映射图。

根据本发明的一个实施例,其中多个成分包含:

环境模块,该环境模块被编程为至少说明虚拟环境的天气条件和照明条件。

附图说明

本发明的非限制性和非穷尽性实施例参照以下附图进行了描述,其中贯穿各个附图,相同的附图标记指代相同的部件,除非另有说明。

图1是描绘根据本公开的实施例可以利用的示例场景的示图;

图2是根据本公开的实施例描绘表征虚拟环境的示例数据和注释数据的示例深度映射图的示图;

图3是根据本公开的实施例描绘表征具有不同环境参数设置的虚拟环境的一部分的示例图像和注释每一个图像的示例深度映射图的示图;

图4是根据本公开的实施例的示例过程的流程图;

图5是描绘根据本公开的实施例的示例系统的示图。

具体实施方式

在以下说明书中,参考形成说明书的一部分的附图,在附图中通过例证示出可以实践本公开的特定示例性实施例。这些实施例被足够详细地描述以使本领域技术人员能够实践本文所公开的构思,并且应当理解的是,在不脱离本公开的范围的前提下,可以对各个所公开的实施例进行修改,并且可以利用其他实施例。因此,以下详细描述不应被视为具有限制意义。

本公开的目的是克服获取计算机视觉算法的开发所需的传感器数据的困难并降低其成本。根据本公开的实施方式通过由各种三维(3d)建模技术和/或动画技术创建的虚拟环境生成传感器数据。如上所述的各种场景、条件和参数可以容易地在虚拟环境中虚拟地设置,并且一个或多个虚拟传感器中的每一个可以被设置在虚拟环境中的相应位置处,以在模拟中生成相应组的传感器数据。每一个虚拟传感器可以被设置在相对于虚拟环境的相应取向上,并且从相应位置在相应取向上生成相应组的传感器数据。每一个虚拟传感器随后可以被设置在另一取向上,并且从该取向生成另一组传感器数据。此外,每一个虚拟传感器可以在模拟中遍历虚拟环境或者围绕虚拟环境移动,并且虚拟地收集(即,通过模拟生成)计算机视觉算法的开发所需的更多的传感器数据。虚拟环境和虚拟传感器被模拟以紧密地匹配相应的真实世界环境和真实世界传感器,使得模拟生成的虚拟传感器数据大体上表示由真实世界环境中的真实世界传感器收集到的相同的信息。

虚拟环境可以包括分布在虚拟环境内的不同位置处的各种虚拟对象。每一个虚拟对象相对于虚拟环境的固定参考点可以是静止或可移动的。静止虚拟对象可以是例如立在道路边的建筑物或位于远处的山丘。可移动虚拟对象可以是例如在道路上行驶的车辆、在道路的人行道上行走的行人、横穿道路奔跑的动物或飞过的飞机。

此外,每一个虚拟对象可以具有确定的大小和形状,并且占据虚拟环境中虚拟对象的相应位置周围的特定空间。对于每一个虚拟对象,它可能需要在虚拟环境中的多个坐标以限定被虚拟对象占据的相应空间。对于可移动虚拟对象,在虚拟环境中,与可移动虚拟对象相关联的多个坐标可以从一个时刻到下一个时刻改变。

图1示出了可以实施本公开的示例实施例的示例虚拟环境100。虚拟环境100可以具有道路110,该道路100允许由移动的车辆181、182和190表示的单向或双向机动车辆车流。虚拟环境100还可以具有路边结构,例如护栏(siderail)或路沿150、交通标志160、商业标志或广告牌(未示出)和树170。虚拟环境100可以进一步具有诸如房屋140的建筑物、以及在人行道130上行走的行人131和132。虚拟环境100还可以具有在道路110的远端处的山丘120、飞过天空的飞机180、以及横穿道路110奔跑的狗133。本领域技术人员将领会的是,图1中的虚拟环境100的描绘仅仅是用于说明目的的示例,并且可以存在具有多个类型的不同的对象的环境100的多种变体。也就是说,根据本公开的虚拟环境100的实施例不限于图1所示的示例。

道路110、山丘120、人行道130、行人131和132、狗133、房屋140、路沿150、交通标志160、树170、车辆181、182和190以及飞机180中的每一个是虚拟环境100内的虚拟对象。在这些虚拟对象中,道路110、山丘120、人行道130、房屋140、路沿150、交通标志160和树170是静止虚拟对象,因为它们相对于虚拟环境的固定参考点105不移动。另一方面,行人131和132、狗133、车辆181、182和190以及飞机180是可移动虚拟对象,因为它们相对于参考点105正在移动。

对于每一个虚拟对象,具有与相应的虚拟对象相关联的多个坐标的一组坐标可以被用于限定在虚拟环境中被虚拟对象占据的空间。不同数量的坐标可以被用来限定不同的虚拟对象。例如,与道路标志160相比,房屋140可以具有更复杂的结构,并且因此可能需要更多数量的坐标来限定其在虚拟环境100内的空间。对于可移动虚拟对象,相关的坐标可以根据可移动虚拟对象的运动轨迹而从一个时刻到随后的时刻变化。对于虚拟环境中的不同的可移动虚拟对象,相关的坐标的变化或可移动虚拟对象的位移的变化可以是不同的。例如,在图1中,行人131可以在人行道130上以比可能横穿道路110奔跑的狗133的速度慢的速度并且在与狗133的方向不同的方向上行走。因此,行人131从模拟的第一时刻到第二时刻的位移可以不同于狗133从模拟的第一时刻到第二时刻的位移,如由分别表示行人131和狗133的两组坐标的变化所反映的。相比之下,用于限定被静止虚拟对象(例如房屋140或道路标志160)占据的空间的坐标从模拟的一个时刻到下一个时刻不会发生改变,因为在虚拟环境100中被静止虚拟对象占据的空间不会随时间改变。

为了生成表征虚拟环境100的一组传感器数据,一个或多个虚拟传感器可以被定位在虚拟环境100中。传感器可以被定位在固定位置处。例如,传感器141可以被安装在房屋140上。可替代地,传感器可以被定位在虚拟环境100中使得其相对于虚拟环境100的参考点105可移动。当虚拟传感器被定位成使得其与虚拟环境100中的可移动虚拟对象相关联时,这样的虚拟传感器可以与可移动虚拟对象一起遍历虚拟环境100或围绕虚拟环境100以其他方式移动。例如,传感器191、192和193可以被安装在移动的车辆190上,并且因此可以在模拟中遍历虚拟环境100或围绕虚拟环境100以其他方式移动。

类似于虚拟环境100中的虚拟对象,虚拟传感器(例如传感器141、191、192和193之一)可以与限定虚拟传感器的位置以及在虚拟环境100中被虚拟传感器占据的空间的多个坐标相关联。如果虚拟传感器与虚拟环境100相比相对较小,则它所占据的空间对于所有实际目的可以忽略不计,并且这样的虚拟传感器的位置可以由单个坐标来表示。对于定位在固定位置处的这样的虚拟传感器(例如安装在房屋140上的传感器141),表示虚拟传感器的位置的单个坐标在模拟期间可以不改变。可替代地,对于在虚拟环境100中被定位为可移动的虚拟传感器,表示虚拟传感器的位置的单个坐标可以在模拟中随时间改变。例如,安装在车辆190上的传感器191、192和193中的每一个可以具有由相应的坐标表示的其相应的位置,该相应的坐标从模拟中的一个时刻到下一时刻改变。坐标(即,传感器191、192和193中的每一个的位移)的改变可以与模拟中车辆190随时间的位移类似或相同。

除了被定位在或以其他方式设置在虚拟环境100中的一位置之外,虚拟传感器可以进一步被设置在其相应位置处相对于虚拟环境100的特定取向中。例如,当虚拟传感器141可以被设置在房屋140的外部位置处(即,在屋顶上)时,虚拟传感器141可以进一步被设置在一取向上使得虚拟传感器141面向道路110对面的人行道130。可替代地,虚拟传感器141可以被设置在相对于虚拟环境100的一取向上使得虚拟传感器141面向车辆190进入道路110的道路110的一端。也就是说,虚拟传感器141可以被设置在相对于虚拟环境100的不同取向上而被布置在相同的固定位置处(即,在房屋141的屋顶上),使得虚拟传感器141可以能够从相同的位置但在不同的取向上表征虚拟环境100。就是说,将虚拟传感器设置在不同取向上的能力在由虚拟传感器从虚拟环境中的给定位置表征虚拟环境方面提供了附加自由度。

在一些实施例中,传感器141、191、192和193中的每一个、一些或全部可以包括虚拟摄像机,该虚拟摄像机被配置为通过拍摄静止图像(即,图片)或活动图像(即,视频)或两者的组合来表征虚拟环境100。也就是说,传感器数据可以包括虚拟环境100的静止和/或活动图像。根据虚拟摄像机的位置和取向,虚拟环境100的一部分可以通过被由虚拟摄像机生成的图像拍摄到来表征。例如,当传感器141的虚拟摄像机被设置在一取向上使得虚拟摄像机面向道路110对面的人行道130时,由传感器141的虚拟摄像机生成的图像可以包括表征行人131和132、车辆181和190、狗133、树170以及人行道130的一部分和道路110的一部分的信息。然而,由于虚拟摄像机的取向,图像可能不包括表征山丘120或飞机183的信息。也由于取向,图像甚至可能没有拍摄到车辆182或交通标志160。

由虚拟摄像机生成的图像可以包括多个图像像素,并且图像像素可以以阵列的形式来呈现。如图2所示,由虚拟摄像机生成的图像210可以包括以m列和n行呈现的图像像素阵列,其中m和n中的每一个是正整数。阵列中的每一列具有与阵列中的另一列相同数量的像素,而阵列中的每一行具有与阵列中的另一行相同数量的像素。因此,图像中包括的像素的总数为m·n。例如,如图2所示,图像210的第一列具有n个像素,即,p11、p12、...、p1n,并且图像210的最后一行具有m个像素,即,p1n、p2n、...、pmn。对于高清晰度图像,m可以是1920或更大,并且n可以是1080或更大。例如,超高清晰度(uhd)图像可以包括具有多达3840列和2160行的像素阵列。在根据本公开的各种实施例中,图像的像素阵列中的列和行的数量可以根据实施中的实际要求而变化。

由于由虚拟摄像机生成的图像表示由虚拟摄像机感知到的虚拟环境的视野,因此图像的每一个像素被渲染以显示由虚拟摄像机从虚拟摄像机的位置和取向感知到的虚拟环境中的虚拟对象或与其相关联。采用图1的虚拟摄像机141作为示例,该虚拟摄像机141被定位在房屋140的屋顶处并且被设置在面向道路110对面的人行道130的取向上。由虚拟摄像机141生成的图像210可以包括如图2所示的图像像素阵列。图像210的一些图像像素因此可以被渲染以显示或以其他方式表示行人131,而图像210的一些图像像素可以被渲染以显示或以其他方式表示行人132。同样地,图像210的一些图像像素可以被渲染以显示或以其它方式表示车辆181,图像210的一些图像像素可以被渲染以显示或以其他方式表示车辆190,并且图像210的一些图像像素可以被渲染以显示或以其他方式表示狗133。仍然,图像210的一些图像像素可以被渲染以显示或以其他方式表示树170,图像210的一些图像像素可以被渲染以显示或以其他方式表示人行道130的一部分,并且图像210的一些图像像素可以被渲染以显示或以其他方式表示道路110的一部分。

为了使由虚拟传感器生成的一组传感器数据对于开发、训练、测试和验证计算机视觉算法有用,该组传感器数据需要被注释地面实况信息。在一些实施例中,地面实况信息以用于由虚拟传感器生成的每一个图像的深度映射图的形式来呈现。如图2所示,图像210由包含深度地面实况信息的相应的深度映射图260来注释。深度映射图260可以包括元素阵列,其中元素阵列具有与图像210的像素阵列相同的大小。也就是说,深度映射图260的元素阵列也具有m列和n行,给出总共m·n个元素。实际上,深度映射图260中的元素与图像210中的像素具有1对1对应关系。例如,深度映射图260的元素d11对应于图像210的像素p11,并且深度映射图260的元素d12对应于图像210的像素p12。同样地,深度映射图260的元素dmn对应于图像210的像素pmn。

深度映射图的每一个元素可以存储指示、表示或以其他方式对应于虚拟环境中虚拟传感器与在相应的图像像素处渲染的虚拟对象之间的距离的数值。例如,由虚拟摄像机141生成的图像210的像素p32可以被渲染以显示树170的一部分或与其相关联。因此,深度映射图260的对应元素d32可以包含对应于虚拟环境100中树170的那部分与虚拟摄像机141之间的距离的数值。作为另一个示例,由虚拟摄像机141生成的图像210的像素pm1可以被渲染以显示人行道130的一部分或与其相关联。因此,深度映射图260的对应元素dm1可以包含对应于虚拟环境100中人行道130的那部分与虚拟摄像机141之间的距离的数值。

与真实世界传感器数据收集(实际驾驶环境中真实世界传感器与对象之间的距离使用昂贵且耗时的设备(例如深度扫描仪)来测量)不同,由于在模拟期间的任何时间每一个虚拟传感器和每一个虚拟对象的位置是已知信息,所以虚拟环境中虚拟传感器与任何虚拟对象之间的距离可以例如通过计算装置的处理器容易地计算出来。例如,要存储在深度映射图260的元素d32中的数值可以使用树170的坐标和虚拟摄像机141的坐标容易地计算出来。作为另一个示例,要存储在深度映射图260的元素dml中的数值可以使用虚拟摄像机141的坐标和在由虚拟摄像机141生成的图像210的像素p32处渲染的人行道130的一部分的坐标容易地计算出来。

如前所述,为了开发在各种条件下稳健的计算机视觉算法,可能需要将环境变量或参数(例如天气、温度、风、照明条件和其他因素)包括在真实世界传感器数据集中。虽然在真实世界场景中获取这样的数据需要大量的时间、金钱和资源,但是生成说明各种环境条件的传感器数据需要相当少的努力。在一些实施例中,表征虚拟环境的特定部分在第一环境条件下的图像可以通过一个或多个环境参数来渲染以生成表征虚拟环境的同一特定部分在第二环境条件下的另一图像,该第二环境条件不同于第一环境条件。例如,具有像素p11-pmn的图3的图像310可以表示在晴天(fairweather)条件下在模拟期间的特定时刻由虚拟摄像机192感知到的虚拟环境100的一部分的视图。图像310然后可以通过一个或多个环境参数的调整被渲染成具有像素q11-qmn的图像320,具有像素q11-qmn的图像320可以表示在有雾条件下在模拟期间的同一特定时刻由虚拟摄像机192感知到的虚拟环境100的相同部分的视图。可替代地或随后,图像310可以通过一个或多个环境参数的调整被渲染成具有像素r11-rmn的图像330,具有像素r11-rmn的图像330可以表示在黄昏(twilighthours)时在模拟期间的同一特定时刻由虚拟摄像机192感知到的虚拟环境100的相同部分的视图。例如,图像310的像素p32可以被渲染成图像320的像素q32以表征在有雾条件下树170的一部分,而图像310的像素p32也可以被渲染成图像330的像素r32以表征在黄昏条件下树170的相同部分。

值得注意的是,由于图像310、320和330中的每一个表示表征来自被定位在相同位置中相同取向上的同一虚拟摄像机192的虚拟环境100的相同部分的视图,所以三个图像310、320和330可以被注释相同的深度映射图360。也就是说,图像310、320和330的相应像素中的每一个可以与存储在深度映射图360的相应元素中的相同的数值相关联。例如,图像310的像素p32、图像320的像素q32和图像330的像素r32中的每一个可以表征在模拟期间的特定时刻但在相应的环境条件下由虚拟摄像机192感知到的树170,并且可以通过深度映射图360的同一元素d32来注释,因为对于所有三种模拟的环境条件来说,在模拟期间的该特定时刻树170的一部分与虚拟摄像机192之间的距离可以是相同的。

此外,值得注意的是,用于生成表征虚拟环境的特定部分在各种环境条件下的图像(如上面所示的图像310、320和330)的技术同样适用于静止图像和活动图像。类似地,用于注释图像(如上面所示的图2和图3)的技术也同样适用于静止图像和活动图像。此外,值得注意的是,根据本公开注释图像和生成图像的实施例不限于图2和图3所示的示例。另外,值得注意的是,虽然多个图像(每一个由与深度映射图360相同的深度地面实况数据注释)可以通过使用说明各种天气条件和照明条件的如上所述的环境参数来生成,但是本公开的实施例不需要在不同条件下从相同的准确位置拍摄的多个图像。换句话说,根据本公开的一些实施例可以仅涉及从虚拟环境内的各个位置生成图像、从一个图像到下一个图像改变天气条件和/或生成每一个图像的相应的深度地面实况,而不需要用于表征虚拟环境在不同天气条件或照明条件下的相同视图的从相同的准确位置拍摄或针对相同的准确位置以其它方式生成的两个或更多个图像。

图4示出了根据本公开用于生成用于开发或测试计算机视觉检测算法的虚拟传感器数据的示例过程400。过程400可以包括被示为例如410、420、430、440和450的框的一个或多个操作、动作或功能。尽管被示为离散的框,但是根据所需的实施方式过程400的各个框可以被划分为附加的框、被组合成更少的框、或被消除。过程400可以开始于框410。

在410,过程400可以包含处理器生成虚拟环境(例如,虚拟环境100)。虚拟环境的生成可以包含通过为每一个虚拟对象分配一个或多个坐标来设置各种虚拟对象。虚拟对象可以包括静止虚拟对象(例如,道路110、山丘120、人行道130、房屋140、路沿150、交通标志160和树170)和可移动虚拟对象(例如,行人131和132、狗133、车辆181、182和190以及飞机180)。框410之后可以是框420。

在420,过程400可以包含处理器在虚拟环境(例如,虚拟环境100)中定位一个或多个虚拟传感器(例如,虚拟传感器141、191、192和193)。对于一个或多个虚拟传感器中的每一个,定位可以包含为虚拟传感器的位置分配坐标和相对于虚拟环境设置取向。定位还可以包含根据虚拟传感器的预定运动轨迹来确定虚拟传感器的位置和取向。框420之后可以是框430。

在430,过程400可以包含处理器记录表征由一个或多个虚拟传感器(例如,虚拟传感器192)感知到的虚拟环境的数据(例如,图像310)。在430,过程400可以进一步包含处理器记录说明虚拟环境的天气条件和/或照明条件的数据(例如,图像320和330)。框430之后可以是框440。

在440,过程400可以包含处理器为所记录的数据(例如,图像310、320和330)注释深度映射图(例如,深度映射图360)。所记录的数据的注释可以包含处理器针对深度映射图的每一个元素计算和存储虚拟传感器和与深度映射图的相应元素相关联的相应虚拟对象之间的距离。例如,过程400可以包含处理器计算在图像310的像素p32处渲染的树170的一部分与虚拟摄像机192之间的距离,并且存储与在深度映射图360的元素d32处所计算出的距离相关联的数值。框440之后可以是框450。

在450,过程400可以包含处理器确定是否达到模拟结束条件。当例如一个或多个虚拟传感器已经生成了预定数量的图像时,模拟结束条件可以被确定为被达到。作为另一个示例,当承载一个或多个虚拟传感器(例如,虚拟传感器191、192和193)的车辆(例如,车辆190)已经行驶了预定里程数时,模拟结束条件也可以被确定为被达到。另外,作为另一个示例,当已经达到预定模拟时间时,模拟结束条件可以被确定为被达到。响应于已经达到模拟结束条件的确定,过程400可以结束。可替代地,响应于尚未达到模拟结束条件的确定,过程400可以进行到框420以将一个或多个虚拟传感器中的每一个、一些或全部重新定位到不同位置,而改变或不改变其取向。

图5示出了可以实施本公开的示例实施例的示例传感器数据生成系统500。传感器数据生成系统500可以执行一个或多个模拟,以便产生适于开发、测试和/或训练各种计算机视觉检测算法的一组传感器数据570。传感器数据生成系统500可以用任何合适的方法(包括示例过程400)来完成此项工作。传感器数据生成系统500可以被体现为硬件、软件或其组合。在一些实施方式中,传感器数据生成系统500可以是计算装置,诸如,例如但不限于,膝上型计算机、平板计算机、笔记本计算机、台式计算机、服务器、智能电话和可佩戴设备。

在一些实施例中,传感器数据生成系统500可以包括一个或多个处理器502、存储器590、用户界面504、其它硬件506,诸如,例如,现场可编程门阵列(fpga)、图形处理单元(gpu)以及诸如此类、或其组合或子组合。存储器590可以被可操作地连接到一个或多个处理器502或可由一个或多个处理器502以其他方式访问,并且可以被配置为存储一个或多个计算机软件成分以供一个或多个处理器502执行。

用户界面504可以使用户(例如工程师、技术人员或诸如此类)能够与传感器数据生成系统500的各个方面交互、运行、定制或控制传感器数据生成系统500的各个方面。在一些实施例中,用户界面504可以包括一个或多个小键盘、键盘、触摸屏、指示设备或诸如此类或其组合或子组合。

在一些实施例中,存储器590可以存储关于或以其他方式定义一个或多个虚拟环境510的数据、代码和/或指令,上述虚拟环境100可以是一个或多个虚拟环境510的示例。一个或多个虚拟环境510可以包含各种虚拟对象和结构,例如以上关于图1所示和所描述的那些。存储器590还可以至少存储图5所示的那些部件,诸如,例如,一个或多个传感器模型520、定位模块530、环境模块540、模拟模块550、注释模块560、传感器数据570和一个或多个深度映射图580。

在一些实施例中,虚拟环境510可以包括限定虚拟空间中虚拟对象(例如图1所示的虚拟环境100中的一些或全部静止虚拟对象,包括道路110、山丘120、人行道130、房屋140、路沿150、交通标志160和树170)的位置、取向、尺寸、形状、颜色、表面反射性和其他特性的三维网格。在一些实施例中,虚拟环境510还可以限定可移动虚拟对象(诸如,例如,图1所示的行人131和132、狗133、车辆181、182和190以及飞机180)的特性,包括但不限于每一个可移动虚拟对象的速度、移动方向、加速度/减速度和转向。

在一些实施例中,每一个传感器模型520可以是限定或预测相应的真实世界传感器的输出的软件模型。不同的传感器可以在现实世界中不同地表征。例如,立体摄像机可以与全景摄像机不同地表征。因此,一个或多个传感器模型520可以包括相应的传感器模型以模拟多种类型的摄像机中的每一种类型的摄像机,包括但不限于立体摄像机和全景摄像机。

在一些实施例中,定位模块530可以被用于设置虚拟环境510中虚拟传感器的位置和取向。例如,在虚拟环境510被模拟为虚拟环境100的情况下,定位模块530可以将虚拟传感器141布置在房屋140的屋顶的外部位置上,并且将虚拟传感器141设置在面向道路110对面的人行道130的取向上。作为另一个示例,定位模块530可以基于安装有传感器192的车辆190的轨迹来确定在模拟期间的每一个时刻虚拟传感器192的位置和取向。

在一些实施例中,环境模块540可以被用于说明虚拟环境的天气条件(例如,有雾、下雨、下雪或晴朗)和/或照明条件(例如,明亮、昏暗或黑暗)。多个环境参数可以被调整以反映环境天气或照明条件的变化。例如,环境模块540的天气参数可以针对在晴天天气条件下拍摄的图像进行调整以将该图像渲染为将表征虚拟环境100在有雾天气下的相同视图的另一图像。作为另一个示例,环境模块540的照明参数可以针对在晴天天气条件下拍摄的图像进行调整以将该图像渲染为将表征虚拟环境100在黄昏条件下的相同视图的另一图像。

在一些实施例中,模拟模块550可以采用来自虚拟环境510、传感器模型520和定位模块530的输入以产生模拟真实世界场景中的传感器的输出的一组数据。例如,模拟模块550可以产生表征虚拟环境100的一部分并且具有m列乘以n行的图像像素的阵列的图像210。图像210中的每一个像素可以与由像素渲染或以其他方式表示的虚拟对象的一部分相关联。在一些实施例中,注释模块560可以为图像210注释深度映射图260,深度映射图260具有与图像210的像素阵列相同大小的数值阵列。深度映射图260中的每一个元素可以对应于图像210的相应像素,并且存储与虚拟传感器和在相应像素处渲染的虚拟对象的相应部分之间的距离相关联的数值。在一些实施例中,存储器590可以存储传感器数据570,传感器数据570包括由模拟模块550产生的多个虚拟图像。在一些实施例中,存储器590还可以存储注释多个虚拟图像的深度映射图580。

根据在本公开的各种实施例中所显示的系统和方法产生许多优点。优点至少包括在虚拟环境中快速生成具有注释的深度地面实况的传感器数据,该传感器数据适合于开发、训练、测试和验证基于车辆的计算机视觉检测算法。

本文中使用冠词“一(a/an)”来指代一个或一个以上(即,至少一个)语法对象。举例来说,“用户”是指一个用户或一个以上用户。贯穿本说明书,参考“一个实施例”、“一实施例”,“一个示例”或“一示例”是指关于实施例或示例所描述的特定特征、结构或特性被包括在本公开的至少一个实施例中。因此,在贯穿本说明书的各个位置处出现的短语“在一个实施例”、“在一实施例中”、“一个示例”或“一示例”未必都指同一实施例或示例。此外,特定特征、结构、数据库或特性可以以任何合适的组合和/或子组合被组合在一个或多个实施例或示例中。此外,应当领会的是,随说明书提供的附图是用于对本领域普通技术人员说明的目的,并且附图不一定按比例绘制。

根据本公开的实施例可以被体现为装置、方法或计算机程序产品。因此,本公开可以采取完全由硬件构成的实施例、完全由软件构成的实施例(包括固件、驻留软件、微代码或诸如此类)、或组合本文中所有总体上可以被称为“电路”、“模块”或“系统”的软件和硬件方面的实施例的形式。此外,本公开的实施例可以采取体现在具有体现在介质中的计算机可用程序代码的任何有形表达介质中的计算机程序产品的形式。

附图中的流程图和框图说明根据本公开的各种实施例的系统、方法和计算机程序产品的可能实施方式的架构、功能和操作。关于这点,流程图或框图中的每一个框可以表示模块、段或代码的一部分,代码包含用于实施所指定的逻辑功能的一个或多个可执行指令。还应当指出的是,框图和/或流程图中的每一个框以及框图和/或流程图中的框的组合可以由执行所指定的功能或动作的基于专用硬件的系统或专用硬件和计算机指令的组合来实施。这些计算机程序指令还可以被存储在可以引导计算机或其它可编程数据处理装置来以特定方式运作的计算机可读介质中,使得存储在计算机可读介质中的指令产生包括指令手段的制品,该指令手段的制品实施在流程图和/或框图的一个框或多个框中指定的功能/动作。

虽然本公开就某些实施例进行了描述,但是鉴于本公开的好处,包括不提供本文所述的全部好处和特征的实施例的其它实施例对本领域普通技术人员来说将是显而易见的,这也在本公开的范围之内。应该理解的是,在不脱离本公开的范围的前提下,可以利用其他实施例。

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