Für einige Volumenrekonstruktionsalgorithmen, an denen ich arbeite, muss ich eine beliebige Anzahl von kreisförmigen Mustern in 3D-Punktdaten (die von einem LIDAR-Gerät stammen) erkennen. Die Muster können beliebig im Raum ausgerichtet sein und in dünnen 2D-Ebenen liegen (wenn auch nicht perfekt). Hier ist ein Beispiel mit zwei Kreisen in derselben Ebene (obwohl dies ein 3D-Raum ist):
Ich habe viele Ansätze ausprobiert. Der einfachste (aber der bisher am besten funktionierende) ist das Clustering basierend auf disjunkten Mengen des nächsten Nachbargraphen. Dies funktioniert ziemlich gut, wenn die Muster weit voneinander entfernt sind, weniger jedoch bei Kreisen wie im Beispiel, die sehr nahe beieinander liegen.
Ich habe K-means ausprobiert, aber es funktioniert nicht gut: Ich vermute, dass die kreisförmige Punktanordnung möglicherweise nicht gut dafür geeignet ist. Außerdem habe ich das zusätzliche Problem, den Wert von K nicht im Voraus zu kennen.
Ich habe kompliziertere Ansätze ausprobiert, basierend auf der Erkennung von Zyklen im nächsten Nachbargraphen, aber was ich bekam, war entweder zu fragil oder rechenintensiv.
Ich habe auch über viele verwandte Themen gelesen (Hough-Transformation usw.), aber nichts scheint in diesem speziellen Kontext perfekt zuzutreffen. Jede Idee oder Inspiration wäre dankbar.