VisionLib è una libreria di tracciamento della realtà aumentata creata da Visometry. Consente di creare applicazioni di realtà aumentata su scala industriale utilizzando le tecnologie di tracciamento della computer vision.
Tracciamento del modello migliorato di VisionLib
Con il cosiddetto Enhanced Model Tracking, VisionLib fa parte delle librerie di tracking AR più riconosciute per l’uso industriale e aziendale. La computer vision e il model tracking sono fondamentali per qualsiasi AR in cui gli oggetti fisici reali, i cosiddetti tracking target, vengono aumentati ed estesi con informazioni digitali. Che si tratti di riparazione e manutenzione, di casi di formazione basati sull’AR, di marketing o di vendita, nessuna di queste attività funzionerebbe senza un rilevamento e un tracciamento preciso e affidabile degli oggetti.

Abbiamo imparato questa tecnica di visione computerizzata, in quanto riteniamo che sia l’unico approccio sufficientemente stabile per tracciare oggetti 3D. Aiuta a superare i tipici “killer dell’AR”, come le condizioni di luce instabili o gli elementi dinamici e mutevoli del mondo reale.
Il motore VisionLib
In termini tecnici, VisionLib è una libreria di tracciamento AR multipiattaforma che incorpora un’intera serie di algoritmi necessari per il tracciamento AR. Si tratta di determinare la posizione di telecamere monoculari o multiple rispetto a oggetti noti nel mondo reale. Questo è ciò che si intende per tracciamento: la telecamera del dispositivo punta a un oggetto atteso, la posizione della telecamera viene calcolata per tracciare tali obiettivi e consentire così le applicazioni di realtà aumentata.
Qualunque sia la tecnica di tracciamento utilizzata: VisionLib espone queste informazioni per consentirvi di utilizzarle nel vostro ambiente di sviluppo. VisionLib consente di posizionare i contenuti in modo preciso e allineato agli oggetti reali con un’elevata precisione.
Informazioni su AR e tracciamento

