Table of Contents

Exécution de la vérification (bring-up) de l'extension de casque

Pour qu'EasyAR fonctionne sur un appareil, la partie la plus importante et souvent la plus délicate est de s'assurer de l'exactitude des données d'entrée. Lors du premier lancement d'EasyAR sur un nouvel appareil, plus de 90% des problèmes sont causés par des données incorrectes.

Si possible, il est recommandé de vérifier directement l'exactitude des données en utilisant des méthodes de test sur l'appareil et ses interfaces, sans la présence d'EasyAR. Cet article présente quelques méthodes empiriques utilisant les fonctionnalités d'EasyAR pour vérifier les données. Ce processus peut aider à comprendre les données de trame d'entrée externe, mais comme EasyAR introduit lui-même des erreurs, utiliser ce système couplé pour valider l'exactitude des données n'est pas la meilleure approche.

Avant de commencer

Exécution des exemples de fonctions de base

Lors de la première exécution de la vérification EasyAR sur un appareil, il est nécessaire de s'assurer d'exécuter ces fonctions dans l'ordre, en particulier sans se précipiter pour exécuter Mega, car Mega présente une certaine tolérance aux pannes, et les problèmes peuvent être difficiles à détecter lors d'exécutions courtes ou dans des scénarios de réalité unique.

  1. Observez les informations de session affichées devant vous, assurez-vous qu'aucun incident inattendu ne se produit et vérifiez que le frame-count augmente continuellement.

  2. Exécutez Image, c'est-à-dire la fonction de suivi d'image, et comparez les résultats avec ceux obtenus sur un téléphone (il est recommandé de prendre l'iPhone comme référence). Portez une attention particulière à l'état du suivi et à l'affichage de la couverture de la cible.

    Lorsque la fusion de mouvement n'est pas activée, l'effet du suivi d'image présentera un décalage perceptible, ce qui est attendu. Le processus de mouvement doit être correct, et la position doit s'aligner lorsque l'appareil s'arrête.

  3. Exécutez Dense, c'est-à-dire la fonction de carte spatiale dense, et comparez les résultats avec ceux obtenus sur un téléphone (il est recommandé de prendre l'iPhone comme référence). Portez une attention particulière à la position du maillage, à sa vitesse de génération et à sa qualité.

    Si le taux de trame des données d'entrée est faible, la vitesse de génération du maillage ralentira, mais la qualité ne se dégradera pas de manière significative.

    Cette fonction ne peut pas fonctionner sur certains appareils Android, et la qualité du maillage varie également selon l'appareil.

Important

L'extension d'entrée utilisée par le package d'extension du casque est une implémentation de caméra personnalisée.

Lors de l'utilisation de produits d'évaluation (par exemple, licence personnelle, licence XR d'évaluation ou service Mega d'évaluation, etc.) sur des caméras ou casques personnalisés, EasyAR Sense cessera de répondre après 100 secondes à chaque démarrage (la durée peut être ajustée par EasyAR Business après approbation pour les utilisateurs Mega). L'utilisation d'EasyAR Sense dans sa version payante et du service Mega payant d'EasyAR n'est pas soumise à cette restriction.

Si Image et Dense fonctionnent aussi bien ou mieux que sur le téléphone, alors la plupart des fonctions d'EasyAR peuvent fonctionner normalement sur l'appareil, et vous pouvez commencer à tester Mega.

Résolution des situations anormales en cours d'exécution : décomposition du problème

Si vous ne parvenez pas à reproduire les mêmes résultats que sur le téléphone, voici un processus détaillé de décomposition du problème que vous pouvez suivre pour en identifier la cause racine. Il est recommandé de toujours surveiller la sortie du système de journalisation.

Étape zéro : Comprendre les erreurs intrinsèques du système du casque

Vous souvenez-vous des exigences en matière de suivi des mouvements et d'affichage décrites dans Préparer l'appareil pour la RA/RM ?

Important

Les erreurs de suivi des mouvements/VIO affecteront toujours la stabilité des algorithmes EasyAR de différentes manières.

Important

Les erreurs du système d'affichage peuvent empêcher un alignement parfait entre les objets virtuels et les objets réels.

Dans certains cas où l'erreur est importante, les objets virtuels peuvent sembler suspendus au-dessus ou en dessous des objets réels, puis (sembler) dériver constamment. Ce phénomène peut être observé sur le Pico 4E, même sans utiliser EasyAR et simplement en ouvrant son propre VST.

Étape un : Vérifier l'état d'exécution de la session

Les messages UI sur l'état de la session indiquent les fonctionnalités ou données qui doivent être normales :

Si les informations sur l'état de la session ne s'affichent pas, essayez de modifier l'option en Log puis lisez l'état de la session et le nom de la source d'images utilisée dans les journaux système.

Vous pouvez essayer de supprimer toutes les autres sources d'images sous le nœud ARSession, puis observer s'il y a des changements.

