Erkennung von Kreisen (Ellipsen) in 2D-Punktwolken


14

Gegeben sei eine Menge von Punkten (2D) dh Punktwolke (PC), ist die Frage nach ein robust, accurateund computing-friendlyVerfahren Kreisen zu finden (oder Ellipsen in erweiterte Version).

Die intuitive Idee ist, die Brute-Force-Suche für alle möglichen Punkte (als Mittelpunkt) {unendlich!} Und Radien (wieder unendlich!) Zu verwenden. Dies ist extrem langsam und ineffizient.

Wie unten gezeigt, wird jeder angepasste Kreis basierend auf der Anzahl der Punkte ( nn) auf dem Kreisumfang in einem Abstand kürzer als ein Schwellenwert ( t) eingestuft. Es ist also derreine durchschnittliche Entfernung vorzulegen.

In fortgeschrittener Form sind Ellipsen von Interesse, die angepasst werden sollen.

Irgendwelche Ideen, Brainstorming, Erfahrungen, Kommentare? Bildbeschreibung hier eingeben


Gute Frage. Mit welchem ​​Programm haben Sie das Diagramm erstellt?
Jason R

@JasonR Wie immer Python + MatPlotLib .
Entwickler

Antworten:


14

Die besten Ideen, die genau versuchen, dieses Problem zu lösen, sind Hough Transform .

Grundsätzlich wird das Signal im Weltraum r, x, ykoordiniert. Hier r steht für Radius und x,ysteht für Mitte. Jeder Punkt kann zu einem oder mehreren Kreisen gehören. Gehen Sie also in der Hough-Ebene durch alle möglichen Kreise, zu denen dieser Punkt gehören könnte, und geben Sie einfach +1. Dies ist keine Suche, nur eine Sammlung.

Wenn nun ein echter Kreis existiert, addieren sich so viele Punkte und die Punktzahl eines solchen r, x, yist viel höher als bei allen anderen. Wenn Sie einen solchen Punkt auswählen, können Sie die richtigen Kreise auswählen.

Hier ist ein klassischer Papierweg aus dem Jahr 1971 (bevor ich geboren wurde!), Der dieses Konzept erfand.

  1. VERWENDUNG DER HOUGH-TRASFORMATION ZUM ERKENNEN VON LINIEN UND KURVEN IN BILDERN Von: Richard O. Duda, Peter E. Hart Tech-Bericht Artificial Intelligence Cente April 1971.

Für das Tutorial würde ich folgende Referenzen vorschlagen:

  1. HIPR2 -Link
  2. Amos Storch
  3. IDL-Referenz

Speziell für die Kreiserkennung können Sie sich auf Folgendes beziehen:

  1. AI Shack
  2. Tech Report von Chicago Univ.
  3. Vorlesungsnotizen vom Rochester Institute

Diese Methoden sind sehr effizient und sehr computerfreundlich.


1
Ich kann für die AI Shack-Artikel bürgen. Sie helfen wirklich dabei, die strengeren Mathematik-Regeln zu verstehen, die Sie an anderer Stelle lesen werden.
Ivo Flipse

1
Gute Antwort. Ich kenne mich bereits mit Hough Transform (HT) aus. Das, was ich benutzte, war für die Erkennung von Linien. Es war ein bisschen schwierig, Liniensegmente zu bestimmen. Es wurde empfohlen, Probabilistic Hough Transform (PHT) zu verwenden. Ich habe keine klare Vorstellung von der Erweiterung bekommen. Ich dachte, es könnte für Kreise so komplex sein oder andere Schwierigkeiten auftauchen. In Bezug auf meine Erfahrungen ist HT gut, aber nicht perfekt. Es ist auch mein Anliegen, HT auf 3D zu erweitern. Ich werde versuchen, Ihre angegebenen Links zu überprüfen. Ihre Antwort ist ziemlich gut, um als Antwort in Frage zu kommen.
Entwickler

AI Shack und Tech Report von Chicaco Links sind tot
Mehdi
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.