Parallel Edge Detection Daniel Dobkin Asaf Nitzan.

Slides:



Advertisements
Similar presentations
OpenMP.
Advertisements

System Integration and Performance
OpenMP Optimization National Supercomputing Service Swiss National Supercomputing Center.
Introductions to Parallel Programming Using OpenMP
EDGE DETECTION ARCHANA IYER AADHAR AUTHENTICATION.
Starting Parallel Algorithm Design David Monismith Based on notes from Introduction to Parallel Programming 2 nd Edition by Grama, Gupta, Karypis, and.
Digital Imaging and Image Analysis
Revisiting a slide from the syllabus: CS 525 will cover Parallel and distributed computing architectures – Shared memory processors – Distributed memory.
1 Tuesday, November 07, 2006 “If anything can go wrong, it will.” -Murphy’s Law.
DISTRIBUTED AND HIGH-PERFORMANCE COMPUTING CHAPTER 7: SHARED MEMORY PARALLEL PROGRAMMING.
Computer Architecture II 1 Computer architecture II Programming: POSIX Threads OpenMP.
Computer Vision Introduction to Image formats, reading and writing images, and image environments Image filtering.
Lecture 1: Images and image filtering
Enhancing and Optimizing the Render Cache Bruce Walter Cornell Program of Computer Graphics George Drettakis REVES/INRIA Sophia-Antipolis Donald P. Greenberg.
Image representation using arrays Image processing examples
Page 1 CS Department Parallel Design of JPEG2000 Image Compression Xiuzhen Huang CS Department UC Santa Barbara April 30th, 2003.
CSE 160 – Lecture 10 Programs 1 and 2. Program 1 Write a “launcher” program to specify exactly where programs are to be spawned, gather output, clean.
First Bytes - LabVIEW. Today’s Session Introduction to LabVIEW Colors and computers Lab to create a color picker Lab to manipulate an image Visual ProgrammingImage.
Conventional Image Processing. grids Digital Image Notation Digital images are typically stored with the first index representing the row number and.
CS 470/570:Introduction to Parallel and Distributed Computing.
Tal Mor  Create an automatic system that given an image of a room and a color, will color the room walls  Maintaining the original texture.
Harris Corner Detector on FPGA Rohit Banerjee Jared Choi : Parallel Computer Architecture and Programming.
CS470/570 Lecture 5 Introduction to OpenMP Compute Pi example OpenMP directives and options.
1 Copyright © 2010, Elsevier Inc. All rights Reserved Chapter 5 Shared Memory Programming with OpenMP An Introduction to Parallel Programming Peter Pacheco.
CC02 – Parallel Programming Using OpenMP 1 of 25 PhUSE 2011 Aniruddha Deshmukh Cytel Inc.
Upcrc.illinois.edu OpenMP Lab Introduction. Compiling for OpenMP Open project Properties dialog box Select OpenMP Support from C/C++ -> Language.
Adobe Photoshop CS Design Professional COLORS ADJUSTING.
© 2011 Delmar, Cengage Learning Chapter 11 Adjusting Colors.
Chapter 11 Adjusting Colors. Chapter Lessons Correct and adjust color Enhance colors by altering saturation Modify color channels using levels Create.
© GCSE Computing Candidates should be able to:  explain the representation of an image as a series of pixels represented in binary  explain the need.
1 Electronics Lab, Physics Dept., Aristotle Univ. of Thessaloniki, Greece 2 Micro2Gen Ltd., NCSR Demokritos, Greece 17th IEEE International Conference.
1 OpenMP Writing programs that use OpenMP. Using OpenMP to parallelize many serial for loops with only small changes to the source code. Task parallelism.
AN EXTENDED OPENMP TARGETING ON THE HYBRID ARCHITECTURE OF SMP-CLUSTER Author : Y. Zhao 、 C. Hu 、 S. Wang 、 S. Zhang Source : Proceedings of the 2nd IASTED.
Hierarchical model for pattern recognition based on parallel and distributed computing Olivier Bornet, University Joseph Fourier Grenoble Martin Kalany,
Work Replication with Parallel Region #pragma omp parallel { for ( j=0; j
0 - 1 © 2007 Texas Instruments Inc, Content developed in partnership with Tel-Aviv University From MATLAB ® and Simulink ® to Real Time with TI DSPs Edge.
Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd ed., by B. Wilkinson & M
Pipelined and Parallel Computing Data Dependency Analysis for 1 Hongtao Du AICIP Research Mar 9, 2006.
An Efficient Search Strategy for Block Motion Estimation Using Image Features Digital Video Processing 1 Term Project Feng Li Michael Su Xiaofeng Fan.
SIMD Image Processor Eric Liskay Andrew Northy Neraj Kumar 1.
Vector/Array ProcessorsCSCI 4717 – Computer Architecture CSCI 4717/5717 Computer Architecture Topic: Vector/Array Processors Reading: Stallings, Section.
Implementing GIST on the GPU. Refrence Original Work  Aude Oliva, Antonio Torralba  Modeling the shape of the scene: a holistic representation of the.
CSC508 Convolution Operators. CSC508 Convolution Arguably the most fundamental operation of computer vision It’s a neighborhood operator –Similar to the.
Kylie Gorman WEEK 1-2 REVIEW. CONVERTING AN IMAGE FROM RGB TO HSV AND DISPLAY CHANNELS.
Shared Memory Parallelism - OpenMP Sathish Vadhiyar Credits/Sources: OpenMP C/C++ standard (openmp.org) OpenMP tutorial (
Lane Detection in OpenCL
Augmented Reality and 3D modelling Done by Stafford Joemat Supervised by Mr James Connan.
Image Processing A Study in Pixel Averaging Building a Resolution Pyramid With Parallel Computing Denise Runnels and Farnaz Zand.
Intelligent Robotics Today: Vision & Time & Space Complexity.
3/12/2013Computer Engg, IIT(BHU)1 OpenMP-1. OpenMP is a portable, multiprocessing API for shared memory computers OpenMP is not a “language” Instead,
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 1: Introduction What is an Operating System? Multiprocessor Systems Distributed.
Edge Segmentation in Computer Images CSE350/ Sep 03.
Uses some of the slides for chapters 3 and 5 accompanying “Introduction to Parallel Computing”, Addison Wesley, 2003.
OpenMP Runtime Extensions Many core Massively parallel environment Intel® Xeon Phi co-processor Blue Gene/Q MPI Internal Parallelism Optimizing MPI Implementation.
Processing Images and Video for An Impressionist Effect Automatic production of “painterly” animations from video clips. Extending existing algorithms.
Bayer Color Filter Array Demosaicing
Heterogeneous Computing using openMP lecture 1 F21DP Distributed and Parallel Technology Sven-Bodo Scholz.
Accelerating K-Means Clustering with Parallel Implementations and GPU Computing Janki Bhimani Miriam Leeser Ningfang Mi
Our Graphics Environment Landscape Rendering. Hardware  CPU  Modern CPUs are multicore processors  User programs can run at the same time as other.
Tracking the eyes using a webcam
Hybrid Parallel Programming with the Paraguin compiler
Computer Engg, IIT(BHU)
SHARED MEMORY PROGRAMMING WITH OpenMP
Multi-core CPU Computing Straightforward with OpenMP
a kind of filtering that leads to useful features
a kind of filtering that leads to useful features
Computer Vision Basics
Image Filtering with GLSL
CS 295: Modern Systems Lab2: Convolution Accelerators
Embedded Image Processing: Edge Detection on FPGAs
Presentation transcript:

Parallel Edge Detection Daniel Dobkin Asaf Nitzan

 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…

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

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

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

 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

Finding Edges - Example  For Sobel x filter: -617  For Sobel y filter: -669

 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

 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

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

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

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

Speedup Graph  Linear Speedup due to low communication cost