Featured image of post Object Tracking e Realtà Aumentata con Immersal e Unity

Object Tracking e Realtà Aumentata con Immersal e Unity

Tracciare opere museali, facciate di edifici o modellini con Immersal.

In questa guida, creo un piccolo progetto Unity dove provo Immersal una libreria per lo Spatial Mapping ed il Visual Positioning System (VPS). Questo articolo è stato scritto interamente dall’autore, non è stato utilizzato un modello linguistico (AI/LLM). Per la copertina è stato utilizzato Nano Banana.

Introduzione

Brevemente, Immersal offre una SDK che permette lo Spatial Mapping e Visual Positioning System (VPS). Questa SDK permette di unire elementi virtuali all’ambiente reale via Realtà Aumentata; è come un GPS ultra-preciso con aggiornamenti real time. Inoltre la libreria non utilizza e non necessita di marker nell’ambiente reale.

L’utilizzo di Immersal si divide in tre parti:

  1. Mappatura di luoghi reali: le mappe vengono costruite da uno smartphone tramite l’app Immersal Mapper (scaricabile dagli store).
  2. Creazione di applicazioni a partire dalle mappe generata al punto 1.
  3. Utilizzo della SDK per individuare la posizione e gli oggetti o le mappe tracciate al punto 1.

Scenari di utilizzo

In questo articolo vedremo, come creare delle esperienze di realtà aumentata, in particolare la scansione ed il tracking di oggetti 3D in una stanza, per simulare un possibile utilizzo museale, ed il tracciamento di un oggetto in un ambiente esterno, per simulare un possibile utilizzo outdoor.

In generale Immersal è consigliabile anche per giochi in realtà aumentata, campagne pubblicitari, soluzioni industriali. Tutte le soluzioni possono essere ottemperate sia in ambienti interni che esterni.

Come funziona?

Immersal SDK consente esperienze di realtà aumentata, attraverso Mappatura spaziale e Localizzazione. Lo sviluppo avviene tramite una REST API che comunica attraverso la SDK di immersal.

Esistono 2 SDK:

  1. Unity SDK: per lo sviluppo di esperienze di AR via Unity;
  2. Web SDK: per lo sviluppo di esperienze di AR via web development;

Compatible mapping and localization methods (From Immersal)

Limiti e Prezzi

La versione Free offre il mapping di spazi relativamente piccoli (100 immagini), e non consente l’utilizzo ai fini commerciali. Inoltre è obbligatorio il logo di Immersal come watermark nell’app di realtà aumentata.

Le info sui piani commerciali sono disponibili a questo link https://developers.immersal.com/docs/immersal-sdk/pricing/ .

Demo e Progetto

In questa sezione vediamo tutte le fasi per creare il nostro piccolo progetto con Unity ed Immersal, in particolare affronteremo due casi d’uso:

  1. Indoor Object Tracking: Riconoscimento di un modellino di Ferrari su un tavolo.
  2. Outdoor Location Tracking: Riconoscimento e “restauro” virtuale di un Nasone (fontanella pubblica) a Roma e prova su una facciata di un edificio.

Fase 1 - Mapping

La creazione di una mappa è il cuore del VPS. Immersal non usa “punti di riferimento” artificiali (marker), ma crea una nuvola di punti (Point Cloud) basata sulle caratteristiche geometriche dell’ambiente.

Preparazione: Scarica l’app Immersal Mapper (disponibile per iPhone ed Android). Assicurati che l’illuminazione sia uniforme e che l’area sia sgombra da oggetti in movimento ed assicurati che l’oggetto da registrare sia diversificato e ricco di dettagli e perferibilmente con una superficie opaca e scarsamente riflettente.

Acquisizione: Muoviti lentamente scattando foto da diverse angolazioni. L’app richiede una sovrapposizione significativa tra gli scatti (circa il 60-70%) per calcolare la profondità.

Immersal Mapping

Test e Upload: Una volta scattate le foto (almeno 20-30 per una stanza piccola), puoi testare l’AR per vedere se la mappa raccolta è di qualità, se il risultato è soddisfacente invia i dati al server di Immersal premendo l’icona di Uplaod.

