-
HINTERGRUND
-
Querverweis und Prioritätsanspruch
-
Dieses Patentdokument beansprucht die Priorität der US-Patentanmeldung Nr.
17/118.705 , die am 11. Dezember 2021 eingereicht wurde und durch Bezugnahme in vollem Umfang hierin aufgenommen wird.
-
Erklärung des technischen Bereichs
-
Die vorliegende Offenbarung bezieht sich allgemein auf Objekterkennungssysteme. Insbesondere bezieht sich die vorliegende Offenbarung auf die Implementierung von Systemen und Verfahren zur Objekterkennung unter Verwendung von Stereovisionsinformationen.
-
Beschreibung der verwandten Technik
-
Eine Stereokamera ist eine Kamera mit zwei oder mehr Linsen zur Simulation des binokularen Sehens des Menschen. Unter Computer-Stereovision versteht man die Extraktion von 3D-Informationen aus digitalen Bildern, die von Stereokameras aufgenommen wurden. Durch den Vergleich von Informationen über eine Szene aus zwei Blickwinkeln können 3D-Informationen extrahiert werden, die eine 3D-Punktwolke definieren, die ein Disparitätsbild bildet. Das Disparitätsbild liefert eine 3D-Schätzung der Umgebung zusammen mit mitregistrierten Intensitäts- oder Farbdaten. Objekte können anhand des Disparitätsbildes erkannt werden. Die auf Stereovision basierende Objekterkennung ist jedoch ein rechenintensiver Prozess.
-
ZUSAMMENFASSUNG
-
Die vorliegende Offenbarung betrifft die Implementierung von Systemen und Verfahren zum Betreiben eines Fahrzeugs. Die Verfahren umfassen, durch einen Prozessor: Erhalten eines Paares von Stereobildern, die von einer Stereokamera aufgenommen wurden; Verarbeiten des Paars von Stereobildern, um eine Disparitätskarte zu erzeugen, die eine Vielzahl von Pixeln umfasst, die durch Intensitätswerte definiert sind; Konvertieren jedes Intensitätswerts in eine 3D-Position in einer Karte (wobei die 3D-Position einen Standort eines Datenpunkts in einer Punktwolke definiert); Durchführung einer hierarchischen Entscheidungsbaumklassifizierung (z.B. einer Random-Forest-Klassifizierung), um eine Klassifizierung für jeden Datenpunkt in der Punktwolke zu bestimmen (die Klassifizierung ist eine Vordergrundklassifizierung oder eine Hintergrundklassifizierung); und Verwenden der Klassifizierungen, um die autonome Steuerung des Fahrzeugs zu erleichtern. Beispielsweise kann die Klassifizierung verwendet werden, um eine oder mehrere prädizierte Objekttrajektorien zu bestimmen, die in einem Fahrzeugtrajektorien-Erzeugungsprozess und/oder einem Fahrzeugdynamik-Steuerungsprozess verwendet werden können.
-
In einigen Szenarien kann der Intensitätswert auf der Grundlage mindestens eines der Folgenden in eine 3D-Position umgewandelt werden: eines bekannten Zeitpunkts der Bilderfassung, eines bekannten Standorts des Fahrzeugs zum Zeitpunkt der Bilderfassung, bekannter Positionen der Stereokameras relativ zum Fahrzeug, bekannter Pixelausrichtungsrichtungen und/oder bekannter Abstände der Pixel zu den Stereokameras. Um die Gesamtzahl der Datenpunkte in der Punktwolke vor der Durchführung der hierarchischen Entscheidungsbaumklassifizierung zu reduzieren, kann eine Bodensegmentierung durchgeführt werden.
-
Für jeden Datenpunkt kann ein Deltawert ermittelt werden, der eine Differenz zwischen einem Bodenhöhenwert und einem Z-Koordinatenwert darstellt, der teilweise eine entsprechende 3D-Position in der Karte definiert. Die hierarchische Entscheidungsbaumklassifizierung kann auf dem Deltawert basieren. Die hierarchische Entscheidungsbaumklassifizierung kann alternativ oder zusätzlich auf dem Intensitätswert, der 3D-Position, einem Farbwert für ein erstes Pixel im Paar von Stereobildern und mindestens einem Merkmal eines zweiten Pixels im Paar von Stereobildern basieren. Das zweite Pixel kann sich in der Nähe des ersten Pixels im Stereobildpaar befinden. Zu den Merkmalen des zweiten Pixels können unter anderem ein Intensitätswert, eine 3D-Position, ein Farbwert und eine Position des zweiten Pixels relativ zum ersten Pixel im Stereobildpaar gehören.
-
Die hierarchische Entscheidungsbaumklassifizierung wird durch maschinell erlernte Modelle erleichtert, die jeweils mit einer Reihe von Entscheidungsbäumen arbeiten. Jeder Entscheidungsbaum erzeugt eine Klassenvorhersage für jeden Datenpunkt in der Punktwolke und einen Konfidenzwert für die Klassenvorhersage. Die von den Entscheidungsbäumen im Satz erzeugten Klassenvorhersagen werden jeweils miteinander kombiniert, um eine endgültige Klassenvorhersage für jeden Datenpunkt zu ermitteln. Die endgültigen Klassenvorhersagen können mithilfe einer gewichteten Funktion bestimmt werden, bei der die Konfidenzwerte als Gewichte verwendet werden.
-
Die implementierenden Systeme umfassen: einen Prozessor; und ein nichtflüchtiges computerlesbares Speichermedium, das Programmieranweisungen umfasst, die so konfiguriert sind, dass sie den Prozessor veranlassen, ein Verfahren zum Betreiben eines Fahrzeugs umzusetzen. Die Programmieranweisungen umfassen Anweisungen zum: Erhalten eines Paares von Stereobildern, die von einer Stereokamera aufgenommen wurden; Verarbeiten des Bildpaars, um eine Disparitätskarte zu erzeugen, die eine Vielzahl von Pixeln umfasst, die durch Intensitätswerte definiert sind; Konvertieren jedes Intensitätswerts in eine 3D-Position in einer Karte (jede 3D-Position definiert einen Standort eines Datenpunkts in einer Punktwolke); Durchführen einer hierarchischen Entscheidungsbaumklassifizierung (z.B. eine Random-Forest-Klassifizierung), um eine Klassifizierung für jeden Datenpunkt in der Punktwolke zu bestimmen (wobei die Klassifizierung eine Vordergrundklassifizierung oder eine Hintergrundklassifizierung sein kann); und Einsetzen der Klassifizierungen, um die autonome Steuerung des Fahrzeugs zu erleichtern.
-
In einigen Szenarien wird jeder Intensitätswert in die 3D-Position umgewandelt, basierend auf mindestens einem bekannten Zeitpunkt der Bilderfassung, einem bekannten Standort des Fahrzeugs zum Zeitpunkt der Bilderfassung, bekannten Positionen der Stereokameras relativ zum Fahrzeug, bekannte Pixelausrichtungsrichtungen und bekannten Abstände der Pixel zu den Stereokameras. Die Programmieranweisungen können auch Anweisungen zum Reduzieren einer Gesamtzahl von Datenpunkten in der Punktwolke basierend auf der Bodenhöhe vor der Durchführung der hierarchischen Entscheidungsbaumklassifizierung umfassen.
-
Die Programmieranweisungen können außerdem Anweisungen zum Berechnen eines Deltawerts für jeden Datenpunkt umfassen, der eine Differenz zwischen einem Bodenhöhenwert und einem Z-Koordinatenwert darstellt, der teilweise eine jeweilige 3D-Position in der Karte definiert. Die hierarchische Entscheidungsbaumklassifizierung kann auf dem Deltawert basieren. Die hierarchische Entscheidungsbaumklassifizierung kann zusätzlich oder alternativ auf dem Intensitätswert, der 3D-Position, einem Farbwert für ein erstes Pixel im Stereobildpaar und/oder Merkmalen eines zweiten Pixels im Stereobildpaar basieren. Das zweite Pixel kann sich in der Nähe des ersten Pixels im Stereobildpaar befinden. Zu den Merkmalen des zweiten Pixels können unter anderem ein Intensitätswert, eine 3D-Position, ein Farbwert und eine Position des zweiten Pixels relativ zum ersten Pixel im Stereobildpaar gehören.
-
Die hierarchische Entscheidungsbaumklassifizierung wird durch maschinell erlernte Modelle erleichtert, die jeweils mit einer Reihe von Entscheidungsbäumen arbeiten. Jeder Entscheidungsbaum erzeugt eine Klassenvorhersage für jeden Datenpunkt in der Punktwolke und einen Konfidenzwert für die Klassenvorhersage. Die von den Entscheidungsbäumen im Satz erzeugten Klassenvorhersagen werden jeweils miteinander kombiniert, um eine endgültige Klassenvorhersage für jeden Datenpunkt zu bestimmen. Die endgültigen Klassenvorhersagen können mithilfe einer gewichteten Funktion bestimmt werden, bei der die Konfidenzwerte als Gewichte verwendet werden.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Die vorliegende Lösung wird unter Bezugnahme auf die folgenden Zeichnungsfiguren beschrieben, in denen in allen Figuren gleiche Bezugszeichen gleiche Elemente bezeichnen sollen.
- 1 veranschaulicht ein System, das die vorliegende Lösung implementiert.
- 2 ist eine Darstellung einer beispielhaften Architektur für ein Fahrzeug.
- 3 ist eine Darstellung eines beispielhaften Computergeräts.
- 4 stellt ein Blockdiagramm bereit, das hilfreich ist, um zu verstehen, wie die Steuerung eines Fahrzeugs gemäß der vorliegenden Lösung erreicht wird.
- 5 stellt ein Flussdiagramm einer veranschaulichenden Methode zur Vordergrund-/Hintergrundklassifizierung unter Verwendung von Stereovisionsinformationen bereit.
- 6 zeigt eine illustrative Disparitätskarte.
- Die 7A-7C (hierin zusammenfassend auch als „7“ bezeichnet) stellen Veranschaulichungen von Entscheidungsbäumen für einen hierarchischen Entscheidungsbaum-Klassifikator (z.B. einen Random-Forest-Klassifikator) bereit.
-
DETAILLIERTE BESCHREIBUNG
-
Die in diesem Dokument verwendeten Singularformen „eine / eine“ bzw. „der / die / das“ sollen die Pluralformen einschließen, sofern der Kontext nicht eindeutig etwas anderes erfordert. Sofern nicht anders definiert, haben alle hier verwendeten technischen und wissenschaftlichen Begriffe die gleiche Bedeutung, wie sie von einem üblichen Fachmann allgemein verstanden wird. Wie in diesem Dokument verwendet, soll der Begriff „umfassend“ im Sinne von „einschließend“, aber nicht beschränkt hierauf verstanden werden. Definitionen für zusätzliche Begriffe, die für dieses Dokument relevant sind, finden sich am Ende dieser detaillierten Beschreibung.
-
Ein „elektronisches Gerät“ oder ein „Computergerät“ bezieht sich auf ein Gerät, das einen Prozessor und einen Speicher enthält. Jedes Gerät verfügt möglicherweise über einen eigenen Prozessor und/oder einen Speicher, oder der Prozessor und/oder der Speicher kann mit anderen Geräten gemeinsam genutzt werden, wie in einer virtuellen Maschine oder Containeranordnung. Der Speicher enthält oder empfängt Programmieranweisungen, die bei Ausführung durch den Prozessor dazu führen, dass das elektronische Gerät einen oder mehrere Vorgänge gemäß den Programmieranweisungen ausführt.
-
Die Begriffe „Speicher“, „Speichergerät“, „Datenspeicher“, „Datenspeichereinrichtung“ und dergleichen beziehen sich jeweils auf ein nichtflüchtiges Gerät, auf dem computerlesbare Daten, Programmieranweisungen oder beides gespeichert sind. Sofern nicht ausdrücklich anders angegeben, sollen die Begriffe „Speicher“, „Speichergerät“, „Datenspeicher“, „Datenspeichereinrichtung“ und dergleichen Ausführungsformen mit einem einzelnen Gerät umfassen, Ausführungsformen, in denen mehrere Speichergeräte zusammen oder gemeinsam einen Satz von Daten oder Anweisungen speichern, sowie einzelne Sektoren innerhalb solcher Geräte.
-
Die Begriffe „Prozessor“ und „Verarbeitungsgerät“ beziehen sich auf eine Hardwarekomponente eines elektronischen Geräts, die zur Ausführung von Programmieranweisungen konfiguriert ist. Sofern nicht ausdrücklich anders angegeben, soll der Singular-Begriff „Prozessor“ oder „Verarbeitungsgerät“ sowohl Ausführungsformen mit einem einzelnen Verarbeitungsgerät als auch Ausführungsformen umfassen, bei denen mehrere Verarbeitungsgeräte gemeinsam oder gemeinsam einen Prozess ausführen.
-
Ein „elektronisches Gerät“ oder ein „Computergerät“ bezieht sich auf ein Gerät, das einen Prozessor und einen Speicher enthält. Jedes Gerät verfügt möglicherweise über einen eigenen Prozessor und/oder Speicher, oder der Prozessor und/oder Speicher kann mit anderen Geräten gemeinsam genutzt werden, wie in einer virtuellen Maschine oder Containeranordnung. Der Speicher enthält oder empfängt Programmieranweisungen, die bei Ausführung durch den Prozessor dazu führen, dass das elektronische Gerät einen oder mehrere Vorgänge gemäß den Programmieranweisungen ausführt.
-
Der Begriff „Fahrzeug“ bezieht sich auf jedes bewegliche Fortbewegungsmittel, das einen oder mehrere menschliche Insassen und/oder Fracht befördern kann und durch irgendeine Form von Energie angetrieben wird. Der Begriff „Fahrzeug“ umfasst unter anderem Autos, Lastwagen, Transporter, Züge, autonome Fahrzeuge, Flugzeuge, Flugdrohnen und dergleichen. Ein „autonomes Fahrzeug“ ist ein Fahrzeug mit einem Prozessor, Programmieranweisungen und Antriebsstrangkomponenten, die vom Prozessor gesteuert werden können, ohne dass ein menschlicher Bediener erforderlich ist. Ein autonomes Fahrzeug kann völlig autonom sein, da es für die meisten oder alle Fahrbedingungen und -funktionen keinen menschlichen Bediener benötigt. Alternativ kann es teilautonom sein, da unter bestimmten Bedingungen oder für bestimmte Vorgänge ein menschlicher Bediener erforderlich sein oder ein menschlicher Bediener das autonome System des Fahrzeugs außer Kraft setzen und die Kontrolle über das Fahrzeug übernehmen kann. Zu den autonomen Fahrzeugen zählen auch Fahrzeuge, bei denen autonome Systeme den menschlichen Betrieb des Fahrzeugs unterstützen, wie zum Beispiel Fahrzeuge mit fahrerunterstützter Lenkung, Geschwindigkeitsregelung, Bremsen, Parken und anderen fortschrittlichen Fahrerassistenzsystemen.
-
Wenn sich der Begriff „Objekt“ auf ein Objekt bezieht, das von einem Fahrzeugwahrnehmungssystem erkannt oder von einem Simulationssystem simuliert wird, soll er sowohl stationäre Objekte als auch sich bewegende (oder potenziell sich bewegende) Akteure umfassen, sofern in Zusammenhang mit der Verwendung der Begriffe „Akteur“ oder „stationäres Objekt“ nicht ausdrücklich etwas anderes angegebenen ist.
-
Wenn in diesem Dokument Begriffe wie „erster“ und „zweiter“ zum Modifizieren eines Substantivs verwendet werden, dient diese Verwendung lediglich dazu, ein Element von einem anderen zu unterscheiden, und ist nicht dazu gedacht, eine sequenzielle Reihenfolge zu erfordern, sofern nicht ausdrücklich angegeben. Darüber hinaus sollen Begriffe der relativen Position wie „vertikal“ und „horizontal“ oder „vorne“ und „hinten“, wenn sie verwendet werden, relativ zueinander verstanden werden, d.h., diese müssen nicht absolut sein, und diese sollen sich nur auf eine mögliche Position des Geräts beziehen, das mit diesen Begriffen verknüpft ist, abhängig von der Ausrichtung des Geräts.
-
Der Begriff „Disparität“ bezieht sich auf eine gesetzte Entfernung. Wenn die Disparität für alle Pixel im linken und rechten Bild eines Stereobildpaars bestimmt wird, kann der resultierende Datensatz als „Disparitätskarte“ oder „Disparitätsbild“ bezeichnet werden. Aktuelle Deep-Learning-basierte Stereo-Matching-Algorithmen sind in der Lage, qualitativ hochwertige Disparitätskarten oder -bilder zu erstellen.
-
Computer-Stereovision liefert Disparitätsbilder, die eine 3D-Abschätzung der Umgebung zusammen mit mitregistrierten Intensitäts- oder Farbdaten darstellen. Anhand der Disparitätsbilder können Objekte erkannt werden. Die auf Stereovision basierende Objekterkennung ist jedoch ein rechenintensiver Prozess. Die vorliegende Lösung behebt diesen Nachteil herkömmlicher Stereovision-Objekterkennungstechniken durch Implementierung eines Segmentierungsalgorithmus zur binären Klassifizierung von Punktwolken-Datenpunkten in Vordergrund und Hintergrund. Der Segmentierungsalgorithmus ist kompakt, effizient und skalierbar. Anhand einer Stereo-Disparitätskarte, Kameraposition und Kartenkacheln (Region of Interest (ROI) und Bodenhöhe) wird ein Objektklassifikator trainiert, um interessierende Pixel (Vordergrund) präzise und schnell vom Hintergrund zu segmentieren.
-
Die vorliegende Lösung betrifft die Implementierung von Systemen und Methoden zur Objekterkennung mithilfe von Stereovisionsinformationen. Die Methoden beinhalten im Allgemeinen das Konvertieren oder Übersetzen von Disparitätsbildinformationen (z.B. Intensitätswerte eines Disparitätsbilds) in Tiefeninformationen unter Verwendung von Stereo-Extrinsiken. Beispielsweise werden Intensitätswerte eines Disparitätsbildes in Tiefenwerte umgewandelt oder übersetzt. Die Höhe jedes Tiefenwerts vom Boden wird anhand von Informationen aus einer 3D-Karte (z.B. einer Straßenkarte und/oder einer Bodenhöhenkarte) geschätzt. Die geschätzte Höhe wird in einen hierarchischen Entscheidungsbaum-Klassifikator (z.B. einen Random-Forest-Klassifikator) eingegeben, der Pixel eines Disparitätsbildes entweder als Vordergrund oder Hintergrund identifiziert. Die Art und Weise, in der der hierarchische Entscheidungsbaumklassifikator verwendet wird, ist neu und wird im Verlauf der Diskussion deutlich.
-
Im Einzelnen umfassen die Methoden Folgendes: Erhalten von Stereobildern, Stereoinstanz-Labeln, Stereobildaufnahmezeiten, Kamerakalibrierungsdaten und Stereokameraposen; und Identifizieren von Paaren von Stereobildern basierend auf den Stereobildaufnahmezeiten. Ein bestimmtes Paar umfasst zwei Stereobilder, die gleichzeitig von einer Stereokamera aufgenommen wurden. Anschließend werden Disparitätskarten erstellt. Eine Disparitätskarte ist eine Kodierung des scheinbaren Unterschieds der Position (d.h. der Verschiebung) eines Objekts in entsprechenden Bildern eines Stereobildpaares. Die Kodierung kann Unterschiede zwischen den Koordinaten entsprechender Pixel im Stereobildpaar messen. Somit können die Disparitätskarten erzeugt werden, indem scheinbare Pixelpositionsunterschiede oder Bewegungen zwischen jedem Paar von Stereobildern unter Verwendung eines bekannten oder zukünftig bekannt werdenden Algorithmus bestimmt werden (z.B. mittels eines triangulationsbasierten Algorithmus). Jede Disparitätskarte enthält eine Vielzahl von Pixeln, die jeweils durch einen Intensitätswert (Skalar) definiert sind. Der Intensitätswert für jedes Pixel der Disparitätskarten wird in eine xyz-Position in einer 3D-Straßenkarte projiziert, wobei ein bekannter Zeitpunkt der Bildaufnahme (erhalten aus Stereobildaufnahmezeiten), ein bekannter Standort eines Fahrzeugs zum Zeitpunkt der Bildaufnahme, eine bekannte Positionen der Stereokameras relativ zum Fahrzeug (erhalten aus Stereokameraposen), bekannte Pixelausrichtungsrichtungen (erhalten aus Kamerakalibrierungsdaten) und/oder bekannte Abstände der Pixel von den Stereokameras (erhalten aus Disparitätskarten) verwendet werden. Anschließend werden Operationen durchgeführt, um Punktwolkensegmente zu generieren, die Objekte im Vordergrund oder Objekte im Hintergrund darstellen, und zwar mithilfe maschinell erlernter Modelle eines hierarchischen Entscheidungsbaumklassifizierers. Die maschinell erlernten Modelle schätzen Vordergrund-/Hintergrundobjekte als Funktion der Abstände zwischen Datenpunkten.
-
Der hierarchische Entscheidungsbaumklassifikator wird mithilfe von Punktwolken trainiert, die auf der Grundlage von Stereobildern und der 3D-Stra-ßenkarte (wie oben beschrieben) generiert wurden, um mehrere Abstände zwischen Datenpunkten in Punktwolken zu bestimmen. Jeder Abstand umfasst einen Abstand zwischen einem gegebenen Datenpunkt und jedem einer Vielzahl von Datenpunkten, die benachbarten Pixeln in einer Stereobildebene zugeordnet sind. Die Abstände werden vom hierarchischen Entscheidungsbaumklassifizierer verwendet, um (i) Abstandsmuster zwischen Datenpunkten zu erkennen, die wahrscheinlich auf Objekte im Vordergrund oder Hintergrund hinweisen, und (ii) zu bestimmen, wie viele nahegelegene Pixel zur Schätzung der Vordergrunds/Hintergrundobjekte als Funktion der Entfernung verwendet werden sollen. Die gelernten Informationen (i) und (ii) werden als maschinell gelernte Modelle in einem Datenspeicher gespeichert.
-
Insbesondere wird die vorliegende Lösung hier 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, metrischen Anwendungen und/oder Systemleistungsanwendungen verwendet werden.
-
Veranschaulichende fahrzeugbasierte Systeme
-
Die folgende Diskussion wird bereitgestellt, um zu veranschaulichen, wie die vorliegende Lösung verwendet werden kann, um die Steuerung eines Fahrzeugs zu erleichtern (z.B. zur Kollisionsvermeidung und/oder zum autonomen Fahren). Das Fahrzeug kann ein autonomes Fahrzeug sein, ist aber nicht darauf beschränkt.
-
Nun bezugnehmend auf FIG. In 1 ist eine Darstellung eines veranschaulichenden Systems 100 dargestellt. Das System 100 umfasst ein Fahrzeug 1021, das halbautonom oder autonom eine Straße entlang fährt. Das Fahrzeug 1021 wird hier auch als autonomes Fahrzeug („AV“) bezeichnet. Der AV 1021 kann ein Landfahrzeug, ein Flugzeug oder ein Wasserfahrzeug sein, ist aber nicht darauf beschränkt.
-
Das AV 1021 ist im Allgemeinen so konfiguriert, dass es Objekte 1022, 104, 106 in seiner Nähe erkennt. Zu den Objekten können unter anderem ein Fahrzeug 1022, ein Zweiradfahrer 104 (z.B. ein Fahrer eines Fahrrads, eines Elektrorollers, eines Motorrads oder dergleichen) und/oder ein Fußgänger 106 gehören. Wenn eine solche Erkennung erfolgt, führt das AV 1021 Vorgänge aus, um: eine oder mehrere mögliche Objekttrajektorien für das erkannte Objekt zu erzeugen; und mindestens eine der generierten möglichen Objekttrajektorien zu analysieren, um eine Fahrzeugtrajektorie für das AV 1021 zu bestimmen. Das AV 1021 wird dann veranlasst, der Fahrzeugtrajektorie zu folgen.
-
Nunmehr bezugnehmend auf 2 ist eine beispielhafte Systemarchitektur 200 für ein Fahrzeug dargestellt. Die Fahrzeuge 1021 und/oder 1022 des in 1 gezeigten Systems können die gleichen oder eine ähnliche Systemarchitektur wie das in 2 gezeigte aufweisen. Daher sollte die folgende Erörterung der Systemarchitektur 200 ausreichen, um das/die Fahrzeug(e) 1021, 1022 von 1 zu verstehen.
-
Wie in 2 gezeigt, umfasst das Fahrzeug 200 eine Brennkraftmaschine oder einen Motor 202 und verschiedene Sensoren 204 - 218, die verschiedene Parameter des Fahrzeugs messen. In kraftstoffbetriebenen oder Hybridfahrzeugen mit einem kraftstoffbetriebenen Motor können die Sensoren beispielsweise einen Motortemperatursensor 204, einen Batteriespannungssensor 206, einen Motorumdrehungen pro Minute (RPM)-Sensor 208 und einen Drosselklappenstellungssensor umfassen 210. Wenn es sich bei dem Fahrzeug um ein Elektro- oder Hybridfahrzeug handelt, kann das Fahrzeug über einen Elektromotor und dementsprechend über Sensoren, wie ein Batterieüberwachungssystem 212 (zur Messung von Strom, Spannung und/oder Temperatur der Batterie), einen Motorstromsensor 214, Temperatursensoren 216 und Motorpositionssensoren wie Resolver und Encoder 218 verfügen.
-
Betriebsparametersensoren, die beiden Fahrzeugtypen gemeinsam sind, umfassen beispielsweise: einen Positionssensor 236, wie einen Beschleunigungsmesser, ein Gyroskop und/oder eine Trägheitsmesseinheit; ein Geschwindigkeitssensor 238; und einen Kilometerzählersensor 240. Das Fahrzeug kann auch über eine Uhr oder einen Zeitgeber 242 verfügen, die bzw. den das System verwendet, um die Fahrzeugzeit während des Betriebs zu bestimmen. Die Uhr bzw. der Zeitgeber 242 kann im Bordrechner des Fahrzeugs codiert sein, es kann sich um ein separates Gerät handeln oder es können mehrere Zeitgeber verfügbar sein.
-
Das Fahrzeug wird außerdem über verschiedene Sensoren verfügen, die Informationen über die Umgebung sammeln, in der sich das Fahrzeug bewegt. Zu diesen Sensoren können beispielsweise gehören: ein Standortsensor 260 (z.B. ein GPS-Gerät (Global Positioning System)); Objekterkennungssensoren wie eine oder mehrere Kameras 262; ein LiDAR-Sensorsystem 266 und/oder ein Radarsystem 264. Zu den Sensoren können auch Umgebungssensoren 268 gehören, etwa ein Niederschlagssensor und/oder ein Umgebungstemperatursensor. Die Kamera(s) 262 können Stereokamera(s) umfassen, sind aber nicht darauf beschränkt. Die Objekterkennungssensoren können es dem fahrzeugeigenen Computergerät 220 ermöglichen, Objekte zu erkennen, die sich in einer bestimmten Entfernungsreichweite 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 das Bordcomputergerät 220 übermittelt. Das Bordcomputergerät 220 analysiert die von den Sensoren erfassten Daten und steuert optional den Betrieb des Fahrzeugs basierend auf den Ergebnissen der Analyse. Beispielsweise kann das Bordcomputergerät 220 Folgendes steuern: die Bremsen über eine Bremssteuerung 222; die Fahrtrichtung über eine Lenksteuerung 224; die Geschwindigkeit und die Beschleunigung über eine Drosselklappensteuerung 226 (in einem kraftstoffbetriebenen Fahrzeug) oder einen Motorgeschwindigkeitsregler 228 (z.B. einen Stromniveauregler in einem Elektrofahrzeug); eine Differenzialgetriebesteuerung 230 (in Fahrzeugen mit Getrieben) und/oder es können weitere Steuerungen vorgesehen sein.
-
Geografische Standortinformationen können von dem Standortsensor 260 an das Bordcomputergerät 220 übermittelt werden, das dann auf eine Karte der Umgebung zugreifen kann, die den Standortinformationen entspricht, um bekannte feststehende Merkmale der Umgebung, wie Straßen, Gebäude, Haltestellen, Schilder und/oder Stop-/Go-Signale (Ampeln) zu bestimmen. Von der bzw. den Kamera(s) aufgenommene Bilder 262 und/oder von Sensoren - wie LiDAR - erfasste Objekterkennungsinformationen werden an das Bordcomputergerät 220 übermittelt. Die Objekterkennungsinformationen und/oder die erfassten Bilder werden vom Bordcomputergerät 220 verarbeitet, um Objekte in der Nähe des Fahrzeugs 200 zu erkennen. In den in diesem Dokument offenbarten Ausführungsformen kann jede bekannte oder zukünftig bekannt werdende Technik zur Durchführung einer Objekterkennung auf der Grundlage von Sensordaten und/oder erfassten Bildern verwendet werden.
-
Wenn eine derartige Objekterkennung durchgeführt wird, führt das Bordcomputergerät 220 Vorgänge aus, um: eine oder mehrere mögliche Objekttrajektorien für das erkannte Objekt zu generieren, und die mindestens eine der generierten möglichen Objekttrajektorien zu analysieren, um zu bestimmen, ob in einem Schwellenzeitraum (z.B. 1 Minute) die Gefahr einer Kollision besteht. Wenn dies der Fall ist, führt das Bordcomputergerät 220 Vorgänge aus, um zu bestimmen, ob die Kollision vermieden werden kann, wenn das Fahrzeug 200 einer bestimmten Fahrzeugtrajektorie folgt und eines von mehreren dynamisch generierten Notfallmanövern in einem vordefinierten Zeitraum (z.B. N Millisekunden) durchgeführt wird. Wenn die Kollision vermieden werden kann, ergreift das Bordcomputergerät 220 keine Maßnahmen, um die Fahrzeugtrajektorie zu ändern, oder veranlasst optional das Fahrzeug 200, ein vorsichtiges Manöver durchzuführen (z.B. leicht abzubremsen). Wenn die Kollision hingegen nicht vermieden werden kann, veranlasst das Bordcomputergerät 220 das Fahrzeug 200, sofort ein Notmanöver durchzuführen (z.B. zu bremsen und/oder die Fahrtrichtung zu ändern).
-
Nun bezugnehmend auf 3 ist dort eine beispielhafte Architektur für ein Computergerät 300 dargestellt. Das Bordrechnergerät 220 des Fahrzeugs aus 2 ist zumindest teilweise mit dem Computergerät 300 identisch oder diesem ähnlich. Daher sollte eine Erörterung des Computergeräts 300 ausreichend sein, um das Bordcomputergerät 220 des Fahrzeugs aus 2 zu verstehen.
-
Das Computergerät 300 kann mehr oder weniger Komponenten umfassen als die in 3 gezeigten. Die gezeigten Komponenten reichen jedoch aus, um eine beispielhafte Lösung zur Umsetzung der vorliegenden Lösung zu offenbaren. Die Hardware-Architektur von 3 stellt eine Implementierung eines repräsentativen Computergeräts dar, das zum Betreiben eines Fahrzeugs konfiguriert ist, wie hierin beschrieben. Somit implementiert das Computergerät 300 von 3 mindestens einen Teil der hier beschriebenen Methode(n).
-
Einige oder alle Komponenten des Computergeräts 300 können als Hardware, Software und/oder eine Kombination aus Hardware und Software implementiert werden. Die Hardware umfasst unter anderem einen oder mehrere elektronische Schaltkreise. Die elektronischen Schaltkreise können unter anderem passive Komponenten (z.B. Widerstände und Kondensatoren) und/oder aktive Komponenten (z.B. Verstärker und/oder Mikroprozessoren) umfassen. Die passiven und/oder aktiven Komponenten können angepasst, angeordnet und/oder programmiert werden, um eine oder mehrere der hierin beschriebenen Methoden, Verfahren oder Funktionen auszuführen.
-
Wie in 3 gezeigt, umfasst das Computergerät 300 eine Benutzerschnittstelle 302, eine Zentraleinheit (CPU) 306, einen Systembus 310, einen Speicher 312, der über den Systembus 310 mit anderen Teilen des Computergeräts 300 verbunden und für diese zugänglich ist, eine Systemschnittstelle 360 und Hardwareeinheiten 314, die mit dem Systembus 310 verbunden sind. Die Benutzeroberfläche kann Eingabegeräte und Ausgabegeräte umfassen, die Benutzer-Software-Interaktionen zur Steuerung von Vorgängen des Computergeräts 300 ermöglichen. Zu den Eingabegeräten gehören unter anderem eine physische Tastatur und/oder eine Touch-Tastatur 350. Die Eingabegeräte können über eine drahtgebundene oder drahtlose Verbindung (z.B. eine Bluetooth®-Verbindung) mit dem Computergerät 300 verbunden werden. Zu den Ausgabegeräten gehören unter anderem ein Lautsprecher 352, ein Display 354 und/oder Leuchtdioden (LEDs) 356. Die Systemschnittstelle 360 ist so konfiguriert, dass sie die drahtgebundene oder drahtlose Kommunikation zu und von externen Geräten (z.B. Netzwerkknoten, wie beispielsweise Zugangspunkten (Access Points) usw.) ermöglicht.
-
Zumindest einige der Hardware-Entitäten 314 führen Aktionen aus, die den Zugriff auf und die Nutzung des Speichers 312 beinhalten, bei dem es sich um einen Direktzugriffsspeicher (RAM), ein Festplattenlaufwerk, einen Flash-Speicher, einen Compact Disc Read Only Memory (CD-ROM) und/oder oder ein anderes Hardwaregerät handeln kann, das Anweisungen und Daten speichern kann. Die Hardwareeinheiten 314 können eine Plattenlaufwerkseinheit 316 umfassen, die ein computerlesbares Speichermedium 318 umfasst, auf dem ein oder mehrere Befehlssätze 320 (z.B. Softwarecode) gespeichert sind, die so konfiguriert sind, dass sie eine oder mehrere der hierin beschriebenen Methoden, Verfahren oder Funktionen implementieren. Die Anweisungen 320 können sich während ihrer Ausführung durch das Computergerät 300 auch vollständig oder zumindest teilweise im Speicher 312 und/oder in der CPU 306 befinden. Der Speicher 312 und die CPU 306 können auch maschinenlesbare Medien darstellen. Der Begriff „maschinenlesbare Medien“, wie er hier verwendet wird, 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 Befehlssätze 320 speichern. Der Begriff „maschinenlesbare Medien“, wie er hier verwendet wird, bezieht sich auch auf jedes Medium, das in der Lage ist, einen Satz von Anweisungen 320 zur Ausführung durch das Computergerät 300 zu speichern, zu kodieren oder zu übertragen und das Computergerät 300 zur Ausführung einer beliebigen Aufgabe zu veranlassen oder mehrere der Methoden der vorliegenden Offenbarung.
-
Nunmehr bezugnehmend auf 4 ist dort ein Blockdiagramm dargestellt, das hilfreich ist, um zu verstehen, wie die Fahrzeugsteuerung gemäß der vorliegenden Lösung erreicht wird. Alle in den Blöcken 402-410 ausgeführten Vorgänge können von der Bordcomputervorrichtung (z.B. der Bordcomputervorrichtung 220 des Fahrzeugs aus 2) eines Fahrzeugs (z.B. des AV 1021 aus 1) ausgeführt werden.
-
In Block 402 wird ein Standort des Fahrzeugs erfasst. Diese Erkennung kann auf der Grundlage von Sensordaten erfolgen, die von einem Standortsensor (z.B. dem Standortsensor 260 aus 2) des Fahrzeugs ausgegeben werden. Diese Sensordaten können GPS-Daten umfassen, sind aber nicht darauf beschränkt. Der erkannte Standort des Fahrzeugs wird dann an Block 406 weitergeleitet.
-
In Block 404 wird ein Objekt in der Nähe des Fahrzeugs erkannt. Diese Objekterkennung erfolgt auf der Grundlage von Sensordaten des Fahrzeugs, die von Kamera(s) (z.B. der Kamera 762 aus 7), einem Radarsystem (z.B. dem Radarsystem 264 aus 2), einem LiDAR-Sensorsystem (z.B. dem LiDAR-System 266 von 2) ausgegeben werden. Zu den Kameras können unter anderem Stereokameras gehören. Die Stereokameras erzeugten digitale Bilder, die vom Bordcomputergerät (z.B. dem Bordcomputergerät 220 des Fahrzeugs aus 2) verarbeitet werden, um Stereovisionsinformationen 450 zu erzeugen. Die Stereovisionsinformationen 450 umfassen u.a. 3D-Informationen, die aus den von den Stereokameras erfassten digitalen Bildern extrahiert wurden. Durch den Vergleich von Informationen über eine Szene aus zwei Blickwinkeln können 3D-Informationen extrahiert werden, die eine 3D-Punktwolke definieren, die eine Disparitätskarte oder ein Disparitätsbild bildet. Die Disparitätskarte oder das Disparitätsbild liefert eine 3D-Schätzung der Umgebung zusammen mit mitregistrierten Intensitäts- oder Farbdaten. Die Sensordaten werden außerdem verwendet, um eine oder mehrere mögliche Objekttrajektorien für das erkannte interessierende Objekt oder die erkannten interessierenden Objekte und/oder eine Objektklassifizierung (z.B. als Fußgänger, als Fahrzeug, als Zweiradfahrer, usw.) zu bestimmen. Ein Objekt von Interesse kann ein Objekt sein - ist aber nicht hierauf beschränkt -, das durch Datenpunkte aus der 3D-Punktwolke dargestellt wird, die als Vordergrunddatenpunkte (und eher nicht als Hintergrunddatenpunkte) klassifiziert sind, und/oder das durch ein Punktwolken-Segment dargestellt wird, das Datenpunkte enthält, die als Vordergrunddatenpunkte (und eher nicht als Hintergrunddatenpunkte) klassifiziert sind. Zu den möglichen Objekttrajektorien können unter anderem die folgenden Trajektorien gehören:
- • eine Trajektorie, die durch die tatsächliche Geschwindigkeit des Objekts (z.B. 1 Meile pro Stunde oder ca. 1,6 km/h) und die tatsächliche Bewegungsrichtung (z.B. Westen) definiert wird;
- • eine Trajektorie, die durch die tatsächliche Geschwindigkeit des Objekts (z.B. 1 Meile pro Stunde oder ca. 1,6 km/h) und eine andere mögliche Bewegungsrichtung (z.B. Süden, Südwesten oder X (z.B. 40°) Grad bezogen auf die tatsächliche Bewegungsrichtung des Objekts in Richtung auf das AV zu) 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 oder ca. 3,2 km/h bis ca. 16,1 km/h) und die tatsächliche Bewegungsrichtung des Objekts (z.B. nach Westen) definiert wird; und/oder
- • eine Trajektorie, die durch eine andere mögliche Geschwindigkeit für das Objekt (z.B. 2-10 Meilen pro Stunde oder ca. 3,2 km/h bis ca. 16,1 km/h) und eine andere mögliche Bewegungsrichtung (z.B. Süden, Südwesten oder X (z.B. 40°) Grad von der aktuellen Bewegungsrichtung des Objekts in eine Richtung auf das AV zu) definiert wird.
-
Die eine oder mehreren möglichen Objekttrajektorien 412 und/oder Objektklassifizierungen werden dann an Block 406 übergeben.
-
In Block 406 wird unter Verwendung der Informationen aus den Blöcken 402 und 404 eine Fahrzeugtrajektorie 420 generiert. Techniken zur Bestimmung einer Fahrzeugtrajektorie sind in der Technik wohlbekannt. Jede bekannte oder bekannte Technik zur Bestimmung einer Fahrzeugtrajektorie kann hier ohne Einschränkung verwendet werden. In einigen Szenarien wird die Fahrzeugtrajektorie 420 basierend auf den Standortinformationen aus Block 402, den Objekterkennungs-/Klassifizierungs-/Trajektorieninformationen aus Block 404 und Karteninformationen 428 (die in einem Datenspeicher des Fahrzeugs vorgespeichert sind) bestimmt. Die Karteninformationen 428 können eine 3D-Straßenkarte umfassen, sind aber nicht darauf beschränkt. Die Fahrzeugtrajektorie 420 stellt einen „glatten“ Pfad dar, der keine abrupten Änderungen aufweist, die andernfalls Unbehagen für den Fahrgast hervorrufen würden. Die Fahrzeugtrajektorie 420 wird dann an Block 408 bereitgestellt.
-
In Block 408 wird ein Lenkwinkel- und Geschwindigkeitsbefehl basierend auf der Fahrzeugtrajektorie 420 generiert. Der Lenkwinkel- und Geschwindigkeitsbefehl wird an Block 410 zur Fahrzeugdynamiksteuerung geliefert. Die Fahrdynamikregelung bewirkt, dass das Fahrzeug abbremst, beschleunigt und/oder die Fahrtrichtung des Fahrzeugs ändert.
-
Nunmehr bezugnehmend auf 5 ist dort ein Flussdiagramm eines veranschaulichenden Verfahrens 500 zur Vordergrund-/Hintergrundklassifizierung unter Verwendung von Stereovisionsinformationen dargestellt. Das Verfahren 500 kann in Block 404 von 4 durch das fahrzeugeigene Computergerät 220 von 2 und/oder das Computergerät 300 von 3 durchgeführt werden.
-
Wie in 5 dargestellt, beginnt das Verfahren 500 mit 502 und fährt mit 504 fort, wo ein Computergerät (z.B. das Bordcomputergerät 220 des Fahrzeugs aus 2 und/oder das Computergerät 300 aus 3) Vorgänge ausführt, um Stereobilder und Stereoinstanz-Labels zu erhalten , Stereobildaufnahmezeiten, Kamerakalibrierungsdaten und/oder Stereokamerapositionen aus einem Datenspeicher (z.B. dem Speicher 312 von 3). Die Stereobilder umfassen digitale Bilder, die von einer oder mehreren entzerrten Stereokameras (z.B. den Kameras 262 aus 2) aufgenommen wurden, wobei der Entzerrungsprozess die aufgenommenen Bilder so anpasst, dass die Epipolarlinien kollinear sind. Die Stereoinstanz-Labels können Informationen zur Identifizierung von Stereobildern enthalten, sind aber nicht darauf beschränkt. Die Stereobildaufnahmezeiten können unter anderem Zeitstempel enthalten, die die Zeiten angeben, zu denen Bilder von den Stereokameras aufgenommen wurden. Die Kamerakalibrierungsdaten können Informationen über eine genaue Position der rechten und linken Kamera und optische Eigenschaften der linken und rechten Kamera umfassen, sind aber nicht darauf beschränkt. Eine Stereokameraposition umfasst unter anderem die Ausrichtung einer Kamera und/oder die Position einer Kamera in Bezug auf ein Objekt (z.B. ein Fahrzeug).
-
Als Nächstes führt das Computergerät bei 506 Vorgänge aus, um Paare von Stereobildern basierend auf den Stereobilderfassungszeiten zu identifizieren. Ein bestimmtes Paar umfasst zwei Stereobilder, die gleichzeitig von zwei Stereokameras (z.B. einer rechten und einer linken Kamera) aufgenommen wurden. Das Computergerät führt bei 508 auch Operationen durch, um Disparitätskarten zu erzeugen. Jede Disparitätskarte veranschaulicht einen scheinbaren Pixelpositionsunterschied oder eine Bewegung zwischen einem Paar Stereobildern. Die Disparitätskarte ist eine Kodierung des scheinbaren Unterschieds der Position (d.h. der Verschiebung) eines Objekts in entsprechenden Bildern eines Stereobildpaares. Die Kodierung kann Unterschiede zwischen Koordinaten der entsprechenden Pixel im Paar von Stereobildern messen. Somit kann eine Disparitätskarte erstellt werden, indem scheinbare Pixelpositionsunterschiede oder Bewegungen zwischen jedem Paar von Stereobildern unter Verwendung eines bekannten oder zukünftig noch bekannt werdenden Algorithmus (z.B. eines auf Triangulation basierenden Algorithmus) ermittelt werden. Jede Disparitätskarte enthält eine Vielzahl von Pixeln, die jeweils durch einen Intensitätswert (Skalar) definiert sind.
-
In einigen Szenarien kann jedem Pixel ein Intensitätswert von 0 bis 255 zugeordnet sein. Eine veranschaulichende Disparitätskarte 600 ist in 6 dargestellt. Wie in 6 gezeigt, ist ein Objekt 602 im Vordergrund heller als das Objekt 604 im Hintergrund. Die Helligkeit („Brightness“) stellt hier ein Maß für das Ausmaß der Bewegung und den Abstand von einer Stereokamera dar. Beispielsweise bedeutet die Helligkeit von Objekt 602, dass sich das Objekt im Vergleich zu Objekt 604 stärker bewegt und dass sich das Objekt näher an der Stereokamera befindet als Objekt 604. Die vorliegende Lösung ist in dieser Hinsicht nicht eingeschränkt.
-
Sobald die Disparitätskarten erstellt wurden, führt das Computergerät bei 510 Operationen aus, um den Intensitätswert für jedes Pixel in der/den Disparitätskarte(n) in einen Kartenkoordinatenrahmen zu projizieren. Diese Projektion wird erreicht, indem der Intensitätswert in eine 3D-Position in einer Karte (z.B. einer Straßenkarte) umgewandelt wird. Die 3D-Position definiert einen Standort eines Datenpunkts in einer Punktwolke. Somit umfasst jeder projizierte Intensitätswert eine 3D-Position in einer Karte (z.B. einer Straßenkarte). Die 3D-Position wird durch eine x-Koordinate X, eine y-Koordinate Y und eine z-Koordinate Z definiert. Diese Projektion wird unter Verwendung einer bekannten Bildaufnahmezeit t (erhalten aus den Stereobildaufnahmezeiten), einem bekannten Ort des Fahrzeugs zum Zeitpunkt der Bildaufnahme It, einer bekannten Positionen der Stereokameras relativ zum Fahrzeug p1, p2 (erhalten aus Stereokameraposen), bekannten Pixelausrichtungsrichtungen (erhalten aus Kamerakalibrierungsdaten) an und bekannten Abständen der Pixel von den Stereokameras dn (erhalten aus Disparitätskarten) durchgeführt.
-
In einigen Szenarien wird diese Projektion mithilfe des in der US-Patentanmeldung Nr.
16/802,970 (veröffentlicht unter
US 2021 / 0150227 A1 ) beschriebenen Rückprojektionsprozesses erreicht. Der Rückprojektionsprozess wird im Allgemeinen durch die folgende mathematische Gleichung (1) definiert:
wobei inv(K) eine inverse Matrix von K ist, x eine x-Koordinate eines Pixels in einer Disparitätskarte darstellt und y eine y-Koordinate des Pixels in der Disparitätskarte darstellt. K wird durch die folgende mathematische Gleichung (2) definiert:
-
Dabei ist K eine 3x3-Matrix, cx und cy sind Pixelkoordinaten des Mittelpunktes einer linken Kamera in einem Stereokamerasystem und focal_length ist ein Merkmal des optischen Systems der linken Kamera (unter der Annahme quadratischer Pixel, andernfalls sind zwei unterschiedliche Brennweitenzahlen erforderlich). depth wird durch die folgende mathematische Gleichung (3) definiert:
wobei baseline ein Maß für den Abstand zwischen den Mittelpunkten der linken und rechten Kamera in einem Stereokamerasystem ist.
-
Als nächstes werden in 512 die Datenpunkte in der Punktwolke gruppiert, um ein oder mehrere Punktwolkensegmente für jedes erkannte Objekt im Vordergrund und Hintergrund zu definieren. In einigen Szenarien wird eine Bodensegmentierung eingesetzt, um die Gesamtzahl der Datenpunkte für die weitere Verarbeitung zu reduzieren. Die Bodensegmentierung kann umfassen: Vergleichen eines Werts einer z-Koordinate Z für jeden Datenpunkt mit einem minimalen Höhenschwellenwert thrmin-height über dem Boden und einem maximalen Höhenschwellenwert thrmax-height über dem Boden; und Verwerfen der Datenpunkte mit z-Koordinatenwerten, die kleiner als thrmin-height und größer als thrmax-height sind.
-
Zusätzlich oder alternativ wird für jeden Datenpunkt ein Deltawert Δ berechnet. Der Deltawert Δ stellt eine Differenz zwischen einem Bodenhöhenwert h
ground und dem Wert der z-Koordinate Z für den gegebenen Datenpunkt dar. Somit kann der Deltawert durch die folgende mathematische Gleichung (4) definiert werden:
-
Die Datenwerte werden dann als Eingaben für einen hierarchischen Entscheidungsbaum-Klassifikator (z.B. einen Zufallswald- oder Random Forest-Klassifikator) verwendet. Der hierarchische Entscheidungsbaum-Klassifizierer kann durch das fahrzeugeigene Computergerät 220 von 2 implementiert werden und/oder durch das Computergerät 300 von 3.
-
Weitere in den hierarchischen Entscheidungsbaumklassifikator eingegebene Informationen umfassen unter anderem die folgenden Informationen für jeden Datenpunkt: Intensitätswerte; X-, Y- und Z-Werte für den Datenpunkt; einen Farbwert für ein entsprechendes Pixel in jedem Stereobild eines Paares; und/oder Merkmale von Pixeln, die sich in der Nähe des entsprechenden Pixels in jedem Stereobild eines Paares befinden. Die Definition der Nachbarschaft kann beispielsweise so vordefiniert werden, dass ein Pixel ein benachbartes Pixel zu einem entsprechenden Pixel darstellt, wenn das Pixel in einer beliebigen Richtung weniger als N Pixel vom entsprechenden Pixel entfernt liegt. N ist dabei eine Ganzzahl gleich oder größer als Null. Zu den benachbarten Pixelmerkmalen gehören unter anderem: Intensitätswerte; X-, Y- und Z-Werte für jeden Datenpunkt, der einem benachbarten Pixel zugeordnet ist; Farbwerte für die benachbarten Pixel; und/oder relative Positionen der benachbarten Pixel zueinander und/oder des Pixels, das dem gegebenen Datenpunkt zugeordnet ist.
-
Als nächstes verwendet ein hierarchischer Entscheidungsbaumklassifizierer die Eingabedaten, um (i) jeden Datenpunkt als Vordergrunddatenpunkt oder Hintergrunddatenpunkt zu klassifizieren und/oder (ii) die Datenpunkte in Punktwolkensegmente für erkannte Vordergrundobjekte und erkannte Hintergrundobjekte zu gruppieren.
-
Der hierarchische Entscheidungsbaumklassifikator klassifiziert Datenpunkte als Vordergrunddatenpunkte und Hintergrunddatenpunkte als Funktionen von Intensitätswerten, Deltawerten Δ (d.h. Datenpunkthöhen über dem Boden), Abständen zwischen den Datenpunkten, Pixelfarben und/oder relativen Positionen von Pixeln . In dieser Hinsicht verwendet der hierarchische Entscheidungsbaumklassifikator maschinell erlernte Modelle, die jeweils mit einer Reihe von Entscheidungsbäumen arbeiten. Jeder Entscheidungsbaum ist so konfiguriert, dass er Klassenvorhersagen für die Datenpunkte trifft. Die Entscheidungsbäume arbeiten als Ensemble. Jeder Entscheidungsbaum erzeugt eine Klassenvorhersage für jeden Datenpunkt. Die Klassenvorhersage gibt eine Vordergrundklassifizierung oder eine Hintergrundklassifizierung sowie einen Konfidenzwert für eine solche Vordergrund-/Hintergrundklassifizierung an. Die Ergebnisse der Entscheidungsbäume werden kombiniert, um eine endgültige Klassifizierung für den gegebenen Datenpunkt zu ermitteln.
-
Nunmehr bezugnehmend auf 7 wird dort ein veranschaulichender Satz von Entscheidungsbäumen 700, 702, 704 bereitgestellt, der in einigen Szenarien vom hierarchischen Entscheidungsbaumklassifikator verwendet wird. Ein erster Entscheidungsbaum 700 ist in 7A gezeigt. Ein zweiter Entscheidungsbaum 702 ist in 7B gezeigt. Ein dritter Entscheidungsbaum 704 ist in 7C gezeigt. Jeder Entscheidungsbaum besteht aus einem Wurzelknoten, Blattknoten und Zweigen.
-
Der Wurzelknoten ist der oberste Knoten. Jeder Wurzelknoten und mittlere (oder innere) Blattknoten bezeichnet einen Test für ein Attribut und jeder Zweig bezeichnet das Ergebnis des Tests. Der Entscheidungsbaum wird von oben nach unten rekursiv aufgebaut. Das Ergebnis des untersten Knotens jedes Zweigs liefert eine Vorhersage, ob der Datenpunkt mit einem Objekt im Vordergrund oder mit einem Objekt im Hintergrund assoziiert ist. Mit der Vorhersage wird auch ein Konfidenzwert Ci bereitgestellt. Der Konfidenzwert Ci für jede Vorhersage kann vordefiniert oder entsprechend einer bestimmten Anwendung dynamisch berechnet werden. Beispielsweise kann der Konfidenzwert Ci als Funktion von Intensitätswert(en), Deltawert(en), Abstand(en) zwischen Datenpunkten, Pixelfarbe(n) und/oder relativen Positionen von Pixeln definiert werden.
-
Wie in FIG. In 7A dargestellt, umfasst der erste Entscheidungsbaum 700 einen Wurzelknoten 703, Blattknoten 705, 706, 708, 716, 718, 720 und Zweige 710, 712, 714, 722, 724, 726. Der Wurzelknoten 703 bezeichnet einen Test zur Bestimmung, ob ein Intensitätswert eines bestimmten Pixels größer als ein Schwellenwert thrintensity-1 ist. Das gegebene Pixel kann das Pixel umfassen, das dem Datenpunkt zugeordnet ist, der aktuell für Vordergrund-/Hintergrundvorhersagezwecke berücksichtigt wird. Zweig 710 bezeichnet ein Ergebnis, dass der Intensitätswert des gegebenen Pixels größer als der Schwellenwert thrintensity-1 ist. Zweig 722 bezeichnet ein Ergebnis, dass der Intensitätswert des gegebenen Pixels nicht größer als der Schwellenwert thnntensity-1 ist.
-
Der mittlere (oder innere) Blattknoten 705 bezeichnet einen Test zur Bestimmung, ob der Deltawert Δ eines bestimmten benachbarten Pixels größer als ein Schwellenwert thrheight-1 ist. Das gegebene Nachbarpixel kann ein Pixel sein, das in einer bestimmten Richtung (z.B. oben, unten, links, rechts) an das gegebene Pixel angrenzt, oder ein Pixel, das in der bestimmten Richtung W Pixel vom gegebenen Pixel entfernt ist (z.B. 2 Pixel links vom angegebenen Pixel). Wist eine ganze Zahl. Zweig 712 bezeichnet ein Ergebnis, dass das Delta des gegebenen benachbarten Pixels größer als der Schwellenwert thrheight-1 ist. Der Zweig 712 führt zum unteren Blattknoten 706, in dem eine Vorhersage getroffen wird, dass der betrachtete Datenpunkt mit einem Vordergrundobjekt mit einem Grad an Konfidenz C1 assoziiert ist. Zweig 714 bezeichnet ein Ergebnis, dass das Delta des gegebenen benachbarten Pixels nicht größer als der Schwellenwert thrheight-1 ist. Der Zweig 714 führt zum unteren Blattknoten 708, in dem eine Vorhersage getroffen wird, dass der betrachtete Datenpunkt mit einem Hintergrundobjekt mit einem Konfidenzgrad C2 assoziiert ist.
-
Der mittlere (oder innere) linke Knoten 716 bezeichnet einen Test zur Bestimmung, ob die Farbe des gegebenen benachbarten Pixels größer als ein Schwellenwert thrcolor-1 ist. Zweig 724 bezeichnet ein Ergebnis, dass die Farbe des gegebenen benachbarten Pixels größer als der Schwellenwert thrcolor-1 ist. Der Zweig 724 führt zum unteren Blattknoten 718, in dem eine Vorhersage getroffen wird, dass der betrachtete Datenpunkt mit einem Vordergrundobjekt mit einem Konfidenzgrad C3 assoziiert ist. Zweig 726 bezeichnet ein Ergebnis, dass die Farbe des gegebenen benachbarten Pixels nicht größer als der Schwellenwert thrcolor-1 ist. Der Zweig 726 führt zum unteren Blattknoten 720, in dem eine Vorhersage getroffen wird, dass der betrachtete Datenpunkt mit einem Hintergrundobjekt mit einem Konfidenzgrad C4 assoziiert ist. Die Konfidenzwerte C1, C2, C3 und/oder C4 können gleich oder voneinander verschieden sein.
-
Wenn der Entscheidungsbaum 700 eine Vorhersage liefert, dass der betrachtete Datenpunkt mit einem Vordergrundobjekt assoziiert ist, kann ein Wert eines Parameters P700 auf einen ersten Wert (z.B. eins) gesetzt werden. Im Gegensatz dazu kann der Wert von P700 auf einen anderen zweiten Wert (z.B. null) gesetzt werden, wenn der Entscheidungsbaum 700 eine Vorhersage liefert, dass der betrachtete Datenpunkt mit einem Hintergrundobjekt assoziiert ist. Der Konfidenzwert C1, C2, C3 oder C4 und der Wert des Parameters P700 werden anschließend vom System verwendet, um eine endgültige Entscheidung darüber zu treffen, ob der betrachtete Datenpunkt einem Vordergrundobjekt oder einem Hintergrundobjekt zugeordnet ist. Die Art und Weise, wie die endgültige Entscheidung getroffen wird, wird im Verlauf der Diskussion deutlich.
-
Wie in 7B dargestellt, umfasst der zweite Entscheidungsbaum 702 einen Wurzelknoten 732, Leitknoten 734, 736, 738, 746, 748, 750 und Zweige 740, 742, 744, 752, 754, 756. Der Wurzelknoten 732 bezeichnet einen Test zur Bestimmung, ob der Deltawert Δ eines bestimmten benachbarten Pixels größer als ein Schwellenwert thrheight-2 ist. Die Schwellenwerte thrheight-1 und thrheight-2 können gleich oder unterschiedlich sein. Der Zweig 740 gibt ein Ergebnis an, ob der Deltawert Δ des gegebenen benachbarten Pixels größer als der Schwellenwert thrheight-2 ist. Zweig 752 bezeichnet ein Ergebnis, dass der Deltawert Δ des gegebenen benachbarten Pixels nicht größer als der Schwellenwert thrheight-2 ist. Das im Entscheidungsbaum 702 berücksichtigte benachbarte Pixel kann mit dem im Entscheidungsbaum 700 berücksichtigten benachbarten Pixel identisch oder unterschiedlich sein. Beispielsweise kann das im Entscheidungsbaum 700 referenzierte benachbarte Pixel ein Pixel umfassen, das zwei Pixel links von dem Pixel liegt, das dem aktuell betrachteten Datenpunkt zugeordnet ist. Das im Entscheidungsbaum 702 referenzierte benachbarte Pixel kann ein Pixel umfassen, das fünf Pixel über dem Pixel liegt, das dem aktuell betrachteten Datenpunkt zugeordnet ist. Die vorliegende Lösung ist nicht auf die Einzelheiten dieses Beispiels beschränkt.
-
Der mittlere (oder innere) Blattknoten 734 bezeichnet einen Test zur Bestimmung, ob die Farbe eines zentralen Pixels größer als ein Schwellenwert thrcolor-2 ist. Die Schwellenwerte thrcolor-1 und thrcolor-2 können gleich oder unterschiedlich sein. Das zentrale Pixel kann ein Pixel sein, das das mittlere Pixel eines Bildes ist, oder ein mittleres Pixel einer Gruppe von Pixeln, die das Pixel enthält, das dem aktuell betrachteten Datenpunkt zugeordnet ist. Zweig 742 bezeichnet ein Ergebnis, dass die Farbe des zentralen Pixels größer als der Schwellenwert thrcolor-2 ist. Der Zweig 742 führt zum unteren Blattknoten 736, in dem eine Vorhersage getroffen wird, dass der betrachtete Datenpunkt mit einem Hintergrundobjekt mit einem Konfidenzgrad C5 assoziiert ist. Zweig 744 bezeichnet ein Ergebnis, dass die Farbe des zentralen Pixels nicht größer als der Schwellenwert thrcolor-2 ist. Der Zweig 744 führt zum unteren Blattknoten 738, in dem eine Vorhersage getroffen wird, dass der betrachtete Datenpunkt mit einem Vordergrundobjekt mit einem Konfidenzgrad C6 assoziiert ist.
-
Der mittlere (oder innere) Blattknoten 746 bezeichnet einen Test zur Bestimmung, ob die Position eines bestimmten benachbarten Pixels kleiner als ein Schwellenwert thrposition-1 ist. Das im Blattknoten 746 referenzierte benachbarte Pixel kann das im Wurzelknoten 732 referenzierte benachbarte Pixel oder ein anderes benachbartes Pixel sein. Zweig 754 bezeichnet ein Ergebnis, dass die Position des gegebenen benachbarten Pixels kleiner als der Schwellenwert thrposition-1 ist. Der Zweig 754 führt zum unteren Blattknoten 748, in dem eine Vorhersage getroffen wird, dass der betrachtete Datenpunkt mit einem Vordergrundobjekt mit einem Konfidenzgrad C7 assoziiert ist. Zweig 756 bezeichnet ein Ergebnis, dass die Position des gegebenen benachbarten Pixels größer als der Schwellenwert thrposition-1 ist. Der Zweig 756 führt zum unteren Blattknoten 750, in dem eine Vorhersage getroffen wird, dass der betrachtete Datenpunkt mit einem Hintergrundobjekt mit einem Vertrauensgrad C8 assoziiert ist. Die Konfidenzwerte C5, C6, C7 und/oder C8 können gleich oder voneinander verschieden sein.
-
Wenn der Entscheidungsbaum 702 eine Vorhersage liefert, dass der betrachtete Datenpunkt mit einem Vordergrundobjekt assoziiert ist, kann ein Wert eines Parameters P702 auf einen ersten Wert (z.B. eins) gesetzt werden. Im Gegensatz dazu kann der Wert von P702 auf einen anderen zweiten Wert (z.B. Null) gesetzt werden, wenn der Entscheidungsbaum 702 eine Vorhersage liefert, dass der betrachtete Datenpunkt mit einem Hintergrundobjekt assoziiert ist. Der Konfidenzwert C5, C6, C7 oder C8 und der Wert des Parameters P702 werden anschließend vom System verwendet, um eine endgültige Entscheidung darüber zu treffen, ob der betrachtete Datenpunkt mit einem Vordergrundobjekt oder mit einem Hintergrundobjekt assoziiert ist. Die Art und Weise, wie die endgültige Entscheidung getroffen wird, wird im Verlauf der Diskussion deutlich.
-
Wie in 7C dargestellt, umfasst der dritte Entscheidungsbaum 704 einen Wurzelknoten 762, Blattknoten 764, 766, 768, 776, 778, 780 und Zweige 770, 772, 774, 782, 784, 786. Der Wurzelknoten 762 bezeichnet einen Test zur Bestimmung, ob der Deltawert Δ eines zentralen Pixels größer als ein Schwellenwert thrheight-3 ist. Die Schwellenwerte thrheight-1, thrheight-2 und/oder thrheight-3 können gleich oder unterschiedlich sein. Zweig 770 bezeichnet ein Ergebnis, dass der Deltawert Δ des zentralen Pixels größer als der Schwellenwert thrheight-3 ist. Der Zweig 770 führt zum mittleren (oder inneren) Blattknoten 764. Zweig 782 bezeichnet ein Ergebnis, dass der Deltawert Δ des zentralen Pixels nicht größer als der Schwellenwert thrheight-3 ist. Der Zweig 782 führt zum mittleren (oder inneren) Blattknoten 776.
-
Der mittlere (oder innere) Blattknoten 764 bezeichnet einen Test zur Bestimmung, ob der Intensitätswert eines ersten gegebenen benachbarten Pixels größer als ein Schwellenwert thrintensity-2 ist. Die Schwellenwerte thrintensity-1 und thrintensity-2 können gleich oder unterschiedlich sein. Zweig 772 bezeichnet ein Ergebnis, dass der Intensitätswert des ersten gegebenen benachbarten Pixels größer als der Schwellenwert thrintensity-2 ist. Zweig 772 führt zum unteren Blattknoten 766, in dem eine Vorhersage getroffen wird, dass der betrachtete Datenpunkt mit einem Vordergrundobjekt mit einem Grad an Vertrauen C9 assoziiert ist. Zweig 774 bezeichnet ein Ergebnis, dass die Intensität des ersten gegebenen benachbarten Pixels nicht größer als der Schwellenwert thrintensity-2 ist. Der Zweig 774 führt zum unteren Blattknoten 768, in dem eine Vorhersage getroffen wird, ob der betrachtete Datenpunkt mit einem Hintergrundobjekt mit einem Konfidenzgrad C10 assoziiert ist.
-
Der mittlere (oder innere) Blattknoten 776 bezeichnet einen Test zur Bestimmung, ob die Intensität eines zweiten gegebenen benachbarten Pixels größer als ein Schwellenwert thrintensity-3 ist. Der Schwellenwert thrintensity-3 kann mit dem Schwellenwert thrintensity-1 und/oder dem Schwellenwert thrintensity-2 identisch sein oder sich davon unterscheiden. Die benachbarte Pixelreferenz im Blattknoten 776 kann dasselbe Pixel oder ein anderes Pixel sein als das, auf das im Blattknoten 764 verwiesen wird. Zweig 784 bezeichnet ein Ergebnis, dass die Intensität des gegebenen benachbarten Pixels größer als der Schwellenwert thrintensity-3 ist. Der Zweig 784 führt zum unteren Blattknoten 778, in dem eine Vorhersage getroffen wird, dass der betrachtete Datenpunkt mit einem Vordergrundobjekt mit einem Konfidenzgrad C11 assoziiert ist. Zweig 786 bezeichnet ein Ergebnis, dass die Intensität des gegebenen benachbarten Pixels nicht größer als der Schwellenwert thrintensity-3 ist. Der Zweig 786 führt zum unteren Blattknoten 780, in dem eine Vorhersage getroffen wird, dass der betrachtete Datenpunkt mit einem Hintergrundobjekt mit einem Konfidenzgrad C12 assoziiert ist.
-
Die Konfidenzwerte C9, C10, C11 und/oder C12 können gleich oder unterschiedlich sein.
-
Wenn der Entscheidungsbaum 704 eine Vorhersage liefert, dass der betrachtete Datenpunkt mit einem Vordergrundobjekt assoziiert ist, kann ein Wert eines Parameters P704 auf einen ersten Wert (z.B. eins) gesetzt werden. Im Gegensatz dazu kann der Wert von P704 auf einen anderen zweiten Wert (z.B. null) gesetzt werden, wenn der Entscheidungsbaum 704 eine Vorhersage liefert, dass der betrachtete Datenpunkt mit einem Hintergrundobjekt verknüpft ist. Der Konfidenzwert C9, C10, C11 oder C12 und der Wert des Parameters P704 werden anschließend vom System verwendet, um eine endgültige Entscheidung darüber zu treffen, ob der betrachtete Datenpunkt mit einem Vordergrundobjekt oder mit einem Hintergrundobjekt assoziiert ist.
-
In einigen Szenarien wird die endgültige Entscheidung F gemäß der folgenden mathematischen Gleichung (5) getroffen:
-
Dabei stellt C700 den vom Entscheidungsbaum 700 ausgegebenen Konfidenzwert dar (d.h. C1, C2, C3 oder C4), C702 den vom Entscheidungsbaum 702 ausgegebenen Konfidenzwert (d.h. C5, C6, C7 oder C8) und C704 stellt den vom Entscheidungsbaum 704 ausgegebenen Konfidenzwert dar (d.h. C9, C10, C11 oder C12). Eine endgültige Klassifizierung, dass der aktuell betrachtete Datenpunkt ein Vordergrunddatenpunkt ist, wird vorgenommen, wenn (i) eine Mehrheit der Entscheidungsbäume (z.B. 2 in diesem Szenario) eine Vordergrundvorhersage getroffen hat und (ii) Fgleich oder größer ist als ein Schwellenwert thrfinal ist (z.B. 0,5). Eine endgültige Klassifizierung, dass der aktuell betrachtete Datenpunkt ein Hintergrunddatenpunkt ist, erfolgt, wenn (i) eine Mehrheit der Entscheidungsbäume (z.B. 2 in diesem Szenario) eine Hintergrundvorhersage getroffen hat und (ii) F kleiner als ein Schwellenwert thrfinal ist (z.B. 0,5).
-
Der hierarchische Entscheidungsbaum-Klassifikator kann auch Operationen durchführen, um Datenpunkte zu gruppieren, um Punktwolkensegmente basierend auf den Datenpunktklassifizierungen und/oder Abständen zwischen Datenpunkten zu bilden. In einigen Szenarien werden alle als Vordergrunddatenpunkte klassifizierten Datenpunkte gruppiert, um ein erstes Punktwolkensegment zu bilden, und alle als Hintergrunddatenpunkte klassifizierten Datenpunkte werden gruppiert, um ein zweites Punktwolkensegment zu bilden. In anderen Szenarien werden als Vordergrunddatenpunkte klassifizierte Datenpunkte basierend auf den Abständen zueinander gruppiert, um ein oder mehrere Vordergrundpunktwolkensegmente zu bilden, und als Hintergrunddatenpunkte klassifizierte Datenpunkte werden basierend auf den Abständen zueinander gruppiert um ein oder mehrere Punktwolkensegmente im Hintergrund zu bilden. Die vorliegende Lösung ist nicht auf die Einzelheiten dieser Szenarien beschränkt. Andere Techniken können verwendet werden, um klassifizierte Datenpunkte zu gruppieren.
-
Der hierarchische Entscheidungsbaumklassifikator wird auf der Grundlage von Merkmalsvektoren („feature vectors“) trainiert, die mithilfe von Punktwolken abgeleitet werden, die auf der Grundlage von Stereobildern generiert wurden. Merkmalsvektoren sind allgemein bekannt. Techniken zum Ableiten von Merkmalsvektoren sind ebenfalls allgemein bekannt. Jeder Merkmalsvektor enthält unter anderem die folgenden Informationen für ein bestimmtes betrachtetes Pixel und S (z.B. 25) benachbarte Pixel: eine für die Grund-/Hintergrundklassifizierung, einen Intensitätswert, eine Position und einen Deltawert (d.h. eine Höhe über dem Boden). S ist eine ganze Zahl. Der Wert von S kann zufällig ausgewählt, willkürlich ausgewählt und/oder vordefiniert sein. Das Training erzeugt genauere Vordergrund-/Hintergrundvorhersagemodelle bei langsamer Rechengeschwindigkeit, wenn ein größerer Wert von S verwendet wird, und eine Verwendung eines kleineren Werts für S führt zu weniger genauen Vordergrund-/Hintergrund-Vorhersagemodellen mit einer schnelleren Berechnungsgeschwindigkeit. Daher stellt die Auswahl von S einen Kompromiss zwischen Modellgenauigkeit und Rechengeschwindigkeit dar.
-
Die Merkmalsvektoren werden verwendet, um den hierarchischen Entscheidungsbaumklassifizierer gemäß einer bekannten oder noch zukünftig noch bekannt werdenden Trainingstechnik zu trainieren. Eine solche Trainingstechnik, die hier verwendet werden kann, ist die bekannte Python-Technik, die (i) Muster innerhalb der Merkmalsvektoren für Vordergrundobjekte und Hintergrundobjekte findet, (ii) die Muster in hierarchischen Entscheidungsbaumstrukturen definiert und (iii) maschinell erlernte Modelle für die Vordergrund-/Hintergrundvorhersage unter Verwendung der hierarchischen Entscheidungsbaumstrukturen definiert. Jedes maschinell erlernte Modell umfasst eine Vielzahl hierarchischer Entscheidungsbaumstrukturen.
-
Beispielsweise wird in einigen Szenarien während des Trainings eine 3D-Straßenkarte verwendet, um mehrere Abstände zwischen Datenpunkten in Punktwolken zu bestimmen. Jeder Abstand umfasst einen Abstand zwischen einem gegebenen Datenpunkt und jedem einer Vielzahl von Datenpunkten, die benachbarten Pixeln in einer Stereobildebene zugeordnet sind. Die Abstände werden verwendet, um (i) Abstandsmuster zwischen Datenpunkten zu erkennen, die wahrscheinlich auf Objekte im Vordergrund oder Hintergrund hinweisen, und (ii) um zu bestimmen, wie viele nahegelegene Pixel zur Schätzung von Vordergrund-/Hintergrundobjekten als Funktion der Distanz verwendet werden sollen. Die gelernten Informationen (i) und (ii) werden in einem Datenspeicher gespeichert und zur Generierung maschinell erlernter Modelle verwendet.
-
Obwohl die vorliegende Lösung in Bezug auf eine oder mehrere Implementierungen dargestellt und beschrieben wurde, werden Fachleuten beim Lesen und Verstehen dieser Spezifikation und der beigefügten Zeichnungen gleichwertige Änderungen und Modifikationen in den Sinn kommen. Darüber hinaus kann ein bestimmtes Merkmal der vorliegenden Lösung möglicherweise nur in Bezug auf eine von mehreren Implementierungen offenbart worden sein, ein solches Merkmal kann jedoch mit einem oder mehreren anderen Merkmalen der anderen Implementierungen kombiniert werden, je nach Bedarf und Vorteil für eine gegebene oder bestimmte Implementierung Anwendung. Daher sollten die Breite und der Umfang der vorliegenden Lösung nicht durch eine 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/118705 [0001]
- US 16/802970 [0053]
- US 2021/0150227 A1 [0053]