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 .