Monocular SLAM Corso di Robotica Prof. Davide Brugali Università degli Studi di Bergamo Structure from motion (SFM) Unknown camera viewpoints ? ? 2 Robotica - UNIBG - Prof. Brugali Calcolo delle corrispondenze Coppia coniugata: è costituita da due punti di due immagini differenti che proiettano su un piano lo stesso punto nello spazio. Si assume che sia possibile trovare nelle due immagini almeno un particolare simile. Le immagini devono essere scattate da due punti non troppo distanti. 3 Robotica - UNIBG - Prof. Brugali Calcolo delle corrispondenze Disparità: è la differenza di posizione (vettore) tra i due punti della coppia coniugata. Può essere immaginato sovrapponendo le immagini. Basarsi solo sulle similarità non è sufficiente (molteplicità). Problema delle false corrispondenze. Altri problemi: Occlusioni: alcuni particolari compaiono in una sola immagine Distorsione radiometrica: l’intensità dei punti corrispondenti nelle due immagini può essere differente. Distorsione prospettica: lo stesso oggetto assume forme diverse nelle due immagini. 4 Robotica - UNIBG - Prof. Brugali Accoppiamento feature-based Consiste nel ricercare nell’immagine delle caratteristiche salienti (feature) Esempi di feature: Spigoli (edge), Angoli, Segmenti rettilinei o curvi. Basate su operatori. Pro: rapidi ed efficienti Contro: forniscono mappe di profondità sparse che vanno interpolate. Dipendo criticamente dal descrittore della feature. Una retta può essere descrita da: lunghezza, orientamento, punto medio, contrasto medio lungo la retta. 5 Robotica - UNIBG - Prof. Brugali Algoritmo ICP L’algoritmo Iterative Closest Point opera su due point cloud M (modello) e S (scene) ed esegue iterativamente tre operazioni: 1. 2. 3. Cerca le coppie di punti corrispondenti tra M e S. Stima la trasformazione tra ogni coppia di punti. Applica la trasformazione a tutti i punti di S. M Si ricerca la trasformazione che minimizza la funzione di costo che S valuta l’errore complessivo di corrispondenza tra le coppie. L’algoritmo ha due svantaggi: La sua convergenza dipende dalla qualità della stima della trasformazione. È assicurata la convergenza ad un minimo locale, ma non globale. Non è quindi ottimo. 6 Robotica - UNIBG - Prof. Brugali Optical Flow Optical flow How to estimate pixel motion from image H to image I? • Solve pixel correspondence problem – given a pixel in H, look for nearby pixels of the same color in I Key assumptions • color constancy: a point in H looks the same in I – For grayscale images, this is brightness constancy • small motion: points do not move very far (u and v are less than 1 pixel) 8 Robotica - UNIBG - Prof. Brugali Handling large motions If the motion is much more than a pixel, use discrete search instead Given feature window W in H, find best matching window in I Solve by doing a search over a specified range of (u,v) values this (u,v) range defines the search window 9 Robotica - UNIBG - Prof. Brugali Revisiting the small motion assumption Solution: reduce the resolution ! 10 Robotica - UNIBG - Prof. Brugali Coarse-to-fine optical flow estimation u=1.25 pixels u=2.5 pixels u=5 pixels u=10 pixels image imageHH Gaussian pyramid of image H 11 image II image Gaussian pyramid of image I Robotica - UNIBG - Prof. Brugali Coarse-to-fine optical flow estimation run iterative L-K warp & upsample run iterative L-K . . . image imageHJ image II image Gaussian pyramid of image H 12 Gaussian pyramid of image I Robotica - UNIBG - Prof. Brugali Librerie per Monocular SLAM Corso di Robotica Prof. Davide Brugali Università degli Studi di Bergamo Robotica - UNIBG - Prof. Brugali Visual SLAM – Approcci all’elaborazione delle immagini METODI DIRETTI METODI BASATI SU FEATURE Acquisizione immagini Acquisizione immagini Estrazione & matching delle feature Tracciamento: Tracciamento: min. errore di riproiezione min. errore fotometrico Mappa: Mappa: Mappa sparsa punti 3D 14 Mappa di profondità semidensa Robotica - UNIBG - Prof. Brugali Librerie open source per Monocular SLAM PTAM - Parallel Tracking and Mapping novembre 2007 - Università di Oxford ORB-SLAM aprile 2015 - Università di Saragozza LSD-SLAM - Large Semi-Dense SLAM settembre 2014 - Università Tecnica di Monaco SVO - Semi-Direct Visual Odometry giugno 2014 - Università di Zurigo 15 Robotica - UNIBG - Prof. Brugali Confronto Metodi basati su feature PTAM LSD-SLAM Funzionalità 1) Tracking 2) Mapping 1) Tracking 2) Mapping 3) Loop Closure 1) Tracking 2) Mapping 3) Loop closure Mappa locale • Posizione camera • Frame associato • Piramide di immagini • Posizione camera • ORB-feature estratte dal frame • Frame associato • Mappa profondità inversa • Varianza profondità inversa Mappa globale • Insieme di punti 3D • Insieme di mappe locali • • • • • Grafo delle posizioni Inizializzazione Scena planare Caratteristiche aggiuntive 16 ORB-SLAM Insieme di punti 3D Insieme di mappe locali Grafo covisibilità Grafo essenziale SVO 1) Tracking 2) Mapping • Frame associato • Punti relativi al frame • Numero limitato di mappe locali Scena planare o non planare Scena struttura Scena planare Modulo di place recognition basato sul modello Bag of Words Tiene conto dell’incertezza sulla profondità nel tracciamento Camera rivolta verso il basso Robotica - UNIBG - Prof. Brugali Test su dataset Loop chiuso con successo Loop non identificato PTAM ATE Dimensione Mappa Globale Freiburg1 - xyz 7,5 cm Freiburg2 – desk Freiburg3-Nostructure_ texture_near_with_loop ORB-SLAM ATE Dimensione Mappa Globale ATE Dimensione Mappa Globale 73 4,0 cm 38 1,9 cm 40 / / 11,3 cm 109 2,2 cm 187 17,3 cm 204 31,3 cm 75 3,6 cm 81 DATASET 17 LSD-SLAM Robotica - UNIBG - Prof. Brugali Freiburg2-1 ORB-SLAM ATE 18 LSD-SLAM MAPPA Robotica - UNIBG - Prof. Brugali ATE MAPPA Freiburg2-2 19 Robotica - UNIBG - Prof. Brugali Freiburg2-3 20 Robotica - UNIBG - Prof. Brugali Freiburg3-1 LSD-SLAM ORB-SLAM ATE 21 MAPPA ATE Robotica - UNIBG - Prof. Brugali MAPPA Freiburg3-2 22 Robotica - UNIBG - Prof. Brugali Freiburg3-3 23 Robotica - UNIBG - Prof. Brugali Freiburg3-4 24 Robotica - UNIBG - Prof. Brugali Prove live 25 TIPOLOGIA ANGOLO DI VISIONE OTTURATOR E RISOLUZIO NE FRAME RATE Webcam stretto Progressivo 640x480 30 Kinect (camera RGB) 43° verticale 57° orizzontale Progressivo 640x480 30 Firewire Basler + obiettivo Goyo 30° orizzontale 22° verticale Globale 640x480 60 uEye Camera + obiettivo Lensagon 104° orizzontale 77° verticale Globale 752x480 90 Robotica - UNIBG - Prof. Brugali Conclusioni I metodi basati su feature offrono maggiore precisione I metodi diretti permettono di costruire una mappa semi-densa Alcune caratteristiche della camera influenzano in maniera considerevole i risultati raggiungibili Problema del calcolo della scala 26 Robotica - UNIBG - Prof. Brugali