Silhouette Extraction using Graphics Processing Units
Department of Informatics, University of Oslo
University of Oslo, 2012
@phdthesis{karstensen2012silhouette,
title={Silhouette Extraction using Graphics Processing Units},
author={Karstensen, Kristian Haga},
year={2012}
}
A silhouette gives an outline of a person or an object. When extracting silhouettes from an image or video, we acquire information about where in the image the foreground objects are located, their sizes and their shapes. This silhouette information can be useful in many ways. In computer vision, silhouette extraction plays an important role. Many applications need to extract people or objects, e.g. in video surveillance, tracking of objects, human or object detection [1], 3D-reconstruction [2] or mixed reality [3] applications. For instance in a mixed reality scenario, we may want to reinsert a person into a different setting or location to interact with other people in real-time. Many of the aforementioned applications use, at least in part, silhouettes (from one or multiple viewpoints) as input. Since the extraction of silhouettes is often a small part of these applications, it has to be done as fast as possible – at least in real-time applications, leaving valuable execution time to the rest of the application. The main contributions in this thesis are as follows: We explore a silhouette extraction algorithm and implement most parts of this algorithm on both CPU and GPU, with the GPU implementation being our main focus. In our GPU-implementation, we investigate different optimization approaches on each step of the algorithm, measure runtime on different video data and report our results. We show that when implementing image processing algorithms on GPU, multiple implementations should be tried to get the best runtime, as small changes can make pretty big differences. We show that our GPU implementation is between 2 and 3.4 times faster than our CPU implementation in the worst case and that we can get around 6 frames per second on video data with size 1024×768. On video with size 512×288 we get a framerate of around 26 fps. We perform a simple quality assessment of experimental resulting silhouettes of the algorithm, and point at possible optimizations that can be performed to get better results.
October 29, 2012 by hgpu