Endlich ist es Zeit, darüber zu sprechen, was wir im letzten Jahr entwickelt und welche Probleme wir gelöst haben – ein weiterer bedeutender Schritt hin zu einem Gefühl der kreativen Freiheit für die Nutzer von SketchAR, ohne die Grenzen von Konventionen.
Es gibt einen großen Bedarf an mobilen Apps, die virtuelle Inhalte anbieten, unabhängig von den Grenzen der aktuellen Technologie. Da Computer Vision ein Bereich ist, in dem Software eng mit Hardware verknüpft ist, werden die meisten AR-Produktkonzepte leider immer durch technische Verzögerungen eingeschränkt sein.
Kleine Teams lösen selten grundlegende Probleme, aber wir können eine Methode finden, die die Aufgabe vereinfacht.
Warum das Rad neu erfinden, und warum hat es niemand vor uns versucht?
Die meisten Drittanbieter-Bibliotheken und -Plattformen basieren auf vorinstallierten Markern, um ein virtuelles Objekt an seiner Position in der realen Welt zu fixieren. In unserem Fall verdeckte die Hand, die das Bild zeichnet, diese Marker, sodass wir eine eigene Methode entwickeln mussten.

ARKit kann ohne Marker nicht dasselbe leisten.
Hinzu kommt: ARKit und ARCore basieren nicht auf Markern (außer in der Umgebung selbst), aber die Genauigkeit der Fixierung virtueller Objekte wäre besser, wenn einige vorinstallierte Marker das virtuelle Objekt an Ort und Stelle halten würden. Die aktuelle Methode umfasst zwar die Erkennung und Verfolgung von Schlüsselpunkten, um den Nutzer zu führen, aber es ist noch nicht möglich, dass der Nutzer eigene Referenzmarker setzt. Das zweite Problem bei ARKit und ARCore besteht darin, dass sich ein virtuelles Objekt nicht zusammen mit der realen Welt bewegen lässt. Wenn wir zum Beispiel ein virtuelles Objekt auf einer physischen Oberfläche platzieren, können wir die kombinierte virtuelle und physische Oberfläche nicht wie aus einem Guss bewegen – als wären sie verklebt –, weil das virtuelle Bild an derselben Stelle verharrt und der Oberfläche nicht folgt.
Wie bereits erwähnt, arbeitet SketchAR mit weißem Papier, was für die meisten Computer-Vision-Algorithmen ein „Killer“ ist. Unsere Algorithmen sind jedoch speziell für solche Bedingungen optimiert. Sie sind stabil und präzise genug, um AR-Inhalte an das Papier zu binden. Sie funktionieren sogar dann noch, wenn das ARKit-Tracking bereits ausgefallen ist. Auch Geschwindigkeit ist wichtig. Wir haben die meisten Berechnungen auf die GPU verlagert, wodurch SketchAR auf iPhones ab dem Modell 5SE in Echtzeit läuft.
Die Methode der „Progressive Markers“.
Das bedeutet, dass eine vom Künstler gezeichnete Linie zu einem Anker wird und die Stabilität beim Halten des virtuellen Objekts erhöht.
Außerdem nutzen wir die gesammelten Daten, um weiterhin an einem vollwertigen, personalisierten Assistenten für jeden Nutzer zu arbeiten. Übrigens setzen wir maschinelles Lernen und neuronale Netze ein, um die Zeichendaten jedes Nutzers zu analysieren und daraus zu lernen. Mehr dazu erzählen wir euch in den nächsten Artikeln.
Houston, wir haben ein Problem – oder das Funktionsprinzip: „keine Angst haben“.
Um zu verstehen, wie das Problem gelöst wurde, müssen wir noch einmal von vorne anfangen:
Umgebung. Jede Oberfläche hat eine andere Textur, Farbe und Struktur. Zudem können Algorithmen durch störende „Geräusche“ der Umgebung abgelenkt werden. Filter lösen dieses Problem (,,Kanäle“, ähnlich wie Kanäle in Photoshop).
Die Vereinheitlichung von Oberflächen ist schwierig, wenn das Training eines neuronalen Netzes nicht auf echten Nutzerdaten basiert. Das Training eines neuronalen Netzes ist ein fortlaufender Prozess und sollte daher niemals als abgeschlossener Teil des Produkts betrachtet werden.
„Leinwand“. Eine Leinwand ist ein Blatt Papier, eine Wand oder jede andere Oberfläche, auf der man zeichnen möchte. Die Vielfalt der „Leinwände“ wird ausschließlich durch die Abmessungen bestimmt. Gleichzeitig ist Weiß der „Feind“ von Computer Vision. Lest bitte unseren Beitrag „Das Problem mit dem weißen Papier“, um zu verstehen, warum das so ist.
Zeichnung. Natürlich kennen wir das Können unserer Nutzer und erwarten nicht, dass eine Skizze perfekt mit dem Originalbild übereinstimmt. Deshalb berücksichtigt unser Algorithmus Ungenauigkeiten der Nutzer.
Hände. Ein weiterer „Feind“ für das reibungslose Funktionieren der App ist, wenn die Hand auf dem Bildschirm die Oberfläche, Marker oder die Zeichnung selbst überschneidet. Größe und Form, Hautfarbe und sogar die Art, den Stift zu halten, lenken einen Teil der Aufmerksamkeit des Algorithmus ab.
Gerät. Die nicht fixierte Position des Geräts. Nutzer halten das Telefon mit einer Hand und nähern sich der Oberfläche oder entfernen sich davon in unterschiedlichen Winkeln.
Lösung.
Nach einer detaillierten Analyse dieser Probleme haben wir verstanden, wie wir der App „beibringen“ können, nur das zu sehen, was der Nutzer zeichnet – indem wir die Umgebung filtern, aber nicht ignorieren.
Unten seht ihr, wie die umgebende Welt in ein flaches Bild umgewandelt und in Ebenen unterteilt wird, um jede davon über Kanäle zu analysieren.

