-
HINTERGRUND
-
Querverweis und Prioritätsbeanspruchung
-
Dieses Patentdokument beansprucht die Priorität der US-Patentanmeldung Nr.
17/101,313 , eingereicht am 23. November 2020, die hierin durch Bezugnahme in ihrer Gesamtheit aufgenommen wird.
-
TECHNISCHES GEBIET
-
Die vorliegende Offenbarung bezieht sich allgemein auf Objektdetektionssysteme. Insbesondere betrifft die vorliegende Offenbarung das Implementieren von Systemen und Verfahren zur Objektdetektion mit LiDAR-Dekorrelation.
-
Beschreibung des Standes der Technik
-
Moderne Fahrzeuge weisen mindestens einen Bordcomputer sowie eine Internet/Satelliten-Konnektivität auf. Die auf diesen Bordrechnern ablaufende Software überwacht und/oder steuert den Betrieb der Fahrzeuge. Das Fahrzeug umfasst üblicherweise auch LiDAR-Detektoren zum Erfassen von in der Nähe befindlichen Objekten. 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 Objekttrajektorien sowie der Planungspfade für die Fahrt des Fahrzeugs auf der Grundlage der vorhergesagten Objekttrajektorien zu erstellen.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Die vorliegende Offenbarung betrifft die Implementierung von Systemen und Verfahren zum Betreiben eines autonomen Fahrzeugs (AV). Die Verfahren umfassen: Erhalten, durch eine Rechenvorrichtung, von LiDAR-Daten, die von einem LiDAR-System des autonomen Fahrzeugs erzeugt werden, und von Bilddaten, die von einer Kamera des autonomen Fahrzeugs erzeugt werden; Durchführen, durch die Rechenvorrichtung, eines ersten Objekterkennungsalgorithmus, um erste Objektdetektionsinformationen unter Verwendung der LiDAR-Daten zu erzeugen und eines zweiten Objekterkennungsalgorithmus, um zweite Objektdetektionsinformationen unter Verwendung sowohl der LiDAR-Daten als auch der Bilddaten zu erzeugen; und Verarbeiten der ersten und zweiten Objektdetektionsinformationen durch die Rechenvorrichtung, um zu bestimmen, ob ein gegebenes Objekt sowohl durch den ersten als auch den zweiten Objekterkennungsalgorithmus detektiert wurde.
-
Wenn eine Bestimmung durchgeführt wird, dass das gegebene Objekt nicht durch sowohl den ersten als auch den zweiten Objekterkennungsalgorithmus detektiert wurde, können die zweiten Objekterfassungsinformationen verwendet werden, um mindestens einen autonomen Fahrbetrieb zu ermöglichen bzw. zu erleichtern („facilitate“). Wenn dagegen festgestellt wird, dass das gegebene Objekt sowohl durch den ersten als auch den zweiten Objekterkennungsalgorithmus detektiert wurde, kann die Rechenvorrichtung die erste Objekterfassungsinformation selektiv modifizieren. Die modifizierten ersten Objekterfassungsinformationen können verwendet werden, um mindestens einen autonomen Fahrbetrieb zu ermöglichen bzw. zu erleichtern. Die ersten Objekterfassungsinformationen können verworfen werden.
-
Die ersten Objekterfassungsinformationen können basierend auf Inhalten der zweiten Objekterfassungsinformationen selektiv modifiziert werden. Zum Beispiel werden die ersten Objektdetektionsinformationen selektiv basierend auf (a) einer Gesamtanzahl von Datenpunkten Nopen der LiDAR-Daten modifiziert, die in einem Punktwolkensegment Sopen enthalten sind, das für ein Objekt definiert ist, das durch einen Offene-Welt-(„Open World“)-Erfassungsalgorithmus detektiert wird, und (b) durch eine Gesamtanzahl von Datenpunkten Nclosed der LiDAR-Daten, die in einer Punktwolke enthalten sind, die das Segment Sclosed für ein Objekt definiert, das durch einen Abgeschlossene-Welt-(„Closed World“)-Erfassungsalgorithmus detektiert wird. Eine Größe des Punktwolkensegments Sclosed kann erhöht werden, wenn die Gesamtzahl der Datenpunkte Nopen größer ist als die Gesamtzahl der Datenpunkte Nclosed. Eine Größe des Punktwolkensegments Sclosed kann verringert werden, wenn die Gesamtanzahl von Datenpunkten Nopen kleiner als die Gesamtanzahl von Datenpunkten Nclosed ist.
-
Der erste Objekterkennungsalgorithmus kann einen durch ein neuronales Netzwerk implementierten, Abgeschlossene-Welt-Objekterkennungsalgorithmus umfassen (z.B. einen PointPillars-Algorithmus), der trainiert ist, bestimmte Typen von Objekten zu detektieren. Der zweite Objekterkennungsalgorithmus kann einen Offene-Welt-Objekterkennungsalgorithmus umfassen, der konfiguriert ist, um eine beliebige Art von Objekten zu detektieren (z.B. einen Kamera-LiDAR-Fusionsobjekterkennungsalgorithmus).
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
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 Veranschaulichung 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 in 2 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 auch kollektiv als „6“ bezeichnet) stellen ein Flussdiagramm eines veranschaulichenden Verfahrens zum Steuern eines autonomen Fahrzeugs unter Verwendung von LiDAR-Dekorrelation bereit.
- 7 stellt ein Blockdiagramm bereit, das zum Verständnis der Objektdetektion mit LiDAR-Dekorrelation nützlich ist.
- 8 stellt ein Flussdiagramm eines veranschaulichenden Verfahrens zum Betreiben eines Fahrzeugs gemäß der LiDAR-Dekorrelationstechnik bereit, die in Bezug auf 7 beschrieben ist.
- 9 stellt ein Flussdiagramm eines veranschaulichenden Verfahrens für eine Kamera-LiDAR-Fusion („Camera LiDAR Fusion“, CLF)-Objektdetektion bereit.
- 10 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.
- 11 stellt ein Flussdiagramm eines veranschaulichenden Verfahrens zum Durchführen eines LiDAR-to-Image Detektion (LID)-Anpassungsalgorithmus bereit.
- 12 stellt ein veranschaulichendes Bild bereit, das von einer Kamera eines Fahrzeugs aufgenommen wird.
- 13 stellt ein veranschaulichendes Bild mit einer Vielzahl von Begrenzungsboxen bereit, die darauf überlagert sind.
- 14 stellt ein veranschaulichendes Bild mit einem Begrenzungskasten und einer darauf überlagerten Maske bereit.
- 15 stellt ein Flussdiagramm eines veranschaulichenden Verfahrens zum Bestimmen einer Wahrscheinlichkeitsverteilung von Pixeln bereit, auf die ein LiDAR-Datenpunkt unter Berücksichtigung einer Projektionsunsicherheit projizieren kann.
- 16 stellt ein Flussdiagramm eines veranschaulichenden Verfahrens zum Bestimmen einer Wahrscheinlichkeitsverteilung über einen Satz von Objekterfassungen bereit, in denen sich ein LiDAR-Datenpunkt wahrscheinlich befindet.
- 17 stellt eine Darstellung bereit, die zum Verständnis des neuartigen Algorithmus der lokalen Variationssegmentierung („Local Variation Segmentation“, LVS) gemäß der vorliegenden Lösung nützlich ist.
- 18 stellt eine Darstellung bereit, die einen Graphen zeigt, der während des LVS-Algorithmus von 17 erzeugt wird.
- 19 stellt eine Veranschaulichung einer illustrativen Architektur für einen Segmentmerger bereit.
- 20 stellt ein Flussdiagramm eines veranschaulichenden Verfahrens zur Objektdetektionssegmentfilterung bereit.
-
DETAILLIERTE BESCHREIBUNG
-
Wie in diesem Dokument verwendet, sollen die Singularformen „ein / eine“ bzw. „der / die / das“ jeweils auch die Pluralformen referenzieren, sofern der Kontext nicht eindeutig etwas anderes vorschreibt. 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, soll der Begriff „umfassend“ im Sinne von „einschließend“ verstanden werden, aber nicht beschränkt hierauf. Weitere Begriffe, die für dieses Dokument relevant sind, sind am Ende dieser detaillierten Beschreibung enthalten.
-
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 einer virtuellen Maschine oder einer virtuellen 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.
-
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“, „Datenspeichereinrichtung“ 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.
-
Die Begriffe „Prozessor“ und „Verarbeitungsvorrichtung“ beziehen sich auf eine Hardwarekomponente einer elektronischen Vorrichtung, die konfiguriert ist, um Programmieranweisungen auszuführen. Mit Ausnahme dort, wo spezifisch anders angegeben, soll der Singular-Ausdruck „Prozessor“ oder „Verarbeitungsvorrichtung“ sowohl Einzelverarbeitungsvorrichtungsausführungsformen als auch Ausführungsformen umfassen, in denen mehrere Verarbeitungsvorrichtungen zusammen oder gemeinsam einen Prozess durchführen.
-
Der Begriff „Fahrzeug“ bezieht sich auf eine beliebige bewegliche Beförderungsform, die in der Lage ist, entweder einen oder mehrere menschliche Insassen und/oder Fracht zu tragen, und wird durch eine beliebige Form von Energie versorgt. Der Begriff „Fahrzeug“ beinhaltet, ohne darauf beschränkt zu sein, Autos, Lastkraftwagen, Vans, Züge, autonome Fahrzeuge, Flugzeuge, Luftdrohnen und dergleichen. 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 indem ein menschlicher Bediener das autonome System des Fahrzeugs außer Kraft setzen und die Steuerung des Fahrzeugs übernehmen kann.
-
In diesem Dokument soll, wenn Begriffe wie z.B. „erster“ und „zweiter“ verwendet werden, um ein Nomen zu modifizieren, eine solche Verwendung lediglich dazu bestimmt sein, einen Gegenstand von einem anderen zu unterscheiden, d.h., es soll damit keine sequentielle Reihenfolge impliziert werden, sofern nicht speziell angegeben. Außerdem sollen Begriffe der relativen Position, wie z.B. der Vertikalen bzw. der Horizontalen od. dgl. oder der Vorderseite bzw. der Rückseite, wenn sie vorliegend verwendet werden, relativ zueinander verstanden werden und 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.
-
Die vorliegende Lösung betrifft 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 eines neuartigen Objekterkennungsalgorithmus zum Detektieren eines Objekts innerhalb eines gegebenen Abstands von dem Fahrzeug; Erzeugen mindestens einer möglichen Objekttrajektorie für das Objekt, das detektiert wurde; Verwenden der Fahrzeugtrajektorie und mindestens einer möglichen Objekttrajektorie, um zu bestimmen, ob es ein unerwünschtes Risiko gibt, dass eine Kollision zwischen dem Fahrzeug und dem Objekt auftritt; und Modifizieren der Fahrzeugtrajektorie, wenn eine Bestimmung durchgeführt wird, dass es ein unerwünschtes Risiko gibt, dass die Kollision auftreten wird.
-
Der neuartige Objekterkennungsalgorithmus beinhaltet im Allgemeinen: Durchführen von Abgeschlossene-Welt-Objektdetektionsoperationen unter Verwendung von LiDAR-Daten, um Objekte zu detektieren; Durchführen von Offene-Welt-Objektdetektionsoperationen unter Verwendung von LiDAR-Daten und Bilddaten, um Objekte zu detektieren; und Verwenden der Objekterfassungen, die über die Offene-Welt-Objektdetektionsoperationen vorgenommen werden, um Fehler oder Ungenauigkeiten in den Objekterfassungen zu korrigieren, die unter Verwendung der Abgeschlossene-Welt-Objektdetektionsoperationen erfolgt sind. Die Einzelheiten der Abgeschlossene-Welt-Objekterkennungsoperationen und der Offene-Welt-Objekterkennungsoperationen werden offensichtlich, wenn die Diskussion fortschreitet. Insbesondere können die Offene-Welt-Objekterkennungsoperationen die Durchführung eines neuartigen CLF-Objekterkennungsalgorithmus, der hierin beschrieben ist, beinhalten, sind aber nicht darauf beschränkt.
-
Die vorliegende Lösung wird hierin im Kontext eines autonomen Fahrzeugs beschrieben. Die vorliegende Lösung ist jedoch nicht auf autonome Fahrzeuganwendungen beschränkt. Die vorliegende Lösung kann in anderen Anwendungen, wie Roboteranwendungen, Radarsystemanwendungen, Metrikanwendungen und/oder Systemleistungsanwendungen, verwendet werden.
-
Veranschaulichende Systeme
-
Unter Bezugnahme auf 1 ist eine Veranschaulichung eines illustrativen Systems 100 bereitgestellt. Das System 100 umfasst ein Fahrzeug 1021, das halbautonom oder autonom entlang einer Straße fährt. Das Fahrzeug 1021 wird hierin auch als ein autonomes Fahrzeug („Autonomous Vehicle“, AV) bezeichnet.
-
Das AV 1021 kann ein Landfahrzeug (wie in 1 gezeigt), ein Flugzeug oder ein Wasserfahrzeug beinhalten, ist aber nicht darauf beschränkt.
-
Das AV 1021 ist im Allgemeinen so konfiguriert, dass es Objekte 1022, 114, 116 in dessen Nähe erkennt. Die Objekte können ein Fahrzeug 1022, einen Zweiradfahrer 114 (wie etwa einen Fahrer eines Fahrrads, eines Elektrorollers, eines Motorrads oder dergleichen) und/oder einen Fußgänger 116 beinhalten, sind aber nicht darauf beschränkt. Die Objekterkennung wird gemäß einem neuartigen Objekterkennungsprozess erreicht. Der neue Objekterkennungsprozess wird im Folgenden unter Bezugnahme auf die 7 bis 19 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 ein unerwünschtes Risiko 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 gefolgt 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 unternimmt das AV 1021 keine Aktion oder führt optional ein vorsichtiges Manöver durch (z.B. ein sanftes Verlangsamen). Wenn dagegen die Kollision nicht vermieden werden kann, dann nimmt das AV 1021 sofort ein Notmanöver vor (z.B. Bremsen und/oder Richtungsänderungen).
-
Unter Bezugnahme auf 2 wird eine Veranschaulichung einer illustrativen Systemarchitektur 200 für ein Fahrzeug bereitgestellt. Die Fahrzeuge 1021 und/oder 1022 von 1 können dieselbe oder eine ähnliche Systemarchitektur wie die in 2 gezeigte aufweisen, so dass die folgende Diskussion der Systemarchitektur 200 ausreichend sein dürfte, um das (die) Fahrzeug(e) 1021, 1022 von 1 zu verstehen.
-
Wie in 2 gezeigt, beinhaltet das Fahrzeug 200 eine Brennkraftmaschine oder einen Motor 202 und verschiedene Sensoren 204-218 zum Messen verschiedener Parameter des Fahrzeugs. Bei benzinbetriebenen oder bei Hybridfahrzeugen, die einen mit Kraftstoff betriebenen Motor aufweisen, können die Sensoren beispielsweise einen Motortemperatursensor 204, einen Batteriespannungssensor 206, einen Motorrotationen-pro-Minute-(RPM, Drehzahl pro Minute)-Sensor 208 und einen Drosselpositionssensor 210 beinhalten. Wenn das Fahrzeug ein Elektro- oder Hybridfahrzeug ist, kann das Fahrzeug einen Elektromotor aufweisen und dementsprechend Sensoren, wie etwa ein Batterieüberwachungssystem 212 aufweisen (um Strom, Spannung und/oder Temperatur der Batterie zu messen), ferner Motorstrom- und Spannungs-Sensoren 214, 216 sowie Motorpositionssensoren, wie Resolver und Codierer 218.
-
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 oder einen Taktgeber 242 aufweisen, den das System verwendet, um die Fahrzeugzeit während des Betriebs zu bestimmen. Der Taktgeber 242 kann in dem Fahrzeug-Bordcomputergerät codiert sein, es kann sich aber auch um eine separate Vorrichtung handeln, oder es können mehrere Taktgeber verfügbar sein.
-
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“, GPS); 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.
-
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: Ein Bremsen über eine Bremssteuerung 232; die Fahrtrichtung über eine Lenksteuerung 224; die Geschwindigkeit und Beschleunigung über eine Drosselsteuerung 226 (in einem kraftstoffbetriebenen Fahrzeug) oder über eine Motordrehzahlsteuerung 228 (wie etwa eine Strompegelsteuerung in einem Elektrofahrzeug); eine Differentialgetriebesteuerung 230 (in Fahrzeugen mit Getrieben) und/oder andere Steuerungen.
-
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 den Standortinformationen entspricht, um bekannte feste Merkmale der Umgebung zu bestimmen, wie etwa Straßen, Gebäude, Stoppschilder und/oder Stop/Go-Signale. Erfasste Bilder von den Kameras 262 und/oder Objekterfassungsinformationen, die von Sensoren wie dem 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 zukünftig bekannt werdende Technik zur Herstellung einer Objektdetektion basierend auf Sensordaten und/oder erfassten Bildern kann in den in diesem Dokument offenbarten Ausführungsformen verwendet werden.
-
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.
-
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 das Risiko einer Kollision zwischen dem Objekt und dem AV zu bewerten. Wenn das Risiko 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 einer vordefinierten Zeitperiode (z.B. N Millisekunden) durchgeführt werden. Wenn die Kollision vermieden werden kann, kann die bordeigene Rechenvorrichtung 220 bewirken, dass das Fahrzeug 200 ein vorsichtigeres Manöver durchführt (z.B. schwach Verlangsamen, Beschleunigen oder Ausweichen). 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 Fahrtrichtungsänderungen) vorzunehmen.
-
Unter Bezugnahme auf 3 ist eine Veranschaulichung eines illustrativen LiDAR-Systems 300 bereitgestellt. Das LiDAR-System 264 von 2 kann das gleiche sein wie oder im Wesentlichen ähnlich dem LiDAR-System 300. Als solches dürfte die Diskussion des LiDAR-Systems 300 ausreichend sein, um das LiDAR-System 264 von 2 zu verstehen.
-
Wie in 3 gezeigt, umfasst das LiDAR-System 300 ein Gehäuse 306, das um 360° um eine Mittelachse drehbar sein kann, wie beispielsweise eine Nabe oder Achse 316. Das Gehäuse kann eine Emitter-/ Empfängeröffnung 312 umfassen, die aus einem für Licht transparenten Material hergestellt ist. Obwohl in 2 eine einzelne Apertur gezeigt ist, ist die vorliegende Lösung in dieser Hinsicht nicht beschränkt. In anderen Szenarien können mehrere Öffnungen zum Emittieren und/oder Empfangen von Licht bereitgestellt werden. Entweder kann das LiDAR-System 300 Licht durch eine oder mehrere der Aperturen 312 emittieren und reflektiertes Licht zurück in Richtung einer oder mehrerer der Aperturen 211 empfangen, wenn sich das Gehäuse 306 um die internen Komponenten dreht. In alternativen Szenarien kann die Außenhülle des Gehäuses 306 eine stationäre Kuppel sein, die zumindest teilweise aus einem Material hergestellt ist, das für Licht transparent ist, mit drehbaren Komponenten innerhalb des Gehäuses 306.
-
Innerhalb der rotierenden Schale oder der stationären Kuppel ist ein Lichtemittersystem 304 positioniert, das konfiguriert 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 von im Wesentlichen derselben Intensität oder von variierenden Intensitäten emittieren. Die von dem Lichtemittersystem 304 emittierten Einzelstrahlen haben einen wohldefinierten Polarisationszustand, der nicht über die gesamte Anordnung 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 können sich mit der rotierenden Schale drehen, oder sie können 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.
-
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 unten 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.
-
Optional kann jede optische Elementstruktur 310 einen Strahlteiler beinhalten, der das Licht, das das System 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).
-
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 ausgebildet 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.
-
Unter Bezugnahme auf 4 ist eine Veranschaulichung einer illustrativen Architektur für eine Rechenvorrichtung 400 bereitgestellt. Die Rechenvorrichtung 110 von 1 und/oder die fahrzeuginterne Rechenvorrichtung 220 von 2 ist/sind dieselben wie oder ähnlich der Rechenvorrichtung 300. Daher erscheint eine Diskussion der Rechenvorrichtung 300 ausreichend, um die Rechenvorrichtung 110 aus 1 und die fahrzeuginterne Rechenvorrichtung 220 aus 2 zu verstehen.
-
Die Rechenvorrichtung 400 kann mehr oder weniger Komponenten als die in 4 gezeigten beinhalten, jedoch sind die gezeigten Komponenten ausreichend, um eine veranschaulichende Lösung zur Implementierung der vorliegenden Lösung zu offenbaren. Die Hardware-Architektur von 4 stellt eine Implementierung einer repräsentativen Rechenvorrichtung dar, die konfiguriert ist, um ein Fahrzeug zu betreiben, wie hierin beschrieben. Somit implementiert die Rechenvorrichtung 400 von 4 zumindest einen Teil des hierin beschriebenen Verfahrens oder der beschriebenen Verfahren.
-
Einige oder alle Komponenten der Rechenvorrichtung 400 können als Hardware, Software und/oder 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.
-
Wie in 4 gezeigt, umfasst die Rechenvorrichtung 400 eine Benutzerschnittstelle 402, eine zentrale Verarbeitungseinheit („Central Processing Unit“, CPU) 406, einen Systembus 410, einen Speicher 412, der mit anderen Teilen der Rechenvorrichtung 400 über den Systembus 410, eine Systemschnittstelle 460 und Hardwareeinheiten 414, die mit dem Systembus 410 verbunden sind, verbunden ist und von diesen zugänglich ist. Die Benutzerschnittstelle kann Eingabevorrichtungen und Ausgabevorrichtungen beinhalten, die Benutzersoftware-Interaktionen zum Steuern von Operationen der Rechenvorrichtung 400 erleichtern. Die Eingabevorrichtungen beinhalten unter anderem eine physische und/oder Berührungstastatur 450. Die Eingabevorrichtungen können über eine drahtgebundene oder drahtlose Verbindung (z.B. eine Bluetooth®-Verbindung) mit der Rechenvorrichtung 400 verbunden sein. Die Ausgabevorrichtungen umfassen, ohne darauf beschränkt zu sein, einen Lautsprecher 452, eine Anzeige 454 und/oder Leuchtdioden 456. Die Systemschnittstelle 460 ist konfiguriert, um drahtgebundene oder drahtlose Kommunikationen zu und von externen Vorrichtungen (z.B. Netzwerkknoten, wie Zugangspunkten usw.) zu ermöglichen bzw. zu erleichtern.
-
Zumindest einige der Hardware-Entitäten 414 führen Aktionen aus, die Zugriff auf die Speicher bzw. die Verwendung des Speichers 412 beinhalten, der ein Direktzugriffsspeicher („Random Access Memory“, RAM), 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 Laufwerksantriebseinheit 416 umfassen, die ein computerlesbares Speichermedium 418 umfasst, auf dem ein oder mehrere Sätze von Anweisungen 420 gespeichert sind (z.B. Softwarecode), der konfiguriert ist, um eine oder mehrere der folgenden Methodologien, Prozeduren oder Funktionen zu implementieren, die hierin beschrieben sind. 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.
-
Unter Bezugnahme auf 5 wird ein Blockdiagramm bereitgestellt, das zum Verständnis nützlich ist, wie die Fahrzeugsteuerung gemäß der vorliegenden Lösung erreicht wird. Alle in den Blöcken 502-518 durchgeführten Operationen können durch die bordeigene Rechenvorrichtung eines Fahrzeugs (z.B. des AV 1021 von 1) durchgeführt werden.
-
In Block 502 wird ein Standort des Fahrzeugs erfasst. Diese Detektion kann basierend auf Sensordaten erfolgen, die von einem Standortsensor (z.B. dem Standortsensor 248 aus 2) des Fahrzeugs ausgegeben werden. Diese Sensordaten können GPS-Daten beinhalten, sind aber nicht darauf beschränkt. Der erfasste Standort des Fahrzeugs wird dann zu Block 506 weitergeleitet.
-
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. dem LiDAR-System 264 aus 2) und einer Kamera (z.B. der Kamera 262 von 2) des Fahrzeugs ausgegeben werden. Die Art und Weise, mit der die Objekterkennung erreicht wird, wird offensichtlich, wenn die Diskussion fortschreitet. Informationen über das detektierte Objekt werden zu Block 506 weitergeleitet. Diese Information umfasst, ohne darauf beschränkt zu sein, eine Spur („Track“) (oder räumliche Beschreibung) des detektierten Objekts. Die Spur (oder räumliche Beschreibung) kann eine anfängliche vorhergesagte Trajektorie des Objekts, eine Geschwindigkeit des Objekts, eine vollständige Ausdehnung des Objekts, einen Kurs des Objekts, eine Bewegungsrichtung des Objekts und/oder eine Klassifizierung des Objekts umfassen. Die volle Ausdehnung des Objekts und der Kurs des Objekts können durch einen Quader spezifiziert werden, der in einem 3D-Graphen definiert ist, auf dem die LiDAR-Datenpunkte aufgetragen sind. Die aufgetragenen LiDAR-Datenpunkte bilden eine 3D-Punktwolke. Die anfängliche vorhergesagte Objekttrajektorie kann einen linearen Pfad beinhalten, der in die Kursrichtung des Quaders zeigt, ist aber nicht darauf beschränkt.
-
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 bzw. zu ermöglichen. Zum Beispiel kann ein Quader für das erfasste Objekt in einem 3D-Graphen definiert werden, der einen LiDAR-Datensatz umfasst. 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, objektiv prognostizierte Trajektorie 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.
-
In Block 506 wird eine Fahrzeugtrajektorie unter Verwendung der Informationen von den Blöcken 502 und 504 erzeugt. Techniken zum Bestimmen einer Fahrzeugtrajektorie sind in der Technik wohlbekannt. Jede bekannte oder zukünftig bekannt werdende 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, wobei der Quader eine Kursrichtung aufweist, die mit der Richtung ausgerichtet ist, in der sich das AV bewegt, und der Quader eine Länge aufweist, 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 Pfad darstellen, der keine abrupten Änderungen aufweist, die ansonsten ein Unbehagen des Insassen bewirken würden. Zum Beispiel 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 508 wird ein Lenkwinkel- und Geschwindigkeitsbefehl basierend auf der Fahrzeugtrajektorie 520 erzeugt. Der Lenkwinkel- und Geschwindigkeitsbefehl wird für den Block 510 zur Fahrdynamikregelung bereitgestellt.
-
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 Sicherheit bei, wenn ein Worst-Case-Verhalten auftritt. Dieser zusätzliche Überwachungsschichtprozess 550 wird durch die Blöcke 512-518 implementiert.
-
Wie in 5 gezeigt, wird in Block 504 eine Objektklassifizierung durchgeführt, um das detektierte Objekt in eine aus einer Vielzahl von Klassen und/oder Unterklassen zu klassifizieren. Die Klassen können eine Fahrzeugklasse und eine Fußgängerklasse beinhalten, sind aber nicht darauf beschränkt. Die Fahrzeugklasse kann eine Vielzahl von Fahrzeugunterklassen aufweisen. Die Fahrzeugunterklassen können eine Fahrradunterklasse, eine Motorradunterklasse, eine Skateboard-Unterklasse, eine Rollerblade-Unterklasse, eine Rollerunterklasse, eine Limousinen-Unterklasse, eine SUV-Unterklasse und/oder eine Lkw-Unterklasse umfassen, sind aber nicht darauf beschränkt. Die Objektklassifizierung wird basierend auf Sensordaten durchgeführt, die von einem LiDAR-System (z.B. dem LiDAR-System 264 von 2) und/oder einer Kamera (z.B. der Kamera 262 von 2) des Fahrzeugs erzeugt werden. Techniken zum Klassifizieren von Objekten auf der Basis von LiDAR-Daten und/oder Bilddaten sind im Stand der Technik wohlbekannt. Jede bekannte oder zukünftig bekannt werdende Objektklassifizierungstechnik kann hierin ohne Einschränkung verwendet werden. Informationen 530, die die Klassifizierung des Objekts spezifizieren, werden dem Block 512 bereitgestellt, zusätzlich zu den Informationen 532, die die tatsächliche Geschwindigkeit und Fahrtrichtung des Objekts angeben.
-
Block 512 beinhaltet das Bestimmen einer oder mehrerer möglicher Objekttrajektorien für das Objekt, das in 504 erkannt 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 die 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-10 Meilen pro Stunde bzw. ca. 3.2 km/h bis 16.1 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-10 Meilen pro Stunde bzw. ca. 3.2 km/h bis 16.1 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.
-
Die mögliche Geschwindigkeit(en) und/oder die mögliche(n) Richtung(en) der Fahrt können für Objekte in derselben Klasse und/oder Unterklasse wie 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.
-
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 zu Block 514 geleitet, anstatt alle möglichen Objekttrajektorien, die in 512 bestimmt wurden.
-
In Block 514 wird eine Kollisionsprüfung für jede der möglichen Objekttrajektorien 522 durchgeführt, die an Block 514 weitergeleitet werden. Die Kollisionsprüfung beinhaltet das Bestimmen, ob es ein unerwünschtes Risiko 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 gegebene mögliche Objekttrajektorie 522 schneiden. Wenn sich die beiden Trajektorien 520, 522 nicht schneiden, dann wird die Fahrzeugtrajektorie 520 als eine sichere Fahrzeugtrajektorie angesehen und es wird keine Sicherheitssteuerungsmaßnahme ergriffen, um die Fahrzeugtrajektorie zu modifizieren.
-
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 sichere Fahrzeugtrajektorie angesehen und es wird keine Sicherheitssteuermaßnahme ergriffen, um die Fahrzeugtrajektorie zu modifizieren.
-
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) eines von mehreren dynamisch erzeugte Notmanöver 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 eine Kollision 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.
-
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 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-Punkte für Lenkung und 3 Spline-Punkte für Geschwindigkeit); Minimieren einer Zielfunktion, die Kollisions- und/oder Fahrunannehmlichkeiten bestraft, in Abhängigkeit von diesen Parametern unter Verwendung eines konjugierten Gradientenabstiegs, eines Newton-Verfahrens, eines Powell-Verfahrens oder einem oder mehrerer anderer bekannter Verfahren zum Minimieren multivarianter Funktionen; und Berechnung der Trajektorie entsprechend den parametrisierten Spline-Punkten mit den minimalen objektiven Funktionskosten. Die vorliegende Lösung ist nicht auf die Einzelheiten dieser Szenarien beschränkt.
-
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. Die Lenkmomente 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.
-
Wenn bestimmt wird, dass die Kollision in der vordefinierten Zeitspanne vermieden werden kann, dann wird die Fahrzeugtrajektorie 520 als eine sichere Fahrzeugtrajektorie angesehen, und es wird keine Sicherheitssteuermaßnahme ergriffen, um die Fahrzeugtrajektorie zu modifizieren. Alternativ wird das AV veranlasst, ein vorsichtiges Manöver durchzuführen (z.B. schwach verlangsamen, wie etwa um 5 - 10 mph bzw. um ca. 8.0 km/h bis ca. 16.1 km/h). Techniken, um ein AV zu veranlassen, ein vorsichtiges Manöver, wie zum Beispiel ein Verlangsamen, vorzunehmen, sind im Stand der Technik wohlbekannt Zum Beispiel wird ein Sicherheitssteueraktionsbefehl erzeugt, wie bei 516 gezeigt, und dieser wird verwendet, um die Fahrzeugtrajektorie bei 508 einzustellen oder anderweitig zu modifizieren, bevor zum Block 510 weitergeleitet wird. Die Fahrzeugtrajektorie kann eingestellt oder anderweitig modifiziert werden, um zu bewirken, dass das Fahrzeug verzögert wird, dass das Fahrzeug dazu veranlasst wird, zu beschleunigen und/oder, dass das Fahrzeug dazu veranlasst wird, seine Fahrtrichtung zu ändern.
-
Wenn im Gegensatz dazu bestimmt wird, dass die Kollision nicht in der vordefinierten Zeitperiode vermieden werden kann, dann wird das AV veranlasst, sofort ein Notmanöver einzuleiten. Dieses Notmanöver kann eines der dynamisch erzeugten Notmanöver beinhalten, die oben erörtert wurden. Techniken, um ein AV zu veranlassen, Notfallmanöver zu ergreifen, sind im Stand der Technik wohlbekannt
-
Fahrzeugsteuerung
-
Unter Bezugnahme auf 6 ist ein Flussdiagramm eines veranschaulichenden Verfahrens 600 zum Steuern eines Fahrzeugs (z.B. des Fahrzeugs 1021 von 1) bereitgestellt. Zumindest ein Teil des Verfahrens 600 wird durch eine fahrzeuginterne Rechenvorrichtung (z.B. die fahrzeuginterne Rechenvorrichtung 220 aus 2) durchgeführt. Das Verfahren 600 wird für jedes Objekt (z.B. das Fahrzeug 1022 von 1, den Radfahrer 104 von 1 und/oder den Fußgänger 106 aus 1) durchgeführt, bei dem zu beliebiger Zeit erfasst wurde, dass es sich innerhalb eines Entfernungsbereichs von dem Fahrzeug befindet.
-
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 6 gezeigt sind. Zum Beispiel können die Operationen 620 parallel zu den Operationen von 604-618 durchgeführt werden, anstatt danach, wie in 6 gezeigt.
-
Wie in 6A gezeigt, beginnt das Verfahren 600 mit 602 und fährt mit 604 fort, wo eine Fahrzeugtrajektorie (z.B. die Fahrzeugtrajektorie 520 von 5) für ein AV erzeugt wird. Die Fahrzeugtrajektorie stellt einen „glatten“ Weg dar, der keine abrupten Änderungen aufweist, die ansonsten ein Unbehagen des Insassen auslösen würden. Techniken zum Bestimmen einer Fahrzeugtrajektorie sind im Stand der Technik wohlbekannt. Jede bekannte oder zukünftig bekannt werdende Technik zum Bestimmen einer Fahrzeugtrajektorie kann hierin ohne Einschränkung verwendet werden. In einigen Szenarien wird die Fahrzeugtrajektorie basierend auf Standortinformationen bestimmt, die durch einen Standortsensor (z.B. den Standortsensor 260 von 2) des AV erzeugt werden, auf Objekterfassungsinformationen, die durch die bordeigene Rechenvorrichtung (z.B. durch die bordeigene Rechenvorrichtung 220 von 2) des AV erzeugt werden, von Bildern, die von mindestens einer Kamera (z.B. der Kamera 262 von 2) des AV aufgenommen werden, und Karteninformationen, die in einem Speicher (z.B. dem Speicher 412 von 4) des AV gespeichert sind. In anderen Szenarien werden Spurinformationen alternativ oder zusätzlich zu den Ortsinformationen und/oder Karteninformationen verwendet.
-
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 neuartiger Objekterkennungsalgorithmus wird in 605 verwendet. Der neuartige Objekterkennungsalgorithmus wird nachstehend ausführlich beschrieben. Die Objekterkennung wird verwendet, um mindestens eine autonome Fahroperation zu erleichtern bzw. zu ermöglichen (z.B. Objektverfolgungsoperationen, Objekttrajektorienvorhersageoperationen, Fahrzeugtrajektorienbestimmungsoperationen und/oder Kollisionsvermeidungsoperationen). Zum Beispiel kann ein Quader 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.
-
Dementsprechend fährt das Verfahren 600 mit 606 fort, wo eine oder mehrere mögliche Objekttrajektorien (z.B. die möglichen Objekttrajektorien 522 von 5) für das Objekt (z.B. das Fahrzeug 1022, den Radfahrer 104 oder den Fußgänger 106 von 1) bestimmt werden, die in 605 erkannt werden. Die möglichen Objekttrajektorien können die folgenden Trajektorien beinhalten, 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 die tatsächliche Fahrtrichtung definiert ist (z.B. nach Westen); 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) definiert ist; eine Trajektorie, die durch eine andere mögliche Geschwindigkeit für das Objekt (z.B. 2-10 Meilen pro Stunde bzw. ca. 3.2 km/h bis 16.1 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 definiert ist (z.B. , 2-10 Meilen pro Stunde bzw. ca. 3.2 km/h bis 16.1 km/h) und eine andere mögliche Fahrtrichtung (z.B. Süd oder Süd-West oder X (z.B. 40°) Grad von der tatsächlichen Fahrtrichtung des Objekts in einer Richtung zu dem AV). Die mögliche(n) Geschwindigkeit(en) und/oder die mögliche(n) Richtung(en) der Fahrt können für Objekte in derselben Klasse und/oder Unterklasse als das Objekt vordefiniert werden.
-
Als nächstes wird in 608 eine der möglichen Objekttrajektorien für eine nachfolgende Analyse ausgewählt. In einigen Szenarien werden die Operationen von 610-628 (z.B. in einer iterativen oder parallelen Weise) für jede mögliche Objekttrajektorie durchgeführt, 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 den Geschwindigkeitssensor 238 von 2 und/oder den Positionssensor 260 von 2 erzeugt). Ein Worst-Case-Kollisionsszenario kann, ohne darauf beschränkt zu sein, ein Kollisionsszenario beinhalten, das früher auftreten sollte als alle anderen Kollisionsszenarien, die durch die möglichen Objekttrajektorien bereitgestellt werden, und/oder erwartet wird, dass es zu schwerwiegenden Verletzungen oder zum Tod führt (z.B. eine Hochgeschwindigkeits-Seitenaufprallkollision oder eine Hochgeschwindigkeits-Frontalkollision). In noch anderen Szenarien werden die Operationen 610-628 für zwei oder mehr der möglichen Objekttrajektorien durchgeführt, die die Top-Z (z.B. 2 oder 5) Worst-Case-Kollisionsszenarien für das AV bereitstellen. Z ist eine ganze Zahl, die gemäß einer bestimmten Anwendung ausgewählt wird. Die vorliegende Lösung ist nicht auf die Einzelheiten dieser Szenarien beschränkt.
-
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.
-
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 der Fahrzeugtrajektorie von dem AV gefolgt wird und das Objekt der möglichen Objekttrajektorie folgt. Der in 614 bestimmte Zeitwert wird dann mit einem Schwellenzeitwert verglichen, wie bei 616 gezeigt. Der Schwellenzeitwert wird gemäß einer gegebenen Anwendung ausgewählt (z.B. eine oder mehrere Sekunden). Wenn der Zeitwert größer als der Schwellenzeitwert [616: NEIN] ist, 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 den Schritten 620-622 fort. 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 Zeitperiode (z.B. N Millisekunden) durchgeführt wird. Nach Abschluss 622 fährt das Verfahren 600 mit 624 von 6B fort.
-
Unter Bezugnahme auf 6B wird, wenn die Kollision nicht in der vordefinierten Zeitperiode [624: NEIN] vermieden werden kann, 626 durchgeführt, wo das AV veranlasst wird, sofort ein Notmanöver vorzunehmen. Das Notmanöver kann, ohne darauf beschränkt zu sein, eines der dynamisch erzeugten Notmanöver beinhalten, die oben in Bezug auf 620 erörtert wurden. Jede bekannte oder zukünftig bekannt werdende Technik zum Veranlassen eines AV zur Aufnahme von Notfallmanövern kann hier verwendet werden. Anschließend wird Schritt 630 durchgeführt, wo das Verfahren 600 endet oder eine andere Verarbeitung durchgeführt wird.
-
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 vorsichtiges Manöver durchzuführen (z.B. ein schwaches Verlangsamen). Techniken, um ein AV zu veranlassen, ein vorsichtiges Manöver zu ergreifen, wie zum Beispiel ein Verlangsamen, sind im Stand der Technik wohlbekannt. Jede bekannte oder zukünftig bekannt werdende Technik, um ein AV zu veranlassen, ein vorsichtiges Manöver aufzunehmen, kann hier verwendet werden. Anschließend wird Schritt 630 durchgeführt, wo das Verfahren 600 endet oder eine andere Verarbeitung durchgeführt wird.
-
Objektdetektion mit LiDAR-Dekorrelation
-
Die folgende Diskussion ist auf eine neue Lösung zum Detektieren von Objekten gerichtet. Diese neuartige Lösung kann durch eine Rechenvorrichtung (z.B. die fahrzeuginterne Rechenvorrichtung 220 von 2 und/oder die Rechenvorrichtung 400 von 4) in Block 504 von 5 und/oder in Block 605 von 6 durchgeführt werden. Die neue Lösung wird hierin als eine Lösung für eine Hybridobjekterkennung bezeichnet, da diese sowohl eine abgeschlossene Objektdetektionstechnik als auch eine Objektdetektionstechnik mit „offener Welt“ einsetzt.
-
Es wird nunmehr auf 7 Bezug genommen, in der ein Blockdiagramm für einen veranschaulichenden Objektdetektor 700 dargestellt ist, der die neuartige Lösung für eine Hybridobjekterkennung implementiert. Der Objektdetektor 700 kann eine Rechenvorrichtung (z.B. die fahrzeuginterne Rechenvorrichtung 220 von 2 und/oder eine Rechenvorrichtung 400 von 4) umfassen. Insbesondere läuft ein Abgeschlossene-Welt-Objektdetektor schneller und effizienter als ein Offene-Welt-Objektdetektor. Der Detektor des Abgeschlossene-Welt-Objektdetektors detektiert jedoch nur Objekte, die darauf trainiert wurden, detektiert zu werden. Im Gegensatz dazu detektiert der Offene-Welt-Objektdetektor jedes Objekt. Die Objekterfassungen, die durch den Offene-Welt-Objektdetektor vorgenommen werden, sind weniger genau als die Detektionen, die durch den Abgeschlossene-Welt-Objektdetektor vorgenommen werden. Somit werden beide Arten von Objektdetektoren von dem Objektdetektor 700 verwendet.
-
Insbesondere führt der Objektdetektor 700 keine naive Fusion der Ergebnisse aus der Abgeschlossene-Welt-Objekterkennung mit der Offene-Welt-Objekterkennung aus. Eine derartige naive Fusion würde zu möglichen Verzerrungen in den Objekterfassungsdaten aufgrund einer doppelten Zählung der Informationen führen, die in den Rohsensordaten vorhanden sind. Somit verwendet der Objektdetektor 700 keine solche naive Fusion, sondern kombiniert effektiv die Vorteile niedriger Latenz und hoher Genauigkeit eines Abgeschlossene-Welt-Detektors mit der Sicherheit und Vollständigkeit eines Offene-Welt-Detektors. Der Objektdetektor 700 zählt die Information in den Rohsensordaten nicht doppelt, lässt keine relevanten Informationen aus den Rohsensordaten fallen, hat im Vergleich zu herkömmlichen Lösungen eine verbesserte Gesamtdetektionsgenauigkeit und eine reduzierte Ende-zu-Ende-Verfolgungslatenz im Vergleich zu herkömmlichen Lösungen.
-
Während der Operationen empfängt der Objektdetektor 700 LiDAR-Daten 702 von einem LiDAR-System (z.B. von dem LiDAR-System 264 von 2) und Bilddaten 704 von einer Kamera (z.B. von der Kamera 262 von 2). Die LiDAR-Daten 702 werden sowohl einer ersten Detektionspipeline 750 als auch einer zweiten Detektionspipeline 752 bereitgestellt. Die Bilddaten 704 werden der zweiten Detektionspipeline 752 bereitgestellt. Die erste Detektionspipeline 750 implementiert im Allgemeinen eine Abgeschlossene-Welt-Objektdetektionstechnik, und die zweite Detektionspipeline 752 implementiert im Allgemeinen eine Offene-Welt-Detektionstechnik.
-
Die erste Detektionspipeline 750 umfasst einen Abgeschlossene-Welt-Objektdetektor 710, ein Datenzuordnungsmodul 714 und ein Registrierungsmodul 718. Der Abgeschlossene-Welt-Objektdetektor 710 führt einen Abgeschlossene-Welt-Objekterkennungsalgorithmus unter Verwendung der LiDAR-Daten 702 aus, um Objekte in der oder den Punktwolke(n) zu detektieren. Abgeschlossene-Welt-Objekterkennungsalgorithmen sind im Stand der Technik wohlbekannt. Dabei kann jeder bekannte oder zukünftig bekannt werdende Objekterkennungsalgorithmus verwendet werden. Zum Beispiel implementiert der Abgeschlossene-Welt-Objektdetektor 710 einen Objekterkennungsalgorithmus unter Verwendung eines tiefen neuronalen Netzes, wie zum Beispiel einen PointPillars-Objekterkennungsalgorithmus. Ein PointPillars-Objekterkennungsalgorithmus beinhaltet im Allgemeinen: Analysieren von Datenpunkten einer LiDAR-Punktwolke, um Objekte darin zu detektieren; Definieren eines Punktwolkensegments S für jedes der detektierten Objekte; und Zuweisen einer Klassifizierung zu jedem der detektierten Objekte oder Punktwolkensegmente. Das Punktwolkensegment S umfasst eine Vielzahl von Datenpunkten in der LiDAR-Punktwolke. Das Punktwolkensegment S kann als {P1, P2, ..., Pn} definiert werden, wobei jedes Symbol P1, P2 und Pn einen gegebenen Datenpunkt in der LiDAR-Punktwolke darstellt.
-
Der PointPillars-Objekterkennungsalgorithmus detektiert nur Objekte, die trainiert wurden (z.B. ein Fahrzeug 1022 von 1 oder einen Radfahrer 114 von 1). Als solche werden andere Objekte (z. B. ein Fußgänger 116 von 1) nicht durch den PointPillars-Objekterkennungsalgorithmus detektiert. Der Objekt-detektor 710 der abgeschlossenen Welt nimmt an, dass die Datenpunkte der LiDAR-Punktwolke, die den nicht detektierten Objekten zugeordnet sind, Hintergrund oder Hintergrundrauschen darstellen und verwirft diese daher. Dieses Datenpunktverwerfen ist nicht wünschenswert, da es zu dem Fallenlassen von relevanten Informationen in den Rohsensordaten führt, und daher die Objektvermeidung und die Fahrzeugtrajektorienerzeugung durch ein AV (z.B. durch das AV 1021 von 1) negativ beeinflussen kann.
-
Informationen 724, die die Objekterkennung(en) definieren, die durch den Abgeschlossene-Welt-Objektdetektor 710 vorgenommen wurden, werden zu einem Datenzuordnungsmodul 714 weitergeleitet. Diese Informationen umfassen, ohne darauf beschränkt zu sein, Punktwolkensegmentkennungen, Punktwolkensegmentdefinitionen (d.h., welche Datenpunkte in jedem Punktwolkensegment enthalten sind), Objektklassifizierungen, die den Punktwolkensegmenten zugewiesen sind, und LiDAR-Daten für die Datenpunkte, die in den Punktwolkensegmenten enthalten sind.
-
Das Datenzuordnungsmodul 714 ist konfiguriert, Objektdetektionen oder Punktwolkensegmente mit Spuren (oder räumlichen Beschreibungen) für Objekte zu assoziieren. Spuren (oder räumliche Beschreibungen) für Objekte sind wohlbekannt. In einigen Szenarien kann jede Spur (oder räumliche Beschreibung) eine anfängliche vorhergesagte Trajektorie des Objekts, eine Geschwindigkeit des Objekts, eine vollständige Ausdehnung des Objekts, einen Kurs des Objekts, eine Bewegungsrichtung des Objekts und/oder eine Klassifizierung des Objekts umfassen. Die volle Ausdehnung des Objekts und der Kurs des Objekts können durch einen Quader spezifiziert werden, der in einem 3D-Graphen definiert ist, auf dem die LiDAR-Datenpunkte aufgetragen sind. Die aufgetragenen LiDAR-Datenpunkte bilden eine 3D-Punktwolke. Die anfängliche vorhergesagte Objekttrajektorie kann einen linearen Pfad beinhalten, der in die Kursrichtung des Quaders zeigt, ist aber nicht darauf beschränkt. Techniken zum Erzeugen von Spuren (oder räumlichen Beschreibungen) sind wohlbekannt.
-
Die Spuren (oder räumlichen Beschreibungen) und/oder zugehörige Informationen (z.B. Spurkennungen) können durch das Datenzuordnungsmodul 714 aus einem Datenspeicher (z.B. dem Datenspeicher 112 von 1 und/oder dem Speicher 412 von 4) erhalten werden. Sobald die Spuren und/oder die zugehörigen Informationen erhalten werden, sind die Punktwolkensegmente zumindest auf ihren zuvor zugewiesenen Objektklassifizierungen derselben zugeordnet. Beispielsweise sind Datenpunkte, die in einem Punktwolkensegment mit einer Fahrzeugklassifizierung enthalten sind, Spuren für ein zuvor erfasstes Fahrzeug zugeordnet. Datenpunkte, die in einem Punktwolkensegment mit einer Radfahrerklassifizierung enthalten sind, sind Spuren für einen zuvor detektierten Radfahrer zugeordnet, und so weiter. Die vorliegende Lösung ist nicht auf die Einzelheiten dieses Beispiels beschränkt.
-
In einigen Szenarien werden die Datenzuordnungen unter Verwendung eines wohlbekannten Quickmatch-Algorithmus durchgeführt, der 1:1-Zuweisungen durchführt, d.h., ein Punktwolkensegment wird nur einer Spur für ein einzelnes erfasstes Objekt zugewiesen. Informationen, die die Spurzuweisungen spezifizieren, werden bei 724 hinzugefügt, um modifizierte Informationen 726 zu erzeugen. Die modifizierten Informationen 726 werden dem Registrierungsmodul 718 bereitgestellt.
-
Das Registrierungsmodul 718 führt eine Punktwolkenregistrierung durch. In dieser Hinsicht verarbeitet das Registrierungsmodul 718 LiDAR-Punktwolken, die aus verschiedenen Blickpunkten erhalten werden, um eine starre Körpertransformation zu lösen, die die zwei LiDAR-Punktwolken ausrichtet. In einigen Szenarien wird die Punktwolkenregistrierung, die in der
US-Patentanmeldung 16/352,172 (veröffentlicht unter
US 10 891 744 B1 ) beschrieben ist, durch das Registrierungsmodul 718 implementiert. Der Inhalt dieser Patentanmeldung wird hierin durch Bezugnahme aufgenommen.
-
Die Objektdetektionsinformationen 728 werden dann von dem Registrierungsmodul 718 an ein Korrekturmodul 720 und einen Spurfiltermanager 722 geliefert. Operationen des Korrekturmoduls 720 und des Spurfiltermanagers 722 werden nachstehend ausführlich beschrieben.
-
Die zweite Detektionspipeline 752 umfasst einen Bodensegmentierer 706, einen Bilddetektor 708, einen Offene-Welt-Objektdetektor 712, ein Datenzuordnungsmodul 716 und ein Registrierungsmodul 720. Der Bodensegmentierer 706 verarbeitet die LiDAR-Daten 702 gemäß (i) Identifizieren von Datenpunkten in einer oder mehreren Punktwolken, die eine Bodenoberfläche repräsentieren, und (ii) Verwerfen der identifizierten Datenpunkte. Die Datenpunkte können in Operation (i) unter Verwendung von Bodenoberflächeninformationen identifiziert werden, die in einer 3D-Bodenoberflächenkarte enthalten sind, die in einem Datenspeicher (z.B. dem Datenspeicher 112 von 1 und/oder dem Speicher 412 von 4) gespeichert ist. Beispielsweise können Bodenhöheninformationen aus der 3D-Bodenoberflächenkarte erhalten werden. Wenn eine z-Koordinate eines Datenpunkts in einer LiDAR-Punktwolke gleich oder innerhalb eines gegebenen Bereichs eines entsprechenden Bodenhöhenwerts ist, dann wird der Datenpunkt als eine Bodenoberfläche betrachtet. Dabei kann jede bekannte oder zukünftig bekannt werdende 3D-Bodenoberflächenkarte verwendet werden. Die verbleibenden LiDAR-Daten 730 werden dem Offene-Welt-Objektdetektor 712 bereitgestellt.
-
Der Bilddetektor 708 verarbeitet die Bilddaten 704, um ein oder mehrere Objekte in dem Bild bzw. den Bildern zu detektieren. Techniken zum Detektieren von Objekten in Bildern sind wohlbekannt. Hierbei kann jede bekannte oder zukünftig bekannt werdende Technik zur Erfassung von Objekten in Bildern verwendet werden. Zum Beispiel kann der Bilddetektor 708 einen Schnellen Regionen-basierten faltenden Neuronal-Netzwerk-Algorithmus (Fast Region-based Convolutional Neural Network, R-CNN), (noch) schnellere R-CNN-Algorithmen, einen Histogramm-von-orientiertem Gradienten-Algorithmus (Histogram of Oriented Gradients, HOG), einen Regionen-basierten Convolutional Neural Network (R-CNN)-Algorithmus, einen Regionen-basierten vollfaltenden Netzwerk-Algorithmus, einen Single-Shot-Detektor-Algorithmus (SSD), einen Spatial-Pyramide-Pooling (SPP-Net)-Algorithmus und/oder einen YOO-Algorithmus (YOO-Algorithmus) implementieren. Die Ergebnisse 732 aus dem Objekterkennungsprozess werden von dem Bilddetektor 708 zu dem Offene-Welt-Objekt-Detektor 712 kommuniziert.
-
Der Offene-Welt-Objektdetektor 712 ist konfiguriert, die gleichen Objekte zu erfassen, für die der Abgeschlossene-Welt-Objektdetektor 710 trainiert ist, und daneben andere Objekte zu erkennen, die durch den Abgeschlossene-Welt-Objektdetektor 710 nicht detektierbar sind. Der Offene-Welt-Objektdetektor 712 implementiert zu diesem Zweck einen neuartigen Algorithmus auf CLF-Basis. Der CLF-basierte Algorithmus wird nachstehend ausführlich beschrieben. Der CLF-basierte Algorithmus beinhaltet im Allgemeinen: Analysieren von Datenpunkten einer LiDAR-Punktwolke, um Objekte darin zu detektieren; und Zuweisen einer Klassifizierung zu jedem der detektierten Objekte.
-
Die Ergebnisse 734 des Offenwelt-Objektdetektors 712 werden an ein Datenzuordnungsmodul 716 weitergeleitet. Das Datenzuordnungsmodul 716 ist das gleiche wie oder im Wesentlichen ähnlich dem Datenzuordnungsmodul 714. Als solches ist das Datenzuordnungsmodul 716 konfiguriert, Objektdetektionen mit Spuren (oder räumlichen Beschreibungen) für Objekte in der gleichen oder im Wesentlichen ähnlichen Weise wie das Datenzuordnungsmodul 716 zu assoziieren. Somit dürfe die oben in Bezug auf das Datenzuordnungsmodul 716 bereitgestellte Diskussion ausreichend sein, um das Datenzuordnungsmodul 714 zu verstehen. Informationen, die die Objekt-Detektions-zu-Spur-Zuweisungen (oder Punkt-Cloud-Segment-zu-Spur-Zuweisungen) spezifizieren, werden zu den Informationen 734 hinzugefügt, um modifizierte Informationen 736 zu erzeugen. Die modifizierten Informationen 736 werden dem Registrierungsmodul 720 bereitgestellt.
-
Das Registrierungsmodul 720 ist das gleiche wie oder im Wesentlichen ähnlich dem Registrierungsmodul 718. Als solches führt das Registrierungsmodul 720 eine Punktwolkenregistrierung in der gleichen oder im Wesentlichen ähnlichen Weise durch wie das Registrierungsmodul 718. Als solches sollte die oben in Bezug auf das Registrierungsmodul 718 bereitgestellte Diskussion ausreichend für das Verständnis des Registrierungsmoduls 720 sein. Objekterkennungsinformationen 738 werden dann von dem Registrierungsmodul 720 an ein Korrekturmodul 720 und einen Spurfiltermanager 722 bereitgestellt.
-
Das Korrekturmodul 720 verarbeitet die Informationen 728, 738, die von den zwei Objektdetektorpipelines 750, 752 empfangen werden, die auf denselben LiDAR-Daten 702 betrieben werden. Das Korrekturmodul 720 verarbeitet die Informationen 728, 738, um jedes Objekt (die Objekte) zu identifizieren, die sowohl von dem Abgeschlossene-Welt-Objektdetektor 710 als auch dem Offene-Welt-Objekt-detektor 712 erfasst wurden. Es ist unerwünscht, beide Objekterfassungen zu verwenden, da sie die genau gleichen LiDAR-Daten betreffen. Wie oben angemerkt, werden die Abgeschlossene-Welt-Objektdetektionen der geschlossenen Welt schneller bereitgestellt als die Offene-Welt-Objektdetektionen. Dementsprechend wird die LiDAR-Objektdetektion, die durch die Abgeschlossene-Welt-Objektdetektor-Pipeline 750 durchgeführt wird, vor der entsprechenden Objektdetektion, die durch die Offene-Welt-Detektor-Pipeline 752 vorgenommen wurde, an den Spurfilter-Manager 722 weitergegeben. Wenn eine Objektdetektion durch den Offene-Welt-Detektor 712 durchgeführt wird, bestimmt das Korrekturmodul 720, ob die gleiche Objektdetektion durch den Abgeschlossene-Welt-Objektdetektor 710 erfolgt ist. Falls nicht, wird die Information, die mit der Objektdetektion assoziiert ist, die durch den Offene-Welt-Objektdetektor 712 vorgenommen wurde, dem Spurfiltermanager 722 bereitgestellt.
-
Im Gegensatz dazu bestimmt das Korrekturmodul 720, wenn die gleiche Objektdetektion sowohl von dem Abgeschlossene-Welt-Objekt-Detektor 710 als auch von dem Offene-Welt-Objektdetektor 712 erfolgt, ob eine Korrektur an den LiDAR-Daten für eine Objektdetektion des Abgeschlossene-Welt-Objektdetektors 710 vorgenommen werden muss. Diese Bestimmung wird basierend auf (a) einer Gesamtanzahl von Datenpunkten Nopen der LiDAR-Punktwolke durchgeführt, die in einem Punktwolkensegment Sopen enthalten sind, das für ein Objekt definiert ist, das durch den Offene-Welt-Detektor 712 detektiert wird, und (b) eine Gesamtanzahl von Datenpunkten Nclosed der LiDAR-Punktwolke, die in einem Punktwolkensegment Sclosed enthalten sind, das für ein Objekt definiert ist, das durch den Abgeschlossene-Welt-Detektor 710 detektiert wird. Falls Nopen > Nclosed, wird schließlich eine Bestimmung vorgenommen, dass eine Korrektur an den Informationen 728 vorgenommen werden muss, indem eine Größe des Punktwolkensegments Sclosed erhöht wird. Wenn Nopen < Nclosed, wird eine Bestimmung vorgenommen, dass eine Korrektur an den Informationen 728 vorgenommen werden muss, indem eine Größe des Punktwolkensegments Sclosed verringert wird. Wenn Nopen = Nclosed ist, dann wird eine Bestimmung durchgeführt, dass keine Korrektur an den Informationen 728 für das Punktwolkensegment Sclosed vorgenommen werden muss.
-
Wenn eine Korrektur durchgeführt werden muss, greift das Korrekturmodul 720 auf einen Datenspeicher (z.B. den Speicher 412 von 4, der einen Puffer umfassen kann) zu, mit (i) Abrufen von Originalobjekterfassungsinformationen, die mit der vergangenen Objektdetektion assoziiert sind, die von der Objektdetektorpipeline 750 der abgeschlossenen Welt ausgegeben wurde, und (ii) Korrigieren derselben durch Erhöhen oder Verringern der Segmentgröße des darin definierten Punktwolkensegments Sclosed. Die Segmentgröße definiert die Größe des Punktwolkensegments Sclosed, welches ein erfasstes Objekt darstellt. Das Punktwolkensegment Sclosed beinhaltet eine Vielzahl von Datenpunkten in einer LiDAR-Punktwolke (d.h. Sclosed = {P1, P2, ..., Pn}, wobei n eine ganze Zahl ist und jedes Symbol P1, P2 und Pn einen gegebenen Datenpunkt in der LiDAR-Punktwolke darstellt). Ein oder mehrere Datenpunkte werden zu dem Punktwolkensegment Sclosed hinzugefügt, wenn die Segmentgröße erhöht wird. Der (die) Datenpunkt(e), der/die zu dem Punktwolkensegment Sclosed hinzugefügt wird/werden, umfassen denjenigen/diejenigen, der/die in Sopen, aber nicht Sclosed enthalten sind. Ein oder mehrere Datenpunkte werden von dem Punktwolkensegment Sclosed entfernt, wenn die Segmentgröße verringert wird. Der/die Datenpunkt(e), der bzw. die von dem Punktwolkensegment Sclosed entfernt wird/werden, umfasst bzw. umfassen denjenigen/diejenigen, der/die in Sclosed, aber nicht Sopen enthalten sind. Das Punktwolkensegment mit der erhöhten/verringerten Größe wird als korrigiertes Punktwolkensegment S'closed bezeichnet. Die LiDAR-Daten 740 für das korrigierte Punktwolkensegment S'closed werden dem Spurfilter-Manager 722 bereitgestellt. Die LiDAR-Daten für das ursprüngliche Punktwolkensegment Sclosed werden verworfen.
-
Der Spurfiltermanager 722 führt Operationen durch, um die Spuren (oder räumlichen Beschreibungen) zu verwalten, Spuren (oder räumliche Beschreibungen) basierend auf den registrierten Punktwolkeninformationen 728, 738, 740 zu modifizieren und/oder neue Spuren (oder räumliche Beschreibungen) basierend auf den registrierten Punktwolkeninformationen 728, 738, 740 zu erzeugen. Techniken zum Modifizieren und Erzeugen von Spuren (oder räumlichen Beschreibungen) sind wohlbekannt. Jede bekannte oder zukünftig bekannt werdende Technik zum Modifizieren und Erzeugen von Spuren (oder räumlichen Beschreibungen) kann in diesem Zusammenhang verwendet werden. In einigen Szenarien werden die Spuren (oder räumlichen Beschreibungen) an eine fahrzeuginterne Rechenvorrichtung (z.B. die fahrzeuginterne Rechenvorrichtung 220 von 2) zur Objekttrajektorienvorhersage, Fahrzeugtrajektorienplanung, Kollisionsvermeidung und/oder für andere autonome Fahroperationen bereitgestellt.
-
Unter Bezugnahme auf 8 wird ein Flussdiagramm eines veranschaulichenden Verfahrens 800 zum Betreiben eines Fahrzeugs gemäß der vorliegenden Lösung bereitgestellt, das eine Objektdetektion mit LiDAR-Dekorrelation implementiert. Das Verfahren 800 beginnt mit 802 und fährt mit 804 fort, wo eine Rechenvorrichtung (z.B. die fahrzeuginterne Rechenvorrichtung 220 aus 2, die Rechenvorrichtung 400 aus 4 und/oder der Objektdetektor 700 aus 7) LiDAR-Daten empfängt oder anderweitig erhält (z.B. durch ein LiDAR-System - z.B. durch das LiDAR-System 264 aus 2 - eines autonomen Fahrzeugs, z.B. des AV 1021 von 1) sowie Bilddaten empfängt, die von einer Kamera (z.B. der Kamera 262 von 2) des autonomen Fahrzeugs erzeugt werden.
-
In 806 erzeugt die Rechenvorrichtung erste Objekterfassungsinformationen (z.B. die Informationen 728 von 7) unter Verwendung eines ersten Objekterkennungsalgorithmus (z.B. unter Verwendung des durch die Detektionspipeline 750 von 7 implementierten Abgeschlossene-Welt-Erfassungsalgorithmus). Die Rechenvorrichtung erzeugt auch zweite Objekterfassungsinformationen (z.B. die Informationen 738 von 7) unter Verwendung eines zweiten Objekterkennungsalgorithmus (z.B. unter Verwendung eines Algorithmus zur Offene-Welt-Erkennung durch die Detektionspipeline 752 von 7), wie bei 808 gezeigt.
-
In einigen Szenarien umfasst der erste Objekterkennungsalgorithmus einen Algorithmus zur Abgeschlossene-Welt-Detektion eines Objekts, der durch ein neuronales Netzwerk implementiert ist, das trainiert ist, bestimmte Typen von Objekten zu detektieren. Der Abgeschlossene-Welt-Algorithmus zur Detektion eines Objekts kann einen PointPillars-Algorithmus (der allgemein bekannt ist) umfassen, ist aber nicht darauf beschränkt. Der zweite Objekterkennungsalgorithmus umfasst einen Offene-Welt-Objekterkennungsalgorithmus, der konfiguriert ist, um eine beliebige Art von Objekt zu detektieren. Der Algorithmus zur Offene-Welt-Detektion kann eine Kamera-LiDAR-Fusionsobjektdetektion beinhalten, ist aber nicht darauf beschränkt. Die Kamera-LiDAR-Fusionsobjektdetektion wird nachstehend ausführlich beschrieben. Die vorliegende Lösung ist nicht auf die Einzelheiten dieser Szenarien beschränkt.
-
Unter erneuter Bezugnahme auf 8 fährt das Verfahren 800 mit 810 fort, wo eine Bestimmung durchgeführt wird, ob ein gegebenes Objekt (z.B. das Fahrzeug 1022 von 1) sowohl durch den ersten als auch den zweiten Objekterkennungsalgorithmus detektiert wurde. Wenn nicht [810: NEIN], dann wird der zweite Objekterkennungsalgorithmus in 812 verwendet, um den autonomen Fahrbetrieb oder die autonomen Fahrbetriebe zu erleichtern. Der autonome Fahrbetrieb oder die autonomen Fahrbetriebe beinhalten eine Objekttrajektorienvorhersage, eine Fahrzeugtrajektorienplanung und/oder eine Kollisionsvermeidung, sind aber nicht darauf beschränkt.
-
Wenn dies der Fall ist [810: JA], dann wird in 814 eine Bestimmung vorgenommen, ob die erste Objekterkennungsinformation modifiziert werden sollte. Diese Bestimmung kann basierend auf einer Differenz des Inhalts zwischen der ersten und der zweiten Objekterfassungsinformation erfolgen. Beispielsweise kann diese Bestimmung basierend auf einer Differenz durchgeführt werden, in der Punkte in entsprechenden Punktwolkensegmenten Sopen und Sclosed enthalten sind. Die vorliegende Lösung ist nicht auf die Einzelheiten dieses Beispiels beschränkt.
-
Das Verfahren 800 fährt mit 816 fort, wenn eine Bestimmung durchgeführt wird, dass die erste Objekterkennungsinformation nicht modifiziert werden sollte [814: NEIN]. In 816 wird die erste Objekterfassungsinformation verwendet, um die autonome(n) Fahroperation(en) zu ermöglichen oder zu erleichtern.
-
Wenn dagegen festgestellt wird, dass die ersten Objekterkennungsinformationen modifiziert werden sollten [814: JA], dann fährt das Verfahren 800 mit 818-820 fort. Die Schritte 818-820 beinhalten: selektives Modifizieren der ersten Objektdetektionsinformationen; und Verwenden der modifizierten ersten Objektdetektionsinformationen (z.B. der Informationen 740 von 7), um den autonomen Fahrbetrieb / die autonomen Fahrbetriebe zu erleichtern bzw. zu ermöglichen. Schritt 820 kann auch das Verwerfen der ersten Objekterfassungsinformationen beinhalten, so dass die erste Objekterfassungsinformation nicht verwendet wird, um die mindestens eine autonome Fahroperation zu erleichtern zu ermöglichen. Anschließend wird 822 ausgeführt, wo das Verfahren 800 endet oder eine andere Verarbeitung durchgeführt wird (z.B. Rückkehr zu 802).
-
In einigen Szenarien werden die ersten Objektdetektionsinformationen selektiv in 818 basierend auf (a) einer Gesamtanzahl von Datenpunkten Nopen der LiDAR-Daten modifiziert, die in einem Punktwolkensegment Sopen enthalten sind, das für ein Objekt definiert ist, das durch den Offene-Welt-Erfassungsalgorithmus detektiert wird, und (b) eine Gesamtanzahl von Datenpunkten Nclosed der LiDAR-Daten, die in einem Punktwolkensegment Sclosed enthalten sind, das für ein Objekt definiert ist, das durch den Abgeschlossene-Welt-Algorithmus erkannt wurde. Eine Größe des Punktwolkensegments Sclosed wird erhöht, wenn die Gesamtzahl der Datenpunkte Nopen größer ist als die Gesamtzahl der Datenpunkte Nclosed. Eine Größe des Punktwolkensegments Sclosed wird verringert, wenn die Gesamtzahl der Datenpunkte Nopen kleiner als die Gesamtzahl der Datenpunkte Nclosed ist. Die vorliegende Lösung ist nicht auf die Einzelheiten dieser Szenarien beschränkt.
-
CLF-Objekterkennung
-
Die folgende Diskussion ist auf einen neuartigen Offene-Welt-Objekterkennungsalgorithmus gerichtet. Dieser neuartige Objekterkennungsalgorithmus kann durch den oben beschriebenen Objektdetektor 700 in Block 712 von 7 und/oder die Rechenvorrichtung in Block 808 von 8 durchgeführt werden, wobei der neuartige Offene-Welt-Objekterkennungsalgorithmus hierin als „CLF-basierter Algorithmus“ oder eine „CLF-basierte Lösung“ bezeichnet wird.
-
Der Zweck der CLF-Objektdetektion besteht darin, Objekte in einer LiDAR-Punktwolke mit hinzugefügtem Kontext aus Bilddetektionen zu detektieren. Das AV kann eine ungeordnete („cluttered“) Umgebung aufweisen, in der sich Objekte bewegen und mit dem AV und/oder untereinander 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 nutzt den vollen Vorteil von monokularen Kamerabilderfassungen, bei denen Detektionen mit der LiDAR-Punktwolke fusioniert werden. LiDAR-Datenpunkte werden in den monokularen Kamerarahmen 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.
-
Es gibt mehrere Herausforderungen beim Übertragen von Kennzeichnungen („Labels“) von 2D-Bilderfassungen zu einer 3D-LiDAR-Punktwolke. In dieser Hinsicht sei angemerkt, dass Bildpixel nicht exakt gleichzeitig als LiDAR-Datenpunkte in dem Wobbelkeil erfasst werden, der dem FOV der Kamera entspricht. Das Belichtungszeitfenster der Kamera ist üblicherweise viel kleiner als die Zeit, die für eine LiDAR-Rotationsanordnung benötigt wird, um das horizontale FOV der Kamera zu überstreichen Dieses zeitliche Ausrichtungsproblem tritt am deutlichsten zutage, 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 in der Regel Raumbereiche, die von dem LiDAR-System wahrgenommen werden, aber von der Kamera nicht, und umgekehrt. Dies macht den Kennzeichnungstransfer in Fällen mehrdeutig, in denen mehr als ein LiDAR-Punkt in den gleichen Bereich des Bildes hineinprojiziert. Es bestehen auch Probleme aufgrund der Genauigkeit und der begrenzten Auflösung von Bilderfassungsmasken, aufgrund von Sensorkalibrierungen und aufgrund der relativen Bewegung des AV und der Akteure.
-
Die CLF-basierte Lösung detektiert Objekte (z.B. die Objekte 1022, 114 und/oder 116 von 1) in einer LiDAR-Punktwolke mit hinzugefügtem Kontext aus Bilddetektionen. Das AV (z.B. das AV 1021 von 1) muss in einer verklumpten bzw. ungeordneten Umgebung arbeiten, wo Objekte sich bewegen und interagieren können. In einer reinen LiDAR-Umgebung ist diese Aufgabe in Situationen extrem schwierig, wenn Objekte sich in unmittelbarer Nähe zueinander befinden und auch, wenn Objekte zusammenwirken. Typische Segmentdetektionsansätze basieren auf einer euklidischen Punktclustering-Struktur, um getrennte Objekte zu detektieren, die sich in unmittelbarer Nähe zueinander befinden. Zum Beispiel können Fußgänger, die nahe dem Fahrzeug bleiben, es beladen oder in dieses eintreten, wahrscheinlich als ein einzelnes Fußgänger- und Fahrzeugsegment dargestellt werden - die Punkte sind nahe, aber die Objekte sind getrennt. Auf der anderen Seite kann ein großes Objekt (wie z.B. ein Bus) häufig als mehrere Objekte erfasst werden, wenn dieses teilweise durch andere Objekte vor ihm verdeckt wird. Eine andere Herausforderung besteht darin, dass der große Fenster-Bereich auf den Seiten eines Busses es ermöglicht, dass das Licht von dem Laserscanner frei durch das Fenster hindurchgeht und von den Objekten innerhalb des Busses zurückkehrt. Dies erzeugt mehrere Fragmente, die tatsächlich zu demselben großen Objekt gehören. Diese Punkte sind weit auseinander, sie gehören aber zu demselben Objekt.
-
In der CLF-basierten Lösung werden monokulare Kameradetektionen mit einer LiDAR-Punktwolke fusioniert. Punkte der LiDAR-Punktwolke werden in einen monokularen Kamerarahmen projiziert, um Pixelinformationen zu jedem Punkt in der LiDAR-Punktwolke zu übertragen. Die Pixelinformationen umfassen, sind aber nicht beschränkt auf, eine Farbe, einen Objekttyp und eine Objektinstanz. Insbesondere können die Kameras (z.B. die Kameras 262 von 2) des AV überlappende Sichtfelder („Field of View“, FOV) aufweisen. Das vertikale FOV des LiDAR-Systems überlappt nicht perfekt mit den vertikalen FOVs der Kameras. Daher können einige LiDAR-Punkte von mehreren Kameras sichtbar sein und andere Punkte können von keiner der Kameras sichtbar sein. Um die zeitliche Ausrichtung zu unterstützen, sind die Kameras dahingehend konfiguriert, auszulösen, wenn ein LiDAR-System die Mitte des FOV der Kamera überstreicht. Der Zeitausrichtungsfehler (z.B. die Zeitdifferenz zwischen LiDAR-Punkterfassung und Bilderfassung) wird verwendet, um eine Projektionsunsicherheit zu berechnen, die dann für die LiDAR-zu-Bilderfassungs-Anpassung verwendet wird.
-
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 Bilderfassungsinstanz-Kompatibilität einzuschließen. Dies lässt LiDAR-Punkte, die in verschiedene Objektdetektionen in das Bild hineinragen, für den Segmentierungsalgorithmus als weiter voneinander entfernt erscheinen. In ähnlicher Weise erscheinen LiDAR-Punkte, die in dieselbe Bilderfassungsmaske hineinragen, näher. Dieser Ansatz stellt in Fällen mit unterschiedlichen Objekten in unmittelbarer Nähe zueinander eine deutliche Verbesserung bereit, im Vergleich zu einer Segmentierung, die sich allein auf den euklidischen Abstand zwischen Punkten stützen würde.
-
Segmentierung: Jeder Segmentierungsalgorithmus kann von der vorliegenden Lösung verwendet werden, solange er 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 Farbentfernung und/oder eine Bilderfassungsinstanzkompatibilität in der Abstandsfunktion enthalten. Die beiden Hauptfehlermodi eines beliebigen Segmentierungsalgorithmus sind Untersegmentierung (mehrere Objekte, die mit einem einzelnen Segment dargestellt sind) und Übersegmentierung (ein einzelnes Objekt, das als mehrere Segmente dargestellt ist). In der CLF-basierten Lösung wird eine Optimierung für eine minimale Anzahl von Untersegmentierungsereignissen auf Kosten einer höheren Anzahl von Übersegmentierungsereignissen durchgeführt. Die Übersegmentierungsereignisse werden dann durch eine separate Segment-Merger-Komponente gehandhabt.
-
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 („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 auch die Bodenhöhen- und Spurinformationsmerkmale aus der HD-Karte verwendet, um die Segmentzusammenführung zu unterstützen.
-
Segmentfilter: Nicht alle detektierten Segmente sind für das AV relevant und viele von ihnen entsprechen dem „Clutter“ von der Straße (Gebäude, Pfosten, Abfalldosen usw.). An dieser Stelle wird wiederum Bilderfassungsinformationen verwendet, um relevante Objekte außerhalb der Straße zu finden. Da nur das Tracking von Aktoren von Interesse ist, die sich zu der Straße (weg-)bewegen können, können statische Objekte sicher verworfen werden, um den Rest der Verfolgungspipeline-Latenz zu verbessern und ihre 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. Objekte, bei denen eine Bewegung unwahrscheinlich ist) zu unterscheiden. Hochrelevante Objekte können der höchsten Priorität zugeordnet werden, um entsprechend begrenzte bordeigene Rechenressourcen zuzuweisen. 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 Fahrzeugdetektion mit einem Pfahl vor diesem und auch noch einem Fußgänger dahinter. 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 dem Fahrzeug zugeordnet werden. Diese Fehler ergeben sich z.B. aus dem Zeitunterschied, zu dem der LiDAR-Punkt erfasst wurde und zu dem das Bildpixel erfasst wurde, aus Parallaxen-Effekten aufgrund unterschiedlicher Positionen von LiDAR und Kamera (das LiDAR kann ggf. über ein von der Kamera gesehenes Objekt hinwegsehen), aus der AV-Bewegung, aus der Aktorbewegung, aus Kalibrierungsfehlern und/oder aus der Ungenauigkeit und begrenzten Auflösung von Bilddetektionsmasken. Um die Mehrdeutigkeit der Bilderfassungsmaske bei der Segmentzuordnung aufzulösen, werden Projektionseigenschaften für alle Segmente bestimmt, die Punkte enthalten, die in eine bestimmte Bilderfassungsmaske hineinragen. Nur eine oder wenige beste Übereinstimmungen, die wahrscheinlich dem auf dem Bild erfassten Objekt entsprechen, werden berichtet. Dies hilft dabei, „Clutter“ aus dem Satz von verfolgten Objekten zu eliminieren und die Pipeline-Latenz und die Rechenanforderungen bei der Objektverfolgung zu reduzieren.
-
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 Maschinenlernen angewiesen. Dies bedeutet sowohl das Trennen von Objekten in enger Nähe als auch das Detektieren von Objekten, die zuvor nicht erkannt wurden. Dieser Ansatz kombiniert ML-Bilddetektionen mit klassischen Verfahren zur Punktwolkensegmentierung.
-
Eine Übersegmentierungs- + Merge-Strategie ist für Bildpixel wahrscheinlich wohlbekannt, kann aber für die Anwendung auf LiDAR-Punktwolken nicht als verbreitet angesehen werden. Mit anderen Worten, viele grundlegende LiDAR-Erkennungsansätze arbeiten entweder mit einem einzelnen Cluster-Schritt oder verwenden Deep-Learning-Verfahren. Der vorgeschlagene Ansatz baut kleine Cluster von Merkmalen auf niedriger Ebene auf, extrahiert dann jedoch aussagekräftigere Merkmale aus den Clustern, um zu bestimmen, welche Cluster zusammenlaufen (merge), um Objekte zu bilden.
-
Viele lernbasierte Ansätze verwenden generische „handgefertigte“ oder individuell angepasste Merkmale oder arbeiten auf den Rohdaten (wie die Anpassungsfunktion in dem Microsoft Kinect®). Der vorgeschlagene Ansatz umfasst mehrere neue handgefertigte Merkmale, die für die Objekte in der Umgebung optimiert sind (Fahrzeuge und Vegetation).
-
Unter Bezugnahme auf 9 ist ein Flussdiagramm eines veranschaulichenden Verfahrens 900 zur CLF-basierten Objektdetektion bereitgestellt. Das Verfahren 900 beginnt mit 902 und fährt mit 904 fort, wo Operationen durch ein LiDAR-System (z.B. das LiDAR-System 264 aus 2) des AV (z.B. des AV 1021 von 1 und/oder 200 von 2) durchgeführt werden, um einen LiDAR-Datensatz zu erzeugen. Der LiDAR-Datensatz misst einen Abstand (enthält Abstands-, Azimut- und Höhenmessungen) von dem AV zu mindestens einem Objekt (z.B. zu dem Fahrzeug 1022 aus 1) zu einem gegebenen Zeitpunkt t. Der LiDAR-Datensatz umfasst eine Vielzahl von Datenpunkten, die eine Punktwolke bilden, wenn sie auf einem 3D-Graphen aufgetragen sind. Techniken zur Erzeugung von LiDAR-Datensätzen sind im Stand der Technik wohlbekannt. Jede bekannte oder zukünftig bekannt werdende Technik zur Erzeugung von LiDAR-Datensätzen kann hier verwendet werden. In einigen Szenarien dreht sich das LiDAR-System kontinuierlich mit 10 Hz und erfasst Daten, unabhängig davon, wie sein aktueller Winkel ist.
-
In 906 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 2) werden ausgelöst, wenn eine solche Detektion vorgenommen wird, wie bei 908. Wie bei 910 gezeigt, erfasst die Kamera ein Bild, wenn der Sensor des LiDAR-Systems die Mitte des FOV der Kamera überstreicht. Das Bild beinhaltet Inhalt, der den Standort eines ersten Objekts (z.B. des Fahrzeugs 1021 von 1) zu einer gegebenen Zeit t relativ zu dem AV darstellt. Das Bild wird hier als Kamerarahmen („Frame“) oder als ein monokularer Kamerarahmen bezeichnet. In einigen Szenarien hat die Kamera einen globalen Verschluss (d.h., alle Pixel werden zur gleichen Zeit erfasst), der bei 20 Hz arbeitet. Die Operationen 906-910 unterstützen die zeitliche Ausrichtung der Auslösung der Kamera mit dem LiDAR-System. Der Zeitausrichtungsfehler (d.h. die Zeitdifferenz zwischen LiDAR-Punkterfassung und Bilderfassung) wird daher in der Kamera minimiert.
-
Bei 912 führt eine On-Board-Rechenvorrichtung (z.B. die bordeigene Rechenvorrichtung 220 von 2) des AV Operationen durch, um das Bild und den LiDAR-Datensatz zu erhalten. Die bordeigene Rechenvorrichtung führt dann bei 914-928 Operationen durch, um Objekte in der Nähe des AV unter Verwendung des Bildes und des LiDAR-Datensatzes zu detektieren. Die Schritte 914-928 beinhalten: Beschneiden (oder Reduzieren) einer Gesamtanzahl von Punkten („Pruning“), die in dem LiDAR-Datensatz enthalten sind; Durchführen von LiDAR-zu-Bild-Objektdetektionsoperationen, um eine Verteilung von Objektdetektionen zu berechnen, in denen jeder Punkt des LiDAR-Datensatzes wahrscheinlich enthalten ist; Durchführen einer lokalen Variationssegmentierung unter Verwendung der Ausgaben der LiDAR-zu-Bild-Objektdetektionsoperationen, um eine Vielzahl von Segmenten von LiDAR-Datenpunkten zu erzeugen; Durchführen von Segmentzusammenführungsoperationen zum Zusammenführen der Vielzahl von Segmenten von LiDAR-Datenpunkten in Objekte; und Durchführen von Segmentfilterungsoperationen zum Detektieren von Objekten in der durch den LiDAR-Datensatz definierten Punktwolke. Insbesondere können die LiDAR-Punkte einmal oder mehrmals während der Verarbeitung der On-Board-Computervorrichtung des Bildes und des LiDAR-Datensatzes, wie durch 918, 922 und 926 gezeigt, weiter beschnitten werden. Diese Beschneidung kann die Recheneffizienz der On-Board-Recheneinrichtung verbessern. Es sei darauf hingewiesen, dass die Punktbeschneidungsoperationen gemäß 914, 918, 722 und 926 im Detail in dem folgenden Abschnitt mit dem Titel „Punktbeschneidung“ und unter Bezugnahme auf 10 beschrieben werden. Die LiDAR-zu-Bild-Objektdetektionsoperationen von 916 werden in dem danach folgenden Abschnitt mit dem Titel „LiDAR-zu-Bild Detektions-Matching“ und unter Bezugnahme auf die 11-16 im Detail beschrieben. Die lokalen Variationssegmentierungsoperationen von 920 werden im Detail in dem danach folgenden Abschnitt mit dem Titel „Lokale Variationssegmentierung mit Bilderfassungsmerkmalen“ und unter Bezugnahme auf die 17 und 18 beschrieben. Die Segmentverschmelzungsoperationen von 924 werden im Detail in dem danach folgenden Abschnitt mit dem Titel „Segment Merger“ beschrieben, und in Bezug auf 19. werden die Segmentfilteroperationen von 928 im Detail in dem folgenden Abschnitt mit dem Titel „Objekterkennungssegmentfilterung“ beschrieben, und unter Bezugnahme auf 20 wird nach Abschluss des Schritts 928 der Schritt 930 ausgeführt, wo das Verfahren 900 endet oder eine andere Operation durchgeführt wird.
-
Punktbeschneidung
-
LiDAR-Datensätze können eine signifikante Anzahl von Punkten enthalten. Zum Beispiel kann ein LiDAR-Scanner (z.B. das LiDAR-Sensorsystem 264 von 2) ein Bild mit hoher Dichte erzeugen, das mehr als 100.000 Punkte alle 100 ms Verarbeitung enthält, und das Verarbeiten aller dieser LiDAR-Datenpunkte kann in einem Echtzeitsystem unerschwinglich teuer sein. Als solches liefert die Begrenzung der Anzahl von LiDAR-Datenpunkten, die letztlich durch das System zur Objekterkennung verarbeitet werden, Vorteile, einschließlich, ohne Einschränkung, reduziertem Energieverbrauch, reduzierter Anforderungen an die Hardwarekapazität und reduzierter Systemlatenz. Dementsprechend implementiert die vorliegende Lösung ein Verfahren zum Beschneiden (oder Reduzieren) der Anzahl von LiDAR-Datenpunkten, die zu Zwecken des Detektierens eines Objekts verarbeitet werden (z.B. des AV 1022 von 1), die sich in der Nähe eines AV (z.B. des AV 1021 von 1) befindet.
-
Unter Bezugnahme auf 10 wird ein Flussdiagramm eines veranschaulichenden Verfahrens 1000 zum Beschneiden (oder Reduzieren) der Anzahl von LiDAR-Datenpunkten bereitgestellt, die zu Zwecken des Detektierens eines Objekts (z.B. des AV 1022 von 1) verarbeitet werden, das sich in der Nähe eines AV (z.B. des AV 1021 oder 1) befindet. Das Verfahren 1000 kann durch eine bordeigene Rechenvorrichtung (z.B. durch die bordeigene Rechenvorrichtung 220 von 2) und/oder eine entfernte Rechenvorrichtung (z.B. durch die Rechenvorrichtung 110 aus 1) durchgeführt werden. Die Operationen des Verfahrens 1000 können in der gleichen vorgegebenen oder in einer unterschiedlichen Reihenfolge gemäß einer gegebenen Anwendung durchgeführt werden. Auch kann das Verfahren 1000 bei einer oder mehreren Operationen gemäß einer gegebenen Anwendung ausgelassen werden. In dieser Hinsicht versteht es sich, dass ein oder mehrere der nachstehend beschriebenen Kriterien zum Heruntersampeln („Downsampling“) von LiDAR-Datenpunkten während einer gegebenen Anwendung verwendet werden können. Es versteht sich auch, dass die Operationen von 1004-1014 an verschiedenen Punkten während eines Objekterkennungsprozesses durchgeführt werden können. Zum Beispiel können die Heruntersample-Operationen von 1004 bei 914 von 9 durchgeführt werden. Die Heruntersample-Operationen 1006-1008 können bei 914 und/oder 918 von 9 durchgeführt werden. Die Heruntersample-Operationen von 1010 können bei 918 von 9 durchgeführt werden. Die Operationen von 1012 können bei 914 und/oder 922 von 9. durchgeführt werden. Die Operationen von 1014 können in 914, 918, 922 und/oder 926 von 9. durchgeführt werden. Die vorliegende Lösung ist nicht auf die Einzelheiten dieses Beispiels beschränkt.
-
Wie in 10 gezeigt, beginnt das Verfahren 1000 mit 1002 und fährt mit optionalen 804 fort, wo der LiDAR-Datensatz basierend auf einer geplanten Trajektorie eines AV heruntergesampelt wird. Zum Beispiel wird Heruntersampeln für LiDAR-Datenpunkte durchgeführt, die einer Region von Interesse entlang einer geplanten Trajektorie des AV mit einer niedrigeren Rate entsprechen als die LiDAR-Datenpunkte, die anderen Regionen entsprechen, die nicht entlang der geplanten Trajektorie des AV sind. Das Heruntersampeln kann zusätzlich oder alternativ für LiDAR-Datenpunkte durchgeführt werden, die Regionen entsprechen, die nicht von Interesse entlang der geplanten Trajektorie mit einer höheren Rate sind als die LiDAR-Datenpunkte, die einer Region von Interesse entsprechen. Eine Region von Interesse kann eine Region sein, die LiDAR-Datenpunkte beinhaltet, die mindestens einem Objekt entsprechen, das wahrscheinlich mit dem AV interferiert, wenn es der geplanten Trajektorie folgt (z.B. eine Region, die ein Fahrzeug, ein Fahrrad und/oder einen Fußgänger entlang der geplanten Trajektorie des AV beinhaltet). Bereiche, die nicht interessierende Bereiche sind, können LiDAR-Datenpunkte beinhalten, die mindestens einem Objekt entsprechen, das unwahrscheinlich mit dem AV interferiert, wenn es der geplanten Trajektorie folgt. Dieses Objekt kann ein geparktes Fahrzeug auf der Seite einer Straße und ein Fahrzeug auf der Rückseite des AV beinhalten, das sich in der entgegengesetzten Richtung zu der Richtung des AV bewegt.
-
Im optionalen Schritt 1006 werden LiDAR-Datenpunkte des LiDAR-Datensatzes in einen Kamerarahmen (oder ein Kamerabild) projiziert, um Informationen von den bildbasierten Objekterfassungen zu den LiDAR-Datenpunkten zu übertragen. Techniken zum Projizieren von LiDAR-Datenpunkten in einen Kamerarahmen sind im Stand der Technik wohlbekannt. Jede bekannte oder zukünftig bekannt werdende Technik zum Projizieren von LiDAR-Datenpunkten in einen Rahmen kann hier ohne Einschränkung verwendet werden. Eine bekannte Projektionstechnik implementiert einen naiven Projektionsalgorithmus, der durch die weiter unten aufgeführte mathematische Gleichung (1) definiert wird. Die übertragenen Informationen werden hier als Punktkennzeichnungen („Labels“) bezeichnet. Eine Punktkennzeichnung 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 eine Punktkennzeichnung 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 den LiDAR-Datenpunkt) und/oder eine Objektinstanzkennung (z.B. wenn viele Objekte derselben Klasse in einem Bild detektiert werden) beinhalten.
-
Im optionalen Schritt 1008 kann das System (z.B. das System 100 von 1 und/oder das System 200 von 2) einen LiDAR-Datensatz basierend auf den zugeordneten Punktkennzeichnungen heruntersampeln. Zum Beispiel werden Punkte eines LiDAR-Datensatzes basierend auf den Punktkennzeichnungen, die den Punkten des LiDAR-Datensatzes zugeordnet sind, in zwei oder mehr Klassen unterteilt. Zum Beispiel können LiDAR-Datenpunkte in zwei Klassen getrennt werden, nämlich eine erste Klasse, die LiDAR-Datenpunkte enthält, denen hochwertige Kennzeichnungen zugewiesen sind, und eine zweite Klasse, die LiDAR-Datenpunkte enthält, denen niederwertige Kennzeichnungen zugewiesen sind. Kennzeichnungen mit hoher Wichtigkeit können Kennzeichnungen umfassen, die wichtig sind, um mit einer hohen Genauigkeit zu verfolgen Das Kennzeichnung mit hoher Wichtigkeit wird LiDAR-Datenpunkten mit beispielsweise Objektklassenkennungen zugeordnet, die einer Fahrzeugklasse, einem Fußgänger, einem Fahrrad oder einer anderen, sich bewegenden Objektklasse zugeordnet sind. Den LiDAR-Datenpunkten mit beispielsweise Objektklassenkennungen, die mit statischen Objektklassen (z.B. einer Gebäudeklasse, einer Laub-Klasse, einer Baubarrieren-Klasse und/oder einer Beschilderungsklasse) assoziiert sind, wird eine Kennzeichnung mit geringer Wichtigkeit zugewiesen. Die Kennzeichnungen mit geringer Wichtigkeit können mit geringerer Priorität als die Kennzeichnungen mit hoher Wichtigkeit mit einem hohen Grad an Genauigkeit verfolgt werden. Der LiDAR-Datensatz wird dann auf der Grundlage der Wichtigkeitskennzeichnungen der Punkte in dem LiDAR-Datensatz (wie durch ihre entsprechenden Punktkennzeichnungen bestimmt) heruntergesampelt. Beispielsweise werden LiDAR-Datenpunkte mit Kennzeichnungen mit hoher Wichtigkeit nicht heruntergesampelt oder alternativ mit einer hohen Auflösung heruntergesampelt. LiDAR-Datenpunkte mit Kennzeichnungen mit geringer Wichtigkeit werden aggressiver als die LiDAR-Datenpunkte mit hoher Wichtigkeitskennzeichnung heruntergesampelt, d.h. mit einer niedrigeren Auflösung. Die vorliegende Lösung ist nicht auf die Einzelheiten dieses Beispiels beschränkt.
-
Im optionalen Schritt 1010 wird der LiDAR-Datensatz gemäß einem Kegelstumpf-Beschneidungsalgorithmus heruntergesampelt. Ein LiDAR-Datensatz kann Punkte beinhalten, die Objekten entsprechen (z.B. andere Fahrzeuge, Fußgänger, Radfahrer und/oder Schilder), die sich auf einer Straße oder einem anderen Bewegungspfad (z.B. einer Fahrradspur oder -weg) befinden, und/oder Punkte beinhalten, die Objekten (z.B. Gebäuden, Bäumen und/oder andere Blättern) entsprechen, die sich außerhalb der Straße oder einem anderen Fahrtweg befinden. Ein Kegelstumpf kann für ein oder mehrere detektierte Objekte erzeugt werden. Der Kegelstumpf, der einer Bilderfassungsbegrenzungsbox entspricht, umfasst LiDAR-Datenpunkte einer Punktwolke, die wahrscheinlich einem bestimmten Objekt entsprechen. Die LiDAR-Datenpunkte, die innerhalb oder in der Nähe der Bilderfassungsbegrenzungsbox projizieren, können für den Objektdetektionsprozess von größerer Relevanz oder Bedeutung sein als die LiDAR-Datenpunkte, die weiter weg von der Begrenzungsbox projizieren, da die LiDAR-Datenpunkte, die weiter von der Begrenzungsbox entfernt angeordnet sind, unwahrscheinlicher mit Objekten von Interesse (z.B. Fußgängern, Fahrrädern, Fahrzeugen usw.) übereinstimmen. Als solche 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. Wenn der Abstand kleiner oder gleich dem Schwellenabstand ist, bleibt der Punkt in dem 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 zur Begrenzungsbox 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 hineinprojiziert.
-
In dem optionalen Schritt 1012 wird der LiDAR-Datensatz unter Verwendung einer Karte, die Informationen enthält, die einer Trajektorie eines AV (z.B. des AV 1021 von 1) zugeordnet sind, heruntergesampelt. Beispielsweise kann ein AV eine geplante Trajektorie oder Bewegungsbahn aufweisen, der er autonom folgt. Die Karte umfasst verschiedene Informationen, die der geplanten Trajektorie oder Bewegungsbahn entsprechen. Diese Informationen können Informationen über Spurplatzierung, Oberflächengradient, Straßenbegrenzungen und/oder Orte von stationären Objekten beinhalten, sind aber nicht darauf beschränkt. Die Karte kann aus einem Datenspeicher (z.B. dem Speicher 412 aus 4) des AV gespeichert und/oder abgerufen werden. Ein oder mehrere Punkte des LiDAR-Datensatzes können zum Heruntersampeln in Bezug auf die Karte identifiziert werden. Genauer gesagt, wird ein Heruntersampeln für LiDAR-Datenpunkte durchgeführt, die unter einem minimalen Höhenschwellenwert auf der Karte angeordnet sind. Zum Beispiel wird angenommen, dass die meisten LiDAR-Punkte von Interesse für ein AV Objekten entsprechen, die Höhen aufweisen, die eine bestimmte Höhenmessung (z.B. 2 ft oder ca. 61 cm) überschreiten. Punkte werden aus dem LiDAR-Datensatz entfernt, die mit Höhen assoziiert sind, die geringer sind als der minimale Höhenschwellenwert (z.B. 2 ft oder ca.61 cm). Es kann auch eine Annahme gemacht werden, dass die meisten LiDAR-Punkte von Interesse für ein AV Objekten entsprechen, die Höhen unter einem maximalen Höhenschwellenwert (z.B. 100 ft oder ca. 305 cm) aufweisen. Somit werden Punkte aus dem LiDAR-Datensatz entfernt, die den Höhen zugeordnet sind, die den maximalen Schwellenwert überschreiten. Die vorliegende Lösung ist nicht auf die Einzelheiten dieses Beispiels beschränkt.
-
Im optionalen Schritt 1014 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 aussieht. 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 das Modell kann dann diese geschätzte Latenz verwenden, um die Heruntersample-Auflösung zu manipulieren. Anschließend wird Schritt 1016 durchgeführt, wo das Verfahren 1000 endet oder andere Operationen durchgeführt werden.
-
LiDAR-zu-Bild-Detektions-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, in welcher Bilderfassung einer Vielzahl von Bilderfassungen jeder Punkt in einem LiDAR-Datensatz am wahrscheinlichsten enthalten ist. Wie oben angemerkt, wird der Aspekt (i) durch Auslösen der Bilderfassung erreicht, wenn ein Fokuspunkt des LiDAR-Sensors mit einer Mitte des FOV der Kamera ausgerichtet ist. Der 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 intrinsischen: einer xy-Brennweite, einer Schrägstellung, einer xy-Bildmitte; 6 extrinsischen: XYZ-Übersetzung, 3 Rotations-Freiheitsgraden); Projizieren der Unsicherheit in einen Kamerarahmen; und Bestimmen einer Verteilung von Pixeln, auf 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 des Vertrauens, um eine Verteilung von Erfassungen zu berechnen, in denen sich ein LiDAR-Punkt wahrscheinlich befinden soll. Die Aspekte (i)-(iii) ermöglichen es dem LID-Anpassungsalgorithmus, mehrere Fehlerquellen und Unsicherheiten zu berücksichtigen, um LiDAR-Punkte besser mit Kamera-Raum-Objekten in Übereinstimmung zu bringen.
-
Dementsprechend berücksichtigt der LID-Abgleichalgorithmus sowohl die Projektionsunsicherheit als auch die vollständige Vertrauensinformation in Bilderfassungen. Gegenwärtig wird keine Projektionsunsicherheit betrachtet und Bilderfassungsvertrauen (in der gesamten Detektion und pro Pixel in der Maske) werden binarisiert. Um die neue Anpassung zu berücksichtigen, sollte die Objekttypschätzung entsprechend aktualisiert werden.
-
Es gibt zwei Hauptprobleme mit den herkömmlichen LID-Anpassungsalgorithmen, zum einen „Maskenbleed / Maskenerosion“ und zum anderen die Maskenverschiebung. Die vorliegende Lösung löst beide dieser Probleme durch Schätzen von p(lpi ∈ dj) (wobei Ipi einen LiDAR-Punkt i darstellt und dj eine Bilderfassung j darstellt), anstelle der Bereitstellung der Bilddetektion, in die ein LiDAR-Punkt naiv projiziert. Diese Wahrscheinlichkeitsschätzung berücksichtigt das Bilderfassungsvertrauen, die Projektionsunsicherheit und die Interaktion mehrerer überlappender Masken. Es gibt mehrere bekannte Quellen von Projektionsunsicherheiten, wie etwa Kamerainterna, Kamera-zu-LiDAR-Extrinsika sowie die Zeitausrichtung (aufgrund von Fehlern bei der Bewegungskompensation (z.B., wenn ein Straßenfahrwerksstoß nicht gut durch die Pose verfolgt wird) und aufgrund der Objektbewegung.
-
Diese Änderung erfordert eine Änderung der aktuellen Einzelrahmenobjekttypschä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 in mehreren Bilderfassungen die Typverteilung für jede Bilderfassung mitteln. Die vorliegende Lösung ist ein gewichteter Mittelwert, der durch die Wahrscheinlichkeit jeder Bilderfassung gewichtet wird.
-
Unter Bezugnahme auf 11 wird ein Flussdiagramm eines Verfahrens 1100 zum Durchführen des LID-Anpassungsalgorithmus bereitgestellt. Das Verfahren 1100 beginnt mit 1104, wo ein Bild (z.B. das Bild 1200 von 12) durch eine bordeigene Rechenvorrichtung (z.B. durch die bordeigene Rechenvorrichtung 220 aus 2) eines AV (z.B. eines AV 1021 von 1) erhalten wird. Das Verfahren 1100 fährt mit Bildanalyseoperationen fort 1106-1112. Diese Bildanalyseoperationen 1106-1112 kann durch einen handelsüblichen Objekterkennungsalgorithmus durchgeführt werden, der einen herkömmlichen Objekterkennungsalgorithmus implementiert. Die Schritte 1106-1112 beinhalten im Allgemeinen: Identifizieren eines oder mehrerer Objekte (z.B. des Fahrzeugs 1021 von 1, eines Radfahrer 114 von 1, eines Fußgängers 116 von 1 und/oder eines Fahrzeugs 1202 von 12) in dem Bild; Definieren einer zweidimensionalen Begrenzungsbox (z.B. der Begrenzungsbox 1300 aus 13), die jedes identifizierte Objekt umfasst; Definieren einer Maske (oder eines Gitters) (z.B. der Maske 1400 von 14) für jede zweidimensionale Begrenzungsbox; und Berechnen eines Konfidenzwerts für jede Zelle der Maske (oder des Gitters), ob der/die Pixel darin zu einem gegebenen detektierten Objekt gehören. Techniken zum Berechnen von Konfidenzwerten für Objektdetektionszwecke sind im Stand der Technik wohlbekannt.
-
In 1114 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 1116 werden verschiedene Informationen in einen LID-Anpassungsalgorithmus eingegeben. Diese Informationen umfassen, ohne darauf beschränkt zu sein, Kennungen für jedes Objekt, das in dem Bild erfasst 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 1118-1120 verwendet zum: 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 basierend auf den Konfidenzwerten wahrscheinlich befindet. Die Operationen von 1118 werden nachstehend in Bezug auf 15 ausführlich beschrieben. Die Operationen von 1120 werden nachstehend in Bezug auf 16 beschrieben, anschließend wird 1122 durchgeführt, wo das Verfahren 1100 endet oder andere Operationen durchgeführt werden (z.B. Rückkehr zu 1102).
-
Wie in
15 gezeigt, umfasst Schritt 1118 von
11 eine Vielzahl von Unteroperationen 1504-1506. In 1504 berechnet die On-Board-Rechenvorrichtung eine Wahrscheinlichkeitsverteilungsfunktion („Probabilty Distribution Function“, PDF) f (x
i, y
i) ü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) projizieren würde. Der naive Projektionsalgorithmus wird durch die folgende mathematische Gleichung (1) definiert:
wobei x
i und y
i Bildraumkoordinaten für ein Pixel darstellen, und X, Y und Z LiDAR-Raumkoordinaten für einen Punkt des LiDAR-Datensatzes darstellen. Grundsätzlich wird jeder Punkt des LiDAR-Datensatzes auf ein Pixel eines Bildes projiziert, das sich auf derselben Zeile wie das Pixel befindet, wobei eine Linie von jedem Pixel zu einem Bereich des Bildes gezogen wird.
-
Es gibt mehrere Quellen von Projektionsunsicherheit, wie z.B. die Zeitausrichtung und die Objektbewegung. Wenn mehrere Quellen der Projektionsunsicherheit verwendet werden, dann ist jedes PDF für jeden LiDAR-Punkt erforderlich, um: (i) in Bildraumkoordinaten darstellbar zu sein; (ii) in Bilderfassungsmaskenkoordinaten umwandelbar ui sein (kann übersetzt und skaliert werden); und (iii) zusammenführbar (oder kombinierbar) mit anderen Projektionsunsicherheitsbestimmungs-PDFs zu sein. Die vorliegende Lösung verwendet eine Jacobi der PDF, um eine Unsicherheit von LiDAR-Frame zu Kamerarahmen zu propagieren. Dies (oder eine ähnliche Alternative zur Ausbreitungsunsicherheit) hilft, die Anforderung (i) für die Wahrscheinlichkeitsverteilung zu erfüllen.
-
Die PDF wird dann in Bilderfassungsmaskenkoordinaten umgewandelt, wie bei 1506 gezeigt. Diese Umwandlung wird durch Translation und Skalierung erreicht (wobei die Skalierung in x und die Skalierung in y unabhängig sind). Die Umwandlung wird durch die folgende mathematische Gleichung (2) definiert:
und
stellen die Bildraumgrenzen einer Begrenzungsbox dar und R ist eine Maskenauflösung.
-
Wie in
16 gezeigt, beinhaltet Schritt 1120 von
11 das Durchführen verschiedener Operationen 1604-1608. In 1604 berechnet die bordeigene Rechenvorrichtung eine Wahrscheinlichkeit, dass ein LiDAR-Punkt Ip
i in eine gegebene Bilderfassung d
j (z.B. d
1) unabhängig von allen anderen Bilddetektionen (z.B. d
2, ... , d
10) projiziert wird. Die Wahrscheinlichkeit wird als i
p (Ip
i ∈ d
j) ausgedrückt. An diesem Punkt existiert eine PDF f (x
m, y
m) für eine wahrscheinliche LiDAR-Punktprojektion über Bilderfassungsmaskenkoordinaten. Bei dieser Berechnung werden die Bilderfassungskonfidenz c
d und die Pro-Pixel-Vertrauen c
xm,
ym berücksichtigt. Diese Konfidenzen liegen in einem Intervall [0, 1], stellen aber keine Wahrscheinlichkeiten dar. Eine Abbildung wird angewendet, um eine Wahrscheinlichkeit p(d) von c
d und eine Wahrscheinlichkeit p(mp ∈ d) aus c
xm,
ym zu berechnen, wobei mp ein Maskenpixel darstellt. Die Abbildung kann eine logistische Funktion umfassen, ist aber nicht darauf beschränkt. Die Pro-Pixel-Vertrauen in der Bilderfassungsmaske beziehen sich auf das gesamte Maskenpixel (keine infinitesimalen Koordinaten). Somit berechnet die bordeigene Rechenvorrichtung die Wahrscheinlichkeit, dass ein LiDAR-Punkt in ein spezifisches Bilddetektionsmaskenpixel gemäß der mathematischen Gleichung (3) projiziert:
wobei Ip ein LiDAR-Punkt ist, mp ein Maskenpixel ist,
die x-Grenzen eines Pixels in Maskenkoordinaten darstellt,
die y-Grenzen des Pixels in Maskenkoordinaten darstellt, dmp ein Maskenpixel darstellt, das einer gegebenen Objektdetektion d zugeordnet ist, dy eine y-Achsenkoordinate für ein Maskenpixel darstellt, das der gegebenen Objektdetektion d zugeordnet ist, und dx eine x-Achsenkoordinate für das Maskenpixel ist, die der gegebenen Objektdetektion d zugeordnet ist. Diese Wahrscheinlichkeit p (Ip ∈ mp) wird dann von der bordeigenen Rechenvorrichtung verwendet, um die Wahrscheinlichkeit zu berechnen, dass sich der LiDAR-Punkt in der Bilderfassung unabhängig von allen anderen Bilderfassungen befindet. Diese Berechnung wird durch die folgende mathematische Gleichung (4) definiert:
wobei die Maskenauflösung R auf R ist. Für jeden Punkt wird diese Wahrscheinlichkeit für jede Detektion berechnet, in die der LiDAR-Punkt hineinragen kann. In einigen Szenarien können sich die Wahrscheinlichkeiten auf einen Wert größer als Eins summieren. Es wird davon ausgegangen, dass ein LiDAR-Punkt nur in eine einzelne Bilderfassung hineinragen kann. Somit wird jede unabhängige Wahrscheinlichkeit als unabhängige Messung behandelt (d.h., i
p (Ip ∈ d
1) ist unabhängig von i
p (Ip ∈ d
2)).
-
Die bordeigene Rechenvorrichtung berechnet ferner die Wahrscheinlichkeit, dass der LiDAR-Punkt nicht in eine beliebige Bilderfassung hineinprojiziert, wie bei 1606 gezeigt. Diese Berechnung wird durch mathematische Gleichung (5) definiert:
-
Schließlich berechnet die bordeigene Rechenvorrichtung in 1608 eine abhängige Wahrscheinlichkeit durch Normalisieren über alle berechneten Wahrscheinlichkeiten. Diese Berechnung wird durch die folgende mathematische Gleichung (6) definiert:
wobei i
p (Ip ∈ d) eine Wahrscheinlichkeit repräsentiert wird, dass ein Punkt des LiDAR-Datensatzes unabhängig von allen anderen Bilderfassungen in eine Bilderfassung projiziert und p(∀d lp ∉ d) eine Wahrscheinlichkeit darstellt, dass der LiDAR-Punkt nicht in eine beliebige Bilderfassung hineinprojiziert. Das Ergebnis dieser Berechnung stellt die Wahrscheinlichkeit dar, dass ein LiDAR-Punkt in eine bestimmte Detektion projiziert. Für jeden LiDAR-Punkt gibt der LID-Anpassungsalgorithmus diese Wahrscheinlichkeit für jede Detektion aus, dass der LiDAR-Punkt in den LiDAR-Punkt hineinprojizieren kann. D.h., für jeden Punkt wird eine spärliche Wahrscheinlichkeitsverteilung über Bilddetektionen von dem LID-Anpassungsalgorithmus ausgegeben. Die spärliche Wahrscheinlichkeitsverteilung stellt die Wahrscheinlichkeitsverteilung über einen Satz von Objekterfassungen dar, in denen wahrscheinlich ein LiDAR-Datenpunkt sein soll.
-
Lokale Variationssegmentierung mit Bilderfassungsmerkmalen
-
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. Die Punktwolkencluster (weniger in der Anzahl und mit mehr Kontext als einzelne Punkte) werden zu einem Objekt zusammengeführt. Gemeinsame Verfahren für Punktwolke-Clustering sind verbundene Komponenten und dichtebasierte räumliche Clustering von Anwendungen („DBSCAN“). Beide dieser Verfahren berücksichtigen nur lokale Informationen (und nicht den größeren Kontext der Szene). Ein besseres Verfahren ist die „Point Cloud Local Variations Segmentation“, PCLVS", die 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“ der Autoren Yizhak Ben-Shabat et al beschrieben. 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 ausreichend, um zwei nahe Objekte davon abzuhalten, zusammengeführt zu werden.
-
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 Bilderkennungsfähigkeitsmerkmal und (ii) ein modifiziertes Abstandsmerkmal umfassen. Das Merkmal (i) ist die Differenz, in welchen Bilderfassungen jeder Punkt sich befindet. Jeder Punkt hat eine Per-Kamera-Verteilung von Bilddetektionen, dass dieser in dem Bild enthalten ist (und eine Wahrscheinlichkeit, dass dieser in keiner Bilderfassung enthalten ist). Die Informationen von allen Kameras werden probabilistisch in eine einzelne Zahl kombiniert, die anzeigt, ob die Punkte wahrscheinlich in der gleichen Bilderfassung enthalten 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 einheitliche Dichte von Punkten aufweisen und dass es weniger Laser gibt, die auf die oberen und die unteren Enden eines Objekts gerichtet sind. Das Merkmal (i) und (ii) werden in dem LVS-basierten Algorithmus mit gemeinsamen Merkmalen, wie z.B. Farbähnlichkeit, kombiniert Die Merkmale (i) und (ii) stellen eine überlegene Objekterkennungsfä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.
-
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, performen aber in anspruchsvollen Szenarien gegenwärtig nicht wie gewünscht. Dieser Ansatz nutzt keine anderen Aspekte der Informationen, die von den LiDAR-Daten verfügbar sind , wie (i) die negative Information, die von LiDAR bereitgestellt wird, kehrt durch Bereiche der Umgebung zurück, ohne zu interagieren, 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. Ferner 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. Bei Untersegmentierungsfehlern ist es besonders schwierig, diese nach der Segmentierung 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 Ermöglichen einer Nachverarbeitung mit Erwägung von Zusammenführungen von Segmenten, was ein grundsätzlich anderer Algorithmus ist. Die vorliegende Lösung schlägt einen neuen LVS-basierten Segmentierungsansatz vor, der diese Probleme löst: Bereitstellen eines Frameworks zum Integrieren zusätzlicher Informationen von den LiDAR-Sensoren; Definieren des Problems, um sicherzustellen, dass der Ausgang in einer Weise strukturiert wird, die durch eine nachgeschaltete Verarbeitung stärker angepasst werden kann; und Verbessern der Leistung durch Reduzieren der Untersegmentierung und Verbessern des Grenzrückrufs („Boundary Recall“).
-
Unter Bezugnahme auf 17 wird eine Darstellung bereitgestellt, die zum Verständnis des neuen LVS-Algorithmus 1700 der vorliegenden Lösung nützlich ist. Wie in 17 gezeigt, werden die LiDAR-Datenpunkte 1702 in den LVS-Algorithmus 1700 eingegeben. Die LiDAR-Datenpunkte 1702 werden an einen Graphen-Konstruktor 1704 weitergeleitet, wo ein Konnektivitätsgraph durch Plotten der LiDAR-Datenpunkte auf einem 3D-Graphen und Verbinden von LiDAR-Datenpunkten konstruiert wird. Die LiDAR-Datenpunkt-Verbindungen können darauf basierend hergestellt werden, ob zwei Punkte innerhalb eines räumlichen Schwellenabstands voneinander liegen, und/oder, ob zwei Punkte innerhalb eines zeitlichen Schwellenabstands voneinander liegen. In anderen Szenarien ist jeder LiDAR-Datenpunkt mit seinen K-nächsten Nachbarn verbunden. In noch anderen Szenarien wird eine Delaunay-Triangulation konstruiert und als Konnektivitätsgraph verwendet. Die verbundenen LiDAR-Datenpunkte stellen einen vorgeschlagenen Satz von LiDAR-Datenpunkten dar, die zu einem Segment 1712 zusammengeführt werden sollten. Ein beispielhafter Graph 1800 ist in 18 bereitgestellt. Wie in 18 gezeigt, weist der Graph 1800 eine Vielzahl von Knoten 1802 auf, die LiDAR-Datenpunkte oder Messungen darstellen. Verbindungslinien 1804 wurden zwischen den Knoten 1802 hinzugefügt. Die Verbindungslinien 1804 werden hier auch als Graphenkanten eij bezeichnet.
-
Als nächstes bestimmt ein Deskriptor-Bestimmer 1706 einen Deskriptor für jeden Knoten 1802 (oder LiDAR-Datenpunkt). Der Deskriptor ist ein Vektor V von Elementen, die den Knoten (oder den LiDAR-Datenpunkt) charakterisieren. Die Elemente umfassen, ohne darauf beschränkt zu sein, Oberflächennormalen N
i, einen Pro-Punkt-Farbwert (R
iG
iB
i) basierend auf einem Bild (z.B. den Bild 1200 von
12), eine Intensität l
i, eine Textur T
i, räumliche Koordinaten (x
i, y
i, z
i), eine Höhe über Grund H
i, eine Wahrscheinlichkeitsverteilung cI
i über Objektklassen für Punkt-(oder Knoten-) Bilddetektionen, die sie in einen Satz von Instanzkennungen {idi}, ein bildbasiertes Merkmal f
i und/oder ein Fast-Point-Feature-Histogramm FPFH
i projizieren. Jedes der aufgelisteten Elemente R
iG
iB
i, I
i, T
i, (x
i, y
i, z
i) und FPFH
i ist im Stand der Technik wohlbekannt. Dementsprechend kann der Vektor V durch die folgende mathematische Gleichung (7) definiert werden:
-
Ein Kantengewichtszuordner 1708 ordnet jedem Graphenrand e
ij Gewichte zu. Die Graphenkante umfasst ein Kantenmerkmal MD
i. Der modifizierte Abstand MD
i ist eine erweiterte oder kontrahierte Höhenkomponente eines geometrischen Abstands zwischen Knoten (oder LiDAR-Datenpunkten). Der modifizierte Abstand MD
i kann durch die folgende mathematische Gleichung (8) definiert werden:
wobei
H ist die Punkthöhe über Grund, a und k sind Konstanten für eine logistische Funktion, die die Z-Achsen-Abstände komprimiert, wenn Punkte nahe am Boden liegen.
-
Die Gewichte repräsentieren jeweils ein Dissimilaritätsmaß zwischen zwei benachbarten Knoten 1802. Ein Gewicht wird für jede Art von Element, das in dem Vektor V enthalten ist, berechnet. Insbesondere wird ein Gewicht w
n für die Oberflächennormale berechnet, das durch die folgende mathematische Gleichung (9) definiert werden kann:
-
Ein Gewicht w
c wird für die Farbe berechnet, das durch die folgende mathematische Gleichung (10) definiert werden kann:
-
Ein Gewicht w
l wird für die Intensität berechnet, die durch die folgende mathematische Gleichung (11) definiert werden kann:
wobei I
i und I
j LiDAR-Punktintensitäten sind und I
max der maximal mögliche Intensitätswert ist. Ein Gewicht w
d wird für 3D-Graphkoordinaten berechnet, die durch die folgende mathematische Gleichung (12) definiert werden können:
wobei d
min einen minimalen Abstand innerhalb des Graphen darstellt, und d
max einen maximalen Abstand innerhalb des Graphen darstellt.
-
Ein Gewicht wcl wird für cIi berechnet, das durch die folgende mathematische Gleichung (13) definiert werden kann. Der Wert des Gewichts wci kann 1 sein, wenn die Objektklassen unterschiedlich sind, oder -1, wenn die Objektklassen gleich sind. Ein Graphen-Knoten kann aus mehreren LiDAR-Punkten zusammengesetzt sein. Wie oben angemerkt, ist cIi die Wahrscheinlichkeitsverteilung über Objektklassen für konstituierende Punkte. Ein Bhattacharyya-Abstand kann verwendet werden, um die Ähnlichkeit zwischen zwei Wahrscheinlichkeitsverteilungen zu berechnen.
-
Ein Gewicht w
fPFH wird für ein False-Point-Feature-Histogramm berechnet, das durch die folgende mathematische Gleichung (14) definiert werden kann:
-
Ein Gewicht w
IDC wird für die Bilderfassungsfähigkeit berechnet, die durch die folgende mathematische Gleichung (15) definiert werden kann:
wobei c die Kompatibilität zwischen Punkten ist, C der Satz aller Kameras ist, D
c der Satz von Bilderfassungen in C ist und d die Klemmfunktion ist.
-
Ein Gewicht wMD wird für einen modifizierten Abstand berechnet, der gleich MDij - siehe oben - sein kann.
-
Die obigen Gewichte können zu einem nicht-negativen Skalar w(e
ij) durch zum Beispiel Linearkombination kombiniert werden. Die Informationen von allen Kameras werden probabilistisch in eine einzelne Zahl kombiniert, die anzeigt, ob die Punkte sich wahrscheinlich in der gleichen Bilderfassung befinden oder nicht. Der nicht-negative Skalierer w(e
ij) kann durch die folgende mathematische Gleichung (16) definiert werden:
wobei k
n, k
c, k
I, k
T, k
d, k
H, k
cI, k
id, k
FPFH, k
IDC und k
MD vorgegebene Konstanten sind. Der Skalierer w(e
ij) wird dann durch den Kantenzuordner 1708 als das Kantengewicht für eine gegebene Graphenkante e
ij zugewiesen. Die Kantengewichte w(e
ij) werden dann einem LiDAR-Punktmerger 1710 zugeführt.
-
Der LiDAR-Punktmerger 1710 verwendet die Kantengewichte w(eij), um zu entscheiden, welche LiDAR-Datenpunkte zusammengeführt werden sollten, um Segmente 1712 zu bilden. Die LiDAR-Punkte werden basierend auf diesen Entscheidungen zusammengeführt. Die Ausgabe des LiDAR-Punktmergers 1710 ist eine Vielzahl von Segmenten 1712. Die Segmente 1712 werden in nachfolgenden Segmentzusammenführungsoperationen verwendet.
-
Die iterativen Segmentzusammenführungsoperationen, die von dem LiDAR-Punktmerger 1710 durchgeführt werden, beinhalten das Bauen von Segmenten durch iteratives Zusammenführen kleinerer Segmente, bis eine Stoppbedingung erreicht ist. Insbesondere werden alle Knoten 1802 zunächst als einzelne Segmente betrachtet, und alle Graphenkanten 1804 werden in aufsteigender Reihenfolge durch das Kantengewicht w(e
ij) sortiert. Die Graphenkanten 1804 werden berücksichtigt, um jede Graphenkante als Merge- oder Zusammenführungsvorschlag zu behandeln, wenn die Graphenkante zwei verschiedene Segmente verbindet. Ein Merge-Vorschlag 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. Formeller dargestellt, bei gegebenen Segmenten C
i, C
j, die durch eine Kante e
ij mit einem Gewicht w(e
ij) verbunden sind,
wobei MST(Cx) einen minimalen Spannbaum von C definiert, und δ einen Parameter darstellt, der einen Grad der auftretenden Segmentierung steuert. Dieser Schwellenwert kann auf einer Pro-Element-Basis oder auf einer gewichteten Summe des für die Graphenkante definierten Gewichts angewendet werden. Die endgültige Ausgabe 1712 ist eine Segmentierung aller Beobachtungen in verschiedene Cluster. Jedes der Segmente 1712 umfasst einen oder mehrere LiDAR-Punkte.
-
In einigen Szenarien wird ein Metrikgenerator 1714 bereitgestellt, um Segmentierungsmetriken aus der Segmentierungsoperation und der Segmentierungsausgabe zu sammeln, zu berechnen und/oder zu erzeugen. Um diese zu definieren, wird angenommen, dass eine markierte Bodenwahrheit („Ground Truth“) 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 erfasst, die vermieden werden sollten, Kennzeichnungen für Hindernisse existieren sollten, die nicht von Interesse für das Erfassungssystem sind, jedoch vermieden werden sollten (z.B. Fremdobjekttrümmer, Straßenschilder und/oder Mülltonnen). Die vorgeschlagenen Metriken umfassen eine Untersegmentierungsfehlermetrik, eine Grenzabrufmetrik und eine Instanzpräzisions- und Abrufmetrik.
-
Unter der Segmentierungsfehlermetrik wird gemessen, wie viele Segmente in den Segmentierungsergebnissen enthalten sind, 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:
wobei GT einen Satz von Ground-Truth-Labels darstellt und O einen Satz von berechneten Kennzeichnungen darstellt.
-
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. Somit zielt diese Metrik darauf ab, wie viele der LiDAR-Datenpunkte, die Grenzen von Objekten repräsentieren, durch eine gegebene Segmentierung extrahiert werden. Dies kann berechnet werden, indem die 3D-Punktwolkendaten in ein Tiefenbild projiziert werden und jedes Pixel mit einem zugeordneten Segmentkennzeichnung eingefärbt wird. Grenzen können somit berechnet werden, indem die Kanten in dem Bild gefunden werden. Der gleiche Prozess kann mit der Ausgabesegmentierung durchgeführt werden, wobei Kanten dann als Echte-Positive (TP) (Kanten, die in beiden Bildern vorhanden sind) und Falsche-Negative (FN) (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:
-
Eine Performance 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 mit einem Ground-Truth-Label in demselben assoziiert ist, wie es bei einem Untersegmentierungsfehler durchgeführt wird. Mit dieser Information können Präzision und Abruf standardmäßig berechnet werden.
-
Segment-Merger
-
Insbesondere sind die aus dem LVS-Algorithmus 1700 ausgegebenen Segmente 1712 zu klein, um Quader zu schätzen. Daher wird ein Segment-Merger verwendet, um Segmente zu konstruieren, die groß genug für eine nachfolgende Formung vor einer (z.B. Quader)-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-Schwerpunkt-Abstand aufweisen, der größer als ein Schwellenwert ist (z.B. 3 m); Berechnen von Merkmalen für jedes Segmentpaar (wobei der Schwerpunkt-zu-Schwerpunkt-Abstand 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.
-
Es wird nun auf 17 Bezug genommen, in der eine Darstellung eines veranschaulichenden Segmentmergers 1900 gegeben ist. Die Segmente 1712 werden in das Segment-Merger 1900 eingegeben. Die Segmente 1712 können optional bei 1906 vorverarbeitet werden. Vor-Verarbeitungsoperationen sind im Stand der Technik wohlbekannt. Die Vorverarbeitung kann das Auswählen von Paaren von Segmenten, das Erhalten von Schwerpunkten für die Segmente, das Bestimmen von Schwerpunkt-zu-Schwerpunkt-Abständen für jedes Paar von Segmenten, das Identifizieren, welche Paare von Segmenten einen Schwerpunkt-zu-Schwerpunkt-Abstand aufweisen, der größer als ein Schwellenwert (z.B. 3 m) ist, und das Entfernen der identifizierten Paare von Segmenten aus einer weiteren Betrachtung für Segmentzusammenführungszwecke beinhalten. In einigen Szenarien sind die Schwellenwerte als eine Summe eines Radius des ersten Segments von dem Schwerpunkt und eines Radius des zweiten Segments vom Schwerpunkt plus einer vordefinierten Konstanten (z.B. 0.5 m) definiert.
-
Die verbleibenden Segmente werden einem Attributgenerator 1908 und einem Graphenkonstruktor 1910 zugeführt. Am Attributgenerator 1908 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 bei 1120 von 11 für die LiDAR-Datenpunkte, die in dem Segment enthalten sind, berechnet werden; (iii) einen Prozentsatz von LiDAR-Datenpunkten, die in dem Segment enthalten sind, die auf einer Straße liegen („On Road“); (iv) einen Prozentsatz von LiDAR-Datenpunkten, die in dem Segment enthalten sind, die abseits einer Straße liegen („Off Road“); und/oder (v) eine Gesamtanzahl von Spuren, die ein Segment zumindest teilweise überlappt. Die Attribute (i), (iii), (iv) und (v) können unter Verwendung einer Straßenkarte, einer Fahrspurkarte und/oder einer anderen Karte bestimmt werden. Zum Beispiel wird das Attribut (i) bestimmt, indem eine Region auf der Karte identifiziert wird, wo sich das Segment befindet. Die Attribute (ii) und (iii) werden bestimmt durch Identifizieren, welche LiDAR-Datenpunkte in einem Segment auf einer Straße liegen, die in der Karte enthalten ist, und Identifizieren, welche LiDAR-Datenpunkte in einem Segment sich nicht auf einer Straße befinden, die in der Karte enthalten ist. Das Attribut (iv) wird bestimmt durch Identifizieren, welche Spuren in einer Karte die LiDAR-Datenpunkte der Segmentabdeckung abbilden, und Zählen der Anzahl der identifizierten Spuren.
-
Bei dem Graphen-Konstruktor 1910 wird ein Graph konstruiert, in dem die Segmente aufgetragen oder geplottet sind. Verbindungen oder „Links“ werden dem Graphen für Paare von nahegelegenen Segmenten (unter Berücksichtigung der Größe jedes Segments) hinzugefügt. Diese Verbindungen definieren Paare von Segmenten, für die Merkmale durch den Merkmalsgenerator 1912 erzeugt werden sollten.
-
In einigen Szenarien beschreibt jeder Satz von Merkmalen eine Paarbildung zwischen zwei Segmenten. Die Merkmale können unter Verwendung der durch den Attributgenerator 1908 erzeugten Attribute erzeugt werden. Die Merkmale können umfassen, sind aber nicht darauf beschränkt:
- • Differenz zwischen einem Durchschnitt einer Wahrscheinlichkeitsverteilung, die in 1120 von 11 für ein erstes Segment berechnet wurde, und einem Durchschnitt von Wahrscheinlichkeitsverteilungen, die in 1120 von 11 für ein zweites Segment berechnet wurden;
- • Differenz der On-Road-Anteile, z.B. eine Prozentsatz-Differenz 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 der Off-Road-Anteile (z.B. eine Prozentsatz-Differenz von LiDAR-Datenpunkten, die in einem ersten Segment enthalten sind, das abseits einer Straße ist, und einem Prozentsatz von LiDAR-Datenpunkten, die in einem zweiten Segment enthalten sind, die abseits einer Straße sind);
- • Bereichskompatibilität (z.B. einen Überlappungsgrad zwischen den 2D-Spuren, die durch erste und zweite Segmente abgedeckt sind);
- • eine 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 Gesamtzahl der Spuren, die ein erstes Segment zumindest teilweise überlappt, und der Gesamtanzahl von Spuren, die ein zweites Segment zumindest teilweise überlappt;
- • einen 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., wenn ein Höhenintervall für jedes Segment schneidet, ist 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, wobei C einen Satz von Kameras darstellt, d einen Satz von Bilddetektionen darstellt, wIcd summierte Wahrscheinlichkeiten von Punkten in Segment I darstellt, die mit der Bilderfassung d in der Kamera c zusammenpassen, und npIc eine Gesamtanzahl von Punkten in Segment I darstellt, die in die Kamera c projiziert werden. Dies führt zu einer Zahl zwischen 0 und 1 (weil für jedes Segment. Dies gewichtet den Beitrag jeder Kamera durch die Anzahl von Punkten, die in sie hineinprojizieren;
- • 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 eine Schwelle gibt, dann wird die Kompatibilität als (Segment-1-Punkte, die zu der Segment-1-dominanten Maske projizieren) * (Segment-2-Punkte, die zu der Segment-2-dominanten Maske projizieren) bestimmt);
- • Differenz der Objekttypverteilungen (z.B. gemäß Erdbewegungsentfernung, Earth Mover Distance);
- • 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 dies dieser Objekttyp);
- • Objekttyp-Kompatibilität (z.B., wenn eine Überschneidung in den Typen vorhanden ist, in die jeder konstituierende Punkt projiziert, dann kompatibel);
- • dominante Objekttyp-Kompatibilität (z.B., wenn es einen dominanten Objekttyp gibt (die meisten Punkte projizieren 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 im Farbhistogramm.
-
Die Merkmale werden dann von dem Merkmalsgenerator 1912 zu dem maschinell gelernten Klassifikator 1914 geleitet. Der maschinell gelernte Klassifikator 1914 analysiert jeden Satz von Merkmalen, um eine Wahrscheinlichkeit zu bestimmen, dass die entsprechenden Segmente zusammengeführt werden sollten. Zum Beispiel wird eine niedrige Wahrscheinlichkeit zum 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 in dieser Hinsicht 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 der Grad der Wahrscheinlichkeit kann durch eine beliebige Kombination von Merkmalen bestimmt werden, die gemäß einer gegebenen Anwendung ausgewählt werden.
-
Der maschinell gelernte Klassifikator 1914 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 können hier ein oder mehrere der folgenden maschinellen Lernalgorithmen verwendet werden: ü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 1914 implementiert.
-
Die Zusammenführungswahrscheinlichkeiten werden dann durch den maschinell erlernten Klassifikator 1914 analysiert, um die Paare von Segmenten als Zusammenführungspaare oder Nicht-Zusammenführungspaare zu klassifizieren. Zum Beispiel wird ein Paar von Segmenten als ein Zusammenführungspaar klassifiziert, wenn die jeweilige Merge- oder Zusammenführungswahrscheinlichkeit 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.
-
Die Klassifikationen werden dann an den Merger 1916 weitergegeben. Der Merger 1916 vereinigt die Segmente gemäß den Klassifikationen. Zum Beispiel werden Segmente in jedem Zusammenführungspaar zusammengeführt. Insbesondere werden redundante Verbindungen nicht für Segmentzusammenführungszwecke ausgewertet. Wenn zum Beispiel Segment A mit Segment B übergehen sollte und das Segment B mit dem Segment C zusammenlaufen sollte, dann evaluiert das Segmentmerger 1916 das Zusammenführungssegment A nicht mit Segment C. Die vorliegende Lösung ist nicht auf die Einzelheiten dieses Beispiels beschränkt.
-
Es sollte beachtet werden, dass ein Problem, das schwierig mit einer paarweisen Zusammenführungsperspektive zu behandeln ist, Fragmente größerer Fahrzeuge darstellen. Zum Beispiel kann ein Großraumlastwagen als mehrere Fragmente beobachtet werden, die weit auseinander liegen. Aufgrund der Projektionsunsicherheit projizieren 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 1916 zusätzliche Operationen durch, um jedes große detektierte Segment, das als ein 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 der On-Board-HD-Karte und den visuellen Kurs von 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 helfen können, ist die Unterstützung der Segmentierung von Bussen. Ein großer Fensterbereich ermöglicht es Laserlicht, die inneren Abschnitte des Busses durchzulassen und 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 1916 eine Vielzahl von zusammengeführten Segmenten 1914 aus.
-
Objekterkennungssegmentfilterung
-
Nicht alle detektierten Segmente von LiDAR-Datenpunkten sind für das AV relevant, und viele der Segmente entsprechen dem 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 Moving-Akteure von Interesse sind, können statische Objekte sicher verworfen werden, um den Rest der CLF-Objektdetektionspipeline zu verbessern und die Rechenanforderungen des CLF-Objekterkennungsalgorithmus zu reduzieren.
-
Aufgrund der Übertragungsprobleme für Kennzeichnungen gibt es mehrere Segmente von LiDAR-Datenpunkten innerhalb des Kegelstumpfs, die der Bilderfassungsmaske 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.
-
Ein Beispiel ist eine Fahrzeugdetektion mit einem Pfahl davor und zusätzlich einem Fußgänger dahinter. LiDAR-Datenpunkte, 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 Fahrzeuge gelabelt werden. Um die Mehrdeutigkeit der Bilderfassungsmaske in der Segmentzuordnung aufzulösen, werden Projektionscharakteristika für alle Segmente berechnet, die LiDAR-Datenpunkte enthalten, die in eine bestimmte Bilderfassungsmaske hineinprojizieren. Es werden eine oder mehrere beste Übereinstimmungen berichtet, die wahrscheinlich dem auf dem Bild erfassten Objekt entsprechen. Dies hilft dabei, Clutter aus dem Satz von verfolgten Objekten zu eliminieren und die Pipeline-Latenz und die Rechenanforderungen zu reduzieren.
-
Unter Bezugnahme auf
20 wird ein Flussdiagramm eines veranschaulichenden Verfahrens 2000 zur Objektdetektion-Segmentfilterung bereitgestellt. Eine Eingabe in ein Segmentfilter ist eine Sammlung von Kandidatensegmenten, die in früheren Stufen der Pipeline gebildet werden, wobei jeder Kandidat dem Objekt der realen Welt entsprechen kann oder nicht. Für jedes Segment würde es zwei Sätze von Punkten geben, die das Segment bilden. P-Punkte, die in die Bilderfassungsmaske hineinprojizieren. N-Punkte, die nicht in die Bilderfassungsmaske hineinprojizieren, sondern in unmittelbarer Nähe zu dem Segment. Die Intuition hinter dem Hinzufügen von nahegelegenen Punkten, gefolgt von der geometrischen Segmentierung, besteht darin, dass die projizierten Punkte eines falschen Clusters (wie einer Wand oder eines Baums) viele N-Punkte innerhalb eines engen Abstands zu P-Punkten aufweisen, was zu einem einzelnen Cluster führt, der beide Punktkategorien enthält. Der resultierende falsche Cluster enthält eine relativ kleine Anzahl von P-Punkten im Vergleich zu der Gesamtanzahl von Punkten in dem Cluster Ein wahrer Cluster wird jedoch meist aus P-Punkten mit einer relativ kleinen Anzahl von N-Punkten bestehen. Somit wird ein Cluster-Merkmal U benötigt, um echte Segmente von LiDAR-Datenpunkten von falschen Segmenten von LiDAR-Datenpunkten zu unterscheiden. Das Clustermerkmal U wird durch die folgende mathematische Gleichung (20) definiert:
wobei P eine Anzahl von projizierten Punkten in einem Cluster darstellt und N eine Anzahl von Punkten in engem Abstand zu den Punkten P darstellt. Manchmal, wenn das Clustermerkmal U allein verwendet wird, können Fälle auftreten, bei denen es nicht ausreichend ist, echte Segmente zu identifizieren. Zum Beispiel kann ein größeres wahres Objekt (z.B. Fahrzeug) durch ein kleineres Falschobjekt (z.B. einen Pfahl) verdeckt werden. In diesem Fall kann ein kleineres Falsch-Objekt vollständig aus P-Punkten bestehen, während ein Fahrzeugcluster eine Mischung von P-Punkten und N-Punkten aufweist. Um solche Fälle zu unterstützen, wird ein weiteres Cluster-Merkmal V benötigt und in Verbindung mit dem Cluster-Merkmal U verwendet, um zu verifizieren, dass das Segment korrekt mit einer gegebenen Objektdetektion assoziiert ist. Das Clustermerkmal V wird durch die folgende mathematische Gleichung (21) definiert:
wobei D eine Gesamtanzahl von Punkten darstellt, die in eine bestimmte Bilderfassungsmaske m (z.B. die Maske 1400 von
14) hineinprojizieren. Die D-Punkte werden üblicherweise über mehrere Objekte in der Welt verteilt.
-
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.
-
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-Breite-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.
-
Dementsprechend beginnt das Verfahren 2000 mit 2004, wo verschiedene Informationen für eine gegebene Bilderfassungsmaske m (z.B. die Maske 1400 von
14) erhalten werden (z.B. aus dem Speicher 412 aus
4). Diese Information umfasst, ohne darauf beschränkt zu sein, P
m, das eine Anzahl von Punkten eines LiDAR-Datensatzes darstellt, die in die Maske m hineinprojizieren, wobei S
i eine Anzahl von Punkten darstellt, die ein gegebenes zusammengeführtes Segment s von LiDAR-Datenpunkten bilden (z.B. das zusammengesetzte Segment 1914 von
19), P
s m, das eine Anzahl von Punkten in dem gegebenen zusammengeführten Segment s darstellt, das in die Maske m projiziert, eine Höhe h
s eines zusammengeführten Segments, eine Länge I
s des zusammengeführten Segments und/oder eine Breite w
s des zusammengeführten Segments. Diese Information wird in den Schritten 2006-2010 zum Bestimmen eines oder mehrerer Cluster-Merkmale U, K, H, L und/oder LTW eingesetzt. Das Cluster-Merkmal U kann gemäß der folgenden mathematischen Gleichung (22) bestimmt werden, und das Cluster-Merkmal V kann gemäß der folgenden mathematischen Gleichung (23) bestimmt werden:
-
Das Cluster-Merkmal H ist gleich h
s gesetzt. Das Cluster-Merkmal L ist gleich I
s gesetzt. Das Clustermerkmal LTW kann durch die folgende mathematische Gleichung (24) bestimmt werden:
-
In Schritt 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:
Insbesondere ist die vorliegende Lösung nicht auf die mathematische Gleichung (25) beschränkt. Der Projektionswert kann das Produkt einer beliebigen Kombination von Clustermerkmalen darstellen.
-
Als nächstes wird in 2014 der Projektionswert verwendet, um zu verifizieren, dass das zusammengeführte Segment Teil des detektierten Objekts ist, das einer gegebenen Bilddetektionsmaske zugeordnet ist. Eine solche Verifizierung kann vorgenommen werden, wenn der Projektionswert größer als ein Schwellenwert ist. Eine Objekterkennung kann in 2016 durchgeführt werden, wenn eine solche Verifizierung durchgeführt wird. In einigen Szenarien wird die Objekterkennung basierend auf den Ergebnissen von Operationen 2004-2014 für zwei oder mehr zusammengeführte Segmente durchgeführt, die der gleichen Bilderfassungsmaske 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 die für das gegebene zusammengeführte Segment berechnete PS größer als die für die anderen zusammengeführten Segmente der mehreren zusammengeführten Segmente berechneten PS-Werte ist. Anschließend wird Schritt 2018 durchgeführt, wo das Verfahren 2000 endet oder eine andere Verarbeitung durchgeführt wird.
-
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 angeregt werden. 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.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
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.
-
Zitierte Patentliteratur
-
- US 17/101313 [0001]
- US 16352172 [0079]
- US 10891744 B1 [0079]