Wie funktioniert ein Marker-basierter Augmented-Reality-Algorithmus (wie Artoolkits One)?

StackOverflow https://stackoverflow.com/questions/2236311

  •  19-09-2019
  •  | 
  •  

Frage

Für meinen Job habe ich eine Java -Version von Artoolkit (NyArtookit) verwendet. Bisher erwies es sich als gut genug für unsere Bedürfnisse, aber mein Chef möchte, dass das Framework auf anderen Plattformen wie Web (Flash usw.) und Handys portiert wird. Ich nehme an, ich könnte andere Ports benutzen, aber ich ärgere mich zunehmend darüber, nicht zu wissen, wie das Kit funktioniert und darüber hinaus, aus einigen Einschränkungen. Später muss ich auch die Fähigkeiten des Kits erweitern, um Dinge wie Interaktion hinzuzufügen (virtuelle Schaltflächen auf Karten usw.), die, soweit ich in Nyartoolkit gesehen habe, nicht unterstützt werden.

Im Grunde muss ich Artoolkit durch einen benutzerdefinierten Markierungsdetektor ersetzen (und im Falle von Nyartoolkit versuchen, JMF loszuwerden und eine bessere Lösung über JNI zu verwenden). Ich weiß jedoch nicht, wie diese Detektoren funktionieren. Ich kenne 3D-Grafiken und ich habe ein schönes Rahmen darum gebaut, aber ich muss wissen, wie man die zugrunde liegende Technologie baut :-).

Kennt jemand Quellen darüber, wie eine Marker-basierte Augmented-Reality-Anwendung von Grund auf neu implementiert werden kann? Bei der Suche in Google finde ich nur "Anwendungen" von AR, nicht die zugrunde liegenden Algorithmen:-/.

War es hilfreich?

Lösung

"Von Grund auf neu" ist ein relativer Begriff. Es wäre sehr schmerzhaft, wenn man es von Grund auf neu tun würde, ohne bereits bestehende Visionscode zu verwenden, und Sie würden es nicht besser machen als die gesamte Computer-Vision-Community.

Wenn Sie jedoch AR mit vorhandenem Visionscode erstellen möchten, ist dies vernünftiger. Die wesentlichen Unteraufgaben sind:

  1. Finden Sie die Markierungen in Ihrem Bild oder Video.
  2. Stellen Sie sicher, dass sie die wollen, die Sie wollen.
  3. Finden Sie heraus, wie sie relativ zur Kamera ausgerichtet sind.

Die erste Aufgabe ist die Lokalisierung der Keypoint. Zu den Techniken hierfür gehören SIFT -Keypoint -Erkennung, der Harris -Eckdetektor und andere. Einige davon haben Open -Source -Implementierungen - ich denke, OpenCV hat den Harris -Eckdetektor in der Funktion Goodfeaturestotrack.

Die zweite Aufgabe ist die Erstellung von Regionendeskriptoren. Zu den Techniken hierfür gehören SIFT -Deskriptoren, Schweineskriptoren und viele andere. Es sollte eine Open-Source-Implementierung eines dieser irgendwo geben.

Die dritte Aufgabe wird auch von Keypoint -Lokalisatoren ausgeführt. Idealerweise möchten Sie eine affine Transformation, da dies Ihnen zeigt, wie der Marker im 3-Raum sitzt. Der Harris -Affine -Detektor sollte dafür arbeiten. Weitere Informationen finden Sie hier: http://en.wikipedia.org/wiki/harris_affine_region_detector

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top