Étape deux : Vérifier le décompte des trames de caméra reçues par EasyAR

Fonctionnalités ou données qui doivent fonctionner normalement :

  • La voie de transmission des données de trame de caméra du ExternalFrameSource au niveau du code Unity (excluant l'exactitude des données et la transmission vers la couche native)

Ce décompte doit augmenter avec le temps, sinon un avertissement s'affichera après quelques secondes.

S'il est constaté que ce nombre n'augmente pas, cela doit être corrigé en premier lieu.

Étape trois : Enregistrer un EIF sur l'appareil, puis le rejouer dans l'éditeur Unity

Fonctionnalités ou données qui doivent fonctionner normalement :

  • Le passage en couche native de l'entrée données de trame de caméra du ExternalFrameSource (sans vérifier l'exactitude des données)
  • Les raw camera image data dans les données de trame de caméra
  • Le timestamp dans les données de trame de caméra (excluant la synchronisation temporelle et des données)

Cliquez sur EIF pour démarrer l'enregistrement, cliquez à nouveau pour arrêter.

Astuce

L'enregistrement doit être arrêté correctement pour obtenir un fichier EIF indexable de manière aléatoire.

Il est préférable d'utiliser une scène EasyAR propre ou un exemple EasyAR lors de l'exécution des données EIF dans l'éditeur Unity pour éviter des configurations incorrectes dans la scène.

On peut voir la lecture des données de trame de caméra dans l'éditeur Unity. Les données d'image ne sont pas des copies octet par octet ; un codage avec perte intervient dans le flux.

EasyAR utilise les paramètres de distorsion dans les calculs mais n'applique pas de correction de distorsion à l'affichage. Ainsi, si ces données sont fournies, lorsqu'on relit un fichier EIF dans Unity, on observera des données sans correction de distorsion, ce qui est attendu.

Astuce

Modifiez le rapport d'aspect de la fenêtre de jeu Unity pour qu'il corresponde à l'entrée, sinon les données seront rognées à l'affichage.

Si la lecture des données est trop rapide ou trop lente, vérifiez l'entrée du timestamp.

Note

Les EIF permettent de faire beaucoup de choses : on peut exécuter le suivi d'image et la carte spatiale dense dans l'éditeur Unity à l'aide d'un EIF. Notez que l'affichage lors de l'exécution sur l'appareil peut être différent.

Étape quatre : exécuter le suivi d'image avec eif

Fonctionnalités ou données obligatoires :

  • raw camera image data dans camera frame data
  • intrinsics dans camera frame data (l'exactitude des données n'est pas entièrement garantie, l'algorithme tolérant certaines erreurs)

Pour exécuter l'exemple de suivi d'image ImageTracking_Targets avec eif dans l'éditeur unity, enregistrez un eif où une image peut être suivie.

Note

Le suivi d'image nécessite que la cible à suivre occupe une proportion significative de l'image. Si le suivi échoue, essayez de rapprocher votre tête de l'image.

Si le suivi échoue continuellement ou si l'objet virtuel apparaît loin de la cible dans l'image, il est probable que les intrinsics posent problème.

Si les données d'image présentent une distorsion, vous pourriez observer que l'objet virtuel ne recouvre pas parfaitement la cible de suivi sur l'image, ce qui est attendu. Ce phénomène est plus prononcé lorsque la cible de suivi se trouve au bord de l'image.

Étape 5 : Exécuter le suivi d'images sur l'appareil

Fonctionnalités ou données nécessaires au fonctionnement normal :

  • Le système d'affichage propre à l'appareil
  • raw camera image data dans les données de trame de caméra
  • intrinsics dans les données de trame de caméra (l'exactitude des données n'est pas entièrement garantie, car l'algorithme tolère une certaine marge d'erreur)
  • extrinsics dans les données de trame de caméra
  • La cohérence des coordonnées du device pose entre les données de trame de caméra et les données de trame de rendu
  • L'écart temporel du device pose entre les données de trame de caméra et les données de trame de rendu
Note

Le suivi d'images nécessite que la cible à suivre occupe une certaine proportion de l'image entière. Si vous ne parvenez pas à suivre l'image, essayez de déplacer votre tête plus près de l'image.

Le suivi d'images nécessite que la longueur latérale de l'image corresponde à la taille réelle de l'objet dans le monde physique. Dans l'exemple, il faut suivre une image dont la longueur latérale remplit complètement le côté long d'une feuille A4 placée horizontalement. Par conséquent, ne suivez pas une image affichée sur un écran d'ordinateur, sauf si vous utilisez une règle et ajustez la longueur latérale de l'image à la taille A4 en vous référant à cette règle.

Si le suivi d'images fonctionne parfaitement avec l'EIF mais pas sur l'appareil, cela doit être résolu avant de poursuivre d'autres tests. Il est beaucoup plus difficile de résoudre les problèmes dans les étapes ultérieures.

Si un objet virtuel flotte et s'affiche loin de l'objet réel, et que cela persiste même lorsque la personne ne bouge pas, il est fort probable que les intrinsics ou extrinsics soient incorrects, ou que le device pose dans les données de trame de caméra et les données de trame de rendu ne soit pas dans le même système de coordonnées, ou que le système d'affichage génère cette erreur.

Si l'objet virtuel bouge continuellement lorsque vous déplacez votre tête et semble présenter un décalage (latence), il est très probable que le device pose ne soit pas sain. Cela se produit souvent dans plusieurs cas (sans exclure la possibilité d'autres problèmes) :

  • Le device pose et les raw camera image data ne sont pas synchronisés dans le temps
  • Le même pose est utilisé dans les données de trame de caméra et les données de trame de rendu

