ITK 9.3. Level Set Segmentation Shape Detection Segmentation

Slides:



Advertisements
Similar presentations
An Active contour Model without Edges
Advertisements

ITK Segmentation Methods
Scale & Affine Invariant Interest Point Detectors Mikolajczyk & Schmid presented by Dustin Lennon.
Beyond Linear Separability
Segmentation by Morphological Watersheds
CSC321: 2011 Introduction to Neural Networks and Machine Learning Lecture 7: Learning in recurrent networks Geoffrey Hinton.
Boundary Detection - Edges Boundaries of objects –Usually different materials/orientations, intensity changes.
November 12, 2013Computer Vision Lecture 12: Texture 1Signature Another popular method of representing shape is called the signature. In order to compute.
Computational Biology, Part 23 Biological Imaging II Robert F. Murphy Copyright  1996, 1999, All rights reserved.
Regional Processing Convolutional filters. Smoothing  Convolution can be used to achieve a variety of effects depending on the kernel.  Smoothing, or.
CSCI 347 / CS 4206: Data Mining Module 07: Implementations Topic 03: Linear Models.
CDS 301 Fall, 2009 Image Visualization Chap. 9 November 5, 2009 Jie Zhang Copyright ©
Image Segmentation and Active Contour
Deformable Contours Dr. E. Ribeiro.
Simple Neural Nets For Pattern Classification
EE663 Image Processing Edge Detection 5 Dr. Samir H. Abdul-Jauwad Electrical Engineering Department King Fahd University of Petroleum & Minerals.
Edge detection. Edge Detection in Images Finding the contour of objects in a scene.
Image processing. Image operations Operations on an image –Linear filtering –Non-linear filtering –Transformations –Noise removal –Segmentation.
Canny Edge Detector1 1)Smooth image with a Gaussian optimizes the trade-off between noise filtering and edge localization 2)Compute the Gradient magnitude.
Region Filling and Object Removal by Exemplar-Based Image Inpainting
Filters and Edges. Zebra convolved with Leopard.
CS 376b Introduction to Computer Vision 03 / 04 / 2008 Instructor: Michael Eckmann.
Edge Detection Today’s readings Cipolla and Gee –supplemental: Forsyth, chapter 9Forsyth Watt, From Sandlot ScienceSandlot Science.
Neural Networks Lecture 17: Self-Organizing Maps
Image Segmentation by Clustering using Moments by, Dhiraj Sakumalla.
October 8, 2013Computer Vision Lecture 11: The Hough Transform 1 Fitting Curve Models to Edges Most contours can be well described by combining several.
Chapter 3 Binary Image Analysis. Types of images ► Digital image = I[r][c] is discrete for I, r, and c.  B[r][c] = binary image - range of I is in {0,1}
Lecture 5. Morphological Image Processing. 10/6/20152 Introduction ► ► Morphology: a branch of biology that deals with the form and structure of animals.
7.1. Mean Shift Segmentation Idea of mean shift:
Digital Image Processing CCS331 Relationships of Pixel 1.
Image Processing Edge detection Filtering: Noise suppresion.
Edges. Edge detection schemes can be grouped in three classes: –Gradient operators: Robert, Sobel, Prewitt, and Laplacian (3x3 and 5x5 masks) –Surface.
AdeptSight Image Processing Tools Lee Haney January 21, 2010.
G52IVG, School of Computer Science, University of Nottingham 1 Edge Detection and Image Segmentation.
CSC508 What You Should Be Doing Code, code, code –Programming Gaussian Convolution Sobel Edge Operator.
Introduction to Level Set Methods: Part II
CSC508 Convolution Operators. CSC508 Convolution Arguably the most fundamental operation of computer vision It’s a neighborhood operator –Similar to the.
Digital Image Processing Lecture 16: Segmentation: Detection of Discontinuities Prof. Charlene Tsai.
Edge Detection and Geometric Primitive Extraction Jinxiang Chai.
Edge Based Segmentation Xinyu Chang. Outline Introduction Canny Edge detector Edge Relaxation Border Tracing.
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],
CDS 301 Fall, 2008 Image Visualization Chap. 9 November 11, 2008 Jie Zhang Copyright ©
Digital Image Processing Lecture 16: Segmentation: Detection of Discontinuities May 2, 2005 Prof. Charlene Tsai.
Digital Image Processing Lecture 17: Segmentation: Canny Edge Detector & Hough Transform Prof. Charlene Tsai.
Machine Vision Edge Detection Techniques ENT 273 Lecture 6 Hema C.R.
TOPIC 12 IMAGE SEGMENTATION & MORPHOLOGY. Image segmentation is approached from three different perspectives :. Region detection: each pixel is assigned.
Essential components of the implementation are:  Formation of the network and weight initialization routine  Pixel analysis of images for symbol detection.
Lecture(s) 3-4. Morphological Image Processing. 3/13/20162 Introduction ► ► Morphology: a branch of biology that deals with the form and structure of.
Level Set Segmentation ~ 9.37 Ki-Chang Kwak.
Processing Images and Video for An Impressionist Effect Automatic production of “painterly” animations from video clips. Extending existing algorithms.
ITK. Ch 9 Segmentation Confidence Connected Isolated Connected Confidence Connected in Vector Images Jin-ju Yang.
April 21, 2016Introduction to Artificial Intelligence Lecture 22: Computer Vision II 1 Canny Edge Detector The Canny edge detector is a good approximation.
Digital Image Processing Lecture 16: Segmentation: Detection of Discontinuities Prof. Charlene Tsai.
ITK Segmentation Methods
Detection of discontinuity using
Mean Shift Segmentation
Image gradients and edges
Fourier Transform: Real-World Images
Fitting Curve Models to Edges
Edge Detection The purpose of Edge Detection is to find jumps in the brightness function (of an image) and mark them.
Computer Vision Lecture 9: Edge Detection II
ECE 471/571 - Lecture 17 Back Propagation.
EE/CSE 576 HW 1 Notes.
CS Digital Image Processing Lecture 5
Neuro-Computing Lecture 4 Radial Basis Function Network
EE/CSE 576 HW 1 Notes.
Digital Image Processing Week IV
Canny Edge Detector Smooth image with a Gaussian
IT472 Digital Image Processing
ECE/CSE 576 HW 1 Notes.
Presentation transcript:

