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,

Slides:



Advertisements
Similar presentations
Boundary Detection - Edges Boundaries of objects –Usually different materials/orientations, intensity changes.
Advertisements

Lecture 2: Convolution and edge detection CS4670: Computer Vision Noah Snavely From Sandlot ScienceSandlot Science.
Edge Detection CSE P 576 Larry Zitnick
Edge and Corner Detection Reading: Chapter 8 (skip 8.1) Goal: Identify sudden changes (discontinuities) in an image This is where most shape information.
Edge Detection. Our goal is to extract a “line drawing” representation from an image Useful for recognition: edges contain shape information –invariance.
EE663 Image Processing Edge Detection 1
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
Edge detection. Edge Detection in Images Finding the contour of objects in a scene.
Announcements Mailing list: –you should have received messages Project 1 out today (due in two weeks)
EE663 Image Processing Edge Detection 2 Dr. Samir H. Abdul-Jauwad Electrical Engineering Department King Fahd University of Petroleum & Minerals.
Computer Vision - A Modern Approach
Lecture 2: Edge detection and resampling
Edge Detection Today’s reading Forsyth, chapters 8, 15.1
Lecture 3: Edge detection, continued
Filters and Edges. Zebra convolved with Leopard.
Lecture 2: Image filtering
Announcements Since Thursday we’ve been discussing chapters 7 and 8. “matlab can be used off campus by logging into your wam account and bringing up an.
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.
Computer Vision P. Schrater Spring 2003
Edge detection Goal: Identify sudden changes (discontinuities) in an image Intuitively, most semantic and shape information from the image can be encoded.
Computer Vision Spring ,-685 Instructor: S. Narasimhan WH 5409 T-R 10:30 – 11:50am.
Applications of Image Filters Computer Vision CS 543 / ECE 549 University of Illinois Derek Hoiem 02/04/10.
CS559: Computer Graphics Lecture 3: Digital Image Representation Li Zhang Spring 2008.
Edge Detection Computer Vision (CS 543 / ECE 549) University of Illinois Derek Hoiem 02/02/12 Many slides from Lana Lazebnik, Steve Seitz, David Forsyth,
Lecture 2: Edge detection CS4670: Computer Vision Noah Snavely From Sandlot ScienceSandlot Science.
CS 1699: Intro to Computer Vision Edges and Binary Images Prof. Adriana Kovashka University of Pittsburgh September 15, 2015.
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.
Instructor: S. Narasimhan
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
Edges.
Brent M. Dingle, Ph.D Game Design and Development Program Mathematics, Statistics and Computer Science University of Wisconsin - Stout Edge Detection.
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.
Computer Vision Image Features Instructor: Dr. Sherif Sami Lecture 4.
Lecture 8: Edges and Feature Detection
Edges Edges = jumps in brightness/color Brightness jumps marked in white.
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:
MAN-522: Computer Vision Edge detection Feature and blob detection
Image gradients and edges
Edge Detection CS 678 Spring 2018.
Lecture 2: Edge detection
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
Oh, no, wait, sorry, I meant, welcome to the implementation of 20th-century science fiction literature, or a small part of it, where we will learn about.
Edge Detection Today’s reading
Edge Detection Today’s readings Cipolla and Gee Watt,
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:

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, and Derek Hoiem

Edge detection Goal: Identify sudden changes (discontinuities) in an image – Intuitively, most semantic and shape information from the image can be encoded in the edges – More compact than pixels Ideal: artist’s line drawing (but artist is also using object-level knowledge) Source: D. Lowe

Why do we care about edges? Extract information, recognize objects Recover geometry and viewpoint Vanishing point Vanishing line Vanishing point Vertical vanishing point (at infinity)

Origin of Edges Edges are caused by a variety of factors depth discontinuity surface color discontinuity illumination discontinuity surface normal discontinuity Source: Steve Seitz

Closeup of edges Source: D. Hoiem

Closeup of edges Source: D. Hoiem

Closeup of edges Source: D. Hoiem

Closeup of edges Source: D. Hoiem

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

Intensity profile Source: D. Hoiem

With a little Gaussian noise Gradient Source: D. Hoiem

Effects of noise Consider a single row or column of the image – Plotting intensity as a function of position gives a signal Where is the edge? Source: S. Seitz

Effects of noise Difference filters respond strongly to noise – Image noise results in pixels that look very different from their neighbors – Generally, the larger the noise the stronger the response What can we do about it? Source: D. Forsyth

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

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

Derivative of Gaussian filter * [1 -1] =

