DE112021005607T5 - Systems and methods for camera-LiDAR-fused object detection - Google Patents
Systems and methods for camera-LiDAR-fused object detection Download PDFInfo
- Publication number
- DE112021005607T5 DE112021005607T5 DE112021005607.7T DE112021005607T DE112021005607T5 DE 112021005607 T5 DE112021005607 T5 DE 112021005607T5 DE 112021005607 T DE112021005607 T DE 112021005607T DE 112021005607 T5 DE112021005607 T5 DE 112021005607T5
- Authority
- DE
- Germany
- Prior art keywords
- lidar
- points
- segments
- image
- dataset
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 199
- 238000000034 method Methods 0.000 title claims abstract description 192
- 238000009826 distribution Methods 0.000 claims abstract description 96
- 239000003550 marker Substances 0.000 claims description 18
- 230000008569 process Effects 0.000 claims description 15
- 238000005315 distribution function Methods 0.000 claims description 10
- 238000001914 filtration Methods 0.000 claims description 9
- 238000005070 sampling Methods 0.000 claims description 7
- 230000003068 static effect Effects 0.000 claims description 7
- 230000002123 temporal effect Effects 0.000 claims description 5
- 238000012795 verification Methods 0.000 claims description 5
- 239000000243 solution Substances 0.000 description 57
- 230000011218 segmentation Effects 0.000 description 39
- 238000004422 calculation algorithm Methods 0.000 description 38
- 230000006870 function Effects 0.000 description 20
- 238000013459 approach Methods 0.000 description 13
- 230000033001 locomotion Effects 0.000 description 12
- 238000012545 processing Methods 0.000 description 11
- 230000003287 optical effect Effects 0.000 description 9
- 230000009471 action Effects 0.000 description 8
- 239000012634 fragment Substances 0.000 description 7
- 238000005259 measurement Methods 0.000 description 7
- 230000006978 adaptation Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000010801 machine learning Methods 0.000 description 5
- 238000013507 mapping Methods 0.000 description 5
- 238000013500 data storage Methods 0.000 description 4
- 230000006872 improvement Effects 0.000 description 4
- 230000010287 polarization Effects 0.000 description 4
- 238000013138 pruning Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 239000000470 constituent Substances 0.000 description 3
- 230000007613 environmental effect Effects 0.000 description 3
- 238000010191 image analysis Methods 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000004927 fusion Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- BUHVIAUBTBOHAG-FOYDDCNASA-N (2r,3r,4s,5r)-2-[6-[[2-(3,5-dimethoxyphenyl)-2-(2-methylphenyl)ethyl]amino]purin-9-yl]-5-(hydroxymethyl)oxolane-3,4-diol Chemical compound COC1=CC(OC)=CC(C(CNC=2C=3N=CN(C=3N=CN=2)[C@H]2[C@@H]([C@H](O)[C@@H](CO)O2)O)C=2C(=CC=CC=2)C)=C1 BUHVIAUBTBOHAG-FOYDDCNASA-N 0.000 description 1
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 208000027418 Wounds and injury Diseases 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000036461 convulsion Effects 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003628 erosive effect Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 208000014674 injury Diseases 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 238000001556 precipitation Methods 0.000 description 1
- 238000007637 random forest analysis Methods 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000007493 shaping process Methods 0.000 description 1
- 238000012706 support-vector machine Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 239000012780 transparent material Substances 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 238000009941 weaving Methods 0.000 description 1
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W60/00—Drive control systems specially adapted for autonomous road vehicles
- B60W60/001—Planning or execution of driving tasks
- B60W60/0011—Planning or execution of driving tasks involving control alternatives for a single driving scenario, e.g. planning several paths to avoid obstacles
-
- 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
- B60W10/00—Conjoint control of vehicle sub-units of different type or different function
- B60W10/04—Conjoint control of vehicle sub-units of different type or different function including control of propulsion units
- B60W10/06—Conjoint control of vehicle sub-units of different type or different function including control of propulsion units including control of combustion engines
-
- 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
- B60W10/00—Conjoint control of vehicle sub-units of different type or different function
- B60W10/18—Conjoint control of vehicle sub-units of different type or different function including control of braking systems
- B60W10/184—Conjoint control of vehicle sub-units of different type or different function including control of braking systems with wheel brakes
-
- 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
- B60W10/00—Conjoint control of vehicle sub-units of different type or different function
- B60W10/20—Conjoint control of vehicle sub-units of different type or different function including control of steering 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
- B60W60/00—Drive control systems specially adapted for autonomous road vehicles
- B60W60/001—Planning or execution of driving tasks
- B60W60/0015—Planning or execution of driving tasks specially adapted for safety
- B60W60/0017—Planning or execution of driving tasks specially adapted for safety of 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
- 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
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S17/00—Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
- G01S17/86—Combinations of lidar systems with systems other than lidar, radar or sonar, e.g. with direction finders
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S17/00—Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
- G01S17/88—Lidar systems specially adapted for specific applications
- G01S17/89—Lidar systems specially adapted for specific applications for mapping or imaging
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S7/00—Details of systems according to groups G01S13/00, G01S15/00, G01S17/00
- G01S7/48—Details of systems according to groups G01S13/00, G01S15/00, G01S17/00 of systems according to group G01S17/00
- G01S7/4808—Evaluating distance, position or velocity data
-
- 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/77—Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
- G06V10/80—Fusion, i.e. combining data from various sources at the sensor level, preprocessing level, feature extraction level or classification level
- G06V10/803—Fusion, i.e. combining data from various sources at the sensor level, preprocessing level, feature extraction level or classification level of input or preprocessed data
-
- 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
- G06V20/58—Recognition of moving objects or obstacles, e.g. vehicles or pedestrians; Recognition of traffic objects, e.g. traffic signs, traffic lights or roads
-
- 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
- B60W2554/00—Input parameters relating to objects
- B60W2554/40—Dynamic objects, e.g. animals, windblown objects
- B60W2554/402—Type
- B60W2554/4026—Cycles
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Mechanical Engineering (AREA)
- Transportation (AREA)
- Chemical & Material Sciences (AREA)
- Combustion & Propulsion (AREA)
- General Physics & Mathematics (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Automation & Control Theory (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- Electromagnetism (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Software Systems (AREA)
- Evolutionary Computation (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Traffic Control Systems (AREA)
- Image Analysis (AREA)
- Image Processing (AREA)
Abstract
Systeme und Verfahren zur Objektdetektion. Die Verfahren umfassen: Erhalten eines LiDAR-Datensatzes und Verwenden des LiDAR-Datensatzes und des Bildes/der Bilder zum Detektieren eines Objekts durch: Anpassen von Punkten des LiDAR-Datensatzes an Pixel in dem Bild; Erzeugen eines beschnittenen LiDAR-Datensatzes durch Reduzieren einer Gesamtanzahl von Punkten, die in dem LiDAR-Datensatz enthalten sind; Berechnen einer Verteilung von Objektdetektionen, in denen jeder Punkt des LiDAR-Datensatzes wahrscheinlich enthalten ist; Erzeugen einer Vielzahl von Segmenten von LiDAR-Datenpunkten unter Verwendung der Verteilung von Objektdetektionen; Zusammenführen der Vielzahl von Segmenten von LiDAR-Datenpunkten, um zusammengeführte Segmente zu erzeugen; und/oder Detektieren des Objekts in einer Punktwolke, die durch den LiDAR-Datensatz definiert ist, basierend auf den zusammengeführten Segmenten von LiDAR-Datenpunkten. Die Objekterkennung kann verwendet werden, um mindestens einen autonomen Fahrbetrieb zu ermöglichen.Systems and methods for object detection. The methods include: obtaining a LiDAR dataset and using the LiDAR dataset and the image(s) to detect an object by: fitting points of the LiDAR dataset to pixels in the image; generating a pruned LiDAR dataset by reducing a total number of points included in the LiDAR dataset; calculating a distribution of object detections in which each point of the LiDAR dataset is likely to be included; generating a plurality of segments of LiDAR data points using the distribution of object detections; merging the plurality of segments of LiDAR data points to create merged segments; and/or detecting the object in a point cloud defined by the LiDAR data set based on the merged segments of LiDAR data points. Object recognition can be used to enable at least one autonomous driving operation.
Description
QUERVERWEIS UND PRIORITÄTSANSPRUCHCROSS REFERENCE AND PRIORITY CLAIM
Dieses Patentdokument beansprucht die Priorität der US-Patentanmeldung Nr.
HINTERGRUNDBACKGROUND
Technisches Gebiettechnical field
Die vorliegende Offenbarung bezieht sich allgemein auf Objektdetektionssysteme. Insbesondere bezieht sich die vorliegende Offenbarung auf das Implementieren von Systemen und Verfahren für kamera-LiDAR-fusionierte („Camera LiDAR Fused“, „CLF“) Objektdetektion mit LiDAR-zu-Bild-Detektionsanpassung, Punktbeschneidung, lokaler Variationssegmentierung, Segmentzusammenführung und/oder Segmentfilterung.The present disclosure generally relates to object detection systems. More particularly, the present disclosure relates to implementing systems and methods for camera LiDAR fused ("CLF") object detection with LiDAR-to-image detection adjustment, point clipping, local variation segmentation, segment merging, and/or segment filtering .
Beschreibung des Standes der TechnikDescription of the prior art
Moderne Fahrzeuge weisen mindestens einen Bordcomputer auf und weisen Internet/Satelliten-Konnektivität auf. Die auf diesen Bordrechnern ablaufende Software überwacht und/oder steuert den Betrieb der Fahrzeuge. Das Fahrzeug umfasst auch LiDAR-Detektoren zum Erfassen von in der Nähe befindlicher Objekte. Die LiDAR-Detektoren erzeugen LiDAR-Datensätze, die den Abstand von dem Fahrzeug zu einem Objekt zu mehreren unterschiedlichen Zeiten messen. Diese Abstandsmessungen können verwendet werden, um Bewegungen des Objekts zu verfolgen, Vorhersagen bezüglich der Objekt-Trajektorie und Planungspfade für das Fahrzeug auf der Grundlage der vorhergesagten Objekt-Trajektorie zu machen.Modern vehicles have at least one onboard computer and have internet/satellite connectivity. The software running on these on-board computers monitors and/or controls the operation of the vehicles. The vehicle also includes LiDAR detectors for detecting nearby objects. The LiDAR detectors generate LiDAR datasets that measure the distance from the vehicle to an object at several different times. These distance measurements can be used to track movements of the object, make predictions regarding the object's trajectory, and plan paths for the vehicle based on the predicted object's trajectory.
ZUSAMMENFASSUNG DER ERFINDUNGSUMMARY OF THE INVENTION
Die vorliegende Offenbarung betrifft die Implementierung von Systemen und Verfahren zur Objektdetektion mit LiDAR-zu-Bild-Detektionsanpassung. Die Objekterkennung kann verwendet werden, um ein autonomes Fahrzeug zu steuern. In diesem Szenario umfassen die Verfahren: Erhalten, durch eine Berechnungs-Vorrichtung, eines LiDAR-Datensatzes, der von einem LiDAR-System des autonomen Fahrzeugs erzeugt wird; und Verwenden, durch eine Rechenvorrichtung, des LiDAR-Datensatzes und mindestens eines Bildes, um ein Objekt zu detektieren, das sich in der Nähe des autonomen Fahrzeugs befindet. Das Objekt wird erfasst durch: Anpassen von Punkten des LiDAR-Datensatzes an Pixel in dem wenigstens einen Bild; und Detektieren des Objekts in einer Punktwolke, die durch den LiDAR-Datensatz definiert ist, basierend auf der Anpassung. Die Objektdetektion wird verwendet, um mindestens eine autonome Fahroperation zu erleichtern (z.B. umfasst die autonome Fahroperation eine Objektverfolgungsoperation, eine Objekttrajektorienvorhersageoperation, eine Fahrzeugtrajektorienbestimmungsoperation und/oder eine Kollisionsvermeidungsoperation).The present disclosure relates to the implementation of systems and methods for object detection with LiDAR-to-image detection adaptation. Object detection can be used to control an autonomous vehicle. In this scenario, the methods include: obtaining, by a computing device, a LiDAR data set generated by a LiDAR system of the autonomous vehicle; and using, by a computing device, the LiDAR dataset and at least one image to detect an object that is proximate to the autonomous vehicle. The object is detected by: fitting points of the LiDAR data set to pixels in the at least one image; and detecting the object in a point cloud defined by the LiDAR dataset based on the adjustment. Object detection is used to facilitate at least one autonomous driving operation (e.g., the autonomous driving operation includes an object tracking operation, an object trajectory prediction operation, a vehicle trajectory determination operation, and/or a collision avoidance operation).
In einigen Szenarien umfassen die Verfahren auch das Erhalten, durch die Rechenvorrichtung, mindestens eines Bildes, das zu einem Zeitpunkt erfasst wurde, zu dem ein Sensor des LiDAR-Systems über ein Zentrum eines Kamerasichtfeldes („Field Of View“, „FOV“) schweifen gelassen wurde, wobei das mindestens eine Bild zusätzlich zu dem LiDAR-Datensatz verwendet wird, um das Objekt zu detektieren. Die Anpassung kann auf Kennungen für jedes Objekt basieren, das in dem mindestens einen Bild detektiert wird, eine Maskenkennung, Zellkennungen für eine Maske, Konfidenzwerte für jede Zelle, LiDAR-Punktkennungen, LiDAR-Punktkoordinaten, extrinsische LiDAR-Sensor- und Kamerakalibrierungsparameter und/oder intrinsische Kamerakalibrierungsparameter.In some scenarios, the methods also include obtaining, by the computing device, at least one image captured at a time when a sensor of the LiDAR system sweeps across a center of a camera's field of view ("FOV") was left, wherein the at least one image is used in addition to the LiDAR data set to detect the object. The adjustment may be based on identifiers for each object detected in the at least one image, a mask identifier, cell identifiers for a mask, confidence values for each cell, LiDAR point identifiers, LiDAR point coordinates, extrinsic LiDAR sensor and camera calibration parameters, and/or intrinsic camera calibration parameters.
Die Anpassung kann das Bestimmen einer Wahrscheinlichkeitsverteilung von Pixeln des mindestens einen Bildes umfassen, an die ein Punkt des LiDAR-Datensatzes unter Berücksichtigung einer Projektionsunsicherheit im Hinblick auf Kamerakalibrierungsunsicherheiten projiziert werden kann. Die Wahrscheinlichkeitsverteilung wird durch Berechnen einer Wahrscheinlichkeitsverteilungsfunktion über Bildraumkoordinaten für ein Pixel bestimmt, an dem ein Punkt des LiDAR-Datensatzes sich wahrscheinlich hineinerstrecken würde. Die Wahrscheinlichkeitsverteilungsfunktion kann gemäß der folgenden mathematischen Gleichung berechnet werden
Alternativ oder zusätzlich umfasst das Anpassen das Bestimmen einer Wahrscheinlichkeitsverteilung über einen Satz von Objekterfassungen, in denen sich ein Punkt des LiDAR-Datensatzes wahrscheinlich befindet, basierend auf mindestens einem Konfidenzwert, der einen Vertrauensgrad angibt, dass mindestens ein jeweiliges Pixel des mindestens einen Bildes zu einem gegebenen detektierten Objekt gehört. Die Wahrscheinlichkeitsverteilung kann durch Berechnen einer Wahrscheinlichkeit bestimmt werden, dass ein Punkt des LiDAR-Datensatzes unabhängig von allen anderen Bilderfassungen in eine Bilderfassung projiziert. Beispielsweise kann die Wahrscheinlichkeit gemäß den folgenden mathematischen Gleichung(en) berechnet werden:
Alternativ oder zusätzlich umfasst die Anpassung das Bestimmen einer Wahrscheinlichkeit, dass der LiDAR-Punkt nicht in eine beliebige Bilderfassung hineinragt bzw. projiziert. Zum Beispiel beinhaltet die Anpassung das Normalisieren einer Vielzahl von Wahrscheinlichkeiten, die für einen gegebenen Punkt des LiDAR-Datensatzes gemäß der folgenden mathematischen Gleichung bestimmt wurden:
Die vorliegende Offenbarung betrifft auch die Implementierung von Systemen und Verfahren zur CLF-Objektdetektion mit Punktbeschneidung. Die vorliegende Lösung kann verwendet werden, um ein autonomes Fahrzeug zu betreiben. In diesem Szenario umfassen die Verfahren: Erhalten, durch eine Rechenvorrichtung, eines LiDAR-Datensatzes, der von einem LiDAR-System des autonomen Fahrzeugs erzeugt wird; und Verwenden, durch eine Rechenvorrichtung, des LiDAR-Datensatzes und mindestens eines Bildes, um ein Objekt zu detektieren, das sich in der Nähe des autonomen Fahrzeugs befindet. Das Objekt wird durch Erzeugen eines beschnittenen („pruned“ bzw. „prunierten“) LiDAR-Datensatzes durch Reduzieren einer Gesamtanzahl von Punkten, die in dem LiDAR-Datensatz enthalten sind, und Detektieren des Objekts in einer Punktwolke, die durch den beschnittenen LiDAR-Datensatz definiert ist, detektiert. Die Objektdetektion kann von der Rechenvorrichtung verwendet werden, um mindestens eine autonome Fahroperation (z.B. eine Objektverfolgungsoperation, eine Objekttrajektorienvorhersageoperation, eine Fahrzeugtrajektorienbestimmungsoperation und/oder eine Kollisionsvermeidungsoperation) zu ermöglichen.The present disclosure also relates to the implementation of systems and methods for CLF object detection with point clipping. The present solution can be used to operate an autonomous vehicle. In this scenario, the methods include: obtaining, by a computing device, a LiDAR dataset generated by a LiDAR system of the autonomous vehicle; and using, by a computing device, the LiDAR dataset and at least one image to represent an object to detect that is in the vicinity of the autonomous vehicle. The object is created by generating a pruned LiDAR dataset by reducing a total number of points included in the LiDAR dataset and detecting the object in a point cloud created by the pruned LiDAR dataset. Record is defined, detected. Object detection may be used by the computing device to enable at least one autonomous driving operation (eg, an object tracking operation, an object trajectory prediction operation, a vehicle trajectory determination operation, and/or a collision avoidance operation).
In diesen oder anderen Szenarien umfassen die Verfahren auch das Erhalten, durch die Rechenvorrichtung, mindestens eines Bildes, das zu einem Zeitpunkt erfasst wurde, zu dem ein Sensor des LiDAR-Systems über eine Mitte eines Kamera-FOV schweifen gelassen wurde. Das Bild wird zusätzlich zu dem LiDAR-Datensatz verwendet, um das Objekt zu detektieren.In these or other scenarios, the methods also include obtaining, by the computing device, at least one image captured at a time when a sensor of the LiDAR system was swept over a center of a camera FOV. The image is used in addition to the LiDAR dataset to detect the object.
In diesen oder anderen Szenarien wird der beschnittene LiDAR-Datensatz durch Downsampling der Punkte basierend auf einer geplanten Trajektorie des autonomen Fahrzeugs erzeugt. Die Punkte des LiDAR-Datensatzes, die einem ersten Bereich entlang der geplanten Trajektorie des autonomen Fahrzeugs entsprechen, können mit einer höheren oder niedrigeren Abtastrate als Punkte des LiDAR-Datensatzes, die einem zweiten Bereich entsprechen, der nicht entlang der geplanten Trajektorie des autonomen Fahrzeugs ist, heruntergesampelt werden. Der erste Bereich kann einen Bereich umfassen, der Punkte beinhaltet, die mindestens einem Objekt entsprechen, das unwahrscheinlich mit dem autonomen Fahrzeug interferiert, wenn es der geplanten Trajektorie folgt, und der zweite Bereich kann einen Bereich umfassen, der Punkte beinhaltet, die mindestens einem Objekt entsprechen, das wahrscheinlich mit dem autonomen Fahrzeug interferiert, wenn es der geplanten Trajektorie folgt.In these or other scenarios, the cropped LiDAR dataset is generated by downsampling the points based on a planned trajectory of the autonomous vehicle. The LiDAR dataset points that correspond to a first area along the autonomous vehicle's planned trajectory may be sampled at a higher or lower sampling rate than the LiDAR dataset points that correspond to a second area that is not along the autonomous vehicle's planned trajectory , to be downsampled. The first area may include an area including points corresponding to at least one object that is unlikely to interfere with the autonomous vehicle when following the planned trajectory, and the second area may include an area including points corresponding to at least one object that is likely to interfere with the autonomous vehicle when following the planned trajectory.
In diesen oder anderen Szenarien wird der beschnittene LiDAR-Datensatz durch Downsampling des LiDAR-Datensatzes basierend auf Punktmarkierungen erzeugt, die den Punkten zugeordnet sind. Jede der Punktmarkierungen kann mindestens eine Objektklassenkennung, eine Farbe und/oder eine eindeutige Kennung umfassen.In these or other scenarios, the cropped LiDAR dataset is generated by downsampling the LiDAR dataset based on point markers associated with the points. Each of the point markers may include at least one object class identifier, a color, and/or a unique identifier.
Alternativ oder zusätzlich wird der LiDAR-Datensatz durch Zuweisen einer ersten Wichtigkeitsmarkierung zu Punkten, die mit einer sich bewegenden Objektklasse assoziiert sind, und einer zweiten Wichtigkeitsmarkierung zu Punkten, die mit einer statischen Objektklasse assoziiert sind, heruntergesampelt. Die Punkte, die der ersten Wichtigkeitsmarkierung zugewiesen sind, können heruntergesampelt werden (z.B. mit einer ersten Auflösung), und/oder die Punkte, die der zweiten Wichtigkeitsmarkierung zugewiesen sind, können heruntergesampelt werden (z.B. mit einer zweiten Auflösung, die niedriger als die erste Auflösung ist).Alternatively or additionally, the LiDAR dataset is downsampled by assigning a first importance marker to points associated with a moving object class and a second importance marker to points associated with a static object class. The points associated with the first importance marking may be downsampled (e.g., at a first resolution) and/or the points associated with the second importance marking may be downsampled (e.g., at a second resolution lower than the first resolution is).
In diesen oder anderen Szenarien wird der beschnittene LiDAR-Datensatz durch Downsampling des LiDAR-Datensatzes basierend auf Punktabständen von einem Begrenzungsrechteck erzeugt. Ein Punkt kann aus dem LiDAR-Datensatz entfernt werden, wenn ein jeweiliger der Punktabstände größer als ein Schwellenabstand ist.In these or other scenarios, the cropped LiDAR dataset is generated by downsampling the LiDAR dataset based on point distances from a bounding box. A point may be removed from the LiDAR dataset if any one of the point spacings is greater than a threshold spacing.
In diesen oder anderen Szenarien wird der beschnittene LiDAR-Datensatz durch Downsampling des LiDAR-Datensatzes unter Verwendung einer Karte erzeugt, die Informationen beinhaltet, die einer geplanten Trajektorie des autonomen Fahrzeugs zugeordnet sind. Ein Punkt kann aus dem LiDAR-Datensatz entfernt werden, wenn der Punkt eine Höhe aufweist, die kleiner als ein minimaler Höhenschwellenwert oder größer als ein maximaler Höhenschwellenwert ist. Zusätzlich oder alternativ wird der beschnittene LiDAR-Datensatz durch Downsampling des LiDAR-Datensatzes mit einer Auflösung erzeugt, die basierend auf einer modellierten Prozesslatenz ausgewählt wird.In these or other scenarios, the trimmed LiDAR dataset is generated by downsampling the LiDAR dataset using a map that includes information associated with a planned trajectory of the autonomous vehicle. A point can be removed from the LiDAR dataset if the point has an elevation that is less than a minimum elevation threshold or greater than a maximum elevation threshold. Additionally or alternatively, the pruned LiDAR dataset is generated by downsampling the LiDAR dataset at a resolution selected based on a modeled process latency.
Die vorliegende Offenbarung betrifft ferner das Implementieren von Systemen und Verfahren zur Objektdetektion mit lokaler Variationssegmentierung. Die Objekterkennung kann verwendet werden, um ein autonomes Fahrzeug zu steuern. In diesem Szenario umfasst das Verfahren: Erhalten, durch eine Rechenvorrichtung, eines LiDAR-Datensatzes, der von einem LiDAR-System des autonomen Fahrzeugs erzeugt wird; und Verwenden, durch eine Rechenvorrichtung, des LiDAR-Datensatzes und mindestens eines Bildes, um ein Objekt zu detektieren, das sich in der Nähe des autonomen Fahrzeugs befindet. Das Objekt wird erfasst durch: Berechnen einer Verteilung von Objekterfassungen, in denen jeder Punkt des LiDAR-Datensatzes wahrscheinlich ist; Erzeugen einer Vielzahl von Segmenten von LiDAR-Datenpunkten unter Verwendung der Verteilung von Objektdetektionen; und Detektieren des Objekts in einer Punktwolke, die durch den LiDAR-Datensatz basierend auf der Vielzahl von Segmenten von LiDAR-Datenpunkten definiert ist. Die Objektdetektion kann von der Rechenvorrichtung verwendet werden, um mindestens einen autonomen Fahrbetrieb zu erleichtern (z.B. autonomer Fahrbetrieb, eine Objektverfolgungsoperation, eine Objekttrajektorienvorhersageoperation, eine Fahrzeugtrajektorienbestimmungsoperation und/oder eine Kollisionsvermeidungsoperation).The present disclosure further relates to implementing systems and methods for object detection with local variation segmentation. Object detection can be used to control an autonomous vehicle. In this scenario, the method includes: obtaining, by a computing device, a LiDAR data set generated by a LiDAR system of the autonomous vehicle; and using, by a computing device, the LiDAR dataset and at least one image to detect an object that is proximate to the autonomous vehicle. The object is detected by: calculating a distribution of object detections in which each point of the LiDAR dataset is likely; generating a plurality of segments of LiDAR data points using the distribution of object detections; and detecting the object in a point cloud defined by the LiDAR data set based on the plurality of segments of LiDAR data points. The object detection can be used by the computing device to at least one autonomous driving to facilitate operation (eg, autonomous driving operation, an object tracking operation, an object trajectory prediction operation, a vehicle trajectory determination operation, and/or a collision avoidance operation).
In diesen oder anderen Szenarien umfassen die Verfahren auch das Erhalten, durch die Rechenvorrichtung, mindestens eines Bildes, das zu einem Zeitpunkt erfasst wurde, zu dem ein Sensor des LiDAR-Systems über eine Mitte eines Kamera-FOV schweifen gelassen wurde, wobei das mindestens eine Bild zusätzlich zu dem LiDAR-Datensatz verwendet wird, um das Objekt zu detektieren. Die Verteilung von Objektdetektionen kann basierend auf (a) einer Wahrscheinlichkeitsverteilung von Pixeln des mindestens einen Bildes, zu dem ein Punkt des LiDAR-Datensatzes projiziert werden kann, und (b) einer Wahrscheinlichkeit berechnet werden, dass der Punkt nicht in eine beliebige Bilderfassung hineinragt bzw. projiziert.In these or other scenarios, the methods also include obtaining, by the computing device, at least one image captured at a time when a sensor of the LiDAR system was swept over a center of a camera FOV, the at least one Image is used in addition to the LiDAR dataset to detect the object. The distribution of object detections can be calculated based on (a) a probability distribution of pixels of the at least one image to which a point of the LiDAR data set can be projected and (b) a probability that the point does not protrude into any image acquisition or .projected.
Die Segmente von LiDAR-Datenpunkten können unter Verwendung des LiDAR-Datensatzes erzeugt werden, um einen Konnektivitätsgraphen zu konstruieren. Der Konnektivitätsgraph umfasst Punkte des LiDAR-Datensatzes, die in einem 3D-Koordinatensystem aufgetragen sind, und Verbindungslinien, die jeweils die Punkte verbinden. Die Verbindungslinien können dem Konnektivitätsgraphen basierend darauf hinzugefügt werden, ob zwei Punkte des LiDAR-Datensatzes innerhalb eines räumlichen oder zeitlichen Abstands voneinander liegen, ob zwei Punkte nächste Nachbarn oder Triangulation sind.The segments of LiDAR data points can be generated using the LiDAR dataset to construct a connectivity graph. The connectivity graph includes points of the LiDAR dataset plotted in a 3D coordinate system and connecting lines connecting each point. The connecting lines can be added to the connectivity graph based on whether two points of the LiDAR dataset are within a spatial or temporal distance of each other, whether two points are nearest neighbors or triangulation.
Zusätzlich oder alternativ werden die Segmente von LiDAR-Datenpunkten erzeugt, indem für jeden Punkt in dem Konnektivitätsgraphen ein Deskriptor bestimmt wird, der einen Vektor von Elementen umfasst, die einen gegebenen Punkt des LiDAR-Datensatzes charakterisieren. Die Elemente des Vektors können eine Flächennormale, einen Farbwert basierend auf dem mindestens einen Bild, eine Intensität, eine Textur, räumliche Koordinaten, eine Höhe über dem Grund, eine Klassenmarkierung, eine Instanzkennung, ein bildbasiertes Merkmal, ein Fast-Point-Feature-Histogramm, eine Bilderfassungsfähigkeit und/oder einen modifizierten Abstand umfassen.Additionally or alternatively, the segments of LiDAR data points are generated by determining, for each point in the connectivity graph, a descriptor comprising a vector of elements characterizing a given point of the LiDAR data set. The elements of the vector can be a surface normal, a color value based on the at least one image, an intensity, a texture, spatial coordinates, a height above ground, a class marker, an instance identifier, an image-based feature, a fast point feature histogram , an image capture capability and/or a modified distance.
Zusätzlich oder alternativ werden die Segmente von LiDAR-Datenpunkten durch weiteres Zuweisen eines Gewichts zu jeder Verbindungslinie basierend auf dem Deskriptor erzeugt. Das Gewicht stellt ein Dissimilaritätsmaß zwischen zwei Punkten dar, die in dem Konnektivitätsgraphen über die Verbindungslinie miteinander verbunden sind.Additionally or alternatively, the segments of LiDAR data points are generated by further assigning a weight to each connecting line based on the descriptor. The weight represents a measure of dissimilarity between two points that are connected in the connectivity graph by the connecting line.
Zusätzlich oder alternativ werden die mehreren Segmente von LiDAR-Datenpunkten durch weitere Zusammenführungspunkte des LiDAR-Datensatzes basierend auf den Gewichten erzeugt. Zwei Punkte können zusammengeführt werden, wenn ein Gewicht, das einer jeweiligen Verbindungslinie zugeordnet ist, kleiner als ein Schwellenwert ist.Additionally or alternatively, the multiple segments of LiDAR data points are generated by further merging points of the LiDAR data set based on the weights. Two points may be merged if a weight associated with each connecting line is less than a threshold.
Die vorliegende Offenbarung betrifft die Implementierung von Systemen und Verfahren zur Objektdetektion mit Segmentzusammenführung. Die Objekterkennung kann verwendet werden, um ein autonomes Fahrzeug zu steuern. In diesen Szenarien umfassen die Verfahren: Erhalten, durch eine Rechenvorrichtung, eines LiDAR-Datensatzes, der von einem LiDAR-System des autonomen Fahrzeugs erzeugt wird; und Verwenden, durch eine Rechenvorrichtung, des LiDAR-Datensatzes und mindestens eines Bildes, um ein Objekt zu detektieren, das sich in der Nähe des autonomen Fahrzeugs befindet. Das Objekt wird erfasst durch: Berechnen einer Verteilung von Objekterfassungen, in denen sich jeder Punkt des LiDAR-Datensatzes wahrscheinlich befindet; Erzeugen einer Vielzahl von Segmenten von LiDAR-Datenpunkten unter Verwendung der Verteilung von Objektdetektionen; Zusammenführen der Vielzahl von Segmenten von LiDAR-Datenpunkten, um zusammengeführte Segmente zu erzeugen; und Detektieren des Objekts in einer Punktwolke, die durch den LiDAR-Datensatz definiert ist, basierend auf den zusammengeführten Segmenten. Die Objektdetektion kann von der Rechenvorrichtung verwendet werden, um mindestens eine autonome Fahroperation (z.B. eine Objektverfolgungsoperation, eine Objekttrajektorienvorhersageoperation, eine Fahrzeugtrajektorienbestimmungsoperation und/oder eine Kollisionsvermeidungsoperation) zu ermöglichen.The present disclosure relates to the implementation of systems and methods for object detection with segment merging. Object detection can be used to control an autonomous vehicle. In these scenarios, the methods include: obtaining, by a computing device, a LiDAR dataset generated by a LiDAR system of the autonomous vehicle; and using, by a computing device, the LiDAR dataset and at least one image to detect an object that is proximate to the autonomous vehicle. The object is detected by: calculating a distribution of object detections in which each point of the LiDAR data set is likely to be located; generating a plurality of segments of LiDAR data points using the distribution of object detections; merging the plurality of segments of LiDAR data points to create merged segments; and detecting the object in a point cloud defined by the LiDAR dataset based on the merged segments. Object detection may be used by the computing device to enable at least one autonomous driving operation (e.g., an object tracking operation, an object trajectory prediction operation, a vehicle trajectory determination operation, and/or a collision avoidance operation).
In diesen oder anderen Szenarien umfassen die Verfahren auch das Erhalten, durch die Rechenvorrichtung, mindestens eines Bildes, das zu einem Zeitpunkt erfasst wurde, zu dem ein Sensor des LiDAR-Systems über eine Mitte eines Kamera-FOV schweifen gelassen wurde, wobei das mindestens eine Bild zusätzlich zu dem LiDAR-Datensatz verwendet wird, um das Objekt zu detektieren. Die Verteilung von Objektdetektionen kann basierend auf (a) einer Wahrscheinlichkeitsverteilung von Pixeln des mindestens einen Bildes, zu dem ein Punkt des LiDAR-Datensatzes projiziert werden kann, und (b) einer Wahrscheinlichkeit berechnet werden, dass der Punkt nicht in eine beliebige Bilderfassung hineinragt bzw. projiziert.In these or other scenarios, the methods also include obtaining, by the computing device, at least one image captured at a time when a sensor of the LiDAR system was swept over a center of a camera FOV, the at least one Image is used in addition to the LiDAR dataset to detect the object. The distribution of object detections can be calculated based on (a) a probability distribution of pixels of the at least one image to which a point of the LiDAR data set can be projected and (b) a probability that the point does not protrude into any image acquisition or .projected.
Die zusammengeführten Segmente können erzeugt werden durch: Auswählen von Paaren von Segmenten aus der Vielzahl von Segmenten von LiDAR-Datenpunkten; Berechnen von Merkmalen für jedes Paar von Segmenten basierend auf Attributen der Segmente, die in dem Paar enthalten sind; Erzeugen, für jedes Paar von Segmenten, einer Wahrscheinlichkeit, dass die Segmente, die in dem Paar enthalten sind, basierend auf den Merkmalen zusammengefügt werden sollten; und Zusammenführen der Vielzahl von Segmenten von LiDAR-Datenpunkten basierend auf den Wahrscheinlichkeiten, die für die Paare von Segmenten erzeugt werden.The merged segments may be generated by: selecting pairs of segments from the plurality of segments of LiDAR data points; computing features for each pair of segments based on attributes of the segments included in the pair; generating, for each pair of segments, a probability that the segments included in the pair should be merged based on the features; and merging the plurality of segments of LiDAR data points based on the probabilities generated for the pairs of segments.
Die Paare von Segmenten können gefiltert werden, um Paare von Segmenten zu entfernen, die Schwerpunkt-zu-Schwerpunkt-Abstände aufweisen, die größer als ein Schwellenwert sind. Die Merkmale können eine Differenz zwischen dem Durchschnitt der Wahrscheinlichkeitsverteilungen, die für die LiDAR-Datenpunkte berechnet wurden, die in einem ersten Segment der Vielzahl von Segmenten von LiDAR-Datenpunkten enthalten waren, und dem Durchschnitt der Wahrscheinlichkeitsverteilungen, die für die LiDAR-Datenpunkte berechnet wurden, die in einem zweiten Segment der Vielzahl von Segmenten von LiDAR-Datenpunkten enthalten waren. Die Attribute können einen Durchschnitt aus einer Vielzahl von Wahrscheinlichkeitsverteilungen beinhalten, die für die LiDAR-Datenpunkte berechnet wurden, die in einem gegebenen Segment der Vielzahl von Segmenten von LiDAR-Datenpunkten enthalten waren, und/oder wobei jede Wahrscheinlichkeitsverteilung detektierte Objekte spezifiziert, in denen ein gegebener LiDAR-Datenpunkt wahrscheinlich ist.The pairs of segments can be filtered to remove pairs of segments that have centroid-to-centroid distances greater than a threshold. The features may be a difference between the average of the probability distributions calculated for the LiDAR data points included in a first segment of the plurality of segments of LiDAR data points and the average of the probability distributions calculated for the LiDAR data points , contained in a second segment of the plurality of segments of LiDAR data points. The attributes may include an average of a plurality of probability distributions calculated for the LiDAR data points that were included in a given segment of the plurality of segments of LiDAR data points, and/or each probability distribution specifying detected objects in which a given LiDAR data point is probable.
Alternativ oder zusätzlich beinhalten die Attribute eine 2D-Region, die die LiDAR-Datenpunkte in einer gegebenen Segmentabdeckung darstellen, einen Prozentsatz von LiDAR-Datenpunkten, die in dem gegebenen Segment enthalten sind, die auf einer Straße liegen, einen Prozentsatz von LiDAR-Datenpunkten, die in dem gegebenen Segment enthalten sind, die von einer Straße sind, und/oder eine Gesamtanzahl von Spuren, die das gegebene Segment zumindest teilweise überlappt. Die Merkmale beinhalten einen Unterschied in Straßenverhältnissen, eine Differenz in Geländeverhältnissen, eine Bereichskompatibilität, eine Fahrspurkompatibilität, eine Differenz zwischen einer Gesamtanzahl von Fahrspuren, die ein erstes Segment von LiDAR-Datenpunkten zumindest teilweise überlappt, und eine Gesamtanzahl von Spuren, die ein zweites Segment von LiDAR-Datenpunkten zumindest teilweise überlappt, eine Differenz oder einen Abstand in der Höhe zwischen Segmenten von LiDAR-Datenpunkten, eine Maskenkompatibilität, eine Differenz der Objekttypverteilungen und/oder eine Objekttyp-Kompatibilität.Alternatively or additionally, the attributes include a 2D region representing the LiDAR data points in a given segment coverage, a percentage of LiDAR data points contained in the given segment that lie on a road, a percentage of LiDAR data points, included in the given segment that are of a road, and/or a total number of lanes that the given segment at least partially overlaps. The features include a difference in road conditions, a difference in terrain conditions, an area compatibility, a lane compatibility, a difference between a total number of lanes that a first segment of LiDAR data points at least partially overlaps, and a total number of lanes that a second segment of LiDAR data points at least partially overlapped, a difference or distance in height between segments of LiDAR data points, mask compatibility, a difference in object type distributions, and/or object type compatibility.
Die vorliegende Offenbarung betrifft die Implementierung von Systemen und Verfahren zur Objektdetektion mit Segment-Filterung. Die Objekterkennung kann verwendet werden, um ein autonomes Fahrzeug zu steuern. In diesen Szenarien umfassen die Verfahren: Erhalten, durch eine Rechenvorrichtung, eines LiDAR-Datensatzes, der von einem LiDAR-System des autonomen Fahrzeugs erzeugt wird; und Verwenden, durch eine Rechenvorrichtung, des LiDAR-Datensatzes und mindestens eines Bildes, um ein Objekt zu detektieren, das sich in der Nähe des autonomen Fahrzeugs befindet. Das Objekt wird durch Ausführen der folgenden Operationen erfasst: Berechnen einer Verteilung von Objektdetektionen, dass jeder Punkt des LiDAR-Datensatzes wahrscheinlich ist; Erzeugen einer Vielzahl von Segmenten von LiDAR-Datenpunkten unter Verwendung der Verteilung von Objektdetektionen; Zusammenführen der Vielzahl von Segmenten von LiDAR-Datenpunkten, um zusammengeführte Segmente zu erzeugen; und Detektieren des Objekts in einer Punktwolke, die durch den LiDAR-Datensatz definiert ist, basierend auf den zusammengeführten Segmenten. Die Objektdetektion wird von der Rechenvorrichtung verwendet, um mindestens eine autonome Fahroperation (z.B. eine Objektverfolgungsoperation, eine Objekttrajektorienvorhersageoperation, eine Fahrzeugtrajektorienbestimmungsoperation und/oder eine Kollisionsvermeidungsoperation) zu ermöglichen.The present disclosure relates to the implementation of systems and methods for object detection with segment filtering. Object detection can be used to control an autonomous vehicle. In these scenarios, the methods include: obtaining, by a computing device, a LiDAR dataset generated by a LiDAR system of the autonomous vehicle; and using, by a computing device, the LiDAR dataset and at least one image to detect an object that is proximate to the autonomous vehicle. The object is detected by performing the following operations: calculating a distribution of object detections that each point of the LiDAR dataset is probable; generating a plurality of segments of LiDAR data points using the distribution of object detections; merging the plurality of segments of LiDAR data points to create merged segments; and detecting the object in a point cloud defined by the LiDAR dataset based on the merged segments. Object detection is used by the computing device to enable at least one autonomous driving operation (e.g., an object tracking operation, an object trajectory prediction operation, a vehicle trajectory determination operation, and/or a collision avoidance operation).
In diesen oder anderen Szenarien umfassen die Verfahren auch das Erhalten, durch die Rechenvorrichtung, mindestens eines Bildes, das zu einem Zeitpunkt erfasst wurde, zu dem ein Sensor des LiDAR-Systems über eine Mitte eines Kamera-FOV schweifen gelassen wurde, wobei das mindestens eine Bild zusätzlich zu dem LiDAR-Datensatz verwendet wird, um das Objekt zu detektieren. Die Verteilung von Objektdetektionen kann basierend auf (a) einer Wahrscheinlichkeitsverteilung von Pixeln des mindestens einen Bildes, zu dem ein Punkt des LiDAR-Datensatzes projiziert werden kann, und (b) einer Wahrscheinlichkeit berechnet werden, dass der Punkt nicht in eine beliebige Bilderfassung hineinragt.In these or other scenarios, the methods also include obtaining, by the computing device, at least one image captured at a time when a sensor of the LiDAR system was swept over a center of a camera FOV, the at least one Image is used in addition to the LiDAR dataset to detect the object. The distribution of object detections may be calculated based on (a) a probability distribution of pixels of the at least one image to which a point of the LiDAR dataset can be projected and (b) a probability that the point does not protrude into any image acquisition.
In diesen oder anderen Szenarien umfasst das Detektieren das Erhalten von Informationen für eine gegebene Detektionsmaske und ein gegebenes zusammengeführtes Segment der zusammengeführten Segmente. Die Informationen können mindestens einen Pm-Wert umfassen, der eine Anzahl von Punkten eines LiDAR-Datensatzes darstellt, die in die gegebene Detektionsmaske hineinragen, wobei Si eine Anzahl von Punkten darstellt, die das gegebene zusammengeführte Segment bilden, Psm eine Anzahl von Punkten in dem gegebenen zusammengeführten Segment darstellt, die in die gegebene Detektionsmaske hineinragen, eine Höhe des gegebenen zusammengeführten Segments, eine Länge ls des gegebenen zusammengeführten Segments und/oder eine Breite ws des gegebenen zusammengeführten Segments.In these or other scenarios, detecting includes obtaining information for a given detection mask and a given merged segment of the merged segments. The information may include at least a Pm value representing a number of points of a LiDAR dataset that intrude into the given detection mask, where Si represents a number of points forming the given merged segment, Psm a number of points in of the given merged segment that protrude into the given detection mask, a height of the given merged segment, a length l s of the given merged segment and/or a width w s of the given merged segment.
In diesen oder anderen Szenarien umfasst das Detektieren das Bestimmen mindestens eines Clustermerkmals basierend auf den Informationen. Das Cluster-Merkmal kann umfassen: ein Cluster-Merkmal U, bestimmt basierend auf einer Anzahl von Punkten eines LiDAR-Datensatzes, die in die gegebene Detektionsmaske hineinragen, und/oder einer Anzahl von Punkten, die das gegebene zusammengeführte Segment bilden; ein Clustermerkmal V, das basierend auf einer Anzahl von Punkten in dem gegebenen zusammengeführten Segment bestimmt wird, die in die gegebene Detektionsmaske hineinragen, und/oder einer Anzahl von Punkten eines LiDAR-Datensatzes, die in die gegebene Detektionsmaske hineinragen; und/oder ein Clustermerkmal H, das eine Clusterhöhe darstellt, ein Clustermerkmal L, das eine Clusterlänge darstellt, ein Cluster-Merkmal LTW, das ein Längen-zu-Breiten-Verhältnis für ein Cluster darstellt, und/oder ein Cluster-Merkmal C, das einen Zylinder-Konvolutions-(oder Fit-) Score von geclusterten LiDAR-Datenpunkten darstellt.In these or other scenarios, detecting includes determining at least one cluster feature based on the information. The cluster feature may include: a cluster feature U determined based on a number of points of a LiDAR data set that intrude into the given detection mask and/or a number of points that form the given merged segment; a cluster feature V determined based on a number of points in the given merged segment that intrude into the given detection mask and/or a number of points of a LiDAR data set that intrude into the given detection mask; and/or a cluster feature H representing a cluster height, a cluster feature L representing a cluster length, a cluster feature LTW representing a length-to-width ratio for a cluster, and/or a cluster feature C, representing a cylinder convolution (or fit) score of clustered LiDAR data points.
In diesen oder anderen Szenarien umfasst das Detektieren das Berechnen eines Projektionswerts PS basierend auf dem mindestens einen Cluster-Merkmal. Der Projektionswert PS ist ein Produkt von zwei oder mehr Clustermerkmalen.In these or other scenarios, detecting includes calculating a projection value PS based on the at least one cluster feature. The projection value PS is a product of two or more cluster features.
In diesen oder anderen Szenarien umfasst das Detektieren das Verwenden des Projektionswerts PS, um zu verifizieren, dass das gegebene zusammengeführte Segment Teil eines bestimmten detektierten Objekts ist, das der gegebenen Detektionsmaske zugeordnet ist. Eine Verifizierung kann durchgeführt werden, dass das gegebene zusammengeführte Segment Teil eines bestimmten detektierten Objekts ist, das der gegebenen Detektionsmaske zugeordnet ist, wenn der Projektionswert PS einen Schwellenwert überschreitet oder einen Wert aufweist, der größer ist als andere Projektionswerte, die für andere zusammengeführte Segmente mit Punkten in der gegebenen Detektionsmaske bestimmt wurden.In these or other scenarios, detecting includes using the projection value PS to verify that the given merged segment is part of a particular detected object associated with the given detection mask. A verification can be performed that the given merged segment is part of a particular detected object associated with the given detection mask if the projection value PS exceeds a threshold or has a value greater than other projection values used for other merged segments with points in the given detection mask have been determined.
Die Implementierungssysteme können Folgendes umfassen: einen Prozessor; und ein nichtflüchtiges computerlesbares Speichermedium, das Programmieranweisungen umfasst, die konfiguriert sind, um zu bewirken, dass der Prozessor ein Verfahren zur Objektdetektion implementiert. Die oben beschriebenen Verfahren können auch durch ein Computerprogrammprodukt implementiert werden, das einen Speicher und Programmieranweisungen umfasst, die konfiguriert sind, um zu bewirken, dass ein Prozessor Operationen durchführt.The implementation systems may include: a processor; and a non-transitory computer-readable storage medium comprising programming instructions configured to cause the processor to implement a method for object detection. The methods described above may also be implemented by a computer program product comprising memory and programming instructions configured to cause a processor to perform operations.
Figurenlistecharacter list
Die vorliegende Lösung wird unter Bezugnahme auf die folgenden Zeichnungsfiguren beschrieben, in denen gleiche Bezugszeichen in den Figuren gleiche Elemente darstellen.
-
1 ist eine Darstellung eines illustrativen Systems. -
2 ist eine Veranschaulichung einer illustrativen Architektur für ein Fahrzeug. -
3 ist eine Veranschaulichung einer illustrativen Architektur für ein LiDAR-System, das von dem in2 gezeigten Fahrzeug verwendet wird. -
4 ist eine Veranschaulichung einer illustrativen Computervorrichtung. -
5 stellt ein Blockdiagramm bereit, das zum Verständnis nützlich ist, wie die Fahrzeugsteuerung gemäß der vorliegenden Lösung erreicht wird. - Die
6A-6B (hierin kollektiv als „6 “ bezeichnet) stellen ein Flussdiagramm eines veranschaulichenden Verfahrens zum Steuern eines autonomen Fahrzeugs unter Verwendung von CLF-Objektdetektion bereit. -
7 stellt ein Flussdiagramm eines veranschaulichenden Verfahrens zur CLF-Objektdetektion bereit. -
8 stellt ein Flussdiagramm eines veranschaulichenden Verfahrens zum Beschneiden (oder Reduzieren) der Anzahl von LiDAR-Datenpunkten bereit, die verarbeitet werden, um ein Objekt zu detektieren, das sich in der Nähe eines AV befindet. -
9 stellt ein Flussdiagramm eines veranschaulichenden Verfahrens zum Durchführen eines LiDAR-to-Image-Detection-Algorithmus („LID“-Matching-Algorithmus) bereit. -
10 stellt ein veranschaulichendes Bild bereit, das von einer Kamera eines Fahrzeugs aufgenommen wurde. -
11 stellt ein veranschaulichendes Bild mit einer Mehrzahl von Begrenzungskästen bereit, die darauf überlagert sind. -
12 stellt ein veranschaulichendes Bild mit einem Begrenzungsrechteck und einer darauf überlagerten Maske bereit. -
13 stellt ein Flussdiagramm eines veranschaulichenden Verfahrens zum Bestimmen einer Wahrscheinlichkeitsverteilung von Pixeln bereit, an die ein LiDAR-Datenpunkt unter Berücksichtigung einer Projektionsunsicherheit projizieren kann. -
14 stellt ein Flussdiagramm eines veranschaulichenden Verfahrens zum Bestimmen einer Wahrscheinlichkeitsverteilung über einen Satz von Objekterfassungen bereit, in denen ein LiDAR-Datenpunkt wahrscheinlich ist. -
15 stellt eine Darstellung bereit, die zum Verständnis des neuen Algorithmus der lokalen Variationssegmentierung („Local Variation Segmentation“) der vorliegenden Lösung nützlich ist -
16 stellt eine Darstellung bereit, die einen Graphen zeigt, der während des LVS-Algorithmus von15 erzeugt wird. -
17 stellt eine Veranschaulichung einer veranschaulichenden Architektur für einen Segmentmerger bereit. -
18 stellt ein Flussdiagramm eines veranschaulichenden Verfahrens zur Objektdetektionssegmentfilterung bereit.
-
1 Figure 12 is a representation of an illustrative system. -
2 Figure 12 is an illustration of an illustrative architecture for a vehicle. -
3 is a depiction of an illustrative architecture for a LiDAR system derived from the in2 vehicle shown is used. -
4 Figure 12 is an illustration of an illustrative computing device. -
5 provides a block diagram useful for understanding how vehicle control is achieved according to the present solution. - The
6A-6B (herein collectively as “6 ') provide a flow diagram of an illustrative method for controlling an autonomous vehicle using CLF object detection. -
7 provides a flow chart of an illustrative method for CLF object detection. -
8th provides a flowchart of an illustrative method for pruning (or reducing) the number of LiDAR data points processed to detect an object that is in proximity to an AV. -
9 FIG. 12 provides a flowchart of an illustrative method for performing a LiDAR-to-Image Detection ("LID") matching algorithm. -
10 provides an illustrative image captured by a camera of a vehicle. -
11 provides an illustrative image with a plurality of bounding boxes superimposed thereon. -
12 provides an illustrative image with a bounding box and a mask overlaid on it. -
13 FIG. 12 provides a flowchart of an illustrative method for determining a probability distribution of pixels that a LiDAR data point can project to, considering projection uncertainty. -
14 provides a flowchart of an illustrative method for determining a probability distribution over a set of object detections in which a LiDAR data point is likely. -
15 12 provides an illustration useful in understanding the new Local Variation Segmentation algorithm of the present solution -
16 provides a plot showing a graph generated during the LVS algorithm of15 is produced. -
17 provides an illustration of an illustrative architecture for a segment merger. -
18 Figure 12 provides a flow chart of an illustrative method for object detection segment filtering.
DETAILLIERTE BESCHREIBUNGDETAILED DESCRIPTION
Wie in diesem Dokument verwendet, umfassen die Singularformen „ein(e)“, „der/die/das“ auch eine Mehrzahl als Referenz, es sei denn, der Kontext schreibt eindeutig etwas anderes vor. Sofern nicht anders definiert, haben alle hierin verwendeten technischen und wissenschaftlichen Begriffe die gleichen Bedeutungen, wie sie vom Durchschnittsfachmann allgemein verstanden werden. Wie in diesem Dokument verwendet, bedeutet der Begriff „umfassend“ so viel wie „einschließend“, ohne darauf beschränkt zu sein. Weitere Begriffe, die für dieses Dokument relevant sind, sind am Ende dieser detaillierten Beschreibung enthalten.As used in this document, the singular forms "a", "the" also include a plural of reference, unless the context clearly dictates otherwise. Unless otherwise defined, all technical and scientific terms used herein have the same meanings as commonly understood by those of ordinary skill in the art. As used in this document, the term "comprising" means including, but not limited to. Additional terms relevant to this document are included at the end of this detailed description.
Eine „elektronische Vorrichtung“ oder eine „Rechenvorrichtung“ bezieht sich auf eine Vorrichtung, die einen Prozessor und einen Speicher umfasst. Jede Vorrichtung kann ihren eigenen Prozessor und/oder Speicher aufweisen, oder der Prozessor und/oder der Speicher können mit anderen Vorrichtungen wie in einer virtuellen Maschine oder Containeranordnung gemeinsam genutzt werden. Der Speicher enthält oder empfängt Programmieranweisungen, die, wenn sie durch den Prozessor ausgeführt werden, die elektronische Vorrichtung veranlassen, eine oder mehrere Operationen gemäß den Programmieranweisungen durchzuführen.An “electronic device” or a “computing device” refers to a device that includes a processor and memory. Each device may have its own processor and/or memory, or the processor and/or memory may be shared with other devices, such as in a virtual machine or container arrangement. The memory contains or receives programming instructions that, when executed by the processor, cause the electronic device to perform one or more operations according to the programming instructions.
Die Begriffe „Speicher“, „Speichervorrichtung“, „Datenspeicher“, „Datenspeicher“ und dergleichen beziehen sich jeweils auf eine nichtflüchtige Vorrichtung, auf der computerlesbare Daten, Programmieranweisungen oder beide gespeichert sind. Mit Ausnahme, wo spezifisch anders angegeben, sollen die Begriffe „Speicher“, „Speichervorrichtung“, „Datenspeicher“, „Datenspeicher“ und dergleichen einzelne Vorrichtungsausführungsformen umfassen, Ausführungsformen, bei denen mehrere Speichervorrichtungen zusammen einen Satz von Daten oder Anweisungen speichern oder gemeinsam speichern- sowie einzelne Sektoren innerhalb solcher Vorrichtungen.The terms "memory," "storage device," "data storage," "data storage," and the like each refer to a non-transitory device having stored computer-readable data, programming instructions, or both. Except where specifically stated otherwise, the terms "memory," "storage device," "data storage," "data storage," and the like are intended to encompass individual device embodiments, embodiments in which multiple memory devices collectively store or collectively store a set of data or instructions. as well as individual sectors within such devices.
Die Begriffe „Prozessor“ und „Verarbeitungsgerät“ beziehen sich auf eine Hardwarekomponente eines elektronischen Geräts, die für die Ausführung von Programmieranweisungen konfiguriert ist. Sofern nicht ausdrücklich anders angegeben, soll der Singularbegriff „Prozessor“ oder „Verarbeitungsvorrichtung“ sowohl Ausführungsformen einer einzelnen Verarbeitungsvorrichtung als auch Ausführungsformen umfassen, in denen mehrere Verarbeitungsvorrichtungen zusammen oder gemeinsam ein Verfahren ausführen.The terms "processor" and "processing device" refer to a hardware component of an electronic device that is configured to execute programming instructions. Unless expressly stated otherwise, the singular term “processor” or “processing device” is intended to encompass both embodiments of a single processing device and embodiments in which multiple processing devices perform a method together or in concert.
Der Begriff „Fahrzeug“ bezieht sich auf jede bewegliche Form des Transportmittels, die entweder einen oder mehrere menschliche Insassen und/oder Fracht befördern kann und mit jeder Form von Energie betrieben wird. Ein „autonomes Fahrzeug“ ist ein Fahrzeug mit einem Prozessor, Programmieranweisungen und Antriebsstrangkomponenten, die durch den Prozessor steuerbar sind, ohne einen menschlichen Bediener zu erfordern. Ein autonomes Fahrzeug kann vollständig autonom sein, indem es keinen menschlichen Bediener für die meisten oder alle Fahrbedingungen und Funktionen benötigt, oder es kann halbautonom sein, indem ein menschlicher Bediener unter bestimmten Bedingungen oder für bestimmte Operationen erforderlich sein kann oder ein menschlicher Bediener das autonome System des Fahrzeugs außer Kraft setzen kann und die Steuerung des Fahrzeugs übernehmen kann.The term "Vehicle" refers to any mobile form of transportation that can carry either one or more human occupants and/or cargo and is powered by any form of energy. An "autonomous vehicle" is a vehicle with a processor, programming instructions, and powertrain components controllable by the processor without a human operator ner to require. An autonomous vehicle can be fully autonomous in that it does not require a human operator for most or all driving conditions and functions, or it can be semi-autonomous in that a human operator may be required under certain conditions or for certain operations, or a human operator can run the autonomous system of the vehicle can override and take control of the vehicle.
In diesem Dokument soll, wenn z.B. von einem „ersten“ und einem „zweiten“ Wert die Rede ist, um ein Nomen zu modifizieren, eine solche Verwendung lediglich dazu bestimmt sein, einen Gegenstand von einem anderen zu unterscheiden, und es soll damit keine sequentielle Reihenfolge impliziert sein, sofern nicht speziell angegeben. Zusätzlich sollen die Begriffe der relativen Position, wie z.B. der Vertikalen u. a. und der Horizontalen, oder der Vorderseite und der Rückseite, wenn sie verwendet werden, relativ zueinander gemeint sein, d.h., diese müssen nicht absolut sein, und diese sollen sich nur auf eine mögliche Position der Vorrichtung beziehen, die diesen Begriffen in Abhängigkeit von der Orientierung der Vorrichtung zugeordnet ist.For example, when reference is made in this document to a "first" and a "second" value to modify a noun, such usage is intended solely to distinguish one item from another, and is not intended to be sequential Order to be implied unless specifically stated. In addition, the terms of relative position, such as vertical, etc. and horizontal, or front and back when used, are meant relative to each other, i.e. these need not be absolute and are intended to refer only to a possible position of the device corresponding to these terms depending on the orientation associated with the device.
Echtzeit-Vorhersage von Aktionen durch Fahrer anderer Fahrzeuge und Fußgänger ist eine Herausforderung für halbautonome oder autonome Fahrzeuganwendungen. Eine solche Echtzeitvorhersage ist besonders anspruchsvoll, wenn die Fahrer und/oder Fußgänger Verkehrsregeln brechen. Systematisch, unter der Annahme, dass die Worst-Case-Aktion von den Fahrern und/oder Fußgängern das selbstfahrende Fahrzeug paralysiert, aber irrtümlich optimistische Vorhersagen zu einem unerwünschten autonomen Fahrzeugverhalten führen können.Real-time prediction of actions by drivers of other vehicles and pedestrians is a challenge for semi-autonomous or autonomous vehicle applications. Such real-time prediction is particularly challenging when drivers and/or pedestrians are breaking traffic rules. Systematically, assuming that the worst-case action by the drivers and/or pedestrians will paralyze the self-driving vehicle, but erroneously optimistic predictions may result in undesirable autonomous vehicle behavior.
Dieses Dokument beschreibt Verfahren und Systeme, die auf das Adressieren der oben beschriebenen Probleme und/oder andere Probleme gerichtet sind. Dementsprechend betrifft die vorliegende Lösung Systeme und Verfahren zum Steuern von Fahrzeugen. Die Verfahren beinhalten im Allgemeinen: Erzeugen einer Fahrzeugtrajektorie für das Fahrzeug, das sich in Bewegung befindet; Durchführen von CLF-Objektdetektionsoperationen, um ein Objekt innerhalb eines gegebenen Abstands von dem Fahrzeug zu detektieren; Erzeugen mindestens einer möglichen Objekttrajektorie für das erfasste Objekt; Verwenden der Fahrzeugtrajektorie und mindestens einer möglichen Objekttrajektorie, um zu bestimmen, ob es eine unerwünschte Wahrscheinlichkeit gibt, dass eine Kollision zwischen dem Fahrzeug und dem Objekt auftreten wird; und Modifizieren der Fahrzeugtrajektorie, wenn eine Bestimmung durchgeführt wird, dass es eine unerwünschte Wahrscheinlichkeit gibt, dass die Kollision auftreten wird.This document describes methods and systems aimed at addressing the issues described above and/or other issues. Accordingly, the present solution relates to systems and methods for controlling vehicles. The methods generally include: generating a vehicle trajectory for the vehicle in motion; performing CLF object detection operations to detect an object within a given distance from the vehicle; generating at least one possible object trajectory for the detected object; using the vehicle trajectory and at least one possible object trajectory to determine if there is an undesirable probability that a collision between the vehicle and the object will occur; and modifying the vehicle trajectory when a determination is made that there is an undesirable probability that the collision will occur.
Insbesondere wird die vorliegende Lösung hierin im Kontext eines autonomen Fahrzeugs beschrieben. Die vorliegende Lösung ist nicht auf autonome Fahrzeuganwendungen beschränkt. Die vorliegende Lösung kann bei anderen Anwendungen, wie Roboteranwendungen, Radarsystemanwendungen, Metrikanwendungen und/oder System leistungsanwendungen verwendet werden.In particular, the present solution is described herein in the context of an autonomous vehicle. The present solution is not limited to autonomous vehicle applications. The present solution can be used in other applications such as robotic applications, radar system applications, metrics applications and/or system performance applications.
Veranschaulichende SystemeIllustrative Systems
Unter Bezugnahme auf
Das AV 1021 ist im Allgemeinen so konfiguriert, dass es Objekte 1021, 114, 116 in der Nähe dazu erkennt. Die Objekte können ein Fahrzeug 1022, einen Radfahrer 114 (wie etwa einen Fahrer eines Fahrrads, Elektrorollers, Motorrads oder dergleichen) und/oder einen Fußgänger 116 beinhalten, sind aber nicht darauf beschränkt. Die Objektdetektion wird gemäß einem neuen CLF-Objekterkennungsprozess erreicht. Der neue CLF-Objekterkennungsprozess wird nachstehend ausführlich beschrieben. Wenn eine solche Detektion durchgeführt wird, führt das AV 1021 folgende Operationen durch: Erzeugen einer oder mehrerer möglicher Objekttrajektorien für das detektierte Objekt; und Analysieren mindestens einer der erzeugten möglichen Objekttrajektorien, um zu bestimmen, ob es eine unerwünschte Wahrscheinlichkeit gibt, dass eine Kollision zwischen dem AV und dem Objekt in einem Schwellenzeitraum (z.B. 1 Minute) auftritt oder nicht. Wenn dies der Fall ist, führt das AV 1021 Operationen durch, um zu bestimmen, ob die Kollision vermieden werden kann, wenn einer gegebenen Fahrzeugtrajektorie von dem AV 1021 befolgt wird und ein beliebiges aus einer Vielzahl von dynamisch erzeugten Notmanövern in einer vordefinierten Zeitperiode (z.B. N Millisekunden) durchgeführt wird. Wenn die Kollision vermieden werden kann, dann übernimmt das AV 1021 keine Aktion oder führt optional ein vorsichtiges Manöver durch (z.B. ein sachtes Verlangsamen). Kann dagegen die Kollision nicht vermieden werden, so nimmt das AV 1021 unmittelbar ein Notmanöver (z.B. Bremsen und/oder Richtungswechsel) ein.The AV 102 1 is generally configured to detect
Unter Bezugnahme auf
Wie in
Betriebsparametersensoren, die beiden Arten von Fahrzeugen gemeinsam sind, beinhalten zum Beispiel: einen Positionssensor 236, wie etwa einen Beschleunigungsmesser, eine Gyroskop- und/oder Trägheitsmesseinheit; einen Geschwindigkeitssensor 238; und einen Wegstreckensensor 240. Das Fahrzeug kann auch eine Uhr bzw. einen Taktgeber 242 aufweisen, die das System verwendet, um die Fahrzeugzeit während des Betriebs zu bestimmen. Der Taktgeber 242 kann in das Fahrzeug-Bordcomputergerät codiert werden, es kann sich um eine separate Vorrichtung handeln, oder es können mehrere Taktgeber verfügbar sein.Operating parameter sensors common to both types of vehicles include, for example: a
Das Fahrzeug umfasst auch verschiedene Sensoren, die arbeiten, um Informationen über die Umgebung, in der das Fahrzeug fährt, zu sammeln. Diese Sensoren können zum Beispiel Folgendes beinhalten: einen Standortsensor 260 (z.B. ein globales Positionsbestimmungssystem (Global Positioning System); Objekterfassungssensoren, wie etwa eine oder mehrere Kameras 262; ein LiDAR-Sensorsystem 264; und/oder ein Radar- und/oder ein Sonarsystem 266. Die Sensoren können auch Umgebungssensoren 268 beinhalten, wie etwa einen Niederschlagssensor und/oder einen Umgebungstemperatursensor. Die Objekterfassungssensoren können es dem Fahrzeug ermöglichen, Objekte zu detektieren, die sich innerhalb eines gegebenen Entfernungsbereichs des Fahrzeugs 200 in einer beliebigen Richtung befinden, während die Umgebungssensoren Daten über Umgebungsbedingungen innerhalb des Fahrbereichs des Fahrzeugs sammeln.The vehicle also includes various sensors that work to gather information about the environment in which the vehicle is traveling. These sensors may include, for example: a location sensor 260 (e.g., a global positioning system); object detection sensors, such as one or
Während des Betriebs werden Informationen von den Sensoren an eine bordeigene Rechenvorrichtung 220 übertragen. Die bordeigene Rechenvorrichtung 220 analysiert die von den Sensoren erfassten Daten und steuert optional Operationen des Fahrzeugs basierend auf Ergebnissen der Analyse. Zum Beispiel kann die bordeigene Rechenvorrichtung 220 steuern: Bremsen über eine Bremssteuerung 232; Richtung über eine Lenksteuerung 224; Geschwindigkeit und Beschleunigung über eine Drosselsteuerung 226 (in einem gasbetriebenen Fahrzeug) oder eine Motordrehzahlsteuerung 228 (wie etwa eine Strompegelsteuerung in einem Elektrofahrzeug); eine Differentialgetriebesteuerung 230 (in Fahrzeugen mit Getrieben); und/oder andere Steuerungen.During operation, information from the sensors is transmitted to an
Geographische Standortinformationen können von dem Standortsensor 260 an die bordeigene Rechenvorrichtung 220 übermittelt werden, die dann auf eine Karte der Umgebung zugreifen kann, die der Standortinformation entspricht, um bekannte feste Merkmale der Umgebung, wie Straßen, Gebäude, Stoppschilder und/oder Stop/Go-Signale, zu bestimmen. Erfasste Bilder von den Kameras 262 und/oder Objekterfassungsinformationen, die von Sensoren wie LiDAR 264 erfasst werden, werden von diesen Sensoren an die bordeigene Rechenvorrichtung 220 übermittelt. Die Objekterfassungsinformationen und/oder die erfassten Bilder werden von der bordeigenen Rechenvorrichtung 220 verarbeitet, um Objekte in der Nähe des Fahrzeugs 200 zu detektieren. Jede bekannte oder bekannte Technik zur Herstellung einer Objektdetektion basierend auf Sensordaten und/oder erfassten Bildern kann in den in diesem Dokument offenbarten Ausführungsformen verwendet werden.Geographical location information may be communicated from the
Die LiDAR-Informationen werden von dem LiDAR-Sensor 264 an die bordeigene Rechenvorrichtung 220 übermittelt. Zusätzlich werden erfasste Bilder von der Kamera oder den Kameras 262 an die bordeigene Rechenvorrichtung 220 übertragen. Die LiDAR-Informationen und/oder erfassten Bilder werden von der bordeigenen Rechenvorrichtung 220 verarbeitet, um Objekte in der Nähe des Fahrzeugs 200 zu detektieren. Die Art und Weise, in der die Objekterfassungen durch die bordeigene Rechenvorrichtung 220 durchgeführt werden, wird offensichtlich, wenn die Diskussion fortschreitet.The LiDAR information is communicated from the
Wenn die bordeigene Rechenvorrichtung 220 ein sich bewegendes Objekt detektiert, erzeugt die bordeigene Rechenvorrichtung 220 eine oder mehrere mögliche Objekttrajektorien für das erfasste Objekt und analysiert die möglichen Objekttrajektorien, um die Wahrscheinlichkeit einer Kollision zwischen dem Objekt und dem AV zu bewerten. Wenn die Wahrscheinlichkeit einen akzeptablen Schwellenwert überschreitet, führt die bordeigene Rechenvorrichtung 220 Operationen durch, um zu bestimmen, ob die Kollision vermieden werden kann, wenn das AV einer definierten Fahrzeugtrajektorie folgt und/oder ein oder mehrere dynamisch erzeugte Notmanöver implementiert, die in einem vordefinierten Zeitraum (z.B. N Millisekunden) durchzuführen wären. Wenn die Kollision vermieden werden kann, kann die bordeigene Rechenvorrichtung 220 bewirken, dass das Fahrzeug 200 ein vorsichtiges Manöver durchführt (z.B., schwach verlangsamen, beschleunigen oder einen Bogen fahren (swerve)). Im Gegensatz dazu veranlasst die bordeigene Rechenvorrichtung 220, wenn die Kollision nicht vermieden werden kann, das Fahrzeug 200 dazu, ein Notmanöver (z.B. Brems- und/oder Änderungsfahrtrichtung) aufzunehmen.When the
Unter Bezugnahme auf
Wie in
Innerhalb der rotierenden Schale oder der stationären Kuppel ist ein Lichtemittersystem 304 vorgesehen, das konfiguriert und positioniert ist, um Lichtimpulse durch die Öffnung 312 oder durch die transparente Kuppel des Gehäuses 306 über einen oder mehrere Laseremitterchips oder andere lichtemittierende Vorrichtungen zu erzeugen und zu emittieren. Das Emittersystem 304 kann eine beliebige Anzahl einzelner Emitter (z.B. 8 Emitter, 64 Emitter oder 128 Emitter) beinhalten. Die Emitter können Licht im Wesentlichen mit der gleichen Intensität oder mit variierenden Intensitäten emittieren. Die von dem Lichtemittersystem 304 emittierten Einzelstrahlen haben einen wohldefinierten Polarisationszustand, der über die gesamte Anordnung nicht gleich ist. Als ein Beispiel können einige Strahlen eine vertikale Polarisation aufweisen und andere Strahlen können eine horizontale Polarisation aufweisen. Das LiDAR-System umfasst auch einen Lichtdetektor 308, der einen Photodetektor oder eine Anordnung von Photodetektoren enthält, die positioniert und konfiguriert sind, um Licht zu empfangen, das zurück in das System reflektiert wird. Das Emittersystem 304 und der Lichtdetektor 308 würden sich mit der rotierenden Schale drehen, oder sie würden sich innerhalb der stationären Kuppel des Gehäuses 306 drehen. Eine oder mehrere optische Elementstrukturen 310 können vor der lichtemittierenden Einheit 304 und/oder dem Lichtdetektor 308 positioniert sein, um als eine oder mehrere Linsen oder Wellenplatten zu dienen, die Licht fokussieren und lenken, das durch die optische Elementstruktur 310 geleitet wird.Provided within the rotating shell or stationary dome is a
Eine oder mehrere optische Elementstrukturen 310 können vor einem Spiegel 312 positioniert sein, um Licht zu fokussieren und zu lenken, das durch die optische Elementstruktur 310 geleitet wird. Wie nachstehend gezeigt, umfasst das System eine optische Elementstruktur 310, die vor dem Spiegel 312 positioniert und mit den rotierenden Elementen des Systems verbunden ist, so dass sich die optische Elementstruktur 310 mit dem Spiegel 312 dreht. Alternativ oder zusätzlich kann die optische Elementstruktur 310 mehrere derartige Strukturen (z.B. Linsen und/oder Wellenplatten) umfassen. Optional können mehrere optische Elementstrukturen 310 in einer Anordnung auf oder integral mit dem Schalenabschnitt des Gehäuses 306 angeordnet sein.One or more
Optional kann jede optische Elementstruktur 310 einen Strahlteiler beinhalten, der das Licht, das das System von Licht empfängt, von dem Licht trennt, das das System erzeugt. Der Strahlteiler kann zum Beispiel eine Viertelwellen- oder Halbwellen-Wellenplatte umfassen, um die Trennung durchzuführen und sicherzustellen, dass empfangenes Licht an die Empfängereinheit anstatt an das Emittersystem geleitet wird (was ohne eine solche Wellenplatte auftreten könnte, wenn das emittierte Licht und das empfangene Licht die gleichen oder ähnliche Polarisationen aufweisen sollten).Optionally, each
Das LiDAR-System umfasst eine Leistungseinheit 318, um die lichtemittierende Einheit 304, einen Motor 316 und elektronische Komponenten mit Leistung zu versorgen. Das LiDAR-System umfasst auch einen Analysator 314 mit Elementen, wie etwa einem Prozessor 322 und einem nichtflüchtigen computerlesbaren Speicher 320, der Programmieranweisungen enthält, die konfiguriert sind, um es dem System zu ermöglichen, Daten zu empfangen, die von der Lichtdetektoreinheit gesammelt werden, und diese zu analysieren, um Eigenschaften des empfangenen Lichts zu messen und Informationen zu erzeugen, die ein verbundenes System verwenden kann, um Entscheidungen über den Betrieb in einer Umgebung zu treffen, aus der die Daten gesammelt wurden. Optional kann der Analysator 314 integral mit dem LiDAR-System 300 sein, wie gezeigt, oder einige oder alle davon können extern zu dem LiDAR-System sein und kommunikativ mit dem LiDAR-System über ein drahtgebundenes oder drahtloses Kommunikationsnetzwerk oder eine drahtlose Verbindung verbunden sein.The LiDAR system includes a
Unter Bezugnahme auf
Die Rechenvorrichtung 400 kann mehr oder weniger Komponenten als die in
Einige oder alle Komponenten der Rechenvorrichtung 400 können als Hardware, als Software und/oder als eine Kombination von Hardware und Software implementiert sein. Die Hardware beinhaltet, ohne darauf beschränkt zu sein, eine oder mehrere elektronische Schaltungen. Die elektronischen Schaltungen können passive Komponenten (z.B. Widerstände und Kondensatoren) und/oder aktive Komponenten (z.B. Verstärker und/oder Mikroprozessoren) umfassen, sind aber nicht darauf beschränkt. Die passiven und/oder aktiven Komponenten können angepasst und/oder programmiert sein, um eine oder mehrere der hierin beschriebenen Methodologien, Prozeduren oder Funktionen durchzuführen.Some or all of the components of
Wie in
Zumindest einige der Hardware-Entitäten 414 führen Aktionen aus, die Zugriff auf die und die Verwendung des Speichers 412 beinhalten, der ein Direktzugriffsspeicher („Random Access Memory“), ein Plattenlaufwerk, ein Flash-Speicher, ein Compact Disc Read Only Memory („CD-ROM“) und/oder eine andere Hardwarevorrichtung sein kann, die in der Lage ist, Anweisungen und Daten zu speichern. Die Hardware-Entitäten 414 können eine Platteneinheit 416 umfassen, die ein computerlesbares Speichermedium 418 umfasst, auf dem ein oder mehrere Sätze von Anweisungen 420 (z.B. einen Softwarecode), der konfiguriert ist, um eine oder mehrere der hierin beschriebenen Methodologien, Prozeduren oder Funktionen zu implementieren. Die Anweisungen 420 können sich auch vollständig oder zumindest teilweise innerhalb des Speichers 412 und/oder innerhalb der CPU 406 während der Ausführung davon durch die Rechenvorrichtung 400 befinden. Der Speicher 412 und die CPU 406 können auch maschinenlesbare Medien darstellen. Der Begriff „maschinenlesbare Medien“, wie hier verwendet, bezieht sich auf ein einzelnes Medium oder mehrere Medien (z.B., eine zentralisierte oder verteilte Datenbank und/oder zugehörige Caches und Server), die den einen oder die mehreren Sätze von Anweisungen 420 speichern. Der Begriff „maschinenlesbare Medien“, wie hier verwendet, bezieht sich auch auf ein beliebiges Medium, das in der Lage ist, einen Satz von Anweisungen 420 zur Ausführung durch die Rechenvorrichtung 400 zu speichern, zu codieren oder zu tragen und die die Rechenvorrichtung 400 dazu zu veranlassen, eine oder mehrere der Methodologien der vorliegenden Offenbarung durchzuführen.At least some of the
Unter Bezugnahme auf
In Block 502 wird ein Standort des Fahrzeugs erfasst. Diese Detektion kann basierend auf Sensordaten erfolgen, die von einem Positionssensor (z.B. dem Positionssensor 248 von
In Block 504 wird ein Objekt in der Nähe des Fahrzeugs erfasst. Diese Detektion wird basierend auf Sensordaten durchgeführt, die von einem LiDAR-System (z.B. LiDAR-System 264 aus
Diese Objekterfassungsinformationsausgabe von Block 504 kann anschließend verwendet werden, um mindestens eine autonome Fahroperation (z.B. Objektverfolgungsoperationen, Objekttrajektorienvorhersageoperationen, Fahrzeugtrajektorienbestimmungsoperationen und/oder Kollisionsvermeidungsoperationen) zu erleichtern. Beispielsweise kann ein Quader für das erfasste Objekt in einem 3D-Graphen mit einem LiDAR-Datensatz definiert werden. Der quaderförmige Kurs und die quaderförmige Geometrie können verwendet werden, um Objekttrajektorien in Block 512 vorherzusagen, wie nachstehend erörtert, und/oder eine Fahrzeugtrajektorie in Block 506 zu bestimmen, wie nachstehend erörtert. Eine prognostizierte Objekttrajektorie für den „worst case“ kann identifiziert und verwendet werden, um Notfallmanöver in den Blöcken 514-518 auszulösen, wie nachstehend erörtert. Die vorliegende Lösung ist nicht auf die Einzelheiten dieses Beispiels beschränkt.This object detection information output from
In Block 506 wird eine Fahrzeugtrajektorie unter Verwendung der Informationen aus den Blöcken 502 und 504 erzeugt. Techniken zum Bestimmen einer Fahrzeugtrajektorie sind in der Technik wohlbekannt. Jede bekannte oder bekannte Technik zum Bestimmen einer Fahrzeugtrajektorie kann hierin ohne Einschränkung verwendet werden. In einigen Szenarien beinhaltet eine solche Technik zum Beispiel das Bestimmen einer Trajektorie für das AV, die das Objekt passieren würde, wenn sich das Objekt vor dem AV befindet, der Quader weist eine Kursrichtung auf, die mit der Richtung ausgerichtet ist, in der sich das AV bewegt, und der Quader hat eine Länge, die größer als ein Schwellenwert ist. Die vorliegende Lösung ist nicht auf die Einzelheiten dieses Szenarios beschränkt. Die Fahrzeugtrajektorie 520 kann basierend auf den Standortinformationen von Block 502, den Objekterfassungsinformationen von Block 504 und Karteninformationen 528 (die in einem Datenspeicher des Fahrzeugs vorgespeichert sind) bestimmt werden. Die Fahrzeugtrajektorie 520 kann einen glatten Weg darstellen, der keine abrupten Änderungen aufweist, die ansonsten ein Unbehagen des Insassen bewirken würden. Z.B. wird die Fahrzeugtrajektorie durch einen Fahrweg entlang einer gegebenen Fahrspur einer Straße definiert, in der das Objekt innerhalb einer gegebenen Zeitspanne nicht vorhergesagt wird. Die Fahrzeugtrajektorie 520 wird dann dem Block 508 bereitgestellt.In block 506 a vehicle trajectory is generated using the information from
In Block 508 wird ein Lenkwinkel- und Geschwindigkeitsbefehl basierend auf der Fahrzeugtrajektorie 520 erzeugt. Der Lenkwinkel- und Geschwindigkeitsbefehl wird für Block 510 zur Fahrdynamikregelung bereitgestellt.In block 508 a steering angle and speed command is generated based on the
Insbesondere verstärkt die vorliegende Lösung den oben beschriebenen Fahrzeugtrajektorienplanungsprozess 500 der Blöcke 502-510 mit einem zusätzlichen Überwachungsschichtprozess 550. Der zusätzliche Überwachungsschichtprozess 550 optimiert die Fahrzeugtrajektorie für das wahrscheinlichste Verhalten der in Block 504 erfassten Objekte, behält jedoch dennoch akzeptable Operationen bei, wenn das ungünstigste Verhalten auftritt. Dieser zusätzliche Überwachungsschichtprozess 550 wird durch die Blöcke 512-518 implementiert.In particular, the present solution augments the vehicle
Wie in
Block 512 beinhaltet das Bestimmen einer oder mehrerer möglicher Objekttrajektorien für das Objekt, das in 504 detektiert wird. Die möglichen Objekttrajektorien können die folgenden Trajektorien umfassen, sind aber nicht darauf beschränkt:
- • eine Trajektorie, die durch die tatsächliche Geschwindigkeit des Objekts (z.B. 1 Meile pro Stunde bzw. ca. 1,6 km/h) und tatsächliche Fahrtrichtung (z.B. nach Westen) definiert ist;
- • eine Trajektorie, die durch die tatsächliche Geschwindigkeit des Objekts (z.B.
1 Meile pro Stunde bzw. ca. 1,6 km/h) und eine andere mögliche Fahrtrichtung (z.B. Süd, Süd-West oder X (z.B. 40°) Grad von der tatsächlichen Fahrtrichtung des Objekts in einer Richtung zu dem AV) für das Objekt definiert ist; - • eine Trajektorie, die durch eine andere mögliche Geschwindigkeit für das Objekt (z.B. 2 bis 10 Meilen pro Stunde bzw. ca. 3 bis 16 km/h) und die tatsächliche Fahrtrichtung des Objekts (z.B. nach Westen) definiert ist; und/oder
- • eine Trajektorie, die durch eine andere mögliche Geschwindigkeit für das Objekt (z.B. 2 bis 10 Meilen pro Stunde bzw. ca. 3 bis 16 km/h) und eine andere mögliche Fahrtrichtung (z.B. Süd, Süd-West oder X (z.B. 40°) Grad von der tatsächlichen Fahrtrichtung des Objekts in einer Richtung zu dem AV) für das Objekt definiert ist.
- • a trajectory defined by the object's actual speed (eg, 1 mile per hour) and actual direction of travel (eg, west);
- • a trajectory that is determined by the actual speed of the object (e.g
1 miles per hour) and another possible heading (eg, south, south-west, or X (eg, 40°) degrees from the object's actual heading in a direction toward the AV) for the object is defined; - • a trajectory defined by another possible speed for the object (eg, 2 to 10 miles per hour or about 3 to 16 km/h) and the actual heading of the object (eg, west); and or
- • a trajectory that is defined by another possible speed for the object (e.g. 2 to 10 miles per hour or approx. 3 to 16 km/h) and another possible direction of travel (e.g. south, south-west or X (e.g. 40° ) degrees from the actual heading of the object in a direction to the AV) is defined for the object.
Die mögliche(n) Geschwindigkeit(en) und/oder mögliche(n) Richtung(en) der Fahrt können für Objekte in derselben Klasse und/oder Unterklasse als das Objekt vordefiniert werden. Die eine oder mehreren möglichen Objekttrajektorien 522 werden dann zu Block 514 weitergeleitet. Das System kann bewirken, dass die Geschwindigkeits- und Lenksteuerungen des Fahrzeugs das Fahrzeug gemäß der definierten Trajektorie bewegen, wie nachstehend erörtert.The possible speed(s) and/or possible direction(s) of travel can be predefined for objects in the same class and/or subclass as the object. The one or more
In dem Fall, dass zwei oder mehr mögliche Objekttrajektorien bestimmt werden, kann bei 512 optional auch das Auswählen einer der möglichen Objekttrajektorien beinhalten, die ein Worst-Case-Kollisionsszenario für das AV bereitstellt. Diese Bestimmung wird auf der Grundlage von Informationen 532 durchgeführt, die die tatsächliche Geschwindigkeit und Fahrtrichtung des AV angeben. Die ausgewählte mögliche Objekttrajektorie wird dann an Block 514 weitergeleitet, anstatt alle möglichen Objekttrajektorien, die in 512 bestimmt wurden.In the event that two or more possible object trajectories are determined, at 512 may also optionally include selecting one of the possible object trajectories that provides a worst-case collision scenario for the AV. This determination is made based on
In Block 514 wird eine Kollisionsprüfung für jede der möglichen Objekttrajektorien 522 durchgeführt, die zu Block 514 weitergeleitet werden. Die Kollisionsprüfung beinhaltet das Bestimmen, ob es eine unerwünschte Wahrscheinlichkeit gibt, dass eine Kollision zwischen dem Fahrzeug und dem Objekt auftreten wird. Eine solche Bestimmung wird durchgeführt, indem zunächst bestimmt wird, ob sich die Fahrzeugtrajektorie 520 und eine vorgegebene mögliche Objekttrajektorie 522 schneiden. Wenn sich die beiden Trajektorien 520, 522 nicht schneiden, dann wird die Fahrzeugtrajektorie 520 als eine akzeptable Fahrzeugtrajektorie angesehen und es wird keine Steueraktion unternommen, um die Fahrzeugtrajektorie zu modifizieren.In block 514 a collision check is performed for each of the
Wenn sich hingegen die beiden Trajektorien 520, 522 schneiden, dann wird eine vorhergesagte Zeit, zu der eine Kollision auftreten würde, wenn die beiden Trajektorien verfolgt werden, bestimmt. Die vorhergesagte Zeit wird mit einem Schwellenwert (z.B. 1 Sekunde) verglichen. Wenn die vorhergesagte Zeit den Schwellenwert überschreitet, dann wird die Fahrzeugtrajektorie 520 als eine akzeptable Fahrzeugtrajektorie angesehen und es wird keine Steueraktion unternommen, um die Fahrzeugtrajektorie zu modifizierenConversely, if the two
Wenn die vorhergesagte Zeit gleich oder kleiner als der Schwellenwert ist, dann wird bestimmt, ob die Kollision vermieden werden kann, wenn (a) der Fahrzeugtrajektorie von dem AV gefolgt wird und (b) ein beliebiges einer Vielzahl von dynamisch erzeugten Notmanövern in einer vordefinierten Zeitperiode (z.B. N Millisekunden) durchgeführt wird. Die dynamisch erzeugten Notmanöver umfassen, ohne darauf beschränkt zu sein, Folgendes:
- • ein Notmanöver, das einen Bremsbefehl umfasst und das basierend auf der Fahrzeugtrajektorie und einer möglichen Objekttrajektorie bestimmt wird;
- • ein Notmanöver, das zumindest einen Lenkbefehl und einen Bremsbefehl oder einen Beschleunigungsbefehl umfasst, und das über einen Gradientenabstieg von der aktiven AV-Trajektorie auf eine Zielfunktion bestimmt wird, die Kollisions- und/oder Fahrunannehmlichkeiten bestraft; und/oder
- • ein Notmanöver, das ein vorgegebenes Notmanöver umfasst, das über einen Gradientenabstieg von der aktiven AV-Trajektorie auf eine Zielfunktion optimiert wurde, die Kollisions- und/oder Fahrunannehmlichkeiten bestraft.
- • an emergency maneuver that includes a braking command and that is determined based on the vehicle trajectory and a possible object trajectory;
- • an emergency maneuver, comprising at least one of a steering command and a braking command or an acceleration command, determined via a gradient descent from the active AV trajectory to a target function that penalizes collision and/or driving inconveniences; and or
- • a contingency maneuver comprising a predetermined contingency maneuver optimized via a gradient descent from the active AV trajectory to an objective function that penalizes collision and/or driving inconveniences.
In einigen Szenarien wird ein Notbremsmanöver erzeugt, indem eine Trajektorie, die die beabsichtigte Trajektorie für den vordefinierten Zeitraum (N Millisekunden) aufrechterhält und dann bei einem maximalen Bremsprofil abbremst, das durch maximal zulässige Verzögerungs- und Ruckgrenzen parametrisiert wird. Das maximale Bremsprofil wird entlang der ursprünglichen Trajektorie über Euler-Integration eines neuen Geschwindigkeitsprofils oder durch andere Verfahren erzeugt. Die vorliegende Lösung ist nicht auf die Einzelheiten dieser Szenarien beschränkt.In some scenarios, an emergency braking maneuver is generated by following a trajectory that maintains the intended trajectory for the predefined time period (N milliseconds) and then decelerating at a maximum braking profile parameterized by maximum allowable deceleration and jerk limits. The maximum braking profile is generated along the original trajectory via Euler integration of a new velocity profile or by other methods. The present solution is not limited to the details of these scenarios.
In diesen oder anderen Szenarien wird ein Notmanöver, das sowohl das Lenken als auch das Bremsen umfasst, erzeugt durch: Parametrisieren sowohl der Lenkung als auch des Bremsens mit einem begrenzten Satz von Spline-Punkten (z.B. 4 Spline-Punkten für Lenk- und 3 Spline-Punkten für die Geschwindigkeit); Minimieren einer Zielfunktion, die Kollisions- und/oder Fahrunannehmlichkeiten bestraft, in Abhängigkeit von diesen Parametern unter Verwendung eines konjugiertem Gradientenabstieges, eines Newton-Verfahrens, eines Powell-Verfahrens oder ein oder mehrerer anderer bestehender Verfahren zum Minimieren von multivariaten Funktionen; und Berechnen der Trajektorie, die den parametrisierten Spline-Punkten entspricht, mit den minimalen objektiven Funktionskosten. Die vorliegende Lösung ist nicht auf die Einzelheiten dieser Szenarien beschränkt.In these or other scenarios, an emergency maneuver involving both steering and braking is generated by: Parameterizing both steering and braking with a limited set of spline points (e.g. 4 spline points for steering and 3 spline -points for speed); minimizing an objective function penalizing collision and/or driving discomfort as a function of these parameters using conjugate gradient descent, a Newton method, a Powell method, or one or more other existing methods for minimizing multivariate functions; and computing the trajectory corresponding to the parameterized spline points with the minimum objective function cost. The present solution is not limited to the details of these scenarios.
In diesen oder anderen Szenarien wird ein vordefiniertes Notmanöver durch Aufzeichnen von Befehlen von einem menschlichen Bediener während eines simulierten Notbremsereignisses oder durch Abtasten eines kleinen Satzes von Lenkmomenten und Bremsprofilen, die auf den aktuellen Fahrzeugzustand angewendet werden, erzeugt. Diese Drehmomente werden in konstanten Intervallen von Null bis zu den Grenzen des Lenk- und Bremsmechanismus oder durch andere Verfahren berechnet. Die vorliegende Lösung ist nicht auf die Einzelheiten dieser Szenarien beschränkt.In these or other scenarios, a predefined emergency maneuver is generated by recording commands from a human operator during a simulated emergency braking event, or by sampling a small set of steering torques and braking profiles applied to the current vehicle state. These torques are calculated at constant intervals from zero to the limits of the steering and braking mechanisms or by other methods. The present solution is not limited to the details of these scenarios.
Wenn bestimmt wird, dass die Kollision in der vordefinierten Zeitspanne vermieden werden kann, dann wird die Fahrzeugtrajektorie 520 als eine akzeptable Fahrzeugtrajektorie angesehen und es wird keine Steueraktion unternommen, um die Fahrzeugtrajektorie zu modifizieren. Alternativ wird das AV veranlasst, ein vorsichtiges Manöver durchzuführen (z.B. schwach verlangsamen, wie etwa auf 5-10 mph, d.h. ca. 8 - 16 km/h). Techniken, um ein AV zu veranlassen, ein vorsichtiges Manöver, wie zum Beispiel das Verlangsamen, zu ergreifen, sind im Stand der Technik wohlbekannt. Zum Beispiel wird ein Steueraktionsbefehl erzeugt, wie durch 516 gezeigt, und verwendet, um die Fahrzeugtrajektorie bei 508 einzustellen oder anderweitig zu modifizieren, bevor sie zum Block 510 weitergeleitet wird. Die Fahrzeugtrajektorie kann eingestellt oder anderweitig modifiziert werden, um zu bewirken, dass das Fahrzeug verzögert wird, das Fahrzeug dazu veranlasst wird, zu beschleunigen und/oder das Fahrzeug veranlasst wird, seine Fahrtrichtung zu ändern.If it is determined that the collision can be avoided in the predefined amount of time, then the
Wenn dagegen festgestellt wird, dass die Kollision in der vordefinierten Zeitspanne nicht vermieden werden kann, wird der AV veranlasst, sofort ein Notmanöver durchzuführen. Dieses Notfallmanöver kann eines der oben diskutierten dynamisch generierten Notfallmanöver umfassen. Techniken, mit denen ein AV zu Notmanövern veranlasst werden kann, sind auf dem Gebiet wohlbekannt.If, on the other hand, it is determined that the collision cannot be avoided within the predefined period of time, the AV is prompted to carry out an emergency maneuver immediately. This emergency maneuver may include any of the dynamically generated emergency maneuvers discussed above. Techniques for causing an AV to perform emergency maneuvers are well known in the art.
Anschauliche Methoden zur Steuerung eines FahrzeugsIllustrative methods of controlling a vehicle
Unter Bezugnahme auf
Das Verfahren 600 umfasst eine Vielzahl von Operationen 602-630. Die vorliegende Lösung ist nicht auf die bestimmte Reihenfolge der Operationen 602 - 630 beschränkt, die in
Wie in
Sobald die Fahrzeugtrajektorie erzeugt ist, fährt das Verfahren 600 mit 605 fort, wo das AV Operationen durchführt, um ein Objekt zu detektieren, das sich in der Nähe dazu befindet. Ein CLF-Objekterkennungsalgorithmus wird in 605 verwendet. Der CLF-Objekterkennungsalgorithmus wird nachstehend ausführlich beschrieben. Die Objektdetektion wird dann verwendet, um mindestens einen autonomen Fahrbetrieb zu erleichtern (z.B. Objektverfolgungsoperationen, Objekttrajektorienvorhersageoperationen, Fahrzeugtrajektorienbestimmungsoperationen und/oder Kollisionsvermeidungsoperationen). Zum Beispiel kann ein Quader oder Kuboid für das detektierte Objekt in einem 3D-Graphen definiert werden, der einen LiDAR-Datensatz umfasst. Der Quader spezifiziert einen Kurs des Objekts und/oder das volle Ausmaß der Geometrie des Objekts. Die Kurs- und Objektgeometrie kann verwendet werden, um eine Objekttrajektorie vorherzusagen und/oder eine Fahrzeugtrajektorie zu bestimmen, wie im Stand der Technik bekannt und oben erörtert wurde. Die vorliegende Lösung ist nicht auf die Einzelheiten dieses Beispiels beschränkt.Once the vehicle trajectory is generated,
Dementsprechend fährt das Verfahren 600 mit 606 fort, wo eine oder mehrere mögliche Objekttrajektorien (z.B. mögliche Objekttrajektorien 522 von
Als nächstes wird in 608 eine der möglichen Objekttrajektorien für die nachfolgende Analyse ausgewählt. In einigen Szenarien werden die Operationen von 610-628 durchgeführt (z.B. in einer iterativen oder parallelen Weise) für jede mögliche Objekttrajektorie, die in 606 erzeugt wird. In anderen Szenarien werden die Operationen von 610-628 nur für eine der möglichen Objekttrajektorien durchgeführt, die ein Worst-Case-Kollisionsszenario für das AV bereitstellt. Diese mögliche Worst-Case Objekttrajektorie wird basierend auf Informationen ausgewählt, die die tatsächliche Geschwindigkeit und Fahrtrichtung des AV angeben (z.B. durch einen Geschwindigkeitssensor 238 von
Im nächsten Schritt 610 wird bestimmt, ob die in 604 erzeugte Fahrzeugtrajektorie und die mögliche Objekttrajektorie, die in 608 ausgewählt wird, einander schneiden. Wenn die beiden Trajektorien einander nicht schneiden [611: NEIN], dann wird 612 durchgeführt, wo das Verfahren 600 zu 604 zurückkehrt.In the
Wenn hingegen die beiden Trajektorien einander schneiden [611: JA], dann fährt das Verfahren 600 mit 614 fort, wo ein Zeitwert bestimmt wird. Dieser Zeitwert stellt eine Zeit dar, bei der eine Kollision auftreten wird, wenn die Fahrzeugtrajektorie von dem AV gefolgt wird und auf die mögliche Objekttrajektorie das Objekt folgt. Der in 614 bestimmte Zeitwert wird dann mit einem Schwellenzeitwert verglichen, wie bei 616 gezeigt. Der Schwellenzeitwert wird gemäß einer gegebenen Anwendung (z.B. einer oder mehreren Sekunden) ausgewählt. Wenn der Zeitwert größer als der Schwellenzeitwert ist [616: NEIN], dann wird Schritt 618 durchgeführt, wobei das Verfahren 600 zu 604 zurückkehrt. Wenn der Zeitwert gleich oder kleiner als der Schwellenzeitwert [616: JA] ist, dann fährt das Verfahren 600 mit 620-622 fort. Die Schritte 620-622 beinhalten: dynamisches Erzeugen eines oder mehrerer Notmanöver-Profile basierend auf der Fahrzeugtrajektorie und der möglichen Objekttrajektorie; und Bestimmen, ob die Kollision vermieden werden kann, wenn die Fahrzeugtrajektorie von dem AV gefolgt wird und eines der Notmanöver in einer vordefinierten Zeitspanne (z.B. N Millisekunden) durchgeführt wird. Nach Abschluss 622 fährt das Verfahren 600 mit 624 von
Unter Bezugnahme auf
Im Gegensatz dazu wird, wenn die Kollision in der vordefinierten Zeitperiode vermieden werden kann [624: JA], Schritt 628 durchgeführt, wo das AV optional veranlasst wird, ein zweites Manöver durchzuführen (z.B. schwach verlangsamen). Anschließend wird 630 durchgeführt, wo das Verfahren 600 endet oder eine andere Verarbeitung durchgeführt wird.In contrast, if the collision can be avoided in the predefined time period [624: YES],
CLF-ObjektdetektionCLF object detection
Die folgende Diskussion ist auf eine neue Lösung zur Detektion von Objekten gerichtet. Diese neue Lösung kann in Block 504 von
Der Zweck der CLF-Objektdetektion besteht darin, Objekte in einer LiDAR-Punktwolke mit hinzugefügtem Kontext aus Bilddetektionen zu detektieren. Das AV kann in einer unübersichtlichen bzw. Störobjekten aufweisenden („cluttered“) Umgebung betrieben werden, in der sich Objekte bewegen können und mit dem AV und/oder einander interagieren können. In einer reinen LiDAR-Umgebung ist diese Aufgabe in Situationen extrem schwierig, wenn Objekte in unmittelbarer Nähe zueinander sind und miteinander interagieren. Die CLF-Objektdetektion hat den vollen Vorteil von monokularen Kamerabilderfassungen, bei denen die Detektionen mit der LiDAR-Punktwolke fusioniert werden können. LiDAR-Datenpunkte werden in das monokularen Kameraframe projiziert, um Pixelinformationen zu den LiDAR-Datenpunkten zu übertragen, wie oben beschrieben. Die übertragenen Informationen können Farbe, Objekttyp und Objektinstanz umfassen, sind aber nicht darauf beschränkt.The purpose of CLF object detection is to detect objects in a LiDAR point cloud with added context from image detections. The AV may operate in a cluttered environment where objects may move and interact with the AV and/or each other. In a pure LiDAR environment, this task is extremely difficult in situations when objects are in close proximity and interacting with each other. CLF object detection has the full advantage of monocular camera image acquisitions, where the detections can be fused to the LiDAR point cloud. LiDAR data points are projected into the monocular camera frame to transfer pixel information to the LiDAR data points, as above described. The information transmitted may include, but is not limited to, color, object type, and object instance.
Es gibt mehrere Herausforderungen beim Übertragen von Markierungen von 2D-Bilderfassungen zu einer 3D-LiDAR-Punktwolke. In dieser Hinsicht sei angemerkt, dass Bildpixel nicht gleichzeitig als LiDAR-Datenpunkte in dem Erfassungskeil (sweep wedge) erfasst werden, der dem FOV der Kamera entspricht. Das Belichtungszeitfenster der Kamera ist üblicherweise viel kleiner als die Zeit, die bei einer LiDAR-Spinnanordnung zum Überstreichen des horizontalen FOVs der Kamera benötigt wird. Dieses zeitliche Ausrichtungsproblem macht sich am deutlichsten bemerkbar, wenn sich Objekte mit großer Winkelgeschwindigkeit relativ zu dem LiDAR-System bewegen. Es ist auch anzumerken, dass das LiDAR-System an einer anderen Stelle als die monokularen Kameras montiert ist. Aufgrund eines Parallaxenproblems gibt es Raumbereiche, die von dem LiDAR-System wahrgenommen werden, aber nicht von der Kamera wahrgenommen werden, und umgekehrt. Dies macht den Markierungstransfer in den Fällen mehrdeutig, in denen mehr als ein LiDAR-Punkt in den gleichen Bereich des Bildes hineinragt. Es gibt auch Probleme mit der Genauigkeit und der begrenzten Auflösung von Bilderfassungsmasken, Sensorkalibrierungen und der relativen Bewegung des AV und der Aktoren.There are several challenges when transferring markers from 2D image acquisitions to a 3D LiDAR point cloud. In this regard, it should be noted that image pixels are not simultaneously captured as LiDAR data points in the sweep wedge that corresponds to the camera's FOV. The camera's exposure window is typically much smaller than the time it takes a LiDAR spin array to scan the camera's horizontal FOV. This temporal alignment problem is most noticeable when objects are moving with large angular velocities relative to the LiDAR system. It's also worth noting that the LiDAR system is mounted in a different location than the monocular cameras. Due to a parallax problem, there are areas of space that are seen by the LiDAR system but not seen by the camera, and vice versa. This makes the marker transfer ambiguous in cases where more than one LiDAR point extends into the same area of the image. There are also issues with the accuracy and limited resolution of image acquisition masks, sensor calibrations, and the relative movement of the AV and actuators.
Die CLF-basierte Lösung detektiert Objekte (z.B. Objekte 1022, 114 und/oder 116 von
In der CLF-basierten Lösung werden monokulare Kameradetektionen mit einer LiDAR-Punktwolke fusioniert. Punkte der LiDAR-Punktwolke werden in ein monokulares Kameraframe projiziert, um Pixelinformationen zu jedem Punkt in der LiDAR-Punktwolke zu übertragen. Die Pixelinformation beinhaltet, ohne darauf beschränkt zu sein, eine Farbe, einen Objekttyp und eine Objektinstanz.In the CLF-based solution, monocular camera detections are fused with a LiDAR point cloud. Points in the LiDAR point cloud are projected into a monocular camera frame to transmit pixel information about each point in the LiDAR point cloud. The pixel information includes, but is not limited to, a color, an object type, and an object instance.
Insbesondere können die Kameras (z.B., die Kameras 262 von
Die Kamerabildinformation wird als zusätzlicher Hinweis verwendet, um die LiDAR-Punktsegmentierung zu unterstützen. Die Entfernungsfunktion, die zum Cluster von LiDAR-Punkten verwendet wird, wird erweitert, um eine Farbe und eine Bilddetektionsinstanz-Kompatibilität einzuschließen. Dies lässt LiDAR-Punkte, die in verschiedene Objektdetektionen in dem Bild hineinragen, für den Segmentierungsalgorithmus als weiter entfernt erscheinen. In ähnlicher Weise erscheinen LiDAR-Punkte, die in dieselbe Bilderfassungsmaske hineinragen, näher beieinander. Dieser Ansatz liefert eine deutliche Verbesserung im Vergleich zu einer Segmentierung, die sich auf den euklidischen Abstand zwischen Punkten allein in Fällen mit unterschiedlichen Objekten in unmittelbarer Nähe zueinander stützt.The camera image information is used as an additional hint to support LiDAR point segmentation. The distance function used to cluster LiDAR points is extended to include color and image detection instance compatibility. This makes LiDAR points that protrude into different object detections in the image appear further away to the segmentation algorithm. Similarly, LiDAR points protruding into the same image capture mask will appear closer together. This approach provides a significant improvement over segmentation that relies on Euclidean distance between points alone in cases with different objects in close proximity to each other.
Segmentierung: Jeder Segmentierungsalgorithmus kann von der vorliegenden Lösung verwendet werden, solange dieser eine angepasste Abstandsfunktion unterstützt. In einigen Szenarien ist der Segmentierungsalgorithmus, der in der CLF-basierten Lösung verwendet wird, LVS. Für LVS kann die vorliegende Lösung eine Farbwertentfernungs- und/oder eine Bilderfassungsinstanz-Kompatibilität in der Abstandsfunktion enthalten. Die zwei Hauptfehlermodi eines beliebigen Segmentierungsalgorithmus sind Untersegmentierung (mehrere Objekte dargestellt mit einem einzelnen Segment) und Übersegmentierung (einzelnes Objekt dargestellt als mehrere Segmente). In der CLF-basierten Lösung wird eine Optimierung für eine minimale Anzahl von Untersegmentierungsereignissen auf Kosten einer hohen Anzahl von Übersegmentierungsereignissen durchgeführt. Die Übersegmentierungsereignisse werden dann durch eine separate SegmentMerger-Komponente gehandhabt.Segmentation: Any segmentation algorithm can be used by the present solution as long as it supports a custom distance function. In some scenarios, the segmentation algorithm used in the CLF-based solution is LVS. For WMS, the present solution can provide color value removal and/or image capture instance compatibility in the distance radio included. The two main failure modes of any segmentation algorithm are under-segmentation (multiple objects represented with a single segment) and over-segmentation (single object represented as multiple segments). In the CLF-based solution, optimization is performed for a minimal number of under-segmentation events at the expense of a high number of over-segmentation events. The over-segmentation events are then handled by a separate SegmentMerger component.
Segment Merger: Jede maschinell gelernte Klassifizierungstechnik kann von der vorliegenden Lösung verwendet werden, um zu lernen, welche Segmente zusammengeführt werden sollten. Die maschinell gelernte Klassifizierungstechnik beinhaltet, ohne darauf beschränkt zu sein, ein künstliches neuronales Netzwerk, einen Zufallswald-Lernverfahren („Random Forest“), einen Entscheidungsbaum und/oder eine Unterstützungsvektormaschine. Die maschinell gelernte Klassifizierungstechnik wird trainiert, um zu bestimmen, welche Segmente miteinander verschmolzen werden sollten. Die gleiche Bilderfassungsinformation, die in der Segmentierung verwendet wurde, wird nun über die konstituierenden Punkte des Segments aggregiert, um Segment-Level-Merkmale zu berechnen. Zusätzlich dazu werden die Bodenhöhen- und Spurinformationsmerkmale aus der HD-Karte auch verwendet, um die Segmentzusammenführung zu unterstützen.Segment Merger: Any machine learned classification technique can be used by the present solution to learn which segments should be merged. The machine learned classification technique includes, but is not limited to, an artificial neural network, a random forest learning method, a decision tree, and/or a support vector machine. The machine learned classification technique is trained to determine which segments should be merged together. The same image acquisition information used in the segmentation is now aggregated over the segment's constituent points to calculate segment-level features. In addition to this, the ground elevation and lane information features from the HD map are also used to aid in segment merging.
Segmentfilter: Nicht alle detektierten Segmente sind für das AV relevant und viele von ihnen entsprechen den Störobjekten („Clutter“) von der Straße (Gebäude, Pfosten, Abfalldosen usw.). Dies ist dort, wo wiederum Bilderfassungsinformationen verwendet werden, um relevante Objekte außerhalb der Straße zu finden. Da nur die Verfolgung von Verkehrsteilnehmern, die sich von der Straße wegbewegen können, von Interesse ist, können statische Objekte verworfen werden, um den Rest der Verfolgungspipeline-Latenz zu verbessern und die Rechenanforderungen zu reduzieren. Es ist wichtig, relevante Objekte (z.B. sich bewegende Objekte oder Objekte, die sich bewegen können und möglicherweise den AV-Pfad schneiden, wenn sie sich bewegen) von statischen Objekten (z.B. Objekten, deren Bewegung unwahrscheinlich ist) zu unterscheiden. Hochrelevante Objekte können der höchsten Priorität zugeordnet werden, um entsprechend begrenzte bordeigene Rechenressourcen zuzuordnen. Jede Bilderfassungsmaske entspricht einer Sammlung von LiDAR-Punkten innerhalb eines Kegelstumpfes im 3D-Raum. Die Herausforderung besteht hier darin, dass in der Regel mehrere Objekte in unterschiedlichen Tiefen in dieselbe Bilderfassungsmaske hineinragen. Ein Beispiel ist eine Fahrzeugerfassung mit einem Pfahl vor ihm sowie einem dahinter befindlichen Fußgänger. LiDAR-Punkte, die zu dem wahren Fußgängerobjekt und dem Pfahlobjekt gehören, werden aufgrund von Projektionsfehlern, die während der Sensorfusionsstufe auftreten, Punkte aufweisen, die als Fahrzeug bezeichnet werden. Diese Fehler ergeben sich aus der Zeitdifferenz, wann der LiDAR-Punkt erfasst wurde und wann das Bildpixel erfasst wurde, aus Parallaxen-Effekten aufgrund unterschiedlicher Positionen von LiDAR und Kamera (das LiDAR kann über ein Objekt hinwegsehen, das von der Kamera gesehen wird), der AV-Bewegung, der Verkehrsteilnehmerbewegung bzw. Aktorenbewegung, aus Kalibrierungsfehlern und/oder der Genauigkeit und der begrenzten Auflösung von Bilddetektionsmasken. Um die Mehrdeutigkeit der Bilderfassungsmaske in der Segmentzuordnung aufzulösen, werden Projektionseigenschaften für alle Segmente bestimmt, die Punkte enthalten, die in eine bestimmte Bilderfassungsmaske hineinragen. Es werden nur eine oder wenige beste Übereinstimmungen berichtet, die wahrscheinlich dem auf dem Bild erfassten Objekt entsprechen. Dies hilft dabei, Störobjekte aus dem Satz von verfolgten Objekten zu eliminieren und die Latenz der Verfolgungs-Pipeline und die Rechenanforderungen zu reduzieren.Segment filter: Not all detected segments are relevant for the AV and many of them correspond to the clutter from the road (buildings, posts, garbage cans, etc.). This is where, in turn, image capture information is used to find off-road objects of interest. Since only the tracking of road users who may move off the road is of interest, static objects can be discarded to improve the rest of the tracking pipeline latency and reduce computational requirements. It is important to distinguish relevant objects (e.g., moving objects or objects that can move and potentially intersect the AV path if they move) from static objects (e.g., objects that are unlikely to move). Highly relevant objects can be assigned the highest priority to allocate correspondingly limited onboard computing resources. Each image acquisition mask corresponds to a collection of LiDAR points within a truncated cone in 3D space. The challenge here is that, as a rule, several objects protrude into the same image acquisition mask at different depths. An example is a vehicle detection with a pole in front of it and a pedestrian behind it. LiDAR points associated with the true pedestrian object and pole object will have points referred to as vehicle due to projection errors that occur during the sensor fusion stage. These errors result from the time difference between when the LiDAR point was captured and when the image pixel was captured, parallax effects due to different positions of the LiDAR and camera (the LiDAR can see over an object seen by the camera), AV movement, road user movement or actuator movement, calibration errors and/or the accuracy and limited resolution of image detection masks. To resolve the image capture mask ambiguity in the segment mapping, projection properties are determined for all segments containing points that protrude into a particular image capture mask. Only one or a few best matches are reported that are likely to correspond to the object captured in the image. This helps to eliminate clutter from the set of objects being tracked and to reduce the latency of the tracking pipeline and the computational requirements.
Die vorliegende CLF-basierte Lösung hat viele Vorteile. Zum Beispiel übernimmt die vorliegende CLF-basierte Lösung den vollen Vorteil von Bilderfassungen, ist aber nicht nur auf Bilddetektionen oder maschinelles Lernen („Machine Learning“ bzw. „ML“) angewiesen. Dies bedeutet sowohl das Trennen von Objekten in unmittelbarer Nähe als auch das Erfassen von Objekten, die zuvor nicht erkannt wurden. Dieser Ansatz kombiniert ML-Bilddetektionen mit klassischen Verfahren zur PunktwolkensegmentierungThe present CLF-based solution has many advantages. For example, the present CLF-based solution takes full advantage of image capture, but does not rely solely on image detection or machine learning (or "ML"). This means both separating objects in close proximity and capturing objects not previously detected. This approach combines ML image detection with classical point cloud segmentation methods
Eine Übersegmentierungs-Mergestrategie ist möglicherweise für Bildpixel wohlbekannt, ist jedoch für die Anwendung auf LiDAR-Punktwolken nicht verbreitet. Mit anderen Worten, viele Basislinien-LiDAR-Detektionsansätze arbeiten entweder mit einem einzelnen Cluster-Schritt oder verwenden Deep-Learning-Verfahren. Der vorgeschlagene Ansatz baut kleine Cluster aus Merkmalen auf niedriger Ebene auf, extrahiert dann aber aussagekräftigere Merkmale aus den Clustern, um zu bestimmen, welche Cluster zusammenlaufen, um Objekte zu bildenAn over-segmentation merge strategy may be well known for image pixels, but is not common for application to LiDAR point clouds. In other words, many baseline LiDAR detection approaches either work with a single cluster step or use deep learning techniques. The proposed approach builds small clusters of low-level features, but then extracts more meaningful features from the clusters to determine which clusters converge to form objects
Viele lernbasierte Ansätze verwenden generische Handwebmerkmale oder arbeiten auf den Rohdaten (wie die Anpassungsfunktion in einem Microsoft® Kinect). Der vorgeschlagene Ansatz beinhaltet mehrere neuartige „handgefertigte“ Features, die für die Objekte in der Umgebung optimiert sind (Fahrzeuge und Vegetation).Many learning-based approaches use generic hand weaving features or work on the raw data (like the fitting function in a Microsoft® Kinect). The proposed approach includes several novel "handcrafted" features optimized for the objects in the environment (vehicles and vegetation).
Unter Bezugnahme auf
In 706 wird eine Detektion durchgeführt, ob ein Sensor des LiDAR-Systems in der Lage ist, über eine Mitte eines FOV der Kamera zu streichen. Operationen der Kamera (z.B. der Kamera 262 von
In Schritt 712 führt eine bordeigene Rechenvorrichtung (z.B. die bordeigene Rechenvorrichtung 220 aus
Im Folgenden werden die LiDAR-zu-Bild-Objektdetektionsoperationen von 716 im Folgenden mit dem Titel „LiDAR-zu-Bild Erkennungs-Matching“ und in Bezug auf die
Punktbeschneidungpoint clipping
LiDAR-Datensätze können eine signifikante Anzahl von Punkten enthalten. Zum Beispiel kann ein LiDAR-Scanner (z.B. LiDAR-Sensorsystem 264 von
Unter Bezugnahme auf
Wie in
Im optionalen Schritt 806 werden LiDAR-Datenpunkte des LiDAR-Datensatzes in ein Kameraframe (oder -bild) projiziert, um Informationen von den bildbasierten Objekterfassungen zu den LiDAR-Datenpunkten zu übertragen. Techniken zum Projizieren von LiDAR-Datenpunkten in ein Kameraframe sind im Stand der Technik wohlbekannt. Jede bekannte oder bekannte Technik zum Projizieren von LiDAR-Datenpunkten in ein Frame kann hier ohne Einschränkung verwendet werden. Eine bekannte Projektionstechnik implementiert einen naiven Projektionsalgorithmus, der durch mathematische Gleichung (1) definiert wird, die unten bereitgestellt wird. Die übertragenen Informationen werden hier als Punktmarkierungen bezeichnet. Eine Punktmarkierung bezieht sich auf eine Angabe oder Beschreibung, die einem LiDAR-Datenpunkt zugeordnet ist, der Informationen oder Daten umfasst, die insbesondere dem LiDAR-Datenpunkt entsprechen. Zum Beispiel kann ein Punktmarkierung eine Objektklassenkennung (z.B. eine Fahrzeugklassenkennung, eine Fußgängerklassenkennung, eine Baumklassenkennung und/oder eine Gebäudeklassenkennung), eine Farbe (z.B. einen RGB-Wert), mindestens eine eindeutige Kennung (z.B. für das Objekt, entsprechende Bildpixel und/oder einen LiDAR-Datenpunkt) und/oder eine Objektinstanzkennung (z.B., wenn es viele Objekte derselben Klasse gibt, die in einem Bild detektiert werden).In
In optional 808 kann das System (z.B. das System 100 von
Optional in 810 wird der LiDAR-Datensatz nach einem Kegelstumpf-Beschneidungsalgorithmus heruntergesampelt („Downsampling“). Ein LiDAR-Datensatz kann Punkte beinhalten, die Objekte (z.B. anderen Fahrzeugen, Fußgängern, Radfahrern und/oder Schildern) entsprechen, die sich auf einer Straße oder einem anderen Fahrweg (z.B. der Fahrradspur oder einer Bahn) befinden, und/oder Punkte, die Objekte (z.B. Gebäuden, Bäumen und/oder anderem Blattwerk) entsprechen, die sich außerhalb der Straße oder einem anderen Bewegungspfad befinden. Ein Kegelstumpf kann für ein oder mehrere detektierte Objekte erzeugt werden. Der Kegelstumpf, der einem Bilderfassungsbegrenzungsrechteck entspricht, umfasst LiDAR-Datenpunkte einer Punktwolke, die wahrscheinlich einem bestimmten Objekt entsprechen. Die LiDAR-Datenpunkte, die innerhalb oder in der Nähe der Bilderfassungsbegrenzungsbox vorstehen, können für den Objektdetektionsprozess von mehr Relevanz oder Bedeutung sein als die LiDAR-Datenpunkte, die weiter weg von der Begrenzungsbox vorstehen, da die LiDAR-Datenpunkte, die weiter von der Begrenzungsbox entfernt liegen, unwahrscheinlicher in Übereinstimmung zu Objekten von Interesse stehen (z.B. Fußgänger, Fahrrad, Fahrzeug). Somit können die LiDAR-Datenpunkte auf der Grundlage ihrer Abstände von der Begrenzungsbox weiter heruntergesampelt und/oder beschnitten werden. Zum Beispiel wird eine Beschneidung für die LiDAR-Datenpunkte durchgeführt, die sich mehr als eine Schwellenentfernung von der Begrenzungsbox weg befinden. Ist der Abstand kleiner oder gleich dem Schwellenabstand, so bleibt der Punkt im LiDAR-Datensatz. Wenn der Abstand größer als der Schwellenabstand ist, wird der Punkt aus dem LiDAR-Datensatz entfernt. Die vorliegende Lösung ist nicht auf die Einzelheiten dieses Beispiels beschränkt. Ist neben der Bilderfassungsbegrenzungsbox die Bildobjektgrenze bekannt (z.B. in Form einer Pixelmaske), so kann anstelle des Abstands zum Begrenzungsrechteck der Abstand zur Maske verwendet werden. Die Entscheidung, ob der Punkt in dem Datensatz beibehalten werden soll, wird basierend darauf bestimmt, ob der Punkt in die dilatierte Maske hineinragt.Optionally in 810 the LiDAR data set is downsampled (“downsampling”) according to a truncated cone clipping algorithm. A LiDAR dataset may include points that correspond to objects (e.g., other vehicles, pedestrians, cyclists, and/or signs) that are on a road or other travel path (e.g., the bike lane or a train) and/or points that Correspond to objects (e.g. buildings, trees and/or other foliage) that are outside the road or other path of movement. A truncated cone can be generated for one or more detected objects. The truncated cone that corresponds to an image acquisition bounding box contains LiDAR data points of a point cloud that likely correspond to a specific object. The LiDAR data points that protrude inside or near the image acquisition bounding box may be of more relevance or importance to the object detection process than the LiDAR data points that protrude further away from the bounding box, since the LiDAR data points that protrude farther from the bounding box distant, less likely to be in line with objects of interest (e.g., pedestrian, bicycle, vehicle). Thus, the LiDAR data points may be further downsampled and/or clipped based on their distances from the bounding box. For example, clipping is performed for the LiDAR data points that are more than a threshold distance from the bounding box. If the distance is less than or equal to the threshold distance, the point remains in the LiDAR dataset. If the distance is greater than the threshold distance, the point is removed from the LiDAR dataset. The present solution is not limited to the details of this example. If, in addition to the image acquisition bounding box, the image object boundary is known (e.g. in the form of a pixel mask), the distance to the mask can be used instead of the distance to the bounding box. The decision whether to keep the point in the dataset is determined based on whether the point protrudes into the dilated mask.
Optional bei 812 wird der LiDAR-Datensatz unter Verwendung einer Karte heruntergerechnet, die Informationen enthält, die einer Trajektorie eines AV zugeordnet sind (z.B. AV 1021 von
Im optionalen Schritt 814 werden die Punkte des LiDAR-Datensatzes basierend auf der Prozesslatenz heruntergesampelt. Eine Objektdetektionspipeline kann mehrere Algorithmen verwenden, die unterschiedliche Zeitkomplexitätscharakteristika aufweisen. Die gesamte Pipeline-Latenz als Funktion der Eingangsdatengröße kann eine nichtlineare Kurve sein. Die Analyse von Latenzdaten von Fahrzeugprotokollen kann Erkenntnisse bereitstellen, wie die Funktion sich verhält. Beispielsweise kann die Funktion eine lineare Funktion und/oder eine Funktion höherer Ordnung (z.B. ein Polynom) sein. Durch Akkumulieren von Daten wird ein Pipeline-Latenzmodell erzeugt. Das Pipeline-Latenzmodell wird dann verwendet, um die Latenz bei einer bestimmten Eingangsdatengröße zu schätzen, und diese geschätzte Latenz kann verwendet werden, um die Downsampling-Auflösung zu manipulieren. Anschließend wird Schritt 816 durchgeführt, wo das Verfahren 800 endet oder andere Operationen durchgeführt werden.In
LiDAR-zu-Bild Erkennungs-MatchingLiDAR-to-image detection matching
Der LID-Abgleichalgorithmus der vorliegenden Lösung weist mehrere Aspekte auf. Diese Aspekte beinhalten: (i) Synchronisieren der Kameraauslösung mit der LiDAR-Systemabtastung; (ii) Berücksichtigen einer Projektionsunsicherheit mit bekannten Kamerakalibrierungsunsicherheiten; und (iii) Bestimmen, welche Bilderfassung einer Vielzahl von Bilderfassungen jeden Punkt in einem LiDAR-Datensatz am wahrscheinlichsten ist. Wie oben angemerkt, wird der Aspekt (i) durch Auslösen der Bilderfassung erreicht, wenn ein Brennpunkt des LiDAR-Sensors mit einer Mitte des FOV der Kamera ausgerichtet ist. Dieser Zeitausrichtungsfehler (d.h. die Zeitdifferenz zwischen LiDAR-Punkterfassung und Bilderfassung) wird durch diese Synchronisation minimiert. Aspekt (ii) beinhaltet: Bestimmen einer Unsicherheit bei der Kamerakalibrierung basierend auf elf Kalibrierungsparametern (d. h., 5 intrinsische: eine xy-Brennweite, eine Schrägstellung, eine xy-Bildmitte sowie 6 extrinsische: XYZ-Translation und 3 Rotationsfreiheitsgrade); Projizieren der Unsicherheit in ein Kameraframe; und Bestimmen einer Verteilung von Pixeln, an die ein LiDAR-Punkt projiziert werden kann (anstelle eines einzelnen Pixels). Aspekt (iii) wird erreicht durch: Betrachten jeder Objektdetektion als eine unabhängige Messung; und Verwenden der Konfidenzen, um eine Verteilung von Erfassungen zu berechnen, in denen wahrscheinlich ein LiDAR-Punkt sein sollte. Aspekte (i)-(iii) ermöglichen es dem LID-Anpassungsalgorithmus, mehrere Fehlerquellen und Unsicherheit zu berücksichtigen, um LiDAR-Punkte besser mit Kamera-Raum-Objekten in Übereinstimmung zu bringen.The LID matching algorithm of the present solution has several aspects. These aspects include: (i) synchronizing camera triggering with LiDAR system sampling; (ii) accounting for projection uncertainty with known camera calibration uncertainties; and (iii) determining which of a plurality of image acquisitions of each point in a LiDAR dataset is the most likely. As noted above, aspect (i) is achieved by triggering image capture when a focal point of the LiDAR sensor is aligned with a center of the camera's FOV. This time alignment error (i.e. the time difference between LiDAR point acquisition and image acquisition) is minimized by this synchronization. Aspect (ii) includes: determining an uncertainty in camera calibration based on eleven calibration parameters (i.e., 5 intrinsic: an xy focal length, a tilt, an xy image center and 6 extrinsic: XYZ translation and 3 rotational degrees of freedom); projecting the uncertainty into a camera frame; and determining a distribution of pixels to which a LiDAR point can be projected (rather than a single pixel). Aspect (iii) is achieved by: considering each object detection as an independent measurement; and using the confidences to calculate a distribution of detections where a LiDAR point should likely be. Aspects (i)-(iii) allow the LID adjustment algorithm to account for multiple sources of error and uncertainty to better match LiDAR points to camera-space objects.
Dementsprechend berücksichtigt der LID-Abgleichalgorithmus sowohl die Projektionsunsicherheit als auch die vollständige Konfidenzinformation aus den Bilderfassungen. Gegenwärtig wird keine Projektionsunsicherheit betrachtet, und Bilderfassungsvertrauen (in der gesamten Detektion und pro Pixel in der Maske) werden binarisiert. Eine Objekttypschätzung würde aktualisiert werden, um die neue Anpassung zu berücksichtigen.Accordingly, the LID matching algorithm takes into account both the projection uncertainty and the full confidence information from the image acquisitions. No projection uncertainty is currently considered, and image acquisition confidences (in total detection and per pixel in the mask) are binarized. An object type estimate would be updated to reflect the new adjustment.
Es gibt zwei Hauptprobleme mit den herkömmlichen LID-Anpassungsalgorithmen, der Maskenbleed/Maskenerosion und der Maskenverschiebung. Die vorliegende Lösung löst beide dieser Probleme durch Schätzen von p(lpi ∈ dj) (wobei lpi einen LiDAR-Punkt i darstellt und dj eine Bilderfassung j darstellt), anstelle der Bereitstellung der Bilddetektionen, auf die ein LiDAR-Punkt nativ projiziert ist. Diese Wahrscheinlichkeitsschätzung berücksichtigt Bilderfassungsvertrauen, Projektionsunsicherheit und das Zusammenwirken mehrerer überlappender Masken. Es gibt mehrere bekannte Quellen von Projektionsunsicherheit, wie zum Beispiel Kameradaten, Kamera-zu-LiDAR-Extrinsika und Zeitausrichtung (aufgrund von Fehlern bei der Bewegungskompensation (z.B. eine Fahrbahnwelle in der Straße wird positionsmäßig nicht gut kompensiert) und aufgrund der Objektbewegung).There are two main problems with the traditional LID adjustment algorithms, mask bleed/erosion and mask shifting. The present solution solves both of these problems by estimating p(lp i ∈ d j ) (where lp i represents a LiDAR point i and d j represents an image capture j), instead of providing the image detections that a LiDAR point is native to is projected. This probability estimate accounts for image capture confidence, projection uncertainty, and the interaction of multiple overlapping masks. There are several known sources of projection uncertainty, such as camera data, camera-to-LiDAR extrinsics, and time alignment (due to errors in motion compensation (e.g., a bump in the road is not positionally compensated well) and due to object motion).
Diese Änderung erfordert eine Änderung der aktuellen Einzelframeobjekttypschätzung. Anstelle eines Bitsatz-Zählverfahrens berechnet die vorliegende Lösung eine Objekttypverteilung für jede Bilderfassung, in die ein LiDAR-Punkt hineinragen kann. Der Satz von Objekttypverteilungen wird dann unter Verwendung der geschätzten Wahrscheinlichkeit für jede Bilderfassung kombiniert. Ein naives Verfahren könnte für einen Punkt aus mehreren Bilderfassungen darin bestehen, die Typverteilung für jede Bilderfassung zu mitteln. Die vorliegende Lösung ist ein gewichteter Mittelwert, der durch die Wahrscheinlichkeit jeder Bilderfassung gewichtet wird.This change requires a change in the current single frame object type estimate. Instead of using a bitset counting method, the present solution calculates an object type distribution for each image capture that a LiDAR point can intrude. The set of object type distributions is then combined using the estimated probability for each image capture. For a point from multiple image acquisitions, a naive approach might be to average the type distribution for each image acquisition. The present solution is a weighted average weighted by the probability of each image capture.
Unter Bezugnahme auf
In Schritt 914 bestimmt oder erhält die bordeigene Rechenvorrichtung extrinsische LiDAR-Sensor- und Kamerakalibrierungsparameter und intrinsische Kamerakalibrierungsparameter. Die extrinsischen LiDAR-Sensor- und Kamerakalibrierungsparameter umfassen LiDAR-Sensorkoordinaten und/oder Informationen, die eine Entsprechung zwischen LiDAR-Sensorkoordinaten und Kamerakoordinaten angeben. Die intrinsischen Kamerakalibrierungsparameter umfassen, ohne darauf beschränkt zu sein, eine x-Brennweite, eine y-Brennweite, eine Schrägstellung, eine Bildmitte, eine Brennpunktmitte des Bildes und/oder 3D-Koordinaten (x, y, z) einer Kameraposition.In
In Schritt 916 werden verschiedene Informationen in einen LID-Anpassungsalgorithmus eingegeben. Diese Informationen umfassen, ohne darauf beschränkt zu sein, Kennungen oder Identifizierer für jedes Objekt, das in dem Bild detektiert wird, Maskenkennungen, Zellenkennungen für jede Maske, Konfidenzwerte für jede Zelle, LiDAR-Punktkennungen, LiDAR-Punktkoordinaten, extrinsische LiDAR-Sensor- und Kamerakalibrierungsparameter und intrinsische Kamerakalibrierungsparameter. Diese Eingaben werden in den nachfolgenden Operationen 918-920 verwendet: Bestimmen (für jeden Punkt des LiDAR-Datensatzes) einer Wahrscheinlichkeitsverteilung von Pixeln, an die ein LiDAR-Datenpunkt unter Berücksichtigung einer Projektionsunsicherheit im Hinblick auf Kamerakalibrierungsunsicherheiten projizieren kann; und Bestimmen (für jeden Punkt des LiDAR-Datensatzes) einer Wahrscheinlichkeitsverteilung über einen Satz von Objekterfassungen, in denen sich ein LiDAR-Datenpunkt wahrscheinlich befindet, auf der Grundlage der Konfidenzwerte. Die Operationen von 918 werden im Detail unten in Bezug auf
Wie in
In 1304 berechnet die On-Board-Rechenvorrichtung eine Wahrscheinlichkeitsverteilungsfunktion („Probability Distribution Function“, „PDF“) f(xi,yi) über Bildraumkoordinaten für ein Pixel, zu dem ein LiDAR-Punkt wahrscheinlich gemäß einem naiven Projektionsalgorithmus (d.h. einer Wahrscheinlichkeitsverteilung, die um einen naiven Projektionspunkt zentriert ist) vorstehen oder projizieren würde. Der naive Projektionsalgorithmus wird durch die folgende mathematische Gleichung (1) definiert:
Es gibt mehrere Quellen von Projektionsunsicherheit, wie z.B. eine Zeitausrichtung und eine Objektbewegung. Wenn mehrere Quellen der Projektionsunsicherheit verwendet werden, dann ist es für jedes PDF und für jeden LiDAR-Punkt erforderlich: (i) in Bildraumkoordinaten darstellbar zu sein; (ii) in Bilderfassungsmaskenkoordinaten umwandelbar zu sein (kann übersetzt und skaliert werden); und (iii) zusammensetzbar (oder kombinierbar) mit anderen Projektionsunsicherheits-PDFs zu sein. Die vorliegende Lösung verwendet eine Jacobi(-Matrix) der PDF, um eine Unsicherheit der LiDAR-Frames zu Kamera-Frames weiter zu propagieren. Dies (oder eine ähnliche Alternative zur Ausbreitungsunsicherheit) trägt dazu bei, die Anforderung (i) zur Wahrscheinlichkeitsverteilung zu erfüllen.There are several sources of projection uncertainty, such as time alignment and object motion. If multiple sources of projection uncertainty are used, then each PDF and LiDAR point is required to: (i) be representable in image space coordinates; (ii) be convertible to image capture mask coordinates (can be translated and scaled); and (iii) to be composable (or combinable) with other projection uncertainty PDFs. The present solution uses a Jacobian (-matrix) of the PDF to further propagate an uncertainty of the LiDAR frames to camera frames. This (or a similar alternative to propagation uncertainty) helps to meet requirement (i) on the probability distribution.
Die PDF wird dann in Bilderfassungsmaskenkoordinaten umgewandelt, wie bei 1306 gezeigt.The PDF is then converted to image capture mask coordinates as shown at 1306 .
Diese Konvertierung wird durch Translation und Skalierung erreicht (wobei die Skalierung in x und die Skalierung in y unabhängig voneinander sind). Die Umrechnung wird durch die folgende mathematische Gleichung (2) definiert:
Wie in
Diese Berechnung wird durch die folgende mathematische Gleichung (4) definiert:
Die bordeigene Rechenvorrichtung berechnet ferner die Wahrscheinlichkeit, dass der LiDAR-Punkt nicht in eine beliebige Bilderfassung hineinragt, wie bei 1406 gezeigt. Diese Berechnung wird durch die mathematische Gleichung (5) definiert:
Schließlich berechnet die bordeigene Rechenvorrichtung in 1408 eine abhängige Wahrscheinlichkeit durch Normalisieren über alle berechneten Wahrscheinlichkeiten. Diese Berechnung wird durch die folgende mathematische Gleichung (6) definiert:
Lokale Variationssegmentierung mit BilderfassungsmerkmalenLocal variation segmentation with image capture features
Bei einigen herkömmlichen Objekterkennungsalgorithmen unter Verwendung einer 3D-LiDAR-Punktwolke werden kleine Punktwolkencluster erzeugt, die sehr ähnlich sind und daher fast sicher in demselben Objekt sind, wobei die Punktwolkencluster (weniger in der Anzahl und mit mehr Kontext als einzelne Punkte) zu einem Objekt zusammengeführt werden. Gemeinsame Verfahren für Punktwolken-Clustering sind verbundene Komponenten („Connected Components“) und dichtebasiertes räumliches Clustering von Anwendungen („Density-Based Spatial Clustering of Applications“ bzw. „DBSCAN“). Beide Verfahren berücksichtigen nur lokale Informationen (und nicht den größeren Kontext der Szenerie). Ein besseres Verfahren ist „Point Cloud Local Variations Segmentation“ („PCLVS“), das lokale Informationen mit einem breiteren Kontext kombiniert. Ein beispielhafter PCLVS-Algorithmus wird in einem Dokument mit dem Titel „Graph Based Over-Segmentation Methods for 3D Point Clouds“ diskutiert, das von Yizhak Ben-Shabat et al geschrieben wurde. Dieses Dokument diskutiert die Verwendung mehrerer Merkmale eines Punkts (Ort, Farbe basierend auf einem Bild und Richtung einer geschätzten Oberfläche an dem Punkt). Diese Merkmale allein sind nicht notwendigerweise genug, um zwei nahe Objekte davon abzuhalten, zusammengeführt zu werden.Some traditional object detection algorithms using a 3D LiDAR point cloud produce small point cloud clusters that are very similar and therefore almost certainly in the same object, merging the point cloud clusters (fewer in number and with more context than individual points) into one object become. Common techniques for point cloud clustering are Connected Components and Density-Based Spatial Clustering of Applications (DBSCAN). Both methods only consider local information (and not the larger context of the scene). A better technique is Point Cloud Local Variations Segmentation ("PCLVS"), which combines local information with a broader context. An example PCLVS algorithm is discussed in a document entitled "Graph Based Over-Segmentation Methods for 3D Point Clouds" written by Yizhak Ben-Shabat et al. This document discusses using multiple features of a point (location, color based on an image, and direction of an estimated surface at the point). These features alone are not necessarily enough to keep two close objects from merging.
Die vorliegende Lösung stellt einen verbesserten LVS-basierten Algorithmus bereit, der das Zusammenführen von nahen Objekten eliminiert oder minimiert. Diese Verbesserung wird zumindest teilweise durch die Verwendung zusätzlicher Merkmale erreicht, die (i) ein Bilderfassungsfähigkeitsmerkmal und (ii) ein modifiziertes Abstandsmerkmal umfassen. Das Merkmal (i) ist die Differenz, zwischen welchen Bilderfassungen jeder Punkt enthalten ist. Jeder Punkt hat eine Pro-Kamera-Verteilung von Bilddetektionen, dass er in der Bilderfassung ist (und eine Wahrscheinlichkeit, dass er in keiner Bilderfassung ist). Die Informationen von allen Kameras werden probabilistisch in eine einzige Zahl kombiniert, die anzeigt, ob die Punkte wahrscheinlich in der gleichen Bilderfassung sind oder nicht. Merkmal (ii) ist eine erweiterte oder kontrahierte Höhenkomponente eines geometrischen Abstands zwischen Punkten. Das Merkmal (ii) wird bereitgestellt, um die Probleme zu adressieren, dass Punktwolken keine gleichmäßige Dichte von Punkten aufweisen und dass weniger Laser auf die oberen und die unteren Enden eines Objekts gerichtet sind. Die Merkmale (i) und (ii) werden in dem LVS-basierten Algorithmus mit gemeinsamen Merkmalen wie Farbähnlichkeit kombiniert. Die Merkmale (i) und (ii) stellen eine überlegene Objektdetektionsfähigkeit bereit, indem es wahrscheinlicher ist, Cluster zu kombinieren, die sich in demselben Objekt befinden und weniger wahrscheinlich Cluster zu kombinieren, die nicht in demselben Objekt sind.The present solution provides an improved LVS-based algorithm that eliminates or minimizes merging of nearby objects. This improvement is achieved, at least in part, through the use of additional features, including (i) an image capture capability feature and (ii) a modified spacing feature. Feature (i) is the difference between which image acquisitions each point is included. Each point has a per-camera distribution of image detections that it is in image acquisition (and a probability that it is not in image acquisition). The information from all cameras is probabilistically combined into a single number that indicates whether the points are likely to be in the same frame or not. Feature (ii) is an expanded or contracted height component of a geometric distance between points. Feature (ii) is provided to address the problems that point clouds do not have a uniform density of points and that fewer lasers are aimed at the tops and bottoms of an object. Features (i) and (ii) are combined in the LVS-based algorithm with common features such as color similarity. Features (i) and (ii) provide superior object detection capability by being more likely to combine clusters that are in the same object and less likely to combine clusters that are not in the same object.
Der herkömmliche PCLVS-Algorithmus behandelt die Segmentierung in einer breiten Vielfalt von relativ leichten und moderaten Szenarien zum Extrahieren von Objekten aus einer Punktwolke, arbeitet aber derzeit in anspruchsvollen Szenarien nicht wie gewünscht. Dieser herkömmliche Ansatz nutzt keine anderen Aspekte der Informationen, die aus den LiDAR-Daten verfügbar sind, wie (i) die negative Information, die vom LiDAR beim Passieren durch Regionen der Umgebung ohne Interaktion bereitgestellt wird, und (ii) die zugrundeliegende Struktur, wie die Daten erfasst werden. Diese Informationen können verwendet werden, um die Durchführung der Segmentierung in mehrdeutigen oder herausfordernden Szenarien zu verbessern. Darüber hinaus versucht der PCLVS-Ansatz, Segmente weitgehend zu erzeugen, die 1:1 zu Objekten in der Welt entsprechen, ohne dass Informationen außerhalb des LiDAR rigoros genutzt werden, um dies zu tun. Dies führt zu einer Erhöhung der Segmentierungsfehler, insbesondere der Untersegmentierungsfehler. Untersegmentierungsfehler sind nach der Segmentierung besonders schwierig zu lösen, da das Aufteilen eines unterteilten Objekts das Implementieren eines zweiten Segmentierungsalgorithmus erfordert. Das „Vorspannen“ in Richtung einer Übersegmentierung stellt zwei entscheidende Vorteile bereit: eine Verbesserung der Fähigkeit, die Grenzen zu extrahieren, die die Bewegungsplanung für ein AV am kritisch beeinflussen, und eine Nachverarbeitung aufgrund von Zusammenführungssegmenten, die einen grundsätzlich anderen Algorithmus darstellt, zu ermöglichen. Die vorliegende Lösung schlägt einen neuen LVS-basierten Segmentierungsansatz vor, der diese Probleme löst: Bereitstellen eines Frames zum Integrieren zusätzlicher Informationen von den LiDAR-Sensoren; Definieren des Problems, um sicherzustellen, dass der Ausgang in einer Weise strukturiert wird, die sich leichter nachgelagert verarbeiten lässt; und Verbessern der Leistung durch Reduzieren der Untersegmentierung und Verbesserung des Grenzrückrufs („Boundary Recall“).The conventional PCLVS algorithm handles segmentation in a wide variety of relatively easy and moderate scenarios for extracting objects from a point cloud, but currently does not work as desired in demanding scenarios. This traditional approach does not utilize other aspects of the information available from the LiDAR data, such as (i) the negative information provided by the LiDAR when passing through non-interacting regions of the environment, and (ii) the underlying structure, such as the data are recorded. This information can be used to improve the performance of segmentation in ambiguous or challenging scenarios. In addition, the PCLVS approach attempts to largely generate segments that correspond 1:1 to objects in the world without rigorously leveraging information outside of the LiDAR to do so. This leads to an increase in segmentation errors, particularly sub-segmentation errors. Sub-segmentation errors are particularly difficult to solve after segmentation, since splitting a subdivided object requires implementing a second segmentation algorithm. "Biasing" towards over-segmentation provides two key benefits: an improvement in the ability to extract the boundaries that most critically affect motion planning for an AV, and enabling post-processing due to merging segments, which represents a fundamentally different algorithm . The present solution proposes a new LVS-based segmentation approach that solves these problems: provide a frame to integrate additional information from the LiDAR sensors; Defining the problem to ensure that the output is in a structured in a way that is easier to process downstream; and improve performance by reducing sub-segmentation and improving boundary recall.
Unter Bezugnahme auf
Als nächstes bestimmt ein Deskriptor-Bestimmer 1506 einen Deskriptor für jeden Knoten 1602 (oder LiDAR-Datenpunkt). Der Deskriptor ist ein Vektor V von Elementen, die den Knoten (oder LiDAR-Datenpunkt) charakterisieren. Die Elemente umfassen, ohne darauf beschränkt zu sein, Oberflächennormale Ni, einen Pro-Punkt-Farbwert (RiGiBi) basierend auf einem Bild (z.B. Bild 1000 von
Ein Kantengewichtszuordner 1508 ordnet jeder Graphenkante eij Gewichte zu. Die Graphenkante umfasst ein Kantenmerkmal MDi. Der modifizierte Abstand MDi ist eine erweiterte oder kontrahierte Höhenkomponente eines geometrischen Abstands zwischen Knoten (oder LiDAR-Datenpunkten). Der modifizierte Abstand MDi kann durch die folgende mathematische Gleichung (8) definiert werden:
Die Gewichte repräsentieren jeweils ein Dissimilaritätsmaß zwischen zwei benachbarten Knoten 1602. Ein Gewicht wird für jede Art von Element berechnet, das in dem Vektor V enthalten ist. Genauer wird ein Gewicht wn für die Oberflächennormale berechnet, das durch die folgende mathematische Gleichung (9) definiert werden kann:
Für die Farbe wird ein Gewicht wc berechnet, das durch die folgende mathematische Gleichung (10) definiert werden kann:
Ferner wird ein Gewicht wl für die Intensität berechnet, das durch die folgende mathematische Gleichung (11) definiert werden kann:
Ein Gewicht wd wird für 3D-Graphkoordinaten berechnet, die durch die folgende mathematische Gleichung (12) definiert werden können:
Ein Gewicht wcl wird für cli berechnet. Dies kann durch die folgende mathematische Gleichung (13) definiert werden. Der Wert des Gewichts wcl kann 1 sein, wenn die Objektklassen unterschiedlich sind, oder -1, wenn die Objektklassen gleich sind. Ein Graphenknoten kann aus mehreren LIDAR-Punkten zusammengesetzt sein. Wie oben angemerkt, ist cli die Wahrscheinlichkeitsverteilung über Objektklassen für konstituierende Punkte. Der Bhattacharyya-Abstand kann verwendet werden, um die Ähnlichkeit zwischen zwei Wahrscheinlichkeitsverteilungen zu berechnen.A weight w cl is calculated for cl i . This can be defined by the following mathematical equation (13). The value of the weight w cl can be 1 if the object classes are different, or -1 if the object classes are the same. A graph node can be composed of multiple lidar points. As noted above, cl i is the probability distribution over object classes for constituent points. The Bhattacharyya distance can be used to calculate the similarity between two probability distributions.
Ein Gewicht wFPFH wird für ein False-Point-Feature-Histogramm berechnet, das durch die folgende mathematische Gleichung (14) definiert werden kann.
Ein Gewicht wIDC wird für die Bilderfassungsfähigkeit berechnet, die durch die folgende mathematische Gleichung (15) definiert werden kann.
Ein Gewicht wMD wird für einen modifizierten Abstand berechnet, der gleich dem obigen MDij sein kann.A weight w MD is calculated for a modified distance, which may be equal to the MD ij above.
Die obigen Gewichte können zu einem nicht-negativen Skalar w(eij) durch zum Beispiel Linearkombination kombiniert werden. Die Informationen von allen Kameras werden probabilistisch in eine einzige Zahl kombiniert, die anzeigt, ob die Punkte wahrscheinlich in der gleichen Bilderfassung sind oder nicht. Der nichtnegative Skalierer w(eij) kann durch die folgende mathematische Gleichung (16) definiert werden:
Der LiDAR-Punkt-Merger 1510 verwendet die Kantengewichte w(eij), um zu entscheiden, welche LiDAR-Datenpunkte zusammengeführt werden sollten, um Segmente 1512 zu bilden. Die LiDAR-Punkte werden basierend auf diesen Entscheidungen zusammengeführt. Die Ausgabe des LiDAR-Punktmergers 1510 stellt eine Vielzahl von Segmenten 1512 dar. Die Segmente 1512 werden in nachfolgenden Segmentzusammenführungsoperationen verwendet.The
Die iterativen Segmentverschmelzungsoperationen, die von dem LiDAR-Punktmerger 1510 durchgeführt werden, beinhalten das Bilden von Segmenten durch iteratives Zusammenführen kleinerer Segmente, bis ein Stoppzustand erreicht ist. Insbesondere werden alle Knoten 1602 zunächst als einzelne Segmente betrachtet, und alle Graphenkanten 1604 werden in aufsteigender Reihenfolge durch das Kantengewicht w(eij) sortiert. Die Graphenkanten 1604 werden berücksichtigt, um jede Graphenkante als Zusammenführungsvorschlag zu behandeln, wenn die Graphenkante zwei verschiedene Segmente verbindet. Ein Zusammenführungsvorschlag wird akzeptiert, wenn das Gewicht zwischen den beiden Segmenten kleiner als eine größte interne Variation der beiden Segmente ist, plus einem Term, der die Segmentierung vorspannt, um kleine Segmente zusammenzufügen. Genauer gesagt sind die gegebenen Segmente Ci, Cj durch eine Kante eij mit einem Gewicht w(eij) verbunden:
In einigen Szenarien wird ein Metrikgenerator 1514 bereitgestellt, um Segmentierungsmetriken aus der Segmentierungsoperation und -ausgabe zu sammeln, zu berechnen und/oder zu erzeugen. Um diese zu definieren, wird angenommen, dass eine markierte „Ground Truth“ (Feldvergleichsfähigkeit) für Punktwolken verfügbar ist, die alle Objekte kennzeichnet, die für das System von Interesse sind. Es ist zu beachten, dass, da dieser Segmentierungsansatz alle Objekte detektieren soll, die vermieden werden sollten, Markierungen für Hindernisse existieren sollten, die nicht von Interesse für das Detektionssystem sind, sondern vermieden werden sollten (z.B. Fremdobjektschutt, Straßenschilder und/oder Mülltonnen). Die vorgeschlagenen Metriken umfassen eine Untersegmentierungsfehlermetrik, eine Grenzabrufmetrik und eine Instanzpräzisions- und Abrufmetrik.In some scenarios, a
Unter der Segmentierungsfehlermetrik wird gemessen, wie viel die Segmentierungsergebnisse Segmente enthalten, die Grenzen zwischen verschiedenen Objekten in der Szene kreuzen. Da ein Untersegmentierungsereignis zwei Ground-Truth-Segmente umfasst, muss diese Fehlermetrik so berechnet werden, dass sie das Ereignis nicht doppelt zählt. Die Untersegmentierungsfehlermetrik kann berechnet werden, indem jedes Segment gefunden wird, das mehr als ein Ground-Truth-Objekt schneidet und das Segment zwischen den Ground-Truth-Objekten teilt. Die Untersegmentierungsfehlermetrik wird dann als die Summe der kleineren der beiden Teilsegmente für alle diese Untersegmente definiert, gemittelt über die Anzahl der Punkte über alle Segmente. Formal wird die Untersegmentierungsfehlermetrik UE durch die folgende mathematische Gleichung (18) definiert.
Die Grenzabrufmetrik misst einen Grad, zu dem eine Grenze jedes Objekts durch Segmentierung wiedergewonnen wird. Eine Übersegmentierung erzeugt Grenzen, die innerhalb der Ground-Truth-Segmentierung liegen, aber den Leistungsverbesserungen des vorliegenden Ansatzes eigen sind. Diese Metrik zielt also darauf ab, zu messen, wie viele der LiDAR-Datenpunkte, die Objektgrenzen repräsentieren, durch eine gegebene Segmentierung extrahiert werden. Dies kann berechnet werden, indem die 3D-Punktwolkendaten in ein Tiefenbild projiziert werden und jeder Pixel mit einer zugeordneten Segmentmarkierung farbmarkiert wird. Somit können Grenzen durch Auffinden der Kanten im Bild berechnet werden. Der gleiche Prozess kann mit der Ausgabesegmentierung durchgeführt werden, wobei Kanten dann als echte Positive (Kanten, die in beiden Bildern vorhanden sind) und falsche Negative (Kanten, die in den Ground-Truth-Daten vorhanden sind, aber nicht in der Ausgabesegmentierung) gelabelt werden. Die Grenzabrufmetrik BR kann durch die folgende mathematische Gleichung (19) definiert werden:
Ein Performancewert zum Extrahieren von Objekten von Interesse kann als Präzisions- und Abrufmetriken über Objektinstanzen berechnet werden. Für jedes Objekt in der Ground-Truth kann eine Bestimmung vorgenommen werden, ob ein Segment in der gleichen Weise mit einer Ground-Truth-Markierung assoziiert ist, wie es im Untersegmentierungsfehler durchgeführt wird. Mit dieser Information können Präzision und Abruf standardmäßig berechnet werden.A performance value for extracting objects of interest can be calculated as precision and retrieval metrics over object instances. For each object in the ground truth, a determination can be made as to whether a segment is associated with a ground truth marker in the same way as is done in the sub-segmentation error. With this information, precision and recall can be calculated by default.
Segment-Mergersegment merger
Insbesondere sind die Segmente 1512, die von dem LVS-Algorithmus 1500 ausgegeben werden, zu klein, um Kuben bzw. Quader zu schätzen. Deshalb wird ein Segment-Merger verwendet, um Segmente zu konstruieren, die groß genug für eine nachfolgende Formung vor einer (z.B. quaderförmigen) Schätzung sind. Der Segment-Merger führt Segmentzusammenführungsoperationen durch, die im Allgemeinen umfassen: Auswählen von Paaren von Segmenten; Identifizieren, welche Paare von Segmenten einen Schwerpunkt-zu-SchwerpunktAbstand aufweisen, der größer als ein Schwellenwert ist (z.B. < 3 m); Berechnen von Merkmalen für jedes Segmentpaar (wobei der Schwerpunkt-zu-SchwerpunktAbstand kleiner als der Schwellenwert (z.B. < 3 m) ist) basierend auf den Attributen der Segmente, die in dem Paar enthalten sind; Erzeugen (für jedes Segmentpaar) einer Wahrscheinlichkeit, dass die Segmente basierend auf den berechneten Merkmalen zusammengefügt werden sollten; und Zusammenführen von Segmenten basierend auf den Wahrscheinlichkeiten.In particular, the
Es wird nun auf
Die verbleibenden Segmente werden einem Attributgenerator 1708 und einem Graphenkonstruktor 1710 zugeführt. Am Attributgenerator 1608 kann ein Satz von Attributen für jedes Segment erhalten und/oder erzeugt werden. Ein Satz von Attributen kann umfassen, ist aber nicht beschränkt auf: (i) eine 2D-Region, die die LiDAR-Datenpunkte in der Segmentabdeckung zeigt; (ii) einen Durchschnitt der Wahrscheinlichkeitsverteilungen, die in 920 von
Am Graphen-Konstruktor 1710 ist ein Graph konstruiert, in dem die Segmente aufgetragen sind. Verbindungen werden dem Graphen für Paare von in der Nähe befindlichen Segmenten (unter Berücksichtigung der Größe jedes Segments) hinzugefügt. Diese Verbindungen definieren Paare von Segmenten, für die Merkmale durch den Merkmalsgenerator 1712 erzeugt werden sollten.At the
In einigen Szenarien beschreibt jeder Satz von Merkmalen eine Paarung von zwei Segmenten. Die Merkmale können unter Verwendung der durch den Attributgenerator 1708 erzeugten Attribute erzeugt werden. Die Merkmale können umfassen, sind aber nicht darauf beschränkt:
- • Differenz zwischen einem Durchschnitt einer Wahrscheinlichkeitsverteilung, die in 920 von
9 für ein erstes Segment berechnet wurde, und einem Durchschnitt von Wahrscheinlichkeitsverteilungen, die in 920 von9 für ein zweites Segment berechnet wurde; - • Differenz in Straßenverhältnissen oder Differenz in einem Prozentsatz von LiDAR-Datenpunkten, die in einem ersten Segment enthalten sind, das sich auf einer Straße befindet, und einem Prozentsatz von LiDAR-Datenpunkten, die in einem zweiten Segment enthalten sind, das sich auf einer Straße befindet;
- • Differenz in Geländeverhältnissen (z.B. Differenz in einem Prozentsatz von LiDAR-Datenpunkten, die in einem ersten Segment enthalten sind, das abseits einer Straße (off-road) ist, und einem Prozentsatz von LiDAR-Datenpunkten, die in einem zweiten Segment enthalten sind, die abseits von einer Straße (off-road) sind);
- • Bereichskompatibilität (z.B. einen Überlappungsgrad zwischen den 2D-Spuren, die durch erste und zweite Segmente bedeckt sind);
- • Fahrspurkompatibilität (z.B. einen Überlappungsgrad zwischen den Spuren, in denen sich das erste und das zweite Segment befinden) (z.B., wenn die Sätze von Spuren überlappen, dann kompatibel. Wenn sich keines der Segmente in beliebigen Spuren befindet, gibt es keine Information. Wenn die Sätze von Spuren nicht überlappen, dann nicht kompatibel);
- • Differenz zwischen der Gesamtanzahl von Fahrspuren, die ein erstes Segment zumindest teilweise überlappt, und der Gesamtanzahl von Fahrspuren, die ein zweites Segment zumindest teilweise überlappt;
- • einem nächsten Abstand zwischen konvexen Hüllen (oder Punkten);
- • einen Hausdorff-Abstand zwischen konvexen Hüllen (oder Punkten);
- • ob sich die konvexen Hüllen schneiden;
- • eine Differenz oder ein Abstand in der Höhe zwischen Segmenten (z.B. ist dann, wenn sich ein Höhenintervall für jedes Segment schneidet, dieser Abstand Null. Ansonsten ist dies der Abstand zwischen einer minimalen Höhe eines höheren Segments und einer maximalen Höhe eines unteren Segments),
- • Maskenkompatibilität, die durch mathematische Gleichung definiert ist:
-
- • dominante Maskenkompatibilität (wenn Segmente eine gleiche dominante Maske in einer beliebigen Kamera aufweisen, dann kompatibel. Wenn Segmente unterschiedliche dominante Masken in einer beliebigen Kamera aufweisen, dann inkompatibel. Wenn es ein „Unentschieden“ gibt, wird die Kompatibilität als (Segment-1-Punkte, die zu der Segment-1-dominierenden Maske projizieren) * (Segment-2-Punkte, die zu der Segment-2-dominierenden Maske projizieren) bestimmt);
- • Differenz der Objekttypverteilungen (z.B. „Earth-Mover's Distance“, „EMD“);
- • durchschnittlicher Bereich von zwei Segmenten (Kontextmerkmal);
- • eine kleinere wahrscheinlichste Objektgröße;
- • gemeinsam genutzter wahrscheinlichster Objekttyp (z.B., wenn der wahrscheinlichste Objekttyp jedes Segments gleich ist, dann ist es dieser Objekttyp);
- • Objekttyp-Kompatibilität (z.B., wenn eine Kreuzung in den Typen vorhanden ist, zu der jeder Bestandteilspunkt hinzeigt, dann kompatibel);
- • dominante Objekttyp-Kompatibilität (z.B., wenn es einen dominanten Objekttyp gibt (die meisten Punkte ragen zu einer Maske, die von einem Typ ist), und dieser dominante Typ ist für beide Segmente gleich, dann kompatibel);
- • Differenz zwischen flächenbezogenen Merkmalen (z.B. Differenz zwischen einem Verhältnis von [Summe von Bereichen von Segment-konvexen Hüllen] zu [Fläche von zusammengeführten Segment-konvexen Hüllen] für zwei Segmente); und
- • Differenz von Farbhistogramm.
- • Difference between an average of a probability distribution obtained in 920 from
9 for a first segment, and an average of probability distributions calculated in 920 from9 calculated for a second segment; - • Difference in road conditions, or difference in a percentage of LiDAR data points contained in a first segment that is on a road and a percentage of LiDAR data points that are contained in a second segment that is on a road located;
- • difference in terrain conditions (e.g. difference in a percentage of LiDAR data points contained in a first segment that is off-road and a percentage of LiDAR data points contained in a second segment, that are off-road);
- • area compatibility (eg, a degree of overlap between the 2D tracks covered by first and second segments);
- • Lane compatibility (eg a degree of overlap between the lanes in which the first and second segments are located) (eg if the sets of lanes overlap then compatible. If none of the segments are in any lanes then there is no information. If the sets of tracks do not overlap, then incompatible);
- • Difference between the total number of lanes at least partially overlapping a first segment and the total number of lanes at least partially overlapping a second segment;
- • a nearest distance between convex hulls (or points);
- • a Hausdorff distance between convex hulls (or points);
- • whether the convex hulls intersect;
- • a difference or distance in height between segments (e.g. if a height interval for each segment intersects, then this distance is zero. Otherwise, this is the distance between a minimum height of a higher segment and a maximum height of a lower segment),
- • Mask compatibility defined by mathematical equation:
-
- • dominant mask compatibility (if segments share same dominant mask in any camera then compatible. If segments share different dominant mask in any camera then incompatible. If there is a “tie” then compatibility is reported as (segment-1- points projecting to segment 1 dominant mask) * (segment 2 points projecting to segment 2 dominant mask) determined);
- • Difference in object type distributions (eg "Earth-Mover's Distance", "EMD");
- • average area of two segments (contextual feature);
- • a smaller most likely object size;
- • shared most likely object type (eg, if each segment's most likely object type is the same, then it is that object type);
- • object type compatibility (eg, if there is a crossing in the types to which each constituent point points, then compatible);
- • dominant object type compatibility (eg, if there is a dominant object type (most points protrude to a mask that is of one type) and that dominant type is the same for both segments, then compatible);
- • difference between area-related features (eg, difference between a ratio of [sum of areas of segment convex hulls] to [area of merged segment convex hulls] for two segments); and
- • Difference of color histogram.
Die Merkmale werden dann von dem Merkmalsgenerator 1712 zu dem maschinell gelernten Klassifikator 1714 geleitet. Der maschinell gelernte Klassifikator 1714 analysiert jeden Satz von Merkmalen, um eine Wahrscheinlichkeit zu bestimmen, dass die entsprechenden Segmente zusammengeführt werden sollten. Beispielsweise wird eine niedrige Wahrscheinlichkeit für das Zusammenführen zweier Segmente bestimmt, wenn (1) eine Differenz zwischen Wahrscheinlichkeitsverteilungsmittelwerten einen Schwellenwert überschreitet und (2) eine Fahrspurunverträglichkeit existiert. Im Gegensatz dazu besteht eine hohe Wahrscheinlichkeit, wenn (1) eine Differenz zwischen Wahrscheinlichkeitsverteilungen-Mittelwerten kleiner als ein Schwellenwert ist und (2) eine Fahrspurkompatibilität existiert. Die vorliegende Lösung ist diesbezüglich nicht beschränkt. Die Wahrscheinlichkeiten könnten einem numerischen Wert (z.B. 0 - 10) zusätzlich zu oder alternativ zu einem Pegel (z.B. niedrig, mittel oder hoch) zugewiesen werden. Der Grad oder Grad der Wahrscheinlichkeit kann durch eine beliebige Kombination von Merkmalen bestimmt werden, die gemäß einer gegebenen Anwendung ausgewählt werden.The features are then passed from the
Der maschinell gelernte Klassifikator 1714 wird unter Verwendung eines maschinellen Lernalgorithmus trainiert, der lernt, wenn zwei Segmente im Hinblick auf ein oder mehrere Merkmale zusammengeführt werden sollten. Jeder Maschinenlernalgorithmus kann hierin ohne Einschränkung verwendet werden. Zum Beispiel wird hier ein oder mehrere der folgenden maschinellen Lernalgorithmen verwendet: überwachtes Lernen; unüberwachtes Lernen; halbüberwachtes Lernen; und Verstärkungslernen. Die erlernten Informationen durch den maschinellen Lernalgorithmus können verwendet werden, um Regeln zum Bestimmen einer Wahrscheinlichkeit zu erzeugen, dass zwei Segmente zusammengeführt werden sollten. Diese Regeln werden dann durch den maschinell gelernten Klassifikator 1714 implementiert.The machine learned
Die Zusammenführungswahrscheinlichkeiten werden dann durch den maschinell erlernten Klassifikator 1714 analysiert, um die Paare von Segmenten als Zusammenführungspaare oder Nicht-Zusammenführungspaare zu klassifizieren. Beispielsweise wird ein Paar von Segmenten als Zusammenführungspaar klassifiziert, wenn die jeweilige Zusammenführungs- oder Merge-Wahrscheinlichkeit einen hohen Pegel aufweist oder einen numerischen Wert aufweist, der größer als ein Schwellenwert ist. Im Gegensatz dazu wird ein Paar von Segmenten als ein Nicht-Zusammenführungspaar klassifiziert, wenn die jeweilige Zusammenführungswahrscheinlichkeit einen niedrigen Pegel aufweist oder einen numerischen Wert aufweist, der kleiner als ein Schwellenwert ist. Die vorliegende Lösung ist nicht auf die Einzelheiten dieses Beispiels beschränkt.The merge probabilities are then analyzed by the machine learned
Die Klassifikationen werden dann an den Merger 1716 weitergegeben. Der Merger 1716 führt die Segmente gemäß den Klassifikationen zusammen. Beispielsweise werden Segmente in jedem Zusammenführungspaar zusammengeführt. Insbesondere werden redundante Verbindungen nicht für Segmentzusammenführungszwecke ausgewertet. Sollte beispielsweise das Segment A mit Segment B zusammenzuführen sein („merge“) und das Segment B mit dem Segment C zusammenzuführen sein, dann evaluiert der Segmentmerger 1716 nicht ein Zusammenführung des Segments A mit dem Segment C. Die vorliegende Lösung ist nicht auf die Einzelheiten dieses Beispiels beschränkt.The classifications are then passed on to the 1716 merger. The
Es sollte beachtet werden, dass ein Problem, das schwierig mit einer paarweisen Zusammenführungsperspektive zu behandeln ist, die Behandlung von Fragmenten von größeren Fahrzeugen ist. Zum Beispiel kann ein Großraumlastwagen als mehrere Fragmente beobachtet werden, die weit auseinander liegen Aufgrund der Projektionsunsicherheit ragen diese Fragmente oft nicht in die gleiche Bilderfassungsmaske wie die Rückseite des Lastkraftwagens, und es gibt nicht genügend Kontext, damit der Merger diese Fragmente auf der Grundlage der Zusammenführungswahrscheinlichkeiten kombiniert. Daher führt der Merger 1716 zusätzliche Operationen durch, um jedes große detektierte Segment, das als Fahrzeug (z.B. eine Rückseite des Lastwagens) erfasst wird, zu einem Formmodell (z.B. einem Quader) zu passen, um die wahre Ausdehnung des detektierten Objekts zu schätzen. Der Bounding-Box-Schätzer kann Bodenhöhen- und Spurinformationen von Bord-HD-Karte und visuellem Kurs aus der Bilderfassung verwenden. Der geschätzte Quader weist nun genügend Informationen auf, um Fragmente basierend auf ihrem Überlappungsbereich mit dem geschätzten Quader zusammenzufügen. Ein weiteres Beispiel, bei dem Quader nützlich eingesetzt werden können, ist die Unterstützung der Segmentierung bei Bussen. Die großen Fensterbereiche ermöglichen es dem Laserlicht, in die inneren Abschnitte des Busses vorzudringen und diese abzutasten, was zu mehreren Fragmenten führt, die weit weg von der L-Form des Busses sind. Nach Abschluss der Zusammenführungsoperationen gibt der Merger 1716 eine Vielzahl von zusammengeführten Segmenten 1714 ausIt should be noted that one problem that is difficult to handle with a pairwise merge perspective is the handling of fragments from larger vehicles. For example, a heavy-duty truck can be observed as multiple fragments that are widely spaced. Due to projection uncertainty, these fragments often do not protrude into the same image capture mask as the back of the truck, and there is insufficient context to allow the merger of these fragments based on the merging probabilities combined. Therefore, the
ObjektdetektionssegmentfilterungObject detection segment filtering
Nicht alle detektierten Segmente von LiDAR-Datenpunkten sind für das AV relevant, und viele der Segmente entsprechen Störobjekten („Clutter“) von der Straße (z.B. Gebäude, Masten und/oder Abfalldosen). Die Bilddetektionen werden verwendet, um relevante Objekte von der Straße zu finden. Da „Off-Road“ nur bewegte Akteure von Interesse sind, können statische Objekte verworfen werden, um den Rest der CLF-Objektdetektionspipeline zu verbessern und die Rechenanforderungen des CLF-Objekterkennungsalgorithmus zu reduzieren.Not all detected segments of LiDAR data points are relevant for the AV, and many of the segments correspond to clutter from the road (e.g. buildings, poles and/or garbage cans). The image detections are used to find relevant objects from the road. Since "off-road" is only interested in moving actors, static objects can be discarded to improve the rest of the CLF object detection pipeline and reduce the computational requirements of the CLF object detection algorithm.
Aufgrund der Markierungsübertragungsprobleme gibt es mehrere Segmente von LiDAR-Datenpunkten innerhalb des Kegelstumpfs, die der Bilddetektionsmaske entsprechen. In dieser Sammlung können 0 oder 1 wahre positive Segmente und in dieser Sammlung 0 bis N falsch positive Segmente vorhanden sein. Das Lösen dieses Zuordnungsproblems ist ein primärer Zweck des CLF-Segmentfilters.Because of the marker transfer issues, there are multiple segments of LiDAR data points within the frustum that correspond to the image detection mask. There can be 0 or 1 true positive segments in this collection and 0 to N false positive segments in this collection. Solving this mapping problem is a primary purpose of the CLF segment filter.
Ein Beispiel ist eine Fahrzeugdetektion mit einem Pfahl vor und auch einem Fußgänger dahinter. LiDAR-Datenpunkte, die zu dem wahren Fußgängerobjekt und dem Polobjekt gehören, werden aufgrund von Projektionsfehlern, die während der Sensorfusionsstufe auftreten, Punkte aufweisen, die als Fahrzeuge bezeichnet werden. Um die Mehrdeutigkeit der Bilderfassungsmaske in der Segmentzuordnung aufzulösen, werden Projektionscharakteristiken für alle Segmente berechnet, die LiDAR-Datenpunkte enthalten, die in eine bestimmte Bilderfassungsmaske hineinragen. Es werden eine oder mehrere beste Übereinstimmungen berichtet, die wahrscheinlich dem auf dem Bild erfassten Objekt entsprechen. Dies hilft dabei, Störobjekte aus dem Satz von verfolgten Objekten zu eliminieren und die Verfolgung der Pipeline-Latenz und der Rechenanforderungen zu reduzieren.An example is vehicle detection with a pole in front and also a pedestrian behind. LiDAR data points associated with the true pedestrian object and the pole object will have points called vehicles due to projection errors that occur during the sensor fusion stage. To resolve the image capture mask ambiguity in the segment mapping, projection characteristics are computed for all segments containing LiDAR data points that protrude into a specific image capture mask. One or more best matches are reported that are likely to correspond to the object captured in the image. This helps eliminate spurious objects from the set of objects being tracked and reduces tracking pipeline latency and computational requirements.
Unter Bezugnahme auf
Es gibt andere Cluster-Merkmale, die verwendet werden können, um Segmente von LiDAR-Datenpunkten zu identifizieren, die einem Fußgänger, einem Fahrzeug, einem Radfahrer und/oder einem beliebigen anderen sich bewegenden Objekt zugeordnet sind. Diese zusätzlichen Cluster-Merkmale umfassen ein Cluster-Merkmal H, das eine Clusterhöhe darstellt, ein Cluster-Merkmal L, das eine Clusterlänge darstellt, und ein Cluster-Merkmal LTW, das ein Längen-zu-Breiten-Verhältnis für ein Cluster darstellt.There are other cluster features that can be used to identify segments of LiDAR data points that are associated with a pedestrian, vehicle, cyclist, and/or any other moving object. These additional cluster features include a Cluster feature H representing cluster height, cluster feature L representing cluster length, and cluster feature LTW representing length-to-width ratio for a cluster.
Cluster mit einer Höhe über 2,0 - 2,5 Meter sind unwahrscheinlich mit Fußgängern assoziiert. Cluster über 1 Meter Länge sind unwahrscheinlich mit Fußgängern assoziiert. Cluster mit einem Längen-zu-Breiten-Verhältnis über 4,0 neigen häufig dazu, mit Gebäuden verbunden zu sein und sind unwahrscheinlich mit Fußgängern verbunden. Cluster mit hoher Zylinderfaltungsbewertung sind wahrscheinlich mit Fußgängern assoziiert.Clusters taller than 2.0-2.5 meters are unlikely to be associated with pedestrians. Clusters longer than 1 meter are unlikely to be associated with pedestrians. Clusters with an aspect ratio above 4.0 often tend to be associated with buildings and are unlikely to be associated with pedestrians. Clusters with high cylinder fold scores are likely associated with pedestrians.
Dementsprechend beginnt das Verfahren 1800 mit 1804, wo verschiedene Informationen für eine gegebene Bilderfassungsmaske m (z.B. die Maske 1200 von
Das Cluster-Merkmal H ist gleich hs gesetzt. Das Cluster-Merkmal L ist gleich Is gesetzt. Das Clustermerkmal LTW kann durch die folgende mathematische Gleichung (24) bestimmt werden:
In 1812 wird ein Projektionswert PS basierend auf den Clustermerkmalen U, V, H, L und/oder LTW berechnet. Der Projektionswert kann durch die folgende mathematische Gleichung (25) definiert werden:
Als nächstes wird in 1814 der Projektionswert verwendet, um zu verifizieren, dass das zusammengeführte Segment Teil des detektierten Objekts ist, das einer gegebenen Bilddetektionsmaske zugeordnet ist. Eine solche Verifikation kann vorgenommen werden, wenn der Projektionswert größer als ein Schwellenwert ist. Eine Objekterkennung kann in 1816 vorgenommen werden, wenn eine solche Verifizierung vorgenommen wird. In einigen Szenarien wird die Objektdetektion basierend auf den Ergebnissen von Operationen 1804-1814 für zwei oder mehr zusammengeführte Segmente durchgeführt, die der gleichen Bilddetektionsmaske zugeordnet sind. Beispielsweise wird eine Objekterkennung durchgeführt, dass ein gegebenes zusammengeführtes Segment einer Vielzahl von zusammengeführten Segmenten einem gegebenen detektierten Objekt zugeordnet ist, wenn der für das gegebene zusammengeführte Segment berechnete PS größer als die Projektionswerte PS ist, die für die anderen zusammengeführten Segmente der Vielzahl von zusammengeführten Segmenten berechnet wurden. Anschließend wird Schritt 1818 durchgeführt, wo das Verfahren 1800 endet oder eine andere Verarbeitung durchgeführt wird.Next, in 1814, the projection value is used to verify that the merged segment is part of the detected object associated with a given image detection mask. Such verification can be done when the projection value is greater than a threshold. Object detection can be performed in 1816 when such verification is performed. In some scenarios, object detection is performed based on the results of operations 1804-1814 for two or more merged segments associated with the same image detection mask. For example, object recognition is performed that a given merged segment of a plurality of merged segments is associated with a given detected object if the PS calculated for the given merged segment is greater than the projection values PS calculated for the other merged segments of the plurality of merged segments were calculated.
Obwohl die vorliegende Lösung in Bezug auf eine oder mehrere Implementierungen veranschaulicht und beschrieben wurde, werden dem Fachmann beim Lesen und Verstehen dieser Beschreibung und den beigefügten Zeichnungen äquivalente Änderungen und Modifikationen auftreten. Obwohl ein bestimmtes Merkmal der vorliegenden Lösung in Bezug auf nur eine von mehreren Implementierungen offenbart worden sein kann, kann dieses Merkmal mit einem oder mehreren anderen Merkmalen der anderen Implementierungen kombiniert werden, wie es für eine gegebene oder bestimmte Anwendung erwünscht und vorteilhaft sein kann. Somit sollte die Breite und der Umfang der vorliegenden Lösung nicht durch irgendeine der oben beschriebenen Ausführungsformen eingeschränkt werden. Vielmehr sollte der Umfang der vorliegenden Lösung gemäß den folgenden Ansprüchen und ihren Äquivalenten definiert werden.Although the present solution has been illustrated and described with respect to one or more implementations, equivalent changes and modifications will occur to those skilled in the art upon reading and understanding this specification and the accompanying drawings. Although a particular feature of the present solution may have been disclosed with respect to only one of several implementations, that feature may be combined with one or more other features of the other implementations as may be desirable and advantageous for a given or particular application. Thus, the breadth and scope of the present solution should not be constrained by any of the above described embodiments are limited. Rather, the scope of the present solution should be defined in accordance with the following claims and their equivalents.
ZITATE ENTHALTEN IN DER BESCHREIBUNGQUOTES INCLUDED IN DESCRIPTION
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.This list of documents cited by the applicant was generated automatically and is included solely for the better information of the reader. The list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions.
Zitierte PatentliteraturPatent Literature Cited
- US 17/078532 [0001]US 17/078532 [0001]
- US 17/078543 [0001]US 17/078543 [0001]
- US 17/078548 [0001]US 17/078548 [0001]
- US 17/078561 [0001]US 17/078561 [0001]
- US 17/078575 [0001]US 17/078575 [0001]
Claims (135)
Applications Claiming Priority (11)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/078,532 | 2020-10-23 | ||
US17/078,575 US11430224B2 (en) | 2020-10-23 | 2020-10-23 | Systems and methods for camera-LiDAR fused object detection with segment filtering |
US17/078,543 US11885886B2 (en) | 2020-10-23 | 2020-10-23 | Systems and methods for camera-LiDAR fused object detection with LiDAR-to-image detection matching |
US17/078,548 US20220128702A1 (en) | 2020-10-23 | 2020-10-23 | Systems and methods for camera-lidar fused object detection with local variation segmentation |
US17/078,532 US20220128700A1 (en) | 2020-10-23 | 2020-10-23 | Systems and methods for camera-lidar fused object detection with point pruning |
US17/078,543 | 2020-10-23 | ||
US17/078,561 US20220126873A1 (en) | 2020-10-23 | 2020-10-23 | Systems and methods for camera-lidar fused object detection with segment merging |
US17/078,575 | 2020-10-23 | ||
US17/078,561 | 2020-10-23 | ||
US17/078,548 | 2020-10-23 | ||
PCT/US2021/054333 WO2022086739A2 (en) | 2020-10-23 | 2021-10-11 | Systems and methods for camera-lidar fused object detection |
Publications (1)
Publication Number | Publication Date |
---|---|
DE112021005607T5 true DE112021005607T5 (en) | 2023-08-24 |
Family
ID=81291747
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE112021005607.7T Pending DE112021005607T5 (en) | 2020-10-23 | 2021-10-11 | Systems and methods for camera-LiDAR-fused object detection |
Country Status (2)
Country | Link |
---|---|
DE (1) | DE112021005607T5 (en) |
WO (1) | WO2022086739A2 (en) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230303084A1 (en) * | 2022-03-23 | 2023-09-28 | Robert Bosch Gmbh | Systems and methods for multi-modal data augmentation for perception tasks in autonomous driving |
CN115035184B (en) * | 2022-06-13 | 2024-05-28 | 浙江大学 | Honey pomelo volume estimation method based on lateral multi-view reconstruction |
CN117706942B (en) * | 2024-02-05 | 2024-04-26 | 四川大学 | Environment sensing and self-adaptive driving auxiliary electronic control method and system |
CN117893412B (en) * | 2024-03-15 | 2024-06-11 | 北京理工大学 | Point cloud data filtering method, device, equipment and storage medium |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10671862B2 (en) * | 2018-01-30 | 2020-06-02 | Wipro Limited | Method and system for detecting obstacles by autonomous vehicles in real-time |
US10726567B2 (en) * | 2018-05-03 | 2020-07-28 | Zoox, Inc. | Associating LIDAR data and image data |
US10491885B1 (en) * | 2018-06-13 | 2019-11-26 | Luminar Technologies, Inc. | Post-processing by lidar system guided by camera information |
-
2021
- 2021-10-11 WO PCT/US2021/054333 patent/WO2022086739A2/en active Application Filing
- 2021-10-11 DE DE112021005607.7T patent/DE112021005607T5/en active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2022086739A2 (en) | 2022-04-28 |
WO2022086739A3 (en) | 2022-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3218890B1 (en) | Hyper-class augmented and regularized deep learning for fine-grained image classification | |
DE112020004139T5 (en) | MAP CREATION AND LOCALIZATION FOR AUTONOMOUS DRIVING APPLICATIONS | |
DE112021005607T5 (en) | Systems and methods for camera-LiDAR-fused object detection | |
US11430224B2 (en) | Systems and methods for camera-LiDAR fused object detection with segment filtering | |
DE112019000122T5 (en) | REAL-TIME DETECTION OF TRACKS AND LIMITATIONS BY AUTONOMOUS VEHICLES | |
DE112019006468T5 (en) | DETECTION OF DISTANCE TO OBSTACLES IN APPLICATIONS WITH AUTONOMOUS MACHINERY | |
DE112021006101T5 (en) | Systems and methods for object detection with LiDAR decorrelation | |
DE112020002602T5 (en) | MULTI-OBJECT TRACKING USING CORRELATION FILTERS IN VIDEO ANALYSIS APPLICATIONS | |
DE112020000413T5 (en) | DETECTION OF ORIENTATION POINTS USING CURVE FITTING FOR APPLICATIONS FOR AUTONOMOUS DRIVING | |
DE112019000048T5 (en) | DETERMINATION OF A ACCESSIBLE CLEARANCE FOR AUTONOMOUS VEHICLES | |
DE112020006426T5 (en) | SYSTEMS AND METHODS FOR VEHICLE NAVIGATION | |
DE112019001657T5 (en) | SIGNAL PROCESSING DEVICE AND SIGNAL PROCESSING METHOD, PROGRAM AND MOBILE BODY | |
US20220128702A1 (en) | Systems and methods for camera-lidar fused object detection with local variation segmentation | |
DE102019118999A1 (en) | LIDAR-BASED OBJECT DETECTION AND CLASSIFICATION | |
US20220128700A1 (en) | Systems and methods for camera-lidar fused object detection with point pruning | |
US20220126873A1 (en) | Systems and methods for camera-lidar fused object detection with segment merging | |
DE102019115455A1 (en) | FOCUS-BASED MARKING OF SENSOR DATA | |
US11885886B2 (en) | Systems and methods for camera-LiDAR fused object detection with LiDAR-to-image detection matching | |
DE112018003986T5 (en) | CONTROL DEVICE, CONTROL PROCEDURE, PROGRAM AND MOBILE UNIT | |
DE102019214628A1 (en) | Validation of surroundings detection using satellite images and SAR radar data | |
DE102021002798A1 (en) | Process for camera-based environment detection | |
DE112021002680T5 (en) | SYSTEMS AND METHODS FOR DETECTING AN OPEN DOOR | |
DE112021006299T5 (en) | Methods and systems for soil segmentation using graph cuts | |
DE102022126706A1 (en) | 3D surface reconstruction with point cloud compression using deep neural networks for autonomous systems and applications | |
DE102022128030A1 (en) | 3D SURFACE RECONSTRUCTION WITH POINT CLOUD COMPENSATION USING ARTIFICIAL INTELLIGENCE FOR AUTONOMOUS SYSTEMS AND APPLICATIONS |