Table of Contents

Bring-up für das Headset-Extension-Paket

Für EasyAR auf einem Gerät zum Laufen zu bringen, ist die wichtigste und zugleich schwierigste Aufgabe die Sicherstellung der Korrektheit der Eingangsdaten. Beim ersten Start von EasyAR auf einem neuen Gerät entstehen über 90 % der Probleme durch falsche Daten.

Wenn möglich, empfiehlt es sich, vor der Verwendung von EasyAR die Daten mit Testmethoden direkt über das Gerät und seine Schnittstellen zu prüfen. Dieses Dokument stellt einige praktische Methoden vor, mit denen Sie Daten mithilfe von EasyAR-Funktionen überprüfen können. Der Prozess hilft beim Verständnis von externen Eingabe-Frame-Daten. Da EasyAR selbst jedoch auch Fehler aufweist, ist die Überprüfung der Datenqualität in diesem gekoppelten System nicht die beste Wahl.

Vor dem Start

Grundlegende Funktionsbeispiele ausführen

Wenn Sie EasyAR zum ersten Mal auf dem Gerät validieren, müssen Sie diese Funktionen in der richtigen Reihenfolge ausführen. Starten Sie insbesondere nicht zu früh mit Mega, da Mega einige Toleranzen hat und Probleme bei kurzer Laufzeit oder in einer einzelnen realen Szene schwer zu erkennen sind.

  1. Beobachten Sie die angezeigten Session-Informationen und stellen Sie sicher, dass keine unerwarteten Situationen auftreten und dass der Frame-Count kontinuierlich steigt.

  2. Starten Sie Image, also die Funktion Bildtracking. Vergleichen Sie das Ergebnis mit dem Verhalten auf dem Telefon, vorzugsweise mit einem iPhone als Referenz. Achten Sie auf den Tracking-Status und die Anzeige der Zielüberlagerung.

    Ohne aktivierte Bewegungsfusion wirkt das Bildtracking deutlich verzögert. Das ist erwartungsgemäß. Solange die Bewegung korrekt ist und die Position stimmt, wenn das Gerät stillsteht, ist alles in Ordnung.

  3. Starten Sie Dense, also die Funktion Dense Spatial Map. Vergleichen Sie das Ergebnis mit dem Verhalten auf dem Telefon, vorzugsweise mit einem iPhone als Referenz. Achten Sie auf Position, Erzeugungsgeschwindigkeit und Qualität des Meshs.

    Wenn die Eingabeframerate niedrig ist, wird die Mesh-Erzeugung langsamer, die Qualität verschlechtert sich jedoch nicht deutlich.

    Diese Funktion läuft auf manchen Android-Geräten nicht. Auch die Mesh-Qualität variiert je nach Gerät.

Wichtig

Die von der Headset-Erweiterung verwendete Eingabenerweiterung ist eine Implementierung einer Custom Camera.

Bei der Verwendung von Testprodukten auf einer benutzerdefinierten Kamera oder einem Headset (Personal Edition license, Test-XR license oder Test-Mega-Dienst usw.) reagiert EasyAR Sense 100 Sekunden nach jedem Start nicht mehr (Mega-Benutzer können die Dauer nach Genehmigung über EasyAR Business anpassen lassen). Diese Einschränkung gilt nicht für kostenpflichtige Versionen von EasyAR Sense und kostenpflichtige EasyAR Mega-Dienste.

Wenn Image und Dense auf dem Gerät gleich gut oder besser als auf dem Telefon funktionieren, dann laufen die meisten EasyAR-Funktionen auf dem Gerät korrekt, und Sie können mit Mega-Tests beginnen.

Anomalien zur Laufzeit beheben: Problemzerlegung

Wenn sich die gleichen Ergebnisse wie auf dem Telefon nicht reproduzieren lassen, folgt ein detaillierter Problemzerlegungsprozess, mit dem Sie die Ursache finden können. Beobachten Sie immer die Systemprotokolle.

Schritt 0: Die Eigenfehler des Headsets verstehen

