Diminished Reality in Echtzeit
Diminished Reality ist ein Projekt von der TU Ilmenau, bei dem in Echtzeit Objekte aus einem Video-Livestream herausretuschiert werden können – im Gegensatz zur Augmented Reality, bei der virtuelle Objekte hinzugefügt werden. Jan Herling von der TU Ilmenau erklärt den Aufbau.
Diminished Reality ist ein Projekt von der TU Ilmenau, bei dem in Echtzeit Objekte aus einem Video-Livestream herausretuschiert werden können – im Gegensatz zur Augmented Reality, bei der virtuelle Objekte hinzugefügt werden.
Entwickelt wurde Diminished Reality von Jan Herling, Doktorand an der TU Ilmenau, und Professor Wolfgang Broll, dem Leiter des Fachgebiets „Virtuelle Welten / Digitale Spiele“ in Ilmenau. Eben wurde die Anwendung auf der ISMAR 2010, einem „Symposium on Mixed Reality and Augmented Reality in Seoul“ vorgestellt. Die Entwickler verstehen Diminished Reality als Gegenstück zur Augmented Reality, da die Diminished Reality reale Objekte aus der Realität des Videostreams herausnimmt, während die Augmented Reality einen Stream virtuell anreichert.
Jan Herling von der TU Ilmenau erklärt den Aufbau:
Wie funktioniert Diminished Reality genau?
Wir verwenden einen ähnlichen Ansatz, wie er in Photoshop CS5 zu finden ist. Ein Benutzer kann dort unerwünschte Elemente aus dem Bild entfernen. Der zu entfernende Bereich wird dabei durch die übrige Bildinformation, die noch im Bild vorhanden und damit sichtbar ist, ersetzt.
Im Gegensatz zu CS5 erreichen wir diesen Effekt jedoch in Echtzeit in etwa 40 Millisekunden – Photoshop benötigt hingegen mehrere Sekunden. Entsprechend können wir einen Video-Livestream in Echtzeit verändern, da zusätzlich das zu entfernende Objekt automatisch in jedem neuen Bild erkannt wird. Die Kombination von automatischer Objekterkennung und Echtzeitfähigkeit macht unser System einzigartig.
Bitte gehen Sie noch einmal auf die Objekterkennung ein:
Die Objekterkennung wurde mit einem einfachen Kontur-Ansatz realisiert. Die Kontur des zu entfernenden Objekts wird in jedem Bild neu erkannt und anschließend für die Objektentfernung verwendet. Der Vorteil dieses Verfahrens ist, dass dieses Verfahren sehr effizient ist und somit nur sehr wenig Rechenzeit benötigt, die dringend für den Bild-Algorithmus gebraucht wird. Die Bedingung ist jedoch, dass das zu entfernende Objekt immer eine sichtbare Kontur mit dem Hintergrund aufweist. Aktuell arbeiten wir jedoch bereits an flexibleren Möglichkeiten für die Objekterkennung.
Mit welchen Mitteln wurde die Anwendung realisiert?
Das Programm wurde von uns vollständig selbst entwickelt. Damit wir Echtzeit erreichen konnten, mussten wir jedoch zahlreiche Optimierungen finden beziehungsweise entwickeln: So verwenden wir aus Effizienzgründen die Programmiersprache C++ und haben versucht den Code ausschließlich hinsichtlich der Performanz zu optimieren. Weiterhin haben wir die Geschwindigkeit der einzelnen Update-Schritte, die im Video bei der Erklärung des Algorithmus zu sehen sind, deutlich erhöhen können. Außerdem wurde die Datenmenge erheblich reduziert, da der Algorithmus etwa für alle Zwischenberechnungen nur Graustufen-Bilder verwendet. Dies ist auch bei der Erklärung im Video zu sehen. Schließlich wurde der Code für Multikern-Prozessoren optimiert, damit alle vorhandenen Prozessorkerne optimal ausgenutzt werden können. Selbstverständlich wurde die Anzahl an Speicherzugriffen reduziert beziehungsweise optimiert
Wo tauchen noch Probleme bei der Software auf?
Das Video zeigt noch einige Verbesserungspotentiale: So darf sich derzeit die Bildinformation nicht zu stark in jedem neuen Kamerabild ändern, damit ein konsistenter Videostream als Ausgabe entsteht. Dieser Effekt ist im Video speziell beim Regenablauf in der Straße sichtbar, zusätzlich bewegt sich dort der Benutzer sehr schnell um das Objekt herum.
Das könnte dich auch interessieren