使用相机地图和/或雷达信息的对象尺寸估计的制作方法

文档序号:31946714发布日期:2022-10-26 04:49阅读:30来源:国知局
使用相机地图和/或雷达信息的对象尺寸估计的制作方法

1.本公开总体上涉及确定对象的尺寸(以及在某些情况下是位置),并且更具体地,涉及用于使用相机地图、雷达信息和/或其他信息来确定对象的尺寸和/或位置的技术和系统。


背景技术:

2.对象检测和跟踪可用于(例如,从数字图像或视频剪辑的视频帧中)识别对象,并随着时间跟踪该对象。对象检测和跟踪可用于不同领域,包括自主驾驶、视频分析、安全系统、机器人技术、航空等。在某些领域,对象可以确定环境中其他对象的位置,以便该对象可以准确地在环境中导航。此外,为了做出准确的运动规划和轨迹规划决策,对象应具有准确估计其他对象的尺寸的能力。但是,不同对象的尺寸可以变化,并且具有相同类别或分类的对象的尺寸也可以变化。
3.在对象需要能够确定其他对象的位置和尺寸的领域的一个示例是通过(例如,自主车辆的)自主驾驶系统的自主驾驶。自主驾驶的关键要求(例如,在自主级别3及以上)是自主车辆检测和跟踪该自主车辆周围的其他车辆的能力。尽管某些自主车辆能够确定另一车辆的分类或类别,但即使在相同的分类或类别内,车辆的三维(3d)尺寸也可能具有较大的差异。为了做出准确的运动规划和轨迹规划决策,自主驾驶系统应能够准确估计道路上其他车辆的3d尺寸,尤其是长度。对于其他系统,例如机器人系统、航空系统(例如,无人驾驶飞行器)和/或具有类似需求的其他系统,类似的功能可能是有用的或必需的。


技术实现要素:

