Fakultät Informatik

Image-Based Rendering using State of the Art Graphics Hardware und Image-Based Editing

1. Einführung

Image-Based Rendering (IBR) ist eine in den letzten Jahren erforschte Alternative der Erzeugung zweidimensionaler Ansichten gegenüber geometriebasierten Methoden. Dabei werden ausgehend von zweidimensionalen Bilddaten dreidimensionale Ansichten der Szene rekonstruiert, wobei ein Wissen über die Geometrie der Szene nicht notwendig ist. Das Verfahren basiert auf Farbbildern sowie Zusatzinformationen (wie z.B. Tiefenwerten) der abgebildeten Szene und ermöglicht die Verwendung von Bildern natürlicher Objekte wie Farbphotographien, so daß der bei geometriebasierten Verfahren naturbedingt begrenzte Realismus der Darstellung überwunden werden kann. Insbesondere bei der naturgetreuen Darstellung von Objekten, bei der einfache 2D Aufnahmen nicht ausreichend sind, kann Image-Based Rendering gewinnbringend eingesetzt werden. Anwendungen für das Verfahren sind in Bereichen sinnvoll, in denen eine exakte Wiedergabe der Farbinformationen und Geometrie notwendig oder erwünscht ist.

2. Image-Based Rendering using State of the Art Graphics Hardware

2.1 Triangulierung

Die direkte Verwendung der Pixel der Tiefenkarten ist in zweierlei Hinsicht unvorteilhaft, da zum einen die notwendigen Berechnungen für alle Tiefenpunkte individuell durchgeführt werden müssen und zudem bei der Verwendung von punktförmigen Objekten eine kontinuierliche Oberflächendarstellung nicht garantiert werden kann.

Besser geeignet ist die Verwendung einer adaptiven Triangulierung, bei der für jede Tiefenkarte ein Triangle Strip erzeugt wird. Für die Triangulierung wurde das in [5] beschriebene Verfahren ausgewählt, da es die Erzeugung generalisierter sequentieller Triangle Strips ermöglicht. Die Zerlegung von 2D Eingabedaten in einen generalisierten sequentiellen Triangle Strip

2.2 Darstellung einer rekonstruierten Ansicht

Bei jedem anzuzeigenden Bild wird zuerst die Position der virtuellen Kamera Cv in der Kameraebene bestimmt. Anhand der ermittelten Koordinaten können die für den aktuellen Frame am besten geeigneten Triangulierungen der Tiefenkarten sowie die zugehörigen Farbbilder ausgewählt werden. Das Kriterium hierbei ist die Distanz der zwischen Cv und den Kameras, mit denen die Szene ursprünglich aufgenommen wurde. Um die ursprüngliche Tiefe der Szene im Betrachtungsbereich von Cv zu rekonstruieren werden die ausgewählten Triangle Strips ausgehend von Cv reprojeziert und damit die benötigten Informationen für die spätere Tiefenkorrektur bestimmt. Die Farbinformationen der ausgewählten Kameras werden der Grafikhardware als Textur zur Verfügung gestellt. Für jedes darzustellende Fragment werden anhand der Tiefeninformationen der Szene die geeigneten Texturkoordinaten ermittelt und die derart erhaltenen Farbwerte zu einem Ausgabewert kombiniert. Die Gewichte für hierfür ergeben sich dabei aus der relativen Lage zur virtuellen Kamera.

2.3 Hardwarebeschleunigung

Da die Rechenleistung der CPU nicht ausreicht, um die oben aufgeführten Schritte mit akzeptabler Bildwiederholrate durchzuführen, werden die Berechnungen soweit möglich auf die GPU ausgelagert, da diese aufgrund ihrer parallelen Datenverarbeitung sowohl für die Berechnung der Tiefenwerte als auch für die Tiefenkorrektur hervorragend geeignet ist. Bei der Berechnung der Tiefe der Szene für die einzelnen Fragmente wird für alle Vertices des Triangle Strips im Vertexshader anhand der Positionen der jeweiligen Kameras sowie von Cv die korrekte Lage berechnet. Durch den Depth-Test von OpenGL wird anhand der Dreiecke für jedes Fragment der geringste Abstand zur virtuellen Kamera bestimmt und in den Depthbuffer gespeichert. Um diese Informationen den weiteren Berechnungsschritten zugänglich zu machen wird der Inhalt des Depthbuffer mittels "Copy To Texture" in eine Textur umgewandelt. Die Tiefeninformationen müssen dabei nicht in den Hauptspeicher zurückgelesen werden, so daß zeitintensive Lesevorgänge auf den Speicher der Grafikhardware vermieden werden können.

Die Tiefentextur wird dann zusammen mit den Farbtexturen, die nach Bedarf in den Speicher der Grafikhardware gelesen werden, im abschliessenden Schritt in einem Fragmentshader Programm verarbeitet, bei dem anhand der Tiefe die vier Texturkoordinaten errechnet und die ausgelesenen Farbwerte zum anzuzeigenden Wert kombiniert werden.

+
Triangulierung einer Tiefenkarte. Rot sind die Dreieckskante. Blau ist der Hamiltonpfad.
+
Vier übereinander gezeichnete Triangulierungen im Wireframe Modus
+
Im Shader erzeugte Eingabewerte für die Tiefenkorrektur
+
Rekonstruktion einer Szene.

3. Image-Based Editing

1. Einführung

Die Segmentierung stellt in vielen Bildverarbeitungsaufgaben einen wichtigen Schritt vor der analytischen Auswertungsphase dar. Ihr Ziel ist es, das Bild in eine homogen Regionen zu zerlegen, die in Bezug auf gewisse Eigenschaften (Grauwert, Textur, Kanten, statistische Eigenschaften etc.) homogen sind. Eine universelle Strategie mit einem Algorithmus alle gesuchten Strukturen einwandfrei zu identifizieren, gibt es nicht, da die Vorgehensweisen, ihre Parameter und ihr Einsatzbereich zu unterschiedlich sind. Je unabhängiger dabei ein Algorithmus von wissensbasierter Vorinformation ist, desto breiter ist sein Einsatzbereich und somit auch sein allgemeiner Nutzen. Um Objekte, die andere Breiche des Szene zu verdecken zu entfernen braucht man die Möchlichkeit diese mittels eines Segmentierungsalgorithmus zu markieren.

Ansicht einer unmodifizierten Beispielszene; Markierung eines Objektes in der Szene

2. Das Image-Based-Edititing Verfahren

Der Benutzer wird das Objekt ohne Wissen über ihre geometrische Form selektieren, das Objekt wird in 3D-Koordinatensystem prjektiert und dann anhand seine Tiefenwerte lokalisiert und entfernet.

Ablauf der Segmentierungsverfahren
Ansicht einer unmodifizierten Beispielszene
Markierung eines Objektes in der Szene
Ansicht eines Objektes mit der Box, die den zu entfernenden Bereich umgibt
Auf Wunsch kann nun der markierte Bereich ein- oder ausgeblendet werden

Bearbeitung

Moulaye Ouldelmehdi
Wolfgang Wirth

 

News

Matthias Niessner, our new Professor from Stanford University, offers a number of interesting topics for  master theses.

 

A new PhD/PostDoc position on  Computational Fabrication and 3D Printing is available at the Computer Graphics & Visualization group.

 

A new PhD position is available at the games engineering group.  Check it out here.