Analysis of fibre cross sections: Developing methods for image processing and visualisation utilising the GPU
MetadataVis full innførsel
Modern graphics processing units, GPUs, have evolved into high-performance processors with programmable vertex and pixel shaders. With these new abilities a new subfield of research, dubbed GPGPU for General Purpose computing on the GPU has emerged, in areas as oil exploration, processing of sound effects, neural networks, cryptography and image processing. As the GPUs functionality and performance are still increasing, more programmers are appealed by their computational power. To understand the performance of paper materials a detailed characterisation of the fibre cross-sections is necessary. Using scanning electron microscopy, SEM, fibres embedded in epoxy are depicted. These images have to be analysed and quantified. In this master thesis we explore the possibility of taking advantage of todays generation of GPUs performance when analysing digital images of fibre cross-sections. We implemented common algorithms such as the median filter, the SUSAN smoothing filter and various mathematical morphology operations using the high-level shader language OpenGL Shader Language, GLSL. When measured against equivalent image processing opreations run on the CPU, we have found our GPU solution to perform about the same. The operations run much faster on the GPU, but due to overhead of binding FBOs, intialising shader programs and transfering data between the CPU and the GPU, the end result is about the same on the GPU and CPU implementations. We have deliberatly worked with commodity hardware to see what one can gain with just replacing the graphics card in the engineer's PCs. With newer hardware the results would tilt heavily towards the GPU implementations. We have concluded that making a paper fibre cross-section analysis program based on GPU image processing with commodity hardware is indeed feasible, and would give some benefits to the user interactivity. But it is also harder to implement because the field is still young, with immature compilers and debugging tools and few solid libraries.