Erinnern Sie sich an die Anforderungen an Bewegungsverfolgung und Anzeige, die in Gerät für AR/MR vorbereiten beschrieben wurden?

Wichtig

Fehler der Bewegungsverfolgung/VIO wirken sich immer auf unterschiedliche Weise auf die Stabilität der EasyAR-Algorithmen aus.

Wichtig

Fehler des Anzeigesystems können dazu führen, dass virtuelle und reale Objekte nicht perfekt ausgerichtet sind.

In manchen Fällen mit größeren Fehlern scheint das virtuelle Objekt über oder unter dem realen Objekt zu schweben und „driftet“ scheinbar ständig. Dieses Verhalten kann auf dem Pico 4E beobachtet werden; es tritt auch dann auf, wenn ohne EasyAR nur das eigene VST aktiviert ist.

Schritt 1: Den Laufzeitstatus der Session prüfen

Die Session-Statusanzeige in UI-Nachrichten muss die folgenden Funktionen oder Daten korrekt zeigen:

Wenn die Session-Statusinformationen nicht angezeigt werden, versuchen Sie, die Option auf Log zu ändern und lesen Sie anschließend den Session-Status sowie den Namen der verwendeten Frame-Source in den Systemprotokollen.

Sie können versuchen, alle anderen Frame Sources unter dem Knoten ARSession zu löschen und zu sehen, ob sich etwas ändert.

Schritt 2: Die Anzahl der von EasyAR empfangenen Kameraframes prüfen

Funktion oder Daten, die korrekt sein müssen:

  • Der Pfad der Kameraframe-Daten von ExternalFrameSource auf Unity-Code-Ebene (ohne Datenkorrektheit und ohne Pfad zur nativen Ebene)

Diese Zahl sollte mit der Zeit steigen, andernfalls erscheint nach einigen Sekunden eine Warnmeldung.

Wenn dieser Wert nicht steigt, sollte das Problem zuerst behoben werden.

Schritt 3: EIF auf dem Gerät aufzeichnen und im Unity-Editor wiedergeben

Funktion oder Daten, die korrekt sein müssen:

  • Der Pfad der Kameraframe-Daten von ExternalFrameSource zur nativen Ebene (ohne Datenkorrektheit)
  • raw camera image data in den Kameraframe-Daten
  • timestamp in den Kameraframe-Daten (ohne Zeitpunkte und Daten-Synchronisation)

Klicken Sie auf EIF, um die Aufnahme zu starten, und klicken Sie erneut, um sie zu stoppen.

Tipp

Die Aufnahme muss normal beendet werden, damit eine zufällige Indexierung der EIF-Datei möglich ist.

Am besten verwenden Sie im Unity-Editor ein sauberes EasyAR-Szenen-Setup oder ein EasyAR-Sample, um falsche Szenenkonfigurationen zu vermeiden.

Im Unity-Editor können Sie die Wiedergabe der Kameraframe-Daten sehen. Die Bilddaten sind nicht byte-genau identisch, da der gesamte Prozess eine verlustbehaftete Kodierung/Dekodierung enthält.

EasyAR verwendet Verzerrungsparameter in der Berechnung, führt das Bild aber bei der Anzeige nicht entzerrt aus. Wenn Sie diese Daten also eingeben, sehen Sie bei der Wiedergabe der EIF-Datei in Unity ein nicht entzerrtes Bild. Das ist erwartungsgemäß.

Tipp

Passen Sie das Seitenverhältnis des Unity-Game-Fensters an die Eingabe an, sonst wird das Bild beschnitten dargestellt.

Wenn die Wiedergabe zu schnell oder zu langsam ist, prüfen Sie den timestamp-Eingang.

Anmerkung

Mit EIF kann man vieles tun. Sie können damit im Unity-Editor Bildtracking und Dense Spatial Map ausführen. Beachten Sie, dass die Anzeige auf dem Gerät anders sein kann.

Schritt 4: Bildtracking mit EIF ausführen

Funktion oder Daten, die korrekt sein müssen:

  • raw camera image data in den Kameraframe-Daten
  • intrinsics in den Kameraframe-Daten (Datenkorrektheit kann nicht vollständig garantiert werden, da der Algorithmus gewisse Fehler toleriert)