4.本文描述了用于使用各种类型的信息(例如,相机地图信息、雷达信息和/或其他信息)来确定对象的尺寸(以及在某些情况下,位置和/或朝向)的系统和技术。根据一个说明性示例,提供了一种确定一个或多个对象的一个或多个尺寸的方法。该方法包括:获取识别在图像中检测到的第一对象的边界区域;获取包括多个地图点的地图,所述多个地图点对应于三维空间中的一个或多个参考位置;将识别第一对象的边界区域与地图中包括的多个地图点中的至少一个地图点相关联;以及使用边界区域和至少一个地图点,来确定在图像中检测到的第一对象的估计三维位置和估计尺寸。
5.在另一示例中,提供了一种用于确定一个或多个对象的一个或多个尺寸的装置,该装置包括被配置为存储一个或多个图像的存储器、以及以电路实现并耦合到该存储器的一个或多个处理器。该一个或多个处理器被配置且可以:获取用于识别图像中检测到的第一对象的边界区域;获取包括多个地图点的地图,所述多个地图点对应于三维空间中的一个或多个参考位置;将识别第一对象的边界区域与地图中包括的多个地图点中的至少一个地图点相关联;以及使用边界区域和至少一个地图点,来确定在图像中检测到的第一对象的估计三维位置和估计尺寸。
6.在另一示例中,提供了一种非暂时性计算机可读介质,其上存储有指令,这些指令
在由一个或多个处理器执行时,使一个或多个处理器执行以下操作:获取识别图像中检测到的第一对象的边界区域;获取包括多个地图点的地图,所述多个地图点对应于三维空间中的一个或多个参考位置;将识别第一对象的边界区域与地图中包括的多个地图点中的至少一个地图点相关联;以及使用边界区域和至少一个地图点,来确定在图像中检测到的第一对象的估计三维位置和估计尺寸。
7.在另一示例中,提供了一种用于确定一个或多个对象的一个或多个尺寸的装置。该装置包括:用于获取识别在图像中检测到的第一对象的边界区域的部件;用于获取包括多个地图点的地图的部件,所述多个地图点对应于三维空间中的一个或多个参考位置;用于将识别第一对象的边界区域与地图中包括的多个地图点中的至少一个地图点相关联的部件;以及用于使用边界区域和至少一个地图点来确定在图像中检测到的第一对象的估计三维位置和估计尺寸的部件。
8.在一些方面,第一对象是车辆。在一些方面,一个或多个参考位置包括三维空间中道路上的车道。
9.在一些方面,上述方法、装置和计算机可读介质还包括:将来自多个地图点的地图点子集投影到图像上;从该地图点子集中确定至少一个地图点是一个或多个参考位置上离该边界区域最近的地图点;以及基于确定至少一个地图点是一个或多个参考位置上离该边界区域最近的地图点,将该边界区域与该至少一个地图点相关联。
10.在一些方面,使用校准数据和用于捕获图像的相机的姿态,将地图点子集投影到图像上。在一些情况下,地图点子集包括被包括在用于捕获图像的相机的视野内、并且处于相机的选择范围内的地图点。
11.在一些方面,上述方法、装置和计算机可读介质还包括:确定至少一个地图点与边界区域的边缘上的一个或多个点相交。在这样的方面中,基于确定至少一个地图点与边界区域的边缘上的一个或多个点相交,该至少一个地图点被确定为最近的地图点。在一些情况下,边界区域的边缘包括边界区域的底部边缘。
12.在一些方面,上述方法、装置和计算机可读介质还包括:确定边界区域边缘上的点;并且确定所述至少一个地图点与来自地图点子集中的其他地图点相比,最靠近边界区域边缘上的点。在这样的方面中,基于至少一个地图点最靠近边界区域边缘上的点,将该至少一个地图点确定为最近的地图点。在一些情况下,边界区域的边缘包括边界区域的底部边缘。
13.在一些方面,确定第一对象的估计三维位置和估计尺寸包括:获取第一对象的宽度;确定第一对象的朝向在至少一个地图点处平行于地图的表面;基于第一对象的宽度和第一对象的朝向,确定代表第一对象的三维边界框的顶点位置,其中该顶点位置对应于三维边界框的最靠近用于捕获图像的相机的拐角;基于该顶点位置,确定第一对象的估计三维位置;以及基于顶点位置和边界区域,确定代表第一对象的三维边界框的长度和高度。
14.在一些方面,上述方法、装置和计算机可读介质还包括:获取第一对象的分类;以及基于分类确定第一对象的宽度。
15.在一些方面,上述方法、装置和计算机可读介质还包括:获取图像的第一对象的分类,该分类定义对象的类型;基于第一对象的分类,确定第一对象的最小尺寸和最大尺寸;以及基于第一对象的最小尺寸和最大尺寸确定第一对象的估计尺寸。
16.在一些方面,上述方法、装置和计算机可读介质还包括:基于第一对象和第二对象之间的距离确定分类的权重,第二对象包括用于捕获图像的相机;基于该权重更新分类的累积权重,累积权重基于来自包括第一对象的多个图像的多次检测;基于分类的累积权重确定第一对象包括由分类定义的对象类型的似然性;基于所确定的似然性和与一个或多个其他分类相关联的一种或多种似然性,确定第一对象包括对象的类型;以及基于由分类定义的对象类型,来确定第一对象的最小尺寸和最大尺寸。
17.在一些方面,第一对象是第一车辆,第二对象是第二车辆。在一些方面,由分类定义的对象类型包括第一车辆的车辆类型。
18.在一些方面,上述方法、装置和计算机可读介质还包括:获取多个雷达测量点,所述多个雷达测量点基于由第一对象反射的雷达信号;以及基于多个雷达测量来确定第一对象的附加估计尺寸。在一些方面,使用第二对象上包括的多个雷达获取多个雷达测量点,第二对象包括用于捕获图像的相机。
19.在一些方面,上述方法、装置和计算机可读介质还包括:确定雷达测量点沿着第一对象的朝向方向的最大扩展;以及基于雷达测量点沿着第一对象的朝向方向的最大扩展,来确定第一对象的附加估计尺寸。
20.在一些方面,上述方法、装置和计算机可读介质还包括:使用估计模型确定第一对象的尺寸,估计尺寸和附加估计尺寸被用作估计模型的输入。在一些方面,估计模型是卡尔曼滤波器。
21.在一些方面,上述方法、装置和计算机可读介质还包括:从成像雷达获取雷达图像;以及基于雷达图像确定第一对象的附加估计尺寸。
22.在一些方面,上述方法、装置和计算机可读介质还包括:使用估计模型确定第一对象的尺寸,估计尺寸和附加估计尺寸被用作估计模型的输入。
23.在一些示例中,提供了一种车辆,其包括用于确定一个或多个对象的一个或多个尺寸的组件。该车辆可以包括被配置为捕获多个图像的一个或多个相机、被配置为存储多个图像的存储器、以及以电路实现并耦合到该存储器的一个或多个处理器。所述一个或多个处理器被配置为并且可以执行上述任何技术。例如,一个或多个处理被配置为并且能够:获取识别在由一个或多个相机中的相机捕获的图像中检测到的目标车辆的边界区域;获取包括多个地图点的地图,所述多个地图点对应于道路上车道的一条或多条线;将识别目标车辆的边界区域与包括在地图中的多个地图点中的至少一个地图点相关联;以及使用边界区域和至少一个地图点来确定在图像中检测到的目标车辆的估计三维位置和估计尺寸。
24.在一些方面,该装置是移动设备(例如,移动电话或所谓的“智能电话”或其他移动设备)、可穿戴设备、扩展现实设备(例如,虚拟现实(vr)设备、增强现实(ar)设备或混合现实(mr)设备)、个人计算机、膝上型计算机、服务器计算机、相机、车辆或计算设备或车辆的组件(例如,自主车辆)或其他设备,该装置是以上这些设备的一部分和/或包括这些设备。在一些方面,该装置包括用于捕获一个或多个图像的一个或多个相机。在一些方面,该装置还包括用于显示一个或多个图像、通知和/或其他可显示数据的显示器。在一些方面,上述装置可以包括一个或多个传感器(例如,一个或多个惯性测量单元(imu),例如一个或多个陀螺仪、一个或多个加速度计、其任意组合和/或其他传感器)。
25.本概述不旨在识别所要求保护的主题的关键或必要特征,也不旨在单独用于确定
所要求保护的主题的范围。该主题应该通过参考本专利的整个说明书的适当部分、任何或所有附图、以及每个权利要求来理解。
26.通过参考以下说明书、权利要求和附图,前述内容连同其他特征和实施例将变得更加显而易见。
附图说明
27.下面参考以下附图详细描述本技术的说明性实施例:
28.图1是示出了根据一些示例的在道路上行驶的多个车辆的图像;
29.图2是示出了根据一些示例的用于确定对象的尺寸、位置和朝向的系统的示例的框图;
30.图3是示出了根据一些示例的从对应于环境中的参考位置的点地图中确定点的子集的示例的图;
31.图4是示出了根据一些示例的将地图点子集从点地图投影到图像的图像平面的示例的图;
32.图5a是示出了根据一些示例的表示来自跟踪对象的前置(front-facing)相机的图像平面的图像的示例的图;
33.图5b是示出了根据一些示例的表示来自跟踪对象的侧面(side-facing)相机的图像平面的图像的示例的图;
34.图6是示出了根据一些示例的将目标对象的边界区域与来自地图中地图点子集的点相关联的示例的图;
35.图7是示出了根据一些示例的将目标对象的边界区域与来自地图中地图点子集的点相关联的示例的图像;
36.图8是示出了根据一些示例的将目标对象的边界区域与来自图像的点相关联的另一示例的图像;
37.图9a是示出了根据一些示例的将目标对象的三维(3d)边界框的拐角与目标对象的二维(2d)边界框的边缘相关的几何约束的示例的图;
38.图9b是示出了根据一些示例的将目标对象的三维(3d)边界框的拐角与目标对象的二维(2d)边界框的边缘相关的几何约束的另一示例的图;
39.图10是示出了根据一些示例的由各种雷达传感器接收的雷达测量的纵向分量相对于时间绘制的示例的曲线图;
40.图11是示出了根据一些示例的使用图10所示的雷达测量确定的目标对象的纵向末端的估计的示例的曲线图;
41.图12a和图12b是根据一些示例的雷达图像的说明性示例。
42.图13是示出了根据一些示例的深度学习网络的示例的框图。
43.图14是示出了根据一些示例的卷积神经网络的示例的框图。
44.图15是示出了根据一些示例的cifar-10神经网络的示例的图。
45.图16a-图16c是示出了根据一些示例的单次目标检测器的示例的图。
46.图17a-图17c是示出了根据一些示例的你只需看一次(yolo)检测器的示例的图。
47.图18是示出了根据一些示例的使用这里描述的技术来确定一个或多个对象的一
个或多个尺寸的处理的示例的流程图;以及
48.图19是根据一些示例的可用于实现这里描述的技术的一些方面的示例计算设备的框图。
具体实施方式
49.下面提供了本公开的某些方面和实施例。对本领域技术人员来说显而易见的是,这些方面和实施例中的一些可以独立应用,并且其中一些可以组合应用。在以下描述中,出于解释的目的,阐述了具体细节,以便提供对本技术的实施例的透彻理解。然而,显而易见的是,没有这些具体细节也可以实施各种实施例。附图和描述并不旨在限制性。
50.随后的描述仅提供示例性实施例,并不旨在限制本公开的范围、适用性或配置。相反,随后对示例性实施例的描述将为本领域技术人员提供实现示例性实施例的使能描述。应当理解,在不脱离所附权利要求中阐述的本技术的精神和范围的情况下,可以对元件的功能和布置进行各种改变。
51.对象检测和跟踪可用于识别对象并随时间跟踪对象。例如,可以获取对象的图像,并且可以对图像执行对象检测以检测图像中的一个或多个对象。在一些情况下,检测到的对象可以被分类到对象类别中,并且可以生成边界区域来识别对象在图像中的位置。各种类型的系统可用于对象检测,包括基于神经网络的目标检测器。
52.对象检测和跟踪可用于自主驾驶系统、视频分析、安全系统、机器人系统、航空系统等系统。在这样的系统中,在环境中跟踪其他对象(被称为目标对象)的对象(被称为跟踪对象)可以确定其他对象的位置和尺寸。确定环境中目标对象的位置和尺寸允许跟踪对象通过做出智能运动规划和轨迹规划决策,来精确地在环境中导航。然而,很难精确识别目标对象的尺寸。例如,由于具有相同类别或分类的对象的尺寸不同,基于目标对象的分类或类别来确定目标对象的尺寸可能是困难的。
53.在跟踪对象需要能够确定目标对象的位置和尺寸的领域的一个示例是通过自主驾驶系统的自主驾驶(例如,自主车辆)。自主驾驶系统的一个重要目标是自主车辆能够检测和跟踪自主车辆周围的其他车辆。对于更高的自主级别,例如自主级别3及以上,情况尤其如此。例如,自主级别0需要驾驶员的完全控制,因为车辆没有自主驾驶系统,而自主级别1涉及基本的辅助功能,如巡航控制,在这种情况下,车辆驾驶员完全控制车辆。自主级别2是指半自主驾驶,车辆可以执行直线行驶、停留在特定车道、控制与车辆前方的其他车辆的距离、或拥有其他功能等功能。自主级别3、4和5包括更多的自主。例如,自主级别3指的是在某些情况下可以接管所有驾驶功能的车载自主驾驶系统,在这种情况下,如果需要,驾驶员随时准备接管。自主级别4指的是完全自主的体验,即使在复杂的驾驶情况下(例如,在高速公路和繁忙的城市交通中),也不需要用户的帮助。利用自主级别4,人仍然可以留在方向盘后面的驾驶座上。在自主级别4下运行的车辆可以通信并通知其他车辆即将进行的操作(例如,车辆正在变道、转弯、停车等)。自主级别5车辆是可在所有条件下自主运行的完全自主的自动驾驶车辆。车辆不需要人操作员采取任何行动。
54.图1是示出了包括在道路上行驶的众多车辆的环境的图像100。车辆包括跟踪车辆102、目标车辆104、目标车辆106和目标车辆108。跟踪车辆102是以特定的自主级别运行的自主车辆。跟踪车辆102可以跟踪目标车辆104、106和108,以便导航环境。例如,跟踪车辆
102可以确定目标车辆104的位置和尺寸,以确定何时减速、加速、变道和/或执行一些其他功能。尽管车辆102被称为跟踪车辆102,并且车辆104、106和108相对于图1被称为目标车辆,但是如果当车辆104、106和108正在跟踪其他车辆时,车辆104、106和108也可以被称为跟踪车辆,其中其他车辆成为目标车辆。
55.虽然一些自主车辆可能(例如,基于对象检测和分类)能够确定另一车辆的分类或类别,但是车辆的三维(3d)尺寸甚至在相同的分类或类别中也可能具有很大的差异。例如,“卡车”的车辆类别可以包括许多不同形状和尺寸的卡车,包括小型卡车、中型卡车和大型卡车。实际上,一些卡车,如半挂卡车和移动卡车,比小型卡车大很多倍。精确估计道路上其他车辆的3d尺寸(包括长度)是自主车辆的自主驾驶系统的重要特征,以能够做出精确的运动规划和轨迹规划决策。
56.其他类型的系统也可以受益于精确确定目标对象的尺寸和/或位置。例如对对象执行操作的机器人系统可能需要能够精确地估计对象的3d尺寸。在一个说明性示例中,用于制造设备的机器人设备需要知道设备及其组件的尺寸、维度和位置,以便构建设备。在另一个说明性示例中,航空系统(例如,无人驾驶飞行器等)可以受益于飞行路径中对象的精确确定,使得航空系统可以精确地在对象周围导航。还存在许多其他需要能够识别对象尺寸和位置的系统的示例。
57.本文描述了用于使用各种类型的信息(例如相机信息、地图信息、雷达信息和/或其他信息)来确定对象的尺寸和位置的系统、装置、方法(也称为处理)和计算机可读介质(统称为“系统和技术”)。系统可以包括在跟踪一个或多个其他对象(称为目标对象)的对象(称为跟踪对象)中,并且该技术可以由该对象执行。在一些示例中,基于地图的逆透视映射(ipm)技术可以由跟踪对象来执行,以确定估计的三维(3d)位置和/或朝向,以及在图像或多个图像中检测到的目标对象的估计尺寸。(多个)图像可以由位于跟踪对象中或跟踪对象上的一个或多个相机捕获。基于地图的ipm技术可以使用点状地图。点状地图可以包括对应于3d空间中的一个或多个参考位置的多个地图点。来自点状地图的多个地图点的子集可以被投影到其中检测到目标对象的图像上。使用基于地图的位置关联函数,可以将对应于检测到的目标对象的边界区域(例如,边界框、边界椭圆或其他边界区域)与来自被投影的地图点子集的地图点相关联。一旦地图上的地图点与被检测到的目标对象的边界区域相关联,则边界区域和地图点可用于确定目标对象的估计3d位置(和/或朝向)和估计尺寸。例如,给定对象的宽度(例如,基于对象的给定分类或类别)和目标对象的朝向,可以确定目标对象的长度和高度连同表示目标对象的3d边界框的拐角的位置。3d边界框的拐角的位置提供了目标对象的3d位置。基于地图的ipm技术可以在其中检测到目标对象的单个图像或多个图像上执行。
58.在一些示例中,对于在一个或多个图像中检测到的给定目标对象,可由跟踪对象执行似然估计,以跟踪目标对象包括各种分类(在此也称为类)的似然性。例如,似然滤波器可用于通过组合来自通过从一个或多个多相机的检测所提供的类标签的信息,来在目标对象的跟踪历史上跟踪各种类的似然性。例如,给定输入图像,可以执行对象检测技术来检测目标对象,并为目标对象提供类(或在某些情况下多个类)。可以使用对象检测来处理对象的多个图像,从而有可能为目标对象确定多个类。可以向为目标对象确定的各种类中的每个类提供权重。在一些情况下,权重可以基于目标对象和包括用于捕获一个或多个图像的
一个或多个相机的跟踪对象之间的距离。在某些情况下,特定类的权重也可以基于由对象检测所输出的置信度得分。置信度得分指示目标对象属于给定类的置信度(例如,概率)。检测到的目标对象的(来自多个类)的类的最佳估计被确定为在目标对象的检测历史上累积的具有最高似然性的类。由似然估计所估计的对象类可用于界定目标对象的尺寸(例如,长度、宽度和/或高度)的上限和下限。当估计目标对象的尺寸时,可以使用该上限和下限。
59.在一些示例中,跟踪对象可以使用雷达信息来估计目标对象的尺寸。例如,在周期性时刻,可以在最近的雷达帧中从位于跟踪对象上的多个雷达传感器获取目标对象反射的雷达信号。可以对来自多个雷达传感器的雷达信号的雷达测量值进行联合处理,并且可以使用沿着目标对象的朝向方向的雷达测量点的最大纵向扩展,来确定目标对象的尺寸(例如,长度或其他尺寸或维度)的瞬时估计。在一些实施方式中,来自基于雷达的尺寸估计的尺寸(例如,长度)的最佳估计被确定为一定数量的尺寸估计中给定的最大瞬时估计。
60.基于雷达的尺寸估计可以单独使用,或者与基于地图的尺寸估计和/或似然估计结合使用,以确定对象的尺寸。例如,在一些情况下,估计模型可以考虑基于地图的尺寸估计、基于雷达的尺寸估计和/或似然估计,来确定目标对象的最终估计尺寸。在一些实施方式中,估计模型可以包括充当卡尔曼滤波器的估计框架(例如,贝叶斯估计框架或其他估计模型框架)。
61.图2是示出了用于确定环境中对象的尺寸和/或位置的系统200的示例的框图。系统200可以包括在跟踪一个或多个目标对象的跟踪对象中。如上所述,跟踪对象是指跟踪一个或多个被称为目标对象的其他对象的对象。在一个说明性示例中,系统200可以包括自主车辆中包括的自主驾驶系统(作为跟踪对象的示例)。在另一个说明性示例中,系统200可以包括机器人设备或系统中包括的自主导航系统。虽然为了说明的目的在这里使用自主驾驶系统和自主车辆来描述示例,但是普通技术人员将会理解,在此描述的系统200和相关技术可以被包括在用于确定对象的尺寸和/或位置的任何其他系统或设备中,并且由这些系统或设备来执行。
62.系统200可用于使用二维(2d)边界区域检测和来自基于相机的对象检测的相应对象类型分类、使用来自雷达的点检测、使用雷达图像、使用其组合和/或使用其他信息,来估计环境中的对象尺寸。在一些情况下,除了使用2d边界区域检测、类型分类和/或雷达点检测之外或作为其替代,系统200可以使用来自成像雷达的对象检测来估计环境中对象的尺寸。在一个说明性示例中,系统200可以使用2d边界框检测和来自相机的相应的车辆类型分类、来自雷达的点检测以及可选地来自成像雷达的对象检测,来估计在道路上检测到的目标车辆的尺寸。如下文更详细描述的,系统200可以应用以下一个或多个的任意组合:基于相机的对象类型似然滤波器、用于对象(例如,车辆或其他对象)维度估计的相机地图融合技术、基于雷达的长度估计技术和/或基于成像雷达的对象检测,并且可以使用由基于地图的尺寸确定、基于雷达的尺寸估计和/或成像雷达检测所提供的测量来实现估计模型,以跟踪对象的尺寸(例如,长度和/或其他尺寸维度)的最佳估计。
63.系统200包括各种组件,包括一个或多个相机202、对象检测引擎204、分类(类)似然估计引擎206、基于地图的尺寸估计引擎208、一个或多个雷达210、基于雷达的尺寸估计引擎212和尺寸估计引擎214。系统200的组件可以包括软件、硬件或两者。例如,在一些实施方式中,系统200的组件可以包括和/或可以使用电子电路或其他电子硬件来实现,电子电
路或其他电子硬件可以包括一个或多个可编程电子电路(例如,微处理器、图形处理单元(gpu)、数字信号处理器(dsp)、中央处理单元(cpu)和/或其他合适的电子电路),和/或可以包括和/或使用计算机软件、固件或其任意组合来实现,以执行这里描述的各种操作。该软件和/或固件可以包括存储在计算机可读存储介质上并可由实现系统200的计算设备中的一个或多个处理器执行的一个或多个指令。
64.虽然系统200被示为包括某些组件,但是本领域普通技术人员将会理解,系统200可以包括比图2所示的组件更多或更少的组件。例如,系统200可以包括计算设备或对象,或者是该计算设备或对象的一部分,该计算设备或对象包括一个或多个输入设备和一个或多个输出设备(未示出)。在一些实施方式中,系统200还可以包括计算设备或可以是计算设备的一部分,该计算设备包括一个或多个存储设备(例如,一个或多个随机存取存储器(ram)组件、只读存储器(rom)组件、高速缓冲存储器组件、缓冲组件、数据库组件和/或其他存储设备)、与一个或多个存储设备通信和/或电连接到一个或多个存储设备的一个或多个处理设备(例如,一个或多个cpu、gpu和/或其他处理设备)、用于执行无线通信的一个或多个无线接口(例如,包括一个或多个收发器和用于每个无线接口的基带处理器)、用于通过一个或多个硬连线连接执行通信的一个或多个有线接口(例如,诸如通用串行总线(usb)输入的串行接口、照明连接器和/或其他有线接口)、和/或图2中未示出的其他组件。
65.如上所述,系统200可以由计算设备或其他对象实现和/或包含在计算设备或其他对象中。在一些情况下,可以使用多个计算设备来实现系统200。例如,用于实现系统200的计算设备可以包括作为设备或对象的一部分的计算机或多台计算机,例如车辆、机器人设备、监控系统和/或具有执行本文所描述的技术的资源能力的任何其他计算设备或对象。在一些实施方式中,系统200可以与一个或多个软件应用集成(例如,集成到软件中,作为一个或多个插件被添加,作为一个或多个库函数被包括,或者以其他方式与一个或多个软件应用集成),例如自主驾驶或导航软件应用或软件应用套件。一个或多个软件应用可以安装在实现系统200的计算设备或对象上。
66.系统200的一个或多个相机202可以捕获一个或多个图像203。在一些情况下,一个或多个相机202可以包括多个相机。例如,包括系统200的自主车辆可以在车辆的前面具有相机或多个相机,在车辆的后面具有相机或多个相机,在车辆的每一侧具有相机或多个相机,和/或其他相机。在另一个示例中,包括系统200的机器人设备可以在机器人设备的各个部分上包括多个相机。在另一个示例中,包括系统200的航空设备可以在航空设备的不同部分上包括多个相机。
67.一个或多个图像203可以包括静止图像或视频帧。一个或多个图像203中的每一个包含场景的图像。图2中示出了图像205的示例。图像205示出了由包括多个目标车辆的跟踪车辆的相机捕获的图像的示例。当捕获视频帧时,视频帧可以是一个或多个视频序列的一部分。在一些情况下,由一个或多个相机202捕获的图像可被存储在存储设备(未示出)中,并且一个或多个图像203可以被从存储设备中检索或以其他方式获取。一个或多个图像203可以是由可选地具有深度图的像素(或体素)组成的光栅图像、由矢量或多边形组成的矢量图像、或其组合。图像203可以包括沿着一个或多个平面(例如,水平或x方向上的平面和垂直或y方向上的平面)的场景的一个或多个二维表示、或者该场景的一个或多个三维表示。
68.对象检测引擎204可以获取并处理一个或多个图像203,以检测和/或跟踪一个或
多个图像203中的一个或多个对象。对象检测引擎204可以输出对象作为检测和跟踪的对象。对象检测引擎204可以确定在图像中检测到的每个对象的分类(称为类)或类别,并且还可以生成用于识别图像中的每个对象的边界区域(例如,识别图像205中的目标车辆的边界区域209)。例如,可以在图像中检测对象,并且对象检测引擎204可以为检测到的对象输出边界区域和类标签(也称为类别标签)。系统200的其他组件可以使用边界区域来识别包括检测到的对象的图像的区域。在一些情况下,边界区域的维度(例如,宽度和/或高度、对角线的长度,例如从左下角到右上角、从左上角到右上角,或其他维度)也可以由对象检测引擎204输出。分配给检测到的对象的边界区域可以包括边界框、边界圆、边界椭圆或表示检测到的对象的任何其他合适形状的区域。尽管为了说明的目的在此使用边界框描述了示例,但是在此描述的技术和系统也可以使用其他合适形状的边界区域以应用。与检测到的对象相关联的边界框可以具有矩形、正方形或其他合适的形状。在一些情况下,对象检测引擎204可以输出检测到的对象的多个类、连同指示该对象属于每个类的置信度的置信度得分(例如,该对象是汽车的置信度得分为0.85,该对象是卡车的置信度得分为0.14,以及该对象是摩托车的置信度得分为0.01)。
69.对象检测引擎204可以执行任何合适的对象检测和/或分类技术。在一些情况下,对象检测引擎204可以使用基于机器学习的对象检测器,例如使用一个或多个神经网络。例如,基于深度学习的对象检测器可以用于检测和分类一个或多个图像203中的对象。在一个说明性示例中,基于cifar-10神经网络的检测器可用于执行对象分类以对对象进行分类。在某些情况下,可以训练cifar-10探测器只对某些对象进行分类,例如只对车辆进行分类。下面参照图15描述cifar-10检测器的更多细节。
70.基于深度学习的检测器的另一个说明性示例是快速单次(single-shot)目标检测器(ssd),其包括神经网络并且可以应用于多个目标类别。ssd模型的特征是使用多尺度卷积边界框输出,该输出附接到神经网络顶部的多个特征映射。这样的表现允许ssd有效地建模不同的边界框形状。已经证明,给定相同的vgg-16基本架构,ssd在精度和速度方面两者都媲美其最先进的目标检测器配对物。在k.simonyan和a.zisserman的“very deep convolutional networks for large-scale image recognition”(corr,abs/1409.1556,2014)中,更详细地描述了ssd深度学习检测器,其全部内容为了所有目的通过引用的方式结合于此。以下将参照图16a-16c对ssd检测器的更多细节进行描述。
71.可用于检测和分类一个或多个图像203中的对象的基于深度学习的检测器的另一个说明性示例包括你只需看一次(yolo)检测器。yolo探测器在titan x上运行时,以40-90fps的速度、78.6%的map处理图像(基于voc2007)。yolo深度学习检测器在j.redmon、s.divvala、r.girshick和a.farhadi的“you only look once:unified,real-time object detection”(arxiv preprint arxiv:1506.02640,2015)中进行了详细描述,在此为了所有目的通过引用将其全部内容并入本文。下面参照图17a-17c描述yolo检测器的进一步细节。虽然cifar-10、ssd和yolo检测器被提供作为基于深度学习的对象检测器的说明性示例,但是普通技术人员将理解,任何其他合适的对象检测和分类可以由对象检测引擎204来执行。
72.对于从中检测到一个或多个目标对象的给定图像,类似然估计引擎206可以获取边界区域、和为一个或多个目标对象确定的一个或多个类。例如,对于在图像中检测到的目标对象,类似然估计引擎206可以获取由对象检测引擎204为目标对象确定的边界区域和类
(或多个类)。类似然估计引擎206可以使用每个目标对象的(多个)类和边界区域,来确定目标对象是特定类的对象的似然性。在一些情况下,类似然估计引擎206可以包括似然滤波器。似然滤波器可用于通过基于从一个或多个相机202提供的图像的处理,组合来自由对象检测引擎204为特定目标对象输出的各种类标签的信息,来在特定目标对象的跟踪历史上跟踪特定目标对象包括各种类的似然性。例如,可以处理来自一个或多个相机的目标对象的多个图像,并且可以在多个图像的每一个中检测目标对象。目标对象的跟踪历史可以包括自图像中该目标的第一次检测以来、所有图像中的该目标对象的检测。为每个图像中的目标对象的每次检测确定类,导致可以跨多个图像为目标对象确定多个类的似然性。多个类可以由似然滤波器处理,以确定目标对象是特定类的对象的似然性。基于该似然性,类似然估计引擎206可以为目标对象确定最可能的类。
73.类似然估计引擎206可以跨多个图像确定用于为目标对象确定的各种类中每个类的权重。更高的权重被确定以用于与被认为更确定的对象检测结果相关联的类。对象检测结果的确定性以及由该对象检测结果产生的关联类可基于目标对象与包括系统200的跟踪对象之间的距离,在这种情况下,分配给该类的权重可以该距离。在某些情况下,用于确定类权重的距离可以基于图像中检测到的目标对象与用于捕获该图像的跟踪对象上的相机之间的距离。在某些情况下,类的权重还可以基于对象检测所输出的置信度得分,该置信度得分指示目标对象属于给定类的置信度(例如,概率)。
74.在一个说明性示例中,对于每个类c,术语cwc表示对于给定的跟踪对象已接收到的所有被观测的类的累积权重。每当类似然估计引擎206接收到类c的新检测y时,类c的累积权重cwc可以被更新以包括分配给新检测的权重wy。在一个示例中,以下公式可用于更新类c的累积权重cwc:
75.cwc=cwc+wy76.方程式(1),
77.其中wy可被确定如下:
[0078][0079]
在方程式(2)中,项a和b是正常数,x
target
是检测时目标对象的估计位置,x
tracking
是跟踪对象的估计位置(或跟踪对象上用于捕获目标对象的图像的相机的估计位置)。可以将正常数a和b设置为任何合适的值。在一个说明性示例中,假设位置以米来表示,则a等于50米(m),而b等于5m。使用车辆作为说明性示例,当跟踪车辆(有时称为自我(ego)车辆)正在跟踪目标车辆时,x
target
是在图像中检测到目标车辆时目标车辆的估计位置,并且x
tracking
是在图像中检测到目标车辆时跟踪(自我)车辆的估计位置(或用于捕获目标车辆的图像的相机的估计位置)。从方程式(2)可以看出,对于给定的目标对象的检测,目标对象与跟踪对象(或其相机)之间的距离越大,由该目标对象的检测确定的类的权重wy越大。如方程式(1)所示,分配给由目标对象的给定检测所确定的类c的权重wy被添加到类c的累积权重cwc中。可以使用方程式(1)和(2)或使用另一种合适的技术,来更新为目标对象确定的每个不同的类。
[0080]
类c的似然性可被确定为以下比率:
[0081][0082]
其中cwi表示在所分析的目标对象的所有检测中不同类i的累积权重。在一个说明性示例中,累积权重cw1可被保持用于第一类(例如,“汽车”类),累积权重cw2可被保持用于第二类(例如,“卡车”类),并且累积权重cw3可被保持用于第三类(例如,“摩托车”类),其中目标对象在其跟踪历史中被分类。在这样的示例中,对于其中目标对象被检测和分类的当前图像,“汽车”类的累积权重cw1的当前值可以为70,“卡车”类的累积权重cw2的当前值可以为25,“摩托车”类的累积权重cw3的当前值可以为5。使用这些示例值和方程式(3),目标对象是“汽车”的似然性被确定为(对应于值0.7)。类似地,目标对象是“卡车”的似然性lc被确定为(对应于值0.25),并且目标对象是“摩托车”的似然性lc被确定为(对应于值0.05)。
[0083]
对于给定的图像或图像组,目标对象的类的最佳估计由在目标对象检测的整个跟踪历史中累积的似然性最高的类给出。例如,继续上面的示例,车辆的类的最佳估计可以是“汽车”类,因为在“汽车”、“卡车”和“摩托车”类中,“汽车”类在目标车辆的跟踪历史中具有最高似然性。由类似然估计引擎206估计的对象类可用于界定目标对象的尺寸(例如,长度、宽度和/或高度)的上限和下限。例如,“汽车”类的长度的上限和下限可以分别基于所有已知汽车的最小长度和最大长度。如下文更详细描述的,当估计目标对象的尺寸时,尺寸估计引擎214可以使用该上限和下限。
[0084]
基于地图的尺寸估计引擎208可以执行相机地图融合,以确定在图像中检测到的目标对象的估计三维(3d)位置(和/或方向)和估计尺寸(例如,一个或多个维度)。基于地图的尺寸估计引擎208可以使用从对象检测引擎204输出的点状地图207和边界框(或其他边界区域)来确定与边界框相关联的目标对象的估计3d位置和尺寸。在出于说明目的而使用的自主车辆的一个示例中,对象检测引擎204可以向基于地图的尺寸估计引擎208输出图像中与2d轴对齐的边界框,其中边界框与图像中检测到的车辆相邻。在图2的图像205中示出了与2d轴对齐的边界框209的示例,该边界框与车辆相邻。轴对齐意味着边界框的边缘平行于图像的边缘(例如,如图5b所示,边界框550的边缘平行于图像510的边缘)。在一些情况下,对象检测引擎204还可以输出被检测到的车辆的类(例如,“汽车”、“卡车”、“摩托车”等)。
[0085]
由于来自对象检测的2d边界框是车辆的投影,因此边界框不提供对象的3d维度的直接测量。基于地图的尺寸估计引擎208可以执行基于地图的逆透视映射(ipm)技术,以确定在图像中被检测到的目标对象的估计3d位置(和/或方向)和估计尺寸。例如,基于地图的ipm技术可用于确定目标对象的6自由度(6-dof)姿态,包括3d位置和3d朝向。例如,6-dof姿态可以包括3d旋转矢量(包括沿横轴俯仰、沿纵轴滚动和沿法向轴偏航的角度)和3d平移矢量(包括沿水平(x)方向、垂直(y)方向和深度(z)方向的平移)。相对于相机的俯仰、滚动和
偏航可以被概念化为偏航是相机相对于地面的水平旋转(例如,相对于水平轴从左向右),俯仰是相机相对于地面的垂直旋转(例如,相对于水平轴上下),而滚动是相机相对于地平线的并排旋转(例如,相对于水平轴并排)。可以使用点状地图207从基于地图的位置关联来确定3d朝向,并且可以使用下面描述的基于地图的ipm技术来确定3d位置。基于地图的ipm技术可以将来自点状地图207的信息与2d边界框相结合,以获取所检测到的车辆的3d位置(和/或朝向)和尺寸估计。目标对象可被建模为长方体或3d朝向的边界框。用于捕获目标对象的图像的相机在现实世界中的位置(或姿态)也是已知的。在一些情况下,使用点状地图207、被检测到的目标对象的2d边界框以及现实世界中的相机位置,可以确定表示对象的3d边界框的位置和对象的尺寸的估计。
[0086]
点状地图207可包括与3d空间中的一个或多个参考位置对应的多个地图点。在某些情况下,点状地图207可以被称为高清晰度(hd)地图。在使用自主车辆作为对象的一个示例中,点状地图207的点限定与道路相关的静止物理参考位置,例如道路车道和/或其他数据。例如,点状地图207可以将道路上的车道表示为相连的点集。两个地图点之间限定线段,其中多个线段限定车道的不同线(例如,车道的边界线和中心线)。线段可以组成使用地图点确定的分段线性曲线。例如,连接的点集(或线段)可以表示道路上车道的中心线和边界线,这允许自主车辆确定其在道路上的位置以及目标对象在道路上的位置。在某些情况下,可以为世界上的不同区域维护不同的点状地图(例如,纽约市的点状地图,旧金山的点状地图,新奥尔良的点状地图,等等)。在一些示例中,不同的点状地图可以被包括在单独的数据文件中(例如,geo-javascript object notation(geojson)文件、shapefiles、comma-separated values(csv)文件和/或其他文件)。
[0087]
基于地图的尺寸估计引擎208可以执行基于地图的位置关联函数,以将所检测到的对象的边界框(或其他类型的边界区域)与点状地图207的地图点(也称为地图路标点)相关联。例如,基于地图的尺寸估计引擎208可以将来自点状地图207的多个地图点子集投影到从中检测到目标对象的图像上。使用基于地图的位置关联函数,可以将所检测到的目标对象的边界框与来自投影的地图点子集中的地图点相关联。下面提供了使用车辆作为说明性示例来描述基于地图的位置关联函数的细节。一旦所检测到的目标对象的边界框与特定地图点相关联,该边界框、地图点以及与地图点相关联的车道的已知方向可用于确定目标对象的估计3d位置和/或朝向(例如6-dof姿态)和估计尺寸。例如,给定对象的宽度(例如,基于对象的给定分类或类别)和目标对象的朝向(例如,基于车道朝向),可以确定目标对象的长度和高度连同表示目标对象的3d边界框的拐角的位置。
[0088]
如前所述,对于自主车辆,点状地图207可以包括表示现实世界中道路上的车道(作为“参考位置”的示例)的多个点,其中两个地图点之间限定线段。由跟踪车辆实现的系统200的基于地图的尺寸估计引擎208可以使用点状地图207检测并跟踪跟踪车辆周围的目标车辆。跟踪车辆中包括的一个或多个相机202中的相机可以捕获目标车辆的图像,并且可以使用对象检测引擎204在捕获的图像中检测目标车辆。基于地图的尺寸估计引擎208可以将来自点状地图207的点的子集投影到相机图像,这些点的子集位于相机的视野内。然后,基于地图的尺寸估计引擎208可以应用基于地图的位置关联函数,以将点的子集中的点与用于识别在图像中被检测到的目标车辆的边界框相关联。当对于自主驾驶执行时,基于地图的位置关联函数可被称为基于地图的车道车辆关联(map lva),其可用于将所检测到的
目标车辆的每个2d边界框与来自点状地图207的被投影到图像上的点的子集中的点相关联。
[0089]
基于地图的车道车辆关联(例如,map lva)可以帮助清除来自其他车道的检测,并且可以帮助关联引擎(未示出)以防止交叉关联。关联引擎负责将新的一组检测分配(或关联)到现有的一组轨迹。例如,如下所述,关联引擎可用于将来自对象检测引擎204的基于相机的对象检测与来自系统200的其他组件(例如,基于雷达的尺寸估计引擎212和/或基于雷达的尺寸估计引擎212)的估计相关联。轨迹可以被保持用于每个目标对象(例如,每个目标车辆或其他对象)。例如,在多目标跟踪场景中,单独的估计(或轨迹)被保持用于每个目标对象。在一些情况下,一个或多个观测值与现有轨迹不相关联(称为无关联事件),在这种情况下,一个或多个观测值可以与新轨迹相关联。例如,如果新的目标对象(例如,目标车辆)进入由跟踪对象(例如,跟踪车辆)捕获的场景,则可能发生这种无关联事件。交叉关联是关联引擎的故障事件之一,其中从车辆a发出的观测值被错误地关联到被跟踪的车辆b。清理检测/观测有助于防止交叉关联。在一个说明性示例中,可以通过让关联引擎不考虑(通过基于地图的位置关联函数,例如map lva)与包含被跟踪车辆的车道不同的车道相关联的检测,来完成清理。在一些示例中,关联引擎可以忽略来自点状地图207外部的检测(例如,来自护栏、车道障碍物和/或除点状地图207中的位置以外的其他位置)。例如,关联引擎可以删减(或移除)基于地图的车道车辆关联(例如,map lva)已经失败的检测。在由系统200(例如,由基于地图的尺寸估计引擎208、尺寸估计引擎214等)执行的后续处理中,可以不考虑删减或移除的检测。
[0090]
由关联引擎执行的关联可以使用任何合适的技术来执行,例如使用加权二分图匹配的形式。在一个示例中,来自单个成像雷达帧的检测可以与跟踪对象(例如,跟踪车辆或其他对象)当前保持的轨迹相关联。例如,二分图可以包括在二分图的一部分上形成节点的轨迹、以及在二分图的另一部分中来自一个传感器帧的检测。每个轨迹节点可以通过边缘连接到每个检测节点,并且可以为每个边缘分配权重,其中权重与轨迹的当前估计和检测之间的不一致程度成比例。在一个说明性示例中,在成像雷达帧的情况下,权重可以与轨迹的平均位置的当前估计和检测到的对象(例如,检测到的目标车辆)的位置之间的平方距离成比例。通过加权二分图上的最小权重匹配,给出检测与轨迹的最佳关联。
[0091]
如上所述,基于地图的尺寸估计引擎208可以将来自点状地图207的点的子集投影到所捕获的图像。在一些示例中,来自点状地图207的点的子集可以包括在相机视野内并且在相机的选择范围内(例如,在50米、75米、100米、150米或其他距离内)的所有地图点。选择范围在本文中可以被称为点子集选择范围。图3是示出了从与环境中的参考位置相对应的点地图中确定点的子集的示例的图。图3中的示例从俯视图(或“鸟瞰图”)中示出了高速公路的三个车道,包括左车道322、中间车道324和右车道326。每个车道用一条中心线和两条边界线示出,其中中间车道324与左车道322和右车道326共享边界线。在中间车道324中显示了车辆320。如本文所述,车辆上的一个或多个相机可以捕获车辆周围环境的图像。图3中示出了点子集选择范围328,其示出了相对于相机的范围,从该范围可以从点状地图207选择点的子集以投影到由相机捕获的图像上。如上所述,点状地图207可以包括代表车道线的点(或路标点)。例如,每条线可以由多个点限定。限定车道322、324和326的中心线和边界线的在点子集选择范围328内的所有点可以被选择以投影到由车辆320上的相机捕获的图像
上。在一些实施方式中,可以基于给定的应用(例如,自主驾驶、机器人技术、视频分析或其他应用)调整该范围以满足不同的需求。
[0092]
图4是示出了将点的子集从点地图投影到由相机430捕获的图像的图像平面的示例的图。相机430可以是车辆或其他设备或对象的一部分。点状地图207具有与其相关联的方向,其中点状地图207中的点按顺序排列。在某些情况下,序列的方向与跟踪对象(例如,跟踪车辆或其他对象)的移动方向相同。对于当前正在观测或处理的点状地图207的序列中的给定点(被称为“当前地图点”),将在点序列中排列的后续点称为点状地图207中的“下一地图点”。在图4中,示出了具有当前地图点435和下一地图点436的基本路线434。基本路线434是道路上的特定车道的中心线。为了执行映射,基于地图的尺寸估计引擎208可以在将来自点状地图207的点的投影投影到图像上之后,检查当前地图点435和下一地图点436是否在图像内。如果不在,则基于地图的尺寸估计引擎208可以使用相机的视野(或视域)来查看从相机延伸的(相机视野的)底部平面432与基本路线434相交的位置,并使用交点(图示为交点437)作为图像上的点。
[0093]
图5a是示出表示来自跟踪对象的前置相机的图像平面的图像505的示例的图。图5a所示的图像505由跟踪车辆的前置相机捕获。道路上的多条车道中心线被示出,包括车道中心线541和车道中心线544等。投影到图像505上的地图点(其限定车道中心线)示出为白点。如上所述,投影到图像505上的车道中心线的地图点可以包括在前置相机的视野内并且在点子集选择范围内的车道中心线的所有地图点。例如,地图点542、地图点543、以及地图点542和543之间的其他地图点限定车道中心线541。类似地,地图点545、地图点546以及地图点545和546之间的其他地图点限定车道中心线544。所检测到的目标对象的边界框540被示出为包括沿车道中心线541和沿车道中心线544的某些地图点。
[0094]
图5b是示出了表示来自跟踪对象的侧向相机的图像平面的图像510的示例的图。图像510由跟踪车辆的侧向相机捕获。与图5a类似,图5b中示出了道路上的车道中心线,包括车道中心线551、车道中心线552和车道中心线553。限定车道中心线并投影到图像510上的地图点被示出为白点。投影到图像510上的地图点包括车道中心线的地图点,这些地图点位于侧向相机的视野内并且在点子集选择范围内。所检测到的目标对象的边界框550被示出为包括沿车道中心线551、552和553的某些地图点。
[0095]
可以使用相机的姿态(已知)并使用校准数据来执行图像上的点投影。如上所述,相机的姿态是已知的。例如,相机的姿态可以注册为具有每个检测(或者在某些情况下具有检测的某个子集)的元数据,并且可以在需要时从元数据中查询。校准数据可以包括一组变换(例如,表示为矩阵,例如3x4矩阵或具有其他尺寸的矩阵),其将3d点从一个参考坐标系变换到另一个参考坐标系(例如,使用针孔相机模型)。在某些情况下,校准数据还可以包括固有的相机参数,例如焦距和主点。固有的相机参数可用于计算相机坐标系中给定3d点的像素位置。校准数据可以在系统200之外单独保持。
[0096]
使用相机姿态和校准数据的点到图像投影可以使用任何合适的技术来执行。在一个说明性示例中,可以执行两步处理,其中第一步包括将点变换到相机坐标系(对应于相机姿态),第二步包括将点投影到图像上(在像素域中)。例如,给定世界坐标系中的待投影点,表示为pw,可以使用t
cw
(将点从世界坐标系转换到相机坐标系的3
×
4矩阵)将点pw转换到相机坐标系:pc=t
cw
*pw。为了将转换后的点pc投影到图像(像素域)上,被投影的点可以由
给出,其中k是相机的固有矩阵,其来自校准数据,并且是归一化坐标中的pc。例如,以下内容可用于定义归一化点

