首页 / 专利库 / 地基 / 基础 / 根据二维图像和点云数据生成三维边界框

根据二维图像和点数据生成三维边界框

阅读:600发布:2020-05-08

专利汇可以提供根据二维图像和点数据生成三维边界框专利检索,专利查询,专利分析的服务。并且根据二维图像和点 云 确定三维边界框。可以传递与图像相关联的 特征向量 和与点云相关联的特征向量通过神经网络,以确定三维边界框的参数。还可以确定和考虑与点云中的每个点相关联的特征向量,以在逐点 基础 上生成三维边界框的估计。,下面是根据二维图像和点数据生成三维边界框专利的具体信息内容。

1.一种用于估计三维边界框的系统,所述系统包括非暂时性计算机可读介质,所述介质包括指令,当所述指令由一个或多个处理器执行时,所述指令将使所述系统执行以下操作:
接收从图像捕获设备捕获的图像;
检测所述图像中的对象;
剪裁所述图像,以形成包括所述对象的剪裁图像;
接收与所述对象相关联的点数据;
确定与所述点云数据相关联的第一特征向量,所述第一特征向量包括几何特征向量;
确定与所述剪裁图像相关联的第二特征向量,所述第二特征向量包括外观特征向量;
将所述第一特征向量和所述第二特征向量传递到神经网络中;以及
从所述神经网络接收描述与所述对象相关联的三维边界框的坐标。
2.根据权利要求1所述的系统,其中,所述指令还使所述系统执行以下操作:
确定多个第三特征向量,所述多个第三特征向量中的第一个与所述点云数据中的第一点相对应,以及所述多个第三特征向量中的第二个与所述点云数据中的第二点相对应;
将所述多个第三特征向量与多个第一特征向量和多个第二特征向量一起传递到所述神经网络中;
针对所述第一点确定第一组偏移量和第一置信度分数,所述第一组偏移量对应于所述三维边界框的相对于所述第一点的第一估计位置;以及
针对所述第二点确定第二组偏移量和第二置信度分数,所述第二组偏移量对应于所述三维边界框的角相对于所述第二点的第二估计位置,
其中,当所述第一置信度分数高于所述第二置信度分数时,所述系统接收与所述第一估计位置相对应的坐标,并且当所述第二置信度分数高于所述第一置信度分数时,所述系统接收与所述第二估计位置相对应的坐标。
3.根据权利要求1所述的系统,其中,所述指令使所述系统从被配置为处理原始点云数据的点云神经网络的处理层中提取所述第一特征向量,并且其中,所述指令使所述系统从残差学习神经网络中提取所述第二特征向量。
4.根据权利要求1所述的系统,其中:
所述神经网络包括一个或多个完全连接的层;
所述图像捕获设备包括被配置为捕获RGB图像的相机;
传感器包括LIDAR传感器或RADAR传感器;以及
来自所述传感器的点云数据和RGB图像是对齐的。
5.根据权利要求1所述的系统,其中,所述指令还使所述系统通过将所述点云数据转换成原点,来归一化所述点云数据。
6.根据权利要求1所述的系统,其中,所述坐标包括八个点,所述八个点中的每个点与所述三维边界框的相应角相关联。
7.根据权利要求2所述的系统,其中,使用识别出点是在三维边界框内还是在三维边界框外的数据集,以受监督的方式训练所述第一神经网络。
8.根据权利要求2所述的系统,其中,使用包括所述边界框的回归损失的边界框损失函数,来训练所述第一神经网络。
9.根据权利要求2所述的系统,其中,所述指令还使所述系统执行以下操作:
确定与所述第一点相关联的所述剪裁图像的第一部分;以及
确定与所述第二点相关联的所述剪裁图像的第二部分,
其中,至少部分使用双线性插值,确定所述第一部分或所述第二部分中的至少一个。
10.一种用于估计环境中的对象的三维边界框的计算机实现的方法,所述计算机实现的方法包括:
从图像捕获设备接收所述环境的图像;
接收与所述环境相关联的点云数据,所述点云数据包括多个点;
检测所述图像中的对象;
剪裁所述图像,以形成包括所述对象的图像的剪裁图像;
将所述剪裁图像输入到第一神经网络;
将所述点云输入到第二神经网络;
从所述第一神经网络中提取与所述剪裁图像相关联的外观特征向量;
从所述第二神经网络中提取与所述点云数据相关联的全局几何特征向量;
从所述第二神经网络中提取多个逐点几何特征向量,单个的逐点几何特征向量与多个点中的单点相关联;
将所述外观特征向量、所述全局几何特征向量和所述多个逐点几何特征向量输入到第三神经网络中;以及
从所述第三神经网络接收与所述对象的三维边界框相关联的信息。
11.根据权利要求10所述的计算机实现的方法,其中,接收与所述三维边界框相关联的信息包括:接收相对于所述点云中的点的多个位移,所述多个位移对应于所述三维边界框的角。
12.根据权利要求10所述的计算机实现的方法,其中,所述第三神经网络针对所述点云中的每个点,确定多个偏移量和置信度分数,其中,所述偏移量包括从所述三维边界框的估计角相对于相应点的位移,其中,接收所述三维边界框包括:接收与具有最高置信度分数的点相关联的参数。
13.根据权利要求10所述的计算机实现的方法,其中,使用包括所述边界框的回归损失的边界框损失函数,来训练所述第三神经网络。
14.根据权利要求10所述的计算机实现的方法,其中,使用点是在三维边界框内还是在三维边界框外的指示,以受监督的方式训练所述第三神经网络。
15.根据权利要求10所述的计算机实现的方法,其中,将所述图像外观特征向量、所述全局几何特征向量和所述多个逐点几何特征向量输入到第三神经网络中包括:将每个单个的逐点几何特征向量与所述全局几何特征向量连结在一起。

说明书全文

根据二维图像和点数据生成三维边界框

[0001] 要求优先权
[0002] 本PCT国际申请要求于2017年10月30日递交的美国专利申请号15/797,573、以及于2017年9月22日递交的美国临时申请号62/562,193的优先权的权益,该两个专利申请的全部内容通过引用并入本文中。

背景技术

