Personal tools
You are here: Home Student Projects Bachelor Projects Gallery

Bachelor Projects Gallery

This page shows a selection of Bachelor projects that have been completed in our research group. Please contact Prof. Zwicker if you are interested in pursuing a project with us!

Image Filtering using Halide and a new Denoising Algorithm for Gradient-Domain Rendering

Delio Vicini, Fall 2015


In this thesis, we implemented two state-of-the-art denoising algorithms using Halide. Halide is a domain-specific programming language for high performance image processing. We implemented both "Robust Denoising using Feature and Color information" and "Dual-Domain Image Denoising" using Halide. Our implementations on the GPU are faster than the preexisting code provided by the respective authors. Furthermore, we present a new denoising algorithm for gradient-domain rendering. Gradient-domain rendering algorithms compute not only a Monte Carlo estimate of the image itself, but also of its finite difference gradients. The final image is then reconstructed by solving a screened Poisson equation. Our denoising algorithm extends the Poisson problem by adding regularization constraints based on local feature patches. We also present an efficient implementation of our algorithm using CUDA and compare it to the existing biased L1-reconstruction for gradient-domain rendering, which we outperform by a significant factor. This work is the basis for a Eurographics 2016 publication co-authored by the author of this Bachelor thesis.

Simulating Snake Skin Pattern Formation: A CUDA-based PDE Simulator for Triangulated Meshes

Samira Descombes, Fall 2015


Some of the most astonishing patterns in nature are the ones found on the skin of reptiles. The Cell-Chemotaxis model by J. D. Murray explains the pattern formation process on snake skin. The model is translated into a system of nonlinear Partial Di fferential Equations and simulated on the surface of discrete triangular meshes with explicit time stepping. The simulation is implemented on the GPU by using NVIDIA's CUDA API. The GPU-accelerated application is implemented and optimized in several steps using various optimization techniques which are discussed in detail. Furthermore, the speed performance for each application was tested on a set of meshes. The speed results for these test cases are discussed in detail. The final optimized GPU-accelerated application achieves a signi cant speed up with respect to CPU performance. This thesis was the basis for a conference paper co-authored by the Bachelor student.

Real-time Human Face Rendering

Urs Gerber, Spring 2015


The generation of a perceptually plausible rendering of a human face in a realtime environment poses a particularly difficult task. In this project, we explore and implement various rendering techniques and algorithms in a custom renderer with the goal to achieve the realistic depiction of a human head mesh in realtime. This includes the implementation of standard rendering practices such as shadow mapping to calculate shadows and ambient occlusion as an approximation to indirect lighting. Special emphasis is put on real-time skin rendering techniques proposed by Jimenez et al., including a screen-space approximation to subsurface light transport as well as skin translucency. Furthermore, the specular reflectance model is extended by using a physically based bidirectional reflectance distribution function and adding procedural microgeometry to the skin. We discuss the importance of each skin rendering technique and assess the performance when compared to rendering with only the standard rendering practices.

Guided Image Filtering for Real-Time Ray Tracing

Michèle Wyss, Fall 2013


The simulation of realistic illumination in real-time is a very challenging task. Known physical-based approaches yield satisfying results but need way too much time to do so. Therefore they are not by implication eligible for real-time applications. To solve this problem, several filtering and adaptive sampling methods were proposed. During this bachelor's project an edge-aware filter, the guided image filter by He et al., was implemented and compared with the well-known bilateral fi lter and with the approach of Rouselle et al. of adaptive sampling and reconstruction. The starting point of the project was a simple path tracer based on nVidia optiX. The guided image filter successfully achieved reasonable quality within short time, but still the underlying ray tracer was too slow to allow real-time frame rates. The approach of adaptive sampling and reconstruction was not able to handle the appearing spike noise caused by the low sampling rates.

Random Parameter Filtering for Denoising Monte Carlo Renderings

Stefan Moser, Fall 2013


Making photo realistic reconstructions of scenes, so called renderings, is widely explored in computer graphics. While there are methods like the Monte Carlo rendering algorithms that meet this goal to a large extent, they have immense computation times. In this report, we dive into one method to speed up this process, namely the Random Parameter Filter (RPF) proposed by Pradeep Sen and Soheil Darabi. This approach tries to distinguish between undesired noise introduced by the Monte Carlo process and effects introduced by depth of field, area light sources or motion blur. The undesired noise is then removed by using information of similar, close by samples. The goal of this thesis was to extend the widely used rendering framework PBRT to be able to filter results with RPF, and compare RPF to related research performed in the Computer Graphics Group.

