Plattformspezifische Anleitungen
Mit den Augmented Images APIs in ARCore können Sie AR-Apps erstellen, mit denen 2D-Bilder in der Umgebung des Nutzers erkannt und ergänzt werden 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 eine Darstellung dieser Merkmale in einer oder mehreren Datenbanken für Augmented Reality-Bilder zu speichern.
Während der Laufzeit sucht ARCore auf ebenen Oberflächen in der Umgebung des Nutzers nach diesen Merkmalen. So kann ARCore diese Bilder in der realen Welt erkennen und ihre Position, Ausrichtung und Größe schätzen, falls diese nicht angegeben sind.
Leistungsspektrum
ARCore kann bis zu 20 Bilder gleichzeitig verfolgen. ARCore kann nicht gleichzeitig mehrere Instanzen desselben Bildes erkennen oder verfolgen.
Jede Datenbank mit Augmented Reality-Bildern kann Informationen zu bis zu 1.000 Referenzbildern speichern. Die Anzahl der Datenbanken ist unbegrenzt, es kann jedoch immer nur eine Datenbank aktiv sein.
Bilder können einer Datenbank mit Augmented Reality-Bildern während der Laufzeit hinzugefügt werden, bis zu einem Limit von 1.000 Bildern pro Datenbank. Sie können zuvor erstellte Datenbanken über eine Netzwerkverbindung herunterladen.
Beim Hinzufügen eines Bilds können Sie die physische Größe des zu erkennenden Bildes angeben. Dadurch wird die Leistung der Bilderkennung verbessert.
Wenn keine physische Größe angegeben ist, schätzt ARCore die Größe und optimiert diese Schätzung im Laufe der Zeit.
Wenn eine physische Größe angegeben ist, verwendet ARCore diese Größe und schätzt die Position und Ausrichtung des Bildes. Abweichungen zwischen der scheinbaren oder tatsächlichen Größe und der angegebenen physischen Größe werden ignoriert.
ARCore kann auf Bilder reagieren und sie verfolgen, die:
An Ort und Stelle fixierte Bilder, z. B. ein an der Wand hängendes Bild oder ein Magazin auf einem Tisch
Bewegliche Bilder, z. B. eine Werbung auf einem vorbeifahrenden Bus oder ein Bild auf einem flachen Objekt, das der Nutzer in der Hand hält und dabei bewegt.
Sobald ARCore mit dem Tracking eines Bildes beginnt, liefert es für jeden Frame Schätzungen für die Bildposition und -ausrichtung. ARCore optimiert diese Schätzungen kontinuierlich, wenn mehr Daten erfasst werden.
Sobald ein Bild erkannt wurde, wird die Position und Ausrichtung des Bildes durch ARCore weiter „verfolgt“, auch wenn das Bild vorübergehend aus dem Kamerabild verschwindet, weil der Nutzer sein Gerät bewegt hat. In diesem Fall geht ARCore davon aus, dass die Position und Ausrichtung des Bildes statisch ist und sich das Bild nicht durch die Umgebung bewegt.
Das Tracking erfolgt ausschließlich auf dem Gerät. Zum Erkennen und Verfolgen von Bildern ist keine Internetverbindung erforderlich.
Voraussetzungen
Bilder müssen:
Der Artikel muss mindestens 25% des Kamerabilds einnehmen, damit er erkannt werden kann.
Sie dürfen nicht geknickt oder um eine Flasche gewickelt sein.
Achten Sie darauf, dass die Kamera Sie gut sehen kann. Sie dürfen nicht teilweise verdeckt sein, aus einem sehr schrägen Winkel aufgenommen werden oder sich in einer Aufnahme befinden, bei der die Kamera zu schnell bewegt wird, sodass Bewegungsunschärfe entsteht.
CPU-Auslastung und Leistungsüberlegungen
Je nachdem, welche ARCore-Funktionen bereits aktiviert sind, kann die Aktivierung von Augmented Reality-Bildern die CPU-Auslastung von ARCore erhöhen. Deaktivieren Sie nicht verwendete Funktionen, wenn sie nicht benötigt werden. Dadurch stehen Ihrer App zusätzliche CPU-Zyklen zur Verfügung und die thermische Leistung sowie die Akkulaufzeit werden verbessert.
Weitere Informationen finden Sie unter Überlegungen zur Leistung.
Best Practices
Tipps für die 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 PNG- oder JPEG-Dateiformat bereitgestellt werden.
- Farbinformationen werden nicht verwendet. Sowohl Farb- als auch Graustufenbilder können als Referenzbilder oder von Nutzern zur Laufzeit verwendet werden.
- Vermeiden Sie Bilder mit starker Komprimierung, da dies die Merkmalsextraktion beeinträchtigt.
- Verwenden Sie keine Bilder mit vielen geometrischen Elementen oder sehr wenigen Elementen (z.B. Barcodes, QR-Codes, Logos und andere Strichzeichnungen), da dies zu einer schlechten Erkennungs- und Trackingleistung führt.
- Verwenden Sie keine Bilder mit sich wiederholenden Mustern, da dies ebenfalls zu Problemen bei der Erkennung und dem Tracking führen kann.
Verwenden Sie das im ARCore SDK enthaltene Tool
arcoreimg
, um für jedes Bild einen Qualitätsfaktor zwischen0
und100
zu erhalten. Wir empfehlen einen Qualitätswert von mindestens 75. Hier sind zwei Beispiele:Beispielbild 1 Beispielbild 2 Punktzahl: 0
Punktzahl: 100
enthält sich wiederholende geometrische Elemente ausreichende Auflösung; enthält viele einzigartige Funktionen
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 Entwicklung mit Android und Android NDK verfügbar. Es ist in das Unity SDK und das ARCore Unreal-Plug-in eingebunden.
- Die Datenbank speichert eine komprimierte Darstellung der Merkmale, die aus den Graustufendaten in den Referenzbildern extrahiert wurden. Jeder Bildeintrag belegt etwa 6 KB.
- Das Hinzufügen eines Bilds zur Datenbank während der Laufzeit dauert etwa 30 ms.
- Fügen Sie Bilder in einem Worker-Thread hinzu, um das Blockieren des UI-Threads zu vermeiden.
- Sie können Bilder auch bei der Kompilierung mit dem im ARCore SDK enthaltenen Tool
arcoreimg
hinzufügen.
- Wenn Sie die voraussichtliche physische Größe eines Bildes kennen, geben Sie sie an. Diese Informationen verbessern die Erkennungs- und Trackingleistung, insbesondere bei großen physischen Bildern (über 75 cm).
- Belassen Sie nicht zu viele nicht verwendete Bilder in der Datenbank, da dies aufgrund der erhöhten CPU-Auslastung zu einer leichten Beeinträchtigung der Systemleistung führt.
Tipps zur Optimierung des Trackings
- Wenn sich das Bild nie von seiner ursprünglichen Position bewegt (z. B. ein an einer Wand angebrachtes Poster), können Sie dem Bild einen Anker hinzufügen, um die Stabilität des Trackings zu erhöhen.
- Das physische Bild muss für die Ersterkennung mindestens 25% des Kamerabilds einnehmen. Sie können Nutzer auffordern, das physische Bild in den Kamerarahmen einpassen.
- Verwenden Sie die geschätzte Körperhaltung und Größe des Bildes erst, wenn der Tracking-Status des Bildes „Vollständiges Tracking“ ist. Wenn ein Bild von ARCore zum ersten Mal erkannt wird und keine erwartete physische Größe angegeben wurde, wird der Tracking-Status angehalten. Das bedeutet, dass ARCore das Bild erkannt hat, aber nicht genügend Daten erfasst hat, um seine Position im 3D-Raum zu schätzen.