CN113785302A - 自主机器应用中的路口姿态检测 - Google Patents
自主机器应用中的路口姿态检测 Download PDFInfo
- Publication number
- CN113785302A CN113785302A CN202080031631.3A CN202080031631A CN113785302A CN 113785302 A CN113785302 A CN 113785302A CN 202080031631 A CN202080031631 A CN 202080031631A CN 113785302 A CN113785302 A CN 113785302A
- Authority
- CN
- China
- Prior art keywords
- vehicle
- intersection
- lane
- keypoints
- data
- 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
- 238000001514 detection method Methods 0.000 title description 39
- 239000013598 vector Substances 0.000 claims abstract description 115
- 238000013528 artificial neural network Methods 0.000 claims abstract description 74
- 238000000034 method Methods 0.000 claims description 90
- 238000004422 calculation algorithm Methods 0.000 claims description 39
- 238000012545 processing Methods 0.000 claims description 37
- 238000012549 training Methods 0.000 claims description 34
- 230000003044 adaptive effect Effects 0.000 claims description 15
- 238000009826 distribution Methods 0.000 claims description 13
- 238000005070 sampling Methods 0.000 claims description 3
- 238000010801 machine learning Methods 0.000 description 61
- 230000006870 function Effects 0.000 description 54
- 230000015654 memory Effects 0.000 description 51
- 238000013527 convolutional neural network Methods 0.000 description 31
- 230000008569 process Effects 0.000 description 27
- 238000004891 communication Methods 0.000 description 22
- 238000003860 storage Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 14
- 238000007726 management method Methods 0.000 description 14
- 230000000007 visual effect Effects 0.000 description 11
- 230000001133 acceleration Effects 0.000 description 10
- 230000008859 change Effects 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 10
- 238000013135 deep learning Methods 0.000 description 9
- 230000002093 peripheral effect Effects 0.000 description 9
- 238000013439 planning Methods 0.000 description 9
- 230000008447 perception Effects 0.000 description 8
- 230000004044 response Effects 0.000 description 8
- 238000012805 post-processing Methods 0.000 description 7
- 238000011176 pooling Methods 0.000 description 6
- 230000009467 reduction Effects 0.000 description 5
- 238000009877 rendering Methods 0.000 description 5
- 238000012800 visualization Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 230000003190 augmentative effect Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000007613 environmental effect Effects 0.000 description 4
- 238000001914 filtration Methods 0.000 description 4
- 238000005259 measurement Methods 0.000 description 4
- 210000002569 neuron Anatomy 0.000 description 4
- 238000004088 simulation Methods 0.000 description 4
- 230000001629 suppression Effects 0.000 description 4
- 230000002123 temporal effect Effects 0.000 description 4
- 238000002604 ultrasonography Methods 0.000 description 4
- 238000013473 artificial intelligence 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
- 230000001815 facial effect Effects 0.000 description 3
- 238000007667 floating Methods 0.000 description 3
- 239000000446 fuel Substances 0.000 description 3
- 238000002372 labelling Methods 0.000 description 3
- 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 3
- 229920002451 polyvinyl alcohol Polymers 0.000 description 3
- 235000019422 polyvinyl alcohol Nutrition 0.000 description 3
- 238000007781 pre-processing Methods 0.000 description 3
- 239000000047 product Substances 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 150000001875 compounds Chemical class 0.000 description 2
- 238000011960 computer-aided design Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 230000036541 health Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000003595 spectral effect Effects 0.000 description 2
- 238000012706 support-vector machine Methods 0.000 description 2
- 230000001360 synchronised effect 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
- 101100248200 Arabidopsis thaliana RGGB gene Proteins 0.000 description 1
- 238000006424 Flood reaction Methods 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
- 206010034960 Photophobia Diseases 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000007621 cluster analysis Methods 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000002485 combustion reaction Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 238000013481 data capture Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000010339 dilation Effects 0.000 description 1
- 230000005669 field effect Effects 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 238000012905 input function Methods 0.000 description 1
- 238000003064 k means clustering Methods 0.000 description 1
- 208000013469 light sensitivity Diseases 0.000 description 1
- 238000012417 linear regression Methods 0.000 description 1
- 239000007788 liquid Substances 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000007477 logistic regression Methods 0.000 description 1
- 230000007787 long-term memory Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 239000011159 matrix material Substances 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
- 238000012544 monitoring process Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 239000002243 precursor Substances 0.000 description 1
- 238000000513 principal component analysis Methods 0.000 description 1
- 238000007637 random forest analysis Methods 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
- 230000001953 sensory effect Effects 0.000 description 1
- 230000035939 shock Effects 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 239000007787 solid Substances 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
- 238000012546 transfer Methods 0.000 description 1
- 238000013526 transfer learning Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/26—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W30/00—Purposes of road vehicle drive control systems not related to the control of a particular sub-unit, e.g. of systems using conjoint control of vehicle sub-units
- B60W30/18—Propelling the vehicle
- B60W30/18009—Propelling the vehicle related to particular drive situations
- B60W30/18159—Traversing an intersection
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W60/00—Drive control systems specially adapted for autonomous road vehicles
- B60W60/001—Planning or execution of driving tasks
- B60W60/0011—Planning or execution of driving tasks involving control alternatives for a single driving scenario, e.g. planning several paths to avoid obstacles
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/0083—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots to help an aircraft pilot in the rolling phase
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0231—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
- G05D1/0246—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/20—Control system inputs
- G05D1/24—Arrangements for determining position or orientation
- G05D1/247—Arrangements for determining position or orientation using signals provided by artificial sources external to the vehicle, e.g. navigation beacons
- G05D1/249—Arrangements for determining position or orientation using signals provided by artificial sources external to the vehicle, e.g. navigation beacons from positioning sensors located off-board the vehicle, e.g. from cameras
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/40—Control within particular dimensions
- G05D1/43—Control of position or course in two dimensions
- G05D1/437—Control of position or course in two dimensions for aircraft during their ground movement, e.g. taxiing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2413—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/088—Non-supervised learning, e.g. competitive learning
-
- 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/44—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
- G06V10/443—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by matching or filtering
- G06V10/449—Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters
- G06V10/451—Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters with interaction between the filter responses, e.g. cortical complex cells
- G06V10/454—Integrating the filters into a hierarchical structure, e.g. convolutional neural networks [CNN]
-
- 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/46—Descriptors for shape, contour or point-related descriptors, e.g. scale invariant feature transform [SIFT] or bags of words [BoW]; Salient regional features
- G06V10/462—Salient features, e.g. scale invariant feature transforms [SIFT]
-
- 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/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/764—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
-
- 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/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- 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
- G06V20/56—Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
-
- G—PHYSICS
- G08—SIGNALLING
- G08G—TRAFFIC CONTROL SYSTEMS
- G08G1/00—Traffic control systems for road vehicles
- G08G1/16—Anti-collision systems
- G08G1/161—Decentralised systems, e.g. inter-vehicle communication
- G08G1/163—Decentralised systems, e.g. inter-vehicle communication involving continuous checking
-
- G—PHYSICS
- G08—SIGNALLING
- G08G—TRAFFIC CONTROL SYSTEMS
- G08G1/00—Traffic control systems for road vehicles
- G08G1/16—Anti-collision systems
- G08G1/166—Anti-collision systems for active traffic, e.g. moving vehicles, pedestrians, bikes
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W2420/00—Indexing codes relating to the type of sensors based on the principle of their operation
- B60W2420/40—Photo, light or radio wave sensitive means, e.g. infrared sensors
- B60W2420/403—Image sensing, e.g. optical camera
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W2552/00—Input parameters relating to infrastructure
- B60W2552/53—Road markings, e.g. lane marker or crosswalk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2218/00—Aspects of pattern recognition specially adapted for signal processing
- G06F2218/12—Classification; Matching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
- G06N20/10—Machine learning using kernel methods, e.g. support vector machines [SVM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
- G06N20/20—Ensemble learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/047—Probabilistic or stochastic networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/01—Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N7/00—Computing arrangements based on specific mathematical models
- G06N7/01—Probabilistic graphical models, e.g. probabilistic networks
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Remote Sensing (AREA)
- Radar, Positioning & Navigation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Data Mining & Analysis (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- General Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Mathematical Physics (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Aviation & Aerospace Engineering (AREA)
- Biodiversity & Conservation Biology (AREA)
- Mechanical Engineering (AREA)
- Transportation (AREA)
- Electromagnetism (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Human Computer Interaction (AREA)
- Traffic Control Systems (AREA)
- Image Analysis (AREA)
- Control Of Driving Devices And Active Controlling Of Vehicle (AREA)
Abstract
在各个示例中,可以利用来自车辆的传感器的现场感知来生成用于车辆的潜在路径,以便实时地或接近实时地导航路口。例如,深度神经网络(DNN)可以被训练成计算各个输出——如对应于与路口相关联的关键点的热图,对应于相对于车道的方向性、航向和偏移的向量场,对应于车道的宽度的强度图,和/或对应于路口的线段的分类。可以对输出进行解码和/或以其他方式进行后处理以重建路口(或与其相对应的关键点)以及以确定用于导航车辆通过路口的建议或潜在路径。
Description
背景技术
自主驾驶***和高级驾驶员辅助***(ADAS)可以利用传感器(如相机、LIDAR传感器、RADAR传感器等)来执行不同任务——如车道保持、车道变换、车道分配、相机校准、转弯、路径规划和/或定位。例如,为了使自主***和ADAS***独立且高效地操作,必须实现对车辆的周围环境的理解。这种理解可以包括关于物体、障碍物、车道、路口等的位置的信息,并且这种信息可以由车辆在做出路径规划或控制决策时使用——如遵循什么路径或轨迹。
举例来讲,当做出路径规划、障碍物躲避、和/或控制决策(如停在哪里、使用什么路径安全地穿过路口(intersection)、其他车辆或行人可能位于哪里等)时,关于自主或半自主车辆的环境中的路口的位置和布局的信息是重要的。当车辆在城市和/或近郊驾驶环境中运行时,这是特别重要的,其中路口理解和路径规划由于相对于公路驾驶环境的变量数量的增加而变得至关重要。例如,在车辆在双向多车道驾驶环境中执行左转通过路口的情况下,确定相对于其他车道的位置和方向性以及确定人行横道或自行车道的位置对于安全和有效的自主和/或半自主驾驶变得至关重要。
在常规***中,可从车辆的预存储的高清晰度(HD)、三维(3D)图内插路口。例如,路口和周围区域的结构和取向可从HD地图中搜集。然而,除了标记可能对于每个路口相关的每个路口姿态特征之外,这样的基于地图的解决方案还需要要被导航的每个路口的准确且详细的人类标记。因此,路口越复杂,所需要的注释越多,从而增加准确标记路口的复杂度,并且减小使用基于地图的方法进行的路口结构检测的可缩放性。例如,当需要更大或更密集的地理区域(例如,城市、州、国家)的手动标记以便车辆能够在不同的区域中独立且有效地驾驶时,该过程可以在逻辑上更复杂。
发明内容
本公开的实施例涉及自主机器应用中的路口姿态检测。公开了利用来自车辆的不同传感器的输出来自动检测和生成实时或近实时地导航路口的路径的***和方法。
与常规***(诸如上述那些***)相比,当前***可使用车辆的实况感知来检测路口姿态并生成用于导航路口的路径。可以利用对应于路口的特征(如车道、人行横道、路口进入或离开线、自行车道等)的线段的关键点(例如,中心点和/或端点)来生成用于车辆导航路口的潜在路径。例如,一个或更多个机器学习算法(诸如深度神经网络(DNN))可以被训练成计算与路口相对应的信息(诸如关键点、航向方向、车道的宽度、车道的数量等),并且此信息可以用于将中心关键点(例如,对应于线段的中心的关键点)连接在一起以生成用于车辆有效且准确地导航路口的路径和/或轨迹。如此,可以计算和利用与所预测的关键点相关联的语义信息(诸如与路口的区段相对应的方向性、航向(heading)、宽度和/或分类信息),以便获得对路口姿态的理解。例如,DNN的输出可被用于直接或间接(例如,经由解码)确定:每个车道、自行车道、人行横道的位置等;与路口相关联的车道数目;车道、自行车道、人行横道等的几何结构;每条车道对应的行进方向(或航向方向);和/或其他路口结构信息。
作为使用实况感知来生成对每个路口的理解的结果,生成用于导航路口的路径的过程可能是相对不太耗时的,计算强度更小并且更加可扩展,因为***可以学习实时地或接近实时地诊断每个路口,不需要路口的先前经验或知识。因此,自主车辆可能能够更自由地行进通过城市、城区环境或HD地图可能不容易获得或完全准确的其他位置。
附图说明
下面参照附图详细描述用于自主机器应用中的路口姿态检测的本***和方法,其中:
图1是示出了根据本公开的一些实施例的用于训练神经网络以使用来自车辆的传感器的输出来检测用于导航路口的路口姿态信息的示例过程的数据流程图;
图2A-2B是根据本公开的一些实施例的用于生成用于训练神经网络以检测路口结构和姿态的地面实况数据的图像的示例注释的图示;
图3A是根据本公开的一些实施例的从注释生成的用于对关键点进行编码的示例地面实况数据的图示;
图3B是根据本公开的一些实施例的用于生成对应于关键点的地面实况数据的偏移向量的示例计算的图示;
图3C是根据本公开的一些实施例的用于相对于车道或线段对航向和/或方向性进行编码的示例向量场的一部分的图示;
图4是示出了根据本公开的一些实施例的用于训练神经网络以检测路口结构的示例方法的流程图;
图5是示出了根据本公开的一些实施例的用于使用来自车辆的传感器的输出实时地或接近实时地检测和生成导航路口的路径的示例过程的数据流程图;
图6A是根据本公开的一些实施例的使用神经网络生成的示例路口结构和姿态的可视化;
图6B是根据本公开的一些实施例的由路径生成器基于如使用神经网络计算的路口结构和姿态来生成的示例路径的图示;
图7是示出了根据本公开的一些实施例的用于计算路口结构和姿态以及通过路口的路径的示例方法的流程图;
图8A是根据本公开一些实施例的示例自主车辆的图示;
图8B是根据本公开的一些实施例的图8A的示例自主车辆的相机位置和视野的示例;
图8C是根据本公开的一些实施例的图8A的示例自主车辆的示例***架构的框图;
图8D是根据本公开的一些实施例的用于在基于云的服务器与图8A的示例自主车辆之间通信的***图;和
图9是适合用于实现本公开的一些实施例的示例计算设备的框图。
具体实施方式
公开了涉及自主机器应用中的路口姿态检测的***和方法。尽管本公开可以关于示例自主车辆800(可替代地在此被称为“车辆800”或“自主车辆800”,其示例关于图8A-8D被描述)来描述,但这不旨在是限制性的。例如,本文所述的***和方法可由但不限于非自主车辆、半自主车辆(例如,在一个或更多个自适应驾驶员辅助***(ADAS)中)、机器人、仓库车辆、越野车辆、飞船、船、摆渡车、应急响应车辆、摩托车、电动自行车或机动自行车、飞机、建筑车辆、水下飞机、无人机和/或其他车辆类型使用。此外,虽然本公开可以描述用于车辆应用的路口结构,这并不旨在是限制性的,并且在此描述的***和方法可以用于增强现实、虚拟现实、机器人、安全和监视、自主或半自主机器应用、和/或可以使用路口或其他环境结构和/或姿态的检测的任何其他技术空间。
如在此所描述的,与使用高清晰度(HD)地图的路口结构和姿态检测的常规方法相比,当前***和方法提供了用于使用来自车辆的传感器(例如,相机、RADAR传感器、LIDAR传感器等)的输出实时地或接近实时地检测和生成导航路口的路径的技术。照此,对于每个路口,车辆的实况感知可用于检测路口姿态并生成用于导航路口的路径。为此,本公开的实施例可利用对应于车道、人行横道、行人路口等的线段的关键点(例如,中点和/或端点)来生成用于车辆导航路口的一条或更多条潜在路径。可以训练计算机视觉和/或机器学习算法以检测路口的关键点,并且可以将(中心)关键点连接在一起(使用一个或更多个滤波器)以生成用于车辆有效且准确地导航路口的路径和/或轨迹。为了生成路径,可以计算和利用与路口的区段相对应的方向性、航向、宽度和/或语义信息,以便获得对路口姿态的理解——例如,车道的位置和数量、每条车道的行进方向等。照此,通过使用感知来生成对每个路口的理解,生成用于导航路口的路径的过程可能是相对不太耗时的、在计算上较不密集的、并且更加可扩展的,因为***可以学习实时地或接近实时地诊断每个路口,而不需要路口的先前经验或知识。在一些实施例中,这些基于感知的方法可结合基于地图的方法执行以提供冗余以及进一步验证基于感知的方法的结果。
在部署中,可以使用位于或以其他方式布置在自主或半自主车辆上的传感器(例如,相机、RADAR传感器、LIDAR传感器等)来接收和/或生成传感器数据(例如,图像、视频等)。传感器数据可被应用于神经网络(例如,深度神经网络(DNN),诸如卷积神经网络(CNN)),其被训练以标识与由传感器数据表示的路标、道路边界、路口等(例如,***的路面标记、振动带、彩色车道划分器、人行道、人行横道、岔路等)有关的感兴趣区域,以及与其有关的语义和/或方向信息。更具体地,神经网络可以被设计成计算对应于路口的区段(例如,对应于车道、自行车道等,和/或对应于其中的特征——如人行横道、路口入口点、路口出口点等)的关键点,以及生成针对每个关键点标识与所述关键点对应的车道的宽度的输出,车道的方向性,对应于车道的航向,对应于关键点(例如,人行横道、人行横道入口、人行横道出口、路口入口、路口出口等,或其组合),和/或其他信息的语义信息。在一些示例中,所计算的关键点可以由传感器数据表示的像素来表示,路口特征的中心和/或端点位于这些像素处,例如行人道(例如,人行横道)入口线、路口入口线、路口出口线和行人道出口线。照此,可使用关键点和相关信息来确定路口的结构和姿态,其中该结构可包括车道、车道类型、关键点、人行横道、方向性、航向和/或对应于路口的其他信息的表示。
DNN可以被训练成预测对应于路口结构、取向和姿态的任何数量的不同信息(例如,经由任何数量的车道)。例如,车道可表示关键点热图、偏移向量、方向向量、航向向量、车道的数量和车道类型、车道的宽度和/或其他车道。在训练期间,DNN可用用表示车道、人行横道、入口线、出口线、自行车道等的线段(并且可进一步包括与其相对应的语义信息)标记或注释的图像或其他传感器数据表示来训练。然后,地面实况编码器可以使用经标记的线段和语义信息来生成关键点热图、偏移向量图、方向向量图、航向向量图、车道宽度强度图、车道计数、车道分类、和/或与从注释中确定的路口相对应的其他信息。在一些示例中,关键点还可包括对应于车道的线段的拐角或端点,其可从中心点、线方向向量和/或宽度信息推断,或可使用对应于端点关键点的一个或更多个向量场直接计算。因此,可使用这些关键点以所需的有限标记来编码路口结构,因为可使用线段注释和相关联的语义信息来确定信息。
作为不同路口包括不同数目的关联关键点的结果,可以使用许多不同的二维(2D)编码映射来编码地面实况数据,使得每个训练图像具有相同的地面实况维度(例如,而不是创建某一最大数目的关键点预测,并且将不存在的关键点标记为空)。作为示例,本文中所描述的热图可用于编码关键点位置,其中每一关键点可由具有等于关键点位置的均值参数的非归一化高斯分布来表示。然而,与标准高斯热图不同,在一些实施例中,可以对方向性和自适应方差高斯热图进行编码——其中,根据图像空间中的地面实况车道宽度来设置方差,并且从地面实况线段方向计算协方差。例如,热图可包括具有固定标准偏差和/或自适应协方差的非归一化正态分布。
除了关键点位置的热图之外,还可使用二维(2D)向量场来编码航向方向(headingdirection)和线方向。2D线方向向量场和2D航向方向向量场可以通过以下方法来编码:向中心关键点分配方向向量,然后向中心关键点的位置的定义半径内的每个像素分配相同的方向向量。可以通过分配等于通过图像宽度归一化的车道宽度的强度值来对车道宽度进行编码,并且可以将相同的强度值分配给定义的半径内的其他像素。在一些示例中,端点关键点可使用偏移向量场来编码,使得DNN学习不仅计算中心关键点的位置,还计算端点关键点的位置。使用该信息,车道的宽度可从端点关键点(例如,从一个端点到另一个端点的距离)直接确定,跨越车道延伸的线段的方向性可以从端点关键点确定(例如,方向可以由从一个端点到另一个端点的线定义),和/或航向方向可以从端点关键点确定(例如,从方向性取法线来定义角度,以及使用语义信息来确定航向)。
此外,因为2D编码通道可能不具有与输入图像相同的空间分辨率(例如,因为图像可以在DNN的处理期间被下采样),因此可以使用更小的编码通道。为了补偿在下采样期间的信息丢失,偏移向量场可以通过为偏移向量场中的每个像素指派指向最接近的地面实况关键点像素位置(例如,指向最接近的中心关键点、左端(或左边缘)关键点和/或右端(或右边缘)关键点)的向量进行编码。这可允许DNN保留输入空间分辨率的输入图像中的关键点的原始位置。
一旦DNN被训练,DNN就可以高斯热图、方向向量场、航向向量场、车道宽度密度图、语义信息、偏移向量场和/或对应于网络被训练来预测的经编码的地面实况通道的其他输出的形式来在输出上回归,如本文中所描述的。作为DNN输出(其包括热图、向量场、密度图等)的结果,输出中的关键点可由需要被后处理成2D坐标的空间分布的概率分布来表示,所述2D坐标表示关键点(例如,中心关键点、左端关键点和/或右端关键点)的位置。在一些实施例中,可应用峰值查找算法来确定在预定大小的滑动窗口内具有最高概率的点。最终结果可包括对应于通过非最大抑制实现的概率分布峰值的像素位置。幸存峰值概率点的2D位置可以连同如由基于DNN的分类确定的对应语义信息被输出(例如,使用后处理模块)。在一些实施例中,所述点可进一步经过滤以使用非最大抑制或另一过滤算法来移除重叠。
DNN和后处理模块的最终输出可包括2D图像空间中具有对应语义分类的关键点。这些2D图像空间点可用于确定关键点的三维(3D)世界空间坐标,以帮助车辆导航通过世界空间环境。然而,在一些实施例中,DNN可在3D数据上被训练以预测3D世界空间中的位置。
一旦由DNN输出关键点并且确定3D位置,可以执行任何数量的附加后处理步骤以便最终“连接点(或关键点)”并生成用于导航路口的路径。例如,可连接中心关键点以生成表示用于穿越路口的潜在路径的折线。最终路径可被指派路径类型,其可相对于车辆的位置、关键点的位置和/或航向向量(例如,角度)来确定。潜在的路径类型包括左转、右转、切换车道和/或在车道中继续。还可实现曲线拟合以便确定最准确地反映潜在路径的自然曲线的最终形状。可使用折线拟合、多项式拟合、回旋拟合和/或其他类型的曲线拟合算法来执行曲线拟合。潜在路径的形状可基于与要连接的关键点相关联的位置和航向向量(例如,角度)来确定。在实施例中,潜在路径的形状可以与航向向量的切线对齐。可以针对可能潜在地彼此相连的所有关键点重复曲线拟合过程,以生成车辆导航路口可以采取的所有可能路径。在一些示例中,基于与此类路径相关联的交通规则和物理限制,不可行的路径可从考虑中移除。
在一些实施例中,匹配算法可以用于连接关键点并且生成车辆导航路口的潜在路径。在这些实例中,可基于关键点的位置、航向向量和关键点对之间的拟合曲线的形状来确定每一对关键点的匹配得分。在一些示例中,可以使用线性匹配算法,诸如匈牙利亚匹配算法。在其他示例中,非线性匹配算法(诸如频谱匹配算法)可以用于连接一对关键点。
在任一示例中,一旦确定了通过路口的路径,该信息就可被用于由车辆执行一个或更多个操作。例如,世界模型管理器可更新世界模型以帮助导航路口,自主驾驶软件栈的路径规划层可使用路口信息来确定通过路口(例如,沿着所确定的潜在路径中的一条潜在路径)的路径,和/或控制组件可以根据所确定的路径来确定用于导航路口的车辆的控制。
参见图1,图1是示出了根据本公开的一些实施例的用于训练神经网络以使用来自车辆的一个或更多个传感器的输出来检测路口结构和姿态的示例过程100的示例数据流程图。应当理解,本文所述的这种和其他布置仅作为示例被阐述。在高级别,过程100可以包括一个或更多个机器学习模型104,其接收诸如传感器数据102之类的一个或更多个输入,并生成诸如一个或更多个输出106之类的一个或更多个输出。在一些示例中,当用于训练时,传感器数据102可以被称为训练数据。尽管主要关于表示图像的图像数据来讨论传感器数据102,这不旨在是限制性的,并且传感器数据102可以包括用于路口姿态检测的其他类型的传感器数据,诸如LIDAR数据、SONAR数据、RADAR数据等,例如,如由车辆800的一个或更多个传感器生成的(图8A至图8D)。
过程100可以包括生成和/或接收来自一个或更多个传感器的传感器数据102。作为非限制性示例,传感器数据102可以从车辆(例如,图8A至图8C中的车辆800和本文描述的车辆)的一个或更多个传感器接收。传感器数据102可以由车辆使用,并且在过程100内,用于检测和生成实时或近实时地导航路口的路径。传感器数据102可以包括但不限于来自车辆的任何传感器的传感器数据102,例如并且参考图8A-8C,一个或更多个全球导航卫星***(GNSS)传感器858(例如,一个或更多个全球定位***传感器)、一个或更多个RADAR传感器860、一个或更多个超声传感器862、一个或更多个LIDAR传感器864、一个或更多个惯性测量单元(IMU)传感器866(例如,一个或更多个加速度计、一个或更多个陀螺仪、一个或更多个磁罗盘、一个或更多个磁力计等),一个或更多个麦克风876、一个或更多个立体相机868、一个或更多个广角相机870(例如,鱼眼相机),一个或更多个红外相机872、一个或更多个环绕相机874(例如,360度相机)、一个或更多个远程和/或中程相机878,一个或更多个速度传感器844(例如,用于测量车辆800的速度)和/或其他传感器类型。作为另一个示例,传感器数据102可以包括从虚拟车辆或其他虚拟对象的任何数量的传感器生成的虚拟传感器数据。在这样的示例中,虚拟传感器可以对应于模拟环境中的虚拟车辆或其他虚拟对象(例如,用于测试、训练和/或验证神经网络性能),并且虚拟传感器数据可以表示由模拟或虚拟环境内的虚拟传感器捕获的传感器数据。照此,通过使用虚拟传感器数据,可以在模拟环境中使用模拟数据来测试、训练和/或验证本文中描述的一个或更多个机器学习模型104,这可以允许测试真实世界环境之外的更极端的场景,在该极端场景中这样的测试可以是不太安全的。
在一些实施例中,传感器数据102可包括表示一个或更多个图像的图像数据、表示视频的图像数据(例如,视频的快照)、和/或表示传感器的感测场的表示的传感器数据(例如,LIDAR传感器的深度图、超声传感器的值图等)。在传感器数据102包括图像数据的情况下,可以使用任何类型的图像数据格式,例如但不限于压缩图像,如联合图像专家组(JPEG)或亮度/色度(YUV)格式,作为源自压缩视频格式(如H.264/高级视频编码(AVC)或H.265/高效视频编码(HEVC))的帧的压缩图像,原始图像,诸如源自红透明蓝(RCCB)、红透明(RCCC)、或其他类型的成像传感器,和/或其他格式。另外,在一些示例中,可在过程100内使用传感器数据102而无需任何预处理(例如,以原始或捕获格式),而在其他示例中,传感器数据102可以经历预处理(例如,噪声平衡、去马赛克、缩放、裁剪、增强、白平衡、色调曲线调整等,诸如使用传感器数据预处理器(未示出))。如本文所使用的,传感器数据102可以指代未处理的传感器数据、预处理的传感器数据或其组合。
用于训练的传感器数据102可包括原始图像(例如,如由一个或更多个图像传感器捕获的)、下采样图像、上采样图像、经裁剪的图像或兴趣区(ROI)图像、以其他方式增强的图像和/或其组合。可以使用图像(和/或其他传感器数据102)以及对应的地面实况数据122来训练一个或更多个机器学习模型104。地面实况数据122可包括注释、标记、掩码、地图和/或类似物。例如,在一些实施例中,地面实况数据122可以包括一个或更多个强度图128、一个或更多个热图124和/或一个或更多个向量场126,诸如方向向量场126A、航向向量场126B和/或偏移向量场126C。编码器120可使用注释118来编码地面实况数据122。在一些实施例中,注释118可以包括一个或更多个车道标签118A和一个或更多个车道标签118A的一个或更多个分类118B。
参考注释118,在一些示例中,注释118可在绘图程序(例如,注释程序)、计算机辅助设计(CAD)程序、加标签程序、适于产生注释118和/或其他地面实况数据122的另一类型的程序内产生,和/或可用手绘出。在任何示例中,注释118和/或地面实况数据122可以合成地产生(例如,从计算机模型或渲染生成),真实产生(例如,从真实世界数据设计和产生)、机器自动化(例如,使用特征分析和学习从数据提取特征且接着产生标签),人工注释的(例如,标签者或注释专家,其定义标签的位置)和/或其组合(例如,人标识车道的中心或原点和尺寸,机器生成车道)。
车道(或线)标签118A可包括对应于与路口对应的特征或感兴趣区域的注释或其他标签类型。在一些示例中,路口结构可以被定义为对应于传感器数据102中的车道、人行道、入口线、出口线、自行车道等的线段集合。线段可生成为折线,其中每一折线的中心被定义为对应线段的中心。可以针对图像(或其他数据表示)中的每个图像和/或针对由用于训练一个或更多个机器学习模型104的传感器数据102所表示的图像中的线段和中心中的每个一个或更多个线段和中心来生成一个或更多个分类118B。一个或更多个分类118B的数量可以对应于一个或更多个机器学习模型104被训练为预测的特征的数量和/或类型,或者对应于相应图像中的车道的数量和/或特征的类型。取决于实施例,一个或更多个分类118B可以对应于与特征类型相对应的分类或标签,诸如但不限于人行横道、人行横道入口、人行横道出口、路口入口、路口出口、和/或自行车道。
在一些示例中,可以基于注释118来确定路口结构。在这些示例中,可从车道标签118A确定一组关键点,其中每一关键点对应于对应车道的中心(或左边缘或右边缘等)。尽管主要相对于车道段的中心点描述关键点,但这不旨在是限制性的,并且在一些示例中,每个车道的角点或端点也可被确定为传感器数据102的相应实例的关键点。例如,每条车道的角点或端点可从车道的中心关键点和方向性或从车道标签118本身推断。此外,可以从注释118(例如,从一个或更多个车道标签118A和一个或更多个分类118B)确定车道的数量以及对应于每条车道的航向、方向性、宽度和/或其他几何结构。因此,即使注释118可以不直接指示某些路口结构或姿态信息(诸如车道的航向方向、车道宽度和/或方向性),注释118可以被分析以确定此信息。
例如,其中,第一车道标签118A沿着车道的宽度延伸并且包括“人行道入口”的分类,并且第二车道标签118A沿着同一车道的宽度延伸并且包括“人行道出口_路口入口”的分类,可以使用此信息来确定车道的航向方向(例如,从第一车道标签到第二车道标签)(例如,车辆将在跨过第一车道标签的方向上朝向第二车道标签行进)。此外,车道标签118A可以指示车道的方向性(例如,角度),并且根据此信息,可以确定航向方向(例如,角度)——如通过计算车道标签118的法线。
现在参见图2A-2B,图2A-2B示出了根据本公开的一些实施例的应用于传感器数据的示例注释,所述传感器数据用于在地面实况生成中使用,以用于训练机器学习模型来检测路口结构和姿态。例如,图2A说明图像200A的示例标记(例如,对应于注释118),其可用于根据图1的训练过程100生成地面实况数据。图像中的车道可用车道标签118A(例如,车道204、206、210和212)和对应的分类(例如,行人入口、路口出口、路口入口、行人出口、无车道)来注释。例如,可以使用线段来标记车道204并且将其分类为路口入口和行人入口中的一个或更多个。类似地,可以使用线段来标记车道206、车道208和车道210,其中,车道206可以被分类为路口入口和行人出口中的一个或更多个,车道208可以被分类为路口入口和行人出口中的一个或更多个,并且车道212可以被分类为无车道。
进一步,用于车道204、206和208的标签可以进一步用相应的航向方向来注释,如由箭头202A-202V所指示的。航向方向可以表示与某个车道有关的交通的方向。在一些示例中,航向方向可以与其对应车道标签的中心(或关键)点相关联。例如,航向方向202S可与车道204的中心点相关联。在图2A中可以通过不同的线类型(例如,实线、虚线等)来表示不同的分类标签,以表示不同的分类。然而,这不旨在是限制性的,并且车道标签及其分类的任何可视化可包括不同的形状、图案、填充、颜色、符号和/或其他标识符,用于示出图像中的特征(例如,车道)的分类标签中的差异。
现在参见图2B,图2B示出了根据本发明的一些实施例的应用于传感器数据以训练机器学习模型来检测路口结构和姿态的注释的另一示例。此处,图像200B中的车道222A和222B可用线段来注释。对应于车道222B的线段可被注释以在车辆上延伸。这可以帮助训练一个或更多个机器学习模型104以预测关键点的位置,即使在实际位置可能被遮挡的情况下。结果,道路中车辆或其他物体的存在可能不会减损***生成通过路口的建议路径的能力。对于相同的分类,注释可以具有类似的视觉表示。如图所示,车道222A和222B可以被分类为路口入口线停止线。以此方式,可以类似方式注释图像的类似分类的特征。此外,应注意的是,一个或更多个分类118B可以是复合名词。在图2B中,不同分类标签可由实线、虚线等表示以表示不同分类。进一步地,不同的分类标签可以是名词和/或复合名词。这并不旨在是限制性的,并且可以使用针对分类的任何命名惯例来说明图像中的特征(例如,车道)的分类标签的差异。
再次参见图1,编码器120可被配置为使用注释118来编码对应于路口结构和姿态的地面实况信息。例如,如本文所述,即使注释可限于车道标签118A和分类118B,也可从注释118确定诸如关键点、车道数目、航向方向、方向性、宽度和/或其他结构和姿态信息之类的信息。一旦确定此信息,便可由编码器120对所述信息进行编码以产生地面实况数据122。此外,因为应用于一个或更多个机器学习模型104的传感器数据102的空间分辨率可以不同于(例如,大于、小于等)对应于一个或更多个机器学习模型104的预测的输出空间分辨率,所以可以将地面实况信息编码成各种格式。
例如,关键点(例如,中心点、拐点、端点等)可以热图124的形式被编码,从而使得传感器数据102的每个训练图像具有相同的地面实况维度(例如,而不是创建关键点预测的某个最大数量,并且将不存在的点标记为空)。以此方式,具有包括不同数量的关联关键点的不同路口的图像可以被编码为包括相同的地面实况维度,例如,通过以热图124的形式表示关键点。对于非限制性示例,每一关键点可由均值参数等于关键点位置的非归一化高斯分布来表示。然而,与标准高斯热图不同,在一些实施例中,方向和自适应方差高斯热图(例如,具有自适应方向半径的高斯热图)可经编码以产生热图124。在这种示例中,一个或更多个热图124可以利用根据图像空间中的地面实况车道宽度和从地面实况线段方向计算的协方差的方差集来生成。例如,热图可包括具有固定标准偏差和/或自适应协方差的非归一化正态分布。在一些实例中,热图124可包括多个热图,其中每一热图对应于从注释118确定的关键点的不同类型的分类118B。
作为示例,参考图3A,图3A示出使用带注释图像300A生成的方向性和自适应协方差热图300C。带注释图像300A包括关键点302。在一些示例中,关键点302可包括图像特征的中心点(例如,对应于车道的线段)。在一些其他示例中,关键点302还可包括线段的端点。方向性和自适应协方差热图300C和标准高斯热图是可用于对对应于线段的关键点进行编码的热图124的两个非限制性示例。例如,标准高斯热图300B可使用固定方差且在2D方向之间不具有相关性来编码关键点位置。方向性和自适应方差热图300B可编码关键点,其中根据与车道对应的图像空间中的车道宽度设定每一分类的方差,且从对应车道的线方向(例如,指向端点的左和右方向)确定协方差。热图中的每一关键点可编码为由具有等于关键点位置的均值参数的非归一化高斯分布表示。如图3A所示,关键点的每个语义类别与热图内的不同模式相关联。例如,一个语义类别中的关键点304A具有与另一语义类别的关键点310A不同的模式。在实施例中,可以为关键点的每个语义类别生成不同的热图,而在其他实施例中,单个热图可以表示热图内具有与特定语义类别相对应的某种变化的每个语义类别。
在一些实施例中,分别对应于车道的左边缘和车道的右边缘的左端关键点和右端关键点可被编码在向量场——例如,方向向量场126A中。例如,作为对方向向量场126A中的线段的方向性进行编码(如本文中所描述)的替代或补充,方向向量场126A可表示到左端关键点、中心关键点和/或右端关键点的向量。照此,一个或更多个机器学习模型104可以被训练以输出方向向量场112A,该方向向量场112A可以被解码以确定左端关键点、中心关键点(例如,除了或代替热图108)和/或右端关键点的位置。在一些示例中,方向向量场126A可被编码为分解向量,其中所述向量被分解为单位范数方向向量和量值(例如,长度)。
作为示例,并且相对于图3B,为了编码地面实况方向向量场126A,输出分辨率下的像素(x,y)338(例如,稀疏输出,例如由于下采样)可被编码为包括从像素338到左端关键点320的第一向量326,从像素338到右端关键点324的第二向量330,和/或从像素338到中心关键点322的第三向量328。左端关键点320、右端关键点324和中心关键点322可以表示这些关键点在机器学习模型104的输出分辨率下的位置,如从它们在传感器数据102的输入分辨率下的相应位置所确定的。例如,因为可相对于输入分辨率对输出分辨率进行下采样,所以在输出分辨率下可能不存在1:1像素对应性。照此,向量326、328和330可以以输出分辨率(和/或地面实况分辨率)对关键点320、324和322的位置进行编码,以使得机器学习模型104的预测(例如,所计算的方向向量图112A)可以被投影回到输入分辨率。关键点320、322和324可对应于关于输入分辨率下的地面实况传感器数据注释的折线334。
在左端关键点和右端关键点在方向向量场126A中被编码的示例中,车道的航向方向和/或宽度可从重建的折线直接确定。例如,可解码方向向量场112A以确定对应于线段的左端关键点和右端关键点,并且可通过在左端关键点与右端关键点(以及在实施例中如从热图108解码的中心关键点)之间形成线来重建每个线段。照此,可从经重建线段的长度或量值(和/或从左端关键点与右端关键点之间的距离)确定线段所对应的车道的宽度。此外,可以使用线段的方向的法线来确定对应于车道的航向角,且可使用语义或分类信息来确定航向方向(例如,在线段对应于人行横道入口且在线段之后的下一线段对应于人行横道出口和路口入口的情况下,可确定航向方向为从线段朝向下一线段,航向为进入路口)。
在一些实施例中,线段的航向方向和/或方向性可被编码到方向向量场126中,其中向量对应于线段的实际方向性和/或车道的航向方向。例如,替代将向量编码到左端关键点、中心关键点和/或右端关键点,或除了将向量编码到左端关键点、中心关键点和/或右端关键点之外,向量可表示线段的角度和/或航向的角度。照此,可通过从热图108确定中心关键点的位置来解码线段,从强度图114确定该车道的宽度,并且使用从方向向量场112A解码的方向性来生成从中心关键点延伸到右侧和左侧的具有等于该车道宽度的总长度的线段。关于地面实况编码,例如,一旦从注释118确定了方向性(例如,车道的角度或其他几何结构),就可以确定方向向量并且将其归属于线段,诸如归属于表示线段的关键点(例如,中心关键点)。方向向量场126A可因此表示归属于关键点的半径内的周围像素或点的方向向量和/或若干附加方向向量。例如,并且关于图3C,方向向量可以应用于对应于一个或更多个关键点的一个或更多个像素340(或者最接近的对应像素340,其中,一个或更多个机器学习模型104的输出分辨率不同于传感器数据102和/或地面实况数据的输入分辨率),且相同的方向向量也可应用于关键点像素的预定半径342内的像素。可接着对用于关键点像素中的每一者的这些方向向量中的每一者进行编码以生成方向向量场126A。
类似地,一旦确定了航向(例如,从方向性(作为其法线),或以其他方式),就可以确定航向向量并且将其归属于线段,诸如归属于表示线段的关键点。例如,一旦确定了航向(例如,对应于车辆沿着车道的行进方向的角度),就可以确定航向向量并且将其归属于线段,诸如归属于表示线段的关键点。航向向量场126B因此可以表示归属于一个或更多个关键点的半径内的周围像素或点的航向向量和/或若干附加的航向向量。例如,并且相对于图3C,可以将航向向量应用于与一个或更多个关键点对应的一个或更多个像素340(或者一个或更多个机器学习模型104的输出分辨率与传感器数据102和/或地面实况数据的输入分辨率不同的最接近的对应像素340),并且相同的航向向量也可以应用于关键点像素的预定半径342内的像素。然后可以对用于关键点像素中的每个关键点像素的这些航向向量中的每个航向向量进行编码以生成航向向量场126A。
在一些非限制性实施例中,偏移向量可被确定和编码以生成偏移向量场126C。偏移126向量场可通过为偏移向量场中的每一像素指派指向最接近的地面实况关键点像素位置的向量来编码。以此方式,即使当2D编码通道具有与输入图像(例如,下采样的图像)不同的空间分辨率时,也可使用较小的编码通道。这允许一个或更多个机器学习模型104以在计算上较不昂贵的方式来训练和预测路口结构和姿态,因为可以使用较小的编码通道,而不会由于一个或更多个机器学习模型104在处理期间对图像的下采样而丢失信息。在一些示例中,针对每分类118B的多个特征(例如,车道)的地面实况数据122可以使用简单的计数来直接编码。然后可以训练一个或更多个机器学习模型104以直接预测每分类118B的特征的数量。
在一些实施例中,一个或更多个强度图128可以被实现为对如从对应于一个或更多个车道的区段的一个或更多个车道标签118A确定的车道宽度进行编码。例如,一旦确定了车道宽度,可以通过向关键点分配等于通过图像宽度(例如,也在图像空间中)归一化的车道宽度(例如,在图像空间中)的强度值来编码对应于每个关键点的车道段的车道宽度。在一些示例中,相同强度值可指派给关联关键点的定义的半径内的其他像素,类似于如本文关于方向向量场126A和航向向量场126B所描述的。
一旦针对传感器数据102的每个实例(例如,针对传感器数据102包括图像数据的每个图像)生成地面实况数据122,就可以使用地面实况数据122来训练一个或更多个机器学习模型104。例如,一个或更多个机器学习模型104可以生成一个或更多个输出106,一个或更多个输出106可以使用一个或更多个损失函数130与对应于传感器数据102的各自实例的地面实况数据进行比较。照此,来自一个或更多个损失函数130的反馈可以用于鉴于地面实况数据122来更新一个或更多个机器学习模型104的参数(例如,权重和偏置),直到一个或更多个机器学习模型104收敛到可接受的或期望的准确度。使用过程100,可以训练一个或更多个机器学习模型104以使用一个或更多个损失函数130和地面实况数据122来从传感器数据102准确地预测一个或更多个输出106(和/或相关联的分类)。在一些示例中,可以使用不同的损失函数130来训练一个或更多个机器学习模型104以预测不同的输出106。例如,第一损失函数130可以用于比较一个或更多个热图108和124,并且第二损失函数130可以用于比较强度图128与强度图114。照此,在非限制性实施例中,使用与输出通道中的另一个不同的损失函数130来训练输出通道中的一个或更多个。
一个或更多个机器学习模型104可以使用传感器数据102来计算一个或更多个输出106,其可最终应用于解码器或一个或更多个其他后处理组件(本文中至少关于图5更详细地描述的),以生成关键点、分类、车道宽度、车道数目、车道航向、车道方向性和/或其他信息。尽管在此关于使用深度神经网络(DNN)、并且特别是卷积神经网络(CNN)作为机器学习模型104(例如,关于图1和图5)来描述示例,但这不旨在是限制性的。例如,但不限于,一个或更多个机器学习模型104可以包括任何类型的机器学习模型,诸如使用线性回归、逻辑回归、决策树、支持向量机(SVM)、朴素贝叶斯、k最近邻(Knn)、K均值聚类、随机森林、降维算法、梯度提升算法、神经网络(例如,自动编码器、卷积、递归、感知器、长/短期记忆/LSTM、Hopfield、Boltzmann、深度置信、解卷积、生成对抗、液态机等)、车道检测算法、计算机视觉算法的机器学习模型和/或其他类型的机器学习模型。
作为示例,诸如在一个或更多个机器学习模型104包括CNN的情况下,一个或更多个机器学习模型104可以包括任何数量的层。所述层中的一个或更多个可包括输入层。输入层可保持与传感器数据102相关联的值(例如,在后处理之前或之后)。例如,当传感器数据102是图像时,输入层可将表示图像的原始像素值的值保持为体(例如,宽度、高度和颜色通道(例如,RGB),诸如32x32x3)。
一个或更多个层可以包括卷积层。卷积层可以计算连接到输入层中的局部区域的神经元的输出,每个神经元计算它们的权重与它们在输入体中所连接到的小区域之间的点积。卷积层的结果可以是另一个体,其中一个维度基于所应用的过滤器的数量(例如,过滤器的宽度、高度和数量,诸如32x32x12,如果12是过滤器的数量)。
一个或更多个层可以包括整流线性单元(ReLU)层。ReLU层可以应用逐元素激活函数,例如max(0,x),例如零阈值化。得到的ReLU层的体可以与ReLU层的输入的体相同。
一个或更多个层可以包括池化层。池化层可以沿着空间维度(例如,高度和宽度)执行下采样操作,这可以导致比池化层的输入更小的体(例如,来自32x32x12输入体的16x16x12)。
一个或更多个层可包括一个或更多个全连接层。全连接层中的每一神经元可连接到先前体中的每一神经元。全连接层可计算类别得分,且所得的体可为1x1x类别数量。在一些示例中,CNN可包括全连接层,使得CNN的一个或更多个层的输出可作为输入被提供给CNN的全连接层。在一些示例中,一个或更多个卷积流可以由一个或更多个机器学习模型104来实现,并且一些或全部卷积流可以包括各自的一个或更多个全连接层。
在一些非限制性实施例中,一个或更多个机器学习模型104可以包括用于促进图像特征提取的一系列卷积层和最大池化层,之后是用于促进全局上下文特征提取的多尺度膨胀卷积层和上采样层。
尽管在本文中相对于一个或更多个机器学习模型104讨论了输入层、卷积层、池化层、ReLU层和全连接层,但是这不旨在是限制性的。例如,可以在机器学习模型104中使用附加的或替代的层,诸如归一化层、SoftMax层和/或其他层类型。
在机器学习模型104包括CNN的实施例中,取决于实施例,可以使用CNN的不同顺序和数量的层。换言之,一个或更多个机器学习模型104的层的顺序和数量不限于任何一个架构。
此外,一些层可包括参数(例如,权重和/或偏置),诸如卷积层和完全连接层,而其他层可不包括参数,诸如ReLU层和池化层。在一些示例中,参数可以由机器学习模型104在训练期间学习。进一步,一些层可以包括附加的超参数(例如,学习速率、步幅、时期等),诸如卷积层、全连接层和池化层,而其他层可以不包括,诸如ReLU层。参数和超参数不受限制,并且可以根据实施例而不同。
现在参见图4,在此描述的方法400的每个框包括可以使用硬件、固件和/或软件的任何组合执行的计算过程。例如,不同功能可由执行存储在存储器中的指令的处理器执行。方法400还可以体现为存储在计算机存储介质上的计算机可用指令。方法400可由独立应用、服务或托管服务(独立地或与另一托管服务组合)或另一产品的插件来提供,仅举几例。此外,通过举例的方式,关于图1的过程100来描述方法400。然而,此方法可另外或替代地由任一***或***的任何组合执行,所述***包括但不限于本文中所描述的***。
图4是示出了根据本公开的一些实施例的用于训练神经网络以检测路口结构和姿态的方法400的流程图。在框B402,方法400包括接收表示描绘路口的图像的图像数据。例如,可接收传感器数据102,其中传感器数据102包括表示描绘路口的图像的图像数据。
在框B404处,方法400包括接收表示与路口内的线段相对应的注释的第一数据以及与线段的分类相对应的第二数据。例如,可以生成和/或接收表示注释118的数据,其中注释包括与路口内的线段对应的车道标签118A和线段的分类118B。
在框B406处,方法400包括至少部分地基于所述线段确定对应于所述线段的关键点的位置。例如,车道标签118A可包括对应于每一线段的中心点、左端点和/或右端点的关键点。
在框B408处,方法400包括将关键点编码到高斯热图。例如,编码器120可以将关键点编码到一个或更多个热图124,以用作用于训练一个或更多个机器学习模型104的地面实况数据122。
在框B410处,方法400包括使用高斯热图和分类作为地面实况数据来训练神经网络。例如,一个或更多个热图124可以与一个或更多个分类118B一起被用作地面实况数据122,用于训练一个或更多个机器学习模型104以检测路口结构和姿态。
现在参见图5,图5是示出了根据本公开的一些实施例的用于使用来自车辆的传感器的输出实时地或接近实时地生成导航路口的路径的示例过程500的数据流程图。虽然主要关于图5描述的路口特征类型是车道和人行横道,但这不旨在是限制性的,并且仅用于示例目的。
传感器数据102可以类似于在此至少关于图1所描述的传感器数据。在部署期间,传感器数据102可以应用于已经根据过程100训练的一个或更多个机器学习模型104,例如,以使用训练传感器数据102计算热图108(和相应分类)、向量场112和/或强度图114。如此,一个或更多个机器学习模型104可以输出一个或更多个热图108、一个或更多个向量场112、和一个或更多个强度图114中的一个或更多个或在其上回归,如至少关于图1中的一个或更多个输出106更详细描述的。
可将输出106应用于解码器502以生成经解码输出504。在一些示例中,解码器502可使用一个或更多个后处理算法(例如,时间平滑、曲线拟合、滤波等)来计算经解码输出504。例如,解码器502可以使用输出106来生成路口和/或姿态的表示,所述表示可以进而用于例如由路径生成器516来生成通过路口的一条或更多条路径。经解码输出504可包括关键点506、车道数508、车道类型510、车道形状512、车道航向514和/或对应于路口的其他信息(例如,对应于路口的可用于生成路口的可视化以供调试的线段等)。
在一些实施例中,输出中的一个或更多个可在不同于对应于传感器数据102的第二空间分辨率的第一空间分辨率(例如,经下采样的空间分辨率)下生成。照此,解码器502可解码来自输出106的第一空间分辨率的数据,且将所述数据投影或归于传感器数据102的第二空间分辨率(例如,使用如本文中所描述的偏移向量场112C)。因此,一个或更多个机器学习模型104的处理速度可以增加,同时保留用于***的其他任务的计算资源。此外,通过增加处理速度,可以降低***的运行时间,由此使过程500能够在***(例如,车辆800)内实时或接近实时地部署。
解码器可使用热图108来确定分别对应于车道的中心、车道的左边缘或车道的右边缘的中心关键点、左关键点和/或右关键点的位置。例如,如本文中所描述,输出106中的关键点可由热图108内的空间分布的概率分布来表示,解码器501可确定表示关键点的位置(例如,在输入空间分辨率和/或输出空间分辨率下)的2D坐标。在一些实施例中,因为热图108可在给定区域中包括一个以上关键点,所以解码器502可应用峰值寻找算法来将关键点506的中心定位确定为在预定大小的滑动窗口内具有最高概率的点。例如,解码器502可在预定大小的滑动窗口内执行局部搜索,且如果在窗口内某像素的概率最高,那么可选择该像素作为关键点506中的关键点。如果中心点像素不是该窗口内的峰值概率像素,则峰值寻找算法可以使得该中心点像素被丢弃。可以基于在训练一个或更多个机器学习模型104之前执行的超参数优化来预先确定滑动窗口的大小。然后经解码输出504可包括对应于通过非最大抑制实现的概率分布峰值的像素位置,作为关键点506中的关键点。在一些实施例中,幸存的峰值概率中心关键点的2D位置由解码器502作为关键点506输出。在非限制性示例中,关键点506可被过滤为使用非最大抑制或另一滤波算法移除重叠。在一些示例中,可通过计算通过其长度归一化的两个点之间的距离来确定两个点之间的重叠程度。
然后关键点506的2D位置(例如,2D图像空间坐标)可用于确定三维(3D)世界空间坐标,以便辅助车辆800导航通过世界空间环境。可以使用将2D位置投影到3D空间中的任何已知方法。在一些示例中,平面模型假设可用于将位置投影到3D空间中。在一些其他示例中,用于深度和/或距离估计的LIDAR数据可用于投影,和/或车辆800横越路面时车辆800的未来运动可以被使用(例如,以生成用于训练网络的更准确的地面实况),诸如以确定驾驶表面的斜率或轮廓,以更准确地将2D点投影到3D空间中。在一些实施例中,一个或更多个机器学习模型104可以在3D数据上训练以直接预测3D世界空间中的关键点位置。
在一些实施例中,可由解码器502使用热图108计算车道类型510(例如,路口入口、路口出口、人行道入口、人行道出口、停止线、自车道、右相邻车道、左相邻车道、自行车道、不可驾驶车道、可驾驶车道、其组合等)。对应关键点506的车道类型510可以对应于如由一个或更多个机器学习模型104检测到的线段的标签分类(在此关于图1和图2A-2B更详细地描述的)。例如,在一些非限制性实施例中,每个分类或车道标签可对应于单独的热图108。照此,车道类型510可从与相应热图相关联的车道类型510直接确定。在其他示例中,可使用不同技术(例如,本文相对于图1所描述的技术)将车道类型510编码在热图108中。在一些示例中,一个或更多个机器学习模型104可以被训练为例如使用任何合适的用于分类的方法来计算对应于车道类型510和/或其他语义信息的置信度。
车道数508和/或特定车道类型510的车道数量可由解码器502通过对检测到的关键点506的数量(例如,中心关键点的数量)进行计数来计算,和/或通过计数对应于特定车道类型510的关键点(例如,中心关键点)的数量来计算。
解码器502可进一步使用方向向量场112A和/或强度图114生成车道形状512。例如,如在此所描述的,方向向量场112A可以对应于从输出分辨率下的像素到左边缘关键点、中心关键点和/或右边缘关键点的位置的向量,如在此关于图3B更详细描述的。在这样的示例中,方向向量场112A还可由解码器502解码以生成车道形状512(例如,除了使用来自热图108的关键点506的位置和/或来自输出106和/或经解码的输出108的其他信息之外)。可基于对应于关联关键点506的向量场112来确定每一线段的左端点和右端点,并且该信息可用于确定沿着车道的横向维度的方向或角度,车道航向514(例如,垂直于车道的横向尺寸的方向),和/或车道的宽度(例如,所述宽度可为沿着线段的距离,或给定线段的左边缘关键点与右边缘关键点之间的距离)。照此,宽度和/或横向方向(例如,沿着车道的行进方向的法线)可用于至少相对于车道的对应于线段和/或左边缘关键点和右边缘关键点的部分确定车道512的形状。
在其他示例中,可以通过对强度图114进行解码以确定车道的宽度和/或对方向向量场112A进行解码以确定与中心关键点对应的线段的方向性,来确定车道形状512(例如,如关于图3C所描述的)。如此,可以利用中心关键点的位置、方向性和宽度来确定车道形状512(例如,通过根据方向性从中心关键点延伸线段并且直到延伸到该线段的宽度,诸如在一个方向上沿着方向性从中心关键点延伸一半的宽度,然后在相反方向上沿着方向性从中心关键点延伸一半的宽度)。
解码器502可进一步确定车道航向(heading)514。例如,车道航向514可以被确定为在左边缘关键点和右边缘关键点的已知位置之间生成的线段的法线。在其他示例中,可以通过对航向向量场112B进行解码来确定车道航向514,以确定对应于车道航向方向的角度。在一些示例中,车道航向514可利用车道类型510和/或网络输出的其他语义信息,如本文所描述的。
可由路径生成器516使用经解码输出504来生成用于导航路口的路径。路径生成器516可根据其3D真实世界坐标连接(中心)关键点506以生成折线,这些折线表示用于由车辆800实时或近实时地穿过路口的潜在路径。最终路径可被指派相对于车辆的位置、关键点506的位置和/或车道航向514(例如,角度)确定的路径类型。潜在的路径类型可包括但不限于左转、右转、交换车道、和/或在车道中继续。
在一些示例中,路径生成器516可实现曲线拟合,以便确定最准确地反映潜在路径的自然曲线的最终形状。可以使用任何已知的曲线拟合算法,诸如但不限于折线拟合、多项式拟合和/或回旋拟合。潜在路径的形状可以基于关键点506的位置和与要连接的关键点506相关联的对应航向向量(例如,角度)(例如,车道航向514)来确定。在一些示例中,潜在路径的形状可以与在要连接的关键点506的位置处的航向向量的切线对齐。可以针对可能潜在地彼此连接的所有关键点506重复曲线拟合过程,以生成车辆800导航路口可能采取的所有可能路径。在一些示例中,基于与此类路径相关联的交通规则和物理限制,不可行的路径可从考虑中移除。剩余的潜在路径可以被确定为可行的3D路径或轨迹,车辆800可以采取这些3D路径或轨迹来穿过路口。
在一些实施例中,路径生成器516可以使用匹配算法来连接关键点506并且生成车辆800导航路口的潜在路径。在这些示例中,可基于关键点506的位置针对每一对关键点506确定匹配得分,对应于关键点506的车道航向514(例如,对应于不同行进方向的两个关键点506将不连接),以及一对关键点506之间的拟合曲线的形状。对应于路口入口的每个关键点506可以连接至对应于路口出口的多个关键点506,由此为车辆800生成多条潜在路径。在一些示例中,可以使用诸如Hungarian匹配算法之类的线性匹配算法。在其他示例中,可使用例如频谱匹配算法等非线性匹配算法来连接一对关键点506。
通过路口的路径可以用于由车辆800的控制组件518执行一个或更多个操作。在一些示例中,车道图可用与路径相关的信息来增强。车道图可被输入到一个或更多个控制组件518以执行不同规划和控制任务。例如,世界模型管理器可更新世界模型以帮助导航路口,自主驾驶软件栈的路径规划层可使用路口信息来确定通过路口(例如,沿着所确定的潜在路径中的一条潜在路径)的路径,和/或控制组件可以根据所确定的路径来确定用于导航路口的车辆的控制。
现在参见图6A,图6A示出了根据本公开的一些实施例的使用神经网络(例如,图5的一个或更多个机器学习模型104)生成的示例路口结构预测600A(例如,图5的一个或更多个输出106)。预测600A包括对应于在传感器数据(例如,图5的传感器数据102)中检测到的每个车道的车道分类604、606、608、610和612的预测线段的可视化。例如,车道分类604可对应于人行道类型的入口,车道分类606可对应于路口的入口和/或人行道类型的出口,车道分类608可对应于人行道类型的出口,车道分类610可对应于路口的出口和/或人行道类型的入口,车道分类612可对应于不可驾驶车道类型。每个线段还可以与中心关键点506和/或对应的一个或更多个航向方向(例如,关键点和关联向量602A-602V)相关联。照此,路口结构和姿态可由具有对应线分类、关键点和/或航向方向的线段集合来表示。
参照图6B,图6B示出了由路径生成器(例如,图5的路径生成器516)基于由神经网络(例如,图5的机器学习模型104)预测的路口结构600A生成的示例路径600B。路径614A-614G是通过连接由图6A中的神经网络预测的关键点602A-602V生成的潜在路径。路径614A-614G可对应于自我车辆800和/或其他车辆或对象的路径。其他车辆或对象的路径可以对车辆800提供信息,以帮助确定其他车辆或对象在穿过路口时的潜在未来位置。
现在参见图7,在此描述的方法700的每个框包括可以使用硬件、固件和/或软件的任何组合执行的计算过程。例如,不同功能可由执行存储在存储器中的指令的处理器执行。方法700还可以体现为存储在计算机存储介质上的计算机可用指令。仅举几例,方法700可以由独立应用、服务或托管服务(独立地或与另一托管服务组合)或另一产品的插件来提供。此外,通过举例的方式,关于图5的过程500来描述方法700。然而,此方法可另外或替代地由任一***或***的任何组合执行,所述***包括但不限于本文中所描述的***。
图7是示出了根据本公开的一些实施例的用于检测和导航路口的方法700的流程图。在框B702处,方法700包括将表示车辆的图像传感器的视场中的路口的图像数据应用于神经网络。例如,表示车辆800的图像传感器的视场中的路口的图像的传感器数据102可以应用于一个或更多个机器学习模型104。
在框B704处,方法700包括使用神经网络并且至少部分地基于图像数据来计算表示对应于路口的关键点的位置的一个或更多个二维(2D)热图的第一数据和表示对应于所述关键点的分类置信度值的第二数据。例如,一个或更多个机器学习模型104可以利用包括与路口相对应的关键点和与线段分类相对应的置信度值的一个或更多个热图108来计算一个或更多个输出106。
在框B706处,方法700包括解码一个或更多个2D热图以确定图像中的关键点的像素位置。例如,解码器502可解码热图108以确定图像中的关键点506的像素位置。
在框B708处,方法700包括从对应于关键点的分类置信度值确定关联分类。例如,解码器502可基于置信度值从线段分类确定对应于关键点506的关联车道类型510。
在框B710处,方法700包括至少部分地基于像素位置和关联分类来生成通过路口的一条或更多条建议的路径。例如,路径生成器516可基于关键点506的像素位置和车道类型510生成通过路口的潜在或建议的路径。
在框B712处,方法700包括由车辆使用一条或更多条建议的路径执行一个或更多个操作。例如,一个或更多个控制组件518可以使车辆800基于从路径生成器516接收的建议的路径执行一个或更多个操作。
示例自主车辆
图8A是根据本公开的一些实施例的示例自主车辆800的图示。自主车辆800(可替代地在此被称为“车辆800”)可以包括但不限于,客运车辆,如小汽车、卡车、公共汽车、第一响应车辆、摆渡车、电动或机动自行车、摩托车、消防车、警用车辆、救护车、船、建筑车辆、水下船只、无人机和/或另一类型的车辆(例如,无人机和/或容纳一个或更多个乘客的车辆)。自主车辆通常按照美国运输部的一个部门——国家公路交通安全管理局(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,以及该标准的先前和未来的版本)定义的自动化级别进行描述。车辆800可能够实现符合自主驾驶级别的3级-5级中的一个或更多个的功能。例如,取决于实施例,车辆800可能够实现条件自动化(3级)、高自动化(4级)和/或全自动化(5级)。
车辆800可以包括诸如底盘、车身、车轮(例如2个、4个、6个、8个、18个等)、轮胎、车轴之类的部件以及车辆的其他部件。车辆800可以包括推进***850,例如内燃机、混合动力发电厂、全电动发动机和/或另一种推进***类型。推进***850可以连接到可以包括变速器的车辆800的传动系以便实现车辆800的推进。可以响应于接收到来自油门/加速器852的信号而控制推进***850。
可以包括方向盘的转向(steering)***854可以用来在推进***850操作时(例如在车辆运动时)使车辆800转向(例如沿着希望的路径或路线)。转向***854可以接收来自转向致动器856的信号。对于全自动(5级)功能而言,方向盘可以是可选的。
制动传感器***846可以用来响应于接收到来自制动致动器848和/或制动传感器的信号而操作车辆制动器。
可以包括一个或更多个片上***(SoC)804(图8C)和/或一个或更多个GPU的一个或更多个控制器836可以向车辆800的一个或更多个部件和/或***提供(例如表示命令的)信号。例如,一个或更多个控制器可以发送经由一个或更多个制动致动器848操作车辆制动器、经由一个或更多个转向致动器856操作转向***854、经由一个或更多个油门/加速器852操作推进***850的信号。一个或更多个控制器836可以包括一个或更多个板载(例如集成)计算设备(例如超级计算机),所述计算设备处理传感器信号并且输出操作命令(例如表示命令的信号),以实现自主驾驶和/或辅助人类驾驶员驾驶车辆800。一个或更多个控制器836可以包括用于自主驾驶功能的第一控制器836、用于功能性安全功能的第二控制器836、用于人工智能功能(例如计算机视觉)的第三控制器836、用于信息娱乐功能的第四控制器836、用于紧急情况下的冗余的第五控制器836和/或其他控制器。在一些示例中,单个控制器836可以处理上述功能中的两个或更多,两个或更多控制器836可以处理单个功能,和/或其任意组合。
一个或更多个控制器836可以响应于接收自一个或更多个传感器的传感器数据(例如传感器输入),提供用于控制车辆800的一个或更多个部件和/或***的信号。传感器数据可以接收自例如且不限于全球导航卫星***传感器858(例如全球定位***传感器)、RADAR传感器860、超声传感器862、LIDAR传感器864、惯性测量单元(IMU)传感器866(例如加速度计、陀螺仪、磁罗盘、磁力计等)、麦克风896、立体相机868、广角相机870(例如鱼眼相机)、红外相机872、环绕相机874(例如360度相机)、远程和/或中程相机898、速度传感器844(例如用于测量车辆800的速率)、振动传感器842、转向传感器840、制动传感器(例如作为制动传感器***846的部分)和/或其他传感器类型。
控制器836中的一个或更多个可以接收来自车辆800的仪表组832的输入(例如由输入数据表示),并且经由人机接口(HMI)显示器834、听觉信号器、扬声器和/或经由车辆800的其他部件提供输出(例如输出数据、显示数据等表示的)。这些输出可以包括诸如车辆速度、速率、时间、地图数据(例如图8C的HD地图822)、位置数据(例如,车辆800例如在地图上的位置)、方向、其他车辆的位置(例如占用网格)之类的信息,如控制器836所感知的关于对象和对象状态的信息等等。例如,HMI显示器834可以显示关于一个或更多个对象(例如街道指示牌、警示牌、交通灯变化等)的存在性的信息和/或关于车辆已经做出、正在做出或者将会做出的驾驶机动的信息(例如现在变道、两英里后离开34B,等等)。
车辆800进一步包括网络接口824,其可以使用一个或更多个无线天线826和/或调制解调器通过一个或更多个网络通信。例如,网络接口824可能够通过LTE、WCDMA、UMTS、GSM、CDMA2000等通信。一个或更多个无线天线826也可以使用诸如蓝牙、蓝牙LE、Z波、ZigBee等等之类的一个或更多个局域网和/或诸如LoRaWAN、SigFox等等之类的一个或更多个低功率广域网(LPWAN)实现环境中的对象(例如车辆、移动设备等等)之间的通信。
图8B为根据本公开一些实施例的用于图8A的示例自主车辆800的相机位置和视场的示例。相机和各自的视场是一个示例实施例,并不意图是限制性的。例如,可以包括附加的和/或可替换的相机,和/或这些相机可以位于车辆800上的不同位置。
用于相机的相机类型可以包括但不限于可以适于与车辆800的部件和/或***一起使用的数字相机。所述相机可以在汽车安全完整性级别(ASIL)B下和/或在另一个ASIL下操作。相机类型可以具有任何图像捕获率,例如60帧每秒(fps)、820fps、240fps等等,这取决于实施例。相机可能够使用滚动快门、全局快门、另一种类型的快门或者其组合。在一些示例中,滤色器阵列可以包括红白白白(RCCC)滤色器阵列、红白白蓝(RCCB)滤色器阵列、红蓝绿白(RBGC)滤色器阵列、Foveon X3滤色器阵列、拜耳传感器(RGGB)滤色器阵列、单色传感器滤色器阵列和/或另一种类型的滤色器阵列。在一些实施例中,诸如具有RCCC、RCCB和/或RBGC滤色器阵列的相机之类的清晰像素相机可以用在提高光敏感度的努力中。
在一些示例中,所述相机中的一个或更多个可以用来执行高级驾驶员辅助***(ADAS)功能(例如作为冗余或故障安全设计的部分)。例如,可以安装多功能单目相机以提供包括车道偏离警告、交通指示牌辅助和智能前照灯控制在内的功能。所述相机中的一个或更多个(例如全部相机)可以同时记录和提供图像数据(例如视频)。
所述相机中的一个或更多个可以安装在诸如定制设计的(3-D打印的)组件之类的安装组件中,以便切断可能干扰相机的图像数据捕获能力的杂散光和来自汽车内的反射(例如挡风玻璃镜中反射的来自仪表板的反射)。关于翼镜安装组件,翼镜组件可以是定制3-D打印的,使得相机安装板匹配翼镜的形状。在一些示例中,一个或更多个相机可以集成到翼镜中。对于侧视相机而言,一个或更多个相机也可以集成到驾驶室每个拐角的四根柱子内。
具有包括车辆800前面的环境部分的视场的相机(例如前置相机)可以用于环视,以帮助识别前向路径和障碍,以及在一个或更多个控制器836和/或控制SoC的帮助下辅助提供对于生成占用网格和/或确定优选车辆路径至关重要的信息。前置相机可以用来执行许多与LIDAR相同的ADAS功能,包括紧急制动、行人检测和碰撞避免。前置相机也可以用于ADAS功能和***,包括车道偏离警告(“LDW”)、自主巡航控制(“ACC”),和/或诸如交通指示牌识别之类的其他功能。
各种各样的相机可以用于前置配置中,包括例如包括CMOS(互补金属氧化物半导体)彩色成像仪在内的单目相机平台。另一个示例可以是广角相机870,其可以用来感知从周边进入视野的对象(例如行人、十字路***通或者自行车)。尽管图8B中图示出仅仅一个广角相机,但是在车辆800上可以存在任意数量的广角相机870。此外,远程相机898(例如长视立体相机对)可以用于基于深度的对象检测,尤其是用于尚未针对其训练神经网络的对象。远程相机898也可以用于对象检测和分类以及基本的对象跟踪。
一个或更多个立体相机868也可以包括在前置配置中。立体相机868可以包括集成控制单元,该单元包括可扩展处理单元,其可以提供在单个芯片上具有集成的CAN或以太网接口的多核微处理器和可编程逻辑(FPGA)。这样的单元可以用来生成车辆环境的3-D地图,包括针对图像中的所有点的距离估计。可替代的立体相机868可以包括紧凑型立体视觉传感器,其可以包括两个相机镜头(左右各一个)以及可以测量从车辆到目标对象的距离并且使用生成的信息(例如元数据)激活自主紧急制动和车道偏离警告功能的图像处理芯片。除了本文所描述的那些之外或者可替代地,可以使用其他类型的立体相机868。
具有包括车辆800的侧面的环境部分的视场的相机(例如侧视相机)可以用于环视,提供用来创建和更新占用网格以及生成侧撞击碰撞警告的信息。例如,环绕相机874(例如如图8B中所示的四个环绕相机874)可以置于车辆800上。环绕相机874可以包括广角相机870、鱼眼相机、360度相机和/或类似物。四个示例,四个鱼眼相机可以置于车辆的前面、后面和侧面。在一种可替代的布置中,车辆可以使用三个环绕相机874(例如左边、右边和后面),并且可以利用一个或更多个其他相机(例如前向相机)作为第四环视相机。
具有包括车辆800的后面的环境部分的视场的相机(例如后视相机)可以用于辅助停车、环视、后面碰撞警告以及创建和更新占用网格。可以使用各种各样的相机,包括但不限于也适合作为如本文所描述的前置相机(例如远程和/或中程相机898、立体相机868、红外相机872等等)的相机。
图8C为根据本公开一些实施例的用于图8A的示例自主车辆800的示例***架构的框图。应当理解,这种布置和本文描述的其他布置仅仅作为示例而被阐述。除了所示的那些之外或者代替它们的是,可以使用其他的布置和元素(例如机器、接口、功能、顺序、功能分组等等),并且一些元素可以完全省略。进一步,许多本文描述的元素是功能实体,其可以实现为分立的或分布式部件或者结合其他部件实现,以及以任何适当的组合和位置实现。本文描述为由实体执行的各个功能可以通过硬件、固件和/或软件实现。例如,各个功能可以通过处理器执行存储在存储器中的指令而实现。
图8C中车辆800的部件、特征和***中的每一个被图示为经由总线802连接。总线802可以包括控制器区域网络(CAN)数据接口(可替代地,本文称为“CAN总线”)。CAN可以是车辆800内部的网络,用来辅助控制车辆800的各种特征和功能,例如制动器、加速、制动、转向、挡风玻璃雨刷等等的驱动。CAN总线可以被配置为具有数十或者甚至数百个节点,每个节点具有其自己的唯一标识符(例如CAN ID)。可以读取CAN总线以找到方向盘角度、地速、每分钟发动机转速(RPM)、按钮位置和/或其他车辆状态指示符。CAN总线可以是ASIL B兼容的。
尽管这里将总线802描述为CAN总线,但是这并不意图是限制性的。例如,除了CAN总线之外或者可替代地,可以使用FlexRay和/或以太网。此外,尽管用单条线来表示总线802,但是这并不意图是限制性的。例如,可以存在任意数量的总线802,其可以包括一条或更多条CAN总线、一条或更多条FlexRay总线、一条或更多条以太网总线和/或一条或更多条使用不同协议的其他类型的总线。在一些示例中,两条或更多总线802可以用来执行不同的功能,和/或可以用于冗余。例如,第一总线802可以用于碰撞避免功能,并且第二总线802可以用于驱动控制。在任何示例中,每条总线802可以与车辆800的任何部件通信,并且两条或更多总线802可以与相同的部件通信。在一些示例中,车辆内的每个SoC 804、每个控制器836和/或每个计算机可以有权访问相同的输入数据(例如来自车辆800的传感器的输入),并且可以连接到诸如CAN总线之类的公共总线。
车辆800可以包括一个或更多个控制器836,例如本文关于图8A所描述的那些控制器。控制器836可以用于各种各样的功能。控制器836可以耦合到车辆800的任何其他不同的部件和***,并且可以用于车辆800的控制、车辆800的人工智能、用于车辆800的信息娱乐和/或类似物。
车辆800可以包括一个或更多个片上***(SoC)804。SoC 804可以包括CPU 806、GPU 808、处理器810、高速缓存812、加速器814、数据存储816和/或未图示出的其他部件和特征。在各种各样的平台和***中,SoC 804可以用来控制车辆800。例如,一个或更多个SoC804可以在***(例如车辆800的***)中与HD地图822结合,所述HD地图可以经由网络接口824从一个或更多个服务器(例如图8D的一个或更多个服务器878)获得地图刷新和/或更新。
CPU 806可以包括CPU簇或者CPU复合体(可替代地,本文称为“CCPLEX”)。CPU 806可以包括多个核和/或L2高速缓存。例如,在一些实施例中,CPU 806在一致性多处理器配置中可以包括八个核。在一些实施例中,CPU 806可以包括四个双核簇,其中每个簇具有专用的L2高速缓存(例如2MB L2高速缓存)。CPU 806(例如CCPLEX)可以被配置为支持同时簇操作,使得CPU 806的簇的任意组合能够在任何给定时间是活动的。
CPU 806可以实现包括以下特征中的一个或更多个的功率管理能力:各硬件块在空闲时可以自动进行时钟门控以节省动态功率;由于WFI/WFE指令的执行,每个核时钟可以在该核不主动地执行指令时进行门控;每个核可以独立地进行功率门控;当所有核都进行时钟门控或者功率门控时,可以独立地对每个核簇进行时钟门控;和/或当所有核都进行功率门控时,可以独立地对每个核簇进行功率门控。CPU 806可以进一步实现用于管理功率状态的增强算法,其中指定允许的功率状态和期望的唤醒时间,并且硬件/微代码为所述核、簇和CCPLEX确定要进入的最佳的功率状态。处理核可以在软件中支持简化的功率状态进入序列,该工作被卸载到微代码。
GPU 808可以包括集成的GPU(可替代地,本文称为“iGPU”)。GPU 808可以是可编程的,并且对于并行工作负载而言是高效的。在一些示例中,GPU 808可以使用增强张量指令集。GPU 808可以包括一个或更多个流式微处理器,其中每个流式微处理器可以包括L1高速缓存(例如具有至少96KB存储能力的L1高速缓存),并且这些流式微处理器中的两个或更多可以共享L2高速缓存(例如具有512KB存储能力的L2高速缓存)。在一些实施例中,GPU 808可以包括至少八个流式微处理器。GPU 808可以使用计算应用编程接口(API)。此外,GPU808可以使用一个或更多个并行计算平台和/或编程模型(例如NVIDIA的CUDA)。
在汽车和嵌入式使用的情况下,可以对GPU 808进行功率优化以实现最佳性能。例如,可以在鳍式场效应晶体管(FinFET)上制造GPU 808。然而,这并不意图是限制性的,并且GPU 808可以使用其他半导体制造工艺来制造。每个流式微处理器可以合并划分成多个块的若干混合精度处理核。例如且非限制性地,可以将64个PF32核和32个PF64核划分成四个处理块。在这样的示例中,每个处理块可以分配16个FP32核、8个FP64核、16个INT32核、用于深层学习矩阵算术的两个混合精度NVIDIA张量核、L0指令高速缓存、线程束(warp)调度器、分派单元和/或64KB寄存器文件。此外,流式微处理器可以包括独立的并行整数和浮点数据路径,以利用计算和寻址计算的混合提供工作负载的高效执行。流式微处理器可以包括独立线程调度能力,以允许实现并行线程之间的更细粒度的同步和协作。流式微处理器可以包括组合的L1数据高速缓存和共享存储器单元,以便在简化编程的同时提高性能。
GPU 808可以包括在一些示例中提供大约900GB/s的峰值存储器带宽的高带宽存储器(HBM)和/或16GB HBM2存储器子***。在一些示例中,除了HBM存储器之外或者可替代地,可以使用同步图形随机存取存储器(SGRAM),例如第五代图形双倍数据速率同步随机存取存储器(GDDR5)。
GPU 808可以包括统一存储器技术,其包括访问计数器以允许存储器页面更精确地迁移到最频繁地访问它们的处理器,从而提高处理器之间共享的存储器范围的效率。在一些示例中,地址转换服务(ATS)支持可以用来允许GPU 808直接访问CPU 806页表。在这样的示例中,当GPU 808存储器管理单元(MMU)经历遗漏时,可以将地址转换请求传输至CPU806。作为响应,CPU 806可以在其页表中寻找用于地址的虚拟-物理映射,并且将转换传输回GPU 808。这样,统一存储器技术可以允许单个统一虚拟地址空间用于CPU 806和GPU 808二者的存储器,从而简化了GPU 808编程和将应用程序移(port)到GPU 808。
此外,GPU 808可以包括访问计数器,其可以跟踪GPU 808访问其他处理器的存储器的频率。访问计数器可以帮助确保存储器页面移至最频繁地访问这些页面的处理器的物理存储器。
SoC 804可以包括任意数量的高速缓存812,包括本文描述的那些高速缓存。例如,高速缓存812可以包括CPU 806和GPU 808二者可用的L3高速缓存(例如,其连接到CPU 806和GPU 808二者)。高速缓存812可以包括回写高速缓存,其可以例如通过使用高速缓存一致性协议(例如MEI、MESI、MSI等)跟踪行的状态。取决于实施例,L3高速缓存可以包括4MB或者更多,但是也可以使用更小的高速缓存大小。
SoC 804可以包括一个或更多个加速器814(例如硬件加速器、软件加速器或者其组合)。例如,SoC 804可以包括硬件加速簇,其可以包括优化的硬件加速器和/或大型片上存储器。该大型片上存储器(例如4MB SRAM)可以使得硬件加速簇能够加速神经网络和其他计算。硬件加速簇可以用来补充GPU 808,并且卸载GPU 808的一些任务(例如释放GPU 808的更多周期以用于执行其他任务)。作为一个示例,加速器814可以用于足够稳定以易于控制加速的有针对性的工作负载(例如感知、卷积神经网络(CNN)等等)。当在本文中使用时,术语“CNN”可以包括所有类型的CNN,包括基于区域的或者区域卷积神经网络(RCNN)和快速RCNN(例如用于对象检测)。
加速器814(例如硬件加速簇)可以包括深度学习加速器(DLA)。DLA可以包括可以被配置成为深度学习应用和推理提供额外的每秒10万亿次操作的一个或更多个张量处理单元(TPU)。TPU可以是被配置为执行图像处理功能(例如用于CNN、RCNN等)且针对执行图像处理功能而优化的加速器。DLA可以进一步针对特定的一组神经网络类型和浮点运算以及推理进行优化。DLA的设计可以比通用GPU提供每毫米更高的性能,并且远远超过CPU的性能。TPU可以执行若干功能,包括单实例卷积函数,支持例如用于特征和权重二者的INT8、INT16和FP16数据类型,以及后处理器功能。
DLA可以在处理的或者未处理的数据上针对各种各样的功能中的任何功能快速且高效地执行神经网络,尤其是CNN,例如且不限于:用于使用来自相机传感器的数据进行对象识别和检测的CNN;用于使用来自相机传感器的数据进行距离估计的CNN;用于使用来自麦克风的数据进行应急车辆检测和识别与检测的CNN;用于使用来自相机传感器的数据进行面部识别和车主识别的CNN;和/或用于安全和/或安全相关事件的CNN。
DLA可以执行GPU 808的任何功能,并且通过使用推理加速器,例如,设计者可以使DLA或GPU 808针对任何功能。例如,设计者可以将CNN的处理和浮点运算聚焦在DLA上,并且将其他功能留给GPU 808和/或其他加速器814。
加速器814(例如硬件加速簇)可以包括可编程视觉加速器(PVA),其在本文中可以可替代地称为计算机视觉加速器。PVA可以被设计和配置为加速用于高级驾驶员辅助***(ADAS)、自主驾驶和/或增强现实(AR)和/或虚拟现实(VR)应用的计算机视觉算法。PVA可以提供性能与灵活性之间的平衡。例如,每个PVA可以包括例如且不限于任意数量的精简指令集计算机(RISC)核、直接存储器访问(DMA)和/或任意数量的向量处理器。
RISC核可以与图像传感器(例如本文描述的任何相机的图像传感器)、图像信号处理器和/或类似物交互。这些RISC核中的每一个可以包括任意数量的存储器。取决于实施例,RISC核可以使用若干协议中的任何协议。在一些示例中,RISC核可以执行实时操作***(RTOS)。RISC核可以使用一个或更多个集成电路设备、专用集成电路(ASIC)和/或存储设备实现。例如,RISC核可以包括指令高速缓存和/或紧密耦合的RAM。
DMA可以使得PVA的部件能够独立于CPU 806访问***存储器。DMA可以支持用来向PVA提供优化的任意数量的特征,包括但不限于支持多维寻址和/或循环寻址。在一些示例中,DMA可以支持高达六个或更多维度的寻址,其可以包括块宽度、块高度、块深度、水平块步进、竖直块步进和/或深度步进。
向量处理器可以是可编程处理器,其可以被设计为高效且灵活地执行用于计算机视觉算法的编程并且提供信号处理能力。在一些示例中,PVA可以包括PVA核和两个向量处理子***分区。PVA核可以包括处理器子***、一个或更多个DMA引擎(例如两个DMA引擎)和/或其他***设备。向量处理子***可以作为PVA的主处理引擎而操作,并且可以包括向量处理单元(VPU)、指令高速缓存和/或向量存储器(例如VMEM)。VPU核可以包括数字信号处理器,诸如例如单指令多数据(SIMD)、超长指令字(VLIW)数字信号处理器。SIMD和VLIW的组合可以增强吞吐量和速率。
向量处理器中的每一个可以包括指令高速缓存并且可以耦合到专用存储器。结果,在一些示例中,向量处理器中的每一个可以被配置为独立于其他向量处理器执行。在其他示例中,包括在特定PVA中的向量处理器可以被配置为采用数据并行化。例如,在一些实施例中,包括在单个PVA中的多个向量处理器可以执行相同的计算机视觉算法,但是在图像的不同区域上执行。在其他示例中,包括在特定PVA中的向量处理器可以在相同的图像上同时执行不同的计算机视觉算法,或者甚至在序列图像或者图像的部分上执行不同的算法。除其他的以外,任意数量的PVA可以包括在硬件加速簇中,并且任意数量的向量处理器可以包括在这些PVA中的每一个中。此外,PVA可以包括附加的纠错码(ECC)存储器,以增强总体***安全性。
加速器814(例如硬件加速簇)可以包括片上计算机视觉网络和SRAM,以提供用于加速器814的高带宽、低延迟SRAM。在一些示例中,片上存储器可以包括由例如且不限于八个现场可配置的存储器块组成的至少4MB SRAM,其可以由PVA和DLA二者访问。每对存储器块可以包括高级***总线(APB)接口、配置电路***、控制器和复用器。可以使用任何类型的存储器。PVA和DLA可以经由向PVA和DLA提供高速存储器访问的主干(backbone)访问存储器。主干可以包括(例如使用APB)将PVA和DLA互连到存储器的片上计算机视觉网络。
片上计算机视觉网络可以包括在传输任何控制信号/地址/数据之前确定PVA和DLA二者都提供就绪且有效的信号的接口。这样的接口可以提供用于传输控制信号/地址/数据的单独相位和单独信道,以及用于连续数据传输的突发式通信。这种类型的接口可以符合ISO 26262或者IEC 61508标准,但是也可以使用其他标准和协议。
在一些示例中,SoC 804可以包括例如在2018年8月10日提交的美国专利申请No.16/101,232中描述的实时光线追踪硬件加速器。该实时光线追踪硬件加速器可以用来快速且高效地确定(例如世界模型内的)对象的位置和范围,以便生成实时可视化仿真,以用于RADAR信号解释、用于声音传播合成和/或分析、用于SONAR***仿真、用于一般波传播仿真、用于为了定位和/或其他功能的目的与LIDAR数据相比较和/或用于其他用途。
加速器814(例如硬件加速器簇)具有广泛的自主驾驶用途。PVA可以是可编程视觉加速器,其可以用于ADAS和自主车辆中的关键处理阶段。PVA的能力是需要可预测处理、低功率和低延迟的算法域的良好匹配。换言之,PVA在半密集或者密集规则计算上,甚至在需要具有低延迟和低功率的可预测运行时间的小数据集上都表现良好。因此,在用于自主车辆的平台的背景下,PVA被设计为运行经典计算机视觉算法,因为它们在对象检测和整数数学运算方面很有效。
例如,根据该技术的一个实施例,PVA用来执行计算机立体视觉。在一些示例中,可以使用基于半全局匹配的算法,但是这并不意图是限制性的。许多用于3-5级自主驾驶的应用都需要即时运动估计/立体匹配(例如来自运动的结构、行人识别、车道检测等等)。PVA可以在来自两个单目相机的输入上执行计算机立体视觉功能。
在一些示例中,PVA可以用来执行密集的光流。根据过程原始RADAR数据(例如使用4D快速傅立叶变换)以提供经处理的RADAR。在其他示例中,PVA用于飞行时间深度处理,其例如通过处理原始飞行时间数据以提供经处理的飞行时间数据。
DLA可以用来运行任何类型的网络以增强控制和驾驶安全性,包括例如输出用于每个对象检测的置信度度量的神经网络。这样的置信度值可以解释为概率,或者解释为提供每个检测与其他检测相比的相对“权重”。该置信度值使得***能够做出关于哪些检测应当被认为是真阳性检测而不是假阳性检测的进一步决策。例如,***可以为置信度设置阈值,并且仅仅将超过阈值的检测看作真阳性检测。在自动紧急制动(AEB)***中,假阳性检测会使得车辆自动地执行紧急制动,这显然是不希望的。因此,只有最确信的检测才应当被认为是AEB的触发因素。DLA可以运行用于回归置信度值的神经网络。该神经网络可以将至少一些参数子集作为其输入,例如边界框维度,(例如从另一个子***)获得的地平面估计,与车辆800取向、距离相关的惯性测量单元(IMU)传感器866输出,从神经网络和/或其他传感器(例如LIDAR传感器864或RADAR传感器860)获得的对象的3D位置估计等。
SoC 804可以包括一个或更多个数据存储816(例如存储器)。数据存储816可以是SoC 804的片上存储器,其可以存储要在GPU和/或DLA上执行的神经网络。在一些示例中,为了冗余和安全,数据存储816可以容量足够大以存储神经网络的多个实例。数据存储812可以包括L2或L3高速缓存812。对数据存储816的引用可以包括对与如本文所描述的PVA、DLA和/或其他加速器814关联的存储器的引用。
SoC 804可以包括一个或更多个处理器810(例如嵌入式处理器)。处理器810可以包括启动和功率管理处理器,其可以是用于处理启动功率和管理功能以及有关安全实施的专用处理器和子***。启动和功率管理处理器可以是SoC 804启动序列的一部分,并且可以提供运行时间功率管理服务。启动功率和管理处理器可以提供时钟和电压编程、辅助***低功率状态转换、SoC 804热和温度传感器管理和/或SoC 804功率状态管理。每个温度传感器可以实现为环形振荡器,其输出频率与温度成比例,并且SoC 804可以使用环形振荡器检测CPU 806、GPU 808和/或加速器814的温度。如果确定温度超过阈值,那么启动和功率管理处理器可以进入温度故障例程并且将SoC 804置于较低功率状态和/或将车辆800置于司机安全停车模式(例如使车辆800安全停车)。
处理器810可以进一步包括可以用作音频处理引擎的一组嵌入式处理器。音频处理引擎可以是一种音频子***,其允许实现对于通过多个接口的多声道音频的完全硬件支持以及一系列广泛而灵活的音频I/O接口。在一些示例中,音频处理引擎是具有带有专用RAM的数字信号处理器的专用处理器核。
处理器810可以进一步包括始终在处理器上的引擎,其可以提供必要的硬件特征以支持低功率传感器管理和唤醒用例。该始终在处理器上的引擎可以包括处理器核、紧密耦合的RAM、支持***设备(例如定时器和中断控制器)、各种I/O控制器***设备和路由逻辑。
处理器810可以进一步包括安全簇引擎,其包括处理汽车应用的安全管理的专用处理器子***。安全簇引擎可以包括两个或更多处理器核、紧密耦合的RAM、支持***设备(例如定时器、中断控制器等等)和/或路由逻辑。在安全模式下,所述两个或更多核可以操作于锁步模式下,并且用作具有检测它们的操作之间的任何差异的比较逻辑的单核。
处理器810可以进一步包括实时相机引擎,其可以包括用于处理实时相机管理的专用处理器子***。
处理器810可以进一步包括高动态范围信号处理器,其可以包括图像信号处理器,该图像信号处理器是一种硬件引擎,该硬件引擎是相机处理管线的部分。
处理器810可以包括可以是(例如微处理器上实现的)处理块的视频图像复合器,其实现视频回放应用程序产生用于播放器窗口的最终图像所需的视频后处理功能。视频图像复合器可以对广角相机870、环绕相机874和/或对驾驶室内监控相机传感器执行镜头畸变校正。驾驶室内监控相机传感器优选地由运行在高级SoC的另一个实例上的神经网络监控,被配置为识别驾驶室内事件并且相对应地做出响应。驾驶室内***可以执行唇读,以激活移动电话服务并拨打电话、口述电子邮件、改变车辆目的地、激活或改变车辆的信息娱乐***和设置或者提供语音激活的网上冲浪。某些功能仅在车辆操作于自主模式下时对于驾驶员可用,并且在其他情况下被禁用。
视频图像复合器可以包括用于空间和时间降噪的增强时间降噪。例如,在视频中出现运动的情况下,降噪适当地对空间信息加权,降低邻近帧提供的信息的权重。在图像或者图像的部分不包括运动的情况下,视频图像复合器执行的时间降噪可以使用来自先前的图像的信息以降低当前图像中的噪声。
视频图像复合器也可以被配置为对输入立体镜头帧执行立体校正。当操作***桌面正在使用并且GPU 808无需连续地渲染(render)新的表面时,视频图像复合器可以进一步用于用户接口组成。甚至在GPU 808上电并且激活,进行3D渲染时,视频图像复合器可以用来减轻GPU 808的负担以提高性能和响应能力。
SoC 804可以进一步包括用于从相机接收视频和输入的移动行业处理器接口(MIPI)相机串行接口、高速接口和/或可以用于相机和有关像素输入功能的视频输入块。SoC 804可以进一步包括可以由软件控制并且可以用于接收未提交到特定角色的I/O信号的输入/输出控制器。
SoC 804可以进一步包括大范围的***设备接口,以使能与***设备、音频编解码器、功率管理和/或其他设备通信。SoC 804可以用来处理来自(通过千兆多媒体串行链路和以太网连接的)相机、传感器(例如可以通过以太网连接的LIDAR传感器864、RADAR传感器860等等)的数据,来自总线802的数据(例如车辆800的速率、方向盘位置等等),来自(通过以太网或CAN总线连接的)GNSS传感器858的数据。SoC 804可以进一步包括专用高性能大容量存储控制器,其可以包括它们自己的DMA引擎,并且其可以用来从日常数据管理任务中释放CPU 806。
SoC 804可以是具有灵活架构的端到端平台,该架构跨越自动化3-5级,从而提供利用和高效使用计算机视觉和ADAS技术以实现多样性和冗余、连同深度学***台的综合功能安全架构。SoC 804可以比常规的***更快、更可靠,甚至更加能量高效和空间高效。例如,当与CPU 806、GPU 808和数据存储816结合时,加速器814可以提供用于3-5级自主车辆的快速高效平台。
因此该技术提供了不能通过常规***实现的能力和功能。例如,计算机视觉算法可以在CPU上执行,这些CPU可以使用诸如C编程语言之类的高级编程语言配置为跨各种各样的视觉数据执行各种各样的处理算法。然而,CPU常常不能满足许多计算机视觉应用的性能要求,诸如与例如执行时间和功耗有关的那些要求。特别地,许多CPU不能实时地执行复杂的对象检测算法,这是车载ADAS应用的要求和实用3-5级自主车辆的要求。
与常规***形成对比的是,通过提供CPU复合体、GPU复合体和硬件加速簇,本文描述的技术允许同时和/或顺序地执行多个神经网络,并且将结果组合在一起以实现3-5级自主驾驶功能。例如,在DLA或dGPU(例如GPU 820)上执行的CNN可以包括文本和单词识别,允许超级计算机读取和理解交通指示牌,包括尚未针对其特别地训练神经网络的指示牌。DLA可以进一步包括能够识别、解释和提供对指示牌的语义理解,并且将该语义理解传递给运行在CPU复合体上的路径规划模块的神经网络。
作为另一个示例,如3、4或5级驾驶所需的,多个神经网络可以同时运行。例如,由“注意:闪烁的灯指示结冰条件”组成的警告指示牌连同电灯可以由若干神经网络独立地或者共同地进行解释。指示牌本身可以由部署的第一神经网络(例如经过训练的神经网络)识别为交通指示牌,文本“闪烁的灯指示结冰条件”可以由部署的第二神经网络解释,该部署的第二神经网络告知车辆的路径规划软件(优选地在CPU复合体上执行)当检测到闪烁的灯时,存在结冰条件。闪烁的灯可以通过在多个帧上操作部署的第三神经网络而识别,该神经网络告知车辆的路径规划软件闪烁的灯的存在(或不存在)。所有三个神经网络可以例如在DLA内和/或在GPU 808上同时运行。
在一些示例中,用于面部识别和车主识别的CNN可以使用来自相机传感器的数据识别车辆800的授权的驾驶员和/或车主的存在。始终在传感器上的处理引擎可以用来在车主接近驾驶员车门时解锁车辆并且打开灯,并且在安全模式下,在车主离开车辆时禁用车辆。按照这种方式,SoC 804提供了防范盗窃和/或劫车的安全性。
在另一个示例中,用于应急车辆检测和识别的CNN可以使用来自麦克风896的数据来检测并且识别应急车辆警报(siren)。与使用通用分类器检测警报并且手动地提取特征的常规***形成对比的是,SoC 804使用CNN以对环境和城市声音分类以及对视觉数据分类。在优选的实施例中,运行在DLA上的CNN被训练为识别应急车辆的相对关闭速率(例如通过使用多普勒效应)。CNN也可以被训练为识别如GNSS传感器858所识别的特定于车辆在其中操作的局部区域的应急车辆。因此,例如,当在欧洲操作时,CNN将寻求检测欧洲警报,并且当在美国时,CNN将寻求识别仅仅北美的警报。一旦检测到应急车辆,在超声传感器862的辅助下,控制程序可以用来执行应急车辆安全例程,使车辆放慢速度,开到路边,停下车辆,和/或使车辆空转,直到应急车辆通过。
车辆可以包括可以经由高速互连(例如PCIe)耦合到SoC 804的CPU 818(例如分立的CPU或dCPU)。CPU 818可以包括例如X86处理器。CPU 818可以用来执行各种各样的功能中的任何功能,包括例如仲裁ADAS传感器与SoC 804之间潜在地不一致的结果,和/或监控控制器836和/或信息娱乐SoC 830的状态和健康状况。
车辆800可以包括可以经由高速互连(例如NVIDIA的NVLINK)耦合到SoC 804的GPU820(例如分立的GPU或dGPU)。GPU 820可以例如通过执行冗余的和/或不同的神经网络而提供附加的人工智能功能,并且可以用来基于来自车辆800的传感器的输入(例如传感器数据)来训练和/或更新神经网络。
车辆800可以进一步包括网络接口824,该网络接口可以包括一个或更多个无线天线826(例如用于不同通信协议的一个或更多个无线天线,例如蜂窝天线、蓝牙天线等等)。网络接口824可以用来使能通过因特网与云(例如与服务器878和/或其他网络设备)、与其他车辆和/或与计算设备(例如乘客的客户端设备)的无线连接。为了与其他车辆通信,可以在这两辆车之间建立直接链接,和/或可以建立间接链接(例如跨网络以及通过因特网)。直接链接可以使用车对车通信链路提供。车对车通信链路可以向车辆800提供关于接近车辆800的车辆(例如车辆800前面、侧面和/或后面的车辆)的信息。该功能可以是车辆800的协作自适应巡航控制功能的部分。
网络接口824可以包括提供调制和解调功能并且使得控制器836能够通过无线网络通信的SoC。网络接口824可以包括用于从基带到射频的上转换以及从射频到基带的下转换的射频前端。频率转换可以通过公知的过程执行,和/或可以使用超外差(super-heterodyne)过程执行。在一些示例中,射频前端功能可以由单独的芯片提供。网络接口可以包括用于通过LTE、WCDMA、UMTS、GSM、CDMA2000、蓝牙、蓝牙LE、Wi-Fi、Z波、ZigBee、LoRaWAN和/或其他无线协议通信的无线功能。
车辆800可以进一步包括可包括片外(例如SoC 804外)存储装置的数据存储828。数据存储828可以包括一个或更多个存储元件,包括RAM、SRAM、DRAM、VRAM、闪存、硬盘和/或可以存储至少一个比特的数据的其他部件和/或设备。
车辆800可以进一步包括GNSS传感器858。GNSS传感器858(例如GPS和/或辅助GPS传感器)用于辅助映射、感知、占用网格生成和/或路径规划功能。可以使用任意数量的GNSS传感器858,包括例如且不限于使用带有以太网到串行(RS-232)网桥的USB连接器的GPS。
车辆800可以进一步包括RADAR传感器860。RADAR传感器860可以甚至在黑暗和/或恶劣天气条件下也由车辆800用于远程车辆检测。RADAR功能安全级别可以是ASIL B。RADAR传感器860可以使用CAN和/或总线802(例如以传输RADAR传感器860生成的数据)以用于控制以及访问对象跟踪数据,在一些示例中接入以太网以访问原始数据。可以使用各种各样的RADAR传感器类型。例如且非限制性地,RADAR传感器860可以适合前面、后面和侧面RADAR使用。在一些示例中,使用脉冲多普勒RADAR传感器。
RADAR传感器860可以包括不同的配置,例如具有窄视场的远程、具有宽视场的短程、短程侧覆盖等等。在一些示例中,远程RADAR可以用于自适应巡航控制功能。远程RADAR***可以提供通过两个或更多独立扫描实现的广阔视场(例如250m范围内)。RADAR传感器860可以帮助区分静态对象和运动对象,并且可以由ADAS***用于紧急制动辅助和前方碰撞警告。远程RADAR传感器可以包括具有多根(例如六根或更多)固定RADAR天线以及高速CAN和FlexRay接口的单站多模RADAR。在具有六根天线的示例中,中央四根天线可以创建聚焦的波束图案,其被设计为在更高速率下以来自邻近车道的最小交通干扰记录车辆800的周围环境。其他两根天线可以扩展视场,使得快速地检测进入或离开车辆800的车道的车辆成为可能。
作为一个示例,中程RADAR***可以包括高达860m(前面)或80m(后面)的范围以及高达42度(前面)或850度(后面)的视场。短程RADAR***可以包括但不限于被设计为安装在后保险杠两端的RADAR传感器。当安装在后保险杠两端时,这样的RADAR传感器***可以创建持续地监控后方和车辆旁边的盲点的两个波束。
短程RADAR***可以在ADAS***中用于盲点检测和/或变道辅助。
车辆800可以进一步包括超声传感器862。可以置于车辆800的前面、后面和/或侧面的超声传感器862可以用于停车辅助和/或创建和更新占用网格。可以使用各种各样的超声传感器862,并且不同的超声传感器862可以用于不同的检测范围(例如2.5m、4m)。超声传感器862可以操作于功能安全级别的ASIL B。
车辆800可以包括LIDAR传感器864。LIDAR传感器864可以用于对象和行人检测、紧急制动、碰撞避免和/或其他功能。LIDAR传感器864可以为功能安全级别的ASIL B。在一些示例中,车辆800可以包括可以使用以太网(例如以将数据提供给千兆以太网交换机)的多个LIDAR传感器864(例如两个、四个、六个等等)。
在一些示例中,LIDAR传感器864可能够对360度视场提供对象列表及其距离。商业上可用的LIDAR传感器864可以具有例如近似800m的广告范围,精度为2cm-3cm,支持800Mbps以太网连接。在一些示例中,可以使用一个或更多个非突出的LIDAR传感器864。在这样的示例中,LIDAR传感器864可以实现为可以嵌入到车辆800的前面、后面、侧面和/或拐角的小设备。在这样的示例中,LIDAR传感器864可以甚至对于低反射率对象提供高达820度水平的和35度竖直的视场,具有200m的范围。前面安装的LIDAR传感器864可以被配置用于45度与135度之间的水平视场。
在一些示例中,也可以使用诸如3D闪光LIDAR之类的LIDAR技术。3D闪光LIDAR使用激光的闪光作为发射源,以照亮高达约200m的车辆周围环境。闪光LIDAR单元包括接受器,该接受器将激光脉冲传输时间和反射光记录在每个像素上,其进而与从车辆到对象的范围相对应。闪光LIDAR可以允许利用每个激光闪光生成周围环境的高度精确且无失真的图像。在一些示例中,可以部署四个闪光LIDAR传感器,车辆800的每一侧一个。可用的3D闪光LIDAR***包括没有风扇以外的运动部件(moving part)的固态3D凝视阵列LIDAR相机(例如非扫描LIDAR设备)。闪光LIDAR设备可以使用每帧5纳秒I类(眼睛安全)激光脉冲,并且可以以3D范围点云和共同寄存的强度数据的形式捕获反射的激光。通过使用闪光LIDAR,并且因为闪光LIDAR是没有运动部件的固态设备,LIDAR传感器864可以不太容易受到运动模糊、振动和/或震动的影响。
该车辆可以进一步包括IMU传感器866。在一些示例中,IMU传感器866可以位于车辆800的后轴的中心。IMU传感器866可以包括例如且不限于加速度计、磁力计、陀螺仪、磁罗盘和/或其他传感器类型。在一些示例中,例如在六轴应用中,IMU传感器866可以包括加速度计和陀螺仪,而在九轴应用中,IMU传感器866可以包括加速度计、陀螺仪和磁力计。
在一些实施例中,IMU传感器866可以实现为微型高性能GPS辅助惯性导航***(GPS/INS),其结合微机电***(MEMS)惯性传感器、高灵敏度GPS接收器和高级卡尔曼滤波算法以提供位置、速度和姿态的估计。这样,在一些示例中,IMU传感器866可以使得车辆800能够在无需来自磁传感器的输入的情况下通过直接观察从GPS到IMU传感器866的速度变化并且将其相关来估计方向(heading)。在一些示例中,IMU传感器866和GNSS传感器858可以结合到单个集成单元中。
该车辆可以包括置于车辆800中和/或车辆800周围的麦克风896。除别的以外,麦克风896可以用于应急车辆检测和识别。
该车辆可以进一步包括任意数量的相机类型,包括立体相机868、广角相机870、红外相机872、环绕相机874、远程和/或中程相机898和/或其他相机类型。这些相机可以用来捕获车辆800整个***周围的图像数据。使用的相机类型取决于实施例和车辆800的要求,并且相机类型的任意组合可以用来提供车辆800周围的必要覆盖。此外,相机的数量可以根据实施例而不同。例如,该车辆可以包括六个相机、七个相机、十个相机、十二个相机和/或另一数量的相机。作为一个示例且非限制性地,这些相机可以支持千兆多媒体串行链路(GMSL)和/或千兆以太网。所述相机中的每一个在本文关于图8A和图8B更详细地进行了描述。
车辆800可以进一步包括振动传感器842。振动传感器842可以测量车辆的诸如车轴之类的部件的振动。例如,振动的变化可以指示道路表面的变化。在另一个示例中,当使用两个或更多振动传感器842时,振动之间的差异可以用来确定道路表面的摩擦或滑移(例如当动力驱动轴与自由旋转轴之间存在振动差异时)。
车辆800可以包括ADAS***838。在一些示例中,ADAS***838可以包括SoC。ADAS***838可以包括自主/自适应/自动巡航控制(ACC)、协作自适应巡航控制(CACC)、前方撞车警告(FCW)、自动紧急制动(AEB)、车道偏离警告(LDW)、车道保持辅助(LKA)、盲点警告(BSW)、后方穿越交通警告(RCTW)、碰撞警告***(CWS)、车道居中(LC)和/或其他特征和功能。
ACC***可以使用RADAR传感器860、LIDAR传感器864和/或相机。ACC***可以包括纵向ACC和/或横向ACC。纵向ACC监控并控制到紧接在车辆800前方的车辆的距离,并且自动地调节车速以维持离前方车辆的安全距离。横向ACC执行距离保持,并且在必要时建议车辆800改变车道。横向ACC与诸如LCA和CWS之类的其他ADAS应用程序有关。
CACC使用来自其他车辆的信息,该信息可以经由网络接口824和/或无线天线826经由无线链路或者通过网络连接(例如通过因特网)间接地从其他车辆接收。直接链接可以由车对车(V2V)通信链路提供,而间接链接可以是基础设施到车辆(I2V)的通信链路。通常,V2V通信概念提供关于紧接在前的车辆(例如紧接在车辆800前方且与其处于相同车道的车辆)的信息,而I2V通信概念提供关于前方更远处的交通的信息。CACC***可以包括I2V和V2V信息源中的任一个或者二者。给定车辆800前方车辆的信息,CACC可以更加可靠,并且它有可能提高交通流的畅通性且降低道路拥堵。
FCW***被设计为提醒驾驶员注意危险,使得驾驶员可以采取纠正措施。FCW***使用耦合到专用处理器、DSP、FPGA和/或ASIC的前置相机和/或RADAR传感器860,该专用处理器、DSP、FPGA和/或ASIC电耦合至诸如显示器、扬声器和/或振动部件之类的驾驶员反馈。FCW***可以提供例如声音、视觉警告、振动和/或快速制动脉冲形式的警告。
AEB***检测即将发生的与另一车辆或其他对象的前方碰撞,并且可以在驾驶员在指定的时间或距离参数内没有采取纠正措施的情况下自动地应用制动器。AEB***可以使用耦合到专用处理器、DSP、FPGA和/或ASIC的前置相机和/或RADAR传感器860。当AEB***检测到危险时,它典型地首先提醒(alert)驾驶员采取纠正措施以避免碰撞,并且如果驾驶员没有采取纠正措施,那么AEB***可以自动地应用制动器以努力防止或者至少减轻预测的碰撞的影响。AEB***可以包括诸如动态制动支持和/或碰撞迫近制动之类的技术。
LDW***提供了诸如方向盘或座位振动之类的视觉、听觉和/或触觉警告,以在车辆800穿过车道标记时提醒驾驶员。当驾驶员指示有意偏离车道时,通过激活转弯信号,不激活LDW***。LDW***可以使用耦合到专用处理器、DSP、FPGA和/或ASIC的前侧朝向相机,该专用处理器、DSP、FPGA和/或ASIC电耦合至诸如显示器、扬声器和/或振动部件之类的驾驶员反馈。
LKA***是LDW***的变型。如果车辆800开始离开车道,那么LKA***提供纠正车辆800的转向输入或制动。
BSW***检测并向驾驶员警告汽车盲点中的车辆。BSW***可以提供视觉、听觉和/或触觉警报以指示合并或改变车道是不安全的。***可以在驾驶员使用转弯信号时提供附加的警告。BSW***可以使用耦合到专用处理器、DSP、FPGA和/或ASIC的后侧朝向相机和/或RADAR传感器860,该专用处理器、DSP、FPGA和/或ASIC电耦合至诸如显示器、扬声器和/或振动部件之类的驾驶员反馈。
RCTW***可以在车辆800倒车时在后置相机范围之外检测到对象时提供视觉、听觉和/或触觉通知。一些RCTW***包括AEB以确保应用车辆制动器以避免撞车。RCTW***可以使用耦合到专用处理器、DSP、FPGA和/或ASIC的一个或更多个后置RADAR传感器860,该专用处理器、DSP、FPGA和/或ASIC电耦合至诸如显示器、扬声器和/或振动部件之类的驾驶员反馈。
常规的ADAS***可能易于出现假阳性结果,这可能会让驾驶员烦恼并分散注意力,但是典型地不是灾难性的,因为ADAS***提醒驾驶员并且允许驾驶员决定安全条件是否真正存在并且相对应地采取行动。然而,在自主车辆800中,在冲突结果的情况下,车辆800本身必须决定是否注意(heed)来自主计算机或者辅助计算机(例如第一控制器836或第二控制器836)的结果。例如,在一些实施例中,ADAS***838可以是用于向备用计算机合理性模块提供感知信息的备用和/或辅助计算机。备用计算机合理性监视器可以在硬件部件上运行冗余多样的软件,以检测感知和动态驾驶任务中的故障。来自ADAS***838的输出可以提供给监督MCU。如果来自主计算机和辅助计算机的输出冲突,那么监督MCU必须确定如何协调该冲突以确保安全操作。
在一些示例中,主计算机可以被配置为向监督MCU提供置信度评分,指示主计算机对所选结果的置信度。如果置信度评分超过阈值,那么监督MCU可以遵循主计算机的方向,而不管辅助计算机是否提供冲突或不一致的结果。在置信度评分不满足阈值的情况下并且在主计算机和辅助计算机指示不同的结果(例如冲突)的情况下,监督MCU可以在这些计算机之间进行仲裁以确定适当的结果。
监督MCU可以被配置为运行神经网络,所述神经网络被训练并且被配置为基于来自主计算机和辅助计算机的输出,确定辅助计算机提供假警报的条件。因此,监督MCU中的神经网络可以了解何时可以信任辅助计算机的输出以及何时不能。例如,当辅助计算机为基于RADAR的FCW***时,监督MCU中的神经网络可以了解FCW***何时正在识别事实上不是危险的金属对象,例如触发警报的排水栅格或井盖。类似地,当辅助计算机是基于相机的LDW***时,监督MCU中的神经网络可以学习在骑车者或行人在场并且车道偏离实际上是最安全的策略时无视该LDW。在包括运行在监督MCU上的神经网络的实施例中,监督MCU可以包括适合于利用关联的存储器运行神经网络的DLA或GPU中的至少一个。在优选的实施例中,监督MCU可以包括SoC 804的部件和/或作为SoC 804的部件而被包括。
在其他示例中,ADAS***838可以包括使用传统计算机视觉规则执行ADAS功能的辅助计算机。这样,辅助计算机可以使用经典的计算机视觉规则(如果-那么),并且在监督MCU中存在神经网络可以提高可靠性、安全性和性能。例如,多样化的实现方式和有意的非完全相同(non-identity)使得整个***更加容错,对于软件(或者软件-硬件接口)功能造成的故障而言尤其如此。例如,如果在主计算机上运行的软件中存在软件漏洞或错误并且运行在辅助计算机上的非完全相同的软件代码提供相同的总体结果,那么监督MCU可以更加确信总体结果是正确的,并且主计算机上的软件或硬件中的漏洞不造成实质性的错误。
在一些示例中,ADAS***838的输出可以馈送至主计算机的感知块和/或主计算机的动态驾驶任务块。例如,如果ADAS***838由于对象紧接在前的原因而指示前方碰撞警告,那么感知块可以在识别对象时使用该信息。在其他示例中,辅助计算机可以具有它自己的神经网络,其被训练并且因此如本文所描述的降低假阳性的风险。
车辆800可以进一步包括信息娱乐SoC 830(例如车载信息娱乐***(IVI))。尽管被图示和描述为SoC,但是信息娱乐***可以不是SoC,并且可以包括两个或更多分立的部件。信息娱乐SoC 830可以包括可以用来向车辆800提供音频(例如音乐、个人数字助理、导航指令、新闻、广播等等)、视频(例如TV、电影、流媒体等等)、电话(例如免提呼叫)、网络连接(例如LTE、Wi-Fi等等)和/或信息服务(例如导航***,后停车援助,无线电数据***,诸如燃油水平、覆盖的总距离、制动燃油水平、油位、车门开/关、空气过滤器信息之类的车辆有关信息,等等)的硬件和软件的组合。例如,信息娱乐SoC 830可以包括收音机、盘播放器、导航***、视频播放器、USB和蓝牙连接、车载电脑、车载娱乐、Wi-Fi、方向盘音频控件、免提语音控件、平视显示器(HUD)、HMI显示器834、远程信息处理设备、控制面板(例如用于控制各种部件、特征和/或***,和/或与其交互)和/或其他部件。信息娱乐SoC 830可以进一步用来向车辆的用户提供信息(例如视觉的和/或听觉的),例如来自ADAS***838的信息,诸如规划的车辆机动、轨迹、周围环境信息(例如交叉路口信息、车辆信息、道路信息等等)之类的自主驾驶信息,和/或其他信息。
信息娱乐SoC 830可以包括GPU功能。信息娱乐SoC 830可以通过总线802(例如CAN总线、以太网等)与车辆800的其他设备、***和/或部件通信。在一些示例中,信息娱乐SoC830可以耦合至监督MCU,使得在主控制器836(例如车辆800的主和/或备用计算机)出现故障的情况下,信息娱乐***的GPU可以执行一些自驾驶功能。在这样的示例中,信息娱乐SoC830可以如本文所描述的将车辆800置于司机安全停车模式。
车辆800可以进一步包括仪表组832(例如数字仪表板、电子仪表组、数字仪表面板等等)。仪表组832可以包括控制器和/或超级计算机(例如分立的控制器或超级计算机)。仪表组832可以包括一套仪器,例如车速表、燃油水平、油压、转速表、里程表、转弯指示器、换档位置指示器、安全带警告灯、停车制动警告灯、发动机故障灯、安全气囊(SRS)***信息、照明控件、安全***控件、导航信息等等。在一些示例中,信息可以被显示和/或在信息娱乐SoC 830和仪表组832之间共享。换言之,仪表组832可以作为信息娱乐SoC 830的部分而被包括,或者反之亦然。
图8D为根据本公开一些实施例的基于云的服务器与图8A的示例自主车辆800之间的通信的***示意图。***876可以包括服务器878、网络890以及包括车辆800在内的车辆。服务器878可以包括多个GPU 884(A)-884(H)(这里统称为GPU 884)、PCIe交换机882(A)-882(H)(这里统称为PCIe交换机882)和/或CPU 880(A)-880(B)(这里统称为CPU 880)。GPU884、CPU 880和PCIe交换机可以与诸如例如且不限于NVIDIA开发的NVLink接口888之类的高速互连和/或PCIe连接886互连。在一些示例中,GPU 884经由NVLink和/或NVSwitch SoC连接,并且GPU 884和PCIe交换机882经由PCIe互连连接。尽管图示出八个GPU 884、两个CPU880和两个PCIe交换机,但是这并不意图是限制性的。取决于实施例,服务器878中的每一个可以包括任意数量的GPU 884、CPU 880和/或PCIe交换机。例如,服务器878中的每一个可以包括八个、十六个、三十二个和/或更多GPU 884。
服务器878可以通过网络890并且从车辆接收图像数据,该图像数据表示示出诸如最近开始的道路工程之类的意外或改变的道路状况的图像。服务器878可以通过网络890并且向车辆传输神经网络892、更新的神经网络892和/或地图信息894,包括关于交通和道路状况的信息。对地图信息894的更新可以包括对于HD地图822的更新,例如关于建筑工地、坑洼、弯道、洪水或其他障碍物的信息。在一些示例中,神经网络892、更新的神经网络892和/或地图信息894可以已从新的训练和/或从环境中的任意数量的车辆接收的数据中表示和/或基于数据中心处执行的训练(例如使用服务器878和/或其他服务器)的经验产生。
服务器878可以用来基于训练数据训练机器学习模型(例如神经网络)。训练数据可以由车辆生成,和/或可以在仿真中生成(例如使用游戏引擎)。在一些示例中,训练数据被标记(例如在神经网络受益于有监督学习的情况下)和/或经历其他预处理,而在其他示例中,训练数据不被标记和/或预处理(例如在神经网络无需有监督学习的情况下)。可以根据机器学习技术的任何一个或更多个类别来执行训练,包括但不限于:诸如监督训练、半监督训练、无监督训练、自学习、强化学习、联合学习、转移学习、特征学习(包括主要组成和聚类分析)、多线性子空间学习、流形学习、表示学习(包括备用字典学习)、基于规则的机器学习、异常检测及其任何变体或组合之类的类别。一旦机器学习模型被训练,机器学习模型可以由车辆使用(例如通过网络890传输至车辆),和/或机器学习模型可以由服务器878用来远程地监控车辆。
在一些示例中,服务器878可以接收来自车辆的数据,并且将该数据应用到最新的实时神经网络以用于实时智能推理。服务器878可以包括由GPU 884供电的深度学习超级计算机和/或专用AI计算机,例如NVIDIA开发的DGX和DGX站机器。然而,在一些示例中,服务器878可以包括仅使用CPU供电的数据中心的深度学习基础设施。
服务器878的深度学习基础设施可能够快速实时推理,并且可以使用该能力来评估并验证车辆800中的处理器、软件和/或关联硬件的健康状况。例如,深度学习基础设施可以接收来自车辆800的定期更新,例如图像序列和/或车辆800已经定位的位于该图像序列中的对象(例如经由计算机视觉和/或其他机器学习对象分类技术)。深度学习基础设施可以运行它自己的神经网络以识别对象并且将它们与车辆800识别的对象相比较,如果结果不匹配并且该基础设施得出车辆800中的AI发生故障的结论,那么服务器878可以向车辆800传输信号,指示车辆800的故障保护计算机进行控制,通知乘客,并且完成安全停车操作。
为了推理,服务器878可以包括GPU 884和一个或更多个可编程推理加速器(例如NVIDIA的TensorRT)。GPU供电的服务器和推理加速的组合可以使得实时响应成为可能。在其他示例中,例如在性能不那么重要的情况下,CPU、FPGA和其他处理器供电的服务器可以用于推理。
示例计算设备
图9为适合用于实现本公开一些实施例的示例计算设备900的框图。计算设备900可以包括直接或间接耦合下列设备的总线902:存储器904,一个或更多个中央处理单元(CPU)906,一个或更多个图形处理单元(GPU)908,通信接口910,输入/输出(I/O)端口912,输入/输出组件914,电源916,以及一个或更多个呈现组件918(例如显示器)。
尽管图9的各个框被示为经由具有线路的总线902连接,但是这并不意图是限制性的,并且仅仅为了清楚起见。例如,在一些实施例中,诸如显示设备之类的呈现组件918可以被认为是I/O组件914(例如如果显示器为触摸屏)。作为另一个示例,CPU 906和/或GPU 908可以包括存储器(例如,存储器904可以表示除了GPU 908、CPU 906和/或其他组件的存储器以外的存储设备)。换言之,图9的计算设备仅仅是说明性的。在诸如“工作站”、“服务器”、“膝上型电脑”、“台式机”、“平板电脑”、“客户端设备”、“移动设备”、“手持式设备”、“游戏控制台”、“电子控制单元(ECU)”、“虚拟现实***”和/或其他设备或***类型之类的类别之间不进行区分,因为所有这些都被考虑在图9的计算设备的范围内。
总线902可以表示一条或更多条总线,例如地址总线、数据总线、控制总线或者其组合。总线902可以包括一种或更多种总线类型,例如行业标准架构(ISA)总线、扩展行业标准架构(EISA)总线、视频电子标准协会(VESA)总线、***组件互连(PCI)总线、***组件互连快速(PCIe)总线,和/或另一种类型的总线。
存储器904可以包括各种各样的计算机可读介质中的任何介质。计算机可读介质可以是可以由计算设备900访问的任何可用介质。计算机可读介质可以包括易失性和非易失性介质以及可移除和不可移除介质。举例而言且非限制性地,计算机可读介质可以包括计算机存储介质和通信介质。
计算机存储介质可以包括易失性和非易失性介质和/或可移除和不可移除介质,其以用于存储诸如计算机可读指令、数据结构、程序模块和/或其他数据类型之类的信息的任何方法或技术实现。例如,存储器904可以存储计算机可读指令(例如其表示程序和/或程序元素,例如操作***)。计算机存储介质可以包括但不限于RAM、ROM、EEPROM、闪存或者其他存储技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储装置、磁带盒、磁带、磁盘存储装置或其他磁存储设备,或者可以用来存储期望的信息且可以由计算设备900访问的任何其他介质。当在本文使用时,计算机存储介质并不包括信号本身。
通信介质可以在诸如载波之类的调制数据信号或其他传输机制中包括计算机可读指令、数据结构、程序模块和/或其他数据类型,并且包括任何信息输送介质。术语“调制数据信号”可以指这样的信号,该信号使它的特性中的一个或更多个以这样的将信息编码到该信号中的方式设置或改变。举例而言且非限制性地,通信介质可以包括诸如有线网络或直接有线连接之类的有线介质,以及诸如声音、RF、红外和其他无线介质之类的无线介质。任何以上所述的组合也应当包括在计算机可读介质的范围内。
CPU 906可以被配置为执行计算机可读指令以便控制计算设备900的一个或更多个组件执行本文描述的方法和/或过程中的一个或更多个。CPU 906中的每一个可以包括能够同时处理大量软件线程的一个或更多个核(例如一个、两个、四个、八个、二十八个、七十二个等等)。CPU 906可以包括任何类型的处理器,并且可以包括不同类型的处理器,这取决于实现的计算设备900的类型(例如具有用于移动设备的较少核的处理器以及具有用于服务器的更多核的处理器)。例如,取决于计算设备900的类型,处理器可以是使用精简指令集计算(RISC)实现的ARM处理器或者使用复杂指令集计算(CISC)实现的x86处理器。除了一个或更多个微处理器或者诸如数学协处理器之类的补充协处理器之外,计算设备900还可以包括一个或更多个CPU 906。
GPU 908可以由计算设备900用来渲染图形(例如3D图形)。GPU 908可以包括能够同时处理数百或数千个软件线程的数百或数千个核。GPU 908可以响应于渲染命令(例如经由主机接口接收的来自CPU 906的渲染命令)而生成用于输出图像的像素数据。GPU 908可以包括诸如显示存储器之类的用于存储像素数据的图形存储器。显示存储器可以作为存储器904的部分而被包括。GPU 908可以包括(例如经由链路)并行操作的两个或更多GPU。当组合在一起时,每个GPU 908可以生成用于输出图像的不同部分或者用于不同输出图像的像素数据(例如,第一GPU用于第一图像,第二GPU用于第二图像)。每个GPU可以包括它自己的存储器,或者可以与其他GPU共享存储器。
在其中计算设备900不包括GPU 908的示例中,CPU 906可以用来渲染图形。
通信接口910可以包括一个或更多个接收器、发送器和/或收发器,其使得计算设备700能够经由电子通信网络与其他计算设备通信,包括有线和/或无线通信。通信接口910可以包括使能通过若干不同网络中的任何网络进行通信的组件和功能,所述网络例如无线网络(例如Wi-Fi、Z波、蓝牙、蓝牙LE、ZigBee等等)、有线网络(例如通过以太网通信)、低功率广域网(例如LoRaWAN、SigFox等等)和/或因特网。
I/O端口912可以使得计算设备900能够逻辑地耦合到包括I/O组件914、呈现组件918和/或其他组件在内的其他设备,其中一些可以内置到(例如集成到)计算设备900中。说明性I/O组件914包括麦克风、鼠标、键盘、操纵杆、游戏垫、游戏控制器、碟形卫星天线、扫描仪、打印机、无线设备等等。I/O组件914可以提供处理用户生成的空中手势、语音或其他生理输入的自然用户接口(NUI)。在一些实例中,输入可以传输至适当的网络元件以便进一步处理。NUI可以实现语音识别、手写笔识别、面部识别、生物特征识别、屏幕上和邻近屏幕的手势识别、空中手势、头部和眼睛跟踪以及与计算设备900的显示器关联的触摸识别(如下文更详细地描述的)的任意组合。计算设备900可以包括诸如立体相机***之类的深度相机、红外相机***、RGB相机***、触摸屏技术以及这些的组合,以用于手势检测和识别。此外,计算设备900可以包括使能运动检测的加速度计或陀螺仪(例如作为惯性测量单元(IMU)的部分)。在一些示例中,加速度计或陀螺仪的输出可以由计算设备900用来渲染沉浸式增强现实或者虚拟现实。
电源916可以包括硬接线电源、电池电源或者其组合。电源916可以向计算设备900供电以使得计算设备900的组件能够操作。
呈现组件918可以包括显示器(例如监视器、触摸屏、电视屏幕、平视显示器(HUD)、其他显示器类型或者其组合)、扬声器和/或其他呈现组件。呈现组件918可以接收来自其他组件(例如GPU 908、CPU 906等等)的数据,并且输出该数据(例如作为图像、视频、声音等等)。
本公开可以在由计算机或者诸如个人数字助理或其他手持式设备之类的其他机器执行的、包括诸如程序模块之类的计算机可执行指令的机器可使用指令或者计算机代码的一般背景下进行描述。通常,包括例程、程序、对象、组件、数据结构等等的程序模块指的是执行特定任务或者实现特定抽象数据类型的代码。本公开可以在各种各样的***配置中实践,这些配置包括手持式设备、消费电子器件、通用计算机、更专业的计算设备等等。本公开也可以在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实践。
如在本文中使用的,“和/或”关于两个或更多元素的叙述应当解释为仅指一个元素或者元素组合。例如,“元素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.一种方法,包括:将表示车辆的图像传感器的视场中的路口的图像数据应用于神经网络;使用所述神经网络并且至少部分地基于所述图像数据来计算第一数据和第二数据,所述第一数据表示一个或更多个二维(2D)热图,所述一个或更多个二维2D热图表示与所述路口相对应的关键点的位置,所述第二数据表示对应于所述关键点的分类置信度值;对所述一个或更多个2D热图进行解码以确定所述图像中的所述关键点的像素位置;从所述分类置信度值确定对应于所述关键点的关联分类;至少部分地基于所述像素位置和所述关联分类,生成通过所述路口的一条或更多条建议的路径;以及由所述车辆使用所述一条或更多条建议的路径执行一个或更多个操作。
2.根据权利要求1所述的方法,其中所述关联分类表示以下项中的一项或更多项:人行横道的入口点、所述路口的入口点、所述路口的出口点、人行横道的出口点或自行车道。
3.根据权利要求1所述的方法,其中所述2D热图包括未归一化的正态分布,并且其中所述2D热图包括固定标准偏差或自适应协方差之一。
4.根据权利要求1所述的方法,其中,对所述2D热图进行解码包括:执行峰值寻找算法以确定峰值概率像素,所述峰值概率像素对应于所述关键点。
5.根据权利要求1所述的方法,还包括:接收与所述车辆通过所述路口的建议的操控相对应的第三数据,其中所述一个或更多个操作包括至少部分地基于所述第三数据来选择所述一条或更多条建议的路径中的至少一个。
6.根据权利要求1所述的方法,还包括:使用所述神经网络计算第三数据,所述第三数据表示与对应于所述关键点的线段的方向性或对应于所述关键点的车道的航向方向中的一个或更多个相对应的一个或更多个向量场;以及至少部分地基于所述第三数据和所述关键点的所述像素位置,对所述一个或更多个向量场进行解码,以确定所述方向性或所述航向方向中的一个或更多个。
7.根据权利要求6所述的方法,其中所述生成一条或更多条建议的路径还至少部分地基于所述方向性或所述航向方向中的一个或更多个。
8.根据权利要求1所述的方法,还包括:使用所述神经网络计算表示与所述路口相关联的车道的宽度相对应的强度图的第三数据;以及至少部分地基于所述第三数据和所述关键点的所述像素位置,解码所述强度图以确定所述车道的所述宽度。
9.根据权利要求1所述的方法,其中所述一条或更多条建议的路径包括用于使所述车辆横穿所述路口的左转弯、右转弯和直路径中的至少一个。
10.根据权利要求1所述的方法,还包括:使用所述神经网络计算表示偏移向量场的第三数据,其中对所述2D热图进行解码还至少部分地基于所述偏移向量场。
11.根据权利要求1所述的方法,其中生成所述一条或更多条建议的路径包括:执行曲线拟合算法以确定从所述关键点中的第一关键点到所述关键点中的第二关键点的轨迹。
12.一种方法,包括:接收表示路口的图像数据;接收表示对应于所述路口内的线段的注释的第一数据以及对应于所述线段的分类的第二数据;至少部分地基于所述线段确定对应于所述线段的关键点的位置;将所述关键点编码到高斯热图;以及使用所述高斯热图和所述分类作为地面实况数据来训练神经网络。
13.根据权利要求12所述的方法,其中确定所述关键点的所述位置包括:识别对应于所述线段的纵向中心的像素。
14.根据权利要求13所述的方法,还包括:编码一个或更多个向量场,所述一个或更多个向量场对应于所述线段的方向性或对应于所述线段的车道的航向方向中的一个或更多个,其中训练所述神经网络进一步使用所述一个或更多个向量场。
15.根据权利要求12所述的方法,还包括:至少部分地通过以下方式对向量场进行编码:生成从所述神经网络的输出分辨率的像素到所述输出分辨率内的第一关键点位置的向量,所述第一关键点位置对应于所述神经网络的所述输入分辨率的第二关键点位置,其中所述第一关键点位置和所述第二关键点位置对应于所述线段的中心关键点、左边缘关键点或右边缘关键点中的至少一个,并且进一步地,其中训练所述神经网络进一步使用所述向量场。
16.根据权利要求12所述的方法,还包括:至少部分地基于所述线段的长度对强度图进行编码,所述长度对应于所述路口内的车道的宽度,进一步地,其中训练所述神经网络进一步使用所述强度图。
17.一种***,包括:图像传感器,用于生成图像数据,所述图像数据表示环境中所述图像传感器的视场的图像;计算设备,其包括一个或更多个处理设备和通信地耦合至所述一个或更多个处理设备的一个或更多个存储器设备,所述一个或更多个存储器设备上存储有编程指令,当所述编程指令由所述处理器执行时,使得以下实例化:向神经网络应用表示车辆的图像传感器的视场中的路口的图像的图像数据;输出生成器,用于使用神经网络并且至少部分地基于所述图像数据来计算第一数据,所述第一数据表示与对应于所述环境内的路口的关键点相关联的一个或更多个二维(2D)热图;解码器,用于对所述一个或更多个2D图进行解码,以确定所述图像内的所述关键点的像素位置以及与所述像素位置对应的语义标签;路径生成器,用于:对关键点对进行采样以确定可连接的各对;以及通过连接可连接的所述关键点对来生成一条或更多条建议的路径;以及控制组件,用于使用所述一条或更多条建议的路径由所述车辆执行一个或更多个操作。
18.根据权利要求17所述的***,其中所述2D热图包括未归一化的正态分布,并且其中所述2D热图包括固定标准偏差或自适应协方差之一。
19.根据权利要求17所述的***,其中对所述关键点对进行采样包括:分析与所述关键点对对应的航向方向或者与所述路口位于的区域对应的交通法规中的至少一个。
20.根据权利要求17所述的***,其中所述2D热图中的每个2D热图对应于单个语义标签,且至少部分地基于从中解码出所述关键点的所述2D热图来确定每个关键点的语义标签。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962839155P | 2019-04-26 | 2019-04-26 | |
US62/839,155 | 2019-04-26 | ||
PCT/US2020/028116 WO2020219303A1 (en) | 2019-04-26 | 2020-04-14 | Intersection pose detection in autonomous machine applications |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113785302A true CN113785302A (zh) | 2021-12-10 |
Family
ID=72916853
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080031631.3A Pending CN113785302A (zh) | 2019-04-26 | 2020-04-14 | 自主机器应用中的路口姿态检测 |
Country Status (5)
Country | Link |
---|---|
US (2) | US12013244B2 (zh) |
JP (1) | JP7472170B2 (zh) |
CN (1) | CN113785302A (zh) |
DE (1) | DE112020002126T5 (zh) |
WO (1) | WO2020219303A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116129279A (zh) * | 2023-04-14 | 2023-05-16 | 腾讯科技(深圳)有限公司 | 图像处理方法、装置、设备及介质 |
US20230260291A1 (en) * | 2022-02-16 | 2023-08-17 | GM Global Technology Operations LLC | Methods and systems for camera to ground alignment |
US20230260157A1 (en) * | 2022-02-16 | 2023-08-17 | GM Global Technology Operations LLC | Methods and systems for camera to ground alignment |
US12043269B2 (en) | 2022-02-16 | 2024-07-23 | GM Global Technology Operations LLC | Methods and systems for camera to ground alignment |
Families Citing this family (73)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB201410612D0 (en) * | 2014-06-13 | 2014-07-30 | Tomtom Int Bv | Methods and systems for generating route data |
WO2018176000A1 (en) | 2017-03-23 | 2018-09-27 | DeepScale, Inc. | Data synthesis for autonomous control systems |
US11893393B2 (en) | 2017-07-24 | 2024-02-06 | Tesla, Inc. | Computational array microprocessor system with hardware arbiter managing memory requests |
US10671349B2 (en) | 2017-07-24 | 2020-06-02 | Tesla, Inc. | Accelerated mathematical engine |
US11409692B2 (en) | 2017-07-24 | 2022-08-09 | Tesla, Inc. | Vector computational unit |
US11157441B2 (en) | 2017-07-24 | 2021-10-26 | Tesla, Inc. | Computational array microprocessor system using non-consecutive data formatting |
US10908614B2 (en) * | 2017-12-19 | 2021-02-02 | Here Global B.V. | Method and apparatus for providing unknown moving object detection |
US11561791B2 (en) | 2018-02-01 | 2023-01-24 | Tesla, Inc. | Vector computational unit receiving data elements in parallel from a last row of a computational array |
US11537139B2 (en) | 2018-03-15 | 2022-12-27 | Nvidia Corporation | Determining drivable free-space for autonomous vehicles |
US20210256353A1 (en) * | 2018-05-17 | 2021-08-19 | Tobii Ab | Autoencoding generative adversarial network for augmenting training data usable to train predictive models |
US11215999B2 (en) | 2018-06-20 | 2022-01-04 | Tesla, Inc. | Data pipeline and deep learning system for autonomous driving |
US11361457B2 (en) | 2018-07-20 | 2022-06-14 | Tesla, Inc. | Annotation cross-labeling for autonomous control systems |
US11636333B2 (en) | 2018-07-26 | 2023-04-25 | Tesla, Inc. | Optimizing neural network structures for embedded systems |
US11204605B1 (en) * | 2018-08-03 | 2021-12-21 | GM Global Technology Operations LLC | Autonomous vehicle controlled based upon a LIDAR data segmentation system |
US11562231B2 (en) | 2018-09-03 | 2023-01-24 | Tesla, Inc. | Neural networks for embedded devices |
CA3115784A1 (en) | 2018-10-11 | 2020-04-16 | Matthew John COOPER | Systems and methods for training machine models with augmented data |
US11196678B2 (en) | 2018-10-25 | 2021-12-07 | Tesla, Inc. | QOS manager for system on a chip communications |
US11816585B2 (en) | 2018-12-03 | 2023-11-14 | Tesla, Inc. | Machine learning models operating at different frequencies for autonomous vehicles |
US11537811B2 (en) | 2018-12-04 | 2022-12-27 | Tesla, Inc. | Enhanced object detection for autonomous vehicles based on field view |
US11610117B2 (en) | 2018-12-27 | 2023-03-21 | Tesla, Inc. | System and method for adapting a neural network model on a hardware platform |
US10997461B2 (en) | 2019-02-01 | 2021-05-04 | Tesla, Inc. | Generating ground truth for machine learning from time series elements |
US11150664B2 (en) | 2019-02-01 | 2021-10-19 | Tesla, Inc. | Predicting three-dimensional features for autonomous driving |
US11567514B2 (en) | 2019-02-11 | 2023-01-31 | Tesla, Inc. | Autonomous and user controlled vehicle summon to a target |
US10956755B2 (en) | 2019-02-19 | 2021-03-23 | Tesla, Inc. | Estimating object properties using visual image data |
CN113811886B (zh) | 2019-03-11 | 2024-03-19 | 辉达公司 | 自主机器应用中的路口检测和分类 |
JP2022535351A (ja) * | 2019-05-28 | 2022-08-08 | モービルアイ ビジョン テクノロジーズ リミテッド | 車両ナビゲーションのためのシステム及び方法 |
CN110689719B (zh) * | 2019-05-31 | 2021-01-19 | 北京嘀嘀无限科技发展有限公司 | 用于识别封闭路段的***和方法 |
US20200393253A1 (en) * | 2019-06-11 | 2020-12-17 | WeRide Corp. | Method for generating road map for autonomous vehicle navigation |
US11568100B2 (en) * | 2019-06-28 | 2023-01-31 | Zoox, Inc. | Synthetic scenario simulator based on events |
US11574089B2 (en) * | 2019-06-28 | 2023-02-07 | Zoox, Inc. | Synthetic scenario generator based on attributes |
US11403641B2 (en) * | 2019-06-28 | 2022-08-02 | Paypal, Inc. | Transactional probability analysis on radial time representation |
US11663913B2 (en) * | 2019-07-01 | 2023-05-30 | Baidu Usa Llc | Neural network with lane aggregation for lane selection prediction of moving objects during autonomous driving |
US20210048819A1 (en) * | 2019-08-14 | 2021-02-18 | Electronics And Telecommunications Research Institute | Apparatus and method for determining junction |
KR20210030147A (ko) * | 2019-09-09 | 2021-03-17 | 삼성전자주식회사 | 3d 렌더링 방법 및 장치 |
US11580081B1 (en) * | 2019-11-01 | 2023-02-14 | United Services Automobile Association (Usaa) | System and method for large scale anomaly detection |
JP2021077088A (ja) * | 2019-11-08 | 2021-05-20 | ソニー株式会社 | 情報処理装置、情報処理方法及び情報処理プログラム |
GB2591332B (en) * | 2019-12-19 | 2024-02-14 | Motional Ad Llc | Foreground extraction using surface fitting |
US11526721B1 (en) | 2020-02-21 | 2022-12-13 | Zoox, Inc. | Synthetic scenario generator using distance-biased confidences for sensor data |
US11429107B2 (en) | 2020-02-21 | 2022-08-30 | Argo AI, LLC | Play-forward planning and control system for an autonomous vehicle |
US11643105B2 (en) | 2020-02-21 | 2023-05-09 | Argo AI, LLC | Systems and methods for generating simulation scenario definitions for an autonomous vehicle system |
US11731639B2 (en) * | 2020-03-03 | 2023-08-22 | GM Global Technology Operations LLC | Method and apparatus for lane detection on a vehicle travel surface |
US11520342B2 (en) * | 2020-03-12 | 2022-12-06 | Pony Ai Inc. | System and method for determining realistic trajectories |
TWI741541B (zh) * | 2020-03-26 | 2021-10-01 | 華邦電子股份有限公司 | 影像分析系統及影像分析方法 |
US11027743B1 (en) * | 2020-03-31 | 2021-06-08 | Secondmind Limited | Efficient computational inference using gaussian processes |
US11875527B1 (en) * | 2020-04-13 | 2024-01-16 | Apple Inc. | Descriptor generation and point cloud fusion |
US11741728B2 (en) * | 2020-04-15 | 2023-08-29 | Toyota Research Institute, Inc. | Keypoint matching using graph convolutions |
TW202223834A (zh) * | 2020-08-28 | 2022-06-16 | 加拿大商光譜優化股份有限公司 | 神經嵌入之攝影機影像視訊處理管道及神經網路訓練系統 |
US11648959B2 (en) * | 2020-10-20 | 2023-05-16 | Argo AI, LLC | In-vehicle operation of simulation scenarios during autonomous vehicle runs |
CN112329601B (zh) * | 2020-11-02 | 2024-05-07 | 东软睿驰汽车技术(沈阳)有限公司 | 基于多任务网络的车位检测方法和装置 |
CN112348035B (zh) * | 2020-11-11 | 2024-05-24 | 东软睿驰汽车技术(沈阳)有限公司 | 车辆关键点检测方法、装置及电子设备 |
US11749000B2 (en) * | 2020-12-22 | 2023-09-05 | Waymo Llc | Stop location change detection |
EP4024321A1 (en) * | 2021-01-04 | 2022-07-06 | Aptiv Technologies Limited | Method and system for determining weights for an attention based method for trajectory prediction |
US11747164B2 (en) * | 2021-01-13 | 2023-09-05 | GM Global Technology Operations LLC | Methods for multi-dimensional lane matching for autonomous vehicle localization |
US11878695B2 (en) * | 2021-01-26 | 2024-01-23 | Motional Ad Llc | Surface guided vehicle behavior |
US20220258875A1 (en) * | 2021-02-15 | 2022-08-18 | The Boeing Company | Feature detection for automated air-to-air refueling (a3r) |
US12019449B2 (en) | 2021-02-18 | 2024-06-25 | Argo AI, LLC | Rare event simulation in autonomous vehicle motion planning |
CN115035488A (zh) * | 2021-02-23 | 2022-09-09 | 北京图森智途科技有限公司 | 一种车道线角点检测方法、装置、电子设备及存储介质 |
US20220274625A1 (en) * | 2021-02-26 | 2022-09-01 | Zoox, Inc. | Graph neural networks with vectorized object representations in autonomous vehicle systems |
US12026840B2 (en) * | 2021-05-21 | 2024-07-02 | Occipital, Inc. | System for generation of floor plans and three-dimensional models |
US20210309221A1 (en) * | 2021-06-15 | 2021-10-07 | Nauto, Inc. | Devices and methods for determining region of interest for object detection in camera images |
US20220402521A1 (en) * | 2021-06-16 | 2022-12-22 | Waymo Llc | Autonomous path generation with path optimization |
US11792644B2 (en) | 2021-06-21 | 2023-10-17 | Motional Ad Llc | Session key generation for autonomous vehicle operation |
JP2023021835A (ja) * | 2021-08-02 | 2023-02-14 | 株式会社デンソー | 車両制御装置 |
CN113720343B (zh) * | 2021-08-16 | 2024-07-02 | 中国科学院上海微***与信息技术研究所 | 基于动态数据实时适应的航向预测方法 |
CN113554355B (zh) * | 2021-09-17 | 2021-12-03 | 江苏正金建筑装饰工程有限公司 | 基于人工智能的道路工程施工管理方法与*** |
WO2023081904A1 (en) * | 2021-11-08 | 2023-05-11 | Continental Automotive Systems, Inc. | System and method for creating environmental model for intelligent intersection functions |
CN114049479A (zh) * | 2021-11-10 | 2022-02-15 | 苏州魔视智能科技有限公司 | 自监督的鱼眼相机图像特征点提取方法、装置及存储介质 |
CN114332792B (zh) * | 2021-12-09 | 2023-05-16 | 苏州驾驶宝智能科技有限公司 | 基于关键点多尺度融合的立体场景目标检测方法及*** |
US20230182772A1 (en) * | 2021-12-14 | 2023-06-15 | Zoox, Inc. | Autonomous vehicle operations related to detection of an unsafe passenger pickup/delivery condition |
US11922704B2 (en) | 2021-12-15 | 2024-03-05 | GM Global Technology Operations LLC | System and method for detecting road and lane connections at intersections |
GB2617866A (en) * | 2022-04-21 | 2023-10-25 | Continental Automotive Romania Srl | Computer implemented method for training a decision tree model for detecting an intersection, computer implemented method detecting an intersection, |
DE102022002499A1 (de) | 2022-07-08 | 2022-08-25 | Mercedes-Benz Group AG | Verfahren zur Verarbeitung von Bilddaten |
US20240071101A1 (en) * | 2022-08-23 | 2024-02-29 | Embark Trucks, Inc. | Method and system for topology detection |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016183074A1 (en) * | 2015-05-10 | 2016-11-17 | Mobileye Vision Technologies Ltd. | Road profile along a predicted path |
US20170316333A1 (en) * | 2015-11-04 | 2017-11-02 | Zoox, Inc. | Automated extraction of semantic information to enhance incremental mapping modifications for robotic vehicles |
US20180188041A1 (en) * | 2016-12-30 | 2018-07-05 | DeepMap Inc. | Detection of misalignment hotspots for high definition maps for navigating autonomous vehicles |
US20180211373A1 (en) * | 2017-01-20 | 2018-07-26 | Aquifi, Inc. | Systems and methods for defect detection |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2843079B2 (ja) * | 1989-12-22 | 1999-01-06 | 本田技研工業株式会社 | 走行路判別方法 |
DE102005045017A1 (de) * | 2005-09-21 | 2007-03-22 | Robert Bosch Gmbh | Verfahren und Fahrerassistenzsystem zur sensorbasierten Anfahrtsteuerung eines Kraftfahrzeugs |
US8699754B2 (en) * | 2008-04-24 | 2014-04-15 | GM Global Technology Operations LLC | Clear path detection through road modeling |
US8750567B2 (en) * | 2012-04-09 | 2014-06-10 | GM Global Technology Operations LLC | Road structure detection and tracking |
EP3734504A1 (en) * | 2015-02-10 | 2020-11-04 | Mobileye Vision Technologies Ltd. | Sparse map for autonomous vehicle navigation |
US10670416B2 (en) * | 2016-12-30 | 2020-06-02 | DeepMap Inc. | Traffic sign feature creation for high definition maps used for navigating autonomous vehicles |
JP6929953B2 (ja) | 2017-03-17 | 2021-09-01 | マジック リープ, インコーポレイテッドMagic Leap,Inc. | 部屋レイアウト推定方法および技法 |
US11067995B2 (en) * | 2017-03-20 | 2021-07-20 | Mobileye Vision Technologies Ltd. | Navigation by augmented path prediction |
US11334070B2 (en) * | 2017-08-10 | 2022-05-17 | Patroness, LLC | Systems and methods for predictions of state of objects for a motorized mobile system |
JP6917842B2 (ja) | 2017-09-19 | 2021-08-11 | 本田技研工業株式会社 | 周辺監視装置、周辺監視方法、およびプログラム |
JP6472504B1 (ja) | 2017-12-14 | 2019-02-20 | 株式会社 ディー・エヌ・エー | 情報処理装置、情報処理プログラム、及び、情報処理方法 |
US10885698B2 (en) | 2018-08-10 | 2021-01-05 | Nvidia Corporation | Method for programmable timeouts of tree traversal mechanisms in hardware |
JP7192610B2 (ja) * | 2018-08-28 | 2022-12-20 | 株式会社デンソー | 走行支援方法および走行支援装置 |
KR102675523B1 (ko) * | 2018-09-28 | 2024-06-14 | 삼성전자주식회사 | 차로를 결정하는 방법 및 장치 |
US11215997B2 (en) * | 2018-11-30 | 2022-01-04 | Zoox, Inc. | Probabilistic risk assessment for trajectory evaluation |
CN109253735B (zh) * | 2018-11-30 | 2021-11-30 | 奇瑞汽车股份有限公司 | 路径规划方法、装置及存储介质 |
-
2020
- 2020-04-14 DE DE112020002126.2T patent/DE112020002126T5/de active Pending
- 2020-04-14 US US16/848,102 patent/US12013244B2/en active Active
- 2020-04-14 CN CN202080031631.3A patent/CN113785302A/zh active Pending
- 2020-04-14 JP JP2021563202A patent/JP7472170B2/ja active Active
- 2020-04-14 WO PCT/US2020/028116 patent/WO2020219303A1/en active Application Filing
-
2024
- 2024-03-25 US US18/615,894 patent/US20240230339A1/en active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016183074A1 (en) * | 2015-05-10 | 2016-11-17 | Mobileye Vision Technologies Ltd. | Road profile along a predicted path |
US20170316333A1 (en) * | 2015-11-04 | 2017-11-02 | Zoox, Inc. | Automated extraction of semantic information to enhance incremental mapping modifications for robotic vehicles |
US20180188041A1 (en) * | 2016-12-30 | 2018-07-05 | DeepMap Inc. | Detection of misalignment hotspots for high definition maps for navigating autonomous vehicles |
US20180211373A1 (en) * | 2017-01-20 | 2018-07-26 | Aquifi, Inc. | Systems and methods for defect detection |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230260291A1 (en) * | 2022-02-16 | 2023-08-17 | GM Global Technology Operations LLC | Methods and systems for camera to ground alignment |
US20230260157A1 (en) * | 2022-02-16 | 2023-08-17 | GM Global Technology Operations LLC | Methods and systems for camera to ground alignment |
US12043269B2 (en) | 2022-02-16 | 2024-07-23 | GM Global Technology Operations LLC | Methods and systems for camera to ground alignment |
CN116129279A (zh) * | 2023-04-14 | 2023-05-16 | 腾讯科技(深圳)有限公司 | 图像处理方法、装置、设备及介质 |
CN116129279B (zh) * | 2023-04-14 | 2023-06-27 | 腾讯科技(深圳)有限公司 | 图像处理方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2020219303A1 (en) | 2020-10-29 |
US20240230339A1 (en) | 2024-07-11 |
JP7472170B2 (ja) | 2024-04-22 |
US20200341466A1 (en) | 2020-10-29 |
US12013244B2 (en) | 2024-06-18 |
DE112020002126T5 (de) | 2022-02-24 |
JP2022530091A (ja) | 2022-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7472170B2 (ja) | 自律マシン・アプリケーションにおける交差点姿勢検出 | |
CN113811886B (zh) | 自主机器应用中的路口检测和分类 | |
US11769052B2 (en) | Distance estimation to objects and free-space boundaries in autonomous machine applications | |
CN113168505B (zh) | 用于自主驾驶机器的基于回归的线检测 | |
US11532168B2 (en) | Multi-view deep neural network for LiDAR perception | |
US11675359B2 (en) | Path detection for autonomous machines using deep neural networks | |
US11885907B2 (en) | Deep neural network for detecting obstacle instances using radar sensors in autonomous machine applications | |
US11531088B2 (en) | Deep neural network for detecting obstacle instances using radar sensors in autonomous machine applications | |
EP3832341A1 (en) | Deep neural network for detecting obstacle instances using radar sensors in autonomous machine applications | |
CN114008685A (zh) | 用于自主机器应用的路口区域检测和分类 | |
CN114902295A (zh) | 用于自主驾驶应用的三维路口结构预测 | |
CN114450724A (zh) | 用于自主机器应用的多活动者环境中的未来轨迹预测 | |
CN113228042A (zh) | 自主机器应用中障碍物检测的距离 | |
CN113906271A (zh) | 用于自主机器应用的使用地图信息增强的地面实况数据的神经网络训练 | |
CN114631117A (zh) | 使用机器学习的用于自主机器应用的传感器融合 | |
CN112347829A (zh) | 利用障碍物和车道检测来确定环境中对象的车道分配 | |
CN113139642A (zh) | 在自主驾驶应用中使用神经网络执行故障检测 | |
CN112989914A (zh) | 具有自适应加权输入的注视确定机器学习*** | |
CN115136148A (zh) | 投影使用鱼眼镜头捕获的图像用于自主机器应用中的特征检测 | |
US20230049567A1 (en) | Deep neural network for detecting obstacle instances using radar sensors in autonomous machine applications | |
CN113609888A (zh) | 利用平面单应性和自监督的场景结构理解进行对象检测 | |
CN112970029A (zh) | 用于自主机器应用中传感器视盲检测的深度神经网络处理 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |