Ergänzende Realität: Überprüfungsmaterial


Gepostet von Igor Litvinenko, Senior Mobile Developer.

Jeder hat wahrscheinlich von VR-Helmen gehört, die den Effekt erzeugen, in der virtuellen Welt zu sein. Heute möchte ich jedoch nicht über virtuelle, sondern über Augmented Reality sprechen. Diese Konzepte sind wichtig zu unterscheiden. In Helmen der virtuellen Realität wird das gesamte Bild erzeugt - eine solche Realität ist völlig künstlich. Augmented Reality bedeutet im Gegensatz zur virtuellen Realität nicht die Schaffung einer vollständig künstlichen Realität, sondern das Hinzufügen des Videostreams unserer Realität zu virtuellen Objekten und Daten. Somit entsteht die Kombination der virtuellen und der realen Welt.

Kern-Augmented-Reality-Technologien



Wie entsteht Augmented Reality? Damit ein bestimmtes reales Objekt hinzugefügt werden kann, muss dieses reale Objekt im Videostream erkannt werden. Dies ist das Wichtigste - nach der Entdeckung eines Objekts ist es nicht mehr schwierig, etwas zu beenden und es irgendwie zu ergänzen. Es gibt verschiedene Möglichkeiten, die notwendigen Objekte zu erkennen - hauptsächlich dafür werden Augmented-Reality-Marker verwendet. Nachfolgend in der Evolutionssequenz sind die Hauptmethoden zum Erkennen komplementierter Objekte aufgeführt:

  • Der einfachste Marker oder das einfachste Bild.
  • Markerless - Markerless Augmented Reality.
  • Einfache 3D-Marker.
  • Eine Kombination von Markierungen zum Rendern komplexer Objekte (Zylinder, Würfel, Box).
  • Rahmenmarkierung.
  • Basierend auf dem Standort.
  • Echte Augmented Reality.


Bildmarkierung



Der einfachste Marker für Augmented Reality ist am dicken schwarzen Rahmen leicht zu erkennen. Ein solches Objekt ist im Videostream sehr leicht zu erkennen:



  • Anforderungen:
    • Ein schwarzer Rahmen mit einer Breite von mindestens 10%.
    • Nur schwarz und weiß.
    • Unveränderlich gegenüber Kurven - wir können jederzeit den genauen Drehwinkel angeben.
    • Immer quadratisch.

  • Die Algorithmen hier sind die einfachsten: Wir können die Kanten des Bildes (Kantenerkennung), das Quadrat und das weiße Quadrat in der Mitte bestimmen, indem wir diese Schwellenwerte ausführen - die Anzeige binärisieren. Auf diese Weise können wir zum Inhalt gelangen, ihn ausschneiden und wie mit einem Bild damit arbeiten - dies ist viel einfacher als das Scannen des gesamten Rahmens.
    • Eckenerkennung.
    • Blob-Erkennung.
    • Kantenerkennung.
    • Schwellenwert.

  • Vorteil:
    • Der einfachste Erkennungsalgorithmus sind viele offene und geschlossene Bibliotheken, die einen Marker erkennen können.
    • Am stabilsten - der Marker wird immer sehr genau erkannt und es gibt praktisch keinen Modell-Jitter-Effekt.



Markerlos



Trotz des Namens ist der Marker beim markerlosen Ansatz tatsächlich immer noch vorhanden. Es ist nur so, dass es hier nicht wie ein Marker aussieht, sondern wie ein Bild.



  • Anforderungen:
    • Eine große Anzahl kleiner Teile.
    • Je mehr Farben, desto besser.
    • Es ist unveränderlich, sich zu drehen.
    • Das ideale Verhältnis ist 1: 1, d. H. Je näher am Quadrat, desto besser. Bei einem Verhältnis von 1: 2 oder mehr wird der Marker sehr schlecht erkannt

  • Algorithmen Charakteristische Punkte werden verwendet, um solche Markierungen zu erkennen: Nehmen wir an, dies ist der Punkt, an dem sich der Gradient ändert. Das heißt, dies ist der Punkt, an dem eine klare Grenze sichtbar ist. Ein Algorithmus zum Finden geometrischer Punkte kann ebenfalls verwendet werden: An einigen Stellen im Bild gibt es exakte Markierungen, die Ecken bilden - beispielsweise kann ein Kreuz ein geometrischer Punkt sein.
    • Detect interest points.
    • Fiducial markers/
    • Edge detection — .
    • Simultaneous localization and mapping (SLAM) — .

  • :
    • : — . , — . , , — , .





