Contents — find the section you need
Osservando un video fotogramma per fotogramma, non è intuitivamente ovvio quale parte dell'immagine si sia spostata e di quanto. Il flusso ottico rappresenta, tramite un vettore, la posizione della luminosità di ciascun pixel nel fotogramma successivo. Diventa un linguaggio comune per qualsiasi processo che implichi il movimento: previsione delle collisioni nelle auto a guida autonoma, autolocalizzazione per i droni, analisi sportiva e interpolazione video.
Riepilogo di 0,30 secondi
-
Il flusso non è "la velocità dell'oggetto stesso", ma il suo movimento apparente nell'immagine. Il movimento della telecamera, il movimento dell'oggetto e la profondità sono tutti mescolati insieme.
-
L'equazione della costanza della luminosità fornisce una sola equazione per pixel, quindi deve essere risolta aggiungendo un'ipotesi di regolarità locale, punti caratteristici o regolarizzazione.
-
Lucas-Kanade tratta una piccola finestra come una singola velocità: un metodo di tracciamento sparso. Horn-Schunck utilizza la regolarità sull'intera immagine: un metodo di stima denso.
Per grandi spostamenti è necessaria una piramide di immagini; Occlusione, riflessi e sfocatura richiedono misure di confidenza e gestione dei valori anomali. Anche il rolling shutter richiede la correzione della differenza di temporizzazione delle righe.
I metodi basati sull'apprendimento automatico, come RAFT, sono molto precisi, ma dovrebbero essere adottati solo dopo aver verificato la memoria GPU, il comportamento fuori distribuzione, le prestazioni in tempo reale e le licenze.
1. Dalla costanza di luminosità all'equazione del vincolo di flusso
Figura 1 — Una piramide gestisce prima i grandi spostamenti, poi affina un campo vettoriale denso a scale più fini. Le maschere di confidenza e di occlusione devono viaggiare con i vettori.
Se un piccolo pattern stazionario si muove tra i fotogrammi, possiamo idealizzarlo come avente luminosità costante.
Uno sviluppo di Taylor del primo ordine insieme a \Delta t\to0 fornisce
Poiché ci sono due componenti di velocità incognite (u,v) ma una sola equazione, questa da sola non può essere Risolto. Su un bordo, il movimento lungo la direzione del bordo è invisibile; in una regione piatta, non c'è alcun gradiente. Questo è il problema dell'apertura.
2. Lucas-Kanade e Horn-Schunck
L'algoritmo di Lucas-Kanade presuppone che la velocità sia la stessa in tutta una finestra locale W e minimizza il seguente errore quadratico.
Utilizza solo gli angoli in cui la matrice del gradiente è sufficientemente ben condizionata e combina questo con la stessa piramide e l'aggiornamento iterativo utilizzati nel tracciamento dei punti caratteristici (vedere la sezione precedente). calcOpticalFlowPyrLK di OpenCV è un'implementazione di questa famiglia.
L'algoritmo di Horn-Schunck tratta il campo di flusso sull'intera immagine come l'incognita e minimizza simultaneamente il vincolo di luminosità e la regolarità della velocità.
Una \alpha più grande produce un campo di flusso più uniforme; Una dimensione inferiore consente discontinuità locali. L'applicazione di un filtro di smoothing al contorno di un oggetto mescola le velocità di oggetti diversi, quindi si utilizzano invece funzioni di perdita robuste o regolarizzazioni che preservano i bordi.
3. Flusso sparso e flusso denso
| Tipo | Punti stimati | Metodi rappresentativi | Punti di forza | Punti deboli |
|---|---|---|---|---|
| Sparse | Da centinaia a migliaia di punti, ad esempio angoli | LK, KLT | Leggero, alimenta direttamente la stima della posa | Lascia spazi vuoti nelle regioni a bassa texture |
| Semi-denso | Pixel con gradiente | VO diretto, metodi basati sull'Hessiana | Bilancia le informazioni geometriche con il costo computazionale | Non riempie l'intera immagine |
| Denso | Quasi ogni pixel | Horn-Schunck, TV-L1, RAFT | Efficace per oggetti in movimento, fluidi, interpolazione | Costo computazionale, ambiguità ai bordi di occlusione |
Per l'odometria visiva, passare il flusso sparso Le corrispondenze nel calcolo geometrico tendono ad essere più stabili. D'altra parte, mascherare le regioni di pedoni in movimento o utilizzare il movimento per pixel per l'interpolazione video richiede un flusso denso. Decidere in anticipo la densità necessaria, per lo scopo prefissato, è più efficace che semplicemente aumentare la potenza della GPU.
4. Gestione di grandi spostamenti, occlusioni e variazioni di luminosità
Un'approssimazione differenziale a un pixel non è più valida in presenza di grandi spostamenti. Si costruisce una piramide gaussiana ridimensionando l'immagine a 1/2, 1/4 e 1/8 di scala; i grandi spostamenti vengono stimati a livello grossolano, quindi sovracampionati a livello fine e raffinati iterativamente. Un numero eccessivo di livelli della piramide fa scomparire gli oggetti piccoli; un numero insufficiente lascia un intervallo di ricerca inadeguato.
Quando l'illuminazione cambia, la costanza della luminosità viene meno, quindi si utilizzano invece la normalizzazione locale, la direzione del gradiente, la funzione di perdita Charbonnier robusta o la differenza di colore relativa. Al confine di un oggetto in movimento, un pixel visibile nel fotogramma precedente potrebbe essere nascosto in quello successivo (occlusione). Vengono utilizzati flag di occlusione, coerenza avanti-indietro e maschere di visibilità anziché forzare un percorso attraverso di esso.
5. Metodi basati sull'apprendimento: come leggere RAFT
RAFT (Recurrent All-Pairs Field Transforms) è noto per calcolare la correlazione tra tutte le coppie di pixel di due immagini e quindi perfezionare il flusso con un operatore di aggiornamento iterativo. Poiché può attingere a un pool di candidati di corrispondenza molto più ampio rispetto alla "finestra locale" dei metodi classici, può essere efficace in aree con texture ripetitive o in presenza di grandi spostamenti.
Tuttavia, un basso errore medio di endpoint (EPE) su un benchmark non è la stessa cosa di essere sicuro da usare su un robot reale sul campo. Se l'obiettivo della telecamera, l'esposizione, il rolling shutter, la polvere o l'illuminazione notturna differiscono dai dati di addestramento, la fiducia diminuisce. La valutazione dovrebbe includere il tempo di inferenza, la risoluzione di input, l'errore di quantizzazione, il driver GPU e la licenza del modello.
6. Separare il movimento della telecamera dagli oggetti dinamici
La conversione del flusso in movimento della telecamera richiede la telecamera intrinseca matrice K e profondità Z . Nelle coordinate normalizzate di un punto immagine \mathbf{x} , il flusso dovuto alla traslazione della telecamera \mathbf{t} e alla velocità angolare \boldsymbol{\omega} può essere concettualmente scritto come
La componente traslazionale varia con 1/Z — gli oggetti più vicini si muovono più di quelli più lontani — mentre la componente rotazionale non dipende dalla profondità. Il flusso coerente con un singolo modello di movimento, trovato tramite RANSAC, viene trattato come sfondo; le regioni con residui elevati diventano potenziali oggetti dinamici. Nelle scene con molti veicoli o pedoni, il rilevamento degli oggetti e le maschere semantiche vengono utilizzati insieme alla stima geometrica.
7. Metriche di valutazione e misurazione riproducibile
Dato il flusso di riferimento (u^*,v^*) , l'errore medio del punto finale è
Riportare non solo la media, ma anche il 95° percentile, l'errore ai bordi di occlusione, l'errore nelle regioni a bassa texture e l'errore suddiviso per velocità. Poiché è difficile ottenere la verità di base su hardware reale, in genere viene combinata da motion capture, traiettoria nota di un braccio robotico, immagini sintetiche, coerenza avanti-indietro ed errore di riproiezione VO.
I log devono conservare i timestamp della telecamera, l'esposizione, la risoluzione, i livelli della piramide, la dimensione della finestra, il numero di iterazioni, la GPU/CPU, la temperatura e la confidenza del flusso. Anche con lo stesso nome di algoritmo, i risultati non sono confrontabili se queste condizioni sono diverse.
8. Riepilogo
Il flusso ottico vincola il movimento apparente dei pixel con equazioni e lo risolve utilizzando finestre locali, uniformità dell'intera immagine, piramidi di immagini e correlazione basata sull'apprendimento. L'algoritmo LK sparso è adatto all'autolocalizzazione; il flusso denso è adatto a oggetti dinamici e video elaborazione. Considerare separatamente il movimento della telecamera rispetto al movimento dell'oggetto, l'occlusione, l'illuminazione e l'effetto rolling shutter, e valutare le condizioni di errore anziché solo l'errore medio, aiuta a evitare scelte di implementazione errate.
Il movimento dell'immagine corrisponde alla velocità fisica dell'oggetto?
Il movimento della telecamera, il movimento dell'oggetto e la profondità influenzano tutti il movimento proiettato. La conversione da pixel al secondo a metri al secondo richiede informazioni geometriche.
Riferimenti
- OpenCV — Flusso ottico
- Horn e Schunck, Determinazione del flusso ottico
- [Teed e Deng, RAFT: Trasformazioni di campo ricorrenti per tutte le coppie]( https://arxiv.org/abs/2003.12039 - Benchmark di flusso ottico di Middlebury
- Benchmark di visione KITTI
Commenti
Accedi per continuare.
Nessun dato disponibile.