Lecture 2: Image filtering

Slides:



Advertisements
Similar presentations
Lecture 2: Convolution and edge detection CS4670: Computer Vision Noah Snavely From Sandlot ScienceSandlot Science.
Advertisements

Edge Detection CSE P 576 Larry Zitnick
Edge detection Goal: Identify sudden changes (discontinuities) in an image Intuitively, most semantic and shape information from the image can be encoded.
Lecture 4 Edge Detection
Lecture 2: Filtering CS4670/5670: Computer Vision Kavita Bala.
1 Image filtering Hybrid Images, Oliva et al.,
Announcements Mailing list: –you should have received messages Project 1 out today (due in two weeks)
Edges and Scale Today’s reading Cipolla & Gee on edge detection (available online)Cipolla & Gee on edge detection Szeliski – From Sandlot ScienceSandlot.
Lecture 2: Edge detection and resampling
Edge Detection Today’s reading Forsyth, chapters 8, 15.1
Lecture 1: Images and image filtering
Lecture 3: Edge detection, continued
Announcements Kevin Matzen office hours – Tuesday 4-5pm, Thursday 2-3pm, Upson 317 TA: Yin Lou Course lab: Upson 317 – Card access will be setup soon Course.
Linear filtering.
Edge Detection Today’s readings Cipolla and Gee –supplemental: Forsyth, chapter 9Forsyth Watt, From Sandlot ScienceSandlot Science.
The blue and green colors are actually the same.
CSE 473/573 Computer Vision and Image Processing (CVIP) Ifeoma Nwogu Lecture 10 – Edges and Pyramids 1.
Edge Detection.
Edge detection Goal: Identify sudden changes (discontinuities) in an image Intuitively, most semantic and shape information from the image can be encoded.
Lecture 1: Images and image filtering CS4670/5670: Intro to Computer Vision Kavita Bala Hybrid Images, Oliva et al.,
Computer Vision Spring ,-685 Instructor: S. Narasimhan WH 5409 T-R 10:30 – 11:50am.
CS559: Computer Graphics Lecture 3: Digital Image Representation Li Zhang Spring 2008.
Lecture 2: Edge detection CS4670: Computer Vision Noah Snavely From Sandlot ScienceSandlot Science.
Image Processing Edge detection Filtering: Noise suppresion.
Lecture 3: Edge detection CS4670/5670: Computer Vision Kavita Bala From Sandlot ScienceSandlot Science.
Edge Detection Today’s reading Cipolla & Gee on edge detection (available online)Cipolla & Gee on edge detection From Sandlot ScienceSandlot Science.
Edge Detection Today’s reading Cipolla & Gee on edge detection (available online)Cipolla & Gee on edge detection Szeliski, Ch 4.1.2, From Sandlot.
Why is computer vision difficult?
Instructor: S. Narasimhan
Linear filtering. Motivation: Noise reduction Given a camera and a still scene, how can you reduce noise? Take lots of images and average them! What’s.
CS654: Digital Image Analysis Lecture 24: Introduction to Image Segmentation: Edge Detection Slide credits: Derek Hoiem, Lana Lazebnik, Steve Seitz, David.
Edge detection Goal: Identify sudden changes (discontinuities) in an image Intuitively, most semantic and shape information from the image can be encoded.
CSE 185 Introduction to Computer Vision Edges. Scale space Reading: Chapter 3 of S.
EE 4780 Edge Detection.
Many slides from Steve Seitz and Larry Zitnick
Brent M. Dingle, Ph.D Game Design and Development Program Mathematics, Statistics and Computer Science University of Wisconsin - Stout Edge Detection.
Mestrado em Ciência de Computadores Mestrado Integrado em Engenharia de Redes e Sistemas Informáticos VC 15/16 – TP7 Spatial Filters Miguel Tavares Coimbra.
CS 691B Computational Photography
CSE 6367 Computer Vision Image Operations and Filtering “You cannot teach a man anything, you can only help him find it within himself.” ― Galileo GalileiGalileo.
Announcements Project 0 due tomorrow night. Edge Detection Today’s readings Cipolla and Gee (handout) –supplemental: Forsyth, chapter 9Forsyth For Friday.
COMPUTER VISION D10K-7C02 CV05: Edge Detection Dr. Setiawan Hadi, M.Sc.CS. Program Studi S-1 Teknik Informatika FMIPA Universitas Padjadjaran.
Linear filtering. Motivation: Image denoising How can we reduce noise in a photograph?
Lecture 8: Edges and Feature Detection
Last Lecture photomatix.com. Today Image Processing: from basic concepts to latest techniques Filtering Edge detection Re-sampling and aliasing Image.
Grauman Today: Image Filters Smooth/Sharpen Images... Find edges... Find waldo…
Finding Boundaries Computer Vision CS 143, Brown James Hays 09/28/11 Many slides from Lana Lazebnik, Steve Seitz, David Forsyth, David Lowe, Fei-Fei Li,
Lecture 1: Images and image filtering CS4670/5670: Intro to Computer Vision Noah Snavely Hybrid Images, Oliva et al.,
Winter in Kraków photographed by Marcin Ryczek
Edge Detection Images and slides from: James Hayes, Brown University, Computer Vision course Svetlana Lazebnik, University of North Carolina at Chapel.
Miguel Tavares Coimbra
Edge Detection slides taken and adapted from public websites:
Edge Detection CS 678 Spring 2018.
Lecture 2: Edge detection
Lecture 1: Images and image filtering
Jeremy Bolton, PhD Assistant Teaching Professor
Edge detection Goal: Identify sudden changes (discontinuities) in an image Intuitively, most semantic and shape information from the image can be encoded.
Image gradients and edges April 11th, 2017
Review: Linear Systems
Edge Detection Today’s reading
Edge Detection CSE 455 Linda Shapiro.
Edge Detection Today’s reading
Lecture 2: Edge detection
Edge Detection Today’s reading
Edge Detection Today’s readings Cipolla and Gee Watt,
Lecture 1: Images and image filtering
Lecture 2: Edge detection
Winter in Kraków photographed by Marcin Ryczek
IT472 Digital Image Processing
IT472 Digital Image Processing
Edge detection Goal: Identify sudden changes (discontinuities) in an image Intuitively, most semantic and shape information from the image can be encoded.
Presentation transcript:

