Guides spécifiques à la plate-forme
Android (Kotlin/Java)
Android NDK (C)
Unity (fondation de RA)
Unreal Engine
Les API Augmented Images d'ARCore vous permettent de créer des applications de RA capables de détecter et d'améliorer 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 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.
Au moment de l'exécution, ARCore recherche ces caractéristiques sur les surfaces planes de l'environnement de l'utilisateur. ARCore peut ainsi détecter ces images dans le monde et estimer leur position, leur orientation et leur taille si aucune n'est fournie.
Fonctionnalités
ARCore peut suivre jusqu'à 20 images simultanément. ARCore ne détecte ni ne suit pas simultanément plusieurs instances de la même image.
Chaque base de données d'images augmentées peut stocker des informations sur 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.
Vous pouvez ajouter des images à une base de données d'images augmentées au moment de l'exécution, jusqu'à la limite de 1 000 images par base de données. Vous pouvez 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 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 divergence entre la taille apparente ou réelle et la taille physique fournie.
ARCore peut répondre aux images suivantes et en effectuer le suivi:
Images fixes, comme une affiche accrochée au mur ou un magazine sur une table
Images en mouvement, comme une publicité sur un bus qui passe ou une image sur un objet plat tenu par l'utilisateur lorsqu'il bouge ses mains.
Dès 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" sa position et son orientation, même lorsque l'image sort temporairement de la vue 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 ne se déplace pas dans l'environnement.
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:
remplir au moins 25% du cadre de l'appareil photo à détecter initialement ;
être à plat (par exemple, il ne doit pas être plié ou enveloppé autour d'une bouteille) ;
Soyez bien visible par la caméra. Elles ne doivent pas être partiellement masquées, ni observées sous un angle fortement oblique, ni lorsque la caméra bouge trop rapidement en raison d'un flou directionnel.
Considérations liées à l'utilisation et aux performances du processeur
Selon les fonctionnalités ARCore déjà activées, l'activation des images augmentées peut augmenter l'utilisation du processeur d'ARCore. Pensez à désactiver les fonctionnalités inutilisées lorsque votre expérience RA n'en a pas besoin. Cela mettra des cycles de processeur supplémentaires à la disposition de 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 choisir 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 PNG ou JPEG.
- Les informations sur la couleur ne sont pas utilisées. Les images en couleur et les images é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 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, codes-barres, codes QR, logos et autres illustrations vectorielles) car cela entraînera de mauvaises performances de détection et de suivi.
- Évitez les images répétitives, car elles peuvent é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 entre0
et100
pour chaque image. Nous vous recommandons d'obtenir 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 éléments géométriques répétitifs ; résolution suffisante ; contient de nombreuses fonctionnalités uniques
Conseils pour créer la 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 Android et NDK Android. Il est intégré au SDK Unity et au plug-in Unreal ARCore.
- 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 au moment de l'exécution prend environ 30 ms.
- Ajoutez des images sur un thread de travail pour éviter de bloquer le thread d'interface utilisateur.
- 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 l'utilisation accrue du processeur a un léger impact sur les performances système.
Conseils pour optimiser le suivi
- Si votre image ne bougera jamais de sa position initiale (par exemple, un poster fixé à un mur), vous pouvez lui associer un ancrage pour améliorer 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 à adapter l'image physique au cadre de leur appareil photo.
- N'utilisez pas les estimations de posture et de taille de l'image tant que l'état de suivi de l'image n'est pas entièrement suivi. 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 qu'il n'a pas collecté suffisamment de données pour estimer son emplacement dans l'espace 3D.