Smoothed derivative removes noise, but blurs edge. Also finds edges at different “scales”. 1 pixel3 pixels7 pixels Tradeoff between smoothing and localization Source: D. Forsyth

The gradient magnitude is large along a thick “trail” or “ridge,” so how do we identify the actual edge points? How do we link the edge points to form curves? Implementation issues Source: D. Forsyth

Designing an edge detector Criteria for a good edge detector: – Good detection: the optimal detector should find all real edges, ignoring noise or other artifacts – Good localization the edges detected must be as close as possible to the true edges the detector must return one point only for each true edge point Cues of edge detection – Differences in color, intensity, or texture across the boundary – Continuity and closure – High-level knowledge Source: L. Fei-Fei

Canny edge detector This is probably the most widely used edge detector in computer vision Theoretical model: step-edges corrupted by additive Gaussian noise Canny has shown that the first derivative of the Gaussian closely approximates the operator that optimizes the product of signal-to-noise ratio and localization J. Canny, A Computational Approach To Edge Detection, IEEE Trans. Pattern Analysis and Machine Intelligence, 8: , 1986.A Computational Approach To Edge Detection Source: L. Fei-Fei

Note about Matlab’s Canny detector Small errors in implementation – Gaussian function not properly normalized – First filters with a Gaussian, then a difference of Gaussian (equivalent to filtering with a larger Gaussian and taking difference)

Example original image (Lena)

Derivative of Gaussian filter x-direction y-direction

Compute Gradients (DoG) X-Derivative of GaussianY-Derivative of GaussianGradient Magnitude

Get Orientation at Each Pixel Threshold at minimum level Get orientation theta = atan2(gy, gx)

Non-maximum suppression for each orientation At q, we have a maximum if the value is larger than those at both p and at r. Interpolate to get these values. Source: D. Forsyth

Assume the marked point is an edge point. Then we construct the tangent to the edge curve (which is normal to the gradient at that point) and use this to predict the next points (here either r or s). Edge linking Source: D. Forsyth

Before Non-max Suppression

After non-max suppression

Before Non-max Suppression

After non-max suppression

Hysteresis thresholding Threshold at low/high levels to get weak/strong edge pixels Do connected components, starting from strong edge pixels

Hysteresis thresholding Check that maximum value of gradient value is sufficiently large – drop-outs? use hysteresis use a high threshold to start edge curves and a low threshold to continue them. Source: S. Seitz

Final Canny Edges

Canny edge detector 1.Filter image with x, y derivatives of Gaussian 2.Find magnitude and orientation of gradient 3.Non-maximum suppression: – Thin multi-pixel wide “ridges” down to single pixel width 4.Thresholding and linking (hysteresis): – Define two thresholds: low and high – Use the high threshold to start edge curves and the low threshold to continue them MATLAB: edge(image, ‘canny’) Source: D. Lowe, L. Fei-Fei

Effect of  (Gaussian kernel spread/size) Canny with original The choice of  depends on desired behavior large  detects large scale edges small  detects fine features Source: S. Seitz

Learning to detect boundaries Berkeley segmentation database: image human segmentation gradient magnitude

Representing Texture Source: Forsyth

Texture and Material

Texture and Orientation

Texture and Scale

What is texture? Regular or stochastic patterns caused by bumps, grooves, and/or markings

How can we represent texture? Compute responses of blobs and edges at various orientations and scales

Overcomplete representation: filter banks LM Filter Bank Code for filter banks:

Filter banks Process image with each filter and keep responses (or squared/abs responses)

How can we represent texture? Measure responses of blobs and edges at various orientations and scales Idea 1: Record simple statistics (e.g., mean, std.) of absolute filter responses

Can you match the texture to the response? Mean abs responses Filters A B C 1 2 3

Representing texture Idea 2: take vectors of filter responses at each pixel and cluster them, then take histograms.

Building Visual Dictionaries 1.Sample patches from a database – E.g., 128 dimensional SIFT vectors 2.Cluster the patches – Cluster centers are the dictionary 3.Assign a codeword (number) to each new patch, according to the nearest cluster

pB boundary detector Figure from Fowlkes Martin, Fowlkes, Malik 2004: Learning to Detect Natural Boundaries… S/vision/grouping/papers/mfm-pami-boundary.pdf

pB Boundary Detector Figure from Fowlkes

Brightness Color Texture Combined Human

Global pB boundary detector Figure from Fowlkes

45 years of boundary detection Source: Arbelaez, Maire, Fowlkes, and Malik. TPAMI 2011 (pdf)

Questions