paint-brush
Lidar-Annotation ist alles, was Sie brauchenby@skprot
771
771

Lidar-Annotation ist alles, was Sie brauchen

Sayan Protasov6m2024/04/27
Read on Terminal Reader

Die Fusion von Punktwolken- und Bilddaten zur präzisen Straßenoberflächensegmentierung in Kamerabildern.
featured image - Lidar-Annotation ist alles, was Sie brauchen
Sayan Protasov HackerNoon profile picture
0-item
1-item


Die Bildsegmentierung spielt eine entscheidende Rolle bei der genauen Identifizierung und Abgrenzung von Objekten von Interesse in einem Bild. Beim autonomen Fahren werden Computer-Vision-Algorithmen angewendet, um die Aufgabe der Straßenoberflächensegmentierung zu lösen. Diese Aufgabe ist anspruchsvoll, da man sich nicht nur auf eine Art von Bildern verlassen kann – sowohl Kameras als auch LiDARs haben ihre Stärken und Schwächen. LiDARs liefern beispielsweise genaue Tiefeninformationen, erzeugen aber normalerweise spärliche Punktwolken, sodass sie Objekte in der Szene nicht präzise segmentieren können. Und sie können verzerrte Wolken erzeugen, wenn sie auf transparente oder reflektierende Oberflächen treffen. Kameras erfassen zwar nicht die Tiefe, liefern aber vollständige Informationen über die Form, Textur und Farbe von Objekten. Dies führt uns zu einer einfachen Idee, dass eine effektive Fusion von Punktwolken und Bildern beim Training der 2D-Straßensegmentierung die Vorteile jedes Datenbereichs nutzen kann. Das Problem ist, dass eine solche Fusion eine arbeitsintensive Annotation beider Datensätze erfordert. Können wir also die Datenannotation effizienter gestalten, um die Vorteile eines Multisensor-Setups für die Straßensegmentierung zu nutzen?


Ich arbeite derzeit bei Evocargo . Dieses Unternehmen bietet Gütertransportdienste an und stellt seine eigenen autonomen Elektrofahrzeuge her. Als Deep-Learning-Ingenieur bin ich auf die Entwicklung von 3D-Erkennungssystemen für den Autopiloten selbstfahrender Fahrzeuge spezialisiert. Deshalb haben wir bei Evocargo beschlossen, eine Möglichkeit zu finden, die Effizienz der Straßenoberflächensegmentierung zu verbessern, um die Vorhersagequalität hoch zu halten und die Annotationskosten zu senken. Nach einiger Zeit der Forschung und des Experimentierens haben meine Kollegen und ich einen Ansatz entwickelt, der Lidar-Annotationen effektiv nutzt, um Bildsegmentierungsmodelle direkt an RGB-Bildern zu trainieren . Auf das Bild projizierte Lidar-Punkte, die im weiteren Training als Ground-Truth-Masken verwendet werden, bieten also eine vergleichbare Qualität der Bildsegmentierung und ermöglichen das Training von Modellen ohne standardmäßig annotierte 2D-Masken.



In diesem Beitrag beschreibe ich unseren Ansatz Schritt für Schritt und zeige einige Testergebnisse. Wenn Sie tiefer in unsere Arbeit, andere Methodenforschung und unsere Testergebnisse eintauchen möchten, lesen Sie unseren Artikel „Lidar-Annotation ist alles, was Sie brauchen“ im IEEE Access Journal. Dieser Artikel wird durch das veröffentlichte GitHub-Repository mit der Methodenimplementierung, den verarbeiteten Datensätzen und der Codebasis für zukünftige Forschung unterstützt. Wenn Sie unsere Arbeit für Ihre Forschung nützlich finden, geben Sie ihr bitte einen Stern ⭐ und zitieren Sie das Papier.


Segmentierungsmodelle in 4 Schritten trainieren

Die gesamte Pipeline unseres Ansatzes besteht aus vier Hauptteilen: Straßenannotation in Punktwolken, Datenaufbereitung, maskierter Verlust und das Segmentierungsmodell selbst.


