CS 2770: Computer Vision. Edges and Segments. Prof. Adriana Kovashka University of Pittsburgh February 21, 2017

Similar documents
Segmentation and Grouping

Segmentation and Grouping April 19 th, 2018

Outline. Segmentation & Grouping. Examples of grouping in vision. Grouping in vision. Grouping in vision 2/9/2011. CS 376 Lecture 7 Segmentation 1

Grouping and Segmentation

Segmentation and Grouping April 21 st, 2015

CMPSCI 670: Computer Vision! Grouping

Segmentation & Grouping Kristen Grauman UT Austin. Announcements

CS 2750: Machine Learning. Clustering. Prof. Adriana Kovashka University of Pittsburgh January 17, 2017

CS 4495 Computer Vision. Segmentation. Aaron Bobick (slides by Tucker Hermans) School of Interactive Computing. Segmentation

The goals of segmentation

Segmentation. Bottom Up Segmentation

Edge and Texture. CS 554 Computer Vision Pinar Duygulu Bilkent University

Edges and Binary Images

Segmentation (continued)

Edge detection. Goal: Identify sudden. an image. Ideal: artist s line drawing. object-level knowledge)

Review of Filtering. Filtering in frequency domain

Edge Detection. Computer Vision Shiv Ram Dubey, IIIT Sri City

Applications. Foreground / background segmentation Finding skin-colored regions. Finding the moving objects. Intelligent scissors

Edge Detection. CSC320: Introduction to Visual Computing Michael Guerzhoy. René Magritte, Decalcomania. Many slides from Derek Hoiem, Robert Collins

Edge Detection CSC 767

Segmentation and Grouping

Lecture: k-means & mean-shift clustering

Grouping and Segmentation

Lecture: k-means & mean-shift clustering

DIGITAL IMAGE PROCESSING

Lecture 7: Segmentation. Thursday, Sept 20

Solution: filter the image, then subsample F 1 F 2. subsample blur subsample. blur

Edge and corner detection

Edge detection. Winter in Kraków photographed by Marcin Ryczek

Edge detection. Winter in Kraków photographed by Marcin Ryczek

Segmentation & Clustering

Lecture 16 Segmentation and Scene understanding

What is an edge? Paint. Depth discontinuity. Material change. Texture boundary

CSE 473/573 Computer Vision and Image Processing (CVIP) Ifeoma Nwogu. Lectures 21 & 22 Segmentation and clustering

2%34 #5 +,,% ! # %& ()% #% +,,%. & /%0%)( 1 ! # %& % %()# +(& ,.+/ +&0%//#/ &

Edge Detection. CSE 576 Ali Farhadi. Many slides from Steve Seitz and Larry Zitnick

Lecture 13: k-means and mean-shift clustering

Prof. Feng Liu. Winter /15/2019

Does everyone have an override code?

CS 4495 Computer Vision. Linear Filtering 2: Templates, Edges. Aaron Bobick. School of Interactive Computing. Templates/Edges

Image Segmentation. Selim Aksoy. Bilkent University

Image Segmentation. Selim Aksoy. Bilkent University

Image Segmentation continued Graph Based Methods. Some slides: courtesy of O. Capms, Penn State, J.Ponce and D. Fortsyth, Computer Vision Book

Announcements. Segmentation & Grouping. Review questions. Outline. Grouping in vision. Examples of grouping in vision 9/21/2015

Image gradients and edges

Image Processing and Image Analysis VU

Segmentation Computer Vision Spring 2018, Lecture 27

Digital Image Processing

Computer Vision Lecture 6

Lecture 10: Semantic Segmentation and Clustering

Edges and Binary Image Analysis April 12 th, 2018

Digital Image Processing COSC 6380/4393

Image gradients and edges April 11 th, 2017

Image gradients and edges April 10 th, 2018

Image Analysis. Edge Detection

Lecture 7: Most Common Edge Detectors

Image Segmentation continued Graph Based Methods

CS5670: Computer Vision

[ ] Review. Edges and Binary Images. Edge detection. Derivative of Gaussian filter. Image gradient. Tuesday, Sept 16

Previously. Edge detection. Today. Thresholding. Gradients -> edges 2/1/2011. Edges and Binary Image Analysis

CS 534: Computer Vision Segmentation and Perceptual Grouping

Fitting: Voting and the Hough Transform April 23 rd, Yong Jae Lee UC Davis

Edges and Binary Image Analysis. Thurs Jan 26 Kristen Grauman UT Austin. Today. Edge detection and matching

