csci 6971: image registration lecture 27: fem-based methods april 23, 2004

Post on 11-Jan-2016

48 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

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 Presentation

TRANSCRIPT

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 !

top related