Wie funktioniert das?
Das Umwandeln des gerenderten Inhalts, das Abgleichen mit dem Original und das anschließende Platzieren eines virtuellen Objekts auf der Oberfläche erfordert einen vielschichtigen Ansatz. Tatsächlich sind einige dieser Ebenen deutlich bedeutsamer als andere. Das wird klar, wenn wir uns nur einen kleinen Teil des Prozesses ansehen und sehen, wie viele Aktionen jede Sekunde ablaufen.
Dies ist ein einfaches Schema, wie die Umgebung zu einem flachen Bild wird. Anschließend wird es in viele Ebenen (Kanäle) aufgeteilt, um analysiert zu werden.
Wie oben beschrieben, werden die Ebenen getrennt, und ein Algorithmus bringt der Kamera bei, zwischen allem zu unterscheiden, was sie sieht. Zum Beispiel wird der Hintergrund von der Hand getrennt, die Hand von ihrem Schatten usw.

Die Bildschirme sind von links nach rechts geordnet:
- Das virtuelle Bild, das sich auf der Oberfläche befindet und für den Nutzer auf dem Smartphone-Bildschirm sichtbar ist.
- Erkennung des Blattes auf der Oberfläche
- Das Papier wird grob vom Hintergrund getrennt. Das Rauschen auf der Tischoberfläche ist sichtbar, und der Schatten der Hand wird als ein einziges Objekt erkannt.
- Eine klare Trennung der Hand von der Oberfläche.
- Erkennung nur des gezeichneten Inhalts.
- Erkennung des gezeichneten Inhalts im Verhältnis zur Umgebung.
Wenn die App weiß, wie sie jedes Objekt eindeutig erkennt, gleicht sie es mit den Originalbildern ab. Denkt daran, dass jede Aktion des Algorithmus abläuft, während sich Kamera und Hände kontinuierlich im Bild bewegen.

Ein Beispiel dafür, wie es in der ersten Version des Algorithmus zu vielen falschen Vergleichen kam.

Dieses Beispiel zeigt gute Vergleiche in späteren Versionen des Algorithmus.
Ohne ins Detail zu gehen: Dieser Ansatz löst viele der Probleme und Aufgaben des Produkts, um die Nutzererfahrung zu verbessern. Er erweitert die Möglichkeiten, die gewonnenen Daten anzuwenden, und erlaubt es uns so, das Produkt auf ein neues Niveau zu heben. Es ist ein vollwertiger Assistent, gestützt auf Daten aus maschinellem Lernen und neuronalen Netzen.
SketchAR ist seit fast einem Jahr im AppStore verfügbar, seit einem halben Jahr im Play Market und sogar auf MS Hololens. Trotz der begeisterten Rückmeldungen von Nutzern und Presse gibt es bis heute keine konkurrierende Anwendung mit ähnlicher Funktionalität. Das unterstreicht die Komplexität des Problems und die Originalität unserer Algorithmen.
Bleibt am Ball, zeichnet mehr und liebt Technologie, denn sie hilft uns zu wachsen … und bald wird sie die Menschheit versklaven! ;)
Kunst für alle!



