[Insight-users] deformable registration very inaccurate

c23562 c.popko at gmx.de
Mon Jul 20 03:43:38 EDT 2009


Hi All, 

I use ITK for image registration of 4D-Ultrasound-data (human heart). 
After separating single 3D volumes and using a 3x3 median filter i try to
register two consecutive volumes to get deformation fields. Within this
deformation fields i search the path/course of a seedpoint. Therefore I
fetch the deformation vector out of the first field on the interesting
position. With the result i make a trilinear interpolation with the
neigbouring deformation vectors of the next field. And so on. 

I have two problems: 

* The visualization shows that the resulting course is not what i expected.
It is very inaccurate and the endpoint is a few pixel away from the right
position. If i follow my seedpoint by hand during time and compare it with
the computated movement of the seedpoint i observe that the movement is to
sluggish/slow. The direction is quite ok. 

* The computation of a single deformation field takes averaged 350 seconds
on a usual PC (2x2.14 GHz, 3,37GB RAM, WinXP, example for volume: dimension
132x205x134 of unsigned char). I think it is pretty long, isnt it?



The algorithm i choosed is a multiresolution registration with Mattes
MutualInformation Metric, LinearInterpolation, BSplinesTransform and LBFGSB
optimizer. 

Parameters: 

  gridSizeOnImage.Fill( 5 );
  gridBorderSize.Fill( 3 );    // Border for spline order = 3 ( 1 lower, 2
upper )
  totalGridSize = gridSizeOnImage + gridBorderSize;
  bsplineRegion.SetSize( totalGridSize );

  metric->SetNumberOfHistogramBins( 128 );
  metric->SetNumberOfSpatialSamples( 50000 );

  optimizer->SetCostFunctionConvergenceFactor( 1e+1 );
  optimizer->SetProjectedGradientTolerance( 1e-10 ); 
  optimizer->SetMaximumNumberOfIterations( 500 );
  optimizer->SetMaximumNumberOfEvaluations( 500 );
  optimizer->SetMaximumNumberOfCorrections( 5 );

  (found this values for optimizer on
http://osdir.com/ml/lib.itk.user/2004-11/msg00103.html)

  registration->SetNumberOfLevels( 3 );

Who has experiences with 3D/3D ultrasound registration? What would be a
better configuration or parameters? 


I changed the optimizer to regularStepdecentGradient optimizier. Now the
computation is much faster. Averaged 95 seconds per deformation field. 

  optimizer->SetMaximumStepLength( 1.0 ); 
  optimizer->SetMinimumStepLength(  0.01 );
  optimizer->SetRelaxationFactor( 0.7 );  
  optimizer->SetNumberOfIterations( 50 ); 

After that i vary all values of this optimzer without greater variance in
the result.


Btw: Does the metric has to be minimalized in genenaral? Even negative
values? Or minimalize absolute values?


Another question: The vectors in the deformation fields looks like
organized. A little bit like a cornfield when the wind is blowing over it.
They have curves but neighbouring vectors have nearly the same direction.
With other (non Bspline) algorithmes i got other deformation fields. Those
with vectors orthogonal towards edges. Do i have this inaccuracy because my
deformation fields are wrong?


Best regards, 
Christian.
-- 
View this message in context: http://www.nabble.com/deformable-registration-very-inaccurate-tp24565292p24565292.html
Sent from the ITK - Users mailing list archive at Nabble.com.



More information about the Insight-users mailing list