Tracciamento oggetti combinato con il tracciamento del movimento
Questo articolo spiega come integrare il tracciamento 3D di oggetti con il tracciamento del movimento del dispositivo per migliorare la stabilità del tracciamento e l'esperienza utente in scenari complessi. Include i principi fondamentali, i risultati attesi e l'analisi dei potenziali problemi.
Principi fondamentali
La fusione del movimento (Motion Fusion) combina i dati di posa del tracciamento 3D di oggetti con quelli del tracciamento del movimento del dispositivo per ottenere una stima della posa più robusta. Ecco il flusso principale:
Sincronizzazione e complementarità dei dati
- Tracciamento visivo: calcola la posa corrente (posizione + rotazione) attraverso la corrispondenza di punti caratteristici dell'immagine, ma è sensibile a oclusioni, sfocature o movimenti rapidi.
- Tracciamento del movimento: utilizza i dati ad alta frequenza dei sensori IMU e l'output delle immagini visive per ottenere i dati di movimento del dispositivo, ma accumula errori di deriva.
- Meccanismo di fusione:
- Allinea i sistemi di coordinate delle pose del tracciamento visivo e del tracciamento del movimento.
- Quando l'oggetto bersaglio è chiaramente visibile e il movimento è stabile: il tracciamento visivo domina. Le pose del tracciamento visivo vengono continuamente inviate al modulo di fusione per correggere la deriva cumulativa del sistema.
- Quando l'oggetto bersaglio è perso, troppo piccolo nell'inquadratura o in movimento rapido: il tracciamento visivo fallisce, il tracciamento del movimento domina. La posa fusa viene predetta basandosi sulla posa corrente del tracciamento del movimento.
Punti tecnici chiave
- Allineamento dei timestamp: sincronizza i timestamp dei frame visivi con i dati di tracciamento del movimento per evitare tremolii dovuti a latenza.
- Allineamento dei sistemi di coordinate: allinea le traiettorie del tracciamento visivo e del tracciamento del movimento.
- Rilocalizzazione: quando l'oggetto bersaglio riappare, il tracciamento visivo riprende il controllo correggendo rapidamente eventuali errori cumulativi, "riportando" l'oggetto virtuale nella posizione corretta.
Scenari applicabili e limitazioni
La fusione del movimento non è adatta a tutti gli scenari. Non utilizzare questa funzionalità nei seguenti casi:
- Il dispositivo bersaglio non supporta funzionalità di tracciamento del movimento come ARCore/ARKit. Lista dispositivi supportati: Supporto dispositivi per tracciamento movimento.
- L'oggetto bersaglio è dinamico nella scena, ad esempio un giocattolo o un action figure tenuto in mano.
Negli altri scenari, l'uso della fusione del movimento migliorerà notevolmente l'esperienza utente del tracciamento 3D di oggetti, tra cui:
- Movimento rapido: l'utente sposta rapidamente il dispositivo, la sfocatura da movimento causa il fallimento del tracciamento visivo.
- Scomparsa del bersaglio: quando l'immagine esce dall'oggetto bersaglio o questo è ocluso da oggetti dinamici (es. persone), il contenuto virtuale rimane visibile.
- Allontanamento dal bersaglio: l'utente si allontana riducendo la dimensione dell'oggetto nell'inquadratura, mantenendo un tracciamento stabile.
- Scarsa illuminazione: le prestazioni del tracciamento visivo diminuiscono, ma l'esperienza viene preservata.
Risultati ed effetti attesi
Negli scenari applicabili, l'uso della fusione del movimento offre un'esperienza utente più stabile e fluida rispetto al solo tracciamento 3D di oggetti.
Effetti ideali
- Tracciamento più stabile: nessun tremolio o salto improvviso degli oggetti virtuali.
- Transizioni fluide: quando il tracciamento visivo fallisce, il cambio di posa fusa è continuo e naturale.
- Resistenza alle interferenze: l'oggetto virtuale segue il movimento del dispositivo anche durante perdita del bersaglio, occlusioni o movimenti rapidi.
Situazioni non ideali e soluzioni
| Fenomeno | Causa | Percezione utente | Soluzione |
|---|---|---|---|
| Inizializzazione mancata | Il tracciamento del movimento richiede tempo per inizializzarsi | Contenuto scompare nella fase iniziale | Fornire prompt UI finché il sistema non completa l'inizializzazione |
| Deriva evidente | Accumulo di errori sistemici senza correzione visiva | L'oggetto virtuale si sposta dalla posizione originale | Guidare l'utente a ridurre i tempi di occlusione o aggiungere prompt per la rilocalizzazione visiva |
| Calo prestazionale | Esecuzione prolungata di entrambe le funzionalità | Frame rate ridotto, scatti | Fenomeno normale, disattivare la fusione del movimento tramite API |
Metodo di verifica dei risultati attesi
Test su dispositivo supportato in scenari reali:
- Inquadrare l'oggetto bersaglio, verificare la stabilità dell'oggetto virtuale.
- Ostruire l'oggetto con la mano per 2 secondi spostando il dispositivo, osservare se l'oggetto virtuale si muove fluidamente.
- Togliere la mano, verificare che l'oggetto virtuale torni rapidamente in posizione senza salti.
Riepilogo e best practice
La fusione del movimento migliora significativamente la robustezza del tracciamento 3D di oggetti in molti scenari, ma richiede supporto hardware e prestazioni adeguate. Gli sviluppatori dovrebbero attivare la funzionalità in base ai dispositivi degli utenti finali e fornire soluzioni di fallback su dispositivi poco potenti.
API per attivare/disattivare in tempo reale la fusione del movimento:
- Nativo: setResultPostProcessing
- Unity: EnableMotionFusion