Neue Technologien

Schnell und nützlich: Wie wir in nur drei Tagen eine AR-App erstellt haben

Selbst erfahrene Programmierer halten dies für eine schwierige und komplizierte Aufgabe. Und doch machen es Apple und Google mit ARKit und ARCore viel einfacher. Wir haben uns also selbst herausgefordert: Können wir innerhalb von nur drei Tagen eine AR-App programmieren, die wirklich nützlich ist?

Hololens
5 Minuten Lesezeit
Mit Insights von...

  • Als Usecase haben wir die Augmentation von Türschildern an Konferenzräume im Hotel gewählt.

  • Alles in allem bestand der schwierigste Teil unseres Projekts darin, Texte automatisch zu lesen.

  • ARKit hat niedrige Eintrittsbarrieren, insbesondere wenn es um das Erkennen und Vergrößern von Objekten geht.

Einer der größten Vorteile von Augmented Reality ist, dass die meisten Benutzer sie recht intuitiv bedienen können. Aus diesem Grund liegen viele realisierte oder geplante Anwendungen dieser Technologie im Bereich des Lernens oder des Know-how-Transfers. Wenn es jedoch um die Erstellung von Anwendungen für Augmented Reality geht, scheint es genau andersherum zu gehen: <p>Selbst erfahrene Programmierer halten dies für eine schwierige und komplizierte Aufgabe. Und doch machen es Apple und Google mit ARKit und ARCore viel einfacher. Wir haben uns also selbst herausgefordert: Können wir innerhalb von nur drei Tagen eine AR-App programmieren, die wirklich nützlich ist?</p>

Unsere Herausforderung fand auf unserem jährlichen Zühlke-Camp vom 2. bis 4. Mai 2018 statt. Mitarbeiter aus allen unseren deutschen Standorten trafen sich in Leimen, nahe der Stadt Heidelberg, zu drei Tagen des Lernens, geselligen Beisammenseins und Feierns. Im AR-Track fanden mehrere Projekte statt, die von der Untersuchung gemeinsamer Erfahrungen mit den Immersions-Headsets HoloLens und Windows bis zum Herumspielen mit dem Holo-Stylus und dem Myo-Armband reichten.

1. Türschild erkennen

Unsere Wahl fiel jedoch auf mobile AR, hauptsächlich ARKit (iOS) und ARCore (Android). Wir beschlossen, ARKit zunächst auszuprobieren und uns der Herausforderung zu stellen, innerhalb von nur drei Tagen eine nützliche App zu erstellen.

Raum Elba

Wir haben die Türschilder, die an den Türen der Konferenzräume im Hotel angebracht waren, ergänzt. In jedem Konferenzraum versammelten sich verschiedene Interessengruppen, um an bestimmten Themen zu arbeiten. Unsere App soll das Türschild so erweitern, dass der Benutzer Informationen darüber erhält, welche Interessengruppen sich hinter dem entsprechenden Raum verbergen. Um die Türschilder zu erkennen, verwenden wir die neuen ARKit 1.5 Bilderkennungs-APIs.

Damit ARKit Bilder erkennt, müssen Sie sie nur in die Assets Ihrer Anwendung aufnehmen und sie der ARWorldTrackingConfiguration Ihrer ARSession hinzufügen:

Code

Wenn ARKit eines der Bilder im Kamerastrom erkennt, erhalten Sie einen Rückruf an die Renderer-Methode (Renderer: SCNSceneRenderer, didAdd node: SCNNode, für Anker: ARAnchor). Der SCNNode liefert die Koordinaten des erkannten Bildes in der realen Welt. Diese Koordinaten können verwendet werden, um mit dem SceneKit iOS-Framework 3D-Objekte zur ARView hinzuzufügen.

Code

2. Türschild über OCR lesen

Um herauszufinden, welcher Raum gescannt wurde, planten wir, OCR (optische Zeichenerkennung) auf dem Kamerabild zu verwenden. Zunächst planten wir, dafür die iOS-Frameworks Vision und CoreML zu verwenden. Das Vision Framework unterstützt zwar die Texterkennung, nicht aber die Erkennung. Also fügten wir ein vortrainiertes CoreML-Modell für die Texterkennung hinzu und speisten die zugeschnittenen Bilder der Buchstaben zur Klassifizierung in CoreML ein. Leider funktionierte das Modell nicht gut genug, um zuverlässige Ergebnisse zu erhalten. Wenn Sie weiter daran interessiert sind, OCR-Aufgaben mit CoreML zu lösen, ist der Artikel von Martin Mitrevski ein sehr guter Ausgangspunkt.

Wir haben Microsofts Computer Vision API als Fallback-Lösung verwendet. Sie können jedes beliebige Bild in die cloudbasierte API hochladen, und der Dienst analysiert den visuellen Inhalt auf verschiedene Weise, je nach Wahl des Benutzers (z.B. OCR, Erkennung von menschlichen Gesichtern und Kennzeichnung des Erwachsenenkontakts). Nach der Verarbeitung des Bildes erhält der Entwickler die Antwort als JSON-Objekt. Um Ihre Bilder analysieren zu lassen, können Sie sich für eine kostenlose Testversion registrieren.

Jedes Mal, wenn ARKit das Bildziel erkannt hat, senden wir also einen Frame des Videos an die kognitiven Dienste. Als Rückgabe erhalten wir alle Zeichenfolgen aus dem Bild.

Code

3. Zusätzliche augmented Informationen einbringen

Nun, da wir die Namen des Raumes vorgelesen haben, können wir dem Benutzer zusätzliche Informationen zeigen. Wir haben eine einfache Zuordnung zwischen dem Raumnamen und der Abkürzung der Interessengruppe implementiert. Diese Informationen wollen wir direkt unter dem Zühlke Logo als 3D-Text anzeigen.

Code

4. Schlussfolgerung

Alles in allem bestand der schwierigste Teil unseres Projekts darin, die Texte automatisch zu lesen. Apple bietet die Möglichkeit, zu erkennen, ob ein Bild Text enthält. Allerdings ist das Erkennen dieser Texte noch nicht so einfach. Eine gute Alternative ist es, bis auf weiteres Cloud Services für diese Aufgabe zu nutzen. Dies zeigt auch, wie eng die weitere Verbreitung von Augmented-Reality-Anwendungen mit der Weiterentwicklung von Technologien wie Datenanalyse oder künstlicher Intelligenz verbunden ist.

ARKit hat niedrige Einstiegsbarrieren, insbesondere wenn es darum geht, Objekte zu erkennen und zu erweitern. Als Entwickler können Sie mit dem Framework schnell Fortschritte machen. Es ist also ziemlich einfach zu benutzen, sobald Sie sich mit dem Koordinatensystem vertraut gemacht haben. Das Web ist voll von nützlichen Tutorials, was es noch einfacher macht. Deshalb haben wir es geschafft, diese AR-App innerhalb von nur drei Tagen fertig zu stellen - und hatten viel Spaß dabei.

Das Projekt ist Open Source auf Github.