Image Analysis. Segmentation by Clustering

Image gradients and edges

Lecture 4: Finding lines: from detection to model fitting

Computer Vision Lecture 6

Low-level Vision Processing Algorithms Speaker: Ito, Dang Supporter: Ishii, Toyama and Y. Murakami

Edge Detection. EE/CSE 576 Linda Shapiro

Boundaries and Sketches

Normalized cuts and image segmentation

Image Analysis. Edge Detection

Clustering. Subhransu Maji. CMPSCI 689: Machine Learning. 2 April April 2015

CEE598 - Visual Sensing for Civil Infrastructure Eng. & Mgmt.

CS4670: Computer Vision Noah Snavely

Computer Vision I. Announcements. Fourier Tansform. Efficient Implementation. Edge and Corner Detection. CSE252A Lecture 13.

Filtering in frequency domain

Announcements. Image Segmentation. From images to objects. Extracting objects. Status reports next Thursday ~5min presentations in class

Image Segmentation. Computer Vision Jia-Bin Huang, Virginia Tech. Many slides from D. Hoiem

Computer Vision I. Announcement. Corners. Edges. Numerical Derivatives f(x) Edge and Corner Detection. CSE252A Lecture 11

Lecture 6: Edge Detection

Image Segmentation. Marc Pollefeys. ETH Zurich. Slide credits: V. Ferrari, K. Grauman, B. Leibe, S. Lazebnik, S. Seitz,Y Boykov, W. Freeman, P.

Edge Detection. Announcements. Edge detection. Origin of Edges. Mailing list: you should have received messages

Edge Detection (with a sidelight introduction to linear, associative operators). Images

Other Linear Filters CS 211A

Edge Detection. Today s reading. Cipolla & Gee on edge detection (available online) From Sandlot Science

6.801/866. Segmentation and Line Fitting. T. Darrell

Motion illusion, rotating snakes

Image Segmentation. Luc Van Gool, ETH Zurich. Vittorio Ferrari, Un. of Edinburgh. With important contributions by

Targil 12 : Image Segmentation. Image segmentation. Why do we need it? Image segmentation

Anno accademico 2006/2007. Davide Migliore

convolution shift invariant linear system Fourier Transform Aliasing and sampling scale representation edge detection corner detection

Peripheral drift illusion

Clustering. So far in the course. Clustering. Clustering. Subhransu Maji. CMPSCI 689: Machine Learning. dist(x, y) = x y 2 2

CS 534: Computer Vision Segmentation and Perceptual Grouping

Edge detection. Convert a 2D image into a set of curves. Extracts salient features of the scene More compact than pixels

Multimedia Computing: Algorithms, Systems, and Applications: Edge Detection

In this lecture, we are going to talk about image segmentation, essentially defined as methods for grouping pixels together.

3 October, 2013 MVA ENS Cachan. Lecture 2: Logistic regression & intro to MIL Iasonas Kokkinos

Lecture 13 Segmentation and Scene Understanding Chris Choy, Ph.D. candidate Stanford Vision and Learning Lab (SVL)

Transcription:

CS 2770: Computer Vision Edges and Segments Prof. Adriana Kovashka University of Pittsburgh February 21, 2017

Edges vs Segments Figure adapted from J. Hays

Edges vs Segments Edges More low-level Don t need to be closed Segments Ideally one segment for each semantic group/object Should include closed contours

Edge detection Goal: map image from 2d array of pixels to a set of curves or line segments or contours. Why? Figure from J. Shotton et al., PAMI 2007 Main idea: look for strong gradients, post-process Source: K. Grauman

Designing an edge detector Criteria for a good edge detector: Good detection: find all real edges, ignoring noise or other artifacts Good localization detect edges as close as possible to the true edges 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

What causes an edge? Reflectance change: appearance information, texture Depth discontinuity: object boundary Cast shadows Adapted from K. Grauman

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 Source: L. Lazebnik

Intensity profile Intensity Gradient 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 f g f * g d dx ( f g) To find edges, look for peaks in ( f g) d dx Source: S. Seitz

Derivative theorem of convolution Differentiation is convolution, and convolution is associative: d d ( f g) f g dx dx This saves us one operation: f Image with edge d dx g Derivative of Gaussian f d dx g Edge = max of derivative Source: S. Seitz

Canny edge detector Filter image with derivative of Gaussian Find magnitude and orientation of gradient Threshold: Determine which local maxima from filter output are actually edges Non-maximum suppression: Thin wide ridges down to single pixel width 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 Adapted from K. Grauman, D. Lowe, L. Fei-Fei

