🎮 Simulatore EP08_02: RANSAC — Conteggio degli Inlier
Modello: Scala ×2
Il modello candidato mappa (x,y) → in (2x,2y). Regola la soglia ε e osserva quali corrispondenze diventano inlier o outlier.
–
Il RANSAC, presentato nella sezione “Modellazione Matematica: Omografia e RANSAC”, ripete un ciclo di tre passaggi — selezionare un campione minimo, stimare un modello candidato e contare quante corrispondenze sono coerenti con esso (gli inlier) — conservando alla fine il modello più votato. La fase di stima del modello a partire da 4 punti (passo 2) coinvolge algebra lineare che esula dallo scopo di questo EP; qui ricevi direttamente un insieme di omografie già candidate — come se ciascuna fosse stata stimata da un campione casuale diverso — e sei incaricato di riprodurre esattamente il passo decisivo dell’algoritmo: applicare ogni modello a tutte le corrispondenze e contare i suoi inlier, scegliendo il vincitore.
Modello k: I inliers. Alla fine, stampare Modello migliore: k_best con I_best inliers.| Elemento | Ruolo nel RANSAC |
|---|---|
| Campione minimo (4 coppie) | Sufficiente per determinare gli 8 gradi di libertà di un’omografia |
| Modello candidato \(H_k\) | Stimato da un campione minimo; può essere buono o cattivo, a seconda che il campione contenesse outlier |
| Errore di riproiezione | Misura quanto bene il modello “prevede” ogni corrispondenza osservata |
| Inlier vs. outlier | Corrispondenze coerenti con il modello vincitore (inlier) vs. le altre, tipicamente corrispondenze errate del matching |
| Rifinitura finale | In pratica, dopo aver scelto il modello migliore, il RANSAC lo ricalcola usando solo i suoi inlier — passo non richiesto in questo EP |
Input:
Output:
Modello k: I inliers.Modello migliore: k_best con I_best inliers.| Input | Output | Osservazione |
|---|---|---|
| 5 0 0 0 0 1 1 2 2 2 0 4 0 0 2 0 4 5 5 1 1 2 0.5 2 0 0 0 2 0 0 0 1 1 0 0 0 1 0 0 0 1 |
Modello 0: 4 inliers Modello 1: 1 inliers Modello migliore: 0 con 4 inliers |
Il Modello 0 (scala ×2) spiega correttamente 4 delle 5 corrispondenze; la 5ª, \((5,5)\to(1,1)\), è un outlier che nessuno dei due modelli spiega bene. |
%%writefile EP08_02.py
# Codice PythonOverwriting EP08_02.py
TestSuite("EP08_02.py").run()✔️ EP08_02.cases esiste già in casos/
📋 6 caso/i caricato/i da casos/EP08_02.cases
🔍 Test di Python: EP08_02.py
⚠️ EP08_02.py: file vuoto (meno di 3 righe). Test saltati.