Dimensionen zu Bildern hinzufügen

Plattformspezifische Leitfäden

Mit den Augmented Images APIs in ARCore können Sie AR-Apps erstellen, die 2D-Bilder in der Nutzerumgebung erkennen und erweitern können, z. B. Poster oder Produktverpackungen.

Sie stellen eine Reihe von Referenzbildern bereit. ARCore verwendet einen Algorithmus für maschinelles Sehen, um Merkmale aus den Graustufeninformationen in jedem Bild zu extrahieren, und speichert eine Darstellung dieser Merkmale in einer oder mehreren Augmented Image-Datenbanken.

Während der Laufzeit sucht ARCore auf ebenen Oberflächen in der Umgebung des Nutzers nach diesen Funktionen. Dadurch kann ARCore diese Bilder in der Welt erkennen und ihre Position, Ausrichtung und Größe schätzen, falls keines angegeben ist.

Leistungsspektrum

ARCore kann bis zu 20 Bilder gleichzeitig tracken. ARCore erkennt oder verfolgt nicht mehrere Instanzen desselben Bildes gleichzeitig.

In jeder Datenbank für erweiterte Bilder können Informationen von bis zu 1.000 Referenzbildern gespeichert werden. Es gibt keine Begrenzung für die Anzahl der Datenbanken, aber es kann immer nur eine Datenbank aktiv sein.

Bilder können zur Laufzeit in eine Datenbank mit erweiterten Bildern aufgenommen werden. Das Limit von 1.000 Bildern pro Datenbank gilt dabei nicht. Sie können zuvor erstellte Datenbanken über eine Netzwerkverbindung herunterladen.

Wenn Sie ein Bild hinzufügen, kann die physische Größe des zu erkennenden Bildes angegeben werden. Dadurch wird die Leistung der Bilderkennung verbessert.

  • Wenn keine physische Größe angegeben wird, schätzt ARCore die Größe und verfeinert sie im Laufe der Zeit.

  • Wenn eine physische Größe angegeben ist, verwendet ARCore die angegebene Größe und schätzt die Position und Ausrichtung des Bildes. Abweichungen zwischen der tatsächlichen oder der tatsächlichen Größe und der angegebenen physischen Größe werden ignoriert.

ARCore kann auf folgende Bilder reagieren und diese verfolgen:

  • Bilder, die an Ort und Stelle fixiert sind, z. B. ein an einer Wand hängender Druck oder eine Zeitschrift auf einem Tisch

  • Bewegliche Bilder, z. B. Werbung in einem vorbeifahrenden Bus oder ein Bild auf einem flachen Objekt, das der Nutzer beim Bewegen der Hände hält.

Sobald ARCore mit dem Tracking eines Bildes beginnt, werden Schätzungen für Bildposition und -ausrichtung für jeden Frame bereitgestellt. ARCore verfeinert diese Schätzungen kontinuierlich, wenn mehr Daten erhoben werden.

Nachdem ein Bild erkannt wurde, „verfolgt“ ARCore die Position und Ausrichtung des Bildes weiter, auch wenn das Bild vorübergehend aus der Kameraansicht herausbewegt wird, weil der Nutzer sein Gerät bewegt hat. In diesem Fall geht ARCore davon aus, dass die Position und Ausrichtung des Bildes statisch sind und dass sich das Bild nicht durch die Umgebung bewegt.

Das gesamte Tracking findet ausschließlich auf dem Gerät statt. Zum Erkennen und Tracking von Bildern ist keine Internetverbindung erforderlich.

Voraussetzungen

Bilder müssen:

  • Fülle mindestens 25% des Kamerabilds aus, das erkannt werden soll.

  • Er sollte flach aufliegen (z. B. nicht zerknittert oder um eine Flasche gewickelt).

  • Achte darauf, dass die Kamera gut zu sehen ist. Sie dürfen nicht teilweise verdeckt, aus einem stark schrägen Winkel betrachtet werden und auch nicht sichtbar sein, wenn sich die Kamera aufgrund von Bewegungsunschärfe zu schnell bewegt.

CPU-Auslastung und Leistung

