3. Disparity-Map in Stereo Vision Parallel Programming Programming on GPUs Belief Propagation BP on CUDA Experiment Results Conclusions and Future Works Over View
6. Ground Truth Tsukuba Left Image Tsukuba Right Image Disparity Image by BP (F. Felzenszwalb) Disparity Image by DP Disparity Image by GC (Kolmogorov)
8. Parallel Programming Traditionally, software has been written for serial computation: • To be run on a single computer having a single Central Processing Unit (CPU). • A problem is broken into a discrete series of instructions. • Instructions are executed one after another. • Only one instruction may execute at any moment in time. •Serial Programming Parallel Programming
9. Parallel Programming In the simplest sense, parallel computing is the simultaneous use of multiple compute resources to solve a computational problem: • To be run using multiple CPUs. • A problem is broken into discrete parts that can be solved concurrently. • Each part is further broken down to a series of instructions. • Instructions from each part execute simultaneously on different CPUs. Serial Programming • Parallel Programming
13. Programming on GPUs Main() { //Allocate memory on GPU float *Md; cudaMalloc((void**)&Md, size); //Copy data from CPU to GPU cudaMemcpy(Md, M, size, cudaMemcpyHostToDevice); //Call GPU kernel function kernel<<<dimGrid, dimBlock>>> (arguments); //Copy data from GPU back to CPU CopyFromDeviceMatrix(M, Md); //Free device matrices FreeDeviceMatrix(Md); }
14. Programming on GPUs • CUDA (Compute Unified Device Architecture) is a computing architecture developed by nVIDIA to use graphic processing unit as a general purpose parallel processor. nVIDIAGeFroce 8800
17. Belief Propagation on CUDA 1. Allocate GPU global memory 2. Load original images (left and right) to GPU global memory 3. (If real-world image) Pre-process images with Sobel / Residual 4. Calculate data cost 5. Calculate the data (Gaussian) pyramid 6. Message passing using created pyramid 7. Compute disparity map from messages and data-cost 8. Retrieve disparity map to local (host) memory
22. Conclusions and Future Works • Improve Belief Propagation (faster and better) • Implement other stereo algorithms in parallel (such as DP, GC…) • Apply the algorithm to stereo images captured by Truck