Il team di ricerca AI di Apple ha sviluppato un nuovo modello che potrebbe rivoluzionare il modo in cui le macchine percepiscono la profondità nel caso delle immagini. Si tratta di un approccio tutto nuovo alla visione computerizzata che ha il potenziale di trasformare campi applicativi che spaziano dalla realtà aumentata alla guida autonomi. Il sistema appena presentato dagli ingegneri della Mela si chiama Depth Pro, ed è in grado di generare mappe di profondità 3D dettagliate a partire da singole immagini 2D in una frazione di secondo (0,3 secondi circa) servendosi di una normale GPU e senza fare affidamento sui dati della fotocamera tradizionalmente necessari per effettuare tali previsioni.
Cosa s’intende per profondità monoculare
Nel campo della visione computerizzata, la profondità monoculare si riferisce alla stima della distanza tra la fotocamera e gli oggetti in una scena tridimensionale utilizzando solo una singola immagine (monoculare), cioè senza informazioni di profondità provenienti da fonti aggiuntive come immagini stereoscopiche (coppie di immagini prodotte da due fotocamere), LiDAR o altri sensori di profondità.
La sfida nella stima della profondità monoculare deriva dal fatto che un’immagine bidimensionale non contiene, in modo esplicito, informazioni sulla profondità. Pertanto, il modello deve “inferire” la distanza basandosi su “indizi visivi” come i seguenti:
- Dimensioni note degli oggetti: Se l’algoritmo riconosce un oggetto, può stimare la sua distanza in base alla dimensione apparente.
- Prospettiva: L’effetto della prospettiva può essere usato per capire come gli oggetti si riducono man mano che si allontanano.
- Sfocatura (depth of field): Oggetti più vicini o più lontani dal punto di messa a fuoco sono spesso meno nitidi.
- Ombre e illuminazione: Possono fornire indizi sulla geometria e sulla distanza degli oggetti.
La stima della profondità monoculare è importante perché è alla base di applicazioni come la guida autonoma, la realtà aumentata e la generazione di modelli 3D a partire da immagini bidimensionali.
Cos’è Apple Depth Pro e come funziona
Come spiegano gli autori dello studio prodotto nei laboratori di Apple AI, Depth Pro non richiede più immagini o metadati come le lunghezze focali per valutare accuratamente la profondità. È invece capace di generare mappe di profondità ad alta risoluzione in soli 0,3 secondi su una GPU standard.
Il modello può creare mappe da 2,25 Megapixel con una precisione eccezionale, catturando anche dettagli minuti come i peli di un animale (si pensi alle stesse vibrisse del gatto) e alla vegetazione, spesso trascurati avvalendosi di altri metodi.
L’architettura su cui poggia Depth Pro consente al modello di elaborare sia il contesto generale di un’immagine che i suoi dettagli più fini, rappresentando un enorme balzo in avanti rispetto ai modelli più lenti e meno precisi che lo hanno preceduto.
Apprendimento zero-shot
Depth Pro non richiede un’ampia formazione su dataset specifici per fare previsioni accurate. Il cosiddetto apprendimento zero-shot rende il modello altamente versatile, applicabile a una vasta gamma di immagini, senza la necessità di dati specifici della fotocamera di solito richiesti nei modelli di stima della profondità.
Questa flessibilità apre di fatto un mondo di possibilità, migliorando le esperienze di realtà aumentata e migliorando la capacità dei veicoli autonomi di rilevare e muoversi tra gli ostacoli.
Depth Pro: open source e pronto per l’integrazione nei progetti reali
Con una mossa che potrebbe accelerare l’adozione di Depth Pro, Apple ha reso open source il suo modello. Il codice, insieme con i pesi del modello pre-addestrato, è disponibile su GitHub, consentendo a sviluppatori e ricercatori di sperimentare e affinare ulteriormente la tecnologia.
Il repository include l’architettura del modello e i checkpoint pre-addestrati, rendendo più facile per gli altri sviluppatori costruire nuovi progetti a partire dal lavoro di Apple. Quello reso pubblico su GitHub è comunque una “versione di riferimento” opportunamente ri-addestrata, mantenendone le prestazioni vicine a quelle riportate nel documento originale, sebbene non siano identiche.
Per iniziare a utilizzare Depth Pro, Apple consiglia di configurare un ambiente virtuale con miniconda, per poi scaricare i checkpoint pre-addestrati:
conda create -n depth-pro -y python=3.9
conda activate depth-pro
pip install -e .
source get_pretrained_models.sh
Depth Pro può essere eseguito sia da riga di comando che da script Python. Per eseguire una previsione su un’immagine singola dalla riga di comando, basta ricorrere alla seguente istruzione (sostituendo ovviamente il nome del file ove necessario):
depth-pro-run -i ./data/example.jpg
La combinazione di velocità, accuratezza metrica e la capacità di generare previsioni dettagliate senza dipendere da metadati specifici, rende Depth Pro un modello rivoluzionario nel panorama delle tecnologie di visione artificiale.
Credit immagine in apertura: iStock.com – peshkov