Diese Technologie ermöglicht es uns, die einfache Form dreidimensionaler Objekte zu berücksichtigen: einen Würfel, einen Zylinder usw. Hier können wir eine Konfiguration erstellen, die hilft zu verstehen, welche Art von Objekt vor uns liegt - zum Beispiel kann ein Objekt einer bestimmten Form mit einer bestimmten Kombination von Farben als Markierung dienen (zum Beispiel wir einen Antrag gestellt, der das Arzneimittel anhand von Verpackung und Etikett identifiziert). Wir haben auch eine Anwendung erstellt, die Weinmarken erkennt - die Bibliothek konnte Etiketten aus verschiedenen Blickwinkeln finden, was aufgrund der nichtlinearen Markentransformation nicht mit markerloser oder einfacher Technologie funktioniert.

Rahmenmarkierung



Angenommen, Sie haben eine Konferenz. Sie haben ein Logo, das Sie an die Wände hängen, um den Menschen zu zeigen, wohin sie gehen sollen. Es gibt nur ein Logo, daher sind alle Bilder gleich. Dabei müssen Sie jedes Bild eindeutig identifizieren. Wie kann man das machen? Verwenden einer Rahmenmarkierung. Bei Verwendung der Frame-Markierung wird die Bild-ID im Frame verschlüsselt:



  • Anforderungen:
    • Einheitlicher Rahmen.
    • Es ist unveränderlich, sich zu drehen.
    • Immer quadratisch.
    • Das innere Bild sollte im Kontrast zum Rahmen stehen.
    • Klein (3 - 10 cm).

  • Algorithmen:
    • Passermarken.

  • Vorteil:
    • Die Fähigkeit, denselben Marker eindeutig zu identifizieren.



Standortbasierte Augmented Reality



Wenn Sie durch die Stadt gehen und Informationen über die Gebäude erhalten, die Sie sehen, erfolgt die Hinzufügung der Realität höchstwahrscheinlich über den Standort.



In diesem Fall gibt es keine Bilderkennungsaufgabe. Diese Technologie basiert auf der Verwendung eines GPS-Empfängers, eines Kompasses und eines Beschleunigungsmessers im Mobilgerät. Dank ihnen wissen wir, in welche Richtung wir schauen. Um die Realität zu ergänzen, müssen Sie nur korrekt auf die Messwerte der Sensoren des Mobilgeräts reagieren. Diese Aufgabe ist nicht so schwierig - es gibt genügend Bibliotheken, die damit gut umgehen.

Echte Augmented Reality



Hier gibt es keine Markierungen. Hier bestimmen wir unterwegs die 3D-Formen und -Eigenschaften aller Objekte, die in das Objektiv der Kamera fallen. Wir müssen die Tiefe des Objekts kennen, um ein 2D-Bild in 3D umzuwandeln. Dazu können Sie beispielsweise den bereits erwähnten SLAM-Algorithmus verwenden, der nach charakteristischen Punkten auf umgebenden Objekten sucht. Bisher ist dies auf Mobilgeräten sehr langsam. Jetzt implementiert die Technologie dieser Augmented Reality Sony aktiv in Verbindung mit der PlayStation.

Keyshare - keyshare.org



Und jetzt erzähle ich Ihnen, wie wir unsere Augmented-Reality-Engine in DataArt geschrieben haben und warum wir das getan haben.

Ein Schweizer Startup hat beschlossen, ein neues System zur Umsatzsteigerung auf Basis der Augmented-Reality-Technologie vorzuschlagen, und wir haben dieses System dafür entwickelt. So funktioniert es.

Wir haben einen patentierten Augmented-Reality-Marker in Form eines Schlüsselbildes, das beispielsweise in einer Zeitschrift neben einer Produktbeschreibung platziert werden kann. Mit weißen Punkten unterschiedlicher Größe in diesem Schlüssel können Sie den Inhalt eindeutig identifizieren. Es gibt einen Server - er nimmt den vom Schlüssel gelesenen Code und gibt dem Benutzer eine Vielzahl von Daten über das Produkt, sein 3D-Modell usw. zurück.



