Image Segmentation Today’s Readings Intelligent Scissors, Mortensen et. al, SIGGRAPH 1995Intelligent Scissors From Sandlot ScienceSandlot Science.

Slides:



Advertisements
Similar presentations
Single Source Shortest Paths
Advertisements

DIJKSTRA’s Algorithm. Definition fwd search Find the shortest paths from a given SOURCE node to ALL other nodes, by developing the paths in order of increasing.
Cutting Images: Graphs and Boundary Finding Computational Photography Derek Hoiem, University of Illinois 09/15/11 “The Double Secret”, Magritte.
Lecture 24: Segmentation CS6670: Computer Vision Noah Snavely From Sandlot ScienceSandlot Science.
The University of Ontario CS 4487/9587 Algorithms for Image Analysis Segmentation (2D) Acknowledgements: Alexei Efros, Steven Seitz.
CS 206 Introduction to Computer Science II 03 / 27 / 2009 Instructor: Michael Eckmann.
CS 206 Introduction to Computer Science II 11 / 07 / 2008 Instructor: Michael Eckmann.
Kapitel 13 “Interactive Segmentation” – p. 1 Interactive Segmentation  Live-wire approach  Random walker segmentation TexPoint fonts used in EMF. Read.
A Gimp Plugin that uses “GrabCut” to perform image segmentation
Graph-Based Image Segmentation
Graph-based image segmentation Václav Hlaváč Czech Technical University in Prague Faculty of Electrical Engineering Department of Cybernetics Prague, Czech.
CS 691 Computational Photography Instructor: Gianfranco Doretto Cutting Images.
Active Contours (SNAKES) Back to boundary detection –This time using perceptual grouping. This is non-parametric –We’re not looking for a contour of a.
Lecture 6 Image Segmentation
Segmentation CSE P 576 Larry Zitnick Many slides courtesy of Steve Seitz.
Announcements Project 2 more signup slots questions Picture taking at end of class.
CS 206 Introduction to Computer Science II 11 / 10 / 2008 Instructor: Michael Eckmann.
Today: Image Segmentation Image Segmentation Techniques Snakes Scissors Graph Cuts Mean Shift Wednesday (2/28) Texture analysis and synthesis Multiple.
Snakes Goes from edges to boundaries. Edge is strong change in intensity. Boundary is boundary of an object. –Smooth (more or less) –Closed. –…
CS 206 Introduction to Computer Science II 11 / 12 / 2008 Instructor: Michael Eckmann.
Shortest Path Problems Directed weighted graph. Path length is sum of weights of edges on path. The vertex at which the path begins is the source vertex.
CS 206 Introduction to Computer Science II 11 / 05 / 2008 Instructor: Michael Eckmann.
Lecture 18: Context and segmentation CS6670: Computer Vision Noah Snavely.
Image Segmentation Today’s Readings Forsyth & Ponce, Chapter 14
Announcements Mailing list: –you should have received messages Office hours onlineonline –start next week.
CS 206 Introduction to Computer Science II 03 / 30 / 2009 Instructor: Michael Eckmann.
Segmentation and Clustering Today’s Readings Forsyth & Ponce, Chapter 7 (plus lots of optional references in the slides) From Sandlot ScienceSandlot Science.
Announcements vote for Project 3 artifacts Project 4 (due next Wed night) Questions? Late day policy: everything must be turned in by next Friday.
Announcements Project 3 questions Photos after class.
The Shortest Path Problem
Nirmalya Roy School of Electrical Engineering and Computer Science Washington State University Cpt S 223 – Advanced Data Structures Graph Algorithms: Minimum.
Using Dijkstra’s Algorithm to Find a Shortest Path from a to z 1.
Chapter 9 – Graphs A graph G=(V,E) – vertices and edges
Cutting Images: Graphs and Boundary Finding Computational Photography Derek Hoiem, University of Illinois 09/14/10 “The Double Secret”, Magritte.
The University of Ontario CS 433/653 Algorithms for Image Analysis Segmentation (2D) Acknowledgements: Alexei Efros, Steven Seitz.
Lecture 2: Edge detection CS4670: Computer Vision Noah Snavely From Sandlot ScienceSandlot Science.
1 Optimal Cycle Vida Movahedi Elder Lab, January 2008.
Intelligent Scissors for Image Composition Anthony Dotterer 01/17/2006.
Lecture 4: Image Resampling and Reconstruction CS4670: Computer Vision Kavita Bala.
CS 206 Introduction to Computer Science II 11 / 16 / 2009 Instructor: Michael Eckmann.
Brent M. Dingle, Ph.D Game Design and Development Program Mathematics, Statistics and Computer Science University of Wisconsin - Stout Edge Detection:
Outline Standard 2-way minimum graph cut problem. Applications to problems in computer vision Classical algorithms from the theory literature A new algorithm.
Computational Photography lecture 8 – segmentation CS (future 572) Spring 2016 Prof. Alex Berg (Credits to many other folks on individual slides)
Cutting Images: Graphs and Boundary Finding Computational Photography Derek Hoiem, University of Illinois 09/20/12 “The Double Secret”, Magritte.
Graphcut Textures:Image and Video Synthesis Using Graph Cuts
Image Segmentation Today’s Readings Szesliski Chapter 5
Cutting Images: Graphs and Boundary Finding
Announcements CS accounts Project 1 is out today
CSC317 Shortest path algorithms
CS4670/5670: Image Scissors Noah Snavely Today’s Readings
Shortest Path Problems
Artificial Intelligence
Short paths and spanning trees
Greedy Algorithms / Dijkstra’s Algorithm Yin Tat Lee
Announcements Reader is in the BOOK STORE (not Comm Bldg.)
Lecture 31: Graph-Based Image Segmentation
Announcements Photos right now Project 3 questions
Shortest Path Problems
Seam Carving Project 1a due at midnight tonight.
Based on slides of Dan Suciu
Segmentation (continued)
Announcements Project 4 questions Evaluations.
Announcements Project 1 is out today
Announcements Project 4 out today (due Wed March 10)
Graph Algorithms: Shortest Path
Implementation of Dijkstra’s Algorithm
Announcements Project 1 is out today help session at the end of class.
The Minimum Cost Spanning Tree Problem
More Graphs Lecture 19 CS2110 – Fall 2009.
Presentation transcript:

