[elastix] combination of MI and edge information from Dr Pluim

M.Staring at lumc.nl M.Staring at lumc.nl
Fri Jan 27 09:51:17 CET 2012


Hi Severino,

Failure because of too many samples were outside of the moving image is usually an indication of not enough overlap. See also:

http://elastix.isi.uu.nl/FAQ.php#Q_TooManySamples

for a more detailed explanation.

Did you experiment with automatic initialization?

(AutomaticTransformInitialization "true")
(AutomaticTransformInitializationMethod "CenterOfGravity")
Or (AutomaticTransformInitializationMethod " GeometricalCenter")

As Stefan said, if the number of iterations are reached, that is a good thing; it does not mean failure. You can check the registration result, and see if the data is aligned. If not you may want to increase the number of iterations. You can also experiment with the AdaptiveStochasticGradientDescent (ASGD) optimizer, which automatically sets the parameter SP_a for you.

So, I suggest to play with the initialization and take one of the lower SP_a's which almost always runs till the end (MaximumNumberOfIterations reached) (or use ASGD), check the registration result based on the output image (result.0.mhd, and not the elastix.log file), and see what the new success percentage is.

HTH,
Marius

From: elastix-bounces at bigr.nl [mailto:elastix-bounces at bigr.nl] On Behalf Of Stefan Klein
Sent: donderdag 26 januari 2012 21:31
To: elastix at bigr.nl
Subject: Re: [elastix] combination of MI and edge information from Dr Pluim

Hi Severino,
just a small remark (I think Marius can give you a more detailed answer): It is not a problem if the MaximumNumberOfIterations is reached. In fact, it is the only stopping condition for the StandardGradientDescent optimizer :). Have you evaluated the registration accuracy?
If you increase SP_a too much, indeed you will get the error message that too many samples map outside the moving image buffer, which indicates misregistration.
Kind regards,
Stefan

On 26-1-2012 16:49, Severino Fernández Álvarez wrote:
Dear Marius,
I have tested multidimensional alfa-MI follwing your example scripts with my images (two satellite images of different sensors, as always). I used ITKtoolkit for computing the derivative images, the Principal components and even to normalize the results to floating point with null mean and fixed variance.

The parameters I used are the following ones (a slight variation of the examples of the paper):

// ********** Image Types
(FixedInternalImagePixelType "float")
(FixedImageDimension 2)
(MovingInternalImagePixelType "float")
(MovingImageDimension 2)
(UseDirectionCosines "true")

// ********** Components
(Registration "MultiResolutionRegistrationWithFeatures")
(FixedImagePyramid "FixedSmoothingImagePyramid" "FixedSmoothingImagePyramid" "FixedSmoothingImagePyramid" "FixedSmoothingImagePyramid" "FixedSmoothingImagePyramid" "FixedSmoothingImagePyramid")
(MovingImagePyramid "MovingSmoothingImagePyramid" "MovingSmoothingImagePyramid" "MovingSmoothingImagePyramid" "MovingSmoothingImagePyramid" "MovingSmoothingImagePyramid" "MovingSmoothingImagePyramid")
(Interpolator "BSplineInterpolator" "BSplineInterpolator" "BSplineInterpolator" "BSplineInterpolator" "BSplineInterpolator" "BSplineInterpolator")
(Metric "KNNGraphAlphaMutualInformation")
(Optimizer "StandardGradientDescent")
(ResampleInterpolator "FinalBSplineInterpolator")
(Resampler "DefaultResampler")
(Transform "TranslationTransform")

// ********** Pyramid
// Total number of resolutions
(NumberOfResolutions 2)
(FixedImageBSplineInterpolatorOrder 1)


// ********** Optimizer
// Maximum number of iterations in each resolution level:
(MaximumNumberOfIterations 600)
(SP_a 1000.0)
(SP_alpha 0.602)
(SP_A 50.0)

// ********** Metric
(Alpha 0.99)
(AvoidDivisionBy 0.0000000001)
(TreeType "KDTree")
(BucketSize 50)
(SplittingRule "ANN_KD_STD")
(ShrinkingRule "ANN_BD_SIMPLE")
(TreeSearchType "Standard")
(KNearestNeighbours 5)
(ErrorBound 10.0)

