[Insight-users] Setting up FEM - Registration parameters

Markus Weigert m.weigert at fz-juelich.de
Thu Apr 6 07:36:01 EDT 2006


Hi,

after scanning the list on FEM - registration, I still have huge problems
to configure the paramters for my specific registration problem with the 
FEM - method.

I want to register two 3D MR 256^3 Thorax images with only small 
deformation.
The problem is, that however I set the parameters elasticity and rho / rhoc,
it doesn't deliver any useful results.

I started with elasticity 100000 (even higher than in the examples), but 
the image became completely
deformed. Also, it spends only 2 iterations in the process (has this 
something to do with
the energyreductionfactor???) and after the registration, the metric (I 
use SSD) is much bader then before.
I think this should not be the case, after what I understood about the 
theory behind this method.
Also with elasticity 1000.000, it still gets completely deformed.
With even higher the deformation decreases of course, but the 
missregistration of the lungs is never
caught (see middle of the images at the bottom of this message).

Please note, that I don't use a config file but set all the parameters 
manually.
Also I wonder what's the meaning of the parameters alpha and gamma 
(changing  these doesn't
seem to have a great effect on the result).

Indeed, I call the following methods to setup the FEMRegistrationFilter 
(public functions),
while I didn't find a function to set the scaling, which is also used in 
the config file (is this intended???):

  m_registrationFilter->SetFixedImage(m_fixedImage);
  m_registrationFilter->SetMovingImage(m_floatingImage);

  m_registrationFilter->DoMultiRes(true);   

  
m_registrationFilter->SetMeshPixelsPerElementAtEachResolution(this->m_meshPixPerElement);

  
m_registrationFilter->SetNumberOfIntegrationPoints(this->m_numberOfIntegrationPoints);

  m_registrationFilter->SetRho(this->m_rho);

  m_registrationFilter->SetElasticity(this->m_elasticity);
 
  m_registrationFilter->SetGamma(this->m_gamma);
 
  m_registrationFilter->SetWidthOfMetricRegion(this->m_widthOfMetricRegion);
  m_registrationFilter->ChooseMetric((int) this->m_metric);
  
m_registrationFilter->SetMaximumIterations(this->m_maxNumberOfIterations,0);

  m_registrationFilter->SetTimeStep(this->m_timestep);
  
m_registrationFilter->SetLineSearchMaximumIterations(this->m_maxLineSearchIterations);
  
m_registrationFilter->SetEnergyReductionFactor(this->m_energyReductionFactor);
 
  if(m_metric==3) m_registrationFilter->SetDescentDirectionMaximize();
  else{ m_registrationFilter->SetDescentDirectionMinimize();}
 
  m_registrationFilter->SetAlpha(this->m_alpha);
  m_registrationFilter->DoLineSearch(2);
  m_registrationFilter->EmployRegridding(1);
  m_registrationFilter->UseLandmarks(false);
  m_registrationFilter->SetWriteDisplacements(false);

Also what is about the material properties:
Does it make sense to change something here???

 itk::fem::MaterialLinearElasticity::Pointer m;
  m = itk::fem::MaterialLinearElasticity::New();
  m->GN = 0;                  // Global number of the material
  m->E = m_registrationFilter->GetElasticity();  // Young's modulus -- 
used in the membrane
  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 -- DONT CHOOSE 1.0!!
  m->RhoC = this->m_density;  // Density
 
  // Create the element type
  Element3DType::Pointer e1=Element3DType::New();
  e1->m_mat=dynamic_cast<itk::fem::MaterialLinearElasticity*>( m );
  m_registrationFilter->SetElement(e1);
  m_registrationFilter->SetMaterial(m);


Additionally, you can find some screenshots which show the problem and 
the RegistrationFilter
outputs here:

http://www.markusweigert.de/images/E10%5E8_FEMRegOutput_iter2.jpg
http://www.markusweigert.de/images/E10%5E8_FEMRegOutput_iter1.jpg
http://www.markusweigert.de/images/before_registration.jpg
http://www.markusweigert.de/images/E10%5E8_FEMRegOutput_iter2.jpg
http://www.markusweigert.de/images/result_E100000.jpg
http://www.markusweigert.de/images/result_E1000000.jpg
http://www.markusweigert.de/images/result_E10000000.jpg


I hope somebody will have the time to answer at least some of my questions.


Best regards,
Markus






-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://public.kitware.com/pipermail/insight-users/attachments/20060406/572b2c9a/attachment.htm


More information about the Insight-users mailing list