ITK 9.3. Level Set Segmentation 9.3.2 Shape Detection Segmentation 9.3.3 Geodesic Active Contours Segmentation

9.3.2 Shape Detection Segmentation Collaboration Diagram 9.3.2 Shape Detection Segmentation

1. 9.3.2 Shape Detection Segmentation 2. 1. Input image to be segmented 2. Image smoothed with an edge-preserving smoothing filter 3. gradient magnitude of the smoothed image 4. sigmoid of the gradient magnitude. This last image, the sigmoid, is used to compute the speed term for the front propagation. 3. 4.

9.3.2 Shape Detection Segmentation The first stage involves smoothing using the itk::CurvatureAnisotropic DiffusionImageFilter. The smoothed image is passed as the input for the itk::Gradient MagnitudeRecursiveGaussianImageFilter and then to the itk::Sigmoid ImageFilter in order to produce the edge potential image.

9.3.2 Shape Detection Segmentation A set of user-provided seeds is passed to an FastMarching ImageFilter in order to compute the distance map. A constant value is subtracted from this map in order to obtain a level set in which the zero set represents the initial contour. This level set is also passed as input to the ShapeDetection-LevelSetImageFilter. Finally, the level set at the output of the ShapeDetectionLevelSet ImageFilter is passed to an BinaryThresholdImageFilter in order to produce a binary mask representing the segmented object.

9.3.2 Shape Detection Segmentation We now define the image type using a particular pixel type and a dimension. In this case the float type is used for the pixels due to the requirements of the smoothing filter. The output image, on the other hand, is declared to be binary. The type of the BinaryThreshold ImageFilter filter is instantiated below using the internal image type and the output image type.

9.3.2 Shape Detection Segmentation The CurvatureAnisotropicDiffusion ImageFilter type is instantiated using the internal image type. The filter is instantiated by invoking the New() method and assigning the result to a itk::SmartPointer. The types of the Gradient MagnitudeRecursiveGaussianImageFilter and SigmoidImageFilter are instantiated using the internal image type. The corresponding filter objects are created with the method New().

9.3.2 Shape Detection Segmentation The minimum and maximum values of the SigmoidImageFilter output are defined with the methods SetOutputMinimum() and SetOutputMaximum(). In our case, we want these two values to be 0.0 and 1.0 respectively in order to get a nice speed image to feed to the Fast-MarchingImageFilter. We now declare the type of the FastMarchingImageFilter that will be used to generate the initial level set in the form of a distance map.

9.3.2 Shape Detection Segmentation Next we construct one filter of this class using the New() method. In the following lines we instantiate the type of the ShapeDetection LevelSetImageFilter and create an object of this type using the New() method.

9.3.2 Shape Detection Segmentation The filters are now connected in a pipeline indicated in Figure 9.18 with the following code. The CurvatureAnisotropicDiffusion ImageFilter requires a couple of parameters to be defined. The following are typical values for 2D images. However they may have to be adjusted depending on the amount of noise present in the input image.

9.3.2 Shape Detection Segmentation The GradientMagnitudeRecursive GaussianImageFilter performs the equivalent of a convolution with a Gaussian kernel followed by a derivative operator. The sigma of this Gaussian can be used to control the range of influence of the image edges. The SigmoidImageFilter requires two parameters that define the linear transformation to be applied to the sigmoid argument.

9.3.2 Shape Detection Segmentation The FastMarchingImageFilter requires the user to provide a seed point from which the level set will be generated. The user can actually pass not only one seed point but a set of them. Note the FastMarchingImageFilter is used here only as a helper in the determination of an initial level set. We could have used the itk::Daniel ssonDistanceMapImageFilter in the same way. The seeds are stored in a container. The type of this container is defined as NodeContainer among the FastMarchingImageFilter traits.

