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

交叉模态传感器数据对准的制作方法

2022-02-25 20:10:49 来源:中国专利 TAG:

交叉模态传感器数据对准


背景技术:

1.本说明书涉及处理由相机传感器和探测(surveying)传感器生成的交叉模态传感器数据。
2.相机传感器可以生成表征环境的视觉外观的图像。探测传感器(例如,雷达或激光雷达传感器)可以生成表征环境的三维(3d)几何形状的点云。
3.由相机传感器和探测传感器生成的传感器数据可以由机器学习模型处理。神经网络是采用一层或多层非线性单元来预测对于接收到的输入的输出的机器学习模型。一些神经网络是除了输出层之外还包括一个或多个隐藏层的深度神经网络。每个隐藏层的输出用作网络中下一层(即下一隐藏层或输出层)的输入。网络的每一层根据相应参数集的当前值从接收到的输入中生成输出。


技术实现要素:

4.本说明书描述了在一个或多个位置的一个或多个计算机上实施为计算机程序的系统,该系统可以确定交叉模态传感器数据之间的对准。确定两个传感器数据集之间的对准(例如,图像数据与点云数据之间的对准)是指确定表征环境的相同地方(area)的两个传感器数据集的相应区域之间的映射。
5.根据第一方面,提供了一种方法,包括获得:(i)由相机传感器生成的表征环境的视觉外观的图像,以及(ii)由探测传感器生成的表征环境的三维几何形状的包括数据点集合的点云。每个数据点定义环境中的表面上的点的相应三维空间位置。使用视觉嵌入神经网络来处理图像的多个区域中的每个区域,以生成每个图像区域的相应嵌入。使用形状嵌入神经网络来处理点云的多个区域中的每个区域,以生成每个点云区域的相应嵌入。使用图像区域的嵌入和点云区域的嵌入来识别区域对集(set of region pairs)。每个区域对包括表征环境的相同相应地方的相应图像区域和相应点云区域。
6.在一些实施方式中,探测传感器是激光雷达传感器或雷达传感器。
7.在一些实施方式中,相机传感器和探测传感器被安装在载具上。
8.在一些实施方式中,点云中的每个数据点另外定义光脉冲的反射强度,该光脉冲由探测传感器发送并且从环境的表面上的由数据点定义的三维空间位置处的点反射。
9.在一些实施方式中,方法还包括使用区域对集来确定相机传感器和探测传感器是否被准确地校准。
10.在一些实施方式中,方法还包括:获得定义对象在图像中的位置的数据,以及基于(i)对象在图像中的位置和(ii)区域对集,来识别对象在点云中的对应位置。
11.在一些实施方式中,基于(i)对象在图像中的位置和(ii)区域对集,来识别对象在点云中的对应位置包括:识别特定区域对,使得对于每个特定区域对,该区域对的图像区域对应于对象在图像中的位置。基于每个特定区域对的相应点云区域来确定对象在点云中的位置。
12.在一些实施方式中,方法还包括:获得定义对象在点云中的位置的数据,以及基于
(i)对象在点云中的位置和(ii)多个区域对,来识别对象在图像中的对应位置。
13.在一些实施方式中,基于(i)对象在点云中的位置和(ii)区域对集,来识别对象在图像中的对应位置包括:识别特定区域对,使得对于每个特定区域对,该区域对的点云区域对应于对象在点云中的位置。基于每个特定区域对的相应图像区域来确定对象在图像中的位置。
14.在一些实施方式中,方法还包括使用多个区域对将点云投影到与图像对准的二维图像平面上。使用神经网络来处理图像和投影点云,以生成神经网络输出。
15.在一些实施方式中,神经网络输出包括识别对象在环境中的位置的数据。
16.在一些实施方式中,多个图像区域覆盖所述图像。
17.在一些实施方式中,多个点云区域覆盖所述点云。
18.在一些实施方式中,使用图像区域的嵌入和点云区域的嵌入来识别区域对包括:识别嵌入对集,使得每个给定嵌入对包括给定图像区域的嵌入和给定点云区域的嵌入。与嵌入对中的每个相对应的相应区域对被识别,其中,与给定嵌入对相对应的区域对包括与给定嵌入对相对应的给定图像区域和给定点云区域。
19.在一些实施方式中,对于每个嵌入对,至少部分地基于该嵌入对中所包括的给定图像区域的嵌入与给定点云区域的嵌入之间的相应相似性度量来识别嵌入对。
20.在一些实施方式中,使用贪婪最近邻匹配算法来识别嵌入对。
21.在一些实施方式中,使用三重损失目标函数或对比损失目标函数来联合训练视觉嵌入神经网络和形状嵌入神经网络。
22.可以实施本说明书中所描述的主题的特定实施例,以便实现一个或多个以下优点。
23.本说明书中所描述的对准系统可以确定图像(即,由相机生成)与点云(即,由探测传感器(例如,激光雷达传感器)生成)之间的对准。也就是说,对准系统可以确定表征环境的相同地方的图像与点云的相应区域之间的映射。
24.对准系统可以由载具的机载系统使用,例如,用于传感器校准、交叉模态对象定位或对象检测(如下面将更详细描述的)。通过使用对准系统,载具的机载系统可以生成规划载具的未来轨迹的规划决策,并且使载具能够更安全和高效地运行。
25.对准系统可以使用由相应嵌入神经网络生成的图像区域的嵌入和点云区域的嵌入来确定图像与点云之间的对准。通过使用由使用机器学习技术训练的嵌入神经网络所生成的嵌入,在一些情况下,与使用由手工制作的特征(例如,hog、sift或surf特征)组成的嵌入的情况相比,对准系统可以更准确地生成对准。具体地,本说明书中所描述的对准系统使用被优化(即,使用机器学习技术)以实现准确的对准的区域嵌入。相比之下,由手工制作的特征组成的嵌入没有被优化以实现准确的对准,并且因此可能(例如,由于导致不太准确的对准)表现得不如本说明书中所描述的学习区域嵌入。
26.本说明书中所描述的对准系统可以比一些传统系统更快地对准传感器数据,并且在一些情况下,可以比传统系统消耗更少的计算资源。更具体地,为了对准两个传感器数据集,本说明书中所描述的系统确定两个传感器数据集的相应区域的嵌入,然后例如使用最近邻匹配技术来匹配嵌入。相比之下,一些传统系统通过基于表征两个传感器数据集对准得有多好的目标函数迭代地优化定义对准的参数集(例如,旋转或变换参数)来对准两个传
感器数据集。通过迭代地优化目标函数来确定对准可能在计算上要求很高,例如,需要几秒钟或更长时间来对准两个数据集。在实际应用中,例如,在载具的机载系统中,对准数据集时的几秒钟的延迟可能是不可行的,因为数据集到它们被对准时可能已经过时。在一些情况下,本说明书中所描述的系统可以比这些传统系统更快地确定对准,因此可以有效地在更多的实际应用中使用,例如被载具的机载系统使用。
27.对准系统可以用于生成用于训练对象检测神经网络的训练数据,对象检测神经网络被配置为处理点云以生成识别对象在点云中的位置的输出。具体地,可以使用由对准系统生成的对准将对象分割(segmentation)从图像数据传递到对应的点云数据上。以这种方式生成的对点云数据的分割此后可以用于训练对象检测神经网络。在一些情况下,手动分割图像基本上比手动分割点云数据更容易、更快、更准确。因此,通过促进分割从图像数据到点云数据上的传递,对准系统可以简化对用于训练对象检测神经网络的训练数据的生成。
28.本说明书的主题的一个或多个实施例的细节在附图和以下描述中阐述。根据描述、附图和权利要求,本主题的其他特征、方面和优点将变得显而易见。
附图说明
29.图1示出了示例交叉模态对准系统。
30.图2是图像与点云的相应区域之间的映射的示例的图示。
31.图3是载具的示例机载系统的框图。
32.图4示出了用于联合训练视觉嵌入神经网络和形状嵌入神经网络的示例数据流。
33.图5是用于确定表征环境的相同地方的图像与点云的相应区域之间的映射的示例过程的流程图。
34.不同附图中相同的附图标记和名称表示相同的元素。
具体实施方式
35.本说明书描述了一种可以确定表征环境的交叉模态数据之间的“对准”的交叉模态对准系统。例如,对准系统可以确定以下两者之间的对准:(i)表征环境的视觉外观的图像(例如,由相机生成的)与(ii)表征环境的三维(3d)几何形状的点云(例如,由激光雷达或雷达传感器生成)。确定图像与点云之间的对准是指确定表征环境的相同地方的图像与点云的相应区域之间的映射。确定图像与点云之间的对准也可以被称为“配准(register)”图像与点云,或者执行图像与点云之间的“扫描匹配”。由对准系统生成的交叉模态对准可以被载具的机载系统用于各种目的中的任何一种,例如传感器校准、交叉模态对象定位或对象检测。
36.通常,本说明书中所描述的对准系统可以用于确定任何适当的数据集之间的对准。例如,对准系统可以用于确定相同模态的两个数据集(例如,两个图像或两个点云)之间的“模态内”对准。作为另一示例,虽然本说明书主要涉及由载具的机载系统所使用的对准系统,但是该对准系统也可以在各种其他设置中的任何一种中使用。在特定示例中,对准系统可以用于对准患者的两个医学图像,例如,患者的磁共振图像(mri)和计算机断层摄影(ct)图像,或者患者的超声(us)图像和mri图像。
37.下面将更详细地描述这些特征和其他特征。
38.图1示出了示例交叉模态对准系统100。交叉模态对准系统100是实施为一个或多个位置的一个或多个计算机上的计算机程序的系统的示例,其中实施了下面描述的系统、组件和技术。
39.系统100被配置为处理都表征环境的图像102(例如,由相机生成)和点云104(例如,由激光雷达或雷达传感器生成),以确定图像102与点云104之间的“对准”。图像102与点云104之间的对准由表征环境的相同地方的图像102与点云104的相应区域之间的映射来定义。图2示出了图像与点云的相应区域之间的映射的示例。
40.图像102表征环境的视觉外观,并且可以使用任何适当类型的数字相机传感器来捕捉。
41.在一个示例中,图像102可以是由数值的二维(2d)数组表示的黑白图像,其中,该数组的每个分量对应于环境的相应地方。在另一示例中,图像102可以由多个“通道”的集来表示。在该示例中,每个通道可以由数值的相应2d数组来表示,其中,每个通道的每个分量对应于环境的相应地方,并且不同通道的对应分量对应于环境的相同地方。在特定示例中,图像102可以是由红色通道、绿色通道和蓝色通道表示的红绿蓝(rgb)彩色图像。
42.点云104表征环境的3d几何形状,并且可以使用任何适当类型的“探测”传感器(例如,激光雷达传感器或雷达传感器)来捕获。
43.通常,点云104由“数据点”的集合来表示,其中,每个数据点定义环境中的表面上的点的3d空间位置。例如,每个数据点可以由包括相应的x坐标、y坐标和z坐标的向量来表示,这些坐标定义了环境中的表面上的点相对于3d坐标系的3d空间位置。在一个示例中,3d坐标系可以是以安装有探测传感器的载具为中心的欧几里德坐标系。
44.可选地,点云中的每个数据点可以包括附加的“强度”信息,该信息表征例如在与数据点相对应的环境中的3d空间位置处的材料的反射率、纹理或密度。
45.例如,在点云中的数据点中所包括的强度信息可以由光脉冲的反射强度来定义,该光脉冲由激光雷达传感器发送并且在与数据点相对应的3d空间位置处从环境中的表面反射。在该示例中,点云中的每个数据点可以由向量表示,该向量包括:(i)定义环境中的表面上的点的3d空间位置的相应x坐标、y坐标和z坐标,以及(ii)定义在3d空间位置处从环境中的表面反射的光脉冲的反射强度的强度值。
46.系统100包括视觉嵌入神经网络106、形状嵌入神经网络108和匹配引擎110。
47.系统100使用视觉嵌入神经网络106来生成图像102的多个区域中的每个区域的相应嵌入112。图像区域的嵌入是指将图像区域表示为数值的有序集合,例如数值向量。图像的区域是指图像的一部分,例如,被正方形或圆形2d几何区域包围的部分。例如,具有维度为[100,100](即,具有100行和100列)的通道的rgb图像的区域可以由与正方形区域[42:46,91:95]中的像素相对应的每个通道的相应部分(即,其行索引在42与46之间,列索引在91与95之间)给出。图像102中的示例区域由114示出。
[0048]
视觉嵌入神经网络106可以被配置为处理整个图像102,以生成定义图像102的每个区域的相应嵌入112的输出。可替代地,视觉嵌入神经网络106可以被配置为处理各个图像区域以生成图像区域的相应嵌入,而不是一次处理整个图像102。
[0049]
通常,视觉嵌入神经网络106可以具有使其能够生成图像区域的嵌入的任何适当
的神经网络架构。例如,视觉嵌入神经网络106可以包括多个卷积层的集,随后是最终卷积层之后的全连接输出层。
[0050]
系统100使用形状嵌入神经网络108来生成点云104的多个区域中的每个区域的相应嵌入116。点云区域的嵌入是指将点云区域表示为数值的有序集合,例如数值向量,例如由0和1组成的比特向量。点云区域的嵌入也可以被称为例如点云区域的特征向量或特征描述符。点云的区域是指(例如,与被包围在立方体或球形3d几何区域中的3d空间位置相对应的)来自点云的数据点的集合。例如,其中每个数据点对应于由x坐标、y坐标和z坐标定义的3d空间位置的点云的区域可以由与被立方体区域[14:18,2:6,44:48]包围的3d空间位置(即,其中x坐标值在14与18之间,y坐标值在2与6之间,z坐标值在44与48之间)相对应的数据点的集合给出。点云104中的示例区域由118示出。
[0051]
形状嵌入神经网络108可以被配置为处理整个点云104,以生成定义点云104的每个区域的相应嵌入116的输出。可替代地,形状嵌入神经网络108可以被配置为处理各个点云区域以生成点云区域的相应嵌入,而不是一次处理整个点云104。
[0052]
通常,形状嵌入神经网络108可以具有使其能够生成点云区域的嵌入的任何适当的神经网络架构。例如,形状嵌入神经网络108可以具有pointnet架构(即,如参考以下文献所描述的:c.r.qi,h.su,k.mo,and l.j.guibas,“pointnet:deep learning on points sets for 3d classification and segmentation”,2017,the ieee conference on computer vision and pattern recognition(cvpr))、pointnet 架构(即,如参考以下文献所描述的:c.r.qi,l.yi,h.su,and l.j.guibas,“pointnet :deep hierarchical feature learning on point sets in a metric space”,2017,advances in neural information processing systems(nips))、或voxnet架构(即,如参考以下文献所描述的:d.maturana and s.scherer,“voxnet:a 3d convolutional neural network or real-time object recognition”,2015,ieee/rsj international conference of intelligent robots and systems(iros))。
[0053]
视觉嵌入神经网络106和形状嵌入神经网络108使用鼓励两种属性的目标函数来联合训练。
[0054]
第一,对于表征环境的相同地方的图像区域和点云区域,视觉嵌入神经网络106和形状嵌入神经网络108应该(例如,根据适当的数字相似性度量)生成“相似”的相应嵌入。
[0055]
第二,对于表征环境的不同地方(或完全不同的环境)的图像区域和点云区域,视觉嵌入神经网络106和形状嵌入神经网络108应该(例如,根据适当的数字相似性度量)生成“不相似”的相应嵌入。
[0056]
例如,视觉嵌入神经网络106和形状嵌入神经网络108可以使用例如三重损失目标函数或对比损失目标函数来联合训练。
[0057]
参考图4更详细地描述了用于联合训练视觉嵌入神经网络106和形状嵌入神经网络108的示例过程。
[0058]
系统100可以生成任何适当数量的图像区域和点云区域的相应嵌入。以下是几个示例。
[0059]
例如,系统100可以为覆盖图像102的图像区域网格中的每个图像区域以及为覆盖点云104的点云区域网格中的每个点云区域生成相应的嵌入。在特定示例中,图像区域可以
由不重叠的2d矩形图像区域组成,其中,图像102中的每个像素被包括在图像区域中的恰好一个图像区域中。在另一特定示例中,点云区域可以由不重叠的3d矩形点云区域组成,点云104中的每个数据点被包括在点云区域中的恰好一个点云区域中。
[0060]
作为另一示例,系统可以为覆盖图像102的适当子集的图像区域网格中的每个图像区域以及为覆盖点云104的适当子集的点云区域网格中的每个点云区域生成相应的嵌入。在特定示例中,图像区域可以由不重叠的2d矩形图像区域组成,其中,在图像102中描绘的对象中所包括的每个像素被包括在图像区域中的恰好一个图像区域中。在另一特定示例中,点云区域可以由不重叠的3d矩形点云区域组成,其中,由点云104表征的对象中所包括的每个数据点被包括在点云区域中的恰好一个点云区域中。
[0061]
作为另一示例,系统可以只为图像和点云中具有满足预定阈值的“兴趣分数”的区域生成嵌入。系统可以基于例如图像区域中的边缘、角落、斑点、脊线或其组合的存在来确定图像区域的兴趣分数。系统可以基于例如点云区域的复杂性来确定点云区域的兴趣分数,例如以下两者之间的残差之和:(i)该区域中所包括的点,以及(ii)拟合到该区域中所包括的点的线性表面。通常,系统可以被配置成为图像区域和点云区域生成嵌入,该嵌入表征可以在图像与点云之间有效匹配的环境的独特特征。例如,系统可以避免为与没有道路标记的平坦道路相对应的图像区域或点云区域生成嵌入。作为另一示例,系统可以确定应该为与载具或行人的一部分相对应的图像区域和点云区域生成嵌入。
[0062]
匹配引擎110被配置为处理图像区域的嵌入112和点云区域的嵌入116,以识别嵌入对120的集合。每个嵌入对120指定:(i)图像区域的嵌入112和(ii)点云区域的嵌入116。
[0063]
匹配引擎110尝试以最大化(或近似最大化)每个嵌入对120中所包括的相应嵌入之间的相似性度量的方式来识别嵌入对120。相似性度量可以是例如l2相似性度量、余弦相似性度量或任何其他适当的相似性度量。
[0064]
在特定示例中,匹配引擎110可以使用“贪婪”最近邻匹配算法来顺序地将每个图像区域嵌入112匹配到相应的点云区域嵌入116。对于每个给定的图像区域嵌入112,匹配引擎110从当前未被匹配的(unmatched)点云区域嵌入当中识别与给定的图像区域嵌入最相似(即,根据相似性度量)的对应的点云区域嵌入116。当每个图像区域嵌入被匹配到对应的点云区域嵌入时,或者当没有未被匹配的点云区域嵌入剩余时,贪婪最近邻匹配算法可以终止。
[0065]
更通常地,匹配引擎110可以使用任何适当的匹配算法来识别嵌入对120。最近邻匹配算法的一些示例参考例如以下文献进行了描述:m.muja,d.g.lowe,“fast approximate nearest neighbors with automatic algorithmconfiguration”,2009,visapp international conference on computer vision theory and applications。
[0066]
系统100使用由匹配引擎110识别的每个嵌入对120来识别指定与嵌入对120相对应图像区域和点云区域的相应区域对122。以这种方式,系统100识别区域对122的集,每个区域对122指定被预测为表征环境的相同地方的图像区域和点云区域。也就是说,区域对122定义被预测为表征环境的相同地方的图像102与点云104的相应区域之间的映射。
[0067]
例如,区域对122可以指定都被预测为表征环境中的相同对象或相同对象的相同部分的图像102的区域和点云104的区域。环境中的对象可以是例如人、动物、汽车、路标等。
[0068]
由区域对122定义的对应的图像区域与点云区域之间的映射可以用于各种目的中
的任何一种。参考图3描述了在载具的机载系统中使用交叉模态对准系统100的几个示例。
[0069]
图2是图像202与点云204的相应区域(例如,可以由参考图1描述的交叉模态对准系统100确定的那种)之间的映射的示例的图示200。在该示例中,图像区域206-a和206-b分别被映射到点云区域208-a和208-b(反之亦然)。也就是说,图像区域206-a和点云区域208-a形成第一“区域对”,并且图像区域206-b和点云区域208-b形成第二“区域对”(如参考图1所述)。
[0070]
图3是载具302的示例机载系统300的框图。机载系统300由硬件组件和软件组件组成,这些硬件组件和软件组件中的一些或全部在物理上位于载具302上。如下文将更详细描述的,机载系统300可以将对准系统100(如参考图1所述)用于各种目的中的任何一种。
[0071]
在一些情况下,机载系统300可以做出完全自主或部分自主的驾驶决策(即,独立于载具302的驾驶员做出的驾驶决策),向载具302的驾驶员呈现信息以辅助驾驶员安全操作载具,或者两者兼有。例如,响应于确定另一载具不太可能为载具302让路,机载系统300可以自主地应用载具302的刹车或者另外自主地改变载具302的轨迹,以防止载具302与该另一载具之间的碰撞。作为另一示例,响应于确定另一载具不太可能为载具302让路,机载系统300可以向载具302的驾驶员呈现带有调整载具302的轨迹以避免与该另一载具碰撞的指令的警告消息。
[0072]
尽管图3中的载具302被描绘为汽车,并且本文档中的示例是参考汽车来描述的,但是通常载具302可以是任何种类的载具。例如,除了汽车之外,载具302可以是船只或飞机。此外,机载系统300可以包括除了图3中描绘的组件之外的组件(例如,碰撞检测系统或导航系统)。
[0073]
机载系统300包括使机载系统300能够“看见”载具302附近的环境的传感器系统304。更具体地,传感器系统304包括多个不同模态的传感器,具体而言,相机传感器和探测传感器(例如,激光雷达传感器、雷达传感器或两者)。
[0074]
传感器系统304连续地(即,在多个时间点中的每个时间点处)生成表征载具附近的环境的视觉外观的图像306和表征载具附近的环境的3d几何形状的点云308。
[0075]
对准系统100可以处理由传感器系统304生成的图像306和点云308,以确定被预测为表征环境的相同地方的图像306与点云308的相应区域之间的映射。对准系统100的输出可以由载具302上的各种其他系统中的任何一种(例如,校准系统310、定位系统312和预测系统314)来使用,这将在下面更详细地描述。
[0076]
校准系统310被配置为维护表征安装在载具302上的一些或所有传感器的位置和朝向的校准数据。例如,对于安装在载具302上的每个传感器,校准系统310可以维护包括以下两者的校准数据:(i)定义传感器在载具上的位置的x坐标、y坐标和z坐标的3d向量,以及(ii)定义传感器的朝向的x坐标、y坐标和z坐标的3d向量(即,传感器指向的方向)。
[0077]
校准系统310可以连续地(即,在多个时间点中的每个时间点处)检查校准数据的当前准确性。由于传感器地位置和朝向的变化,校准数据可能随时间推移而变得不准确。例如,由于温度变化导致载具的安装有传感器的部分轻微变形,由于对象(例如,树枝)擦过传感器,或者由于载具速度的突然改变,传感器的位置和朝向可能随时间推移而改变。
[0078]
校准系统310可以使用对准系统100的输出来交叉检查相机传感器和探测传感器(例如,激光雷达或雷达传感器)的当前校准数据的准确性。例如,校准系统310可以使用对
准系统的输出来确定变换(例如,平移和旋转变换)的参数,该变换对准图像(由相机传感器生成)和点云(由探测传感器生成)的匹配区域的中心位置。如果对准系统的输出指示图像的区域和点云的区域对应于环境的相同地方,则图像的区域被称为“匹配”点云的区域。校准系统310可以使用任何适当的拟合方法(例如,具有随机采样一致性(ransac)的最小二乘拟合方法,或者鲁棒的非线性最小二乘拟合方法)来确定变换的参数。
[0079]
在确定从图像到点云(或者反之亦然)的变换的参数之后,校准系统310可以将变换应用于表征相机传感器的位置和朝向的校准参数。对相机传感器的校准参数应用变换的结果定义了对表征探测传感器的位置和朝向的校准参数的估计。响应于确定对探测传感器的校准参数的估计与维护的探测传感器的校准参数相差至少阈值量,校准系统可以确定探测传感器和相机传感器中的一个或两个被偏离校准(miscalibrated)。响应于确定传感器被偏离校准,机载系统可以例如警告载具驾驶员,或者使载具靠边停车。
[0080]
定位系统312可以处理图像306、点云308以及定义对象在模态中的一个模态(即,图像306或点云308)的传感器数据中的位置的数据,以确定相同对象在另一模态的传感器数据中的位置。
[0081]
例如,定位系统312可以处理图像306、点云308和定义对象在图像306中的位置的数据,以生成定义相同对象在点云308中的位置的数据。
[0082]
作为另一示例,定位系统312可以处理图像306、点云308和定义对象在点云308中的位置的数据,以生成定义相同对象在图像306中的位置的数据。
[0083]
对象在图像或点云中的位置可以以任何适当的方式来表示。例如,对象在图像中的位置可以由在图像中包围对象的2d边界框来表示。作为另一示例,对象在点云中的位置可以由在点云中包围对象的3d边界框来表示。
[0084]
定位系统312可以使用对准系统100基于对象在图像中的位置来识别对象在点云中的位置。例如,定位系统312可以使用对准系统100来生成:(i)图像的覆盖图像中的对象的一个或多个区域的嵌入,以及(ii)点云中的覆盖整个点云的区域网格的嵌入。
[0085]
定位系统312可以例如通过将图像区域的嵌入匹配到对应的点云区域的嵌入,将覆盖图像中的对象的图像区域映射到对应的点云区域,例如,如参考图1所述。此后,定位系统312可以基于由覆盖图像中的对象的图像区域所映射到的点云区域来确定对象在点云中的位置。
[0086]
类似地,定位系统312还可以使用对准系统100基于对象在点云中的位置来识别对象在图像中的位置。
[0087]
机载系统300可以在各种情况中的任何一种情况下使用定位系统312。例如,当另一载具在载具302的激光雷达传感器的范围之外时,机载系统300可以使用相机传感器数据来跟踪该另一载具。一旦另一载具进入载具302的激光雷达传感器的范围,机载系统300可以使用定位系统312来确定该另一载具在由激光雷达传感器生成的点云数据中的位置。已经在相机传感器数据和激光雷达传感器数据中都定位了另一载具的情况下,机载系统300可以使用两种模态的传感器数据,例如,以预测该另一载具的行为。
[0088]
预测系统314被配置为处理由传感器系统304生成的图像306和点云308,例如,以检测和识别载具302附近的对象(例如,载具、行人、路标等)。预测系统314可以在例如使用一个或多个神经网络对其处理之前使用对准系统100来对准由传感器系统生成的图像数据
和点云数据。
[0089]
在一个示例中,预测系统314可以使用对准系统100来生成被预测为表征环境的相同地方的图像306与点云308的相应区域之间的映射。此后,预测系统314可以使用该映射将点云308投影到与图像306对准的2d图像平面上,然后将投影的点云308和图像306提供给对象检测神经网络。
[0090]
在一些情况下,表征相机传感器和探测传感器的相对位置和朝向的数据可以用于在不使用对准系统100的情况下近似地对准由相机传感器生成的图像和由探测传感器生成的点云。然而,基于生成图像和点云的相机传感器和探测传感器的相对位置来对准图像和点云可能是不准确的,特别是在载具运动时。更具体地,相机传感器和探测传感器经常在不同的时间点(例如,相隔0.2秒)处生成数据。在相机传感器生成图像时与探测传感器生成点云时之间经过的持续时间内,载具可以相对于环境移动。在该情形下,尝试基于相机传感器和探测传感器的相对位置和朝向来对准图像和点云可能导致不准确的对准。另一方面,对准系统100可以在载具302运动时准确地对准图像和点云,即使探测传感器和相机传感器的相对位置和朝向不准确或未知。
[0091]
除了由载具的机载系统使用之外(例如,如参考图3所述),对准系统还可以在各种其他应用中使用。例如,对准系统可以用于生成用于训练对象检测神经网络的训练数据,对象检测神经网络被配置为处理点云以生成识别对象在点云中的位置的输出。手动分割点云中的对象以用作用于训练对象检测神经网络的训练数据可能是困难的、耗时的和昂贵的。对准系统可以避免这些挑战,因为它可以用于将分割从图像(其可以容易地获得)传递到对应的点云数据上,其随后可以用于训练对象检测神经网络。
[0092]
图4示出了用于联合训练视觉嵌入神经网络106和形状嵌入神经网络108的示例数据流400。训练视觉嵌入神经网络106和形状嵌入神经网络108是指确定它们相应的模型参数402的训练值。
[0093]
视觉嵌入神经网络106和形状嵌入神经网络108在包括多个训练示例的训练数据404的集上进行训练。每个训练示例包括图像区域和点云区域。一些训练示例是“正”训练示例,其中,图像区域和点云区域表征环境的相同地方。其余的训练示例是“负”训练示例,其中,图像区域和点云区域表征环境的不同地方(或者完全不同的环境)。
[0094]
训练数据404的训练示例可以以各种方式中的任何一种来生成。
[0095]
例如,可以通过使用相对于彼此具有已知位置和朝向的相机传感器和探测传感器同时捕获表征环境的图像和点云来生成正训练示例。传感器的相对位置和朝向可以用于对准图像和点云,并且可以通过从对准的传感器数据中提取成对的对应区域来生成一个或多个训练示例。
[0096]
作为另一示例,正训练示例可以通过人工注释来手动生成,其中,人手动地注释表征环境的相同地方的对应的图像区域和点云区域。
[0097]
作为另一示例,可以通过随机地配对表征不同环境的地方的图像区域和点云区域来生成负训练示例。
[0098]
在多次训练迭代的每一次,从训练数据404中选择(例如,随机地)一个或多个训练示例406的“批次”(即,集)。
[0099]
对于批次中的每个训练示例406,视觉嵌入神经网络106根据模型参数402的当前
值来处理来自训练示例406的图像区域408,以生成图像区域408的嵌入412。类似地,形状嵌入神经网络108根据模型参数402的当前值来处理来自训练示例406的点云区域410,以生成点云区域410的嵌入414。
[0100]
来自当前批次的训练示例406的图像区域408和点云区域410的嵌入被用于评估目标函数416。目标函数416的梯度被计算(例如,使用反向传播),并且此后被用于更新模型参数402的当前值(例如,使用rmsprop或adam梯度下降优化过程)。
[0101]
如前所述,当且仅当图像区域和点云区域表征环境的相同地方时,目标函数416广泛地鼓励视觉嵌入神经网络106和形状嵌入神经网络108生成图像区域和点云区域的相似嵌入。例如,目标函数可以是三重损失目标函数或对比损失目标函数。
[0102]
可以训练视觉嵌入神经网络106和形状嵌入神经网络108的模型参数402,直到满足训练终止标准,例如,当已经执行了预定次数的训练迭代时。模型参数402的训练值可以通过任何适当的有线或无线连接被发送到载具的机载系统(例如,如参考图3所述)。
[0103]
图5是用于确定表征环境的相同地方的图像与点云的相应区域之间的映射的示例过程500的流程图。为了方便起见,过程500将被描述为由位于一个或多个位置的一个或多个计算机的系统来执行。例如,根据本说明书适当编程的交叉模态对准系统(例如,图1的交叉模态对准系统100)可以执行过程500。
[0104]
系统获得图像区域和点云区域(502)。图像由相机传感器生成,并且表征环境的视觉外观。点云由探测传感器生成,并且表征环境的3d几何形状。图像可以以任何适当的格式来表示,例如,作为黑白图像或彩色图像。点云可以被表示为数据点的集合,其中,每个数据点定义环境中的表面上的点的相应3d空间位置。可选地,点云中的每个数据点可以包括附加的“强度”信息,该信息表征例如在与数据点相对应的环境中的3d空间位置处的材料的反射率、纹理或密度。
[0105]
系统使用视觉嵌入神经网络来处理图像的多个区域中的每个区域,以生成图像区域中的每个的相应嵌入(504)。每个图像区域可以对应于由任何适当形状的2d边界区域(例如,2d边界框)包围的图像的一部分。系统可以为覆盖整个图像的图像区域网格中的每个图像区域或者为覆盖图像的一部分(例如,图像的描绘对象的一部分)的图像区域集中的每个图像区域生成相应的嵌入。
[0106]
系统使用形状嵌入神经网络来处理点云的多个区域中的每个区域,以生成点云区域中的每个的相应嵌入(506)。每个点云区域可以对应于点云的与由任何适当形状的3d空间边界区域(例如,3d边界框)包围的空间位置相对应的一部分(即,点云中的数据点集)。系统可以为覆盖整个点云的点云区域网格中的每个点云区域或者为覆盖点云的一部分(例如,点云的与对象相对应的一部分)的点云区域集中的每个点云区域生成相应的嵌入。
[0107]
系统使用图像区域的嵌入和点云区域的嵌入来识别多个区域对的集(508)。每个区域对指定表征环境的相同地方的图像区域和点云区域。为了识别区域对,系统使用匹配算法(例如,最近邻匹配算法)来识别多个嵌入对的集,其中的每个嵌入对指定图像区域的嵌入和点云区域的嵌入。系统使用每个嵌入对来识别指定与嵌入对相对应的图像区域和点云区域的相应区域对。区域对定义了被预测为表征环境的相同地方的图像与点云的相应区域之间的映射。
[0108]
本说明书结合系统和计算机程序组件使用术语“被配置”。对于一个或多个计算机
的系统,被配置为执行特定的操作或动作意味着系统已经在其上安装了软件、固件、硬件或它们的组合,这些软件、固件、硬件或它们的组合在操作中使得系统执行这些操作或动作。对于一个或多个计算机程序,被配置为执行特定的操作或动作意味着一个或多个程序包括指令,当由数据处理装置执行时,该指令使得该装置执行这些操作或动作。
[0109]
本说明书中所描述的主题和功能操作的实施例可以在数字电子电路中、在有形体现的计算机软件或固件中、在包括本说明书中公开的结构及其结构等同物的计算机硬件中、或者在它们中的一个或多个的组合中实施。本说明书中所描述的主题的实施例可以被实施为一个或多个计算机程序,即编码在有形的非暂时性存储介质上的计算机程序指令的一个或多个模块,以用于由数据处理装置执行或控制数据处理装置的操作。计算机存储介质可以是机器可读存储设备、机器可读存储基底、随机或串行存取存储器设备或它们中的一个或多个的组合。可替代地或附加地,程序指令可以被编码在人工生成的传播信号(例如,机器生成的电、光或电磁信号)上,这些信号被生成来对信息编码,以传输到合适的接收器装置供数据处理装置执行。
[0110]
术语“数据处理装置”是指数据处理硬件,并且涵盖用于处理数据的各种装置、设备和机器,包括例如可编程处理器、计算机、或者多个处理器或计算机。该装置还可以是或还包括专用逻辑电路,例如,fpga(现场可编程门阵列)或asic(专用集成电路)。除了硬件之外,该装置还可以可选地包括为计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、或者它们中的一个或多个的组合的代码。
[0111]
计算机程序也可以被称为或描述为程序、软件、软件应用、应用、模块、软件模块、脚本或代码,可以用任何形式的编程语言来编写,包括编译或解释语言,或者声明性或过程性语言;并且它可以以任何形式来部署,包括作为独立程序或作为模块、组件、子例程或适合在计算环境中使用的其他单元。程序可以但不必对应于文件系统中的文件。程序可以被存储在保存其他程序或数据的文件的一部分(例如,标记语言文档中所存储的一个或多个脚本)中,被存储在专用于所讨论的程序的单个文件中,或者被存储在多个协同文件(例如,存储一个或多个模块、子程序或部分代码的文件)中。计算机程序可以被部署为在一个计算机上执行,或者在位于一个站点或分布在多个站点并通过数据通信网络互连的多个计算机上执行。
[0112]
在本说明书中,术语“引擎”被广泛用于指代被编程为执行一个或多个特定功能的基于软件的系统、子系统或过程。通常,引擎将被实施为安装在一个或多个位置的一个或多个计算机上的一个或多个软件模块或组件。在一些情况下,一个或多个计算机将专用于特定的引擎;在其他情况下,可以在相同的一个或多个计算机上安装和运行多个引擎。
[0113]
本说明书中所描述的过程和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程计算机来执行,以通过对输入数据进行操作并生成输出来执行功能。这些过程和逻辑流程也可以由专用逻辑电路(例如,fpga或asic)或者由专用逻辑电路和一个或多个编程计算机的组合来执行。
[0114]
适合于执行计算机程序的计算机可以基于通用或专用微处理器或两者,或者任何其他种类的中央处理单元。通常,中央处理单元将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行或运行指令的中央处理单元以及存储指令和数据的一个或多个用于存储器设备。中央处理单元和存储器可以由专用逻辑电路来补
充,或者包含在专用逻辑电路中。通常,计算机还将包括或可操作地耦合到用于存储数据的一个或多个大容量存储设备(例如,磁盘、磁光盘或光盘),以从其接收数据,或向其传输数据,或两者兼有。然而,计算机不需要有这样的设备。此外,计算机可以嵌入到另一设备中,例如,移动电话、个人数字助理(pda)、移动音频或视频播放器、游戏控制台、全球定位系统(gps)接收器或便携式存储设备(例如,通用串行总线(usb)闪存驱动器),仅举几例。
[0115]
适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,例如,包括:半导体存储器设备,例如eprom、eeprom和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;以及cd-rom和dvd-rom盘。
[0116]
为了提供与用户的交互,本说明书中所描述的主题的实施例可以在计算机上实施,该计算机具有用于向用户显示信息的显示设备(例如,crt(阴极射线管)或lcd(液晶显示)监视器)以及用户可以通过其向计算机提供输入的键盘和定点设备(例如,鼠标或轨迹球)。也可以使用其他种类的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感官反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声音输入、语音输入或触觉输入。此外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户进行交互;例如,通过响应于从网络浏览器接收的请求将网页传送到用户设备上的网络浏览器。此外,计算机可以通过向个人设备(例如,正运行消息应用的智能手机)传送文本消息或其他形式的消息并从用户接收响应消息来与用户进行交互。
[0117]
用于实施机器学习模型的数据处理装置还可以包括例如用于处理机器学习训练或生产的公共和计算密集型部分(即推理、工作负载)的专用硬件加速器单元。
[0118]
机器学习模型可以使用机器学习框架(例如,tensorflow框架、微软认知工具包框架、apache singa框架或apache mxnet框架)来实施和部署。
[0119]
本说明书中所描述的主题的实施例可以在计算系统中实施,该计算系统包括后端组件(例如,作为数据服务器),或者包括中间件组件(例如,应用服务器),或者包括前端组件(例如,具有图形用户界面、网络浏览器或用户可以通过其与本说明书中所描述的主题的实施方式进行交互的应用的客户端计算机),或者包括一个或多个这样的后端组件、中间件组件或前端组件的任意组合。系统的组件可以通过任何形式或介质的数字数据通信(例如,通信网络)来互连。通信网络的示例包括局域网(lan)和广域网(wan)(例如,互联网)。
[0120]
计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器的关系是借助运行在各自计算机上并且彼此之间具有客户端-服务器关系的计算机程序而产生的。在一些实施例中,服务器将数据(例如,html页面)发送到用户设备,例如,为了向与充当客户端的设备交互的用户显示数据和从其接收用户输入。在用户设备处生成的数据(例如,用户交互的结果)可以在服务器处从该设备接收。
[0121]
虽然本说明书包含许多具体的实施细节,但是这些不应被解释为对任何发明的范围或对所要求保护的范围的限制,而是对特定发明的特定实施例可能特有的特征的描述。本说明书中在分开的实施例的上下文中描述的某些特征也可以在单个实施例中以组合实施。相反,在单个实施例的上下文中描述的各种特征也可以在多个实施例中分开实施或者以任何合适的子组合实施。此外,尽管特征可以在上面被描述为在某些组合中起作用,并且
甚至最初被这样要求保护,但是在一些情况下,来自所要求保护的组合的一个或多个特征可以从该组合中删除,并且所要求保护的组合可以指向子组合或子组合的变体。
[0122]
类似地,虽然操作以特定次序在附图中进行描述并且在权利要求中进行叙述,但是这不应被理解为要求以所示的特定次序或顺序次序来执行这些操作,或者要求执行所有示出的操作,以获得期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分离不应该被理解为在所有实施例中都需要这种分离,并且应该理解,所描述的程序组件和系统通常可以集成在单个软件产品中或者封装到多个软件产品中。
[0123]
已经描述了主题的特定实施例。其他实施例在以下权利要求的范围内。例如,权利要求中列举的动作可以以不同的次序来执行,并且仍然获得期望的结果。作为一个示例,附图中描述的过程不一定需要所示的特定次序或顺序次序来获得期望的结果。在一些情况下,多任务和并行处理可能是有利的。
再多了解一些

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

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

相关文献