// ********** Several
(WriteTransformParametersEachIteration "false")
(WriteTransformParametersEachResolution "true")
(WriteResultImageAfterEachResolution "false")
(WriteResultImage "false")
(CompressResultImage "true")
(ResultImageFormat "mhd")
(ShowExactMetricValue "false")
(ErodeMask "true")

// ********** ImageSampler
//Number of spatial samples used to compute the mutual information in each resolution level:
(ImageSampler "MultiInputRandomCoordinate")
(NumberOfSpatialSamples 5000)
(NewSamplesEveryIteration "true")
(UseRandomSampleRegion "false")

// ********** Interpolator and Resampler
//Order of B-Spline interpolation used in each resolution level:
(BSplineInterpolationOrder 1)
//Order of B-Spline interpolation used for applying the final deformation:
(FinalBSplineInterpolationOrder 3)
//Default pixel value for pixels that come from outside the picture:
(DefaultPixelValue 0)


In all cases either the maximum number of iterations was reached or it failed because too many samples were outside of the moving image. I modified mainly the SP_a parameter, either increasing or lowering it, but increasing it the second failure case (too many samples outside image buffer) occurred always and lowering it the first case occurred always. I was not able to find a working value. Perhaps this extreme behaviour suggest to you a possible way for me to find a robust set of parameters.

I even tried taking less principal components, but the case reproduced even if I used just the original data alone, without derivatives. The problem does not seem to be in the multidimensional data. I wonder if the problem lies in the optimizer itself, that for some for me still unknown reason is not appropiate for my imagery, because it seems to work for medicine imagery.

Just as a comment, I use also another software package (Orfeo Toolbox -OTB) also derived from ITK and with it, with a 1+1 evolutionary optimizer, I get some correct results. The images are approximately 1200x1300 and I just partition them in squares of 300x300, and register them with a translation transform. After that, I interpolate a transform from these local translation data. Using the mentioned optimizer, from 10 squares I get a correct match in approximately 30% of the cases. This was the reason for looking for a more robust approach, and I thought that multidimensional alfa-entropy would perhaps improve this 30% correct registration. Before trying with elastix, what I did with OTB was just to perform a second registration with two edge-extracted images from the original ones. Here the success rate was also approximately 30%, but the matched squares were not exactly the same, so that combining both results the success rate increased up to 50% appoximately. But I found the multidimensional alfa-entropy a much more elegant and rigourous, as well as theoretically sophisticated and well founded approach. Briefly said: the method of entropic graphs is just a wonderful idea.

Do you have any suggestion as to what could I do to try that the method of multidimensional alfa-entropy works with my images?

Thank you in advance



Severino Fernandez
Instituto Nacional de Tecnica Aeroespacial (INTA)
Departamento de Observación de la Tierra, Teledetección y Atmósfera
Ctra de Ajalvir Km 4
28850 Torrejon de Ardoz
Spain
Tel +34915206362
www.inta.es<https://nemesis.inta.es/,DanaInfo=.awxyCmszhHn2+>

-----<M.Staring at lumc.nl><mailto:M.Staring at lumc.nl> escribió: -----
Para: <fdezas at inta.es><mailto:fdezas at inta.es>
De: <M.Staring at lumc.nl><mailto:M.Staring at lumc.nl>
Fecha: 10/01/2012 13:57
cc: <elastix at bigr.nl><mailto:elastix at bigr.nl>
Asunto: RE: RE: [elastix] combination of MI and edge information from Dr Pluim
Dear Severino,

Multi-dimensional alpha-MI was indeed implemented in elastix using k-nearest neighbour graphs. Some useful links:

Paper: http://elastix.isi.uu.nl/marius/publications/2009_j_TMI_b.html <https://nemesis.inta.es/marius/publications/,DanaInfo=.aemcvxn3Gq1sK67N21+2009_j_TMI_b.html>
Wiki: http://elastix.bigr.nl/wiki/index.php/Par0005 <https://nemesis.inta.es/wiki/index.php/,DanaInfo=.aemcvxn3Gjrq2L0z+Par0005>
Feature creation: https://github.com/ITKTools/ITKTools <https://nemesis.inta.es/ITKTools/,DanaInfo=.agjvkygFjwv,SSL+ITKTools>

