In questo articolo vedremo se è possibile e come sviluppare una soluzione per il tracciamento degli oggetti con una libreria di immagini.
Introduzione
L’ Object Tracking (noto anche come Model Tracking) è una funzionalità della Realtà Aumentata, utilizzata per riconoscere e tracciare oggetti di diverse dimensioni al fine di sovrappore contenuti digitali per produrre experience in realtà aumentata.
Il tracciamento di oggetti con la fotocamera di uno smartphone è un problema non banale, poiché è necessario tracciare un oggetto in 3 dimensioni con una fotocamera che raccoglie dati in 2 dimensioni. Per ovviare a questo problema esistono diversi framework e librerie in realtà aumentata che con diverse strategie e soluzioni per riuscire a tracciare oggetti 3D tramite immagini 2D.
Il problema di questi framework esistenti è che sono closed source e spesso offrono servizi a pagamento a cifre non accessibili per sviluppatori privati, in altri casi esistono versioni trial gratuite ma estremamente limitanti.
Idee e progetti correlati
Attualmente esistono diversi strumenti per il tracciamento degli oggetti, alcune accessibili in versioni Trial altre esclusivamente a pagamento, vediamo nei paragrafi seguenti, le soluzione Object Tracking (Model Tracking) più note.
Vuforia Model Tracking
Vuforia è una piattaforma AR nata per le aziende. Propone diverse soluzioni diversificate per l’ambito businees. Per l’object tracking Vuforia utilizza Model Target, che consente alle applicazioni create con Vuforia Engine di riconoscere e tenere traccia di oggetti particolari nel mondo reale in base alla forma dell’oggetto.
Offre inoltre una serie di tools online e offline per generare un modello finale, in particolare utilizzando l’applicazione Model Target Generator (MTG).
Wikitude
Wikitude è una piattaforma business oriented per lo sviluppo di soluzioni AR. Per il tracciamento degli oggetti presenta una suite più completa rispetto Vuforia, infatti oltre al tracciamento dei singoli oggetti permette di tracciare anche elementi presenti nella scena, come edifici e grandi macchinari.
Soluzione proporsta da Blanco-Pons et Al.
In un paper pubblicato il 7 Agosto 2019 dalla rivista MDPI, un gruppo di ricercatori ha proposto il tracciamento di edifici storici, quindi in ambiente outdoor non controllato. In breve la soluzione proposta dal progetto di Blanco-Pons et Al. è stata quella di effettuare rilevamenti fotografici dell’edificio in diverse condizioni di luce, illuminazione e ombre a diversi orari del giorno, presentando un approccio multi-image tracking e proponendo una soluzione pratica con Vuforia
ARCore
ARCore è una libreria che non ha possibilità di essere utilizzata per l’object recognition, ma solo per Image, Plane, ecc.
Soluzione proposta
L’idea di base è quella di basare il tracciamento dell’oggetto sulla falsa riga della soluzione proposta da Blanco-Pons et Al., quindi provare a tracciare un oggetto con la libreria Android ARCore, considerando l’oggetto da tracciare come un insieme di immagini. Per fare questo posizionare l’oggetto da tracciare in modo che possa produrre meno ombre possibili e meno riflessi di luce possibili e scattare diverse foto all’oggetto in modo da ottenere diverse angolazioni in 2D dell’oggetto.
Potete testare anche un solo lato quindi iniziare a raccogliere immagini solo su un lato dell’oggetto che volete tracciare e quindi dividere il tracciamento per lati, in questo modo potete adattare un comportamento diverso in realtà aumentata in base alla posizione dell’oggetto.
Demo pratica
Creiamo un progetto Unity3D per Android, e importiamo ARCore e AR Foundation, poi creaiamo una Reference Image Library in cui inseriamo le immagini prodotte del nostro modellino. Creiamo la scena 3D e settiamo il build.
Se vuoi la guida step-by-step su come si crea un applicazione per l’image tracking ti consiglio questo articolo: https://www.francescogarofalo.it/post/imagetrackingunity/
Il risultato è stato il seguente:
- Con 8 immagini sullo stesso lato il tracciamento non è riuscito;
- Con 25 immagini sullo stesso lato con le medesime condizioni di luce il tracciamento è riuscito;
- Con 25 immaigni sullo stesso lato con diverse condizioni di luce il tracciamento non è riusctio
Conclusioni
Il tracciamento di un oggetto via Image Tracking con ARCore non è possibile, questo perché la superficie riflettente dell’oggetto e le indefinite possibili variazioni che questo comporta all’immagine acquisita rendono estremamente complesso il tracciamento via immagini.
Ad oggi quindi non esiste una soluzione free ed utilizzabile da sviluppatori indipendenti se non acquistando licenze Vuforia, Wikitude o altri.
Esistono però soluzioni intermedie come ARCore ML o OpenCV che possono aiutarci a tracciare oggetti; li vedremo in seguito nei prossimi articoli.
Fonti
- AR Tracked Image Manager, Documentazione Unity - https://docs.unity3d.com/Packages/com.unity.xr.arfoundation@2.2/manual/tracked-image-manager.html
- Meily, S. O., Putra, I. K. G. D., & Buana, P. W. (2021). Augmented Reality Using Real-Object Tracking Development. Jurnal Sistem Informasi, 17(1), 20-29. https://doi.org/10.21609/jsi.v17i1.1036
- Z. Oufqir, A. El Abderrahmani and K. Satori, “ARKit and ARCore in serve to augmented reality,” 2020 International Conference on Intelligent Systems and Computer Vision (ISCV), 2020, pp. 1-7, doi: 10.1109/ISCV49265.2020.9204243.
- ARCore Documentazione Google - https://developers.google.com/ar/develop/fundamentals
- Vuforia Model Target Doc - https://library.vuforia.com/objects/model-targets
- Wikitude Object Tracking Doc - https://www.wikitude.com/external/doc/expertedition/ObjectTracking.html
Grazie ☺