Das Gesamtschema unseres Ansatzes


Zunächst erhalten wir die Daten mit Straßenanmerkungen im Punktwolkenbereich. Danach projizieren wir Punkte mithilfe homogener Transformationen und Kameraparameter. Dann erhalten wir mithilfe der projizierten Punkte die Ground-Truth-Maske der Straße zur Verlustberechnung mit hinzugefügtem Zufallsrauschen. Bilder von der Kamera werden vom Segmentierungsmodell verarbeitet. Vorhersagen und Masken aus dem vorherigen Schritt werden vom maskierten Verlust verwendet, wodurch das Training des Modells mithilfe spärlicher Ground-Truth-Daten ermöglicht wird. Schließlich erhalten wir nach dem Modelltraining ein Bild mit einer segmentierten Straße. Das Trainingsverfahren sowie der maskierte Verlust ermöglichen das Mischen projizierter Ground-Truth-Daten mit herkömmlichen 2D-Masken, was den Ansatz in Bezug auf die Daten flexibel macht.


Schauen wir uns nun die einzelnen Teile genauer an.


1 Punktwolkendatenannotation


Um Lidar-Daten während des Trainings verwenden zu können, benötigen wir semantische Segmentierungsanmerkungen für Punktwolken. Dies kann entweder manuell mit einem Open-Source-Tool zur Punktwolkenanmerkung erfolgen, wie z. B. Semantischer Segmentierungseditor oder mithilfe einiger algorithmischer Ansätze. Mein Kollege hat einen solchen Ansatz zur Straßenoberflächenerkennung in seiner Schritt-für-Schritt-Anleitung beschriebenSo kommentieren Sie 100 Lidar-Scans in 1 Stunde . Ein algorithmischer Ansatz speziell für die Straßenannotation könnte es ermöglichen, ganz auf manuelle Annotationen zu verzichten, aber er muss für bestimmte Daten fein abgestimmt werden. Bei Evocargo verwenden wir beide Ansätze. Für einfache Bereiche wird die Straße algorithmisch annotiert und für komplexe Abschnitte manuell.


2 Datenaufbereitung


Eine erhaltene Punktwolke wird mithilfe homogener Transformationen auf die Bildebene projiziert, um eine Bildsegmentierungsmaske mit der von uns benötigten Klassenbezeichnung zu erhalten, in unserem Fall ist es eine Straße. Für eine solche Projektion verwenden wir synchronisierte Kamera- und Lidar-Frames, begleitet von Kameraparametern und einer Transformationsmatrix von Lidar zu Kamera-Frame. Um einen homogenen Punkt x = (x, y, z, 1)ᵀ in Lidar-Frame-Koordinaten auf einen Punkt y = (u, v, 1)ᵀ auf einer Bildebene zu projizieren, verwenden wir die Gleichung:


Nach der Transformation erhalten wir Punkte auf dem Bild als Pixelmaske, sowohl für die Straßenklasse als auch für alle anderen Punkte aus dem Lidar-Scan. Wir benötigen weitere Lidar-Scan-Punkte, da sich die Lidar-Punkte meist am unteren Bildrand befinden und der obere Bildrand überhaupt keine Punkte aufweist, was in diesem Bereich möglicherweise zu ungenauen Vorhersagen führt. Um diesen Effekt zu eliminieren, fügen wir zufällige Punkte in der oberen Hälfte der Maske hinzu (negative Klasse), um die Verteilung der Punkte auszugleichen, an denen wir den Verlust berechnen.


Projizierte Straßenpunkte und Verlustberechnungsmaske


3 Maskierter Verlust