9.3.2 Shape Detection Segmentation Note that we assign the negative of the value of the user-provided distance to the unique node of the seeds passed to the FastMarching ImageFilter. In this way, the value will increment as the front is propagated, until it reaches the zero value corresponding to the contour. After this, the front will continue propagating until it fills up the entire image. The initial distance is taken from the command line arguments. The rule of thumb for the user is to select this value as the distance from the seed points at which the initial contour should be.

9.3.2 Shape Detection Segmentation The list of nodes is initialized and then every node is inserted using InsertElement(). The set of seed nodes is now passed to the FastMarchingImage Filter with the method SetTrialPoints(). Since the FastMarchingImageFilter is used here only as a distance map generator, it does not require a speed image as input. Instead, the constant value 1.0 is passed using the SetSpeed Constant() method.

9.3.2 Shape Detection Segmentation The FastMarchingImageFilter requires the user to specify the size of the image to be produced as output. This is done using the SetOutputSize(). Note that the size is obtained here from the output image of the smoothing filter. The size of this image is valid only after the Update() methods of this filter have been called directly or indirectly.

9.3.2 Shape Detection Segmentation ShapeDetectionLevelSetImageFilter provides two parameters to control the competition between the propagation or expansion term and the curvature smoothing term. The methods SetPropagation Scaling() and SetCurvatureScaling() defines the relative weighting between the two terms.

9.3.2 Shape Detection Segmentation In this example, we will set the propagation scaling to one and let the curvature scaling be an input argument. The larger the the curvature scaling parameter the smoother the resulting segmentation. However, the curvature scaling parameter should not be set too large, as it will draw the contour away from the shape boundaries.

9.3.2 Shape Detection Segmentation Once activated, the level set evolution will stop if the convergence criteria or the maximum number of iterations is reached. The convergence criteria are defined in terms of the root mean squared (RMS) change in the level set function. The evolution is said to have converged if the RMS change is below a user-specified threshold.

9.3.2 Shape Detection Segmentation In a real application, it is desirable to couple the evolution of the zero set to a visualization module, allowing the user to follow the evolution of the zero set. With this feedback, the user may decide when to stop the algorithm before the zero set leaks through the regions of low gradient in the contour of the anatomical structure to be segmented.

9.3.2 Shape Detection Segmentation

9.3.3 Geodesic Active Contours Segmentation Collaboration Diagram 9.3.3 Geodesic Active Contours Segmentation

9.3.3 Geodesic Active Contours Segmentation The use of the itk::GeodesicActive ContourLevelSetImageFilter is illustrated in the following example. This implementation extends the functionality of the itk::Shape DetectionLevelSetImageFilter by the addition of a third advection term which attracts the level set to the object boundaries.

9.3.3 Geodesic Active Contours Segmentation The pipeline involves a first stage of smoothing using the itk::Curvature AnisotropicDiffusionImageFilter. The smoothed image is passed as the input to the itk::GradientMagnitu deRecursiveGaussianImageFilter and then to the itk::SigmoidImage Filter in order to produce the edge potential image.

9.3.3 Geodesic Active Contours Segmentation A set of user-provided seeds is passed to a itk::FastMarching ImageFilter in order to compute the distance map. Finally, the level set generated by the GeodesicActiveContourLevelSet ImageFilter is passed to a itk::Binary ThresholdImageFilter in order to produce a binary mask representing the segmented object.

9.3.3 Geodesic Active Contours Segmentation We now define the image type using a particular pixel type and dimension. In this case the float type is used for the pixels due to the requirements of the smoothing filter. In the following lines we instantiate the type of the GeodesicActive ContourLevelSetImageFilter and create an object of this type using the New() method.

9.3.3 Geodesic Active Contours Segmentation

9.3.3 Geodesic Active Contours Segmentation For the GeodesicActiveContour LevelSetImageFilter, scaling parameters are used to trade off between the propagation (inflation), the curvature (smoothing) and the advection terms. These parameters are set using methods SetPropagationScaling(), SetCurvatureScaling() and SetAdvectionScaling(). In this example, we will set the curvature and advection scales to one and let the propagation scale be a command-line argument.

9.3.3 Geodesic Active Contours Segmentation The filters are now connected in a pipeline indicated in Figure 9.21 using the following lines:

9.3.3 Geodesic Active Contours Segmentation

9.3.3 Geodesic Active Contours Segmentation

9.3.3 Geodesic Active Contours Segmentation

9.3.3 Geodesic Active Contours Segmentation The invocation of the Update() method on the writer triggers the execution of the pipeline. As usual, the call is placed in a try/catch block should any errors occur or exceptions be thrown.

1. 9.3.3 Geodesic Active Contours Segmentation 2. 1. Input image to be segmented 2. Image smoothed with an edge-preserving smoothing filter 3. gradient magnitude of the smoothed image 4. sigmoid of the gradient magnitude. This last image, the sigmoid, is used to compute the speed term for the front propagation. 3. 4.

9.3.3 Geodesic Active Contours Segmentation