L'algoritmo di RANdom Sample And Consesus è un algoritmo iterativo per la stima dei parametri di un modello dove l'insieme dei dati è fortemente condizionato dalla presenza di molti outlier. È un algoritmo non deterministico, pubblicato da Fisher (FB81), basato sulla selezione casuale degli elementi generatori del modello.
RANSAC, e tutte le sue varianti, possono essere viste come un algoritmo che iterativamente si alterna tra due fasi: la fase di generazione delle ipotesi (hypothesis generation) e la fase di valutazione delle ipotesi (hypothesis evaluation).
L'algoritmo consiste nel selezionare casualmente campioni fra tutti gli
campioni in ingresso
, con
sufficientemente grande per ricavare un modello (l'ipotesi).
Ottenuta un'ipotesi, vengono contati quanti degli
elementi di
sono abbastanza vicini ad essa per appartenergli.
Un campione
appartiene o meno al modello (ovvero è un inlier o un outlier) se la sua distanza rispetto al modello
è inferiore o superiore a una soglia data
, soglia normalmente dipendente dal problema.
La soglia
si scontra con quei problemi pratici dove l'errore additivo è di tipo gaussiano, ovvero dove il supporto è infinito. In questo caso è comunque necessario definire una probabilità
di individuazione degli inlier per definire una soglia
.
Tutti gli elementi in ingresso che soddisfano l'ipotesi si chiamano consensi (consensus).
L'insieme dei consensi associati all'ipotesi
è il consensus set di
:
![]() |
(3.115) |
Tra tutti i modelli generati casualmente viene infine scelto il modello che soddisfa una determinata metrica, per esempio, per RANSAC originale, quella che ha il consenso di cardinalità massima.
Uno dei problemi è scegliere quante ipotesi generare per avere una buona probabilità di ottenere il modello corretto.
Esiste una relazione statistica tra il numero di iterazioni e la probabilità
di individuare una soluzione di soli inlier.
Il numero di tentativi
deve soddisfare
ovvero
(3.116) |
Normalmente come approssimazione di si può usare
3.3 e perciò
![]() |
(3.117) |
Normalmente viene scelto uguale al numero di elementi necessari per creare il modello ma, se superiore a questo numero, il modello che viene generato deve essere un modello costruito attraverso una regressione numerica rispetto ai vincoli forniti, condizione necessaria quando la varianza del rumore è elevata, incrementando tuttavia il rischio di inglobare nei vincoli anche outliers.