Lecture 2: Image filtering CS6670: Computer Vision Noah Snavely Lecture 2: Image filtering Hybrid Images, Oliva et al., http://cvcl.mit.edu/hybridimage.htm

Lecture 2: Image filtering CS6670: Computer Vision Noah Snavely Lecture 2: Image filtering Hybrid Images, Oliva et al., http://cvcl.mit.edu/hybridimage.htm

Lecture 2: Image filtering CS6670: Computer Vision Noah Snavely Lecture 2: Image filtering Hybrid Images, Oliva et al., http://cvcl.mit.edu/hybridimage.htm

Lecture 2: Image filtering CS6670: Computer Vision Noah Snavely Lecture 2: Image filtering Hybrid Images, Oliva et al., http://cvcl.mit.edu/hybridimage.htm

Reading Szeliski, Chapter 3.1-3.2

What is an image?

What is an image? We’ll focus on these in this class Digital Camera We’ll focus on these in this class (More on this process later) The Eye Source: A. Efros

= What is an image? A grid (matrix) of intensity values (common to use one byte per value: 0 = black, 255 = white) 255 20 75 95 96 127 145 175 200 47 74 =

What is an image? We can think of a (grayscale) image as a function, f, from R2 to R (or a 2D signal): f (x,y) gives the intensity at position (x,y) A digital image is a discrete (sampled, quantized) version of this function x y f (x, y) snoop 3D view

Image transformations As with any function, we can apply operators to an image We’ll talk about a special kind of operator, convolution (linear filtering) g (x,y) = f (x,y) + 20 g (x,y) = f (-x,y)

Question: Noise reduction Given a camera and a still scene, how can you reduce noise? Answer: take lots of images, average them Take lots of images and average them! What’s the next best thing? Source: S. Seitz

Image filtering Modify the pixels in an image based on some function of a local neighborhood of each pixel 5 1 4 7 3 10 Some function 7 Local image data Modified image data Source: L. Zhang

Linear filtering One simple version: linear filtering (cross-correlation, convolution) Replace each pixel by a linear combination of its neighbors The prescription for the linear combination is called the “kernel” (or “mask”, “filter”) 6 1 4 8 5 3 10 0.5 1 8 Local image data kernel Modified image data Source: L. Zhang

Cross-correlation Let be the image, be the kernel (of size 2k+1 x 2k+1), and be the output image This is called a cross-correlation operation:

Convolution Same as cross-correlation, except that the kernel is “flipped” (horizontally and vertically) Convolution is commutative and associative This is called a convolution operation:

Convolution Adapted from F. Durand

Mean filtering 90 10 20 30 40 60 90 50 80 * = 1

Linear filters: examples * 1 = Original Identical image Source: D. Lowe

Linear filters: examples * 1 = Original Shifted left By 1 pixel Source: D. Lowe

Linear filters: examples 1 * = Original Blur (with a mean filter) Source: D. Lowe

Linear filters: examples Sharpening filter (accentuates edges) 1 2 - * = Original Source: D. Lowe

Sharpening Source: D. Lowe

Smoothing with box filter revisited I always walk through the argument on the left rather carefully; it gives some insight into the significance of impulse responses or point spread functions. Source: D. Forsyth

Gaussian Kernel Source: C. Rasmussen

Gaussian filters = 1 pixel = 5 pixels = 10 pixels = 30 pixels

