CN110402371B - 用于利用感测不确定性导航的***和方法 - Google Patents
用于利用感测不确定性导航的***和方法 Download PDFInfo
- Publication number
- CN110402371B CN110402371B CN201880014799.6A CN201880014799A CN110402371B CN 110402371 B CN110402371 B CN 110402371B CN 201880014799 A CN201880014799 A CN 201880014799A CN 110402371 B CN110402371 B CN 110402371B
- Authority
- CN
- China
- Prior art keywords
- host vehicle
- vehicle
- output
- navigation
- target object
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 127
- 230000001960 triggered effect Effects 0.000 claims abstract description 38
- 238000012545 processing Methods 0.000 claims description 296
- 230000009471 action Effects 0.000 claims description 221
- 230000004044 response Effects 0.000 claims description 123
- 239000003550 marker Substances 0.000 claims description 22
- 238000004458 analytical method Methods 0.000 description 76
- 230000001133 acceleration Effects 0.000 description 75
- 230000015654 memory Effects 0.000 description 71
- 230000006870 function Effects 0.000 description 64
- 238000010191 image analysis Methods 0.000 description 59
- 230000008569 process Effects 0.000 description 44
- 239000000872 buffer Substances 0.000 description 33
- 230000003334 potential effect Effects 0.000 description 33
- 238000004422 calculation algorithm Methods 0.000 description 31
- 238000013459 approach Methods 0.000 description 29
- 230000033001 locomotion Effects 0.000 description 29
- 230000008859 change Effects 0.000 description 21
- 238000013528 artificial neural network Methods 0.000 description 20
- 230000007774 longterm Effects 0.000 description 20
- 230000006399 behavior Effects 0.000 description 19
- 230000002787 reinforcement Effects 0.000 description 19
- 230000003287 optical effect Effects 0.000 description 16
- 238000012549 training Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 15
- 238000010801 machine learning Methods 0.000 description 15
- 238000003860 storage Methods 0.000 description 15
- 230000000007 visual effect Effects 0.000 description 15
- 238000005457 optimization Methods 0.000 description 14
- 230000008901 benefit Effects 0.000 description 13
- 230000002829 reductive effect Effects 0.000 description 13
- 238000001514 detection method Methods 0.000 description 11
- 238000005259 measurement Methods 0.000 description 11
- 239000013598 vector Substances 0.000 description 11
- 230000002708 enhancing effect Effects 0.000 description 10
- 238000013507 mapping Methods 0.000 description 10
- 230000004048 modification Effects 0.000 description 10
- 238000012986 modification Methods 0.000 description 10
- 230000002040 relaxant effect Effects 0.000 description 10
- 238000005096 rolling process Methods 0.000 description 9
- 238000005206 flow analysis Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 7
- 238000006073 displacement reaction Methods 0.000 description 7
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 7
- 230000007423 decrease Effects 0.000 description 6
- 238000003384 imaging method Methods 0.000 description 6
- 230000000306 recurrent effect Effects 0.000 description 6
- 230000003068 static effect Effects 0.000 description 6
- 230000003042 antagnostic effect Effects 0.000 description 5
- 230000001413 cellular effect Effects 0.000 description 5
- 230000002441 reversible effect Effects 0.000 description 5
- 230000001953 sensory effect Effects 0.000 description 5
- 230000003466 anti-cipated effect Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000009826 distribution Methods 0.000 description 4
- 230000009977 dual effect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000011156 evaluation Methods 0.000 description 4
- 238000002474 experimental method Methods 0.000 description 4
- 239000012634 fragment Substances 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000036961 partial effect Effects 0.000 description 4
- 239000002245 particle Substances 0.000 description 4
- 239000000725 suspension Substances 0.000 description 4
- 230000006978 adaptation Effects 0.000 description 3
- 230000003416 augmentation Effects 0.000 description 3
- 230000004888 barrier function Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000001965 increasing effect Effects 0.000 description 3
- 238000013178 mathematical model Methods 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 239000000047 product Substances 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 2
- 238000007792 addition Methods 0.000 description 2
- 239000000654 additive Substances 0.000 description 2
- 230000000996 additive effect Effects 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 2
- 238000001444 catalytic combustion detection Methods 0.000 description 2
- 238000010367 cloning Methods 0.000 description 2
- 230000036461 convulsion Effects 0.000 description 2
- 238000013499 data model Methods 0.000 description 2
- 238000003066 decision tree Methods 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 230000009474 immediate action Effects 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 239000000779 smoke Substances 0.000 description 2
- 230000001502 supplementing effect Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 1
- SLXKOJJOQWFEFD-UHFFFAOYSA-N 6-aminohexanoic acid Chemical compound NCCCCCC(O)=O SLXKOJJOQWFEFD-UHFFFAOYSA-N 0.000 description 1
- 241000251468 Actinopterygii Species 0.000 description 1
- 206010001488 Aggression Diseases 0.000 description 1
- 244000025254 Cannabis sativa Species 0.000 description 1
- 241000237858 Gastropoda Species 0.000 description 1
- 241000764238 Isis Species 0.000 description 1
- 241001465754 Metazoa Species 0.000 description 1
- 206010041349 Somnolence Diseases 0.000 description 1
- 240000001949 Taraxacum officinale Species 0.000 description 1
- 235000005187 Taraxacum officinale ssp. officinale Nutrition 0.000 description 1
- 208000027418 Wounds and injury Diseases 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 230000016571 aggressive behavior Effects 0.000 description 1
- 208000012761 aggressive behavior Diseases 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000003667 anti-reflective effect Effects 0.000 description 1
- 239000010426 asphalt Substances 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000007123 defense Effects 0.000 description 1
- 230000000881 depressing effect Effects 0.000 description 1
- 239000000428 dust Substances 0.000 description 1
- 230000005684 electric field Effects 0.000 description 1
- 230000001747 exhibiting effect Effects 0.000 description 1
- 230000004424 eye movement Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 239000003897 fog Substances 0.000 description 1
- 208000014674 injury Diseases 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000013011 mating Effects 0.000 description 1
- 230000000116 mitigating effect Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000000704 physical effect Effects 0.000 description 1
- 238000004451 qualitative analysis Methods 0.000 description 1
- 238000004445 quantitative analysis Methods 0.000 description 1
- 238000002310 reflectometry Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000009476 short term action Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000011410 subtraction method Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
- 238000001931 thermography Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Classifications
-
- 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
- G01C21/34—Route searching; Route guidance
- G01C21/36—Input/output arrangements for on-board computers
- G01C21/3602—Input other than that of destination using image analysis, e.g. detection of road signs, lanes, buildings, real preceding vehicles using a 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
- B60W60/00—Drive control systems specially adapted for autonomous road vehicles
- B60W60/001—Planning or execution of driving tasks
- B60W60/0027—Planning or execution of driving tasks using trajectory prediction for other traffic participants
- B60W60/00276—Planning or execution of driving tasks using trajectory prediction for other traffic participants for two or more other traffic participants
-
- 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/08—Active safety systems predicting or avoiding probable or impending collision or attempting to minimise its consequences
- B60W30/095—Predicting travel path or likelihood of collision
- B60W30/0956—Predicting travel path or likelihood of collision the prediction being responsive to traffic or environmental parameters
-
- 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/0027—Planning or execution of driving tasks using trajectory prediction for other traffic participants
- B60W60/00274—Planning or execution of driving tasks using trajectory prediction for other traffic participants considering possible movement changes
-
- 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
-
- 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/0257—Control of position or course in two dimensions specially adapted to land vehicles using a radar
-
- 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/0276—Control of position or course in two dimensions specially adapted to land vehicles using signals provided by a source external to the vehicle
- G05D1/0278—Control of position or course in two dimensions specially adapted to land vehicles using signals provided by a source external to the vehicle using satellite positioning signals, e.g. GPS
-
- 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
-
- 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/248—Arrangements for determining position or orientation using signals provided by artificial sources external to the vehicle, e.g. navigation beacons generated by satellites, e.g. GPS
-
- 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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/29—Graphical models, e.g. Bayesian networks
-
- 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/84—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using probabilistic graphical models from image or video features, e.g. Markov models or Bayesian 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
-
- 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
- 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/408—Radar; Laser, e.g. lidar
-
- 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
-
- 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
- B60W2554/00—Input parameters relating to objects
-
- 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
- B60W2554/00—Input parameters relating to objects
- B60W2554/20—Static objects
-
- 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
- B60W2554/00—Input parameters relating to objects
- B60W2554/40—Dynamic objects, e.g. animals, windblown objects
- B60W2554/402—Type
- B60W2554/4029—Pedestrians
-
- 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
- B60W2554/00—Input parameters relating to objects
- B60W2554/40—Dynamic objects, e.g. animals, windblown objects
- B60W2554/404—Characteristics
- B60W2554/4041—Position
-
- 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
- B60W2554/00—Input parameters relating to objects
- B60W2554/40—Dynamic objects, e.g. animals, windblown objects
- B60W2554/404—Characteristics
- B60W2554/4045—Intention, e.g. lane change or imminent movement
-
- 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
- B60W2554/00—Input parameters relating to objects
- B60W2554/60—Traversable objects, e.g. speed bumps or curbs
-
- 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
- B60W2554/00—Input parameters relating to objects
- B60W2554/80—Spatial relation or speed relative to objects
- B60W2554/802—Longitudinal distance
-
- 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
- B60W2554/00—Input parameters relating to objects
- B60W2554/80—Spatial relation or speed relative to objects
- B60W2554/804—Relative longitudinal speed
-
- 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
- B60W2556/00—Input parameters relating to data
- B60W2556/45—External transmission of data to or from the vehicle
- B60W2556/50—External transmission of data to or from the vehicle of positioning data, e.g. GPS [Global Positioning System] data
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Remote Sensing (AREA)
- Radar, Positioning & Navigation (AREA)
- Automation & Control Theory (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Aviation & Aerospace Engineering (AREA)
- Multimedia (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Mechanical Engineering (AREA)
- Transportation (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Health & Medical Sciences (AREA)
- Probability & Statistics with Applications (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Medical Informatics (AREA)
- Human Computer Interaction (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Electromagnetism (AREA)
- Traffic Control Systems (AREA)
- Navigation (AREA)
- Control Of Driving Devices And Active Controlling Of Vehicle (AREA)
- Instrument Panels (AREA)
Abstract
本公开涉及用于车辆的导航***。在一个实施方式中,这种导航***可以接收来自第一传感器的第一输出和来自第二传感器的第二输出;识别第一输出中的目标对象;确定目标对象是否被包括在第二输出中;并且确定与目标对象相关联的检测到的驾驶条件以及该条件是否触发导航约束。如果导航约束未被触发,则如果目标对象被包括在第一输出和第二输出两者中那么***可以引起第一导航调节,以及如果目标对象被包括在第一输出中而不被包括在第二输出中那么***可以放弃任何导航调节。如果导航约束被触发并且目标对象被包括在第一或第二输出中,则***可以引起第二导航调节。
Description
相关申请的交叉引用
本申请要求2017年3月1日提交的美国临时专利申请第62/465,301号的优先权权益。前述申请通过引用整体并入本文。
技术领域
本公开一般涉及自主车辆导航。此外,本公开涉及用于使用强化学习技术来进行导航的***和方法。
背景技术
随着技术的不断进步,能够在车行道上导航的完全自主车辆的目标即将出现。自主车辆可能需要考虑各种各样的因素,并且基于那些因素做出适当的决定,以安全和准确地到达期望的目的地。例如,自主车辆可能需要处理和解释视觉信息(例如,从相机捕捉的信息)、来自雷达或激光雷达的信息,并且也可能使用从其它源(例如,从GPS设备、速度传感器、加速度计、悬架传感器等)获得的信息。同时,为了导航到目的地,自主车辆还可能需要识别其在车行道内的地点(例如,在多车道道路内的特定车道)、与其它车辆并排地导航、避开障碍和行人、观察交通信号和标志、在适当的交叉口或交汇处从一条道路行驶到另一条道路、以及对车辆运行期间发生或进展的任何其它情况作出响应。
发明内容
与本公开一致的实施例提供了用于自主车辆导航的***和方法。所公开的实施例可以使用相机来提供自主车辆导航特征。例如,与所公开的实施例一致,所公开的***可以包括监视车辆的环境的一个、两个或更多个相机。所公开的***可以基于例如对由相机中的一个或多个捕捉的图像的分析来提供导航响应。导航响应还可以考虑其它数据,包括例如全球定位***(GPS)数据、传感器数据(例如,来自加速度计、速度传感器、悬架传感器等)、和/或其它地图数据。
在一个实施例中,用于主车辆的导航***可以包括至少一个处理设备,该至少一个处理设备被编程为从主车辆上车载的第一传感器接收第一输出,并从主车辆上车载的第二传感器接收第二输出。第一输出可以与主车辆的环境的第一部分相关联,第二输出可以与主车辆的环境的第二部分相关联。此外,第二部分可以至少部分地与第一部分重叠。该至少一个处理设备可以进一步被编程为识别第一输出中的目标对象的表示;确定该目标对象的表示是否被包括在第二输出中;以及基于第一输出或第二输出中的至少一个,确定与目标对象相关联的检测到的驾驶条件以及该检测到的驾驶条件是否触发至少一个导航约束。如果该至少一个导航约束未被检测到的驾驶条件触发,并且目标对象的表示被包括在第一输出和第二输出两者中,则该至少一个处理设备可以响应于该目标对象而引起对主车辆的一个或多个导航致动器的至少第一调节。此外,如果至少一个导航约束未被检测到的驾驶条件触发,并且目标对象的表示被包括在第一输出中,但是目标对象的表示不被包括在第二输出中,则该至少一个处理设备可以响应于目标对象而放弃(forego)对主车辆的一个或多个导航致动器的任何调节。另一方面,如果至少一个导航约束被检测到的驾驶条件触发,并且目标对象的表示被包括在第一输出或第二输出中,则该至少一个处理设备可以响应于目标对象而引起对主车辆的一个或多个导航致动器的至少第二调节,其中第二调节不同于第一调节。
在一个实施例中,用于主车辆的导航***可以包括至少一个处理设备,该至少一个处理设备被编程为从主车辆上车载的第一传感器接收第一输出,并从主车辆上车载的地图***接收第二输出。第一输出可以与主车辆的环境的第一部分相关联,第二输出可以与主车辆的环境的第二部分相关联。第二部分可以至少部分地与第一部分重叠。该至少一个处理设备可以进一步被配置为识别第一输出中的目标对象的表示;确定目标对象的表示是否被包括在第二输出中;以及基于第一输出或第二输出中的至少一个,确定与目标对象相关联的检测到的驾驶条件以及该检测到的驾驶条件是否触发至少一个导航约束。如果该至少一个导航约束未被检测到的驾驶条件触发,并且目标对象的表示被包括在第一输出和第二输出两者中,则该至少一个处理设备可以响应于目标对象而引起对主车辆的一个或多个导航致动器的至少第一调节。此外,如果至少一个导航约束未被检测到的驾驶条件触发,并且目标对象的表示被包括在第一输出中,但是目标对象的表示不被包括在第二输出中,则该至少一个处理设备可以响应于目标对象而放弃对主车辆的一个或多个导航致动器的任何调节。另一方面,如果至少一个导航约束被检测到的驾驶条件触发,并且目标对象的表示被包括在第一输出或第二输出中,则该至少一个处理设备可以响应于目标对象而引起对主车辆的一个或多个导航致动器的至少第二调节,其中第二调节不同于第一调节。
在一个实施例中,主车辆可以包括:第一传感器;第二传感器;和至少一个处理设备。该至少一个处理设备可以被编程为接收来自主车辆上车载的第一传感器的第一输出,并接收来自主车辆上车载的第二传感器的第二输出。第一输出可以与主车辆的环境的第一部分相关联,第二输出可以与主车辆的环境的第二部分相关联。此外,第二部分可以至少部分地与第一部分重叠。该至少一个处理设备可以进一步被编程为识别第一输出中的目标对象的表示;确定目标对象的表示是否被包括在第二输出中;以及基于第一输出或第二输出中的至少一个,确定与目标对象相关联的检测到的驾驶条件以及该检测到的驾驶条件是否触发至少一个导航约束。如果至少一个导航约束未被检测到的驾驶条件触发,并且目标对象的表示被包括在第一输出和第二输出两者中,则至少一个处理设备可以响应于目标对象而引起对主车辆的一个或多个导航致动器的至少第一调节。此外,如果至少一个导航约束未被检测到的驾驶条件触发,并且目标对象的表示被包括在第一输出中,但是目标对象的表示不被包括在第二输出中,则该至少一个处理设备可以响应于目标对象而放弃对主车辆的一个或多个导航致动器的任何调节。另一方面,如果该至少一个导航约束被检测到的驾驶条件触发,并且目标对象的表示被包括在第一输出或第二输出中,则该至少一个处理设备可以响应于目标对象而引起对主车辆的一个或多个导航致动器的至少第二调节,其中第二调节不同于第一调节。
在一个实施例中,用于导航主车辆的方法可以包括从主车辆上车载的第一传感器接收第一输出,并且从主车辆上车载的第二传感器接收第二输出。第一输出可以与主车辆的环境的第一部分相关联,第二输出可以与主车辆的环境的第二部分相关联。此外,第二部分可以至少部分地与第一部分重叠。该方法还可以包括识别第一输出中的目标对象的表示;确定该目标对象的表示是否被包括在第二输出中;以及基于第一输出或第二输出中的至少一个,确定与该目标对象相关联的检测到的驾驶条件以及该检测到的驾驶条件是否触发至少一个导航约束。该方法还可以包括:如果至少一个导航约束未被检测到的驾驶条件触发,并且目标对象的表示被包括在第一输出和第二输出两者中,则响应于目标对象,引起对主车辆的一个或多个导航致动器的至少第一调节;如果至少一个导航约束未被检测到的驾驶条件触发,并且目标对象的表示被包括在第一输出中,但是目标对象的表示不被包括在第二输出中,则响应于目标对象,放弃对主车辆的一个或多个导航致动器的任何调节;以及,如果至少一个导航约束被检测到的驾驶条件触发,并且目标对象的表示被包括在第一输出或第二输出中,则响应于目标对象,引起对主车辆的一个或多个导航致动器的至少第二调节,其中第二调节不同于第一调节。
与其它公开的实施例一致,非暂时性计算机可读存储介质可以存储程序指令,该程序指令由至少一个处理设备执行并执行本文描述的任何方法。
前面的一般描述和下面的详细描述仅仅是示例性和解释性的,而不是对权利要求的限制。
附图说明
并入本公开中并构成本公开的一部分的附图示出各种公开的实施例。在附图中:
图1是与所公开的实施例一致的示例性***的图示性表示。
图2A是包括与所公开的实施例一致的***的示例性车辆的图示性侧视图表示。
图2B是与所公开的实施例一致的图2A中所示的车辆和***的图示性顶视图表示。
图2C是包括与所公开的实施例一致的***的车辆的另一实施例的图示性顶视图表示。
图2D是包括与所公开的实施例一致的***的车辆的又一实施例的图示性顶视图表示。
图2E是包括与所公开的实施例一致的***的车辆的又一实施例的图示性顶视图表示。
图2F是与所公开的实施例一致的示例性车辆控制***的图示性表示。
图3A是与所公开的实施例一致的、包括后视镜和用于车辆成像***的用户界面的车辆的内部的图示性表示。
图3B是与所公开的实施例一致的、被配置为位于后视镜之后并抵靠车辆挡风玻璃的相机安装的示例的图示。
图3C是与所公开的实施例一致的图3B中所示的相机安装从不同的视角的图示。
图3D是与所公开的实施例一致的、被配置为位于后视镜之后并抵靠车辆挡风玻璃的相机安装的示例的图示。
图4是与所公开的实施例一致的、被配置为存储用于执行一个或多个操作的指令的存储器的示例性框图。
图5A是示出与所公开的实施例一致的、用于基于单目图像分析引起一个或多个导航响应的示例性处理的流程图。
图5B是示出与所公开的实施例一致的、用于在一组图像中检测一个或多个车辆和/或行人的示例性处理的流程图。
图5C是示出与所公开的实施例一致的、用于在一组图像中检测道路标记和/或车道几何结构信息的示例性处理的流程图。
图5D是示出与所公开的实施例一致的、用于在一组图像中检测交通灯的示例性处理的流程图。
图5E是示出与所公开的实施例一致的、用于基于车辆路径引起一个或多个导航响应的示例性处理的流程图。
图5F是示出与所公开的实施例一致的、用于确定前方车辆是否正在改变车道的示例性处理的流程图。
图6是示出与所公开的实施例一致的、用于基于立体图像分析引起一个或多个导航响应的示例性处理的流程图。
图7是示出与所公开的实施例一致的、用于基于三组图像的分析引起一个或多个导航响应的示例性处理的流程图。
图8是与所公开的实施例一致的、可由自主车辆的导航***的一个或多个专门编程的处理设备来实施的模块的框图表示。
图9是与所公开的实施例一致的导航选项图。
图10是与所公开的实施例一致的导航选项图。
图11A、图11B和图11C提供了与所公开的实施例一致的并道区(merge zone)中的主车辆的导航选项的示意表示。
图11D提供了双并道场景的图示性描述。
图11E提供了在双并道场景中潜在有用的选项图。
图12提供了与所公开的实施例一致的、捕捉了主车辆的环境的表示性图像以及潜在导航约束的图。
图13提供了与所公开的实施例一致的、用于导航车辆的算法流程图。
图14提供了与所公开的实施例一致的、用于导航车辆的算法流程图。
图15提供了与所公开的实施例一致的、用于导航车辆的算法流程图。
图16提供了与所公开的实施例一致的、用于导航车辆的算法流程图。
图17A和17B提供了与所公开的实施例一致的、导航进入环形道的主车辆的图示性图示。
图18提供了与所公开的实施例一致的、用于导航车辆的算法流程图。
图19是与所公开的实施例一致的、用于利用感测不确定性驾驶的示例性***的图示性表示。
图20是与所公开的实施例一致的、被配置为存储用于执行用于利用感测不确定性驾驶的一个或多个操作的指令的存储器的示例性框图。
图21A提供了车道标记作为目标对象的图示性描述。
图21B提供了到车道标记的距离作为检测到的驾驶条件的图示性描述。
图21C提供了其它车辆作为目标对象的图示性描述。
图21D提供了到其它车辆的距离作为检测到的驾驶条件的图示性描述。
图21E提供了车行道上的静止对象作为目标对象的图示性描述。
图21F提供了到车行道上的静止对象的距离作为检测到的驾驶条件的图示性描述。
图21G提供了行人作为目标对象的图示性描述。
图21H提供了到行人的距离作为检测到的驾驶条件的图示性描述。
图21I提供了与遮蔽区(occlusion zone)相关联的目标对象的图示性描述。
图21J提供了到遮蔽区的距离作为检测到的驾驶条件的图示性描述。
图22提供了与所公开的实施例一致的、用于利用感测不确定性导航车辆的算法流程图。
具体实施方式
接下来的详细描述参考附图。只要可能,在附图和接下来的描述中使用相同的参考编号来指代相同或相似的部分。尽管本文描述了若干示例性实施例,但是修改、适应和其它实施方式是可能的。例如,可以对附图中示出的组件做出替换、添加或修改,并且可以通过对所公开的方法进行步骤的替换、重新排序、移除或添加,来对本文描述的示例性方法进行修改。因此,接下来的详细描述不限于所公开的实施例和示例。而是,适当的范围由所附权利要求限定。
自主车辆概览
如贯穿本公开所使用的,术语“自主车辆”是指在没有驾驶员输入的情况下能够实现至少一个导航改变的车辆。“导航改变”是指车辆的转向、制动、或加速/减速中的一个或多个。为了自主,车辆不需要是完全自动的(例如,在没有驾驶员或没有驾驶员输入的情况下完全可操作的)。而是,自主车辆包括能够在某些时间段期间在驾驶员的控制下操作且能够在其它时间段期间没有驾驶员控制而操作的那些车辆。自主车辆还可以包括仅控制车辆导航的某些方面(诸如转向(例如,在车辆车道约束之间维持车辆路线)或在某些情况下(但并非在所有情况下)的某些转向操作)但可以将其它方面交给驾驶员(例如,制动或在某些情况下的制动)的车辆。在一些情况下,自主车辆可以处理车辆的制动、速度控制和/或转向的某些或所有方面。
由于人类驾驶员通常依赖于视觉线索和观察以便控制车辆,因此而建立了交通基础设施,其带有被设计为向驾驶员提供视觉信息的车道标记、交通标志和交通灯。鉴于交通基础设施的这些设计特性,自主车辆可以包括相机以及分析从车辆的环境捕捉的视觉信息的处理单元。视觉信息可以包括,例如表示可由驾驶员观察到的交通基础设施的组件(例如,车道标记、交通标志、交通灯等)以及其它障碍物(例如,其它车辆、行人、碎片等)的图像。此外,自主车辆还可以使用存储的信息,诸如在导航时提供车辆环境的模型的信息。例如,车辆可以使用GPS数据、传感器数据(例如,来自加速度计、速度传感器、悬架传感器等)和/或其它地图数据,以在车辆正在行驶的同时提供与其环境有关的信息,并且该车辆(以及其它车辆)可以使用该信息在模型上对其自身定位。一些车辆也能够在它们之间进行通信、共享信息、更改对等车辆的危险或车辆周围的改变等。
***概览
图1是与所公开的示例性实施例一致的***100的框图表示。取决于特定实施方式的要求,***100可以包括各种组件。在一些实施例中,***100可以包括处理单元110、图像获取单元120、位置传感器130、一个或多个存储器单元140、150、地图数据库160、用户界面170和无线收发器172。处理单元110可以包括一个或多个处理设备。在一些实施例中,处理单元110可以包括应用处理器180、图像处理器190或任何其它合适的处理设备。类似地,取决于特定应用的要求,图像获取单元120可以包括任意数量的图像获取设备和组件。在一些实施例中,图像获取单元120可以包括一个或多个图像捕捉设备(例如,相机、CCD或任意其它类型的图像传感器),诸如图像捕捉设备122、图像捕捉设备124和图像捕捉设备126。***100还可以包括将处理单元110通信地连接到图像获取单元120的数据接口128。例如,数据接口128可以包括用于将由图像获取单元120获取的图像数据传输到处理单元110的任何有线和/或无线的一个或多个链路。
无线收发器172可以包括被配置为通过使用射频、红外频率、磁场、或电场来交换通过空中接口到一个或多个网络(例如,蜂窝、互联网等)的传输的一个或多个设备。无线收发器172可以使用任何已知的标准来发送和/或接收数据(例如,Wi-Fi、蓝牙智能、802.15.4、ZigBee等)。这样的传输可以包括从主车辆到一个或多个远程定位的服务器的通信。这样的传输还可以包括主车辆与在主车辆的环境中的一个或多个目标车辆之间的(单向或双向的)通信(例如,为了考虑到在主车辆的环境中的目标车辆或与目标车辆一起而促进主车辆的导航的协作),或者甚至向发送车辆附近的未指定的接收者的广播传输。
应用处理器180和图像处理器190两者可以包括各种类型的基于硬件的处理设备。例如,应用处理器180和图像处理器190中的任一者或两者可以包括微处理器、预处理器(诸如图像预处理器)、图形处理器、中央处理单元(CPU)、辅助电路、数字信号处理器、集成电路、存储器或适于运行应用和适于图像处理和分析的任何其它类型的设备。在一些实施例中,应用处理器180和/或图像处理器190可以包括任何类型的单核或多核处理器、移动设备微控制器、中央处理单元等。可以使用各种处理设备,包括例如可从诸如等制造商获得的处理器,并且可以包括各种架构(例如,x86处理器、/>等)。
在一些实施例中,应用处理器180和/或图像处理器190可以包括可从获得的任何EyeQ系列处理器芯片。这些处理器设计每个包括带有本地存储器和指令集的多个处理单元。这样的处理器可以包括用于从多个图像传感器接收图像数据的视频输入,并且还可以包括视频输出能力。在一个示例中,/>使用在332兆赫兹下操作的90纳米-微米技术。/>架构由两个浮点式超线程32位RISC CPU(/>核)、五个视觉计算引擎(VCE)、三个矢量微代码处理器/>丹那利(Denali)64位移动DDR控制器、128位内部声能互连(Sonics Interconnect)、双16位视频输入和18位视频输出控制器、16通道DMA和若干***设备构成。MIPS34K CPU管理这五个VCE、三个VMPTM和DMA、第二MIPS34K CPU和多通道DMA以及其它***设备。这五个VCE、三个/>和MIPS34K CPU可以执行多功能捆绑应用所需要的密集视觉计算。在另一示例中,作为第三代处理器并且比强六倍的/>可以在所公开的实施例中使用。在其它示例中,可以在所公开的实施例中使用/>和/或/>当然,任何更加新的或未来的EyeQ处理设备也可以与所公开的实施例一起使用。
任何本文所公开的处理设备可以被配置为执行某些功能。配置处理设备(诸如任何所描述的EyeQ处理器或其它控制器或微处理器)以执行某些功能可以包括对计算机可执行指令的编程,并使处理设备在其操作期间可获得这些指令以用于执行。在一些实施例中,配置处理设备可以包括直接利用架构指令对处理设备编程。在其它实施例中,配置处理设备可以包括将可执行指令存储在在操作期间处理设备可访问的存储器上。例如,处理设备在操作期间可以访问该存储器以获得并执行存储的指令。在任一情况下,被配置为执行本文公开的感测、图像分析和/或导航功能的处理设备表示控制主车辆的多个基于硬件的组件的专用的基于硬件的***。
尽管图1描绘了被包括在处理单元110中的两个单独的处理设备,但是可以使用更多或更少的处理设备。例如,在一些实施例中,可以使用单个处理设备完成应用处理器180和图像处理器190的任务。在其它实施例中,这些任务可以由两个以上的处理设备执行。另外,在一些实施例中,***100可以包括一个或多个处理单元110,而不包括诸如图像获取单元120的其它组件。
处理单元110可以包括各种类型的设备。例如,处理单元110可以包括各种设备,诸如控制器、图像预处理器、中央处理单元(CPU)、辅助电路、数字信号处理器、集成电路、存储器或任何其它类型的用于图像处理和分析的设备。图像预处理器可以包括用于捕捉、数字化和处理来自图像传感器的影像的视频处理器。CPU可以包括任何数量的微控制器或微处理器。辅助电路可以是任何数量的本领域公知的电路,包括高速缓存、电源、时钟和输入输出电路。存储器可以存储软件,该软件在由处理器执行时控制***的操作。存储器可以包括数据库和图像处理软件。存储器可以包括任何数量的随机存取存储器、只读存储器、闪速存储器、磁盘驱动器、光存储、磁带存储、可移动存储和其它类型的存储。在一个实例中,存储器可以与处理单元110分离。在另一实例中,存储器可以被集成到处理单元110中。
每个存储器140、150可以包括软件指令,该软件指令在由处理器(例如,应用处理器180和/或图像处理器190)执行时可以控制***100的各个方面的操作。例如,这些存储器单元可以包括各种数据库和图像处理软件,以及经训练的***,诸如神经网络和深度神经网络。存储器单元可以包括随机存取存储器、只读存储器、闪速存储器、磁盘驱动器、光存储、磁带存储、可移动存储和/或任何其它类型的存储。在一些实施例中,存储器单元140、150可以与应用处理器180和/或图像处理器190分离。在其它实施例中,这些存储器单元可以被集成到应用处理器180和/或图像处理器190中。
位置传感器130可以包括适用于确定与***100的至少一个组件相关联的位置的任何类型的设备。在一些实施例中,位置传感器130可以包括GPS接收器。这种接收器可以通过处理由全球定位***卫星广播的信号来确定用户位置和速度。可以使得来自位置传感器130的位置信息对于应用处理器180和/或图像处理器190可用。
在一些实施例中,***100可以包括诸如用于测量车辆200的速度的速度传感器(例如,速度计)的组件。***100还可以包括用于测量车辆200沿一个或多个轴的加速度的一个或多个加速度计(单轴或多轴的)。
存储器单元140、150可以包括数据库,或指示已知地标的位置的以任何其它形式组织的数据。环境的传感信息(诸如来自激光雷达或两个或更多个图像的立体处理的图像、雷达信号、深度信息)可以与诸如GPS坐标、车辆的自我运动等的位置信息一起处理,以确定车辆相对于已知地标的当前位置,并且细化车辆位置。这种技术的某些方面被包括在由本申请的受让人销售的称为REMTM的定位技术中。
用户界面170可以包括适用于向***100的一个或多个用户提供信息或从***100的一个或多个用户接收输入的任何设备。在一些实施例中,用户界面170可以包括用户输入设备,包括例如触摸屏、麦克风、键盘、指针设备、跟踪转轮、相机、旋钮、按钮等。利用这样的输入设备,用户能够通过键入指令或信息、提供语音命令、使用按钮、指针或眼睛跟踪能力在屏幕上选择菜单选项、或通过任何其它适用于向***100传送信息的技术来向***100提供信息输入或命令。
用户界面170可以配备有一个或多个处理设备,其被配置为向用户提供信息和从用户接收信息,并处理该信息以由例如应用处理器180使用。在一些实施例中,这样的处理设备可以执行指令以辨识和跟踪眼睛运动、接收和解释语音命令、辨识和解释在触摸屏上做出的触摸和/或手势、响应于键盘输入或菜单选择等。在一些实施例中,用户界面170可以包括显示器、扬声器、触觉设备和/或任何其它用于向用户提供输出信息的设备。
地图数据库160可以包括用于存储对***100有用的地图数据的任何类型的数据库。在一些实施例中,地图数据库160可以包括与各种项目在参考坐标***中的位置有关的数据,该各种项目包括道路、水特征、地理特征、商业区、兴趣点、餐馆、加油站等。地图数据库160不仅可以存储这些项目的位置,而且可以存储与这些项目有关的描述符,包括例如与任何存储的特征相关联的名称。在一些实施例中,地图数据库160可以与***100的其它部件在物理上位于一起。替代或附加地,地图数据库160或其一部分可以相对于***100的其它组件(例如,处理单元110)远程定位。在这种实施例中,来自地图数据库160的信息可以通过与网络的有线或无线数据连接(例如,通过蜂窝网络和/或互联网等)而被下载。在一些情况下,地图数据库160可以存储稀疏数据模型,该稀疏数据模型包括某些道路特征(例如,车道标记)的多项式表示或主车辆的目标轨迹。地图数据库160还可以包括各种辨识出的地标的存储的表示,该表示可用于确定或更新主车辆相对于目标轨迹的已知位置。地标表示可以包括数据字段,诸如地标类型、地标位置以及其它潜在标识符。
图像捕捉设备122、124和126每个可以包括适用于从环境捕捉至少一个图像的任何类型的设备。此外,可以使用任何数量的图像捕捉设备来获取用于输入到图像处理器的图像。一些实施例可以仅包括单个图像捕捉设备,而其它实施例可以包括两个、三个、或甚至四个或更多个图像捕捉设备。以下将参考图2B至图2E进一步描述图像捕捉设备122、124和126。
一个或多个相机(例如,图像捕捉设备122、124和126)可以是被包括在车辆上的感测块的一部分。感测块中可以包括各种其它传感器,并且可以依靠这些传感器中的任何或全部,以产生车辆的感测的导航状态。除了相机(前方、侧方、后方等)之外,诸如雷达、激光雷达和声学传感器的其它传感器可被包括在感测块中。另外,感测块可以包括一个或多个组件,该一个或多个组件被配置为传送和发送/接收与车辆的环境有关的信息。例如,这种组件可以包括无线收发器(RF等),其可以从相对于主车辆远程定位的源接收基于传感器的信息或与主车辆的环境有关的任何其它类型的信息。这些信息可以包括从主车辆以外的车辆***接收的传感器输出信息或相关信息。在一些实施例中,这些信息可以包括从远程计算设备、中央服务器等接收的信息。此外,相机可以采用许多不同的配置:单个相机单元、多个相机、相机群、长FOV、短FOV、广角、鱼眼等。
***100或其各种组件可以被合并到各种不同的平台中。在一些实施例中,***100可以被包括在车辆200上,如图2A所示。例如,车辆200可以配备有如上关于图1描述的***100的处理单元110和任何其它组件。在一些实施例中,车辆200可以仅配备有单个图像捕捉设备(例如,相机),而在其它实施例中,诸如结合图2B至图2E所讨论的那些实施例,可以使用多个图像捕捉设备。例如,图2A中所示的车辆200的图像捕捉设备122和124中的任一个可以是ADAS(高级驾驶员辅助***)成像集的一部分。
作为图像获取单元120的一部分的、被包括在车辆200上的图像捕捉设备可以被置于任何合适的位置。在一些实施例中,如图2A至图2E以及图3A至图3C中所示,图像捕捉设备122可以位于后视镜的附近。此位置可以提供与车辆200的驾驶员的视线相似的视线,这可以辅助确定对驾驶员而言什么是可见和不可见的。图像捕捉设备122可以被置于靠近后视镜的任何位置,而将图像捕捉设备122放置在镜子的驾驶员侧还可以辅助获得表示驾驶员的视场和/或视线的图像。
还可以使用图像获取单元120的图像捕捉设备的其它位置。例如,图像捕捉设备124可以位于车辆200的保险杠上或保险杠中。这种位置尤其可以适用于具有宽视场的图像捕捉设备。位于保险杠的图像捕捉设备的视线可以与驾驶员的视线不同,并且因此,保险杠图像捕捉设备和驾驶员可以不总是看到相同的对象。图像捕捉设备(例如,图像捕捉设备122、124和126)还可以位于其它位置中。例如,图像捕捉设备可以位于车辆200的侧视镜中的一者或两者之上或之中、车辆200的车顶上、车辆200的引擎盖上、车辆200的后备箱上、车辆200的侧面上、安装在车辆200的任何车窗上、置于车辆200的任何车窗的后面、或置于任何车窗的前面、以及安装在车辆200的前部和/或后部上的照明设备中或附近。
除了图像捕捉设备,车辆200还可以包括***100的各种其它组件。例如,处理单元110可以被包括在车辆200上,与车辆的引擎控制单元(ECU)集成或分离。车辆200还可以配备有诸如GPS接收器的位置传感器130,并且还可以包括地图数据库160以及存储器单元140和150。
如之前讨论的,无线收发器172可以通过一个或多个网络(例如,蜂窝网络、互联网等)和/或接收数据。例如,无线收发器172可以将***100收集的数据上传到一个或多个服务器,并且从一个或多个服务器下载数据。经由无线收发器172,***100可以接收例如对存储在地图数据库160、存储器140和/或存储器150中存储的数据的周期性更新或按需求更新。类似地,无线收发器172可以将来自***100的任何数据(例如,由图像获取单元120捕捉的图像、由位置传感器130或其它传感器、车辆控制***接收的数据等)和/或由处理单元110处理的任何数据上传到一个或多个服务器。
***100可以基于隐私等级设置将数据上传到服务器(例如,上传到云)。例如,***100可以实施隐私等级设置,以规定或限制可以唯一地识别车辆和/或车辆的驾驶员/所有者的发送到服务器的数据(包括元数据)的类型。这些设置可以由用户经由例如无线收发器172来设置、可以由出厂默认设置或由无线收发器172接收的数据来初始化。
在一些实施例中,***100可以根据“高”隐私等级上传数据,并且在设定了设置的情况下,***100可以传输数据(例如,与路线有关的位置信息、捕捉的图像等),而不带有任何关于特定车辆和/或驾驶员/所有者的细节。例如,当根据“高”隐私设置来上传数据时,***100可以不包括车辆识别编号(VIN)或车辆的驾驶员或所有者的名字,并且可以代替地传输数据,诸如捕捉的图像和/或与路线有关的受限的位置信息。
也可以考虑其它隐私等级。例如,***100可以根据“中间”隐私等级向服务器传输数据,并且可以包括不被包括在“高”隐私等级下的附加信息,诸如车辆的型号和/或模型和/或车辆类型(例如载客车辆、运动型多用途车辆、卡车等)。在一些实施例中,***100可以根据“低”隐私等级上传数据。在“低”隐私等级设置下,***100可以上传数据,并且包括足以唯一地识别特定车辆、所有者/驾驶员和/或车辆行驶的路线的部分或全部的信息。例如,这些“低”隐私等级数据可以包括以下中的一个或多个:VIN、驾驶员/所有者姓名、出发之前车辆的源点、车辆的期望目的地、车辆的型号和/或模型、车辆类型等。
图2A是与所公开的实施例一致的、示例车辆成像***的图示性侧视图表示。图2B是图2A中所示的实施例的图示性顶视图例示。如图2B所示,所公开的实施例可以包括车辆200,该车辆200在其车体中包括***100,该***100带有位于车辆200的后视镜附近和/或靠近驾驶员的第一图像捕捉设备122、位于车辆200的保险杠区域(例如,保险杠区域210中的一个)之上或之中的第二图像捕捉设备124、以及处理单元110。
如图2C所示,图像捕捉设备122和124两者可以都位于车辆200的后视镜附近和/或靠近驾驶员。此外,尽管图2B和图2C示出了两个图像捕捉设备122和124,应理解的是,其它实施例可以包括两个以上的图像捕捉设备。例如,在图2D和图2E中所示的实施例中,第一图像捕捉设备122、第二图像捕捉设备124和第三图像捕捉设备126被包括在车辆200的***100中。
如图2D所示,图像捕捉设备122可以位于车辆200的后视镜附近和/或靠近车辆200的驾驶员,并且图像捕捉设备124和126可以位于车辆200的保险杠区域(例如,保险杠区域210中的一个)之上或之中。并且如图2E所示,图像捕捉设备122、124和126可以位于车辆200的后视镜附近和/或靠近车辆200的驾驶席。所公开的实施例不限于图像捕捉设备的任何特定数量和配置,并且图像捕捉设备可以位于车辆200内或车辆200上的任何合适的位置中。
应理解的是,所公开的实施例不限于车辆,并且可以被应用在其它情景中。还应理解,所公开的实施例不限于特定类型的车辆200,并且可以适用于所有类型的车辆,包括汽车、卡车、拖车和其它类型的车辆。
第一图像捕捉设备122可以包括任何合适类型的图像捕捉设备。图像捕捉设备122可以包括光轴。在一个实例中,图像捕捉设备122可以包括带有全局快门的Aptina M9V024WVGA传感器。在其它实施例中,图像捕捉设备122可以提供1280×960像素的分辨率,并且可以包括滚动快门。图像捕捉设备122可以包括各种光学元件。在一些实施例中,可以包括一个或多个镜头,例如以为图像捕捉设备提供期望的焦距和视场。在一些实施例中,图像捕捉设备122可以与6毫米镜头或12毫米镜头相关联。在一些实施例中,如图2D所示,图像捕捉设备122可以配置为捕捉具有期望的视场(FOV)202的图像。例如,图像捕捉设备122可以配置为具有常规FOV,诸如在40度到56度的范围内,包括46度FOV、50度FOV、52度FOV或更大的FOV。可替代地,图像捕捉设备122可以配置为具有在23至40度的范围内的窄FOV,诸如28度FOV或36度FOV。此外,图像捕捉设备122可以配置为具有在100至180度的范围内的宽FOV。在一些实施例中,图像捕捉设备122可以包括广角保险杠相机或者带有高达180度的FOV的相机。在一些实施例中,图像捕捉设备122可以是带有大约2:1的高宽比(例如,H×V=3800×1900像素)、带有大约100度水平FOV的7.2M(百万)像素图像捕捉设备。这种图像捕捉设备可以被用来替代三图像捕捉设备配置。由于显著的镜头失真,在图像捕捉设备使用径向对称镜头的实施方式中,这种图像捕捉设备的垂直FOV可以显著地小于50度。例如,这种镜头可以不是径向对称的,这将允许在100度水平FOV情况下垂直FOV大于50度。
第一图像捕捉设备122可以获取关于与车辆200相关联的场景的多个第一图像。多个第一图像中的每一个可以作为一系列的图像扫描线而被获取,其可使用滚动快门来捕捉。每个扫描线可以包括多个像素。
第一图像捕捉设备122可以具有与第一系列图像扫描线中的每一个的获取相关联的扫描速率。扫描速率可以指图像传感器可以以其获取与被包括在特定扫描线中的每个像素相关联的图像数据的速率。
图像捕捉设备122、124和126可以包含任何合适的类型和数量的图像传感器,例如,包括CCD传感器或CMOS传感器等。在一个实施例中,可以采用CMOS图像传感器以及滚动快门,以使得一行中的每个像素一次被读取一个,并且各行的扫描在逐行的基础上继续进行,直到已经捕捉了整个图像帧。在一些实施例中,可以相对于帧从顶部到底部顺序地捕捉各行。
在一些实施例中,本文公开的图像捕捉设备(例如,图像捕捉设备122、124和126)中的一个或多个可以构成高分辨率成像器,并且可以具有大于5M像素、7M像素、10M像素或更大像素的分辨率。
滚动快门的使用可能导致不同行中的像素在不同的时间被曝光和捕捉,这可能引起所捕捉的图像帧中的扭曲和其它图像伪像。另一方面,当图像捕捉设备122配置为利用全局或同步快门操作时,所有像素可以以相同的时间量并且在共同的曝光时段期间被曝光。其结果是,在从采用全局快门的***收集的帧中的图像数据表示在一特定时间的整个FOV(诸如FOV 202)的快照。与之相比,在滚动快门应用中,在不同的时间,帧中的每行被曝光并且数据被捕捉。因此,在具有滚动快门的图像捕捉设备中,移动对象可能看起来失真。将在下面更详细地描述这种现象。
第二图像捕捉设备124和第三图像捕捉设备126可以是任何类型的图像捕捉设备。类似于第一图像捕捉设备122,图像捕捉设备124和126中的每一个可以包括光轴。在一个实施例中,图像捕捉设备124和126中的每一个可以包括带有全局快门的Aptina M9V024 WVGA传感器。可替代地,图像捕捉设备124和126中的每一个可以包括滚动快门。类似于图像捕捉设备122,图像捕捉设备124和126可以配置为包括各种镜头和光学元件。在一些实施例中,与图像捕捉设备124和126相关联的镜头可以提供FOV(诸如FOV 204和206),其等于或窄于与图像捕捉设备122相关联的FOV(诸如FOV 202)。例如,图像捕捉设备124和126可以具有40度、30度、26度、23度、20度或更小的FOV。
图像捕捉设备124和126可以获取关于与车辆200相关联的场景的多个第二图像和第三图像。该多个第二图像和第三图像中的每一个可以作为第二系列图像扫描线和第三系列图像扫描线而被获取,这可以使用滚动快门来捕捉。每个扫描线或行可以具有多个像素。图像捕捉设备124和126可以具有与被包括在第二系列和第三系列中的每个图像扫描线的获取相关联的第二扫描速率和第三扫描速率。
每个图像捕捉设备122、124和126可以放置在相对于车辆200的任何合适的位置和方位处。可以选择图像捕捉设备122、124和126的相对位置以帮助将从图像捕捉设备获取的信息融合在一起。例如,在一些实施例中,与图像捕捉设备124相关联的FOV(诸如FOV 204)可能部分地或完全地重叠于与图像捕捉设备122相关联的FOV(诸如FOV 202)以及与图像捕捉设备126相关联的FOV(诸如FOV 206)。
图像捕捉设备122、124和126可以位于车辆200上的任何合适的相对高度处。在一个实例中,在图像捕捉设备122、124和126之间可以存在高度差,其可以提供足够的视差信息以使能立体分析。例如,如图2A所示,两个图像捕捉设备122和124在不同的高度处。例如,在图像捕捉设备122、124和126之间还可以存在横向位移差,为处理单元110的立体分析给出了附加的视差信息。如图2C和图2D所示,横向位移的差异可以通过dx表示。在一些实施例中,图像捕捉设备122、124和126之间可能存在前向或后向位移(例如,范围位移)。例如,图像捕捉设备122可以位于图像捕捉设备124和/或图像捕捉设备126之后0.5到2米或以上。这种类型的位移可以使得图像捕捉设备之一能够覆盖其它(一个或多个)图像捕捉设备的潜在盲点。
图像捕捉设备122可以具有任何合适的分辨率能力(例如,与图像传感器相关联的像素的数量),并且与图像捕捉设备122相关联的(一个或多个)图像传感器的分辨率可以比与图像捕捉设备124和126相关联的(一个或多个)图像传感器的分辨率更高、更低、或者与之相同。在一些实施例中,与图像捕捉设备122和/或图像捕捉设备124和126相关联的(一个或多个)图像传感器可以具有640×480、1024×768、1280×960的分辨率,或任何其它合适的分辨率。
帧速率(例如,图像捕捉设备以其获取一个图像帧的一组像素数据然后继续捕捉与下一个图像帧相关联的像素数据的速率)可以是可控的。与图像捕捉设备122相关联的帧速率可以比与图像捕捉设备124和126相关联的帧速率更高、更低或与之相同。与图像捕捉设备122、124和126相关联的帧速率可以取决于可能影响帧速率的定时的各种因素。例如,图像捕捉设备122、124和126中的一个或多个可以包括可选择的像素延迟时段,其在与图像捕捉设备122、124和/或126中的图像传感器的一个或多个像素相关联的图像数据的获取之前或之后施加。通常,可以根据用于该设备的时钟速率来获取对应于每个像素的图像数据(例如,每个时钟周期一个像素)。另外,在包括滚动快门的实施例中,图像捕捉设备122、124和126中的一个或多个可以包括可选择的水平消隐时段,其在与图像捕捉设备122、124和/或126中的图像传感器的一行像素相关联的图像数据的获取之前或之后施加。此外,图像捕捉设备122、124和/或126中的一个或多个可以包括可选择的垂直消隐时段,其在与图像捕捉设备122、124和126的图像帧相关联的图像数据的获取之前或之后施加。
这些定时控制可以使能与图像捕捉设备122、124和126相关联的帧速率的同步,即便每个的线扫描速率不同。此外,如将在下面更详细地讨论的,这些可选择的定时控制以及其它因素(例如,图像传感器分辨率、最大线扫描速率等)可以使能从图像捕捉设备122的FOV与图像捕捉设备124和126的一个或多个FOV重叠的区域的图像捕捉的同步,即便图像捕捉设备122的视场不同于图像捕捉设备124和126的FOV。
图像捕捉设备122、124和126中的帧速率定时可以取决于相关联的图像传感器的分辨率。例如,假定对于两个设备,线扫描速率类似,如果一个设备包括具有640×480的分辨率的图像传感器,并且另一设备包括带有1280×960的分辨率的图像传感器,则将需要更多的时间来从具有更高分辨率的传感器获取一帧图像数据。
可能影响图像捕捉设备122、124和126中的图像数据获取的定时的另一个因素是最大线扫描速率。例如,从被包括在图像捕捉设备122、124和126中的图像传感器获取一行图像数据将需要某个最低时间量。假定没有添加像素延迟时段,则用于获取一行图像数据的此最低时间量将与特定设备的最大线扫描速率有关。提供较高的最大线扫描速率的设备具有提供比带有较低的最大线扫描速率的设备更高的帧速率的潜力。在一些实施例中,图像捕捉设备124和126中的一个或多个可以具有高于与图像捕捉设备122相关联的最大线扫描速率的最大线扫描速率。在一些实施例中,图像捕捉设备124和/或126的最大线扫描速率可以是图像捕捉设备122的最大线扫描速率的1.25、1.5、1.75或2倍或更多倍。
在另一实施例中,图像捕捉设备122、124和126可以具有相同的最大线扫描速率,但图像捕捉设备122可以以小于或等于其最大扫描速率的扫描速率而操作。该***可以配置为使得图像捕捉设备124和126中的一个或多个以等于图像捕捉设备122的线扫描速率的线扫描速率而操作。在其它实例中,该***可以配置为使得图像捕捉设备124和/或图像捕捉设备126的线扫描速率可以是图像捕捉设备122的线扫描速率的1.25、1.5、1.75、或2倍或更多倍。
在一些实施例中,图像捕捉设备122、124和126可以是不对称的。也就是说,它们可包括具有不同视场(FOV)和焦距的相机。例如,图像捕捉设备122、124和126的视场可以包括关于车辆200的环境的任何期望的区域。在一些实施例中,图像捕捉设备122、124和126中的一个或多个可以配置为从在车辆200前面、车辆200后面、车辆200的侧面、或其组合的环境获取图像数据。
此外,与每个图像捕捉设备122、124和/或126相关联的焦距可以是可选择的(例如,通过包括适当的镜头等),使得每个设备在相对于车辆200的期望的距离范围处获取对象的图像。例如,在一些实施例中,图像捕捉设备122、124和126可以获取离车辆几米之内的接近对象的图像。图像捕捉设备122、124和126还可以配置为获取离车辆更远的范围处(例如,25米、50米、100米、150米或更远)的对象的图像。此外,图像捕捉设备122、124和126的焦距可以被选择以使得一个图像捕捉设备(例如,图像捕捉设备122)可以获取相对靠近车辆的(例如,在10米内或20米内的)对象的图像,而其它图像捕捉设备(例如,图像捕捉设备124和126)可以获取离车辆200较远的(例如,大于20米、50米、100米、150米等的)对象的图像。
根据一些实施例,一个或多个图像捕捉设备122、124和126的FOV可以具有广角。例如,具有140度的FOV可能是有利的,尤其是对于可以被用于捕捉在车辆200附近的区域的图像的图像捕捉设备122、124和126。例如,图像捕捉设备122可以被用来捕捉车辆200的右侧或左侧的区域的图像,并且在这些实施例中,可能期望图像捕捉设备122具有宽FOV(例如,至少140度)。
与图像捕捉设备122、124和126中的每一个相关联的视场可以取决于各自的焦距。例如,随着焦距增加,对应的视场减小。
图像捕捉设备122、124和126可以配置为具有任何合适的视场。在一个特定示例中,图像捕捉设备122可以具有46度的水平FOV,图像捕捉设备124可以具有23度的水平FOV,并且图像捕捉设备126可以具有在23度和46度之间的水平FOV。在另一实例中,图像捕捉设备122可以具有52度的水平FOV,图像捕捉设备124可以具有26度的水平FOV,并且图像捕捉设备126可以具有在26度和52度之间的水平FOV。在一些实施例中,图像捕捉设备122的FOV与图像捕捉设备124和/或图像捕捉设备126的FOV的比率可以从1.5到2.0变化。在其它实施例中,该比率可以在1.25与2.25之间变化。
***100可以配置为使得图像捕捉设备122的视场至少部分地或完全地与图像捕捉设备124和/或图像捕捉设备126的视场重叠。在一些实施例中,***100可以配置为使得图像捕捉设备124和126的视场例如落入(例如,窄于)图像捕捉设备122的视场并且与图像捕捉设备122的视场共享共同的中心。在其它实施例中,图像捕捉设备122、124和126可以捕捉相邻的FOV,或者可以在它们的FOV中具有部分重叠。在一些实施例中,图像捕捉设备122、124和126的视场可以对齐,以使得较窄FOV图像捕捉设备124和/或126的中心可以位于较宽FOV设备122的视场的下半部中。
图2F是与所公开的实施例一致的示例车辆控制***的图示性表示。如图2F所指示的,车辆200可以包括油门调节(throttling)***220、制动***230和转向***240。***100可以通过一个或多个数据链路(例如,任何用于传输数据的有线和/或无线链路)向油门调节***220、制动***230和转向***240中的一个或多个提供输入(例如,控制信号)。例如,基于对由图像捕捉设备122、124和/或126获取的图像的分析,***100可以向油门调节***220、制动***230和转向***240中的一个或多个提供控制信号以导航车辆200(例如,通过引起加速、转向、车道变换等)。此外,***100可以从油门调节***220、制动***230和转向***240中的一个或多个接收指示车辆200的运行条件(例如,速度、车辆200是否正在制动和/或转向等)的输入。以下结合图4至图7提供进一步的细节。
如图3A所示,车辆200还可以包括用于与车辆200的驾驶员或乘客进行交互的用户界面170。例如,车辆应用中的用户界面170可以包括触摸屏320、旋钮330、按钮340和麦克风350。车辆200的驾驶员或乘客还可以使用手柄(例如,位于车辆200的转向杆上或附近,包括例如转向信号手柄)、按钮(例如,位于车辆200的方向盘上)等以与***100交互。在一些实施例中,麦克风350可以位于与后视镜310相邻。类似地,在一些实施例中,图像捕捉设备122可以位于靠近后视镜310。在一些实施例中,用户界面170还可以包括一个或多个扬声器360(例如,车辆音频***的扬声器)。例如,***100可以经由扬声器360提供各种通知(例如,警报)。
图3B至图3D是与所公开的实施例一致的配置为位于后视镜(例如,后视镜310)后面并与车辆挡风玻璃相对的示例相机安装370的例示。如图3B所示,相机安装370可以包括图像捕捉设备122、124和126。图像捕捉设备124和126可以位于遮光板380的后面,遮光板380可以相对于车辆挡风玻璃齐平(flush)并且包括薄膜和/或防反射材料的合成物。例如,遮光板380可被放置为使得它相对于具有匹配斜面的车辆的挡风玻璃对齐。在一些实施例中,图像捕捉设备122、124和126中的每个可以位于遮光板380的后面,如例如在图3D中所描绘的。所公开的实施例不限于图像捕捉设备122、124和126、相机安装370和遮光板380的任何特定配置。图3C是图3B所示的相机安装370从前面观看的例示。
如受益于本公开的本领域技术人员将理解的,可以对前述所公开的实施例做出许多变型和/或修改。例如,并非所有组件对于***100的操作是必要的。此外,任何组件可以位于***100的任何适当的部件中并且组件可以被重新布置成各种配置同时提供所公开的实施例的功能。因此,前述配置是示例,并且不管以上讨论的配置如何,***100都可以提供广阔范围的功能以分析车辆200的周围环境并响应于该分析而导航车辆200。
如在下面更详细讨论的并且根据各种所公开的实施例,***100可以提供各种关于自主驾驶和/或驾驶员辅助技术的特征。例如,***100可以分析图像数据、位置数据(例如,GPS位置信息)、地图数据、速度数据和/或来自包含在车辆200中的传感器的数据。***100可以从例如图像获取单元120、位置传感器130以及其它传感器收集数据用于分析。此外,***100可以分析所收集的数据以确定车辆200是否应该采取某个动作,然后在无人工干预的情况下自动采取所确定的动作。例如,当车辆200在无人工干预的情况下导航时,***100可以自动地控制车辆200的制动、加速、和/或转向(例如,通过向油门调节***220、制动***230和转向***240中的一个或多个发送控制信号)。此外,***100可以分析所收集的数据,并基于对所收集的数据的分析向车辆乘员发出警告和/或警报。下面提供关于***100提供的各种实施例的附加的细节。
前向多成像***
如上所讨论的,***100可以提供使用多相机***的驾驶辅助功能。多相机***可以使用面向车辆的前向方向的一个或多个相机。在其它实施例中,多相机***可以包括面向车辆的侧方或面向车辆的后方的一个或多个相机。在一个实施例中,例如***100可以使用两相机成像***,其中,第一相机和第二相机(例如,图像捕捉设备122和124)可以位于车辆(例如,车辆200)的前面和/或侧面处。其它相机配置与所公开的实施例一致,并且本文公开的配置是示例。例如,***100可以包括任何数量的相机的配置(例如,一个、两个、三个、四个、五个、六个、七个、八个等)。此外,***100可以包括相机“群集”。例如,相机群集(包括任何适当数量的相机,例如一个、四个、八个等)可以相对于车辆是面向前向的,或者可以面向任何其它方向(例如,面向后向、面向侧向、成角度的等)。因此,***100可以包括多个相机群集,其中每个群集以特定方向定向以从车辆环境的特定区域捕捉图像。
第一相机可以具有大于、小于、或部分重叠于第二相机的视场的视场。此外,第一相机可以连接到第一图像处理器以执行对由第一相机提供的图像的单目图像分析,并且第二相机可以连接到第二图像处理器以执行对由第二相机提供的图像的单目图像分析。第一和第二图像处理器的输出(例如,处理后的信息)可以被组合。在一些实施例中,第二图像处理器可以从第一相机和第二相机两者接收图像以执行立体分析。在另一实施例中,***100可以使用三相机成像***,其中每个相机具有不同的视场。因此,这种***可以基于从位于车辆的前方和侧方的变化距离处的对象得到的信息做出决定。对单目图像分析的参考可以涉及基于从单个视点(例如,从单个相机)捕捉的图像执行图像分析的实例。立体图像分析可以涉及基于利用图像捕捉参数的一个或多个变化而捕捉的两个或更多个图像执行图像分析的实例。例如,适用于执行立体图像分析的捕捉到的图像可以包括从两个或更多个不同的位置、从不同的视场、使用不同的焦距、与视差信息一起等捕捉的图像。
例如,在一个实施例中,***100可以使用图像捕捉设备122至126实现三相机配置。在这种配置中,图像捕捉设备122可以提供窄视场(例如,34度或从大约20度至45度的范围选择的其它值等),图像捕捉设备124可以提供宽视场(例如,150度或从大约100度至大约180度的范围选择的其它值),并且图像捕捉设备126可以提供中间视场(例如,46度或从大约35度至大约60度的范围选择的其它值)。在一些实施例中,图像捕捉设备126可以作为主相机或基本相机。图像捕捉设备122至126可以位于后视镜310的后面并且基本上并排(例如,相距6厘米)。此外,在一些实施例中,如以上所讨论的,图像捕捉设备122至126中的一个或多个可以被安装在与车辆200的挡风玻璃齐平的遮光板380的后面。这种遮挡可以起作用以减小任何来自车内的反射对图像捕捉设备122至126的影响。
在另一实施例中,如以上结合图3B和3C所讨论的,宽视场相机(例如,上述示例中的图像捕捉设备124)可以被安装得低于窄视场相机和主视场相机(例如,上述的示例中的图像捕捉设备122和126)。这种配置可以提供来自宽视场相机的自由视线。为减少反射,相机可以被安装得靠近车辆200的挡风玻璃,并且在相机上可以包括偏振器以衰减(damp)反射光。
三相机***可以提供某些性能特性。例如,一些实施例可以包括通过一个相机基于来自另一相机的检测结果来验证对象的检测的能力。在上面讨论的三相机配置中,处理单元110可以包括例如三个处理设备(例如,如以上所讨论的三个EyeQ系列处理器芯片),其中每个处理设备专用于处理由图像捕捉设备122至126中的一个或多个捕捉的图像。
在三相机***中,第一处理设备可以从主相机和窄视场相机两者接收图像,并且执行对窄FOV相机的视觉处理,以例如检测其它车辆、行人、车道标记、交通标志、交通灯以及其它道路对象。另外,第一处理设备可以计算来自主相机和窄相机的图像之间的像素的视差,并且创建车辆200的环境的3D重建。然后第一处理设备可以组合3D重建与3D地图数据、或组合3D重建与基于来自另一相机的信息计算出的3D信息。
第二处理设备可以从主相机接收图像,并执行视觉处理以检测其它车辆、行人、车道标记、交通标志、交通灯和其它道路对象。另外,第二处理设备可以计算相机位移,并且基于该位移计算连续图像之间的像素的视差,并创建场景的3D重建(例如,运动恢复结构(structure from motion))。第二处理设备可以将基于3D重建的运动恢复结构发送到第一处理设备以与立体3D图像进行组合。
第三处理设备可以从宽FOV相机接收图像,并处理该图像以检测车辆、行人、车道标记、交通标志、交通灯和其它道路对象。第三处理设备还可以执行附加的处理指令来分析图像,以识别图像中移动的对象,诸如正改变车道的车辆、行人等。
在一些实施例中,使得基于图像的信息的流被独立地捕捉和处理可以提供用于在***中提供冗余的机会。这种冗余可以包括例如使用第一图像捕捉设备和从该设备处理的图像来验证和/或补充通过从至少第二图像捕捉设备捕捉和处理图像信息而获得的信息。
在一些实施例中,***100将两个图像捕捉设备(例如,图像捕捉设备122和124)用在为车辆200提供导航辅助中,并使用第三图像捕捉设备(例如,图像捕捉设备126)来提供对从其它两个图像捕捉设备接收的数据的分析的冗余和验证。例如,在这种配置中,图像捕捉设备122和124可以提供用于由***100的立体分析的图像以导航车辆200,而图像捕捉设备126可以提供用于由***100的单目分析的图像以提供冗余和对基于从图像捕捉设备122和/或图像捕捉设备124捕捉的图像而获得的信息的验证。即,图像捕捉设备126(和对应的处理设备)可以被视为提供冗余子***,该冗余子***用于提供对从图像捕捉设备122和124得到的分析的检查(例如,以提供自动紧急制动(AEB)***)。此外,在一些实施例中,可基于从一个或多个传感器接收的信息(例如,雷达、激光雷达、声学传感器,从车辆外部的一个或多个收发器接收的信息等)来补充接收的数据的冗余和验证。
本领域的技术人员将认识到,上述相机配置、相机放置、相机数量、相机位置等仅为示例。在不脱离所公开的实施例的范围下,这些组件和关于整个***描述的其它组件可以被组装并且在各种不同的配置中使用。关于使用多相机***以提供驾驶员辅助和/或自主车辆功能的进一步的细节如下。
图4是可以存储/编程有用于执行与本公开实施例一致的一个或多个操作的指令的存储器140和/或存储器150的示例性功能性框图。虽然下面涉及存储器140,但是本领域技术人员将认识到指令可以被存储在存储器140和/或存储器150中。
如图4所示,存储器140可以存储单目图像分析模块402、立体图像分析模块404、速度和加速度模块406以及导航响应模块408。所公开的实施例不限于存储器140的任何特定配置。此外,应用处理器180和/或图像处理器190可以执行在被包含在存储器140中的任何模块402至408中存储的指令。本领域技术人员将理解,在下面的讨论中,对处理单元110的参考可以单独地或共同地指代应用处理器180和图像处理器190。因此,任何以下处理的步骤可以由一个或多个处理设备来执行。
在一个实施例中,单目图像分析模块402可以存储指令(诸如计算机视觉软件),该指令在由处理单元110执行时,执行对由图像捕捉设备122、124和126中的一个获取的一组图像的单目图像分析。在一些实施例中,处理单元110可以将来自一组图像的信息与附加的传感信息(例如,来自雷达的信息)组合以执行单目图像分析。如以下结合图5A至图5D所描述的,单目图像分析模块402可以包括用于在该组图像内检测一组特征的指令,该特征诸如车道标记、车辆、行人、道路标志、高速公路出口匝道、交通灯、危险对象以及任何其它与车辆的环境相关联的特征。基于该分析,***100(例如,经由处理单元110)可以引起车辆200中的一个或多个导航响应,诸如转向、车道变换、加速度的改变等,如以下结合导航响应模块408所讨论的。
在一个实施例中,单目图像分析模块402可以存储指令(诸如计算机视觉软件),该指令在由处理单元110执行时,执行对由图像捕捉设备122、124和126中的一个获取的一组图像的单目图像分析。在一些实施例中,处理单元110可以将来自一组图像的信息与附加的传感信息(例如,来自雷达、激光雷达等的信息)组合以执行单目图像分析。如以下结合图5A至图5D所描述的,单目图像分析模块402可以包括用于在该组图像内检测一组特征的指令,该特征诸如车道标记、车辆、行人、道路标志、高速公路出口匝道、交通灯、危险对象以及任何其它与车辆的环境相关联的特征。基于该分析,***100(例如,经由处理单元110)可以引起车辆200中的一个或多个导航响应,诸如转向、车道变换、加速度的改变等,如以下结合确定导航响应所讨论的。
在一个实施例中,立体图像分析模块404可以存储指令(诸如,计算机视觉软件),该指令在由处理单元110执行时,执行对由从任意图像捕捉设备122、124和126中选择的图像捕捉设备的组合而获取的第一组和第二组图像的立体图像分析。在一些实施例中,处理单元110可以将来自第一组和第二组图像的信息与附加的传感信息(例如,来自雷达的信息)组合以执行立体图像分析。例如,立体图像分析模块404可以包括用于基于由图像捕捉设备124获取的第一组图像和由图像捕捉设备126获取的第二组图像执行立体图像分析的指令。如下面结合图6所描述的,立体图像分析模块404可以包括用于检测第一组和第二组图像内的一组特征的指令,该特征诸如车道标记、车辆、行人、道路标志、高速公路出口匝道、交通灯、危险对象等。基于该分析,处理单元110可以引起车辆200中的一个或多个导航响应,诸如转向、车道变换、加速度的改变等,如以下结合导航响应模块408所讨论的。此外,在一些实施例中,立体图像分析模块404可实施与经训练的***(诸如神经网络或深度神经网络)或未经训练的***相关联的技术。
在一个实施例中,速度和加速度模块406可以存储被配置为对从车辆200中的配置为引起车辆200的速度和/或加速度的改变的一个或多个计算和机电设备接收的数据进行分析的软件。例如,处理单元110可以执行与速度和加速度模块406相关联的指令,以基于从单目图像分析模块402和/或立体图像分析模块404的执行而得到的数据来计算车辆200的目标速度。这种数据可以包括例如目标位置、速度和/或加速度、车辆200相对于附近车辆、行人或道路对象的位置和/或速度、车辆200相对于道路的车道标记等的位置信息等。此外,处理单元110可以基于传感输入(例如,来自雷达的信息)和来自车辆200的其它***(诸如油门调节***220、制动***230和/或转向***240)的输入来计算车辆200的目标速度。基于计算的目标速度,处理单元110可以向车辆200的油门调节***220、制动***230和/或转向***的240传输电子信号,以例如通过物理地压下制动器或松开车辆200的加速器来触发速度和/或加速度的变化。
在一个实施例中,导航响应模块408可以存储软件,该软件可由处理单元110执行以基于从单目图像分析模块402和/或立体图像分析模块404的执行而得到的数据来确定期望的导航响应。这种数据可以包括与附近的车辆、行人和道路对象相关联的位置和速度信息、车辆200的目标位置信息等。另外,在一些实施例中,导航响应可以(部分地或完全地)基于地图数据、车辆200的预定位置、和/或车辆200与从单目图像分析模块402和/或立体图像分析模块404的执行检测到的一个或多个对象之间的相对速度或相对加速度。导航响应模块408还可以基于传感输入(例如,来自雷达的信息)和来自车辆200的其它***(诸如车辆200的油门调节***220、制动***230和转向***240)的输入确定期望的导航响应。基于期望的导航响应,处理单元110可以向车辆200的油门调节***220、制动***230和转向***240传输电子信号,以通过例如转动车辆200的方向盘实现预定角度的旋转来触发期望的导航响应。在一些实施例中,处理单元110可以使用导航响应模块408的输出(例如,期望的导航响应)作为对速度和加速度模块406的执行的输入,以用于计算车辆200的速度的改变。
此外,本文公开的任何模块(例如,模块402、404和406)可以实现与经训练的***(诸如神经网络或深度神经网络)或未经训练的***相关联的技术。
图5A是示出与所公开的实施例一致的、用于基于单目图像分析引起一个或多个导航响应的示例性处理500A的流程图。在步骤510,处理单元110可以经由在处理单元110和图像获取单元120之间的数据接口128接收多个图像。例如,被包含在图像获取单元120中的相机(诸如具有视场202的图像捕捉设备122)可以捕捉车辆200的前方(例如,或者车辆的侧方或后方)区域的多个图像并经过数据连接(例如,数字、有线、USB、无线、蓝牙等)将它们传输到处理单元110。在步骤520,处理单元110可以执行单目图像分析模块402来分析该多个图像,如以下结合图5B至5D进一步详细描述的。通过执行该分析,处理单元110可以在该组图像内检测一组特征,诸如车道标记、车辆、行人、道路标志、高速公路出口匝道、交通灯等。
在步骤520,处理单元110还可以执行单目图像分析模块402来检测各种道路危险,诸如例如卡车轮胎的部件、倒下的道路标志、松散货物、小动物等。道路危险可能在结构、形状、大小和颜色上变化,这可能使这些危险的检测更具挑战。在一些实施例中,处理单元110可以执行单目图像分析模块402来对该多个图像执行多帧分析以检测道路危险。例如,处理单元110可以估计连续图像帧之间的相机运动,并计算帧之间的像素中的视差来构建道路的3D地图。然后,处理单元110可以使用该3D地图来检测路面、以及存在于路面上的危险。
在步骤530,处理单元110可以执行导航响应模块408以基于在步骤520中执行的分析和如以上结合图4描述的技术引起一个或多个导航响应。导航响应可以包括例如转向、车道变换、加速度的改变等。在一些实施例中,处理单元110可以使用从速度和加速度模块406的执行得到的数据来引起一个或多个导航响应。此外,多个导航响应可以同时地、按照顺序地或以其任意组合而发生。例如,处理单元110可以通过例如顺序地向车辆200的转向***240和油门调节***220传输控制信号,使得车辆200变换一个车道然后加速。可替代地,处理单元110可以通过例如同时向车辆200的制动***230和转向***240传输控制信号,使得车辆200制动同时变换车道。
图5B是示出与所公开的实施例一致的用于在一组图像中检测一个或多个的车辆和/或行人的示例性处理500B的流程图。处理单元110可以执行单目图像分析模块402来实现处理500B。在步骤540,处理单元110可以确定表示可能的车辆和/或行人的一组候选对象。例如,处理单元110可以扫描一个或多个图像,将这些图像与一个或多个预定模式比较,并且在每个图像内识别可能包含感兴趣的对象(例如,车辆、行人或其部分)的可能的位置。预定模式可以以实现高“伪命中”率和低“漏掉”率的这种方式来设计。例如,处理单元110可以将低的相似性的阈值用于预定模式以将候选对象识别为可能的车辆或行人。这样做可以允许处理单元110减少漏掉(例如,未识别出)表示车辆或行人的候选对象的概率。
在步骤542,处理单元110可以基于分类标准过滤该组候选对象以排除某些候选(例如,无关的或较不相关的对象)。这种标准可以从与存储在数据库(例如,存储在存储器140中的数据库)中的对象类型相关联的各种属性得到。属性可以包括对象形状、尺寸、纹理、位置(例如,相对于车辆200)等。因此,处理单元110可以使用一组或多组标准以拒绝来自该组候选对象的伪候选。
在步骤544,处理单元110可以分析多帧图像,以确定在该组候选对象中的对象是否表示车辆和/或行人。例如,处理单元110可以跨连续帧来跟踪检测到的候选对象并逐帧累积与检测到的对象相关联的数据(例如,大小、相对于车辆200的位置等)。此外,处理单元110可以估计检测到的对象的参数并将该对象的逐帧位置数据与预测的位置比较。
在步骤546,处理单元110可以对于检测到的对象构建一组测量。这种测量可以包括例如与检测到的对象相关联的(相对于车辆200的)位置、速度和加速度值。在一些实施例中,处理单元110可以基于使用一系列基于时间的观察的、诸如卡尔曼滤波器或线性二次估计(LQE)的估计技术和/或基于对于不同对象类型(例如,汽车、卡车、行人、自行车、道路标志等)的可用的建模数据,来构建该测量。卡尔曼滤波器可以基于对象的比例的测量,其中该比例测量与要碰撞的时间(例如,车辆200到达该对象的时间量)成比例。因此,通过执行步骤540至546,处理单元110可以识别在该组捕捉的图像内出现的车辆和行人,并得到与该车辆和行人相关联的信息(例如,位置、速度、大小)。基于该识别和所得到的信息,处理单元110可以引起车辆200中的一个或多个导航响应,如以上结合图5A所描述的。
在步骤548,处理单元110可以执行对一个或多个图像的光流分析,以减少检测到“伪命中”以及漏掉表示车辆或行人的候选对象的概率。光流分析可以涉及例如分析在一个或多个图像中的与其它车辆和行人相关联的并且不同于路面运动的、相对于车辆200的运动模式。处理单元110可以通过跨越在不同时间捕捉到的多个图像帧观察对象的不同位置,来计算候选对象的运动。处理单元110可以使用位置和时间值作为对用于计算候选对象的运动的数学模型的输入。因此,光流分析可以提供检测车辆200附近的车辆和行人的另一种方法。处理单元110可以结合步骤540至546执行光流分析,以提供用于检测车辆和行人的冗余,并提高***100的可靠性。
图5C是示出与所公开的实施例一致的用于在一组图像中检测道路标记和/或车道几何结构信息的示例性处理500C的流程图。处理单元110可以执行单目图像分析模块402来实现处理500C。在步骤550,处理单元110可以通过扫描一个或多个图像来检测一组对象。为了检测车道标记、车道几何结构信息以及其它相关的道路标记的片段(segment),处理单元110可以过滤该组对象以排除被确定为不相关的那些对象(例如,小坑洼、小石块等)。在步骤552,处理单元110可以将在步骤550中检测到的属于相同的道路标记或车道标记的片段分组在一起。基于该分组,处理单元110可以产生表示所检测到的片段的模型,诸如数学模型。
在步骤554,处理单元110可以构建与检测到的片段相关联的一组测量。在一些实施例中,处理单元110可以创建检测到的片段从图像平面到现实世界平面上的投影。该投影可以使用具有与诸如检测到的道路的位置、斜率、曲率和曲率导数的物理属性对应的系数的三次多项式来表征。在产生该投影中,处理单元110可以考虑路面的变化、以及与车辆200相关联的俯仰(pitch)率和滚转(roll)率。此外,处理单元110可以通过分析出现在路面上的位置和运动线索来对道路标高进行建模。此外,处理单元110可以通过跟踪一个或多个图像中的一组特征点来估计与车辆200相关联的俯仰率和滚转率。
在步骤556,处理单元110可以通过例如跨连续图像帧跟踪所检测到的片段并逐帧累积与检测到的片段相关联的数据来执行多帧分析。由于处理单元110执行多帧分析,在步骤554中构建的该组测量可以变得更可靠并且与越来越高的置信度水平相关联。因此,通过执行步骤550至556,处理单元110可以识别在该组捕捉图像中出现的道路标记并得到车道几何结构信息。基于该识别和所得到的信息,处理单元110可以引起车辆200中的一个或多个导航响应,如以上结合图5A所描述的。
在步骤558,处理单元110可以考虑附加的信息源,以进一步产生车辆200在其周围的环境中的安全模型。处理单元110可以使用该安全模型来定义***100可以在其中以安全的方式执行车辆200的自主控制的背景。为产生该安全模型,在一些实施例中,处理单元110可以考虑其它车辆的位置和运动、检测到的路缘和屏障、和/或从地图数据(诸如来自地图数据库160的数据)提取的一般道路形状描述。通过考虑附加的信息源,处理单元110可以提供用于检测道路标记和车道几何结构的冗余,并增加***100的可靠性。
图5D是示出了与所公开的实施例一致的用于在一组图像中检测交通灯的示例性处理500D的流程图。处理单元110可以执行单目图像分析模块402来实现处理500D。在步骤560,处理单元110可以扫描该组图像,并识别出现在图像中的可能包含交通灯的位置处的对象。例如,处理单元110可以过滤所识别的对象来构造一组候选对象,排除不太可能对应于交通灯的那些对象。过滤可以基于与交通灯相关联的诸如形状、尺寸、纹理、位置(例如,相对于车辆200)等的各种属性来进行。这种属性可以基于交通灯和交通控制信号的多个示例并存储在数据库中。在一些实施例中,处理单元110可以对反映可能的交通灯的该组候选对象执行多帧分析。例如,处理单元110可以跨连续图像帧跟踪候选对象,估计候选对象的现实世界位置,并过滤掉那些正在移动的对象(其不太可能是交通灯)。在一些实施例中,处理单元110可以对候选对象执行颜色分析,并识别出现在可能的交通灯内的所检测到的颜色的相对位置。
在步骤562,处理单元110可以分析交叉口的几何结构。该分析可以基于以下的任意组合:(i)在车辆200的任一侧检测到的车道的数量、(ii)在道路上检测到的标记(比如箭头标记)、和(iii)从地图数据(例如,来自地图数据库160的数据)提取的交叉口的描述。处理单元110可以使用从单目分析模块402的执行得到的信息来进行分析。此外,处理单元110可以确定在步骤560中检测到的交通灯和在车辆200附近出现的车道之间的对应性。
在步骤564,随着车辆200接近交叉口,处理单元110可以更新与所分析的交叉口几何结构和所检测到的交通灯相关联的置信度水平。例如,与实际出现在交叉口处的交通灯的数量相比被估计为出现在交叉口处的交通灯的数量可能影响置信度水平。因此,基于该置信度水平,处理单元110可以将控制委托给车辆200的驾驶员以便改善安全条件。通过执行步骤560至564,处理单元110可以识别出现在该组捕捉图像内的交通灯,并分析交叉口几何结构信息。基于该识别和分析,处理单元110可以引起车辆200中一个或多个导航响应,如以上结合图5A所描述的。
图5E是示出了与所公开的实施例一致的、用于基于车辆路径引起车辆中的一个或多个导航响应的示例性处理500E的流程图。在步骤570,处理单元110可以构建与车辆200相关联的初始车辆路径。车辆路径可以使用以坐标(x,z)表达的一组点来表示,并且该组点中两个点之间的距离di可以落入1至5米的范围中。在一个实施例中,处理单元110可以使用诸如左道路多项式和右道路多项式的两个多项式来构建初始车辆路径。处理单元110可以计算该两个多项式之间的几何中点,并且将被包含在得到的车辆路径中的每个点偏移预定的偏移(例如,智能车道偏移),如果有的话(零偏移可以对应于在车道的中间行驶)。该偏移可以在垂直于在车辆路径中的任何两点之间的线段的方向上。在另一个实施例中,处理单元110可以使用一个多项式和估计的车道宽度,来将车辆路径的每个点偏移估计的车道宽度的一半加上预定偏移(例如,智能车道偏移)。
在步骤572,处理单元110可以更新在步骤570构建的车辆路径。处理单元110可以使用更高的分辨率来重建在步骤570构建的车辆路径,以使得表示车辆路径的该组点中两个点之间的距离dk小于上述距离di。例如,该距离dk可以落入0.1至0.3米的范围中。处理单元110可以使用抛物线样条算法(parabolic spline algorithm)重建车辆路径,这可以产生对应于车辆路径的总长度(即,基于表示车辆路径的该组点)的累积距离向量S。
在步骤574,处理单元110可以基于在步骤572构建的更新的车辆路径来确定前视点(look-ahead point)(以坐标表达为(xl,zl))。处理单元110可以从累积距离向量S提取前视点,并且该前视点可以与前视距离和前视时间相关联。可以具有范围为从10米至20米的下限的前视距离可以被计算为车辆200的速度与前视时间的乘积。例如,随着车辆200的速度下降,前视距离也可以减小(例如,直到它达到该下限)。范围可以从0.5秒到1.5秒的前视时间可以与关联于引起车辆200中的导航响应的诸如航向误差(heading error)跟踪控制环路的一个或多个控制环路的增益成反比。例如,该航向误差跟踪控制环路的增益可以取决于横摆角速率环路、转向致动器环路、汽车横向动力学等的带宽。因此,航向误差跟踪控制环路的增益越高,前视时间越短。
在步骤576,处理单元110可以基于在步骤574中确定的前视点来确定航向误差和横摆角速率命令。处理单元110可以通过计算前视点的反正切、例如arctan(xl/zl)来确定航向误差。处理单元110可以将横摆角速率命令确定为航向误差和高水平控制增益的乘积。如果前视距离不在下限处,则高水平控制增益可以等于:(2/前视时间)。否则,高水平控制增益可以等于:(2×车辆200的速度/前视距离)。
图5F是示出了与所公开的实施例一致的用于确定前方车辆是否正在改变车道的示例性处理500F的流程图。在步骤580,处理单元110可以确定与前方车辆(例如,在车辆200前方行驶的车辆)相关联的导航信息。例如,处理单元110可以使用以上结合图5A和图5B所描述的技术来确定前方车辆的位置、速度(例如,方向和速度)和/或加速度。处理单元110还可以使用以上结合图5E所描述的技术来确定一个或多个道路多项式、前视点(与车辆200相关联)和/或追踪轨迹(snail trail)(例如,描述前方车辆所采取的路径的一组点)。
在步骤582,处理单元110可以分析在步骤580中确定的导航信息。在一个实施例中,处理单元110可以计算追踪轨迹和道路多项式之间的距离(例如,沿着该轨迹)。如果沿着该轨迹的这个距离的变化(variance)超过预定的阈值(例如,在直路上0.1至0.2米,在适度弯曲道路上0.3至0.4米,以及在急弯道路上0.5至0.6米),则处理单元110可以确定前方车辆很可能正在改变车道。在检测到多个车辆在车辆200前方行驶的情形中,处理单元110可以比较与每个车辆相关联的追踪轨迹。基于该比较,处理单元110可以确定追踪轨迹与其它车辆的追踪轨迹不匹配的车辆很可能正在改变车道。处理单元110可以附加地将(与前方车辆相关联的)追踪轨迹的曲率与前方车辆正在其中行驶的道路段的期望曲率相比较。该期望曲率可以从地图数据(例如,来自地图数据库160的数据)、从道路多项式、从其它车辆的追踪轨迹、从关于道路现有知识等提取。如果追踪轨迹的曲率与道路段的期望曲率的差异超过预定的阈值,则处理单元110可以确定前方车辆很可能正在改变车道。
在另一个实施例中,处理单元110可以在特定时间段(例如,0.5至1.5秒)将前方车辆的瞬时位置与(与车辆200相关联的)前视点相比较。如果前方车辆的瞬时位置与前视点之间的距离在该特定时间段期间变化,并且变化的累积总和超过预定阈值(例如,直路上0.3至0.4米,适度弯曲道路上0.7至0.8米,以及急弯道路上1.3至1.7米),则处理单元110可以确定前方车辆很可能正在改变车道。在另一实施例中,处理单元110可以通过将沿着追踪轨迹行驶的横向距离与该追踪轨迹的期望曲率相比较,来分析该追踪轨迹的几何结构。期望的曲率半径可以根据计算确定:(δz 2+δx 2)/2/(δx),其中δx表示行驶的横向距离以及δz表示的行驶的纵向距离。如果行驶的横向距离和期望曲率之间的差异超过预定阈值(例如,500至700米),则处理单元110可以确定前方车辆很可能正在改变车道。在另一个实施例中,处理单元110可以分析前方车辆的位置。如果前方车辆的位置遮蔽了道路多项式(例如,前方车辆覆盖在道路多项式的上方),则处理单元110可以确定前方车辆很可能正在改变车道。在前方车辆的位置是使得在前方车辆的前方检测到另一车辆并且这两个车辆的追踪轨迹不平行的情况下,处理单元110可以确定(较近的)前方车辆很可能正在改变车道。
在步骤584,处理单元110可以基于在步骤582进行的分析确定前方车辆200是否正在改变车道。例如,处理单元110可以基于在步骤582执行的各个分析的加权平均来做出该确定。在这种方案下,例如,由处理单元110基于特定类型的分析做出的前方车辆很可能正在改变通道的决定可以被分配值“1”(以及“0”用来表示前方车辆不太可能正在改变车道的确定)。在步骤582中执行的不同分析可以被分配不同的权重,并且所公开的实施例不限于分析和权重的任何特定组合。此外,在一些实施例中,分析可以利用经训练的***(例如,机器学习或深度学习***),其可以例如基于在当前位置处捕捉的图像来估计在车辆当前位置前方的未来路径。
图6是示出了与所公开的实施例一致的用于基于立体图像分析引起一个或多个导航响应的示例性处理600的流程图。在步骤610,处理单元110可以经由数据接口128接收第一和第二多个图像。例如,被包含在图像获取单元120中的相机(诸如具有视场202和204的图像捕捉设备122和124)可以捕捉在车辆200前方的区域的第一和第二多个图像,并经过数字连接(例如,USB、无线、蓝牙等)将它们传输到处理单元110。在一些实施例中,处理单元110可以经由两个或更多个数据接口接收该第一和第二多个图像。所公开的实施例不限于任何特定的数据接口配置或协议。
在步骤620,处理单元110可以执行立体图像分析模块404来执行对第一和第二多个图像的立体图像分析,以创建在车辆前方的道路的3D地图并检测图像内的特征,诸如车道标记、车辆、行人、道路标志、高速公路出口匝道、交通灯、道路危险等。立体图像分析可以以类似于以上结合图5A-图5D描述的步骤的方式来执行。例如,处理单元110可以执行立体图像分析模块404以在第一和第二多个图像内检测候选对象(例如,车辆、行人、道路标记、交通灯、道路危险等),基于各种标准过滤掉候选对象的子集,并对剩余的候选对象执行多帧分析、构建测量、并确定置信度水平。在执行上述步骤中,处理单元110可以考虑来自第一和第二多个图像二者的信息,而不是来自单独一组图像的信息。例如,处理单元110可以分析出现在第一和第二多个图像二者中的候选对象的像素级数据(或来自捕捉图像的两个流中的其它数据子集)的差异。作为另一示例,处理单元110可以通过观察候选对象在多个图像的一个中出现而未在另一个图像中出现,或相对于可能相对于出现在两个图像流中的对象而存在的其它差异,来估计候选对象(例如,相对于车辆200)的位置和/或速度。例如,可以基于与出现在图像流中的一个或两者中的对象相关联的轨迹、位置、移动特性等特征,来确定相对于车辆200的位置、速度和/或加速度。
在步骤630中,处理单元110可以执行导航响应模块408,以基于在步骤620中执行的分析和如以上结合图4所描述的技术而引起车辆200中的一个或多个导航响应。导航响应可以包括例如转向、车道变换、加速度的改变、速度的改变、制动等。在一些实施例中,处理单元110可以使用从速度和加速度模块406的执行得到的数据来引起该一个或多个导航响应。此外,多个导航响应可以同时地、按照顺序地、或以其任意组合而发生。
图7是示出了与所公开的实施例一致的用于基于对三组图像的分析来引起一个或多个导航响应的示例性处理700的流程图。在步骤710中,处理单元110可以经由数据接口128接收第一、第二和第三多个图像。例如,被包含在图像获取单元120中的相机(诸如具有视场202、204和206的图像捕捉设备122、124和126)可以捕捉在车辆200前方和/或侧方的区域的第一、第二和第三多个图像,并且经过数字连接(例如,USB、无线、蓝牙等)将它们传输到处理单元110。在一些实施例中,处理单元110可以经由三个或更多个数据接口接收第一、第二和第三多个图像。例如,图像捕捉设备122、124、126的每个可以具有用于向处理单元110传送数据的相关联的数据接口。所公开的实施例不限于任何特定的数据接口配置或协议。
在步骤720,处理单元110可以分析该第一、第二和第三多个图像以检测图像内的特征,诸如车道标记、车辆、行人、道路标志、高速公路出口匝道、交通灯、道路危险等。该分析可以以类似于以上结合图5A-图5D和图6所描述的步骤的方式来执行。例如,处理单元110可以对第一、第二和第三多个图像的每个执行单目图像分析(例如,经由单目图像分析模块402的执行以及基于以上结合图5A-图5D所描述的步骤)。可替代地,处理单元110可对第一和第二多个图像、第二和第三多个图像、和/或第一和第三多个图像执行立体图像分析(例如,经由立体图像分析模块404的执行以及基于以上结合图6所描述的步骤)。与对第一、第二和/或第三多个图像的分析相对应的处理后的信息可以进行组合。在一些实施例中,处理单元110可以执行单目和立体图像分析的组合。例如,处理单元110可以对第一多个图像执行单目图像分析(例如,经由单目图像分析模块402的执行)并且对第二和第三多个图像执行立体图像分析(例如,经由立体图像分析模块404的执行)。图像捕捉设备122、124和126的配置—包括它们各自的位置和视场202、204和206—可以影响对第一、第二和第三多个图像进行的分析的类型。所公开的实施例不限于图像捕捉设备122、124和126的特定配置或对第一、第二和第三多个图像进行的分析的类型。
在一些实施例中,处理单元110可以基于在步骤710和720所获取和分析的图像对***100执行测试。这种测试可以提供对于图像捕捉设备122、124和126的某些配置的***100的整体性能的指示符。例如,处理单元110可以确定“伪命中”(例如,***100不正确地确定车辆或行人的存在的情况)和“漏掉”的比例。
在步骤730,处理单元110可以基于从第一、第二和第三多个图像中的两个得到的信息引起车辆200中的一个或多个导航响应。对第一、第二和第三多个图像中的两个的选择可以取决于各种因素,诸如例如在多个图像的每个中检测到的对象的数量、类型和大小。处理单元110还可以基于图像质量和分辨率、图像中反映的有效视场、捕捉的帧的数量、一个或多个感兴趣的对象实际出现在帧中的程度(例如,其中出现对象的帧的百分比、出现在每个这种帧中的对象的比例)等进行选择。
在一些实施例中,处理单元110可以通过确定从一个图像源得到的信息与从其它图像源得到的信息相一致的程度,对从第一、第二和第三多个图像中的两个得到的信息进行选择。例如,处理单元110可以将从图像捕捉设备122、124和126的每个得到的处理后的信息(无论通过单目分析、立体分析、还是两者的任意组合)组合,并确定在从图像捕捉设备122、124和126的每个捕捉到的图像之间相一致的视觉指示符(例如,车道标记、检测到的车辆及其位置和/或路径、检测到的交通灯等)。处理单元110还可以排除在捕捉到的图像之间不一致的信息(例如,改变车道的车辆、指示车辆太靠近车辆200的车道模型等)。因此,处理单元110可以基于对一致的和不一致的信息的确定,来选择从第一、第二和第三多个图像中的两个得到的信息。
导航响应可以包括例如转向、车道变换、加速度的改变等。处理单元110可以基于在步骤720所执行的分析和如以上结合图4所描述的技术引起一个或多个导航响应。处理单元110还可以使用从速度和加速度模块406的执行得到的数据引起一个或多个导航响应。在一些实施例中,处理单元110可以基于在车辆200与在第一、第二和第三多个图像的任一者内检测到的对象之间的相对位置、相对速度和/或相对加速度来引起一个或多个导航响应。多个导航响应可以同时地、按顺序地或以其任意组合而发生。
强化学习和经训练的导航***
下面的部分讨论自主驾驶以及用于完成车辆的自主控制的***和方法,无论该控制是完全自主的(自驾驶车辆)还是部分自主的(例如,一个或多个驾驶员辅助***或功能)。如图8所示,自主驾驶任务可以被划分为三个主要模块,包括感测模块801、驾驶策略模块803和控制模块805。在一些实施例中,模块801、803和805可以被存储在***100的存储器单元140和/或存储器单元150中,或者模块801、803和805(或其中的部分)可以远离***100而被存储(例如,存储在***100经由例如无线收发器172可访问的服务器中)。此外,本文公开的任何模块(例如,模块801、803和805)可以实施与经训练的***(诸如神经网络或深度神经网络)或未经训练的***相关联的技术。
可以使用处理单元110实施的感测模块801可以处理与感测主车辆的环境中的导航状态有关的各种任务。这些任务可以依赖于来自与主车辆相关联的各种传感器和感测***的输入。这些输入可以包括来自一个或多个车载相机的图像或图像流、GPS位置信息、加速度计输出、用户反馈或对一个或多个用户接口设备的用户输入、雷达、激光雷达等。可以包括来自相机和/或任何其它可用的传感器的数据的感测以及地图信息可以被收集、分析并且制定成“感测到的状态”,该感测到的状态描述从主车辆的环境中的场景提取的信息。该感测到的状态可以包括与目标车辆、车道标记、行人、交通灯、道路几何结构、车道形状、障碍物、到其它对象/车辆的距离、相对速度、相对加速度以及任何其它潜在的感测到的信息有关的感测到的信息。可以实施监督式机器学习,以便基于提供给感测模块801的感测到的数据产生感测状态输出。感测模块的输出可以表示主车辆的感测到的导航“状态”,其可以被传递至驾驶策略模块803。
尽管可以基于从与主车辆相关联的一个或多个相机或图像传感器接收的图像数据产生感测到的状态,但是可以使用任何合适的传感器或传感器组合来产生在导航中使用的感测到的状态。在一些实施例中,可以在不依赖捕捉的图像数据的情况下产生感测到的状态。实际上,本文描述的任何导航原理可应用于基于捕捉的图像数据产生的感测到的状态以及使用其它基于非图像的传感器产生的感测到的状态。感测到的状态还可以经由主车辆外部的源来确定。例如,可以全部或部分地基于从远离主车辆的源接收的信息(例如,基于从其它车辆共享的、从中央服务器共享的、或来自与主车辆的导航状态有关的任何其它信息源的传感器信息、经处理的状态信息等),来产生感测到的状态。
驾驶策略模块803(在下文作更详细地讨论并且可以使用处理单元110来实施)可以实施期望的驾驶策略,以便响应于感测到的导航状态决定主车辆要采取的一个或多个导航动作。如果在主车辆的环境中不存在其它作用者(agent)(例如,目标车辆或行人),则可以以相对直接的方式处理输入到驾驶策略模块803的感测到的状态。当感测到的状态需要与一个或多个其它作用者的协商时,任务变得更加复杂。用于生成驾驶策略模块803的输出的技术可以包括强化学习(下文更详细地讨论)。驾驶策略模块803的输出可以包括主车辆的至少一个导航动作,并且可以包括期望的加速度(其可以转化为主车辆的更新的速度)、主车辆的期望横摆率、期望的轨迹、以及其它潜在的期望导航动作。
基于来自驾驶策略模块803的输出,同样可以使用处理单元110实施的控制模块805可以产生用于与主车辆相关联的一个或多个致动器或受控设备的控制指令。这种致动器和设备可以包括加速器、一个或多个转向控制器、制动器、信号传输器、显示器或可以作为与主车辆相关联的导航操作的一部分而被控制的任何其它致动器或设备。控制理论的方面可以被用来生成控制模块805的输出。控制模块805可以负责产生并且输出指令至主车辆的可控组件,以便实施驾驶策略模块803的期望的导航目标或要求。
回到驾驶策略模块803,在一些实施例中,可以使用通过强化学***衡其它驾驶员的非预期行为;在牵涉目标车辆和/或行人的密集交通中协商;决定何时暂停(suspend)某些导航规则或增强(augment)其它规则;预期未感测到但预期到的状况(例如,行人是否会从汽车或障碍物后面冒出)等等。基于强化学习的经训练的***还可以更好地配备来应对连续且高维度的状态空间以及连续的动作空间。
使用强化学习对***的训练可以涉及学习驾驶策略,以便从感测到的状态映射到导航动作。驾驶策略是函数π:S→A,其中S是一组状态,而是动作空间(例如,期望的速度、加速度、横摆命令等)。状态空间是S=Ss×Sp,其中Ss是感测状态,且Sp是关于通过该策略所保存的状态的附加信息。以离散的时间间隔工作,在时间t处,可以观察当前状态st∈S,并且可以应用该策略来获得期望的动作at=π(st)。
可以通过暴露于各种导航状态,使该***应用该策略,提供奖励(基于被设计为奖励期望导航行为的奖励函数),来训练该***。基于奖励反馈,该***可以“学习”该策略,并且变得在产生期望导航动作方面是经训练的。例如,学习***可以观察当前状态st∈S,并基于策略来决定动作at∈A。基于所决定的动作(以及该动作的实施),环境移至下一个状态st+1∈S,以由该学习***观察。对于响应于观察到的状态而产生的每个动作,对该学习***的反馈是奖励信号r1,r2,...。
强化学习(RL)的目标是找到策略π。通常假设在时间t,存在奖励函数rt,其测量处于状态st并采取动作at的瞬时质量。然而,在时间t采取动作at影响了环境,并因此影响未来状态的值。因此,当决定采取何种动作时,不仅应考虑当前的奖励,还应考虑未来的奖励。在某些情况下,当***确定如果现在采用较低奖励选项则在将来可能实现更高的奖励时,则即使某一动作与比另一个可用选项更低的奖励相关联,该***也应采取该动作。为了对此形式化,观察到策略π以及初始状态s引发出在上的分布,其中如果作用者在状态s0=s处开始并从那里开始遵循策略π,则向量(r1,…,rT)的概率为观察到奖励r1,…,rT的概率。初始状态s的值可定义为:
/>
代替将时间范围限制为T,可以对未来奖励打折扣(discount)来定义,对于一些固定的γ∈(0,1):
在任何情况下,最佳策略是下式的解:
其中,期望(expectation)在初始状态s之上。
有若干种可能方法用于训练驾驶策略***。例如,可以使用模仿(imitation)方法(例如,行为克隆),在该方法中,***从状态/动作对中学习,其中动作是好的作用者(例如,人类)响应于特定的观察到的状态而会选择的那些动作。假设观察人类驾驶员。通过这个观察,许多形式为(st,at)的示例(其中st是状态,而at是人类驾驶员的动作)可以被获得、观察并且用作训练驾驶策略***的基础。例如,监督式学习可以用来学习策略π,使得π(st)≈at。这种方法有许多潜在的优点。首先,不要求定义奖励函数。其次,该学习是受监督的并且是离线发生的(不需要在学习过程中应用作用者)。这种方法的缺点在于:不同的人类驾驶员、甚至是相同的人类驾驶员在其策略选择中并不是确定性的。因此,对于||π(st)-at||非常小的函数的学习通常是不可行的。而且,随着时间的推移,即使是小的误差可能累积而产生较大的误差。
可以采用的另一种技术是基于策略的学习。此处,可以以参数形式来表达策略,并且使用合适的优化技术(例如,随机梯度下降)直接对策略进行优化。该方法是直接对以给出的问题进行求解。当然有很多方式来对这个问题求解。这种方法的一个优点在于:其直接解决了问题,因此往往导致良好的实际结果。一个潜在的缺点是:其往往需要“在线策略”训练,即π的学习是迭代过程,其中在迭代j时,具有不完美的策略πj,并为了构造下一个策略πj,必须在基于πj动作的同时与环境进行交互。
***还可以通过基于值的学习(学习Q或V函数)来训练。假设,能够学习对最佳值函数V*的良好近似。可以构建最佳策略(例如,通过依靠贝尔曼方程(Bellman equation))。有些版本的基于值的学习可以离线实施(称为“离线策略”训练)。基于值的方法的一些缺点可能是由于其强烈依赖于马尔可夫假设(Markovian assumptions)以及需要对复杂函数的近似(相比直接对策略近似,对值函数的近似可能更难)。
另一种技术可以包括基于模型的学习和规划(学习状态转变的概率并对寻找最优V的优化问题求解)。这些技术的组合也可以用来训练学习***。在这种方法中,可以学习过程的动态性,即,采取(st,at)并在下一个状态st+1上产生分布的函数。一旦学习了这个函数,可以求解最佳问题,以找到其值为最优的策略π。这就是所谓的“规划”。这种方法的一个优点可能在于:学习部分受到监督,并且可以通过观察三元组(st,at,st+1)而被离线应用。类似于“模仿”方法,这种方法的一个缺点可能在于:学习过程中小的误差可能积累并产生不适当执行的策略。
用于训练驾驶策略模块803的另一种方法可以包括将驾驶策略函数分解为语义上有意义的分量。这允许手动实施该策略的某些部分,这可以确保策略的安全性;以及使用强化学***衡、以及与其它驾驶员的类似于人的协商。从技术角度而言,强化学习方法可以结合几种方法,并提供易于操作的训练程序,其中大部分训练可以使用记录的数据或自构建的模拟器来执行。
在一些实施例中,驾驶策略模块803的训练可以依赖于“选项”机制。为了说明,考虑双车道高速公路的驾驶策略的简单情景。在直接RL方法中,策略π将状态映射到中,其中π(s)的第一个分量是期望的加速度命令,且π(s)的第二个分量是横摆率。在经修改的方法中,可以构建以下策略:
自动巡航控制(ACC)策略,oACC:S→A:该策略总是输出0的横摆率,并且仅改变速度以实现平稳且无事故的驾驶。
ACC+左策略,oL:S→A:该策略的纵向命令与ACC命令相同。横摆率是将车辆朝左车道的中间居中同时确保安全的横向移动(例如,如果在左侧有车,则不向左移动)的直接实施方式。
ACC+右策略,oR:S→A:与oL相同,但是车辆可以朝右车道的中间居中。
这些策略可以被称为“选项”。依靠这些“选项”,可以学习选择了选项的策略πo:S→O,其中O是一组可用选项。在一个情况下,O={oACC,oL,oR}。选项选择器策略πo通过对每个s设置来定义实际的策略π:S→A。
实践中,策略函数可以被分解为选项图901,如图9所示。图10中示出了另一个示例选项图1000。选项图可以表示被组织为有向非循环图(DAG)的分层决策集。存在一个称为图的根(root)节点903的特殊节点。该节点不具有传入(incoming)节点。决策过程从根节点开始遍历该图,直到其到达“叶”节点,该叶节点是指没有传出(outgoing)决策线的节点。如图9所示,叶节点可以包括例如节点905、907和909。在遇到叶节点时,驾驶策略模块803可以输出与期望导航动作相关联的加速和转向命令,该期望导航动作与叶节点相关联。
例如,诸如节点911、913和915的内部节点可引起策略的实施,该策略在其可用选项中选择子代(child)。内部节点的可用子代的集合包括经由决策线与特定内部节点相关联的所有节点。例如,图9中被指定为“并道(merge)”的内部节点913包括各自通过决策线与节点913相连的三个子代节点909、915和917(分别为“保持”、“右超车”和“左超车”)。
可以通过使节点能够调节其在选项图的层级中的位置而获得决策制定***的灵活性。例如,可以允许任何节点声明自己为“关键(critical)”。每个节点可以实施“是关键的(is critical)”函数,如果节点处于其策略实施的关键部分,则该函数输出“真”。例如,负责超车的节点可以在操纵中途声明自己为关键。这可对节点u的可用子代的集合施加约束,该节点u的可用子代可以包括作为节点u的子代的所有节点v,并且对于该所有节点v,存在从v到叶节点的经过所有被指定为关键的节点的路径。一方面,这种方法可以允许在每个时间步在图上声明期望路径,同时另一方面,可以保留策略的稳定性,特别是在策略的关键部分正在被实施时。
通过定义选项图,学习驾驶策略π:S→A的问题可以被分解成为对于图中的每个节点定义策略的问题,其中内部节点处的策略应当从可用的子代节点之中进行选择。对于一些节点,相应的策略可以手动实现(例如,通过如果-则(if-then)类型算法来指定响应于观察到的状态的一组动作),而对于其它策略可以使用通过强化学习构建的经训练的***来实施。在手动或经训练/学习的方法之间的选择可以取决于与任务相关联的安全方面以及取决于其相对简单性。可以以使得一些节点直接实施、而其它节点可以依赖于经训练的模型的方式,来构建选项图。这种方法可以确保***的安全运行。
以下讨论提供关于图9的选项图在驾驶策略模块803内的角色的进一步细节。如上所述,对驾驶策略模块的输入是“感测到的状态”,其概括了环境地图,例如,从可用的传感器获得的。驾驶策略模块803的输出是将轨迹定义为对优化问题的解的一组期望(可选地连同一组硬性约束)。
如上所述,选项图表示被组织为DAG的分层决策集。存在称为图的“根”的特殊节点。根节点是没有传入边(例如,决策线)的唯一节点。决策过程从根节点开始遍历该图,直到其到达“叶”节点,所述叶节点即没有传出边的节点。每个内部节点应当实施在其可用的子代之中挑选一个子代的策略。每个叶节点应实施基于从根到叶的整个路径定义一组期望(例如,主车辆的一组导航目标)的策略。该组期望连同基于感测到的状态而被直接定义的一组硬性约束一起建立了优化问题,该优化问题的解是车辆的轨迹。可以采用硬性约束来进一步提高***的安全性,并且该期望可以用于提供***的驾驶舒适性和类似于人的驾驶行为。作为优化问题的解而提供的轨迹进而定义了应该提供给转向、制动和/或引擎致动器的命令,以便完成该轨迹。
返回图9,选项图901表示双车道高速公路的选项图,包括并入车道(意味着在某些点,第三车道并入到高速公路的右侧车道或左侧车道中)。根节点903首先决定主车辆是处于普通道路情景还是接近并道情景。这是可以基于感测状态而实施的决策的示例。普通道路节点911包括三个子节点:保持节点909、左超车节点917和右超车节点915。保持是指主车辆想要继续在相同车道中行驶的情况。保持节点是叶节点(没有传出边/线)。因此,保持节点定义了一组期望。其定义的第一个期望可以包括期望的横向位置——例如,尽可能接近当前行驶车道的中心。还可以存在平稳地导航(例如,在预定的或可允许的加速度最大值内)的期望。保持节点还可以定义主车辆如何对其它车辆作出反应。例如,保持节点可以查看感测到的目标车辆并且为每个车辆分配语义含义,该语义含义可以被转换成轨迹的分量。
各种语义含义可以被分配给主车辆的环境中的目标车辆。例如,在一些实施例中,语义含义可以包括以下指定中的任意者:1)不相关:指示场景中感测到的车辆当前不相关;2)下一车道:指示感测到的车辆在相邻车道中并且相对于该车辆应当保持适当的偏移(准确的偏移可以在优化问题中计算,该优化问题在给定期望和硬性约束下构建轨迹,并且该准确的偏移可以潜在地是取决于车辆的——选项图的保持叶设定目标车辆的语义类型,其定义相对于目标车辆的期望);3)让路:主车辆将尝试通过例如降低速度让路给感测到的目标车辆(特别是在主车辆确定目标车辆很可能切入主车辆的车道的情况下);4)占道(takeway):主车辆将尝试通过例如增加速度占用路权;5)跟随:主车辆期望跟随在该目标车辆后保持平稳驾驶;6)左/右超车:这意味着主车辆想要发起到左或右车道的变道。左超车节点917和右超车节点915是尚未定义期望的内部节点。
选项图901中的下一个节点是选择间隙节点919。该节点可以负责选择主车辆期望进入的特定目标车道中的两个目标车辆之间的间隙。通过选择形式IDj的节点,对于j的某个值,主车辆到达为轨迹优化问题指定了期望的叶——例如,主车辆希望进行操纵以便到达所选择的间隙。这种操纵可能涉及首先在当前车道中加速/制动,然后在适当的时间前往目标车道以进入所选择的间隙。如果选择间隙节点919不能找到适当的间隙,则其移动到中止节点921,中止节点921定义了回到当前车道的中心并取消超车的期望。
返回到并道节点913,当主车辆接近并道时,其具有可取决于特定情况的若干选项。例如,如图11A所示,主车辆1105沿着双车道道路行驶,其中在双车道道路的主车道或并入车道1111中没有检测到其它目标车辆。在这种情况下,驾驶策略模块803在到达并道节点913时可以选择保持节点909。也就是说,在没有目标车辆被感测为并道到车行道上的情况下,可以期望保持在其当前车道内。
在图11B中,情况稍有不同。此处,主车辆1105感测到从并入车道1111进入主车行道1112的一个或多个目标车辆1107。在这种情况下,一旦驾驶策略模块803遇到并道节点913,它可以选择发起左超车操纵,以避免并道情况。
在图11C中,主车辆1105遇到从并入车道1111进入主车行道1112的一个或多个目标车辆1107。主车辆1105还检测在与主车辆的车道相邻的车道中行驶的目标车辆1109。主车辆还检测到在与主车辆1105相同的车道上行驶的一个或多个目标车辆1110。在这种情况下,驾驶策略模块803可以决定调节主车辆1105的速度,以为目标车辆1107让路并且前进到目标车辆1115前面。这可以例如通过以下方式来实现:进行到选择间隙节点919,该间隙节点919进而将选择ID0(车辆1107)和ID1(车辆1115)之间的间隙作为适当的并道间隙。在这种情况下,并道情况的适当间隙定义了轨迹规划器优化问题的目标。
如上所述,选项图的节点可以声明其自己为“关键”,这可以确保所选择的选项通过关键节点。形式上,每个节点可以实施IsCritical函数。在选项图上从根到叶执行正向传递,并且对轨迹规划器的优化问题求解之后,可以从叶返回到根执行反向传递。沿着这个反向传递,可以调用传递中所有节点的IsCritical函数,并且可以保存所有关键节点的列表。在对应于下一时间帧的正向路径中,可能需要驾驶策略模块803选择从根节点到叶的经过所有关键节点的路径。
图11A至图11C可用于显示该方法的潜在益处。例如,在发起超车动作并且驾驶策略模块803到达对应于IDk的叶的情况下,例如当主车辆处于超车操纵的中途时,将不希望选择保持节点909。为了避免这种跳动,IDj节点可以将其自己指定为关键。在操纵期间,可以监测轨迹规划器的成功,并且如果超车操纵按预期进行,则函数IsCritical将返回“真”值。此方法可以确保在下一时间帧内,超车操纵将继续(而不是在完成最初选择的操纵之前跳到另一个潜在不一致的操纵)。另一方面,如果对操纵的监测指示所选择的操纵没有按预期进行,或者如果操纵变得不必要或不可能,则IsCritical函数可以返回“假”值。这可以允许选择间隙节点在下一时间帧中选择不同的间隙,或完全中止超车操纵。此方法一方面可以允许在每个时间步在选项图上声明期望的路径,同时在另一方面,可以在执行的关键部分时帮助提高策略的稳定性。
将在下面更详细地讨论的硬性约束可以与导航期望不同。例如,硬性约束可以通过对规划的导航动作应用添加的过滤层来确保安全驾驶。可以根据感测到的状态来确定所涉及的硬性约束,该硬性约束可以被手动地编程和定义,而不是通过使用在强化学习之上建立的经训练的***。然而,在一些实施例中,经训练的***可以学习要应用和遵循的可适用的硬性约束。这种方法可以促使驾驶策略模块803到达已经符合可适用的硬性约束的所选动作,这可以减少或消除可能需要稍后修改以符合可适用的硬性约束的所选动作。尽管如此,作为冗余安全措施,即使在驾驶策略模块803已经被训练以应对预定硬性约束的情况下,也可以对驾驶策略模块803的输出应用硬性约束。
存在许多潜在的硬性约束的示例。例如,可以结合道路边缘上的护栏来定义硬性约束。在任何情况下都不允许主车辆通过护栏。这种规则引发对主车辆的轨迹的硬性横向约束。硬性约束的另一个示例可以包括道路颠簸(例如,速度控制颠簸),其可以在颠簸之前以及在正穿过颠簸时引发对驾驶速度的硬性约束。硬性约束可以被认为是安全性的关键,因此可以手动定义,而不是仅仅依靠在训练期间学习约束的经训练的***。
与硬性约束相对照,期望的目标可以是使实现或达到舒适的驾驶。如以上所讨论的,期望的示例可以包括将主车辆置于车道内的与主车辆车道的中心对应的横向位置处的目标。另一个期望可能包括适合进入的间隙的ID。注意,不要求主车辆精确地处于车道中心,而是,尽可能靠近它的期望可以确保,即使在偏离车道中心的情况下,主车辆也倾向于迁移到车道的中心。期望可能不是安全性的关键。在一些实施例中,期望可能需要与其它驾驶员和行人协商。构建期望的一种方法可以依赖于选项图,并且在图的至少一些节点中实现的策略可以基于强化学习。
对于实施为基于学习而训练的节点的选项图901或1000的节点,训练过程可以包括将问题分解成监督式学习阶段和强化学习阶段。在监督式学习阶段,可以学习从(st,at)到的可微(differentiable)映射,使得/>这可以类似于“基于模型”的强化学习。然而,在网络的前向环路中,可以用st+1的实际值来代替/>从而消除了误差累积的问题。/>的预测的作用是将消息从未来传播回到过去的动作。在这个意义上,该算法可以是“基于模型”的强化学习与“基于策略的学习”的组合。
在某些情景下可以提供的重要元素是从未来损失/奖励回到对动作的决策的可微路径。通过选项图结构,涉及安全约束的选项的实现通常是不可微的。为了克服这个问题,对学习的策略节点中的子代的选择可以是随机的。也就是说,节点可以输出概率向量p,其分配在选取特定节点的每个子代中使用的概率。假设节点有k个子代,并令a(1),...,a(k)为从每个子代到叶的路径的动作。所得到的预测动作因此为这可以导致从该动作到p的可微路径。在实践中,动作a可以被选取为对于i~p为a(i),并且a和/>之间的差可以被称为加性噪声。
对于给定st、at下的训练,可以将监督式学习与真实数据一起使用。对于节点策略的训练,可以使用模拟器。之后,可以使用真实数据完成策略的微调。两个概念可以使模拟更加真实。首先,使用模仿,可以使用“行为克隆”范式,使用大型现实世界数据集来构建初始策略。在某些情况下,所得到的作用者可以是合适的。在其它情况下,所得到的作用者至少形成对于道路上的其它作用者的非常好的初始策略。其次,使用自我发挥(self-play),我们自己的策略可被用来加强训练。例如,给定了可能经历的其它作用者(汽车/行人)的初始实施,则可以基于模拟器对策略进行训练。一些其它作用者可被新的策略取代,并且可以重复该过程。因此,该策略能够继续改善,因为其应该对更多种类的具有不同复杂级别的其它作用者做出响应。/>
此外,在一些实施例中,***可以实施多作用者方法。例如,该***可以考虑来自各种源的数据和/或从多个角度捕捉的图像。此外,一些公开的实施例可以提供能量的经济性,因为可以考虑不直接涉及主车辆但可能对主车辆具有影响的事件的预期,或者甚至对可能导致涉及其它车辆的不可预测情况的事件的预期可以是考虑因素(例如,雷达可能“看穿(see through)”前方车辆以及不可避免的预期、或者甚至将影响主车辆的事件的高可能性)。
带有施加的导航约束的经训练的***
在自主驾驶的情况下,重要关注的是如何确保经训练的导航网络的经学习的策略是安全的。在一些实施例中,可以使用约束来训练驾驶策略***,使得由经训练的***选择的动作已经可以应对(account for)可适用的安全约束。另外,在一些实施例中,可以通过将经训练的***的所选动作经过主车辆的环境中的特定的感测到的场景所涉及的一个或多个硬性约束而传递,来提供额外的安全层。这种方法可以确保主车辆采取的动作被限制为被确认为满足可适用的安全约束的那些动作。
在其核心,导航***可以包括基于将观察到的状态映射到一个或多个期望动作的策略函数的学习算法。在一些实施方式中,学习算法是深度学习算法。期望的动作可以包括预期使车辆的预期奖励最大化的至少一个动作。虽然在一些情况下,车辆采取的实际动作可以对应于期望动作中的一个,但是在其它情况下,可以基于观察到的状态、一个或多个期望动作和对学习导航引擎施加的非学习的硬性约束(例如,安全约束)来确定采取的实际动作。这些约束可以包括围绕各种类型的检测到的对象(例如,目标车辆、行人、道路侧或车行道上的静止对象、道路侧或车行道上的移动对象、护栏等等)的禁止驾驶区。在一些情况下,该区的大小可以基于检测到的对象的检测到的运动(例如,速度和/或方向)而变化。其它约束可以包括在行人的影响区内穿行时的最大行驶速度、最大减速度(来应对主车辆后方的目标车辆间距)、在感测到的人行横道或铁路道口处的强制停止等。
与通过机器学习训练的***结合使用的硬性约束可以在自主驾驶中提供一定程度的安全性,其可以超过仅基于经训练的***的输出可达到的安全性程度。例如,可以使用期望的一组约束作为训练指导来训练机器学习***,并且因此,经训练的***可以响应于感测到的导航状态而选择动作,该动作应对并遵守可适用的导航约束的限制。然而,经训练的***在选择导航动作方面仍具有一定的灵活性,并且因此,可能存在至少在某些情况,在这些情况下,由经训练的***选择的动作可以不严格遵守相关的导航约束。因此,为了要求所选动作严格遵守相关的导航约束,可以使用在学习/经训练的框架之外的、保证严格适用相关的导航约束的非机器学习组件对经训练的***的输出进行组合、比较、过滤、调节、修改等。
以下讨论提供了关于经训练的***以及从将经训练的***与在经训练的/学习框架外的算法组件组合而收集的潜在益处(特别是从安全角度而言)的附加细节。如所述,可以通过随机梯度上升来优化策略的强化学习目标。目标(例如,预期奖励)可以被定义为
涉及期望的目标可以用于机器学***稳的超车,并且惩罚在车道中停留而未完成超车——因此,范围为[-1,1]。如果序列/>表示事故,那么奖励-r应该提供足够高的惩罚来阻止这种情况出现。问题是确保无事故驾驶的值r应该是什么。
观察到,事故对的影响是附加项-pr,其中p是带有事故事件的轨迹的概率质量。如果该项是可忽略不计的,即,p<<1/r,则与以使得某些超车操纵没有成功完成为代价而会更加防御性的策略相比,学习***可以更经常优选进行事故以便成功地履行超车操纵的策略(或者通常采用不计后果的驾驶策略)。换言之,如果事故的概率至多为p,那么必须设定r使得r>>1/p。可以期望使p非常小(例如,在p=10-9的数量级)。因此,r应该很大。在策略梯度中,可以估计/>的梯度。以下引理表明,随机变量/>的方差随着pr2而增长,该方差对于r>>1/p而言是大于r的。因此,估计目标可能是困难的,估计其梯度可能更加困难。
引理:令πo为策略,并且令p和r是标量,使得在概率p下获得并且在概率1-p下获得/>那么,
其中,最终近似适用于r≥1/p的情况。
该讨论表明,形式为的目标可能不会确保功能安全性而不引起方差问题。用于降低方差的基线减法方法可能无法为该问题提供足够的补救措施,因为该问题将从的高方差偏移到基线常数的同样高的方差,该基线常数的估计同样会遭受数值不稳定。而且,如果事故的概率为p,那么在获得事故事件之前,平均应采样至少1/p个序列(sequences)。这意味着,用于目标在于在使/>最小化的学习算法的序列的1/p个样本的下限。这个问题的解可以在本文描述的架构设计中找到,而不是通过数字调节技术。此处的方法是基于这样的观念:应该在学习框架之外注入硬性约束。换言之,策略函数可以分解为可学习部分和不可学习部分。形式上,策略函数可以被构造为/>其中/>将(不可知的)状态空间映射到一组期望(例如,期望的导航目标等),而π(T)将该期望映射到轨迹(其可确定汽车在短距离内应该如何移动)。函数π(T)负责驾驶的舒适性和制定策略性决定,诸如哪些其它汽车应该被超车或被让路、以及主车辆在其车道内的期望位置是什么等等。从感测到的导航状态到期望的映射是策略/>其可以通过使预期奖励最大化而从经验中学习。由/>产生的期望可以转化为在驾驶轨迹上的代价函数。函数π(T),非学习的函数,可以通过寻找使在功能安全性上受到硬性约束的代价最小化的轨迹来实现。这种分解可以确保功能安全性,而同时提供舒适的驾驶。
如图11D所示,双并道导航情况提供了进一步示出这些概念的示例。在双并道中,车辆从左侧和右侧两侧接近并道区域1130。并且,从每侧,车辆(诸如车辆1133或车辆1135)可以决定是否并道至并道区域1130的另一侧的车道中。在繁忙交通中成功执行双并道可能需要显著的协商技巧和经验,并且可能难以通过枚举场景中所有作用者可能采取的所有可能的轨迹而以启发式或蛮力方法来执行。在该双并道的示例中,可以定义适合于双并道操纵的一组期望 可以是以下集合的笛卡尔乘积:
其中,[0,vmax]是主车辆的期望的目标速度,L={1,1.5,2,2.5,3,3.5,4}是以车道为单位的期望的横向位置,其中整数表示车道中心,分数表示车道边界,而{g,t,o}是分配给n个其它车辆中的每个的分类标签。如果主车辆要给另一车辆让路,则另一车辆可以被分配“g”,如果主车辆要相对于另一车辆占道,则另一车辆可以被分配“t”,或者如果主车辆要相对于另一车辆保持偏移距离,则另一车辆可以被分配“o”。
下面描述了一组期望如何可以转化为对于驾驶轨迹的代价函数。驾驶轨迹可以由(x1,y1),...,(xk,yk)表示,其中(xi,yi)为主车辆在时间τ·i处的(横向,纵向)位置(以自我为中心的单位),在一些实验中,τ=0.1秒并且k=10。当然,还可以选择其它值。分配给轨迹的代价可以包括分配给期望的速度、横向位置以及分配给其它n个车辆中的每个车辆的标签的各个代价的加权总和。
给定期望的速度υ∈[0,υmax],与速度相关联的轨迹的代价为
给定期望的横向位置l∈L,与期望的横向位置相关联的代价为
其中dist(x,y,l)是从点(x,y)到车道位置l的距离。关于由于其它车辆导致的代价,对于任何其它车辆,(x′1,y′1),...,(x′k,y′k)可以表示以主车辆的自我为中心的单位的其它车辆,并且i可以是最早的点,对于该点,存在j,使得(xi,yi)与(x’j,y’j)之间的距离很小。如果没有这样的点,则i可被设置为i=∞。如果另一车辆被分类为“让路”,则可以期望τi>τj+0.5,这意味着主车辆将在另一车辆到达达轨迹相交点后至少0.5秒后到同一点。用于将上述约束转换为代价的可能的公式为[τ(j-i)+0.5]+。
同样,如果另一汽车被分类为“占道”,可以期望τj>τi+0.5,其可以转化为代价[τ(i-j)+0.5]+。如果另一汽车被分类为“偏移”,则可以期望i=∞,这意味着主车辆的轨迹和偏移汽车的轨迹不相交。可以通过相对于轨迹之间的距离进行惩罚,将这种情况转化为代价。
为这些代价中的每一个分配权重可以提供对于轨迹规划器的单个目标函数π(T)。鼓励平稳驾驶的代价可以被添加至该目标。而且,为了确保轨迹的功能安全性,可以将硬性约束添加至该目标。例如,可以禁止(xi,yi)离开车行道,并且如果|i–j|小,则可以对于任何其它车辆的任何轨迹点(x’j,y’j),禁止(xi,yi)接近(x’j,y’j)。
概括而言,策略πθ可以被分解成从不可知状态到一组期望的映射以及从期望到实际轨迹的映射。后一种映射不是基于学习的,并且可以通过求解优化问题来实现,该优化问题的代价取决于期望,并且该优化问题的硬性约束可以保证该策略的功能安全性。
以下讨论描述从不可知状态到该组期望的映射。如上所述,为了符合功能安全性,仅依靠强化学习的***可能遭受关于奖励的高的且难处理的方差。通过使用策略梯度迭代将问题分解成从(不可知的)状态空间到一组期望的映射以及其后的不涉及基于机器学习训练的***的到实际轨迹的映射,可以避免该结果。
出于各种原因,决策制定可以被进一步分解为语义上有意义的分量。例如,的大小可能是大的甚至连续的。在以上关于图11D描述的双并道场景中,另外,梯度估计量(estimator)可能涉及项在这样的表达式中,方差可以随着时间范围T增长。在某些情况下,T的值可大致为250,这可能足够高以创建显著的方差。假设采样率在10Hz范围内,并且并道区域1130为100米,则并道的准备可以在并道区域之前大约300米处开始。如果主车辆以每秒16米(约每小时60公里)行驶,则对于片段(episode)的T的值可以大致为250。
回到选项图的概念,图11E中示出了可以表示图11D中描绘的双并道情景的选项图。如前所述,选项图可以表示组织为有向非循环图(DAG)的分层决策集。在该图中可以存在被称为“根”节点1140的特殊节点,其可以是没有传入边(例如,决策线)的唯一节点。决策过程可以从根节点开始遍历该图,直到其到达“叶”节点,即,没有传出边的节点。每个内部节点可以实施从其可用子代中选择一子代的策略函数。可以存在从选项图上的一组遍历到一组期望的预定映射。换言之,在选项图上的遍历可以被自动转换为/>中的期望。给定图中的一节点v,参数向量θv可以指定选择v的子代的策略。如果θ是所有θv的联结(concatenation),那么,可以通过从图的根遍历到叶来定义/>同时在每个节点v处使用由θv定义的策略来选择子代节点。
在图11E中的双并道选项图1139中,根节点1140可首先判定主车辆是否在并道区域内(例如,图11D中的区域1130),或者主车辆是否正在接近并道区域并且需要为可能的并道做准备。在这两种情况下,主车辆可能需要决定是否改变车道(例如,向左侧或向右侧)或是否保持在当前车道中。如果主车辆已决定改变车道,则主车辆可能需要决定条件是否适合继续并执行车道改变操纵(例如,在“继续”节点1142处)。如果不能改变车道,则主车辆可以尝试通过以处于车道标记上为目标,而朝着期望的车道“推进”(例如,在节点1144处,作为与期望车道中的车辆的协商的一部分)。替代地,主车辆可以选择“保持”在同一车道中(例如,在节点1146处)。这种过程可以以自然的方式确定主车辆的横向位置。例如,
这可以使能够以自然的方式确定期望的横向位置。例如,如果主车辆将车道从车道2改变为车道3,则“继续”节点可以将期望的横向位置设置为3,“保持”节点可以将期望的横向位置设置为2,而“推进”节点可以将期望的横向位置设置为2.5。接下来,主车辆可以决定是维持“相同”速度(节点1148)、“加速”(节点1150)或是“减速”(节点1152)。接下来,主车辆可以进入超越其它车辆并且将它们的语义含义设置为集合{g,t,o}中的值的“链状”结构1154。这个过程可以设置相对于其它车辆的期望。该链中所有节点的参数可以共享(类似于循环神经网络)。
这些选项的潜在益处是结果的可解释性。另一个潜在益处在于可以依赖集合的可分解结构,并且因此,可以从少数的可能性之中选择每个节点处的策略。另外,该结构可以允许降低策略梯度估计量的方差。
如上所述,双并道场景中片段的长度可以大致为T=250个步长。这样的值(或取决于特定的导航情景的任何其它合适的值)可以提供足够的时间来看到主车辆动作的后果(例如,如果主车辆决定改变车道作为并道的准备,主车辆将仅在成功完成并道后看到益处)。另一方面,由于驾驶的动态性,主车辆必须以足够快的频率(例如,在上述情况下为10Hz)做出决策。
选项图可以使能够以至少两种方式降低T的有效值。首先,给定较高等级的决策,可以为较低等级的决策定义奖励,同时考虑较短的片段。例如,当主车辆已经选择了“车道改变”和“继续”节点时,可以通过观看2至3秒的片段(意味着T变为20-30,而不是250)学习用于为车辆分配语义含义的策略。其次,对于高等级决策(诸如是否改变车道或保持在同一车道),主车辆可能不需要每0.1秒做出决策。而是,主车辆能够以较低频率(例如,每秒)作出决策,或者实现“选项终止”功能,然后可以仅在每次选项终止之后计算梯度。在这两种情况下,T的有效值可能比其原始值小一个数量级。总而言之,每个节点处的估计量可以取决于T的值,其比原始的250个步长小一个数量级,这可以立即转移到较小的方差。
如上所述,硬性约束可以促进更安全的驾驶,并且可以存在几种不同类型的约束。例如,可以直接根据感测状态定义静态硬性约束。这些硬性约束可包括在主车辆的环境内的减速带、速度限制、道路弯曲、交叉口等,其可能涉及对车辆速度、航向、加速、制动(减速)等的一个或多个约束。静态硬性约束还可以包括语义上的自由空间,其中,例如,主车辆被禁止驶出自由空间之外,以及被禁止导航太靠近物理障碍。静态硬性约束还可以限制(例如,禁止)不符合车辆的运动学运动的各个方面的操纵,例如,可以使用静态硬性约束来禁止可能导致主车辆翻转、滑动或者其它失去控制的操纵。
硬性约束还可以与车辆相关联。例如,可以采用一约束,该约束要求车辆保持与其它车辆的至少一米的纵向距离和与其它车辆的至少0.5米的横向距离。还可以应用约束,使得主车辆将避免保持与一个或多个其它车辆的碰撞路线。例如,时间τ可以是基于特定场景的时间度量。可以从当前时间到时间τ考虑主车辆和一个或多个其它车辆的预测轨迹。在两条轨迹相交的情况下,可以表示车辆i到达和离开相交点的时间。也就是说,每辆汽车将在汽车的第一部分通过相交点时到达该点处,并且在汽车的最后部分通过该相交点之前需要一定时间量。该时间量将到达时间与离开时间分开。假设/>(即,车辆1的到达时间小于车辆2的到达时间),那么我们将希望确保在车辆2到达之前车辆1已经离开相交点。否则,将导致碰撞。因此,可以实施硬性约束使得/>并且,为了确保车辆1和车辆2不以最小量彼此错开,通过将缓冲时间(例如,0.5秒或另一适当值)包括在约束中,可以获得附加的安全余量。与两车辆的预测的相交轨迹有关的硬性约束可以表示为/>
主车辆和一个或多个其它车辆的轨迹被追踪的时间量τ可以变化。然而,在交叉口情景中,速度可能较低,τ可能较长,并且τ可以被定义为使得主车辆将在小于τ秒内进入和离开交叉口。
当然,对车辆轨迹应用硬性约束要求预测那些车辆的轨迹。对于主车辆而言,轨迹预测可能相对直接,因为主车辆通常已经理解并且实际上正在规划在任何给定时间的预期轨迹。相对于其它车辆,预测它们的轨迹可能不那么直接。对于其它车辆而言,用于确定预测轨迹的基线计算可能依赖于其它车辆的当前速度和航向,例如,如基于对由主车辆上的一个或多个相机和/或其它传感器(雷达、激光雷达、声学等)捕捉的图像流的分析所确定的。
然而,可能存在一些例外,其可以简化问题或者至少提供在对于另一车辆预测的轨迹中的增加的置信度。例如,关于存在车道指示的结构化道路并且在可能存在让路规则的情况下,其它车辆的轨迹可以至少部分地基于其它车辆相对于车道的位置以及基于可适用的让路规则。因此,在一些情况下,当存在观察到的车道结构时,可以假设邻近车道的车辆将遵守车道边界。也就是说,主车辆可以假设邻近车道的车辆将保持在其车道中,除非存在观察到的指示邻近车道的车辆将切入主车辆的车道中的证据(例如,信号灯、强的横向运动、跨车道边界的移动)。
其它情况也可以提供关于其它车辆的预期轨迹的线索。例如,在其中主车辆可以有路权的停车标志、交通灯、环形道等处,可以假设其它车辆将遵守该路权。因此,除非观察到违反规则的证据,否则可以假设其它车辆沿着遵守主车辆拥有的路权的轨迹继续前进。
还可以相对于主车辆环境中的行人应用硬性约束。例如,可以相对于行人建立缓冲距离,使得禁止主车辆相对于任何观察到的行人比规定的缓冲距离更近地行驶。行人缓冲距离可以是任何合适的距离。在一些实施例中,缓冲距离可以是相对于观察到的行人至少一米。
类似于车辆的情况,还可以相对于行人与主车辆之间的相对运动来应用硬性约束。例如,可以相对于主车辆的预计轨迹来监测行人的轨迹(基于航向和速度)。给定特定的行人轨迹,对于轨迹上的每个点p,t(p)可以表示行人到达点p所需的时间。为了保持所要求的距行人至少1米的缓冲距离,t(p)必须大于主车辆将到达点p的时间(具有足够的时间差,使得主车辆在行人的前方至少一米的距离通过),或者t(p)必须小于主车辆将到达点p的时间(例如,如果主车辆制动来为行人让路)。尽管如此,在后一示例中,硬性约束可以要求主车辆在晚于行人足够的时间到达点p,使得主车辆可以在行人后方通过,并且维持所要求的至少一米的缓冲距离。当然,对行人的硬性约束可以存在例外。例如,在主车辆具有路权或速度非常缓慢、并且没有观察到行人将拒绝为主车辆让路或将以其它方式朝向主车辆行进的证据的情况下,可以放松(relax)行人硬性约束(例如,到至少0.75米或0.50米的较小缓冲)。
在一些示例中,在确定不是全部约束都可以被满足的情况下,可以放松约束。例如,在道路太窄而不能留出与两路缘或与路缘和停放车辆的所需间距(例如0.5米)的情况下,如果存在减轻情况,则可以放松一个或多个约束。例如,如果人行道上没有行人(或其它对象),则可以在离路缘0.1米处缓慢行驶。在一些实施例中,如果放松约束会改善用户体验,则可以放松约束。例如,为了避免坑洼,可以放松约束以允许车辆比通常可能允许的更靠近车道边缘、路缘或行人。此外,在确定哪些约束要放松时,在一些实施例中,选择要放松的一个或多个约束是被认为对安全性具有最小可能负面影响的那些约束。例如,在放松涉及与其它车辆的接近度的约束之前,可以放松关于车辆可以有多接近于路缘或混凝土障碍而行驶的约束。在一些实施例中,行人约束可以是最后被放松的,或者在某些情况下可能永远不被放松。
图12示出可在主车辆的导航期间捕捉和分析的场景的示例。例如,主车辆可以包括如上所述的导航***(例如,***100),其可以从与主车辆相关联的相机(例如,图像捕捉设备122、图像捕捉设备124和图像捕捉设备126中的至少一个)接收表示主车辆的环境的多个图像。图12中所示的场景是可以在时间t从沿着预测轨迹1212在车道1210中行驶的主车辆的环境捕捉的图像之一的示例。导航***可以包括至少一个处理设备(例如,包括上述的EyeQ处理器或其它设备的任意者),该至少一个处理设备被专门编程为接收多个图像并分析图像以确定响应于场景的动作。具体而言,如图8所示,至少一个处理设备可以实现感测模块801、驾驶策略模块803和控制模块805。感测模块801可以负责收集并输出从相机收集的图像信息,并且将该信息以所识别的导航状态的形式提供至驾驶策略模块803,其可以构成已经通过机器学习技术(诸如监督式学习、强化学习等)训练的经训练的导航***。基于由感测模块801提供至驾驶策略模块803的导航状态信息,驾驶策略模块803(例如,通过实施上述的选项图方法)可以生成用于由主车辆响应于所识别的导航状态而执行的期望导航动作。
在一些实施例中,至少一个处理设备可以使用例如控制模块805,将期望导航动作直接转换成导航命令。然而,在其它实施例中,可以应用硬性约束,使得针对场景和期望导航动作可能涉及的各种预定导航约束,测试由驾驶策略模块803提供的期望导航动作。例如,在驾驶策略模块803输出将引起主车辆遵循轨迹1212的期望导航动作的情况下,可以相对于与主车辆的环境的各个方面相关联的一个或多个硬性约束来测试该导航动作。例如,捕捉的图像1201可以揭示路缘1213、行人1215、目标车辆1217以及存在于场景中的静止对象(例如,翻倒的箱子)。这些中的每个都可以与一个或多个硬性约束相关联。例如,路缘1213可以与禁止主车辆行驶进入路缘或经过路缘并且到人行道1214上的静态约束相关联。路缘1213还可以与路障包络(envelope)相关联,该路障包络限定了远离路缘(例如,0.1米、0.25米、0.5米、1米等)并且沿着路缘延伸的距离(例如,缓冲区),该距离限定了主车辆的不可驶入区。当然,静态约束还可以与其它类型的路侧边界(例如,护栏、混凝土柱、交通锥标、桥塔或任何其它类型的路侧障碍)相关联。
应注意,距离和范围可以通过任何合适的方法来确定。例如,在一些实施例中,距离信息可以由车载雷达和/或激光雷达***提供。替代地或另外地,距离信息可以从对从主车辆的环境捕捉的一个或多个图像的分析中得出。例如,可以确定图像中表示的已辨识的对象的多个像素,并将其与图像捕捉设备的已知视场和焦距几何结构进行比较,以确定比例和距离。例如,可以通过观察在已知时间间隔内从图像到图像的对象之间的比例变化,来确定速度和加速度。该分析可以指示对象朝着主车辆或者远离主车辆的运动方向、以及对象正在多快地远离主车辆或朝主车辆过来。可以通过分析在已知时间段内从一个图像到另一个图像的对象X坐标位置的变化来确定穿越速度。
行人1215可以与限定了缓冲区1216的行人包络相关联。在一些情况下,施加的硬性约束可以禁止主车辆在离行人1215一米的距离内(在相对于行人1215的任何方向)导航。行人1215还可以限定行人影响区1220的位置。这种影响区可以与限制主车辆在影响区内的速度的约束相关联。影响区可以从行人1215延伸5米、10米、20米等。影响区的每个等级(graduation)可以与不同的速度限制相关联。例如,在离行人1215一米至五米的区域内,主车辆可以被限制为第一速度(例如,10mph(每小时英里数)、20mph等),该第一速度可以小于从5米延伸至10米的行人影响区中的速度限制。可以使用对于影响区的各级的任何分级。在一些实施例中,第一级可以比从一米到五米更窄,并且可以仅从一米延伸到两米。在其它实施例中,影响区的第一级可从一米(围绕行人的不可驶入区的边界)延伸至至少10米的距离。第二级又可以从十米延伸到至少约二十米。第二级可以与主车辆的最大行驶速率相关联,其大于与行人影响区的第一级相关联的最大行驶速率。
一个或多个静止对象约束也可以与主车辆的环境中检测到的场景有关。例如,在图像1201中,至少一个处理设备可以检测静止对象,诸如存在于车行道中的箱子1219。检测到的静止对象可以包括各种对象,诸如树、杆、道路标志或车行道中的对象中的至少一个。一个或多个预定导航约束可以与检测到的静止对象相关联。例如,这种约束可以包括静止对象包络,其中静止对象包络限定了关于对象的缓冲区,在该缓冲区内可以禁止主车辆的行驶。缓冲区的至少一部分可以从检测到的静止对象的边缘延伸预定距离。例如,在由图像1201表示的场景中,至少0.1米、0.25米、0.5米或更大的缓冲区可以与箱子1219相关联,使得主车辆将以至少某个距离(例如,缓冲区距离)在箱子的右侧或左侧通过,以避免与检测到的静止对象的碰撞。
预定的硬性约束还可以包括一个或多个目标车辆约束。例如,可以在图像1201中检测到目标车辆1217。为了确保主车辆不与目标车辆1217碰撞,可以采用一个或多个硬性约束。在一些情况下,目标车辆包络可以与单个缓冲区距离相关联。例如,可以通过在所有方向上围绕目标车辆1米的距离来限定缓冲区。缓冲区可以限定从目标车辆延伸至少一米的区域,禁止主车辆行驶到该区域中。
然而,围绕目标车辆1217的包络不需要由固定的缓冲距离限定。在一些情况下,与目标车辆(或在主车辆的环境中检测到的任何其它可移动对象)相关联的预定硬性约束可取决于主车辆相对于检测到的目标车辆的方位。例如,在一些情况下,纵向缓冲区距离(例如,从目标车辆向主车辆的前方或后方延伸的距离——诸如在主车辆正朝着目标车辆行驶的情况下)可以为至少一米。横向缓冲区距离(例如,从目标车辆向主车辆的任一侧延伸的距离——诸如当主车辆以与目标车辆相同或相反的方向行驶时,使得主车辆的一侧将邻近目标车辆的一侧而通过)可以为至少0.5米。
如上所述,对主车辆的环境中的目标车辆或行人的检测还可能涉及其它约束。例如,可以考虑主车辆和目标车辆1217的预测轨迹,并且在两个轨迹相交(例如,在相交点1230处)的情况下,硬性约束可以要求或者/>其中主车辆为车辆1,而目标车辆1217为车辆2。类似地,可以相对于主车辆的预计轨迹来监测行人1215的轨迹(基于前进方向和速度)。给定特定的行人轨迹,对于轨迹上的每个点p上,t(p)将表示行人到达点p(即,图12中的点1231)所需的时间。为了保持所要求的距行人至少1米的缓冲距离,t(p)必须大于主车辆将到达点p的时间(具有足够的时间差,使得主车辆在行人前方以至少一米的距离通过),或者t(p)必须小于主车辆将到达点p的时间(例如,如果主车辆制动来为行人让路)。尽管如此,在后一示例中,硬性约束将要求主车辆以晚于行人的足够的时间到达点p,使得主车辆可以在行人后方通过,并且保持所要求的至少一米的缓冲距离。
还可以采用其它硬性约束。例如,至少在一些情况下,可以采用主车辆的最大减速率。这种最大减速率可以基于检测到的距跟随主车辆的目标车辆的距离(例如,使用从后向相机收集的图像)而被确定。硬性约束可以包括在感测到的人行横道或铁路道口处的强制停止、或其它可适用的约束。
在对主车辆的环境中的场景的分析指示可能涉及一个或多个预定导航约束的情况下,可以相对于主车辆的一个或多个规划的导航动作来施加这些约束。例如,在对场景的分析导致驾驶策略模块803返回期望导航动作的情况下,可以针对一个或多个涉及的约束来测试该期望导航动作。如果期望导航动作被确定为违反所涉及的约束的任何方面(例如,如果期望导航动作将使主车辆在行人1215的0.7米的距离内,其中预定硬性约束要求主车辆保持距离行人1215至少1.0米),则可以基于一个或多个预定导航约束对期望导航动作做出至少一个修改。以这种方式调节期望导航动作可以为主车辆提供遵循在主车辆的环境中检测到的特定场景所涉及的约束的实际导航动作。
在确定主车辆的实际导航动作之后,可以通过响应于所确定的主车辆的实际导航动作而引起对主车辆的导航致动器的至少一个调节,来实现该导航动作。这种导航致动器可以包括主车辆的转向机构、制动器或加速器中的至少一个。
优先的约束
如上所述,导航***可采用各种硬性约束来确保主车辆的安全操作。约束可以包括相对于行人、目标车辆、路障或检测到的对象的最小安全驾驶距离、当在检测到的行人的影响区内通过时的最大行驶速度、或者主车辆的最大减速率等等。可以利用基于机器学习(监督式、强化或组合)训练的经训练的***来施加这些约束,但是它们也可以对未经训练的***(例如,采用算法来直接处理在来自主车辆环境的场景中发生的预期情况的那些***)有用。
在任何一种情况下,可以存在约束的层级。换言之,一些导航约束可以高于其它约束的优先级。因此,如果出现了会导致所有相关约束均被满足的导航动作不可用的情况,则导航***可首先确定实现最高优先级约束的可用导航动作。例如,***可以使车辆首先避开该行人,即使避开该行人的导航会导致与道路中检测到的另一车辆或对象碰撞。在另一个示例中,***可以使车辆骑上路缘来避开行人。
图13提供了示出用于实现基于对主车辆的环境中场景的分析而确定的相关约束的层级的算法的流程图。例如,在步骤1301,与导航***相关联的至少一个处理设备(例如,EyeQ处理器等)可以从安装在主车辆上的相机接收表示主车辆的环境的多个图像。通过在步骤1303对表示主车辆环境的场景的图像的分析,可以识别与主车辆相关联的导航状态。例如,导航状态可以指示主车辆正沿着双车道道路1210行驶,如图12所示,目标车辆1217正在主车辆前方移动通过交叉口,行人1215正在等待穿过主车辆行驶的道路,对象1219出现在主车辆车道的前方,以及场景的各种其它属性。
在步骤1305,可以确定主车辆的导航状态涉及的一个或多个导航约束。例如,在分析由一个或多个捕捉图像表示的主车辆的环境中的场景之后,至少一个处理设备可以确定通过对捕捉图像的图像分析所辨识的对象、车辆、行人等涉及的一个或多个导航约束。在一些实施例中,该至少一个处理设备可以确定该导航状态涉及的至少第一预定导航约束和第二预定导航约束,并且第一预定导航约束可以不同于第二预定导航约束。例如,第一导航约束可以涉及在主车辆的环境中检测到的一个或多个目标车辆,而第二导航约束可以涉及在主车辆的环境中检测到的行人。
在步骤1307,该至少一个处理设备可以确定与在步骤1305中识别的约束相关联的优先级。在所描述的示例中,涉及行人的第二预定导航约束可以具有比涉及目标车辆的第一预定导航约束更高的优先级。虽然可以基于各种因素来确定或分配与导航约束相关联的优先级,但是在一些实施例中,导航约束的优先级可以与其从安全角度而言的相对重要性有关。例如,虽然在尽可能多的情况下遵守或满足所有实施的导航约束可能是重要的,但是一些约束可能与其它约束相比与更高的安全风险相关联,因此,这些约束可被分配更高的优先级。例如,要求主车辆保持与行人间距至少1米的导航约束可具有比要求主车辆保持与目标车辆间距至少1米的约束更高的优先级。这可能是因为与行人相撞可能具有比与另一车辆相撞更严重的后果。类似地,保持主车辆与目标车辆之间的间距可以具有比以下约束更高的优先级:要求主车辆避开道路上的箱子、在减速带上低于特定速度驾驶、或者使主车辆乘客暴露于不超过最大加速度级别。
虽然驾驶策略模块803被设计为通过满足特定场景或导航状态涉及的导航约束以使安全性最大化,但是在一些情况下,满足每个所涉及的约束可能实际上是不可能的。在这种情况下,如步骤1309所示,可以使用每个涉及的约束的优先级来确定应该首先满足哪个涉及的约束。继续上面的示例,在不可能满足行人间隙约束和目标车辆间隙约束两者、而只能满足其中一个约束的情况下,则更高优先级的行人间隙约束可导致该约束在尝试保持到目标车辆的间隙之前被满足。因此,在正常情况下,如步骤1311所示,在第一预定导航约束和第二预定导航约束两者可以被满足的情况下,该至少一个处理设备可以基于所识别的主车辆的导航状态来确定满足第一预定导航约束和第二预定导航约束两者的主车辆的第一导航动作。然而,在其它情况下,在不是所有涉及的约束都可以被满足的情况下,如步骤1313所示,在第一预定导航约束和第二预定导航约束不能都被满足的情况下,该至少一个处理设备可以基于所识别的导航状态,确定满足第二预定导航约束(即,较高优先级约束)但不满足第一预定导航约束(具有低于第二导航约束的优先级)的主车辆的第二导航动作。
接下来,在步骤1315,为了实施所确定的主车辆的导航动作,该至少一个处理设备可以响应于所确定的主车辆的第一导航动作或所确定的主车辆的第二导航动作,引起对主车辆的导航致动器的至少一个调节。如在前面的示例中所述,导航致动器可以包括转向机构、制动器或加速器中的至少一个。
约束放松
如上所述,出于安全目的可以施加导航约束。约束可以包括相对于行人、目标车辆、路障或检测到的对象的最小安全驾驶距离、当在检测到的行人的影响区内通过时的最大行驶速度、或者主车辆的最大减速率等等。这些约束可以被施加在学习或非学习的导航***中。在某些情况下,这些约束可以被放松。例如,在主车辆在行人附近减速或停止、然后缓慢前进以传达要驶过行人的意图的情况下,可以从所获取的图像中检测行人的响应。如果行人的响应是保持静止或停止移动(和/或如果感测到与行人的眼神接触),则可以理解该行人认识到导航***要驶过行人的意图。在这种情况下,***可放松一个或多个预定约束并实施较不严格的约束(例如,允许车辆在行人的0.5米内导航,而不是在更严格的1米边界内)。
图14提供了用于基于一个或多个导航约束的放松来实施主车辆的控制的流程图。在步骤1401,至少一个处理设备可以从与主车辆相关联的相机接收表示主车辆的环境的多个图像。在步骤1403对图像的分析可以使得能够识别与主车辆相关联的导航状态。在步骤1405,至少一个处理器可以确定与主车辆的导航状态相关联的导航约束。导航约束可以包括导航状态的至少一个方面所涉及的第一预定导航约束。在步骤1407,多个图像的分析可以揭示至少一个导航约束放松因素的存在。
导航约束放松因素可以包括一个或多个导航约束在至少一个方面可以被暂停、改变或以其它方式放松的任何合适的指示符。在一些实施例中,至少一个导航约束放松因素可以包括(基于图像分析)确定行人的眼睛正看向主车辆的方向。在这种情况下,可以更安全地假定行人意识到主车辆。因此,行人不会参与导致行人移动到主车辆路径中的意外动作的置信度可能更高。还可以使用其它约束放松因素。例如,至少一个导航约束放松因素可以包括:被确定为没有在移动的行人(例如,假定行人不太可能进入主车辆的路径);或者其运动被确定为正在减慢的行人。导航约束放松因素还可以包括更复杂的动作,诸如被确定为在主车辆停住然后恢复移动后没有在移动的行人。在这种情况下,可以假设行人知道主车辆具有路权,并且行人停住可以表明行人让路给主车辆的意图。其它可能导致一个或多个约束被放松的情况包括路缘石的类型(例如,低路缘石或具有渐变坡度的路缘石可能允许放松的距离约束)、在人行道上没有行人或其它对象、其引擎未在运转的车辆可以具有放松的距离、或者行人正背向和/或远离于主车辆驶向的区域移动的情况。
在识别存在导航约束放松因素(例如,在步骤1407)的情况下,可以响应于约束放松因素的检测来确定或产生第二导航约束。该第二导航约束可以不同于第一导航约束,并且该第二导航约束可以包括相对于第一导航约束被放松的至少一个特性。第二导航约束可以包括基于第一约束的新生成的约束,其中所述新生成的约束包括在至少一个方面放松第一约束的至少一个修改。可替代地,第二约束可以构成在至少一个方面没有第一导航约束严格的预定约束。在一些实施例中,可以保留这种第二约束,以仅用于在主车辆的环境中识别到约束放松因素的情况下使用。无论第二约束是新生成的还是从一组完全或部分可用的预定约束中选择的,应用第二导航约束代替更严格的第一导航约束(其可以应用在没有检测到相关导航约束放松因素的情况)可以被称为约束放松并且可以在步骤1409中完成。
在步骤1407检测到至少一个约束放松因素,并且在步骤1409中已经放松了至少一个约束的情况下,可以在步骤1411中确定主车辆的导航动作。主车辆的导航动作可以基于所识别的导航状态并且可以满足第二导航约束。可以在步骤1413通过响应于所确定的导航动作而引起对主车辆的导航致动器的至少一个调调节来实施该导航动作。
如上所述,导航约束和放松的导航约束的使用可以通过经训练(例如,通过机器学习)或未经训练(例如,被编程为响应于特定导航状态以预定动作来响应的导航***)的导航***而采用。在使用经训练的导航***的情况下,用于某些导航情况的放松导航约束的可用性可以表示从经训练的***响应到未经训练的***响应的模式切换。例如,经训练的导航网络可以基于第一导航约束来确定主车辆的原始导航动作。然而,车辆采取的动作可以是与满足第一导航约束的导航动作不同的动作。而是,所采取的动作可以满足更放松的第二导航约束,并且可以是由未经训练的***产生的动作(例如,作为在主车辆的环境中检测到特定状况的响应,该特定状况诸如存在导航约束放松因素)。
有许多可以响应于在主车辆的环境中检测到约束放松因素而被放松的导航约束的示例。例如,在预定导航约束包括与检测到的行人相关联的缓冲区,并且缓冲区的至少一部分从检测到的行人延伸一距离的情况下,被放松的导航约束(新产生的、从预定集合中从存储器中调用的、或作为先前存在的约束的放松版本生成的)可以包括不同的或修改的缓冲区。例如,不同的或修改的缓冲区可以具有比相对于检测到的行人的原始的或未修改的缓冲区更小的相对于行人的距离。因此,在主车辆的环境中检测到适当的约束放松因素的情况下,鉴于经放松的约束,可以允许主车辆更靠近检测到的行人而导航。
如上所述,导航约束的放松的特性可以包括与至少一个行人相关联的缓冲区的减小的宽度。然而,放松的特性还可以包括与目标车辆、检测到的对象、路侧障碍或在主车辆的环境中检测到的任何其它对象相关联的缓冲区的减小的宽度。
至少一个放松的特性还可以包括导航约束特性的其它类型的修改。例如,放松的特性可以包括与至少一个预定导航约束相关联的速度的增加。放松的特性还可以包括与至少一个预定导航约束相关联的最大可允许减速度/加速度的增加。
尽管如上所述在某些情况下约束可以被放松,但是在其它情况下,导航约束可以被增强(augment)。例如,在一些情况下,导航***可以确定条件准许(warrant)对一组正常导航约束的增强。这种增强可以包括将新的约束添加到一组预定的约束或者调节预定约束的一个或多个方面。添加或调节可导致相对于在正常驾驶条件下可适用的该组预定约束而言更为保守的导航。可以准许约束增强的条件可以包括传感器故障、不利的环境条件(雨、雪、雾或与可见性降低或车辆牵引力降低相关联的其它情形)等。
图15提供用于基于对一个或多个导航约束的增强来实施主车辆的控制的流程图。在步骤1501,至少一个处理设备可以从与主车辆相关联的相机接收表示主车辆的环境的多个图像。在步骤1503对图像的分析可以使得能够识别与主车辆相关联的导航状态。在步骤1505,至少一个处理器可以确定与主车辆的导航状态相关联的导航约束。导航约束可以包括导航状态的至少一个方面所涉及的第一预定导航约束。在步骤1507,对多个图像的分析可以揭示至少一个导航约束增强因素的存在。
涉及的导航约束可以包括以上(例如,关于图12)描述的任何导航约束或任何其它合适的导航约束。导航约束增强因素可以包括一个或多个导航约束可以在至少一个方面被补充/增强的任何指示符。导航约束的补充或增强可以在每个组的基础上(例如,通过将新的导航约束添加到一组预定的约束)或者可以在每个约束的基础上(例如,修改特定的约束使得经修改的约束比原始约束更具限制性,或者添加对应于预定约束的新约束,其中该新约束在至少一个方面比对应约束更具限制性)来执行。另外或可替代地,导航约束的补充或增强可以是指基于层级从一组预定约束中进行选择。例如,一组被增强的约束可用于基于是否在主车辆的环境中或相对于主车辆检测到导航增强因素来进行选择。在没有检测到增强因素的正常情况下,则可以从适用于正常情况的约束中取得所涉及的导航约束。另一方面,在检测到一个或多个约束增强因素的情况下,所涉及的约束可以从被增强的约束中取得,该被增强的约束是相对于一个或多个增强因素而生成或预定的。被增强的约束在至少一个方面与正常情况下适用的对应约束相比可能更具限制性。
在一些实施例中,至少一个导航约束增强因素可以包括在主车辆的环境中检测到(例如,基于图像分析)道路表面上存在冰、雪或水。例如,这种确定可以基于对以下的检测:反射率比对于干燥车行道所预期的更高的区域(例如,指示车行道上的冰或水);指示雪的存在的道路上的白色区域;车行道上的与车行道上存在纵向沟(例如,雪中的轮胎痕迹)一致的阴影;主车辆挡风玻璃上的水滴或冰/雪颗粒;或者道路表面上存在水或冰/雪的任何其它合适的指示符。
至少一个导航约束增强因素还可以包括在主车辆的挡风玻璃的外表面上检测到颗粒。这种颗粒可能会损害与主车辆相关联的一个或多个图像捕捉设备的图像质量。虽然关于主车辆的挡风玻璃进行了描述,其与安装在主车辆的挡风玻璃后面的相机相关,但对在与主车辆相关联的其它表面(例如,相机的镜头或镜头盖、前灯透镜、后挡风玻璃、尾灯透镜或对于图像捕捉设备可见(或由传感器检测到)的主车辆的任何其它表面)上的颗粒的检测也可指示导航约束增强因素的存在。
导航约束增强因素也可以被检测为一个或多个图像获取设备的属性。例如,检测到的由与主车辆相关联的图像捕捉设备(例如,相机)捕捉的一个或多个图像的图像质量的降低也可以构成导航约束增强因素。图像质量的下降可能与硬件故障或部分硬件故障相关联,该硬件故障或部分硬件故障与图像捕捉设备或关联于图像捕捉设备的组件相关联。这种图像质量的下降也可能是由环境条件引起的。例如,在主车辆周围的空气中存在烟、雾、雨、雪等也可能贡献于相对于可能存在于主车辆的环境中的道路、行人、目标车辆等的降低的图像质量。
导航约束增强因素还可以涉及主车辆的其它方面。例如,在一些情况下,导航约束增强因素可以包括检测到的与主车辆关联的***或传感器的故障或部分故障。这种增强因素可以包括例如检测到速度传感器、GPS接收器、加速度计、相机、雷达、激光雷达、制动器、轮胎或与主车辆相关联的任何其它***的故障或部分故障,该故障或部分故障可能影响主车辆相对于与主车辆的导航状态相关联的导航约束进行导航的能力。
在识别到导航约束增强因素的存在(例如,在步骤1507)的情况下,可以响应于检测到约束增强因素来确定或产生第二导航约束。该第二导航约束可以不同于第一导航约束,并且所述第二导航约束可以包括相对于第一导航约束被增强的至少一个特性。第二导航约束可以比第一导航约束更具限制性,因为检测到在主车辆的环境中的或者与主车辆相关联的约束增强因素可以表明主车辆可能具有相对于正常操作条件而降低的至少一个导航能力。这种降低的能力可以包括降低的道路摩擦力(例如,车行道上的冰、雪、或水;降低的轮胎压力等);减弱的视野(例如,降低捕捉图像质量的雨、雪、尘、烟、雾等);减弱的检测能力(例如,传感器故障或部分故障、传感器性能降低等),或主车辆响应于检测到的导航状态而导航的能力的任何其它降低。
在步骤1507中检测到至少一个约束增强因素,并且在步骤1509中已经增强至少一个约束的情况下,可以在步骤1511中确定主车辆的导航动作。主车辆的导航动作可以基于所识别的导航状态并且可以满足第二导航(即,增强的)约束。可以在步骤1513通过响应于所确定的导航动作而引起对主车辆的导航致动器的至少一个调节来实施该导航动作。
如所讨论的,导航约束和增强的导航约束的使用可以通过经训练(例如,通过机器学习)或未经训练(例如,被编程为响应于特定导航状态以预定动作来响应的***)的导航***采用。在使用经训练的导航***的情况下,对某些导航情况的增强的导航约束的可用性可表示从经训练的***响应到未经训练的***响应的模式切换。例如,经训练的导航网络可以基于第一导航约束来确定主车辆的原始导航动作。然而,车辆采取的动作可以是与满足第一导航约束的导航动作不同的动作。而是,所采取的动作可以满足增强的第二导航约束,并且可以是由未经训练的***产生的动作(例如,作为对在主车辆的环境中检测到特定条件的响应,该特定条件诸如存在导航约束增强因素)。
有许多可以响应于在主车辆的环境中检测到约束增强因素而生成、补充或增强的导航约束的示例。例如,在预定导航约束包括与检测到的行人、对象、车辆等相关联的缓冲区,并且缓冲区的至少一部分从检测到的行人/对象/车辆延伸一距离的情况下,增强的导航约束(新产生的、从预定集合中从存储器调用的、或作为先前存在的约束的增强版本而生成的)可以包括不同的或修改的缓冲区。例如,不同的或修改的缓冲区可以具有比原始的或未修改的缓冲区相对于检测到的行人/对象/车辆更大的相对于行人/对象/车辆的距离。因此,在主车辆的环境中或相对于主车辆检测到适当的约束增强因素的情况下,鉴于该增强的约束,可以强制主车辆更远离检测到的行人/对象/车辆而导航。
至少一个增强的特性还可以包括导航约束特性的其它类型的修改。例如,增强的特性可以包括与至少一个预定导航约束相关联的速度的降低。增强的特性还可以包括与至少一个预定导航约束相关联的最大可允许减速度/加速度的减小。
基于长期规划(long range planning)的导航
在一些实施例中,所公开的导航***不仅可以对主车辆的环境中检测到的导航状态进行响应,而且还可以基于长期规划来确定一个或多个导航动作。例如,***可以考虑可用作相对于检测到的导航状态进行导航的选项的一个或多个的导航动作对未来导航状态的潜在影响。考虑可用的动作对未来状态的影响可以使得导航***能够不仅基于当前检测到的导航状态、而且还基于长期规划来确定导航动作。在导航***采用一种或多种奖励函数作为从可用选项中选择导航动作的技术的情况下,使用长期规划技术的导航可能尤其适用。可以相对于可以响应于检测到的主车辆的当前导航状态而采取的可用导航动作,来分析潜在奖励。然而,进一步地,还可以相对于可以响应于被预计为从对当前导航状态的可用动作得到的未来导航状态而采取的动作,来分析潜在奖励。因此,所公开的导航***在某些情况下可以响应于检测到的导航状态而从可以响应于当前导航状态而采取的可用动作之中选择导航动作,即使在该情况下所选择的导航动作可能不会产生最高的奖励。这在以下情况下尤其正确:***确定所选择的动作可能导致未来导航状态,该未来导航状态引起一个或多个潜在的导航动作,其中该一个或多个潜在的导航动作提供比所选择的动作或者在某些情况下比相对于当前导航状态可用的任何动作更高的奖励。该原理可以更简单地表达为:为了在未来产生更高的奖励选项,现在采取不那么有利的动作。因此,所公开的能够进行长期规划的导航***可以选择非最佳短期动作,其中长期预测指示奖励的短期损失可以得到长期奖励增加。
通常,自主驾驶应用可涉及一系列规划问题,其中导航***可以决定立即的动作以便优化更长期目标。例如,当车辆在环形道处遇到并道情况时,导航***可以决定立即加速或制动命令,以便发起进入环形道的导航。虽然在环形道处对检测到的导航状态的立即动作可能涉及响应于所检测到的状态的加速或制动命令,但长期目标是成功并道,并且所选命令的长期影响是并道的成功/失败。可以通过将该规划问题分解为两个阶段来解决该问题。首先,可以应用监督式学习用于基于现在来预测近期未来(假设预测符(predictor)相对于现在的表示将是可微的)。其次,可以使用循环神经网络对作用者的完整轨迹进行建模,其中未解释的因素被建模为(加性)输入节点。这可以允许使用监督式学习技术和对循环神经网络直接优化来确定长期规划问题的解。这种方法还可以使得能够通过将对抗性要素纳入环境来学习鲁棒的策略。
自主驾驶***的两个最基本的要素是感测和规划。感测处理的是寻找环境的现在状态的紧凑表示,而规划处理的是决定采取何种动作以优化未来目标。监督式机器学习技术对求解感测问题是有用的。机器学习算法框架也可以用于规划部分,尤其是强化学习(RL)框架,诸如上述那些。
RL可以在连续轮(round)的序列中执行。在第t轮,规划器(亦称作用者或驾驶策略模块803)可以观察状态st∈S,其表示作用者以及环境。然后其应该决定动作at∈A。在执行该动作后,该作用者接收立即的奖励并移至新的状态st+1。作为示例,主车辆可以包括自适应巡航控制(ACC)***,其中车辆应该自主地实施加速/制动,以在保持平稳驾驶的同时保持与前车的适当距离。该状态可以被建模为一对/>其中xt是到前车的距离,vt是主车辆相对于前车速度的速度。动作/>将是加速命令(其中,若at<0则主车辆减速)。奖励可以是取决于|at|(反映驾驶的平稳性)和st(反映主车辆保持与前车的安全距离)的函数。规划器的目标是使累积奖励最大化(可能直至未来奖励的时间范围或折扣后的总和)。要做到这一点,规划器可依赖策略π:S→A,其将状态映射到动作。
监督式学习(SL)可以被看作是RL的特例,其中st是对S从一些分布中采样的,并且奖励函数可以具有的形式,其中/>是损失函数,并且学习器观察yt的值,yt为在查看状态st时要采取的最佳动作的值(可能有噪声)。一般的RL模型与SL的特例之间可能存在若干差异,并且这些差异使一般的RL问题更具挑战性。
在一些SL情况下,学习器采取的动作(或预测)可能对环境没有影响。换言之,st+1和at是独立的。这可以具有两个重要的含义。首先,在SL中,样本(s1,y1),...,(sm,ym)可以预先被收集,然后才能开始搜索相对于样本具有良好准确度的策略(或预测符)。相反,在RL中,状态st+1通常取决于所采取的动作(并且还取决于之前的状态),而这又取决于用于生成该动作的策略。这将使数据生成过程联系于策略学习过程。其次,因为在SL中动作不影响环境,所以选择at对π的表现的贡献是局部的。具体而言,at只影响立即奖励的值。相对照,在RL中,第t轮采取的动作可能对未来轮中的奖励值具有长期影响。
在SL中,“正确”答案yt的知识、连同奖励的形状一起可以提供对于at的所有可能的选择的奖励的全部知识,这可以使得能够计算奖励相对于at的导数。相对照,在RL中,奖励的“一次性”值可能是对于所采取动作的具体选择而能观察到的全部。这可以被称为“强盗(Bandit)”反馈。这是需要“探索”作为长期导航规划的一部分的最重要原因之一,因为在基于RL的***中,如果只有“强盗”反馈可用,则***可能并不总是知道所采取的动作是否是要采取的最佳动作。
许多RL算法至少部分地依赖于马尔可夫决策过程(MDP,Markov DecisionProcess)的数学优化模型。马尔可夫假设是:给定st和at,st+1的分布被完全确定。依据MDP状态上的稳定分布,其产生对于给定策略的累积奖励的闭合解表达式。策略的稳定分布可以表示为线性规划问题的解。这产生了两类算法:1)相对于原始问题的优化,其被称为策略搜索;2)相对于双重问题的优化,其变量被称为值函数Vπ。如果MDP从初始状态s开始,并且从那里根据π来选择动作,则值函数确定预期的累积奖励。相关量是状态-动作值函数Qπ(s,a),假设从状态s开始,立即选择的动作a,以及从那里根据π选择的动作,则状态-动作值函数确定累积奖励。Q函数可能会引起最优策略的表征(使用贝尔曼方程)。特别是,Q函数可能表明最优策略是从S到A的确定性函数(实际上,它可以被表征为相对于最优Q函数的“贪婪”策略)。
MDP模型的一个潜在优点是其允许使用Q函数将未来耦合到现在。例如,假设主车辆现在处于状态s,Qπ(s,a)的值可以指示执行动作a对未来的影响。因此,Q函数可以提供动作a的质量的局部测量,从而使RL问题更类似于SL场景。
许多RL算法以某种方式近似V函数或Q函数。值迭代算法、例如Q学习算法可以依赖于以下事实:最优策略的V和Q函数可以是从贝尔曼方程得到的一些运算符的固定点。玩家-评委(Actor-critic)策略迭代算法旨在以迭代的方式学习策略,其中在迭代t处,“评委”估计并且基于该估计,“玩家”改进策略。
尽管MDP的数学优势和切换到Q函数表示的方便性,但该方法可能具有若干限制。例如,马尔可夫行为状态的近似概念可能是在某些情况下所能找到的全部。此外,状态的转变不仅取决于作用者的行为,还取决于环境中其它参与者的行为。例如,在上面提到的ACC示例中,尽管自主车辆的动态可以是马尔可夫的,但下一个状态可能取决于另一车辆的驾驶员的行为,而该行为不一定是马尔可夫的。对这个问题的一个可能的解决方案是使用部分观察到的MDP,其中假设存在马尔可夫状态,但是可以看到的是根据隐藏状态而分布的观察。
更直接的方法可以考虑MDP的博弈理论概括(例如,随机博弈框架)。事实上,用于MDP的算法可以被一般化到多作用者博弈(例如,最小最大-Q学习或纳什-Q学习)。其它方法可包括其它参与者的显式建模以及消失遗憾(vanishing regret)学习算法。在多作用者设置中的学习可能比在单作用者设置中更复杂。
Q函数表示的第二限制可以通过脱离表格式设置(tabular setting)而产生。表格式设置是当状态和动作的数量很小时,因此Q可以表示为|S|行和|A|列的表格。然而,如果S和A的自然表示包含欧几里得空间,并且状态和动作空间是离散化的,则状态/动作的数量可能在维度上是指数的。在这种情况下,采用表格式设置可能并不实际。而是,Q函数可以由来自参数假设类别(例如,某个架构的神经网络)的某个函数来近似。例如,可以使用深Q网络(DQN,deep-Q-network)学习算法。在DQN中,状态空间可以是连续的,而动作空间可以仍然是小的离散集合。可以存在用于处理连续动作空间的方法,但它们可能依赖于对Q函数近似。在任何情况下,Q函数都可能是复杂的且对噪声敏感,因此可能会对学习带来挑战。
不同的方法可以是使用循环神经网络(RNN,recurrent neural network)来应对RL问题。在某些情况下,RNN可以与多作用者博弈的概念和来自博弈论的对抗环境的鲁棒性相结合。此外,该方法可以是并不明确依赖于任何马尔可夫假设的方法。
以下更详细地描述通过基于预测进行规划来导航的方法。在该方法中,可以假定状态空间S是的子集,而动作空间A是/>的子集。这在许多应用中可以是自然表示。如上所述,在RL和SL之间可能存在两个关键区别:(1)因为过去的动作影响未来的奖励,所以来自未来的信息可能需要传播回到过去;(2)奖励的“强盗”本质可能模糊(状态、动作)和奖励之间的依赖性,这可以使学习过程复杂化。/>
作为该方法的第一步,可以观察到存在有趣的问题,其中奖励的强盗本质并不是问题。例如,ACC应用的奖励值(如下面将更详细讨论的)可能相对于当前状态和动作是可微的。事实上,即使奖励是以“强盗”方式给出的,学习可微函数使得/>的问题可以是相对直接的SL问题(例如,一维回归问题)。因此,该方法的第一步可以是将奖励定义为函数/>该函数关于s和a是可微的,或者该方法的第一步可以是使用回归学习算法,以便学习可微函数/>该函数最小化样本上的至少一些回归损失,其中实例向量为目标标量为rt。在某些情况下,为了创建训练集,可以使用探索的元素。
为了解决过去与未来之间的联系,可以使用类似的思想。例如,假设可以学习可微函数使得/>学习这样的函数可以表征为SL问题。/>可以被认为是近期未来的预测符。接下来,可以使用参数函数πθ:S→A来描述从S映射到A的策略。将πθ表达为神经网络,可以使得能够使用循环神经网络(RNN)来表达运行作用者达T轮的片段,其中下一个状态被定义为/>此处,/>可由环境所定义,并可表达近期未来的不可预测的方面。st+1以可微方式依赖于st和at的事实可以使能未来的奖励值与过去的行为之间的联系。策略函数πθ的参数向量可以通过在所得到的RNN上的反向传播来学习。请注意,不需要在υt上施加显式概率假设。特别是,不需要对于马尔可夫关系的要求。而是,可以依赖循环网络在过去和未来之间传播“足够”的信息。直观地说,/>可以描述近期未来的可预测部分,而υt可以表达由于环境中其它参与者的行为而可能出现的不可预测的方面。学习***应该学习对其它参与者的行为而言将是鲁棒的策略。如果||υt||大,则过去的动作与未来的奖励值之间的联系对于学习有意义的策略而言可能噪声过多。以透明的方式明确表达***的动态可以使得更容易地结合先验知识。例如,先验知识可以简化定义/>的问题。
如上所述,学习***可受益于相对于对抗环境(诸如主车辆的环境)的鲁棒性,该环境可包括可能以非预期的方式动作的多个其它驾驶员。在不对υt施加概率性假设的模型中,可以考虑其中以对抗方式来选择υt的环境。在某些情况下,可以对μt施加限制,否则对抗方可能会使规划问题变得困难甚至是不可能的。一种自然约束可以是要求由常数来界定||μt||。
针对对抗环境的鲁棒性可能在自主驾驶应用中有用。以对抗的方式选择μt甚至可加快学习过程,因为它可以将学习***专注于鲁棒的最佳策略。可以用简单的博弈来说明这个概念。状态为动作为/>立即损失函数为0.1|at|+[|st|-2]+,其中[x]+=max{x,0}为ReLU(修正线性单元)函数。下一个状态为st+1=st+at+vt,其中vt∈[-0.5,0.5]是对于环境以对抗的方式来选择的。此处,最优策略可以写成带有ReLU的双层网络:at=-[st-1.5]++[-st-1.5]+。观察到,当|st|∈(1.5,2]时,最优动作可能比动作a=0具有更大的立即损失。因此,***可以为未来做出规划,并且可以不仅仅依赖于立即损失。观察到,损失关于at的导数为0.1sign(at),并且关于st的导数是1[|st|>2]sign(st)。在st∈(1.5,2]的情况下,vt的对抗性选择将是设定νt=0.5,因此,无论何时at>1.5-st,在t+1轮可以有非零损失。在这种情况下,损失的导数可以直接向后传播到at。因此,在at的选择是非最优的情况下,νt的对抗性选择可以帮助导航***获得非零后向传播消息。这种关系可以帮助导航***基于以下预期来选择当前动作:预期这种当前动作(即使该动作会导致非最优奖励甚至损失)将在未来提供导致更高的奖励的更优的动作的机会。
这种方法可以应用于实际上可能出现的任何导航情况。以下描述适用于一个示例的方法:自适应巡航控制(ACC)。在ACC问题中,主车辆可以试图保持与前方的目标车辆的适当距离(例如,到目标车辆1.5秒)。另一个目标可以是尽可能平稳地驾驶,同时保持期望的间隙。表示这种情况的模型可以如下定义。状态空间为动作空间为/>状态的第一坐标是目标汽车的速度,第二坐标是主车辆的速度,而最后的坐标是主车辆与目标车辆之间的距离(例如,沿道路曲线的主车辆的位置减去目标车辆的位置)。主车辆采取的动作是加速,并可以用at来表示。量τ可以表示连续轮之间的时间差。虽然τ可被设置为任何合适的量,但是在一个示例中,τ可以是0.1秒。位置st可以表示为/>并且目标车辆的(未知)加速度可以表示为/>
***的完整动态可以通过以下来描述:
这可以被描述为两个向量的总和:
第一向量是可预测的部分,第二向量是不可预测的部分。第t轮的奖励定义如下:
其中/>
第一项可导致对非零加速度的惩罚,因此鼓励平稳驾驶。第二项取决于到目标汽车的距离xt和期望的距离之间的比率,该期望的距离被定义为在1米的距离和1.5秒刹车距离之间的最大值。在某些情况下,这个比率可能恰好为1,但只要该比率在[0.7,1.3]范围内,策略可以放弃任何处罚,这可以允许主车辆在导航中的某些松懈——在实现平稳的驾驶方面可能是重要的特性。
实施以上概述的方法,主车辆的导航***(例如,通过在导航***的处理单元110内的驾驶策略模块803的操作)可以响应于观察到的状态来选择动作。所选动作可以基于不仅对与相对于感测到的导航状态可用的响应动作相关联的奖励的分析,而且还可以基于对未来状态的考虑和分析、响应于未来状态的潜在动作和与潜在的动作相关联的奖励。
图16示出了基于检测和长期规划的导航的算法方法。例如,在步骤1601,主车辆的导航***的至少一个处理设备110可以接收多个图像。这些图像可以捕捉表示主车辆的环境的场景,并且可以由上述任何图像捕捉设备(例如,相机、传感器等)提供。在步骤1603分析这些图像中的一个或多个可以使至少一个处理设备110能够识别与主车辆相关联的当前导航状态(如上所述)。
在步骤1605、1607和1609,可以确定响应于感测到的导航状态的各种潜在的导航动作。这些潜在的导航动作(例如,第一导航动作至第N可用导航动作)可以基于感测到的状态和导航***的长期远目标(例如,完成并道、平稳地跟随前车、超过目标车辆、避开车行道中的对象、针对检测到的停车标志而减速、避开切入的目标车辆、或可以推进***的导航目标的任何其它导航动作)来确定。
对于所确定的潜在导航动作中的每个,***可以确定预期奖励。预期奖励可以根据上述技术中的任一种来确定,并且可以包括关于一个或多个奖励函数对特定潜在动作的分析。对于在步骤1605、1607和1609中确定的每个潜在导航动作(例如,第一,第二和第N),可以分别确定预期奖励1606、1608和1610。
在一些情况下,主车辆的导航***可基于与预期奖励1606、1608和1610(或预期奖励的任何其它类型的指示符)相关联的值,从可用潜在动作中选择。例如,在某些情况下,可以选择产生最高预期奖励的动作。
在其它情况下,尤其是在导航***进行长期规划以确定主车辆的导航动作的情况下,***可以不选择产生最高预期奖励的潜在动作。而是,***可以展望未来以分析如果响应于当前导航状态选择了较低的奖励动作,是否有机会在之后实现较高奖励。例如,对于在步骤1605、1607和1609处确定的任何或全部潜在动作,可以确定未来状态。在步骤1613、1615和1617确定的每个未来状态可以表示预期基于当前导航状态、由相应潜在动作(例如,在步骤1605、1607和1609确定的潜在动作)修改而得到的未来导航状态。
对于在步骤1613、1615和1617预测的未来状态中的每个,可以确定和评估一个或多个未来动作(作为响应于确定的未来状态而可用的导航选项)。在步骤1619、1621和1623处,例如,可以(例如,基于一个或多个奖励函数)产生与一个或多个未来动作相关联的预期奖励的值或任何其它类型的指示符。可以通过比较与每个未来动作相关联的奖励函数的值或通过比较与预期奖励相关联的任何其它指示符,来评估与一个或多个未来动作相关的预期奖励。
在步骤1625,主车辆的导航***可基于预期奖励的比较而不仅仅是基于相对于当前导航状态识别的潜在动作(例如,在步骤1605、1607和1609),并且还基于作为响应于预测的未来状态可用的潜在未来动作的结果而确定的预期奖励(例如,在步骤1613、1615和1617处确定的),来选择主车辆的导航动作。在步骤1625处的选择可以基于在步骤1619、1621和1623处执行的选项和奖励分析。
在步骤1625处对导航动作的选择可以仅基于与未来动作选项相关联的预期奖励的比较。在这种情况下,导航***可以仅基于从对潜在的未来导航状态的动作得到的预期奖励的比较,来选择对当前状态的动作。例如,***可以选择在步骤1650、1610和1609处识别的、与通过在步骤1619、1621和1623处的分析确定的最高未来奖励值相关联的潜在动作。
在步骤1625对导航动作的选择还可以仅基于当前动作选项的比较(如上所述)。在这种情况下,导航***可以选择在步骤1605、1607或1609识别的、与最高预期奖励1606、1608或1610相关联的潜在动作。这种选择可以在很少考虑或不考虑未来导航状态或对响应于预期未来导航状态的可用导航动作的未来预期奖励的情况下执行。
另一方面,在一些情况下,在步骤1625对导航动作的选择可以基于与未来动作选项和当前动作选项两者相关联的预期奖励的比较。事实上,这可以是基于长期规划的导航的原理之一。例如,可以分析对未来动作的预期奖励,以确定是否有任何预期奖励可以准许响应于当前导航状态而选择较低的奖励动作以便响应于后续导航动作实现潜在的较高奖励,该后续导航动作是预期响应于未来导航状态而可用的。作为示例,预期奖励1606的值或其它指示符可以指示在奖励1606、1608和1610当中的最高预期奖励。另一方面,预期奖励1608可以指示在奖励1606、1608和1610当中的最低预期奖励。不是简单地选择在步骤1605确定的潜在动作(即,引起最高预期奖励1606的动作),在步骤1625进行导航动作选择时可以使用未来状态、潜在的未来动作、以及未来奖励的分析。在一个示例中,可以确定在步骤1621识别的奖励(响应于对基于步骤1607中确定的第二潜在动作在步骤1615确定的未来状态的至少一个未来动作)可以高于预期奖励1606。基于该比较,可以选择在步骤1607确定的第二潜在动作,而不是在步骤1605确定的第一潜在动作,尽管预期奖励1606高于预期奖励1608。在一个示例中,在步骤1605确定的潜在导航动作可以包括在检测到的目标车辆前方的并道,而在步骤1607确定的潜在导航动作可以包括在目标车辆后方的并道。尽管在目标车辆前方并道的预期奖励1606可能高于与在目标车辆后方并道相关联的预期奖励1608,但可以确定在目标车辆后方并道可以导致一未来状态,对于该未来状态可能存在产生比预期奖励1606、1608或基于响应于当前的感测到的导航状态的可用动作的其它奖励甚至更高的潜在奖励的动作选项。
在步骤1625处从潜在动作之中进行选择可以基于预期奖励的任何合适的比较(或与一个潜在动作相关联的益处的任何其它度量或指示符与另一者的比较)。在一些情况下,如上所述,如果预计第二潜在动作要提供与比关联于第一潜在动作的奖励更高的预期奖励相关联的至少一个未来动作,则可以不选择第一潜在动作而选择第二潜在动作。在其它情况下,可以采用更复杂的比较。例如,与响应于预计的未来状态的动作选项相关联的奖励可以与关联于确定的潜在动作的多于一个预期奖励相比较。
在一些情况下,如果至少一个未来动作被预期产生高于预期作为对当前状态的潜在动作的结果的任何奖励(例如,预期奖励1606、1608、1610等)的奖励,则基于预计的未来状态的动作和预期奖励可以影响对于当前状态的潜在动作的选择。在某些情况下,产生最高的预期奖励(例如,在与对感测到的当前状态的潜在动作相关联的预期奖励之中以及在与相对于潜在未来导航状态的潜在未来动作选项相关联的预期奖励当中)的未来动作选项可以用作选择对当前导航状态的潜在动作的指导。也就是说,在识别产生最高预期奖励(或者高于预定阈值的奖励等)的未来动作选项之后,在步骤1625可以选择将导致与识别的、产生最高的预期奖励的未来动作相关联的未来状态的潜在动作。
在其它情况下,可以基于预期奖励之间确定的差,来进行可用动作的选择。例如,如果与在步骤1621确定的未来动作相关联的预期奖励与预期奖励1606之间的差大于预期奖励1608与预期奖励1606之间的差(假设正符号的差),则可以选择在步骤1607确定的第二潜在动作。在另一个示例中,如果与在步骤1621确定的未来动作相关联的预期奖励和与在步骤1619确定的未来动作相关联的预期奖励之间的差大于预期奖励1608与预期奖励1606之间的差,则可以选择在步骤1607确定的第二潜在动作。
已经描述了用于从对当前导航状态的潜在动作当中进行选择的若干示例。然而,可以使用任何其它合适的比较技术或标准来通过基于延伸到预计的未来状态的动作和奖励分析的长期规划来选择可用动作。此外,虽然图16表示长期规划分析中的两个层(例如,第一层考虑从对当前状态的潜在动作得到的奖励,第二层考虑从响应于预计的未来状态的未来动作选项得到的奖励),然而,基于更多层的分析可以是可能的。例如,不是将长期规划分析基于一个或两个层,而是可以在从响应于当前的导航状态的可用潜在动作之中选择时使用三层、四层或更多层分析。
在从响应于感测到的导航状态的潜在动作当中进行选择之后,在步骤1627,至少一个处理器可以响应于所选择的潜在导航动作而引起对主车辆的导航致动器的至少一个调节。导航致动器可以包括用于控制主车辆的至少一个方面的任何合适的设备。例如,导航致动器可以包括转向机构、制动器或加速器中的至少一个。
基于推断的其它者入侵的导航
可以通过分析获取的图像流来监测目标车辆,以确定驾驶入侵的指示符。本文将入侵描述为定性或定量参数,但可以使用其它特性:注意力的感知水平(驾驶员的潜在损伤、蜂窝电话造成分心、睡着等)。在一些情况下,目标车辆可以被认为具有防御性姿势,并且在一些情况下,可以确定目标车辆具有更入侵的姿势。基于入侵指示符可以选择或产生导航动作。例如,在一些情况下,可以跟踪相对于主车辆的相对速度、相对加速度、相对加速度的增加、跟随距离等,以确定目标车辆是入侵性的还是防御性的。例如,如果目标车辆被确定为具有超过阈值的入侵等级,则主车辆可能倾向于让路给目标车辆。还可以基于确定的目标车辆相对于目标车辆的路径中或其附近的一个或多个障碍物(例如,前方车辆、道路上的障碍物、交通灯等)的行为,来辨别目标车辆的入侵等级。
作为对这个概念的介绍,将相对于主车辆并道至环形道来描述示例性实验,其中导航目标是穿过环形道并从该环形道出去。该情况可以以主车辆接近环形道的入口开始,并且可以以主车辆到达环形道的出口(例如,第二出口)结束。可以基于主车辆是否始终保持与所有其它车辆的安全距离、主车辆是否尽快完成路线、以及主车辆是否遵循平稳加速策略来衡量成功。在这个示例中,NT个目标车辆可以随机置于环形道上。为了对对抗性的和典型的行为的混合进行建模,在概率p下,目标车辆可以通过“入侵性”驾驶策略来建模,使得入侵性目标车辆在主车辆试图并入目标车辆前方时加速。在概率1-p下,目标车辆可以通过“防御性”驾驶策略来建模,使得目标车辆减速并让主车辆并道。在该实验中,p=0.5,并且可以不为主车辆的导航***提供关于其它驾驶员的类型的信息。可以在片段开始时随机选择其它驾驶员的类型。
导航状态可以表示为主车辆(作用者)的速度和位置、以及目标车辆的位置、速度和加速度。保持目标加速度观察可能很重要,以便基于当前状态区分入侵性和防御性的驾驶员。所有目标车辆可以在以环形道路径为轮廓的一维曲线上移动。主车辆可以在其自己的一维曲线上移动,该曲线在并道点处与目标车辆的曲线相交,并且该点是两条曲线的起点。为了对合理驾驶进行建模,所有车辆的加速度的绝对值可以通过常数定上界。速度也可以通过ReLU传递,因为不允许倒退驾驶。注意,通过不允许倒退驾驶,长期规划可以成为必要的,因为作用者不能对其过去的动作后悔。
如上所述,下一状态st+1可被分解为可预测部分和不可预测部分vt的总和。表达式/>可以表示车辆位置和速度的动态(可以以可微分的方式良好地定义),而vt可以表示目标车辆的加速度。可以验证,/>可以表示为在仿射变换上的ReLU函数的组合,因此其相对于st和at是可微的。该向量vt可以由模拟器以不可微的方式来定义,并且可以对一些目标实施入侵性行为并对其它目标实施防御性行为。在图17A和17B中示出了来自这种模拟器的两帧。在这个示例性实验中,主车辆1701学习到在它接近环形道的入口时减速。它还学习到为入侵性车辆(例如,车辆1703和1705)让路,并且在防御性车辆(例如,车辆1706、1708和1710)前方并道时安全地继续行驶。在由图17A和17B表示的示例中,没有为主车辆1701的导航***提供目标车辆的类型。而是,通过基于观察到的例如目标车辆的位置和加速度的推断,来确定特定车辆是否被确定为入侵性或防御性的。在图17A中,基于位置、速度和/或相对加速度,主车辆1701可以确定车辆1703具有入侵性的倾向,并且因此主车辆1701可以停下并等待目标车辆1703通过而不是尝试在目标车辆1703的前方并道。然而,在图17B中,目标车辆1701辨识出在车辆1703后面行驶的目标车辆1710呈现出防御性的倾向(同样,基于观察到的车辆1710的位置、速度和/或相对加速度),因此完成了在目标车辆1710前方以及目标车辆1703后方的成功并道。
图18提供了表示用于基于预测的其它车辆的入侵来导航主车辆的示例性算法的流程图。在图18的示例中,可以基于所观察到的目标车辆相对于目标车辆的环境中的对象的行为,来推断与至少一个目标车辆相关联的入侵等级。例如,在步骤1801,主车辆导航***的至少一个处理设备(例如,处理设备110)可以从与主车辆相关联的相机接收表示主车辆的环境的多个图像。在步骤1803,对一个或多个所接收的图像的分析可以使至少一个处理器能够识别主车辆1701的环境中的目标车辆(例如,车辆1703)。在步骤1805,对一个或多个所接收的图像的分析可以使至少一个处理设备能够在主车辆的环境中识别对于目标车辆的至少一个障碍物。对象可以包括车行道中的碎片、停车灯/交通灯、行人、另一车辆(例如,在目标车辆前方行驶的车辆、停放的车辆等)、车行道中的箱子、路障、路缘或可能在主车辆的环境中遇到的任何其它类型的对象。在步骤1807,对一个或多个接收的图像的分析可以使至少一个处理设备能够确定目标车辆相对于目标车辆的至少一个识别的障碍物的至少一个导航特性。
可以使用各种导航特性来推断检测到的目标车辆的入侵等级,以便产生对目标车辆的适当的导航响应。例如,这种导航特性可以包括目标车辆与至少一个识别的障碍物之间的相对加速度、目标车辆距障碍物的距离(例如,目标车辆在另一车辆后面的跟随距离)、和/或目标车辆与障碍物之间的相对速度等。
在一些实施例中,可以基于来自与主车辆相关联的传感器(例如雷达、速度传感器、GPS等)的输出来确定目标车辆的导航特性。然而,在一些情况下,可以部分地或完全地基于对主车辆的环境的图像的分析来确定目标车辆的导航特性。例如,上文所述的并在例如通过引用合并入本文的美国专利号9,168,868中描述的图像分析技术可以用于辨识主车辆的环境内的目标车辆。并且,随着时间而监测目标车辆在捕捉图像中的位置和/或监测与目标车辆相关联的一个或多个特征(例如,尾灯、头灯、保险杠、车轮等)在捕捉图像中的位置,可以使得能够确定目标车辆与主车辆之间或者目标车辆与主车辆的环境中的一个或多个其它对象之间的相对距离、速度和/或加速度。
可以从目标车辆的任何合适的观察到的导航特性或观察到的导航特性的任何组合中推断所识别的目标车辆的入侵等级。例如,可以基于任何观察到的特性和一个或多个预定阈值等级或任何其它合适的定性或定量分析,作出入侵性的确定。在一些实施例中,如果目标车辆被观察到以小于预定入侵性距离阈值的距离跟随主车辆或另一车辆,则目标车辆可被认为是入侵性的。另一方面,被观察到以大于预定防御性距离阈值的距离跟随主车辆或另一车辆的目标车辆可被认为是防御性的。预定入侵性距离阈值不需要与预定防御性距离阈值相同。另外,预定入侵性距离阈值和预定防御性距离阈值中的任一个或两者可以包括值的范围,而不是分界值(bright line value)。此外,预定入侵性距离阈值和预定防御性距离阈值都不必被固定。而是,这些值或值的范围可以随时间而改变,并且可以基于观察到的目标车辆的特性来应用不同的阈值/阈值的范围。例如,所应用的阈值可以取决于目标车辆的一个或多个其它特性。较高的所观察到的相对速度和/或加速度可以准许应用较大的阈值/范围。相反,较低的相对速度和/或加速度、包括零相对速度和/或加速度可以准许在进行入侵性/防御性推断时应用较小的距离阈值/范围。
入侵性/防御性推断也可以基于相对速度和/或相对加速度阈值。如果观察到的目标车辆相对于另一车辆的相对速度和/或相对加速度超过预定等级或范围,则该目标车辆可被认为是入侵性的。如果观察到的目标车辆相对于另一车辆的相对速度和/或相对加速度低于预定等级或范围,则该目标车辆可被认为是防御性的。
尽管可以仅基于任何观察到的导航特性来进行入侵性/防御性确定,但该确定还可以取决于观察到的特性的任何组合。例如,如上所述,在一些情况下,目标车辆可以仅基于观察到其正在以在某个阈值或范围以下的距离跟随另一车辆而被认为是入侵性的。然而,在其它情况下,如果目标车辆以小于预定量(其可以与仅基于距离进行确定时应用的阈值相同或不同)并且具有大于预定量或范围的相对速度和/或相对加速度跟随另一车辆,则该目标车辆可以被认为是入侵性的。类似地,目标车辆可以仅基于观察到其正在以大于某个阈值或范围的距离跟随另一车辆而被认为是防御性的。然而,在其它情况下,如果目标车辆以大于预定量(其可以与仅基于距离进行确定时应用的阈值相同或不同)并且具有小于预定量或范围的相对速度和/或相对加速度跟随另一车辆,则该目标车辆可以被认为是防御性的。如果例如车辆超过0.5G加速度或减速度(例如,5m/s3急动(jerk))、车辆在车道变换中或在曲线上具有0.5G的横向加速度、车辆导致另一车辆进行上述任何一项、车辆改变车道并导致另一车辆以大于0.3G减速度或3米/秒觉克进行让路、和/或车辆在不停的情况下改变两条车道,则***100可以得出入侵性/防御性。
应该理解的是,对超过一范围的量的引用可以指示该量超过与该范围相关联的所有值或落入该范围内。类似地,对低于一范围的量的引用可以指示该量低于与该范围相关的所有值或落入该范围内。另外,尽管相对于距离、相对加速度和相对速度描述了用于进行入侵性/防御性推断的示例,但是可以使用任何其它合适的量。例如,可以使用到碰撞的时间的可能计算、或者目标车辆的距离、加速度和/或速度的任何间接指示符。还应该注意的是,尽管上述示例关注于相对于其它车辆的目标车辆,但是可以通过观察目标车辆相对于任何其它类型的障碍物(例如,行人、路障、交通灯、碎片等)的导航特性来进行入侵性/防御性推断。
回到图17A和17B所示的示例,当主车辆1701接近环形道时,导航***(包括它的至少一个处理设备)可以接收来自与主车辆相关联的相机的图像流。基于对接收的图像的一个或多个的分析,可以识别目标车辆1703、1705、1706、1708和1710中的任意者。此外,导航***可以分析一个或多个识别的目标车辆的导航特性。导航***可以辨识到目标车辆1703与1705之间的间隙表示潜在并道至环形道中的第一机会。导航***可以分析目标车辆1703以确定与目标车辆1703相关联的入侵指示符。如果目标车辆1703被认为是入侵性的,则主车辆导航***可以选择为车辆1703让路而不是在车辆1703前方并道。另一方面,如果目标车辆1703被认为是防御性的,则主车辆导航***可以尝试在车辆1703前面完成并道动作。
当主车辆1701接近环形道时,导航***的至少一个处理设备可以分析所捕捉的图像以确定与目标车辆1703相关联的导航特性。例如,基于图像,其可以确定车辆1703以一距离跟随车辆1705,该距离为主车辆1701安全进入提供足够的间隙。事实上,可以确定车辆1703以超过入侵性距离阈值的距离跟随车辆1705,因此,基于该信息,主车辆导航***可以倾向于将目标车辆1703识别为防御性的。然而,在一些情况下,如上所述,可以在进行入侵性/防御性确定时,分析目标车辆的多于一个的导航特性。进一步分析,主车辆导航***可以确定,当目标车辆1703以非入侵距离在目标车辆1705后面跟随时,车辆1703相对于车辆1705具有超过与入侵性行为相关联的一个或多个阈值的相对速度和/或相对加速度。实际上,主车辆1701可以确定目标车辆1703相对于车辆1705正在加速,并且缩近(close)存在于车辆1703与1705之间的间隙。基于对相对速度、加速度和距离(以及甚至是车辆1703与1705之间的间隙正在缩近的速率)的进一步分析,主车辆1701可以确定目标车辆1703正在表现为入侵性。因此,虽然可能存在主车辆可以安全地导航进入的足够间隙,但主车辆1701可以预期在目标车辆1703前方的并道将导致入侵性地导航的车辆就在主车辆后面。此外,基于通过图像分析或其它传感器输出观察到的行为,可以预期目标车辆1703:如果主车辆1701要在车辆1703的前方并道,则目标车辆1703将继续朝向主车辆1701加速或者以非零相对速度朝向主车辆1701继续。从安全角度来看,这种情况可能是不希望的,并且也可能导致主车辆的乘客不适。出于这种原因,主车辆1701可以选择为车辆1703让路,如图17B所示,并且在车辆1703后面并且在车辆1710的前方并道至环形道,该车辆1710基于对其一个或多个导航特性的分析而被视为是防御性的。
回到图18,在步骤1809,主车辆的导航***的至少一个处理设备可以基于识别的目标车辆相对于识别的障碍物的至少一个导航特性,来确定主车辆的导航动作(例如,在车辆1710的前方并且在车辆1703之后并道)。为了实施该导航动作(在步骤1811),至少一个处理设备可以响应于所确定的导航动作引起对主车辆的导航致动器的至少一个调节。例如,可以应用制动器以便让路给图17A中的车辆1703,并且加速器可以与主车辆的车轮的转向一起应用以便使主车辆在车辆1703后面进入环形道,如图17B所示。
如以上示例中所述,主车辆的导航可以基于目标车辆相对于另一车辆或对象的导航特性。另外,主车辆的导航可以仅基于目标车辆的导航特性而不特别参考另一车辆或对象。例如,在图18的步骤1807处,对从主车辆的环境捕捉的多个图像的分析可以使得能够确定识别的目标车辆的至少一个导航特性,该导航特性指示与目标车辆相关联的入侵等级。导航特性可以包括不需要相对于另一对象或目标车辆来参考的速度、加速度等,以便进行入侵性/防御性的确定。例如,观察到的与目标车辆相关联的超过预定阈值的或落入或超过一范围值的加速度和/或速度可以指示入侵性行为。相反,观察到的与目标车辆相关联的低于预定阈值或落入或超过一范围值的加速度和/或速度可以指示防御性行为。
当然,在一些情况下,可以相对于主车辆来参考所观察到的导航特性(例如,位置、距离、加速度等)以便进行入侵性/防御性的确定。例如,观察到的目标车辆的指示与目标车辆相关联的入侵等级的导航特性可以包括目标车辆与主车辆之间的相对加速度的增加、主车辆后方目标车辆的跟随距离、目标车辆与主车辆之间的相对速度等。
利用感测不确定性导航
如上所述,本公开的实施例可以通过使用利用约束训练的***来提供安全自主车辆导航,使得由经训练的***选择的动作可以已经考虑到可应用的安全约束和舒适约束。另外,在一些实施例中,额外的安全层可以包括通过主车辆的环境中特定感测场景所涉及的约束(无论是安全还是舒适)来测试经训练的***的所选择的动作。
这些实施例还可以考虑由于传感器误差和/或故障导致的不确定性。为了减少误差和故障,在一些实施例中,所公开的***和方法可以使用多个传感器。然而,多个传感器的使用可能引入新的不确定性的源,例如包括:(1)完全矛盾的假设,例如,如果相机指示车辆的存在,在此情况下激光雷达不这样指示,或者如果地图数据库指示车道的存在而相机不这样指示;以及(2)关于对象位置的不确定性,例如,如果相机指示车辆正以每秒10米的速度移动,而激光雷达指示其以每秒10.5米的速度移动。最后,单传感器和多传感器实施例两者可能由于盲区(也被称为遮蔽区)而遭受不确定性,例如,如果摄像机不能看到大树的另一边或两辆停放的车辆之间。
因此,本公开的实施例提供了在施加安全和舒适约束时可以考虑感测不确定性的***和方法。因此,本文提供的技术解决方案解决了关于由使用多个传感器引起的感测不确定性以及关于在训练车辆导航***时约束的安全需求的技术问题。安全约束(也称为硬性约束)可以消除自主导航的现有技术解决方案中的错误。舒适约束(也称为期望)可以通过允许自主车辆执行非关键操纵来改善用户体验,主观评估场景的人可以本能地决定采取该非关键操纵作为预防措施或者以其它方式使一个或多个乘客感觉更舒适和/或安全的措施。
如本公开所述,下面讨论的任何实施例可以经由学习被实施到经训练的***中,和/或可以实施为对于经训练的***的所选择的动作的附加处理层。
图19是与所公开的示例性实施例一致的、用于利用感测不确定性驾驶的***1900的框图表示。类似于上面参考图1讨论的***100,车辆200可以包括***1900。取决于特定实施方式的要求,***1900可以包括各种组件。在一些实施例中,***1900可以包括:一个或多个处理器,诸如应用处理器1901a、图像处理器1901b和/或任何其它合适的处理设备;GPS 1903;雷达1905;一个或多个图像获取设备,诸如相机1907;激光雷达1909;地图数据库1911;一个或多个存储器,诸如存储器1913;和无线收发器1915。
类似于上面参考图1讨论的***100,应用处理器1901a和图像处理器1901b两者可以包括各种类型的基于硬件的处理设备。例如,应用处理器1901a和图像处理器1901b中的任一者或两者可以包括微处理器、预处理器(诸如图像预处理器)、图形处理器、中央处理单元(CPU)、辅助电路、数字信号处理器、集成电路、存储器或适用于运行应用和图像处理和分析的任何其它类型的设备。在一些实施例中,应用处理器1901a和/或图像处理器1901b可以包括任何类型的单核或多核处理器、移动设备微控制器、中央处理单元等。可以使用各种处理设备,包括例如可从诸如等制造商获得的处理器,并且可以包括各种架构(例如,x86处理器、/>等)。在一些实施例中,如上面所解释的,应用处理器1901a和/或图像处理器1901b可以包括可从/>获得的任何EyeQ系列处理器芯片。尽管图19描绘了两个独立的处理设备,但是可以使用更多或更少的处理设备。例如,在一些实施例中,单个处理设备可以用于完成应用处理器1901a和图像处理器1901b的任务。在其它实施例中,这些任务可以由两个以上的处理设备来执行。
GPS 1903可以包括适用于确定与***1900的至少一个组件相关联的位置的任何类型的设备。尽管被描绘为GPS,但是除了GPS设备之外或者代替GPS设备,可以使用任何其它定位设备,诸如WiFi定位***(WPS)、磁定位设备等。
雷达1905可以包括适用于使用无线电波来确定目标对象的范围、角度、速度等的任何类型的设备。类似地,激光雷达1909可以包括适用于使用光波来确定目标对象的范围、角度、速度等的任何类型的设备。
相机1907可以包括适合于从环境中捕捉至少一个图像的任何类型的设备。此外,尽管在图19中描绘为单个相机,但是任何数量的图像捕捉设备可以用于获取图像以用于输入到应用处理器和/或图像处理器。一些实施例可以仅包括单个图像捕捉设备,而其它实施例可以包括两个、三个、甚至四个或更多图像捕捉设备。
尽管被描绘为包括GPS 1903、雷达1905、相机1907和激光雷达1909,但是***1900可以使用更多或更少的感测设备。例如,在一些实施例中,***1900可以使用与相机1907配对的GPS 1903、与激光雷达1909配对的相机1907等。在其它实施例中,附加传感器,诸如麦克风、指南针、风速计、速度计、加速度计等。
存储器1913可以包括软件指令,该软件指令在由处理器(例如,应用处理器1901a和/或图像处理器1901b)执行时可以控制***1900的各个方面的操作。例如,这些存储单元可以包括各种数据库和图像处理软件,以及经训练的***,诸如神经网络或深度神经网络。在另一示例中,存储器1913可以包括用于执行下面描述的图22的方法2200的指令。存储器1913可以包括随机存取存储器、只读存储器、闪速存储器、磁盘驱动器、光存储、磁带存储、可移动存储和/或任何其它类型的存储。在一些实施例中,存储器1913可以是单个存储器。在其它实施例中,存储器1913可以包括多个存储器。在一些实施例中,存储器1913可以与应用处理器1901a和/或图像处理器1901b分离。在其它实施例中,存储器1913可以至少部分地被集成到应用处理器1901a和/或图像处理器1901b中。
地图数据库1911可以包括用于存储对***1900有用的地图数据的任何类型的数据库。在一些实施例中,地图数据库1911可以包括与各种项目在参考坐标系中的位置相关的数据,该各种项目包括道路、水特征、地理特征、商业、兴趣点、餐馆、加油站等。地图数据库1911不仅可以存储这些项目的位置,还可以存储与这些项目相关的描述符,包括例如与任何存储的特征相关联的名称。在一些情况下,地图数据库1911可以存储稀疏数据模型,该稀疏数据模型包括某些道路特征(例如,车道标记)或主车辆的目标轨迹的多项式表示。地图数据库1911还可以包括已存储的各种辨识出的地标的表示,该地标的表示可以用于确定或更新主车辆相对于目标轨迹的已知位置。地标表示可以包括数据字段,诸如地标类型、地标位置以及其它潜在标识符。因此,环境的传感信息(诸如来自激光雷达的图像、雷达信号、深度信息或者两个或更多个图像的立体处理)可以与诸如GPS坐标、车辆的自我运动等的位置信息一起被处理,以确定车辆相对于已知地标的当前位置,并细化车辆位置。这种技术的某些方面被包括在由本申请的受让人销售的、称为REMTM的定位技术中。
地图数据库1911可以至少部分地被存储在存储器1913(和/或***1900的另一个存储器)上。因此,如图19所描绘的,应用处理器1901a和/或图像处理器1901b可以例如经由总线直接访问地图数据库1911。附加地或替代地,地图数据库1911可以至少部分地被存储在例如通过一个或多个计算机网络可访问的远程服务器上。因此,如图19中进一步描述的,应用处理器1901a和/或图像处理器1901b可以使用无线收发器1915通过一个或多个计算机网络访问地图数据库1911。
无线收发器1915可以包括被配置为通过使用射频、红外频率、磁场或电场来交换通过空中接口到一个或多个计算机网络(例如,蜂窝、互联网等)的传输的一个或多个设备。无线收发器1915可以使用任何已知的标准来发送和/或接收数据(例如,Wi-Fi、蓝牙智能、802.15.4、ZigBee等)。这样的传输可以包括从主车辆到一个或多个远程定位的服务器的通信,例如存储地图数据库1911的一个或多个服务器。这样的传输还可以包括主车辆与在主车辆的环境中的一个或多个目标车辆之间的(单向或双向的)通信(例如,在车辆之间共享地图数据库1911的部分),或者甚至是向发送车辆附近的未指定的接收者的广播传输。
图20是存储器140和/或150的示例性功能框图,该存储器140和/或150可以存储/编程有用于执行与所公开的实施例一致的一个或多个操作的指令。尽管下文参考存储器140,但是本领域技术人员将认识到,指令可以被存储在***1900的存储器140和/或150中,或者甚至被存储在存储器1913中。
如图20所示,存储器140可以存储传感器输出模块2002、目标对象模块2004、驾驶条件模块2006和导航约束模块2006。所公开的实施例不限于存储器140的任何特定配置。此外,应用处理器180和/或图像处理器190(或者,对于存储器1913,应用处理器1901a和/或图像处理器1901b)可以执行存储在存储器140(或者存储器1913)中包括的模块402-408的任何者中的指令。本领域技术人员将理解,在下面的讨论中,对处理单元110的参考可以分别或共同地指代应用处理器180和图像处理器190(或应用处理器1901a和/或图像处理器1901b)。因此,任何以下处理的步骤可以由一个或多个处理设备来执行。
在一个实施例中,传感器输出模块2002可以存储指令(诸如计算机视觉软件),该指令在由处理单元110执行时,从主车辆上车载的一个或多个传感器接收输出。例如,传感器输出模块2002可以从主车辆上车载的第一传感器接收第一输出和从主车辆上车载的第二传感器接收第二输出。在一些实施例中,第一输出可以与主车辆的环境的第一部分相关联。例如,如果第一传感器是相机,则该第一部分可以包括相机的视场。类似地,如果第一传感器是雷达或激光雷达,则该第一部分可以包括雷达或激光雷达的视场。在另一个示例中,如果第一传感器是定向麦克风,则该第一部分可以包括其中来自主车辆的方向与麦克风的方向匹配(或接近)的环境部分。
此外,第二输出可以与主车辆的环境的第二部分相关联。例如,类似于第一传感器,如果第二传感器是相机,则该第二部分可以包括相机的视场。类似地,如果第二传感器是雷达或激光雷达,则该第二部分可以包括雷达或激光雷达的视场。在另一个示例中,如果第二传感器是定向麦克风,则该第二部分可以包括其中来自主车辆的方向与麦克风的方向匹配(或接近)的环境部分。在一些实施例中,第二部分可以至少部分地与第一部分重叠。
在一个实施例中,目标对象模块2004可以存储指令(诸如计算机视觉软件),该指令在由处理单元110执行时,识别第一输出中的目标对象的表示。例如,如上所述,目标对象模块2004可以执行处理500B的全部或一部分,以识别目标对象的表示。
在一个示例中,目标对象模块2004可以通过扫描和/或分析第一输出、将第一输出与一个或多个预定模式进行比较、以及在第一输出内识别可能包含感兴趣的对象(例如,车辆、行人、静止对象、车道标记等)的可能位置,来确定表示目标对象(例如,车辆、行人、静止对象、车道标记等)的一组候选对象。预定模式可以匹配来自第一传感器的输出类型。例如,如果第一传感器是相机,预定模式可以是视觉的,而如果第一传感器是麦克风,预定模式可以是听觉的。在一些实施例中,预定模式可以被配置为实现高比率的“伪命中”和低比率的“漏掉”。例如,目标对象模块2004可以使用与一个或多个预定模式的相似性的低阈值用于将候选对象识别为可能的目标对象,以减少漏掉(例如,未识别出)表示目标对象的候选对象的概率。
目标对象模块2004可以基于分类标准进一步过滤该组候选对象以排除某些候选(例如,不相关或较不相关的对象)。这种标准可以从与存储在数据库(例如,存储在存储器140(未示出)和/或从一个或多个远程服务器访问的数据库)中的对象类型相关联的各种属性中得出。属性可以包括对象形状、尺寸、纹理、位置(例如,相对于主车辆)、速度(例如,相对于主车辆)、加速度(例如,平均的、瞬时的、绝对的或相对的以及在不同轴上的)等。因此,目标对象模块2004可以使用一组或多组标准来从该组候选对象中拒绝伪候选。
在其中第一输出包括随时间的多个帧的实施例中,目标对象模块2004还可以分析第一输出的多个帧,以确定该组候选对象中的对象是否表示一个或多个目标对象。例如,目标对象模块2004可以跨连续帧跟踪检测到的候选对象,并累积与该检测到的对象相关联的逐帧(frame-by-frame)数据(例如,大小、相对于主车辆的位置、相对于主车辆的速度等)。附加地或替代地,目标对象模块2004可以估计检测到的对象的参数,并将对象的逐帧位置数据与预测的位置进行比较。“帧”的使用并不意味着第一个输出必须是图像,尽管它可以是图像。如本文所使用的,“帧”是指从第一传感器、第二传感器或任何附加传感器接收的跨时间的任何离散化的测量序列。
目标对象模块2004还可以构建对于检测到的对象的一组测量。这种测量可以包括例如与检测到的对象相关联的位置、速度和加速度值(例如,相对于主车辆)。在一些实施例中,目标对象模块2004可以基于使用一系列基于时间的观察的、诸如卡尔曼滤波器或线性二次估计(LQE)的估计技术和/或基于对于不同对象类型(例如,汽车、卡车、行人、自行车、道路标志等)的可用建模数据来构建测量。卡尔曼滤波器可以基于对象的比例的测量,其中该比例测量与要碰撞的时间(例如,主车辆到达对象的时间量)成比例。
在其中第一输出包括随时间的多个帧的实施例中,目标对象模块2004可以执行对一个或多个图像的光流分析,以减少检测到“伪命中”和漏掉表示车辆或行人的候选对象的概率。光流分析可以指例如分析在该一个或多个图像中与其它车辆和行人相关联的、相对于车辆200的运动模式,并且该运动模式区别于路面运动。处理单元110可以通过跨越在不同时间捕捉到的多个图像帧观察候选对象的不同位置,来计算候选对象的运动。处理单元110可以使用位置和时间值作为对用于计算候选对象的运动的数学模型的输入。因此,光流分析可以提供检测在车辆200附近的车辆和行人的另一种方法。处理单元110可以结合步骤540-546执行光流分析,以提供用于检测车辆和行人的冗余,并提高***100的可靠性。
附加地或替代地,目标对象模块2004可以执行上述处理500C的全部或一部分,以便识别目标对象的表示。
在其中目标对象模块2004被实施为对于经训练的***的所选择的动作的附加处理层的实施例中,目标对象模块2004可以从经训练的***接收目标对象的识别。因此,目标对象模块2004可以扫描第一输出,将第一输出与匹配从经训练的***接收的目标对象的模式进行比较,并且在第一输出内识别目标对象的位置。例如,目标对象模块2004可以从经训练的网络接收另一车辆的识别,提取存储在数据库(例如,存储在存储器140(未示出)中和/或从一个或多个远程服务器访问的数据库)中的、并且被索引为车辆的模式以及匹配第一输出的类型(例如,视觉、听觉、热的等)的模式,并通过将第一输出与提取的模式进行比较来在第一输出内识别该另一车辆的位置。
可替换地,在其中目标对象模块2004被实施为对于经训练的***的所选择的动作的附加处理层的实施例中,目标对象模块2004可以从经训练的***接收目标对象的识别以及目标对象的位置。如果接收的位置在第一输出中,目标对象模块2004可以在接收的位置处和/或附近执行分类(例如,使用上述比较),以识别第一输出中的目标对象。如果接收的位置在另一个输出中(例如,来自另一个传感器),则目标对象模块2004可以提取存储在数据库(例如,存储在存储器140中和/或从一个或多个远程服务器访问的数据库(未示出))中的、并且被索引为匹配目标对象(例如,车辆、行人、静止对象等)以及匹配第一输出的类型(例如,视觉、听觉、热的等)的对象类型的模式,并通过将第一输出与提取的模式进行比较来在第一输出内识别目标对象的位置。此外,或者作为该比较的替代,目标对象模块2004可以构建包括将由经训练的***使用的输出上的位置映射到第一输出上的位置的信息的地图集(atlas)。基于此,目标对象模块2004可以确定第一输出中的基于目标对象在由经训练的***使用的输出中的位置而预期目标对象的表示所在的位置,并执行分类(例如,使用上述比较)以在第一输出内识别目标对象的位置。
目标对象模块2004可以进一步确定目标对象的表示是否被包括在第二输出中。例如,如上关于第一输出所描述的,目标对象模块2004可以执行处理500B和/或处理500C的全部或一部分,以便识别第二输出中目标对象的表示。可替换地,目标对象模块2004可以使用来自第一输出的目标对象的识别来扫描第二输出,将第二输出与匹配在第一输出中识别的目标对象的模式进行比较,并确定第二输出是否包括目标对象的表示。例如,目标对象模块2004可以在第一输出中识别行人,提取被存储在数据库(例如,存储在存储器140(未示出)中和/或从一个或多个远程服务器访问的数据库)中的、并且索引为行人的模式以及匹配第二输出的类型(例如,视觉、听觉、热的等)的模式,并通过将第二输出与提取的模式进行比较来在第二输出中识别行人的位置。此外,或者作为该比较的替代,目标对象模块2004可以构建包括将第一输出上的位置映射到第二输出上的位置的信息的地图集。基于此,目标对象模块2004可以确定在第二输出中的基于目标对象在第一输出中的位置而预期目标对象的表示所在的位置,并且执行分类(例如,使用上述比较)以确定目标对象的表示是否被包括在第二输出中。
在一个实施例中,驾驶条件模块2006可以存储软件指令,该软件指令被配置为基于第一输出或第二输出中的至少一个来确定与目标对象相关联的检测到的驾驶条件。例如,检测到的驾驶条件可以包括检测到的对象。在这样的示例中,检测到的驾驶条件可以是到检测到的对象的距离、检测到的对象的速度(相对于主车辆)、要与检测到的对象碰撞的时间等。检测到的对象可以与目标对象相同。可替换地,检测到的对象可以是不同的。例如,如果目标对象是车辆,则检测到的驾驶条件可以是到从车辆行李箱伸出的对象的距离、对象的速度、要与对象碰撞的时间等。
在另一个示例中,检测到的驾驶条件可以包括检测到的车辆。在这样的示例中,检测到的驾驶条件可以是到检测到的车辆的距离、检测到的车辆的速度(相对于主车辆)、要与检测到的车辆碰撞的时间等。检测到的车辆可以与目标对象相同。可替换地,检测到的车辆可以是不同的。例如,如果目标对象是车行道中的静止对象,则检测到的驾驶条件可以是到预期避开静止对象的车辆的距离、该车辆的速度、要与该车辆碰撞的时间等。
在第三示例中,检测到的驾驶条件可以包括检测到的行人。在这样的示例中,检测到的驾驶条件可以是到检测到的行人的距离、检测到的行人的速度(相对于主车辆)、要与检测到的行人碰撞的时间等。检测到的行人可以与目标对象相同。可替换地,检测到的行人可以是不同的。例如,如果目标对象是狗,则检测到的驾驶条件可以是到带狗行走的行人的距离、该行人的速度、要与该行人碰撞的时间等。
在第四示例中,检测到的驾驶条件可以包括车行道的检测到的车道。在这样的示例中,检测到的驾驶条件可以是到检测到的车道的距离等。检测到的车道可以与目标对象相同(或者,如果目标对象是车道标记,则由目标对象描绘)。可替换地,检测到的车道可以是不同的。例如,如果目标对象是车辆,则检测到的驾驶条件可以是到车辆正在行驶的车道的距离等。
在第五示例中,检测到的驾驶条件可以包括检测到的遮蔽区。在这样的示例中,检测到的驾驶条件可以是到检测到的区的距离等。检测到的区可以与目标对象相同。可替换地,检测到的区可以是不同的。例如,如果目标对象是另一车辆,则检测到的驾驶条件可以是由该另一车辆创建的遮蔽区的大小、到该区的距离等。
在一个实施例中,导航约束模块2008可以存储软件指令,该软件指令可由处理单元110执行以确定检测到的驾驶条件是否触发至少一个导航约束。如以上所解释的,检测到的驾驶条件可以触发硬性(例如,安全)约束或软性(例如,舒适)约束。
上述示例不是封闭性列表,并且检测到的驾驶条件的进一步示例可以包括附加的或其它的对象,诸如交通标志、交通灯、道路标志、道路标记等。
导航约束模块2008可以进一步使用驾驶条件模块2006的输出来实施用于导航调节的决策树。导航调节可以基于从第一传感器、第二传感器、任何其它传感器、地图数据以及从第一输出、第二输出和任何其它输出检测到的一个或多个对象得出的数据。导航约束模块2008还可以基于来自车辆200的其它***(诸如车辆200的油门调节***220、制动***230和/或转向***240)的输入来确定期望的导航响应。此外,或者可替换地,导航约束模块2008可以从其它存储器模块(未示出)和/或从经训练的***接收一个或多个导航调节,如上所述。因此,导航约束模块2008可以被实施为对于经训练的***的所选择的动作的附加处理层。
如果至少一个导航约束未被检测到的驾驶条件触发,并且目标对象的表示被包括在第一输出和第二输出两者中,则导航约束模块2008可以响应于目标对象而引起对主车辆的一个或多个导航致动器的至少第一调节。为了引起第一调节,导航约束模块2008可以向车辆200的油门调节***220、制动***230和/或转向***240传输电子信号,以通过例如转动车辆200的方向盘实现预定角度的旋转来触发期望的导航响应。
另一方面,如果至少一个导航约束未被检测到的驾驶条件触发,并且目标对象的表示被包括在第一输出中,但是目标对象的表示不被包括在第二输出中,则导航约束模块2008可以响应于目标对象而放弃对主车辆的一个或多个导航致动器的任何调节。
最后,如果至少一个导航约束被检测到的驾驶条件触发,并且目标对象的表示被包括在第一输出或第二输出中,则导航约束模块2008可以响应于目标对象引起对主车辆的一个或多个导航致动器的至少第二调节。第二调节可以不同于第一调节。例如,第二调节可以是基于硬性(安全)约束的调节,诸如移动车道以避免与静止车辆的碰撞、制动以避免与行人的碰撞、转向以避开护栏等。另一方面,第一调节可以是基于软性(舒适)约束的调节,诸如移动车道以允许尾随车辆移动到主车辆前方、响应于行人朝向车行道倾斜但没有踏入车行道而制动、转向以将主车辆定位得更靠近行驶车道的中心等。为了引起第二调节,导航约束模块2008可以向车辆200的油门调节***220、制动***230和/或转向***240传输电子信号,以通过例如转动车辆200的方向盘实现预定角度的旋转来触发期望的导航响应。
此外,本文公开的任何模块(例如,模块2002、2004、2006和2008)可以实施与经训练的***(诸如,神经网络或深度神经网络)或未经训练的***相关联的技术。此外,或者可替换地,本文公开的任何模块(例如,模块2002、2004、2006和2008)可以将技术实施为对于经训练的***的所选择的动作的附加处理层。
图21A提供了车道标记作为目标对象的图示性描述。如图21A所描绘的,主车辆2100可以检测车道标记2101a作为目标对象。尽管在图21A中被描绘为虚线,车道标记2101a可以是实线或双线(诸如双实线、带虚线的实线)等。在另一示例中,主车辆2100可以检测车道标记2101b作为目标对象。尽管在图21A中被描绘为实线,车道标记2101b可以是护栏、沥青和草之间的界面或者车道边界的另一个指示符。
图21B提供了到车道标记的距离作为检测到的驾驶条件的图示性描述。类似于图21A,在图21B中,主车辆2100已经检测到车道标记2101c作为目标对象。因此,在图21B的示例中,主车辆2100和车道标记2101c之间的距离2103可以被确定为与车道标记2101c相关联的检测到的驾驶条件。尽管在图21B中未描绘出,但是与车道标记2101c相关联的其它检测到的驾驶条件可以包括主车辆2100和车道标记2101c之间的相对速度、要与车道标记2101c碰撞的时间等。
在一些实施例中,与车道标记2101c相关联的检测到的驾驶条件可以触发至少一个导航约束。例如,导航约束可以与到车道标记2101c的距离(诸如最小距离)、主车辆2100和车道标记2101c之间的相对速度(诸如最大相对速度,例如接近零)、要与车道标记2101c碰撞的时间(诸如最小碰撞时间)等相关联。
图21C提供了其它车辆作为目标对象的图示性描述。如图21C所描绘的,主车辆2100可以检测主车辆2100前方的其它车辆(诸如车辆2105)、主车辆2100后方的其它车辆(诸如车辆2107)以及在主车辆2100正在行驶的车道之外的车道中的其它车辆(诸如车辆2109)作为目标对象。
图21D提供了到其它车辆的距离作为检测到的驾驶条件的图示性描述。在图21D的示例中,主车辆2100与其它车辆2105之间的距离2111、主车辆2100与其它车辆2109之间的距离2113和/或主车辆2100与其它车辆2107之间的距离2115可以被确定为与车辆2105、2107和2109中的一个或多个相关联的检测到的驾驶条件。尽管在图21D中未描绘出,但是与车辆2105、2107和2109中的一个或多个相关联的其它检测到的驾驶条件可以包括主车辆2100与车辆2105、2107和2109中的一个或多个之间的相对速度、与车辆2105、2107和2109中的一个或多个的碰撞时间等。
在一些实施例中,与车辆2105、2107和2109中的一个或多个相关联的检测到的驾驶条件可以触发至少一个导航约束。例如,导航约束可以与到车辆2105、2107和2109中的一个或多个的距离(诸如最小距离)、主车辆2100与车辆2105、2107和2109中的一个或多个之间的相对速度(诸如最大相对速度,例如接近零)、要与车辆2105、2107和2109中的一个或多个碰撞的时间(诸如最小碰撞时间,例如在表示车辆作出反应并避免碰撞的能力的某个阈值以上)等相关联。
图21E提供了车行道上的静止对象作为目标对象的图示性描述。如图21E所描绘的,主车辆2100可以检测主车辆2100正在穿过的车行道路上的静止对象2117作为目标对象。
图21F提供了到车行道上的静止对象的距离作为检测到的驾驶条件的图示性描述。在图21F的示例中,主车辆2100和静止对象2117之间的距离2119可以被确定为与静止对象2117相关联的检测到的驾驶条件。尽管在图21F中未描绘出,但是与静止对象2117相关联的其它检测到的驾驶条件可以包括主车辆2100和静止对象2117之间的相对速度、要与静止对象2117碰撞的时间等。
在一些实施例中,与静止对象2117相关联的检测到的驾驶条件可以触发至少一个导航约束。例如,导航约束可以与到静止对象2117的距离(诸如最小距离)、主车辆2100和静止对象2117之间的相对速度(诸如最大相对速度,例如接近零)、要与静止对象2117碰撞的时间(诸如最小碰撞时间)等相关联。
图21G提供了行人作为目标对象图示性描述。如图21G所描绘的,主车辆2100可以检测行人2121作为目标对象。
图21H提供了到行人的距离作为检测到的驾驶条件的图示性描述。在图21H的示例中,主车辆2100和行人2121之间的距离2123可以被确定为与行人2121相关联的检测到的驾驶条件。尽管在图21H中未描绘出,但是与行人2121相关联的其它检测到的驾驶条件可以包括主车辆2100和行人2121之间的相对速度、要与行人2121碰撞的时间等。
在一些实施例中,与行人2121相关联的检测到的驾驶条件可以触发至少一个导航约束。例如,导航约束可以与到行人2121的距离(诸如最小距离)、主车辆2100和行人2121之间的相对速度(诸如最大相对速度,例如接近零)、要与行人2121碰撞的时间(诸如最小碰撞时间)等相关联。
图21I提供了与遮蔽区相关联的目标对象的图示性描述。如图21G所描绘的,主车辆2100可以将对象(例如树2125)检测为引起遮蔽区2127。遮蔽区2127可以包括一个或多个对象,诸如行人2129。因此,树2125可以被选择为与遮蔽区2127相关联的目标对象,或者行人2129可以被选择为与遮蔽区2127相关联的目标对象。
遮蔽区2127中的对象对于主车辆2100的一个或多个传感器是可见的,但是对于主车辆2100的一个或多个其它传感器是不可见的。可替换地,遮蔽区2127中的对象对于主车辆2100的所有传感器可能是不可见的。
图21J提供了到遮蔽区的距离作为检测到的驾驶条件的图示性描述。在
图21J的示例中,主车辆2100和遮蔽区2127之间的距离2131可以被确定为与树2125和/或行人2129相关联的检测到的驾驶条件。尽管在图21J中未描绘出,但是与树2125和/或行人2129相关联的其它检测到的驾驶条件可以包括主车辆2100和行人2129之间的距离、主车辆2100和行人2129之间的相对速度、要与行人2129碰撞的时间、遮蔽区2127的大小、要经过遮蔽区2127的时间等。
在一些实施例中,与树2125和/或行人2129相关联的检测到的驾驶条件可以触发至少一个导航约束。例如,导航约束可以与到遮蔽区2127的距离(诸如最小距离)、到行人2129的距离(诸如最小距离)、主车辆2100和行人2129之间的相对速度(诸如最大相对速度,例如接近零)、主车辆和与行人和/或主车辆的估计的运动相关联的碰撞危险区之间的相对速度(诸如可能包括行人和/或主车辆的估计的运动方向)、要与行人2129碰撞的时间(诸如要碰撞的最小时间,例如,在与使主车辆完全停止所要求的时间相对应的时间段之上)、遮蔽区2127的大小(诸如取决于遮蔽区2127大小的最小距离和/或最大速度)、经过遮蔽区2127的时间(诸如取决于经过时间的最大速度)等相关联。
图22提供了表示用于以感测不确定性导航车辆的示例算法2200的流程图。在图22的示例中,至少两个传感器(***1900的GPS 1903、雷达1905、相机1907和激光雷达1909中的两个)可以用于输入。尽管使用两个传感器进行了描述,但是任何附加的传感器(例如,三个、四个、五个等)可以被实施到方法2200中。
在步骤2202,主车辆导航***的至少一个处理设备(例如,处理设备110)可以从主车辆上车载的第一传感器接收第一输出。如以上关于传感器输出模块2002所解释的,第一输出可以与主车辆的环境的第一部分相关联。
在步骤2204,至少一个处理设备可以从主车辆上车载的第二传感器接收第二输出。如以上关于传感器输出模块2002所解释的,第二输出可以与主车辆的环境的第二部分相关联,并且第二部分可以至少部分地与第一部分重叠。
在一些实施例中,第一传感器可以包括相机。结合相机或在替代实施例中,第二传感器可以包括激光雷达、雷达或全球定位***(GPS)传感器。可以使用任何其它传感器,例如热成像相机、麦克风等。
作为步骤2204的附加或替代,至少一个处理设备可以从主车辆上车载的地图***接收第二输出。在这样的实施例中,第二输出可以与主车辆的环境的第二部分相关联,并且第二部分可以至少部分地与第一部分重叠。在这样的实施例中,地图***可以被配置为访问数据库(例如,地图数据库1911),以检索与车辆的环境的第二部分相关联的至少一个地图。如上关于图19所描述的,数据库的至少一部分可以被包括在主车辆中。附加地或替代地,地图***可以进一步被配置为经由至少一个网络无线地访问数据库的至少一部分。
在步骤2205,至少一个处理设备可以识别第一输出中的目标对象的表示。例如,如以上关于目标对象模块2004所解释的,至少一个处理设备可以识别包括另一车辆的目标对象、包括车行道上的静止对象的目标对象、包括行人的目标对象、包括车道标记的目标对象和/或与遮蔽区相关联的目标对象。
在步骤2208,至少一个处理设备可以确定目标对象的表示是否被包括在第二输出中。例如,如以上关于目标对象模块2004所解释的,至少一个处理设备可以通过执行分类和/或通过将第一输出中的目标对象的位置映射到第二输出中的相应位置来识别第二输出中的目标对象的位置。
在步骤2210a和2210b,至少一个处理设备可以基于第一输出或第二输出中的至少一个来确定与目标对象相关联的检测到的驾驶条件以及检测到的驾驶条件是否触发至少一个导航约束。例如,如以上关于驾驶条件模块2006所解释的,至少一个处理器可以确定包括检测到的对象的检测到的驾驶条件、包括检测到的车辆的检测到的驾驶条件、包括检测到的行人的检测到的驾驶条件、包括车行道的检测到的车道的检测到的驾驶条件和/或包括检测到的遮蔽区的检测到的驾驶条件。
在一些实施例中,包括在以上示例中,至少一个导航约束可以与到检测到的对象的距离、到检测到的行人的距离、检测到的遮蔽区的大小、到检测到的遮蔽区的距离、主车辆和检测到的对象之间的相对速度和/或遮蔽区的类型相关联。附加地或替代地,至少一个导航约束可以包括预定的安全约束和/或要与检测到的对象碰撞的时间。
尽管被描绘为评估目标对象的表示是否被包括在第二输出中,随后评估检测到的驾驶条件是否触发至少一个导航约束,但是至少一个处理设备可以反转评估的顺序。这种反转得到下面讨论的评估的相同的四个组合结果,但也可以允许可能的捷径。例如,如步骤2212所示,如果至少一个导航约束被检测到的驾驶条件触发,则至少一个处理设备可以引起调节,而不管目标对象的表示是否被包括在第二输出中。因此,在评估顺序反转的实施例中,当确定检测到的驾驶条件触发至少一个导航约束时,至少一个处理设备可以跳过对目标对象的表示是否被包括在第二输出中的评估。
在步骤2212,如果至少一个导航约束被检测到的驾驶条件触发,并且目标对象的表示被包括在第一输出或第二输出中,则至少一个处理设备可以响应于目标对象而引起对主车辆的一个或多个导航致动器的至少第二调节。
在步骤2214,如果至少一个导航约束未被检测到的驾驶条件触发,并且目标对象的表示被包括在第一输出和第二输出两者中,则至少一个处理设备可以响应于目标对象而引起对主车辆的一个或多个导航致动器的至少第一调节。如以上关于导航约束模块2008所解释的,第一调节可以不同于第二调节。
在步骤2216,如果至少一个导航约束未被检测到的驾驶条件触发,并且目标对象的表示被包括在第一输出中,但是目标对象的表示不被包括在第二输出中,则至少一个处理设备可以响应于目标对象而放弃对主车辆的一个或多个导航致动器的任何调节。
方法2200可以进一步包括附加步骤。例如,方法2200可以进一步包括从主车辆上车载的第三传感器接收第三输出。在这样的实施例中,方法2200可以包括:如果至少一个导航约束被检测到的驾驶条件触发,并且目标对象的表示被包括在第一输出、第二输出或第三输出中,则引起至少第二调节;如果至少一个导航约束不被检测到的驾驶条件触发,并且目标对象的表示被包括在第一输出、第二输出和第三输出中,则引起至少第一调节;如果至少一个导航约束未被检测到的驾驶条件触发,并且目标对象的表示仅被包括在第一输出、第二输出和第三输出中的两个中,则引起不同于第一调节和第二调节的至少第三调节;以及如果至少一个导航约束未被检测到的驾驶条件触发,并且目标对象的表示仅被包括在第一输出、第二输出和第三输出中的一个中,则放弃任何调节。本领域普通技术人员可以想到其他变型。例如,如果至少一个导航约束未被检测到的驾驶条件触发,并且目标对象的表示仅被包括在第一输出、第二输出和第三输出中的两个中,则至少一个处理设备也可以放弃任何调节,而不是引起至少第三调节。可以进一步并入附加传感器,并且增加到决策树的更多分支以考虑基于附加传感器的附加组合可能性。
已经出于说明的目的呈现了前面的描述。其并非详尽无遗,并且不限于所公开的精确形式或实施例。考虑到说明书和所公开实施例的实践,修改和适应对于本领域技术人员而言将是显而易见的。另外,尽管所公开的实施例的方面被描述为存储在存储器中,但是本领域技术人员将理解,这些方面也可以存储在其它类型的计算机可读介质上,诸如辅助存储设备,例如,硬盘或CD ROM,或其它形式的RAM或ROM、USB介质、DVD、蓝光、4K超高清蓝光或其它光驱介质。
基于书面描述和公开的方法的计算机程序在有经验的开发者的技能范围内。可以使用本领域技术人员已知的任何技术来创建各种程序或程序模块,或者可以结合现有软件来设计各种程序或程序模块。例如,程序部分或程序模块可以在.Net Framework、.NetCompact Framework(以及相关语言,如Visual Basic、C等)、Java、C++、Objective-C、HTML、HTML/AJAX组合、XML或包含Java小程序的HTML中设计或通过它们来设计。
此外,虽然本文已经描述了说明性实施例,但是具有等效的元件、修改、省略、组合(例如,跨各种实施例的方面的组合)、适应和/或改变的任何和所有实施例的范围将由本领域技术人员基于本公开而理解。权利要求中的限制将基于权利要求中采用的语言广泛地解释,并且不限于本说明书中或在申请的审查期间描述的示例。这些示例应被解释为非排他性的。此外,可以以任何方式修改所公开方法的步骤,包括通过重新排序步骤和/或***或删除步骤。因此,意图是说明书和示例仅被认为是说明性的,真正的范围和精神由后面的权利要求及其等同物的全部范围表示。
Claims (29)
1.一种用于主车辆的导航***,所述导航***包括:
至少一个处理设备,被编程为:
从主车辆上车载的第一传感器接收第一输出,其中所述第一输出与主车辆的环境的第一部分相关联;
从主车辆上车载的第二传感器接收第二输出,其中所述第二输出与主车辆的环境的第二部分相关联,并且其中所述第二部分至少部分地与所述第一部分重叠;
识别所述第一输出中的目标对象的表示;
确定所述目标对象的表示是否被包括在所述第二输出中;
基于所述第一输出或所述第二输出的至少一个,确定与所述目标对象相关联的检测到的驾驶条件,并且确定所述检测到的驾驶条件是否触发至少一个导航约束,所述至少一个导航约束被配置来限制所述主车辆可用的一个或多个导航动作;
如果所述至少一个导航约束未被所述检测到的驾驶条件触发,并且所述目标对象的表示被包括在所述第一输出和所述第二输出两者中,则响应于所述目标对象,引起对主车辆的一个或多个导航致动器的至少第一调节;
如果所述至少一个导航约束未被所述检测到的驾驶条件触发,并且所述目标对象的表示被包括在所述第一输出中,但是所述目标对象的表示不被包括在所述第二输出中,则响应于所述目标对象,放弃对主车辆的一个或多个导航致动器的任何调节;以及
如果所述至少一个导航约束被所述检测到的驾驶条件触发,并且所述目标对象的表示被包括在所述第一输出中或所述第二输出中,则响应于所述目标对象,引起对主车辆的一个或多个导航致动器的至少第二调节,其中所述第二调节不同于所述第一调节。
2.根据权利要求1所述的导航***,其中,所述目标对象包括另一车辆。
3.根据权利要求1所述的导航***,其中,所述目标对象包括车行道上的静止对象。
4.根据权利要求1所述的导航***,其中,所述目标对象包括行人。
5.根据权利要求1所述的导航***,其中,所述目标对象包括车道标记。
6.根据权利要求1所述的导航***,其中,所述目标对象与遮蔽区相关联。
7.根据权利要求1所述的导航***,其中,所述至少一个导航约束与到检测到的对象的距离相关联。
8.根据权利要求1所述的导航***,其中,所述至少一个导航约束与到检测到的行人的距离相关联。
9.根据权利要求1所述的导航***,其中,所述至少一个导航约束与检测到的遮蔽区的大小相关联。
10.根据权利要求1所述的导航***,其中,所述至少一个导航约束与到检测到的遮蔽区的距离相关联。
11.根据权利要求1所述的导航***,其中,所述至少一个导航约束与遮蔽区的类型相关联。
12.根据权利要求1所述的导航***,其中,所述至少一个导航约束包括预定的安全约束。
13.根据权利要求1所述的导航***,其中,所述至少一个导航约束与主车辆和检测到的对象之间的相对速度相关联。
14.根据权利要求1所述的导航***,其中,所述至少一个导航约束包括要与检测到的对象碰撞的时间。
15.根据权利要求1所述的导航***,其中,所述检测到的驾驶条件包括检测到的对象。
16.根据权利要求1所述的导航***,其中,所述检测到的驾驶条件包括检测到的车辆。
17.根据权利要求1所述的导航***,其中,所述检测到的驾驶条件包括检测到的行人。
18.根据权利要求1所述的导航***,其中,所述检测到的驾驶条件包括车行道的检测到的车道。
19.根据权利要求1所述的导航***,其中,所述所检测到的驾驶条件包括检测到的遮蔽区。
20.根据权利要求1所述的导航***,其中,所述第一传感器包括相机。
21.根据权利要求20所述的导航***,其中,所述第二传感器包括激光雷达。
22.根据权利要求20所述的导航***,其中,所述第二传感器包括雷达。
23.根据权利要求20所述的导航***,其中,所述第二传感器包括全球定位***GPS传感器。
24.一种用于主车辆的导航***,所述导航***包括:
至少一个处理设备,被编程为:
从主车辆上车载的第一传感器接收第一输出,其中所述第一输出与主车辆的环境的第一部分相关联;
从主车辆上车载的地图***接收第二输出,其中所述第二输出与主车辆的环境的第二部分相关联,并且其中所述第二部分至少部分地与所述第一部分重叠;
识别所述第一输出中的目标对象的表示;
确定所述目标对象的表示是否被包括在所述第二输出中;
基于所述第一输出或所述第二输出的至少一个,确定与所述目标对象相关联的检测到的驾驶条件,并且确定所述检测到的驾驶条件是否触发至少一个导航约束,所述至少一个导航约束被配置来限制所述主车辆可用的一个或多个导航动作;
如果所述至少一个导航约束未被所述检测到的驾驶条件触发,并且所述目标对象的表示被包括在所述第一输出和所述第二输出两者中,则响应于所述目标对象,引起对主车辆的一个或多个导航致动器的至少第一调节;
如果所述至少一个导航约束未被所述检测到的驾驶条件触发,并且所述目标对象的表示被包括在所述第一输出中,但是所述目标对象的表示不被包括在所述第二输出中,则响应于所述目标对象,放弃对主车辆的一个或多个导航致动器的任何调节;以及
如果所述至少一个导航约束被所述检测到的驾驶条件触发,并且所述目标对象的表示被包括在所述第一输出中或所述第二输出中,则响应于所述目标对象,引起对主车辆的一个或多个导航致动器的至少第二调节,其中所述第二调节不同于所述第一调节。
25.根据权利要求24所述的导航***,其中,所述地图***被配置为访问数据库,以检索与车辆的环境的所述第二部分相关联的至少一个地图。
26.根据权利要求25所述的导航***,其中,所述数据库的至少一部分被包括在所述主车辆中。
27.根据权利要求25所述的导航***,其中,所述地图***还被配置为经由至少一个网络无线地访问所述数据库的至少一部分。
28.一种主车辆,所述主车辆包括:
第一传感器;
第二传感器;和
至少一个处理设备,被编程为:
从所述第一传感器接收第一输出,其中所述第一输出与主车辆的环境的第一部分相关联;
从所述第二传感器接收第二输出,其中所述第二输出与主车辆的环境的第二部分相关联,并且其中所述第二部分至少部分地与所述第一部分重叠;
识别所述第一输出中的目标对象的表示;
确定所述目标对象的表示是否被包括在所述第二输出中;
基于所述第一输出或所述第二输出的至少一个,确定与所述目标对象相关联的检测到的驾驶条件,并且确定所述检测到的驾驶条件是否触发至少一个导航约束,所述至少一个导航约束被配置来限制所述主车辆可用的一个或多个导航动作;
如果所述至少一个导航约束未被所述检测到的驾驶条件触发,并且所述目标对象的表示被包括在所述第一输出和所述第二输出两者中,则响应于所述目标对象,引起对主车辆的一个或多个导航致动器的至少第一调节;
如果所述至少一个导航约束未被所述检测到的驾驶条件触发,并且所述目标对象的表示被包括在所述第一输出中,但是所述目标对象的表示不被包括在所述第二输出中,则响应于所述目标对象,放弃对主车辆的一个或多个导航致动器的任何调节;以及
如果所述至少一个导航约束被所述检测到的驾驶条件触发,并且所述目标对象的表示被包括在所述第一输出中或所述第二输出中,则响应于所述目标对象,引起对主车辆的一个或多个导航致动器的至少第二调节,其中所述第二调节不同于所述第一调节。
29.一种用于导航主车辆的方法,所述方法包括:
从主车辆上车载的第一传感器接收第一输出,其中第一输出与主车辆的环境的第一部分相关联;
从主车辆上车载的第二传感器接收第二输出,其中所述第二输出与主车辆的环境的第二部分相关联,并且其中所述第二部分至少部分地与所述第一部分重叠;
识别所述第一输出中的目标对象的表示;
确定所述目标对象的表示是否被包括在所述第二输出中;
基于所述第一输出或所述第二输出的至少一个,确定与所述目标对象相关联的检测到的驾驶条件,并且确定所述检测到的驾驶条件是否触发至少一个导航约束,所述至少一个导航约束被配置来限制所述主车辆可用的一个或多个导航动作;
如果所述至少一个导航约束未被所述检测到的驾驶条件触发,并且所述目标对象的表示被包括在所述第一输出和所述第二输出两者中,则响应于所述目标对象,引起对主车辆的一个或多个导航致动器的至少第一调节;
如果所述至少一个导航约束未被所述检测到的驾驶条件触发,并且所述目标对象的表示被包括在所述第一输出中,但是所述目标对象的表示不被包括在所述第二输出中,则响应于所述目标对象,放弃对主车辆的一个或多个导航致动器的任何调节;以及
如果所述至少一个导航约束被所述检测到的驾驶条件触发,并且所述目标对象的表示被包括在所述第一输出中或所述第二输出中,则响应于所述目标对象,引起对主车辆的一个或多个导航致动器的至少第二调节,其中所述第二调节不同于所述第一调节。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311493982.8A CN117740023A (zh) | 2017-03-01 | 2018-03-01 | 用于利用感测不确定性导航的***和方法 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762465301P | 2017-03-01 | 2017-03-01 | |
US62/465,301 | 2017-03-01 | ||
PCT/IB2018/000341 WO2018158642A1 (en) | 2017-03-01 | 2018-03-01 | Systems and methods for navigating with sensing uncertainty |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311493982.8A Division CN117740023A (zh) | 2017-03-01 | 2018-03-01 | 用于利用感测不确定性导航的***和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110402371A CN110402371A (zh) | 2019-11-01 |
CN110402371B true CN110402371B (zh) | 2023-12-01 |
Family
ID=61966025
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880014799.6A Active CN110402371B (zh) | 2017-03-01 | 2018-03-01 | 用于利用感测不确定性导航的***和方法 |
CN202311493982.8A Pending CN117740023A (zh) | 2017-03-01 | 2018-03-01 | 用于利用感测不确定性导航的***和方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311493982.8A Pending CN117740023A (zh) | 2017-03-01 | 2018-03-01 | 用于利用感测不确定性导航的***和方法 |
Country Status (7)
Country | Link |
---|---|
US (2) | US11372416B2 (zh) |
EP (1) | EP3548846B1 (zh) |
JP (2) | JP7235247B2 (zh) |
KR (1) | KR102646644B1 (zh) |
CN (2) | CN110402371B (zh) |
IL (1) | IL268393A (zh) |
WO (1) | WO2018158642A1 (zh) |
Families Citing this family (72)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10460600B2 (en) | 2016-01-11 | 2019-10-29 | NetraDyne, Inc. | Driver behavior monitoring |
US11322018B2 (en) | 2016-07-31 | 2022-05-03 | NetraDyne, Inc. | Determining causation of traffic events and encouraging good driving behavior |
KR102551130B1 (ko) * | 2017-01-12 | 2023-07-05 | 모빌아이 비젼 테크놀로지스 엘티디. | 차량 움직임에 기반한 항법 |
US20180208203A1 (en) * | 2017-01-26 | 2018-07-26 | International Business Machines Corporation | System, method and computer program product for braking control when approaching a traffic signal |
CN115855022A (zh) * | 2017-04-07 | 2023-03-28 | 辉达公司 | 使用深度神经网络执行自主路径导航 |
US11055605B2 (en) * | 2017-04-25 | 2021-07-06 | Nec Corporation | Detecting dangerous driving situations by parsing a scene graph of radar detections |
CN118274868A (zh) * | 2017-06-14 | 2024-07-02 | 御眼视觉技术有限公司 | 用于自主导航的装置和方法 |
CN107479368B (zh) * | 2017-06-30 | 2021-09-21 | 北京百度网讯科技有限公司 | 一种基于人工智能的训练无人机控制模型的方法及*** |
WO2019008581A1 (en) * | 2017-07-05 | 2019-01-10 | Cortica Ltd. | DETERMINATION OF DRIVING POLICIES |
WO2019017253A1 (ja) * | 2017-07-18 | 2019-01-24 | パイオニア株式会社 | 制御装置、制御方法、およびプログラム |
DE102017214666A1 (de) * | 2017-08-22 | 2019-02-28 | Robert Bosch Gmbh | Verfahren und Vorrichtung zum Schätzen einer Eigenbewegung eines Fahrzeugs |
EP3687863A4 (en) * | 2017-09-29 | 2020-12-02 | Netradyne, Inc. | MULTIPLE EXPOSURE EVENT DETERMINATION |
EP4283575A3 (en) | 2017-10-12 | 2024-02-28 | Netradyne, Inc. | Detection of driving actions that mitigate risk |
DE112018007253T5 (de) * | 2018-03-09 | 2020-12-17 | Honda Motor Co., Ltd. | Fahrzeugsteuervorrichtung, Fahrzeugsteuerverfahren und Programm |
JP2019156180A (ja) * | 2018-03-13 | 2019-09-19 | 本田技研工業株式会社 | 車両制御装置、車両制御方法、およびプログラム |
US10860025B2 (en) * | 2018-05-15 | 2020-12-08 | Toyota Research Institute, Inc. | Modeling graph of interactions between agents |
CN108922176B (zh) * | 2018-06-27 | 2021-05-14 | 华南理工大学 | 一种混合交通冲突态势的快速判断方法 |
WO2020014683A1 (en) | 2018-07-13 | 2020-01-16 | Kache.AI | Systems and methods for autonomous object detection and vehicle following |
US20200026277A1 (en) * | 2018-07-19 | 2020-01-23 | GM Global Technology Operations LLC | Autonomous driving decisions at intersections using hierarchical options markov decision process |
US10479356B1 (en) | 2018-08-17 | 2019-11-19 | Lyft, Inc. | Road segment similarity determination |
FR3086446A1 (fr) * | 2018-09-24 | 2020-03-27 | Psa Automobiles Sa | Procede de detection et de gestion d’une voie d’insertion par un vehicule autonome ou partiellement autonome |
KR102637599B1 (ko) * | 2018-10-08 | 2024-02-19 | 주식회사 에이치엘클레무브 | 차량간 통신 정보를 이용한 차선변경 제어장치 및 방법과, 그를 위한 성향 정보 산출 장치 |
US10747230B2 (en) * | 2018-10-08 | 2020-08-18 | Mando Corporation | Vehicle control apparatus, vehicle control system, and image sensor |
US11480972B2 (en) * | 2018-11-13 | 2022-10-25 | Qualcomm Incorporated | Hybrid reinforcement learning for autonomous driving |
US11173921B2 (en) * | 2018-11-19 | 2021-11-16 | Micron Technology, Inc. | Sensor fusion to determine reliability of autonomous vehicle operation |
JP7111177B2 (ja) * | 2018-12-07 | 2022-08-02 | 日本電気株式会社 | 学習装置、学習方法、および学習プログラム |
CN113345269B (zh) | 2018-12-28 | 2022-11-08 | 北京百度网讯科技有限公司 | 基于v2x车联网协同的交通工具危险预警的方法、装置和设备 |
US11295556B2 (en) * | 2019-01-02 | 2022-04-05 | Toyota Research Institute, Inc. | Systems and methods for visually displaying a current state of a vehicle in regards to operational constraints of the vehicle |
US11087175B2 (en) * | 2019-01-30 | 2021-08-10 | StradVision, Inc. | Learning method and learning device of recurrent neural network for autonomous driving safety check for changing driving mode between autonomous driving mode and manual driving mode, and testing method and testing device using them |
US11126179B2 (en) * | 2019-02-21 | 2021-09-21 | Zoox, Inc. | Motion prediction based on appearance |
EP3730384B1 (en) * | 2019-04-24 | 2022-10-26 | Aptiv Technologies Limited | System and method for trajectory estimation |
TWI794486B (zh) | 2019-04-30 | 2023-03-01 | 先進光電科技股份有限公司 | 行動載具輔助系統及其處理方法 |
CN110231822B (zh) * | 2019-06-04 | 2022-04-05 | 哈尔滨工程大学 | 一种舰船用变输出约束式无模型自适应航向控制方法 |
KR20200139443A (ko) * | 2019-06-04 | 2020-12-14 | 주식회사 만도 | 운전자 보조 시스템 및 그 제어 방법 |
US11242054B2 (en) * | 2019-06-12 | 2022-02-08 | Honda Motor Co., Ltd. | Autonomous vehicle interactive decision making |
US11928557B2 (en) | 2019-06-13 | 2024-03-12 | Lyft, Inc. | Systems and methods for routing vehicles to capture and evaluate targeted scenarios |
US11087147B2 (en) * | 2019-09-19 | 2021-08-10 | Ford Global Technologies, Llc | Vehicle lane mapping |
US11788846B2 (en) | 2019-09-30 | 2023-10-17 | Lyft, Inc. | Mapping and determining scenarios for geographic regions |
US20220324488A1 (en) * | 2019-10-11 | 2022-10-13 | Sony Group Corporation | Information processing system, information processing apparatus, and information processing method |
US11816900B2 (en) | 2019-10-23 | 2023-11-14 | Lyft, Inc. | Approaches for encoding environmental information |
US12039785B2 (en) * | 2019-10-23 | 2024-07-16 | Lyft, Inc. | Approaches for encoding environmental information |
US11320830B2 (en) | 2019-10-28 | 2022-05-03 | Deere & Company | Probabilistic decision support for obstacle detection and classification in a working area |
US11511666B2 (en) * | 2019-10-28 | 2022-11-29 | Verizon Patent And Licensing Inc. | Systems and methods for utilizing machine learning to identify vehicle surroundings, route conditions, and points of interest |
US10816993B1 (en) * | 2019-11-23 | 2020-10-27 | Ha Q Tran | Smart vehicle |
US10928830B1 (en) * | 2019-11-23 | 2021-02-23 | Ha Q Tran | Smart vehicle |
US11314258B2 (en) | 2019-12-27 | 2022-04-26 | Intel Corporation | Safety system for a vehicle |
KR20210088780A (ko) | 2020-01-06 | 2021-07-15 | 주식회사 만도 | 운전자 보조 장치 및 그 방법 |
FR3106109A1 (fr) * | 2020-01-09 | 2021-07-16 | Psa Automobiles Sa | Procédé et système pour gérer le guidage d’un véhicule automobile sur une route à plusieurs voies de circulation empruntées par des véhicules lorsque deux voies de circulation fusionnent |
CN111338336B (zh) * | 2020-02-11 | 2021-07-13 | 腾讯科技(深圳)有限公司 | 一种自动驾驶方法及装置 |
US11577395B2 (en) | 2020-02-17 | 2023-02-14 | Toyota Research Institute, Inc. | Systems for determining location using robots with deformable sensors |
JP7310636B2 (ja) * | 2020-02-18 | 2023-07-19 | トヨタ自動車株式会社 | 情報処理装置、情報処理方法、およびプログラム |
US11708089B2 (en) * | 2020-02-28 | 2023-07-25 | Honda Motor Co., Ltd. | Systems and methods for curiosity development in agents |
US11759951B2 (en) | 2020-02-28 | 2023-09-19 | Honda Motor Co., Ltd. | Systems and methods for incorporating latent states into robotic planning |
JP7414612B2 (ja) * | 2020-03-26 | 2024-01-16 | 本田技研工業株式会社 | 車両制御装置、車両制御方法、およびプログラム |
US11794762B2 (en) | 2020-04-10 | 2023-10-24 | Toyota Research Institute, Inc. | Peer-to-peer occupancy estimation |
CN111483468B (zh) * | 2020-04-24 | 2021-09-07 | 广州大学 | 基于对抗模仿学习的无人驾驶车辆换道决策方法和*** |
US20210390800A1 (en) * | 2020-06-10 | 2021-12-16 | XL Hybrids | Dynamic vehicle component data apparatuses, systems, and methods |
US11829150B2 (en) | 2020-06-10 | 2023-11-28 | Toyota Research Institute, Inc. | Systems and methods for using a joint feature space to identify driving behaviors |
US20210389138A1 (en) * | 2020-06-15 | 2021-12-16 | Google Llc | Vehicle Communication System for Optimizing Traffic Flow |
US11608067B2 (en) * | 2020-08-12 | 2023-03-21 | Honda Motor Co., Ltd. | Probabilistic-based lane-change decision making and motion planning system and method thereof |
US20220144260A1 (en) * | 2020-11-10 | 2022-05-12 | Honda Motor Co., Ltd. | System and method for completing risk object identification |
CN112414417B (zh) * | 2020-11-17 | 2021-11-26 | 智邮开源通信研究院(北京)有限公司 | 自动驾驶地图生成方法、装置、电子设备及可读存储介质 |
US11780429B2 (en) * | 2021-02-08 | 2023-10-10 | Aptiv Technologies Limited | Target curvature estimation considering vehicle dynamics |
US20220396313A1 (en) * | 2021-06-15 | 2022-12-15 | Steering Solutions Ip Holding Corporation | Systems and methods for active blind zone assist |
CN113296552B (zh) * | 2021-06-23 | 2022-10-28 | 江苏大学 | 一种考虑轮胎纵滑力学特性的汽车纵向速度跟踪控制***的控制方法 |
US11794780B2 (en) * | 2021-07-29 | 2023-10-24 | GM Global Technology Operations LLC | Reward function for vehicles |
US11897461B2 (en) * | 2021-09-10 | 2024-02-13 | Ford Global Technologies, Llc | Methods and systems for autonomous vehicle collision avoidance |
US11972614B2 (en) * | 2021-11-09 | 2024-04-30 | Zoox, Inc. | Machine-learned architecture for efficient object attribute and/or intention classification |
US20230206608A1 (en) | 2021-12-29 | 2023-06-29 | Mobileye Vision Technologies Ltd. | Systems and methods for analyzing and resolving image blockages |
CN114852055B (zh) * | 2022-04-27 | 2024-05-24 | 重庆长安汽车股份有限公司 | 一种停车场环境下的危险行人感知认知方法及*** |
FR3136429A1 (fr) * | 2022-06-10 | 2023-12-15 | Psa Automobiles Sa | Contrôle d’un véhicule à l’approche d’une voie d’insertion prioritaire |
CN118243132B (zh) * | 2024-05-28 | 2024-07-19 | 山东理工大学 | 基于Astar算法与非零和博弈的动态路径规划方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008043852A1 (de) * | 2006-10-13 | 2008-04-17 | Continental Teves Ag & Co. Ohg | System zur bestimmung von objekten |
WO2011047730A1 (en) * | 2009-10-22 | 2011-04-28 | Tele Atlas B.V. | System and method for vehicle navigation using lateral offsets |
CN104044587A (zh) * | 2013-03-14 | 2014-09-17 | 通用汽车环球科技运作有限责任公司 | 用于提高处于自主驾驶模式下的车辆的传感器可视性的***和方法 |
CN106461774A (zh) * | 2014-02-20 | 2017-02-22 | 御眼视觉技术有限公司 | 基于雷达提示视觉成像的高级驾驶员辅助*** |
WO2017029775A1 (en) * | 2015-08-19 | 2017-02-23 | Sony Corporation | System and method for determing navigation information for an autonomous vehicle |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1116099A (ja) | 1997-06-27 | 1999-01-22 | Hitachi Ltd | 自動車走行支援装置 |
JP3603018B2 (ja) | 2000-12-12 | 2004-12-15 | 独立行政法人科学技術振興機構 | 電気自動車の制御装置 |
JP4193765B2 (ja) | 2004-01-28 | 2008-12-10 | トヨタ自動車株式会社 | 車両用走行支援装置 |
JP3979393B2 (ja) | 2004-02-06 | 2007-09-19 | 日産自動車株式会社 | 車線逸脱防止装置 |
US8082101B2 (en) | 2004-04-08 | 2011-12-20 | Mobileye Technologies Ltd. | Collision warning system |
WO2006109527A1 (ja) | 2005-03-30 | 2006-10-19 | National University Corporation Kumamoto University | ナビゲーション装置およびナビゲーション方法 |
JP2008021034A (ja) | 2006-07-11 | 2008-01-31 | Fujitsu Ten Ltd | 画像認識装置、画像認識方法、歩行者認識装置および車両制御装置 |
JP2011194979A (ja) | 2010-03-18 | 2011-10-06 | Toyota Motor Corp | 運転支援装置 |
US8958911B2 (en) * | 2012-02-29 | 2015-02-17 | Irobot Corporation | Mobile robot |
US9150220B2 (en) * | 2013-12-04 | 2015-10-06 | Mobileye Vision Technologies Ltd. | Systems and methods for mimicking a leading vehicle |
JP6181678B2 (ja) | 2015-01-29 | 2017-08-16 | トヨタ自動車株式会社 | 車両制動制御装置 |
JP6455292B2 (ja) * | 2015-04-15 | 2019-01-23 | 日産自動車株式会社 | 物体検出装置及び物体検出方法 |
-
2018
- 2018-03-01 US US16/479,588 patent/US11372416B2/en active Active
- 2018-03-01 JP JP2019537362A patent/JP7235247B2/ja active Active
- 2018-03-01 KR KR1020197027982A patent/KR102646644B1/ko active IP Right Grant
- 2018-03-01 CN CN201880014799.6A patent/CN110402371B/zh active Active
- 2018-03-01 EP EP18717414.9A patent/EP3548846B1/en active Active
- 2018-03-01 CN CN202311493982.8A patent/CN117740023A/zh active Pending
- 2018-03-01 WO PCT/IB2018/000341 patent/WO2018158642A1/en unknown
-
2019
- 2019-07-31 IL IL268393A patent/IL268393A/en unknown
-
2022
- 2022-05-12 US US17/742,836 patent/US11897518B2/en active Active
-
2023
- 2023-02-15 JP JP2023021373A patent/JP2023065464A/ja active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008043852A1 (de) * | 2006-10-13 | 2008-04-17 | Continental Teves Ag & Co. Ohg | System zur bestimmung von objekten |
WO2011047730A1 (en) * | 2009-10-22 | 2011-04-28 | Tele Atlas B.V. | System and method for vehicle navigation using lateral offsets |
CN104044587A (zh) * | 2013-03-14 | 2014-09-17 | 通用汽车环球科技运作有限责任公司 | 用于提高处于自主驾驶模式下的车辆的传感器可视性的***和方法 |
CN106461774A (zh) * | 2014-02-20 | 2017-02-22 | 御眼视觉技术有限公司 | 基于雷达提示视觉成像的高级驾驶员辅助*** |
WO2017029775A1 (en) * | 2015-08-19 | 2017-02-23 | Sony Corporation | System and method for determing navigation information for an autonomous vehicle |
Non-Patent Citations (1)
Title |
---|
智能机器人车自主导航控制***设计;麻博等;《微计算机信息》;20081115(第32期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
US20220269277A1 (en) | 2022-08-25 |
IL268393A (en) | 2019-09-26 |
KR102646644B1 (ko) | 2024-03-13 |
CN110402371A (zh) | 2019-11-01 |
US11897518B2 (en) | 2024-02-13 |
EP3548846A1 (en) | 2019-10-09 |
WO2018158642A1 (en) | 2018-09-07 |
JP2020511704A (ja) | 2020-04-16 |
KR20190123757A (ko) | 2019-11-01 |
EP3548846B1 (en) | 2022-04-13 |
US11372416B2 (en) | 2022-06-28 |
US20190377354A1 (en) | 2019-12-12 |
JP7235247B2 (ja) | 2023-03-08 |
CN117740023A (zh) | 2024-03-22 |
JP2023065464A (ja) | 2023-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110402371B (zh) | 用于利用感测不确定性导航的***和方法 | |
CN110383008B (zh) | 基于车辆活动的导航 | |
CN108431549B (zh) | 具有施加的约束的经训练的*** | |
CN112629551B (zh) | 具有施加的责任约束的导航*** | |
CN111278704B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |