Contents — find the section you need
Camminando con una telecamera in mano, nella sequenza di immagini l'angolo di un muro o un cartello si sposta leggermente alla volta. Un accelerometro e un giroscopio, nel frattempo, misurano ad alta frequenza l'accelerazione e la rotazione del dispositivo nello stesso intervallo. L'odometria visiva (VO) stima la posizione, la velocità e l'assetto relativi fino al momento presente a partire dalla prima; l'odometria visuo-inerziale (VIO) le stima a partire da entrambe. È una tecnologia fondamentale per i droni che volano in ambienti interni, i visori AR/VR, gli scanner 3D portatili e i robot mobili.
La VO/VIO viene talvolta considerata sinonimo di SLAM, ma i ruoli differiscono in parte. L'odometria è una fase iniziale che produce una traiettoria relativa fluida a breve termine, e il suo errore, in linea di principio, si accumula. Lo SLAM utilizza una mappa, il riconoscimento del luogo e la chiusura del ciclo per correggere globalmente l'errore accumulato. Questo articolo si concentra meno sul quadro generale della mappatura e più su come il movimento viene integrato fotogramma per fotogramma, come viene fuso il sensore IMU e quando è opportuno dubitare della stima.
Esempio di telecamera per veicoli
Esempio di IMU GNSS/INSImmagini: Car telecamera per finestrino del sistema Mobileye (Ranbar, CC BY-SA 4.0) / Xsens MTi-G (Kallap85, CC BY-SA 4.0), Wikimedia Commons. Sensori rappresentativi, non una combinazione di prodotti VO/VIO obbligatoria.
0. Riepilogo di 30 secondi
- Il VO stima sequenzialmente il movimento della telecamera a partire dalle corrispondenze tra immagini o dalle variazioni nell'aspetto dei pixel. Il VO monoculare non può osservare la scala assoluta della traslazione e l'errore si accumula nel tempo. Stereo, RGB-D, dimensioni note dell'oggetto, sensori inerziali e ruote forniscono tutti la scala.
Il VIO fonde le osservazioni a bassa frequenza e resistenti alla deriva della telecamera con le osservazioni ad alta frequenza dell'IMU, che sono accurate su brevi intervalli ma soggette a deriva a causa del bias. Il giroscopio fornisce la rotazione; l'accelerometro integra l'indizio che separa la gravità dall'accelerazione.
La preintegrazione dell'IMU comprime i numerosi campioni dell'IMU tra i keyframe dell'immagine in un singolo vincolo rilinearizzabile tramite bias. Questo è ciò che rende l'ottimizzazione a finestra scorrevole computazionalmente gestibile.
-
L'inizializzazione è la parte più difficile. Senza una parallasse sufficiente, l'eccitazione che include rotazione, stima del bias in posizione statica, sincronizzazione temporale tra telecamera e IMU e calibrazione estrinseca, scala, gravità, velocità e bias non possono essere disaccoppiati.
-
La valutazione dovrebbe riportare non solo l'errore medio, ma anche ATE/RPE, deriva per intervallo, tasso di errore, latenza, utilizzo di CPU/GPU e se la traiettoria ha utilizzato una rilocalizzazione. Texture di bassa qualità, oggetti dinamici, motion blur, rolling shutter, urti e offset di sincronizzazione sono le classiche condizioni di errore.
1. Cosa stima VO e cosa non stima
Scrive la posa del frame della telecamera o dell'IMU B rispetto al frame del mondo W al tempo k come posizione \mathbf{p}_{WB,k} e rotazione R_{WB,k}. L'output principale di VO è la trasformazione relativa tra fotogrammi o keyframe adiacenti.
Nei metodi di feature tracking, la matrice essenziale viene stimata dai punti corrispondenti tramite RANSAC, e da essa vengono ricavate la direzione di rotazione e traslazione. Nei metodi stereo/RGB-D/basati su mappe che dispongono già di punti 3D, viene utilizzato PnP sulle corrispondenze 2D-3D. In VO diretto, anziché abbinare descrittori espliciti, la posa viene ottimizzata in modo che i valori dei pixel corretti per l'esposizione coincidano nella loro posizione proiettata.
Qualunque sia il metodo utilizzato, VO è una forma di navigazione inerziale che integra "quanto mi sono spostato dall'ultimo fotogramma". Senza una mappa esterna o la chiusura del ciclo, anche un piccolo errore nella posa relativa non scompare mai. L'errore di posizione generalmente aumenta con il tempo e la distanza percorsa, e anche se si cammina avanti e indietro lungo un lungo corridoio e si torna al punto di partenza, la traiettoria non si chiuderà. Non si tratta solo di un errore di implementazione, ma di una caratteristica intrinseca di un problema che accumula osservazioni locali in modo sequenziale.
Il problema della scala monoculare
Una corrispondenza monoculare calibrata a due viste vincola E=[\mathbf{t}]_\times R, ma non determina la lunghezza di \mathbf{t}. Questo perché scalando ogni punto 3D e traslando di s>0 le proiezioni dell'immagine rimangono invariate. Una posa VO monoculare può sembrare accurata mentre l'unità di posizione è arbitraria e, se la scala oscilla da un fotogramma all'altro, anche la forma della traiettoria si deteriora.
Con un rig stereo di base nota B, la profondità può essere recuperata dalla disparità d come Z=fB/d. RGB-D conferisce alla profondità del sensore una scala fissa. In VIO, poiché l'accelerazione è misurata in unità di m/s² e la L'intensità della gravità è vicina a quella nota e un'eccitazione del movimento sufficiente permette di allineare la scala arbitraria del sistema visivo alla scala fisica. Tuttavia, il semplice collegamento di un'IMU non produce automaticamente la scala: in condizioni di stazionarietà, movimento a velocità costante, intervallo di tempo troppo breve o con un offset temporale errato, scala e bias si confondono.
2. Osservazioni della telecamera: metodi basati su caratteristiche e metodi diretti
Le osservazioni della telecamera basate su caratteristiche utilizzano corrispondenze tracciate con ORB, SIFT, FAST+KLT e metodi simili. Per l'osservazione 2D di un nuovo frame \mathbf{z}_{ij} e il punto di riferimento \mathbf{P}_j, il residuo di proiezione è
dove \pi([X,Y,Z]^\mathsf{T})=(X/Z,Y/Z)^\mathsf{T} è la divisione prospettica. RANSAC rimuove le discrepanze e una funzione di perdita Huber o simile impedisce che i valori anomali rimanenti vengano sovrastimati. I metodi basati su caratteristiche sono relativamente robusti all'esposizione I metodi diretti minimizzano il residuo di luminosità dei pixel corrispondenti o di piccole patch. Con i parametri di esposizione a_i,b_i, il residuo in un punto \mathbf{u} può essere scritto approssimativamente come
Questo metodo può sfruttare molti pixel con texture, ma è sensibile all'ipotesi di costanza della luminosità, al rolling shutter, alla sfocatura, all'esposizione automatica e ai riflessi. I metodi semi-diretti adottano una via di mezzo: pixel per il tracciamento approssimativo, caratteristiche per la fase successiva.
| Metodo | Osservazione primaria | Punti di forza | Punti deboli | Esempi rappresentativi |
|---|---|---|---|---|
VO basata su caratteristiche | Riproiezione dei punti chiave | Facile da spiegare, relativamente robusto alle variazioni di illuminazione | Texture bassa, caratteristiche ripetitive | Famiglia ORB-SLAM, VINS-Mono |
| Diretto / Semi-diretto | Luminosità pixel/patch | Informazioni dense, Tracciamento sub-pixel | Variazione di esposizione, sfocatura, riflessi | DSO, SVO |
VIO monoculare | Immagine + IMU | Leggero, la scala diventa osservabile | Sensibile all'inizializzazione/sincronizzazione | VINS-Mono, OpenVINS |
VIO stereo | Immagine sinistra/destra + IMU | Scala immediata, inizializzazione stabile | Consumo energetico, sincronizzazione/calibrazione sinistra-destra | VINS-Fusion, Basalt |
3. Cosa misura l'IMU e perché non è possibile integrarla direttamente
Un'IMU fornisce in output la velocità angolare del giroscopio \tilde{\boldsymbol\omega} e la forza specifica dell'accelerometro \tilde{\mathbf{a}}. Questi non sono valori ideali: includono il bias \mathbf{b}_g,\mathbf{b}_a e il rumore bianco \mathbf{n}_g,\mathbf{n}_a.
L'aspetto importante Il punto è che l'accelerometro non misura direttamente l'accelerazione del mondo, bensì la forza specifica, con la gravità già sottratta. Senza conoscere l'orientamento, non si sa in quale direzione aggiungere nuovamente la gravità, e la doppia integrazione anche di un piccolo errore di bias provoca una rapida deriva della posizione. Le equazioni del moto a tempo continuo sono:
Considerando solo l'errore dopo un secondo, un IMU sembra fluido ed eccellente, ma dopo minuti di navigazione senza assistenza, l'errore di bias e di orientamento compromettono gravemente la posizione. L'essenza del VIO è che le immagini correggono la deriva a lungo termine dell'IMU, mentre l'IMU colma i brevi intervalli di movimento e rotazione in cui le immagini sono scarse.
4. Preintegrazione IMU: Compressione del movimento tra i keyframe
Una configurazione tipica prevede che la telecamera funzioni a 20-60 Hz e l'IMU a 100-1000 Hz. Tra i keyframe i e j possono esserci da decine a centinaia di misurazioni IMU. Reintegrare ogni campione ogni volta che l'ottimizzatore modifica la posa o il bias sarebbe dispendioso. La preintegrazione IMU di Forster et al. precalcola la rotazione relativa, la variazione di velocità e la variazione di posizione attorno a un dato bias del punto di linearizzazione, e conserva anche le matrici jacobiane e la covarianza.
Scrivendo le quantità con la gravità e la velocità spaziale rimosse come \Delta R_{ij},\Delta\mathbf{v}_{ij},\Delta\mathbf{p}_{ij}, la previsione è approssimativamente:
Quando il bias viene aggiornato, viene applicata una correzione del primo ordine utilizzando il valore memorizzato di \partial\Delta/\partial\mathbf{b}, e la reintegrazione completa avviene solo quando la variazione è grande. La rotazione non viene sommata come un semplice vettore, ma composta sulla varietà SO(3) tramite la mappa esponenziale. o con i quaternioni. L'utilizzo di una covarianza \Sigma_{ij} consente di ponderare correttamente un IMU rumoroso e un residuo preciso della telecamera all'interno della stessa funzione obiettivo.
La funzione obiettivo rappresentativa per VIO a finestra scorrevole è:
L'insieme di stati \mathcal X include, per ogni keyframe, la posa, la posizione, la velocità, i bias del giroscopio/accelerometro, la profondità inversa dei punti di riferimento e, ove necessario, l'offset temporale o i parametri estrinseci. Gli stati precedenti vengono marginalizzati in un prior, mantenendo il costo computazionale limitato. Poiché la marginalizzazione dipende dal punto di linearizzazione, l'aggiornamento ripetuto dello stato di una grande quantità tende a compromettere la coerenza. Tecniche come il Jacobiano di Prima Stima (FEJ) non sono solo un'ottimizzazione della velocità: esistono per impedire al sistema di "osservare" erroneamente gradi di libertà che in realtà non sono osservabili.
5. Basato su filtri vs. Ottimizzazione basata su ottimizzazione
VIO si suddivide in linea generale in famiglie di filtri di Kalman estesi a stato di errore (EKF) e famiglie di ottimizzazione non lineare a lunghezza fissa. Le prime aggiornano sequenzialmente lo stato corrente e la covarianza, tendendo a ridurre latenza e memoria. MSCKF non mantiene i punti caratteristici come stato a lungo termine; li marginalizza invece come vincoli multivista, il che lo rende leggero. OpenVINS implementa questa famiglia con particolare attenzione alla riproducibilità e all'estensibilità.
Le seconde ottimizzano congiuntamente più keyframe e punti di riferimento. VINS-Mono è un esempio rappresentativo che include il tracciamento dei punti caratteristici, la preintegrazione dell'IMU, una finestra scorrevole e la chiusura del ciclo. Distribuire l'errore di riproiezione su più frame spesso offre un vantaggio in termini di precisione, ma la marginalizzazione, il risolutore, la latenza e il recupero da un'inizializzazione fallita devono essere progettati con cura.
| Aspetto | Famiglia EKF/MSCKF | Famiglia di ottimizzazione a finestra scorrevole |
|---|---|---|
Forma di stima | Aggiornamento sequenziale dello stato e della covarianza | Minimizzazione iterativa di un grafo fattoriale su più intervalli di tempo |
Calcolo/latenza | Prevedibile, facile da mantenere a bassa latenza | Dipende dal numero di keyframe e iterazioni |
Gestione delle caratteristiche | Facile da marginalizzare come vincoli di osservazione | Facile mantenere la profondità inversa ecc. come stato esplicito |
Punti di forza | Ottimo per sistemi embedded, facile gestione della covarianza | Più facile mantenere la riproiezione sostanzialmente coerente |
Avvertenze | Linearizzazione e coerenza, osservabilità | Errore di marginalizzazione, carico della CPU, rilinearizzazione |
Nessuno dei due è universalmente migliore. La scelta deve basarsi sulla latenza richiesta, la frequenza del sensore, il budget della CPU, il campo visivo, l'ambiente operativo e la capacità di manutenzione. Confrontare solo l'errore di traiettoria riportato in un articolo, ignorando il modello della telecamera, la calibrazione, il movimento del dataset e l'eventuale utilizzo della rilocalizzazione, è un buon modo per fare una scelta di implementazione errata.
6. Inizializzazione: cosa deve essere determinato Nei primi secondi
Nel momento in cui VIO si avvia, l'orientamento del mondo, la velocità iniziale, il bias del giroscopio, il bias dell'accelerometro, la gravità, la scala monoculare e la posizione relativa tra telecamera e IMU sono tutti indeterminati. Il flusso tipico consiste nel costruire una struttura relativa a due viste/più viste a partire dalle sole immagini, quindi allineare quel movimento visivo con l'integrazione dell'IMU per calcolare velocità, direzione della gravità, scala e bias.
Un intervallo stazionario fornisce una stima iniziale del bias del giroscopio dalla lettura media del giroscopio e un indizio sulla direzione della gravità dalla direzione media dell'accelerazione. Ma un accelerometro non può distinguere l'accelerazione lineare di un veicolo dalla gravità. Includere "eccitazione" durante l'inizializzazione - ruotando e traslando lungo più assi, non solo spostando lentamente il dispositivo avanti e indietro - aiuta a districare la correlazione tra scala e bias. Al contrario, iniziare con il dispositivo quasi stazionario su una scrivania, muovendolo a velocità costante in una direzione o vedendo solo un piano, tende a lasciare il sistema Sotto-osservato.
Valutare il successo dell'inizializzazione non si limita alla convergenza dell'ottimizzatore. Verificare che la scala stimata sia positiva e ragionevole, che l'entità della gravità sia vicina a circa 9.81\,\mathrm{m/s^2}, che il bias non sia eccessivamente al di fuori delle specifiche del sensore e che i punti triangolati iniziali abbiano una parallasse sufficiente e un'elevata frazione di profondità positiva. Piuttosto che mantenere uno stato errato dopo un errore, reimpostare le tracce dell'immagine e il buffer dell'IMU e reinizializzare tende ad essere meno dannoso in seguito.
7. Calibrazione e sincronizzazione temporale
Ciò che determina le prestazioni di VIO non è tanto il nome dell'algoritmo quanto la correttezza del modello del sensore. Come minimo, sono necessarie tre calibrazioni.
-
Calibrazione intrinseca della telecamera: lunghezza focale, punto principale, modello di distorsione. Se l'immagine viene ridimensionata o ritagliata, anche K deve cambiare.
-
Calibrazione estrinseca: la trasformazione rigida T_{BC} tra la telecamera e l'IMU. Un errore di rotazione di pochi gradi, o un errore del braccio di leva di pochi centimetri, ha un grande effetto in caso di movimento rapido.
-
Calibrazione temporale: l'offset tra il tempo di esposizione dell'immagine e il tempo dell'IMU e, se necessario, il tempo di lettura della telecamera. Orologi separati, buffer e timestamp del driver possono lasciare un offset residuo di diversi millisecondi.
Kalibr è uno strumento ampiamente utilizzato per stimare l'offset temporale e i parametri estrinseci tra la telecamera e l'IMU. Tuttavia, considerare un valore ottenuto una sola volta come permanente è rischioso: una modifica della messa a fuoco, il rimontaggio dell'alloggiamento, la temperatura o la gestione del tempo del firmware nel sensore possono alterare queste condizioni. Piuttosto che copiare semplicemente i valori tipici da un datasheet, verificare la densità di rumore dell'IMU e il random walk del bias con qualcosa come la varianza di Allan aiuta a evitare di fidarsi eccessivamente del filtro.
Una telecamera rolling shutter non cattura un singolo fotogramma in un singolo istante. In caso di rotazione rapida, le righe superiore e inferiore vengono osservate in posizioni diverse e un Residuo di riproiezione che presuppone che un otturatore globale sia sistematicamente disattivato. Una breve esposizione con un otturatore globale è la soluzione più affidabile; in caso contrario, si consideri un modello di osservazione che includa la temporizzazione delle righe, insieme alla compensazione dell'IMU. Quando si aggiungono telecamere sinistra/destra o un sensore di profondità, è preferibile la sincronizzazione attivata dall'hardware.
8. Scelta di un'implementazione: VINS-Mono, OpenVINS e sistemi correlati
VINS-Mono è un'implementazione VIO basata sull'ottimizzazione ampiamente citata per una telecamera monoculare più IMU. Include calibrazione estrinseca e di offset temporale online, tracciamento delle caratteristiche, preintegrazione, una finestra scorrevole e chiusura del ciclo. Il suo valore non sta solo nell'output di una posa, ma nel fatto che l'intera configurazione è leggibile per scopi di ricerca. VINS-Fusion è un candidato quando si desidera combinare stereo o GPS.
OpenVINS è un'implementazione aperta incentrata sulla famiglia MSCKF/EKF, progettata con FEJ e coerenza esplicitate. È adatta a situazioni in cui si desidera verificare come un VIO basato su filtri gestisce lo stato, covarianza e calibrazione. Basalt fornisce VIO stereo con un backend di ottimizzazione ad alte prestazioni e viene testato su dataset come EuRoC. Su smartphone e in AR, l'utilizzo del VIO integrato nella piattaforma è spesso più realistico per un'applicazione, poiché ha accesso alla temporizzazione della fotocamera, alla temporizzazione dell'IMU e alla calibrazione specifica del dispositivo.
| Implementazione/famiglia | Stile di stima | Esempio di configurazione del sensore | Adatto per | Aspetti da verificare prima dell'adozione |
|---|---|---|---|---|
| VINS-Mono | Ottimizzazione, finestra fissa | Monoculare + IMU | Apprendimento della struttura generale di VIO, prototipazione per la ricerca | Generazione ROS, formato di calibrazione, condizioni di inizializzazione |
| VINS-Fusion | Ottimizzazione, finestra fissa | Monoculare/stereo + IMU, GPS opzionale | Prototipazione multisensore | Sistemi di coordinate e ponderazione delle osservazioni assolute |
| OpenVINS | EKF/MSCKF | Monoculare/stereo + IMU | Apprendimento integrato, verifica del filtro | Valori di rumore, FEJ, progettazione dello stato |
| Basalt | Ottimizzazione | Stereo + IMU | Backend VIO ad alte prestazioni | Ambiente di compilazione, modello della telecamera |
| OpenCV personalizzato + Ceres | Arbitrario | Arbitrario | Lavoro specifico per i requisiti, apprendimento | Verifica della riproiezione, preintegrazione, marginalizzazione |
Quando si confrontano implementazioni esistenti, non considerare una traiettoria visualizzata in una demo come un successo. Verificare su hardware reale: risoluzione e frequenza effettiva dell'immagine di input, unità e convenzione degli assi dell'IMU, riferimento temporale, calibrazione estrinseca, comportamento in caso di errore di inizializzazione, rilocalizzazione dopo la perdita di tracciamento, utilizzo della CPU, memoria e licenza. In particolare, se il timestamp di un messaggio ROS viene riempito con "tempo di ricezione", l'estimatore riceve un ordine che sembra corretto ma intervalli di tempo fisicamente errati.
9. Un flusso di elaborazione minimo
-
Calibrare la telecamera 1. Intrinsicamente/estrinsecamente e nel tempo, e bufferizza immagini e dati IMU su una base temporale comune.
-
Ad ogni arrivo IMU, prevedi lo stato utilizzando la velocità angolare corretta per il bias e la forza specifica, e aggiorna la covarianza o la preintegrazione.
-
Ad ogni arrivo di immagine, traccia le caratteristiche dal frame/keyframe precedente e rimuovi gli outlier con controlli avanti-indietro, RANSAC e maschere.
-
Prima dell'inizializzazione, valuta la parallasse e l'eccitazione e allinea la struttura visiva con i dati inerziali. Ritarda l'avvio se le condizioni sono sfavorevoli.
-
Dopo l'inizializzazione, fonde il residuo della riproiezione visiva con il residuo IMU, aggiornando posa, posizione, velocità, bias e punti.
-
Marginalizza i vecchi keyframe e scarta le osservazioni che non superano un controllo di qualità. Passa alla rilocalizzazione o a un reset sicuro se necessario.
In questo flusso, la distinzione tra predire e correggere è importante. Anche se le immagini vengono temporaneamente perse, la predizione IMU può continuare a produrre output, ma il suo L'incertezza è in aumento. Invece di una semplice risposta binaria "posizione disponibile/non disponibile", l'applicazione dovrebbe ricevere lo stato di tracciamento, un punteggio di covarianza o di qualità e il tempo trascorso dall'ultimo aggiornamento visivo, e utilizzarli per commutare progressivamente la visualizzazione AR, controllare la velocità e attivare i punti di arresto di sicurezza.
10. Metriche di valutazione: cosa misurare per un confronto equo
L'errore assoluto di traiettoria (ATE) è la differenza tra la sequenza di posizioni stimata e la verità di base dopo l'allineamento con una trasformazione rigida o Sim(3).
Poiché la VO monoculare ha una scala indeterminata, è sempre necessario specificare se anche l'allineamento Sim(3) corrisponde alla scala. Se si desidera effettivamente visualizzare l'errore di scala in VIO o stereo, l'allineamento Sim(3) nasconderà proprio tale errore. La scelta tra un allineamento SE(3), l'allineamento della sola posa iniziale o il confronto di traiettorie non allineate deve essere effettuata in base allo scopo.
L'errore relativo di posa (RPE) misura la deriva locale su un intervallo di tempo o distanza fisso. \Delta . Dalla differenza tra la trasformazione relativa stimata \hat T_{k,k+\Delta} e la verità a terra T^{\mathrm{gt}}_{k,k+\Delta} ,
vengono calcolati l'errore di traslazione (m/m o %) e l'errore di rotazione (gradi/m, gradi/s). Anche se l'errore di traslazione (ATE) su lunghe distanze è piccolo, una traiettoria non è adatta per la realtà aumentata o il controllo di volo se il jitter a breve termine è elevato. Viceversa, una traiettoria liscia ma soggetta a deriva su lunghe distanze è sfavorevole per la mappatura.
| Metrica | Cosa indica principalmente | Insidia |
|---|---|---|
| ATE RMSE/mediana | Coerenza posizionale complessiva della traiettoria | Il valore varia molto a seconda del metodo di allineamento |
| RPE (distanza/intervallo di tempo) | Deriva locale, effetto sul controllo | Non confrontabile a meno che non venga specificata la lunghezza dell'intervallo |
Errore di rotazione | Qualità del giroscopio/orientamento visivo | La combinazione di imbardata e rollio/beccheggio ne maschera la causa |
Errore di scala | Scala fisica del VIO monoculare/stereo | Non valutabile dopo l'allineamento Sim(3) |
Frequenza di tracciamento / tasso di errore | Disponibilità nel mondo reale | Non nascondere la reinizializzazione automatica dopo un errore |
Latenza / CPU / consumo energetico | Fattibilità di un'implementazione embedded | Non valutabile solo tramite elaborazione offline |
EuRoC MAV, TUM VI, UZH-FPV e KITTI sono dataset pubblici comunemente utilizzati per il confronto. Tuttavia, le telecamere portatili per interni, le configurazioni montate su veicoli e i droni da corsa differiscono per campo visivo, illuminazione, velocità, vibrazioni ed esposizione. Invece di importare una classifica di benchmark direttamente sull'hardware reale, è consigliabile effettuare la valutazione su un percorso, una velocità e una condizione di errore simili a quelle dei propri log. Anche sul campo, dove non è possibile acquisire dati reali, è possibile effettuare un audit confrontando il gap iniziale/finale di un circuito chiuso, distanze note, riproiezione di pareti o una sezione parziale coperta. tramite motion capture esterno.
11. Condizioni di errore rappresentative e contromisure
Texture scarsa, oscurità, sfocatura
Una parete bianca, un corridoio buio, la retroilluminazione o una curva stretta lasciano un gradiente insufficiente nel residuo visivo. Allentare la soglia RANSAC quando ci sono pochi punti caratteristici non fa altro che aumentare le discrepanze. Le contromisure includono una progettazione dell'illuminazione/del sensore che riduca il tempo di esposizione, l'utilizzo di un grandangolo o di una ripresa stereoscopica, il ri-rilevamento dei punti caratteristici e la notifica all'utente dell'aumento dell'incertezza prevista.
Oggetti dinamici e riflessi
VIO presuppone che la maggior parte dei punti dell'immagine appartenga allo sfondo statico. Folle, un veicolo in testa nel traffico, specchi, vetro e superfici d'acqua infrangono questa ipotesi. La perdita robusta e RANSAC da soli non possono risolvere un caso in cui lo sfondo risulta essere minoritario. Ciò che serve è escludere la regione semantica degli oggetti in movimento, separare i movimenti multipli con profondità o flusso e una progettazione che dia priorità agli oggetti fissi.
Saturazione dell'IMU, vibrazioni, deriva termica
Le vibrazioni del motore nei droni e nei piccoli robot iniettano un forte rumore a banda limitata nell'accelerometro e gli urti possono saturarne la gamma. Impostare il rumore del filtro su un valore troppo basso e fare eccessivo affidamento sull'IMU può causare il rifiuto delle correzioni dell'immagine e la divergenza. Utilizzare l'isolamento dalle vibrazioni, un'appropriata limitazione di banda, flag di saturazione, un modello di bias che includa la temperatura e parametri di rumore misurati. Attenzione anche a non smussare eccessivamente i dati grezzi dell'IMU, che comporta la perdita di accelerazioni brevi.
Offset temporale e confusione tra i sistemi di coordinate
Un offset temporale di 5 ms corrisponde a una grande differenza di campo visivo durante una rotazione rapida. Specificare chiaramente se i timestamp dell'immagine si riferiscono all'inizio dell'esposizione, al punto intermedio dell'esposizione o all'ora di ricezione, e se i timestamp dell'IMU si riferiscono all'ora di campionamento o all'ora di arrivo. Confondere le convenzioni per destrorsi e mancini, il segno di gravità, T_{BC} rispetto a T_{CB} o la direzione dell'asse ottico della telecamera può portare a una convergenza numerica dell'ottimizzazione, ma a un errore fisico. Preparare test unitari utilizzando un test stazionario, una rotazione nota di 90 gradi e un breve movimento in linea retta.
Confondere l'inizializzazione con la rilocalizzazione
L'inizializzazione consiste nell'avviare una stima da uno stato senza mappa o scala; la rilocalizzazione consiste nel tornare a una mappa nota o a un keyframe precedente. In genere, i sistemi VO/VIO puri riavviano l'algoritmo in un nuovo sistema di coordinate locale ogni volta che si perde il tracciamento. Non confondere la capacità di rilocalizzazione dello SLAM a chiusura di ciclo con le prestazioni di deriva grezze del VO durante la valutazione. In un prodotto, decidere esplicitamente se continuare a utilizzare il vecchio sistema di coordinate dopo la perdita di tracciamento, interrompere l'algoritmo in sicurezza o invalidare l'ancora.
12. Direzioni recenti
Negli ultimi anni, la stima di caratteristiche e corrispondenze basata sull'apprendimento, come SuperPoint, LightGlue e LoFTR, si è dimostrata, in alcuni casi, efficace contro i cambiamenti di aspetto difficili da gestire per i descrittori locali classici. Sono emersi anche approcci che combinano una rete neurale profonda con l'ottimizzazione geometrica iterativa, come DROID-SLAM. Tuttavia, anche quando un modello appreso restituisce molte corrispondenze, l'ambiguità di scala, la degenerazione planare, la sincronizzazione temporale e il bias dell'IMU rimangono problemi fisici. Un progetto che verifica l'output appreso rispetto a una geometria robusta, all'errore di riproiezione e alla coerenza inerziale rimane l'approccio fondamentale.
Le event camera, con la loro elevata velocità e l'ampia gamma dinamica, hanno il potenziale per coprire condizioni in cui una telecamera convenzionale ha difficoltà con la sfocatura o l'oscurità. Anche la stima multimodale che integra LiDAR, UWB, GNSS o odometria delle ruote nel VIO sta diventando praticabile, come contromisura per la deriva a lungo termine e gli ambienti difficili. Aggiungere più sensori non migliora automaticamente le prestazioni: fattori estrinseci, temporizzazione, rilevamento dei guasti e regolazione dei pesi diventano tutti nuove potenziali superfici di errore.
13. Riepilogo
La VO è una tecnica di odometria utile per recuperare il movimento relativo a breve termine dalle immagini, ma la VO monoculare non ha una scala e l'errore locale si accumula. La VIO combina il vincolo di movimento ad alta frequenza dell'IMU con la correzione a lungo termine della telecamera, stimando simultaneamente scala, posa, velocità e bias. Il suo nucleo è un modello corretto del sensore, la preintegrazione dell'IMU, l'inizializzazione utilizzando un'eccitazione di movimento sufficiente e una robusta fusione dei residui visivi e inerziali.
In pratica, verificare prima la calibrazione, la temporizzazione e i frame di coordinate, quindi convertire parallasse, distribuzione degli inlier, errore di riproiezione, bias, gravità e stato di tracciamento in log osservabili. VINS-Mono e OpenVINS sono ottimi punti di partenza, ma devono essere valutati in base alle condizioni di acquisizione, alla latenza, alla politica di reinizializzazione e ai requisiti di sicurezza. In definitiva, ciò di cui ci si dovrebbe fidare non è la qualità apparente della traiettoria, ma un progetto in grado di spiegare in quali condizioni scala e posizione sono osservabili e in quali condizioni l'incertezza aumenta.
L'aggiunta di un'IMU stabilizza sempre la scala?
L'osservabilità dipende dal movimento.
Un'eccitazione insufficiente o un errore di calibrazione possono rendere la stima instabile nonostante il sensore aggiuntivo.Riferimenti (Fonti primarie e documentazione ufficiale)
- Scaramuzza & Fraundorfer, Visual Odometry: Part I (IEEE Robotics & Automation Magazine, 2011)
- Forster et al., On-Manifold Preintegration for Real-Time Visual-Inertial Odometry (IEEE TRO, 2017)
- Qin, Li & Shen, VINS-Mono: A Robust and Versatile Monocular Visual-Inertial State Estimator (IEEE TRO, 2018)
- Geneva et al., OpenVINS: A Research Platform for Visual-Inertial Stima (ICRA 2020)
- Documentazione ufficiale OpenVINS
- Repository ufficiale VINS-Mono
- Repository ufficiale Kalibr
- Dataset EuRoC MAV (ETH Zurigo)
- Benchmark TUM VI
- Articolo DROID-SLAM (NeurIPS 2021)
Commenti
Accedi per continuare.
Nessun dato disponibile.