Consenso del campione casuale: Stima robusta nella visione artificiale
Di Fouad Sabry
()
Info su questo ebook
Che cos'è il consenso al campione casuale
Il consenso al campione casuale, noto anche come RANSAC, è un metodo iterativo utilizzato per stimare i parametri di un modello matematico basato su una raccolta dei dati osservati che includono valori anomali. Questo metodo viene utilizzato in situazioni in cui è consentito che i valori anomali non abbiano alcun impatto sui valori delle stime. La conclusione è che è anche possibile vederlo come uno strumento per individuare valori anomali. Un algoritmo è considerato non deterministico se è in grado di generare un risultato adeguato solo con una certa probabilità, e questa probabilità aumenta all'aumentare del numero di iterazioni consentite dal metodo. Nel 1981, Fischler e Bolles, che lavoravano presso SRI International, furono i primi a pubblicare l’algoritmo. Per risolvere il problema della determinazione della posizione (LDP), che è un problema in cui l'obiettivo è trovare i punti nello spazio che si proiettano su un'immagine e quindi convertire tali punti in una serie di punti di riferimento con posizioni note, hanno utilizzato RANSAC.
Come trarrai vantaggio
(I) Approfondimenti e convalide sui seguenti argomenti:
Capitolo 1: Consenso del campione casuale
Capitolo 2: Stimatore
Capitolo 3: Minimi quadrati
Capitolo 4: Valore anomalo
Capitolo 5: Convalida incrociata (statistiche)
Capitolo 6: Errori e residui
Capitolo 7: Modello di miscela
Capitolo 8: Statistiche robuste
Capitolo 9: Unione di immagini
Capitolo 10: Ricampionamento (statistiche)
(II) Rispondere alle principali domande del pubblico sul consenso del campione casuale.
(III) Esempi del mondo reale per l'utilizzo di consenso campione casuale in molti campi.
A chi è rivolto questo libro
Professionisti, studenti universitari e laureati, appassionati, hobbisti e coloro che vogliono andare oltre le conoscenze o le informazioni di base per qualsiasi tipo di consenso del campione casuale.
Correlato a Consenso del campione casuale
Titoli di questa serie (100)
Equalizzazione dell'istogramma: Miglioramento del contrasto dell'immagine per una migliore percezione visiva Valutazione: 0 su 5 stelle0 valutazioniVisione computerizzata: Esplorare le profondità della visione artificiale Valutazione: 0 su 5 stelle0 valutazioniRiduzione del rumore: Miglioramento della chiarezza, tecniche avanzate per la riduzione del rumore nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniTrasformata del radon: Svelare modelli nascosti nei dati visivi Valutazione: 0 su 5 stelle0 valutazioniMappatura dei toni: Mappatura dei toni: prospettive illuminanti nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniDiffusione anisotropa: Miglioramento dell'analisi delle immagini attraverso la diffusione anisotropa Valutazione: 0 su 5 stelle0 valutazioniRetinex: Svelare i segreti della visione computazionale con Retinex Valutazione: 0 su 5 stelle0 valutazioniTrasformazione di Hough: Svelare la magia della trasformazione di Hough nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniSistema di gestione del colore: Ottimizzazione della percezione visiva negli ambienti digitali Valutazione: 0 su 5 stelle0 valutazioniVisione artificiale subacquea: Esplorando le profondità della visione artificiale sotto le onde Valutazione: 0 su 5 stelle0 valutazioniCorrezione gamma: Migliorare la chiarezza visiva nella visione artificiale: la tecnica di correzione gamma Valutazione: 0 su 5 stelle0 valutazioniModello di aspetto del colore: Comprendere la percezione e la rappresentazione nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniOmografia: Omografia: trasformazioni nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniVisione stereoscopica del computer: Esplorare la percezione della profondità nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniScala dello spazio: Esplorare le dimensioni nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniGruppo congiunto di esperti fotografici: Sfruttare la potenza dei dati visivi con lo standard JPEG Valutazione: 0 su 5 stelle0 valutazioniFunzione di corrispondenza dei colori: Comprendere la sensibilità spettrale nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniRidipintura: Colmare le lacune nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniIstogramma dell'immagine: Svelare intuizioni visive, esplorare le profondità degli istogrammi delle immagini nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniConsenso del campione casuale: Stima robusta nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniRilevatore di bordi astuto: Svelare l'arte della percezione visiva Valutazione: 0 su 5 stelle0 valutazioniModello a colori: Comprendere lo spettro della visione artificiale: esplorare i modelli di colore Valutazione: 0 su 5 stelle0 valutazioniSpazio colore: Esplorare lo spettro della visione artificiale Valutazione: 0 su 5 stelle0 valutazioniStima della posa del corpo articolato: Sbloccare il movimento umano nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniMappatura dei colori: Esplorare la percezione visiva e l'analisi nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniRilevamento delle macchie: Scoprire modelli nei dati visivi Valutazione: 0 su 5 stelle0 valutazioniCompressione delle immagini: Tecniche efficienti per l'ottimizzazione dei dati visivi Valutazione: 0 su 5 stelle0 valutazioniProfilo colore: Esplorare la percezione visiva e l'analisi nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniTrasformazione affine: Sbloccare le prospettive visive: esplorare la trasformazione affine nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniTrasformazione di feature invarianti di scala: Svelare il potere della trasformazione delle caratteristiche invarianti su scala nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioni
Ebook correlati
Classificazione delle immagini contestuali: Comprendere i dati visivi per una classificazione efficace Valutazione: 0 su 5 stelle0 valutazioniRegolazione del pacchetto: Ottimizzazione dei dati visivi per una ricostruzione precisa Valutazione: 0 su 5 stelle0 valutazioniHashing geometrico: Algoritmi efficienti per il riconoscimento e la corrispondenza delle immagini Valutazione: 0 su 5 stelle0 valutazioniMosaicazione di documenti: Sbloccare intuizioni visive attraverso il mosaico di documenti Valutazione: 0 su 5 stelle0 valutazioniSegmentazione delle immagini: Sbloccare insight grazie alla precisione dei pixel Valutazione: 0 su 5 stelle0 valutazioniRiconoscimento automatico del bersaglio: Progressi nelle tecniche di visione artificiale per il riconoscimento del bersaglio Valutazione: 0 su 5 stelle0 valutazioniGeometria computazionale: Esplorazione di intuizioni geometriche per la visione artificiale Valutazione: 0 su 5 stelle0 valutazioniTagli del grafico di visione artificiale: Esplorazione dei tagli grafici nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniAlgoritmo della linea di Bresenham: Rendering delle linee efficiente e pixel perfetto per la visione artificiale Valutazione: 0 su 5 stelle0 valutazioniGenerazione di maglie: Progressi e applicazioni nella generazione di mesh per la visione artificiale Valutazione: 0 su 5 stelle0 valutazioniAlgoritmo di disegno di linee: Padroneggiare le tecniche per il rendering di immagini di precisione Valutazione: 0 su 5 stelle0 valutazioniGrafica raster: Comprendere i fondamenti della grafica raster nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniModello di aspetto attivo: Sbloccare la potenza dei modelli di aspetto attivo nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniMetodo di impostazione del livello: Avanzamento della visione artificiale, esplorazione del metodo dell'impostazione dei livelli Valutazione: 0 su 5 stelle0 valutazioniEsercizi di matematica: inferenza statistica Valutazione: 0 su 5 stelle0 valutazioniCompressione dati: Sbloccare l'efficienza nella visione artificiale con la compressione dei dati Valutazione: 0 su 5 stelle0 valutazioniEditor di grafica raster: Trasformare le realtà visive: padroneggiare gli editor grafici raster nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniIstogramma dell'immagine: Svelare intuizioni visive, esplorare le profondità degli istogrammi delle immagini nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniTensore trifocale: Esplorare la profondità, il movimento e la struttura nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniFlusso ottico: Esplorazione di modelli visivi dinamici nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniVisualizza la sintesi: Esplorare le prospettive nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniFisica: dinamica 1 con Scratch: Esperimenti di fisica con Scratch sui moti con attrito con il calcolo numerico Valutazione: 0 su 5 stelle0 valutazioniEqualizzazione dell'istogramma: Miglioramento del contrasto dell'immagine per una migliore percezione visiva Valutazione: 0 su 5 stelle0 valutazioniFisica: cinematica 2 con Scratch: Esperimenti con Scratch su moti vari e moti composti con il calcolo numerico Valutazione: 0 su 5 stelle0 valutazioniTrasformazione di feature invarianti di scala: Svelare il potere della trasformazione delle caratteristiche invarianti su scala nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniGrafica raster digitale: Svelare la potenza della grafica raster digitale nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioniL'era dell'Intelligenza Artificiale: Come l'AI sta rivoluzionando le nostre vite Valutazione: 0 su 5 stelle0 valutazioniTrasformazione lineare diretta: Applicazioni pratiche e tecniche nella visione artificiale Valutazione: 0 su 5 stelle0 valutazioni
Intelligenza artificiale e semantica per voi
Il Terzo Like Valutazione: 0 su 5 stelle0 valutazioniGuida Intelligenza Artificiale Valutazione: 0 su 5 stelle0 valutazioniANonniMus: Vecchi rivoluzionari contro giovani robot Valutazione: 0 su 5 stelle0 valutazioni
Recensioni su Consenso del campione casuale
0 valutazioni0 recensioni
Anteprima del libro
Consenso del campione casuale - Fouad Sabry
Capitolo 1: Consenso a campione casuale
Al fine di stimare i parametri di un modello matematico da un insieme di dati osservati che includono valori anomali, è possibile utilizzare il processo iterativo noto come consenso a campione casuale (RANSAC). In quanto tale, può anche essere visto come una tecnica per identificare i valori anomali. Questo algoritmo non è deterministico poiché genera solo un risultato adatto con una data probabilità, che aumenta con il numero di iterazioni consentite. Nel 1981, Fischler e Bolles di SRI International rilasciarono l'algoritmo al pubblico per la prima volta. Con RANSAC, sono stati in grado di risolvere il problema della determinazione della posizione (LDP), che consiste nel trovare i punti nello spazio che si mappano su un'immagine come una raccolta di punti di riferimento con coordinate fisse.
RANSAC è un metodo che impiega il sottocampionamento casuale molte volte. Gli inlier sono dati la cui distribuzione può essere spiegata da un insieme di parametri del modello, anche se con un notevole rumore, mentre gli outlier sono dati che non corrispondono al modello, in base a un'ipotesi fondamentale sui dati. Esempi di fonti di valori anomali includono valori eccessivi del rumore, misurazioni errate e dati interpretati in modo errato. RANSAC implica anche l'esistenza di un processo in grado di stimare i parametri di un modello che idealmente spiega o adatta questi dati, dato un insieme (spesso limitato) di inlier.
L'adattamento bidimensionale della linea è una semplice illustrazione di questo principio. Se questa raccolta include sia gli inlier (punti che possono essere approssimativamente adattati a una linea) che gli outlier (punti che non possono essere adattati a questa linea), il metodo dei minimi quadrati per adattare le linee probabilmente risulterà in una linea che non si adatta correttamente ai dati. Il modello è abbinato in modo ottimale a tutti i punti dati, anche quelli estremi. Tuttavia, RANSAC cerca di trovare un modello lineare che non includa i valori anomali e utilizzi invece solo gli inlier nei suoi calcoli. A tale scopo, vengono utilizzati molti campioni casuali dei dati per adattare i modelli lineari e viene quindi restituito il modello che fornisce il massimo adattamento a una parte dei dati. Un sottoinsieme casuale costituito completamente da inlier avrà il miglior adattamento del modello perché è più probabile che gli inlier siano connessi linearmente rispetto a una combinazione casuale di inlier e outlier. La probabilità che l'algoritmo abbia successo dipende dalla percentuale di inlier nei dati e dalla selezione di numerosi parametri dell'algoritmo, e infatti non vi è alcuna garanzia che un sottoinsieme di inlier venga scelto in modo casuale.
Un set di dati con diversi valori anomali che richiede un'analisi di regressione lineare.
Regressione RANSAC; I valori anomali non hanno alcun effetto sulla media.
L'algoritmo RANSAC è un metodo di apprendimento basato sui dati per stimare i parametri del modello da campioni osservativi. RANSAC utilizza il metodo di voto per ottenere il risultato più adatto per un determinato set di dati i cui elementi di dati includono sia gli inlier che gli outlier. I punti dati del set di dati vengono utilizzati come schede elettorali per uno o più modelli. Questa tecnica di voto è implementata in base a due presupposti: (a) ci sono abbastanza caratteristiche per concordare su un modello decente, e (b) le caratteristiche rumorose non voteranno in modo coerente per un singolo modello (pochi valori anomali) (pochi dati mancanti). L'algoritmo RANSAC è costituito principalmente da due fasi, entrambe eseguite in modo iterativo:
Un sottoinsieme casuale del set di dati di input viene scelto per fungere da campione nella prima fase. Gli elementi di questo sottocampione vengono utilizzati per calcolare un modello di raccordo con i parametri del modello. I parametri del modello possono essere calcolati utilizzando solo i dati della cardinalità del sottocampione.
La seconda fase del processo prevede la verifica di quali parti dell'intero set di dati sono in accordo con il modello istanziato dai parametri stimati del modello. Se un'informazione non è conforme al modello entro un margine di errore predeterminato, viene classificata come valore anomalo. I punti dati al di fuori di questo intervallo sono considerati valori anomali.
Il gruppo di valori anomali utilizzato per calibrare il modello è noto come set di consenso. Fino a quando non viene formato un insieme di consenso con un numero sufficiente di valori anomali, l'algoritmo RANSAC ripeterà iterativamente i due passaggi precedenti.
I valori dei dati osservati, un modello adatto a tali osservazioni e i parametri di confidenza che indicano i valori anomali sono gli input dell'algoritmo RANSAC. L'algoritmo RANSAC raggiunge il suo scopo eseguendo iterativamente i seguenti passaggi, che vengono elaborati di seguito:
Scegli un campione dei dati originali a caso. Puoi pensare a questo gruppo come ai valori anomali fittizi.
L'insieme di valori anomali potenziali viene utilizzato come input per una procedura di modellazione.
Segue una verifica di tutti i dati rispetto al modello montato. L'insieme di consenso è il sottoinsieme di punti dati originali che minimizza la funzione di perdita per il modello stimato (ad esempio, l'insieme di inlier per il modello).
Se una percentuale sufficientemente ampia di osservazioni rientra nell'insieme di consenso, il modello stimato può essere considerato di qualità adeguata.
È possibile che la ristima del modello con i dati dell'intero set di consenso produca risultati migliori. L'affinamento dell'adattamento del modello nel tempo verrà eseguito con l'aiuto della qualità dell'adattamento, una misura di quanto bene il modello si adatta all'insieme di consenso (ad esempio, impostando questa misura come criterio di qualità dell'adattamento all'iterazione successiva).
Ogni iterazione di questo processo comporta il rifiuto di un modello perché troppo pochi punti fanno parte dell'insieme di consenso, oppure un modello rivisto con una dimensione maggiore dell'insieme di consenso rispetto all'iterazione precedente. Questo processo viene ripetuto fino a quando non viene trovato un set di parametri del modello sufficientemente valido.
Valori anomali e valori anomali in RANSAC. Questo esempio di adattamento lineare punto per punto include 7 valori anomali (punti dati che si adattano bene al modello in base ad alcuni criteri). Poiché la maggior parte dei punti dati si raggruppa attorno a una linea lineare, l'adattamento è scadente (cioè più inlier).
Di seguito è riportato uno pseudocodice che implementa l'algoritmo RANSAC di base:
Dedito:
data: un insieme di osservazioni.
model: un modello per spiegare i punti dati osservati.
n – Il numero minimo di punti dati necessari per stimare i parametri del modello.
k – Il numero massimo di iterazioni consentite nell'algoritmo.
t – Un valore di soglia per determinare i punti dati che si adattano bene al modello (inlier).
d – Il numero di punti dati vicini (inlier) necessari per affermare che il modello si adatta bene ai dati.
Ritorno:
bestFit: i parametri del modello che possono adattarsi meglio ai dati (o null se non viene trovato alcun modello valido).
iterazioni = 0
bestFit = null
bestErr = qualcosa di veramente grande // Questo parametro viene utilizzato per affinare i parametri del modello in modo che i dati si adattino al meglio man mano che le iterazioni procedono.
mentre le iterazioni < k fanno
maybeInliers := n valori selezionati in modo casuale dai dati
maybeModel := parametri del modello adattati a maybeInliers
confirmedInliers := insieme vuoto
per ogni punto nei dati do
se il punto si adatta maybeModel con un errore minore di t allora
aggiungi un punto a confirmedInliers
fine se
fine per
se il numero di elementi in confirmedInliers è > d allora
Ciò implica che potremmo aver trovato un buon modello.
Ora prova quanto è buono.
betterModel := parametri del modello adattati a tutti i punti in confirmedInliers
thisErr := una misura di quanto betterModel si adatti a questi punti
se questoErr < miglioreErr allora
bestFit := betterModel
bestErr := thisErr
fine se
fine se
Incrementa iterazioni
fine mentre
return bestFit
Lo pseudocodice, rispecchiato in Python. Inoltre, questa definizione LinearRegressor basata sui minimi quadrati, l'applicazione RANSAC e la rappresentazione grafica risultante risolvono un problema di regressione 2D:
Da Copia Importa Copia
Importa numpy come NP
Da numpy.random import default_rng
rng = default_rng()
classe RANSAC:
def __init__(self, n=10, k=100, t=0.05, d=10, model=Nessuno, loss=Nessuno, metrico=Nessuno):
se stesso.n = n # 'n': numero minimo di punti dati per stimare i parametri
se stesso.k = k # 'k': Numero massimo di iterazioni consentite
se stesso.t = t # 't': Valore di soglia per determinare se i punti sono adatti bene
se stesso.d = d # 'd': numero di punti dati vicini necessari per asserire che il modello si adatta bene
se stesso.model = model # 'model': classe che implementa 'fit' e 'predict'
se stesso.loss = loss # 'loss': funzione di 'y_true' e 'y_pred' che restituisce un vettore
se stesso.metric = metric # 'metric': funzione di 'y_true' e 'y_pred' e restituisce un float
se stesso.best_fit = Nessuno
se stesso.best_error = np.Inf
def fit(auto, X, y):
for _ in range(self.k):
ids = rng.permutazione(X.shape0])
maybe_inliers = ids[: se stesso.n
maybe_model = copia(se stesso.modello).adatta(Xmaybe_inliers], ymaybe_inliers])
soglia = (
se stesso.perdita(yids][sé.n :], maybe_model.predict(Xids][self.n :]))
< me stesso.t
)
inlier_ids = idsself.n :][np.flatnonzero(soglia).appiattire()]
se inlier_ids.taglia > sé.d:
inlier_points = np.hstack([maybe_inliers, inlier_ids])
better_model = copia(se stesso.modello).fit(Xinlier_points], yinlier_points])
this_error = sé.metrica(
yinlier_points], better_model.predict(Xinlier_points])
)
se this_error < se stesso.best_error:
se stesso.best_error = this_error
se stesso.best_fit = maybe_model
Ritorna se stesso
def prevedere(se stesso, X):
Ritorna se stesso.best_fit.prevedere(X)
def square_error_loss(y_true, y_pred):
Andata e ritorno (y_true - y_pred) ** 2
def mean_square_error(y_true, y_pred):
Ritorno NP.somma(square_error_loss(y_true, y_pred)) / y_true.forma0
classe LinearRegressor:
def __init__(auto):
se stesso.params = Nessuno
def