Presentation is loading. Please wait.

Presentation is loading. Please wait.

Parallel Edge Detection Daniel Dobkin Asaf Nitzan.

Similar presentations


Presentation on theme: "Parallel Edge Detection Daniel Dobkin Asaf Nitzan."— Presentation transcript:

1 Parallel Edge Detection Daniel Dobkin Asaf Nitzan

2  Introduction to Image Processing  What are edges? Why do we need to find them? How do we find them?  Motivation to parallelize this process  OpenMP implementation We’ll talk about…

3  2-D / 3-D array of pixels  Color channels  RGB – 3 channels  Grayscale – 1 channel  1 byte per channel values of 0-255 What is an image?

4 A closer look at pixels R = 225 G = 157 B = 168 R = 201 G = 120 B = 137

5 Edges  A sharp change in values of adjacent pixels  Motivation to find edges  A very basic feature in image processing

6  First, convert image from RGB to Grayscale  Convolve the image with a special 2-D operator  A greater change in intensity indicates a more prominent edge  Sobel operator: Finding Edges

7 21722144 213132 2432 Finding Edges - Example  For Sobel x filter: -617  For Sobel y filter: -669

8  Large amount of computations  800 x 600 pixels = 480,000 pixels  5.5 million additions, 2 million multiplications  Especially when it comes to real-time video…  24 fps = 11.5 million pixels  132 million additions, 48 million multiplications… Motivation to Parallelize

9

10

11

12  Processors access same shared memory  Each processor performs the region of image assigned to him  Reduced communication - There is no need to broadcast the pixels of the image to all other processors openMP

13 A B C D openMP Implementation A B C D Master thread Parallel task – Sobel filtering fork join  Multithreading  Master thread forks a number of threads which execute code in parallel Original Image

14 Load Image from Main memory Allocate memory to new image Set number of threads #pragma omp parallel for \ shared(inputImage, outputImage, width, height)\ private(StartPixel, NumOfThreads, Rank, xPixel, yPixel) for each Pixel in region Convert RGB value to greyscale Compute gradient using Sobel filter Store result in filtered image Join all threads Store new image to disk Pseudocode

15 openMP Implementation A B C D Original Image Processor 1 Processor 2 Processor 3 Processor 4 Sobel A B C D Filtered Image Main Memory

16 Speedup Graph  Linear Speedup due to low communication cost http://www.cs.rit.edu/~ptt/courses/4003-531/


Download ppt "Parallel Edge Detection Daniel Dobkin Asaf Nitzan."

Similar presentations


Ads by Google