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'enrichir les 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 à partir 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 Augmented Image.

Au moment de l'exécution, ARCore recherche ces fonctionnalités sur des surfaces planes dans l'environnement de l'utilisateur. Cela permet à ARCore de détecter ces images dans le monde 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 pas 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 jusqu'à 1 000 images de référence. Le nombre de bases de données n'est pas limité, mais une seule peut être active à la fois.

Des images peuvent être ajoutées à une base de données d'images augmentées au moment 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, il est possible de fournir la taille physique de l'image à 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, telles qu'une gravure suspendue au mur ou un magazine posé sur une table

  • Images en mouvement, telles qu'une publicité dans un bus qui passe 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 pour chaque image. ARCore affine continuellement ces estimations à mesure qu'il collecte plus de données.

Une fois qu'une image est détectée, ARCore continue de "suivre" la position et l'orientation de l'image, même lorsque l'image sort temporairement de la vue de l'appareil photo 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 ne se déplace pas dans l'environnement.

Tout le suivi a lieu sur l'appareil. Aucune connexion Internet n'est requise pour détecter et suivre les images.

Conditions requises

Les images doivent respecter les exigences suivantes:

  • Remplissez au moins 25% du cadre de l'appareil photo pour que celui-ci soit détecté initialement.

  • être à plat (pas froissé ni enveloppé autour d'un biberon, par exemple) ;

  • Soyez bien visible sur la caméra. Elles ne doivent pas être partiellement obscurcies, vues selon un angle fortement oblique, ni vues lorsque la caméra se déplace trop rapidement en raison d'un flou directionnel.

Considérations relatives à l'utilisation et aux performances du processeur

Selon les fonctionnalités ARCore déjà activées, l'activation de Augmented Images peut augmenter l'utilisation du processeur d'ARCore. Envisagez de désactiver toutes les fonctionnalités inutilisées lorsque votre expérience de RA n'en a pas besoin. Vous disposerez ainsi de cycles de processeur supplémentaires pour votre application, et améliorerez les performances thermiques et l'autonomie de la batterie.

Pour en savoir plus, consultez les considérations relatives aux performances.

Bonnes pratiques

Conseils pour la sélection d'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 équivalentes en nuances de gris peuvent être utilisées comme images de référence ou par les utilisateurs au moment de l'exécution.
  • Évitez les images soumises à une compression importante, car cela interfère avec l'extraction de caractéristiques.
  • Évitez les images contenant un grand nombre ou très peu de caractéristiques géométriques (par exemple, des codes-barres, des codes QR, des logos et d'autres dessins au trait), car cela nuit aux performances de détection et de suivi.
  • Évitez les images présentant 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 niveau de qualité compris entre 0 et 100 pour chaque image. Nous vous recommandons de définir un niveau de qualité d'au moins 75. Voici deux exemples :

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

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

  • Utilisez l'outil arcoreimg pour Android pour générer un fichier de base de données d'images. Cet outil n'est disponible que pour le développement NDK Android et 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 des images de référence. Chaque entrée d'image occupe environ 6 Ko.
  • L'ajout d'une image à la base de données prend environ 30 ms au moment de l'exécution.
    • Ajoutez des images à un thread de nœud de calcul 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 images physiques volumineuses (plus de 75 cm).
  • Évitez de conserver de nombreuses images inutilisées dans la base de données, car cela affecte légèrement les performances du système en raison de l'augmentation de l'utilisation du processeur.

Conseils pour optimiser le suivi

  • Si votre image ne change jamais de sa position initiale (par exemple, un poster fixé à un mur), vous pouvez y ajouter une ancre afin d'améliorer la stabilité du suivi.
  • L'image physique doit occuper au moins 25% de l'image de l'appareil photo pour la détection initiale. Vous pouvez inviter les utilisateurs à adapter l'image physique au cadre de leur appareil photo.
  • N'utilisez pas les estimations de position et de taille de l'image tant que l'état de suivi de l'image n'est pas complet. Lorsqu'une image est détectée pour la première fois par ARCore et qu'aucune taille physique attendue n'est 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 sa position dans l'espace 3D.