Download presentation
Presentation is loading. Please wait.
1
ITK Deformable Registration
Finite Elements Methods
2
Open 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 (AllenInstitue) Of course, any errors… are mine.
3
Deformable Registration
Finite Element Methods for Deformable Registration
4
Deformable Transformation
y y Transform x x Fixed Image Moving Image
5
Deformable Transformation
y y Transform x x Fixed Image Moving Image
6
Deformable Transformation
y x
7
Deformable Transformation
y x
8
FEM Grid y FEM Grid Resampling Grid x
9
FEM Grid y FEM Grid x
10
FEM Grid y FEM Grid Computed Deformation x
11
FEM Grid y FEM Grid Displacements Forces x
12
FEM Iterative Linear System
Finite Element Methods F Forces Vector N U Vector N Displacements K Regularization Matrix NxN
13
FEM Iterative Linear System
Finite Element Methods F K U F U = ● K
14
FEM Iterative Linear System
N = Number of Nodes N x N N N = ● K U F
15
FEM Iterative Linear System
Iteratively Solving a Linear System K U F = ● Linearization of a Physical Model Image based forces Node Displacements
16
FEM Energy Formulation
Find registration transformation that maximizes
17
FEM Energy Formulation
Benefits Intuitive; easier to express constraints Powerful numerical solutions available Optimality of solutions; easier to debug Limitations Difficult / overhead to implement
18
Deformable Registration
To solve the deformation, consider only displacements of the form
19
Deformable Registration
Linear Elements
20
Deformable Registration
α1 φ1 Element Shape Function
21
Deformable Registration
Element α2 φ2 Shape Function
22
Deformable Registration
α3 φ3 Element Shape Function
23
Deformable Registration
u α3 φ3 α1 φ1 Element α2 φ2 Shape Functions
24
Deformable Registration
Higher Order Elements
25
Deformable Registration
α1 φ1 Element Shape Function
26
Deformable Registration
α4 φ4 Element Shape Function
27
Deformable Registration
Element α2 φ2 Shape Function
28
Deformable Registration
φ5 α5 Element Shape Function
29
Deformable Registration
α3 φ3 Element Shape Function
30
Deformable Registration
φ6 α6 Element Shape Function
31
Deformable Registration
α4 φ4 u α3 φ3 α1 φ1 α6 φ6 Element α5 φ5 α2 φ2 Shape Functions
32
Deformable Registration
Substitute uh into E, then minimizing with respect to αi:
33
BSplines Grid & Image Grid
Calculation are made in an Element by Element basis
34
BSplines Grid & Image Grid
Elements are connected at Nodes at which the displacement is solved
35
BSplines Grid & Image Grid
Efficiency is gained by elemental computation
36
BSplines Grid & Image Grid
Domain subdivision (Mesh) can be tailored to the underlying geometry of the image.
37
FEM Solver Start Iteration Loop Begin Loop by making physical assumptions and then taking the derivative of the similarity metric. End loop when the solution stabilizes. Physical Assumptions New Solution Solve Image Metric Derivative End Iteration Loop
38
K U F FEM Solver Start Iteration Loop Physical Assumptions Solve
New Solution Solve U Image Metric Derivative F End Iteration Loop
39
If ( Unew – Uold) < ε then Stop
FEM Solver Start Iteration Loop K Unew U F K F U ● = If ( Unew – Uold) < ε then Stop
40
KU=F in Code itk::FEMRegistrationFilter::IterativeSolve()
itk::FEMSolver::AssembleK() FEMSolver :: AddSolution() FEMSolver:: Solve() FEMSolver::AssembleF() calls FEMImageMetricLoad::Fe()
41
FEM-Based Registration Options
Element Type Triangles Quadrilaterals Hexahedra Tetrahedra
42
FEM-Based Registration Options
Continuum / Physical Model Linear elasticity Membrane Other specialized
43
FEM-Based Registration Options
Mesh geometry Uniform grid vs. adaptive Anatomy-specific mesh
44
FEM-Based Registration Options
Metric Mean square Normalized cross-correlation Mutual information Pattern intensity
45
Introduction to the ITK Finite Element Library
ITK FEM Library Introduction to the ITK Finite Element Library
46
ITK 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
47
ITK FEM Library Applications Mechanical modeling Image registration
48
FEM Basics Mesh Loads Boundary conditions Nodes Elements
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
49
ITK 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
50
Loads Classes that apply external forces (loads) to elements
Various types Easily extensible
51
Solvers Provide functionality to obtain and process the solution
Different solution methods different solver classes Static problems Time dependent - dynamic problems
52
Solvers 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
53
Setting 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
54
Deformable Registration
FEM-Base Registration Parameters
55
Parameter 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 % Similarity metric (0=mean sq, 1=ncc, 2=pattern int, 3=MI) % Alpha % DescentDirection % DoLineSearch (0=never, 1=always, 2=if needed) 1.e1 % TimeStep 1.e-15 % Energy Reduction Factor
56
Parameter File : Part 2 % ----------------------------------
% Information about the image inputs % ImageDimension % Nx (image x dimension) % Ny (image y dimension) % Nz (image z dimension - not used if 2D) brain_slice1.mhd % ReferenceFileName brain_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. % UseLandmarks? % LandmarkFileName brain_result % ResultsFileName (prefix only) % WriteDisplacementField? brain_disp % DisplacementsFileName (prefix only) % ReadMeshFile? brain_mesh.fem % MeshFileName END
57
Configuring 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);
58
Configuring Parameters #2
this->SetDescentDirectionMinimize(); or this->SetDescentDirectionMaximize(); this->DoLineSearch( n ); // n = 0, 1, 2 this->SetTimeStep( t ); this->SetEnergyReductionFactor( fbuf );
59
Configuring 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;
60
Deformable Registration
FEM-Based Registration: Writing the Code ../ Insight / Examples / Registration / DeformableRegistration1.cxx
61
Header Declarations #include "itkImageFileReader.h"
#include "itkImageFileWriter.h“ #include "itkFEM.h" #include “itkFEMRegistrationFilter.h"
62
Type 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;
63
Registering 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 );
64
Input / Output RegistrationType::Pointer registration = RegistrationType::New(); registration->SetConfigFileName( paramname ); registration->ReadConfigFile();
65
Material and Element Setup
// Create the material properties itk::fem::MaterialLinearElasticity::Pointer m; m = itk::fem::MaterialLinearElasticity::New(); m->GN = 0; m->E = registration->GetElasticity(); m->A = 1.0; // Cross-sectional area m->h = 1.0; // Thickness m->I = 1.0; // Moment of inertia m->nu = 0.; // Poisson's ratio m->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 );
66
Running the Registration
registration->RunRegistration(); registration->WriteWarpedImage(); if ( registration->GetWriteDisplacements() ) { registration->WriteDisplacementField( 0 ); // x registration->WriteDisplacementField( 1 ); // y registration->WriteDisplacementFieldMultiComponent(); }
67
FEM - Deformable Registration
Example #1
68
Fixed Image
69
Moving Image
70
Registered Image
71
Registered Image
72
FEM - Deformable Registration
Example #2
73
Fixed Image
74
Moving Image
75
Registered Image
76
Registered Image
77
FEM - Deformable Registration
Example #3
78
Fixed Image
79
Moving Image
80
Registered Image
81
Registered Image
82
FEM - Deformable Registration
Example #4 Elasticity value was doubled
83
Fixed Image
84
Moving Image
85
Registered Image
86
Registered Image
87
Enjoy ITK !
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.