Je nachdem, welche ARCore-Funktionen bereits aktiviert sind, kann die Aktivierung von Augmented Images die CPU-Auslastung von ARCore erhöhen. Du kannst ungenutzte Funktionen deaktivieren, wenn sie für deine AR-Nutzung nicht erforderlich sind. Dadurch stehen Ihrer App zusätzliche CPU-Zyklen zur Verfügung und die Überhitzungsleistung und die Akkulaufzeit werden verbessert.

Weitere Informationen finden Sie unter Leistungsaspekte.

Best Practices

Tipps zur Auswahl von Referenzbildern

  • Die Auflösung des Bildes sollte mindestens 300 × 300 Pixel betragen. Die Verwendung von Bildern mit hoher Auflösung verbessert die Leistung nicht.
  • Referenzbilder können im Dateiformat PNG oder JPEG bereitgestellt werden.
  • Farbinformationen werden nicht verwendet. Sowohl farbige als auch entsprechende Graustufenbilder können als Referenzbilder oder von Nutzern zur Laufzeit verwendet werden.
  • Vermeiden Sie Bilder mit starker Komprimierung, da dies die Extraktion von Features beeinträchtigt.
  • Vermeiden Sie Bilder, die eine große Anzahl geometrischer Merkmale oder sehr wenige Merkmale enthalten (z.B. Barcodes, QR-Codes, Logos und andere Strichzeichnungen), da dies zu einer schlechten Erkennungs- und Tracking-Leistung führt.
  • Vermeiden Sie Bilder mit sich wiederholenden Mustern, da dies ebenfalls Probleme bei der Erkennung und dem Tracking verursachen kann.
  • Verwenden Sie das im ARCore SDK enthaltene Tool arcoreimg, um einen Qualitätsfaktor zwischen 0 und 100 für jedes Bild zu erhalten. Wir empfehlen einen Qualitätsfaktor von mindestens 75. Hier sind zwei Beispiele:

    Beispielbild 1 Beispielbild 2
    Punktzahl: 0 Punktzahl: 100
    sich wiederholende geometrische Merkmale enthalten, ausreichende Auflösung; enthält viele einzigartige Merkmale

Tipps zum Erstellen der Bilddatenbank

  • Verwenden Sie das arcoreimg-Tool für Android, um eine Bilddatenbankdatei zu generieren. Dieses Tool ist nur für die Android- und Android-NDK-Entwicklung verfügbar. Es ist in das Unity SDK und das ARCore Unreal-Plug-in integriert.
  • Die Datenbank speichert eine komprimierte Darstellung der Merkmale, die aus den Graustufendaten in den Referenzbildern extrahiert wurden. Jeder Bildeintrag belegt etwa 6 KB.
  • Es dauert etwa 30 ms, der Datenbank zur Laufzeit ein Bild hinzuzufügen.
    • Fügen Sie einem Worker-Thread Images hinzu, damit der UI-Thread nicht blockiert wird.
    • Wenn möglich, kannst du Bilder bei der Kompilierung mit dem arcoreimg-Tool hinzufügen, das im ARCore SDK enthalten ist.
  • Wenn Sie die erwartete physische Größe eines Bildes kennen, geben Sie diese an. Diese Informationen verbessern die Erkennungs- und Tracking-Leistung, insbesondere bei großen physischen Bildern (über 75 cm).
  • Vermeiden Sie es, viele nicht verwendete Bilder in der Datenbank zu belassen, da dies die Systemleistung aufgrund der erhöhten CPU-Auslastung geringfügig beeinträchtigt.

Tipps zur Optimierung des Trackings

  • Wenn sich das Bild nie von seiner Ausgangsposition bewegt (z. B. bei einem an einer Wand befestigten Plakat), können Sie einen Anker am Bild anbringen, um die Stabilität beim Tracking zu verbessern.
  • Das physische Bild muss für die anfängliche Erkennung mindestens 25% des Kamerabilds einnehmen. Sie können Nutzer auffordern, das physische Bild in ihren Kamerarahmen zu passen.
  • Verwenden Sie die Schätzungen für Position und Größe des Bildes erst, wenn der Tracking-Status des Bildes vollständig erfasst wurde. Wenn ARCore ein Bild erstmals erkennt und keine erwartete physische Größe angegeben wurde, wird der Tracking-Status pausiert. Das bedeutet, dass ARCore das Bild zwar erkannt, aber nicht genügend Daten gesammelt hat, um seinen Standort im 3D-Raum zu schätzen.