其中pc=[p
c,x
,p
c,y
,p
c,z
]来自以上步骤1。
[0097]
一旦在用于检测目标对象的相机图像中投影地图点,就可以选择与目标对象的边界框关联的地图点。信息可以被提供用于由基于地图的位置关联函数(例如,map lva)确定的每个关联,包括用于关联的地图中心线(中心线路标点)的地图点(来自点状地图207)、沿着点状地图207的方向的距离(例如,正平行距离,包括目标对象的边界框上的点与一个或多个投影点之间在车道朝向的方向(或点状地图中表示的其他位置)上的平行距离,如下面参照图6所述),以及从地图中心线到被检测对象的边界框底边缘中心的垂直距离。可以使用最近的地图点之前的地图点进行关联,从而导致正平行距离。在某些情况下,仅可以选择与被检测到的对象具有正距离的地图点,以与被检测到的对象的边界框相关联。例如,即使距离被检测的对象的边界框上的点(例如,边界框底部边缘上的中点)最近的地图点具有负平行距离,也可能不会选择该点进行关联,并且距离边界框上的点最近的地图点之前的地图点可以被选择以与边界框关联(导致平行正距离)。可以基于包括系统200的跟踪对象上的相机的位置来执行一组不同的操作。例如,与跟踪车辆侧面的侧面相机相比,可以对跟踪车辆的前后车辆上的前后相机执行一组不同的操作。基于对图像中对象的检测而生成的边界框可以与投影到图像上的地图点一起使用。例如,边界框与地图点或参考位置(例如,道路上的车道线)上的其他点的交点可用于选择地图点或其他点以与目标对象的边界框关联。在另一个示例中,从边界框上的点到各种地图点的距离可以用于选择地图点以与边界框相关联。下面出于说明目的提供了使用自主驾驶应用的示例。
[0098]
在一个说明性示例中,当在由自主车辆的自主驾驶系统的侧面相机接收的图像中检测到目标车辆时,可以基于边界框上的点与道路的车道上的线的各种地图点(例如,车道中心线的地图点)之间的距离来选择用于与目标车辆的边界框关联的地图点。例如,边界框的底边缘可以由基于地图的尺寸估计引擎208获取。基于地图的尺寸估计引擎208可以计算底边缘的中点,并且可以比较从中点到一个或多个车道中心线上的地图点的距离。例如,与边界框的底边缘具有最短距离的车道中心线(因此也是最接近的车道中心线)可以确定为与目标车辆相关联的车道(对应于车辆所在的车道)。边界框内和最近的中心线上的所有地图点可以被选择作为候选关联点。底边缘的中点与候选关联点之间的距离可以被确定。例如,可以计算出中点与投影点之间的平行(沿车道朝向的方向)距离(例如,作为图像平面中的2d距离)。候选关联点可被过滤掉,以仅包括与中点的平行距离大于0(正平行距离)的地图点,以及中点位于当前地图点和跟踪车辆的运动方向上在当前地图点之后出现的点后续地图点之间的地图点。在一些示例中,如果在过滤之后剩余多个候选关联点,则基于地图的尺寸估计引擎208可以选择属于在边界框的顶部和底部边缘之间通过的中心线的点。所选地图点提供了车辆所在的车道的线段(其中线段在两个地图点之间)。
[0099]
图6是示出了将在图像中检测到的目标对象的边界框631与来自投影到图像上的地图点中的地图点635相关联的示例的图。图6中的示例示出了当图像被跟踪车辆的侧面相机630捕获时的情况。在图6的示例中,跟踪车辆的移动方向是从左到右,如箭头所示。示出了两条车道中心线,包括车道中心线633和车道中心线634。从侧向相机630投影到道路平面
的射线的交点638(对应于边界框631的底部边缘的中点)、以及交点638和车道中心线634之间的垂直距离被示出。地图点635和交点638之间的平行距离639被示出。由于平行距离639大于0并且交点638位于地图点635和在追踪车辆的移动方向上在地图点635之后出现的后续地图点636之间,所以选择地图点635与边界框631相关联。
[0100]
图7是示出了将在图像中检测到的目标对象的边界框750与来自投影到图像710上的地图点中的地图点754相关联的示例的图像710。图像710由跟踪车辆的侧面相机捕获。示出了道路上车道的中心线,包括车道中心线751、车道中心线752和车道中心线753。限定车道中心线并被投影到图像710上的地图点被示出为白点。示出了检测到的目标对象的边界框750。基于地图的尺寸估计引擎208可以获取边界框750的底部边缘,并且可以确定底部边缘的中点756。基于地图的尺寸估计引擎208可以比较从中点756到车道中心线751、752和753上的地图点的距离。基于地图的尺寸估计引擎208可以选择地图点754作为将与边界框750相关联的点,因为地图点754和中点756之间的平行距离739大于0,并且中点756在地图点754和在追踪车辆的移动方向上(在图7中从左到右)在地图点754之后出现的后续地图点之间。
[0101]
在另一个说明性示例中,当在由自主驾驶系统的前置或后置相机捕获的图像中检测到目标车辆时,可以基于边界框与车道中心线的交点,来选择用于与目标车辆的边界框相关联的地图点。例如,基于地图的尺寸估计引擎208可以获取目标车辆的边界框,并且可以确定边界框的底部边缘。可以通过识别出底部边缘与来自被投影到图像平面上的点状地图207中的点的任何车道中心线相交的位置,来确定用于关联的地图点。如果上述技术未能识别与边界框相关联的点(例如,底部边缘不与来自投影点的车道中心线相交),则底部边缘可以被延伸,使得其与图像中的所有车道中心线相交。边界的底部边缘被选择为要延伸的边缘,因为从前向或后向的图像中生成的边界框的底部边缘将位于路面上(由于车辆的底部在道路上,并且由于边界框与车辆接界或显示车辆的轮廓)。基于地图的尺寸估计引擎208然后可以获取与车道中心线相关联的车道边界点(限定车道边界线的点,如图3所示)。通过确定包围边界框底部边缘中点的两个车道边界点,可以获取车辆所处的车道。两个车道边界点提供了车辆所在的车道的线段。车道的中心线上确定车辆位于的点可以被确定为将与边界框相关联的地图点。
[0102]
图8是示出了将图像中检测到的目标对象的边界框850与来自图像810的点856相关联的示例的图像810。图8中的图像810由跟踪车辆的前置相机捕获。示出了道路上车道的中心线,包括车道中心线851、车道中心线852和车道中心线853。限定车道中心线并被投影到图像710上的地图点被示出为白点。示出了检测到的目标对象的边界框850。基于地图的尺寸估计引擎208可以获取边界框850的底部边缘,并且可以确定底部边缘与车道中心线851相交。点856是边界框850的底部边缘与车道中心线851相交的交点。
[0103]
如上所述,基于地图的位置关联函数(例如,map lva)的结果是来自点状地图207的与目标对象(例如,目标车辆或其他目标对象)的2d边界框相关联的关联地图点。关联地图点限定目标对象的朝向。例如,使用自主车辆作为说明性示例,相关联的地图点指示目标车辆所在的车道,并且可以假设目标车辆的朝向平行于车道(车辆的纵向或前方指向平行于车道的方向)。由点状地图207限定的各种车道的朝向是已知的,因此目标车辆的朝向可以被假设为具有与被确定在其中的车道相同的朝向。
[0104]
由对象检测引擎204分配给目标对象的检测的类或类别标签也提供了目标对象的维度的有力的先例。在一个说明性示例中,车辆的“汽车”的类或类别标签提供了车辆的一个或多个可能维度的示例。例如,给定确定的类,可以假定车辆的宽度。这种嘉定是合理的,因为在同一类别或类中的车辆的宽度几乎没有变化,而长度(有时是高度)可以在更大程度上变化。
[0105]
给定来自对象检测引擎204的2d边界框、从基于地图的位置关联函数(其定义目标车辆的方向)确定的关联地图点、以及基于所确定的类的目标车辆(或其他目标对象)的假定宽度,基于地图的尺寸估计引擎208可以执行基于地图的逆透视映射(ipm)技术,来确定与来自对象检测引擎204的2d边界框相对应的对象的3d朝向边界框(obb)。3d obb表示目标车辆(或其他目标对象)的尺寸。
[0106]
例如,假设目标对象(例如,目标车辆或其他对象)的2d边界框(2d bb)与3d obb的投影相切(指示3d obb的拐角(例如,四个或更多个拐角)的投影位于2d bb的边缘上),目标对象的朝向(例如,目标车辆的朝向)平行于点状地图207中的车道(或其他位置)的朝向,点状地图207包含来自基于地图的位置关联函数的关联地图点(指示目标对象和与地图点关联的车道对齐或朝向),并且目标对象的底部(例如,目标车辆的底部)与关联地图点处的切面对齐(指示3d obb的底面位于穿过关联地图点的平面上,该平面与关联地图点处的路面相切;相切,因为道面在关联地图点处可以是弯曲的,并且可以假设3d obb的底面是平坦的),可以得到一组线性方程式,并且可以针对需要估计的参数进行求解。两个说明性的场景(称为场景1和场景2)被提供以指示哪些参数需要被估计。可以执行方位角检查来确定哪个场景适用。方位角检查的示例如下:如果azm
left
azm
right
《0,场景1适用,否则,场景2适用,其中并且向量d
l
是与地图平面和camera-bb2d-left-edge平面(其是3d中包含相机中心以及图像中2d检测的左边缘的平面)之间的交线相关联的方向向量,并且向量dr是与地图平面和camera-bb2d-right-edge平面(其是3d中包含相机中心以及图像中2d检测的右边缘的平面)之间的交线相关联的方向向量。
[0107]
在场景1中,基于地图的尺寸估计引擎208可以通过求解以下线性方程组来估计3d obb的位置、高度和长度:
[0108][0109]
在方程式(4)中,p1、p2、n1、n2是由进一步检查左方位角zm
left
来确定的,其可以总结如下:
[0110]
如果azm
left
《0,则p1=p
l
、n1=n
l
、p2=pr、n2=nr、否则,p1=pr、n1=nr、p2=p
l
、n2=n
l