La realtà aumentata (AR) descrive esperienze digitali in cui i contenuti virtuali, come la grafica 2D o 3D, si fondono e si allineano con il mondo reale. In questo senso, la AR estende, migliora o aumenta la visione del mondo reale da parte dell’utente. Quando un’applicazione sovrappone il contenuto a un’immagine live della fotocamera, l’utente sperimenta la realtà aumentata: l’illusione che gli elementi virtuali esistano come parte del mondo reale.
Lavorare con la viewport della fotocamera dei dispositivi mobili in questo modo è chiamato effetto video-see-through. Su HoloLens e altri occhiali per la realtà mista, che consentono di vedere la realtà attraverso un display trasparente invece di percepirla attraverso il flusso video, questo effetto di fusione è piuttosto chiamato effetto ottico-see-through.
Tracciamento con visione artificiale per la realtà aumentata
Indipendentemente dal dispositivo utilizzato, il requisito fondamentale per qualsiasi esperienza AR è la capacità di creare e tracciare corrispondenze tra il mondo reale dell’utente e lo spazio virtuale. VisionLib sfrutta le tecniche di computer vision per consentire questa corrispondenza e il tracciamento delle corrispondenze.
Con una moltitudine di tecniche di tracciamento disponibili, dalle tecniche basate sui marcatori a quelle basate sulle caratteristiche e sui bordi, la computer vision è un campo di ricerca attivo e in continua evoluzione, mentre allo stesso tempo alcune tecniche popolari hanno trovato successo e sono considerate lo stato dell’arte.
Per lo sviluppatore, la creazione di esperienze AR comporta diversi livelli. Innanzitutto, il livello di tracciamento: VisionLib gestisce l’acquisizione del mondo reale attraverso la computer vision. Il secondo livello è responsabile del rendering degli elementi visivi, cioè del contenuto virtuale. Con l’API di VisionLib, è possibile scegliere tra diversi ambienti di sviluppo, tra cui Unity3D è il più popolare e il più facile per iniziare. I primi due livelli sono sincronizzati attraverso l’API di VisionLib, che passa la matematica dal tracciamento al rendering. Il terzo livello è costituito dalla logica specifica dell’applicazione.
In senso più tecnico, la computervision tracking incorpora algoritmi e tecniche matematiche per descrivere o elaborare immagini, video o flussi di dati di profondità 3D. Nella Mixed Reality, si tratta ad esempio della cosiddetta stima della posa di una telecamera, che incorpora dati estrinseci (come i dati di traslazione e rotazione della telecamera) e intrinseci (come ad esempio la lunghezza focale e altri parametri dell’ottica della telecamera). Tutto ciò è necessario e utilizzato per creare una perfetta sovrapposizione del contenuto aumentato.
Ecco perché un’ottica ben calibrata della fotocamera è essenziale per l’AR mobile su tablet e smartphone, e allo stesso modo una buona calibrazione dell’occhio o della fotocamera è essenziale per gli occhiali XR.
Informazioni sul tracciamento: di “comprensione del mondo” e “tracciamento degli oggetti”.
Odometria: “Bolla AR”
Le prime forme di Realtà Aumentata sui dispositivi mobili utilizzavano esclusivamente sensori inerziali (come bussola, giroscopio e accelerometro) per inserire e allineare le informazioni nel dominio reale. I contenuti aumentano il nostro spazio visivo ma, dal punto di vista tecnologico, non c’è una comprensione più profonda della realtà, né ci sono particolari corrispondenze oltre alle letture dei sensori inerziali. I valori dei sensori inerziali vengono utilizzati per stimare al meglio la vista e la posizione dell’utente. Poiché i soli sensori inerziali tendono alla deriva, possono perdere code importanti, impedendo alla vista AR di presentare assegnazioni non ambigue.
Visione artificiale: Tracciamento di marcatori, poster e immagini
Il tracciamento di immagini, poster e marcatori con l’ausilio della computervision ha lo stesso fondamento: utilizzare un’immagine o un modello (noto) per il riconoscimento e tracciarlo all’interno del flusso video acquisito. Basandosi su quello che viene chiamato feature tracking, questi materiali 2D sono buoni bersagli, perché risultano in mappe di caratteristiche fisse. L’uso di questi tracker è stato ed è tuttora diffuso per molti casi di AR. Ad esempio, quando si dispone di un catalogo di prodotti stampati, è possibile utilizzare le immagini di determinate pagine per sovrapporre un prodotto raffigurato in una vista AR 3D.
Il tracciamento delle immagini di solito consente di ottenere risultati di incremento precisi, ma le immagini stampate sono solo 2D. Si potrebbe “etichettare” l’ambiente con le immagini e allineare gli oggetti fisici 3D in base a questi “marcatori spaziali”, per simulare un vero tracciamento degli oggetti 3D. Tuttavia, quando le cose cambiano (ad esempio, gli oggetti allineati si spostano) o i marcatori vengono rimossi o posizionati in modo diverso, la sovrapposizione non corrisponderà alla realtà e l’esperienza si interromperà. In tutti i casi, i marcatori di immagine devono essere preparati in anticipo.
Visione artificiale: AR con SLAM
La tecnica SLAM (Simultaneous Localization and Mapping) è diventata un discreto strumento di AR. Questa tecnica consente di ricostruire spontaneamente mappe dell’ambiente attuale grazie alla computer vision. Permette di aumentare e fondere i contenuti nella realtà in modo abbastanza stabile e funziona bene per il posizionamento di ologrammi con una comprensione di base dell’ambiente.
Ma lo SLAM non è in grado di rilevare con precisione i modelli e, poiché ricostruisce solo mappe di oggetti o spazi, ha problemi con i cambiamenti dell’ambiente o delle condizioni di luce e non è molto stabile nel tempo. Di conseguenza, per uno sviluppatore è difficile o quasi impossibile individuare in anticipo le informazioni in punti particolari della realtà e se si lavora con informazioni SLAM memorizzate o ancorate, queste potrebbero rompersi.
Visione artificiale: Disambiguità e chiarezza con il Model Tracking
Ogni volta che si vogliono creare applicazioni AR, in cui è necessario aumentare le informazioni in modo preciso e inequivocabile a un punto o a un oggetto specifico nella realtà, il model tracking è lo stato dell’arte con cui lavorare. Il model tracking localizza e traccia gli oggetti tramite dati 3D e CAD ed è un elemento chiave per tutte quelle applicazioni AR che richiedono di fissare informazioni e contenuti virtuali esattamente in un determinato punto o posizione.
Inoltre, poiché il tracciamento dei modelli di VisionLib supera gli ostacoli tipici dell’AR e della computervision, come le variazioni di luce o gli elementi in movimento, non sono necessari ulteriori preparativi, come l’etichettatura di oggetti o ambienti con marcatori o la preacquisizione di mappe SLAM.
Il tracciamento dei modelli come cambio di gioco
Per gli sviluppatori, si tratta di una novità assoluta per i casi di AR in cui è necessario fare affidamento su un tracciamento e un rilevamento stabili. Inoltre, utilizzando i dati CAD e 3D come riferimento, è possibile referenziare il contenuto AR in relazione al gemello digitale.
Anche per l’utente si tratta di un cambiamento di gioco, in quanto si ottengono app AR affidabili e preziose che lo supportano in molti ambiti diversi. Ad esempio, i manuali AR potenziati, che vi guidano visivamente attraverso una procedura passo dopo passo, riportando la coppia di serraggio o altre informazioni speciali sulla vite a cui appartengono. In questo modo le visualizzazioni AR sono su una scala completamente nuova: quella industriale.
PANORAMICA TECNICA

