70 likes | 219 Views
Adam Wagner Kevin Forbes. gpu enhanced Real-time video segmentation. Motivation. Take advantage of GPU architecture for highly parallel data-intensive application Enhance image segmentation using Microsoft Kinect IR depth images
E N D
Adam Wagner Kevin Forbes gpu enhanced Real-time video segmentation
Motivation • Take advantage of GPU architecture for highly parallel data-intensive application • Enhance image segmentation using Microsoft Kinect IR depth images • Reduce frame-to-frame segmentation overhead with optical flow and iterative simulated annealing • “Depth-supported real-time video segmentation with the Kinect” • Algorithm uses Potts model and Metropolis method for segmentation on GPU
Implementation No base source code Software frameworks: • OpenCV – image capture, transformations, optical flow • OpenNI – Kinect middleware • CUDA – NVIDIA GPGPU driven architecture Testbed: rcl1.engr.arizona.edu • CPU: Quad-core Intel Xeon 5160, 3.0GHz • GPU: NVIDIA GeForce GTX 480 • 480 CUDA Cores • GDDR5 • Threads/block = 1024 • Shared memory / block = 48KB
Methodology • Primary effort focused on parallelization of segmentation algorithm • Without source, code was written from scratch for CPU, then parallelized • Memory indexing rearranged to improve coalescing of global loads/stores • Much later in semester, some code became available from paper authors • Image divided into thread blocks on GPU • Image data loaded into block shared memory from global memory • Each thread performs state update on a single pixel
Results Input Image: 512 x 384 RGB to HSV Conversion 2000 Metropolis Iterations
Conclusions • Parallelized algorithm shows vast improvement over CPU version • Makes real-time video processing a possibility • Implementation does not match paper • More improvement possible through use of simpler data types • Still more fine tuned memory arrangement • Increase work done by each thread