Image Segmentation Today’s Readings Intelligent Scissors, Mortensen et. al, SIGGRAPH 1995Intelligent Scissors From Sandlot ScienceSandlot Science

From images to objects What Defines an Object? Subjective problem, but has been well-studied Gestalt Laws seek to formalize this –proximity, similarity, continuation, closure, common fate –see notes by Steve Joordens, U. Torontonotes

Extracting objects How could this be done?

Image Segmentation Many approaches proposed color cues region cues contour cues We will consider a few of these Today: Intelligent Scissors (contour-based) –E. N. Mortensen and W. A. Barrett, Intelligent Scissors for Image Composition, in ACM Computer Graphics (SIGGRAPH `95), pp , 1995Intelligent Scissors for Image Composition

Intelligent Scissors (demo)

Intelligent Scissors Approach answers a basic question Q: how to find a path from seed to mouse that follows object boundary as closely as possible? A: define a path that stays as close as possible to edges

Intelligent Scissors Basic Idea Define edge score for each pixel –edge pixels have low cost Find lowest cost path from seed to mouse seed mouse Questions How to define costs? How to find the path?

Path Search (basic idea) Graph Search Algorithm Computes minimum cost path from seed to all other pixels

How does this really work? Treat the image as a graph Graph node for every pixel p link between every adjacent pair of pixels, p,q cost c for each link Note: each link has a cost this is a little different than the figure before where each pixel had a cost p q c

the link should follow the intensity edge –want intensity to change rapidly ? to the link c  - |difference of intensity ? to link| Defining the costs Treat the image as a graph Want to hug image edges: how to define cost of a link? p q c

Defining the costs p q c c can be computed using a cross-correlation filter assume it is centered at p Also typically scale c by its length set c = (max-|filter response|) –where max = maximum |filter response| over all pixels in the image

Defining the costs p q c 1 w 11 c can be computed using a cross-correlation filter assume it is centered at p Also typically scale c by its length set c = (max-|filter response|) –where max = maximum |filter response| over all pixels in the image

Dijkstra’s shortest path algorithm Algorithm 1.init node costs to , set p = seed point, cost(p) = 0 2.expand p as follows: for each of p’s neighbors q that are not expanded »set cost(q) = min( cost(p) + c pq, cost(q) ) link cost

Dijkstra’s shortest path algorithm Algorithm 1.init node costs to , set p = seed point, cost(p) = 0 2.expand p as follows: for each of p’s neighbors q that are not expanded »set cost(q) = min( cost(p) + c pq, cost(q) ) »if q’s cost changed, make q point back to p »put q on the ACTIVE list (if not already there)

Dijkstra’s shortest path algorithm Algorithm 1.init node costs to , set p = seed point, cost(p) = 0 2.expand p as follows: for each of p’s neighbors q that are not expanded »set cost(q) = min( cost(p) + c pq, cost(q) ) »if q’s cost changed, make q point back to p »put q on the ACTIVE list (if not already there) 3.set r = node with minimum cost on the ACTIVE list 4.repeat Step 2 for p = r

Dijkstra’s shortest path algorithm Algorithm 1.init node costs to , set p = seed point, cost(p) = 0 2.expand p as follows: for each of p’s neighbors q that are not expanded »set cost(q) = min( cost(p) + c pq, cost(q) ) »if q’s cost changed, make q point back to p »put q on the ACTIVE list (if not already there) 3.set r = node with minimum cost on the ACTIVE list 4.repeat Step 2 for p = r

Dijkstra’s shortest path algorithm Algorithm 1.init node costs to , set p = seed point, cost(p) = 0 2.expand p as follows: for each of p’s neighbors q that are not expanded »set cost(q) = min( cost(p) + c pq, cost(q) ) »if q’s cost changed, make q point back to p »put q on the ACTIVE list (if not already there) 3.set r = node with minimum cost on the ACTIVE list 4.repeat Step 2 for p = r

Dijkstra’s shortest path algorithm Properties It computes the minimum cost path from the seed to every node in the graph. This set of minimum paths is represented as a tree Running time, with N pixels: –O(N 2 ) time if you use an active list –O(N log N) if you use an active priority queue (heap) –takes fraction of a second for a typical (640x480) image Once this tree is computed once, we can extract the optimal path from any point to the seed in O(N) time. –it runs in real time as the mouse moves What happens when the user specifies a new seed?

Results

Help session—Jiun Hung