[0003] 多种应用需要环境中存在的三维对象的信息。例如,各种自主系统(例如,无人驾驶车辆和无人机)利用对象的三维数据来避免碰撞和避障。为了有效地在三维环境中导航,这样的自主系统需要有关障碍物的信息,例如包括有关障碍物的大小和定位的信息。此外,这些系统可能需要估计此类对象与环境的交互方式。三维对象的一种这样的表示形式就是三维边界框。三维边界框可以是由八个定义的三维对象的简单表示,并且三维对象具有位置、方位、长度、宽度和高度。
[0004] 附图简单说明
[0005] 图1示出了环境、与该环境相关联的图像数据和点云数据、以及该环境中围绕对象的三维边界框的示例;
[0006] 图2是示例性过程的图形表示,二维图像和点云按照该过程通过神经网络,以确定三维边界框的参数;
[0007] 图3是另一示例性过程的图形表示,二维图像和点云按照该过程通过神经网络,以确定三维边界框的参数;
[0008] 图4描绘了表示用于根据二维图像和点云数据确定三维边界框的一个或多个过程的流程图
[0009] 图5描绘了表示用于根据二维图像和点云数据确定三维边界框的一个或多个附加过程的流程图;以及
[0010] 图6描绘了可用于根据二维图像和点云数据确定三维边界框的示例性计算机化系统。
[0011] 详细的说明
[0012] 以下详细描述针对用于估计表示环境中的对象的三维边界框的技术。存在各种需要环境中存在的对象的空间信息的应用。举个简单的例子,许多自主系统(例如,半自主和全自主驾驶汽车自主无人机等)需要对象在其环境中的位置、方位和维度,以便执行跟踪、导航、避免碰撞等。
[0013] 自主驾驶车辆系统可包括用于检测、跟踪和识别对象和/或对象属性的不同类型传感器的阵列。例如,传感器(例如,LIDAR和RADAR)、超声换能器深度相机等可以提供关于环境中的对象的三维信息,而传感器(例如,常规相机)可以提供有关环境的二维信息。例如,LIDAR系统可以具有光发射器和光传感器,其中,光发射器包括一个或多个激光器,这些激光器将高度聚焦的光导向对象或表面,该对象或表面将光反射回到光传感器。LIDAR系统的测量可以表示为三维LIDAR数据,其具有对应于由LIDAR系统捕获的位置或距离的坐标(例如,笛卡尔坐标、极坐标等)。例如,LIDAR数据可以包括点云数据,该点云数据包括环境中的多个点。在某些实例中,LIDAR传感器可以在很短的时间内生成大量的距离测量值(例如,每0.1秒1000-100000个距离测量值)。类似地,已知RADAR系统会生成有关环境中3D对象或特征的点云数据。相反,图像捕获设备可以提供关于环境的2D图像数据,例如RGB图像数据、灰度图像数据或其他。
[0014] 在本公开的实施方式中,例如来自LIDAR系统或RADAR系统的点云数据、和2D图像数据可用于在自主驾驶车辆的环境中创建对象的三维表示。三维表示的一个示例是三维边界框。三维边界框可以是包围对象的最小体积的长方体。三维边界框提供有关其所包括的对象的空间定位、方位以及大小的信息。例如,自主系统可以将该信息用于跟踪、导航和避免碰撞。
[0015] 根据本公开的实施例,将机器学习算法应用于图像数据和点云数据,以估计与环境中的一个或多个对象相关联的三维边界框的参数。例如,可以将与图像数据相关联的第一特征向量(例如,与对应于感兴趣的对象的剪裁图像相关联)、以及与点云数据相关联的第二特征向量输入到机器学习算法。机器学习算法可以输出三维边界框的参数。参数可以包括坐标系中的八个点,这八个点代表三维边界框的八个角。用于恢复参数的示例性机器学习算法是人工神经网络(ANN),它可以是卷积神经网络(CNN)。
[0016] 在一些实施方式中,可以从残差网络中提取与图像数据相关联的特征向量,和/或可以从被配置为处理点云数据的深度神经网络中提取与点云数据相关联的特征向量。例如,在通过另一机器学习算法之前,可以将与图像数据相关联的特征向量和与点云数据相关联的特征向量连结在一起(concatenated)。
[0017] 同样在本公开的实施方式中,可以考虑逐点数据来确定三维边界框。例如,在例如使用最大池化、平均池化等组合关于各个点的信息之前,用于处理点云数据的已知深度学习网络可以单独考虑每个点。然而,在实施方式中,为点云中的每个点确定特征向量,并且这些特征向量可以连同与图像数据相关联的特征向量和与(全局)点云相关联的特征向量一起输入到机器学习算法。以这种方式,该算法可以针对点云中的每个点,确定估计边界框的属性的多个参数。例如,对于点云中的每个点,本公开的实施方式可以确定三维边界框的每个角相对于该点的偏移量。确定相对于每个点的偏移量可以提供改进的简单性、功能性和/或可靠性。除了计算这些偏移量之外,机器学习算法还可以确定与每个点的偏移量关联的置信度值。在一些示例中,可以选择与最高置信度值相关联的点及其对应的偏移量以定义三维边界框。
[0018] 在一些实施方式中,可以训练机器学习算法,以确定置信度值。在一些实施方式中,可以使用指示点在三维边界框中还是在三维边界框外的数据,以受监督的方式训练ANN。在其他实施方式中,可以使用三维边界框的回归损失函数,以无监督的方式训练ANN。
[0019] 使用三维边界框的可以是系统(例如,自主无人机、全自主或半自主驾驶车辆系统)、或另一些用于跟踪对象、辅助导航、和/或用于避免碰撞的系统。三维边界框的其他用途对于受益于本公开的本领域普通技术人员来说也是显而易见的。下面参考图1-6提供更多细节。
[0020] 转向图1,环境100可以包括各种对象。为了示例性目的,环境100中的一个这样的对象是车辆102。环境100与坐标系104相关联。坐标系104可以是全局坐标系或局部坐标系。在全局坐标系中,在坐标系104中表示的任何点都是绝对坐标。可替代地,在局部坐标系中,点是相对于任意定义的原点(例如,当无人驾驶车辆在环境中行驶时,车辆的中心)来表示,其可以在全局坐标系中移动。
[0021] 与环境100相关联的三维数据可以由三维传感器(例如,LIDAR系统(未示出))生成。如上所述,LIDAR系统可以输出LIDAR数据(例如,一个或多个点云),其包括代表环境中对象的外表面的一组数据点。例如,由附图标记106表示的LIDAR数据包括点云108,该点云108包括与车辆102相关联的多个点。尽管将该点云108描述为由LIDAR传感器生成,但是该点云可以包括来自LIDAR传感器、RADAR传感器和/或其他三维传感器中的一个或多个的点。
例如,点云108可以包括从一个或多个LIDAR传感器、一个或多个RADAR传感器、和/或一个或多个其他三维传感器组合或融合的数据,以提供关于环境100的信息,例如但不限于深度相机、超声换能器、相控阵雷达等。点云中的每个点可以由图像坐标系表示,例如由三维坐标表示,例如(x,y,z)。
[0022] 同样如图1所示,除了点云信息之外,环境100的图像110可以由至少一个图像捕获设备(未示出)捕获。图像110包括图像数据。出于示例性目的,图像捕获设备可以是相机。然而,可以设想其他图像捕获设备,例如,红、绿、蓝、深度(RGBD)相机、立体相机等。在示例性实施例中,图像110中的每个像素由图像坐标系表示为二维坐标,例如(u,v)。在捕获图像110时,车辆102表示为图像110中的车辆图像112。一旦从图像捕获设备接收到图像数据,则可将各种算法(例如,单检测器多框(Single Shot Detector Multibox)、Fast-CNN、Faster-R CNN、overfeat、基于区域的全连接网络等)应用于识别图像中的对象,并在某些实施方式中标识二维边界框。可以选择这些算法以仅识别某些对象类别。例如,该算法可以仅检测汽车、行人、动物或其任何组合,尽管可以设想到检测任何数量的对象类别。如图1所示,这种算法已经检测到对象(在这里是车辆),并且已经识别了相应的二维边界框114。二维边界框114是矩形的,并且其维度和位置被确定为完全包围图像110内的车辆图像112。在替代实施例中,图像110由至少一个立体相机、RGBD相机和/或深度相机捕获。使用多个相机可以允许通过使用多视图几何来恢复深度信息。在该实施例中,使用来自立体或RGBD相机的深度信息来辅助检测图像110中的对象,以对图像110进行分割,并创建二维边界框114。
[0023] 在本公开的实施方式中,点云108和图像110(并且更具体地说,边界框114中的车辆图像112)可用于创建三维边界框116。三维边界框116的尺寸、位置和方位可以被设定为完全包围车辆102,使得三维边界框116具有最小的体积。可以相对于坐标系104、相对于点云中的一个或多个点、和/或相对于某些其他坐标系,来限定三维边界框130的属性。例如,在本公开的实施方式中,三维边界框可以被定义为具有x,y和z坐标的三维空间中的八个点,八个点对应于三维边界框的八个角。下面更详细地描述用于估计三维边界框116的参数的方法和技术。
[0024] 图2示出了用于使用图像数据和点云数据来确定三维边界框的参数的过程200的图像表示。在该实施方式中,描述环境的三维数据202包括点云204。如图1的示例所示,点云204包括与环境中的三维对象相关联的多个点,并且为了便于说明,点云204被示为仅包括与单个车辆的外表面相关联的若干个点。然而,在其他实施方式中,点云204可以包括与环境中靠近车辆的其他特征的外表面相对应的点。同样在该示例中,提供了环境的图像206。
图像206由描述环境的二维数据组成。可以处理该图像数据,以定义二维边界框208,以从图像206中分割出车辆的车辆图像210。
[0025] 图2还示意性地示出了第一处理算法212,第一处理算法212被配置为接收点云204。在本公开的一些实施方式中,第一处理算法212可包括人工神经网络(例如,卷积神经网络),其被配置为接收点云并分析点。例如,第一处理算法212可以是点网(PointNet)网络。PointNet是一种深度网络架构,其可接收原始点云数据并学习全局点特征和局部点特征。PointNet传统上已用于分类、部件分割和语义分割目的。然而,出于本公开的目的,第一处理算法212可以被配置为产生与点云相关联的特征向量。例如,当将PointNet用作第一处理算法212时,可以在预测层之前的几个层中的一层上生成特征向量。过程200可以提取这些特征向量中的一个或多个,如在214所示。特征向量214可以是纯粹的几何特征向量,其仅与点云206中的点的定位相关。
[0026] 在过程200中还提供了第二处理算法216。第二处理算法216被可配置为接收车辆图像210,并产生与车辆图像210相关联的一个或多个外观特征向量218。在本公开的一些实施方式中,第二处理算法216可以体现为残差学习网络,例如,ResNet50、ResNet101等。第二处理算法216可以被配置为产生与车辆图像210相关联的一个或多个特征向量218。在一些示例中,过程200可以在预测层之前,从残差学习网络的若干层中的一层中提取一个或多个特征向量218。例如,第二处理算法216可以是ResNet-101CNN,并且特征向量218可以由最终残差产生,并在特征图定位上求平均。特征向量218可以是纯粹的外观向量,即没有任何几何信息。
[0027] 因此,第一处理算法212和第二处理算法218被配置为分别产生特征向量214、218。特征向量214、218可以对应于从一层或多层神经网络提取的神经网络处理特征,一层或多层神经网络包括第一处理算法和第二处理算法。在所示的实施例中,特征向量214是与点云
206相关联的几何特征向量,并且特征向量218是与车辆图像210相关联的外观特征向量。如附图标记220所示,特征向量214、218可被组合并输入到另一个人工神经网络(ANN)222中。
例如,特征向量214、218可以连结在一起。ANN 222可以是具有完全连接的层的多层神经网络,该完全连接的层被配置为使点云206和图像212的八个边界框角的三维坐标回归。因此,在本公开的示例性实施例中,边界框参数224可以包括一组八个坐标,八个坐标中的每个坐标对应于长方体的角,该长方体是与图像对象(即,在该示例中为车辆)相对应的三维边界框。图2示出了由八个角228限定的示例性三维边界框226。在另一个示例中,ANN 222可以预测该边界框的中心定位、方位和三维范围。以这种方式,ANN 222可以约束输出,以保持矩形的体积形状。
[0028] 如刚才描述的,图2所示的过程提供了一种全局架构,该架构直接使描述边界框的坐标回归。图3是过程300的图形表示,过程300类似于过程200,也使用与对象相关联的点云302和剪裁图像304,来确定三维边界框的参数。然而,与过程200不同,过程300是具有增大密度的架构,该架构预测点云302中每个点的边界框坐标,而不是点云和图像对的单组参数。
[0029] 与过程200相似,过程300提供配置为接收点云302的第一处理算法306和配置为接收剪裁图像304的第二处理算法308。在本公开的示例性实施方式中,第一处理算法306可以是PointNet神经网络,其被配置为接收一组无序的三维点作为输入。如以上关于图2所讨论的,PointNet神经网络可被配置为产生针对整个点云的一个输出,或针对每个输入点的一个输出。因为PointNet神经网络全局地和单独地考虑了这些点,所以可以从PointNet神经网络中提取与整个点云304相关联的第一特征向量310(如图2所示的实施例类似)以及逐点特征向量312(即,针对点云304中每个点的特征向量312)。
[0030] 与过程200一样,图像处理算法308可以是残差神经网络(例如,ResNet101),从中可以得出外观特征向量314。例如,也如上所讨论的,在本公开的一些实施方式中,外观特征向量314可以从网络的最终残差中提取,并在特征图定位上求平均。
[0031] 如在316处所示,逐点特征向量312、全局点云特征向量310、和外观特征向量314被组合(例如,被连结在一起)并输入到ANN 318。在一些实施方式中,与每个点相关联的特征向量可以单独地与全局点云特征向量310组合(例如,连结在一起),使得全局点云特征向量310被连结到每个点的特征向量。与上面讨论的ANN 222不同,ANN 318对每个输入点进行预测。更具体地,ANN 318可以针对点云中的每个点,预测边界框的八个角中的每个角相对于该点的空间偏移量,并确定所预测的偏移量的置信度分数322。在324处示出了边界框的八个角中的每个角的空间偏移量的概念。具体而言,如图所示,针对点云中的给定点326计算了八个偏移量320。每个偏移量对应于估计的三维边界框330的不同角328a、328b、…、328h。
[0032] 如从前述理解的,将为点云302中的每个点估计相同的边界框330(即,针对相同对象)。并且,置信度值322与每个点相关联。在本公开的实施方式中,可以选择点云302中的一个点及其相关联的偏移值320作为最能代表对象的三维边界框。在一示例中,与最高置信度分数322相关联的点和对应的偏移量320被确定为三维边界框。在其他实施方式中,与一些预定数量的点相关联的平均值可以用于确定三维边界框。例如,可以对与具有最高置信度值的一些预定数量的点相关联的偏移量进行平均。
[0033] 过程300估计相对于每个点的偏移量,因为相对于预测绝对目标,通常更容易预测相对目标。例如,在估计城市环境中的边界框的情况下,边界框的位置相对于安装在车辆上的LIDAR传感器可能在2m至100m之间变化。先前定义三维边界框的尝试已试图迫使网络学习预测较宽的取值范围。然而,替代地,过程300训练网络去预测相对于输入点的角定位,从而限制了目标的分布。
[0034] 在本公开的实施方式中,可以使用记分函数公式来确定置信度值322。在一个实施方式中,记分函数公式可以是受监督公式,其中训练网络以针对每个点预测该点是否在具有二进制分类目标的预测边界框内,并且分数是预测概率。在另一实施方式中,记分函数公式可以是无监督公式,其包括预测置信度分数,并将回归损失与置信度相乘。在一些实施方式中,可以通过预测低置信度而不是最小化回归损失,来优化该损失。还可以添加置信度损失,以惩罚低置信度。在一些实施例中,置信度损失可以是具有恒定权重因子的对数概率,其例如由以下方程表示:
[0035] L=Lreg*con f-log(con f)*w.
[0036] 在该损失方程中,w表示可以通过经验实验确定的可选权重因子。这样的加权可以平衡网络压,以具有如对数函数所提供的高置信度,并且可以利用压力输出低回归损失。无监督公式可以允许ANN 318确定哪个点更可能产生正确的边界预测。
[0037] 如上所述,在功能316处通过ANN 318之前,组合(例如,连结)图像和点云特征。融合可以是全局点云特征向量310、逐点特征向量312和外观特征向量314的连结。在本公开的一些实施方式中,还可以执行局部融合。例如,来自PointNet的逐点特征向量可以与从图像处理算法308的中间层提取的局部外观信息相关联。具体地说,在点云302中的点与图像304的属性(例如,像素)之间没有明确的对应性。在本公开的实施方式中,可以使用已知的相机模型,将点云302中的每个点投影到图像平面上。可以从图像处理算法308的中间层提取围绕该点的特征补丁,并使用双线性插值将其调整大小为固定大小的特征向量。然后,可以将特征补丁与其他特征向量连结起来,以输入到ANN 318。
[0038] 在图2和3的过程中,可以在这些层(包括图像处理算法216、308和/或点云处理算法212、306的层)的每一层上排除批量归一化(batch normalization)。批量归一化在现代神经架构设计中已成为必不可少,因为其可以有效减少输入数据/特征的协方差偏移。但是,已经发现在某些情况下,批归一化可能会阻碍网络的性能。例如,批量归一化假设到某个层的输入特征图带有一些偏差地正态分布,并且希望减少协方差偏移。然而,当在给定点云的情况下估计边界框时,如在本公开的实施方式中,输入点云的分布显然不是高斯分布。点定位的数值直接用于预测边界框定位。例如通过使用批量归一化来归一化分布,将丢弃此类信息,从而妨碍性能。
[0039] 根据本公开的实施例,PointNet架构可以用作用于处理点云数据的处理算法,因为它不需要特殊的预处理(例如,体素化或投影),和/或因为它具有针对稀疏点云的鲁棒性。然而,在本公开的实施例中,最好有一些数据预处理。例如,输入点云和边界框目标都可以旋转为沿Z轴居中。在一个实施方式中,可以确定感兴趣区域的中心,例如由图像捕获设备捕获的图像的帧中心。然后,可以将感兴趣区域的中心不投影到相机帧中作为射线,并且可以找到将该射线旋转到相机帧的z轴的刚性旋转。然后,可以将该旋转应用于输入点云和边界框目标。仅考虑点云中位于图像中的那些点(即,从考虑部分丢弃其余部分),并使其到某个坐标系的中心。类似地,可以剪裁图像数据,使得仅保留位于图像数据的二维边界框中的像素(即,丢弃其余部分),并且将图像重新居中,以使剪裁后的图像在另一图像坐标系中居中。因此,为供考虑,输入数据可以通过ANN 318进行归一化。
[0040] 图4和5是示出确定指示三维边界框的参数的示例性方法400、500的流程图。图4和5中所示的方法400、500示出为逻辑流程图中的框的集合,其表示可以以硬件软件或其组合来实现的一系列操作。在软件的情境中,框表示存储在一个或多个计算机可读存储介质上的计算机可执行指令,当指令由一个或多个处理器(例如,由控制器的一个或多个处理器或其他组件)执行时,这些指令可使一个或多个处理器执行所述操作。通常,计算机可执行指令包括执行特定功能或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。描述这些操作的顺序不是旨在被理解为限制性的,并且可以以任何顺序和/或并行地组合任意数量的所描述的框以实现这些过程。
[0041] 应当理解,本文提出的主题可以实现为计算机过程、计算机控制的装置、计算系统、或工业产品(例如,计算机可读存储介质)。尽管关于方法400、500描述的主题是在一般操作情境中呈现,其可以在一个或多个计算设备上执行和/或与一个或多个计算设备一起执行,但是本领域技术人员将认识到,可以与各种程序/控制器模块组合执行其他实施方式。通常,这样的模块包括例程、程序、组件、数据结构以及执行特定任务或实现特定抽象数据类型的其他类型的结构。
[0042] 本领域的技术人员还应当理解,关于方法400、500所描述的主题的各方面可以在除本文所述之外的其他计算机系统配置上来实践或结合其他计算机系统配置来实践,其他计算机系统配置包括多处理器系统、基于微处理器的或可编程的消费电子产品、小型计算机、大型计算机、手持式计算机、移动电话设备、平板计算设备、专用硬件设备、网络家电等。
[0043] 如图4所示,确定三维边界框的示例性方法400可以包括在402处接收图像数据,以及在404处接收点云数据。如上文所详述,图像数据可包括来自常规图像捕获设备(例如,RGB相机)的输出,并且点云数据可包括来自三维传感器的输出,三维传感器例如有激光雷达、雷达传感器、深度相机(例如,结构化的光或飞行时间)等。在本公开的实施方式中,图像数据提供环境的二维描述,并且点云数据提供该环境的三维描述。因为在402处接收到的图像数据和在404处接收到的点云数据是同一环境的描述,所以可以将这两种类型的数据例如关联起来,以解释相机和用于获取数据的传感器的偏移量。该偏移量可以通过相对姿态变换来定义。
[0044] 示例性方法400还包括在406处确定环境中的感兴趣区域。例如,由点云数据中的图像数据描述的环境可以包括多个对象。例如,环境可以是城市环境,其可以包括汽车、行人、自行车骑者、建筑物、道路标志和/或类似物,并且在406处,可以识别与该环境中的一个对象相对应的感兴趣区域。如上所述,已知识别环境中的对象的系统,并且这样的系统可以用于确定感兴趣区域。在一些示例实施方式中,在406处可以使用二维边界框来定义感兴趣区域。对于包括多个感兴趣区域的那些图像,可以将以下过程依次或并行地应用于所有这种感兴趣区域。
[0045] 在408处,示例性方法400还包括将图像剪裁到感兴趣区域。以这种方式剪裁图像可以提供剪裁后的图像。例如,剪裁后的图像可以包括环境中感兴趣的对象的图像。
[0046] 示例性方法400还包括在410处归一化点云数据和剪裁图像。例如,点云和边界框目标都可被剪裁(或以其他方式更改为仅在图像中的二维边界框内保留数据并且在点云中保留相关点(例如,通过使用两个传感器之间的已知变换的重新投影),并使其旋转以沿传感器的轴线(例如,Z轴)居中。
[0047] 在412处,获得针对点云的特征向量(例如,几何特征向量),并且在414处,获得针对剪裁图像的特征向量(例如,外观特征向量)。如上所述,可以使点云数据通过处理算法(例如,PointNet),并且可以从PointNet神经网络的层中提取几何特征向量。在该示例性实施例中,几何特征向量可以是与整个点云相对应的全局特征向量。类似地,可以将剪裁图像通过图像处理算法(例如,ResNet101),并且可以从残差网络(例如,最终残差块)的层中提取外观特征向量。
[0048] 在416处,在示例性方法400中,通过功能处理几何特征向量和外观特征向量,并且在418,将处理后的特征向量通过机器学习算法。例如,416可以包括在外观特征向量中的几何特征向量的连结。机器学习算法可以包括人工神经网络,例如,卷积神经网络和/或多个完全连接的层。
[0049] 示例性方法400还包括在420处,输出描述与感兴趣对象相关联的三维边界框的参数。如上所述,三维边界框可以是完全包围感兴趣对象的长方体。在该示例性方法400中,机器学习算法针对点云和剪裁图像,直接回归三维边界框的八个角的三维坐标。
[0050] 图5示出了估计三维边界框的另一示例性方法500。在一些实施方式中,方法500可以对应于图3所示的过程300。根据方法500,在502,接收对象的剪裁图像,并且在504,接收与对象相关联的点云数据。如上所述,剪裁图像可以是特征识别和/或创建围绕对象的二维边界框的结果。可以从三维传感器(例如,从一个或多个LIDAR、雷达、和/或其他传感器系统)接收点云数据,该传感器被配置为将关于对象的三维信息输出(例如,作为点云)。
[0051] 与上述方法400相似,方法500还包括在506获取针对点云的特征向量(例如,几何特征向量),并在510获得针对剪裁图像的外观特征向量。然而,与方法400不同,方法500还包括在508处获得逐点特征向量。如以上结合图3所描述的,已知用于处理无序点云数据的神经网络,其基于每一点和基于全局考虑该数据。该神经网络的一个例子是PointNet神经网络。在一些示例中,可以在不同层从相同网络提取这样的逐点特征向量和全局特征向量。
[0052] 方法500还可以包括:在512处将剪裁图像的一部分与每个点相关联。在本文描述的架构中,将图像数据和几何数据一起考虑,以确定环境中对象的三维边界框。但是,该架构可能不包括点云与模型中图像之间的明确对应关系,尽管存在该信息可能易于访问的事实。因此,在512处,点云中的每个点可被投影到图像平面上。一旦投影,就可以在图像处理算法的中间层围绕该点提取特征补丁,然后,可以使用双线性插值,对补丁进行大小调整,得到固定大小的特征向量。该特征可以与在506处获得的全局点云特征、在508处获得的逐点特征向量、以及在510处获得的外观特征向量连结在一起(concatenated)。在其他实施方式中,在利用针对整个点云的全局几何特征向量和针对剪裁图像的外观特征向量进行处理之前,特征补丁可以与在508处获得的逐点特征向量连结。
[0053] 在514,使特征向量通过机器学习算法,该机器学习算法可以是人工神经网络,例如卷积神经网络。因为包括了逐点特征向量,所以在516处,对于每个点,卷积神经网络将输出与三维边界框的角相关联的位移或偏移的预测,并且在518处输出置信度分数。因此,在该示例性实施方式中,对于点云中的每个点,卷积神经网络将为每个点生成八个偏移参数,八个偏移参数中的每一个对应于三维边界框的不同角。置信度分数可以是0到1之间的数字,并且如以上结合图3所描述的,可以以受监督方式或无监督方式训练神经网络,以确定置信度分数。
[0054] 方法500还包括在520基于置信度分数输出三维边界框。在本公开的实施方式中,三维边界框可以对应于与具有最高置信度分数的点云中的点相关联的偏移参数。在其他实施方式中,三维边界框可以对应于与点云中的一个以上点相关联的偏移参数的平均值。作为非限制性示例,可以对与一些预定数量的点(例如,具有最高置信度分数的点)相关联的偏移参数求平均,以确定偏移参数。
[0055] 图6示出了其上可以全部或部分实现本发明的计算机化系统600。计算机化系统600描绘了一个或多个计算机系统602,其包括存储装置604、一个或多个处理器606、存储器
608和操作系统610。存储装置604、一个或多个处理器606、存储器608和操作系统610可以通过通信基础设施612通信耦合。可选地,一个或多个计算机系统602可以经由I/O设备614与用户或环境进行交互,以及经由通信基础设施612、在网络616上与一个或多个其他计算设备进行交互。操作系统610可以与其他组件进行交互,以控制一个或多个应用程序618。
[0056] 在某些实例中,一个或多个计算机系统602可以实现任何硬件和/或软件,以执行对本文所讨论的三维边界框的估计。
[0057] 可以以软件或硬件或其任何组合来实现本文描述的系统和方法。可以使用可在物理上或逻辑上彼此分离或可以不彼此分离的一个或多个计算设备来实现本文描述的系统和方法。可以由被布置为本地硬件、本地虚拟系统、或私有管控实例的组件执行这些方法。另外,本文描述的方法的各个方面可以被组合或合并到其他功能中。
[0058] 图6示出了用于实现本文所述的系统和方法的示例性环境和计算机化系统。处理器或计算机系统可以被配置为特别地执行本文描述的一些或全部方法。在一些实施例中,这些方法可以由一个或多个计算机或处理器部分或完全自主化。可以使用硬件、固件和/或软件中的任何一种的组合来实现本文描述的系统和方法。可以使用硬件、软件、固件或其组合来实现本文描述的本系统和方法(或其任意一部分或多部分,或其一个或多个功能),并且可以在一个或多个计算机系统或其他处理系统中实现。在一些实施例中,示出的系统元件可以被组合到单个硬件设备中,或被分离成多个硬件设备。如果使用了多个硬件设备,则这些硬件设备可能在物理上定位成彼此靠近或彼此远离。所描述和示出的方法的实施例旨在是说明性的而非限制性的。例如,在不同的实施例中,可以组合、重新布置和/或省略这些方法的一些或全部步骤。
[0059] 在一个示例性实施例中,本文描述的系统和方法可以针对能够执行本文描述的功能的一个或多个计算机系统。示例性计算设备可以是但不限于运行任何操作系统(例如,但不限于OS XTM,iOSTM,LinuxTM,AndroidTM和MicrosoftTM WindowsTM)的个人计算机(PC)系统。然而,本文描述的系统和方法可能不限于这些平台。相反,可以在运行任何适当的操作系统的任何适当的计算机系统上实现本文描述的系统和方法。本文描述的系统和方法的其他组件也可以使用计算设备来实现,其他组件例如但不限于计算设备、通信设备、移动电话、智能手机、电话设备、电话、个人数字助理(PDA)、个人计算机(PC)、手持式PC、交互式电视(iTV)、数字录像机(DVD)、客户端工作站、瘦客户端、胖客户端、代理服务器、网络通信服务器、远程访问设备、客户端计算机、服务器计算机、路由器、网络服务器、数据服务器、媒体服务器、音频服务器、视频服务器、电话或流技术服务器等。使用例如但不限于交互式电视(iTV)、视频点播系统(VOD),并经由数字视频记录器(DVR)、或其他点播观看系统,可以根据点播提供服务。
[0060] 该系统可以包括一个或多个处理器。一个或多个处理器可以连接到通信基础设施,通信基础设施例如但不限于通信总线、交叉条、或网络等。处理和处理器不必位于相同的物理定位。换句话说,可以通过例如LAN或WAN连接,在一个或多个地理上相距较远的处理器处执行处理。计算设备可以包括显示接口,该显示接口可以转发来自通信基础设施的图形、文本和其他数据,以显示显示单元上。
[0061] 该计算机系统还可以包括但不限于主存储器、随机存取存储器(RAM)和辅助存储器等。辅助存储器可以包括例如硬盘驱动器和/或可移动存储驱动器,例如光盘驱动器CD-ROM等。可移动存储驱动器可以从可移动存储单元读取和/或写入可移动存储单元。可以理解,可移动存储单元可以包括将计算机软件和/或数据存储其中的计算机可用存储介质。在一些实施例中,机器可访问介质可以指用于存储可由计算机访问的数据的任何存储设备。机器可访问介质的示例可以包括例如但不限于:磁硬盘;软盘;光盘,例如光盘只读存储器(CD-ROM)或数字多功能光盘(DVD);磁带;和/或存储芯片等。
[0062] 处理器还可包括一个或多个用于存储数据的数据存储装置,或者处理器可操作地与所述数据存储设备耦合以与其通信。作为非限制性示例,该数据存储装置可以包括磁盘(磁盘包括内部硬盘和可移动磁盘)、磁光盘、光盘、只读存储器、随机存取存储器和/或闪存。适用于有形地体现计算机程序指令和数据的存储设备还可以包括所有形式的非易失性存储器,其包括例如半导体存储器件,例如,EPROM、EEPROM和闪存装置;磁盘,例如,内部硬盘和可移动磁盘;磁光盘;以及CD-ROM和DVD-ROM光盘。处理器和存储器可以由ASIC(专用集成电路)补充或集成到ASIC中。
[0063] 处理系统可以与计算机化数据存储系统通信。数据存储系统可以包括非关系或关系数据存储,例如MySQLTM或其他关系数据库。可以使用其他物理和逻辑数据库类型。数据存储可以是数据库服务器(例如,Microsoft SQL ServerTM、OracleTM、IBM DB2TM、SQLITETM)或任何其他数据库软件(关系数据库或者其他)。数据存储可以存储识别语法标签的信息,以及对语法标签进行操作所需的任何信息。在一些实施例中,处理系统可以使用面向对象编程,并且可以将数据存储在对象中。在这些实施例中,处理系统可以使用对象关系映射器(ORM),以将数据对象存储在关系数据库中。可以使用任何数量的物理数据模型来实现本文描述的系统和方法。在一个示例性实施例中,可以使用关系数据库管理系统(RDBMS)。在那些实施例中,RDBMS中的表可以包括代表坐标的列。对于经济系统,表示公司、产品等的数据可以存储在RDBMS中的表中。这些表之间可以具有预定关系。这些表还可以具有与坐标相关联的附属部分。
[0064] 在替代示例性实施例中,辅助存储器可以包括用于允许将计算机程序或其他指令加载到计算机系统中的其他类似装置。这种装置可以包括例如可移动存储单元和接口。这样的示例可以包括程序盒和盒式接口(例如,但不限于在视频游戏设备中找到的那些程序盒和盒式接口)、可移动存储芯片(例如,但不限于可擦除可编程只读存储器(EPROM)、或可编程只读存储器(PROM)和相关的插槽),以及其他可移动存储单元和接口,其可以使软件和数据从可移动存储单元传输到计算机系统。
[0065] 计算设备还可以包括输入设备,输入设备例如但不限于语音输入设备(例如麦克)、触摸屏手势识别设备(例如,相机)、其他自然用户界面鼠标或其他定点设备(例如,数字化仪)、以及键盘或其他数据输入设备。计算设备还可以包括输出设备,输出设备例如但不限于显示器和显示接口。计算设备可以包括输入/输出(I/O)设备,输入/输出(I/O)设备例如但不限于通信接口电缆和通信路径等。这些设备可以包括但不限于网络接口卡和调制解调器。一个或多个通信接口可以允许软件和数据在计算机系统与一个或多个外部设备之间传输。
[0066] 在一个或多个实施例中,计算设备可以可操作地耦合到汽车系统。这种汽车系统可以是手动操作、半自主操作或完全自主操作。在该实施例中,输入和输出设备可以包括一个或多个图像捕获设备、控制器、微控制器、和/或其他处理器,以控制汽车功能,汽车功能例如但不限于加速制动和转向。此外,在该实施例中,通信基础设施还可以包括控制器局域网(CAN)总线。
[0067] 在一个或多个实施例中,计算设备可以可操作地耦合到任何基于机器视觉的系统。例如,所述基于机器的视觉系统包括但不限于手动操作的、半自主的或完全自主的工业或农业机器人、家用机器人、检查系统、安全系统等。也就是说,本文描述的实施例不限于一个特定情境,并且可以适用于任何利用机器视觉的应用。
[0068] 在一个或多个实施例中,可以在一个或多个计算机网络的环境中实践本实施例。该网络可以包括专用网络或公用网络(例如,如下所述的互联网)或两者的组合。该网络可以包括硬件、软件或两者的组合。
[0069] 从面向电信的角度看,网络可以描述为一组由通信设施互连的硬件节点,一个或多个进程(硬件、软件或其组合)运行在每个这样的节点上。这些进程可以使用进程间通信路径,经由它们之间的通信路径,相互通信并彼此交换信息。在这些路径上,使用适当的通信协议。
[0070] 根据所述实施例的示例性计算机和/或电信网络环境可以包括若干个节点,其可以包括硬件、软件、或硬件和软件的组合。节点可以经由通信网络互连。每个节点可以包括一个或多个进程,一个或多个进程可由集成到节点中的处理器执行。例如,单个进程可以由多个处理器运行,或者多个进程可以由单个处理器运行。另外,每个节点可以提供网络与外界之间的接口点,并且可以集成子网的集合。
[0071] 在示例性实施例中,这些过程可以通过支持通过任何通信协议的通信的进程间通信路径而彼此通信。这些途径可以依次或并行、连续或间歇地运行。除了许多计算机使用的标准并行指令集之外,这些路径还可以使用本文中针对通信网络描述的任何通信标准、协议或技术。
[0072] 这些节点可以包括能够执行处理功能的任何实体。可以与实施例一起使用的节点的示例包括计算机(例如,个人计算机、工作站、服务器、或大型机)、手持式无线设备和有线设备(例如,个人数字助理(PDA)、具有处理能力的调制解调蜂窝电话、无线电子邮件设备(包括BlackBerryTM设备)、文档处理设备(例如,扫描仪打印机、传真机或多功能文件机)、或连接了处理器的集合的复杂实体(例如,局域网或广域网),如上所述。例如,在本公开的情境中,节点本身可以是广域网(WAN)、局域网(LAN)、专用网络(例如,虚拟专用网络(VPN))或网络集合。
[0073] 可以通过通信网络来实现节点之间的通信。节点可以连续或间断地与通信网络连接。作为示例,在本公开的情境中,通信网络可以是提供足够的带宽和信息安全性的数字通信基础设施。
[0074] 通信网络可以包括使用任何类型的标准、协议或技术,以任何频率的有线通信能力、无线通信能力或两者的组合。另外,在所述实施例中,通信网络可以是专用网络(例如,VPN)或公共网络(例如,互联网)。
[0075] 通信网络使用的示例性无线协议和技术的非包含性列表可以包括BluetoothTM(蓝牙)、通用分组无线服务(GPRS)、蜂窝数字分组数据(CDPD)、移动解决方案平台(MSP)、多媒体消息传递(MMS)、无线应用协议(WAP)、码分多址(CDMA)、短消息服务(SMS)、无线标记语言(WML)、手持式设备标记语言(HDML)、用于无线的二进制运行环境(BREW)、无线接入网(RAN)和分组交换核心网(PS-CN)。还包括各代的无线技术。通信网络使用的主有线协议和技术的示例性非包含性列表包括异步传输模式(ATM)、增强型内部网关路由协议(EIGRP)、帧中继(FR)、高级数据链路控制(HDLC)、互联网控制消息协议(ICMP)、内部网关路由协议(IGRP)、互联网分组交换(IPX)、ISDN、点对点协议(PPP)、传输控制协议/互联网协议(TCP/IP)、路由信息协议(RIP)和用户数据报协议(UDP)。如本领域技术人员将认识到的,可以使用任何其他已知或预期的无线或有线协议和技术。
[0076] 本公开的实施例可以包括用于执行本文中的操作的装置。可以为期望的目的而专构造一种装置,或者该装置可以包括由设备中存储的程序选择性地激活或重新配置的通用设备。
[0077] 在一个或多个实施例中,本实施例被体现在机器可执行指令中。指令可以用于使处理设备(例如,用指令编程的通用或专用处理器)执行本公开的步骤。替代地,本公开的步骤可以由包括用于执行步骤的硬连线逻辑的特定硬件组件来执行,或者由编程的计算机组件和定制硬件组件的任意组合来执行。例如,正如上文所述,可以将本公开提供为计算机程序产品。在这种环境下,实施例可以包括有指令存储其上的机器可读介质。所述指令可用于对任何一个或多个处理器(或其他电子设备)进行编程,以执行根据本示例性实施例的过程或方法。另外,本公开也可以下载并存储在计算机程序产品上。在此,可以经由通信链路(例如,调制解调器或网络连接),通过在载波或其他传播介质中体现的数据信号,将程序从远程计算机(例如,服务器)传输到请求计算机(例如,客户端),最终可以将此类信号存储在计算机系统上以供后续执行。
[0078] 这些方法可以在可从计算机可用或计算机可读存储介质访问的计算机程序产品中实现,该计算机可用或计算机可读存储介质提供了供计算机或任何指令执行系统使用,或与计算机或任何指令执行系统结合使用的程序代码。计算机可用或计算机可读存储介质可以是这样的任何装置:该装置可以包括或存储由计算机或指令执行系统、装置或设备使用的程序,或与计算机或指令执行系统、装置或设备结合使用的程序。
[0079] 适用于存储和/或执行相应程序代码的数据处理系统可以包括至少一个直接或间接耦合到计算机化数据存储设备(例如,存储元件)的处理器。输入/输出(I/O)设备(该设备包括但不限于键盘、显示器、定点设备等)可以耦合到该系统。网络适配器也可以耦合到该系统,以使数据处理系统能够通过中间的专用或公共网络,耦合到其他数据处理系统或远程打印机或存储装置。为了提供与用户的交互,可以在计算机上实现这些特征,计算机具有显示设备(例如,LCD(液晶显示器)、或其他类型的用于向用户显示信息的监视器)、以及键盘和输入设备(例如,鼠标或轨迹球),用户可以通过输入设备向计算机提供输入。
[0080] 计算机程序可以是可以在计算机中直接或间接使用的一组指令。可以使用编程语言或者或编程语言的组合来实现本文所述的系统和方法,编程语言例如CUDA、OpenCL、FlashTM、JAVATM、C++、C、C#、Python、Visual BasicTM、JavaScriptTMPHP、XML、HTML等,编程语言的组合包括编译或解释语言,并且可以以任何形式部署本文所述的系统和方法,包括作为独立程序或作为模块、组件、子例程、或适用于计算环境的其他单元。该软件可以包括但不限于固件、常驻软件、微码等。协议(例如,SOAP/HTTP)可以用于实现编程模块之间的接口。可以使用适合于软件开发的任何编程语言,在虚拟化或非虚拟化环境中执行的任何桌面操作系统上实施本文所述的组件和功能,编程语言包括但不限于不同版本的Microsoft WindowsTM,AppleTMMacTM,iOSTM,UnixTM/X-WindowsTM,LinuxTM等。可以使用网络应用程序框架(例如,Ruby on Rails)来实现该系统。
[0081] 用于执行指令程序的合适处理器包括但不限于通用和专用微处理器,以及任何类型计算机的唯一处理器或多个处理器或从处理核中的一个。处理器可以从计算机化的数据存储装置(例如,只读存储器、随机存取存储器、两者、或本文描述的数据存储装置的任意组合)接收并存储指令和数据。处理器可以包括可操作以控制电子设备的操作和性能的任何处理电路或控制电路。
[0082] 可以使用软件或硬件元件的任何组合来实现本文描述的系统、模块和方法。可以使用单独操作或彼此组合操作的一个或多个虚拟机来实现本文所述的系统、模块和方法。任何适用的虚拟化解决方案都可以用于将物理计算机平台封装到虚拟机中,该虚拟机在硬件计算平台或主机上运行的虚拟化软件的控制下执行。虚拟机可以同时具有虚拟系统硬件和客户操作系统软件
[0083] 可以在以下这样的计算机系统中实现本文所述的系统和方法,计算机系统包括后端组件(例如,数据服务器)或包括中间件组件(例如,应用服务器或互联网服务器),或包括前端组件(例如,具有图形用户界面互联网浏览器的客户端计算机),或它们的任意组合。系统的组件可以通过任何形式或介质的数字数据通信(例如,通信网络)进行连接。通信网络的示例包括例如LAN、WAN以及形成互联网的计算机和网络。
[0084] 本公开的一个或多个实施例可以通过其他计算机系统配置来实践,其他计算机系统包括手持式设备、微处理器系统、基于微处理器的或可编程的消费者电子产品、小型计算机、大型计算机等。本文描述的系统和方法也可以在分布式计算环境中实践,在分布式计算环境中,任务由通过网络链接的远程处理设备执行。
[0085] 术语“计算机程序介质”和“计算机可读介质”可通常用于指代这样的介质:介质例如但不限于可移动存储驱动器、安装在硬盘驱动器中的硬盘。这些计算机程序产品可以向计算机系统提供软件。本文描述的系统和方法可以针对这样的计算机程序产品。
[0086] 对“一个实施例”、“实施例”、“示例性实施例”、“各种实施例”等的引用可以指示本公开的一个或多个实施例可以包括特定的特征、结构、或特性,但并非每个实施例都必然包括特定的特征、结构或特性。此外,尽管重复使用短语“在一个实施例中”或“在示例性实施例中”并不一定指相同的实施例,尽管它们可能指相同的实施例。类似地,对“实例”的引用可以指示本公开的各种一个或多个实例可以包括特定的特征、结构或特性,但是并非每个实例都必然包括特定的特征、结构或特性。此外,重复使用短语“在某些实例中”不一定指相同的情况,尽管可能指相同的情况。
[0087] 在说明书权利要求书中,可以使用术语“耦合”和“连接”及其派生词。应当理解,这些术语可能不旨在作为彼此的同义词。而是,在特定实施例中,“连接”可以用于指示两个或多个元件彼此直接物理或电接触。“耦合”可以意指两个或多个元件直接物理或电接触。但是,“耦合”也可能意指两个或多个元件彼此不直接接触,但仍彼此协作或交互。
[0088] 这里,算法通常可以被认为是导致期望结果的动作或操作的自相一致序列。这些动作或操作包括对物理量的物理操纵。通常,尽管不是必须的,这些量采取能够被存储、传输、组合、比较和以其他方式操纵的电信号或磁信号的形式。主要出于通用目的,有时已经证明将这些信号指代位、值、元素、符号、字符、项、数字等是方便的。但是,应该理解,所有这些术语和类似术语均应与适当的物理量相关联,并且仅仅是应用于这些量的方便标记。
[0089] 除非另外特别说明,否则可以理解,在整个说明书中,例如“处理”、“计算(computing)”、“运算(calculating)”、“确定”等术语是指计算机或计算系统或类似的电子计算设备的动作和/或过程,计算机或计算系统或类似的电子计算设备将计算系统的寄存器和/或存储器中表示为物理量(例如,电量)的数据操纵和/或转换为类似表示为计算系统的存储器、寄存器或其他此类信息存储、传输或显示设备中的物理量的其他数据。
[0090] 以类似的方式,术语“处理器”可以指具有以下功能的任何设备或设备的一部分:该设备或设备的一部分处理来自寄存器和/或存储器的电子数据,以将该电子数据转换成可以存储在寄存器和/或存储器中的其他电子数据。作为非限制性示例,“处理器”可以是中央处理单元(CPU)或图形处理单元(GPU)。“计算平台”可以包括一个或多个处理器。如本文所使用的,“软件”过程可以包括例如随时间执行工作的软件和/或硬件实体,例如任务、线程和智能代理。而且,每个过程可以指代多个过程,以连续地或间歇地、顺序地或并行地执行指令。术语“系统”和“方法”在本文中可以互换使用,只要该系统可以体现一种或多种方法,并且这些方法可以被认为是一个系统。
[0091] 尽管已经描述了一个或多个实施例,但是其各种改变、添加、置换及其等效变型都包括在本公开的范围内。
[0092] 在对实施例的描述中,参考了形成其一部分的附图,附图通过说明的方式显示了所要求保护的主题的特定实施例。应当理解,可以使用其他实施例,并且可以进行改变或替换(例如,结构改变)。相对于所要求保护的主题,这样的实施例、改变或替换不一定偏离范围。尽管本文中的步骤可以以特定顺序呈现,但是在某些实例中,可以改变顺序,以便在不改变所描述的系统的功能和方法的情况下,以不同的时间或以不同的顺序提供某种输入。也可以以不同的顺序执行所公开的过程。另外,这里不需要以所公开的顺序执行各种计算,并且可以容易实现使用替代计算顺序的其他实施例。除了重新排序外,这些计算还可以分解为具有相同结果的若干个子计算。
[0093] 尽管以上讨论阐述了所描述的技术的示例性实施方式,但是其他架构可以用于实现所描述的功能,并且其他架构应该落入本公开的范围内。此外,尽管出于讨论目的在上面定义了具体的职责分配,但是根据各种情况,各种功能和职责可能以不同的方式分配和划分。
[0094] 此外,尽管已经用特定于结构特征和/或方法行为的语言描述了主题,但是应该理解,所附权利要求书中定义的主题不必限于描述的特定特征或动作。而是,将特定特征或动作公开为实现权利要求的示例性形式。
[0095] 示例性条款
[0096] A:一种用于估计三维边界框的系统,所述系统包括非暂时性计算机可读介质,所述介质包括指令,当所述指令由一个或多个处理器执行时,所述指令将使所述系统执行以下操作:接收从图像捕获设备捕获的图像;检测图像中的对象;剪裁图像,以形成包括对象的剪裁图像;接收与对象相关联的点云数据;确定与点云数据相关联的第一特征向量,所述第一特征向量包括几何特征向量;确定与剪裁图像相关联的第二特征向量,所述第二特征向量包括外观特征向量;将第一特征向量和第二特征向量传递到神经网络中;以及从神经网络接收描述与对象相关联的三维边界框的坐标。
[0097] B:根据段落A所述的系统,其中,所述指令还使所述系统执行以下操作:确定多个第三特征向量,多个第三特征向量中的第一个与所述点云数据中的第一点相对应,以及多个第三特征向量中的第二个与所述点云数据中的第二点相对应;将多个第三特征向量与多个第一特征向量和多个第二特征向量一起传递到神经网络中;针对第一点确定第一组偏移量和第一置信度分数,所述第一组偏移量对应于所述三维边界框的角相对于所述第一点的第一估计位置;以及针对第二点确定第二组偏移量和第二置信度分数,所述第二组偏移量对应于所述三维边界框的角相对于所述第二点的第二估计位置,其中,当第一置信度分数高于第二置信度分数时,系统接收与第一估计位置相对应的坐标,并且当第二置信度分数高于第一置信度分数时,系统接收与第二估计位置相对应的坐标。
[0098] C:根据段落A或者段落B所述的系统,其中,所述指令使所述系统从被配置为处理原始点云数据的点云神经网络的处理层中提取所述第一特征向量,并且其中,所述指令使所述系统从残差学习神经网络提取所述第二特征向量。
[0099] D:根据段落A到C中任一段所述的系统,其中:神经网络包括一个或多个完全连接的层。
[0100] E:根据段落A到D中任一段所述的系统,其中,所述指令还使所述系统通过将所述点云数据转换成原点,来归一化所述点云数据。
[0101] F:根据段落A到E中任一段所述的系统,其中,所述坐标包括八个点,所述八个点中的每个点与所述三维边界框的相应角相关联。
[0102] G:根据段落A到F中任一段所述的系统,其中,使用识别出点是在三维边界框内还是在三维边界框外的数据集,以受监督的方式训练所述第一神经网络。
[0103] H:根据段落A到G中任一段所述的系统,其中,使用包括所述边界框的回归损失的边界框损失函数,来训练所述第一神经网络。
[0104] I:根据段落A到H中任一段所述的系统,其中,所述指令还使所述系统执行以下操作:确定与第一点相关联的剪裁图像的第一部分;以及确定与第二点相关联的剪裁图像的第二部分,其中,至少部分使用双线性插值,确定第一部分或第二部分中的至少一个。
[0105] J:一种示例性计算机实现的方法,用于估计环境中的对象的三维边界框,所述计算机实现的方法包括:从图像捕获设备接收环境图像;接收与环境相关联的点云数据,所述点云数据包括多个点;检测图像中的对象;剪裁图像,以形成包括对象的图像的剪裁图像;将剪裁图像输入到第一神经网络;将点云输入到第二神经网络;从第一神经网络中提取与剪裁图像相关联的外观特征向量;从第二神经网络中提取与点云数据相关联的全局几何特征向量;从第二神经网络中提取多个逐点几何特征向量,单个逐点几何特征向量与多个点中的单个点相关联;将外观特征向量、全局几何特征向量和多个逐点几何特征向量输入到第三神经网络;以及从第三神经网络接收与对象的三维边界框相关联的信息。
[0106] K:根据段落J所述的计算机实现的方法,其中,接收与所述三维边界框相关联的信息包括:接收相对于所述点云中的点的多个位移,所述多个位移对应于所述三维边界框的若干个角。
[0107] L:根据段落J或者段落K所述的计算机实现的方法,其中,所述第三神经网络针对所述点云中的每个点,确定多个偏移和置信度分数,其中,所述偏移包括所述三维边界框的估计角相对于相应点的位移,其中,接收三维边界框包括:接收与具有最高置信度分数的点相关联的参数。
[0108] M:根据段落J到段落L中任一段所述的计算机实现的方法,其中,使用包括所述边界框的回归损失的边界框损失函数,来训练所述第三神经网络。
[0109] N:根据段落J到段落M中任一段所述的计算机实现的方法,其中,使用点是在三维边界框内还是在三维边界框外的指示,以受监督的方式训练所述第三神经网络。
[0110] O:根据段落J到段落N中任一段所述的计算机实现的方法,其中,将所述图像外观特征向量、所述全局几何特征向量和所述多个逐点几何特征向量输入到第三神经网络包括:将每一个逐点几何特征向量与全局几何特征向量连结在一起。
[0111] P:一种用于估计三维边界框的示例性系统,该系统包括:自主驾驶汽车;图像捕获设备,其与自主驾驶车辆相关联,并且被配置为在自主驾驶车辆的环境中捕获图像;传感器,其与所述自主驾驶车辆相关联,并被配置为输出与所述环境相对应的点云数据;一个或多个处理器;非暂时性计算机可读介质,其包括指令,当所述指令由一个或多个处理器执行时,所述指令使系统执行以下操作:接收由图像捕获设备捕获的图像;检测图像中的对象;剪裁图像,以形成包括对象的剪裁图像;接收点云数据;确定与点云数据相关联的第一特征向量;确定与剪裁图像相关联的第二特征向量;将第一特征向量和第二特征向量传递到神经网络中;以及从神经网络接收与针对对象的三维边界框相关联的坐标。
[0112] Q:根据段落P所述的系统,其中,所述指令还使所述系统执行以下操作:确定多个第三特征向量,多个第三特征向量中的第一个与所述点云数据中的第一点相对应,以及多个第三特征向量中的第二个与所述点云数据中的第二点相对应;将多个第三特征向量连同多个第一特征向量和多个第二特征向量一起传递到神经网络中;针对第一点确定第一组偏移量和第一置信度分数,所述第一组偏移量对应于所述三维边界框的角相对于所述第一点的第一估计位置;以及针对第二点确定第二组偏移量和第二置信度分数,所述第二组偏移量对应于所述三维边界框的角相对于所述第二点的第二估计位置,其中,当第一置信度分数高于第二置信度分数时,系统接收与第一估计位置相对应的坐标,并且当第二置信度分数高于第一置信度分数时,系统接收与第二估计位置相对应的坐标。
[0113] R:根据段落P或者段落Q所述的系统,其中,图像捕获设备包括被配置为捕获RGB图像的相机,其中,所述传感器包括LIDAR传感器或RADAR传感器,其中,来自传感器的点云数据和RGB图像是对齐的。
[0114] S:根据段落P至段落R中任一段所述的系统,其中,所述指令还使所述系统执行以下操作:确定与第一点相关联的剪裁图像的第一部分;以及确定与第二点相关联的剪裁图像的第二部分。
[0115] T:根据段落P至段落S中任一段所述的系统,其中,所述指令使所述系统通过从被配置为处理原始点云数据的神经网络提取第一特征向量来确定第一特征向量,以及通过从残差学习网络提取所述第二特征向量来确定第二特征向量。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