Abbinamento efficace e semplice per 2 insiemi di punti su scala ridotta

2

Devo abbinare due serie di punti 3D, tuttavia il numero di punti in ogni set può essere diverso. Sembra che la maggior parte degli algoritmi siano progettati per allineare le immagini e rifinire per lavorare con centinaia di migliaia di punti. Il mio caso è compreso tra 50 e 150 punti in ognuno dei due set.

Finora mi sono familiarizzato con gli algoritmi Iterative Closest Point e Procrustes Matching . L'implementazione di Procrustes algorithms sembra un totale eccessivo per questa piccola quantità. ICP ha molte implementazioni, ma non ho trovato nessuna versione prontamente implementata che conti per i cosiddetti "outliers" - punti senza una coppia corrispondente.

Oltre alle spese di implementazione, algoritmi come Fractional e Sparse ICP utilizzano alcune informazioni statistiche per cancellare punti considerati valori anomali. Per le serie con da 50 a 150 punti le misure statistiche sono spesso distorte o i criteri di significatività statistica non sono soddisfatti.

Conosco Assignment Problem nell'ottimizzazione lineare, ma non è adatto a casi con insiemi di punti diversi.

Esistono altri algoritmi su piccola scala che risolvono il problema della corrispondenza di set di 2 punti? Sto cercando nomi di algoritmi, documenti scientifici o implementazioni in C ++. Ho bisogno di alcuni suggerimenti per sapere dove iniziare la mia ricerca.

    
posta Pavlo Dyban 21.10.2013 - 13:32
fonte

2 risposte

0

Alla fine ho dovuto ricorrere a un algoritmo ingenuo.

Scegli un punto casuale. Trova il punto più vicino dal secondo set all'interno di un dato intervallo di soglia. Trova il punto più vicino dal primo set che corrisponde al punto nel secondo set. Se i due sono uguali, memorizzali come coppia ed eliminali dall'elenco. Continua fino a quando non è possibile trovare più punti candidati.

Questo è un approccio alla soluzione semplice e diretto, dal momento che sfortunatamente non sono riuscito a convincere la mia azienda a dedicare più tempo all'implementazione di un algoritmo scientifico da zero.

    
risposta data 05.11.2013 - 16:27
fonte
0

Vuoi trovare i punti massimi in entrambi i set? Quindi la ricerca forza bruta significa per ogni punto P nel primo set, attraversare il secondo set per trovare il punto che corrisponde al punto P. Costa O (M * N), che sarà adatto al tuo caso. Naturalmente, è possibile ordinare prima i punti (prima per asse x, poi asse y, quindi z-asix). Quindi puoi attraversare questi due set ordinati per cercare i punti corrispondenti.

    
risposta data 21.10.2013 - 15:47
fonte

Leggi altre domande sui tag