[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