L'algoritmo di RANdom Sample And Consensus (RANSAC) è un algoritmo iterativo e non deterministico per la stima dei parametri di un modello in presenza di outlier (FB81). Il metodo si basa sulla selezione casuale degli elementi generatori del modello.
RANSAC, e tutte le sue varianti, possono essere viste come algoritmi che iterativamente alternano tra due fasi: la fase di generazione delle ipotesi (hypothesis generation) e la fase di valutazione delle ipotesi (hypothesis evaluation).
L'algoritmo, in breve, consiste nel selezionare casualmente campioni fra
tutti gli
campioni in ingresso
, con
grande abbastanza per
ricavare un modello (l'ipotesi).
Ottenuta un'ipotesi, vengono contati quanti degli
elementi di
sono
abbastanza vicini ad essa da esserne compatibili.
Un campione
viene classificato come inlier oppure
outlier rispetto all'ipotesi considerata se la sua distanza dal modello
risulta rispettivamente inferiore o superiore
a una soglia
, normalmente dipendente dal problema.
La soglia si scontra con quei problemi pratici in cui l'errore additivo
è di tipo gaussiano e ha quindi supporto infinito. In questo caso è comunque
necessario fissare una probabilità di classificazione degli inlier per
determinare una soglia
.
Tutti i campioni che soddisfano l'ipotesi sono detti inlier rispetto all'ipotesi considerata.
L'insieme di tali inlier costituisce il consensus set associato
all'ipotesi
:
| (4.140) |
Tra tutti i modelli generati casualmente viene scelto il modello che massimizza una determinata metrica; nel RANSAC classico tale metrica è la cardinalità del consensus set.
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à
che almeno una delle ipotesi generate sia costituita
esclusivamente da inlier. Il numero di tentativi
deve soddisfare
ovvero
| (4.141) |
dove è la probabilità che un singolo campione casuale sia formato
esclusivamente da inlier.
Normalmente come approssimazione di si può usare
4.3
e perciò
| (4.142) |
con la probabilità a priori di selezionare un outlier e
il numero di elementi necessari a definire il modello.
Assumendo nota la frazione di outlier , il numero atteso di
inlier presenti nel dataset è
Normalmente viene scelto uguale al numero minimo di elementi necessari per
definire il modello. Qualora si scelga un valore maggiore, il modello deve
essere stimato mediante una regressione numerica sui vincoli forniti. Questa
strategia può risultare utile quando il rumore di osservazione è elevato, ma
incrementa il rischio di includere nel campione anche degli outlier.