csci 6971: image registration lecture 27: fem-based methods april 23, 2004
DESCRIPTION
CSci 6971: Image Registration Lecture 27: FEM-Based Methods April 23, 2004. Prof. Chuck Stewart, RPI Dr. Luis Ibanez, Kitware. Open Source Disclaimer. Many of the slides in this talk were taken from the ITK course presented at MICCAI 2003 by. - PowerPoint PPT PresentationTRANSCRIPT
CSci 6971: Image Registration Lecture 27: FEM-Based Methods
April 23, 2004
CSci 6971: Image Registration Lecture 27: FEM-Based Methods
April 23, 2004
Prof. Chuck Stewart, RPIDr. Luis Ibanez, KitwareProf. Chuck Stewart, RPIDr. Luis Ibanez, Kitware
Image Registration Lecture 27 2
Open Source DisclaimerOpen Source Disclaimer
Many of the slides in this talk were taken from the ITK course
presented at MICCAI 2003 by
Dr. James Gee (U. Penn)Brian Avants (U. Penn)Tessa Sundaram (U. Penn)Dr. Lydia Ng (Insightful Corp.)
Of course, any errors… are mine.
Image Registration Lecture 27 3
Deformable RegistrationDeformable Registration
Finite Element Methods
for
Deformable Registration
Image Registration Lecture 27 4
Deformable TransformationDeformable Transformation
y
Fixed Image
Transform
x
y
Moving Image
x
Image Registration Lecture 27 5
Deformable TransformationDeformable Transformation
y
Fixed Image
Transform
x
y
Moving Image
x
Image Registration Lecture 27 6
Deformable TransformationDeformable Transformation
y
x
Image Registration Lecture 27 7
Deformable TransformationDeformable Transformation
y
x
Image Registration Lecture 27 8
FEM GridFEM Grid
y
x
FEMGrid
ResamplingGrid
Image Registration Lecture 27 9
FEM GridFEM Grid
y
x
FEMGrid
Image Registration Lecture 27 10
FEM GridFEM Grid
y
x
FEMGrid
ComputedDeformation
Image Registration Lecture 27 11
FEM GridFEM Grid
y
x
FEMGrid
Forces Displacements
Image Registration Lecture 27 12
FEM Iterative Linear SystemFEM Iterative Linear System
Finite Element Methods
Forces
Displacements
Regularization
F
U
K
Vector N
Vector N
Matrix NxN
Image Registration Lecture 27 13
FEM Iterative Linear SystemFEM Iterative Linear System
Finite Element Methods
F
U
K
FUK● =
Image Registration Lecture 27 14
FEM Iterative Linear SystemFEM Iterative Linear System
N = Number of Nodes
FUK
N x N N N● =
Image Registration Lecture 27 15
FEM Iterative Linear SystemFEM Iterative Linear System
Iteratively Solving a Linear System
FUK● =
Image based forces
Linearizationof a Physical
ModelNode
Displacements
Image Registration Lecture 27 16
FEM Energy FormulationFEM Energy Formulation
( ) similarity( ( ), ( ))
smoothness ( )
deformation ( )
t t tE u I x I x u
u
u
Find registration transformation that maximizes
Image Registration Lecture 27 17
FEM Energy FormulationFEM Energy Formulation
Benefits
Intuitive; easier to express constraints Powerful numerical solutions available Optimality of solutions; easier to debug
Limitations
Difficult / overhead to implement
Image Registration Lecture 27 18
Deformable RegistrationDeformable Registration
( ) ( )h i iu x s
To solve the deformation, consider only displacements of the form
Image Registration Lecture 27 19
Deformable RegistrationDeformable Registration
Linear Elements
Image Registration Lecture 27 20
Deformable RegistrationDeformable Registration
( ) ( )h i iu x s
φ1 Element
α1
Shape Function
Image Registration Lecture 27 21
Deformable RegistrationDeformable Registration
( ) ( )h i iu x s
φ2
Element
α2 Shape Function
Image Registration Lecture 27 22
Deformable RegistrationDeformable Registration
( ) ( )h i iu x s
φ3
Element
α3
Shape Function
Image Registration Lecture 27 23
Deformable RegistrationDeformable Registration
( ) ( )h i iu x s
φ3
Elementφ1
φ2
u
α2
α3
Shape Functions
α1
Image Registration Lecture 27 24
Deformable RegistrationDeformable Registration
Higher Order Elements
Image Registration Lecture 27 25
Deformable RegistrationDeformable Registration
( ) ( )h i iu x s
φ1 Element
α1
Shape Function
Image Registration Lecture 27 26
Deformable RegistrationDeformable Registration
( ) ( )h i iu x s
φ4
Element
α4
Shape Function
Image Registration Lecture 27 27
Deformable RegistrationDeformable Registration
( ) ( )h i iu x s
φ2
Element
α2 Shape Function
Image Registration Lecture 27 28
Deformable RegistrationDeformable Registration
( ) ( )h i iu x s
φ5
Elementα5
Shape Function
Image Registration Lecture 27 29
Deformable RegistrationDeformable Registration
( ) ( )h i iu x s
φ3
Element
α3
Shape Function
Image Registration Lecture 27 30
Deformable RegistrationDeformable Registration
( ) ( )h i iu x s
φ6
Element
α6
Shape Function
Image Registration Lecture 27 31
Deformable RegistrationDeformable Registration
( ) ( )h i iu x s
φ3
Elementφ1
φ2
u
α2
α3
Shape Functions
α1 α6α5
α4
φ5
φ6
φ4
Image Registration Lecture 27 32
Deformable RegistrationDeformable Registration
0, 1, ,i
Ei n
Substitute uh into E, then minimizing with respect to αi:
( ) similarity( ( ), ( ))
smoothness ( )
deformation ( )
t t tE u I x I x u
u
u
Image Registration Lecture 27 33
BSplines Grid & Image GridBSplines Grid & Image Grid
Calculation
are made in
an Element
by Element
basis
Image Registration Lecture 27 34
BSplines Grid & Image GridBSplines Grid & Image Grid
Elements are connected at Nodes at which the displacement is solved
Image Registration Lecture 27 35
BSplines Grid & Image GridBSplines Grid & Image Grid
Efficiency is gained by elemental computation
Image Registration Lecture 27 36
BSplines Grid & Image GridBSplines Grid & Image Grid
Domain subdivision (Mesh) can be tailored to the underlying geometry of the image.
Image Registration Lecture 27 37
FEM SolverFEM Solver
Image MetricDerivative
Physical Assumptions
SolveNewSolution
Start Iteration Loop
End Iteration Loop
Begin Loop by making physical assumptions and then taking the derivative of the similarity metric.
End loop when the solution stabilizes.
Image Registration Lecture 27 38
FEM SolverFEM Solver
Image MetricDerivative
Physical Assumptions
SolveNewSolution
Start Iteration Loop
End Iteration Loop F
U
K
UU
U
Old
New
Image Registration Lecture 27 39
FEM SolverFEM Solver
F
KUUnew
Start Iteration Loop
If ( Unew – Uold) < ε then Stop
UU
U
Old
New
K FU● =
Image Registration Lecture 27 40
KU=F in CodeKU=F in Code
FEMSolver::AssembleF()
calls
FEMImageMetricLoad::Fe()
itk::FEMSolver::AssembleK()
FEMSolver::Solve()
FEMSolver ::
AddSolution()
itk::FEMRegistrationFilter::IterativeSolve()
Image Registration Lecture 27 41
FEM-Based Registration OptionsFEM-Based Registration Options
Element Type
Triangles Quadrilaterals Hexahedra Tetrahedra
Image Registration Lecture 27 42
FEM-Based Registration OptionsFEM-Based Registration Options
Continuum / Physical Model
Linear elasticity Membrane Other specialized
Image Registration Lecture 27 43
FEM-Based Registration OptionsFEM-Based Registration Options
Mesh geometry
Uniform grid vs. adaptive Anatomy-specific mesh
Image Registration Lecture 27 44
FEM-Based Registration OptionsFEM-Based Registration Options
Metric
Mean square Normalized cross-correlation Mutual information Pattern intensity
Image Registration Lecture 27 45
ITK FEM LibraryITK FEM Library
Introduction to the ITK
Finite Element Library
Image Registration Lecture 27 46
ITK FEM LibraryITK FEM Library
Library for solving general FEM problems
Object oriented C++ classes are used to
specify the geometry and behavior of the elements apply external forces and boundary conditions solve problem and post-process the results
Image Registration Lecture 27 47
ITK FEM LibraryITK FEM Library
Applications
Mechanical modeling Image registration
Image Registration Lecture 27 48
FEM BasicsFEM Basics
Mesh Nodes
Points in space where solutions are obtained
Elements e.g., 2-D triangular elements
Loads e.g., gravity (body) load
Boundary conditions e.g., nodes fixed in space
Image Registration Lecture 27 49
ITK FEM ElementsITK FEM Elements
Core of the library is the Element class Code is in two functionally independent parts
Geometry and Physics Arbitrarily combined to create new elements
Problem domain is specified by a mesh
Geometry Physics
Image Registration Lecture 27 50
LoadsLoads
Classes that apply external forces (loads) to elements Various types Easily extensible
Image Registration Lecture 27 51
SolversSolvers
Provide functionality to obtain and process the solution
Different solution methods different solver classes Static problems Time dependent - dynamic problems
Image Registration Lecture 27 52
SolversSolvers
Use linear system wrappers to link FEM classes to an external numeric library
Any numeric library can be used to solve the systems of linear equations in FEM problems
VNL and ITPACK currently supported
Image Registration Lecture 27 53
Setting Up a FEM ProblemSetting Up a FEM Problem
Four-step process Select element classes Discretize problem domain Specify boundary conditions Specify/Apply external loads
Two options Directly create proper objects in code Indirectly read object definitions from a file
Image Registration Lecture 27 54
Deformable RegistrationDeformable Registration
FEM-Base Registration
Parameters
Image Registration Lecture 27 55
Parameter File : Part 1Parameter File : Part 1
% ---------------------------------------------------------% Parameters for the single- or multi-resolution techniques% ---------------------------------------------------------1 % Number of levels in the multi-resolution pyramid (1 = single-res)1 % Highest level to use in the pyramid 1 1 % Scaling at lowest level for each image dimension 8 % Number of pixels per element 1.e5 % Elasticity (E) 1.e4 % Density (RhoC) 1. % Image energy scaling 4 % NumberOfIntegrationPoints 1 % WidthOfMetricRegion 25 % MaximumIterations
% -------------------------------% Parameters for the registration% -------------------------------0 1.0 % Similarity metric (0=mean sq, 1=ncc, 2=pattern int, 3=MI)1.0 % Alpha1 % DescentDirection2 % DoLineSearch (0=never, 1=always, 2=if needed)1.e1 % TimeStep1.e-15 % Energy Reduction Factor
Image Registration Lecture 27 56
Parameter File : Part 2Parameter File : Part 2
% ----------------------------------% Information about the image inputs% ----------------------------------2 % ImageDimension256 % Nx (image x dimension)256 % Ny (image y dimension)128 % Nz (image z dimension - not used if 2D)brain_slice1.mhd % ReferenceFileNamebrain_slice1warp.mhd % TargetFileName
% -------------------------------------------------------------------% The actions below depend on the values of the flags preceding them.% For example, to write out the displacement fields, you have to set% the value of WriteDisplacementField to 1.% -------------------------------------------------------------------0 % UseLandmarks?- % LandmarkFileNamebrain_result % ResultsFileName (prefix only)1 % WriteDisplacementField?brain_disp % DisplacementsFileName (prefix only)1 % ReadMeshFile?brain_mesh.fem % MeshFileName
END
Image Registration Lecture 27 57
Configuring Parameters #1Configuring Parameters #1
this->DoMultiRes(true);
this->m_NumLevels = nlev;this->m_MaxLevel = mlev; for (jj=0; jj < ImageDimension; jj++) { m_ImageScaling[jj] = dim;} for (jj=0; jj < this->m_NumLevels; jj++) { this->m_MeshPixelsPerElementAtEachResolution(jj) = p; this->SetElasticity(e, jj); this->SetRho(p, jj); this->SetGamma(g, jj); this->SetNumberOfIntegrationPoints(ip, jj); this->SetWidthOfMetricRegion(w, jj); this->SetMaximumIterations(mit, jj);}
Image Registration Lecture 27 58
Configuring Parameters #2Configuring Parameters #2
this->SetDescentDirectionMinimize();or
this->SetDescentDirectionMaximize();
this->DoLineSearch( n ); // n = 0, 1, 2 this->SetTimeStep( t );
this->SetEnergyReductionFactor( fbuf );
Image Registration Lecture 27 59
Configuring Parameters #3Configuring Parameters #3
this->m_ImageSize[0] = xdim;this->m_ImageSize[1] = ydim;if (dim == 3) this->m_ImageSize[2] = zdim;
this->SetReferenceFile( imgfile1 );this->SetTargetFile( imgfile2 );
this->UseLandmarks( true );this->SetLandmarkFile( lmfile ); this->SetResultsFile( resfile );
this->SetWriteDisplacements( true );this->SetDisplacementsFile( dispfile );
this->m_ReadMeshFile = true;this->m_MeshFileName = meshfile;
Image Registration Lecture 27 60
Deformable RegistrationDeformable Registration
FEM-Based Registration:
Writing the Code
../ Insight / Examples / Registration / DeformableRegistration1.cxx
Image Registration Lecture 27 61
Header DeclarationsHeader Declarations
#include "itkImageFileReader.h"
#include "itkImageFileWriter.h“
#include "itkFEM.h"
#include “itkFEMRegistrationFilter.h"
Image Registration Lecture 27 62
Type DefinitionsType Definitions
typedef itk::Image< unsigned char, 2 > fileImageType;
typedef itk::Image< float, 2 > ImageType;
typedef itk::fem::Element2DC0LinearQuadrilateralMembrane ElementType;
typedef itk::fem::Element2DC0LinearTriangularMembrane ElementType2;
typedef itk::fem::FEMRegistrationFilter< ImageType, ImageType > RegistrationType;
Image Registration Lecture 27 63
Registering ObjectsRegistering Objects
ElementType::LoadImplementationFunctionPointer fp1 = & itk::fem::ImageMetricLoadImplementation<
ImageLoadType >::ImplementImageMetricLoad;
DispatcherType::RegisterVisitor( (ImageLoadType*)0 , fp1 );
ElementType2::LoadImplementationFunctionPointer fp2 = & itk::fem::ImageMetricLoadImplementation<
ImageLoadType >::ImplementImageMetricLoad;
DispatcherType2::RegisterVisitor( (ImageLoadType*)0 , fp2 );
Image Registration Lecture 27 64
Input / OutputInput / Output
RegistrationType::Pointer registration = RegistrationType::New();
registration->SetConfigFileName( paramname );
registration->ReadConfigFile();
Image Registration Lecture 27 65
Material and Element SetupMaterial and Element Setup
// Create the material propertiesitk::fem::MaterialLinearElasticity::Pointer m;m = itk::fem::MaterialLinearElasticity::New();m->GN = 0;m->E = registration->GetElasticity();m->A = 1.0; // Cross-sectional aream->h = 1.0; // Thicknessm->I = 1.0; // Moment of inertiam->nu = 0.; // Poisson's ratiom->RhoC = 1.0; // Density // Create the element type ElementType::Pointer e1 = ElementType::New();e1->m_mat= dynamic_cast< itk::fem::MaterialLinearElasticity* >( m );registration->SetElement( e1 );registration->SetMaterial( m );
Image Registration Lecture 27 66
Running the RegistrationRunning the Registration
registration->RunRegistration();
registration->WriteWarpedImage();
if ( registration->GetWriteDisplacements() )
{
registration->WriteDisplacementField( 0 ); // x
registration->WriteDisplacementField( 1 ); // y
registration->WriteDisplacementFieldMultiComponent();
}
Image Registration Lecture 27 67
FEM - Deformable RegistrationFEM - Deformable Registration
Example #1
Image Registration Lecture 27 68
Fixed ImageFixed Image
Image Registration Lecture 27 69
Moving ImageMoving Image
Image Registration Lecture 27 70
Registered ImageRegistered Image
Image Registration Lecture 27 71
Registered ImageRegistered Image
Image Registration Lecture 27 72
FEM - Deformable RegistrationFEM - Deformable Registration
Example #2
Image Registration Lecture 27 73
Fixed ImageFixed Image
Image Registration Lecture 27 74
Moving ImageMoving Image
Image Registration Lecture 27 75
Registered ImageRegistered Image
Image Registration Lecture 27 76
Registered ImageRegistered Image
Image Registration Lecture 27 77
FEM - Deformable RegistrationFEM - Deformable Registration
Example #3
Image Registration Lecture 27 78
Fixed ImageFixed Image
Image Registration Lecture 27 79
Moving ImageMoving Image
Image Registration Lecture 27 80
Registered ImageRegistered Image
Image Registration Lecture 27 81
Registered ImageRegistered Image
Image Registration Lecture 27 82
FEM - Deformable RegistrationFEM - Deformable Registration
Example #4
Elasticity value was doubled
Image Registration Lecture 27 83
Fixed ImageFixed Image
Image Registration Lecture 27 84
Moving ImageMoving Image
Image Registration Lecture 27 85
Registered ImageRegistered Image
Image Registration Lecture 27 86
Registered ImageRegistered Image
Image Registration Lecture 27 87
EndEnd
Enjoy ITK !