CN118154639A - 用于自主***及应用的对象跟踪管理 - Google Patents
用于自主***及应用的对象跟踪管理 Download PDFInfo
- Publication number
- CN118154639A CN118154639A CN202311657524.3A CN202311657524A CN118154639A CN 118154639 A CN118154639 A CN 118154639A CN 202311657524 A CN202311657524 A CN 202311657524A CN 118154639 A CN118154639 A CN 118154639A
- Authority
- CN
- China
- Prior art keywords
- objects
- tracking
- component
- detected
- vehicle
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 claims abstract description 198
- 238000012545 processing Methods 0.000 claims description 61
- 238000013135 deep learning Methods 0.000 claims description 15
- 238000004088 simulation Methods 0.000 claims description 12
- 230000008447 perception Effects 0.000 claims description 7
- 230000003190 augmentative effect Effects 0.000 claims description 6
- 230000005540 biological transmission Effects 0.000 claims description 5
- 230000003287 optical effect Effects 0.000 claims description 3
- 238000001514 detection method Methods 0.000 description 113
- 238000007726 management method Methods 0.000 description 101
- 230000008569 process Effects 0.000 description 99
- 230000006870 function Effects 0.000 description 88
- 230000015654 memory Effects 0.000 description 57
- 238000013528 artificial neural network Methods 0.000 description 44
- 238000013519 translation Methods 0.000 description 37
- 230000014616 translation Effects 0.000 description 37
- 239000013598 vector Substances 0.000 description 34
- 230000001133 acceleration Effects 0.000 description 29
- 230000008859 change Effects 0.000 description 29
- 238000004891 communication Methods 0.000 description 24
- 238000013527 convolutional neural network Methods 0.000 description 24
- 238000003860 storage Methods 0.000 description 21
- 238000004422 calculation algorithm Methods 0.000 description 17
- 238000005259 measurement Methods 0.000 description 16
- 238000012549 training Methods 0.000 description 15
- 238000010801 machine learning Methods 0.000 description 14
- 238000012217 deletion Methods 0.000 description 12
- 230000037430 deletion Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 12
- 230000002093 peripheral effect Effects 0.000 description 11
- 230000000007 visual effect Effects 0.000 description 10
- 230000003044 adaptive effect Effects 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 9
- 230000004044 response Effects 0.000 description 9
- 230000009467 reduction Effects 0.000 description 8
- 238000012360 testing method Methods 0.000 description 7
- 230000008093 supporting effect Effects 0.000 description 6
- 230000009471 action Effects 0.000 description 5
- 238000013473 artificial intelligence Methods 0.000 description 5
- 235000019800 disodium phosphate Nutrition 0.000 description 5
- 238000007667 floating Methods 0.000 description 5
- 238000013439 planning Methods 0.000 description 5
- 238000007781 pre-processing Methods 0.000 description 5
- 230000007613 environmental effect Effects 0.000 description 4
- 238000001914 filtration Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 239000011159 matrix material Substances 0.000 description 4
- 238000009877 rendering Methods 0.000 description 4
- 230000003213 activating effect Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000010276 construction Methods 0.000 description 3
- 238000012937 correction Methods 0.000 description 3
- 239000000446 fuel Substances 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 230000002123 temporal effect Effects 0.000 description 3
- 241001465754 Metazoa Species 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 2
- 238000001816 cooling Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 230000036541 health Effects 0.000 description 2
- 230000006698 induction Effects 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 125000000914 phenoxymethylpenicillanyl group Chemical group CC1(S[C@H]2N([C@H]1C(=O)*)C([C@H]2NC(COC2=CC=CC=C2)=O)=O)C 0.000 description 2
- 229920002451 polyvinyl alcohol Polymers 0.000 description 2
- 235000019422 polyvinyl alcohol Nutrition 0.000 description 2
- 238000011176 pooling Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000012706 support-vector machine Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 description 1
- 241000251468 Actinopterygii Species 0.000 description 1
- 101100248200 Arabidopsis thaliana RGGB gene Proteins 0.000 description 1
- 102100035964 Gastrokine-2 Human genes 0.000 description 1
- 101001075215 Homo sapiens Gastrokine-2 Proteins 0.000 description 1
- 102100030148 Integrator complex subunit 8 Human genes 0.000 description 1
- 101710092891 Integrator complex subunit 8 Proteins 0.000 description 1
- 241000699670 Mus sp. Species 0.000 description 1
- 206010034960 Photophobia Diseases 0.000 description 1
- 241000700605 Viruses Species 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000002146 bilateral effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000007621 cluster analysis Methods 0.000 description 1
- 230000001149 cognitive effect Effects 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 238000002485 combustion reaction Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000001815 facial effect Effects 0.000 description 1
- 230000005669 field effect Effects 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 238000012905 input function Methods 0.000 description 1
- 208000013469 light sensitivity Diseases 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000011551 log transformation method Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000001693 membrane extraction with a sorbent interface Methods 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 230000000116 mitigating effect Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 238000000513 principal component analysis Methods 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 238000002310 reflectometry Methods 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 230000004043 responsiveness Effects 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 230000035939 shock Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000000153 supplemental effect Effects 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000013526 transfer learning Methods 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
- 238000010396 two-hybrid screening Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/246—Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/62—Extraction of image or video features relating to a temporal dimension, e.g. time-based feature extraction; Pattern tracking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/50—Context or environment of the image
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10024—Color image
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20081—Training; Learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30108—Industrial image inspection
- G06T2207/30156—Vehicle coating
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Traffic Control Systems (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了用于自主***及应用的对象跟踪管理,在各个示例中,本文中描述了用于自主或半自主***和应用的对象跟踪管理。公开了可基于一个或更多个标准来限制被跟踪的对象的数目的***和方法。例如,当被检测对象的数目超过阈值时,被跟踪的对象的数目可限于阈值数目的对象。***和方法可使用与被检测对象相关联的参数来确定与被检测对象相关联的优先级分数,且可接着确定仅跟踪具有最高分数的被检测对象(例如,高优先级对象)。因此,可减少***的延时和计算,同时仍维持关于安全关键对象的跟踪。
Description
背景技术
对象跟踪——诸如基于相机的对象跟踪——是自主和/或半自主机器的环绕相机视觉(例如,感知)管线的基本组件。例如,当被检测对象出现在连续的相机图像或其他传感器数据表示中时,通过给它们分配唯一的标识(ID)号,软件可以用于跟踪检测的对象。对象跟踪的准确性在鲁棒的距对象的距离和对象速度估计中发挥关键性作用,且用于减轻遗漏和假阳性对象检测。通过减轻遗漏和假阳性对象检测,防止这些错误传播到自主和/或半自主***的规划和控制功能中,该功能做出关于控制自我机器的各种决定。
存在多种不同途径来跟踪环绕视觉***中的对象。作为非限制性示例,这些方法可包括早期级融合型***,所述早期级融合型***从不同传感器用不同时间戳拍摄多个图像(或其他传感器数据表示)、学习和提取深度神经网络(DNN)框架中的特征、以及输出具有对应的三维(3D)信号(例如,位置、速度、加速度、形状、类别等)的被跟踪对象列表。对象***的另一个示例包括中级融合型***,其从每个相机图像获取被检测对象的列表,融合检测,跟踪检测,并且输出被跟踪对象的最终列表。在这样的示例中,在存在N个相机的情况下,可将N个对象列表输入到***。每个被检测对象可以包括二维(2D)传感器空间(例如,图像空间)中的对象形状和位置,或者可以包括3D世界(例如,世界空间)中的位置和形状。在3D世界中表示位置和形状的情况下,在3D中跟踪对象。另一示例包括后期级融合型***,其将来自每一传感器数据表示的对象的列表用作输入,其中列表中的对象可具有相关联的时间信息,例如3D对象速度和/或加速度。在这样的示例中,可以独立地在每个传感器中跟踪对象以计算时间信号。
在许多情况下,这些跟踪方法跟踪使用例如环绕视觉***检测的大量对象。例如,自主和/或半自主车辆可以使用环绕视觉***检测数百个对象,诸如其他车辆、行人、动物、标志、结构等。然而,跟踪这样大量的对象可能引起诸如自主和/或半自主车辆的***出现问题。例如,跟踪大量对象可能需要自主和/或半自主车辆的大量计算资源,这可减少自主和/或半自主车辆的其他功能。此外,跟踪大量对象会增加对象***的延时,这进而进一步影响自主和/或半自主车辆的规划和/或控制功能。
因为这一点,一些跟踪方法可以通过用新跟踪替换旧跟踪或通过一旦达到阈值就不创建任何新跟踪来将针对对象创建的跟踪(track)的数量限制为例如阈值数目的跟踪。例如,在达到跟踪的阈值数目之后,跟踪方法可不再为新检测到的对象创建新跟踪。虽然限制跟踪的数目可帮助节省计算资源和/或减少延时,但限制跟踪的数目还可导致不跟踪安全关键对象。例如,如果用于自主和/或半自主车辆的跟踪***达到跟踪的阈值数目,使得跟踪***不再为新检测到的对象创建新的跟踪,则跟踪***可以不跟踪处于自主和/或半自主机器的路径中的新对象或者可以进入自主和/或半自主机器的路径。
发明内容
本公开的实施例涉及自主和/或半自主***和应用的对象跟踪管理。公开了可基于一个或更多个标准来限制被跟踪的对象的数目同时保持对更安全关键对象的跟踪的***和方法。例如,被跟踪的对象的数目可被限制为阈值数目的对象,诸如十个对象、五十个对象、一百个对象、一千个对象和/或任何其他数量的对象。在一些实施例中,例如当被检测对象的数目超过对象的阈值数目时,所述***和方法可使用与被检测对象相关联的参数来确定与被检测对象相关联的优先级分数。参数可包含(但不限于)到对象的距离、与对象相关联的方向、与对象相关联的分类、与对象相关联的碰撞时间(TTC)估计和/或任何其他参数。所述***和方法可随后确定具有最高分数的被检测对象(例如,高优先级对象)对于跟踪是重要的,而具有最低分数的被检测对象(例如,低优先级对象)对于跟踪不是那么重要。结果,较低优先级对象可以是其跟踪被删除(如果已被包括在被跟踪对象中)或不被添加的对象(如果是新对象)。
与常规***(如以上描述的那些***)相比,当前***可以使用提高车辆或其他机器的安全性的标准来确定跟踪哪些对象。例如,且如上所述,常规***可确定何时已创建阈值数目的跟踪,且接着停止为新检测到的对象创建新跟踪。然而,这可能引起车辆的安全问题,因为常规***可能制止为比其他被跟踪对象对安全更重要的新检测到的对象创建跟踪,其他被跟踪对象诸如为位于车辆附近的对象和/或沿车辆的路径定位的对象。相反,在一些实施例中,当前***使用标准来识别高优先级对象(例如,对跟踪更重要或关键的对象)和低优先级对象(例如,对跟踪不太重要或关键的对象),然后使用那些确定来确定要跟踪哪些对象。以此方式,当前***能够跟踪较高优先级的对象中的每一者,同时仍允许执行对象跟踪所需的计算资源的量(相对于跟踪每个被检测对象)的减少。因此,在管理对计算的利用(draw on compute)时维持自主或半自主***的安全性。
附图说明
下面参考附图详细描述用于自主或半自主***和应用的对象跟踪管理的本***和方法,其中:
图1示出了根据本公开的一些实施例的管理用于自主或半自主机器和应用的对象跟踪的过程的示例数据流程图;
图2A至图2B示出了根据本公开的一些实施例的选择用于跟踪的被检测对象的示例;
图3A至图3B示出了根据本发明的一些实施例的跟踪对象的示例;
图4示出了根据本公开的一些实施例的针对自主机器和应用联合使用二维(2D)和三维(3D)跟踪的过程的示例数据流程图;
图5示出了根据本公开的一些实施例的与图像中描绘的对象相关联的特征点的示例;
图6A示出了根据本公开的一些实施例的确定与图像中描绘的对象相关联的边界形状的示例;
图6B示出了根据本公开的一些实施例的确定与环境内的一个或更多个对象相关联的一个或更多个位置的示例;
图7A至图7D示出了根据本公开的一些实施例的预测与被跟踪对象相关联的2D状态信息的示例;
图8示出了根据本发明的一些实施例的预测与被跟踪对象相关联的3D状态信息的示例;
图9示出了根据本公开的一些实施例的确定与被检测对象相关联的2D成本的示例;
图10示出了根据本公开的一些实施例的确定与被检测对象相关联的3D成本的示例;
图11示出了根据本公开的一些实施例的使用关联列表来确定被跟踪对象与被检测对象之间的关联的示例;
图12示出了根据本公开的一些实施例的更新与所跟踪的对象相关联的状态的示例;
图13示出了根据本公开的一些实施例在一段时间内对对象执行跟踪管理的示例;
图14至图15是示出根据本公开的一些实施例的用于管理与对象相关联的跟踪的方法的流程图;
图16是示出根据本公开的一些实施例的使用联合的2D和3D跟踪来跟踪对象的方法的流程图;
图17是示出根据本公开的一些实施例的一种用于使用在不同时间实例处描绘对象的多个图像来跟踪对象的方法的流程图;
图18是示出根据本公开的一些实施例的用于执行对对象的跟踪管理的方法的流程图;
图19A是根据本公开的一些实施例的示例自主车辆的图示;
图19B是根据本公开的一些实施例的图19A的示例自主车辆的相机位置和视野的示例;
图19C是根据本公开的一些实施例的图19A的示例自主车辆的示例***架构的框图;
图19D是根据本公开的一些实施例的用于在基于云的服务器与图19A的示例自主车辆之间通信的***图;
图20是适合用于实现本公开的一些实施例的示例计算设备的框图;以及
图21是适合用于实现本公开的一些实施例的示例数据中心的框图。
具体实施方式
公开了与用于自主和/或半自主***和应用的对象跟踪管理相关的***和方法。尽管本公开可关于示例自主或半自主车辆或机器1900(可替代地,在本文中称为“车辆1900”或“自我机器1900”,其示例相对于图19A至图19D进行描述)进行描述,但这并不旨在进行限制。例如,本文所述的***和方法可由但不限于非自主车辆或机器、半自主车辆或机器(例如,在一个或更多个自适应驾驶员辅助***(ADAS)中)、自主车辆或机器、有人驾驶和无人驾驶机器人或机器人平台、仓库车辆、越野车辆、耦接到一个或更多个拖车的车辆、飞行船、船、穿梭机、紧急响应车辆、摩托车、电动或机动自行车、飞机、施工车辆、水下飞行器、无人机和/或其他车辆类型使用。此外,尽管本公开可以关于用于自主和/或半自主机器的对象跟踪来描述,但是这不旨在是限制性的,并且本文描述的***和方法可以用于增强现实、虚拟现实、混合现实、机器人技术、安全和监视、自主或半自主机器应用和/或可以使用对象跟踪的任何其他技术空间。
公开了一种例如通过使用一种或更多种二维(2D)跟踪和/或三维(3D)跟踪技术来跟踪对象的***。***然后可以生成表示被跟踪对象的状态的数据。在一些示例中,可使用2D字段(例如,2D状态信息)、3D字段(例如,3D状态信息)和/或附加字段(例如,附加状态信息)来表示状态。2D字段可以包括但不限于边界形状列表、向量列表(例如,指示与本文更详细描述的对象相关联的平移和/或尺度变化(scale change)的转换向量)、特征描述符列表(例如,特征点列表)等。另外,3D字段可以包括但不限于对象形状的列表(例如,质心、宽度、高度、长度)、对象位置的列表(例如,坐标、定向等)、速度的列表、加速度的列表、对象围栏/边界点的列表等。此外,附加(或替代)字段可以包括但不限于:与对象相关联的标识符的列表、对象分类的列表(在一些示例中,具有相关联的概率)、对象状态的列表(例如,停止、移动等)、可见性/遮挡信息、置信度的列表(位置、速度、加速度等的方差)、与检测相关联的时间戳等。
在跟踪对象时,***可以使用与对应于被跟踪对象的被检测对象相关联的状态信息来更新被跟踪对象的状态。例如,一个或更多个***可以使用与被检测对象相关联的状态信息至少更新边界形状、向量、特征描述符、对象位置、对象形状、速度、加速度、围栏/边界点、分类、一个或更多个置信度等。然后,一个或更多个***可以针对被一个或更多个***跟踪的一个或更多个其他对象(例如,每个对象)执行类似过程。照此,一个或更多个***可以使用2D和/或3D跟踪来跟踪对象,然后使用2D和/或3D状态信息来更新与被跟踪对象相关联的状态。
在某些示例中并且如本文描述的,一个或更多个***可以使用一个或更多个标准来限制被跟踪的对象的数目。例如,一个或更多个***可以使用被配置成用于对被检测对象进行优先级排序的组件(也称为“跟踪管理组件”)。在一些示例中,跟踪管理组件可基于被检测对象的数目满足(例如,等于或大于)阈值数目的对象来开始对被检测对象进行优先级排序。阈值数目的对象可包括但不限于十个对象、五十个对象、一百个对象、一千个对象和/或任何其他数量的对象。在一些示例中,跟踪管理组件可基于被检测对象的数目接近阈值数目的对象(例如,在阈值数目内,诸如五、十、二十等)来开始对被检测对象进行优先级排序。尽管如此,在一些示例中,跟踪管理组件可以总是对被检测对象进行优先级排序。
在某些示例中,该跟踪管理组件至少基于与被检测对象相关联的参数对被检测对象进行优先级排序。与被检测对象相关联的参数可包含(但不限于)被检测对象的分类(例如,行人、动物、建筑物、车辆、标志、路缘、驾驶表面,等等)、从车辆到被检测对象的距离、从车辆到被检测对象的方向(例如,被检测对象是否沿着车辆的路径定位),与被检测对象相关联的碰撞时间(TTC)、与被检测对象相关联的置信度(例如,指示被检测对象是否是实际对象的置信度),被检测对象的速度、被检测对象的加速度、被检测对象的行进方向、被检测对象正在导航的车道、和/或任何其他参数。在一些示例中,一个或更多个***使用图像数据或更一般地由一个或更多个图像传感器或其他传感器类型(诸如,一个或更多个RADAR传感器、一个或更多个LiDAR传感器等)生成的传感器数据来确定参数中的一个或更多个参数。
在一些示例中,跟踪管理组件可以使用与被检测对象相关联的参数的值来确定被检测对象的分数,其中这些分数与优先级相关联。当确定分数时,跟踪管理组件可使用对参数中的一个或更多个进行加权的算法。例如,算法可以提供第一参数的第一权重(例如,到被检测对象的距离)、第二参数的第二权重(例如,被检测对象的分类)、第三参数的第三权重(例如,到被检测对象的方向)等等。通过向特定参数提供比其他参数更大的权重,跟踪管理组件可以使对车辆安全关键的被检测对象优先于非安全关键的被检测对象。例如,位于车辆附近和/或沿车辆的当前路径的被检测对象可能比具有高速度但位于距车辆远距离的被检测对象对车辆更安全关键。
在一些示例中,当确定这些分数时,该跟踪管理组件可以使用与被检测对象中的一个或更多个相关联的时间信息。例如,如果被检测对象包括一个或更多个***已经跟踪的对象(例如,已经包括当前跟踪),则跟踪管理组件可以进一步使用一个或更多个先前的分数来确定分数。例如,跟踪管理可以基于当前分数和先前分数中的一个或更多个(例如,阈值数目)的平均值来确定分数。然而,在其他示例中,当确定分数时,跟踪管理组件可不使用时间信息,使得每个被检测对象(包括新检测到的对象和已经跟踪的对象)使用相同的标准进行评分。
跟踪管理组件可以使用这些分数来生成基于这些分数对被检测对象进行排序的数据(例如,表示列表的数据)。例如,具有最高分数的被检测对象可以是第一位的,随后是具有第二高分数的被检测对象,随后是具有第三高分数的被检测对象,等等。跟踪管理组件随后可基于该数据来选择用于跟踪的被检测对象。在一些示例中,跟踪管理组件选择阈值数目的被检测对象,诸如用于激活跟踪管理组件的阈值数目的对象。在一些示例中,跟踪管理组件选择具有最高分数的阈值数目的对象。例如,如果跟踪管理组件确定用于两百个被检测对象的两百个分数,但是跟踪管理组件仅选择一百个被检测对象进行跟踪,则跟踪管理组件可选择具有一百个最高分数的一百个被检测对象。
在一些示例中,跟踪管理组件可以生成表示所选择的对象的数据、表示需要创建的跟踪的对象的数据、和/或表示需要终止当前跟踪的对象的数据。一个或更多个***然后可以使用该数据来执行一个或更多个过程。对于第一示例,如果跟踪管理组件选择新的且不与当前跟踪相关联的被检测对象,则一个或更多个***可以使得针对被检测对象创建新的跟踪。对于第二示例,如果跟踪管理组件没有选择已经与当前跟踪相关联的被检测对象,则一个或更多个***可以终止与被检测对象相关联的当前跟踪(但是这个过程可以被搁置,直到在一定数量的帧和/或一段时间内始终没有检测到对象)。仍然,对于第三示例,如果跟踪管理组件选择已经与当前跟踪相关联的被检测对象,则一个或更多个***可以更新与被检测对象相关联的当前跟踪的状态信息。
在一些示例中,一个或更多个***在不同时间实例处执行跟踪对象和/或更新状态信息的这些过程。例如,一个或更多个***可以每隔一秒、每秒一次、每秒两次、每秒十次、每秒三十次、每秒六十次等执行这些过程。在一些示例中,一个或更多个***执行这些过程的频率可以基于传感器数据,诸如与传感器数据相关联的帧速率。对于第一示例,一个或更多个***可以针对与每个时间实例相关联的每个帧执行这些过程。例如,如果与传感器数据相关联的帧速率是每秒六十帧,则一个或更多个***可以每秒六十次地执行这些过程。对于第二示例,一个或更多个***可以针对每个其他帧、每个第三帧、每个第四帧等执行这些过程。例如,并且再次,如果与传感器数据相关联的帧速率是每秒六十帧,则一个或更多个***可以使用每隔一个帧每秒三十次地执行这些过程。
本文描述的***和方法可以由以下各项使用,但不限于:非自主车辆或机器、半自主车辆或机器(例如,在一个或更多个自适应驾驶员辅助***(ADAS)中)、自主车辆或机器、有人驾驶和无人驾驶机器人或机器人平台、仓库车辆、越野车辆、耦接到一个或更多个拖车上的车辆、飞行船、船、穿梭机、紧急响应车辆、摩托车、电动或机动自行车、飞机、施工车辆、水下飞行器、无人机和/或其他车辆类型。进一步,本文描述的***和方法可用于各种目的,作为示例而非限制,用于机器控制、机器运动、机器驾驶、合成数据生成、模型训练、感知、增强现实、虚拟现实、混合现实、机器人、安全和监视、对象跟踪、自主或半自主机器应用、深度学习、环境模拟、对象或动作者模拟和/或数字孪生、数据中心处理、会话AI、光传输模拟(例如,光线跟踪、路径跟踪等)、用于3D资产的协作内容创建、云计算和/或任何其他合适的应用。
所公开的实施例可以包括在多种不同***中,如汽车***(例如,用于自主或半自主机器的控制***、用于自主或半自主机器的感知***),使用机器人实现的***、空中***、医疗***、划船***、智能区域监视***、用于执行深度学习操作的***、用于执行模拟操作的***、用于执行对象跟踪的***、用于执行数字孪生操作的***、使用边缘设备实现的***、包括一个或更多个虚拟机(VM)的***、用于执行合成数据生成操作的***、至少部分地在数据中心中实现的***,用于执行会话AI操作的***、用于执行光传输模拟的***、用于执行3D资产的协作内容创建的***、至少部分地使用云计算资源实现的***,和/或其他类型的***。
图1示出了根据本公开的一些实施例的管理用于自主或半自主***和应用的对象跟踪的过程的示例数据流程图。应当理解,本文所述的这种和其他布置仅作为示例进行阐述。除了或代替所示的布置和元件,可使用其他布置和元件(例如,机器、接口、功能、次序、功能分组等),并且可完全省略一些元件。进一步,本文描述的许多元件是可以被实现为分立或分布式组件或与其他组件结合、和以任何合适的组合和位置的功能实体。本文描述为由实体执行的各个功能可由硬件、固件和/或软件执行。例如,各个功能可以通过执行存储在存储器中的指令的处理器来实现。在一些实施例中,本文描述的***、方法和过程可以使用与图19A至图19D的示例自主车辆1900、图20的示例计算设备2000、和/或图21的示例数据中心2100的那些类似的组件、特征、和/或功能来执行。
过程100可以包括被配置成用于使用对象数据104跟踪对象的跟踪组件102。在一些示例中,对象数据104可包括表示一个或更多个对象的传感器数据,例如图像数据、RADAR数据、LiDAR数据等。在一些示例中,对象数据104可表示与图像数据相关联的特征点,其在本文中更详细地描述。另外,在一些示例中,对象数据104可以表示与一个或更多个被检测对象和/或一个或更多个被检测对象所位于的环境相关联的一个或更多个状态,其中对象数据104是基于处理传感器数据来生成的。与对象相关联的一个或更多个状态可以包括但不限于指示对象在一个或更多个图像(例如描绘对象的每一图像)内的位置的一个或更多个边界形状、与对象相关联的形状(例如,质心、宽度、高度、长度)、与对象相关联的位置(例如,坐标、定向等)、与对象相关联的速度,与对象相关联的加速度、与对象相关联的围栏/边界点、与对象相关联的分类、与对象相关联的状态(例如,停止、移动等)、可见性/遮挡信息等。
如本文将更详细描述的,跟踪组件102可以使用一个或更多个组件(诸如预测组件、关联组件、更新组件、创建组件和/或删除组件)来处理输出数据104。基于该处理,组件中的一个或更多个(例如,更新组件)可以输出检测数据106。在一些示例中,检测数据106可以表示由跟踪组件102检测到的对象的标识符、当前正由跟踪组件102跟踪的对象的标识符、与检测到的和/或被跟踪的对象相关联的状态信息、和/或与对象相关联的任何其他信息。
如本文所描述的,这些状态可以使用2D字段(例如,2D状态信息)、3D字段(例如,3D状态信息)、和/或附加字段(例如,附加状态信息)来表示。2D字段可以包括但不限于边界形状列表、向量列表(例如,指示与本文更详细描述的对象相关联的平移和/或缩放变化的转换向量)、特征描述符列表(例如,特征点列表)等。另外,3D字段可以包括但不限于对象形状的列表(例如,质心、宽度、高度、长度)、对象位置的列表(例如,坐标、取向等)、速度的列表、加速度的列表、对象围栏/边界点的列表等。此外,附加(或替代)字段可以包括但不限于:与对象相关联的标识符的列表、对象分类的列表(在一些示例中,具有相关联的概率)、对象状态的列表(例如,停止、移动等)、可见性/遮挡信息、置信度的列表(位置、速度、加速度等的方差)、与检测相关联的时间戳等。
过程100可以包括跟踪管理组件108,该跟踪管理组件被配置成用于至少使用检测数据106来管理对象的跟踪。虽然图1的示例将跟踪管理组件108示出为与跟踪组件102分离,但是在其他示例中,并且如本文更详细地描述的,跟踪管理组件108可被包括作为跟踪组件102的一部分。例如,跟踪管理组件108可被包括作为跟踪组件102的更新组件、创建组件和/或删除组件的一部分。
在一些示例中,跟踪管理组件108可以连续地处理来自跟踪组件102的检测数据106。在其他示例中,跟踪管理组件108可基于一个或更多个事件的发生来处理来自跟踪组件102的检测数据106。例如,当检测的对象的数目不满足(例如,低于)阈值数目的对象时,跟踪管理组件108(或跟踪管理组件108的一个或更多个组件)可以被去激活(例如,关闭、制止处理、制止提供电力等),并且当检测的对象的数目满足(例如,等于或大于)阈值数目的对象时,跟踪管理组件108(或跟踪管理组件108的一个或更多个组件)可以被激活(例如,打开、处理、接收电力等)。在这样的示例中,激活和/或去激活跟踪管理组件108可节省计算资源,这在本文中更详细地描述。
如图所示,过程100可以包括至少处理检测数据106的跟踪管理组件108的阈值组件110。例如,阈值组件110可被配置成处理检测数据106以确定由跟踪组件102检测到的对象的数目是否满足(例如,等于或大于)对象的阈值数目和/或对象的数目是否不满足(例如,小于)对象的阈值数目。如本文所描述的,对象可以包括当前正被跟踪组件102跟踪的一个或更多个对象和被跟踪组件102新检测到的一个或更多个对象两者。此外,如本文所描述的,阈值数目的对象可以包括但不限于十个对象、五十个对象、一百个对象、一千个对象和/或任何其他数量的对象。
在一些示例中,基于阈值组件110确定对象的数目不满足对象的阈值数目,跟踪管理组件108的其余组件可停止执行对检测数据106的任何进一步处理。这是因为跟踪组件102能够针对每个被检测对象生成跟踪(例如,更新当前跟踪,为新检测到的对象生成新跟踪等),而跟踪的总数目不超过阈值数目。然而,基于阈值组件110确定对象的数目满足对象的阈值数目,跟踪管理组件108的其余组件可执行以下过程中的一个或更多个。
例如,过程100可以包括跟踪管理组件108的评分组件112确定被检测对象的分数。如本文中所描述,评分组件112可确定每个被检测对象的相应分数,其中相应分数指示用于跟踪被检测对象的优先级。在一些示例中,优先级可以基于车辆的风险等级。例如,与对象相关联的分数越高,车辆可能在环境周围导航时与对象碰撞的风险越大。此外,与对象相关联的分数越低,车辆在环境周围导航时可能与对象碰撞的风险越低。
评分组件112可以使用与被检测对象相关联的参数来确定分数。如本文所描述的,与被检测对象相关联的参数可以包括但不限于被检测对象的分类、从车辆到被检测对象的距离,从车辆到被检测对象的方向(例如,被检测对象是否沿着车辆的路径定位)、到被检测对象的碰撞时间(TTC)、与被检测对象相关联的置信度(例如,指示被检测对象是否是实际对象的置信度)、被检测对象的速度、被检测对象的加速度、被检测对象的行进方向、被检测对象正在导航的车道,和/或任何其他参数。在一些示例中,可使用图像数据确定所述参数中的一个或更多个。在一些示例中,可以使用诸如一个或更多个RADAR传感器、一个或更多个LiDAR传感器等的一个或更多个其他传感器来确定参数中的一个或更多个。
在一些示例中,评分组件112可以使用对参数中的一个或更多个进行加权的算法来确定被检测对象的分数。例如,评分组件112可使用以下算法来确定分数:
在等式(1)中,x可包括所选参数的值,并且w可包括与该参数相关联的权重。在一些示例中,与对于车辆和/或被检测对象的安全不太重要的一个或更多个其他参数相比,等式(1)可以将对于车辆和/或被检测对象的安全更重要的一个或更多个参数加权得更高。对于第一示例,相比于与对象的分类相关联的参数,等式(1)可以向与从车辆检测到的距离相关联的参数提供更大的权重。对于第二示例,相比于与对象的分类相关联的参数,等式(1)可以向与被检测对象相对于车辆的方向相关联的参数(例如,被检测对象是否沿着车辆的路径定位)提供更大的权重。
在一些示例中,评分组件112可以在确定评分时使用与被检测对象中的一个或更多个相关联的时间信息。例如,如果被检测对象包括跟踪组件102已经跟踪的对象(例如,已经包括跟踪),则评分组件112还可以使用一个或更多个先前分数来确定分数。例如,评分组件112可以基于当前分数和先前分数中的一个或更多个(例如,阈值数目)的平均值来确定分数。然而,在其他实例中,评分组件112可在确定评分时不使用时间信息,使得每一被检测对象(包括新检测到的对象和已经跟踪的对象)使用相同标准进行评分。
过程100可以包括跟踪管理组件108的排序组件114至少基于该分数对被检测对象进行排序。例如,排序组件114可以基于分数以降序对被检测对象进行排序。例如,排序组件114可以排序被检测对象,使得具有最高分数的被检测对象是第一个,具有第二高分数的被检测对象是第二个,具有第三高分数的被检测对象是第三个,等等。排序组件114然后可以生成排序数据116,排序数据116表示被检测对象的排序。例如,排序数据116可以表示被检测对象的列表,该列表基于排序组件114如何对被检测对象进行排序(例如,以降序)来布置。
过程100可以包括选择组件118,该选择组件处理对象排序数据116并且基于该处理选择一个或更多个被检测对象以进行跟踪和/或选择一个或更多个被检测对象不进行跟踪。例如,选择组件118可以选择包括最高分数的阈值数目的被检测对象进行跟踪,并且选择剩余的对象不进行跟踪。在这样的示例中,阈值数目的被检测对象可以包括阈值组件110所使用的相同阈值数目的对象,或者可以包括不同阈值数目的被检测对象。
在某些示例中,选择组件118可以另外地和/或替代地在选择被检测对象时使用评分阈值。例如,选择组件118可以确定:包括满足(例如,等于或大于)阈值分数的分数的被检测对象可以总是被跟踪。对于第一示例,如果待跟踪对象的阈值数目包括一百个对象并且被检测对象的数目包括一百个对象,则选择组件118可以最初选择具有最高一百个分数的前一百个被检测对象来跟踪。然而,如果未被选择的被检测对象中的一个包括仍满足阈值分数的分数,则选择组件118可以仍选择要跟踪的该被检测对象,即使其将使被跟踪对象的总数目高于对象的阈值数目。选择组件118可以执行这样的过程以便确保具有足够高的分数(等同于对应对象的潜在安全关键性)的每个被检测对象被跟踪。
对于第二个示例,如果被检测对象的数目包括一百五十个对象,则评分组件112可以仅选择与满足阈值分数的分数相关联的被检测对象进行跟踪。在这样的示例中,选择组件118可以在选择被检测对象进行跟踪时不使用阈值数目的对象。相反,选择组件118可以选择对车辆造成某种安全风险的被检测对象进行跟踪,同时确定不跟踪对车辆不造成安全风险的被检测对象。虽然这些是选择组件118可以如何选择被检测对象以进行跟踪的一些示例技术,但是在其他示例中,选择组件118可以使用附加的和/或替代的技术。
例如,图2A至图2B示出了根据本公开的一些实施例的选择用于跟踪的被检测对象的示例。如图所示,评分组件114可以在一段时间206内为被检测对象204(1)-(10)(也以单数形式称为“对象204”或以复数形式称为“多个对象204”)确定分数202(1)-(33)(以单数形式称为“分数202”或以复数形式称为“多个分数202”)。在图2A至图2B的示例中,可以创建的跟踪的阈值数目是五个跟踪。然而,在其他示例中,阈值数目的跟踪可以包括任何其他数量的跟踪。
如图所示,在第一时间T(1),排序组件114可以生成排序列表208(1),所述排序列表基于由评分组件112确定的分数202(1)-(4)对由跟踪组件102检测到的对象204(1)-(4)进行排序。例如,对象204(1)可以与最高分数202(1)相关联,对象204(2)可以与第二高分数202(2)相关联,对象204(3)可以与第三最高分数202(3)相关联,等等。由于在第一时间T(1)检测到的对象204(1)-(4)的总数小于跟踪的阈值数目,因此选择组件118可以选择对象204(1)-(4)中的每一个进行跟踪,这由实线表示。
接下来,在第二时间T(2),排序组件114可以生成排序列表208(2),该排序列表基于由评分组件112确定的分数202(6)-(10)对由跟踪组件102检测到的对象204(1)-(5)进行排序。例如,对象204(1)可以与最高分数202(5)相关联,对象204(2)可以与第二高分数202(6)相关联,对象204(3)可以与第三高分数202(7)相关联,等等。由于在第二时间T(2)检测到的对象204(1)-(5)的总数等于跟踪的阈值数目,因此选择组件118可以选择对象204(1)-(5)中的每个对象进行跟踪,这由实线表示。
接下来,在第三时间T(3),排序组件114可以生成排序列表208(3),该排序列表基于由评分组件112所确定的分数202(10)-(15)来对由跟踪组件102检测到的对象204(1)-(6)进行排序。例如,对象204(6)可以与最高分数202(10)相关联,对象204(2)可以与第二高分数202(11)相关联,对象204(4)可以与第三高分数202(12)相关联,等等。由于在第三时间T(3)处检测到的对象204(1)-(6)的总数现在大于跟踪的阈值数目,因此选择组件118可以选择对象204(2)-(6)中的每一个进行跟踪,这由实线表示。另外,选择组件118可以选择对象204(1)以进行不跟踪,这由虚线表示。
接下来,在第四时间T(4),排序组件114可以生成排序列表208(4),该排序列表基于由评分组件112确定的分数202(16)-(21)对由跟踪组件102检测到的对象204(2)-(7)进行排序。例如,对象204(6)可以与最高分数202(16)相关联,对象204(2)可以与第二高分数202(17)相关联,对象204(4)可以与第三高分数202(18)相关联,等等。由于在第四时间T(4)检测到的对象204(2)-(7)的总数再次大于跟踪的阈值数目,因此选择组件118可以选择对象204(2)-(6)中的每个对象进行跟踪,这由实线表示。另外,选择组件118可以选择对象204(7)不进行跟踪,或者可以不选择对象204(7)进行跟踪,这由虚线表示。
接下来,在第五时间T(5),排序组件114可以生成排序列表208(5),该排序列表基于由评分组件112确定的分数202(22)-(28)对由跟踪组件102检测到的对象204(2)-(3)、204(5)-(6)、和204(8)-(10)进行排序。例如,对象204(6)可以与最高分数202(22)相关联,对象204(2)可以与第二高分数202(23)相关联,对象204(8)可以与第三高分数202(24)相关联,等等。由于在第五时间T(5)处检测到的对象204(2)-(3)、204(5)-(6)和204(8)-(10)的总数再次大于跟踪的阈值数目,因此选择组件118可以选择对象204(2)、204(5)-(6)、204(8)和204(10)中的每一个进行跟踪,这由实线表示。另外,选择组件118可以选择对象204(3)和204(9)中的每一者不进行跟踪,这由虚线表示。
接下来,在第六时间T(6),排序组件114可以生成排序列表208(6),该排序列表基于由评分组件112确定的分数202(29)-(33)对由跟踪组件102检测到的对象204(3)、204(5)-(6)、204(8)和204(10)进行排序。例如,对象204(6)可以与最高分数202(29)相关联,对象204(3)可以与第二高分数202(30)相关联,对象204(10)可以与第三高分数202(31)相关联,等等。由于在第六时间T(6)处检测到的对象204(3)、204(5)-(6)、204(8)和204(10)的总数现在等于跟踪的阈值数目,因此选择组件118可以选择对象204(3)、204(5)-(6)、204(8)和204(10)中的每一个来进行跟踪,这由实线表示。
如图2A至图2B的示例所示,评分组件112可以确定对象204在每个时间实例206的新分数202。例如,评分组件112确定在第一时间T(1)处对象204(1)的分数202(1)和在第二时间T(2)处对象204(1)的分数202(5)。在一些示例中,评分组件112在每个时间实例206处确定分数202,因为优先级基于与随时间段206改变的对象204相关联的参数而改变。例如,对象204(1)可能已经在第一时间T(1)对车辆造成由分数202(1)表示的第一安全风险,并且在第二时间T(2)对车辆造成由分数202(5)表示的第二安全风险。第一安全风险可大于第二安全风险、等于第二安全风险和/或小于第二安全风险。
如图2A至图2B的示例中进一步示出的,对象204可以在第一时间实例206处被包括在排序列表208(1)-(6)中,但是在第二时间实例206处不包括在排序列表208(1)-(6)中。例如,在第四时间T(4)被选择进行跟踪的对象204(4)在第五时间T(5)不被包括在排序列表208(5)中。这可能是因为跟踪组件102在第五时间T(5)没有检测到对象204(4)。另外,在第一时间实例206被选择不进行跟踪的对象204在第二时间实例206仍可被包括在排序列表208(1)-(6)中。例如,即使在第五时间T(5)不跟踪对象204(3),对象204(3)也在第六时间T(6)再次被包括在排序列表208(6)中。这是因为在第五时间T(5)与第六时间T(6)之间优先级可能已经改变。例如,在图2A至图2B的示例中,对象204(3)随后在第六时间T(6)被选择进行跟踪。
返回参考图1的示例,过程100可以包括选择组件118生成并且然后输出选择数据120。选择数据120可以至少表示被选择进行跟踪的对象的标识符、未被选择进行跟踪的对象的标识符、需要创建新跟踪的对象的标识符、需要终止的当前跟踪的对象的标识符和/或与对象相关联的任何其他信息。选择组件118随后可将选择数据120发送到跟踪组件102。
过程100可以包括跟踪组件102使用选择数据120来执行一个或更多个过程。对于第一示例,如果跟踪管理组件108选择了新的且不与当前跟踪相关联的被检测对象,则跟踪组件102可以为该被检测对象创建新跟踪。对于第二示例,如果跟踪管理组件108没有选择已经与当前跟踪相关联的被检测对象,则跟踪组件102可以终止与被检测对象相关联的当前跟踪。此外,对于第三示例,如果跟踪管理组件108选择已经与当前跟踪相关联的被检测对象,则跟踪组件102可以更新与被检测对象相关联的当前跟踪的状态信息。
例如,图3A至图3B示出了根据本公开的一些实施例的更新对象的跟踪的示例。如图所示,在第一时间T(1),跟踪组件102可以生成包括由跟踪管理组件108选择的对象204(1)-(4)的对象的跟踪列表302(1)。跟踪列表302(1)进一步包括对象204(1)-(4)的状态信息304(1)-(4)。接下来,在第二时间T(2),跟踪组件102可以生成包括由跟踪管理组件108选择的对象204(1)-(5)的对象的跟踪列表302(2)。跟踪列表302(2)进一步包括对象204(1)-(5)的状态信息304(5)-(9)。
接下来,在第三时间T(3),跟踪组件102可以生成包括由跟踪管理组件108选择的对象204(2)-(6)的对象的跟踪列表302(3)。跟踪列表302(3)进一步包括对象204(2)-(6)的状态信息304(10)-(14)。接下来,在第四时间T(4),跟踪组件102可以生成包括由跟踪管理组件108选择的对象204(2)-(6)的对象的跟踪列表302(4)。跟踪列表302(4)进一步包括对象204(2)-(6)的状态信息304(16)-(20)。
接下来,在第五时间T(5),跟踪组件102可以生成包括由跟踪管理组件108选择的对象204(2)、204(5)-(6)、204(8)和204(10)的对象的跟踪列表302(5)。跟踪列表302(5)进一步包括对象204(2)、204(5)-(6)、204(8)和204(10)的状态信息304(21)-(25)。接下来,在第六时间T(6),跟踪组件102可以生成包括由跟踪管理组件108选择的对象204(3)、204(5)-(6)、204(8)和204(10)的对象的跟踪列表302(6)。跟踪列表302(6)进一步包括对象204(3)、204(5)-(6)、204(8)和204(10)的状态信息304(26)-(30)。
如图3A至图3B的示例所示,跟踪组件102可以继续使用正被跟踪的对象204的标识符和对象204的更新的状态信息304(1)-(30)来更新跟踪列表302(1)-(6)。
返回参见图1的示例,跟踪组件102和/或跟踪管理组件108可以在不同时间实例执行这些跟踪对象和/或更新状态信息的过程。例如,跟踪组件102和/或跟踪管理组件108可每秒一次、每秒两次、每秒十次、每秒三十次、每秒六十次等执行这些过程。在一些示例中,跟踪组件102和/或跟踪管理组件108执行这些过程的频率可以基于传感器数据,诸如与传感器数据相关联的帧速率。对于第一示例,跟踪组件102和/或跟踪管理组件108可针对与每个时间实例相关联的每个帧来执行这些过程。例如,如果与传感器数据相关联的帧速率是每秒六十帧,则跟踪组件102和/或跟踪管理组件108可每秒六十次地执行这些过程。对于第二示例,跟踪组件102和/或跟踪管理组件108可针对每个其他帧、每个第三帧、每个第四帧等执行这些过程。例如,并且再次,如果与传感器数据相关联的帧速率是每秒六十帧,则跟踪组件102和/或跟踪管理组件108可使用每隔一帧每秒三十次地执行这些过程。
如本文所描述,跟踪组件102可以包括在跟踪对象时执行各个过程的各个组件。例如,图4示出根据本公开的一些实施例的联合使用用于自主(和半自主)***和应用的2D和3D跟踪的过程的示例数据流程图。应当理解,本文所述的这种和其他布置仅作为示例进行阐述。除了或代替所示的布置和元件,可使用其他布置和元件(例如,机器、接口、功能、次序、功能分组等),并且可完全省略一些元件。进一步,本文描述的许多元件是可以被实现为分立或分布式组件或与其他组件结合、和以任何合适的组合和位置的功能实体。本文描述为由实体执行的各个功能可由硬件、固件和/或软件执行。例如,各个功能可以通过执行存储在存储器中的指令的处理器来实现。在一些实施例中,本文描述的***、方法和过程可以使用与图19A至图19D的示例自主车辆1900、图20的示例计算设备2000、和/或图21的示例数据中心2100的那些类似的组件、特征、和/或功能来执行。
过程400可以包括检测组件402,该检测组件处理传感器数据404以便生成对象数据406(该对象数据可以表示和/或包括对象数据104)。在一些示例中,传感器数据404可以包括表示描绘车辆的一个或更多个相机的视场的图像的图像数据。在一些示例中,图像数据可以一种格式(例如,RCCB、RCCC、RBGC等)捕获,且接着转换(例如,在图像数据的预处理期间)成另一格式。在一些示例中,图像数据可作为输入提供到传感器数据预处理器(未示出)以生成经预处理的图像数据(本文论述)。许多类型的图像或格式可以用作输入;例如,压缩图像(诸如在联合图像专家组(JPEG)、红绿蓝(RGB)或亮度/色度(YUV)格式中)、压缩图像(如源于压缩视频格式(如H.264/高级视频编码(AVC)或H.265/高效视频编码(HEVC))的帧)、原始图像(诸如源于红清蓝(RCCB)、红清(RCCC)或其他类型的成像传感器)。
在一些示例中,在应用传感器数据404之前,传感器数据预处理器可以使用表示一个或更多个图像的图像数据(或其他数据表示)并且将传感器数据404以多维阵列/矩阵的形式(可替代地被称为张量,或在一些示例中更具体地被称为输入张量)加载到存储器中。阵列大小可被计算和/或表示为WxHxC,其中W代表以像素为单位的图像宽度,H代表以像素为单位的高度,且C代表色彩通道的数目。在不失一般性的情况下,输入图像组件的其他类型和顺序也是可能的。此外,当使用批处理时,批大小B可以用作维度(例如,附加的第四维度)。批处理可用于训练和/或推理。因此,输入张量可表示维数WxHxCxB的阵列。维度的任何排序可以是可能的,这可取决于用于实现传感器数据预处理器的特定硬件和软件。
在一些实施例中,传感器数据预处理器可以采用预处理图像管线来处理由一个或更多个传感器(例如,一个或更多个相机)采集并且包括在图像数据中的一个或更多个原始图像,以产生经预处理的图像数据,该经预处理的图像数据可以表示到检测组件402的一个或更多个输入层的一个或更多个输入图像。合适的预处理图像管线的示例可以使用来自传感器的原始RCCB拜耳(例如,1通道)类型的图像并且将该图像转换成以固定精度(例如,每通道16比特)格式存储的RCB(例如,3通道)平面图像。预处理图像管线可包括解压扩(decompanding)、降噪、去马赛克、白平衡、直方图计算和/或自适应全局色调映射(例如,以该顺序或以替代顺序)。
在传感器数据预处理器采用降噪的情况下,其可以包括拜耳域中的双边去噪。在传感器数据预处理器采用去马赛克的情况下,其可包括双线性插值。在传感器数据预处理器采用直方图计算的情况下,它可以涉及计算C信道的直方图,并且在一些示例中可以与解压扩或降噪合并。在传感器数据预处理器采用自适应全局色调映射的情况下,它可以包括执行自适应伽马对数变换。这可以包括计算直方图、获得中间色调等级、和/或估计具有中间色调等级的最大亮度。
在一些示例中,检测组件402可以使用一个或更多个技术来处理传感器数据404以便确定特征点。所述技术可包含(但不限于)哈里斯角(Harris Corner)、尺度不变特征变换(Scale Invariant Feature Transform,SIFT)、加速稳健特征(Speeded Up RobustFeature,SURF)、来自加速片段测试的特征(Features from Accelerated Segment Test,FAST)、定向FAST和旋转BRIEF(ORB,ORB)和/或任何其他技术。例如,图5示出了根据本公开的一些实施例的与由传感器数据506(其可表示和/或包括传感器数据404)表示的图像504相关联的特征点502(1)-(24)(也单数地称为“特征点502”或复数地称为“多个特征点502”)的示例。虽然图5的示例示出了与图像504相关联的二十四个特征点502,但是在其他示例中,图像可以与任何数量的特征点(例如,一个特征点、五个特征点、五十个特征点、一百个特征点、一千个特征点等)相关联。
检测组件402还可以包括执行对象检测、分割和/或分类的功能。例如,检测组件402可以输出指示与被检测对象和/或被检测对象所处的环境相关联的一个或更多个状态的对象数据406。与对象相关联的状态可以包括但不限于指示对象在图像(例如,描绘对象的每一图像)内的位置的边界形状、与对象相关联的形状(例如,质心、宽度、高度、长度)、与对象相关联的位置(例如,坐标、取向等)、与对象相关联的速度,与对象相关联的加速度、与对象相关联的围栏/边界点、与对象相关联的分类、与对象相关联的状态(例如,停止、移动等),可见性/遮挡信息等。
此外,在一些示例中,输出数据406可以指示与对象相关联的概率,如与对象的位置(例如,一个或更多个边界形状、位置等)相关联的概率、与对象相关联的分类等。在一些示例中,检测组件402可以使用机器学习方法(例如,尺度不变特征变换(SIFT)、定向梯度直方图(HOG)等),接着是支持向量机(SVM)来对传感器数据404所表示的图像中描绘的对象进行分类。附加地或可替代地,检测组件402可使用基于卷积神经网络(CNN)、深度神经网络(DNN)和/或任何其他类型的神经网络或深度学习模型的深度学习方法来对由传感器数据506表示的图像中描绘的对象进行分类。
例如,图6A示出了根据本公开的一些实施例的检测组件402确定与如图像504所描绘的对象604(1)-(2)(也单数地称为“对象604”或复数地称为“多个对象604”)相关联的边界形状602(1)-(2)(也单数地称为“边界形状602”或复数地称为“多个边界形状602”)的示例。在一些示例中,检测组件402可以使用一个或更多个对象识别和/或计算机视觉技术来确定边界形状602。一个或更多个对象识别和/或计算机视觉技术可包括(但不限于)SURF、FAST、FAST R-CNN、您只需看一次(Y You Only Look Once,OLO)、定向梯度直方图(Histogram of Oriented Gradient,HOG)、空间金字塔池化(Spatial Pyramid Pooling,SPP-net)和/或任何其他技术。
虽然图6A的示例将边界形状602示出为包括矩形,但是在其他示例中,一个或更多个边界形状602可以包括任何其他形状(例如,圆形、三角形、正方形、六边形等)。此外,虽然图6A的示例示出了检测组件402确定单个图像504的与对象604相关联的边界形状602,但是在其他示例中,检测组件402可以执行类似的过程以确定描绘对象604的多于一个图像的相应边界形状602。例如,如果传感器数据506表示由两个不同相机捕获的两个图像,其中每个图像均描绘对象604,那么检测组件402可以执行类似过程以确定用于每个图像的与对象604相关联的边界形状602。
图6B示出了根据本公开的一些实施例的检测组件402确定与对象604相关联的位置606(1)-(2)(也单数地称为“位置606”或复数地称为“多个位置606”)的示例。如图所示,检测组件402可以确定对象604在3D环境608内的位置606,其中位置606由虚线矩形表示。如本文中所描述,与对象604(1)相关联的位置606(1)可指示对象604(1)的坐标、定向和/或类似物。另外,与对象604(2)相关联的位置606(2)可指示对象604(2)的坐标、定向和/或类似物。
返回参见图4的示例,过程400可以包括跟踪环境内的对象的跟踪组件408(其可以包括和/或表示跟踪组件102)。如本文中所描述,跟踪组件408可经配置以使用2D和3D跟踪两者来跟踪对象。例如,跟踪组件408可包括处理状态数据412和/或对象数据406以预测对象的新状态的预测组件410。如本文所描述的,状态数据412可以表示与被跟踪对象相关联的2D字段、3D字段和/或附加字段。2D字段可包括(但不限于)边界形状列表、向量列表(例如,转换向量,其中转换向量表示与对象相关联的平移和/或缩放改变)、特征描述符列表(例如,特征点列表)和/或类似物。另外,3D字段包括但不限于对象形状列表(例如,质心、宽度、高度、长度)、对象位置列表(例如,坐标、取向等)、速度列表、加速度列表、对象围栏/边界点列表等。此外,附加字段可以包括但不限于:与被跟踪对象相关联的标识符的列表(例如,其中标识符包括字母标识符、数字标识符,字母数字识别符和/或可识别被跟踪对象的任何其他类型的识别符)、对象分类列表(例如,车辆、人、标志、结构和/或任何其他类型的分类)、对象状态列表(例如,停止、移动等)、可见性/遮挡信息、置信度列表(上述位置、分类、速度、加速度等的方差)、时间戳等等。
例如,图7A至图7D示出了根据本公开的实施例的预测与被跟踪对象604(1)相关联的2D状态信息的示例。如图7A的示例所示,预测组件410可使用边界形状602(1)来确定由传感器数据表示的后续图像704内的被跟踪形状702(其中为了清楚起见,在图7A至图7D的示例中的后续图像704中未示出对象604)。在一些示例中,预测组件410可以通过例如将边界形状602(1)的大小缩小标量值来确定被跟踪形状702。在一些示例中,预测组件410可使用一个或更多个因素来确定被跟踪形状702(例如,标量值)。如本文中所描述,因素可包括(但不限于)对象的分类、到对象的距离、对象的大小(例如,如由图像504描绘)和/或任何其他因素。
如图所示,被跟踪形状702包括例如通过使用与特征点502类似的过程(例如,使用检测组件402)针对图像704确定的特征点706(1)-(6)(也单数地称为“特征点706”或复数地称为“多个特征点706”)。预测组件410可接着使用特征点706和来自图像504的对应特征点502来预测对象604(1)的新状态。在一些示例中,预测组件410可使用至少阈值数目个特征点706来预测对象604(1)的新状态。阈值数目的特征点706可以包括但不限于两个特征点706、五个特征点706、十个特征点706、五十个特征点706和/或任何其他数量的特征点706。
在图7A的示例中,预测组件410(和/或检测组件402)可以使用本文描述的过程中的一个或更多个来识别与特征点706相对应的特征点502(1)-(6)。例如,并且如图所示,预测组件410可确定特征点706(1)对应于特征点502(1),特征点706(2)对应于特征点502(2),特征点706(3)对应于特征点502(3),特征点706(4)对应于特征点502(4),特征点706(5)对应于特征点502(5),以及特征点706(6)对应于特征点502(6),其在图7A的示例中由箭头表示。换言之,预测组件410可确定来自图像704的特征点706(1)-(6)分别是与来自图像504的特征点502(1)-(6)相同的特征点。
还如图7A的示例所示出的,通过使用所跟踪的形状702来确定特征点706,预测组件410在预测对象604(1)的新状态时可以不考虑与其他对象和/或背景相关联的特征点502。例如,在预测对象604(1)的新状态时,预测组件410可以不考虑由“X”指示的特征点502(10)(和/或类似地,为清楚起见而未示出的特征点502(11)-(24))。另外,预测组件410可以不考虑与对象604(1)相关联的特征点502中的至少一些特征点。例如,在预测对象604(1)的新状态时,预测组件410可以不考虑特征点502(7)(和/或类似地,为清楚起见而未示出的特征点502(8)-(9)),其也由“X”指示。然而,预测组件410仍能够利用与对象604(1)相关联的剩余特征点502(1)-(6)来预测对象604(1)的新状态。
预测组件410然后可以确定特征点对502、706的标量变化(scalar change)。例如,并且如图7B的示例所示,并且对于一对特征点502(1)-(2),706(1)-(2),预测组件410可确定特征点502(1)和特征点502(2)之间的第一距离708(1)和特征点706(1)和特征点706(2)之间的第二距离708(2)。预测组件410然后可以基于第一距离708(1)和第二距离708(2)确定与特征点对502(1)-(2)、706(1)-(2)相关联的标量变化。例如,在一些示例中,预测组件410可以通过获取第二距离708(2)与第一距离708(1)之间的差异来确定与特征点对502(1)-(2)、706(1)-(2)相关联的标量变化。预测组件410可接着执行类似过程以确定与另一对或多对特征点502、706相关联的标量变化。例如,在一些示例中,预测组件410可以确定每对特征点502、706的标量变化。
在一些示例中,并且如图7C的示例所示,预测组件410可以生成与特征点502、706的对714(1)-(15)(也单数地称为“对714”或复数地称为“多对714”)相关联的标量变化712(1)-(15)(也单数地称为“标量变化712”或复数地称为“多个标量变化712”)的列表710。在图7C的示例中,预测组件410确定十五个标量变化712,因为存在特征点502、706的对714的十五个不同组合。然而,在其他示例中,并且如本文所描述的,预测组件410可以确定针对特征点502、706的对714的少于所有组合的标量变化712。预测组件410可随后使用列表710来确定与对象604(1)相关联的最终标量改变。
在一些示例中,在确定最终标量变化之前和/或同时,预测组件410可以初始地过滤出与不满足(例如,小于)阈值距离的一个或更多个距离相关联的特征点502、706的一个或更多个对714。例如,并且返回参考图7B的实例,预测组件410可确定特征点502(5)和特征点502(6)之间的第三距离708(3)和/或特征点706(5)和特征点706(6)之间的第四距离708(4)。预测组件410可接着确定第三距离708(3)和/或第四距离708(4)小于阈值距离。照此,预测组件410可以没有初始地确定与包括特征点502(5)-(6)、706(5)-(6)的对714(15)相关联的标量变化712(15),和/或可以在确定最终标量变化时过滤出标量变化712(15)。
预测组件410然后可以使用标量变化712(和/或在过滤之后的剩余标量变化712)确定最终标量变化。如本文所描述的,预测组件410可以将最终标量变化确定为标量变化712的平均值、标量变化712的中值、标量变化712的众数(mode)、和/或使用一个或更多个附加和/或替代技术。预测组件410可随后使用最终标量变化来确定与图像504和图像704之间的对象604(1)相关联的平移。
例如,预测组件410可以确定与特征点502(1)-(6)中的一个或更多个相关联的一个或更多个平移。为了确定与特征点502相关联的平移,预测组件410可以将特征点502与最终标量变化相乘并且然后将该结果减去对应特征点706的位置。例如,并且对于特征点502(1),预测组件410可以通过将特征点502(1)乘以最终标量变化并且然后将该结果减去与特征点502(1)对应的特征点706(1)的位置来确定平移。在一些示例中,预测组件410可执行类似过程以确定其他特征点502(2)-(6)中的一个或更多个(例如,全部)的平移。预测组件410然后可以使用一个或更多个平移来确定与对象604(1)相关联的最终平移。如本文所描述的,预测组件410可以将最终平移确定为一个或更多个平移的平均值、一个或更多个平移的中值、一个或更多个平移的众数,和/或使用一个或更多个附加的和/或替代的技术。
如图7D的示例所示出的,预测组件410可以使用边界形状602(1)和转换向量(其中转换向量至少包括最终标量变化和最终平移)来确定由图像704所描绘的对象604(1)的新边界形状716(例如,预测和/或估计位置)。在一些示例中,可以通过使用例如以下等式(1)至少部分地将状态转换向量scale_change和translation_xy应用于边界形状602(1)(在时间t-1)的旧位置来确定新的边界形状716:
Bbox (t) = Bbox (t-b) * scale_change + translation_xy (2)
在等式(2)中,Bbox(t-b)可以对应于边界形状602(1)并且Bbox(t)可以对应于边界形状716。
对于应用等式(1)的示例,预测组件410可以通过将边界形状602(1)乘以最终标量变化并且然后添加最终平移来确定预测的边界形状716。换言之,预测组件410可以将预测的边界形状716的大小确定为边界形状602(1)的大小乘以最终标量变化。预测组件410然后可以通过在与最终平移相关联的x方向和y方向上移动预测的边界形状716来确定预测的边界形状716的位置。在图7A至图7D的示例中,预测的边界形状716可以表示对象604(1)的预测的和/或估计的状态。
在一些示例中,预测组件410可以针对一个或更多个其他跟踪对象(如对象604(2))执行类似过程。另外,在一些示例中,预测组件410可对描绘和/或潜在地描绘对象604(1)的多于一个图像执行类似过程。例如,如果对象604(1)在两个不同相机的相应视场(FOV)内,则预测组件410可执行类似过程以确定与用于由每个相机捕捉的相应图像的对象604(1)相关联的预测位置(例如,边界形状)。
返回参见图4的示例,为了预测与所跟踪的对象相关联的3D状态信息,预测组件410可以使用滤波器(例如,线性或非线性卡尔曼滤波器)预测3D状态信息。在一些示例中,每个此类预测可使用运动模型。例如,可使用恒定加速度运动模型或恒定转弯率模型(例如,CTRA(针对车辆))或恒定速度(例如,针对行人)计算对象质心。可以使用作为状态的取向或取向和取向导数来计算对象在3D空间中的取向。对于作为状态的方位,恒定取向可以用于运动模型。对于取向和取向导数,可使用恒定取向速度模型。如果良好调谐的CTRA(或其他恒定的转弯率模型)被用于3D(例如,长方体)中的边界形状,则取向滤波器可能不是必要的。宽度、高度和/或长度可能不需要预测(因为这些值可能不改变)。在一些示例中,对应于这些值的协方差可被增加以在若干更新之后不会变得太确信。可替代地,可存在该程度的最小允许协方差。可以通过使用质心速度和偏航率假设刚体运动来计算围栏/形状。
例如,图8示出了根据本公开的一些实施例的与所跟踪的对象604(1)相关联的预测的3D状态信息的示例。如图所示,状态数据412可表示对象604(1)的形状(例如,质心、宽度、高度、长度)、环境608内对象604(1)的位置606(1)(例如,坐标、取向等)、对象604(1)的速度、对象604(1)的加速度、对象604(1)的围栏/边界点等。预测组件410可接着使用状态数据412来确定在生成图像704的时间实例处与对象604(1)相关联的预测位置802。在一些示例中,预测组件410可进一步使用状态数据412来确定额外状态信息,例如对象604(1)的所预测的形状、速度、加速度和/或类似物。
返回参见图4的示例,过程400可以包括跟踪组件408的关联组件414确定在图像内被检测对象与所跟踪的对象之间的关联。在一些示例中,关联组件414可以使用成本函数来确定与所跟踪的对象相关联的成本。成本函数可包括两个部分,其中第一部分(例如,2D部分)与2D跟踪相关联且第二部分(例如,3D部分)与3D跟踪相关联。成本函数的2D部分可考虑描绘对象的所有图像。另外,成本函数的2D部分可以包括不同的项,诸如(例如,在所有图像中)边界形状的IOU分数的加权平均值、(例如,在所有图像中)特征描述符之间的加权距离和/或(例如,在所有图像中)使用所跟踪的特征点的加权IOU集合分数。对于加权的IOU集合分数,可以对在时间t-1处的边界形状中的特征的数量进行计数,并且可以对在时间t处于边界形状中的来自第一计数的被跟踪特征的数量进行计数。来自第一计数和第二计数的分数然后可以被归一化以确定加权的IOU集合分数。
成本函数的3D部分可以使用一个或更多个特征。例如,可以使用位置(或范围)差。为了考虑变化的跟踪和测量不确定性,可以使用缩放。用于缩放的选项可以是使用预测的不确定性和测量噪声——例如,通过使用马哈拉诺比斯距离(Mahalanobis distance)。用于缩放的另一选项是使用本文关于门控描述的方法。方位差(例如,装备坐标中的)是可用于成本函数的3D部分的另一特征。缩放也可以用于方位角差。
用于2D和3D部分的多个项然后可以被组合成单个值,首先单独地用于2D和3D,并且然后联合地。一个选项是执行成本的加权总和。对于3D,马哈拉诺比斯距离可在联合位置和方位角差上公式化以给出一个值。然后,最终成本函数可以在2D和3D部分之间使用(例如,恒定)权重项,例如,在以下等式(3)中:
Cost(t,m)=β(2D_part)+(1-β)(3D_part) (3)
其中t是被跟踪对象,m是测量结果,并且β是(潜在恒定的)权重。为了改善关联结果,总成本的权重可根据影响2D和3D信息的准确度的因素而改变。这些因素包括到测量/对象的距离、测量/对象的方位角和/或遮挡状态。
例如,图9示出了根据本公开的一些实施例的确定被检测对象的2D成本的示例。如图9的示例所示,关联组件414可以使用由预测组件410确定的预测的边界形状716和被检测对象904(1)的确定的边界形状902(1)来确定被检测对象904(1)是被跟踪对象604(1)的第一成本。在一些示例中,使用与边界形状602(1)类似的一个或更多个过程(例如,使用检测组件402)来确定边界形状902(1)。如本文所描述的,在一些示例中,关联组件414可以使用至少IOU来确定第一成本。例如,边界形状902(1)与预测的边界形状716之间的重叠越大,第一成本越低。另外,边界形状902(1)与预测的边界形状716之间的重叠越小,第一成本越高。然而,在其他示例中,关联组件414可以使用一个或更多个附加和/或替代技术(例如,特征描述符之间的距离、使用所跟踪的特征点的加权IOU集合成本等)来确定第一成本。
在图9的示例中,关联组件414可以进一步使用针对被跟踪对象604(2)的预测的边界形状906和边界形状902(1)来确定被检测对象904(1)与被跟踪对象604(2)相关联的第二成本。另外,关联组件414可以使用与被检测对象904(2)相关联的边界形状902(2)和预测的边界形状716来确定被检测对象904(2)是被跟踪对象604(1)的第三成本。最后,关联组件414可以使用与被检测对象904(2)相关联的边界形状902(2)和预测的边界形状906来确定被检测对象904(2)是被跟踪对象604(2)的第四成本。照此,由于存在与预测的边界形状716,906相关联的两个被检测对象604(1)-(2)和两个被跟踪对象604(1)-(2),关联组件414可以确定四个成本。
在一些示例中,如当被检测对象904(1)-(2)被多于一个相机所捕捉的多于一个图像描绘时,关联组件414可以执行一个或更多个附加和/或替代过程以确定与被检测对象904(1)-(2)相关联的2D成本。例如,并且关于被检测对象904(1),关联组件414可以至少基于与描绘被检测对象904(1)的一个或更多个(例如,多个或全部)图像中的边界形状相关联的IOU分数、描绘被检测对象904(1)的一个或更多个(例如,多个或全部)图像中的特征描述符之间的距离、描绘被检测对象904(1)的一个或更多个(例如,多个或全部)图像中的所跟踪的特征点的IOU集合分数等来确定2D成本。在一些示例中,关联组件414可以基于边界形状的IOU分数的平均值、均值、中值和/或类似物、特征描述符之间的距离、和/或所跟踪的特征点的IOU集合分数来确定被检测对象904(1)的2D成本。
图10示出了根据本公开的一些实施例的确定被检测对象的3D成本的示例。如图所示,关联组件414可以至少使用针对被跟踪对象604(1)的预测位置802和针对被检测对象904(1)的检测位置1002来确定被检测对象904(1)是被跟踪对象604(1)的第一成本。在一些示例中,使用与位置606(1)类似的一个或更多个过程(例如,使用检测组件402)来确定检测位置1002。如本文所描述的,在一些示例中,关联组件414可以使用预测位置802与检测位置1002之间的位置(或范围)差来确定第一成本。为了考虑变化的跟踪和测量不确定性,可以使用缩放。用于缩放的一个选项可以是使用预测的不确定性和测量噪声——例如,通过使用马哈拉诺比斯距离。用于缩放的另一选项是使用本文关于门控描述的方法。方位角差(例如,装备坐标中的)是可用于3D成本函数的另一特征。缩放也可以用于方位角差。虽然这些仅仅是用于确定与对应于被检测对象904(1)的被跟踪对象604(1)相关联的第一成本的几个示例技术,但是在其他示例中,关联组件414可以使用一个或更多个附加的和/或替代的技术。
在图10的示例中,关联组件414可以进一步执行类似的过程以确定被检测对象904(2)是被跟踪对象604(1)的第二成本。例如,关联组件414可以至少使用被跟踪对象604(1)的预测的位置802和被检测对象904(2)的检测位置1004来确定第二成本。如本文所描述的,在一些示例中,关联组件414可以使用预测位置802与检测位置1004之间的位置(或范围)差来确定第二成本。
关联组件414然后可以基于至少使用关于图9的示例描述的过程确定的2D成本和至少使用关于图10描述的过程确定的3D成本来确定被检测对象604(1)是被跟踪对象604(1)的最终成本。例如,在一些示例中,关联组件414可以通过将2D成本乘以第一权重、将3D成本乘以第二权重、然后将加权的2D成本和加权的3D成本加在一起来确定最终成本。关联组件414然后可执行类似过程以使用至少使用相对于图9的示例描述的过程确定的2D成本和使用至少使用相对于图10描述的过程确定的3D成本来确定被检测对象904(2)是被跟踪对象604(1)的最终成本。另外,关联组件414可以执行类似过程以确定被检测对象904(1)是被跟踪对象604(2)的最终成本和/或被检测对象904(2)是被跟踪对象604(2)的最终成本。
返回参见图4的示例,在一些示例中,关联组件414可以执行一个或更多个过程以过滤出一个或更多个成本。对于第一示例,关联组件414可以使用滤除不包括相同分类的对象的成本的门控函数。例如,如果被跟踪对象包括第一分类(诸如车辆),并且被检测对象包括第二分类(诸如人),则门控函数可以滤除与对应于被跟踪对象的被检测对象相关联的成本。对于第二示例,一个或更多个门控函数可以部分滤除不包括相同分类的对象的成本。例如,如果被跟踪对象包括第一分类,例如车辆,且第一被检测对象包括第二分类,例如人,则一个或更多个门控函数可以仍然滤除与对应于被跟踪对象的第一被检测对象相关联的第一成本。然而,如果第二被检测对象包括第三分类,诸如摩托车,则一个或更多个门控函数可以避免滤除与对应于被跟踪对象的第二被检测对象相关联的第二成本。
在一些示例中,一个或更多个门控函数可以在过滤成本时使用2D和3D部分两者。对于一个或更多个门控函数的2D部分,类似于成本函数,可以在门控函数中考虑一个或更多个(例如,所有)图像。门控函数可以包括边界形状的加权IOU分数(例如,在所有图像中)和/或特征描述符之间的加权距离(例如,在所有图像中)。3D部分可以使用多个特征,诸如位置差(例如,由被跟踪对象位置加权,这意味着较紧密的门被用于较近的对象)、方位角差(例如,由被跟踪对象位置反向加权,其中靠近的对象具有比远对象更宽的门)和/或要考虑的围栏。可以相对于用于一对或更多对(例如,每对)测量和跟踪的门控阈值独立地检查用于一个或更多个门控函数的一个或更多个项(例如,每个项)。
关联组件414然后可以例如通过使用成本来确定被跟踪对象与被检测对象之间的最终关联。在一些示例中,关联可以是从跟踪到测量的一对一和/或从跟踪到测量的多对一。例如,在一些示例中,关联组件414可以使用执行一至N个关联的贪婪方法(greedymethod),其中N是检测计数。在一些示例中,关联组件414可以诸如按照升序对列表中的成本进行排序。关联组件414然后可以使用该列表来确定被跟踪对象和被检测对象之间的关联。
例如,图11示出了根据本发明的一些实施例的使用关联列表1102来确定被跟踪对象604与被检测对象904(1)-(2)之间的关联的示例。如图所示,关联列表1102包括被检测对象904(1)对应于被跟踪对象604(1)的第一关联1106(1)的第一成本1104(1)、被检测对象904(2)对应于被跟踪对象604(2)的第二关联1106(2)的第二成本1104(2)、被检测对象904(1)对应于被跟踪对象604(2)的第三关联1106(3)的第三成本1104(3)以及被检测对象904(2)对应于被跟踪对象604(1)的第四成本1104(4)。在一些示例中,关联组件414可以生成关联列表1102,使得成本1104(1)-(4)是升序的。
关联组件414然后可以使用关联列表1102来确定被检测对象904(1)-(2)与被跟踪对象604之间的最终关联。例如,关联组件414可以在关联列表1102的顶部开始并确定成本1104(1)是最低成本。另外,关联组件414可以确定被跟踪对象604(1)和/或预测的边界形状716尚未与被检测对象904(1)-(2)相关联和/或被检测对象904(1)尚未与被跟踪对象604相关联。照此,关联组件414可以确定关联1106(1)是正确结果(例如,被检测对象904(1)对应于被跟踪对象604(1))。关联组件414然后可以向下移动关联列表1102并且确定成本1104(2)是第二低成本。另外,关联组件414可以确定被跟踪对象604(2)和/或预测的边界形状906尚未与被检测对象904(1)-(2)相关联和/或被检测对象904(2)尚未与被跟踪对象604相关联。照此,关联组件414可以确定关联1106(2)是正确结果(例如,被检测对象904(2)对应于被跟踪对象604(2))。
接下来,关联组件414可以向下移动关联列表1102并且确定成本1104(3)是第三低成本。另外,关联组件414可以确定被跟踪对象604(2)和/或预测的边界形状906已经与被检测对象904(2)相关联和/或被检测对象904(1)已经与被跟踪对象604(1)相关联。照此,关联组件414可以确定关联1106(3)是不正确的结果(例如,被检测对象904(1)不对应于被跟踪对象604(2))。关联组件414可以最终向下移动关联列表1102并且确定成本1104(4)是第四低成本。另外,关联组件414可以确定被跟踪对象604(1)和/或预测的边界形状716已经与被检测对象904(1)相关联和/或被检测对象904(2)已经与被跟踪对象604(2)相关联。照此,关联组件414可以确定关联1106(4)是不正确的结果(例如,被检测对象904(2)不对应于被跟踪对象604(1))。
尽管图11的示例将关联组件414示出为当确定关联时使用成本1104(1)-(4)中的每一个,在其他示例中,关联组件414可以使用少于所有成本1104(1)-(4)。对于第一实例并且如本文所描述的,关联组件414可以已经基于包括第一分类(如车辆)的被检测对象904(1)和包括第二分类(如标志)的被跟踪对象604(2)过滤出关联1106(3)的第三成本1104(3)。另外,关联组件414可以已经基于包括第一分类(例如标志)的被检测对象904(2)和包括第二分类(例如车辆)的被跟踪对象604(1)过滤出关联1106(4)的第四成本1104(4)。
对于第二示例,并且如本文所描述的,关联组件414可以已经基于第三成本1104(3)、第三成本1104(3)的2D部分和/或第三成本1104(3)的3D部分等于或大于阈值而过滤出关联1106(3)的第三成本1104(3)。另外,关联组件414可以已经基于第四成本1104(4)、第四成本1104(4)的2D部分和/或第四成本1104(4)的3D部分等于或大于阈值而过滤出关联1106(4)的第四成本1104(4)。虽然这些仅仅是关联组件414过滤出一个或更多个成本1104(1)-(4)和/或关联1106(1)-(4)的几个示例技术,但是在其他示例中,关联组件414可以使用一个或更多个附加的和/或替代的技术。
返回参见图4的示例,跟踪组件408可以包括更新组件416,该更新组件被配置成用于更新与所跟踪的对象相关联的状态(例如,状态数据412)。例如,更新组件416可以更新与所跟踪的对象相关联的一个或更多个2D字段,诸如但不限于,一个或更多个边界形状、一个或更多个向量、一个或更多个特征描述符等。另外,更新组件416可以更新与被跟踪对象相关联的一个或更多个3D字段,诸如但不限于对象形状(例如,质心、宽度、高度、长度)、对象位置(例如,坐标、取向等)、速度、加速度、围栏/边界点等。此外,更新组件416可更新与被跟踪对象相关联的一个或更多个附加字段,诸如但不限于对象分类(在一些示例中,具有相关联的概率)、对象状态(例如,停止、移动等)、可见性/遮挡信息、置信度(上述位置、速度、加速度等的方差)、时间戳等。
在某些示例中,当更新2D字段时,更新组件416可以更新2D字段以包括所检测到的状态和/或使用先前状态和所检测到的状态来确定新状态。例如,图12示出了根据本公开的一些实施例的更新与被跟踪对象604(1)相关联的边界形状的示例。如图所示,更新组件416可以使用用于被跟踪对象604(1)的先前边界形状716和/或用于与被跟踪对象604(1)对应的被检测对象904(1)的被检测边界形状902(1)来更新边界形状的状态1202。在一些示例中,更新组件416可以更新状态1202以包括检测到的边界形状902(1)。在一些示例中,更新组件416可以更新状态1202以包括新的边界形状1204,该新的边界形状1204基于所预测的边界形状716和所检测的边界形状902(1)。例如,更新组件416可以将边界形状1204确定为预测的边界形状716和检测到的边界形状902(1)的平均值(其可被加权)。
对于3D字段,更新组件416可以使用一个或更多个方法来更新3D字段中的一个或更多个,如对象形状、速度、加速度、和/或取向。例如,在一些示例中,更新组件416可以针对每个测量使用加权更新,例如以避免太小的后验协方差。在一些示例中,更新组件416可以使用最佳测量和丢弃其他测量(例如,基于由检测组件402确定的置信度值)。在一些示例中,更新组件416可以通过(潜在地非线性的)卡尔曼滤波器来执行更新。在这样的示例中,更新组件416可以不让协方差矩阵变得太小。
在一些示例中,为了执行更新,更新组件416可以初始地更新3D长方体,随后更新与对象相关联的围栏。例如,围栏更新可以包括通过以下方式来移动预测的对象围栏:应用刚体变换,将相关联的围栏放置到3D长方体或围栏的质心,使用迭代最近点(iterativeclosest point,ICP)或另一种方法来执行全局对准,以及使用由ICP提供的最近点的最终列表来更新围栏点或挑选两个形状内的参考点并设置x度。
返回参见图4的示例,跟踪组件408(例如,更新组件416)可以确定所计算的输出信号(例如,每个输出信号)的2D置信度。例如,跟踪组件408(例如,更新组件416)可以例如通过使用一种或更多种技术来确定与对象相关联的对象存在置信度(object existenceconfidence,OEC)。对于第一示例,检测组件402可确定一个或更多个图像描绘对象的一个或更多个置信度,诸如每个图像或个体图像的相应置信度。跟踪组件408(例如,更新组件416)然后可以使用图像的置信度来确定对象的OEC。例如,跟踪组件408(例如,更新组件416)可将OEC确定为与图像相关联的置信度的平均值。在一些示例中,跟踪组件408(例如,更新组件416)可使用特定图像(诸如最近的阈值数目的图像(例如,一个图像、两个图像、五个图像、十个图像等))来确定OEC。在一些示例中,跟踪组件408(例如,更新组件416)可以使用加权平均值,诸如通过向最近的图像提供更大的权重。
对于第二示例,跟踪组件408(例如,更新组件416)可以使用被跟踪对象与一个或更多个被检测对象之间的关联来确定被跟踪对象的OEC。例如,当关联组件414将被跟踪对象与被检测对象相关联(例如,在随后的时间实例)时,使用本文所述的一个或更多个过程,跟踪组件408(例如,更新组件416)可递增与被跟踪对象相关联的OEC。然而,如果关联组件414不能使被跟踪对象与被检测对象关联(例如,在随后的时间实例),使用本文描述的过程中的一个或更多个,跟踪组件408(例如,更新组件416)可递减与被跟踪对象相关联的OEC。在一些示例中,跟踪组件408(例如,更新组件416)可以将OEC递增和/或递减恒定值。在一些示例中,跟踪组件408(例如,更新组件416)可以使用在一定范围内的OEC,该范围诸如但不限于0至1、0至10、0至100和/或类似范围。仍然,在一些示例中,跟踪组件408(例如,更新组件416)可以在执行这样的技术时使用可见性/遮挡信息,诸如通过在对象被遮挡或在车辆的视场(FOV)或感应场之外时不递减OEC。
对于第三示例,跟踪组件408(例如,更新组件416)可以再次使用所跟踪的对象和一个或更多个被检测对象之间的关联性来确定所跟踪的对象的OEC。然而,在该示例中,跟踪组件408(例如,更新组件416)可以在关联组件414将所跟踪的对象与被检测对象相关联时确定第一值(例如,1),并且在关联组件414不将所跟踪的对象与被检测对象相关联时确定第二值(例如,0)。跟踪组件408(例如,更新组件416)然后可以使用所述值确定OEC。例如,跟踪组件408(例如,更新组件416)可以将OEC确定为值的平均值、中值、众数等。在一些示例中,跟踪组件408(例如,更新组件416)可以在执行这样的技术时再次使用可见性/遮挡信息,诸如通过在对象被遮挡或在车辆的FOV或感应场之外时不确定值和/或确定第一值。
对于第四示例,跟踪组件408(例如,更新组件416)可以使用与对象相关联的一个或更多个附加和/或替代状态来确定与对象相关联的OEC。例如,跟踪组件408(例如,更新组件416)可使用与所跟踪的特征点、平移、尺度变化等相关联的内点计数(inlier count)。在一些示例中,跟踪组件408(例如,更新组件416)可将与被跟踪的特征点、平移、尺度变化等相关联的内点计数乘以常数项并将其与OEC相加。
在一些示例中,跟踪组件408(例如,更新组件416)可以进一步确定3D置信度,如另一个OEC。例如,跟踪组件408(例如,更新组件416)可以使用卡尔曼滤波器状态协方差矩阵、相关联的测量历史、测量噪声、校准、和/或一个或更多个附加和/或替代因素来确定OEC。照此,在一些示例中,跟踪组件408(例如,更新组件416)可确定对象的2D OEC和3D OEC两者。在一些示例中,跟踪组件408(例如,更新组件416)可使用2D OEC和3D OEC来确定对象的最终OEC。例如,跟踪组件408(例如,更新组件416)可将最终OEC确定为2D OEC和3D OEC的平均值。
过程400可以进一步包括跟踪组件408,该跟踪组件使用删除组件418来终止与一个或更多个被跟踪对象相关联的一个或更多个跟踪并且使用创建组件420来创建与新跟踪的一个或更多个对象相关联的一个或更多个跟踪。例如,创建组件420可以为新检测到的对象创建新跟踪。创建组件420然后可以使用一个或更多个过程来确认新检测到的对象的跟踪。例如,创建组件420可以基于关联组件414在一个或更多个后续时间实例处将新检测到的对象与一个或更多个被检测对象相关联来确认跟踪。在一些示例中,创建组件420使用阈值数目的关联来确认跟踪。例如,并且如此处所描述的,关联组件414可以确定该对象是否与在每个后续时间实例处由一个或更多个图像描绘的被检测对象相关联。照此,创建组件420可基于关联组件414将针对阈值数目的后续图像(例如,N个图像中的M个图像)对象与被检测对象相关联来确认对象的跟踪。例如,如果阈值数目的后续图像是五个图像中的三个图像,则创建组件420可以基于对象与在后续时间实例处生成的五个图像中的至少三个图像中描绘的被检测对象相关联来确认跟踪。
在一些示例中,删除组件418可以使用类似的技术来终止与被跟踪对象相关联的跟踪。例如,删除组件418可以基于关联组件414在一个或更多个后续时间实例处不将被跟踪对象与一个或更多个被检测对象相关联来确定终止跟踪。在一些示例中,删除组件418使用阈值数目的关联来终止跟踪。例如,并且如此处所描述的,关联组件414可以确定该对象是否与在每个后续时间实例处由一个或更多个图像描绘的被检测对象相关联。照此,删除组件418可基于关联组件414针对阈值数目的后续图像(例如,Q个图像中的P个图像)不将被跟踪对象与被检测对象关联来终止对被跟踪对象的跟踪。例如,如果阈值数目的后续图像再次是五个图像中的三个图像,则删除组件418可以基于被跟踪对象与在后续时间实例处生成的五个图像中的至少三个图像中的一个或更多个被检测对象不相关联来终止跟踪。
在某些示例中,删除组件418和/或创建组件420可以使用OEC来分别删除所跟踪对象的跟踪和/或确认新检测到的对象的跟踪。在这样的示例中,创建组件420可以基于OEC满足(例如,等于或大于)第一阈值来确认新检测到的对象的跟踪。另外,删除组件418可以基于OEC不满足第二阈值(例如,小于第二阈值)来终止对被跟踪对象的跟踪。在一些示例中,第二阈值小于第一阈值。在一些示例中,第二阈值等于或大于第一阈值。
例如,图13示出了根据本公开的一些示例的使用与对象相关联的OEC 1304在一段时间1302内对对象执行跟踪管理的示例。如图13的示例所示,由于跟踪组件408尚未检测到与OEC 1304相关联的被跟踪目标,OEC 1304在时间T(0)处最初是零。跟踪组件408可随后在时间T(0)与时间T(2)之间继续将被跟踪对象与一个或更多个被检测对象相关联。照此,并且如图所示,跟踪组件408可使用本文描述的过程中的一个或更多个在时间T(0)与时间T(2)之间开始增加与被跟踪对象相关联的OEC 1304。
接下来,跟踪组件408可以在时间T(2)与时间T(3)之间不再将所跟踪的对象与一个或更多个被检测对象相关联。照此,并且如图所示,跟踪组件408可使用本文描述的过程中的一个或更多个在时间T(2)与时间T(3)之间开始减少与所跟踪的对象相关联的OEC1304。接下来,跟踪组件408可在时间T(3)与时间T(4)之间再次将所跟踪的对象与一个或更多个被检测对象相关联。照此,并且如图所示,跟踪组件408可使用本文描述的过程中的一个或更多个在时间T(3)与时间T(4)之间再次增加与被跟踪对象相关联的OEC 1304。最后,跟踪组件408可在时间T(4)与时间T(6)之间再次不再将所跟踪的对象与一个或更多个被检测对象相关联。照此,并且如图所示,跟踪组件408可使用本文描述的过程中的一个或更多个在时间T(4)与时间T(6)之间开始减少与所跟踪的对象相关联的OEC 1304。
如由图13的示例进一步示出的,OEC 1304可以在时间T(1)满足(例如,等于或大于)第一阈值1306。照此,跟踪组件408(例如,创建组件420)可以在时间T(1)确认与对象相关联的跟踪。此外,在时间T(5),OEC 1304可能不再满足(例如,小于)第二阈值1308。照此,跟踪组件408(例如,删除组件418)可以在时间T(5)终止与对象相关联的跟踪。虽然图13的示例将第一阈值1306示出为大于第二阈值1308,但是在其他示例中,第一阈值1306可以等于或小于第二阈值1308。
返回参见图4的示例,过程400可以包括跟踪组件408(例如,创建组件420)输出与一个或更多个对象相关联的数据422。例如,对象的输出数据422可包括和/或类似于状态数据412的至少一部分。例如,输出数据422可以表示与被跟踪对象相关联的2D字段、3D字段和/或附加字段。2D字段可包含(但不限于)边界形状列表、向量列表(例如,转换向量,例如表示与对象相关联的平移和/或尺度改变的转换向量)、特征描述符列表(例如,特征点列表)和/或类似物。另外,3D场包括但不限于对象形状列表(例如,质心、宽度、高度、长度)、对象位置列表(例如,坐标、取向等)、速度列表、加速度列表、对象围栏/边界点列表等。此外,附加字段可以包括但不限于与所跟踪的对象相关联的标识符的列表、对象分类的列表(在一些示例中,具有相关联的概率)、对象状态的列表(例如,停止、移动等)、可见性/遮挡信息、置信度的列表(上面描述的位置、速度、加速度等的方差)、时间戳等。
在一些示例中,输出数据422可以包括与已经确认的一个或更多个对象的一个或更多个跟踪相关联的状态信息。例如,输出数据422可以不包括已经检测到但是尚未被创建组件420确认(例如,一个或更多个OEC小于第一阈值1306)的一个或更多个对象的状态信息。另外,在一些示例中,输出数据422可以停止与终止的一个或更多个跟踪相关联的一个或更多个对象的状态信息。例如,输出数据422可以不包括与由删除组件418终止的跟踪相关联(例如,OEC小于第二阈值1308)的对象的状态信息。在一些示例中,输出数据422可被提供至车辆的使用输出数据422进行导航的一个或更多个附加组件和/或***,诸如规划***。
在某些示例中,跟踪组件408在跟踪组件408执行本文描述的过程以便将被跟踪对象与被检测对象相关联的时间实例处生成和/或输出输出数据422。例如,跟踪组件408执行一次或更多次(例如,每次)本文所描述的过程以将所跟踪的对象与被检测对象相关联,跟踪组件408可生成和/或输出表示与所跟踪的对象相关联的更新的状态信息的输出数据422。另外,跟踪组件408可更新与所跟踪的对象相关联的状态数据412。
在某些示例中,可以将跟踪管理组件108包括为跟踪组件408的一部分。例如,跟踪管理组件108可被包括为更新组件416、删除组件418和/或创建组件420的一部分,其在图4的示例中由虚线示出。这样,跟踪管理组件108能够在关于图4的示例描述的过程期间识别终止哪些跟踪、创建哪些跟踪和/或更新哪些跟踪。
例如,创建组件420可以使用跟踪管理组件108输出的数据(例如,选择数据120)来确定用于创建一个或更多个新跟踪的一个或更多个对象。在一些示例中,除了本文关于创建组件420所描述的每个过程之外或作为本文关于创建组件420所描述的每个过程的替代,创建组件420使用数据。另外,删除组件418可以使用由跟踪管理组件108输出的数据(例如,选择数据120)来确定用于终止当前跟踪的被跟踪对象。在一些示例中,除了本文关于删除组件418所描述的每个过程之外或作为本文关于删除组件418所描述的每个过程的替代,删除组件418使用数据。此外,更新组件416可以使用由跟踪管理组件108输出的数据(例如,选择数据120)来确定用于更新状态信息的一个或更多个被跟踪对象。在一些示例中,除了本文关于更新组件416所描述的每个过程之外或作为本文关于更新组件416所描述的每个过程的替代,更新组件416使用数据。
现在参见图14至图18,本文描述的方法1400、1500、1600、1700和1800的每个框包括可以使用硬件、固件和/或软件的任何组合来执行的计算过程。例如,不同功能可以通过执行存储在存储器中的指令的处理器来实现。方法1400、1500、1600、1700和1800还可以体现为存储在计算机存储介质上的计算机可用指令。方法1400、1500、1600、1700和1800可以由独立应用、服务或托管服务(独立或与另一托管服务组合)或插件提供给另一产品,仅举几例。此外,通过示例的方式,关于图1描述了方法1400、1500、1600、1700和1800。然而,这些方法1400、1500、1600、1700和1800可另外或替代地由任何一个***或***的任何组合来执行,所述***包含(但不限于)本文中所描述的那些***。
图14是示出根据本公开的一些实施例的用于管理与对象相关联的跟踪的方法1400的流程图。在框B1402处,方法1400可以包括至少基于机器生成的传感器数据来确定用于跟踪的对象。例如,跟踪管理组件108可确定用于跟踪的对象。在一些示例中,跟踪管理组件108可基于接收表示由跟踪组件102检测到的对象的标识符的检测数据106来确定对象。在一些示例中,对象包括当前正被跟踪组件102跟踪的一个或更多个对象和被跟踪组件102新检测到的一个或更多个对象两者。
在框B1404处,方法1400可以包括:至少基于传感器数据来确定与对象相关联的一个或更多个参数的一个或更多个值。例如,跟踪管理组件108可确定与对象相关联的参数的值。在一些示例中,跟踪管理组件108可基于接收到进一步表示与参数相对应的信息的检测数据106来确定参数的值。如本文所描述的,与对象相关联的参数可以包括但不限于,对象的分类、从车辆到对象的距离、从车辆到对象的方向(例如,对象是否沿着车辆的路径定位)、与对象相关联的TTC、与对象相关联的置信度(例如,指示对象是否是实际对象的置信度)、对象的速度、对象的加速度、对象的行进方向、对象正在导航的车道和/或任何其他参数。
在框B1406处,方法1400可以包括:至少基于一个或更多个参数的一个或更多个值来确定用于跟踪的对象的至少一部分。例如,跟踪管理组件108可使用参数的值来确定用于跟踪的对象的部分。在一些示例中,跟踪管理组件108基于最初确定对象的数目大于对象的阈值数目来做出确定。跟踪管理组件108然后可以基于参数的值来确定对象的分数。另外,跟踪管理组件108可基于分数来确定对象的该部分。例如,跟踪管理组件108可确定对象的该部分包括与最高分数相关联的阈值数目的对象。
现在参见图15,图15是根据本公开的一些实施例的用于管理与对象相关联的跟踪的另一种方法1500的流程图。在框B1502处,方法1500可以包括:至少基于机器生成的传感器数据来确定用于跟踪的对象。例如,跟踪管理组件108可确定用于跟踪的对象。在一些示例中,跟踪管理组件108可基于接收到表示由跟踪组件102检测到的对象的标识符的检测数据106来确定对象。在一些示例中,对象包括当前正被跟踪组件102跟踪的一个或更多个对象和被跟踪组件102新检测到的一个或更多个对象两者。
在框B1504处,方法1500可以包括确定对象的分数。例如,跟踪管理组件108可确定对象的分数。在一些示例中,跟踪管理组件108至少基于对象的数目大于对象的阈值数目来确定分数。在一些示例中,跟踪管理组件108使用与对象相关联的参数来确定分数。如本文所描述的,分数可以表示与对象相关联的优先级,例如与对象对机器造成的安全风险相关联的优先级。
在框B1506处,方法1500可以包括:至少基于分数来确定用于跟踪的对象的至少一部分。例如,跟踪管理组件108可使用分数来确定用于跟踪的对象的部分。在一些示例中,跟踪管理组件108通过确定对象的该部分包括与最高分数相关联的阈值数目的对象来做出确定。
图16是示出了根据本公开的一些实施例的用于使用联合2D和3D跟踪来跟踪对象的方法1600的流程图。在框B1602处,方法1600可以包括:至少基于第一图像数据来确定与被跟踪对象相关联的第一二维(2D)检测位置和与被跟踪对象相关联的第一三维(3D)检测位置。例如,在一些示例中,跟踪组件102可以接收表示与所跟踪的对象相关联的第一2D检测位置和第一3D检测位置的对象数据。如本文中所描述,在一些示例中,检测组件可处理在第一时间实例处产生的第一图像数据以便确定第一2D检测位置和第一3D检测位置。检测组件随后可生成输出数据并将该输出数据发送给跟踪组件102。另外或替代地,在其他实例中,跟踪组件102可使用状态数据确定第一2D检测位置和第一3D检测位置。
在框B1604处,方法1600可以包括:至少基于第一2D检测位置来确定与所跟踪的对象相关联的2D预测位置。例如,跟踪组件102可以确定在第二时间实例的与所跟踪的对象相关联的2D预测位置。在一些示例中,为了确定2D预测位置,跟踪组件102可以确定转换向量,该转换向量至少包括与所跟踪的对象相关联的平移和尺度变化。跟踪组件102可随后使用第一2D检测位置和转换向量来确定2D预测位置。
在框B1606处,方法1600可以包括:至少基于第一3D检测位置来确定与所跟踪的对象相关联的3D预测位置。例如,跟踪组件102可以确定在第二时间实例的与所跟踪的对象相关联的3D预测位置。在一些示例中,为了确定3D预测位置,跟踪组件102可以使用第一3D检测位置连同与被跟踪对象相关联的一个或更多个状态,诸如速度、加速度、取向等。例如,跟踪组件102可通过基于一个或更多个状态移动第一3D检测位置来确定3D预测位置。
在框B1608处,方法1600可以包括:至少基于第二图像数据来确定与检测对象相关联的第二2D检测位置以及与检测对象相关联的第二3D检测位置。例如,在一些示例中,跟踪组件102可以接收表示第二2D检测位置和与检测对象相关联的第二3D检测位置的对象数据。如本文中所描述,在一些示例中,检测组件可处理在第二时间实例处产生的第二图像数据,以便确定与被检测对象相关联的第二2D检测位置和第二3D检测位置。检测组件随后可生成输出数据并将该输出数据发送给跟踪组件102。在一些示例中,第一图像数据表示(一个或更多个)第一图像,且第二图像数据表示在第一图像之后产生的(一个或更多个)第二图像。
在框B1610处,方法1600可以包括:至少基于2D预测位置、3D预测位置、第二2D检测位置以及第二3D检测位置来确定被检测对象对应于所跟踪的对象。例如,跟踪组件102可以使用2D预测位置、3D预测位置、第二2D检测位置和第二3D检测位置来确定被检测对象对应于所跟踪的对象。在一些示例中,为了做出确定,跟踪组件102使用2D预测位置、3D预测位置、第二2D检测位置和第二3D检测位置来确定成本。跟踪组件102然后使用该成本来确定被检测对象是所跟踪的对象。
现在参照图17,图17是示出根据本公开的一些实施例的用于使用在不同时间实例处描绘对象的多个图像来跟踪对象的方法1700的流程图。在框B1702处,方法1700可以包括:至少基于表示第一图像和第二图像的第一图像数据来确定与第一图像中的被跟踪对象相关联的第一二维(2D)检测位置和与第二图像中的被跟踪对象相关联的第二2D检测位置。例如,在一些示例中,跟踪组件102可以接收表示在第一时间实例处的与被跟踪对象相关联的第一2D检测位置和第二2D检测位置的对象数据。如本文中所描述,在一些示例中,检测组件可处理在第一时间实例处产生的第一图像数据以便确定第一2D检测位置和第二2D检测位置。检测组件随后可生成输出数据并将该输出数据发送给跟踪组件102。另外或替代地,在其他实例中,跟踪组件102可使用状态数据来确定第一2D检测位置和第二2D检测位置。
在框B1704处,方法1700可以包括:至少基于第一2D检测位置来确定与所跟踪的对象相关联的第一2D预测位置。例如,跟踪组件102可以确定在第二时间实例处的与所跟踪的对象相关联的第一2D预测位置。在一些示例中,为了确定第一2D预测位置,跟踪组件102可以确定第一转换向量,第一转换向量至少包括与被跟踪对象相关联的第一平移和第一尺度变化。跟踪组件102可随后使用第一2D检测位置和第一转换向量来确定第一2D预测位置。
在框B1706处,方法1700可以包括:至少基于第二2D检测位置来确定与所跟踪的对象相关联的第二2D预测位置。例如,跟踪组件102可以确定在第二时间实例处的与所跟踪的对象相关联的第二2D预测位置。在一些示例中,为了确定第二2D预测位置,跟踪组件102可以确定第二转换向量,该第二转换向量至少包括与被跟踪对象相关联的第二平移和第二尺度变化。跟踪组件102可随后使用第二2D检测位置和第二转换向量来确定第二2D预测位置。
在框B1708处,方法1700可以包括:至少基于表示第三图像和第四图像的第二图像数据来确定与第三图像中被检测对象相关联的第三2D检测位置以及与第四图像中的被检测对象相关联的第四2D检测位置。例如,在一些示例中,跟踪组件102可以接收表示在第二时间实例处的与被检测对象相关联的第三2D检测位置和第四2D检测位置的对象数据。如本文所描述的,在一些示例中,检测组件可以处理在第二时间实例处生成的第二图像数据,以便确定第三2D检测位置和第四2D检测位置。检测组件随后可生成输出数据并将该输出数据发送给跟踪组件102。
在框B1710处,方法1700可以包括:至少基于第一2D预测位置、第二2D预测位置、第三2D检测位置、以及第四2D检测位置来确定被检测对象对应于所跟踪的对象。例如,跟踪组件102可以使用第一2D预测位置、第二2D预测位置、第三2D检测位置和第四2D检测位置来确定被检测对象对应于所跟踪的对象。在一些示例中,为了做出确定,跟踪组件102使用第一2D预测位置、第二2D预测位置、第三2D检测位置和第四2D检测位置来确定成本。跟踪组件102然后使用该成本来确定被检测对象是被跟踪的对象。
参考图18,图18是示出根据本公开的一些实施例的用于执行对象的跟踪管理的方法1800的流程图。在框B1802处,方法1800可以包括:至少基于图像数据来检测位于环境内的对象。例如,跟踪组件102可以检测位于环境内的对象。在一些示例中,对象的检测可包含初始检测。例如,跟踪组件102可以接收指示对对象的检测的对象数据。在一些示例中,对象的检测可包括确定所跟踪的对象与被检测对象相关联,其中对象包括所跟踪的对象。例如,跟踪组件102可以执行本文所描述的过程中的一个或更多个以跟踪对象。
在框B1804处,方法1800可以包括:至少基于图像数据来确定与对象相关联的二维(2D)状态信息。例如,跟踪组件102可以确定与对象相关联的2D状态信息。如本文中所描述,2D状态信息可包含(但不限于)边界形状(例如,描绘对象的每一图像的相应边界形状)、向量(例如,与描绘对象的每一图像相关联的相应转换向量)、特征描述符(例如,描绘对象的每一图像的特征点的列表)和/或类似物。在一些示例中,如果检测是对象的初始检测,则跟踪组件102可以使用对象数据来确定2D状态信息。在一些示例中,如果检测与跟踪对象相关联,则跟踪组件102可以使用对象数据、状态数据和/或一个或更多个状态预测来确定2D状态信息。
在框B1806处,方法1800可以包括至少基于图像数据来确定与对象相关联的三维(3D)状态信息。例如,跟踪组件102可以确定与对象相关联的3D状态信息。如本文所描述的,3D状态信息可以包括但不限于对象形状、速度、加速度、对象围栏/边界点等。在一些示例中,如果检测是对象的初始检测,则跟踪组件102可使用对象数据来确定3D状态信息。在一些示例中,如果检测与跟踪对象相关联,则跟踪组件102可以使用对象数据、状态数据和/或一个或更多个状态预测来确定3D状态信息。
在框B1808处,方法1800可以包括:生成与对象相关联的跟踪,该跟踪与2D状态信息和3D状态信息相关联。例如,跟踪组件102可以生成与对象相关联的跟踪。跟踪组件102随后可将该跟踪与2D状态信息和3D状态信息相关联。
示例自主车辆
图19A是根据本公开的一些实施例的示例自主车辆1900的图示。自主车辆1900(可替代地,在本文称为“车辆1900”)可以包括但不限于,客运车辆,如小汽车、卡车、公共汽车、第一响应车辆、摆渡车、电动或机动自行车、摩托车、消防车、警用车辆,救护车、船、施工车辆、水下船只、机器人车辆、无人机、飞机、耦合至拖车的车辆(例如,用于运输货物的半牵引车铰接式卡车)和/或另一类型的车辆(例如,无人驾驶的和/或容纳一个或更多个乘客的车辆)。自主车辆通常按照美国运输部的一个部门——国家公路交通安全管理局(NHTSA)以及汽车工程师协会(SAE)“Taxonomy and Definitions for Terms Related to DrivingAutomation Systems for On-Road Motor Vehicles”(2018年6月15日发布的标准No.J3016-201806,2016年9月30日发布的标准No.J3016-201609,以及该标准的先前和未来的版本)定义的自动化级别进行描述。车辆1900可能够实现符合自主驾驶级别的3级-5级中的一个或更多个的功能。车辆1900可具有根据自主驾驶级别的1级至5级中的一个或更多个的功能。例如,取决于实施例,车辆1900可能够实现驾驶员辅助(1级)、部分自动化(2级)、条件自动化(3级)、高自动化(4级)和/或全自动化(5级)。如本文所使用的术语“自主”可包括车辆1900或其他机器的任何和/或所有类型的自主性,诸如完全自主、高度自主、有条件自主、部分自主、提供辅助自主性、半自主、主要自主或其他指定。
车辆1900可以包括诸如底盘、车身、车轮(例如2个、4个、6个、8个、18个等)、轮胎、车轴之类的部件以及车辆的其他部件。车辆1900可以包括推进***1950,例如内燃机、混合动力发电厂、全电动发动机和/或另一种推进***类型。推进***1950可以连接到可以包括变速器的车辆1900的传动系以便实现车辆1900的推进。可以响应于接收到来自油门/加速器1952的信号而控制推进***1950。
可以包括方向盘的转向(steering)***1954可以用来在推进***1950操作时(例如在车辆运动时)使车辆1900转向(例如沿着希望的路径或路线)。转向***1954可以接收来自转向致动器1956的信号。对于全自动(5级)功能而言,方向盘可以是可选的。
制动传感器***1946可以用来响应于接收到来自制动致动器1948和/或制动传感器的信号而操作车辆制动器。
可以包括一个或更多个片上***(SoC)1904(图19C)和/或一个或更多个GPU的一个或更多个控制器1936可以向车辆1900的一个或更多个部件和/或***提供(例如表示命令的)信号。例如,一个或更多个控制器可以发送经由一个或更多个制动致动器1948操作车辆制动器、经由一个或更多个转向致动器1956操作转向***1954、经由一个或更多个油门/加速器1952操作推进***1950的信号。一个或更多个控制器1936可以包括一个或更多个板载(例如集成)计算设备(例如超级计算机),所述计算设备处理传感器信号并且输出操作命令(例如表示命令的信号),以实现自主驾驶和/或辅助人类驾驶员驾驶车辆1900。一个或更多个控制器1936可以包括用于自主驾驶功能的第一控制器1936、用于功能性安全功能的第二控制器1936、用于人工智能功能(例如计算机视觉)的第三控制器1936、用于信息娱乐功能的第四控制器1936、用于紧急情况下的冗余的第五控制器1936和/或其他控制器。在一些示例中,单个控制器1936可以处理上述功能中的两个或更多,两个或更多控制器1936可以处理单个功能,和/或其任意组合。
一个或更多个控制器1936可以响应于接收自一个或更多个传感器的传感器数据(例如传感器输入),提供用于控制车辆1900的一个或更多个部件和/或***的信号。传感器数据可以接收自例如且不限于全球导航卫星***(“GNSS”)传感器1958(例如全球定位***传感器)、RADAR传感器1960、超声传感器1962、LIDAR传感器1964、惯性测量单元(IMU)传感器1966(例如加速度计、陀螺仪、磁罗盘、磁力计等)、麦克风1996、立体相机1968、广角相机1970(例如鱼眼相机)、红外相机1972、环绕相机1974(例如360度相机)、远程和/或中程相机1998、速度传感器1944(例如用于测量车辆1900的速率)、振动传感器1942、转向传感器1940、制动传感器(例如作为制动传感器***1946的部分)和/或其他传感器类型。
控制器1936中的一个或更多个可以接收来自车辆1900的仪表组1932的输入(例如由输入数据表示),并且经由人机接口(HMI)显示器1934、听觉信号器、扬声器和/或经由车辆1900的其他部件提供输出(例如输出数据、显示数据等表示的)。这些输出可以包括诸如车辆速度、速率、时间、地图数据(例如图19C的高清晰度(“HD”)地图1922)、位置数据(例如,车辆1900例如在地图上的位置)、方向、其他车辆的位置(例如占用网格)之类的信息,如控制器1936所感知的关于对象和对象状态的信息等等。例如,HMI显示器1934可以显示关于一个或更多个对象(例如街道指示牌、警示牌、交通灯变化等)的存在性的信息和/或关于车辆已经做出、正在做出或者将会做出的驾驶机动的信息(例如现在变道、两英里后离开34B,等等)。
车辆1900还包括网络接口1924,其可以使用一个或更多个无线天线1926和/或调制解调器通过一个或更多个网络通信。例如,网络接口1924可能够通过长期演进(“LTE”)、宽带码分多址(“WCDMA”)、通用移动电信***(“UMTS”)、全球移动通信***(“GSM”)、IMT-CDMA多载波(“CDMA2000”)等通信。一个或更多个无线天线1926也可以使用诸如蓝牙、蓝牙低功耗(“LE”)、Z波、ZigBee等等之类的一个或更多个局域网和/或诸如LoRaWAN、SigFox等等之类的一个或更多个低功率广域网(LPWAN)实现环境中的对象(例如车辆、移动设备等等)之间的通信。
图19B为根据本公开一些实施例的用于图19A的示例自主车辆1900的相机位置和视场的示例。相机和各自的视场是一个示例实施例,并不意图是限制性的。例如,可以包括附加的和/或可替换的相机,和/或这些相机可以位于车辆1900上的不同位置。
用于相机的相机类型可以包括但不限于可以适于与车辆1900的部件和/或***一起使用的数字相机。所述相机可以在汽车安全完整性级别(ASIL)B下和/或在另一个ASIL下操作。相机类型可以具有任何图像捕获率,例如60帧每秒(fps)、120fps、240fps等等,这取决于实施例。相机可能够使用滚动快门、全局快门、另一种类型的快门或者其组合。在一些示例中,滤色器阵列可以包括红白白白(RCCC)滤色器阵列、红白白蓝(RCCB)滤色器阵列、红蓝绿白(RBGC)滤色器阵列、Foveon X3滤色器阵列、拜耳传感器(RGGB)滤色器阵列、单色传感器滤色器阵列和/或另一种类型的滤色器阵列。在一些实施例中,诸如具有RCCC、RCCB和/或RBGC滤色器阵列的相机之类的清晰像素相机可以用在提高光敏感度的努力中。
在一些示例中,所述相机中的一个或更多个可以用来执行高级驾驶员辅助***(ADAS)功能(例如作为冗余或故障安全设计的部分)。例如,可以安装多功能单目相机以提供包括车道偏离警告、交通指示牌辅助和智能前照灯控制在内的功能。所述相机中的一个或更多个(例如全部相机)可以同时记录和提供图像数据(例如视频)。
所述相机中的一个或更多个可以安装在诸如定制设计的(三维(“3D”)打印的)组件之类的安装组件中,以便切断可能干扰相机的图像数据捕获能力的杂散光和来自汽车内的反射(例如挡风玻璃镜中反射的来自仪表板的反射)。关于翼镜安装组件,翼镜组件可以是定制3D打印的,使得相机安装板匹配翼镜的形状。在一些示例中,一个或更多个相机可以集成到翼镜中。对于侧视相机而言,一个或更多个相机也可以集成到驾驶室每个拐角的四根柱子内。
具有包括车辆1900前面的环境部分的视场的相机(例如前置相机)可以用于环视,以帮助识别前向路径和障碍,以及在一个或更多个控制器1936和/或控制SoC的帮助下辅助提供对于生成占用网格和/或确定优选车辆路径至关重要的信息。前置相机可以用来执行许多与LIDAR相同的ADAS功能,包括紧急制动、行人检测和碰撞避免。前置相机也可以用于ADAS功能和***,包括车道偏离警告(“LDW”)、自主巡航控制(“ACC”),和/或诸如交通指示牌识别之类的其他功能。
各种各样的相机可以用于前置配置中,包括例如包括互补金属氧化物半导体(“CMOS”)彩色成像仪在内的单目相机平台。另一个示例可以是广角相机1970,其可以用来感知从周边进入视场的对象(例如行人、十字路***通或者自行车)。尽管图19B中图示出仅仅一个广角相机,但是在车辆1900上可以存在任意数量(包括零)的广角相机1970。此外,任意数量的远程相机1998(例如长视立体相机对)可以用于基于深度的对象检测,尤其是用于尚未针对其训练神经网络的对象。远程相机1998也可以用于对象检测和分类以及基本的对象跟踪。
任意数量的立体相机1968也可以包括在前置配置中。在至少一个实施例中,立体相机1968中的一个或更多个可以包括集成控制单元,该单元包括可扩展处理单元,其可以提供在单个芯片上具有集成的控制器局域网(“CAN”)或以太网接口的多核微处理器和可编程逻辑(FPGA)。这样的单元可以用来生成车辆环境的3D地图,包括针对图像中的所有点的距离估计。可替代的立体相机1968可以包括紧凑型立体视觉传感器,其可以包括两个相机镜头(左右各一个)以及可以测量从车辆到目标对象的距离并且使用生成的信息(例如元数据)激活自主紧急制动和车道偏离警告功能的图像处理芯片。除了本文所描述的那些之外或者可替代地,可以使用其他类型的立体相机1968。
具有包括车辆1900的侧面的环境部分的视场的相机(例如侧视相机)可以用于环视,提供用来创建和更新占用网格以及生成侧撞击碰撞警告的信息。例如,环绕相机1974(例如如图19B中所示的四个环绕相机1974)可以置于车辆1900上。环绕相机1974可以包括广角相机1970、鱼眼相机、360度相机和/或类似物。四个示例,四个鱼眼相机可以置于车辆的前面、后面和侧面。在一种可替代的布置中,车辆可以使用三个环绕相机1974(例如左边、右边和后面),并且可以利用一个或更多个其他相机(例如前向相机)作为第四环视相机。
具有包括车辆1900的后面的环境部分的视场的相机(例如后视相机)可以用于辅助停车、环视、后面碰撞警告以及创建和更新占用网格。可以使用各种各样的相机,包括但不限于也适合作为如本文所描述的前置相机(例如远程和/或中程相机1998、立体相机1968、红外相机1972等等)的相机。
图19C为根据本公开一些实施例的用于图19A的示例自主车辆1900的示例***架构的框图。应当理解,这种布置和本文描述的其他布置仅仅作为示例而被阐述。除了所示的那些之外或者代替它们的是,可以使用其他的布置和元素(例如机器、接口、功能、顺序、功能分组等等),并且一些元素可以完全省略。进一步,许多本文描述的元素是功能实体,其可以实现为分立的或分布式部件或者结合其他部件实现,以及以任何适当的组合和位置实现。本文描述为由实体执行的各个功能可以通过硬件、固件和/或软件实现。例如,各个功能可以通过处理器执行存储在内存中的指令而实现。
图19C中车辆1900的部件、特征和***中的每一个被图示为经由总线1902连接。总线1902可以包括控制器区域网络(CAN)数据接口(可替代地,本文称为“CAN总线”)。CAN可以是车辆1900内部的网络,用来辅助控制车辆1900的各种特征和功能,例如制动器、加速、制动、转向、挡风玻璃雨刷等等的驱动。CAN总线可以被配置为具有数十或者甚至数百个节点,每个节点具有其自己的唯一标识符(例如CAN ID)。可以读取CAN总线以找到方向盘角度、地速、每分钟发动机转速(RPM)、按钮位置和/或其他车辆状态指示符。CAN总线可以是ASIL B兼容的。
尽管这里将总线1902描述为CAN总线,但是这并不意图是限制性的。例如,除了CAN总线之外或者可替代地,可以使用FlexRay和/或以太网。此外,尽管用单条线来表示总线1902,但是这并不意图是限制性的。例如,可以存在任意数量的总线1902,其可以包括一条或更多条CAN总线、一条或更多条FlexRay总线、一条或更多条以太网总线和/或一条或更多条使用不同协议的其他类型的总线。在一些示例中,两条或更多总线1902可以用来执行不同的功能,和/或可以用于冗余。例如,第一总线1902可以用于碰撞避免功能,并且第二总线1902可以用于驱动控制。在任何示例中,每条总线1902可以与车辆1900的任何部件通信,并且两条或更多总线1902可以与相同的部件通信。在一些示例中,车辆内的每个SoC 1904、每个控制器1936和/或每个计算机可以有权访问相同的输入数据(例如来自车辆1900的传感器的输入),并且可以连接到诸如CAN总线之类的公共总线。
车辆1900可以包括一个或更多个控制器1936,例如本文关于图19A所描述的那些控制器。控制器1936可以用于各种各样的功能。控制器1936可以耦合到车辆1900的任何其他不同的部件和***,并且可以用于车辆1900的控制、车辆1900的人工智能、用于车辆1900的信息娱乐和/或类似物。
车辆1900可以包括一个或更多个片上***(SoC)1904。SoC 1904可以包括CPU1906、GPU 1908、处理器1910、高速缓存1912、加速器1914、数据存储1916和/或未图示出的其他部件和特征。在各种各样的平台和***中,SoC 1904可以用来控制车辆1900。例如,一个或更多个SoC 1904可以在***(例如车辆1900的***)中与HD地图1922结合,所述HD地图可以经由网络接口1924从一个或更多个服务器(例如图19D的一个或更多个服务器1978)获得地图刷新和/或更新。
CPU 1906可以包括CPU簇或者CPU复合体(可替代地,本文称为“CCPLEX”)。CPU1906可以包括多个核和/或L2高速缓存。例如,在一些实施例中,CPU 1906在一致性多处理器配置中可以包括八个核。在一些实施例中,CPU 1906可以包括四个双核簇,其中每个簇具有专用的L2高速缓存(例如2MB L2高速缓存)。CPU 1906(例如CCPLEX)可以被配置为支持同时簇操作,使得CPU 1906的簇的任意组合能够在任何给定时间是活动的。
CPU 1906可以实现包括以下特征中的一个或更多个的功率管理能力:各硬件块在空闲时可以自动进行时钟门控以节省动态功率;由于WFI/WFE指令的执行,每个核时钟可以在该核不主动地执行指令时进行门控;每个核可以独立地进行功率门控;当所有核都进行时钟门控或者功率门控时,可以独立地对每个核簇进行时钟门控;和/或当所有核都进行功率门控时,可以独立地对每个核簇进行功率门控。CPU 1906可以进一步实现用于管理功率状态的增强算法,其中指定允许的功率状态和期望的唤醒时间,并且硬件/微代码为所述核、簇和CCPLEX确定要进入的最佳的功率状态。处理核可以在软件中支持简化的功率状态进入序列,该工作被卸载到微代码。
GPU 1908可以包括集成的GPU(可替代地,本文称为“iGPU”)。GPU 1908可以是可编程的,并且对于并行工作负载而言是高效的。在一些示例中,GPU 1908可以使用增强张量指令集。GPU 1908可以包括一个或更多个流式微处理器,其中每个流式微处理器可以包括L1高速缓存(例如具有至少96KB存储能力的L1高速缓存),并且这些流式微处理器中的两个或更多可以共享L2高速缓存(例如具有512KB存储能力的L2高速缓存)。在一些实施例中,GPU1908可以包括至少八个流式微处理器。GPU 1908可以使用计算应用编程接口(API)。此外,GPU 1908可以使用一个或更多个并行计算平台和/或编程模型(例如NVIDIA的CUDA)。
在汽车和嵌入式使用的情况下,可以对GPU 1908进行功率优化以实现最佳性能。例如,可以在鳍式场效应晶体管(FinFET)上制造GPU 1908。然而,这并不意图是限制性的,并且GPU 1908可以使用其他半导体制造工艺来制造。每个流式微处理器可以合并划分成多个块的若干混合精度处理核。例如且非限制性地,可以将64个PF32核和32个PF64核划分成四个处理块。在这样的示例中,每个处理块可以分配16个FP32核、8个FP64核、16个INT32核、用于深层学习矩阵算术的两个混合精度NVIDIA张量核、L0指令高速缓存、线程束(warp)调度器、分派单元和/或64KB寄存器文件。此外,流式微处理器可以包括独立的并行整数和浮点数据路径,以利用计算和寻址计算的混合提供工作负载的高效执行。流式微处理器可以包括独立线程调度能力,以允许实现并行线程之间的更细粒度的同步和协作。流式微处理器可以包括组合的L1数据高速缓存和共享内存单元,以便在简化编程的同时提高性能。
GPU 1908可以包括在一些示例中提供大约900GB/s的峰值内存带宽的高带宽内存(HBM)和/或16GB HBM2内存子***。在一些示例中,除了HBM内存之外或者可替代地,可以使用同步图形随机存取存储器(SGRAM),例如第五代图形双倍数据速率同步随机存取存储器(GDDR5)。
GPU 1908可以包括统一内存技术,其包括访问计数器以允许内存页面更精确地迁移到最频繁地访问它们的处理器,从而提高处理器之间共享的内存范围的效率。在一些示例中,地址转换服务(ATS)支持可以用来允许GPU 1908直接访问CPU 1906页表。在这样的示例中,当GPU 1908内存管理单元(MMU)经历遗漏时,可以将地址转换请求传输至CPU 1906。作为响应,CPU 1906可以在其页表中寻找用于地址的虚拟-物理映射,并且将转换传输回GPU 1908。这样,统一内存技术可以允许单个统一虚拟地址空间用于CPU 1906和GPU 1908二者的内存,从而简化了GPU 1908编程和将应用程序移(port)到GPU 1908。
此外,GPU 1908可以包括访问计数器,其可以跟踪GPU 1908访问其他处理器的内存的频率。访问计数器可以帮助确保内存页面移至最频繁地访问这些页面的处理器的物理内存。
SoC 1904可以包括任意数量的高速缓存1912,包括本文描述的那些高速缓存。例如,高速缓存1912可以包括CPU 1906和GPU 1908二者可用的L3高速缓存(例如,其连接到CPU 1906和GPU 1908二者)。高速缓存1912可以包括回写高速缓存,其可以例如通过使用高速缓存一致性协议(例如MEI、MESI、MSI等)跟踪行的状态。取决于实施例,L3高速缓存可以包括4MB或者更多,但是也可以使用更小的高速缓存大小。
SoC 1904可以包括算术逻辑单元(ALU),所述算术逻辑单元可以在执行关于车辆1900的各种任务或操作中的任何任务或操作(如处理DNN)的处理中被利用。此外,SoC 1904可以包括用于在***内执行数学运算的浮点单元(FPU)(或其他数学协处理器或数字协处理器类型)。例如,SoC104可以包括集成为CPU 1906和/或GPU 1908内的执行单元的一个或更多个FPU。
SoC 1904可以包括一个或更多个加速器1914(例如硬件加速器、软件加速器或者其组合)。例如,SoC 1904可以包括硬件加速器簇,其可以包括优化的硬件加速器和/或大型片上内存。该大型片上内存(例如4MB SRAM)可以使得硬件加速器簇能够加速神经网络和其他计算。硬件加速器簇可以用来补充GPU 1908,并且卸载GPU 1908的一些任务(例如释放GPU 1908的更多周期以用于执行其他任务)。作为一个示例,加速器1914可以用于足够稳定以易于控制加速的有针对性的工作负载(例如感知、卷积神经网络(CNN)等等)。当在本文中使用时,术语“CNN”可以包括所有类型的CNN,包括基于区域的或者区域卷积神经网络(RCNN)和快速RCNN(例如用于对象检测)。
加速器1914(例如硬件加速器簇)可以包括深度学习加速器(DLA)。DLA可以包括可以被配置成为深度学习应用和推理提供额外的每秒10万亿次操作的一个或更多个张量处理单元(TPU)。TPU可以是被配置为执行图像处理功能(例如用于CNN、RCNN等)且针对执行图像处理功能而优化的加速器。DLA可以进一步针对特定的一组神经网络类型和浮点运算以及推理进行优化。DLA的设计可以比通用GPU提供每毫米更高的性能,并且远远超过CPU的性能。TPU可以执行若干功能,包括单实例卷积函数,支持例如用于特征和权重二者的INT8、INT16和FP16数据类型,以及后处理器功能。
DLA可以在处理的或者未处理的数据上针对各种各样的功能中的任何功能快速且高效地执行神经网络,尤其是CNN,例如且不限于:用于使用来自相机传感器的数据进行对象识别和检测的CNN;用于使用来自相机传感器的数据进行距离估计的CNN;用于使用来自麦克风的数据进行应急车辆检测和识别与检测的CNN;用于使用来自相机传感器的数据进行面部识别和车主识别的CNN;和/或用于安全和/或安全相关事件的CNN。
DLA可以执行GPU 1908的任何功能,并且通过使用推理加速器,例如,设计者可以使DLA或GPU 1908针对任何功能。例如,设计者可以将CNN的处理和浮点运算聚焦在DLA上,并且将其他功能留给GPU 1908和/或其他加速器1914。
加速器1914(例如硬件加速器簇)可以包括可编程视觉加速器(PVA),其在本文中可以可替代地称为计算机视觉加速器。PVA可以被设计和配置为加速用于高级驾驶员辅助***(ADAS)、自主驾驶和/或增强现实(AR)和/或虚拟现实(VR)应用的计算机视觉算法。PVA可以提供性能与灵活性之间的平衡。例如,每个PVA可以包括例如且不限于任意数量的精简指令集计算机(RISC)核、直接内存访问(DMA)和/或任意数量的向量处理器。
RISC核可以与图像传感器(例如本文描述的任何相机的图像传感器)、图像信号处理器和/或类似物交互。这些RISC核中的每一个可以包括任意数量的内存。取决于实施例,RISC核可以使用若干协议中的任何协议。在一些示例中,RISC核可以执行实时操作***(RTOS)。RISC核可以使用一个或更多个集成电路设备、专用集成电路(ASIC)和/或存储设备实现。例如,RISC核可以包括指令高速缓存和/或紧密耦合的RAM。
DMA可以使得PVA的部件能够独立于CPU 1906访问***内存。DMA可以支持用来向PVA提供优化的任意数量的特征,包括但不限于支持多维寻址和/或循环寻址。在一些示例中,DMA可以支持高达六个或更多维度的寻址,其可以包括块宽度、块高度、块深度、水平块步进、竖直块步进和/或深度步进。
向量处理器可以是可编程处理器,其可以被设计为高效且灵活地执行用于计算机视觉算法的编程并且提供信号处理能力。在一些示例中,PVA可以包括PVA核和两个向量处理子***分区。PVA核可以包括处理器子***、一个或更多个DMA引擎(例如两个DMA引擎)和/或其他***设备。向量处理子***可以作为PVA的主处理引擎而操作,并且可以包括向量处理单元(VPU)、指令高速缓存和/或向量内存(例如VMEM)。VPU核可以包括数字信号处理器,诸如例如单指令多数据(SIMD)、超长指令字(VLIW)数字信号处理器。SIMD和VLIW的组合可以增强吞吐量和速率。
向量处理器中的每一个可以包括指令高速缓存并且可以耦合到专用内存。结果,在一些示例中,向量处理器中的每一个可以被配置为独立于其他向量处理器执行。在其他示例中,包括在特定PVA中的向量处理器可以被配置为采用数据并行化。例如,在一些实施例中,包括在单个PVA中的多个向量处理器可以执行相同的计算机视觉算法,但是在图像的不同区域上执行。在其他示例中,包括在特定PVA中的向量处理器可以在相同的图像上同时执行不同的计算机视觉算法,或者甚至在序列图像或者图像的部分上执行不同的算法。除其他的以外,任意数量的PVA可以包括在硬件加速器簇中,并且任意数量的向量处理器可以包括在这些PVA中的每一个中。此外,PVA可以包括附加的纠错码(ECC)内存,以增强总体***安全性。
加速器1914(例如硬件加速器簇)可以包括片上计算机视觉网络和SRAM,以提供用于加速器1914的高带宽、低延迟SRAM。在一些示例中,片上内存可以包括由例如且不限于八个现场可配置的内存块组成的至少4MB SRAM,其可以由PVA和DLA二者访问。每对内存块可以包括高级***总线(APB)接口、配置电路***、控制器和复用器。可以使用任何类型的内存。PVA和DLA可以经由向PVA和DLA提供高速内存访问的主干(backbone)访问内存。主干可以包括(例如使用APB)将PVA和DLA互连到内存的片上计算机视觉网络。
片上计算机视觉网络可以包括在传输任何控制信号/地址/数据之前确定PVA和DLA二者都提供就绪且有效的信号的接口。这样的接口可以提供用于传输控制信号/地址/数据的单独相位和单独信道,以及用于连续数据传输的突发式通信。这种类型的接口可以符合ISO 26262或者IEC 61508标准,但是也可以使用其他标准和协议。
在一些示例中,SoC 1904可以包括例如在2018年8月10日提交的美国专利申请No.16/101,232中描述的实时光线跟踪硬件加速器。该实时光线跟踪硬件加速器可以用来快速且高效地确定(例如世界模型内的)对象的位置和范围,以便生成实时可视化仿真,以用于RADAR信号解释、用于声音传播合成和/或分析、用于SONAR***仿真、用于一般波传播仿真、用于为了定位和/或其他功能的目的与LIDAR数据相比较和/或用于其他用途。在一些实施例中,一个或更多个树遍历单元(TTU)可以用于执行一个或更多个光线跟踪相关操作。
加速器1914(例如硬件加速器簇)具有广泛的自主驾驶用途。PVA可以是可编程视觉加速器,其可以用于ADAS和自主车辆中的关键处理阶段。PVA的能力是需要可预测处理、低功率和低延迟的算法域的良好匹配。换言之,PVA在半致密或者致密规则计算上,甚至在需要具有低延迟和低功率的可预测运行时间的小数据集上都表现良好。因此,在用于自主车辆的平台的背景下,PVA被设计为运行经典计算机视觉算法,因为它们在对象检测和整数数学运算方面很有效。
例如,根据该技术的一个实施例,PVA用来执行计算机立体视觉。在一些示例中,可以使用基于半全局匹配的算法,但是这并不意图是限制性的。许多用于3-5级自主驾驶的应用都需要即时运动估计/立体匹配(例如来自运动的结构、行人识别、车道检测等等)。PVA可以在来自两个单目相机的输入上执行计算机立体视觉功能。
在一些示例中,PVA可以用来执行致密的光流。根据过程原始RADAR数据(例如使用4D快速傅立叶变换)以提供经处理的RADAR。在其他示例中,PVA用于飞行时间深度处理,其例如通过处理原始飞行时间数据以提供经处理的飞行时间数据。
DLA可以用来运行任何类型的网络以增强控制和驾驶安全性,包括例如输出用于每个对象检测的置信度度量的神经网络。这样的置信度值可以解释为概率,或者解释为提供每个检测与其他检测相比的相对“权重”。该置信度值使得***能够做出关于哪些检测应当被认为是真阳性检测而不是假阳性检测的进一步决定。例如,***可以为置信度设置阈值,并且仅仅将超过阈值的检测看作真阳性检测。在自动紧急制动(AEB)***中,假阳性检测会使得车辆自动地执行紧急制动,这显然是不希望的。因此,只有最确信的检测才应当被认为是AEB的触发因素。DLA可以运行用于回归置信度值的神经网络。该神经网络可以将至少一些参数子集作为其输入,例如边界框维度,(例如从另一个子***)获得的地平面估计,与车辆1900取向、距离相关的惯性测量单元(IMU)传感器1966输出,从神经网络和/或其他传感器(例如LIDAR传感器1964或RADAR传感器1960)获得的对象的3D位置估计等。
SoC 1904可以包括一个或更多个数据存储1916(例如内存)。数据存储1916可以是SoC 1904的片上内存,其可以存储要在GPU和/或DLA上执行的神经网络。在一些示例中,为了冗余和安全,数据存储1916可以容量足够大以存储神经网络的多个实例。数据存储1912可以包括L2或L3高速缓存1912。对数据存储1916的引用可以包括对与如本文所描述的PVA、DLA和/或其他加速器1914关联的内存的引用。
SoC 1904可以包括一个或更多个处理器1910(例如嵌入式处理器)。处理器1910可以包括启动和功率管理处理器,其可以是用于处理启动功率和管理功能以及有关安全实施的专用处理器和子***。启动和功率管理处理器可以是SoC 1904启动序列的一部分,并且可以提供运行时间功率管理服务。启动功率和管理处理器可以提供时钟和电压编程、辅助***低功率状态转换、SoC 1904热和温度传感器管理和/或SoC 1904功率状态管理。每个温度传感器可以实现为环形振荡器,其输出频率与温度成比例,并且SoC 1904可以使用环形振荡器检测CPU 1906、GPU 1908和/或加速器1914的温度。如果确定温度超过阈值,那么启动和功率管理处理器可以进入温度故障例程并且将SoC 1904置于较低功率状态和/或将车辆1900置于司机安全停车模式(例如使车辆1900安全停车)。
处理器1910可以还包括可以用作音频处理引擎的一组嵌入式处理器。音频处理引擎可以是一种音频子***,其允许实现对于通过多个接口的多声道音频的完全硬件支持以及一系列广泛而灵活的音频I/O接口。在一些示例中,音频处理引擎是具有带有专用RAM的数字信号处理器的专用处理器核。
处理器1910可以还包括始终在处理器上的引擎,其可以提供必要的硬件特征以支持低功率传感器管理和唤醒用例。该始终在处理器上的引擎可以包括处理器核、紧密耦合的RAM、支持***设备(例如定时器和中断控制器)、各种I/O控制器***设备和路由逻辑。
处理器1910可以还包括安全簇引擎,其包括处理汽车应用的安全管理的专用处理器子***。安全簇引擎可以包括两个或更多处理器核、紧密耦合的RAM、支持***设备(例如定时器、中断控制器等等)和/或路由逻辑。在安全模式下,所述两个或更多核可以操作于锁步模式下,并且用作具有检测它们的操作之间的任何差异的比较逻辑的单核。
处理器1910可以还包括实时相机引擎,其可以包括用于处理实时相机管理的专用处理器子***。
处理器1910可以还包括高动态范围信号处理器,其可以包括图像信号处理器,该图像信号处理器是一种硬件引擎,该硬件引擎是相机处理管线的部分。
处理器1910可以包括可以是(例如微处理器上实现的)处理块的视频图像复合器,其实现视频回放应用程序产生用于播放器窗口的最终图像所需的视频后处理功能。视频图像复合器可以对广角相机1970、环绕相机1974和/或对驾驶室内监控相机传感器执行镜头畸变校正。驾驶室内监控相机传感器优选地由运行在高级SoC的另一个实例上的神经网络监控,被配置为识别驾驶室内事件并且相对应地做出响应。驾驶室内***可以执行唇读,以激活移动电话服务并拨打电话、口述电子邮件、改变车辆目的地、激活或改变车辆的信息娱乐***和设置或者提供语音激活的网上冲浪。某些功能仅在车辆操作于自主模式下时对于驾驶员可用,并且在其他情况下被禁用。
视频图像复合器可以包括用于空间和时间降噪的增强时间降噪。例如,在视频中出现运动的情况下,降噪适当地对空间信息加权,降低邻近帧提供的信息的权重。在图像或者图像的部分不包括运动的情况下,视频图像复合器执行的时间降噪可以使用来自先前的图像的信息以降低当前图像中的噪声。
视频图像复合器也可以被配置为对输入立体镜头帧执行立体校正。当操作***桌面正在使用并且GPU 1908无需连续地渲染(render)新的表面时,视频图像复合器可以进一步用于用户接口组成。甚至在GPU 1908上电并且激活,进行3D渲染时,视频图像复合器可以用来减轻GPU 1908的负担以提高性能和响应能力。
SoC 1904可以还包括用于从相机接收视频和输入的移动行业处理器接口(MIPI)相机串行接口、高速接口和/或可以用于相机和有关像素输入功能的视频输入块。SoC 1904可以还包括可以由软件控制并且可以用于接收未提交到特定角色的I/O信号的输入/输出控制器。
SoC 1904可以还包括大范围的***设备接口,以使能与***设备、音频编解码器、功率管理和/或其他设备通信。SoC 1904可以用来处理来自(通过千兆多媒体串行链路和以太网连接的)相机、传感器(例如可以通过以太网连接的LIDAR传感器1964、RADAR传感器1960等等)的数据,来自总线1902的数据(例如车辆1900的速率、方向盘位置等等),来自(通过以太网或CAN总线连接的)GNSS传感器1958的数据。SoC 1904可以还包括专用高性能大容量存储控制器,其可以包括它们自己的DMA引擎,并且其可以用来从日常数据管理任务中释放CPU 1906。
SoC 1904可以是具有灵活架构的端到端平台,该架构跨越自动化3-5级,从而提供利用和高效使用计算机视觉和ADAS技术以实现多样性和冗余、连同深度学***台的综合功能安全架构。SoC 1904可以比常规的***更快、更可靠,甚至更加能量高效和空间高效。例如,当与CPU 1906、GPU 1908和数据存储1916结合时,加速器1914可以提供用于3-5级自主车辆的快速高效平台。
因此该技术提供了不能通过常规***实现的能力和功能。例如,计算机视觉算法可以在CPU上执行,这些CPU可以使用诸如C编程语言之类的高级编程语言配置为跨各种各样的视觉数据执行各种各样的处理算法。然而,CPU常常不能满足许多计算机视觉应用的性能要求,诸如与例如执行时间和功耗有关的那些要求。特别地,许多CPU不能实时地执行复杂的对象检测算法,这是车载ADAS应用的要求和实用3-5级自主车辆的要求。
与常规***形成对比的是,通过提供CPU复合体、GPU复合体和硬件加速器簇,本文描述的技术允许同时和/或顺序地执行多个神经网络,并且将结果组合在一起以实现3-5级自主驾驶功能。例如,在DLA或dGPU(例如GPU 1920)上执行的CNN可以包括文本和单词识别,允许超级计算机读取和理解交通指示牌,包括尚未针对其特别地训练神经网络的指示牌。DLA可以还包括能够识别、解释和提供对指示牌的语义理解,并且将该语义理解传递给运行在CPU复合体上的路径规划模块的神经网络。
作为另一个示例,如3、4或5级驾驶所需的,多个神经网络可以同时运行。例如,由“注意:闪烁的灯指示结冰条件”组成的警告指示牌连同电灯可以由若干神经网络独立地或者共同地进行解释。指示牌本身可以由部署的第一神经网络(例如经过训练的神经网络)识别为交通指示牌,文本“闪烁的灯指示结冰条件”可以由部署的第二神经网络解释,该部署的第二神经网络告知车辆的路径规划软件(优选地在CPU复合体上执行)当检测到闪烁的灯时,存在结冰条件。闪烁的灯可以通过在多个帧上操作部署的第三神经网络而识别,该神经网络告知车辆的路径规划软件闪烁的灯的存在(或不存在)。所有三个神经网络可以例如在DLA内和/或在GPU 1908上同时运行。
在一些示例中,用于面部识别和车主识别的CNN可以使用来自相机传感器的数据识别车辆1900的授权的驾驶员和/或车主的存在。始终在传感器上的处理引擎可以用来在车主接近驾驶员车门时解锁车辆并且打开灯,并且在安全模式下,在车主离开车辆时禁用车辆。按照这种方式,SoC 1904提供了防范盗窃和/或劫车的安全性。
在另一个示例中,用于应急车辆检测和识别的CNN可以使用来自麦克风1996的数据来检测并且识别应急车辆警报(siren)。与使用通用分类器检测警报并且手动地提取特征的常规***形成对比的是,SoC 1904使用CNN以对环境和城市声音分类以及对视觉数据分类。在优选的实施例中,运行在DLA上的CNN被训练为识别应急车辆的相对关闭速率(例如通过使用多普勒效应)。CNN也可以被训练为识别如GNSS传感器1958所识别的特定于车辆在其中操作的局部区域的应急车辆。因此,例如,当在欧洲操作时,CNN将寻求检测欧洲警报,并且当在美国时,CNN将寻求识别仅仅北美的警报。一旦检测到应急车辆,在超声传感器1962的辅助下,控制程序可以用来执行应急车辆安全例程,使车辆放慢速度,开到路边,停下车辆,和/或使车辆空转,直到应急车辆通过。
车辆可以包括可以经由高速互连(例如PCIe)耦合到SoC 1904的CPU 1918(例如分立的CPU或dCPU)。CPU 1918可以包括例如X86处理器。CPU 1918可以用来执行各种各样的功能中的任何功能,包括例如仲裁ADAS传感器与SoC 1904之间潜在地不一致的结果,和/或监控控制器1936和/或信息娱乐SoC 1930的状态和健康状况。
车辆1900可以包括可以经由高速互连(例如NVIDIA的NVLINK)耦合到SoC 1904的GPU 1920(例如分立的GPU或dGPU)。GPU 1920可以例如通过执行冗余的和/或不同的神经网络而提供附加的人工智能功能,并且可以用来至少部分地基于来自车辆1900的传感器的输入(例如传感器数据)来训练和/或更新神经网络。
车辆1900可以还包括网络接口1924,该网络接口可以包括一个或更多个无线天线1926(例如用于不同通信协议的一个或更多个无线天线,例如蜂窝天线、蓝牙天线等等)。网络接口1924可以用来使能通过因特网与云(例如与服务器1978和/或其他网络设备)、与其他车辆和/或与计算设备(例如乘客的客户端设备)的无线连接。为了与其他车辆通信,可以在这两辆车之间建立直接链接,和/或可以建立间接链接(例如跨网络以及通过因特网)。直接链接可以使用车对车通信链路提供。车对车通信链路可以向车辆1900提供关于接近车辆1900的车辆(例如车辆1900前面、侧面和/或后面的车辆)的信息。该功能可以是车辆1900的协作自适应巡航控制功能的部分。
网络接口1924可以包括提供调制和解调功能并且使得控制器1936能够通过无线网络通信的SoC。网络接口1924可以包括用于从基带到射频的上转换以及从射频到基带的下转换的射频前端。频率转换可以通过公知的过程执行,和/或可以使用超外差(super-heterodyne)过程执行。在一些示例中,射频前端功能可以由单独的芯片提供。网络接口可以包括用于通过LTE、WCDMA、UMTS、GSM、CDMA2000、蓝牙、蓝牙LE、Wi-Fi、Z波、ZigBee、LoRaWAN和/或其他无线协议通信的无线功能。
车辆1900可以还包括可包括片外(例如SoC 1904外)存储装置的数据存储1928。数据存储1928可以包括一个或更多个存储元件,包括RAM、SRAM、DRAM、VRAM、闪存、硬盘和/或可以存储至少一个比特的数据的其他部件和/或设备。
车辆1900可以还包括GNSS传感器1958。GNSS传感器1958(例如GPS、辅助GPS传感器、差分GPS(DGPS)传感器等)用于辅助映射、感知、占用网格生成和/或路径规划功能。可以使用任意数量的GNSS传感器1958,包括例如且不限于使用带有以太网到串行(RS-232)网桥的USB连接器的GPS。
车辆1900可以还包括RADAR传感器1960。RADAR传感器1960可以甚至在黑暗和/或恶劣天气条件下也由车辆1900用于远程车辆检测。RADAR功能安全级别可以是ASIL B。RADAR传感器1960可以使用CAN和/或总线1902(例如以传输RADAR传感器1960生成的数据)以用于控制以及访问对象跟踪数据,在一些示例中接入以太网以访问原始数据。可以使用各种各样的RADAR传感器类型。例如且非限制性地,RADAR传感器1960可以适合前面、后面和侧面RADAR使用。在一些示例中,使用脉冲多普勒RADAR传感器。
RADAR传感器1960可以包括不同的配置,例如具有窄视场的远程、具有宽视场的短程、短程侧覆盖等等。在一些示例中,远程RADAR可以用于自适应巡航控制功能。远程RADAR***可以提供通过两个或更多独立扫描实现的广阔视场(例如250m范围内)。RADAR传感器1960可以帮助区分静态对象和运动对象,并且可以由ADAS***用于紧急制动辅助和前方碰撞警告。远程RADAR传感器可以包括具有多根(例如六根或更多)固定RADAR天线以及高速CAN和FlexRay接口的单站多模RADAR。在具有六根天线的示例中,中央四根天线可以创建聚焦的波束图案,其被设计为在更高速率下以来自邻近车道的最小交通干扰记录车辆1900的周围环境。其他两根天线可以扩展视场,使得快速地检测进入或离开车辆1900的车道的车辆成为可能。
作为一个示例,中程RADAR***可以包括高达1960m(前面)或80m(后面)的范围以及高达42度(前面)或1950度(后面)的视场。短程RADAR***可以包括但不限于被设计为安装在后保险杠两端的RADAR传感器。当安装在后保险杠两端时,这样的RADAR传感器***可以创建持续地监控后方和车辆旁边的视盲点的两个波束。
短程RADAR***可以在ADAS***中用于视盲点检测和/或变道辅助。
车辆1900可以还包括超声传感器1962。可以置于车辆1900的前面、后面和/或侧面的超声传感器1962可以用于停车辅助和/或创建和更新占用网格。可以使用各种各样的超声传感器1962,并且不同的超声传感器1962可以用于不同的检测范围(例如2.5m、4m)。超声传感器1962可以操作于功能安全级别的ASIL B。
车辆1900可以包括LIDAR传感器1964。LIDAR传感器1964可以用于对象和行人检测、紧急制动、碰撞避免和/或其他功能。LIDAR传感器1964可以为功能安全级别的ASIL B。在一些示例中,车辆1900可以包括可以使用以太网(例如以将数据提供给千兆以太网交换机)的多个LIDAR传感器1964(例如两个、四个、六个等等)。
在一些示例中,LIDAR传感器1964可能够对360度视场提供对象列表及其距离。商业上可用的LIDAR传感器1964可以具有例如近似1900m的广告范围,精度为2cm-3cm,支持1900Mbps以太网连接。在一些示例中,可以使用一个或更多个非突出的LIDAR传感器1964。在这样的示例中,LIDAR传感器1964可以实现为可以嵌入到车辆1900的前面、后面、侧面和/或拐角的小设备。在这样的示例中,LIDAR传感器1964可以甚至对于低反射率对象提供高达120度水平的和35度竖直的视场,具有200m的范围。前面安装的LIDAR传感器1964可以被配置用于45度与135度之间的水平视场。
在一些示例中,也可以使用诸如3D闪光LIDAR之类的LIDAR技术。3D闪光LIDAR使用激光的闪光作为发射源,以照亮高达约200m的车辆周围环境。闪光LIDAR单元包括接受器,该接受器将激光脉冲传输时间和反射光记录在每个像素上,其进而与从车辆到对象的范围相对应。闪光LIDAR可以允许利用每个激光闪光生成周围环境的高度精确且无失真的图像。在一些示例中,可以部署四个闪光LIDAR传感器,车辆1900的每一侧一个。可用的3D闪光LIDAR***包括没有风扇以外的运动部件(moving part)的固态3D凝视阵列LIDAR相机(例如非扫描LIDAR设备)。闪光LIDAR设备可以使用每帧5纳秒I类(眼睛安全)激光脉冲,并且可以以3D范围点云和共同寄存的强度数据的形式捕获反射的激光。通过使用闪光LIDAR,并且因为闪光LIDAR是没有运动部件的固态设备,LIDAR传感器1964可以不太容易受到运动模糊、振动和/或震动的影响。
该车辆可以还包括IMU传感器1966。在一些示例中,IMU传感器1966可以位于车辆1900的后轴的中心。IMU传感器1966可以包括例如且不限于加速度计、磁力计、陀螺仪、磁罗盘和/或其他传感器类型。在一些示例中,例如在六轴应用中,IMU传感器1966可以包括加速度计和陀螺仪,而在九轴应用中,IMU传感器1966可以包括加速度计、陀螺仪和磁力计。
在一些实施例中,IMU传感器1966可以实现为微型高性能GPS辅助惯性导航***(GPS/INS),其结合微机电***(MEMS)惯性传感器、高灵敏度GPS接收器和高级卡尔曼滤波算法以提供位置、速度和姿态的估计。这样,在一些示例中,IMU传感器1966可以使得车辆1900能够在无需来自磁传感器的输入的情况下通过直接观察从GPS到IMU传感器1966的速度变化并且将其相关来估计方向(heading)。在一些示例中,IMU传感器1966和GNSS传感器1958可以结合到单个集成单元中。
该车辆可以包括置于车辆1900中和/或车辆1900周围的麦克风1996。除别的以外,麦克风1996可以用于应急车辆检测和识别。
该车辆可以还包括任意数量的相机类型,包括立体相机1968、广角相机1970、红外相机1972、环绕相机1974、远程和/或中程相机1998和/或其他相机类型。这些相机可以用来捕获车辆1900整个***周围的图像数据。使用的相机类型取决于实施例和车辆1900的要求,并且相机类型的任意组合可以用来提供车辆1900周围的必要覆盖。此外,相机的数量可以根据实施例而不同。例如,该车辆可以包括六个相机、七个相机、十个相机、十二个相机和/或另一数量的相机。作为一个示例且非限制性地,这些相机可以支持千兆多媒体串行链路(GMSL)和/或千兆以太网。所述相机中的每一个在本文关于图19A和图19B更详细地进行了描述。
车辆1900可以还包括振动传感器1942。振动传感器1942可以测量车辆的诸如车轴之类的部件的振动。例如,振动的变化可以指示道路表面的变化。在另一个示例中,当使用两个或更多振动传感器1942时,振动之间的差异可以用来确定道路表面的摩擦或滑移(例如当动力驱动轴与自由旋转轴之间存在振动差异时)。
车辆1900可以包括ADAS***1938。在一些示例中,ADAS***1938可以包括SoC。ADAS***1938可以包括自主/自适应/自动巡航控制(ACC)、协作自适应巡航控制(CACC)、前方撞车警告(FCW)、自动紧急制动(AEB)、车道偏离警告(LDW)、车道保持辅助(LKA)、视盲点警告(BSW)、后方穿越交通警告(RCTW)、碰撞警告***(CWS)、车道居中(LC)和/或其他特征和功能。
ACC***可以使用RADAR传感器1960、LIDAR传感器1964和/或相机。ACC***可以包括纵向ACC和/或横向ACC。纵向ACC监控并控制到紧接在车辆1900前方的车辆的距离,并且自动地调节车速以维持离前方车辆的安全距离。横向ACC执行距离保持,并且在必要时建议车辆1900改变车道。横向ACC与诸如LCA和CWS之类的其他ADAS应用程序有关。
CACC使用来自其他车辆的信息,该信息可以经由网络接口1924和/或无线天线1926经由无线链路或者通过网络连接(例如通过因特网)间接地从其他车辆接收。直接链接可以由车对车(V2V)通信链路提供,而间接链接可以是基础设施到车辆(I2V)的通信链路。通常,V2V通信概念提供关于紧接在前的车辆(例如紧接在车辆1900前方且与其处于相同车道的车辆)的信息,而I2V通信概念提供关于前方更远处的交通的信息。CACC***可以包括I2V和V2V信息源中的任一个或者二者。给定车辆1900前方车辆的信息,CACC可以更加可靠,并且它有可能提高交通流的畅通性且降低道路拥堵。
FCW***被设计为提醒驾驶员注意危险,使得驾驶员可以采取纠正措施。FCW***使用耦合到专用处理器、DSP、FPGA和/或ASIC的前置相机和/或RADAR传感器1960,该专用处理器、DSP、FPGA和/或ASIC电耦合至诸如显示器、扬声器和/或振动部件之类的驾驶员反馈。FCW***可以提供例如声音、视觉警告、振动和/或快速制动脉冲形式的警告。
AEB***检测即将发生的与另一车辆或其他对象的前方碰撞,并且可以在驾驶员在指定的时间或距离参数内没有采取纠正措施的情况下自动地应用制动器。AEB***可以使用耦合到专用处理器、DSP、FPGA和/或ASIC的前置相机和/或RADAR传感器1960。当AEB***检测到危险时,它典型地首先提醒(alert)驾驶员采取纠正措施以避免碰撞,并且如果驾驶员没有采取纠正措施,那么AEB***可以自动地应用制动器以努力防止或者至少减轻预测的碰撞的影响。AEB***可以包括诸如动态制动支持和/或碰撞迫近制动之类的技术。
LDW***提供了诸如方向盘或座位振动之类的视觉、听觉和/或触觉警告,以在车辆1900穿过车道标记时提醒驾驶员。当驾驶员指示有意偏离车道时,通过激活转弯信号,不激活LDW***。LDW***可以使用耦合到专用处理器、DSP、FPGA和/或ASIC的前侧朝向相机,该专用处理器、DSP、FPGA和/或ASIC电耦合至诸如显示器、扬声器和/或振动部件之类的驾驶员反馈。
LKA***是LDW***的变型。如果车辆1900开始离开车道,那么LKA***提供纠正车辆1900的转向输入或制动。
BSW***检测并向驾驶员警告汽车视盲点中的车辆。BSW***可以提供视觉、听觉和/或触觉警报以指示合并或改变车道是不安全的。***可以在驾驶员使用转弯信号时提供附加的警告。BSW***可以使用耦合到专用处理器、DSP、FPGA和/或ASIC的后侧朝向相机和/或RADAR传感器1960,该专用处理器、DSP、FPGA和/或ASIC电耦合至诸如显示器、扬声器和/或振动部件之类的驾驶员反馈。
RCTW***可以在车辆1900倒车时在后置相机范围之外检测到对象时提供视觉、听觉和/或触觉通知。一些RCTW***包括AEB以确保应用车辆制动器以避免撞车。RCTW***可以使用耦合到专用处理器、DSP、FPGA和/或ASIC的一个或更多个后置RADAR传感器1960,该专用处理器、DSP、FPGA和/或ASIC电耦合至诸如显示器、扬声器和/或振动部件之类的驾驶员反馈。
常规的ADAS***可能易于出现假阳性结果,这可能会让驾驶员烦恼并分散注意力,但是典型地不是灾难性的,因为ADAS***提醒驾驶员并且允许驾驶员决定安全条件是否真正存在并且相对应地采取行动。然而,在自主车辆1900中,在冲突结果的情况下,车辆1900本身必须决定是否注意(heed)来自主计算机或者辅助计算机(例如第一控制器1936或第二控制器1936)的结果。例如,在一些实施例中,ADAS***1938可以是用于向备用计算机合理性模块提供感知信息的备用和/或辅助计算机。备用计算机合理性监视器可以在硬件部件上运行冗余多样的软件,以检测感知和动态驾驶任务中的故障。来自ADAS***1938的输出可以提供给监督MCU。如果来自主计算机和辅助计算机的输出冲突,那么监督MCU必须确定如何协调该冲突以确保安全操作。
在一些示例中,主计算机可以被配置为向监督MCU提供置信度评分,指示主计算机对所选结果的置信度。如果置信度评分超过阈值,那么监督MCU可以遵循主计算机的方向,而不管辅助计算机是否提供冲突或不一致的结果。在置信度评分不满足阈值的情况下并且在主计算机和辅助计算机指示不同的结果(例如冲突)的情况下,监督MCU可以在这些计算机之间进行仲裁以确定适当的结果。
监督MCU可以被配置为运行神经网络,所述神经网络被训练并且被配置为至少部分地基于来自主计算机和辅助计算机的输出,确定辅助计算机提供假警报的条件。因此,监督MCU中的神经网络可以了解何时可以信任辅助计算机的输出以及何时不能。例如,当辅助计算机为基于RADAR的FCW***时,监督MCU中的神经网络可以了解FCW***何时正在识别事实上不是危险的金属对象,例如触发警报的排水栅格或井盖。类似地,当辅助计算机是基于相机的LDW***时,监督MCU中的神经网络可以学习在骑车者或行人在场并且车道偏离实际上是最安全的策略时无视该LDW。在包括运行在监督MCU上的神经网络的实施例中,监督MCU可以包括适合于利用关联的内存运行神经网络的DLA或GPU中的至少一个。在优选的实施例中,监督MCU可以包括SoC 1904的部件和/或作为SoC1904的部件而被包括。
在其他示例中,ADAS***1938可以包括使用传统计算机视觉规则执行ADAS功能的辅助计算机。这样,辅助计算机可以使用经典的计算机视觉规则(如果-那么),并且在监督MCU中存在神经网络可以提高可靠性、安全性和性能。例如,多样化的实现方式和有意的非完全相同(non-identity)使得整个***更加容错,对于软件(或者软件-硬件接口)功能造成的故障而言尤其如此。例如,如果在主计算机上运行的软件中存在软件漏洞或错误并且运行在辅助计算机上的非完全相同的软件代码提供相同的总体结果,那么监督MCU可以更加确信总体结果是正确的,并且主计算机上的软件或硬件中的漏洞不造成实质性的错误。
在一些示例中,ADAS***1938的输出可以馈送至主计算机的感知块和/或主计算机的动态驾驶任务块。例如,如果ADAS***1938由于对象紧接在前的原因而指示前方碰撞警告,那么感知块可以在识别对象时使用该信息。在其他示例中,辅助计算机可以具有它自己的神经网络,其被训练并且因此如本文所描述的降低假阳性的风险。
车辆1900可以还包括信息娱乐SoC 1930(例如车载信息娱乐***(IVI))。尽管被图示和描述为SoC,但是信息娱乐***可以不是SoC,并且可以包括两个或更多分立的部件。信息娱乐SoC 1930可以包括可以用来向车辆1900提供音频(例如音乐、个人数字助理、导航指令、新闻、广播等等)、视频(例如TV、电影、流媒体等等)、电话(例如免提呼叫)、网络连接(例如LTE、WiFi等等)和/或信息服务(例如导航***,后停车援助,无线电数据***,诸如燃油水平、覆盖的总距离、制动燃油水平、油位、车门开/关、空气过滤器信息之类的车辆有关信息,等等)的硬件和软件的组合。例如,信息娱乐SoC 1930可以包括收音机、盘播放器、导航***、视频播放器、USB和蓝牙连接、车载电脑、车载娱乐、WiFi、方向盘音频控件、免提语音控件、平视显示器(HUD)、HMI显示器1934、远程信息处理设备、控制面板(例如用于控制各种部件、特征和/或***,和/或与其交互)和/或其他部件。信息娱乐SoC 1930可以进一步用来向车辆的用户提供信息(例如视觉的和/或听觉的),例如来自ADAS***1938的信息,诸如规划的车辆机动、轨迹、周围环境信息(例如交叉路口信息、车辆信息、道路信息等等)之类的自主驾驶信息,和/或其他信息。
信息娱乐SoC 1930可以包括GPU功能。信息娱乐SoC 1930可以通过总线1902(例如CAN总线、以太网等)与车辆1900的其他设备、***和/或部件通信。在一些示例中,信息娱乐SoC 1930可以耦合至监督MCU,使得在主控制器1936(例如车辆1900的主和/或备用计算机)出现故障的情况下,信息娱乐***的GPU可以执行一些自驾驶功能。在这样的示例中,信息娱乐SoC 1930可以如本文所描述的将车辆1900置于司机安全停车模式。
车辆1900可以还包括仪表组1932(例如数字仪表板、电子仪表组、数字仪表面板等等)。仪表组1932可以包括控制器和/或超级计算机(例如分立的控制器或超级计算机)。仪表组1932可以包括一套仪器,例如车速表、燃油水平、油压、转速表、里程表、转弯指示器、换档位置指示器、安全带警告灯、停车制动警告灯、发动机故障灯、安全气囊(SRS)***信息、照明控件、安全***控件、导航信息等等。在一些示例中,信息可以被显示和/或在信息娱乐SoC 1930和仪表组1932之间共享。换言之,仪表组1932可以作为信息娱乐SoC 1930的部分而被包括,或者反之亦然。
图19D为根据本公开一些实施例的基于云的服务器与图19A的示例自主车辆1900之间的通信的***示意图。***1976可以包括服务器1978、网络1990以及包括车辆1900在内的车辆。服务器1978可以包括多个GPU 1984(A)-1984(H)(这里统称为GPU 1984)、PCIe交换机1982(A)-1982(H)(这里统称为PCIe交换机1982)和/或CPU 1980(A)-1980(B)(这里统称为CPU 1980)。GPU 1984、CPU 1980和PCIe交换机可以与诸如例如且不限于NVIDIA开发的NVLink接口1988之类的高速互连和/或PCIe连接1986互连。在一些示例中,GPU 1984经由NVLink和/或NVSwitch SoC连接,并且GPU 1984和PCIe交换机1982经由PCIe互连连接。尽管图示出八个GPU 1984、两个CPU 1980和两个PCIe交换机,但是这并不意图是限制性的。取决于实施例,服务器1978中的每一个可以包括任意数量的GPU 1984、CPU 1980和/或PCIe交换机。例如,服务器1978中的每一个可以包括八个、十六个、三十二个和/或更多GPU 1984。
服务器1978可以通过网络1990并且从车辆接收图像数据,该图像数据表示示出诸如最近开始的道路工程之类的意外或改变的道路状况的图像。服务器1978可以通过网络1990并且向车辆传输神经网络1992、更新的神经网络1992和/或地图信息1994,包括关于交通和道路状况的信息。对地图信息1994的更新可以包括对于HD地图1922的更新,例如关于建筑工地、坑洼、弯道、洪水或其他障碍物的信息。在一些示例中,神经网络1992、更新的神经网络1992和/或地图信息1994可以已从新的训练和/或从环境中的任意数量的车辆接收的数据中表示和/或基于数据中心处执行的训练(例如使用服务器1978和/或其他服务器)的经验产生。
服务器1978可以用来基于训练数据训练机器学习模型(例如神经网络)。训练数据可以由车辆生成,和/或可以在仿真中生成(例如使用游戏引擎)。在一些示例中,训练数据被标记(例如在神经网络受益于有监督学习的情况下)和/或经历其他预处理,而在其他示例中,训练数据不被标记和/或预处理(例如在神经网络无需有监督学习的情况下)。可以根据任何一类或更多类别的机器学习技术来执行训练,包括但不限于诸如以下类别:监督训练、半监督训练、非监督训练、自学习、强化学习、联合学习、转移学习、特征学习(包括主要组成和聚类分析)、多线性子空间学习、流形学习、表示学习(包括备用字典学习)、基于规则的机器学习、异常检测及其任何变体或组合。一旦机器学习模型被训练,机器学习模型可以由车辆使用(例如通过网络1990传输至车辆),和/或机器学习模型可以由服务器1978用来远程地监控车辆。
在一些示例中,服务器1978可以接收来自车辆的数据,并且将该数据应用到最新的实时神经网络以用于实时智能推理。服务器1978可以包括由GPU 1984供电的深度学习超级计算机和/或专用AI计算机,例如NVIDIA开发的DGX和DGX站机器。然而,在一些示例中,服务器1978可以包括仅使用CPU供电的数据中心的深度学习基础设施。
服务器1978的深度学习基础设施可能够快速实时推理,并且可以使用该能力来评估并验证车辆1900中的处理器、软件和/或关联硬件的健康状况。例如,深度学习基础设施可以接收来自车辆1900的定期更新,例如图像序列和/或车辆1900已经定位的位于该图像序列中的对象(例如经由计算机视觉和/或其他机器学习对象分类技术)。深度学习基础设施可以运行它自己的神经网络以识别对象并且将它们与车辆1900识别的对象相比较,如果结果不匹配并且该基础设施得出车辆1900中的AI发生故障的结论,那么服务器1978可以向车辆1900传输信号,指示车辆1900的故障保护计算机进行控制,通知乘客,并且完成安全停车操作。
为了推理,服务器1978可以包括GPU 1984和一个或更多个可编程推理加速器(例如NVIDIA的TensorRT)。GPU供电的服务器和推理加速的组合可以使得实时响应成为可能。在其他示例中,例如在性能不那么重要的情况下,CPU、FPGA和其他处理器供电的服务器可以用于推理。
示例计算设备
图20是适合用于实现本公开的一些实施例的示例计算设备2000的框图。计算设备2000可以包括直接或间接耦合以下设备的互连***2002:存储器2004、一个或更多个中央处理单元(CPU)2006、一个或更多个图形处理单元(GPU)2008、通信接口2010、输入/输出(I/O)端口2012、输入/输出组件2014、电源2016,一个或更多个呈现组件2018(例如,一个或更多个显示器)和一个或更多个逻辑单元2020。在至少一个实施例中,一个或更多个计算设备2000可以包括一个或更多个虚拟机(VM),和/或其任何组件可以包括虚拟组件(例如,虚拟硬件组件)。对于非限制性示例,GPU 2008中的一个或更多个可以包括一个或更多个vGPU,CPU 2006中的一个或更多个可以包括一个或更多个vCPU,和/或逻辑单元2020中的一个或更多个可以包括一个或更多个虚拟逻辑单元。这样,一个或更多个计算设备2000可以包括分立组件(例如,专用于计算设备2000的全GPU)、虚拟组件(例如,专用于计算设备2000的GPU的一部分)、或其组合。
尽管图20的各个方框被示出为利用线路经由互连***2002连接,但这并不旨在是限制性的并且仅是为了清楚起见。例如,在一些实施例中,呈现组件2018(诸如显示设备)可被认为是I/O组件2014(例如,如果显示器是触摸屏)。作为另一个示例,CPU 2006和/或GPU2008可以包括存储器(例如,存储器2004可以表示除了GPU 2008的存储器、CPU 2006和/或其他组件之外的存储设备)。换言之,图20的计算设备仅是说明性的。在如“工作站”、“服务器”、“膝上型计算机”、“桌面型计算机”、“平板计算机”、“客户端设备”、“移动设备”、“手持式设备”、“游戏控制台”、“电子控制单元(ECU)”、“虚拟现实***”和/或其他设备或***类型的此类类别之间不做区分,因为所有都被考虑在图20的计算设备的范围内。
互连***2002可表示一个或更多个链路或总线,诸如地址总线、数据总线、控制总线或其组合。互连***2002可以包括一个或更多个总线或链路类型,诸如工业标准架构(ISA)总线、扩展工业标准架构(EISA)总线、视频电子标准协会(VESA)总线、***组件互连(PCI)总线、快速***组件互连(PCIe)总线和/或另一类型的总线或链路。在一些实施例中,组件之间存在直接连接。作为示例,CPU 2006可直接连接到存储器2004。进一步,CPU 2006可直接连接到GPU 2008。在组件之间存在直接或点对点连接的情况下,互连***2002可包括PCIe链路以执行连接。在这些示例中,PCI总线不需要被包括在计算设备2000中。
存储器2004可以包括各种计算机可读介质中的任何计算机可读介质。计算机可读介质可以是可由计算设备2000访问的任何可用介质。计算机可读介质可以包括易失性和非易失性介质,以及可移除和不可移除介质。作为示例而非限制,计算机可读介质可包括计算机存储介质和通信介质。
计算机存储介质可以包括以用于存储诸如计算机可读指令、数据结构、程序模块和/或其他数据类型的信息的任何方法或技术实现的易失性和非易失性介质和/或可移动和不可移动介质。例如,存储器2004可以存储计算机可读指令(例如,表示一个或更多个程序和/或一个或更多个程序元件,诸如操作***)。计算机存储介质可以包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术,CD-ROM、数字通用盘(DVD)或其他光盘存储、磁带盒、磁带、磁盘存储装置或其他磁性存储装置,或可用于存储所要信息且可由计算设备2000存取的任何其他介质。如本文所使用的,计算机存储介质不包括信号本身。
计算机存储介质可将计算机可读指令、数据结构、程序模块和/或其他数据类型体现在诸如载波或其他传输机制之类的已调制数据信号中,并且包括任何信息传递介质。术语“调制数据信号”可以指代以编码信号中的信息的方式设置或改变其一个或更多个参数的信号。作为示例而非限制,计算机存储介质可包括有线介质(诸如有线网络或直接有线连接)和无线介质(诸如声学、RF、红外和其他无线介质)。以上任何内容的组合也应包含在计算机可读介质的范围内。
CPU 2006可经配置以执行计算机可读指令中的至少一些以控制计算设备2000的一个或更多个组件执行本文中所描述的方法和/或过程中的一个或更多个。CPU 2006可各自包含能够同时处置众多软件线程的一个或更多个核心(例如,一个、两个、四个、八个、二十八个、七十二个等)。CPU 2006可包含任何类型的处理器,且可取决于所实施的计算设备2000的类型而包含不同类型的处理器(例如,针对移动装置具有较少核心的处理器和针对服务器具有较多核心的处理器)。例如,取决于计算设备2000的类型,处理器可以是使用精简指令集计算(RISC)实现的高级RISC机器(ARM)处理器或使用复杂指令集计算(CISC)实现的x86处理器。除了一个或更多个微处理器或补充协处理器(诸如数学协处理器)之外,计算设备2000还可包括一个或更多个CPU 2006。
除一个或更多个CPU 2006以外或替代一个或更多个CPU 2006,一个或更多个GPU2008可被配置成执行计算机可读指令中的至少一些以控制计算设备2000的一个或更多个组件执行本文所描述的方法和/或过程中的一个或更多个。GPU 2008中的一个或更多个可为集成GPU(例如,有CPU 2006中的一个或更多个)和/或GPU 2008中的一个或更多个可为离散GPU。在实施例中,GPU 2008中的一个或更多个可以是CPU 2006中的一个或更多个的协处理器。GPU 2008可由计算设备2000使用以渲染图形(例如,3D图形)或执行通用计算。例如,GPU 2008可用于GPU上的通用计算(GPGPU)。GPU 2008可包含能够同时处置数百或数千软件线程的数百或数千核心。GPU 2008可响应于渲染命令(例如,经由主机接口从CPU2006接收的渲染命令)而产生输出图像的像素数据。GPU 2008可包含用于存储像素数据或任何其他合适数据(例如,GPGPU数据)的图形存储器(例如,显示存储器)。显示存储器可作为存储器2004的一部分被包括。GPU 2008可包含并行操作(例如,经由链路)的两个或两个以上GPU。链路可以直接连接GPU(例如,使用NVLINK)或可以通过交换机(例如,使用NVSwitch)连接GPU。当组合在一起时,每一GPU 2008可产生用于输出的不同部分或用于不同输出的像素数据或GPGPU数据(例如,用于第一图像的第一GPU和用于第二图像的第二GPU)。每一GPU可包含其自己的存储器,或可与其他GPU共享存储器。
除CPU 2006和/或GPU 2008之外或替代CPU 2006和/或GPU 2008,逻辑单元2020可经配置以执行计算机可读指令中的至少一些以控制计算设备2000的一个或更多个组件执行本文中所描述的方法和/或过程中的一个或更多个。在实施例中,一个或更多个CPU2006、一个或更多个GPU 2008、和/或一个或更多个逻辑单元2020可以离散地或联合地执行方法、过程和/或其部分的任何组合。逻辑单元2020中的一个或更多个可为CPU 2006和/或GPU 2008中的一个或更多个中的一部分和/或集成于CPU 2006和/或GPU 2008中的一个或更多个和/或逻辑单元2020中的一个或更多个可为离散组件或以其他方式在CPU 2006和/或GPU 2008外部。在实施例中,逻辑单元2020中的一个或更多个可以是CPU 2006中的一个或更多个和/或GPU 2008中的一个或更多个的协处理器。
逻辑单元2020的示例包括一个或更多个处理核心和/或其组件,诸如数据处理单元(DPU)、张量核心(TC)、张量处理单元(TPU)、像素视觉核心(PVC)、视觉处理单元(VPU)、图形处理群集(GPC)、纹理处理群集(TPC)、流多处理器(SM)、树横向单元(TTU)、人工智能加速器(AIA)、深度学习加速器(DLA)、算术逻辑单元(ALU)、专用集成电路(ASIC)、浮点单元(FPU)、输入/输出(I/O)元件、***组件互连(PCI)或快速***组件互连(PCIe)元件等。
通信接口2010可以包括使计算设备2000能够经由电子通信网络(包括有线和/或无线通信)与其他计算设备通信的一个或更多个接收机、发射机和/或收发机。通信接口2010可包括实现通过多个不同网络中的任一个进行通信的组件和功能,诸如无线网络(例如,Wi-Fi、Z-Wave、蓝牙、蓝牙LE、ZigBee等)、有线网络(例如,通过以太网或无限带通信)、低功率广域网(例如,LoRaWAN、SigFox等)和/或互联网。在一个或更多个实施例中,一个或更多个逻辑单元2020和/或通信接口2010可以包括一个或更多个数据处理单元(DPU),用于将通过网络和/或通过互连***2002接收的数据直接传输到一个或更多个GPU 2008(例如,其存储器)。
I/O端口2012可以使得计算设备2000能够逻辑地耦合到包括I/O组件2014、一个或更多个呈现组件2018和/或其他组件的其他设备,其中一些可以被内置到(例如,集成在)计算设备2000中。说明性I/O组件2014包括麦克风、鼠标、键盘、操纵杆、游戏垫、游戏控制器、碟形卫星天线、扫描仪、打印机、无线设备等。I/O组件2014可以提供处理空中姿势、语音或由用户生成的其他生理输入的自然用户界面(NUI)。在一些情况下,可将输入发射到适当的网络元件以供进一步处理。NUI可实现与计算设备2000的显示器相关联的语音识别、指示笔识别、面部识别、生物特征识别、屏幕上和屏幕附近的姿势识别、空中姿势、头部和眼睛跟踪、以及触摸识别(如以下更详细地描述的)的任何组合。计算设备2000可以包括用于手势检测和识别的深度相机,诸如立体相机***、红外相机***、RGB相机***、触摸屏技术和这些的组合。另外,计算设备2000可包含使得能够检测运动的加速度计或陀螺仪(例如,作为惯性测量单元(IMU)的部分)。在一些示例中,计算设备2000可以使用加速度计或陀螺仪的输出来渲染沉浸式增强现实或虚拟现实。
电源2016可包括硬连线电源、电池电源或其组合。电源2016可向计算设备2000提供电力以使得计算设备2000的组件能够操作。
呈现组件2018可包括显示器(例如,监视器、触摸屏、电视屏幕、平视显示器(HUD)、其他显示器类型或其组合)、扬声器和/或其他呈现组件。呈现组件2018可从其他组件(例如,GPU 2008、CPU 2006、DPU等)接收数据,且输出所述数据(例如,作为图像、视频、声音等)。
示例数据中心
图21示出了可在本公开的至少一个实施例中使用的示例数据中心2100。数据中心2100可包括数据中心基础设施层2110、框架层2120、软件层2130和/或应用层2140。
如图21所示,数据中心基础设施层2110可以包括资源协调器2112、分组的计算资源2114和节点计算资源(“节点C.R.s”)2116(1)-2116(N),其中“N”表示任何完整的正整数。在至少一个实施例中,节点C.R.2116(1)-2116(N)可包括,但不限于任何数量的中央处理单元(“CPU”)或其他处理器(包括DPU、加速器、现场可编程门阵列(FPGA)、图形处理器或图形处理单元(GPU)等),存储器设备(例如,动态只读存储器),存储设备(例如,固态或磁盘驱动器),网络输入/输出(NW I/O)装置、网络交换机、虚拟机(VM)、功率模块和/或冷却模块,等等。在一些实施例中,来自节点C.R.2116(1)-2116(N)中的一个或更多个节点C.R.s可对应于具有上述计算资源中的一个或更多个的服务器。此外,在一些实施例中,节点C.R.2116(1)-2116(N)可包括一个或更多个虚拟组件,诸如vGPU、vCPU等,和/或节点C.R.2116(1)-2116(N)中的一个或更多个可对应于虚拟机(VM)。
在至少一个实施例中,分组的计算资源2114可包括容纳在一个或更多个机架(未示出)内的节点C.R.2116的单独分组,或容纳在不同地理位置(也未示出)处的数据中心内的许多机架。分组的计算资源2114内的节点C.R.2116的单独分组可包括可被配置或分配来支持一个或更多个工作负荷的分组计算、网络、存储器或存储资源。在至少一个实施例中,包括CPU、GPU、DPU和/或其他处理器的若干节点C.R.2116可以分组在一个或更多个机架内以提供计算资源来支持一个或更多个工作负荷。一个或更多个机架还可包括任意组合的任意数量的功率模块、冷却模块和/或网络交换机。
资源协调器2122可配置或以其他方式控制一个或更多个节点C.R.2116(1)-2116(N)和/或分组的计算资源2114。在至少一个实施例中,资源协调器2122可以包括用于数据中心2100的软件设计基础设施(“SDI”)管理实体。资源协调器2122可以包括硬件、软件或其某种组合。
在至少一个实施例中,如图21所示,框架层2120可以包括作业调度器2132、配置管理器2134、资源管理器2136和/或分布式文件***2138。框架层2120可以包括支持软件层2130的软件2132和/或应用层2140的一个或更多个应用2142的框架。软件2132或应用2142可分别包含基于网络的服务软件或应用,例如由Amazon(亚马逊)网络服务、Google Cloud(谷歌云)和Microsoft Azure提供的那些。框架层2120可以是但不限于可以利用分布式文件***2138进行大规模数据处理(例如,“大数据”)的免费和开源的软件网络应用框架(如Apache SparkTM(下文称为“Spark”))的类型。在至少一个实施例中,作业调度器2132可以包括Spark驱动器以促进调度由数据中心2100的不同层支持的工作负荷。配置管理器2134可以能够配置不同层,诸如软件层2130和框架层2120(其包括用于支持大规模数据处理的Spark和分布式文件***2138)。资源管理器2136可以能够管理被映射到分布式文件***2138和作业调度器2132或被分配用于支持分布式文件***2138和作业调度器2132的集群的或分组的计算资源。在至少一个实施例中,集群的或分组的计算资源可包括在数据中心基础设施层2110的分组的计算资源2114。资源管理器2136可与资源协调器2112协调以管理这些被映射或分配的计算资源。
在至少一个实施例中,在软件层2130中包括的软件2132可包括由节点C.R.s 2116(1)-2116(N)、分组的计算资源2114和/或框架层2120的分布式文件***2138中的至少部分使用的软件。一种或更多种类型的软件可以包括但不限于互联网网页搜索软件、电子邮件病毒扫描软件、数据库软件和流式视频内容软件。
在至少一个实施例中,在应用层2140中包括的应用2142可包括由节点C.R.2116(1)-2116(N)、分组的计算资源2114和/或框架层2120的分布式文件***2138中的至少部分使用的一个或更多个类型的应用。一种或更多种类型的应用可以包括但不限于任何数量的基因组应用、认知计算和机器学习应用,包括训练或推理软件、机器学习框架软件(例如,PyTorch、TensorFlow、Caffe等)和/或结合一个或更多个实施例使用的其他机器学习应用。
在至少一个实施例中,配置管理器2134、资源管理器2136和资源协调器2112中的任一个可基于在任何技术上可行的方式中获取的任何量和类型的数据来实现任何数量和类型的自修改动作。自修改动作可使数据中心2100的数据中心操作者免于做出可能较差的配置决策和可能避免数据中心的未充分利用和/或较差执行部分。
根据本文描述的一个或更多个实施例,数据中心2100可包括工具、服务、软件或其他资源来训练一个或更多个机器学习模型或使用一个或更多个机器学习模型来预测或推理信息。例如,可以通过使用以上相对于数据中心2100描述的软件和/或计算资源根据神经网络架构来计算权重参数来训练一个或更多个机器学习模型。在至少一个实施例中,对应于一个或更多个神经网络的经训练或部署的机器学习模型可用于通过使用通过一种或更多种训练技术(诸如但不限于本文中描述的那些训练技术)计算的权重参数,使用上文相对于数据中心2100描述的资源来推理或预测信息。
在至少一个实施例中,数据中心2100可使用CPU、专用集成电路(ASIC)、GPU、FPGA和/或其他硬件(或与其对应的虚拟计算资源)来使用上述资源执行训练和/或推理。此外,上文所描述的一或更多个软件和/或硬件资源可被配置为允许用户训练或执行对信息的推理的服务,例如图像识别、语音识别或其他人工智能服务。
示例网络环境
适合用于实现本公开的实施例的网络环境可以包括一个或更多个客户端设备、服务器、网络附加存储(NAS)、其他后端设备和/或其他设备类型。客户端设备、服务器和/或其他设备类型(例如,每个设备)可以在图20的一个或更多个计算设备2000的一个或更多个实例上实现——例如,每个设备可以包括一个或更多个计算设备2000的类似部件、特征和/或功能。此外,在实现后端设备(例如,服务器、NAS等)的情况下,后端设备可被包括作为数据中心2100的一部分,数据中心2100的示例在本文中关于图21更详细地描述。
网络环境的组件可经由网络彼此通信,所述网络可为有线的、无线的或为两者。网络可以包括多个网络或多个网络中的一个网络。例如,网络可包括一个或更多个广域网(WAN)、一个或更多个局域网(LAN)、一个或更多个公共网络(诸如互联网和/或公共交换电话网(PSTN))和/或一个或更多个私有网络。在网络包括无线电信网络的情况下,诸如基站、通信塔或者甚至接入点(以及其他组件)的组件可以提供无线连接。
兼容的网络环境可以包括一个或更多个对等网络环境(在这种情况下,服务器可以不被包括在网络环境中)和一个或更多个客户端-服务器网络环境(在这种情况下,一个或更多个服务器可以被包括在网络环境中)。在对等网络环境中,本文针对服务器所描述的功能可在任何数量的客户端设备上实现。
在至少一个实施例中,网络环境可包括一个或更多个基于云的网络环境、分布式计算环境、其组合等。基于云的网络环境可包括框架层、作业调度器、资源管理器和在一个或更多个服务器上实现的分布式文件***,所述服务器可包括一个或更多个核心网服务器和/或边缘服务器。框架层可包括支持软件层的软件和/或应用层的一个或更多个应用的框架。软件或应用可分别包含基于网络的服务软件或应用。在实施例中,一个或更多个客户端设备可以使用基于网络的服务软件或应用(例如,通过经由一个或更多个应用编程接口(API)访问服务软件和/或应用)。框架层可以是但不限于如可以使用分布式文件***进行大规模数据处理(例如,“大数据”)的一种免费和开源软件网络应用框架。
基于云的网络环境可提供执行本文描述的计算和/或数据存储功能(或其一个或更多个部分)的任何组合的云计算和/或云存储。这些不同功能中的任何功能可以分布在来自(例如,可以分布在州、地区、国家、全球等的一个或更多个数据中心的)中央或核心服务器的多个位置上。如果与用户(例如,客户端设备)的连接相对靠近边缘服务器,则核心服务器可以将功能的至少一部分指定给边缘服务器。基于云的网络环境可以是私有的(例如,限于单个组织),可以是公共的(例如,对许多组织可用),和/或其组合(例如,混合云环境)。
一个或更多个客户端设备可以包括本文关于图20所描述的一个或更多个示例计算设备2000的组件、特征和功能中的至少一些。作为示例而非限制,客户端设备可被实现为个人计算机(PC),膝上型计算机、移动设备、智能电话、平板计算机、智能手表、可穿戴计算机、个人数字助理(PDA)、MP3播放器、虚拟现实耳机、全球定位***(GPS)或设备、视频播放器、相机、监视设备或***、车辆、船、飞船、虚拟机、无人机、机器人、手持式通信设备、医院设备、游戏设备或***、娱乐***、车辆计算机***、嵌入式***控制器、遥控器、电器、消费电子设备、工作站、边缘设备、这些描绘的设备的任何组合或任何其他合适的设备。
本公开可以在由计算机或者诸如个人数字助理或其他手持式设备之类的其他机器执行的、包括诸如程序模块之类的计算机可执行指令的机器可使用指令或者计算机代码的一般背景下进行描述。通常,包括例程、程序、对象、组件、数据结构等等的程序模块指的是执行特定任务或者实现特定抽象数据类型的代码。本公开可以在各种各样的***配置中实践,这些配置包括手持式设备、消费电子器件、通用计算机、更专业的计算设备等等。本公开也可以在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实践。
如在本文中使用的,“和/或”关于两个或更多元件的叙述应当解释为仅指一个元件或者元件组合。例如,“元件A、元件B和/或元件C”可以包括仅仅元件A,仅仅元件B,仅仅元件C,元件A和元件B,元件A和元件C,元件B和元件C,或者元件A、B和C。此外,“元件A或元件B中的至少一个”可以包括元件A中的至少一个,元件B中的至少一个,或者元件A中的至少一个和元件B中的至少一个。进一步,“元件A和元件B中的至少一个”可以包括元件A中的至少一个,元件B中的至少一个,或者元件A中的至少一个和元件B中的至少一个。
这里详细地描述了本公开的主题以满足法定要求。然而,描述本身并非意在限制本公开的范围。相反地,本公开人已经设想到,要求保护的主题也可以以其他的方式具体化,以包括与本文中结合其他当前或未来技术描述的步骤不同的步骤或者相似的步骤的组合。而且,尽管术语“步骤”和/或“块”在本文中可以用来隐含采用的方法的不同元件,但是这些术语不应当被解释为暗示本文公开的各个步骤之中或之间的任何特定顺序,除非明确描述了各步骤的顺序。
Claims (20)
1.一种方法,包括:
至少基于使用机器生成的传感器数据来确定用于跟踪的一个或更多个第一对象;
至少基于所述传感器数据来确定与所述一个或更多个第一对象相关联的一个或更多个参数的一个或更多个值;以及
至少基于所述一个或更多个值来确定用于跟踪的一个或更多个第二对象,所述一个或更多个第二对象包括所述一个或更多个第一对象的至少一部分。
2.如权利要求1所述的方法,其中确定用于跟踪的所述一个或更多个第二对象包括:
至少基于所述一个或更多个值来确定所述一个或更多个第一对象的一个或更多个分数;以及
至少基于所述一个或更多个分数来确定所述一个或更多个第二对象。
3.如权利要求2所述的方法,其中确定所述一个或更多个第二对象包括:
确定与所述一个或更多个分数中的最高分数相关联的所述一个或更多个第一对象的阈值数目;以及
确定所述一个或更多个第二对象包括所述阈值数目的所述一个或更多个第一对象。
4.如权利要求1所述的方法,其中与所述一个或更多个第一对象相关联的所述一个或更多个参数包括以下中的一个或更多个:
与所述一个或更多个第一对象相关联的分类;
到所述一个或更多个第一对象的距离;
所述一个或更多个第一对象的行进方向;
与所述一个或更多个第一对象相对应的置信度;或者
与所述一个或更多个第一对象相关联的碰撞时间。
5.如权利要求1所述的方法,进一步包括:
确定与所述一个或更多个第一对象相关联的对象的数目大于对象的阈值数目,
其中确定所述一个或更多个第二对象还至少基于所述对象的数目大于所述对象的阈值数目。
6.如权利要求1所述的方法,进一步包括:
确定来自所述一个或更多个第一对象的对象与当前跟踪相关联;以及
至少基于所述一个或更多个第二对象不包括该对象,确定终止与该对象相关联的所述当前跟踪。
7.如权利要求1所述的方法,进一步包括:
确定来自所述一个或更多个第二对象的对象不与跟踪相关联;以及
至少基于所述一个或更多个第二对象包括该对象,确定创建与该对象相关联的所述跟踪。
8.如权利要求1所述的方法,进一步包括:
确定来自所述一个或更多个第二对象的对象与当前跟踪相关联;以及
至少基于所述一个或更多个第二对象包括该对象,更新与该对象相关联的所述当前跟踪的状态信息。
9.一种***,包括:
一个或更多个处理单元,所述一个或更多个处理单元用于:
至少基于使用机器生成的传感器数据来确定用于跟踪的一个或更多个第一对象;
确定与所述一个或更多个第一对象相关联的一个或更多个分数;以及
至少基于所述一个或更多个分数来确定用于跟踪的一个或更多个第二对象,所述一个或更多个第二对象包括所述一个或更多个第一对象的至少一部分。
10.如权利要求9所述的***,其中所述一个或更多个处理单元进一步用于:
确定与所述一个或更多个第一对象相关联的一个或更多个参数的一个或更多个值,
其中至少基于所述一个或更多个值来确定与所述一个或更多个第一对象相关联的所述一个或更多个分数。
11.如权利要求10所述的***,其中与所述一个或更多个第一对象相关联的所述一个或更多个参数包括以下中的一个或更多个:
与所述一个或更多个第一对象相关联的分类;
到所述一个或更多个第一对象的距离;
所述一个或更多个第一对象的行进方向;
与所述一个或更多个第一对象相关联的置信度;或者
与所述一个或更多个第一对象相关联的碰撞时间。
12.如权利要求9所述的***,其中所述一个或更多个处理单元进一步用于:
确定与所述一个或更多个第一对象相关联的对象的数目大于对象的阈值数目,
其中所述一个或更多个分数的确定或所述一个或更多个第二对象的确定中的至少一个至少基于所述对象的数目大于所述对象的阈值数目。
13.如权利要求9所述的***,其中确定用于跟踪的所述一个或更多个第二对象包括:
确定与所述一个或更多个分数中的最高分数相关联的所述一个或更多个第一对象的阈值数目;以及
确定所述一个或更多个第二对象包括所述阈值数目的所述第一对象。
14.如权利要求9所述的***,其中所述一个或更多个处理单元进一步用于:
确定来自所述第一对象的对象与当前跟踪相关联;以及
至少基于所述一个或更多个第二对象,确定终止与该对象相关联的所述当前跟踪。
15.如权利要求9所述的***,其中所述一个或更多个处理单元进一步用于:
确定来自所述一个或更多个第二对象的对象不与跟踪相关联;以及
至少基于所述一个或更多个第二对象包括该对象,确定创建与该对象相关联的所述跟踪。
16.如权利要求9所述的***,其中在第一时间使用所述机器生成所述传感器数据,并且其中所述一个或更多个处理单元进一步用于:
至少基于在第二时间使用所述机器生成的第二传感器数据,确定用于跟踪的一个或更多个第三对象;
确定与所述一个或更多个第三对象相关联的对象的数目小于对象的阈值数目;以及
至少基于所述对象的数目小于所述对象的阈值数目,制止确定与所述一个或更多个第三对象相关联的一个或更多个第二分数。
17.如权利要求9所述的***,其中:
至少使用所述机器的一个或更多个组件确定所述一个或更多个分数;以及
所述一个或更多个处理单元进一步用于:
确定与所述一个或更多个第一对象相关联的对象的数目等于或大于对象的阈值数目;以及
至少基于所述对象的数目等于或大于所述对象的阈值数目来激活所述一个或更多个组件。
18.如权利要求9所述的***,其中所述***被包括在以下中的至少一个中:
用于自主或半自主机器的控制***;
用于自主或半自主机器的感知***;
用于执行模拟操作的***;
用于执行数字孪生操作的***;
用于执行光传输模拟的***;
用于执行3D资产协作内容创建的***;
用于生成或呈现混合现实内容、虚拟现实内容或增强现实内容中的至少一个的***;
用于执行深度学习操作的***;
使用边缘设备实现的***;
使用机器人实现的***;
用于执行会话AI操作的***;
用于生成合成数据的***;
结合一个或更多个虚拟机VM的***;
至少部分地在数据中心中实现的***;或者
至少部分地使用云计算资源实现的***。
19.一种处理器,包括:
一个或更多个处理单元,所述一个或更多个处理单元用于执行对来自被检测对象的集合的被检测对象的子集的跟踪,所述被检测对象的子集是至少基于使用与所述被检测对象的集合相关联的一个或更多个参数的一个或更多个值对所述被检测对象的所述子集进行优先级排序来确定的。
20.如权利要求19所述的处理器,其中所述处理器被包括在以下中的至少一个中:
用于自主或半自主机器的控制***;
用于自主或半自主机器的感知***;
用于执行模拟操作的***;
用于执行数字孪生操作的***;
用于执行光传输模拟的***;
用于执行3D资产协作内容创建的***;
用于生成或呈现混合现实内容、虚拟现实内容或增强现实内容中的至少一个的***;
用于执行深度学习操作的***;
使用边缘设备实现的***;
使用机器人实现的***;
用于执行会话AI操作的***;
用于生成合成数据的***;
结合一个或更多个虚拟机VM的***;
至少部分地在数据中心中实现的***;或者
至少部分地使用云计算资源实现的***。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202218074708A | 2022-12-05 | 2022-12-05 | |
US18/074,708 | 2022-12-05 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118154639A true CN118154639A (zh) | 2024-06-07 |
Family
ID=91078923
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311657524.3A Pending CN118154639A (zh) | 2022-12-05 | 2023-12-05 | 用于自主***及应用的对象跟踪管理 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN118154639A (zh) |
DE (1) | DE102023133535A1 (zh) |
-
2023
- 2023-11-30 DE DE102023133535.9A patent/DE102023133535A1/de active Pending
- 2023-12-05 CN CN202311657524.3A patent/CN118154639A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
DE102023133535A1 (de) | 2024-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11688181B2 (en) | Sensor fusion for autonomous machine applications using machine learning | |
US11508049B2 (en) | Deep neural network processing for sensor blindness detection in autonomous machine applications | |
US11636689B2 (en) | Adaptive object tracking algorithm for autonomous machine applications | |
CN113950702A (zh) | 在视频分析应用中使用相关滤波器的多对象跟踪 | |
WO2021174118A1 (en) | Object detection using image alignment for autonomous machine applications | |
US20220297706A1 (en) | Combining rule-based and learned sensor fusion for autonomous systems and applications | |
US20230213945A1 (en) | Obstacle to path assignment for autonomous systems and applications | |
CN116767245A (zh) | 使用自主***和应用的神经网络的地图信息对象数据管理 | |
CN115701623A (zh) | 自主机器应用中范围图像映射的置信传播 | |
US20240020953A1 (en) | Surround scene perception using multiple sensors for autonomous systems and applications | |
CN118119981A (zh) | 用于自主***和应用的使用机器学习的自由空间检测 | |
US20240017743A1 (en) | Task-relevant failure detection for trajectory prediction in machines | |
WO2024015632A1 (en) | Surround scene perception using multiple sensors for autonomous systems and applications | |
US20230360255A1 (en) | Joint 2d and 3d object tracking for autonomous systems and applications | |
US20240071064A1 (en) | Object detection using deep learning for real-time streaming applications | |
CN117581117A (zh) | 自主机器***和应用中使用LiDAR数据的动态对象检测 | |
US20230298361A1 (en) | Image to world space transformation for ground-truth generation in autonomous systems and applications | |
JP2023088849A (ja) | 自律型システム及びアプリケーションにおける特徴ディスクリプタ・マッピングを使用した単一及びアクロス・センサ物体追跡 | |
CN116772874A (zh) | 用于自主***和应用的使用占用网格进行危险检测 | |
US12026955B2 (en) | Assigning obstacles to lanes using neural networks for autonomous machine applications | |
US20220092317A1 (en) | Simulating viewpoint transformations for sensor independent scene understanding in autonomous systems | |
EP3850539B1 (en) | Deep neural network processing for sensor blindness detection in autonomous machine applications | |
US20240022601A1 (en) | Detecting identity spoofing attacks in multi-sensor systems and applications | |
US20230360232A1 (en) | Object tracking and time-to-collision estimation for autonomous systems and applications | |
US20230391365A1 (en) | Techniques for generating simulations for autonomous machines and applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |