Aktuell werden zahlreiche Geräte für die Nutzung der Virtuellen Realität (VR) angeboten oder stehen kurz vor dem Release. Parallel dazu entwickelt sich der Trend zur Aufnahme von 360°-Videos (Achterbahnfahrt, Jetflug, Fallschirmsprung), die einem das „interaktive Umschauen“ in einer aufgenommenen Videosequenz erlauben. Die Kombination beider Techniken gibt dem Betrachter im Prinzip das Gefühl, sich im Geschehen des Videos zu befinden. Die Illusion wird jedoch dadurch gestört, dass die Grundbewegung im Video vom Betrachter zwar optisch, aber nicht physisch wahrgenommen wird. In Freizeitparks gibt es oft sogenannte Motion-Rides, die synchron zum gezeigten Bildmaterial eine Bahn abfahren, sodass der Betrachter einen stimmigen Bewegungseindruck (sowohl physisch als auch (audio-)visuell) erfährt. Hier setzt diese Arbeit an.
Aufgabenbeschreibung
Die Bewegungsrekonstruktion anhand von Kameraaufnahmen wird im Allgemeinen als Visual Odometry bezeichnet. Sie erlaubt die Posen der Kamera bei der Aufnahme einer Bildfolge, z.B. eines Videos, anhand der Betrachtung paarweise aufeinanderfolgender Einzelaufnahmen zu ermitteln. In dieser Arbeit soll auf diese Weise der Bewegungspfad der aufnehmenden Kamera eines 360°-Videos rekonstruiert werden. Dieser Pfad soll anschließend als Basis zur Ansteuerung eines Motion Simulators dienen, sodass der Simulator die Grundbewegung des Videos simuliert, während sich der Passagier mit einer VR-Brille frei in diesem Video umsehen kann.
Für diese Arbeit stehen ein Oculus Rift Developer Kit 2 sowie ein Motion Simulator auf Basis von in Simulation-Rides verwendeten Robocoastern zur Verfügung. Alle Komponenten sind bereits durch die am MMI entwickelte Simulationssoftware VEROSIM angebunden und lassen sich ebenfalls darüber steuern.
Gewünschtes Vorgehen
Basierend auf einer intensiven Literaturrecherche soll der Studierende verschiedene Ansätze für Visual Odometry (Optical Flow, Featuretracking, Structure-from-Motion, Bundleadjustment, etc.) vergleichen und für den oben genannten Einsatzzweck analysieren. Anschließend soll ein geeignetes Verfahren ausgewählt und umgesetzt werden. Ziel ist eine lückenlose Folge von Kameraposen, die einen möglichst glatten Pfad ergeben.
Der Motion Simulator soll genutzt werden, um die Beschleunigungen, die der Körper während der Fahrt erfährt, nachzubilden. Dazu sollen die Ergebnisse der Bildverarbeitung in ein existierendes Robotermodell auf einer Echtzeit-Plattform übertragen und anschließend eine geeignete Parametrierung für die Washout-Filter Implementierung des Motion Simulators identifiziert werden. Da die interne Sensorik der VR-Brille (IMU) von den Bewegungen des Motion Simulators beeinflusst wird, muss die Simulatorbewegungen in den Sensormessungen kompensiert werden.
Implementierung
Zur Erfüllung der Aufgabe müssen verschiedene Algorithmen implementiert werden. Hierbei kann mit externen Bibliotheken (z.B. OpenCV, PCL) gearbeitet werden, die grundlegende Funktionalitäten, wie z.B. Featuredetektion oder Matrizenberechnungen, zur Verfügung stellen. Die Anbindung dieser Bibliotheken, sowie die restliche programmatische Umsetzung der Aufgabe sollen eigenständig in der Programmiersprache C++ und als Plugin der Simulationssoftware VEROSIM erfolgen.
Um alle entwickelten Komponenten über die Arbeit hinaus weiter verwenden und weiterentwickeln zu können sollen diese modular und austauschbar umgesetzt werden. Dazu gehört die Verwendung einheitlicher Schnittstellen, z.B. das in VEROSIM verwendeten Input/Output (IO) Konzept, zur Kommunikation zwischen den einzelnen Komponenten.
Stichworte: VR-Motion-Simulation, 360°-Video, Structure-from-Motion, Bundleadjustment, Featuretracking, Bewegungsrekonstruktion, Motion-Rides, Motionsimulator, VR
Betreuer: Sondermann/Priggemeyer