Um einen solchen Schlüssel zu entwickeln, haben wir alle gängigen Bibliotheken ausprobiert, konnten jedoch keinen Marker finden, der zu einer beliebigen Kombination passt. Wenn wir Marker Augmented Reality verwenden, befindet es sich an wichtigen Punkten. Der Marker ist schwarz und weiß, und wichtige Punkte sind an wechselnden Stellen konzentriert. Am Ende haben wir beschlossen, alles von Grund auf neu zu schreiben.

Wir haben den MSER-Suchalgorithmus verwendet, der nur einen Bereich findet. Schließlich wissen wir, dass es definitiv einen schwarzen Schlüssel und definitiv ein weißes Kreuz in diesem Schlüssel gibt. Daher finden wir zuerst eine große schwarze Region und innerhalb dieser Region eine weiße Region. Dann schneiden wir das Bild aus und betrachten das Seitenverhältnis - es sollte 2: 1 sein. Als nächstes analysieren wir das Formular. Wenn wir uns auf das Kreuz konzentrieren, finden wir den Anfang der Schlüsselphrase. Die Punkte befinden sich immer an denselben Stellen, sodass es auch einfach ist, sie zu finden. Als Ergebnis haben wir einen Markersuchalgorithmus nach Form erhalten. Dies ist natürlich keine universelle Lösung, aber sie erfüllt unsere Aufgabe einwandfrei.

Auf dem iPhone 5S haben wir also eine Leistung von mehr als 25 FPS. Dies zu erreichen war ziemlich schwierig. Wie bei jedem Algorithmus haben wir zunächst das Bild reduziert: Der Erkennungsalgorithmus funktioniert bei einem reduzierten Bild mit geringer Qualität viel besser. Dann führten sie den Vorhersagealgorithmus ein - nachdem wir das Bild gefunden haben, nehmen wir an, dass der Schlüssel nicht um mehr als einen bestimmten Pixelwert aus dem Rahmen herausfliegen kann. Dann kürzen wir das Bild. Danach analysieren wir die Dynamik: Wenn der Benutzer das Telefon nach links dreht, bewegt sich die Taste nach rechts. Dies ist ein probabilistischer Algorithmus. Wenn wir nicht sofort das finden, wonach wir suchen, beginnen wir, eine immer größere Fläche zu bearbeiten. Wir haben einen großartigen Modell-Rendering-Algorithmus, der von Grund auf neu geschrieben wurde.

Was haben wir noch? Auf dem Schlüssel befinden sich drei Zeilen, in jeder befinden sich 13 Punkte. Dies bedeutet, dass 469 Kombinationen möglich sind. Da das Bild in einer Entfernung von mehr als einem Meter bereits etwas verschwommen ist, haben wir einen probabilistischen Entschlüsselungsalgorithmus mit Fehlerkorrektur erstellt. Wir verwenden es in Verbindung mit einem selbstkorrigierenden Schlüssel. Wir identifizieren also genau die vier falschen Zeichen, was ausreicht. Wir haben auch einen optimierten Erkennungsalgorithmus, einen Verfolgungs- und Vorhersagealgorithmus für die nächste Position.

Trotz der Tatsache, dass ein solcher Schlüssel etwas an einen QR-Code erinnert, gibt es grundlegende Unterschiede. Sie können dem QR-Code keine Augmented Reality hinzufügen, da sich sein Inhalt ständig ändert. Mit anderen Worten, Sie können es nicht als Marker erstellen. Sie können kein 3D-Modell darauf platzieren und den Drehwinkel nicht bestimmen. Außerdem ist ein solcher Schlüssel sehr leicht erkennbar.

Fußballvereine Anerkennung



Wir haben auch eine Anwendung entwickelt, mit der Benutzer den Überblick über ihre Lieblingsfußballvereine behalten können. Sie können dem Bild des Logos eines Fußballclubs virtuelle Realität hinzufügen. Wenn Sie mit der Maus über das Logo fahren, werden die Clubdaten angezeigt. 

Source: https://habr.com/ru/post/de391055/


All Articles