Controllare VisionLib con le configurazioni di tracciamento
È possibile orchestrare VisionLib e controllare il comportamento di base del tracking attraverso le configurazioni di tracking (file .vl). Lo sviluppatore può impostare il metodo di tracciamento, influenzare i parametri di tracciamento centrali, definire quale telecamera utilizzare per il tracciamento su un dispositivo multicamera, definire l’elenco dei modelli per il tracciamento di più oggetti, collegare diverse sorgenti di input da utilizzare o impostare parametri di debug durante lo sviluppo. Questi file di configurazione sono fondamentalmente file JSON con una struttura particolare.
Alcuni di questi parametri di configurazione fungono anche da comandi dichiarativi, che possono essere utilizzati, ad esempio, all’interno del sistema GUI di Unity per controllare e attivare particolari funzioni e configurazioni. Per riassumere: le configurazioni di tracciamento sono un modo rapido e dichiarativo per delegare e controllare il comportamento di VisionLib e influenzare i risultati del tracciamento senza bisogno di molta codifica. Ulteriori letture:
Dettagli sul tracciamento dei modelli

La funzione principale di VisionLib è quella di fornire in tempo reale la posizione e l’orientamento (posa) degli oggetti tracciati rispetto a una telecamera. Queste pose sono ottenute grazie al model tracking, ovvero il tracciamento basato sulla visione che utilizza un modello 3D/CAD di un oggetto reale. Il model tracking consente di ottenere stime affidabili e precise della posa con una minima sensibilità alle influenze ambientali. Sui dispositivi capaci di localizzazione e mappatura simultanea (SLAM), i risultati del model tracking vengono fusi con l’auto-localizzazione del dispositivo. Questo aumenta la resistenza alle interruzioni visive, come spiegato in dettaglio nella sezione “Metodo di tracciamento”.
Conoscere la posa di una telecamera rispetto a un oggetto di interesse è fondamentale per le applicazioni di realtà aumentata (AR), che si basano su questa relazione per proiettare correttamente e in modo credibile contenuti digitali nel flusso video della telecamera.
VisionLib consente un’ampia gamma di applicazioni AR, tra cui:
- Applicazioni di istruzione, formazione e assistenza remota
- Applicazioni dimostrative, ad esempio per fiere, centri di assistenza clienti, ecc.
- Strumenti di ispezione della qualità per i pezzi in entrata e in uscita e per il controllo qualità in produzione
Caratteristiche
È possibile integrare il motore di tracciamento VisionLib nel proprio progetto tramite le tre API del nostro SDK: Le API C
e Objective-C
di basso livello e l’API Unity di livello superiore. L’SDK VisionLib offre le seguenti funzionalità:
- Tracciamento del modello: Stima accurata e robusta delle pose degli oggetti rispetto al dispositivo.
- Inseguimento multi-modello: Tracciamento simultaneo di diversi oggetti separati.
- Tracking Fusion: Combinate il tracciamento del modello con le capacità SLAM del vostro dispositivo.
- Rilevamento dello stato dell’oggetto: Rileva le modifiche alle parti dell’oggetto, come il movimento/la deformazione.
- Tracciamento di poster: Tracciamento basato sulle caratteristiche di un’immagine di riferimento anziché di un oggetto di riferimento.
- Tracciamento di modelli su HoloLens e Magic Leap 2 con Unity.
- Supporto per telecamere industriali, configurazioni di telecamere multi-view, ecc.
- Supporto per il framework AR multipiattaforma AR Foundation di Unity e debug con AR Foundation Remote.
Metodo di tracciamento
VisionLib traccia gli oggetti in base alle informazioni strutturali fornite dai file modello. Il motore di tracciamento individua i bordi che si aspetta di vedere e li fa corrispondere ai bordi trovati nel flusso di immagini della telecamera.
Questo metodo richiede un modello 3D/CAD per ogni oggetto tracciato e presenta alcuni vantaggi fondamentali:
- È resistente alle condizioni di luce avverse, compresi i cambi di luce dinamici e gli ambienti bui.
- È in grado di gestire superfici con poca texture, superfici riflettenti e così via, a condizione che sia possibile distinguere un numero sufficiente di bordi.
- Può seguire gli oggetti che si muovono dinamicamente nell’ambiente.
Fusione con SLAM
Come tecnica di tracciamento basata sulla visione, il nostro modello di tracciamento si basa sulla visibilità dell’oggetto tracciato nel flusso di immagini della telecamera. Il tracciamento può andare perso se l’oggetto è nascosto, se esce dal campo visivo della telecamera o se la telecamera viene spostata molto bruscamente e rapidamente. Se il tracciamento è interrotto, non è possibile aumentare il contenuto in modo accurato. Inoltre, se la telecamera viene spostata mentre il tracciamento è interrotto, VisionLib non sa più dove trovare l’oggetto nell’immagine. Di conseguenza, il tracciamento non può essere ripreso senza problemi quando l’interruzione si attenua. L’utente deve quindi attendere l’inizializzazione automatica o reinizializzare manualmente il tracciamento.
Questo problema è attenuato dalla fusione dei risultati del tracciamento del modello con lo SLAM.
I dispositivi SLAM riportano la loro posizione e il loro orientamento stimati nell’ambiente. Combinando queste pose assolute del dispositivo nel mondo con le pose dell’oggetto relative al dispositivo ottenute dal tracciamento basato sul modello, VisionLib può posizionare gli oggetti tracciati in pose assolute nel mondo. Questo permette a VisionLib di ricordare dove dovrebbe trovarsi un oggetto tracciato, anche se il tracciamento basato sul modello viene perso mentre il dispositivo è in movimento. Se l’oggetto tracciato non si è spostato, può essere ritrovato nell’ultima posa conosciuta nel mondo. Questo permette di aumentare continuamente i contenuti anche quando la visione è interrotta. Inoltre, il tracciamento riprende automaticamente dal punto in cui è stato interrotto al termine dell’interruzione. In questo modo si evita la necessità di reinizializzare il tracciamento attivo da parte dell’utente.
Tuttavia, il tracciamento può “sopravvivere” allo SLAM solo per un tempo limitato dopo l’interruzione del tracciamento del modello. Il tracciamento del modello è molto più stabile nel tempo rispetto a SLAM. Le stime di posa SLAM subiscono una deriva crescente nel tempo a causa della mancanza di un riferimento noto con cui verificare le stime. Il tempo in cui le pose SLAM rimangono sufficientemente accurate per supportare la reinizializzazione automatica del model tracking dipende dal dispositivo e dall’ambiente.
In sintesi, il metodo di tracciamento principale di VisionLib è il tracciamento basato su modelli. Questo metodo è integrato da SLAM (se disponibile). Entrambi i metodi annullano le rispettive debolezze. Il tracciamento basato su modelli è accurato e stabile nel tempo. Compensa inoltre la deriva di SLAM. Quando le interruzioni visive interrompono il tracciamento del modello, SLAM può intervenire e mantenere il tracciamento in vita finché l’interruzione non si attenua. Infine, SLAM consente anche di smussare l’aggiornamento della posa. Questa funzione è spiegata più dettagliatamente in “Smooth Time”
SLAM
Localizzazione e mappatura simultanea è un termine generico per indicare le tecniche utilizzate per localizzare un dispositivo in un ambiente (mondo) sconosciuto e creare contemporaneamente una mappa di questo mondo. A differenza del tracciamento basato su modelli, SLAM non traccia alcun oggetto rispetto al dispositivo. Al contrario, SLAM traccia il dispositivo stesso nel mondo. Esistono diversi approcci allo SLAM e vengono utilizzati diversi tipi di sensori. Per questo motivo, le implementazioni SLAM su piattaforme diverse variano, così come le capacità SLAM dei singoli dispositivi.
VisionLib è in grado di utilizzare le capacità SLAM dei dispositivi Android e iOS, oltre che di HoloLens e Magic Leap 2. Lo SLAM di Android e iOS è disponibile tramite VisionLib in modo nativo, utilizzando rispettivamente ARCore o ARKit.