Guide specifiche per piattaforma
Android (Kotlin/Java)
Android NDK (C)
Unity (AR Foundation)
Unreal Engine
Le API Immagini aumentate in ARCore ti consentono di creare app di AR in grado di rilevare e aumentare le immagini 2D nell'ambiente dell'utente, ad esempio poster o confezioni di prodotti.
Fornisci un insieme di immagini di riferimento. ARCore utilizza un algoritmo di visione artificiale per estrarre le funzionalità dalle informazioni in scala di grigi di ogni immagine e archivia una rappresentazione di queste funzionalità in uno o più database di immagini aumentate.
In fase di runtime, ARCore cerca queste funzionalità sulle superfici piane nell'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 né monitora 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 in un determinato momento può essere attivo un solo database.
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 i database creati in precedenza utilizzando una connessione di rete.
Quando aggiungi un'immagine, puoi fornire le dimensioni fisiche dell'immagine da rilevare. In questo modo, le prestazioni di rilevamento delle immagini migliorano.
Se non vengono fornite dimensioni fisiche, ARCore stima le dimensioni e perfeziona questa stima nel tempo.
Se vengono fornite dimensioni fisiche, ARCore utilizza le dimensioni fornite e stima la posizione e l'orientamento dell'immagine, ignorando qualsiasi discrepanza tra le dimensioni apparenti o effettive e le dimensioni fisiche fornite.
ARCore può rispondere e monitorare le immagini che sono:
Immagini fisse, ad esempio una stampa appesa a una parete o una rivista su un tavolo
Immagini in movimento, ad esempio una pubblicità su un autobus di passaggio o un'immagine su un oggetto piatto tenuto dall'utente mentre muove le mani.
Una volta che ARCore inizia a monitorare un'immagine, fornisce stime della posizione e dell'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 si sposta temporaneamente fuori dall'inquadratura 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 stessa non si stia muovendo nell'ambiente.
Tutto il monitoraggio avviene sul dispositivo. Non è necessaria una connessione a internet per rilevare e monitorare le immagini.
Requisiti
Le immagini devono:
Riempire almeno il 25% del frame della videocamera per essere rilevate inizialmente.
Essere piatte (ad esempio, non stropicciate o avvolte attorno a una bottiglia).
Essere ben visibili dalla videocamera. Non devono essere parzialmente oscurate, visualizzate con un angolo molto obliquo o visualizzate quando la videocamera si muove troppo velocemente a causa della sfocatura dovuta al 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à inutilizzate nei momenti in cui la tua esperienza di realtà aumentata non le richiede. In questo modo, la tua app avrà a disposizione cicli di CPU aggiuntivi e le prestazioni termiche e la durata della batteria miglioreranno.
Per ulteriori informazioni, vedi 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 le prestazioni.
- Le immagini di riferimento possono essere fornite in formato file PNG o JPEG.
- Le informazioni sul colore non vengono utilizzate. Sia le immagini a colori sia le immagini in scala di grigi equivalenti possono essere utilizzate come immagini di riferimento o dagli utenti in fase di runtime.
- Evita le immagini con una compressione elevata perché interferisce con l'estrazione delle funzionalità.
- Evita le immagini che contengono un numero elevato di funzionalità geometriche o pochissime funzionalità (ad es. codici a barre, codici QR, loghi e altre illustrazioni a tratto) perché le prestazioni di rilevamento e monitoraggio saranno scarse.
- Evita le immagini con pattern ripetuti perché possono causare problemi di rilevamento e monitoraggio.
Utilizza lo strumento
arcoreimgincluso nell'SDK ARCore per ottenere un punteggio di qualità compreso tra0e100per ogni immagine. Ti consigliamo di utilizzare un punteggio di qualità di almeno 75. Ecco due esempi:Esempio di immagine 1 Esempio di immagine 2 

Punteggio: 0Punteggio: 100Contiene funzionalità geometriche ripetitive Risoluzione sufficiente; contiene molte funzionalità uniche
Suggerimenti per la creazione del database di immagini
- Utilizza lo strumento arcoreimg per Android per generare un file di database di immagini. Questo strumento è disponibile solo per lo sviluppo di Android e Android NDK. È integrato nell'SDK Unity e nel plug-in ARCore Unreal.
- Il database archivia una rappresentazione compressa delle funzionalità estratte dai dati in scala di grigi nelle immagini di riferimento. Ogni voce immagine occupa circa 6 kB.
- L'aggiunta di un'immagine al database in fase di runtime richiede circa 30 ms.
- Aggiungi le immagini a 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
arcoreimgincluso nell'SDK ARCore.
- Se conosci le dimensioni fisiche previste di un'immagine, specificale. Queste informazioni migliorano le prestazioni di rilevamento e monitoraggio, soprattutto per le immagini fisiche di grandi dimensioni (oltre 75 cm).
- Evita di conservare molte immagini inutilizzate nel database perché l'utilizzo della CPU aumenta leggermente, con un impatto sulle prestazioni del sistema.
Suggerimenti per l'ottimizzazione del monitoraggio
- Se l'immagine non si sposterà mai dalla sua posizione iniziale (ad esempio, un poster affisso a una parete), puoi collegare un ancoraggio all'immagine per aumentare la stabilità del monitoraggio.
- L'immagine fisica deve occupare almeno il 25% dell'immagine della videocamera per il rilevamento iniziale. Puoi chiedere agli utenti di adattare l'immagine fisica al frame della videocamera.
- 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 rilevata inizialmente 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 stimarne la posizione nello spazio 3D.