Example input image ( Lena )

Derivative of Gaussian filter x-direction y-direction Source: L. Lazebnik

Compute Gradients X-Derivative of Gaussian Y-Derivative of Gaussian Gradient Magnitude Source: D. Hoiem

Thresholding Choose a threshold value t Set any pixels less than t to 0 (off) Set any pixels greater than or equal to t to 1 (on) Source: K. Grauman

The Canny edge detector norm of the gradient (magnitude) Source: K. Grauman

The Canny edge detector thresholding Source: K. Grauman

Another example: Gradient magnitudes Source: K. Grauman

Thresholding gradient with a lower threshold Source: K. Grauman

Thresholding gradient with a higher threshold Source: K. Grauman

The Canny edge detector How to turn these thick regions of the gradient into curves? thresholding Source: K. Grauman

Non-maximum suppression Check if pixel is local maximum along gradient direction, select single max across width of the edge requires checking interpolated pixels p and r Source: K. Grauman

Bilinear interpolation http://en.wikipedia.org/wiki/bilinear_interpolation

The Canny edge detector Problem: pixels along this edge didn t survive the thresholding thinning (non-maximum suppression) Source: K. Grauman

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

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, D. Hoiem

Hysteresis thresholding original image high threshold (strong edges) low threshold (weak edges) hysteresis threshold Source: L. Fei-Fei

Hysteresis thresholding original image high threshold (strong edges) low threshold (weak edges) hysteresis threshold Source: L. Fei-Fei

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

Low-level edges vs. perceived contours image human segmentation gradient magnitude Berkeley segmentation database: http://www.eecs.berkeley.edu/research/projects/cs/vision/grouping/segbench/ Source: L. Lazebnik

How can we do better? So far, we have only considered change in intensity as a cue for the existence of an edge.

pb Boundary Detector Martin, Fowlkes, Malik 2004: Learning to Detection Natural Boundaries http://www.eecs.berkeley.edu/research/proj ects/cs/vision/grouping/papers/mfm-pamiboundary.pdf Figure from Fowlkes

pb Boundary Detector Figure from Fowlkes

Brightness Color Texture Combined Human

Results Pb (0.88) Human (0.95) Source: D. Hoiem

Results Pb Global Pb (0.88) Pb Human Human (0.96) Source: D. Hoiem

Results Pb (0.63) Human (0.95) Source: D. Hoiem

Results Pb (0.35) Human (0.90) For more: http://www.eecs.berkeley.edu/research/projects /CS/vision/bsds/bench/html/108082-color.html

The goals of segmentation Separate image into coherent objects image human segmentation Source: L. Lazebnik

The goals of segmentation Separate image into coherent objects Group together similar-looking pixels for efficiency of further processing superpixels Source: L. Lazebnik X. Ren and J. Malik. Learning a classification model for segmentation. ICCV 2003.

Types of segmentations Oversegmentation Undersegmentation Multiple Segmentations Source: D. Hoiem

Major processes for segmentation Bottom-up: group tokens with similar features Top-down: group tokens that likely belong to the same object Source: D. Hoiem [Levin and Weiss 2006]

