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
- Terminer le développement Faire prendre en charge EasyAR par le casque.
- Lire Démarrage rapide pour comprendre comment utiliser le plugin EasyAR Sense Unity.
- Comprendre comment utiliser l'exemple de casque.
- Comprendre la configuration du projet Android.
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.
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.
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.
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 :
- La
disponibilitéde ExternalFrameSource- La
caméra virtuellede ExternalFrameSource
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éradu 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éradu ExternalFrameSource (sans vérifier l'exactitude des données)- Les
raw camera image datadans lesdonnées de trame de caméra- Le
timestampdans lesdonné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 datadanscamera frame dataintrinsicsdanscamera 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 datadans lesdonnées de trame de caméraintrinsicsdans lesdonné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)extrinsicsdans lesdonnées de trame de caméra- La cohérence des coordonnées du
device poseentre lesdonnées de trame de caméraet lesdonnées de trame de rendu- L'écart temporel du
device poseentre lesdonnées de trame de caméraet lesdonné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 poseet lesraw camera image datane sont pas synchronisés dans le temps - Le même
poseest utilisé dans lesdonnées de trame de caméraet lesdonné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 datadans lesdonnées de trame de la caméraintrinsicsdans lesdonnées de trame de la caméra(l'exactitude des données n'est pas entièrement garantie, l'algorithme tolérant certaines erreurs)extrinsicsdans lesdonnées de trame de la caméradevice posedans lesdonné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.
- Introduction à EasyAR Mega
- Ma bibliothèque de localisation est-elle utilisable ?
- Démarrage rapide avec l'exemple Unity d'EasyAR Mega
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 Originconstitue 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 :
- Signaler ces problèmes et leurs impacts potentiels à EasyAR
- 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