Gaussian filter Removes “high-frequency” components from the image (low-pass filter) Convolution with self is another Gaussian Convolving two times with Gaussian kernel of width = convolving once with kernel of width * = Linear vs. quadratic in mask size Source: K. Grauman

Sharpening Source: D. Lowe

Sharpening revisited = = What does blurring take away? – + α original smoothed (5x5) detail = – Let’s add it back: original detail + α sharpened = Source: S. Lazebnik

unit impulse (identity) Sharpen filter blurred image image unit impulse (identity) Gaussian scaled impulse Laplacian of Gaussian f + a(f - f * g) = (1+a)f-af*g = f*((1+a)e-g)

Sharpen filter unfiltered filtered

Convolution in the real world Camera shake = * Source: Fergus, et al. “Removing Camera Shake from a Single Photograph”, SIGGRAPH 2006 Bokeh: Blur in out-of-focus regions of an image. Source: http://lullaby.homepage.dk/diy-camera/bokeh.html

Questions?

Edge detection Convert a 2D image into a set of curves Extracts salient features of the scene More compact than pixels TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AAA

Origin of Edges Edges are caused by a variety of factors surface normal discontinuity depth discontinuity surface color discontinuity illumination discontinuity Edges are caused by a variety of factors

Characterizing edges An edge is a place of rapid change in the image intensity function intensity function (along horizontal scanline) image first derivative edges correspond to extrema of derivative Source: L. Lazebnik

Image derivatives How can we differentiate a digital image F[x,y]? Option 1: reconstruct a continuous image, f, then compute the derivative Option 2: take discrete derivative (finite difference) How would you implement this as a linear filter? 1 -1 -1 1 : : Source: S. Seitz

Image gradient The gradient of an image: The gradient points in the direction of most rapid increase in intensity The edge strength is given by the gradient magnitude: The gradient direction is given by: how does this relate to the direction of the edge? give definition of partial derivative: lim h->0 [f(x+h,y) – f(x,y)]/h Source: Steve Seitz

Image gradient Source: L. Lazebnik

Image gradient

Effects of noise Where is the edge? Noisy input image Source: S. Seitz How to fix? Where is the edge? Source: S. Seitz

Solution: smooth first f * h To find edges, look for peaks in Source: S. Seitz

Associative property of convolution Differentiation is convolution, and convolution is associative: This saves us one operation: f Source: S. Seitz

2D edge detection filters derivative of Gaussian (x) Gaussian How many 2nd derivative filters are there? There are four 2nd partial derivative filters. In practice, it’s handy to define a single 2nd derivative filter—the Laplacian

Derivative of Gaussian filter x-direction y-direction

Side note: How would you compute a directional derivative? (From vector calculus) Directional deriv. is a linear combination of partial derivatives = ? + =

Derivative of Gaussian filter x-direction y-direction + =

The Sobel operator Common approximation of derivative of Gaussian -1 1 -2 2 1 2 -1 -2 Q: Why might these work better? A: more stable when there is noise The standard defn. of the Sobel operator omits the 1/8 term doesn’t make a difference for edge detection the 1/8 term is needed to get the right gradient value 47

Sobel operator: example Source: Wikipedia

Example original image (Lena)

Finding edges gradient magnitude

Finding edges where is the edge? thresholding

Non-maximum supression Check if pixel is local maximum along gradient direction requires interpolating pixels p and r

Finding edges thresholding

(non-maximum suppression) Finding edges thinning (non-maximum suppression)

Source: D. Lowe, L. Fei-Fei Canny edge detector MATLAB: edge(image,‘canny’) Filter image with derivative of Gaussian Find magnitude and orientation of gradient Non-maximum suppression Linking and thresholding (hysteresis): Define two thresholds: low and high Use the high threshold to start edge curves and the low threshold to continue them Source: D. Lowe, L. Fei-Fei

Canny edge detector Still one of the most widely used edge detectors in computer vision Depends on several parameters: J. Canny, A Computational Approach To Edge Detection, IEEE Trans. Pattern Analysis and Machine Intelligence, 8:679-714, 1986. : width of the Gaussian blur high threshold low threshold

Canny edge detector original Canny with Canny with The choice of depends on desired behavior large detects “large-scale” edges small detects fine edges Source: S. Seitz

Scale space (Witkin 83) larger first derivative peaks larger Gaussian filtered signal Properties of scale space (w/ Gaussian smoothing) edge position may shift with increasing scale () two edges may merge with increasing scale an edge may not split into two with increasing scale

Questions? 3-minute break

Images as vectors Very important idea! 1 2D image Scanline (1D signal) (A 2D, n x m image can be represented by a vector of length nm formed by concatenating the rows) Vector

Multiplying row and column vectors = ?

Filtering as matrix multiplication What kind of filter is this?

Filtering as matrix multiplication =

Another matrix transformation 2D DCT basis 1D Discrete cosine transform (DCT) basis

Another matrix transformation 2D DCT basis 1D Discrete cosine transform (DCT) basis