Intelligent Scissors for Image Composition Anthony Dotterer 01/17/2006.

Slides:



Advertisements
Similar presentations
Environmental Remote Sensing GEOG 2021
Advertisements

Ter Haar Romeny, ICPR 2010 Introduction to Scale-Space and Deep Structure.
Medical Image Registration Kumar Rajamani. Registration Spatial transform that maps points from one image to corresponding points in another image.
SOFT SCISSORS: AN INTERACTIVE TOOL FOR REALTIME HIGH QUALITY MATTING International Conference on Computer Graphics and Interactive Techniques ACM SIGGRAPH.
Cutting Images: Graphs and Boundary Finding Computational Photography Derek Hoiem, University of Illinois 09/15/11 “The Double Secret”, Magritte.
Spatial Filtering (Chapter 3)
Image Processing Lecture 4
Chapter 3 Image Enhancement in the Spatial Domain.
DREAM PLAN IDEA IMPLEMENTATION Introduction to Image Processing Dr. Kourosh Kiani
Image Enhancement in the Spatial Domain II Jen-Chang Liu, 2006.
Kapitel 13 “Interactive Segmentation” – p. 1 Interactive Segmentation  Live-wire approach  Random walker segmentation TexPoint fonts used in EMF. Read.
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.
1Ellen L. Walker Edges Humans easily understand “line drawings” as pictures.
EE663 Image Processing Edge Detection 2 Dr. Samir H. Abdul-Jauwad Electrical Engineering Department King Fahd University of Petroleum & Minerals.
MSU CSE 803 Stockman Linear Operations Using Masks Masks are patterns used to define the weights used in averaging the neighbors of a pixel to compute.
Snakes Goes from edges to boundaries. Edge is strong change in intensity. Boundary is boundary of an object. –Smooth (more or less) –Closed. –…
Edge Detection Phil Mlsna, Ph.D. Dept. of Electrical Engineering
Segmentation (Section 10.2)
MSU CSE 803 Linear Operations Using Masks Masks are patterns used to define the weights used in averaging the neighbors of a pixel to compute some result.
Scale-Invariant Feature Transform (SIFT) Jinxiang Chai.
3-D Computational Vision CSc Canny Edge Detection.
Image Pyramids and Blending
06 - Boundary Models Overview Edge Tracking Active Contours Conclusion.
Machine Vision for Robots
G52IIP, School of Computer Science, University of Nottingham 1 Edge Detection and Image Segmentation.
Live-Wire Segmentation with "shortest path" By Ilan Smoly.
EE 492 ENGINEERING PROJECT LIP TRACKING Yusuf Ziya Işık & Ashat Turlibayev Yusuf Ziya Işık & Ashat Turlibayev Advisor: Prof. Dr. Bülent Sankur Advisor:
Lecture 2: Edge detection CS4670: Computer Vision Noah Snavely From Sandlot ScienceSandlot Science.
Digital Image Processing CCS331 Relationships of Pixel 1.
Lecture 4: Image Resampling and Reconstruction CS4670: Computer Vision Kavita Bala.
Image Processing is replacing Original Pixels by new Pixels using a Transform rst uvw xyz Origin x y Image f (x, y) e processed = v *e + r *a + s *b +
Dense Image Over-segmentation on a GPU Alex Rodionov 4/24/2009.
Data Extraction using Image Similarity CIS 601 Image Processing Ajay Kumar Yadav.
CSC508 What You Should Be Doing Code, code, code –Programming Gaussian Convolution Sobel Edge Operator.
CSCE 643 Computer Vision: Extractions of Image Features Jinxiang Chai.
Mathematical Morphology Mathematical morphology (matematická morfologie) –A special image analysis discipline based on morphological transformations of.
COMP322/S2000/L171 Robot Vision System Major Phases in Robot Vision Systems: A. Data (image) acquisition –Illumination, i.e. lighting consideration –Lenses,
Image Registration Advanced DIP Project
Mathematical Morphology
Nottingham Image Analysis School, 23 – 25 June NITS Image Segmentation Guoping Qiu School of Computer Science, University of Nottingham
Edges and Lines Readings: Chapter 10:
Course 5 Edge Detection. Image Features: local, meaningful, detectable parts of an image. edge corner texture … Edges: Edges points, or simply edges,
Lecture 04 Edge Detection Lecture 04 Edge Detection Mata kuliah: T Computer Vision Tahun: 2010.
Machine Vision Edge Detection Techniques ENT 273 Lecture 6 Hema C.R.
Introduction to Scale Space and Deep Structure. Importance of Scale Painting by Dali Objects exist at certain ranges of scale. It is not known a priory.
Computer Vision Image Features Instructor: Dr. Sherif Sami Lecture 4.
Instructor: Mircea Nicolescu Lecture 7
Digital Image Processing CSC331
Color Image Segmentation Mentor : Dr. Rajeev Srivastava Students: Achit Kumar Ojha Aseem Kumar Akshay Tyagi.
Cutting Images: Graphs and Boundary Finding Computational Photography Derek Hoiem, University of Illinois 09/20/12 “The Double Secret”, Magritte.
1 Edge Operators a kind of filtering that leads to useful features.
CSCI 631 – Foundations of Computer Vision March 15, 2016 Ashwini Imran Image Stitching.
Spatial Filtering (Chapter 3) CS474/674 - Prof. Bebis.
Environmental Remote Sensing GEOG 2021
Miguel Tavares Coimbra
Visual homing using PCA-SIFT
Cutting Images: Graphs and Boundary Finding
Announcements CS accounts Project 1 is out today
CS4670/5670: Image Scissors Noah Snavely Today’s Readings
Image gradients and edges
CAP 5415 Computer Vision Fall 2012 Dr. Mubarak Shah Lecture-5
a kind of filtering that leads to useful features
a kind of filtering that leads to useful features
Announcements Project 1 is out today
Linear Operations Using Masks
Comparing Images Using Hausdorff Distance
EE 492 ENGINEERING PROJECT
Filtering Images Work in the spatial domain
Announcements Project 1 is out today help session at the end of class.
Presentation transcript:

Intelligent Scissors for Image Composition Anthony Dotterer 01/17/2006

Citation Title –Intelligent Scissors for Image Composition Author –Eric N. Mortensen –William A. Barrett Publication –1995

Intelligent Scissors Tool Interactive image segmentation and composition tool –Easy to use –Quick –Quality output Features –Best path along image edges –Cooling –On-the-fly training –Source to destination warping and composition –Destination matching

Intelligent Scissors Need –Optimal path along edges starting at a ‘seed’ point –Optimal path creation must be quick Solution –Use dynamic programming to create path reference Local cost definition Path reference creation

Local Cost Definition Define l(p,q) as the cost for going from pixel p to pixel q Incorporate the several edge functions into the cost –Laplacian Zero-Crossing, f Z (q) –Gradient Magnitude, f G (q) –Gradient Direction, f D (p,q) Relate edge functions to the cost function –Use ω Z, ω D, ω G as constants to weight features l(p,q) = ω Z · f Z (q) + ω D · f D (p,q) + ω G · f G (q)

Laplacian Zero-Crossing Properties –Approximate 2 nd partial derivative of Image –Zero-crossings represent maxima and minima Good image edges Cost –Define I L (q) as Laplacian at pixel q –Get low cost by defining Laplacian as a binary f Z (q) = { 0; if I L (q) = 0, 1; if I L (q) ≠ 0

Laplacian Zero-Crossing (cont.) Issue –Zeros rarely occur Solution –Use pixel closest to zero Examples –Image (top) –Laplacian (bottom)

Gradient Magnitude Properties –Magnitude of 1 st partial derivatives of an image –Direct correlation between edge strength and local cost Cost –Define G as gradient magnitude G = √(I x ² + I y ²) –Get low cost by inverting and scaling f G = 1 – G / (max(G)) –Also factor in Euclidean distance Scale adjacent pixels cost by 1 Scale diagonal pixels cost by 1/√2

Gradient Magnitude (cont.) Examples –Original (top left) –Gradient Magnitude (top right) –Inverted & Scaled Gradient Magnitude (bottom)

Gradient Direction Properties –Vectors created by the 1 st derivatives of an image –High cost for shape changes Adds smoothing constraint Cost –Give low costs to gradients in the same direction –Define D(p) as the unit vector perpendicular to the gradient vector at point p D(p) = norm(I y (p), -I x (p))

Gradient Direction (cont.) Cost –Define L(p, q) to be the link between point q and p, such that L(p, q) = { q – p; if D(p) · (q – p) ≥ 0, p – q; if D(p) · (q – p) < 0 –Let d p (p, q) and d q (p, q) as follows d p (p, q) = D(p) · L(p, q) d q (p, q) = L(p, q) · D(q) –Finally, the cost function f D (p, q) = 1/π ( cos -1 (d p (p, q)) + cos -1 (d q (p, q)) )

Gradient Direction (cont.) Let –p = (3, 3) –q = (3, 4) –D(p) = (0, 1) –D(q) = (0, 1) Calculate L(p, q) – L(p, q) = ((3, 4) – (3, 3)) = (0, 1) Determine d(p, q) –d p (p, q) = (0, 1) · (0, 1) = 1 –d q (p, q) = (0, 1) · (0, 1) = 1 Finally f D (p, q) –f D (p, q) = 1/π ( ) = 0 –Low Cost! Let –p = (3, 3) –q = (4, 3) –D(p) = (0, 1) –D(q) = (0, 1) Calculate L(p, q) – L(p, q) = ((4, 3) – (3, 3)) = (1, 0) Determine d(p, q) –d p (p, q) = (0, 1) · (1, 0) = 0 –d q (p, q) = (1, 0) · (0, 1) = 0 Finally f D (p, q) –f D (p, q) = 1/π ( π/2 + π/2 ) = 1 –High Cost!

Path Reference Creation Differs from method studied in class –No stages –Link cost between nodes changes –No destination Inputs –Seed point, s –Local cost function, l(q, r)

Path Reference Creation (cont.) Data structures –Sorted list of active pixels, L –Neighborhood of pixel q, N(q) –Flag map of expanded pixels, e(q) –Cumulative cost from seed point, g(q) Output –Path reference map, p

Path Reference Creation (cont.) Start at seed point –Cost is adjusted for Euclidean distance Put all neighbor pixels into the active list –No other pixel has yet to be expanded Set pointers for all neighbors to the seed point L = (4,8), (3,7), …

Path Reference Creation (cont.) Expand to least cost node –Remove that node from active list Calculate cumulative cost of all neighbor pixels –Excludes seed point Change pointers of neighbor pixels –Only if new cost is smaller and pixel is not expanded Add or replace neighbor pixels into active list –Do nothing if pointer was not updated L = (3,7), (2,8), (5,7) …

Path Reference Creation (cont.) Expand to least cost node –Remove that node from active list Calculate cumulative cost of all neighbor pixels –Excludes expanded pixels Change pointers of neighbor pixels –Only if new cost is smaller and pixel is not expanded Add or replace neighbor pixels into active list –Do nothing if pointer was not updated L = (2,6), (3,6), (4,9), …

Path Reference Creation (cont.) Finished –No more pixels to expand –No more pixels on active list

‘Live-Wire’ Action Mouse will constantly redraw optimal path –A wire will ‘snap’ to objects with an image New seed points –New seed points must be defined to surround an object –Points will ‘snap’ to nearest edge

Cooling Problem –All seeds must be manually selected Complex objects may require many seed points Solution –Apply automatic seed point –As the user wraps the object, a common path is formed Make common path ‘cool’ into a new seed point

Cooling (cont.) Examples –Manual seed points (bottom left) –Auto seed points via cooling (bottom right)

Interactive Dynamic Training Problem –Some objects have stronger edges then others If the desired edge is weaker than a nearby edge, then the path ‘jumps’ over to the stronger edge Solution –Train the gradient magnitude to desire the weaker edge Use a sample of good path to train gradient magnitude Update sample as path moves along the desired edge –Allow user to enable and disable training as needed

Interactive Dynamic Training Examples –Path segment jumps without training (top) –Path segment follows trained edge (middle) Cost f G –Normal response without training (lower left) –Trained response from edge sample (lower right)

Image Composition Need –Source objects need blend in with a new background –Background may need to be in front of objects Solution –Allow for 2-D transformations to occur on source objects –Use low pass filters to blend the object into the destination’s scene –Mask background objects to appear in front of source object

Image Composition (cont.)

Critique Paper –Describes a tool Selects image objects quickly and easily Provides the means manipulate and paste them into different images Abstract –Brief mention of need –List of abilities for a tool called ‘Intelligent Scissors’ Introduction –Defines need –Claims current methods are not enough –Claims this tool will help the problem –Gives a small background on similar segmentation tools and their flaws

Critique (cont.) Algorithms –The paper does a good job on explaining how dynamic programming is used –‘Cooling’ was explained well, but no suggested times were given –The section on ‘Dynamic Training’ could be explained more to better understand it –Spatial Frequency and Contrast Matching needs more explanation

Critique (cont.) Dynamic Programming –Used as the main driving force of this tool –The authors spend a lot of time on the dynamic programming section but not gratuitously –Cost must be correctly attributed to the different edge features to take advantage of dynamic programming –Optimal path is ‘Optimal’, not just a local answer

Questions?