Was sind die besten Lösungen, um Linien in einer Punktwolke zu erkennen? Vergleich mit und zwischen Hough Transform , Radon Transform , RANSAC (siehe Wikipedia) und Brute-Force-Suche (siehe Wikipedia).
Welches ist am robustesten gegen die Streuung von Punkten in der Punktwolke?
Hinweis:
1- Die Frage bezieht sich auf 3D-Punktwolken, nicht auf Bilder.
2- Punkte in der Punktwolke sind zufällig verteilt (völlig spärliche Stellen).
3- Es gibt keine Informationen über das zu untersuchende Objekt (Linie) in Bezug auf bevorzugte Ausrichtung, Größe usw.
4- Eine Toleranz muss um die Kandidatenlinie herum berücksichtigt werden.
Aktualisierung:
Nach meinen Experimenten: RANSAC könnte leicht einige Zeilen übersehen. Es ist gut für die schnelle Erkennung von Kanten, jedoch kann die Komplexität der Punktdispersion zu unerwünschten Ausgaben führen. Hough und Radon sind sich sehr ähnlich und ich hatte keine Chance, eine 3D-Punktwolke zu versuchen, aber sie funktionieren gut in 2D-Fällen. Es ist schwierig, Segmente gefundener Linien zu extrahieren. BFS ist für große Datenmengen einfach unpraktisch.
quelle
Antworten:
Es kommt wirklich darauf an, wie Sie die Qualität der Lösungen messen werden. Was sind Ihre Anforderungen, Echtzeit, hohe Genauigkeit? Wie groß ist die Punktwolke?
Sie haben gültige, aber ausgefallene signalverarbeitungsbasierte Methoden erwähnt, um das Problem anzugehen.
Lassen Sie mich drei Methoden hinzufügen, die Sie nicht erwähnt haben und die klassischer und statistischer Natur sind: kleinste Quadrate, Gratregression und Lasso.
quelle
Wenn Sie wirklich über Erkennungslinien besorgt sind, können Sie einen vereinfachten Ansatz wählen.
Projizieren Sie Ihre Punktwolke auf mindestens zwei Oberflächen. Sagen wir, wir projizieren sie auf die XY-Ebene und die YZ-Ebene. Beginnen Sie grundsätzlich mit einer leeren Leinwand und projizieren Sie jeden Punkt anhand einiger Geometriekriterien. Jetzt haben Sie also eine endliche 2D-Leinwand, die alle leer ist, aber weiße Punkte, die vorhanden sind. Jetzt können Sie auf diese Leinwände eine Hough-Transformation anwenden.
Basierend auf hough erhalten Sie Linien und für zwei jeweilige Ebenen. Der nächste Schritt besteht darin, diese Linien zuzuordnen, um daraus eine einzelne 3D-Linie zu identifizieren.(r,θ) (r,ϕ)
In Bezug auf die Genauigkeit kann bei spärlichen Daten die Punktzahl des Houghs (dh der Stärke) geringer sein. Es funktioniert jedoch, wenn insgesamt alle Zeilen spärlich sind. Dies ist ein Problem, wenn Sie eine sehr lange Linie mit einer kurzen Linie vergleichen.
quelle