Aggiungi una dimensione alle immagini

Guide specifiche per piattaforma

Le API Augmented Images in ARCore consentono di creare app AR in grado di rilevare e migliorare le immagini 2D nell'ambiente dell'utente, ad esempio poster o pacchetti di prodotti.

Tu fornisci un insieme di immagini di riferimento. ARCore utilizza un algoritmo di visione artificiale per estrarre caratteristiche dalle informazioni in scala di grigi in ogni immagine e archivia una rappresentazione di queste caratteristiche in uno o più database Augmented Image.

In fase di runtime, ARCore cerca queste funzionalità su superfici piane nell'ambiente dell'utente. In questo modo, ARCore può rilevare queste immagini e stimare la posizione, l'orientamento e le dimensioni, se non ne vengono forniti.

Funzionalità

ARCore può monitorare fino a 20 immagini contemporaneamente. ARCore non rileva né traccia contemporaneamente più istanze della stessa immagine.

Ogni database di immagini aumentate può archiviare informazioni fino a 1000 immagini di riferimento. Non esiste un limite al numero di database, ma può essere attivo un solo database alla volta.

Le immagini possono essere aggiunte a un database di immagini aumentate in fase di runtime, fino al limite di 1000 immagini per database. È possibile scaricare database creati in precedenza utilizzando una connessione di rete.

Quando si aggiunge un'immagine, è possibile fornire le dimensioni fisiche dell'immagine da rilevare. In questo modo migliorerai le prestazioni del rilevamento delle immagini.

  • Se non vengono fornite dimensioni fisiche, ARCore stima le dimensioni e la perfeziona nel tempo.

  • Se viene fornita una dimensione fisica, ARCore utilizza le dimensioni fornite e stima la posizione e l'orientamento dell'immagine, ignorando eventuali discrepanze tra le dimensioni apparenti o effettive e le dimensioni fisiche fornite.

ARCore può rispondere e monitorare le immagini che:

  • Immagini fisse in posizione, come una stampa appesa a una parete o una rivista su un tavolo

  • Immagini in movimento, come una pubblicità su un autobus di passaggio, o un'immagine su un oggetto piatto tenuto dall'utente mentre muove le mani.

Una volta iniziato il monitoraggio di un'immagine, ARCore fornisce una stima della posizione e dell'orientamento dell'immagine per ciascun frame. ARCore perfeziona continuamente queste stime man mano che raccoglie più dati.

Una volta rilevata un'immagine, ARCore continua a "tracciare" la posizione e l'orientamento dell'immagine, anche quando l'immagine si sposta temporaneamente fuori dalla visualizzazione della fotocamera, perché l'utente ha spostato il dispositivo. In questi casi, ARCore presuppone che la posizione e l'orientamento dell'immagine siano statici e che l'immagine non si muova nell'ambiente.

Tutto il monitoraggio avviene sul dispositivo. Non è necessaria una connessione a Internet per rilevare e monitorare le immagini.

Requisiti

Le immagini devono:

  • Riempi almeno il 25% dell'inquadratura della videocamera per il primo rilevamento.

  • Deve essere piatto (ad esempio, non deve essere rugoso o avvolto intorno a una bottiglia).

  • Rimani ben visibile della videocamera. Non devono essere parzialmente oscurati, guardati da un'angolazione molto obliqua o visualizzati quando la videocamera si muove troppo velocemente a causa della sfocatura del movimento.

Considerazioni sull'utilizzo e sulle prestazioni della CPU

A seconda delle funzionalità ARCore già abilitate, l'abilitazione delle immagini aumentate potrebbe aumentare l'utilizzo della CPU di ARCore. Valuta la possibilità di disabilitare eventuali funzionalità inutilizzate nei casi in cui l'esperienza AR non le richieda. In questo modo saranno disponibili cicli della CPU aggiuntivi per la tua app e miglioreranno le prestazioni termiche e la durata della batteria.

Per ulteriori informazioni, consulta le considerazioni sul rendimento.

best practice

Suggerimenti per la scelta delle immagini di riferimento

  • La risoluzione dell'immagine deve essere di almeno 300 x 300 pixel. L'utilizzo di immagini ad alta risoluzione non migliora le prestazioni.
  • Le immagini di riferimento possono essere fornite in formato file PNG o JPEG.
  • Le informazioni sul colore non vengono utilizzate. Le immagini a colori e le immagini in scala di grigi equivalenti possono essere utilizzate come immagini di riferimento o dagli utenti in fase di runtime.
  • Evita immagini con un'elevata compressione, in quanto ciò interferisce con l'estrazione delle caratteristiche.
  • Evita immagini con un numero elevato di elementi geometrici o pochissime funzionalità (ad es. codici a barre, codici QR, loghi e altri disegni) poiché ciò comprometterà le prestazioni di rilevamento e monitoraggio.
  • Evita immagini con pattern ripetuti, poiché ciò può causare problemi di rilevamento e tracciamento.
  • Utilizza lo strumento arcoreimg incluso nell'SDK ARCore per ottenere un punteggio di qualità compreso tra 0 e 100 per ogni immagine. Consigliamo un punteggio di qualità di almeno 75. Ecco due esempi:

    Immagine di esempio 1 Immagine di esempio 2
    Punteggio: 0 Punteggio: 100
    contiene elementi geometrici ripetitivi risoluzione sufficiente; contiene molte caratteristiche uniche

Suggerimenti per la creazione del database di immagini

  • Usa lo strumento arcoreimg per Android per generare un file di database di immagini. Questo strumento è disponibile solo per lo sviluppo di NDK in Android. È integrata nell'SDK Unity e nel plug-in ARCore Unreal.
  • Il database archivia una rappresentazione compressa delle caratteristiche estratte dai dati in scala di grigi nelle immagini di riferimento. Ogni voce di immagine occupa circa 6 kB.
  • Sono necessari circa 30 ms per aggiungere un'immagine al database in fase di runtime.
    • Aggiungi immagini su un thread di lavoro per evitare di bloccare il thread dell'interfaccia utente.
    • In alternativa, se possibile, aggiungi le immagini in fase di compilazione usando lo strumento arcoreimg incluso nell'SDK ARCore.
  • Se conosci le dimensioni fisiche previste di un'immagine, specificale. Queste informazioni migliorano le prestazioni di rilevamento e tracciamento, in particolare per le immagini fisiche di grandi dimensioni (più di 75 cm).
  • Evita di tenere molte immagini inutilizzate nel database, perché l'impatto sulle prestazioni del sistema è leggermente inferiore a quello dell'aumento dell'utilizzo della CPU.

Suggerimenti per ottimizzare il monitoraggio

  • Se un'immagine non si sposterà mai dalla sua posizione iniziale (ad esempio un poster attaccato a una parete), puoi fissare un ancoraggio all'immagine per aumentare la stabilità del rilevamento.
  • Per il rilevamento iniziale, l'immagine fisica deve occupare almeno il 25% dell'immagine della videocamera. Puoi chiedere agli utenti di adattare l'immagine fisica all'inquadratura della fotocamera.
  • Non utilizzare le stime di posa e dimensioni dell'immagine fino a quando lo stato di monitoraggio dell'immagine non ha raggiunto il monitoraggio completo. Quando un'immagine viene inizialmente rilevata da ARCore e non sono state specificate le dimensioni fisiche previste, lo stato di monitoraggio viene messo in pausa. Ciò significa che ARCore ha riconosciuto l'immagine, ma non ha raccolto dati sufficienti per stimare la sua posizione nello spazio 3D.