Examples of grouping in vision [Figure by J. Shi] Determine image regions [http://poseidon.csd.auth.gr/lab_research/latest/imgs/speakd epvidindex_img2.jpg] Group video frames into shots Fg / Bg [Figure by Wang & Suter] Figure-ground Source: K. Grauman [Figure by Grauman & Darrell] Object-level grouping

Grouping in vision Goals: Gather features that belong together Obtain an intermediate representation that compactly describes key image (video) parts Hard to measure success What is interesting depends on the application Adapted from K. Grauman

Segmentation and grouping Inspiration from human perception Gestalt properties Bottom-up segmentation via clustering Features: color, texture, Algorithms: Mode and density finding: k-means, mean-shift Graph-based: normalized cuts Adapted from K. Grauman

Gestalt cues for grouping Gestalt (psychology): Whole is greater than sum of its parts Relationships among parts yield additional information Psychologists identified series of factors that predispose set of elements to be grouped (by human visual system) Good intuition and basic principles for grouping Some are difficult to implement in practice Adapted from K. Grauman, D. Hoiem

Source: K. Grauman Gestaltism: We perceive the interpretation

Gestaltism: We perceive the interpretation The Muller-Lyer illusion Source: D. Hoiem

Source: D. Forsyth Gestaltism: We perceive the interpretation

Principles of perceptual organization Source: D. Hoiem From Steve Lehar: The Constructive Aspect of Visual Perception

Similarity http://chicagoist.com/attachments/chicagoist_alicia/geese.jpg, http://wwwdelivery.superstock.com/wi/223/1532/previewcomp/superstock_1532r-0831.jpg

Common fate Image credit: Arthus-Bertrand (via F. Durand) Source: K. Grauman

http://www.capital.edu/resources/images/outside6_035.jpg Proximity

pixel count Image segmentation: toy example 1 2 3 black pixels gray pixels white pixels input image intensity These intensities define the three groups. We could label every pixel in the image according to which of these primary intensities it is. i.e., segment the image based on the intensity feature. What if the image isn t quite so simple? Source: K. Grauman

pixel count pixel count input image intensity input image intensity Source: K. Grauman

pixel count input image intensity Now how to determine the three main intensities that define our groups? We need to cluster. Source: K. Grauman

0 190 255 intensity 1 2 3 Goal: choose three centers as the representative intensities, and label every pixel according to which of these centers it is nearest to. Best cluster centers are those that minimize SSD between all points and their nearest cluster center ci: Source: K. Grauman

Clustering With this objective, it is a chicken and egg problem: If we knew the cluster centers, we could allocate points to groups by assigning each to its closest center. If we knew the group memberships, we could get the centers by computing the mean per group. Source: K. Grauman

K-means clustering Basic idea: randomly initialize the k cluster centers, and iterate between the two steps we just saw. 1. Randomly initialize the cluster centers, c 1,..., c K 2. Given cluster centers, determine points in each cluster For each point p, find the closest c i. Put p into cluster i 3. Given points in each cluster, solve for c i Set c i to be the mean of points in cluster i 4. If c i have changed, repeat Step 2 Properties Will always converge to some solution Can be a local minimum does not always find the global minimum of objective function: Source: Steve Seitz

Source: A. Moore

Source: A. Moore

Source: A. Moore

Source: A. Moore

Source: A. Moore

James Hays K-means converges to a local minimum

K-means: pros and cons Pros Simple, fast to compute Converges to local minimum of within-cluster squared error Cons/issues Setting k? One way: silhouette coefficient Sensitive to initial centers Use heuristics or output of another method Sensitive to outliers Detects spherical clusters Adapted from K. Grauman

An aside: Smoothing out cluster assignments Assigning a cluster label per pixel may yield outliers: original How to ensure they are spatially smooth? labeled by cluster center s intensity? 1 2 3 Source: K. Grauman

Segmentation as clustering Depending on what we choose as the feature space, we can group pixels in different ways. Grouping pixels based on intensity similarity Feature space: intensity value (1-d) Source: K. Grauman

K=2 K=3 quantization of the feature space; segmentation label map Source: K. Grauman

Segmentation as clustering Depending on what we choose as the feature space, we can group pixels in different ways. Grouping pixels based on color similarity R=255 G=200 B=250 B G R=245 G=220 B=248 Feature space: color value (3-d) R R=15 G=189 B=2 R=3 G=12 B=2 Source: K. Grauman

Segmentation as clustering Depending on what we choose as the feature space, we can group pixels in different ways. Grouping pixels based on intensity similarity Clusters based on intensity similarity don t have to be spatially coherent. Source: K. Grauman

Segmentation as clustering Depending on what we choose as the feature space, we can group pixels in different ways. Grouping pixels based on intensity+position similarity Intensity Y Source: K. Grauman X Both regions are black, but if we also include position (x,y), then we could group the two into distinct segments; way to encode both similarity & proximity.

Segmentation as clustering Color, brightness, position alone are not enough to distinguish all regions Source: L. Lazebnik

Segmentation as clustering Depending on what we choose as the feature space, we can group pixels in different ways. Grouping pixels based on texture similarity F 1 F 2 Filter bank of 24 filters F 24 Feature space: filter bank responses (e.g., 24-d) Source: K. Grauman

Count Count Count Segmentation w/ texture features Find textons by clustering vectors of filter bank outputs Describe texture in a window based on texton histogram Image Texton map Texton index Texton index Texton index Malik, Belongie, Leung and Shi, IJCV 2001 Source: L. Lazebnik

Source: K. Grauman Image segmentation example

K-means: pros and cons Pros Simple, fast to compute Converges to local minimum of within-cluster squared error Cons/issues Setting k? One way: silhouette coefficient Sensitive to initial centers Use heuristics or output of another method Sensitive to outliers Detects spherical clusters Adapted from K. Grauman

Mean shift algorithm The mean shift algorithm seeks modes or local maxima of density in the feature space image Feature space (L*u*v* color values) Source: K. Grauman

Kernel density estimation Kernel Estimated density Source: D. Hoiem Data (1-D)

Mean shift Search window Center of mass Mean Shift vector Slide by Y. Ukrainitz & B. Sarel

Mean shift Search window Center of mass Mean Shift vector Slide by Y. Ukrainitz & B. Sarel

Mean shift Search window Center of mass Mean Shift vector Slide by Y. Ukrainitz & B. Sarel

Mean shift Search window Center of mass Mean Shift vector Slide by Y. Ukrainitz & B. Sarel

Mean shift Search window Center of mass Mean Shift vector Slide by Y. Ukrainitz & B. Sarel

Mean shift Search window Center of mass Mean Shift vector Slide by Y. Ukrainitz & B. Sarel

Mean shift Search window Center of mass Slide by Y. Ukrainitz & B. Sarel

Computing the mean shift Simple Mean Shift procedure: Compute mean shift vector Translate the Kernel window by m(x) Adapted from Y. Ukrainitz & B. Sarel

Source: D. Hoiem Points in same cluster converge

Mean shift clustering Cluster: all data points in the attraction basin of a mode Attraction basin: the region for which all trajectories lead to the same mode Slide by Y. Ukrainitz & B. Sarel

Mean shift clustering/segmentation Compute features for each point (color, texture, etc) Initialize windows at individual feature points Perform mean shift for each window until convergence Merge windows that end up near the same peak or mode Source: D. Hoiem

Mean shift segmentation results http://www.caip.rutgers.edu/~comanici/mspami/mspamiresults.html

Mean shift segmentation results

Pros: Does not assume shape on clusters Robust to outliers Cons/issues: Mean shift Need to choose window size Does not scale well with dimension of feature space Search for neighbors could be sped up in lower dimensions * * http://lear.inrialpes.fr/people/triggs/events/iccv03/cdrom/iccv03/0456_georgescu.pdf

Images as graphs q p w pq w Fully-connected graph node (vertex) for every pixel link between every pair of pixels, p,q affinity weight w pq for each link (edge) w pq measures similarity» similarity is inversely proportional to difference (in color and position ) Source: Steve Seitz

Segmentation by Graph Cuts q p w pq w A B C Break Graph into Segments Want to delete links that cross between segments Easiest to break links that have low similarity (low weight) similar pixels should be in the same segments dissimilar pixels should be in different segments Source: Steve Seitz

Cuts in a graph: Min cut Link Cut A set of links whose removal makes a graph disconnected cost of a cut: cut( A, B) Find minimum cut gives you a segmentation fast algorithms exist for doing this B w p, q p A, q B Source: Steve Seitz

Cuts in a graph: Min cut Problem with minimum cut: Weight of cut proportional to number of edges in the cut; tends to produce small, isolated components. [Shi & Malik, 2000 PAMI] Source: K. Grauman

Cuts in a graph: Normalized cut A B Normalized Cut fix bias of Min Cut by normalizing for size of segments: cut( A, B) assoc( A, V ) cut( A, B) assoc( B, V ) assoc(a,v) = sum of weights of all edges that touch A Ncut value small when we get two clusters with many edges with high weights, and few edges of low weight between them Approximate solution for minimizing the Ncut value: generalized eigenvalue problem J. Shi and J. Malik, Normalized Cuts and Image Segmentation, CVPR, 1997 Source: Steve Seitz

So far, we discussed detecting low-level edges and contours, and grouping similar content via clustering. Finally, a few segmentation methods from recent conferences

Hypercolumns for Object Segmentation and Finegrained Localization (Hariharan et al., CVPR 2015) Create a CNN-based representation for each pixel Which CNN level to use? All of them! Stack together activations from all layers above that pixel Upsample feature maps as needed

Hypercolumns for Object Segmentation and Finegrained Localization (Hariharan et al., CVPR 2015) Classify each pixel via a linear classifier (logistic regression) Train a grid of location-specific classifiers The prediction at a pixel is a linear combination of the nearby classifiers:

Hypercolumns for Object Segmentation and Finegrained Localization (Hariharan et al., CVPR 2015) Results:

Fully Convolutional Networks for Semantic Segmentation (Long et al., CVPR 2015) Adapt classification nets to produce dense outputs Combine info from different layers

Segmentation from Natural Language Expressions (Hu et al., ECCV 2016) Segment out regions requested via language (not just any regions for a particular object class)