Plattformspezifische Leitfäden
Android (Kotlin/Java)
Android NDK (C)
Unity (AR Foundation)
Unreal Engine
Mit den Augmented Images APIs in ARCore können Sie AR-Apps entwickeln, die 2D-Bilder in der Umgebung des Nutzers erkennen und erweitern können, z. B. Poster oder Produktverpackungen.
Sie stellen eine Reihe von Referenzbildern bereit. ARCore verwendet einen Computer-Vision-Algorithmus, um Merkmale aus den Graustufeninformationen in jedem Bild zu extrahieren. Eine Darstellung dieser Merkmale wird in einer oder mehreren Augmented Image-Datenbanken gespeichert.
Zur Laufzeit sucht ARCore nach diesen Merkmalen auf ebenen Oberflächen in der Umgebung des Nutzers. So kann ARCore diese Bilder in der realen Welt erkennen und ihre Position, Ausrichtung und Größe schätzen, wenn keine angegeben ist.
Leistungsspektrum
ARCore kann bis zu 20 Bilder gleichzeitig erkennen. ARCore kann nicht gleichzeitig mehrere Instanzen desselben Bildes erkennen oder verfolgen.
In jeder Augmented Image-Datenbank können Informationen zu bis zu 1.000 Referenzbildern gespeichert werden. Es gibt keine Beschränkung für die Anzahl der Datenbanken, aber jeweils nur eine Datenbank kann aktiv sein.
Einer Augmented Image-Datenbank können zur Laufzeit Bilder hinzugefügt werden, bis zum Limit von 1.000 Bildern pro Datenbank. Sie können zuvor erstellte Datenbanken über eine Netzwerkverbindung herunterladen.
Beim Hinzufügen eines Bildes kann die physische Größe des zu erkennenden Bildes angegeben werden. Dadurch wird die Leistung der Bilderkennung verbessert.
Wenn keine physische Größe angegeben ist, schätzt ARCore die Größe und verfeinert diese Schätzung im Laufe der Zeit.
Wenn eine physische Größe angegeben wird, verwendet ARCore diese Größe und schätzt die Position und Ausrichtung des Bildes. Dabei werden alle Abweichungen zwischen der scheinbaren oder tatsächlichen Größe und der angegebenen physischen Größe ignoriert.
ARCore kann auf Bilder reagieren und sie verfolgen, wenn sie folgende Eigenschaften haben:
Bilder, die an einem festen Ort sind, z. B. ein Abzug an einer Wand oder eine Zeitschrift auf einem Tisch
Bewegte Bilder, z. B. eine Anzeige auf einem vorbeifahrenden Bus oder ein Bild auf einem flachen Objekt, das der Nutzer in der Hand hält und dabei seine Hände bewegt.
Sobald ARCore mit dem Tracking eines Bildes beginnt, werden in jedem Frame Schätzungen für die Position und Ausrichtung des Bildes bereitgestellt. ARCore verfeinert diese Schätzungen kontinuierlich, wenn mehr Daten erfasst werden.
Sobald ein Bild erkannt wurde, verfolgt ARCore weiterhin die Position und Ausrichtung des Bildes, auch wenn es sich vorübergehend aus der Kamera-Ansicht bewegt, 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 selbst nicht in der Umgebung bewegt.
Das gesamte Tracking erfolgt auf dem Gerät. Für die Erkennung und das Tracking von Bildern ist keine Internetverbindung erforderlich.
Voraussetzungen
Bilder müssen:
Das Objekt muss mindestens 25% des Kamerabilds ausfüllen, damit es erkannt wird.
Sie muss flach sein (z. B. nicht zerknittert oder um eine Flasche gewickelt).
Sie müssen eine freie Sichtverbindung zur Kamera haben. Sie dürfen nicht teilweise verdeckt sein, aus einem sehr schrägen Winkel aufgenommen werden oder sichtbar sein, wenn sich die Kamera aufgrund von Bewegungsunschärfe zu schnell bewegt.
CPU-Auslastung und Leistungsaspekte
Je nachdem, welche ARCore-Funktionen bereits aktiviert sind, kann die Aktivierung von Augmented Images die CPU-Auslastung von ARCore erhöhen. Deaktivieren Sie alle nicht verwendeten Funktionen, wenn sie für Ihre AR-Anwendung nicht erforderlich sind. Dadurch werden zusätzliche CPU-Zyklen für Ihre App verfügbar und die thermische Leistung und 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. Bilder mit hoher Auflösung zu verwenden, verbessert die Leistung nicht.
- Referenzbilder können im PNG- oder JPEG-Dateiformat bereitgestellt werden.
- Farbinformationen werden nicht verwendet. Sowohl Farb- 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 Merkmalen beeinträchtigt.
- Vermeiden Sie Bilder mit einer großen Anzahl von geometrischen Merkmalen oder sehr wenigen Merkmalen (z.B. Barcodes, QR-Codes, Logos und andere Strichzeichnungen), da dies zu einer schlechten Erkennungs- und Trackingleistung führt.
- Vermeiden Sie Bilder mit sich wiederholenden Mustern, da dies auch zu Problemen bei der Erkennung und dem Tracking führen kann.
Verwenden Sie das
arcoreimg-Tool im ARCore SDK, um für jedes Bild einen Qualitätsfaktor zwischen0und100zu erhalten. Wir empfehlen einen Qualitätsindex von mindestens 75. Hier sind zwei Beispiele:Beispielbild 1 Beispielbild 2 

Punktzahl: 0Punktzahl: 100enthält sich wiederholende geometrische Merkmale ausreichende Auflösung; enthält viele eindeutige 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.
- In der Datenbank wird eine komprimierte Darstellung der Features gespeichert, die aus den Graustufendaten in den Referenzbildern extrahiert wurden. Jeder Bildeintrag belegt etwa 6 KB.
- Das Hinzufügen eines Bildes zur Datenbank zur Laufzeit dauert etwa 30 ms.
- Bilder in einem Arbeitsthread hinzufügen, um den UI-Thread nicht zu blockieren.
- Oder fügen Sie Bilder nach Möglichkeit zur Kompilierzeit mit dem
arcoreimg-Tool hinzu, das im ARCore SDK enthalten ist.
- Wenn Sie die erwartete 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).
- Vermeiden Sie es, viele ungenutzte Bilder in der Datenbank zu speichern, da die erhöhte CPU-Auslastung die Systemleistung leicht beeinträchtigt.
Tipps zur Optimierung des Trackings
- Wenn sich Ihr Bild nie von seiner ursprünglichen Position entfernt (z. B. ein Poster an einer Wand), können Sie einen Anker an das Bild anbringen, um die Stabilität der Nachverfolgung zu erhöhen.
- Das physische Bild muss mindestens 25% des Kamerabilds einnehmen, damit es erkannt werden kann. Sie können Nutzer auffordern, das physische Bild in den Kamerabereich zu passen.
- Verwenden Sie die Schätzungen für die Position und Größe des Bildes erst, wenn der Tracking-Status des Bildes „Full Tracking“ lautet. Wenn ein Bild von ARCore erkannt wird und keine erwartete physische Größe angegeben wurde, wird der Tracking-Status pausiert. Das bedeutet, dass ARCore das Bild erkannt, aber nicht genügend Daten erfasst hat, um seine Position im 3D-Raum zu schätzen.