Guide specifiche per la piattaforma
Android (Kotlin/Java)
Android NDK (C)
Unity (AR Foundation)
Motore irreale
Le API Augmented Images in ARCore ti consentono di creare app AR che possono rilevare e migliorare le immagini 2D nell'ambiente dell'utente, ad esempio poster o imballaggi dei prodotti.
Fornisci una serie di immagini di riferimento. ARCore utilizza un algoritmo di visione artificiale per estrarre elementi dalle informazioni in scala di grigi di ogni immagine e archivia una rappresentazione di questi elementi in uno o più database di immagini aumentate.
In fase di runtime, ARCore cerca queste funzionalità sulle superfici piane dell'ambiente dell'utente. In questo modo, ARCore può rilevare queste immagini nel mondo e stimarne la posizione, l'orientamento e le dimensioni, se non vengono fornite.
Funzionalità
ARCore può monitorare fino a 20 immagini contemporaneamente. ARCore non rileva o monitora contemporaneamente più istanze della stessa immagine.
Ogni database di immagini aumentate può memorizzare informazioni su un massimo di 1000 immagini di riferimento. Non è previsto alcun limite al numero di database, ma in un determinato momento può essere attivo un solo database.
Le immagini possono essere aggiunte a un database di immagini aumentate in fase di esecuzione, fino al limite di 1000 immagini per database. È possibile scaricare i database creati in precedenza utilizzando una connessione di rete.
Quando aggiungi un'immagine, è possibile fornire le dimensioni fisiche dell'immagine da rilevare. Ciò migliorerà le prestazioni di rilevamento delle immagini.
Se non vengono fornite dimensioni fisiche, ARCore le stima e le perfeziona nel tempo.
Se viene fornita una dimensione fisica, ARCore la utilizza e stima la posizione e l'orientamento dell'immagine, ignorando qualsiasi discrepanza tra le dimensioni apparenti o effettive e quelle fisiche fornite.
ARCore può rispondere e monitorare le immagini che sono:
Immagini fisse, ad esempio una stampa appesa a una parete o un rivista su un tavolo
Immagini in movimento, ad esempio una pubblicità su un autobus in transito o un'immagine su un oggetto piatto tenuto dall'utente mentre muove le mani.
Quando ARCore inizia a monitorare un'immagine, fornisce delle stime per la posizione e l'orientamento dell'immagine per ogni frame. ARCore perfeziona continuamente queste stime man mano che raccoglie più dati.
Una volta rilevata un'immagine, ARCore continua a "monitorare" la posizione e l'orientamento dell'immagine, anche quando l'immagine esce temporaneamente dal campo visivo della fotocamera perché l'utente ha spostato il dispositivo. In questo caso, ARCore presuppone che la posizione e l'orientamento dell'immagine siano statici e che l'immagine non si sposti 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% del frame della videocamera per essere rilevato inizialmente.
Essere piatto (ad esempio, senza pieghe o avvolti intorno a una bottiglia).
Assicurarsi che la videocamera sia ben visibile. Non devono essere parzialmente coperti, visti da un'angolazione molto obliqua o quando la videocamera si muove troppo velocemente a causa della sfocatura in movimento.
Considerazioni sull'utilizzo della CPU e sulle prestazioni
A seconda delle funzionalità ARCore già attivate, l'attivazione di Immagini aumentate potrebbe aumentare l'utilizzo della CPU di ARCore. Valuta la possibilità di disattivare le funzionalità non utilizzate quando la tua esperienza AR non le richiede. In questo modo, verranno messi a disposizione della tua app cicli CPU aggiuntivi e verranno migliorate le prestazioni termiche e la durata della batteria.
Per ulteriori informazioni, consulta considerazioni sul rendimento.
Best practice
Suggerimenti per la selezione 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 il rendimento.
- Le immagini di riferimento possono essere fornite nel formato file PNG o JPEG.
- Le informazioni sul colore non vengono utilizzate. Sia le immagini a colori che quelle in scala di grigi equivalenti possono essere utilizzate come immagini di riferimento o dagli utenti in fase di esecuzione.
- Evita le immagini con una compressione elevata, in quanto interferiscono con l'estrazione delle funzionalità.
- Evita immagini che contengono un numero elevato di elementi geometrici o pochissimi elementi (ad es. codici a barre, codici QR, loghi e altri disegni a linee), in quanto ciò comporterebbe un cattivo rendimento del rilevamento e del monitoraggio.
- Evita immagini con pattern ricorrenti, poiché ciò può causare problemi di rilevamento e monitoraggio.
Utilizza lo strumento
arcoreimg
incluso nell'SDK ARCore per ottenere un punteggio di qualità tra0
e100
per ogni immagine. Consigliamo un punteggio di qualità di almeno 75. Di seguito sono riportati due esempi:Immagine di esempio 1 Immagine di esempio 2 Punteggio: 0
Punteggio: 100
contiene elementi geometrici ripetitivi Risoluzione sufficiente; contiene molte funzionalità uniche
Suggerimenti per la creazione del database di immagini
- Utilizza lo strumento arcoreimg per Android per generare un file del database delle immagini. Questo strumento è disponibile solo per lo sviluppo Android e Android NDK. È integrato nell'SDK Unity e nel plug-in ARCore Unreal.
- Il database memorizza una rappresentazione compressa delle funzionalità estratte dai dati in scala di grigi nelle immagini di riferimento. Ogni voce dell'immagine occupa circa 6 KB.
- Sono necessari circa 30 ms per aggiungere un'immagine al database in fase di esecuzione.
- Aggiungi le immagini in un thread di lavoro per evitare di bloccare il thread dell'interfaccia utente.
- In alternativa, se possibile, aggiungi le immagini in fase di compilazione utilizzando lo strumento
arcoreimg
incluso nell'SDK ARCore.
- Se conosci le dimensioni fisiche previste di un'immagine, specificala. Queste informazioni migliorano il rilevamento e il monitoraggio, in particolare per le immagini fisiche di grandi dimensioni (oltre 75 cm).
- Evita di conservare nel database molte immagini inutilizzate, poiché esiste un leggero impatto sulle prestazioni del sistema dovuto all'aumento dell'utilizzo della CPU.
Suggerimenti per ottimizzare il monitoraggio
- Se l'immagine non si sposta mai dalla sua posizione iniziale (ad esempio, un poster fissato a una parete), puoi agganciare un ancoraggio all'immagine per aumentare la stabilità del monitoraggio.
- L'immagine fisica deve occupare almeno il 25% dell'immagine della fotocamera per il rilevamento iniziale. Puoi chiedere agli utenti di adattare l'immagine fisica al frame della fotocamera.
- Non utilizzare le stime della posa e delle dimensioni dell'immagine finché lo stato di monitoraggio dell'immagine non è monitoraggio completo. Quando un'immagine viene inizialmente rilevata da ARCore e non è stata specificata alcuna dimensione fisica prevista, il suo stato di monitoraggio viene messo in pausa. Ciò significa che ARCore ha riconosciuto l'immagine, ma non ha raccolto dati sufficienti per stimarne la posizione nello spazio 3D.