Ich entwickle ein Augmented Reality SDK auf OpenCV. Ich hatte einige Probleme, Tutorials zu diesem Thema zu finden, welche Schritte zu befolgen sind, mögliche Algorithmen, schnelle und effiziente Codierung für Echtzeitleistung usw.
Bisher habe ich die nächsten Informationen und nützlichen Links gesammelt.
OpenCV-Installation
Laden Sie die neueste Release-Version herunter .
Installationsanleitungen finden Sie hier (Plattformen: Linux, Mac, Windows, Java, Android, iOS).
Online- Dokumentation .
erweiterte Realität
Für Anfänger gibt es hier einen einfachen Augmented Reality Code in OpenCV. Es ist ein guter Anfang.
Für alle, die nach einem gut gestalteten SDK auf dem neuesten Stand der Technik suchen, habe ich einige allgemeine Schritte gefunden, die jede auf Marker-Tracking basierende Augmented Reality unter Berücksichtigung der OpenCV-Funktionen ausführen sollte.
Hauptprogramm: Erstellt alle Klassen, initialisiert, erfasst Bilder aus Videos.
AR_Engine-Klasse: Steuert die Teile einer Augmented Reality-Anwendung. Es sollte 2 Hauptzustände geben:
- Erkennung : Versucht, den Marker in der Szene zu erkennen
- Tracking : Sobald es erkannt wurde, werden niedrigere Berechnungstechniken verwendet, um den Marker in kommenden Frames zu verfolgen.
Es sollte auch einige Algorithmen geben, um die Position und Ausrichtung der Kamera in jedem Bild zu finden. Dies wird erreicht, indem die Homographietransformation zwischen dem in der Szene erkannten Marker und einem 2D-Bild des Markers, den wir offline verarbeitet haben, erkannt wird. Die Erklärung dieser Methode hier (Seite 18). Die Hauptschritte für Posenschätzungen sind:
Laden Sie die intrinsischen Parameter der Kamera . Zuvor offline durch Kalibrierung extrahiert.
Laden Sie das Muster (Marker), um es zu verfolgen: Es ist ein Bild des planaren Markers, den wir verfolgen möchten. Es ist notwendig, Features zu extrahieren und Deskriptoren ( Schlüsselpunkte ) für dieses Muster zu generieren , damit wir später mit Features aus der Szene vergleichen können. Algorithmen für diese Aufgabe:
Führen Sie für jede Frame-Aktualisierung einen Erkennungsalgorithmus zum Extrahieren von Features aus der Szene aus und generieren Sie Deskriptoren. Auch hier haben wir mehrere Möglichkeiten.
Finden Sie Übereinstimmungen zwischen dem Muster und den Szenendeskriptoren.
Finden Sie die Homografiematrix aus diesen Übereinstimmungen. RANSAC kann zuvor verwendet werden, um Ausreißer / Ausreißer in der Reihe der Übereinstimmungen zu finden.
Auszug Kamera Pose von Homografie.
- Beispielcode für Pose aus der Homographie .
- Beispielcode zur Homographie aus Pose .
Vollständige Beispiele:
quelle
Antworten:
Da AR-Anwendungen häufig auf Mobilgeräten ausgeführt werden, können Sie auch andere Funktionen als Detektor / Deskriptor in Betracht ziehen:
quelle
Wenn Sie die Markierungen auswählen können, erkennen Sie im Allgemeinen zuerst ein quadratisches Ziel mithilfe eines Kantendetektors und dann entweder Hough oder einfach Konturen. Identifizieren Sie dann die jeweilige Markierung anhand des internen Designs. Anstatt einen allgemeinen Punktvergleich zu verwenden.
Werfen Sie einen Blick auf Aruco, um einen gut geschriebenen Beispielcode zu erhalten.
quelle