Lecture 10 Segmentation, Part II (ch 8) Active Contours (Snakes) ch

Slides:



Advertisements
Similar presentations
Active Contours, Level Sets, and Image Segmentation
Advertisements

November 12, 2013Computer Vision Lecture 12: Texture 1Signature Another popular method of representing shape is called the signature. In order to compute.
DREAM PLAN IDEA IMPLEMENTATION Introduction to Image Processing Dr. Kourosh Kiani
Lecture 12 Level Sets & Parametric Transforms sec & ch
Computer Vision Lecture 16: Region Representation
Segmentation (2): edge detection
Image Segmentation some examples Zhiqiang wang
Image Segmentation and Active Contour
Segmentation and Region Detection Defining regions in an image.
1 Lecture #5 Variational Approaches and Image Segmentation Lecture #5 Hossam Abdelmunim 1 & Aly A. Farag 2 1 Computer & Systems Engineering Department,
Instructor: Mircea Nicolescu Lecture 13 CS 485 / 685 Computer Vision.
Snakes - Active Contour Lecturer: Hagit Hel-Or
Active Contour Models (Snakes)
Deformable Contours Dr. E. Ribeiro.
Lecture 6 Image Segmentation
Lecture 4 Edge Detection
EE 7730 Image Segmentation.
Thresholding Otsu’s Thresholding Method Threshold Detection Methods Optimal Thresholding Multi-Spectral Thresholding 6.2. Edge-based.
Active Contour Models (Snakes) Yujun Guo.
Instructor: Dr. Peyman Milanfar
כמה מהתעשייה? מבנה הקורס השתנה Computer vision.
Computer Vision Spring ,-685 Instructor: S. Narasimhan Wean Hall 5409 T-R 10:30am – 11:50am.
The content of these slides by John Galeotti, © Carnegie Mellon University (CMU), was made possible in part by NIH NLM contract# HHSN P,
06 - Boundary Models Overview Edge Tracking Active Contours Conclusion.
October 14, 2014Computer Vision Lecture 11: Image Segmentation I 1Contours How should we represent contours? A good contour representation should meet.
The content of these slides by John Galeotti, © Carnegie Mellon University (CMU), was made possible in part by NIH NLM contract# HHSN P,
7.1. Mean Shift Segmentation Idea of mean shift:
September 23, 2014Computer Vision Lecture 5: Binary Image Processing 1 Binary Images Binary images are grayscale images with only two possible levels of.
CS654: Digital Image Analysis Lecture 25: Hough Transform Slide credits: Guillermo Sapiro, Mubarak Shah, Derek Hoiem.
Digital Image Processing Lecture 16: Segmentation: Detection of Discontinuities Prof. Charlene Tsai.
Lecture 9 Segmentation (ch 8) ch. 8 of Machine Vision by Wesley E
Mathematical Morphology
October 1, 2013Computer Vision Lecture 9: From Edges to Contours 1 Canny Edge Detector However, usually there will still be noise in the array E[i, j],
Digital Image Processing Lecture 16: Segmentation: Detection of Discontinuities May 2, 2005 Prof. Charlene Tsai.
Machine Vision Edge Detection Techniques ENT 273 Lecture 6 Hema C.R.
Occlusion Tracking Using Logical Models Summary. A Variational Partial Differential Equations based model is used for tracking objects under occlusions.
Course 3 Binary Image Binary Images have only two gray levels: “1” and “0”, i.e., black / white. —— save memory —— fast processing —— many features of.
October 3, 2013Computer Vision Lecture 10: Contour Fitting 1 Edge Relaxation Typically, this technique works on crack edges: pixelpixelpixel pixelpixelpixelebg.
TP11 - Fitting: Deformable contours
Machine Vision ENT 273 Lecture 4 Hema C.R.
(CMU ECE) : (CMU BME) : BioE 2630 (Pitt)
Miguel Tavares Coimbra
Digital Image Processing Lecture 16: Segmentation: Detection of Discontinuities Prof. Charlene Tsai.
Image Segmentation – Edge Detection
Lecture 13 Shape ch. 9, sec. 1-8, of Machine Vision by Wesley E
Methods In Medical Image Analysis
Mean Shift Segmentation
Dynamical Statistical Shape Priors for Level Set Based Tracking
Lecture 12 Level Sets & Parametric Transforms sec & ch
Lecture 6 Linear Processing ch. 5 of Machine Vision by Wesley E
Computer Vision Lecture 5: Binary Image Processing
Fitting Curve Models to Edges
Lecture 10 Segmentation (ch 8) ch. 8 of Machine Vision by Wesley E
ECE 692 – Advanced Topics in Computer Vision
Final Project Details Note: To print these slides in grayscale (e.g., on a laser printer), first change the Theme Background to “Style 1” (i.e., dark.
Lecture 5 Image Characterization ch. 4 of Machine Vision by Wesley E
Lecture 19 ITK’s Path Framework
Snakes, Shapes, and Gradient Vector Flow
Lecture 15 Active Shape Models
Lecture 10 Segmentation, Part II (ch 8) Active Contours (Snakes) ch
Lecture 3 Math & Probability Background ch
(CMU ECE) : (CMU BME) : BioE 2630 (Pitt)
Lecture 14 Shape ch. 9, sec. 1-8, of Machine Vision by Wesley E
Lecture 3 Math & Probability Background ch
(CMU ECE) : (CMU BME) : BioE 2630 (Pitt)
Active Contour Models.
Introduction to Artificial Intelligence Lecture 22: Computer Vision II
Lecture 10 Segmentation (ch 8) ch. 8 of Machine Vision by Wesley E
Methods In Medical Image Analysis
Presentation transcript:

Lecture 10 Segmentation, Part II (ch 8) Active Contours (Snakes) ch Lecture 10 Segmentation, Part II (ch 8) Active Contours (Snakes) ch. 8 of Machine Vision by Wesley E. Snyder & Hairong Qi Note: To print these slides in grayscale (e.g., on a laser printer), first change the Theme Background to “Style 1” (i.e., dark text on white background), and then tell PowerPoint’s print dialog that the “Output” is “Grayscale.” Everything should be clearly legible then. This is how I also generate the .pdf handouts.

Review: Segmentation A partitioning… Where each region is: There is room for interpretation here… A partitioning… Into connected regions… Where each region is: Homogeneous Identified by a unique label And here

Review: The “big picture:” Examples from The ITK Software Guide BE SLOW & DISCUSS (next 3 slides) Figures 9.12 (top) & 9.1 (bottom) from the ITK Software Guide v 2.4, by Luis Ibáñez, et al.

Review: The Nature of Curves A curve is a 1D function, which is simply bent in (“lives in”) ND space. That is, a curve can be parameterized using a single parameter (hence, 1D). The parameter is usually arc length, s Even though not invariant to affine transforms. Will be VERY RELAVNT later.

Review: The Nature of Curves The speed of a curve at a point s is: Denote the outward normal direction at point s as n(s) Suppose the curve is closed: The concepts of INSIDE and OUTSIDE make sense Given a point x = [xi,yi] not on the curve, Let x represent the closest point on the curve to x The arc length at x is defined to be sx. x is INSIDE the curve if: [x - x]  n(sx)  0 And OUTSIDE otherwise.

Active Contours (Snakes) Most whole-image segmentation methods: Connectivity and homogeneity are based only on image data. In medical imaging, we often want to segment an anatomic object Connectivity and homogeneity are defined in terms of anatomy, not pixels How can we do this from an image? We definitely have to make use of prior knowledge of anatomy! Radiologists do this all the time

Active Contours (Snakes) Let’s look at ultrasound of my neck. Examine the CCA: Large parts of the boundary are NOT visible! We know the CCA doesn’t include the large black area at the bottom-right How can we automatically get a “good” segmentation? This is (usually) hard. Internal jugular vein (IJV) Common Carotid Artery (CCA) Not part of CCA Automated analysis of images like this is discussed in depth by David Wang, et al. in Fully Automated Common Carotid Artery and Internal Jugular Vein Identification and Tracking using B-Mode Ultrasound, IEEE Transactions on Biomedical Engineering, Vol. 56, No. 6, June 2009, free PMC version at http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2873619/

Active Contours (Snakes) How do we know where the edges/ boundaries are? Why are they missing in some places? Ultrasound & OCT frequently measure pixels as too dark Nuclear medicine often measures pixels as too bright X-Ray superimposes different objects from different depths What can we do about it? Edge closing won’t work. “Hallucinate”

Active Contours (Snakes) Another example & underlying idea: Car & Tree example Mimic human vision: low level (edges/brightness) + high level (expected shape)

Active Contours (Snakes) Active contours can insure* that: The segmentation is not “drastically” too large or too small It is approximately the right shape There is a single, closed boundary Active contours can still be very wrong Just like every other segmentation method * Requires careful usage. Note: This example could best use an ellipsoidal model of some sort

Active Contours (Snakes) Step 1: Initialize the boundary curve (the active contour) Automatically, Manually, or Semi-automatically Step 2: The contour moves “Active” contour Looks like a wiggling “snake” Step 3: The contour stops moving When many/most points on the contour line up with edge pixels

Initialization Good initialization is critical! Especially around small neighboring objects Especially if the image is really noisy/blurry Some snake algorithms require initialization entirely inside or outside of the object. It is usually best to initialize on the “cleaner” side of the boundary. Clinically, this is often involves a human, who: Marks 1 or more points inside the object Marks 1 or more boundary points —and/or— Possibly draws a simple curve, such as an ellipse

Moving the Contour Two common philosophies: Energy minimization “Ad-hoc” energy equation describes how good the curve looks, and how well it matches the image Numerically optimize the curve Partial differential equations (PDEs) Start the curve expanding or contracting Points on the curve move more slowly as: They become more curved They lie on top of image “edginess” The curve ideally stops moving when it lies over the appropriate image boundaries

Active Contours: Energy Minimization “Visible” image boundaries represent a low energy state for the active contour …If your equations are properly set up This is usually a local minima This is one reason why initialization is so important! The curve is (typically) represented as a set of sequentially connected points. Each point is connected to its 2 neighboring points. The curve is usually closed, so the “first” and “last” points are connected.

Active Contours: Energy Minimization Active contour points ≠ pixels At any given time, each point is located at some pixel location (Think itk::Index or itk::ContinuousIndex) But points move around as the curve moves And neighboring points are usually separated by several pixels This allows room for each point to “move around”

Active Contours: Snake Energy Two Terms Internal Energy + External Energy External Energy Also called image energy Designed to capture desired image features Internal Energy Also called shape energy Designed to reduce extreme curvature and prevent outlier points

Active Contours: External (Image) Energy Designed to capture desired image features Example: EE =  exp( -   f (Xi)  ) Measures the gradient magnitude in the image at the location of each snake point

Active Contours: Internal (Shape) Energy Designed to reduce extreme curvature and prevent outlier points Example: EI =   Xi - Xj  +  Xi-1 - 2Xi + Xi+1  Minimizes: How far apart the snake points are from one another How much the curve bends Can add a -d term for avg. segment length Looks like a 2nd derivative kernel 1st order energy = tension 2nd order energy = curvature “Rubber band tension” is usually larger than 

Active Contours: Selecting New Points Need choices to evaluate when minimizing snake energy Scenario 1: Snake can only shrink Useful to execute between (large) initialization and normal execution Look at points only inside the contour, relative to current point locations Scenario 2: Each snake point can move 1 step in any direction Useful if the snake is close to the correct boundary Look at all vertex-connected neighbors of each point’s current location Other scenarios possible

Active Contours: Energy Minimization Numerical minimization methods Several choices In 2D, dynamic programming can work well In 3D (i.e. “active surfaces”), simulated annealing can be a good choice Both methods require a finite (typically sampled) number of possible states. The solution obtained is hopefully the best within the set that was sampled, but… If the best solution in the region of interest is not included in the sample set, then we won’t find it!

Active Contours: Partial Differential Equations (PDEs) A different method for moving the active contour’s points Used by “Level Sets” Operates on discrete “time steps” Snake points move normal to the curve (at each “time step”). Snake points move a distance determined by their speed.

Active Contours using PDEs: Typical Speed Function Speed is usually a product of internal and external terms: s(x,y) = sI(x,y)sE(x,y) Internal (shape) speed: sI(x,y) = 1 -  (x,y)  where (x,y) measures the snake’s curvature at (x,y) External (image) speed: sE(x,y) = (1+(x,y) )-1 where (x,y) measures the image’s edginess at (x,y)

Active Contours using PDEs: Typical Problems Curvature measurements are very sensitive to noise They use 2nd derivatives These contour representations don’t allow an object to split This can be a problem when tracking an object through multiple slices or multiple time frames. A common problem with branching vasculature or dividing cells How do you keep a curve from crossing itself? One solution: only allow the curve to grow

Level Sets A variation of the PDE framework Address the problems on the previous slide We will go over these in detail in the next lecture

Assignment 3 Assigned now Work through a couple iPython Notebooks on segmentation. Due Tuesday—You have 1 week.