Ajouter des dimensions aux images

Guides spécifiques à la plate-forme

Les API Augmented Images d'ARCore vous permettent de créer des applications de RA capables de détecter et d'augmenter des images 2D dans l'environnement de l'utilisateur, comme des affiches ou des emballages de produits.

Vous fournissez un ensemble d'images de référence. ARCore utilise un algorithme de vision par ordinateur pour extraire des caractéristiques des informations en niveaux de gris de chaque image et stocke une représentation de ces caractéristiques dans une ou plusieurs bases de données d'images augmentées.

Lors de l'exécution, ARCore recherche ces caractéristiques sur des surfaces planes dans l'environnement de l'utilisateur. Cela permet à ARCore de détecter ces images dans le monde réel et d'estimer leur position, leur orientation et leur taille si aucune n'est fournie.

Capacités

ARCore peut suivre jusqu'à 20 images simultanément. ARCore ne détecte ni ne suit simultanément plusieurs instances de la même image.

Chaque base de données d'images augmentées peut stocker des informations sur un maximum de 1 000 images de référence. Le nombre de bases de données n'est pas limité, mais une seule base de données peut être active à un moment donné.

Des images peuvent être ajoutées à une base de données d'images augmentées lors de l'exécution, dans la limite de 1 000 images par base de données. Il est possible de télécharger des bases de données créées précédemment à l'aide d'une connexion réseau.

Lorsque vous ajoutez une image, vous pouvez fournir sa taille physique à détecter. Cela améliorera les performances de détection des images.

  • Si aucune taille physique n'est fournie, ARCore estime la taille et affine cette estimation au fil du temps.

  • Si une taille physique est fournie, ARCore utilise la taille fournie et estime la position et l'orientation de l'image, en ignorant toute différence entre la taille apparente ou réelle et la taille physique fournie.

ARCore peut répondre aux images suivantes et les suivre :

  • Images fixes, comme un tirage accroché à un mur ou un magazine sur une table

  • Images en mouvement, comme une publicité sur un bus ou une image sur un objet plat tenu par l'utilisateur lorsqu'il déplace ses mains

Une fois qu'ARCore commence à suivre une image, il fournit des estimations de la position et de l'orientation de l'image à chaque image. ARCore affine continuellement ces estimations à mesure qu'il collecte davantage de données.

Une fois qu'une image est détectée, ARCore continue de "suivre" sa position et son orientation, même lorsqu'elle sort temporairement du champ de vision de la caméra parce que l'utilisateur a déplacé son appareil. Dans ce cas, ARCore suppose que la position et l'orientation de l'image sont statiques et que l'image elle-même ne se déplace pas dans l'environnement.

Le suivi s'effectue sur l'appareil. Aucune connexion Internet n'est requise pour détecter et suivre des images.

Conditions requises

Les images doivent :

  • remplir au moins 25% du cadre de la caméra pour être détectées initialement ;

  • être plates (par exemple, ne pas être froissées ni enroulées autour d'une bouteille) ;

  • être clairement visibles par la caméra. Elles ne doivent pas être partiellement masquées, vues sous un angle très oblique ou vues lorsque la caméra se déplace trop rapidement en raison du flou de bougé.

Utilisation du processeur et considérations sur les performances

Selon les fonctionnalités ARCore déjà activées, l'activation des images augmentées peut augmenter l'utilisation du processeur par ARCore. Envisagez de désactiver les fonctionnalités inutilisées lorsque votre expérience de RA n'en a pas besoin. Cela libérera des cycles de processeur supplémentaires pour votre application et améliorera les performances thermiques et l'autonomie de la batterie.

Pour en savoir plus, consultez la section Considérations sur les performances.

Bonnes pratiques

Conseils pour sélectionner des images de référence

  • La résolution de l'image doit être d'au moins 300 x 300 pixels. L'utilisation d'images haute résolution n'améliore pas les performances.
  • Les images de référence peuvent être fournies au format de fichier PNG ou JPEG.
  • Les informations sur les couleurs ne sont pas utilisées. Les images en couleur et les images en niveaux de gris équivalentes peuvent être utilisées comme images de référence ou par les utilisateurs lors de l'exécution.
  • Évitez les images fortement compressées , car cela interfère avec l'extraction des caractéristiques.
  • Évitez les images contenant un grand nombre de caractéristiques géométriques ou très peu de caractéristiques (par exemple, les codes-barres, les QR codes, les logos et autres dessins au trait), car cela entraînera de mauvaises performances de détection et de suivi.
  • Évitez les images avec des motifs répétitifs , car cela peut également entraîner des problèmes de détection et de suivi.
  • Utilisez l'outil arcoreimg inclus dans le SDK ARCore pour obtenir un score de qualité compris entre 0 et 100 pour chaque image. Nous vous recommandons un score de qualité d'au moins 75. Voici deux exemples :

    Exemple d'image 1 Exemple d'image 2
    Score: 0 Score: 100
    contient des caractéristiques géométriques répétitives résolution suffisante ; contient de nombreuses caractéristiques uniques

Conseils pour créer la base de données d'images

  • Utilisez l'outil arcoreimg pour Android afin de générer un fichier de base de données d'images. Cet outil n'est disponible que pour le développement Android et NDK Android. Il est intégré au SDK Unity et au plug-in ARCore Unreal.
  • La base de données stocke une représentation compressée des caractéristiques extraites des données en niveaux de gris dans les images de référence. Chaque entrée d'image occupe environ 6 Ko.
  • L'ajout d'une image à la base de données lors de l'exécution prend environ 30 ms.
    • Ajoutez des images sur un thread de travail pour éviter de bloquer le thread UI.
    • Si possible, ajoutez des images au moment de la compilation à l'aide de l'outil arcoreimg inclus dans le SDK ARCore.
  • Si vous connaissez la taille physique attendue d'une image, spécifiez-la. Ces informations améliorent les performances de détection et de suivi, en particulier pour les grandes images physiques (plus de 75 cm).
  • Évitez de conserver de nombreuses images inutilisées dans la base de données, car cela a un léger impact sur les performances du système en raison de l'augmentation de l'utilisation du processeur.

Conseils pour optimiser le suivi

  • Si votre image ne bouge jamais de sa position initiale (par exemple, une affiche fixée à un mur), vous pouvez y associer une ancre pour augmenter la stabilité du suivi.
  • L'image physique doit occuper au moins 25% de l'image de la caméra pour la détection initiale. Vous pouvez inviter les utilisateurs à ajuster l'image physique dans le cadre de leur caméra.
  • N'utilisez pas les estimations de pose et de taille de l'image tant que l'état de suivi de l'image n'est pas "Suivi complet". Lorsqu'une image est détectée initialement par ARCore et qu'aucune taille physique attendue n'a été spécifiée, son état de suivi est mis en pause. Cela signifie qu'ARCore a reconnu l'image, mais n'a pas collecté suffisamment de données pour estimer son emplacement dans l'espace 3D.