-
Diese Offenbarung ist allgemein auf die Verarbeitung von Bilddaten, die durch LiDAR-basierte Systeme bereitgestellt werden, und insbesondere auf ein adaptives, Dichte-basiertes System und Verfahren zum Untersuchen und zum Gruppieren von Punkten, um Objekte zu detektieren, gerichtet.
-
Autonome Verkehrsmittel erfordern die Fähigkeit, verschiedene Arten von Objekten, denen ein Verkehrsmittel begegnet, einschließlich anderer Verkehrsmittel, Fußgänger, Gebäude, Tore, sowie eine Anzahl anderer Objekte, denen autonome Verkehrsmittel begegnen, zu „sehen“. Nicht-autonome Verkehrsmittel profitieren ähnlich von der Fähigkeit, Objekte zu detektieren. Hierzu ist es üblich, dass Verkehrsmittel eine oder mehr Arten von Sensoren verwenden, um Informationen, die analysiert werden, um verschiedene Objekte zu identifizieren, zu sammeln. Insbesondere arbeiten Lichterkennungs- und Entfernungsmess-(„light detection and ranging“; LiDAR)-Sensoren, indem sie ein Ziel mit Laserlicht beleuchten und das reflektierte Licht mit einem Sensor messen, um eine Entfernung zu dem Objekt, das die Reflexion verursacht hat, zu ermitteln. Die durch ein LiDAR-System bereitgestellte Ausgabe ist eine Vielzahl von Punkten, die als Punktwolke, die eine 3D-Form oder ein 3D-Merkmal darstellt, bezeichnet werden. Techniken zum maschinellen Lernen wie beispielsweise Cluster-Bildung werden verwendet, um die einzelnen Punkte in einer Sammlung von Clustern, die letztlich verwendet werden, um Objekte zu detektieren und/oder identifizieren, zu organisieren.
-
Es kann eine Vielzahl verschiedener Cluster-Bildungstechniken einschließlich (1) Partitionieren, (2) hierarchisch, (3) Dichte-basiert und (4) Gitter-basiert verwendet werden. Zum Beispiel besteht eine allgemein verwendete Cluster-Bildungstechnik in der Dichte-basierten räumlichen Clusterbildung von Anwendungen mit Störungen („densitiy-based special clustering of applications“; DBSCAN), welche Punkte, die nahe beieinander gepackt sind, zusammen gruppiert („clusters together“) und jede, die sich in Gebieten mit geringer Dichte befinden, als Ausreißer oder Störungen markiert. Ein Vorteil von DBSCAN besteht darin, dass sie keine Kenntnis von der Anzahl zu bildender Cluster erfordert, was es DBSCAN ermöglicht, Cluster mit beliebigen Formen zu detektieren. Allerdings besitzt DBSCAN, wenn es bei LiDAR-Anwendungen verwendet wird, mehrere Nachteile einschließlich der Unfähigkeit, Objekte, die sich sowohl in der Nähe als auch entfernt von dem Sensor befinden, zu detektieren, der Unfähigkeit, Objekte mit verschiedenen Dichteniveaus (z.B. Gebüsch gegenüber Verkehrsmittel) zu gruppieren, und der Unfähigkeit, Eigenschaften von LiDAR-Sensordaten zu verwenden.
-
Es wäre daher vorteilhaft, eine Technik zur Clusterbildung, die einen oder mehr der mit traditionellen Clusterbildungs-Algorithmen verbundenen Nachteile überwindet, zu entwickeln.
-
Gemäß einem Aspekt beinhaltet ein Verfahren zum Gruppieren („Clustering“) räumlicher Daten das Empfangen einer Punktwolke, die aus mehreren, innerhalb eines dreidimensionalen (3D) Raums definierten Punkten besteht. Das Verfahren beinhaltet weiterhin das Auswählen von einem oder mehr anpassbaren Clusterbildungsparametern für jeden der mehreren Punkte. Das Verfahren beinhaltet weiterhin das Durchlaufen eines jeden der mehreren Punkte in der Punktwolke und das selektive Hinzufügen eines jeden der Punkte zu einem oder mehr Clustern basierend auf den zu jedem Punkt gehörenden, ausgewählten Clusterbildungsparametern.
-
Gemäß einem weiteren Aspekt beinhaltet ein Verfahren zum Gruppieren räumlicher Daten das Empfangen einer Punktwolke, die aus mehreren, innerhalb eines dreidimensionalen (3D) Raums definierten Punkten besteht. Ein zuvor nicht gruppierter Punkt wird aus der Punktwolke ausgewählt und ein neues Cluster wird erzeugt, wenn der ausgewählte Punkt zuvor nicht gruppiert war und basierend auf einer Anzahl von benachbarten Punkten, die sich innerhalb eines Untersuchungsradius' befinden, festgestellt wird, dass er einen Kernpunkt darstellt. Wenn er als Kernpunkt identifiziert wird, werden benachbarte Punkte des identifizierten Kernpunkts einer Nachbarliste hinzugefügt. Für jeden Punkt auf der Nachbarliste wird eine Feststellung getroffen, ob der benachbarte Punkt ebenfalls einen Kernpunkt darstellt. Für einen benachbarten Punkt, der als Kernpunkt erkannt wird, wird der Punkt dem Cluster hinzugefügt und Nachbarn des benachbarten Punkts (d.h. Kernpunkts) werden der Nachbarliste zur Analyse hinzugefügt. Für einen benachbarten Punkt, der nicht als Kernpunkt identifiziert wird, werden der Azimut- und/oder Höhenwinkel zwischen dem benachbarten Punkt und einem daneben befindlichen Punkt mit einem Schwellenwert verglichen, wobei der daneben befindliche Punkt, wenn der Azimut- oder Höhenwinkel zwischen dem benachbarten Punkt und dem daneben befindlichen Punkt geringer als ein Schwellenwert ist, der Nachbarliste hinzugefügt wird, sofern er nicht zuvor einem Cluster zugeordnet wurde.
-
Gemäß einem weiteren Aspekt beinhaltet ein System zumindest einen Prozessor und ein Clusterbildungsmodul, das, wenn es durch zumindest einen Prozessor ausgeführt wird, dazu ausgebildet ist, einen Dichte-basierten Clusterbildungsalgorithmus zu implementieren, der mehrere durch das System empfangene Punkte in ein oder mehr Cluster gruppiert. Der Dichte-basierte Clusterbildungsalgorithmus ist dazu ausgebildet, eine Punktwolke, die aus mehreren, innerhalb eines dreidimensionalen (3D) Raums definierten Punkten besteht, zu empfangen, und auf die Punktwolke einen Untersuchungsalgorithmus anzuwenden, wobei der Untersuchungsalgorithmus Clusterbildungsparameter, die einen oder mehr von Minimalpunktschwellenwert und Untersuchungsradius enthalten, für jeden Punkt in der Punktwolke auswählt. Der Dichte-basierte Clusterbildungsalgorithmus ist weiterhin dazu ausgebildet, einen Clusterbildungsalgorithmus auf die Punktwolke anzuwenden, wobei der Clusterbildungsalgorithmus zumindest einige der Punkte in der Punktwolke durchläuft und den Minimalpunktschwellenwert und Untersuchungsradius, die jedem Punkt durch den Untersuchungsalgorithmus zugeordnet sind, verwendet, um Clustern Punkte selektiv hinzuzufügen.
-
1a ist eine Seitenansicht eines Verkehrsmittels, das ein Lichterkennungs- und Abstands-(LiDAR)-basiertes Bildgebungssystem aufweist, gemäß einigen Ausführungsformen.
-
1b ist eine Draufsicht auf ein Verkehrsmittel, das ein LiDAR-basiertes Bildverarbeitungssystem aufweist, gemäß einigen Ausführungsformen.
-
2a ist ein Blockschaltbild eines LiDAR-basierten Bildverarbeitungssystems gemäß einigen Ausführungsformen.
-
2b ist ein Blockschaltbild von Komponenten, die durch das LiDAR-basierte Bildverarbeitungssystem verwendet werden, um die mehreren Punkte zu untersuchen und zu gruppieren, gemäß einigen Ausführungsformen.
-
3 ist ein Flussdiagramm, das Schritte, die verwendet werden, um den adaptiven, Dichte-basierten Clusterbildungsalgorithmus zu implementieren, veranschaulicht, gemäß einigen Ausführungsformen.
-
Die 4a und 4b sind Flussdiagramme, die die Schritte, die verwendet werden, um die mehreren Punkte zu untersuchen und zu gruppieren, veranschaulichen, gemäß einigen Ausführungsformen.
-
5 ist eine Darstellung, die den Effekt, den veränderliche Untersuchungsradien auf eine Identifizierung von benachbarten Punkten und die Clusterbildung haben, veranschaulicht, gemäß einigen Ausführungsformen.
-
6 ist eine Darstellung, die ein Beispiel-Set von gruppierten Punkten veranschaulicht, gemäß einigen Ausführungsformen.
-
7 ist eine Darstellung, die den Effekt, den der Einfallswinkel und die Auflösung auf den Abstand zwischen nebeneinander befindlichen Punkten haben, veranschaulicht, gemäß einigen Ausführungsformen.
-
Um räumliche Daten wie beispielsweise Punktwolken zu nutzen, werden Clusterbildungsalgorithmen verwendet, um Punkte, die sich nahe beieinander befinden, zu gruppieren. Die resultierenden Cluster werden Objekterfassungs-/Erkennungsalgorithmen zugeführt, um Objekte zu klassifizieren. Dichte-basierte Clusterbildungsalgorithmen arbeiten, indem sie jeden Punkt in der Punktwolke als Kernpunkt, Randpunkt oder Störpunkt klassifizieren. Kernpunkte werden als jene Punkte, die innerhalb eines definierten Untersuchungsradius' ε einen minimalen Schwellenwert (als Minimalpunktschwellenwert bezeichnet) von Nachbarn aufweisen, definiert. Randpunkte sind jene Punkte, die sich innerhalb der Nachbarschaft eines Kernpunkts befinden, die nicht innerhalb eines definierten Radius' ε den minimalen Schwellenwert von Nachbarn aufweisen. Störpunkte sind jene Punkte, die keine Kernpunkte oder Randpunkte sind. Cluster werden gebildet, indem benachbarte Kernpunkte verbunden und demselben Cluster hinzugefügt werden. Der hierin offenbarte, adaptive Clusterbildungsalgorithmus erlaubt es, dass einer oder mehr der Parameter modifiziert werden. Zum Beispiel kann der Minimalpunktschwellenwert der verwendet wird, um festzustellen, ob ein Punkt ein Kernpunkt ist, basierend auf dem Abstand, in dem sich der Punkt von dem Sensor befindet, eingestellt werden. Dies ermöglicht es, dass weiter von dem LiDAR-Sensor entfernte Objekte trotz einer geringeren Dichte von Punkten, die einem oder mehr beabstandeten Objekten zugeordnet sind, gruppiert werden. Zusätzlich erlaubt es der hierin offenbarte, adaptive Clusterbildungsalgorithmus bei einigen Ausführungsformen, dass der Untersuchungsradius ε modifiziert wird. Das Erhöhen des Untersuchungsradius' erhöht die Anzahl benachbarter Punkte und hilft deshalb, Punkte in Gebieten geringerer Dichte zu gruppieren. Schließlich trägt der hierin beschriebene, adaptive Clusterbildungsalgorithmus bei einigen Ausführungsformen dem Effekt Rechnung, den der Einfallswinkel auf den Abstand zwischen nebeneinander befindlichen Punkten aufweist, was manchmal zu dem Fehler typischer Dichte-Algorithmen, nebeneinander befindliche Punkte innerhalb desselben Objekts zu verbinden, führt. Bei einigen Ausführungsformen nutzt der adaptive Clusterbildungsalgorithmus die Differenz zwischen den Azimutwinkeln und/oder Höhenwinkeln von nebeneinander befindlichen Punkten, um festzustellen, ob Nachbarn eines Randpunkts (neben einem Kernpunkt befindlich) dem Cluster hinzugefügt werden sollten. Das Verwenden von einer oder mehr dieser Techniken allein oder in Kombination miteinander liefert einen robusteren Dichte-basierten Clusterbildungsalgorithmus, der in der Lage ist, räumliche Datenpunkte genau zu gruppieren.
-
1a ist eine Seitenansicht eines Verkehrsmittels, das einen Lichterkennungs- und Abstandsbestimmungs- (LiDAR)-Sensor 100 gemäß einigen Ausführungsformen aufweist. Bei der in 1a gezeigten Ausführungsform ist der LiDAR-Sensor 100 auf einem oberen Teil des Verkehrsmittels 102 installiert. Der LiDAR-Sensor 100 arbeitet, indem er Licht- (z.B. Laser)-Pulse innerhalb eines Sichtfelds des Verkehrsmittels emittiert. Das Sichtfeld kann ein Höhensichtfeld 104, wie in 1a gezeigt, (d.h. in der z-Richtung) sowie ein Azimut-Sichtfeld 106, wie in 1b gezeigt, (d.h. in der x-y-Ebene) enthalten. Bei einigen Ausführungsformen ist das Höhensichtfeld geringer als 180°, bei einigen Ausführungsformen geringer als 90° und bei einigen Ausführungsformen geringer als 45°. Bei den in den 1a und 1b gezeigten Ausführungsformen beträgt das Azimut-Sichtfeld näherungsweise 360°. Bei einigen Ausführungsformen beträgt das Azimut-Sichtfeld jedoch näherungsweise 180°. Bei anderen Ausführungsformen kann der LiDAR-Sensor 100 an der Vorderseite, der Rückseite oder der Seite des Verkehrsmittels 102 installiert sein, und das Sichtfeld kann basierend auf der Installationsstelle modifiziert werden.
-
Der LiDAR-Sensor 100 verwendet eine Lichtquelle (z.B. Laser) und einen Detektor. Die Lichtquelle erzeugt einen Lichtpuls und der Detektor überwacht Reflexionen, wobei die mit einer Reflexion verbundene Laufzeit verwendet wird, um den Abstand/die Position des Objekts, das die Reflexion verursacht hat, abzuschätzen. Das Set von räumlichen Daten, das als Ergebnis erzeugt wird, besteht aus mehreren im Raum befindlichen Punkten. Wie unten ausführlicher erörtert wird, werden die räumlichen Daten gruppiert und die gruppierten Daten werden verwendet, um Objekte zu detektieren/erkennen. Als Reaktion auf detektierte Objekte kann das Verkehrsmittel 102 eine Anzahl von Handlungen, die vom Erzeugen von Warnungen für einen Bediener des Verkehrsmittels bis zum Erzeugen von Befehlen, den Betrieb des Verkehrsmittels zu ändern (z.B. autonome Handlungen für selbst fahrende Verkehrsmittel), reichen, vornehmen.
-
Bezug nehmend auf die 2a und 2b sind Komponenten eines LiDAR-basierten Bildverarbeitungssystems 200 in zusätzlicher Ausführlichkeit gezeigt. Bei dem in 2a gezeigten Blockschaltbild enthält das LiDAR-basierte Bildverarbeitungssystem 200 einen LiDAR-Laser 201, einen Detektor 202 und ein verarbeitendes System 204, das einen Prozessor (z.B. zentrale Recheneinheit („central processing unit“; CPU)/grafische verarbeitende Einheit („graphical processing unit“; GPU)) 206, ein computerlesbares Medium 208 und ein Punktwolkenspeichermedium 210 enthält.
-
Die LiDAR-Lichtquelle 201 erzeugt den Lichtpuls, der verwendet wird, um den Abstand zu Objekten zu messen. Bei einigen Ausführungsformen kann die LiDAR-Lichtquelle 201 einen Einzellichtpuls (der in mehreren Richtungen zur selben Zeit bereitgestellt wird) oder mehrere einzelne Pulse, die in bestimmten Richtungen zu bestimmten Zeitpunkten bereitgestellt werden, erzeugen. Der erzeugte Lichtpuls läuft von dem Verkehrsmittel weg und interagiert mit Objekten, die sich im Lichtpfad befinden. Licht, das von einem Objekt reflektiert oder zurückgestreut wird, kehrt zu dem Verkehrsmittel zurück und wird durch den Detektor 202 detektiert. Die Laufzeit des Lichtpulses liefert Informationen betreffend den Abstand zwischen dem Objekt und dem Detektor 202. Jede detektierte Reflexion liefert räumliche Informationen betreffend das umgebende Umfeld, hierin als Punkt bezeichnet. Insbesondere empfängt das verarbeitende System 204 Informationen betreffend die Laufzeit des detektierten Lichtpulses und verwendet die Informationen betreffend den Puls, um einen Ort der Reflexion zu bestimmen. Das verarbeitende System 204 sammelt mehrere Punkte, um eine Punktwolke, die räumliche Informationen betreffend das umgebende Umfeld liefert, zu erzeugen.
-
Das LiDAR-basierte Bildverarbeitungssystem 200 kann mit einer Vielzahl verschiedener Arten von LiDAR-Systemen, von denen jedes mit der Punktwolke, die aus mehreren Punkten besteht, arbeitet, implementiert werden. Zum Beispiel verwendet Blitz-LiDAR („flash-LiDAR“) eine einzige Lichtquelle, die das gesamte Sichtfeld mit einem einzigen Puls beleuchtet. Eine Fokusebene einer Blitz-LiDAR-Kamera enthält mehrere Zeilen und Spalten von Detektoren, die dazu ausgebildet sind, die Zeit, die der Lichtpuls benötigt, um das Ziel zu treffen und zu dem Array zurückzukehren, aufzuzeichnen, um ein 3D-Bild des umgebenden Gebiets zu erzeugen. Bei anderen Ausführungsformen kann die LiDAR-Lichtquelle 201 mehrere Einzelpulse, die durch das Sichtfeld gesteuert werden, erzeugen, wobei der Detektor 202 die Laufzeit von reflektierten Signalen misst, um den Abstand von dem Detektor zu der Stelle der Reflexion zu bestimmen. Das Steuern der Pulse kann über mechanische, elektromechanische oder elektrische Mittel vorgesehen werden. Zum Beispiel kann eine mikroelektromechanische Maschine verwendet werden, um einen Spiegel zu drehen, was bewirkt, dass der Laser durch das Sichtfeld gesteuert wird. Bei anderen Ausführungsformen kann ein phasengesteuertes Array („phased array“), das aus mehreren Antennen besteht, verwendet werden, um durch die Steuerung der Zeiteinteilung (Phase) einer jeden Antenne in dem phasengesteuerten Array ein zusammenhängendes Signal („cohesive signal“) zu erzeugen. Detektierte Reflexionen - insbesondere Informationen, die zu detektierten Reflexionen gehören - werden einem verarbeitenden System 204 zur Analyse zugeführt.
-
Bei der in 2a gezeigten Ausführungsform enthält das verarbeitende System 204 den Prozessor 206, das computerlesbare Medium 208 und den Punktwolkenspeicher 210. Das computerlesbare Medium speichert Anweisungen, die, wenn sie durch den Prozessor 206 ausgeführt werden, bewirken, dass der Prozessor 206 verschiedenste Funktionen/Operationen an den durch den Detektor 202 gesammelten Daten implementiert. Zum Beispiel beinhaltet dieses bei einigen Ausführungsformen ein Punktwolkenmodul 220, ein Cluster-bildendes Modul 222 und ein Objektklassifizierungsmodul 224 (in 2b gezeigt). Bei einigen Ausführungsformen ist das Punktwolkenmodul 220 dazu ausgebildet, die Punktwolke basierend auf den durch den Detektor 202 detektierten Reflexionen zu erzeugen. Das Cluster-bildende Modul 222 analysiert die Punktwolke und gruppiert die mehreren einzelnen Punkte in ein oder mehr eindeutige Cluster. Die durch das Cluster-bildende Modul 222 ausgeführte Funktionsweise wird unter Bezugnahme auf die 3, 4a und 4b unten ausführlicher beschrieben. Das Objektklassifizierungsmodul 224 detektiert Objekte innerhalb des Sichtfelds des LiDAR-basierten Bildverarbeitungssystems 200 basierend auf den empfangenen Clustern. Detektierte Objekte - einschließlich Informationen betreffend die Stelle des Objekts und/oder des Abstands zu dem Objekt können als Ausgabe an andere Systeme bereitgestellt werden.
-
3 ist ein Flussdiagramm, das den Algorithmus 300 zur adaptiven Untersuchung/LiDAR-basierten Clusterbildung gemäß einiger Ausführungsformen veranschaulicht. Die Eingabe an den Algorithmus 300 zur adaptiven Untersuchung /LiDAR-basierten Clusterbildung ist die Punktwolke - die aus mehreren einzelnen Punkten besteht - gesammelt durch den LiDAR-Laser 201 und den Detektor 202 (in 2a gezeigt). Bei Schritt 301 wird die Punktwolke, die aus mehreren innerhalb des dreidimensionalen Raums definierten Punkten besteht, empfangen. Bei Schritt 302 wird die Punktwolke durch Besuchen der mehreren Punkte und Auswählen von einem oder mehr anpassbaren Clusterbildungsparametern (z.B. Minimalpunktschwellenwert MinPt und/oder Untersuchungsradius ε) für jeden Punkt untersucht.
-
Bei einigen Ausführungsformen verwendet Schritt 302 den Abstand des Punkts von dem LiDAR-Sensor, um einen oder mehr Clusterbildungsparameter zu modifizieren. Zum Beispiel werden bei einigen Ausführungsformen, wenn festgestellt wird, dass sich der analysierte Punkt in einem kurzen Abstand von dem LiDAR-Sensor befindet, die Clusterbildungsparameter in der Erwartung relativ nah beabstandeter Punkte auf ein erstes Set von Werten eingestellt. Wenn festgestellt wird, dass sich der analysierte Punkt in einem größeren Abstand von dem LiDAR-Sensor befindet, werden die Clusterbildungsparameter in der Erwartung relativ weit beabstandeter Punkte auf ein zweites Set von Werten eingestellt. Zum Beispiel kann der Untersuchungsradius ε für Punkte, die weiter von dem LiDAR-Sensor entfernt sind, erhöht werden. Wie unter Bezugnahme auf 4a ausführlicher erläutert, wird bei einigen Ausführungsformen während der Untersuchung bei Schritt 302 ein Minimalpunktschwellenwert verwendet, um festzustellen, ob ein Punkt ein Kernpunkt ist, und der Minimalpunktschwellenwert kann basierend auf dem Abstand des Punkts von dem LiDAR-Sensor modifiziert werden.
-
Bei einigen Ausführungsformen modifiziert Schritt 302 einen oder mehr anpassbare Clusterbildungsparameter als Reaktion darauf, dass eine erste Analyse unzureichende Dichteinformationen liefert (wie unter Bezugnahme auf Schritt 304 beschrieben). Wenn zum Beispiel die Anzahl von in einer ersten Untersuchung gefundenen Nachbarn - basierend auf einem ersten Untersuchungsradius ε - nicht ausreicht ist, um eine aussagekräftige Dichteermittlung durchzuführen, kann unter Verwendung eines zweiten, größeren Untersuchungsradius' ε eine zweite Untersuchung des Punkts durchgeführt werden. Basierend auf dem größeren Untersuchungsradius können zusätzliche benachbarte Punkte detektiert und verwendet werden, um die zu dem analysierten Punkt gehörenden Dichteinformationen zu bestimmen. Bei einigen Ausfuhrungsformen wird der größere Untersuchungsradius ε dem Punkt zugeordnet und während nachfolgender Clusterbildungsschritte verwendet.
-
Bei Schritt 304 wird in Bezug auf jeden der mehreren Punkte eine Dichte berechnet. Bei einigen Ausführungsformen wird das Dichtenniveau des Punkts basierend auf der Anzahl von mit dem Untersuchungsradius ε für den analysierten Punkt gefundenen Punkten bestimmt. Bei einigen Ausführungsformen wird die Auswahl von einem oder mehr anpassbaren Clusterbildungsparametern bei Schritt 302 auch verwendet, um genauere Dichteberechnungen zu liefern. Zum Beispiel basiert bei einigen Ausführungsformen die Dichte von Punkten um einen Punkt nicht nur auf dem den LiDAR-Laser reflektierenden Objekt, sondern auch auf dem Abstand des Objekts von dem LiDAR-Sensor. Zum Beispiel können massive Objekte eine Anzahl von dicht beabstandeten Punkten liefern, aber andere Objekte (z.B. Blätter) können zu Punkten, die weniger beanstandet sind, führen. Zusätzlich kann, weil der Abstand zwischen benachbarten LiDAR-Pulsen weiter von dem LiDAR-Sensor anwächst, der Abstand zwischen nebeneinander befindlichen Punkten bei größeren Abständen ebenfalls anwachsen. Eine Modifikation von einem oder mehr Clusterbildungsparametern bei Schritt 302 stellt sicher, dass man bei Schritt 304 für jeden Punkt unter Beibehaltung einer guten Leistungsfähigkeit aussagekräftige Dichteinformationen erhält.
-
Bei Schritt 306 werden die bei Schritt 302 gemachten Dichtebestimmungen verwendet, um die mehreren Punkte zu sortieren. Zum Beispiel werden die Punkte bei einigen Ausführungsformen von am dichtesten zu am wenigsten dicht sortiert. Die Ausgabe von Schritt 306 besteht deshalb in einer geordneten (sortierten) Liste von Punkten, wobei jeder Punkt die Parameter, die während des Untersuchungsschritts (Schritt 302) verwendet wurden, um den Punkt zu analysieren, enthält. Dies kann den Untersuchungsradius ε und den Minium-Punktschwellenwert (MinPt), die verwendet wurden, um den Punkt zu analysieren, beinhalten.
-
Bei Schritt 308 werden die mehreren Punkte in der Punktwolke einer nach dem anderen durchlaufen und basierend auf in Schritt 302 gewählten, anpassbaren Clusterbildungsparametern, die verwendet werden, um die Nähe der Punkte zueinander zu bewerten, in Clustern platziert. Bei einigen Ausführungsformen basiert die Reihenfolge, in der Punkte durchlaufen werden, auf der bei Schritt 306 vorgenommenen Sortierung der Punkte. Zum Beispiel wird bei einigen Ausführungsformen der Punkt mit der höchsten Dichte zuerst analysiert, wobei das Bilden der Cluster das Prüfen der Nachbarn des ausgewählten Punkts und das Feststellen, ob benachbarte Punkte demselben Cluster hinzugefügt werden sollten, beinhaltet. Dieser Prozess geht weiter, bis alle Punkte einem oder mehr erzeugten Clustern hinzugefügt oder als Störpunkte identifiziert wurden. Wie unten unter Bezugnahme auf 4b ausführlicher beschrieben, beinhaltet der Clusterbildungsprozess das Klassifizieren von Punkten als Kernpunkte, Randpunkte oder Störpunkte basierend auf einer Feststellung, ob der Punkt eine Minimalzahl von Punkten innerhalb eines gegebenen Untersuchungsradius' aufweist. Wie unter Bezugnahme auf Schritt 302 beschrieben, wird der Minimalpunktschwellenwert bei einigen Ausführungsformen basierend auf dem Abstand des Punkts von dem LiDAR-Sensor modifiziert. Daher können verschiedene Punkte verschiedene Parameter (z.B. MinPt, Untersuchungsradius) verwenden, um festzustellen, ob ein Punkt einem Cluster hinzugefügt werden sollte. Daher hat die Reihenfolge, mit der Punkte gruppiert werden, eine Auswirkung auf die finalen Cluster-Ergebnisse. Im Gegensatz dazu gäbe es, wenn dieselben Parameter für sämtliche Punkte verwendet würden, beim Feststellen, ob ein Punkt einem bestimmten Cluster hinzugefügt wird, Bi-Direktionalität (das heißt, die Reihenfolge, in der die Punkte zur Clusterbildung analysiert würden, hätte keine Auswirkung auf zugehörige Cluster). Daher werden die Punkte bei der in 3 gezeigten Ausführungsform basierend auf der ermittelten Dichte sortiert und verwendet, um die Reihenfolge, in der die Punkte gruppiert werden, zu bestimmen.
-
Zusätzlich wird bei Schritt 308 bei einigen Ausführungsformen der Unterschied der Azimut-/Höhenwinkel zwischen nebeneinander befindlichen Punkten - wobei die Azimut-/Höhenwinkel auf dem Winkel zwischen dem LiDAR-Sensor und dem Punkt basieren - verwendet, um die Clusterbildung zu modifizieren. Zum Beispiel kann ein Punkt, der basierend auf dem Clusterbildungsalgorithmus so eingestuft wurde, dass er keinen Kernpunkt darstellt, nichtsdestotrotz für Clusterbildungszwecke als Kernpunkt identifiziert werden, wenn die Differenz der Azimut-/Höhenwinkel zwischen dem Punkt und einem daneben befindlichen Punkt geringer als ein Schwellenwert ist - was anzeigt, dass die Punkte Nachbarn darstellen und zusammen gruppiert werden sollten. Dieser Prozess wird auch unter Bezugnahme auf 4b und 6 unten ausführlicher beschrieben.
-
Die Ausgabe der adaptiven Untersuchung/des LiDAR-basierten Clusterbildungsalgorithmus' 300 sind mehrere Cluster, denen jeweils mehrere Punkte zugeordnet sind. Wie oben unter Bezugnahme auf 2b beschrieben, werden die mehreren Cluster einem Objektklassifizierungsmodul zugeführt, um Objekte zu erkennen/klassifizieren.
-
Die 4a und 4b sind Flussdiagramme, die die adaptive Untersuchung für einen LiDAR-basierten Clusterbildungsalgorithmus 400 gemäß einigen Ausführungsformen veranschaulichen. Insbesondere veranschaulicht 4a eine Untersuchungsphase des Algorithmus' 400, und 4b veranschaulicht eine Clusterbildungsphase des Algorithmus' 400. Die dem LiDAR-basierten Clusterbildungsalgorithmus 400 zugeführte Eingabe ist eine Punktwolke, die aus mehreren Punkten besteht. Jeder Punkt ist durch eine Stelle im Raum relativ zu der LiDAR-Lichtquelle 201 und dem Detektor 202 gekennzeichnet. Wie in den 4a und 4b gezeigt, sind einige der Schritte in dem Flussdiagramm mit gestrichelten Kästen gekennzeichnet, was anzeigt, dass der Schritt optional als Teil der adaptiven Untersuchung und des Algorithmus' zur Clusterbildung enthalten sein kann.
-
Bei Schritt 402 werden ein oder mehr Parameter initialisiert, einschließlich zum Beispiel eines Minimalpunktschwellenwerts minPt und Untersuchungsradius' ε. Bei einigen Ausführungsformen sind die Anfangsparameter vorgegeben und werden immer auf einen bestimmten Wert initialisiert. Bei anderen Ausführungsformen können die Parameter auf irgendeine Eingabe hin initialisiert werden. Zum Beispiel können externe Bedingungen (z.B. Regen, Schnee, Tageszeit, Lichtmenge, etc.) als Eingabe verwendet werden, um den Wert des einen oder der mehr Parameter festzulegen. Bei einigen Ausführungsformen stellt das Initialisieren des Untersuchungsradius' ε auf einen relativ kleinen Wert die lokale Dichte um den untersuchten Punkt genauer dar. Außerdem verringert ein kleinerer Untersuchungsradius ε die Zeit, die erforderlich ist, um die Untersuchung zu vervollständigen, da weniger Punkte als potentiell innerhalb des Untersuchungsradius' ε befindlich analysiert werden müssen.
-
Bei Schritt 404 wird ein zuvor nicht definierter Punkt aus der Punktwolke ausgewählt. Bei einigen Ausführungsformen ist die Reihenfolge, in der die Punkte während der Untersuchungsphase des Algorithmus' ausgewählt und analysiert werden, nicht wichtig. Während der Untersuchungsphase wird jeder Punkt analysiert und die Reihenfolge, in der die Punkte geprüft und analysiert werden, wirkt sich nicht auf das Ergebnis der Untersuchungsphase aus.
-
Bei einigen Ausführungsformen wird in Schritt
406 der Abstand zu dem analysierten Punkt verwendet, um einen oder mehr Parameter selektiv zu modifizieren. Bei einigen Ausführungsformen enthalten die modifizierten Parameter einen oder mehr von dem Minimalpunktschwellenwert minPt und dem Untersuchungsradius ε. Der Minimalpunktschwellenwert minPt und Untersuchungsradius ε werden verwendet, um festzustellen, ob ein Punkt als Kernpunkt, als Nachbarpunkt oder als Störpunkt klassifiziert werden sollte. Der Untersuchungsradius ε bestimmt das Gebiet, das nach benachbarten Punkten untersucht wird. Um als Kernpunkt klassifiziert zu werden, muss der analysierte Punkt eine Anzahl von Nachbarn, die sich innerhalb des Untersuchungsradius' ε, der größer als der Minimalpunktschwellenwert minPt ist, befinden, besitzen. Allerdings wirkt sich der Abstand zu einem Objekt auf die Auflösung des Objekts auf. Das heißt, wenn sich Lichtpulse von dem LiDAR-Sensor ausbreiten, erhöht sich der Abstand zwischen jeweils benachbarten Lichtpulsen (von denen jeder einen geringfügig anderen Einfallswinkel aufweist). Infolgedessen kann es sein, dass Reflexionen, die weiter von dem LiDAR-Sensor auftreten, einfach als Funktion der LiDAR-Auflösung bei diesem Abstand weniger dicht beabstandet sind. Bei einigen Ausführungsformen wird der Minimalpunktschwellenwert minPt, um die aus den Abstandsunterschieden zu jedem Punkt resultierende Änderung der Punktdichte abzuschwächen, basierend auf dem Abstand zu dem analysierten Punkt modifiziert. Bei einigen Ausführungsformen wird der Minimalpunktschwellenwert minPt für Punkte, die sich nahe an dem LiDAR-Sensor befinden, erhöht und für Punkte, die weiter von dem LiDAR-Sensor entfernt sind, verringert. Zum Beispiel wird bei einer Ausführungsform für jeden Punkt p
i, der sich innerhalb eines ersten (nahen) Bereichs befindet, der Minimalpunktschwellenwert auf einem ersten konstanten Wert minPt
close eingestellt, für jeden Punkt p
i, der sich innerhalb eines zweiten (entfernten) Bereichs befindet, wird der Minimalpunktschwellenwert auf einen zweiten Wert minPt
far eingestellt, und für jeden Punkt, der sich zwischen dem ersten Bereich und dem zweiten Bereich befindet, wird der Minimalpunktschwellenwert auf einen Wert, der basierend auf dem Abstand zu dem Punkt variiert, eingestellt. Dieser Zusammenhang kann mathematisch wie folgt ausgedrückt werden:
wobei dist(p
i sensor) den Abstand zu dem Punktpi darstellt und range
close einen Schwellenwert für den minimalen Abstand zu dem Punkt darstellt, MinPtc
lose der Minimalpunktschwellenwert ist, wenn der Abstand zu dem Punkt geringer als der Abstand range
close ist, range
far einen Schwellenwert für den maximalen Abstand zu dem Punkt darstellt und MnPt
far der Minimalpunktschwellenwert ist, wenn der Abstand zu dem Punkt größer als der Abstand range
far ist. Bei anderen Ausführungsformen variiert der Minimalpunktschwellenwert minPt basierend auf dem Abstand zu dem Punkt kontinuierlich.
-
Bei einigen Ausführungsformen kann der Untersuchungsradius ε, entweder allein oder in Kombination mit Modifikationen des minimalen Schwellenwerts der Punkte minPt, modifiziert werden. Bei einigen Ausführungsformen kann der Untersuchungsradius, wie bei Schritt
413 beschrieben, modifiziert werden, um den Untersuchungsradius ε selektiv zu vergrößern, wenn eine erste Iteration keine ausreichende Anzahl von Punkten ergibt. Jedoch kann der Untersuchungsradiusparameter ε bei einigen Ausführungsformen auch bei Schritt
406 basierend auf einem oder mehr Faktoren modifiziert werden. Zum Beispiel kann der anfängliche Untersuchungsradius ε
1st,i zumindest teilweise basierend auf dem Abstand des Punkts zu dem LiDAR-Sensor und/oder basierend auf der Auflösung des LiDAR-Sensors modifiziert werden. Zum Beispiel kann die Auswahl des anfänglichen Untersuchungsradiusparameters ε
1st,i mathematisch wie folgt ausgedrückt werden:
wobei k
ε der konstante Untersuchungsfaktor („constant gain of searching“) ist und resol die LiDAR-Auflösung, ausgedrückt in Radian, ist, range(p
i) der Abstand zu dem untersuchten Punkt ist und ε
1st,I ist der bei der ersten Iteration verwendete Untersuchungsradius oder der erste Untersuchungsradius. Bei dieser Ausführungsform wird ein minimaler Untersuchungsradius ε
min verwendet, wenn der Ausdruck k
ε*range(p
i)*resol geringer als ein minimaler Radius ε
min ist. Wie gezeigt, hängt der Untersuchungsradius ε
1st,i direkt mit dem Abstand des Punkts von dem LiDAR-Sensor (range(p
i)) und mit der Auflösung des LiDAR-Systems (resol) zusammen. Wenn sich zum Beispiel der Abstand des Punkts von dem LiDAR-Sensor (range(p
i)) erhöht, erhöht sich der Untersuchungsradius ε
1st,i. Gleichermaßen erhöht sich der Untersuchungsradius ε
1st,i, wenn sich die Auflösung des LiDAR-Sensors (resol) erhöht. Auf diese Weise werden bei einigen Ausführungsformen ein oder mehr Parameter (z.B. Minimalpunktschwellenwert minPt, Untersuchungsradius ε) bei Schritt
406 basierend auf dem Abstand des Punkts von dem LiDAR-Sensor modifiziert.
-
Bei Schritt 408 wird die Nachbarschaft von Punkten innerhalb des Radius' ε (bei der ersten Iteration, Untersuchungsradius ε1st,i) gesammelt. Bei Schritt 410 wird basierend auf einem Vergleich der Anzahl von Punkten, die sich innerhalb des Radius' ε befinden, mit dem ausgewählten Minimalpunktschwellenwert minPt eine Feststellung getroffen, ob der Punkt einen Kernpunkt darstellt. Wenn die Anzahl von Punkten, die sich innerhalb des Radius' ε von dem Punkt befinden, größer als der Minimalpunktschwellenwert minPt ist, dann wird festgelegt, dass der Punkt ein Kernpunkt ist und der Prozess geht weiter zu Schritt 414. Wenn die Anzahl von Punkten, die sich innerhalb des Radius' ε des Punkts befinden, geringer als der Minimalpunktschwellenwert ist, dann stellt der Prozess bei Schritt 412 bei einigen Ausführungsformen fest, ob dies die erste Untersuchung (z.B. die erste Iteration) oder zweite Untersuchung ist. Anstelle den Punkt lediglich als Störpunkt identifizieren und die Untersuchung mit dem letzten Punkt fortzusetzen, kann bei einigen Ausführungsformen bei den Schritten 412 und 413 der Untersuchungsradius ε modifiziert (d.h. erhöht) werden, und der Punkt wird innerhalb des aktualisierten und größeren Untersuchungsradius' ε2nd i wieder nach Nachbarn untersucht. Bei der in 4a gezeigten Ausführungsform wird der Radiusparameter ε nur nach der ersten Iteration modifiziert. Das heißt, bei Schritt 412 wird eine Feststellung getroffen, ob dies die erste Iteration der Untersuchung an dem Punkt pi oder die zweite Iteration der Untersuchung an dem Punkt pi ist. Wenn in Schritt 410 festgestellt wird, dass die Untersuchung des Punkt pi keinen Kernpunkt ergibt und darüber hinaus das Ergebnis einer zweiten Iteration der Untersuchung des Punkts pi ist, dann wird in Bezug auf den Punkt pi keine weitere zusätzliche Untersuchung durchgeführt und der Prozess geht weiter zu Schritt 414. Wenn umgekehrt bei Schritt 410 festgestellt wird, dass die Untersuchung des Punkts pi keinen Kernpunkt ergibt und weiterhin das Ergebnis einer ersten Iterationsuntersuchung des Punkts pi ist, dann wird der Untersuchungsradiusparameter ε bei Schritt 413 modifiziert (d.h. erhöht) und eine zweite Prüfung des Punkts pi wird basierend auf dem größeren Untersuchungsradius durchgeführt (und vermutlich werden basierend auf dem modifizierten Untersuchungsradius zusätzliche Punkte aufgespürt).
-
Bei einigen Ausführungsformen ermöglicht es das Modifizieren/Erhöhen des anfänglichen Untersuchungsradius' ε1st,i nach einer anfänglichen Feststellung, dass sein Punkt kein Kernpunkt ist (d.h., sich zu wenig Nachbarn innerhalb des Untersuchungsradius' befinden), dem Algorithmus, nützliche Dichteinformationen in Bezug auf Gebiete geringer Dichte zu gewinnen. Dies kann Gebiete einschließen, die sich weiter von dem LiDAR-Sensor entfernt befinden und/oder zu Objekten gehören, die keine große Anzahl reflektierter Punkte oder Oberflächen bieten. Daher besteht, wenn ein minimaler Schwellenwert von Punkten, der ausreicht, um den Punkt als Kernpunkt zu klassifizieren, bereits gesammelt wurde, kein Erfordernis, den Untersuchungsradius zu erhöhen und zusätzliche Informationen betreffend die Nachbarn der Punkte zu sammeln. In gleicher Weise muss, wenn nach dem Erhöhen des Untersuchungsradius' eine nachfolgende Untersuchung des Punkts keine nützlichen Dichteinformationen liefert, der Untersuchungsradius ε2nd,i nicht erneut erhöht werden, um zu verhindern, dass der Untersuchungsradius so groß wird, dass er in Bezug auf benachbarte Punkte Bedeutung verliert.
-
Bei einigen Ausführungsformen wird der Untersuchungsradius ε
1st,i bei Schritt
413 um einen vorgegebenen Betrag modifiziert. Bei anderen Ausführungsformen wird der anfängliche Untersuchungsradius ε
1st,i bei Schritt
413 basierend auf der Anzahl der während der ersten Iteration lokalisierten Punkte modifiziert. Wenn zum Beispiel bei einigen Ausführungsformen in Bezug auf den analysierten Punkt keine benachbarten Punkte gefunden wurden, dann wird der Untersuchungsradius ε
1st,i auf einen maximalen Radius (z.B. k
ε*ε
1st,i) erhöht. Anderenfalls wird bei einigen Ausführungsformen der Untersuchungsradius ε
1st,i um einen Betrag, der auf die Anzahl während der ersten Iteration lokalisierten benachbarten Punkte bezogen ist, erhöht. Zum Beispiel ist die Erhöhung des Untersuchungsradius' bei einigen Ausführungsformen durch die folgenden Gleichungen definiert:
wobei ε
2nd,I der bei der zweiten Iteration für den Punkt i verwendete Untersuchungsradius ist, num
ε-ngbh die Anzahl von während der ersten Untersuchung gefundenen Punkte ist und ε
1st,i der bei der ersten Iteration verwendete Untersuchungsradius ist. Wenn bei dieser Ausführungsform ein einziger Punkt, der er selbst ist, gefunden wird (d.h. wenn num
ε-ngbh = 1), dann wird ein maximaler Untersuchungsradius gewählt, der gleich k
ε*ε
1st,i ist, anderenfalls wird der Untersuchungsradius unter Verwendung des Untersuchungsradius' ε
1st,i der ersten Iteration auf einen Wert, der auf die Anzahl detektierter Punkte num
ε-ngbh bezogen ist, eingestellt. Je größer die Anzahl benachbarter Punkte, die unter Verwendung des Untersuchungsradius' ε
1st,i detektiert werden, desto geringer ist die Erhöhung des Untersuchungsradius' ε
2nd,i der zweiten Iteration, wie durch die Gleichung
angegeben wird.
-
Bei Schritt 408 werden die benachbarten Punkte basierend auf dem modifizierten Untersuchungsradius ε2nd,i aufgespürt, und bei Schritt 410 wird der Punkt erneut analysiert, um festzustellen, ob er als Kernpunkt angesehen werden sollte. Bei einigen Ausführungsformen geht der Prozess nach der zweiten Iteration unabhängig davon, ob festgestellt wurde, dass der Punkt ein Kernpunkt oder ein Störpunkt ist, weiter zu Schritt 414.
-
Bei Schritt 414 wird die Dichte des Punkts pi basierend auf dem Untersuchungsradius und der Anzahl der innerhalb des Untersuchungsradius' befindlichen benachbarten Punkte bestimmt. Wie oben erörtert, wird das Dichteniveau, weil der Untersuchungsradius während des Untersuchungsprozesses modifiziert werden kann, unter Verwendung des Untersuchungsradius', der verwendet wird, um die zu dem Punkt pi gehörenden benachbarten Punkte zurückzugeben, bestimmt. Bei einigen Ausführungsformen wird die Dichte berechnet, indem die Anzahl benachbarter Punkte durch das Quadrat des Untersuchungsradius' (d.h. ε2) dividiert wird. Bei einigen Ausführungsformen wird ε2 anstelle von ε3 verwendet, weil die Oberfläche, die das Licht reflektiert, nicht zulässt, dass Licht von hinter der Oberfläche reflektiert wird. Bei Schritt 416 wird eine Feststellung getroffen, ob alle Punkte untersucht wurden oder ob zusätzliche Punkte untersucht oder klassifiziert werden müssen. Wenn zusätzliche Punkte untersucht und klassifiziert werden müssen, dann geht der Prozess bei Schritt 404 mit der Auswahl eines neuen, zuvor nicht klassifizierten Punkts weiter. Wenn keine zusätzlichen Punkte untersucht und klassifiziert werden müssen, dann ist der Untersuchungsprozess abgeschlossen. Bei einigen Ausführungsformen werden die mehreren Punkte vor dem Initiieren des (in 4b gezeigten) Clusterbildungsprozesses bei Schritt 416 basierend auf der Dichte sortiert. Bei einigen Ausführungsformen kommt es, weil der Radius, der verwendet wird, um nach Nachbarn zu untersuchen, für jeden Punkt variabel ist, auf die Reihenfolge, in der die Punkte gruppiert werden, an. Es wird Bezug genommen auf 5, die zeigt, wie variable Untersuchungsradien, die bei den Schritten 406 und/oder 413 eingeführt werden, die Clusterbildungsphase beeinflussen. Bei dem in 5 gezeigten Beispiel ist Punkt 500 (mit „x“ bezeichnet) als Kernpunkt gekennzeichnet und alle Punkte, die sich innerhalb eines Untersuchungsradius' 510 befinden, sind als benachbarte Punkte gekennzeichnet. Gleichermaßen sind Punkte 502 (mit „z“ bezeichnet) und 504 (mit „y“ bezeichnet) als Kernpunkte gekennzeichnet, und Punkte, die sich innerhalb eines Untersuchungsradius' 512 bzw. 514 befinden, sind als benachbarte Punkte eingeschlossen. Bei diesem Beispiel befindet sich Punkt 506 (mit „n“ bezeichnet) außerhalb des Untersuchungsradius' 514 und ist deshalb nicht als Nachbar von Punkt 504 enthalten. Allerdings führt die Untersuchung von Punkt 506 zu einer Zuordnung eines Untersuchungsradius' 516, der größer als die Untersuchungsradien 510, 512 und 514 ist. Infolgedessen wird Punkt 504 als Nachbar von Punkt 506 identifiziert. Das Beispiel veranschaulicht, wie die Modifikation des Untersuchungsradiusparameters ε bedeutet, dass der bidirektionale Zusammenhang zwischen Punkten (z.B. Klassifikation eines zweiten Punkts als Nachbar eines ersten Punkts bedeutet, dass der erste Punkt auch als Nachbar des zweiten Punkts klassifiziert werden kann) nicht länger gilt. Infolgedessen bestimmt die Reihenfolge, in der die Punkte gruppiert werden, ob die Punkte in einem Cluster enthalten sind oder nicht. Zum Beispiel würde es, wenn bei der in 5 gezeigten Ausführungsform der Punkt 506 zuerst gruppiert wurde, dazu führen, dass der Punkt 506 einem Cluster, das den Punkt 504 enthält, zugeordnet wird. Allerdings würde es, wenn Punkt 504 zuerst gruppiert würde, dazu führen, dass der Punkt 504 einem Cluster, das die Punkte 500 und 502, aber nicht den Punkt 506 enthält, zugeordnet wird. Bei einigen Ausführungsformen sollten Punkte in Gebieten hoher Dichte gruppiert werden, bevor Punkte in Gebieten geringer Dichte gruppiert werden. Allerdings kann es bei anderen Ausführungsformen wünschenswert sein, Punkte in der entgegengesetzten Reihenfolge - von Gebieten geringer Dichte zu Gebieten hoher Dichte - zu gruppieren. Infolgedessen kann es bei einigen Ausführungsformen wichtig sein, dass die Dichte eines jeden Punkts bekannt ist und sortiert wird, um zu ermöglichen, dass Punkte in Gebieten höherer Dichte zuerst gruppiert werden.
-
4b veranschaulicht die Clusterbildung der mehreren Punkte gemäß einigen Ausführungsformen. Bei einigen Ausführungsformen enthält die dem Schritt zur Clusterbildung zugeführte Eingabe mehrere Punkte, die - basierend auf der Dichte geordnet - und einem Minimalpunktschwellenwert minPt und/oder Untersuchungsradius ε, wie während der zweiten Untersuchungsphase festgelegt, zugeordnet sind. Bei der Beschreibung des Schritts zur Clusterbildung wird durchgängig Bezug genommen auf 6, die zumindest einen Teils des Schritts zur Clusterbildung gemäß einigen Ausführungsformen veranschaulicht.
-
Bei Schritt 422 wird ein zuvor nicht gruppierter Punkt P ausgewählt. Zusätzlich wird bei einigen Ausführungsformen das Sortieren der bei Schritt 418 bereitgestellten Punkte (in 4a gezeigt) verwendet, um den nächsten zu gruppierenden Punkt auszuwählen, wobei der nächste Punkt den Punkt höchster Dichte, der nicht gruppiert bleibt, darstellt.
-
Bei Schritt 424 wird basierend auf dem Minimalpunktschwellenwert minPt eine Feststellung getroffen, ob der ausgewählte Punkt P ein Kernpunkt ist. Das heißt, die Anzahl von Nachbarn, die dem Punkt P zugeordnet ist, wird mit dem Minimalpunktschwellenwert minPt verglichen, wobei der Punkt, wenn die Anzahl von benachbarten Punkten größer als ein Schwellenwert ist, als Kernpunkt identifiziert wird, und der Prozess geht bei Schritt 428 weiter. Bei einigen Ausführungsformen werden die Parameter, die verwendet werden, um Punkte als Kernpunkte oder Störpunkt zu identifizieren (z.B. Minimalpunktschwellenwert minPt, Untersuchungsradius ε) durch die Untersuchungsphase für jeden Punkt, wie oben in Bezug auf 4a beschrieben, bereitgestellt. Das heißt, bei einigen Ausführungsformen kann jeder Punkt ein anderes Set von Parametern (z.B. Minimalpunktschwellenwert minPt und/oder Untersuchungsradius ε) verwenden. Wenn die Anzahl benachbarter Punkte geringer als der Minimalpunktschwellenwert minPt ist, dann wird der Punkt bei Schritt 426 als Störung identifiziert und der Prozess geht bei Schritt 422 mit der Auswahl eines neuen, zuvor nicht gruppierten Punkts P weiter.
-
Bei Schritt 428 wird basierend auf der Identifizierung eines Kernpunkts bei Schritt 424 ein neues Cluster erzeugt und einer Cluster-ID ID zugeordnet, und eine neue Liste von Nachbarn wird erzeugt. Bei Schritt 430 werden der Liste von Nachbarn Nachbarn des ausgewählten Kernpunkts hinzugefügt. Bei einigen Ausführungsformen enthalten Nachbarn jene Punkte, die sich innerhalb des Untersuchungsradius' ε des Eingangspunkts befinden. Bei Schritt 432 wird der ausgewählte Kernpunkt der Cluster-ID ID zugeordnet. Nachfolgende Schritte stellen fest, wie viele zusätzliche Punkte der Cluster-ID ID hinzugefügt werden sollten. Unter Bezugnahme auf 6 wird die Clusterbildung von mehreren Punkten in Schritten 600, 602 und 604 veranschaulicht. Wenn unter der Annahme, dass Punkt 606 (mit „X“ bezeichnet), der bei Schritt 422 ausgewählte und bei Schritt 424 als Kernpunkt identifizierte Punkt ist, dann werden bei Schritt 430 alle Nachbarn von Punkt 606 (d.h., alle Punkte innerhalb des Untersuchungsradius' 608) der Liste von Nachbarn hinzugefügt, einschließlich Punkt 610 (mit' Y' bezeichnet).
-
Bei Schritt 434 wird jeder in der Nachbarschaft enthaltene Punkt geprüft, um festzustellen, ob der Punkt bereits einem anderen Cluster zugeordnet wurde. Für jene schon einem Cluster zugeordneten Punkte können sie nicht der gegenwärtigen Cluster-ID ID zugeordnet werden. Das heißt, der Status benachbarter, bereits einem Cluster zugeordneter Punkte bleibt unverändert und es erfolgt keine weitere Aktion in Bezug auf den bereits einem Cluster zugeordneten, benachbarten Punkt. Wenn der benachbarte Punkt keinem anderen Cluster zugeordnet ist, dann wird bei Schritt 436 eine Feststellung getroffen, ob der benachbarte Punkt ein Kernpunkt ist (z.B., wenn die Anzahl benachbarter Punkte größer als der minimale Schwellenwert (minPt) ist). Wenn der Punkt kein Kernpunkt ist, dann wird der Punkt bei Schritt 438 als Randpunkt identifiziert und bei Schritt 432 wird er der Cluster-ID ID zugeordnet. Das heißt, Punkte, die als Randpunkte identifiziert werden, werden in das Cluster einbezogen, werden aber - zumindest typischerweise - nicht weiter analysiert, um benachbarte Punkte zu identifizieren. Bei einigen Ausführungsformen werden jedoch Punkte, die bei Schritt 436 als Randpunkte (d.h. nicht als Kernpunkte) identifiziert wurden, weiter analysiert, um festzustellen, ob irgendwelche neben dem Randpunkt befindliche Punkte durch einen relativ geringen (d.h. geringer als ein Schwellenwert) Azimut-Höhenwinkel relativ zu dem LiDAR-Sensor voneinander getrennt sind. Für Punkte, die dem Azimut-/Höhenwinkeltest genügen, werden die Punkte bei den Schritten 448 und 450 (unten ausführlicher erläutert) geprüft, um zu bestimmen, wie sie klassifiziert werden sollten. Der Prozess geht dann bei Schritt 434 mit der Auswahl eines anderen zu analysierenden Nachbarpunkts von der Liste von Nachbarn weiter. Unter Bezugnahme auf Schritt 602 bei dem in 6 gezeigten Beispiel wird der benachbarte Punkt 610 („Y“) als Kernpunkt identifiziert, weil er innerhalb des Untersuchungsradius' ε eine Anzahl von Nachbarn größer oder gleich dem Minimalpunktschwellenwert MinPt (bei diesem Beispiel z.B. vier) enthält.
-
Wenn bei Schritt 436 festgestellt wird, dass der Nachbarpunkt ein Kernpunkt ist, dann wird jeder Nachbar des identifizierten Kernpunkts analysiert. Ein als Kernpunkt ermittelter Nachbarpunkt wird bei Schritt 432 der Cluster-ID ID zugeordnet und benachbarte Punkte des Kernpunkts werden der Liste von Nachbarn hinzugefügt (nicht ausdrücklich als Schritt gezeigt, aber benachbarte Punkte des identifizierten Kernpunkts werden analysiert). Der Klarheit halber wird hierin der Nachbarpunkt, der bei Schritt 436 als Kernpunkt identifiziert wurde, als Eingangspunkt bezeichnet, weil dieser Punkt als Eingang für die bei den Schritten 440-446 durchgeführte Analyse wirkt. Bei Schritt 440 wird für jeden Nachbarpunkt des Eingangspunkts eine Feststellung getroffen, ob der Nachbarpunkt bereits zu einem anderen Cluster gehört. Wenn der Nachbarpunkt bereits zu einem anderen Cluster gehört, kann der Nachbarpunkt nicht der gegenwärtigen Cluster-ID ID hinzugefügt werden, und der Prozess geht bei Schritt 440 mit dem nächsten Nachbarpunkt weiter. Wenn bei Schritt 440 festgestellt wird, dass der Nachbarpunkt nicht zu einem anderen Cluster gehört, dann wird bei Schritt 442 eine Feststellung getroffen, ob der Nachbarpunkt ein Kernpunkt ist. Wenn der Nachbarpunkt kein Kernpunkt ist, wird der Punkt bei einigen Ausführungsformen bei Schritt 438 als Randpunkt identifiziert und der Cluster-ID ID bei Schritt 432 hinzugefügt, aber es wird keiner der Nachbarn des Punkts dem Cluster hinzugefügt oder weiter analysiert. Unter Bezugnahme auf Schritt 604 in 6 werden, weil Punkt 610 („Y“) als Kernpunkt bestimmt wurde, die Nachbarn des Eingangspunkts 610 - einschließlich Punkt 614 (mit „Z“ bezeichnet) bei den Schritten 440 und 442 weiter analysiert. Bei dem in 6 gezeigten Beispiel gehört Punkt 614 („Z“) nicht zu einem anderen Cluster. Bei Schritt 442 wird festgestellt, dass der Nachbarpunkt 614 kein Kernpunkt ist, weil er nicht genügend benachbarte Punkte innerhalb des Untersuchungsradius' 616 des Punkts 614 enthält. Bei einigen Ausführungsformen würde der Nachbarpunkt 614 bei Schritt 438 als Randpunkt identifiziert und würde bei Schritt 432 dem Cluster hinzugefügt - würde aber nicht dazu führen, dass irgendeiner der Nachbarn des Randpunktes dem Cluster hinzugefügt wird. Zum Beispiel würde der Nachbarpunkt 620 (mit „W” bezeichnet) nicht der Liste der Nachbarn hinzugefügt und würde deshalb nicht dem gegenwärtigen Cluster hinzugefügt.
-
Wenn bei Schritt 442 festgestellt wird, dass der Nachbarpunkt ein Kernpunkt ist, dann wird bei Schritt 446 jeder Nachbar des bei Schritt 442 identifizierten Kernpunkts geprüft. Wiederum wird der Klarheit halber der bei Schritt 442 als Kernpunkt identifizierte benachbarte Punkt als Eingangspunkt für Schritt 448 bezeichnet. Bei Schritt 448 wird jeder benachbarte Punkt des Eingangspunkts geprüft, um festzustellen, ob er zuvor besucht wurde. Wenn der benachbarte Punkt zuvor besucht wurde, dann wird bei Schritt 450 eine Feststellung getroffen, ob der benachbarte Punkt zuvor als Störpunkt bestimmt wurde. Wenn der benachbarte Punkt zuvor als Störpunkt bestimmt wurde, dann wird diese Bezeichnung bei Schritt 438 auf Randpunkt geändert und bei Schritt 432 wird der benachbarte Punkt der Cluster-ID ID hinzugefügt. Wenn der benachbarte Punkt zuvor besucht wurde, aber zuvor nicht als Störpunkt festgelegt wurde, dann bedeutet dies, dass der Punkt zuvor einem anderen Cluster hinzugefügt wurde und es sollte in Bezug auf diesen Punkt keine weitere Maßnahme ergriffen werden. In diesem Fall geht der Prozess bei Schritt 446 mit dem nächsten Nachbarn in der for-Schleife bei Schritt 446 weiter. Wenn der benachbarte Punkt, wie bei Schritt 448 festgelegt, zuvor nicht besucht wurde, dann wird dieser Punkt bei Schritt 452 der Liste von Nachbarn hinzugefügt und bei Schritt 432 der (bei Schritt 436 und/oder Schritt 442 als Kernpunkt identifizierte) Eingangspunkt der Cluster-ID ID zugeordnet. Dieser Prozess geht weiter, bis sämtliche Nachbarpunkte in der Liste von Nachbarn analysiert wurden.
-
Allerdings kann, wie oben in Bezug auf Schritt 436 oben erörtert, bei einigen Ausführungsformen eine Festlegung, dass ein Nachbarpunkt kein Kernpunkt ist (und deshalb ein Randpunkt ist) weiterhin eine Prüfung der Azimut-/Höhenwinkel zwischen dem Randpunkt (hierin als Eingangspunkt bezeichnet) und benachbarten Punkten des Randpunkts (als daneben befindliche Punkte bezeichnet, um von dem Ausdruck benachbarter Punkt zu unterscheiden) beinhalten. Bei Schritt 444 wird der dem Randpunkt (z.B. Eingangspunkt) zugeordnete Azimut- und/oder Höhenwinkel mit dem Azimut- und/oder Höhenwinkel von benachbarten Punkten (d.h. daneben befindlichen Punkten) verglichen. Das über die Hinzufügung von Schritt 444 gelöste Problem wird veranschaulicht in 7, in der mehrere Punkte 702, 704 und 706 einem Cluster hinzugefügt wurden, allerdings ist Punkt 706 als Randpunkt identifiziert. Dies würde typischerweise bedeuten, dass Punkt 708 nicht demselben Cluster hinzugefügt würde. Allerdings ist bei diesem Beispiel der Abstand zwischen den Punkten 706 und 708 ein Ergebnis des Abstandes des Punkts 708 von dem LiDAR-Sensor 700 sowie des Winkels (Azimut-Winkel), den der LiDAR-Strahl mit dem Punkt einschließt. Bei dem in 7 gezeigten Beispiel sind die Punkte 700-716 sämtlich einem Sattelschlepper, der sich auf der Seite des Verkehrsmittels befindet, zugeordnet, obwohl der Abstand zwischen nebeneinander befindlichen Punkten, wenn sich die Punkte weiter von dem LiDAR-Sensor weg bewegen und bei einem anderen Azimut-Winkel, ansteigt. Dies wird durch Prüfen der Differenz der Azimut-/Höhenwinkel zwischen dem nicht als Kernpunkt (d.h. als Randpunkt) identifizierten Punkt 706 und dem daneben befindlichen Punkt 708 behoben. Wenn die Differenz der Azimut-/Höhenwinkel geringer als ein Schwellenwert ist, dann kann der daneben befindliche Punkt 708 der Liste von Nachbarn (und daher dem Cluster) hinzugefügt werden.
-
Wenn bei der in 4b gezeigten Ausführungsform bei Schritt 444 der Unterschied der Azimut-/Höhenwinkel nicht geringer als ein Schwellenwert ist, zeigt dies an, dass sich die Punkte unter dem Aspekt von LiDAR-Pulsen nicht nebeneinander befinden. In diesem Fall geht der Prozess bei 438 weiter, wobei der bei Schritt 442 nicht als Kernpunkt identifizierte Nachbarpunkt als Randpunkt identifiziert und bei Schritt 432 der Cluster-ID hinzugefügt wird. Wenn im Gegensatz dazu der Unterschied der Azimut-/Höhenwinkel geringer als ein Schwellenwert ist, zeigt dies an, dass sich die Punkte wahrscheinlich nebeneinander befinden, und bei Schritt 448 wird eine Feststellung getroffen, ob der Punkt zuvor zu Zwecken der Clusterbildung besucht wurde. Wenn bei Schritt 448 festgestellt wird, dass der Punkt zuvor besucht wurde, dann wird bei Schritt 450 eine Feststellung getroffen, ob der Punkt zuvor als Störpunkt identifiziert wurde. Wenn der Punkt als Störpunkt identifiziert wird, dann wird der Punkt stattdessen bei Schritt 438 als Randpunkt identifiziert und bei Schritt 432 der Cluster-ID ID zugeordnet. Wenn umgekehrt der Punkt bei Schritt 450 nicht als Störung identifiziert wird, dann bedeutet dies, dass der Punkt zuvor einem anderen Cluster hinzugefügt wurde und es sollte in Bezug auf diesen Punkt keine weitere Maßnahme ergriffen werden. In diesem Fall geht der Prozess bei Schritt 446 mit dem nächsten Nachbarn in der for-Schleife weiter. Wenn bei Schritt 448 festgestellt wird, dass der Punkt nicht besucht wurde, dann wird der Punkt (d.h. der daneben befindliche Punkt) bei Schritt 452 der Liste der Nachbarn hinzugefügt und bei Schritt 432 der Cluster-ID ID zugeordnet.
-
Unter Bezugnahme auf 6 ist der (mit „Z“ bezeichnete) Punkt 614 der bei Schritt 442 analysierte Nachbarpunkt. Bei diesem Beispiel ist der Nachbarpunkt 614 kein Kernpunkt, weshalb der Nachbarpunkt 614 bei Schritt 438 bei einigen Ausführungsformen als Randpunkt identifiziert wurde. Allerdings wird der benachbarte Punkt 614 bei einigen Ausführungsformen als Eingabe der Azimut-/Höhenanalyse bei Schritt 444 zugeführt, um zu bestimmen, ob neben dem benachbarten Punkt 614 befindliche Punkte der Liste von Nachbarn hinzugefügt werden sollten. Bei Schritt 444 wird der benachbarte Punkt 614 der Eingangspunkt und die Nachbarn von Punkt 614 (d.h. daneben befindliche Punkte) werden analysiert, um festzustellen, ob der Unterschied der Höhen-/Azimutwinkel zwischen den Eingangspunkt 614 und daneben befindlichen Punkten (z.B. der mit „W“ bezeichnete Punkt 620) geringer als ein Schwellenwert ist. Falls nicht, wird der daneben befindliche Punkt (z.B. Punkt 620 „W”) weder als Randpunkt identifiziert noch als Teil des Clusters aufgenommen. Dies hat zur Folge, dass der Prozess zu Schritt 438 weiter geht, wo der Eingangspunkt 614 wie erwartet (als Ergebnis der bei Schritt 442 getroffenen Feststellung) als Randpunkt identifiziert wird. Wenn ja, wird bei Schritt 448 eine Feststellung getroffen, ob der daneben befindliche Punkt (z.B. Punkt 620 „W“) zuvor besucht wurde. Wenn der daneben befindliche Punkt 620 („W“) zuvor besucht wurde, dann wird bei Schritt 450 festgestellt, ob der Punkt ein Störpunkt ist oder nicht. Wenn der daneben befindliche Punkt 620 („W“) ein Störpunkt ist, dann wird der Punkt bei Schritt 438 als Randpunkt identifiziert und bei Schritt 432 der Cluster-ID ID hinzugefügt. Wenn der daneben befindliche Punkt 620 („W“) kein Störpunkt ist (und deshalb zuvor gruppiert wird), erfolgen keine zusätzlichen Schritte. Weil es keine weiteren benachbarten Punkte von Punkt 614 gibt, geht der Prozess bei Schritt 434 mit dem nächsten Nachbarn in der Liste von Nachbarn weiter. Wenn der daneben befindliche Punkt 620 (z.B. „W“) nicht besucht wurde, dann wird der Punkt 620 bei Schritt 438 der Liste von Nachbarn hinzugefügt und bei Schritt 432 der Cluster-ID ID hinzugefügt. Auf diese Weise wird der daneben befindliche Punkt 620 dem Cluster trotz der Identifikation von Punkt 614 als Randpunkt, was typischerweise die Hinzufügung des daneben befindlichen Punkts 620 zu demselben Cluster ausschließen würde, hinzugefügt.
-
Auf diese Weise liefert die in Bezug auf die 4a und 4b beschriebene, adaptive Untersuchung zur LiDAR-basierten Clusterbildung als Ausgabe ein oder mehr Cluster, wobei jedem Cluster ein oder mehr Punkte zugeordnet werden. Wie zuvor unter Bezugnahme auf 2b beschrieben, werden die Cluster dem Modul zur Objektklassifizierung, das die Cluster verwendet, um Objekte innerhalb des Sichtfeldes des LiDAR-Sensors zu identifizieren, als Eingabe zugeführt. Wie oben beschrieben, ermöglicht die adaptive Untersuchung zur LiDAR-basierten Clusterbildung bei einigen Ausführungsformen die Modifikation von Clusterbildungsparametern einschließlich einem oder mehr von Minimalpunktschwellenwerten (verwendet, um Punkte als Kernpunkte zu klassifizieren) und Untersuchungsradius. Insbesondere hilft das Zulassen, dass der Untersuchungsradius modifiziert wird, beim Identifizieren von Objekten, die unterschiedliche Dichten aufweisen, oder Gebiete verschiedener Dichten (z.B. kann ein Busch mit Blättern eine andere Punktdichte als ein Auto aufweisen). Zusätzlich ermöglicht es die Modifikation der Parameter zur Clusterbildung dem Algorithmus zur Clusterbildung, dem Rechnung zu tragen, dass sich das Objekt in verschiedenen Abständen von dem LiDAR-Sensor befindet. Das hießt, je weiter entfernt sich ein Objekt von dem LiDAR-Sensor befindet, desto größer ist der Abstand zwischen zwei nebeneinander befindlichen Punkten und desto weniger Punkte befinden sich insgesamt an dem Objekt. Das Modifizieren der Parameter wie beispielsweise Minimalpunktschwellenwert und Untersuchungsradius ermöglicht es, dem Algorithmus zur Clusterbildung, Punkte, die sowohl zu weit entfernten Objekten als auch zu nahen Objekten gehören, zu gruppieren. Bei einigen Ausführungsformen ermöglicht die adaptive Untersuchung zur LiDAR-basierten Clusterbildung auch die Verbindung von dicht gruppierten Punkten mit dünn gruppierten Punkten. Insbesondere werden die Unterschiede bei den Azimut- und/oder Höhenwinkeln geprüft, um festzustellen, ob eine Verbindung zwischen einem Randpunkt und einem Kernpunkt hergestellt werden sollte. Auf diese Weise ist die adaptive Untersuchung zur LiDAR-basierten Clusterbildung dazu in der Lage, verschiedene Arten von Objekten, die sich in verschiedenen Abständen und Winkeln relativ zu dem LiDAR-Sensor befinden, zu gruppieren.
-
Erörterung möglicher Ausführungsformen
-
Das Folgende sind nicht-abschließende Beschreibungen möglicher Ausführungsformen der vorliegenden Erfindung.
-
Gemäß einem Aspekt beinhaltet ein Verfahren zum Gruppieren räumlicher Daten das Empfangen einer Punktwolke, die aus mehreren, innerhalb des dreidimensionalen (3D) Raums definierten Punkten besteht. Das Verfahren beinhaltet weiterhin das Auswählen von einem oder mehr anpassbaren Clusterbildungsparametern für jeden der mehreren Punkte und das Durchlaufen eines jeden der mehreren Punkte in der Punktwolke und selektives Hinzufügen eines jeden der Punkte zu einem oder mehr Clustern basierend auf den jedem Punkt zugeordneten Clusterbildungsparametern.
-
Das Verfahren gemäß dem vorangehenden Absatz kann optional zusätzlich und/oder alternativ ein(e) beliebige(s), ein(e) oder mehr des/der folgenden Merkmale, Konfigurationen und/oder zusätzlichen Komponenten enthalten.
-
Zum Beispiel kann das Auswählen von einem oder mehr Clusterbildungsparametern das Auswählen eines Minimalpunktschwellenwertparameters und/oder eines Untersuchungsradiusparameters beinhalten.
-
Bei einigen Ausführungsformen wird der Minimalpunktschwellenwertparameter und/oder der Untersuchungsradiusparameter basierend auf einem Abstand zu dem Punkt ausgewählt.
-
Bei einigen Ausführungsformen wird der Minimalpunktschwellenwertparameter verringert, wenn der ermittelte Abstand zu dem Punkt ansteigt.
-
Bei einigen Ausführungsformen wird der Untersuchungsradius erhöht, wenn der ermittelte Abstand zu dem Punkt ansteigt.
-
Bei einigen Ausführungsformen beinhaltet das Verfahren weiterhin das Berechnen einer Dichte, die jedem der mehreren Punkte zugeordnet wird, basierend auf einer Anzahl von benachbarten Punkten, die sich innerhalb eines Untersuchungsradius' des Punkts befinden.
-
Bei einigen Ausführungsformen beinhaltet das Berechnen der jedem der mehreren Punkte zugeordneten Dichte das Identifizieren des Punkts als Kernpunkt basierend auf einem Vergleich einer Anzahl benachbarter Punkte, die sich innerhalb eines Untersuchungsradius' des Punkts befinden, mit dem definierten Minimalpunktschwellenwert und das Erhöhen des Untersuchungsradius', wenn der Punkt nicht als Kernpunkt identifiziert wird und Aufspüren zusätzlicher benachbarter Punkte basierend auf dem erhöhten Untersuchungsradius, wobei das Berechnen der Dichte des Punkts auf dem erhöhten Untersuchungsradius und zusätzlichen benachbarten Punkten basiert.
-
Bei einigen Ausführungsformen werden die mehreren Punkte basierend auf der berechneten Dichte eines jeden Punkts sortiert.
-
Bei einigen Ausführungsformen wird jeder der mehreren Punkte in der Punktwolke basierend auf der sortierten Dichte der mehreren Punkte durchlaufen, wobei die Punkte von dicht nach dünn durchlaufen werden.
-
Bei einigen Ausführungsformen beinhaltet das Durchlaufen eines jeden der mehreren Punkte in der Punktwolke und das selektive Hinzufügen eines jeden der Punkte zu einem oder mehr das Auswählen eines zuvor nicht gruppierten Punkts und das Erzeugen eines neuen Clusters, wenn der ausgewählte Punkt ein Kernpunkt ist und zuvor nicht gruppiert wurde. Benachbarte Punkte werden einer Liste von Nachbarn, die dem neuen Cluster zugeordnet ist, hinzugefügt, wenn der Punkt ein Kernpunkt ist, wobei sich benachbarte Punkte innerhalb eines Untersuchungsradius' des Kernpunkts befinden. Jeder Punkt auf der Liste von Nachbarn wird geprüft und entweder als Kernpunkt oder als Randpunkt identifiziert, wobei ein als Nachbarpunkt identifizierter Kernpunkt dem neuen Cluster zugeordnet wird und Nachbarn des als Nachbarpunkt identifizierten Kernpunkts der Liste von Nachbarn hinzugefügt werden, wobei ein als Randpunkt identifizierter Nachbarpunkt dem neuen Cluster zugeordnet wird, aber Nachbarn des Randpunkts der Liste von Nachbarn nicht hinzugefügt werden.
-
Bei einigen Ausführungsformen werden als Reaktion auf die Identifizierung eines Punkts als Randpunkt Einfallswinkel zwischen dem Randpunkt und neben dem Randpunkt befindliche Punkten mit einem Schwellenwert verglichen, wobei, wenn die Differenz geringer als der Schwellenwert ist, der daneben befindliche Punkt der dem neuen Cluster zugeordneten Liste von Nachbarn hinzugefügt wird, wenn er nicht zuvor einem Cluster hinzugefügt wurde.
-
Bei einigen Ausführungsformen sind die Einfallswinkel Azimutwinkel oder Höhenwinkel.
-
Gemäß einem weiteren Aspekt beinhaltet ein Verfahren zum Gruppieren räumlicher Daten das Empfangen einer Punktwolke, die aus mehreren innerhalb des dreidimensionalen (3D) Raums definierten Punkten besteht. Ein zuvor nicht gruppierter Punkt wird aus der Punktwolke ausgewählt und ein neues Cluster wird erzeugt, wenn der ausgewählte Punkt zuvor nicht gruppiert war und basierend auf einer Anzahl benachbarter Punkte, die sich innerhalb eines Untersuchungsradius' befinden, festgestellt wird, dass er ein Kernpunkt ist. Wenn festgestellt wird, dass er ein Kernpunkt ist, werden benachbarte Punkte des identifizierten Kernpunkts einer Liste von Nachbarn hinzugefügt. Für jeden Punkt auf der Liste von Nachbarn wird eine Feststellung getroffen, ob der benachbarte Punkt auch ein Kernpunkt ist. Für einen als Kernpunkt identifizierten, benachbarten Punkt wird der Punkt dem Cluster hinzugefügt und Nachbarn des benachbarten Punkts (d.h. Kernpunkts) werden der Liste von Nachbarn zur Analyse hinzugefügt. Für einen nicht als Kernpunkt identifizierten, benachbarten Punkt werden der Azimut- und/oder Höhenwinkel zwischen dem benachbarten Punkt und einem daneben befindlichen Punkt mit einem Schwellenwert verglichen, wobei, wenn der Azimut- und/oder Höhenwinkel zwischen dem benachbarten Punkt und dem daneben befindlichen Punkt geringer als ein Schwellenwert ist, der daneben befindliche Punkt der Liste von Nachbarn hinzugefügt wird, wenn er nicht zuvor einem Cluster zugeordnet wurde.
-
Das Verfahren gemäß dem vorangehenden Absatz kann optional zusätzlich und/oder alternativ ein(e) beliebige(s), ein(e) oder mehr des/der folgenden Merkmale, Konfigurationen und/oder zusätzlichen Komponenten enthalten.
-
Wenn zum Beispiel der Azimut- und/oder Höhenwinkel zwischen dem benachbarten Punkt und dem daneben befindlichen Punkt größer als ein Schwellenwert ist, wird der benachbarte Punkt als Randpunkt identifiziert und dem Cluster hinzu gefügt und es wird keine weitere Maßnahme in Bezug auf den daneben befindlichen Punkt ergriffen.
-
Bei einigen Ausführungsformen beinhaltet das Verfahren weiterhin das Feststellen, ob der daneben befindliche Punkt besucht wurde, wobei der daneben befindliche Punkt der Liste von Nachbarn hinzugefügt wird, wenn der daneben befindliche Punkt nicht besucht wurde.
-
Bei einigen Ausführungsformen wird der daneben befindliche Punkt, wenn der daneben befindliche Punkt besucht wurde und der daneben befindliche Punkt zuvor als Störpunkt ermittelt wurde, als Randpunkt identifiziert und dem Cluster hinzugefügt.
-
Bei einigen Ausführungsformen wird der zweite Punkt, wenn der daneben befindliche Punkt besucht wurde und der daneben befindliche Punkt zuvor nicht als Störpunkt ermittelt wurde, dem gegenwärtigen Cluster nicht hinzugefügt.
-
Gemäß einem weiteren Aspekt enthält ein System zumindest einen Prozessor und ein Modul zur Clusterbildung, das, wenn es durch den zumindest einen Prozessor ausgeführt wird, dazu ausgebildet ist, einen Dichte-basierten Clusterbildungsalgorithmus, der mehrere von dem System empfangene Punkte in ein oder mehr Cluster gruppiert, zu implementieren. Der Dichte-basierte Clusterbildungsalgorithmus ist dazu ausgebildet, eine aus mehreren, innerhalb des dreidimensionalen (3D) Raums definierten Punkten bestehende Punktwolke zu empfangen und einen Untersuchungsradius auf die Punktwolke anzuwenden, wobei der Untersuchungsradius Clusterbildungsparameter einschließlich eines oder mehr von einem Minimalpunktschwellenwert und Untersuchungsradius für jeden Punkt in der Punktwolke auswählt. Der Dichte-basierte Clusterbildungsalgorithmus ist weiterhin dazu ausgebildet, einen Algorithmus zur Clusterbildung auf die Punktwolke anzuwenden, wobei der Algorithmus zur Clusterbildung zumindest einige Punkte in der Punktwolke durchläuft und dem Minimalpunktschwellenwert und Untersuchungsradius, die jedem Punkt durch den Untersuchungsalgorithmus zugeordnet wurden, verwendet, um den Clustern selektiv Punkte hinzuzufügen.
-
Das Verfahren gemäß dem vorangehenden Absatz kann optional zusätzlich und/oder alternativ ein(e) beliebige(s), ein(e) oder mehr des/der folgenden Merkmale, Konfigurationen und/oder zusätzlichen Komponenten enthalten.
-
Zum Beispiel kann das Anwenden des Untersuchungsalgorithmus' weiterhin das Ermitteln eines Abstandes zu einem Punkt und das Auswählen eines Minimalpunktschwellenwerts für den Punkt basierend auf dem ermittelten Abstand zu dem Punkt beinhalten.
-
Bei einigen Ausführungsformen beinhaltet das Anwenden des Untersuchungsalgorithmus' weiterhin das Identifizieren des Punkts als Kernpunkt basierend auf einem Vergleich einer Anzahl benachbarter Punkte, die sich innerhalb des definierten Untersuchungsradius' des Punkts befinden, mit dem definierten Minium-Punktschwellenwert und Erhöhen des Untersuchungsradius', wenn der Punkt nicht als Kernpunkt identifiziert wird und Aufspüren zusätzlicher benachbarter Punkte basierend auf dem erhöhten Untersuchungsradius.
-
Bei einigen Ausführungsformen beinhaltet das Anwenden des Untersuchungsalgorithmus' weiterhin das Berechnen einer jedem der Punkte zugeordneten Dichte basierend auf einer Anzahl von Nachbarn, die sich innerhalb des jedem Punkt zugeordneten Untersuchungsradius' befinden.
-
Bei einigen Ausführungsformen beinhaltet das Anwenden des Algorithmus' zur Clusterbildung weiterhin das Durchlaufen zumindest einiger der Punkte in der Punktwolke basierend auf der einem jeden Punkt zugeordneten, berechneten Dichte, wobei die Punkte von dicht nach dünn durchlaufen werden.
-
Bei einigen Ausführungsformen beinhaltet das Anwenden des Algorithmus' zur Clusterbildung für jeden Punkt in der Punktwolke weiterhin das Auswählen eines zuvor nicht gruppierten Punkts und das Erzeugen eines neuen Clusters, wenn der ausgewählte Punkt ein Kernpunkt ist und zuvor nicht gruppiert wurde. Benachbarte Punkte werden einer dem neuen Cluster zugeordneten Liste von Nachbarn hinzugefügt, wenn der Punkt ein Kernpunkt ist, wobei sich die benachbarten Punkte innerhalb eines Untersuchungsradius' des Kernpunkts befinden. Jeder Punkt der Liste von Nachbarn wird geprüft und entweder als Kernpunkt oder als Randpunkt identifiziert, wobei ein als Kernpunkt identifizierter Nachbarpunkt dem neuen Cluster zugeordnet wird und Nachbarn des als Kernpunkt identifizierten Nachbarpunkts der Liste von Nachbarn hinzugefügt werden. Im Gegensatz dazu wird ein als Randpunkt identifizierter Nachbarpunkt dem neuen Cluster zugeordnet, aber Nachbarn des Randpunkts werden der Liste von Nachbarn nicht hinzugefügt.