Dalla possibilità di utilizzare lo smartphone come strumento per la realtà aumentata (AR), sono nate diverse librerie per lo sviluppo di applicazioni in AR. Vediamo in questo articolo le due principali librerie dei due grandi competitor del mondo smartphone, iOS e Android…
Introduzione
La realtà aumentata è definibile come un inisime di metodi e tecnologie per inserire oggetti virtuali in una sequenza di immagini reali acquisite mediante la fotocamera di un dispositivo; a differenza della realtà virtuale (VR), dove l’utente è completamente immerso in un modo digitale virtuale. Smartphone e Tablet sono ancora gli strumenti più utlizzati per l’utilizzo di queste tecnologie.
L’obiettivo principale in un sistema che utilizza la realtà aumentata è quello di conoscere la posizione della fotocamera rispoetto l’ambiente circostante e mettere in relazione la translazione e la rotazione dell’oggetto o riferimento che si ha nel mondo reale e la fotocamera.
Attualmente la realtà aumentata si serve di due tecniche per calcolare la posizione, marker-based e markerless
Un approccio di tipo marker-based richiede la previa registrazione di un’immagine per poi fornire il riconoscimento durante l’utilizzo. Questo è il metodo più utilizzato perché è molto facile tracciare elementi e riconoscerli e non richiedere dispositivi potenti.
Un approccio di tipo markerless riconosce gli oggetti senza che ci sia stata una previa registrazione. L’implementazione di questo metodo è complessa poiché necessità di un algoritmo che identifica gli oggetti in base a caratteristiche come pattern, colori e altre caratteristiche della scena.
Per integrare la realtà aumentata all’interno di applicazioni mobile, si utilizzando specifiche SDK (Software Development Kit); per Apple esiste Augmented Reality Development Kits (ARKit) mentre per Android si utilizzano le Google ARCore. Queste SDK semplificano l’utilizzo per gli sviluppatori della realtà aumentata.
ARKIT
ARKit è il Development Kit di Apple per la Realtà Aumentata, rilasciato a Giguno 2017. Questo kit è dedicato al sistema operativo Apple, iOS per applicazione iPhone e iPad a partire da iOS 11.
Con ARKit, iPhone e iPad possono identificare piani orizzontali e verticali del mondo reale e integrare a tempo di elaborazione gli elementi virtuali.
Funzionalità Principali
- Tracking: Apple ARKit permette di tracciare la poszione dello smartphone nell’ambiente reale in real time. Per fare questo combina il VIO (Virtual Inertial Odometer) con i dati provenienti dalla fotocamera e i sensori di movimento del device.
VIO - Virtual Inertial Odometer o odometria visiva inerziale è il processo di determinazione della posizione e dell’orientamento di un dispositivo a partire dalle immagini di una o più telecamera associata.
Riconoscimento di immagini 2D statiche: questa funzione consente di memorizzare le immagini nell’applicazione e di rilevarle durante l’utilizzo in modo da sovrapporvi elementi virtuali a queste immagini tracciate.
Riconoscimento di oggetti 3D utilizzando ARKit Scanner per scansionare oggetti che prima dovranno essere scansionati in modo da rendere possibile il tracciamento in un secondo momento.
Tracciamento di immagini 2D in movimento, questa funzionalità consente di tracciare l’immagine anche mentre questa si muove nella scena.
Face Tracking: segue il movimento e le espressioni facciali, per questa funzionalità è necessario utilizzare il sensore TrueDepth integrato negli iPhone X o superiori-
Registrare una mappa dell’ambiente circostante durante una prima esperienza di realtà aumentate, l’utente può salvare una card con tutte le informazioni su un ambiente sconosciuto e ricaricare questa card nel medesimo ambiente; questo consente di ottimizzare il processo di rilevamento e tracciamento grazie alle informazioni registrate in precedenza nella card.
MultiUser nelle applicazioni in realtà aumentata o nei giochi è possibile condividere e fissare in ambienti reali 2 o più utenti.
Body Tracking e Occlusion, questa funzionalità permette di tracciare la posizione delle persone nello spazio visibile della fotocamera e posizionare degli oggetti di fronte o dietro le persone in modo realistico.
Motion Capture consente il tracciamento di una copia virtuale sotto forma di scheletro della persona ripresa dal dispositivo, per esempio registrare i movimenti di una persona reale e farli eseguire da un avatar virtuale.
Multiple Face Tracking può rilevare e tracciare tre o più volti allo stesso tempo con le fotocamere che supportano la tecnologia TrueDepth.
Back e Front Camera Simultanea, Con ARKit 3 è possibile abiltiare entrambe le fotocamere frontale e posteriore e utilizzare le funzionalità AR con entrambe.
Funzionalità Aggiuntive, l’abilità di tracciare 100 immagini in real time e sviluppare la detection di oggetti 3D con un rilevamento veloce mediante l’uso di machine learning, per migliorare la detection di superfici piatte.
ARCore
Nel 2014 Google ha lanciato la prima SDK per AR, Tango SDK che richiedeva uno smartphone con una fotocamera dotata di depth sensing (rilevamento della profondità) per funzionare. La particolarità di Tango era quella di riuscire a mappare ambienti 2D e 3D e il primo smartphone a integrare la tecnologia tango fu il Lenovo Phab 2. Questo progetto è stato però fallimentare poiché era limitato a dispositivi con sensori che pochissimi smartphone avevano.
Nel Marzo 2018, è stato presentato il progetto ARCore, che a differenza di Tango è disponibile su molti più dispositivi ma a prezzo di minori funzionalità.
Funzionalità Principali
Tracking, ARCore utilizza la fotocamera dello smartphone per osservare i punti caratteristici della scena e con i dati del sensore Inertinal Measuremnt Unity (IMU), determina la posizione e l’orientamento del dispositivo mentre si muove. Ciò consente di posizionare correttamente gli oggetti virtuali.
Brightness estimation: consente allo smartphone di stimare la luce ambientale per integrare perfettamente gli elementi 3D nel mondo reale.
Feature Points: ARCore scansiona l’ambiente e rileva entità visivamente distinte nelle immagini chiamate punti chiave e utilizza questi punti per calcolare il suo cambio di posizione.
Plane detection ARCore ricerca nella scena gruppi di punti chiave che possono costruire piani orizzontali e verticali, può anche determinare i limiti di ogni piano.
Image Tracking: gli utenti possono creare esperienze di realtà aumentata puntando la fotocamera del telefono su immagini specifiche che sono state precedentemente salvate nel database dell’applicazione.
- Object detection: ARCore non può riconoscere oggetti 3D come ARKit.
- Face Detection: ARCOre Augmented Face consente di tracciare la geometria del viso, la posizione della punta del naso, i lati della fronte e il centro della testa, in questo modo riesce a ricreare un modello 3D del volto e utilizzare le regioni del volto per aumentarlo aggiungendo elementi virtuali.
Conclusioni
In questo articolo abbiamo visto le due librerie per la realtà aumetnata dei due più grandi produttori Smartphone e OS Mobile.
ARCore è il framework per Android, mentre ARKit è quello per iOS di Apple.
L’obiettivo di questi due framework è quello di semplificare lo sviluppo di applicazioni in AR.
La scelta del framework è vincolata dal tipo di device scelto, complessivamente sembra che ARKit offra funzionalità più complete ed estese rispetto Android, il quale però con ARCore riesce a coprire un partere di smartphone e tablet molto più ampio rispetto ARKit che invece comprende i soli iPhone e iPad.
L’utilizzo maggiore di ARKit rispetto ARCore è visibile anche tra i dati disponibili online.
Agosto 2022 | ARKit | ARCore |
---|---|---|
Github repository | 4970 | 2205 |
Stackoverflow question theads | 3147 | 1697 |
Fonti
Grazie ☺