ITK Deformable Registration

Slides:



Advertisements
Similar presentations
NA-MIC National Alliance for Medical Image Computing ITK Workshop October 5-8, 2005 Software Design.
Advertisements

ITK Architecture Kitware Inc.. ITK Basics C++ Generic Programming Data Pipeline Multi-threading Streaming Exceptions Events / Observers Tcl, Python and.
Getting Started with ITK + VTK
ITK Segmentation Methods
ITK Registration Methods
ITK Deformable Registration
NA-MIC National Alliance for Medical Image Computing ITK Workshop October 5-8, 2005 Writing a New ITK Filter.
NA-MIC National Alliance for Medical Image Computing Slicer3 EMSegment Tutorial January 2008 NAMIC All-Hands Meeting Brad Davis, Yuman.
National Alliance for Medical Image Computing Slicer3 plugins: Going Further Common architecture for interactive and batch processing.
National Alliance for Medical Image Computing Slicer3 plugins Common architecture for interactive and batch processing.
Real-Time Template Tracking
Active Shape Models Suppose we have a statistical shape model –Trained from sets of examples How do we use it to interpret new images? Use an “Active Shape.
National Alliance for Medical Image Computing Slicer3 plugins Common architecture for interactive and batch processing.
Medical Image Registration Kumar Rajamani. Registration Spatial transform that maps points from one image to corresponding points in another image.
OverviewOverview Motion correction Smoothing kernel Spatial normalisation Standard template fMRI time-series Statistical Parametric Map General Linear.
National Alliance for Medical Image Computing ITK The Image Segmentation and Registration Toolkit Julien Jomier Kitware Inc.
On Constrained Optimization Approach To Object Segmentation Chia Han, Xun Wang, Feng Gao, Zhigang Peng, Xiaokun Li, Lei He, William Wee Artificial Intelligence.
Mean-Shift Algorithm and Its Application Bohyung Han
Non-Rigid Registration. Why Non-Rigid Registration  In many applications a rigid transformation is sufficient. (Brain)  Other applications: Intra-subject:
CSci 6971: Image Registration Lecture 26: BSpline Transforms April 20, 2004 Prof. Chuck Stewart, RPI Dr. Luis Ibanez, Kitware Prof. Chuck Stewart, RPI.
Motion Analysis (contd.) Slides are from RPI Registration Class.
CSci 6971: Image Registration Lecture 4: First Examples January 23, 2004 Prof. Chuck Stewart, RPI Dr. Luis Ibanez, Kitware Prof. Chuck Stewart, RPI Dr.
CSci 6971: Image Registration Lecture 8: Registration Components February 6, 2004 Prof. Chuck Stewart, RPI Dr. Luis Ibanez, Kitware Prof. Chuck Stewart,
Non-Rigid Registration on SPIE 2002 First Part: TPS.
Elastic Registration in the Presence of Intensity Variations Source: IEEE Transactions on Medical Imaging, Vol. 22, No. 7, July 2003 Authors: Senthil Periaswamy,
CSci 6971: Image Registration Lecture 9: Registration Components February 10, 2004 Prof. Chuck Stewart, RPI Dr. Luis Ibanez, Kitware Prof. Chuck Stewart,
CSci 6971: Image Registration Lecture 8: Image Resampling February 3, 2004 Prof. Chuck Stewart, RPI Dr. Luis Ibanez, Kitware Prof. Chuck Stewart, RPI Dr.
CSci 6971: Image Registration Lecture 20: Demons Registration April 16, 2004 Prof. Chuck Stewart, RPI Dr. Luis Ibanez, Kitware Prof. Chuck Stewart, RPI.
CSci 6971: Image Registration Lecture 10: Registration Components February 13, 2004 Prof. Chuck Stewart, RPI Dr. Luis Ibanez, Kitware Prof. Chuck Stewart,
Preprocessing II: Between Subjects John Ashburner Wellcome Trust Centre for Neuroimaging, 12 Queen Square, London, UK.
A Computer Aided Detection System For Mammograms Based on Asymmetry and Feature Extraction Techniques By Mohammed Jirari Benidorm, Spain Sept 9th, 2005.
A plane-plus-parallax algorithm Basic Model: When FOV is not very large and the camera motion has a small rotation, the 2D displacement (u,v) of an image.
A Big Thanks Prof. Jason Bohland Quantitative Neuroscience Laboratory Boston University Dr. Luis Ibanez Open Source Proponent,
Getting Started with ITK in Python Language
GPU Acceleration in ITK v4
ITK The Insight Segmentation & Registration Toolkit Martin Urschler Institute for Computer Graphics and Vision Graz University of Technology.
ALIGNMENT OF 3D ARTICULATE SHAPES. Articulated registration Input: Two or more 3d point clouds (possibly with connectivity information) of an articulated.
ITK Lecture 13: Registration
ITK Input/Output Kitware Inc.. Overview IO Factory Mechanism Image File IO Transform File IO SpatialObject File IO Logger.
Jan Kamenický Mariánská  We deal with medical images ◦ Different viewpoints - multiview ◦ Different times - multitemporal ◦ Different sensors.
Medical Image Analysis Image Registration Figures come from the textbook: Medical Image Analysis, by Atam P. Dhawan, IEEE Press, 2003.
Feature based deformable registration of neuroimages using interest point and feature selection Leonid Teverovskiy Center for Automated Learning and Discovery.
An Efficient Search Strategy for Block Motion Estimation Using Image Features Digital Video Processing 1 Term Project Feng Li Michael Su Xiaofeng Fan.
NA-MIC National Alliance for Medical Image Computing Registering Image Volumes in Slicer Steve Pieper.
GPU Brainstorming What Classes to focus on. Top Priorities Level Sets – (1) ParallelSparseFieldSolver (look at link from Paul) – (?) NarrowBandLevelSet.
Mixture of Gaussians This is a probability distribution for random variables or N-D vectors such as… –intensity of an object in a gray scale image –color.
© 2011 Autodesk Freely licensed for use by educational institutions. Reuse and changes require a note indicating that content has been modified from the.
Distinctive Image Features from Scale-Invariant Keypoints
ITK Basic Filters Kitware Inc.. ITK Basic Filters Pixel-wise Arithmetic, Casting, Thresholding Mathematical morphology Noise reduction Gaussian, Anisotropic.
Line Matching Jonghee Park GIST CV-Lab..  Lines –Fundamental feature in many computer vision fields 3D reconstruction, SLAM, motion estimation –Useful.
Image Registration Lecture 9: Registration Components March 22, 2005 Prof. Charlene Tsai.
Detection of Anatomical Landmarks Bruno Jedynak Camille Izard Georgetown University Medical Center Friday October 6, 2006.
ITK Statistical Classification Kitware Inc.. Statistical Classification Multiple Components Images K-Means Markov Random Fields.
Principal Warps: Thin-Plate Splines and the Decomposition of Deformations 김진욱 ( 이동통신망연구실 ; 박천현 (3D 모델링 및 처리연구실 ;
MASKS © 2004 Invitation to 3D vision Lecture 3 Image Primitives andCorrespondence.
Deformation Modeling for Robust 3D Face Matching Xioguang Lu and Anil K. Jain Dept. of Computer Science & Engineering Michigan State University.
Krivljenje slike - warping
Riemannian DTI Filters: Develop algorithms and ITK modules for basic image processing on tensor fields using Riemannian approaches. Team Plan/Expected.
ITK Segmentation Methods
Computational Neuroanatomy for Dummies
ITK Architecture Kitware Inc..
Filtering Things to take away from this lecture An image as a function
SimpleITK Fundamental Concepts
SimpleITK Fundamental Concepts
CSE 554 Lecture 10: Extrinsic Deformations
ITK Workshop Software Design October 5-8, 2005.
MCMC Inference over Latent Diffeomorphisms
SimpleITK Fundamental Concepts
Intensity Transform Contrast Stretching Y ← u0+γ*(Y-u)/s
Region-Based Segmentation
Presentation transcript:

ITK Deformable Registration Demons Methods

Deformable Registration

Deformable Transforms

Deformable Transformation y y Transform x x Fixed Image Moving Image

Deformable Transformation y y Transform x x Fixed Image Moving Image

Deformable Transformation y y Transform x x Fixed Image Moving Image

Image Resampling Interpolator Fixed Image Resample Image Moving Image Filter Moving Image Deformed Image Transform

Image Resampling Fixed Image Interpolator Resample Image Filter Moving Image Orthogonal Basis Explicit Vector Field Splines High Order Polynomials Deformed Image Transform

Kernel Splines Transforms Target Landmarks Source Landmarks Interpolated Values Displacement Vectors

Kernel Spline Transforms Thin Plates Thin Plates R2 log R Elastic Body Elastic Body Reciprocal Volume

Kernel Spline Transforms InsightApplications / ThinPlateSplines

Resampling: Kernel Spline Transform #include "itkImage.h" #include "itkResampleImageFilter.h" #include "itkLinearInterpolateImageFunction.h" #include "itkElasticBodySplineKernelTransform.h" typedef itk::Image< char, 2 > ImageType; ImageType::ConstPointer fixedImage = GetFixedImage(); ImageType::ConstPointer movingImage = GetMovingImage(); typedef itk::LinearInterpolateImageFunction< ImageType, double > InterpolatorType; InterpolatorType::Pointer interpolator = InterpolatorType::New(); typedef itk::ResampleImageFilter< ImageType, ImageType > FilterType; FilterType::Pointer resampler = FilterType::New();

Resampling: Kernel Spline Transform typedef itk::ElasticBodySplineKernelTransform< double, 2 > TransformType; TransformType::Pointer transform = TransformType::New(); resampler->SetInterpolator( interpolator ); resampler->SetInput( movingImage ); ImageType::RegionType region = fixedImage->GetBufferedRegion(); resampler->SetSize( region->GetSize() ); resampler->SetOutputStartIndex( region->GetIndex() ); resampler->SetOutputSpacing( fixedImage->GetSpacing() ); resampler->SetOutputOrigin( fixedImage->GetOrigin() );

Resampling: Kernel Spline Transform resampler->SetTransform( transform ); typedef TransformType::PointSetType PointSetType; PointSetType::Pointer sourceLandmarks = PointSetType::New(); PointSetType::Pointer targetLandmarks = PointSetType::New(); transform->SetSourceLandmarks( sourceLandmarks ); transform->SetTargetLandmarks( targetLandmarks ); typedef PointSetType::PointsContainer PointsContainer; PointsContainer::Pointer sources = sourceLandmarks->GetPoints(); PointsContainer::Pointer targets = targetLandmarks->GetPoints();

Resampling: Kernel Spline Transform sources->Reserve( numberOfLandmarks ); targets->Reserve( numberOfLandmarks ); typedef PointSetType::PointType PointType; PointType source; PointType target; for( int i = 0; i < numberOfLandmarks; i++ ) { inputFile >> source; inputFile >> target; sources->InsertElement( i, source ); targets->InsertElement( i, target ); } transform->ComputeWMatrix(); resampler->Update(); // Finally !! ImageType::ConstPointer deformedImage = resampler->GetOutput();

Kernel Spline Transforms VolView : ITK Plugin

Kernel Spline Transforms VolView : ITK Plugin

Deformable Transforms Deformation Fields

Deformation Vector Field ParaView: http://www.paraview.org

Warp Image Filter #include "itkImage.h" #include "itkWarpImageFilter.h" #include "itkLinearInterpolateImageFunction.h" typedef itk::Image< char, 2 > ImageType; ImageType::ConstPointer fixedImage = GetFixedImage(); ImageType::ConstPointer movingImage = GetMovingImage(); typedef itk::LinearInterpolateImageFunction< ImageType, double > InterpolatorType; InterpolatorType::Pointer interpolator = InterpolatorType::New(); typedef itk::Vector< float, 2 > VectorType; typedef itk::Image< VectorType , 2 > VectorFieldType; VectorFieldType::Pointer vectorField = GetVectorField();

Warp Image Filter typedef itk::WarpImageFilter< ImageType, VectorFieldType > WarpFilterType; WarpFilterType::Pointer warpFilter = WarpFilterType::New(); warpFilter->SetInterpolator( interpolator ); warpFilter->SetInput( movingImage ); warpFilter->SetOutputSpacing( fixedImage->GetSpacing() ); warpFilter->SetOutputOrigin( fixedImage->GetOrigin() ); warpFilter->SetDeformationField( vectorField ); warpFilter->Update(); ImageType::ConstPointer deformedImage = warpFilter->GetOutput();

Demons Registration Demons Registration

Demons is a Family of Algorithms Demons Registration Demons is a Family of Algorithms

Demons Registration Demons Type 0

Demons Registration: Type 0 Transform Scene Model

Demons Registration: Type 0 Transform Scene Gradients Model

Demons Registration: Type 0 Transform Scene Forces Model

Demons Registration Demons Type 1

Demons Registration: Type 1 Transform Scene Vector Field Model

Demons Registration: Type 1 Transform Scene Vector Field Model

Demons Registration: Type 1 Transform Scene Vector Field Model

Demons Registration: Type 1 Transform Scene Vector Field Model

Demons Registration: Type 1 Gradient Scene

Demons Registration: Type 1 Current Estimation Intensity Space Gradient Desired Displacement Scene

Demons Registration: Type 1 Transform Scene Vector Field Model

Demons Registration: Type 1 Scene

Demons Registration: Type 1 Iterations Incremental Field Next Field Previous Field Gaussian Smoothing

Demons Registration: Type 1 ( s – m ) . Grad(s) V = Grad(s)2 ( s – m ) . Grad(s) V = Grad(s)2 + (s-m)2 K

Image Registration Framework Fixed Image Increment Computation PDE Solver Moving Image Interpolator Deformation Field Transform

Demons Registration: Type 1 #include "itkImage.h" #include "itkDemonsRegistrationFilter.h" typedef itk::Image< char, 2 > ImageType; ImageType::ConstPointer fixedImage = GetFixedImage(); ImageType::ConstPointer movingImage = GetMovingImage(); typedef itk::Vector< float, 2 > VectorType; typedef itk::Image< VectorType , 2 > VectorFieldType; typedef itk::DemonsRegistrationFilter< ImageType, VectorFieldType > DemonsType; DemonsType::Pointer demons = DemonsType::New();

Demons Registration: Type 1 demons->SetFixedImage( fixedImage ); demons->SetMovingImage( movingImage ); demons->SetNumberOfIterations( 200 ); demons->SetStandardDeviations( 1.0 ); demons->Update(); ImageType::ConstPointer vectorField = demons->GetOutput();

Demons Registration: Type 1 Scene

Demons Registration: Type 1 Model

Demons Registration: Type 1 After Registration

Demons Registration: Type 1 Scene

Demons Registration: Type 1 Scene

Fixed and Moving images should have the same intensity distribution ! Requirements Fixed and Moving images should have the same intensity distribution !

Eventual Preprocessing - Histogram Matching Filter - Anisotropic Diffusion Filtering

Image Registration Framework Fixed Image Increment Computation PDE Solver Moving Image Interpolator Deformation Field Transform Resampler Moving Registered

Enjoy ITK !