CSci 6971: Image Registration Lecture 20: Demons Registration April 16, 2004 Prof. Chuck Stewart, RPI Dr. Luis Ibanez, Kitware Prof. Chuck Stewart, RPI.

Slides:



Advertisements
Similar presentations
ITK Registration Methods
Advertisements

ITK Deformable Registration
ITK Deformable Registration
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 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.
CSci 6971: Image Registration Lecture 14 Distances and Least Squares March 2, 2004 Prof. Chuck Stewart, RPI Dr. Luis Ibanez, Kitware Prof. Chuck Stewart,
OverviewOverview Motion correction Smoothing kernel Spatial normalisation Standard template fMRI time-series Statistical Parametric Map General Linear.
NAMIC AHM, Jan 2008 Registration Helper Classes Stephen Aylward Matt Turek Luis Ibanez.
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.
CSci 6971: Image Registration Lecture 3: Images and Transformations January 20, 2004 Prof. Chuck Stewart, RPI Dr. Luis Ibanez, Kitware Prof. Chuck Stewart,
Mean-Shift Algorithm and Its Application Bohyung Han
CSci 6971: Image Registration Lecture 6: Getting Started with ITK January 30, 2004 Prof. Chuck Stewart, RPI Dr. Luis Ibanez, Kitware Prof. Chuck Stewart,
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,
CSci 6971: Image Registration Lecture 27: FEM-Based Methods April 23, 2004 Prof. Chuck Stewart, RPI Dr. Luis Ibanez, Kitware Prof. Chuck Stewart, RPI Dr.
Non-Rigid Registration on SPIE 2002 First Part: TPS.
CSci 6971: Image Registration Lecture 2: Vectors and Matrices January 16, 2004 Prof. Chuck Stewart, RPI Dr. Luis Ibanez, Kitware Prof. Chuck Stewart, RPI.
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 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.
CSci 6971: Image Registration Lecture 5: Feature-Base Regisration January 27, 2004 Prof. Chuck Stewart, RPI Dr. Luis Ibanez, Kitware Prof. Chuck Stewart,
CSci 6971: Image Registration Lecture 16: View-Based Registration March 16, 2004 Prof. Chuck Stewart, RPI Dr. Luis Ibanez, Kitware Prof. Chuck Stewart,
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,
National Alliance for Medical Image Computing Registration in Slicer3 Julien Jomier Kitware Inc.
Getting Started with ITK in Python Language
Digital Image Processing CCS331 Image Interpolation 1.
ITK The Insight Segmentation & Registration Toolkit Martin Urschler Institute for Computer Graphics and Vision Graz University of Technology.
Digital Image Processing Lecture 7: Geometric Transformation March 16, 2005 Prof. Charlene Tsai.
CSci 6971: Image Registration Lecture 3: Images and Transformations March 1, 2005 Prof. Charlene Tsai.
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.
ITK Introduction and Overview Spring Topics  What Is ITK History Features  Software Engineering Methodology.
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.
A D V A N C E D C O M P U T E R G R A P H I C S CMSC 635 January 15, 2013 Quadric Error Metrics 1/20 Geometric Morphometrics Feb 27, 2013 Geometric Morphologyd.
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 모델링 및 처리연구실 ;
CSCI 631 – Foundations of Computer Vision March 15, 2016 Ashwini Imran Image Stitching.
NA-MIC National Alliance for Medical Image Computing Three ways to use the NA-MIC kit Sonia Pujol, Ph.D. Instructor of Radiology Surgical.
Deformation Modeling for Robust 3D Face Matching Xioguang Lu and Anil K. Jain Dept. of Computer Science & Engineering Michigan State University.
CSCI 631 – Foundations of Computer Vision March 15, 2016 Ashwini Imran Image Stitching Link: singhashwini.mesinghashwini.me.
Insight Toolkit Introduction Luis Ibáñez William Schroeder Insight Software Consortium.
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
Presentation transcript:

CSci 6971: Image Registration Lecture 20: Demons Registration April 16, 2004 Prof. Chuck Stewart, RPI Dr. Luis Ibanez, Kitware Prof. Chuck Stewart, RPI Dr. Luis Ibanez, Kitware

Image RegistrationLecture 20 2 Deformable Registration

Image RegistrationLecture 20 3 Deformable Transforms

Image RegistrationLecture 20 4 Deformable Transformation y Fixed Image Transform x y Moving Image x

Image RegistrationLecture 20 5 Deformable Transformation y Fixed Image Transform x y Moving Image x

Image RegistrationLecture 20 6 Deformable Transformation y Fixed Image Transform x y Moving Image x

Image RegistrationLecture 20 7 Image Resampling Fixed Image Moving Image Transform Interpolator Resample Image Filter Deformed Image

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

Image RegistrationLecture 20 9 Kernel Splines Transforms Source Landmarks Target Landmarks Displacement Vectors Interpolated Values

Image RegistrationLecture Kernel Spline Transforms Thin Plates Thin Plates R 2 log R Elastic Body Elastic Body Reciprocal Volume

Image RegistrationLecture Kernel Spline Transforms InsightApplications / ThinPlateSplines

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

Image RegistrationLecture Resampling: Kernel Spline Transform typedef itk::ElasticBodySplineKernelTransform 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() );

Image RegistrationLecture 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();

Image RegistrationLecture 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();

Image RegistrationLecture Kernel Spline Transforms VolView : ITK Plugin

Image RegistrationLecture Kernel Spline Transforms VolView : ITK Plugin

Image RegistrationLecture Deformable Transforms Deformation Fields

Image RegistrationLecture Deformation Vector Field ParaView:

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

Image RegistrationLecture Warp Image Filter typedef itk::WarpImageFilter< ImageType, 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();

Image RegistrationLecture Demons Registration

Image RegistrationLecture Demons Registration Demons is a Family of Algorithms

Image RegistrationLecture Demons Registration Demons Type 0

Image RegistrationLecture Demons Registration: Type 0 Scene Model Transform

Image RegistrationLecture Demons Registration: Type 0 Scene Model Transform Gradients

Image RegistrationLecture Demons Registration: Type 0 Scene Model Transform Forces

Image RegistrationLecture Demons Registration Demons Type 1

Image RegistrationLecture Demons Registration: Type 1 SceneModel Transform Vector Field

Image RegistrationLecture Demons Registration: Type 1 SceneModel Transform Vector Field

Image RegistrationLecture Demons Registration: Type 1 SceneModel Transform Vector Field

Image RegistrationLecture Demons Registration: Type 1 SceneModel Transform Vector Field

Image RegistrationLecture Demons Registration: Type 1 Scene Gradient

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

Image RegistrationLecture Demons Registration: Type 1 SceneModel Transform Vector Field

Image RegistrationLecture Demons Registration: Type 1 Scene

Image RegistrationLecture Demons Registration: Type 1 Previous Field Incremental Field Next Field Iterations Gaussian Smoothin g

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

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

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

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

Image RegistrationLecture Demons Registration: Type 1 Scene

Image RegistrationLecture Demons Registration: Type 1 Model

Image RegistrationLecture Demons Registration: Type 1 After Registration

Image RegistrationLecture Demons Registration: Type 1 Scene

Image RegistrationLecture Demons Registration: Type 1 Scene

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

Image RegistrationLecture Eventual Preprocessing - Histogram Matching Filter - Anisotropic Diffusion Filtering

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

Image RegistrationLecture End Enjoy ITK !