Wenn Sie im Unity-Editor das Bildtracking-Sample ImageTracking_Targets mit EIF ausführen, müssen Sie eine EIF-Datei aufnehmen, in der ein Bild verfolgt werden kann.

Anmerkung

Bildtracking erfordert, dass das Tracking-Ziel einen bestimmten Anteil des Bildes einnimmt. Wenn kein Tracking möglich ist, versuchen Sie, mit dem Kopf näher an das Bild heranzugehen.

Wenn das Tracking dauerhaft fehlschlägt oder das virtuelle Objekt im Bild weit vom Ziel entfernt erscheint, ist sehr wahrscheinlich intrinsics fehlerhaft.

Wenn die Bilddaten verzerrt sind, kann es sein, dass das virtuelle Objekt das Tracking-Ziel im Bild nicht perfekt überdeckt. Das ist erwartungsgemäß. Dieser Effekt ist stärker, wenn sich das Ziel am Bildrand befindet.

Schritt 5: Bildtracking auf dem Gerät ausführen

Funktion oder Daten, die korrekt sein müssen:

  • Das Anzeige-System des Geräts selbst
  • raw camera image data in den Kameraframe-Daten
  • intrinsics in den Kameraframe-Daten (Datenkorrektheit kann nicht vollständig garantiert werden, da der Algorithmus gewisse Fehler toleriert)
  • extrinsics in den Kameraframe-Daten
  • Koordinatenkonsistenz der device pose in Kameraframe-Daten und Renderframe-Daten
  • Zeitdifferenz der device pose in Kameraframe-Daten und Renderframe-Daten
Anmerkung

Bildtracking erfordert, dass das Tracking-Ziel einen bestimmten Anteil des Bildes einnimmt. Wenn kein Tracking möglich ist, versuchen Sie, mit dem Kopf näher an das Bild heranzugehen.

Bildtracking erfordert, dass die horizontale Kantenlänge des Bildes der Größe des Objekts in der realen Welt entspricht. Im Sample muss ein Bild getrackt werden, dessen horizontale Kantenlänge die längere Kante eines horizontal liegenden A4-Blatts ausfüllt. Tracken Sie daher kein Bild, das auf einem Computerbildschirm angezeigt wird, es sei denn, Sie verwenden ein Lineal und passen die horizontale Kantenlänge anhand des Lineals auf A4-Größe an.

Wenn das Bildtracking mit EIF perfekt ist, auf dem Gerät aber nicht, müssen Sie dieses Problem zuerst lösen, bevor Sie mit anderen Tests fortfahren. Es ist später viel schwerer zu beheben.

Wenn das virtuelle Objekt über einem weit vom realen Objekt entfernten Punkt schwebt und dies auch bei stillstehender Person der Fall ist, ist intrinsics oder extrinsics wahrscheinlich falsch oder die device pose in Kameraframe-Daten und Renderframe-Daten befinden sich nicht im selben Koordinatensystem. Möglich ist auch, dass das Anzeigesystem diese Abweichung verursacht.

Wenn sich das virtuelle Objekt beim Bewegen des Kopfes ständig mitbewegt und so wirkt, als hätte es Verzögerung, ist die device pose sehr wahrscheinlich nicht gesund. Das tritt häufig in den folgenden Fällen auf, andere Probleme sind jedoch nicht ausgeschlossen:

  • device pose und raw camera image data sind zeitlich nicht synchron
  • In Kameraframe-Daten und Renderframe-Daten wird dieselbe Pose verwendet

Schritt 6: EIF und Dense Spatial Map auf dem Gerät ausführen

Funktion oder Daten, die korrekt sein müssen:

  • Das Anzeige-System des Geräts selbst
  • raw camera image data in den Kameraframe-Daten
  • intrinsics in den Kameraframe-Daten (Datenkorrektheit kann nicht vollständig garantiert werden, da der Algorithmus gewisse Fehler toleriert)
  • extrinsics in den Kameraframe-Daten
  • device pose in den Kameraframe-Daten