[0111]
方程式(5)
[0112]
在方程式(4)和(5)中,p
l
和n
l
是定义穿过相机中心和目标对象的2d bb的左边缘的
bb 950的其他边缘相邻的其他三个拐角的位置。
[0118]
图9b是表示场景2的图,示出了将目标对象的3d朝向边界框(3d obb)980的拐角与目标对象的2d边界框970的边缘相关联的几何约束的另一示例。方程式(6)适用于图9b中所示的场景,并且图9b中所示的项与上面关于图9a描述的那些项相似。
[0119]
在一些实施方式中,可以进行可行性评估以确定合适的场景。一旦基于地图的尺寸估计引擎208确定了适当的场景,基于地图的尺寸估计引擎208就可以应用对应于所确定的场景的线性方程。通过求解所确定的线性方程组,基于地图的尺寸估计引擎208可以确定三个未知值的估计,包括标量λ(其提供目标车辆或其他目标对象的位置)、目标车辆或其他目标对象的长度l、以及目标车辆或其他目标对象的高度h。
[0120]
基于雷达的尺寸估计引擎212可以从一个或多个雷达210获取雷达测量值211,并且可以使用雷达测量值211来估计目标对象的尺寸。一个或多个雷达210中的雷达可以包括具有射频(rf)源的设备或系统,该rf源发送rf信号(例如,高频电磁波的脉冲),该rf信号可以从目标对象反射回rf信号源。被反射的rf信号可以由雷达设备或系统的rf接收器接收。被反射的rf信号可用于确定目标对象的尺寸。一个或多个雷达210可以包括位于跟踪对象上不同位置的多个雷达。例如,使用自主跟踪车辆作为说明性示例,跟踪车辆可以具有位于车辆前部、拐角、侧面和/或后部的一个或多个雷达。由跟踪对象上的所有传感器接收的被反射的rf信号可以被基于雷达的尺寸估计引擎212评估和使用,以估计从其反射信号的目标对象的尺寸(例如,长度和/或其他维度)。
[0121]
例如,在周期性时刻,从目标对象反射的雷达信号可以在最近的雷达帧中从位于跟踪对象上的多个雷达传感器获取。每个雷达可以以固定频率(例如,每50毫秒(ms)一次或其他频率)测量其周围环境。这里使用的术语频率指的是测量速率(连续测量实例或帧之间时间差的倒数。雷达在单个测量实例中获取的一组测量值是雷达帧。来自每个雷达的测量值会产生不同的雷达帧。可以对来自多个雷达传感器的雷达信号的雷达测量值进行联合处理,并且可以使用沿着目标对象的朝向方向的雷达测量点的最大纵向扩展来确定目标对象的尺寸(例如,长度或其他尺寸或维度)的瞬时估计。对象(如车辆或其他移动对象)的纵向是对象向前移动的方向。在一个示例中,如下面参考图10和图11所示出和解释的,基于雷达的尺寸估计引擎212可以使用两个末端之间的间隔作为跟踪对象的长度的估计。在一些实施方式中,瞬时大小(例如,长度)估计被写入数据结构,该数据结构可以跟踪获取的用于目标对象的前k个最大估计(其中k是固定的数字)。在这种情况下,在任何时间点,来自基于雷达的尺寸估计的尺寸(例如,长度)的最佳估计是获取的第k个最长的瞬时估计。
[0122]
使用自主车辆作为说明性示例,在跟踪车辆上运行的基于雷达的尺寸估计引擎212可以根据点雷达检测来估计目标车辆的长度。然而,由于可能无法从目标车辆的整个范围获取rf信号反射,因此通过点雷达探测来估计目标车辆的长度可能具有挑战性。为了最大限度地覆盖来自车辆表面的点,可以联合考虑跟踪车辆上所有雷达的ping。例如,在周期性时刻,在最近的雷达帧中从跟踪车辆上的所有雷达传感器获取的从目标车辆反射的雷达信号被联合考虑,并且沿着跟踪车辆的朝向方向(称为纵向方向)的点的最大纵向扩展被用于得到车辆长度的瞬时估计。最大纵向扩展表示对象两个纵向末端之间(车辆前后之间)的距离,从而提供了对象长度的估计值。例如,如果所有的点都投影到平行于纵向方向的线上,那么投影中的极值点就是端点(这些极值点之间的距离给出了长度的估计值)。纵向方
向在上面被定义为被跟踪对象的朝向方向。可以通过跟踪对象(例如,目标车辆)来知道该朝向。如果朝向未知,则可以使用点状地图207、使用点状地图207中定义的相对于对象的位置的朝向(例如,如上所述,被跟踪车辆位置处的车道的朝向),来确定高朝向。
[0123]
图10是示出了由各种雷达传感器接收的雷达测量的纵向分量(沿y轴)相对于时间(沿x轴)绘制的示例的曲线图1000。雷达测量是相对于时间绘制的、由跟踪车辆前部、后部和拐角处的不同雷达接收到的来自目标车辆的rf信号反射。图10中的测量数据跨越7秒的间隔,在该间隔期间,跟踪车辆在道路上超过(或经过)目标车辆。黑点代表地面真实位置(表示为地面真值y-minimum(gt_y_min)和地面真值y-maximum(gt_y_max)),对应于目标车辆前后端的实际位置,并且被示出以供参考。每种颜色的点代表不同雷达的测量。例如,红点代表跟踪车辆前部远程雷达(表示为esr)的雷达测量。如图所示,不同的雷达在不同的时间接收从目标对象反射的rf信号。例如,从大约89秒到93秒,跟踪车辆前部的雷达(红点,表示为esr)和右前角的雷达(深蓝色点,表示为srr_fr)为目标车辆提供雷达测量值,这是当跟踪车辆超过目标车辆时,目标车辆在跟踪车辆的前方和旁边。从大约91.5秒到97秒,跟踪车辆右后角的雷达(亮深蓝色点,表示为srr_rr)为目标车辆提供雷达测量。从大约94秒到97秒,跟踪车辆后部的雷达(绿点,表示为esr_r)为目标车辆提供雷达测量。
[0124]
从曲线图1000中所示的测量可以看出,当与由黑点表示的地面真实位置进行比较时,雷达最初(从大约89秒到93秒)可靠地观测目标车辆的后端,并且随后(从大约93秒到97秒)可靠地观测目标车辆的前端。还可以看到,当目标车辆在跟踪车辆的前面时,从目标车辆的后面连贯获取雷达ping。类似地,可以看到,当目标车辆在跟踪车辆的后面时,从目标车辆的前部连贯地获取雷达ping。
[0125]
图11是示出了使用图10的曲线图1000中所示的雷达测量确定的目标车辆的纵向末端的估计的示例的曲线图1100。短语“max_in_win”是沿纵向的时间窗口中的最大值,短语“min_in_win”是沿纵向的时间窗口中的最小值。纵向末端是指给定时间点的最大或最小经度的测量(例如,给定帧中最大或最小的纵向值)。红点(最大纵向末端)代表目标车辆前端的估计值,绿点(最小纵向末端)代表目标车辆后端的估计值。在任何给定时刻,图中两个纵向末端(代表车辆的前部和后部)之间的间隔为基于雷达的尺寸估计引擎212提供目标车辆的长度的估计。
[0126]
可以通过批量估计来计算目标车辆纵向末端的估计值。如这里所使用的,批是在这样的时间窗口中的观测结果,该处理窗口被处理以获取长度或其他尺寸的估计。例如,单批可以包括在某个时间窗口(例如,50毫秒的时间窗口)内从所有传感器获取的所有测量值的集合。当目标车辆在跟踪车辆后面时,目标车辆前端的估计是准确的,当目标车辆在跟踪车辆前面时,目标车辆后端的估计是准确的。当目标车辆纵向靠近跟踪车辆时,两种估计都是可靠的。
[0127]
在某些情况下,即使有多个雷达,点雷达测量也可能是稀疏的(数量少且空间密度低)。由于点雷达检测的稀疏性,车辆的末端可能无法被观测到,并且瞬时长度估计可能低估了车辆或其他对象的长度。如上所述,瞬时估计可以被写入数据结构(例如,测量值阵列),该数据结构可以跟踪目标车辆曾经获取的前k个最大估计,其中k是固定的数字。在任何时间点,基于雷达的长度估计的长度(或其他维度)的最佳估计是获取的第k个最大瞬时估计。例如,k=1将是最大估计,k=5将是第5个最大估计。任何数字都可以用作选择的估
计,如k=3。在一些示例中,基于雷达的长度估计所产生的估计的可靠性可以基于目标车辆相对于不同雷达的视野的位置来量化。例如,目标车辆离跟踪车辆(或自我车辆)越近,尺寸估计越可靠。
[0128]
虽然上述基于雷达的估计的示例描述了基于纵向测量(对应于对象的纵向方向)来确定对象的长度,但是可以使用对象的横向测量(对应于对象的横向方向,例如垂直于车辆或其他移动对象的前进方向的方向)执行类似的技术来确定对象的宽度。
[0129]
在一些示例中,跟踪对象(例如,跟踪车辆或其他对象)可以包括成像雷达传感器。雷达图像可以具有任何合适的频率,例如毫米波段或微波波段的频率。图12a和图12b示出了雷达图像的说明性示例。可用于位置和尺寸/维度估计的雷达图像的示例包括10ghz图像、30ghz图像、60ghz图像、100ghz图像、300ghz图像和/或具有任何其他合适高频的雷达图像。雷达图像可以是毫米波雷达图像,其是具有从第一波长大小(例如,1毫米)到第二波长大小(例如,10毫米)的短波长和/或落入第一频率(例如,30ghz)和第二频率(例如,300ghz)之间的频带或频谱范围的雷达图像。毫米波雷达图像有时被称为毫米波段、极高频(ehf)或甚高频(vhf)。可以替代地或附加地使用毫米波段之外的其他无线电频率和波长,例如在300兆赫(mhz)和30ghz之间的微波区域中的波段。在某些情况下,雷达图像可以直接从雷达系统接收。在一些情况下,可以从系统200中包括的存储设备或存储器中检索出雷达图像,或者在包括系统200的对象或设备中包括雷达图像。在一些情况下,可以从系统200外部或包括系统200的对象或设备外部的存储设备或存储器中检索雷达图像。
[0130]
雷达系统可以包括天线阵列,每个天线包括接收机或与接收机耦合。在一些实施方式中,雷达系统可以具有能够发射射频(rf)信号的单个发射机,该rf信号从环境中的一个或多个对象(例如,目标对象)反射。在这样的实施方式中,天线阵列的天线和接收机接收来自发射机的反射rf信号,每个天线和接收机接收不同版本的反射信号。每个天线和接收机都可以记录接收到的反射信号的幅度和相位等数据。在其他实施方式中,天线阵列的每个天线可以包括发射机或者与发射机耦合,在这种情况下,为阵列中的每个天线提供接收机-发射机对。对于给定的接收机-发射机对,发射机可以发射rf信号,该rf信号从环境中的一个或多个对象(例如,面部)反射,并且接收机可以接收反射的rf信号。
[0131]
在一些示例中,雷达系统可以被实现为跟踪对象(例如,跟踪车辆或其他跟踪对象)上的一个或多个多千兆(multi-gigabit)无线电。例如,使用高频带(例如,10ghz、30ghz、60ghz、100ghz、300ghz或其他合适的高频)的多千兆技术(例如,多千兆wlan技术)可以被实现用于许多计算设备(例如,移动设备、自主车辆等)中的无线通信。多千兆无线电可以在雷达模式下工作,用于捕获附近对象反射的发射信号。在一些实施方式中,一个或多个多千兆无线电可以用于生成雷达图像。在一个说明性示例中,一个或多个多千兆无线电可以包括一个或多个60ghz wlan无线电。在这样的示例中,多千兆无线电可以包括天线阵列(连同接收机和发射机,或者接收机-发射机对)。
[0132]
雷达图像的每个像素可以对应于天线阵列(例如,一维阵列、二维阵列或其他维度)中的天线(和接收机或接收机-发射机对)。利用一维阵列,获取的“图像”是反射强度图像,其轴沿着目标的range_to_target和azimuth_angle。在另一个说明性示例中,天线阵列可以包括32
×
32个天线的阵列,在这种情况下,雷达系统总共包括1024个天线。这种雷达系统生成的图像将包括32
×
32像素的二维阵列,每个像素对应于天线。因此,图像总共将有
1024个像素。因此,图像的宽度和高度-以及每边的像素或体素的数量-是阵列中天线数量的函数。至少如这里所讨论的,术语“天线”应该被理解为仅代表天线(用于至少一个接收机、发射机、收发机、或相应地包括在阵列中或耦合到阵列的其组合),或者可以代表整个接收机、发射机或收发机。这样,天线阵列可以是接收机、发射机、收发机或其组合的阵列。
[0133]
在某些情况下,来自雷达系统天线阵列的天线(和接收机)可以将信号分类到不同的距离仓(bin)n中,这些仓对应于不同的距离范围。例如,每个天线(和接收机)可以根据相对于发射脉冲的到达时间将接收到的rf信号返回分类到一组仓n中。时间间隔与到反射rf波的(多个)对象的往返距离成比例。通过检查仓中的接收信号强度,天线(和接收机)可以在不同仓n(仓对应于不同范围)之间分类返回信号。这可以在扫描所需的方位角和仰角时执行。具有许多距离仓允许更精确的距离确定。短持续时间的脉冲可以被检测并映射到少量的距离仓(例如,仅一个或两个距离仓),而更长的脉冲持续时间、宽度和/或传输功率允许更大量的信号能量被传输,并且允许接收机集成能量的时间更长,从而导致更长的检测距离。当接收的信号被分类到距离仓中时,可以为每个距离仓n生成雷达图像。
[0134]
成像雷达传感器可以提供目标车辆的位置(和/或朝向)和维度的瞬时估计。在一些示例中,使用基于图像的处理和/或深度神经网络,当在成像雷达图像中检测到目标车辆时,系统200还可以生成车辆长度的估计。例如,每次成像雷达进行测量时,它都会产生成像雷达周围场景的图像。该图像是灰度图像,一个轴沿距离,另一个轴沿方位角。图像中像素的强度是在特定距离和方位从反射器返回的强度。被训练成在雷达图像上执行对象检测的深度学习网络可以是由对象检测引擎204使用的对象检测网络的修改,但被训练成在雷达图像上检测目标对象(例如,车辆)的位置和限度。与相机图像中的检测不同,使用雷达图像的检测可以在俯视图(“鸟瞰图”)中获取,这意味着车辆的长度和宽度被保留在图像中。因此,使用雷达图像检测的副产品是对车辆长度的估计。
[0135]
尺寸估计引擎214可以使用来自类似然估计引擎206、基于地图的尺寸估计引擎208和/或基于雷达的尺寸估计引擎212的结果的任意组合,来确定目标对象的尺寸(例如,长度和/或高度)以及位置和/或朝向。例如,在一些情况下,尺寸估计引擎214可以应用考虑了来自基于地图的尺寸估计引擎208的基于地图的尺寸估计、来自基于雷达的尺寸估计引擎212的基于雷达的尺寸估计和/或来自类似然估计引擎206的似然估计的估计模型,来确定目标对象的最终估计尺寸(例如,目标车辆的长度)。在一些实施方式中,估计模型可以包括作为卡尔曼滤波器操作的估计框架(例如,贝叶斯估计框架或其他估计模型框架)。
[0136]
例如,再次出于说明的目的而使用自主车辆为例,目标车辆的长度(或其他估计维度)的最终估计可以通过顺序贝叶斯估计框架获取,该框架可以被解释为简并的卡尔曼滤波框架,其中表示对象(例如,车辆)长度的状态被建模为静态的并且不随时间变化。例如,由于对象(例如,车辆)的长度是固定的,所以不存在与状态相关联的动力学、不存在状态转换、不存在状态演变等。长度x可以假设为高斯随机变量,其先验分布的平均值等于(例如,由类似然估计引擎206确定的)该类被跟踪车辆中的车辆的标准长度(或其他估计维度),以及其方差由该类被跟踪车辆的典型长度方差给出。当从上述基于地图的尺寸估计引擎208、基于雷达的尺寸估计引擎212和/或基于雷达图像的尺寸估计中的一个或多个的任意组合接收到新的长度测量值yi时,可以使用贝叶斯估计来顺序地细化长度估计(或其他估计维度)。这些测量值yi可以被建模为受高斯噪声(被表示为ni)扰动的长度的独立估计值,如下
所示:
[0137]
yi=x+ni[0138]
方程式(7)。
[0139]
来自不同测量值yi的噪声的标准偏差被设置为等于测量值中误差的标准偏差。在一些示例中,基于目标车辆的类(由类似然估计引擎206确定)对测量值yi执行异常值拒绝,使得仅可行长度被提供作为贝叶斯滤波器的输入。例如,如上所述,由类似然估计引擎206估计的对象类可用于定义目标对象的尺寸(例如,长度、宽度和/或高度)的上限和下限。上限和下限分别表示给定类或类别的目标对象的最大尺寸和最小尺寸。尺寸估计引擎214可以拒绝超出上限和下限的任何估计长度(例如,小于下限或大于上限),并且不将其输入到贝叶斯滤波器。
[0140]
在处理测量值yi之后,目标车辆的长度(或其他维度,例如高度)的最佳估计值可被递归计算为:
[0141][0142]
其中σ
t-1
是长度的当前估计值的标准偏差,σi表示测量值yi中噪声ni的标准偏差。估计值的标准偏差被更新为:
[0143][0144]
虽然长度被用作可由尺寸估计引擎214估计的目标对象的维度的示例,但是相同的方案也可被用于过滤从基于地图的尺寸估计引擎208获取的目标对象(例如,目标车辆)的宽度和高度估计值。在某些情况下,对于某些对象(例如车辆),这些对象的高度和宽度在同一类对象的不同模型之间不会有很大的变化(例如,同一车辆类型的不同模型的宽度和高度有时会有很小的变化)。在这种情况下,尺寸估计引擎214可以基于由类似然估计引擎206识别的最可能的类,将目标对象(例如,目标车辆或其他对象)的宽度和/或高度预测为常数。
[0145]
在多目标跟踪场景中,跟踪对象同时跟踪多个目标对象。例如,自主车辆在行驶时可能需要跟踪道路上的多辆其他车辆。在这样的多目标跟踪场景中,尺寸估计引擎214可以在关联引擎(未示出)之前,该关联引擎可以将来自对象检测引擎204的基于相机的对象检测、来自基于雷达的尺寸估计引擎212的基于雷达的估计和/或基于成像雷达的估计关联到正确的目标轨迹(其中,如上所述,轨迹指的是用于每个检测到的目标对象所保持的估计值)。
[0146]
将不同的信息源用于不同的尺寸和/或位置估计,例如利用基于图像的对象检测和基于雷达的检测的结果的基于地图的估计,允许不同的估计相互补充。例如,基于图像的对象检测可以为两个不同的对象提供相同或相似的检测结果,这两个不同的对象由于偏航角的微小差异而在长度上有很大差异。基于雷达的估计可以补充基于地图的估计。此外,雷达传感器,作为基于相机的尺寸估计方法的补充解决方案,不太容易受到变化的天气条件
(例如雨或雪)的影响,并且不受日照暴露量变化的影响,从而提高了整体系统鲁棒性。利用多个信息源可以帮助系统200获取高度精确的尺寸和位置估计,从而允许包括系统200的跟踪对象对跟踪对象周围的环境进行更精确的估计。例如,使用这里描述的技术,自主车辆可以对可用于机动的道路空间进行更精确的估计,例如执行变道、超车、停车、加速等。在另一个示例中,用于制造的机器人设备可以使用这里描述的技术来更准确地识别机器人设备可用的可用空间和部件。许多其他技术领域可以受益于这里提供的精确尺寸和位置(和/或朝向)估计技术。
[0147]
如上所述,针对对象检测引擎204,使用基于神经网络的检测器的各种模型可被用于检测图像中的对象。可由对象检测器使用的神经网络的说明性示例包括卷积神经网络(cnn)、自动编码器、深度信念网络(dbn)、递归神经网络(rnn)、生成对抗网络(gan)或任何其他合适的神经网络。
[0148]
图13是可由对象检测引擎204使用的深度学习神经网络1300的说明性示例。输入层1320包括输入数据。在一个说明性示例中,输入层1320可以包括表示输入视频帧的像素的数据。神经网络1300包括多个隐藏层1322a、1322b至1322n。隐藏层1322a、1322b至1322n包括“n”个隐藏层,其中“n”是大于或等于1的整数。可以使隐藏层的数量包括和给定的应用所需的层一样多的层。神经网络1300还包括输出层1324,其提供由隐藏层1322a、1322b至1322n执行的处理而产生的输出。在一个说明性示例中,输出层1324可以为输入视频帧中的对象提供分类。该分类可以包括识别对象类型(例如,人、狗、猫或其他对象)的类。
[0149]
神经网络1300是互连节点的多层神经网络。每个节点可以代表一条信息。与节点相关联的信息在不同的层之间共享,并且每个层在处理信息时保留信息。在一些情况下,神经网络1300可以包括前馈网络,在这种情况下,没有反馈连接,其中网络的输出被反馈到其自身。在一些情况下,神经网络1300可以包括递归神经网络,其可以具有允许信息在读取输入时跨节点传送的环路。
[0150]
可以通过各层之间的节点到节点互连来在节点之间交换信息。输入层1320的节点可以激活第一隐藏层1322a中的一组节点。例如,如图所示,输入层1320的每个输入节点连接到第一隐藏层1322a的每个节点。隐藏层1322a、1322b至1322n的节点可以通过对这些信息应用激活函数,来变换每个输入节点的信息。然后,从变换中得到的信息可以被传递到并可以激活下一个隐藏层1322b的节点,该节点可以执行其自己的指定函数。示例函数包括卷积、上采样、数据变换和/或任何其他合适的函数。然后,隐藏层1322b的输出可以激活下一隐藏层的节点,依此类推。最后一个隐藏层1322n的输出可以激活输出层1324的一个或多个节点,并在此处提供输出。在一些情况下,虽然神经网络1300中的节点(例如,节点1326)被示为具有多条输出线,但是节点具有单一输出,并且被示出为从节点输出的所有线表示相同的输出值。
[0151]
在一些情况下,每个节点或节点之间的互连可以具有权重,该权重是从神经网络1300的训练中导出的一组参数。一旦神经网络1300被训练,它可以被称为被训练过的神经网络,其可以用于对一个或多个对象进行分类。例如,节点之间的互连可以表示关于互连节点学习的一条信息。互连可以具有可调的数值权重,该数值权重可以被调节(例如,基于训练数据集),从而使得神经网络1300能够适应输入,并且能够随着越来越多的数据被处理而学习。
[0152]
神经网络1300被预先训练以使用不同的隐藏层1322a、1322b至1322n来处理来自输入层1320中数据的特征,以便通过输出层1324提供输出。在其中使用神经网络1300来识别图像中的对象的示例中,可以使用包括图像和标签的训练数据来训练神经网络1300。例如,可以将训练图像输入到网络中,每个训练图像具有指示每个图像中的一个或多个对象的类的标签(一般,向网络指示对象是什么以及它们具有什么特征)。在一个说明性示例中,训练图像可以包括数字2的图像,在这种情况下,图像的标签可以是[0 0 1 0 0 0 0 0 00]。
[0153]
在一些情况下,神经网络1300可以使用称为反向传播的训练处理来调整节点的权重。反向传播可以包括正向传递、损失函数、反向传递和权重更新。对一次训练迭代执行正向传递、损失函数、反向传递和参数更新。对于每组训练图像,该处理可以重复一定次数的迭代,直到神经网络1300被训练得足够好,使得各层的权重被精确调节。
[0154]
对于识别图像中的对象的示例,正向传递可以包括通过神经网络1300传递训练图像。在神经网络1300被训练之前,权重最初是随机化的。图像可以包括例如代表图像像素的数字阵列。阵列中的每个数字可以包括从0到255之间的值,其描述阵列中该位置的像素强度。在一个示例中,该阵列可以包括28
×
28
×
3的数字阵列,具有28行28列像素以及3种颜色分量(例如红色、绿色和蓝色,或者亮度和两种色度分量等)。
[0155]
对于神经网络1300的第一次训练迭代,由于在初始化时随机选择了权重,因此输出可能包括不对任何特定类给予偏好的值。例如,如果输出是具有对象包括不同类的概率的向量,则每个不同类的概率值可以相等或者至少非常相似(例如,对于十个可能的类,每个类可以具有0.1的概率值)。利用初始权重,神经网络1300不能确定低级别特征,因此不能准确确定对象的分类可能是什么。损失函数可用于分析输出中的误差。可以使用任何合适的损失函数定义。损失函数的一个示例包括均方误差(mse)。mse被定义为的损失函数定义。损失函数的一个示例包括均方误差(mse)。mse被定义为其计算实际答案减去预测(输出)答案的平方的一半的总和。损失可被设置为等于e
total
的值。
[0156]
对于第一个训练图像,损失(或误差)会很高,因为实际值将与预测输出相差很大。训练的目标是最小化损失量,以使得预测的输出与训练标签相同。神经网络1300可以通过确定哪些输入(权重)对网络的损失贡献最大来执行反向传递,并且可以调整权重,使得损失减小并最终最小化。
[0157]
可以计算损失相对于权重的导数(表示为dl/dw,其中w是特定层的权重),以确定对网络损失贡献最大的权重。在计算导数之后,可以通过更新滤波器的所有权重来执行权重更新。例如,可以更新权重,使其沿梯度的相反朝向变化。权重更新可以表示为其中w表示权重,wi表示初始权重,η表示学习率。学习率可被设置为任何合适的值,高学习率包括较大的权重更新,较低的值表示较小的权重更新。
[0158]
神经网络1300可以包括任何合适的深度网络。一个示例包括卷积神经网络(cnn),其包括输入层和输出层,在输入层和输出层之间有多个隐藏层。下面参照图14描述cnn的示例。cnn的隐藏层包括一系列卷积层、非线性层、池化层(用于下采样)和全连接层。神经网络1300可以包括除了cnn之外的任何其他深度网络,例如自动编码器、深度信念网络(dbn)、递
归神经网络(rnn)等。
[0159]
图14是卷积神经网络1400(cnn 1400)的示例。cnn 1400的输入层1420包括表示图像的数据。例如,数据可以包括表示图像像素的数字阵列,阵列中的每个数字包括从0到255之间的值,用于描述阵列中该位置的像素强度。使用前面的示例,该阵列可以包括28
×
28
×
3的数字阵列,具有28行28列的像素和3个颜色分量(例如,红色、绿色和蓝色,或者亮度和两个色度分量等)。图像可以通过卷积隐藏层1422a、可选的非线性激活层、池化隐藏层1422b和全连接隐藏层1422c传递,以在输出层1424得到输出。虽然图14中仅示出了每个隐藏层中的一个,但是普通技术人员将会理解,cnn 1400中可以包括多个卷积隐藏层、非线性层、池化隐藏层和/或全连接层。如前所述,输出可以指示对象的单个类,或者可以包括最佳描述图像中的对象的类的概率。
[0160]
cnn 1400的第一层是卷积隐藏层1422a。卷积隐藏层1422a分析输入层1420的图像数据。卷积隐藏层1422a的每个节点连接到被称为感受野的输入图像的节点(像素)区域。卷积隐藏层1422a可以被认为是一个或多个滤波器(每个滤波器对应于不同的激活或特征映射),其中滤波器的每个卷积迭代是卷积隐藏层1422a的节点或神经元。例如,滤波器在每次卷积迭代中覆盖的输入图像的区域将是滤波器的感受野。在一个说明性示例中,如果输入图像包括28
×
28阵列,并且每个滤波器(和相应的感受野)是5
×
5阵列,则在卷积隐藏层1422a中将有24
×
24个节点。节点和该节点的感受野之间的每个连接学习权重,并且在某些情况下学习总体偏置,使得每个节点学习分析其在输入图像中的特定局部感受野。隐藏层1422a的每个节点将具有相同的权重和偏置(被称为共享权重和共享偏置)。例如,滤波器具有权重(数字)阵列和具有与输入相同的深度。对于视频帧示例,滤波器的深度为3(根据输入图像的三种颜色分量)。滤波器阵列的说明性示例尺寸是5
×5×
3,对应于节点的感受野的尺寸。
[0161]
卷积隐藏层1422a的卷积特性是由于卷积层的每个节点被应用于其相应的感受野。例如,卷积隐藏层1422a的滤波器可以从输入图像阵列的左上角开始,并且可以围绕输入图像进行卷积。如上所述,滤波器的每个卷积迭代可以被认为是卷积隐藏层1422a的节点或神经元。在每次卷积迭代中,滤波器的值与相应数量的图像原始像素值相乘(例如,5
×
5滤波器阵列与输入图像阵列左上角的输入像素值的5
×
5阵列相乘)。每次卷积迭代的乘积可以相加在一起,以获取该迭代或节点的总和。接下来,根据卷积隐藏层1422a中的下一个节点的感受野,在输入图像中的下一个位置继续该处理。例如,滤波器可以向下一个感受野移动步长量。步长量可以设置为1或其他合适的量。例如,如果步长量设置为1,则每次卷积迭代时,滤波器将向右移动1个像素。在输入量的每个唯一位置处理滤波器会产生代表该位置的滤波结果的数字,从而为卷积隐藏层1422a的每个节点确定总和值。
[0162]
从输入层到卷积隐藏层1422a的映射被称为激活映射(或特征映射)。激活映射包括每个节点的值,该值代表每个位置处的输入量的过滤结果。激活映射可以包括这样的阵列,该阵列包括由输入量上的滤波器的每次迭代产生的各种总和值。例如,如果对28
×
28输入图像的每个像素(步长量为1)应用5
×
5滤波器,激活图将包括24
×
24阵列。卷积隐藏层1422a可以包括几个激活映射,以便识别图像中的多个特征。图14所示的示例包括三个激活映射。使用三个激活映射,卷积隐藏层1422a可以检测三种不同类型的特征,每个特征在整个图像上都是可检测的。
[0163]
在一些示例中,可以在卷积隐藏层1422a之后应用非线性隐藏层。非线性层可用于将非线性引入一直在计算线性运算的系统。非线性层的一个说明性示例是整流线性单元(relu)层。relu层可以将函数f(x)=max(0,x)应用于输入量中的所有值,这会将所有负激活更改为0。relu因此可以在不影响卷积隐藏层1422a的感受野的情况下增加cnn 1400的非线性特性。
[0164]
可以在卷积隐藏层1422a之后(并且当使用时,在非线性隐藏层之后)应用池化隐藏层1422b。池化隐藏层1422b用于简化来自卷积隐藏层1422a的输出中的信息。例如,池化隐藏层1422b可以取得从卷积隐藏层1422a输出的每个激活映射,并使用池化函数生成压缩激活映射(或特征映射)。最大池化是由池化隐藏层执行的函数的一个示例。池化隐藏层1422a可以使用其他形式的池化函数,例如平均池化、l2范数池化或其他合适的池化函数。池化函数(例如,最大池化滤波器、l2范数滤波器或其他合适的池化滤波器)被应用于卷积隐藏层1422a中包括的每个激活映射。在图14所示的示例中,三个池化滤波器用于卷积隐藏层1422a中的三个激活映射。
[0165]
在一些示例中,可以通过将具有步长量(例如,等于滤波器的维度,例如步长量2)的最大池化滤波器(例如,具有2
×
2的尺寸)应用于从卷积隐藏层1422a输出的激活映射,来使用最大池化。最大池化滤波器的输出包括滤波器卷积的每个子区域中的最大数量。以2x2滤波器为例,池化层中的每个单元可以汇总上一层中2
×
2个节点的区域(每个节点是激活映射中的一个值)。例如,激活映射中的四个值(节点)将在滤波器的每次迭代中由2x2最大池化滤波器进行分析,四个值中的最大值作为“max”值输出。如果这样的最大池化滤波器被应用于来自具有24
×
24节点维度的卷积隐藏层1422a的激活滤波器,那么来自池化隐藏层1422b的输出将是12
×
12节点的阵列。
[0166]
在一些示例中,也可以使用l2范数池化滤波器。l2范数池化滤波器包括计算激活映射的2
×
2区域(或其他合适的区域)中的值的平方和的平方根(而不是像在最大池化中那样计算最大值),并且使用所计算的值作为输出。
[0167]
直观地,池化函数(例如,最大池化、l2范数池化或其他池化函数)确定是否能在图像区域的任何地方找到给定特征,并丢弃精确的位置信息。这可以在不影响特征检测结果的情况下完成,因为一旦发现特征,特征的精确位置就不如相对于其他特征的近似位置重要。最大池化(以及其他池化方法)的好处是被池化的特征更少,从而减少了cnn 1400后续层所需的参数数量。
[0168]
网络中的连接的最后一层是全连接层,其将池化隐藏层1422b的每个节点连接到输出层1424中的每个输出节点。使用上述示例,输入层包括对输入图像的像素强度进行编码的28
×
28个节点;基于对三个激活映射应用5
×
5个局部感受野(用于滤波器),卷积隐藏层1422a包括3
×
24
×
24个隐藏特征节点;并且,基于对三个特征映射中的每一个的2
×
2个区域应用最大池化滤波器,池化层1422b包括具有3
×
12
×
12个隐藏特征节点的层。对该示例进行扩展,输出层1424可以包括十个输出节点。在这样的示例中,3
×
12
×
12池化隐藏层1422b的每个节点连接到输出层1424的每个节点。
[0169]
全连接层1422c可以获取先前池化层1422b的输出(其应当代表高层特征的激活映射),并确定与特定类最相关的特征。例如,全连接层1422c可以确定与特定类最相关的高层特征,并且可以包括高层特征的权重(节点)。可以计算全连接层1422c和池化隐藏层1422b
的权重之间的乘积,以获取不同类的概率。例如,如果cnn 1400正被用于预测视频帧中的对象是人,则在表示人的高级别特征(例如,有两条腿,在对象的顶部存在脸,在脸的左上和右上有两只眼睛,在脸的中间有一个鼻子,脸的底部有一张嘴,和/或人常见的其他特征)的激活映射中将出现高值。
[0170]
在一些示例中,来自输出层1424的输出可以包括m维向量(在先前的示例中,m=10),其中m可以包括在对图像中的对象进行分类时程序必须选择从中选择的类的数量。也可以提供其他示例输出。n维向量中的每个数字都可以表示对象属于某一类的概率。在一个说明性示例中,如果表示十个不同类的对象的10维输出向量是[0 0 0.05 0.8 0 0.15 0 0 0 0],则该向量指示图像是第三类对象(例如,狗)的概率为5%,该图像是第四类对象(例如,人)的概率为80%,该图像是第六类对象(例如,袋鼠)的概率为15%。类的概率可以被认为是该对象是该类的一部分的置信度。
[0171]
可由对象检测引擎204使用的基于神经网络的检测器的一个具体示例是基于cifar-10神经网络的检测器。图15是示出了cifar-10神经网络1500的示例的图。在某些情况下,可以训练cifar-10神经网络只对人和车进行分类。如图所示,cifar-10神经网络1500包括各种卷积层(conv1层1502、conv2/relu2层1508和conv3/relu3层1514)、多个池化层(pool1/relu1层1504、pool2层1510和pool3层1516)以及混合在其中的整流线性单元层。还提供了归一化层norm1 1506和norm2 1512。最后一层是ip1层1518。
[0172]
可被对象检测引擎204用来检测或分类图像中的对象的另一种基于深度学习的检测器包括ssd检测器,其是可应用于多个对象类别或类的快速单次对象检测器。ssd模型使用附接到神经网络顶部的多个特征映射的多尺度卷积边界框输出。这种表示允许ssd有效地建模不同的框形状。图16a包括图像,图16b和图16c包括示出了ssd检测器(具有vgg深度网络基础模型)如何操作的图。例如,ssd将对象与具有不同纵横比的默认框相匹配(在图16b和图16c中显示为虚线矩形)。特征映射的每个元素都有多个与之关联的默认框。任何默认框,其与真实值框的交并比(intersection-over-union)超过阈值(例如,0.4、0.5、0.6或其他合适的阈值),则被认为与该对象匹配。例如,8
×
8框中的两个(图16b中的框1602和框1604)与猫匹配,4
×
4框中的一个(图16c中的框1606)与狗匹配。ssd有多个特征映射,每个特征映射负责不同比例的对象,从而使其能够识别大范围比例的对象。例如,图16b的8
×
8特征映射中的框比图16c的4
×
4特征映射中的框小。在一个说明性示例中,ssd检测器总共可以具有六个特征映射。
[0173]
对于每个单元中的每个默认框,ssd神经网络输出长度为c的概率向量,其中c是类的数量,表示包含每个类的对象的框的概率。在某些情况下,会包含背景类,指示框中没有对象。ssd网络还输出(用于每个单元中的每个默认框的)偏移向量,该向量具有包含使默认框与底层对象的边界框匹配所需的预测偏移的四个条目。该向量以(cx,cy,w,h)格式给出,其中cx表示中心x,cy表示中心y,w表示宽度偏移,h表示高度偏移。只有当默认框中实际包含对象时,向量才有意义。对于图16a中所示的图像,除了三个匹配的框(两个用于猫,一个用于狗)之外,所有概率标签将指示背景类。
[0174]
另一种基于深度学习的检测器可由对象检测引擎204用来检测或分类图像中的对象,包括“你只需看一次”(yolo)检测器,它是ssd对象检测系统的替代。图17a包括图像,图17b和图17c包括示出yolo检测器如何操作的图。yolo检测器可以将单个神经网络应用于完
整图像。如图所示,yolo网络将图像分成多个区域,并预测每个区域的边界框和概率。这些边界框由预测的概率加权。例如,如图17a所示,yolo检测器将图像分成13
×
13个单元的网格。每个单元负责预测五个边界框。置信度分数被提供以指示预测的边界框实际上包围对象的确定程度。该分数不包括可能在框中的对象的分类,但是指示框的形状是否合适。预测的边界框如图17b所示。置信度较高的框具有较粗的边界。
[0175]
每个单元还预测每个边界框的类。例如,所有可能的类的概率分布被提供。可以检测任意数量的类,例如自行车、狗、猫、人、汽车或其他合适的对象类。边界框的置信度分数和类预测被组合成最终分数,该最终分数指示该边界框包含特定类型的对象的概率。例如,图17b中图像左侧带有粗边框的灰色框是85%确定它包含对象类“狗”。这里有169(13x 13)个网格单元,每个单元预测5个边界框,因此总共有1745个边界框。许多边界框将具有非常低的分数,在这种情况下,仅保留最终分数高于阈值(例如,高于30%概率、40%概率、50%概率或其他合适阈值)的框。图17c示出了具有最终预测的边界框和类的图像,包括狗、自行车和汽车。如图所示,从生成的总共1745个边界框中,只有图17c所示的三个边界框被保留,因为它们的最终分数最好。
[0176]
图18是示出了使用本文描述的对象验证技术通过使用雷达图像执行对象验证的处理1800的示例的流程图。在框1802处,处理1800包括获取识别在图像中检测到的第一对象的边界区域。第一对象可以包括任何被跟踪的对象。例如,在一些示例中,第一对象是车辆。在一些示例中,对象是机器人。在一些示例中,对象是飞机。
[0177]
在框1804处,处理1800包括获取包括多个地图点的地图。多个地图点对应于三维空间中的一个或多个参考位置。例如,地图可以包括来自图2的点状地图207。在一些方面,一个或多个参考位置包括三维空间中道路上的车道,如以上提供的说明性示例中所述。
[0178]
在框1806处,处理1800包括将识别第一对象的边界区域与地图中包括的多个地图点中的至少一个地图点相关联。在一些示例中,处理1800包括将来自多个地图点的地图点子集投影到图像上,以及从地图点子集中确定至少一个地图点是一个或多个参考位置上离边界区域最近的地图点。处理1800可以包括基于确定至少一个地图点是一个或多个参考位置上离边界区域最近的地图点,将该边界区域与该至少一个地图点相关联。如上所述,在一些情况下,只有具有正平行距离的地图点可以与对象的边界区域相关联。在一些示例中,使用校准数据和用于捕获图像的相机的姿态将地图点子集投影到图像上。在一些情况下,地图点子集包括被包括在用于捕获图像的相机的视野内并且处于相机的选择范围内的地图点。
[0179]
在一些实施方式中,处理1800包括确定至少一个地图点与边界区域边缘上的一个或多个点相交。在这种实施方式中,基于确定至少一个地图点与边界区域的边缘上的一个或多个点相交,该至少一个地图点被确定为最近的地图点。在一些情况下,如上所述,边界区域的边缘包括边界区域的底部边缘。
[0180]
在一些实施方式中,处理1800包括确定边界区域的边缘上的点,以及确定与来自地图点子集的其他地图点相比、至少一个地图点最靠近边界区域的边缘上的点。在这样的实施方式中,基于至少一个地图点最靠近边界区域的边缘上的点,该至少一个地图点被确定为最近的地图点。在一些情况下,如上所述,边界区域的边缘包括边界区域的底部边缘。
[0181]
在框1808处,处理1800包括使用边界区域和至少一个地图点来确定图像中检测到
的第一对象的估计三维位置和估计尺寸。
[0182]
在一些示例中,确定第一对象的估计三维位置和估计尺寸包括获取第一对象的宽度,确定第一对象的朝向在至少一个地图点处平行于地图的表面,以及基于第一对象的宽度和第一对象的朝向确定代表第一对象的三维边界框的顶点位置。顶点位置对应于最靠近用于捕获图像的相机的三维边界框的拐角(例如,如图9a和/或图9b所示)。处理1800可以包括基于顶点位置确定第一对象的估计三维位置,以及基于顶点位置和边界区域确定代表第一对象的三维边界框的长度和高度。
[0183]
在一些示例中,处理1800包括获取第一对象的分类,以及基于该分类确定第一对象的宽度。
[0184]
在一些示例中,处理1800包括获取图像的第一对象的分类,其中该分类定义对象的类型。处理1800可以包括基于第一对象的分类来确定第一对象的最小尺寸和最大尺寸,以及可以基于第一对象的最小尺寸和最大尺寸来确定第一对象的估计尺寸。例如,如上所述,由似然估计来估计的对象的对象类可用于定义目标对象的尺寸(例如,长度、宽度和/或高度)的上限和下限,其可由估计模型(例如,卡尔曼滤波器)用于确定对象的估计尺寸。
[0185]
在一些示例中,处理1800包括基于第一对象和第二对象之间的距离来确定分类的权重,其中第二对象包括用于捕获图像的相机。处理1800可以包括基于权重更新分类的累积权重。累积权重基于来自包括第一对象的多个图像的多次检测。处理1800可以包括基于分类的累积权重来确定第一对象包括由分类定义的对象类型的似然性,以及可以基于所确定的似然性和与一个或多个其他分类相关联的一种或多种似然性来确定第一对象包括该对象类型。处理1800可以包括基于由分类定义的对象类型来确定第一对象的最小尺寸和最大尺寸。上面关于等式(1)-(3)描述了说明性的示例。在一些示例中,第一对象是第一车辆,第二对象是第二车辆。在一些方面,由分类定义的对象类型包括第一车辆的车辆类型。
[0186]
在一些示例中,处理1800包括获取多个雷达测量点,其中多个雷达测量点是基于由第一对象反射的雷达信号。处理1800可以包括基于多个雷达测量点来确定第一对象的附加估计尺寸。在一些示例中,使用包括在第二对象上的多个雷达获取多个雷达测量点,其中第二对象包括用于捕获图像的相机。在一些实施方式中,处理1800包括确定雷达测量点沿着第一对象的朝向方向的最大扩展,以及基于雷达测量点沿着第一对象的朝向方向的最大扩展来确定第一对象的附加估计尺寸。在一些示例中,处理1800包括使用估计模型来确定第一对象的尺寸,在这种情况下,估计尺寸和附加估计尺寸被用作估计模型的输入。在一些实施方式中,估计模型是卡尔曼滤波器。
[0187]
在一些方面,处理1800包括从成像雷达获取雷达图像,以及基于雷达图像确定第一对象的附加估计尺寸。在一些示例中,处理1800包括使用估计模型来确定第一对象的尺寸,在这种情况下,估计尺寸和附加估计尺寸被用作估计模型的输入。在一些实施方式中,估计模型是卡尔曼滤波器。
[0188]
在一些示例中,这里描述的处理(例如,处理1800和/或这里描述的其他处理)可以由计算设备或装置来执行,诸如实现图2的系统200的计算设备。在一些示例中,计算设备可以包括图19的计算设备1900的架构。在一个示例中,处理1800可以由实现系统200的计算设备1900来执行。计算设备可以包括任何合适的设备,例如自主车辆、机器人设备、移动设备(例如,移动电话)、台式计算设备、平板计算设备、可穿戴设备和/或具有能够执行这里描述
的处理(包括处理1800)的资源能力的任何其他计算设备。在一些情况下,计算设备或装置可以包括各种组件,例如一个或多个输入设备、一个或多个输出设备、一个或多个处理器、一个或多个微处理器、一个或多个微型计算机、一个或多个相机、一个或多个传感器和/或被配置为执行这里描述的处理步骤的其他组件。在一些示例中,计算设备可以包括显示器、被配置为传递和/或接收数据的网络接口、其任意组合和/或其他组件。网络接口可以被配置为传递和/或接收基于互联网协议(ip)的数据或其他类型的数据。
[0189]
计算设备的组件可以用电路实现。例如,组件可以包括和/或可以使用电子电路或其他电子硬件来实现,电子电路或其他电子硬件可以包括一个或多个可编程电子电路(例如,微处理器、图形处理单元(gpu)、数字信号处理器(dsp)、中央处理单元(cpu)和/或其他合适的电子电路),和/或可以包括和/或使用计算机软件、固件或其任意组合来实现,以执行本文描述的各种操作。
[0190]
处理1800被图示为逻辑流程图,其操作表示可以以硬件、计算机指令或其组合来实现的一系列操作。在计算机指令的上下文中,操作表示存储在一个或多个计算机可读存储介质上的计算机可执行指令,所述计算机可执行指令当由一个或多个处理器执行时,执行所述操作。通常,计算机可执行指令包括执行特定功能或实现特定数据类型的例程、程序、对象、组件、数据结构等。这些操作被描述的顺序并不旨在被解释为限制,并且任何数量的所述操作可以以任何顺序组合和/或并行组合以执行处理。
[0191]
另外,这里描述的处理可以在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可以通过硬件或其组合实现为在一个或多个处理器上共同执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)。如上所述,代码可以存储在计算机可读或机器可读存储介质上,例如,以包括可由一个或多个处理器执行的多个指令的计算机程序的形式。计算机可读或机器可读存储介质可以是非暂时性的。
[0192]
图19示出了可以实现这里描述的各种技术的示例计算设备的示例计算设备架构1900。例如,计算设备架构1900可以实现图2所示的系统200。计算设备架构1900的组件被示为使用诸如总线的连接1905彼此电通信。示例计算设备架构1900包括处理单元(cpu或处理器)1910和计算设备连接1905,计算设备连接1905将包括计算设备存储器1915(例如只读存储器(rom)1920和随机存取存储器(ram)1925)在内的各种计算设备组件耦合到处理器1910。
[0193]
计算设备架构1900可以包括与处理器1910直接连接、紧密地连接或集成为处理器1910的一部分的高速存储器的高速缓存。计算设备架构1900可以将数据从存储器1915和/或存储设备1930复制到高速缓存1912,以供处理器1910快速访问。这样,高速缓存可以提供性能提升,从而避免处理器1910在等待数据时的延迟。这些和其他模块可以控制或被配置为控制处理器1910执行各种动作。也可以使用其他计算设备存储器1915。存储器1915可以包括具有不同性能特性的多种不同类型的存储器。处理器1910可以包括任何通用处理器以及硬件或软件服务,例如存储在存储设备1930中的服务1 1932、服务2 1934和服务3 1936,其被配置为控制处理器1910以及将软件指令并入处理器设计中的专用处理器。处理器1910可以是包含多个内核或处理器、总线、内存控制器、高速缓存等的独立系统。多核处理器可以是对称的,也可以是非对称的。
[0194]
为了实现用户与计算设备架构1900的交互,输入设备1945可以表示任何数量的输
入机制,例如用于语音的麦克风、用于手势或图形输入的触摸屏、键盘、鼠标、运动输入、语音等等。输出设备1935也可以是本领域技术人员已知的多种输出机制中的一种或多种,例如显示器、投影仪、电视、扬声器设备等。在一些情况下,多模式计算设备可以使用户能够提供多种类型的输入以与计算设备架构1900通信。通信接口1940通常可以管理用户输入和计算设备输出。在任何特定的硬件配置上运行没有任何限制,因此随着它们的发展,这里的基本特征可以容易地被改进的硬件或固件配置所替代。
[0195]
存储设备1930是非易失性存储器,并且可以是硬盘或其他类型的计算机可读介质,其可以存储可由计算机访问的数据,例如磁带、闪存卡、固态存储设备、数字多功能光碟、盒式磁带、随机存取存储器(ram)1925、只读存储器(rom)1920及其组合。存储设备1930可以包括用于控制处理器1910的服务1932、1934、1936。可以考虑其他硬件或软件模块。存储设备1930可以连接到计算设备连接1905。在一个方面,执行特定功能的硬件模块可以包括存储在计算机可读介质中的软件组件,该软件组件与诸如处理器1910、连接1905、输出设备1935等必要的硬件组件结合以执行该功能。
[0196]
术语“计算机可读介质”包括但不限于便携式或非便携式存储设备、光学存储设备以及能够存储、包含或携带指令和/或数据的各种其他介质。计算机可读介质可以包括其中可以存储数据的非暂时性介质,并且不包括以无线方式或通过有线连接传播的载波和/或暂时性电子信号。非暂时性介质的示例可以包括但不限于磁盘或磁带、诸如光盘(cd)或数字多功能光碟(dvd)的光存储介质、闪存、存储器或存储设备。计算机可读介质上可以存储代码和/或机器可执行指令,这些指令可以代表过程、函数、子程序、程序、例程、子例程、模块、软件包、类或指令、数据结构或程序语句的任意组合。代码段可以通过传递和/或接收信息、数据、实际参数(argument)、形式参数(parameter)或内存内容而耦合到另一个代码段或硬件电路。信息、实际参数、形式参数、数据等可经由包括内存共享、消息传递、令牌传递、网络传输等任何合适的方式而被传递、转发或发射。
[0197]
在一些实施例中,计算机可读存储设备、介质和存储器可以包括包含比特流等的电缆或无线信号。然而,当被提及时,非暂时性计算机可读存储介质明确地排除诸如能量、载波信号、电磁波和信号本身之类的介质。
[0198]
在以上描述中提供了具体细节,以提供对本文所提供的实施例和示例的透彻理解。然而,本领域普通技术人员将理解,实施例可以在没有这些具体细节的情况下实施。为了解释清楚,在一些情况下,本技术可以被呈现为包括单独的功能块,这些功能块包括设备、设备组件、以软件或硬件和软件的组合实现的方法中的步骤或例程。除了图中所示和/或本文所述的那些之外,可以使用附加的组件。例如,电路、系统、网络、处理和其他组件可以以框图形式示出为组件,以避免在不必要的细节上使实施例模糊。在其他情况下,可以在没有不必要的细节的情况下示出公知的电路、处理、算法、结构和技术,以避免使实施例模糊。
[0199]
各个实施例可以在上文中被描述为处理或方法,其被描绘为流程图、流图、数据流图、结构图或框图。尽管流程图可以将操作描述为顺序处理,但是许多操作可以并行或并发地执行。此外,可以重新安排操作的顺序。当处理的操作完成时,该处理被终止,但是可以有图中没有包括的附加步骤。进程可以对应于方法、函数、过程、子例程、子程序等。当进程对应于函数时,它的终止可以对应于该函数返回到调用函数或主函数。
[0200]
根据上述示例的处理和方法可以使用存储在计算机可读介质中或可从计算机可读介质获得的计算机可执行指令来实现。这样的指令可以包括例如可致使或以其他方式配置通用计算机、专用计算机或处理设备来执行特定功能或功能组的指令和数据。使用的部分计算机资源可以通过网络访问。计算机可执行指令可以是,例如二进制文件、中间格式指令(例如汇编语言、固件、源代码等)。根据所描述的示例,可用于存储在方法期间的指令、所使用的信息和/或所创建的信息的计算机可读介质的示例包括磁盘或光盘、闪存、配备有非易失性存储器的usb设备、网络存储设备等。
[0201]
根据这些公开实现处理和方法的设备可以包括硬件、软件、固件、中间件、微码、硬件描述语言或其任意组合,并且可以采用各种形式因素中的任何一种。当以软件、固件、中间件或微代码实现时,执行必要任务的程序代码或代码段(例如,计算机程序产品)可以存储在计算机可读或机器可读介质中。(多个)处理器可以执行必要的任务。形式因素的典型示例包括笔记本电脑、智能手机、移动电话、平板设备或其他小型个人电脑、个人数字助理、机架式设备、独立设备等。这里描述的功能也可以体现在外围设备或插件卡中。作为另一个示例,这种功能也可以在单个设备中运行的不同芯片或者不同处理之间在电路板上实现。
[0202]
指令、用于传达这种指令的介质、用于执行它们的计算资源以及用于支持这种计算资源的其他结构是用于提供本公开中描述的功能的示例手段。
[0203]
在前面的描述中,参照本技术的具体实施例描述了本技术的各方面,但是本领域技术人员将认识到本技术不限于此。因此,尽管这里已经详细描述了本技术的说明性实施例,但是应当理解,发明构思可以以其他方式不同地体现和应用,并且所附权利要求旨在被解释为包括这样的变化,除非受到现有技术的限制。上述申请的各种特征和方面可以单独或共同使用。此外,在不脱离本说明书的更广泛的精神和范围的情况下,实施例可以在除了这里描述的环境和应用之外的任何数量的环境和应用中使用。因此,说明书和附图被认为是说明性的,而不是限制性的。为了说明起见,方法是按特定顺序描述的。应当理解,在替代实施例中,这些方法可以以不同于所描述的顺序来执行。
[0204]
普通技术人员将会理解,在不脱离本说明书的范围的情况下,这里使用的小于(“《”)和大于(“》”)符号或术语可以分别用小于或等于(“≤”)和大于或等于(“≥”)符号来代替。
[0205]
在组件被描述为被“配置为”执行某些操作的情况下,这种配置可以例如通过设计电子电路或其他硬件以执行操作、通过对可编程电子电路(例如,微处理器或其他合适的电子电路)进行编程以执行操作或其任意组合来实现。
[0206]
术语“耦合到”是指直接或间接地被物理连接到另一组件的任何组件、和/或直接或间接地与另一组件通信(例如,通过有线或无线连接和/或其他合适的通信接口被连接到另一组件)的任何组件。
[0207]
引述集合中的“至少一个”和/或集合中的“一个或多个”的权利要求语言或其他语言表示该集合的一个成员或该集合的多个成员(以任意组合)满足该权利要求。例如,引述“a和b中的至少一个”的权利要求语言是指a、b或a和b。在另一个示例中,引述“a、b和c中的至少一个”的权利要求语言是指a、b、c或a和b,或a和c,或b和c,或a和b和c。集合中的“至少一个”和/或集合中的“一个或多个”的语言并不将该组限制为该集合中所列的项。例如,引述“a和b中的至少一个”的权利要求语言可以表示a、b或a和b,并且可以另外包括未在a和b
的集合中列出的项。
[0208]
结合本文公开的实施例描述的各种说明性逻辑块、模块、电路和算法步骤可被实现为电子硬件、计算机软件、固件或其组合。为了清楚地说明硬件和软件的这种可互换性,上文已经大体上从功能性方面对各种说明性的组件、块、模块、电路和步骤进行了描述。这种功能性用硬件还是软件实现取决于特定的应用和对整个系统施加的设计约束。技术人员可以针对每个特定应用以不同的方式实现所描述的功能,但是这种实现决策不应被解释为导致脱离本技术的范围。
[0209]
这里描述的技术也可以在电子硬件、计算机软件、固件或其任意组合中实现。这种技术可以在多种设备中的任何一种中实现,例如通用计算机、无线通信设备手机或具有多种用途的集成电路设备,包括在无线通信设备手机和其他设备中的应用。被描述为模块或组件的任何特征可以在集成逻辑设备中一起实现,或者作为分立但可互操作的逻辑设备单独实现。如果以软件实现,这些技术可以至少部分地由包括程序代码的计算机可读数据存储介质来实现,该程序代码包括当被执行时执行一个或多个上述方法的指令。计算机可读数据存储介质可以形成计算机程序产品的一部分,其可以包括封装材料。计算机可读介质可以包括存储器或数据存储介质,例如随机存取存储器(ram),例如同步动态随机存取存储器(sdram)、只读存储器(rom)、非易失性随机存取存储器(nvram)、电可擦除可编程只读存储器(eeprom)、闪存、磁或光数据存储介质等。附加地或替代地,这些技术可以至少部分地由计算机可读通信介质来实现,该计算机可读通信介质承载或传递指令形式或数据结构形式的程序代码,并且可以由计算机访问、读取和/或执行,例如传播的信号或波。
[0210]
程序代码可以由处理器执行,该处理器可以包括一个或多个处理器,例如一个或多个数字信号处理器(dsp)、通用微处理器、专用集成电路(asic)、现场可编程逻辑阵列(fpga)或其他等效的集成或分立逻辑电路。这种处理器可以被配置为执行本公开中描述的任何技术。通用处理器可以是微处理器;但是可选地,处理器可以是任何传统的处理器、控制器、微控制器或状态机。处理器也可以被实现为计算设备的组合,例如,dsp和微处理器、多个微处理器、与dps内核配合使用的一个或多个微处理器的组合或者任何其他这样的配置。因此,这里使用的术语“处理器”可以指任何前述结构、前述结构的任何组合、或者适合于实现这里描述的技术的任何其他结构或装置。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1