Especially in the wiki you can find exactly how to call elastix in order to use this metric.

Good luck and let us know if you have further questions,

Marius

From: Severino Fernández Álvarez [mailto:fdezas at inta.es]
Sent: dinsdag 10 januari 2012 13:30
To: Staring, M. (LKEB)
Cc: elastix at bigr.nl<mailto:elastix at bigr.nl>
Subject: Re: RE: [elastix] combination of MI and edge information from Dr Pluim

Dear Marius,
as I have just recently been aware of multidimensional MI, I had not read yet your paper "Registration of Cervical MRI Using Multifeature Mutual Information", in fact I found it just today in the morning.
Did you implement this method into elastix? It seems even more powerful than the previous of Dr Pluim, with the many spatial features you use and the alfa-Rény entropy allowing to treat more dimensions.
I would like to apply these methods to the data I am processing using OTB-ITK, just to see if the number of failure cases decreases. For these tests any implementation would do, even in Matlab.
If the results with my data improve significantly using multidimensional MI, then it would be worth integrating it into OTB (the earth observation adaptation of ITK by CNES).
Best regards
Severino Fernandez
Instituto Nacional de Tecnica Aeroespacial (INTA)
Departamento de Observación de la Tierra, Teledetección y Atmósfera
Ctra de Ajalvir Km 4
28850 Torrejon de Ardoz
Spain
Tel +34915876637
www.inta.es <https://nemesis.inta.es/,DanaInfo=.awxyCmszhHn2+>

-----< M.Staring at lumc.nl <mailto:M.Staring at lumc.nl> > escribió: -----
Para: < fdezas at inta.es <mailto:fdezas at inta.es> >, < elastix at bigr.nl <mailto:elastix at bigr.nl> >
De: < M.Staring at lumc.nl <mailto:M.Staring at lumc.nl> >
Fecha: 10/01/2012 12:43
Asunto: RE: [elastix] combination of MI and edge information from Dr Pluim
Dear Severino,

Dr. Pluim's has not been implemented in elastix; I don't know of any plans to do so. Same for the regional MI metric. You may want to contact the authors if they have code to share. Alternatively, you may implement it yourself, at which we can try to help with pointers.

Best regards,

Marius Staring

From: elastix-bounces at bigr.nl <mailto:elastix-bounces at bigr.nl> [mailto:elastix-bounces at bigr.nl] <mailto:[mailto:elastix-bounces at bigr.nl]> On Behalf Of Severino Fernández Álvarez
Sent: dinsdag 10 januari 2012 7:52
To: elastix at bigr.nl <mailto:elastix at bigr.nl>
Subject: [elastix] combination of MI and edge information from Dr Pluim

I wanted just to know if the method published by Dr Pluim on combination of Mutual Information and edge information has been implemented by anybody within elastix, or if it is within the plans of implementation.
My problem is that MI fails sometimes when applied to earth observation imagery, and I wanted to test how much this failure rate reduces when using the approach from Dr Pluim, that seems very interesting. I did not want to code the method if it is already available before evaluating if it helps to solve the problem.
In the same line I wanted to ask the same question about the Regional Mutual Information proposed by Russakoff.
Best regards
Severino Fernandez
Instituto Nacional de Tecnica Aeroespacial (INTA)
Departamento de Observación de la Tierra, Teledetección y Atmósfera
Ctra de Ajalvir Km 4
28850 Torrejon de Ardoz
Spain
Tel +34915876637
www.inta.es <https://nemesis.inta.es/,DanaInfo=.awxyCmszhHn2+>






_______________________________________________

elastix mailing list

elastix at bigr.nl<mailto:elastix at bigr.nl>

http://lists.bigr.nl/mailman/listinfo/elastix
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.bigr.nl/pipermail/elastix/attachments/20120127/c2cda2f5/attachment.html>


More information about the Elastix mailing list