Étape 6 : Utiliser EIF et exécuter la carte spatiale dense sur l'appareil

Fonctionnalités ou données nécessaires au bon fonctionnement :

  • Système d'affichage propre à l'appareil
  • raw camera image data dans les données de trame de la caméra
  • intrinsics dans les données de trame de la caméra (l'exactitude des données n'est pas entièrement garantie, l'algorithme tolérant certaines erreurs)
  • extrinsics dans les données de trame de la caméra
  • device pose dans les données de trame de la caméra

Si la génération du maillage est très lente et/ou que la reconstruction du sol est irrégulière, il est fort probable que le device pose pose problème. Il est également possible que le système de coordonnées de la pose soit incorrect ou que l'horodatage de la pose soit erroné.

Astuce

Si le taux d'images des données d'entrée est faible, la génération du maillage sera également plus lente, mais la qualité ne se dégradera pas de manière significative. Ce comportement est attendu.

Il n'est généralement pas très facile de discerner les positions exactes du maillage, donc les erreurs du système d'affichage peuvent ne pas être observables lors de l'utilisation de la carte spatiale dense.

Exécuter l'exemple mega

Lisez ce qui suit pour apprendre à utiliser Mega dans Unity. Si vous n'avez pas encore activé le service Mega, contactez le commercial d'EasyAR pour obtenir un essai.

Exécutez ensuite Mega sur l'appareil, et comparez avec l'effet d'exécution sur un téléphone (il est recommandé de prendre l'iPhone comme référence). Portez attention aux points suivants :

  • L'affichage des objets est-il à la bonne position ?
  • Les objets éloignés (10M et au-delà) sont-ils affichés à la bonne position et taille ?
  • Les objets en dehors du centre du champ de vision sont-ils affichés à la bonne position et taille ?
  • Lorsque vous tournez la tête, les objets sont-ils affichés à la bonne position et taille ?

Résoudre les anomalies en cours d'exécution

Fonctionnalités ou données devant obligatoirement fonctionner normalement :

  • Le système d'affichage de l'appareil lui-même
  • Toutes les données dans 相机帧数据 et 渲染帧数据

Après avoir validé les fonctionnalités de suivi d'image et de cartographie spatiale dense, EasyAR Mega devrait théoriquement être pris en charge. Si les performances sur le casque sont nettement inférieures à celles sur mobile, portez attention aux éléments suivants :

  • Vérifiez les données de pose (pose) et d'horodatage (timestamp) dans 相机帧数据 et 渲染帧数据
  • Surveillez la sortie du système de suivi de mouvement/VIO. Le panda sous XR Origin constitue une bonne référence.

Portez également une attention particulière au système d'affichage de l'appareil lui-même, notamment pour les objets éloignés, hors du centre du champ de vision, ou lors des rotations de la tête. Ces scénarios sont souvent négligés lors des tests internes des appareils, mais les problèmes restent généralement liés à leur système d'affichage. Vous devez :

  1. Signaler ces problèmes et leurs impacts potentiels à EasyAR
  2. Fournir aux développeurs des attentes réalistes quant aux résultats
Important

Les utilisateurs accordent une grande importance à ces problèmes d'affichage, et de nombreux appareils ne peuvent offrir un rendu parfait dans les grands espaces. EasyAR ne peut résoudre les problèmes d'affichage propres à l'appareil – cela relève des fabricants. Les utilisateurs doivent comprendre ces limitations.

Étapes suivantes

Sujets associés

Exemples exécutables sur mobile :

  • Exemple de suivi d'image ImageTracking_Targets, pour comprendre le fonctionnement attendu de la fonctionnalité suivi d'image
  • Exemple de carte spatiale dense SpatialMap_Dense_BallGame, pour comprendre le fonctionnement attendu de la fonctionnalité carte spatiale dense
  • Exemple de fusion de mouvement ImageTracking_MotionFusion, pour comprendre le fonctionnement attendu de la fonctionnalité fusion de mouvement
  • Exemple Mega MegaBlock_Basic, pour comprendre le fonctionnement attendu de la fonctionnalité Mega