Combinare object tracking e motion tracking
Questo articolo descrive come fondere il 3D object tracking con il motion tracking del dispositivo per migliorare stabilità del tracking ed esperienza utente in scenari complessi.
Principio di base
Motion Fusion combina i dati di posa del 3D object tracking e del motion tracking del dispositivo per ottenere una stima della posa più robusta.
Sincronizzazione e complementarità dei dati
- Visual tracking: calcola la posa del frame corrente (posizione + rotazione) tramite corrispondenza dei punti caratteristici dell'immagine, ma è facilmente influenzato da occlusione, sfocatura o movimento rapido.
- Motion tracking: usa l'output ad alta frequenza dei sensori IMU e l'output dell'immagine visiva per ottenere dati di movimento del dispositivo, ma può presentare errori di deriva cumulativa.
- Motion Fusion:
- Allinea i sistemi di coordinate della posa di visual tracking e della posa di motion tracking del dispositivo.
- Quando l'oggetto target è chiaramente visibile e si muove in modo stabile, domina il visual tracking; la sua posa viene inviata continuamente al modulo di fusion per ridurre la deriva cumulativa.
- Quando l'oggetto target viene perso, occupa una porzione troppo piccola del frame o si muove rapidamente, il visual tracking fallisce e domina il motion tracking.
Punti tecnici chiave
- Allineamento timestamp: allinea i timestamp dei frame visivi con i dati di motion tracking per evitare jitter dovuto alla latenza.
- Allineamento del sistema di coordinate: allinea i sistemi di coordinate in base alla traiettoria di visual tracking e alla traiettoria di motion tracking.
- Rilocalizzazione: quando l'oggetto target riappare, il visual tracking prende il controllo e corregge rapidamente gli errori cumulativi.
Scenari applicabili e limitazioni
Motion Fusion non è adatto a tutti gli scenari. Motion Fusion non è applicabile in uno dei seguenti casi:
- Il dispositivo target non supporta funzioni di motion tracking come ARCore/ARKit. Per l'elenco dettagliato dei dispositivi supportati, vedere Supporto dispositivi motion tracking.
- L'oggetto target è dinamico nella scena, ad esempio un giocattolo o una figure tenuta in mano.
Negli altri scenari, Motion Fusion migliora notevolmente l'esperienza del 3D object tracking.
- Movimento rapido: il movimento rapido del dispositivo può causare motion blur e far fallire il visual tracking.
- Il target scompare: il contenuto virtuale dell'intera scena può continuare a essere visualizzato quando la vista lascia il target o il target viene occluso.
- Lontano dal target: il tracking resta stabile quando l'oggetto target diventa troppo piccolo nel frame.
- Condizioni di scarsa illuminazione: le prestazioni del visual tracking diminuiscono ed è necessario mantenere l'esperienza.
Effetti e risultati attesi
Quando lo scenario è applicabile, Motion Fusion offre un'esperienza più stabile e fluida rispetto al solo 3D object tracking.
Risultato ideale
- Tracking più stabile: gli oggetti virtuali non tremano e non saltano.
- Transizione fluida: quando il visual tracking fallisce, il cambiamento della posa fusa resta continuo e naturale.
- Resistenza alle interferenze: quando l'oggetto target viene perso o occluso, oppure il dispositivo si muove rapidamente, l'oggetto virtuale può continuare a seguire il movimento del dispositivo.
Casi non ideali e contromisure
| Fenomeno | Causa | Percezione utente | Soluzione |
|---|---|---|---|
| Inizialmente non efficace | Il motion tracking richiede tempo per inizializzarsi | Il contenuto scompare nella fase iniziale | Fornire adeguati prompt UI e assicurarsi che l'inizializzazione del motion tracking di sistema sia completata |
| Deriva evidente | Gli errori di sistema si accumulano e manca a lungo una correzione visiva | Gli oggetti virtuali si spostano dalla posizione originale | Guidare l'utente a ridurre il tempo di occlusione o aggiungere prompt di rilocalizzazione visiva |
| Calo di prestazioni | Due funzioni restano attive contemporaneamente per lungo tempo | Il frame rate cala e l'immagine scatta | Fenomeno normale; Motion Fusion può essere disattivato tramite API |
Metodo di verifica del risultato atteso
Testare con un dispositivo supportato in una scena reale:
- Puntare l'oggetto target e verificare che l'oggetto virtuale sia stabile.
- Occludere l'oggetto con la mano per 2 secondi e muovere il dispositivo, osservando se l'oggetto virtuale si muove in modo fluido.
- Rimuovere la mano e verificare che l'oggetto virtuale torni rapidamente alla posizione corretta senza salti.
Riepilogo e best practice
Motion Fusion migliora notevolmente la robustezza del 3D object tracking in molti scenari, ma richiede supporto hardware del dispositivo e prestazioni sufficienti.
Riferimento API per attivare/disattivare Motion Fusion in tempo reale:
- Native: setResultPostProcessing
- Unity: EnableMotionFusion