Ein entscheidender Bestandteil unserer Methode ist die Anwendung einer maskierten Verlustfunktion während des Modelltrainings. Dieser Ansatz eliminiert die inhärente Spärlichkeit in Lidar-abgeleiteten Ground-Truth-Masken. Im Gegensatz zu herkömmlichen Verlustfunktionen, die die gesamten Bildmasken zur Berechnung von Fehlern berücksichtigen, konzentriert sich der maskierte Verlust ausschließlich auf die Bereiche, in denen Lidar-Punkte vorhanden sind. Diese gezielte Verlustberechnung stellt sicher, dass sich das Lernen des Modells auf relevante Bereiche konzentriert und die von Lidar bereitgestellten Informationen nutzt, um die Genauigkeit der Straßensegmentierung zu verbessern. Mit anderen Worten zwingen wir das Modell, die Straßensegmentierung zu lernen, indem wir den Vorhersagefehler auf einem Punkteraster messen. Dies lässt sich mit dem Betrachten des Bildes durch eine Shutterbrille (Shutter Shades) vergleichen.

Blick auf die Straße mit Shutterbrille


Der maskierte Verlust für jedes Bild kann folgendermaßen formuliert werden:

Der maskierte Verlust wird durch Anwenden einer binären Maske auf die Trainingsbilder erzielt. Diese Maske umreißt die Bereiche, in denen sich die Lidar-Punkte befinden und auf die Bildebene projiziert werden. Während der Trainingsphase wird der Verlust nur für die Pixel berechnet, die sich unter der Maske befinden. Große, nicht annotierte Teile des Bildes werden dabei effektiv ignoriert. Diese Methode verbessert nicht nur die Effizienz des Trainingsprozesses, sondern mildert auch die Probleme, die durch die spärliche Natur der Lidar-Daten entstehen.


4 Modelltraining


Der letzte Schritt besteht darin, das Segmentierungsmodell anhand des erstellten Datensatzes zu trainieren. Der Trainingsprozess kann für jedes Segmentierungsmodell geeignet sein, und in unserer Forschung haben wir PSPNet verwendet. In dieser Phase hängt alles von der Qualität Ihrer Daten, ihrer Quantität und der verfügbaren Rechenleistung ab.


Vielversprechende Testergebnisse

Wir haben unseren Ansatz an verschiedenen Datensätzen getestet, darunter auch Open-Source-Datensätze wie Perception Waymo Open Dataset und KITTI-360-Datensatz. Jedes Mal haben wir eine Reihe von drei Experimenten durchgeführt: Wir haben nur 2D-Straßengrunddaten, nur projizierte Punkte als Grunddaten und eine Mischung dieser Grunddatentypen verwendet. Und die Ergebnisse der Straßensegmentierung (% der IoU) sehen vielversprechend aus:


Experiment

Trainiert mit dem KITTI-360-Datensatz

Trainiert mit dem Waymo-Datensatz

Nur 2D (Basislinie)

92,3

96,1

Nur projiziertes 3D

89,6

94,7

2D + projiziertes 3D mischen

92,7

96,3


Diese Zahlen bedeuten, dass es in Ordnung ist, wenn Sie nur über Lidar-Segmentierung verfügen und keine zusätzlichen Ressourcen für 2D-Bildanmerkungen aufwenden möchten. Der Qualitätsverlust im Vergleich zum Training nur mit 2D-Bildmasken ist möglicherweise unbedeutend. Wenn Sie über Ressourcen verfügen, um Daten von beiden Sensoren zu annotieren, kombinieren Sie diese beiden Arten von Anmerkungen einfach während des Trainingsprozesses und erzielen Sie eine Steigerung der Metriken.


Insgesamt haben wir im Laufe unserer Untersuchungen folgende Vorteile dieses Ansatzes festgestellt:


  • Hochwertige Leistung neuronaler Netze bei Bildsegmentierungsaufgaben,
  • weniger Ressourcen erforderlich, um Daten von mehreren Sensortypen zu annotieren,
  • Flexibilität zur Anpassung an verschiedene Bildtypen und Segmentierungsaufgaben.


Präzise Segmentierung der Straße mit Hindernissen unterschiedlicher Größe und anderen Fahrzeugen. Diese Ergebnisse werden von dem Modell erzielt, das mit unseren eigenen proprietären Daten trainiert wurde.


Autoren des Ansatzes