Detecting and Manipulating the Fundamental Frequencies of Tones in a Poliphonic Musical Signal

Oliver Eberhard, Spring 2013


This thesis investigates and implements an algorithm for detecting and manipulating the fundamental frequencies of tones in a poliphonic musical signal. The thesis elaborates on the shift-invariant probabilistic latent component analysis by Hennequin, David and Badeau. They establish a probabilistic model and optimize it to match the magnitude spectrogram of a real recording. After an introduction to the topic of multi pitch estimation, the original paper is analysed thorougly. All steps are explained in detail and important mechanisms are illustrated in figures. Equations are solved with additional interim results. All basic concepts necessary in order to understand the paper are treated. These concepts include i.a. complex sinusoids, the short-time Fourier transform and Lagrange multipliers. Furthermore, an implementation of the proposed algorithm was done for this thesis. After discussing its functioning, its results are assessed and estimation errors explained.

Analysis of Subspace Video Stabilization

Marcel Zingg, Spring 2013


Movies recorded with hand-held cameras usually suffer from shaky camera movement and therefore look unprofessional. Video stabilization can be used to transform such an input video to a steady output by low-pass filtering the underlying camera motion. In this thesis we will be implementing and exploring the algorithm proposed by Liu et al., which uses a novel approach to 2D video stabilization called subspace video stabilization. This algorithm post-processes an image sequence and filters out unwanted camera shakes by smoothing the trajectories of feature points. The main idea in this new approach is to use the fact that trajectories of a static scene lie in a low-dimensional subspace for a short time frame. The resulting basis vectors for this subspace are the so-called eigentrajectories which can be linearly combined to form all the original trajectories. It is then possible to low-pass filter these eigentrajectories of equal length instead of the original ones in order to preserve inter-feature relationships. Although not physically correct, this approach produces plausible and good results for a wide variety of videos, but we also show its limitations.

Nonlinear Disparity Mapping for Stereoscopic 3D

Julian Schelker, Spring 2012


Nowadays 3D images and videos are a hot topic. It is still difficult, however, to capture 3D scenes in such a way that they are always comfortable to observe for viewers later on. Therefore, we need certain software to change the 3D effect in a post processing step. In this thesis we implemented and combined different approaches to analyze 3D images and change the 3D effect in several different ways. In a first approach, it is possible to calculate the appropriate effect for an image completely automatically. An other approach is to allow a user to define his own function to retarget the 3D image. Finally, by using some user input it is possible to calculate a 3D image out of an original 2D image.

Developing a Rendering Engine for Android Devices

Simion Baumann, Spring 2012


In this thesis we present the analysis, design and implementation of a 3D graphical rendering engine based on the mobile operating system Android. We leverage the possibilities that Android as an operating system and development framework provides to create our rendering engine. We provide all the necessary components for a graphical rendering engine, including components such as different scene graphs, the renderer, and user interaction options. Moving beyond just the graphical rendering we implement support for an available open source physics engine and its integration with the existing components. To demonstrate the capabilities of the engine we present and evaluate two proof-of-concept applications, highlighting various features of our rendering engine. To build applications on top of our rendering engine has proven to be simple, clean and efficient.

Microsoft Kinect - Technology and Applications

Remo Diethelm, Spring 2012


Microsoft's Kinect sensor is the first affordable, commercial structured light device that is able to capture depth and color information in real-time. In this thesis we present the results of analyzing the technology of the Kinect sensor and combining it with our own software. We developed applications that allow the user to view and record real-time streaming of Kinect data and, as a main purpose, to perform accurate 3D scan alignments and scene reconstruction based on these records. To visualize 3D data in general we use color and depth imaging information that we get through direct measurements and calibration steps. Scan alignment is then achieved by a SURF feature matching approach. We align individual frames using an absolute orientation algorithm based on Singular Value Decomposition and perform RANSAC to look for the best transform. An overall stabilization is achieved by setting up a graph of camera poses stored as nodes and relative positions between them as edges. We then minimize the error of relations in the graph using network optimization software. This also reduces the occurrence of displacements at loop closures.

Interactive Editing with Subdivision Surfaces

Seline Indermühle, Spring 2012


The goal of this project was to extend the Java codebase used in the computer graphics course of the Computer Graphics Group to allow a user to interactively manipulate the geometry of a shape and smooth it using subdivision surfaces. We implemented Loop and Catmull-Clark subdivision schemes, and built an interactive 3D editing application. Our implementation also supports the design of sharp creases. Further, the framework of the Java code was upgraded from OpenGL 2 to OpenGL 3 to improve rendering performance. A special focus of this project was to ensure that the results could be used for educational purposes in future Computer Graphics courses. 