Wenn die Mesh-Erzeugung sehr langsam ist und/oder der Boden unregelmäßig rekonstruiert wird, ist sehr wahrscheinlich die device pose fehlerhaft. Möglich sind auch ein falsches Koordinatensystem der Pose oder ein falscher Zeitpunkt der Pose.

Tipp

Wenn die Eingabeframerate niedrig ist, wird die Mesh-Erzeugung ebenfalls langsamer, die Qualität verschlechtert sich jedoch nicht deutlich. Das ist erwartungsgemäß.

Normalerweise ist es nicht leicht, die exakte Mesh-Position zu bestimmen. Daher ist der Anzeigefehler des Systems bei der Verwendung von Dense Spatial Map nicht unbedingt sichtbar.

Mega-Sample ausführen

Lesen Sie die folgenden Inhalte, um zu erfahren, wie Sie Mega in Unity verwenden. Wenn Sie den Mega-Dienst noch nicht freigeschaltet haben, müssen Sie sich an den EasyAR-Vertrieb wenden, um Testzugang zu erhalten.

Starten Sie dann Mega auf dem Gerät und vergleichen Sie das Ergebnis mit dem Verhalten auf dem Telefon, vorzugsweise mit einem iPhone als Referenz. Achten Sie auf:

  • ob die Anzeigeposition der Objekte korrekt ist
  • ob die Anzeigeposition und Größe von weit entfernten Objekten (10 m und mehr) korrekt sind
  • ob die Anzeigeposition und Größe von Objekten außerhalb des Blickzentrums korrekt sind
  • ob die Anzeigeposition und Größe von Objekten beim Drehen des Kopfes korrekt sind

Anomalien zur Laufzeit beheben

Funktion oder Daten, die korrekt sein müssen:

  • Das Anzeige-System des Geräts selbst
  • alle Daten in Kameraframe-Daten und Renderframe-Daten

Nachdem Sie sowohl Bildtracking als auch Dense Spatial Map überprüft haben, sollte EasyAR Mega theoretisch unterstützt werden. Wenn die Laufzeit auf dem Headset deutlich schlechter ist als auf dem Telefon, achten Sie besonders auf die folgenden Punkte:

  • Achten Sie auf die Pose-Daten und den Timestamp in Kameraframe-Daten und Renderframe-Daten
  • Achten Sie auf die Ausgabe des Bewegungsverfolgungs-/VIO-Systems. Der Panda unter XR Origin ist eine gute Referenz

Außerdem sollte das Anzeige-System des Geräts selbst besonders beachtet werden, vor allem bei weit entfernten Objekten, Objekten außerhalb des Blickzentrums und beim Drehen des Kopfes. Solche Szenen werden bei Gerätetests oft übersehen, das Problem liegt aber in der Regel weiterhin am eigenen Anzeigesystem des Geräts. Sie müssen EasyAR diese Probleme und ihre möglichen Auswirkungen erklären und den Entwicklern eine realistische Erwartung an die Qualität geben.

Wichtig

Nutzer achten sehr stark auf solche Anzeigeprobleme, und viele Geräte können in großen AR-Szenen tatsächlich keine perfekt ausgerichtete Anzeige liefern. EasyAR kann die Anzeigefehler des Geräts selbst nicht beheben. Das muss vom Gerätehersteller weiterentwickelt werden, und zugleich müssen Nutzer diese Probleme verstehen.

Nächste Schritte

Verwandte Themen

Beispiele, die auf dem Telefon ausgeführt werden können:

  • Bildtracking-Sample ImageTracking_Targets, um das erwartete Ausführungsverhalten der Funktion Bildtracking kennenzulernen
  • Dense-Spatial-Map-Sample SpatialMap_Dense_BallGame, um das erwartete Ausführungsverhalten der Funktion Dense Spatial Map kennenzulernen
  • Bewegungsfusion-Sample ImageTracking_MotionFusion, um das erwartete Ausführungsverhalten der Funktion Bewegungsfusion kennenzulernen
  • Mega-Sample MegaBlock_Basic, um das erwartete Ausführungsverhalten der Funktion Mega kennenzulernen