Per alcuni algoritmi di ricostruzione del volume su cui sto lavorando, devo rilevare un numero arbitrario di schemi circolari nei dati dei punti 3d (provenienti da un dispositivo LIDAR). I modelli possono essere arbitrariamente orientati nello spazio e si presume che giacciono (anche se non perfettamente) in sottili piani 2D. Ecco un esempio con due cerchi sullo stesso piano (anche se ricorda che si tratta di uno spazio 3d):
Ho provato molti approcci .. il più semplice (ma quello che funziona meglio finora) è il clustering basato su insiemi disgiunti del grafico del vicino più vicino. Funziona abbastanza bene quando i motivi sono distanti, ma meno con cerchi come quelli nell'esempio, molto vicini tra loro.
Ho provato K-significa, ma non funziona bene: sospetto che la disposizione circolare dei punti potrebbe non essere adatta a questo. Inoltre ho l'ulteriore problema di non conoscere in anticipo il valore di K.
Ho provato approcci più complicati, basati sul rilevamento di cicli nel grafico del vicino più vicino, ma quello che ho ottenuto era troppo fragile o computazionalmente costoso.
Ho anche letto molti argomenti correlati (trasformazione di Hough, ecc.) Ma nulla sembra applicarsi perfettamente in questo specifico contesto. Qualsiasi idea o ispirazione sarebbe apprezzata.