Autostereoscopic Image Generation

by Manuel Rüfenacht, Fall 2011


In this Bachelor project, we implemented a software pipeline to acquire multiview portrait images from a camera array, print them in an interlaced format, and display them as autostereoscopic images using lenticular arrays. This means that the displayed images provide the perception of three-dimensional depth and motion parallax, similar as holograms. We also built a backlit picture frame to present our results, as shown in the image above.

CUDA Accelerated Ocean Simulation

by Thomas Siegrist, Spring 2011


The goal of this project was to accelerate a simulation model of ocean and atmosphere, which is used to understand long term climate changes, by calculating parts of the model on highly parallelized graphics processing units (GPUs). The original implementation of the model is in Fortran, and we use CUDA Fortran to rewrite some well identi fied parts of the given model. The main challenges of this project were to deal with the vast amount of legacy code, memory transfer overheads when moving data between CPU and GPU memory, and technical issues with the PGI CUDA Fortran compiler, which was in an early stage during this project. As a result, we could not achieve a speed-up with current generation hardware and software, but believe that in the future this should be achievable because of the embarassing parallelism of the simulation algorithm.

Real Time Streaming of Multiview Camera Images to Autostereoscopic Displays

by Gian Calgeer, Spring 2011


Autostereoscopic displays show 3D images without the need for the user to wear special glasses. This makes them ideal for use cases like stereoscopic videoconferencing systems, where the use of glasses would be awkward. In this project we developed infrastructure to capture, process and display images from a camera array in real-time on such a display, with the goal of enabling 3D videoconferencing. Specifically, our method addresses some of the image quality issues inherent to such displays. First, this involves determining camera parameters in order to align the images. Then the images need to be interleaved and displayed on the screen in real-time. Additionally, we use a face detection algorithm to focus the displayed 3D image on the face, which improves the visual quality of the resulting 3D images.

3D Video Stabilization

by Daniel Frey, Spring 2011


The goal of this project was to implement and experiment with a state-of-the-art video stabilization method proposed by Liu et al. Conventional video stabilization methods often operate purely in 2D. The camera motion is measured in the image plane, smoothed, and a full-frame warp is computed to generate a novel view. There is no information about the camera trajectory in 3D and therefore no idealized 3D camera motion can be produced. In this project, we implemented a recent 3D video stabilization method  based on structure from motion. To reason about an idealized 3D camera motion we obtain a reconstruction of the 3D scene structure and the 3D camera trajectory. After fi ltering the jittery camera sequence we can generate novel views from this smoothed sequence of 3D viewpoints. Rendering the views is achieved using a non-linear, content preserving warp. This approach is able to produce smooth camera motion similar as generated by professional equipment like steadicams or cameras mounted on rails. In this project, we also developed a novel filtering algorithm to smooth sequences of camera rotations. We use the implicit Euler method to solve a di ffusion equation over the sequence of rotations. Using an implicit scheme allows us to choose an arbitrarily large time step. This leads to much faster and much more aggressive filtering than the explicit approach. We also applied the stabilization method to stereo video. We found that it is possible to apply the stabilization to the left and right video separately without introducing visible artifacts.

Weiche Schatten in Echtzeit-Applikationen

vorgelegt von Marco Manzi, Frühling 2010

In dieser Arbeit werden drei auf Shadowmapping basierende Algorithmen zur Generierung physikalisch plausibler weicher Schatten besprochen und miteinander verglichen. Der erste besprochene Algorithmus ist Percentage Closer Soft Shadows (PCSS). Dies ist eine Erweiterung des Percentage Closer Filterings, in dem versucht wird, die Penumbragrösse korrekt zu approximieren. Dieser Algorithmus besticht durch seine Einfachheit, leidet aber in der implementierten Version unter einer Schattenqualität, die abhängig von der Grösse der zu generierenden Penumbra ist. Als zweites wird Convolution Soft Shadow Mapping besprochen. Dieser Algorithmus ähnelt in der Grundidee sehr starkPCSS, approximiert den Schattentest allerdings mit Fourier-Reihen, so dass dieser linear bezüglich seiner Argumente wird und vorge filtert werden kann. Ein grosser Vorteil dieses Algorithmus stellt seine Unabhängigkeit der Qualität und der Geschwindigkeit gegenüber der Grösse der zu generierenden Penumbraregionen dar, allerdings leidet dieser wegen des Gibbsschen Phänomens der Fourier-Reihen teilweise unter störenden Artefakten. Der Realitätsgrad von Schatten, die durch PCSS und CSSM generiert werden, unterliegt aufgrund der Approximationsvereinfachungen, die durchgeführt werden müssen, vielen Einschränkungen. Der letzte besprochene Algorithmus, der Backprojection Algorithmus, ist in der Lage ohne diese Einschränkungen auszukommen und dadurch viel realistischere Schatten zu generieren. Allerdings stellt dieser auch der komplizierteste und langsamste Algorithmus dar, der hier besprochen wird. Zusätzlich hat er den Nachteil, dass entweder die Qualität oder die Geschwindigkeit sehr abhängig ist von der Grösse der generierten Penumbra.