Risultato: Dopo pochi minuti sul portale sviluppatori (https://developers.immersal.com/mymaps/) potrai scaricare il file .byte (per Unity) o il file .ply per visualizzare la nuvola di punti 3D nell’editor di Unity.

Fase 2 - Unity SDK

Una volta ottenuta la mappa, è il momento di ancorare i contenuti virtuali nello spazio reale.

Innanzitutto va configurato l’ambiente Unity per Android, ARCore ed ARFoundation.

**Download: ** Dal developer portal -> My Maps scarica per la mappa che hai caricato in precedenza due file: la mappa e la nuvola di punti. Il file .bytes servirà per il tracking dell’oggetto mentre il file .ply è la nuvola di punti utile per capire dove mettere eventuali effetti e/o oggetti 3D.

Download Map and Cloud Points

Import: Scarica l’Immersal SDK dal portale e importalo nel tuo progetto Unity. Assicurati di avere configurato AR Foundation (ARCore per Android o ARKit per iOS).

Una volta importato aprite la scena SimpleSample che già fornisce un esempio della scena base da utilizzare per il tracciamento.

Caricamento Mappa: Trascina il file .byte generato nella Fase 1 all’interno del componente AR Map. In Unity, vedrai apparire la nuvola di punti: ora puoi posizionare i tuoi modelli 3D (quadri virtuali, frecce direzionali o personaggi) esattamente dove vuoi che appaiano nel mondo reale.

Download Map and Cloud Points

Localizzazione: Il componente AR Localizer si occuperà di confrontare il feed della telecamera dello smartphone con la mappa caricata. Quando i punti corrispondono, il contenuto virtuale verrà “bloccato” nella posizione corretta con precisione.

Fase 3 - Demo AR

Per testare l’efficacia del sistema, ho realizzato due prototipi distinti che sfruttano la persistenza spaziale di Immersal:

Scenario Museale (Indoor): Ho mappato prima un modellino 3D della ferrari e come si vede il tracciamento è quasi perfetto, una volta che la camera riesce ad inquadrare l’oggetto correttamente, il tracciamento è la sovrapposizione del modello 3D è ottimale.

Immersal Mapping Immersal Mapping Immersal Mapping

IN PROGRESS Scenario Outdoor (Edifici / Grandi oggetti): Sfruttando la capacità di Immersal di gestire mappe su larga scala, ho mappato un nasone. Puntando lo smartphone, l’app sovrappone una ricostruzione digitale del nasone sul nasone reale.

Conclusioni

Immersal facilita molto lo sviluppo di applicazioni in Realtà Aumentata, la fase di tracciamento può essere effettauta sia con iPhone che con Android con un app dedicata ed un backend semplice ed intuitivo da utilizzare. Il tracciamento è facile e la nuova di punti consente all’utente di ancorare facilmente e con una discreta precisione il modello 3D o l’effetto che si vuol far apparire sull’oggetto tracciato. Sono però presenti delle criticità nell’utilizzo di Immersal:

  1. 100 Foto per tracciare un semplice oggetto o una piccola stanza sono sufficienti, però se si vuole tracciare un salone di un museo diventano poche e bisogna passare alle soluzioni business.
  2. La precisione cala tantissimo su superfici regolari e non riflettenti.
  3. È vincolata al loro backend, se decidessero di rimuovere il tier free, non sarebbe possibile tracciare ulteriori elementi.
  4. Watermark, nella versione free è presente un watermark fisso che rende l’esperienza AR poco piacevole.

In conclusione, Immersal è un valido concorrente di Vuforia ma entrambe le librerie non sono soluzioni adatte in un contesto museale se volete usare un’applicazione manutenibile nel tempo e indipendente da librerie terze.

Video

Soon :)

Reference

Grazie :)

ARTICOLO IN FASE DI STESURA…

Condividi:
Views
Create with Hugo, Theme Stack;
Sito creato e gestito da Francesco Garofalo;