Dies ist ein bisschen eine theoretische Frage, aber ich frage mich, wie man zufällig Punkte auswählt, wenn mehrere Linien in einem Bild erkannt werden sollen. In den meisten Beispielen, die ich bisher gesehen habe, scheint nur eine Linie zu finden, und es scheint einfach zu sein. Ich bin mir jedoch nicht sicher, wie es erweitert wird, um mehrere Linien mit viel mehr Punkten zu erkennen.RANSAC mit mehreren zu erkennenden Zeilen
Antwort
Ich denke, Sie arbeiten unter einem grundlegenden Missverständnis. RANSAC ist nur ein Algorithmus, der verwendet wird, um Datenpunkte robust in zwei Klassen zu segmentieren: diejenigen, die wahrscheinlich von einem gegebenen parametrischen Modell gut vorhergesagt werden, und solche, die dies nicht sind. Die Eigenschaft "gut vorhergesagt" wird in Form einer Verlustfunktion ("Fehler") ausgedrückt, die sowohl von den Modellparametern als auch von den Datenpunkten abhängt.
Lesen Sie den obigen Absatz erneut, und fragen Sie sich dann: habe ich ein parametrisches Modell, das eine Sammlung von Linien ausdrückt? Wenn ja, mach weiter und passe es an. Wenn Ihr Modell dagegen nur einzelne Zeilen verarbeiten kann, sollten Sie Ihre Datenmenge zunächst in Abschnitte segmentieren, die wahrscheinlich jeweils zu einer Linie gehören, und dann RANSAC auf jeden Abschnitt anwenden.
In einigen (leicht) Fällen kann man iterativ vorgehen: zuerst RANSAC Verwendung auf einem einzeiliges Modell ein großes Segment der Daten zu finden, die eine Zeile paßt, sein Segment aus dem Datensatz entfernen, und iterieren auf dem verbleibenden Punkte.