Ausmessung eines 3D-Bildschirms

vorgelegt von Stefan Frutig, Herbst 2009


3D-Bildschirme ermöglichen dem Betrachter eine räumliche, also 3-dimensionale Wahrnehmung der angezeigten Bilder. In dieser Arbeit werden die blickwinkelabhängigen Eigenschaften eines 3D-Bildschirms ausgemessen, um einen Filter zu berechnen, der die 3D-Eingabedaten für den Bildschirm optimal vorbearbeitet. Dafür werden mithilfe einer Digitalkamera aus verschiedenen Richtungen Bilder vom Bildschirm aufgenommen um die blickwinkelabhängige, relative Helligkeit eines Pixels zu erkennen. Diese Bilder werden dann so bearbeitet, dass die Helligkeit eines Pixels und die Blickrichtung von der Kamera auf den Bildschirm berechnet werden kann. Aus den so gewonnenen Daten wird dann der optimale Filter generiert. In dieser Arbeit wird ein autostereoskopischer Bildschirm mit Parallax-Barriere verwendet, welcher dem Betrachter ein räumliches Sehen ermöglicht ohne eine spezielle Brille tragen zu müssen. Durch diesen Bildschirm entstehen jedoch Effekte, die das Eingabebild auf dem Bildschirm unscharf erscheinen lassen. Der zu generierende, optimale Filter soll diesen E ekt rückgängig machen.

Flüssigkeitssimulation in Echtzeit

vorgelegt von Thomas Schär, Herbst 2009

Die Simulation von Flüssigkeitsbewegung wird in einem breiten Spektrum von Anwendungen eingesetzt, das von der Unterhaltungsbranche bis zu den Ingenieurwissenschaften reicht. Die vorliegende Arbeit gibt eine Einführung in die theoretische Grundlage jeder Flüssigkeitssimulation - die Navier-Stokes Gleichungen - und fokussiert auf die Anwendung im Bereich der Computergrafikk. Dazu werden die Gleichungen mit einem numerischen Lösungsverfahren bearbeitet, so dass eine realistische Flüssigkeitsbewegung entsteht. Hierzu werden Euler'sche und Lagrange'sche Ansätze einzeln und gemischt verwendet, sowie ein Gauss-Seidel Verfahren zur Lösung von linearen Gleichungssystemen benutzt. Eine Beschleunigung des Vorgehens wird mittels CUDA durch die direkte Implementierung des Problems auf der Gra fikhardware erzielt. Aufgrund der erreichten Resultate wird eine Diskussion über die Möglichkeiten und die Qualität des Lösungsverfahrens durchgeführt.

Dual Quaternion Skinning und inverse Kinematik

vorgelegt von Gregor Budweiser, Herbst 2009

Das Animieren von digitalen Charakteren ist ein zentraler Bestandteil der Computergrafi k. Es werden immer realistischere Verfahren gebraucht um, die Glaubwüurdigkeit eines Charakters und somit einer virtuellen Realität zu gewährleisten. Skeletal Animation, eine Skelett-basierte Animation, hat sich dabei in der Film- und Spieleindustrie als Standard etabliert. Verbesserungen sucht man vor allem beim Skinning, der Verformung der Figur, was als ein Teil von Skeletal Animation angesehen werden kann. Besonders bei der Darstellung von Figuren in Echtzeit muss Qualität gegen Geschwindigkeit abgewogen werden. In dieser Arbeit werden zwei verschiedene Möglichkeiten beschrieben, welche die Bewegung einer Figur in Echtzeit erreichen und dabei auf Skeletal Animation basieren. Beide Methoden, Linear Blend Skinning und Approximate Dual Quaternion Skinning, werden nach den Eigenschaften Geschwindigkeit und Qualität geprüft und verglichen. Weiter wird eine Methode zur Bewegungsplanung beschrieben, die inverse Kinematik genannt wird. Resultate einer einfachen Implementation werden diskutiert.

Document Actions