[Insight-users] 3d Deformable Registration problem based on DeformableRegistration8
Luis Ibanez
luis.ibanez at kitware.com
Wed May 20 22:51:10 EDT 2009
Hi Albert,
Please try try using:
DeformableRegistration15.cxx
This example performs a sequence of
* Rigid
* Affine
* and two resolutions of
deformable registration
Please let us know what you find,
Thanks
Luis
---------------------
Albert Gubern wrote:
> Hi again,
>
> I've changed my code using RegularStepGradientDescentOptimizer instead
> of LBFGSBOptimizer.
>
> Using brain phantom volume, I had good visual results (the moving image
> is transformed looking like fixed image) with LBFGSBOptimizer, and the
> final value of the metric was -0.836697.
>
> Starting Registration
> 0 -0.580566 0 0
> 0 -0.580643 0 0
> 0 -0.583835 0 0
> 0 -0.583835 0.000114794 0
> 1 -0.598343 0.000114794 0
> 1 -0.598343 7.34998e-05 0
> 2 -0.617556 7.34998e-05 0
> 2 -0.617556 0.000133695 0
> (...)
> 83 -0.836697 0.000103487 0
> 83 -0.836697 0.000103487 0
> 83 -0.836686 0.000103487 0
> 83 -0.836697 0.000103487 0
> 83 -0.836697 0.000103487 0
> 83 -0.836686 0.000103487 0
> 83 -0.836697 0.000103487 0
> 83 -0.836697 0.000103487 0
>
> On the other hand, using RegularStepGradientDescentOptimizer the final
> value of the metric with 800 iterations is -0.638617 and the resampled
> image is not good and only is deformed in their first and last slices.
> With MRI prostate volume I had the same problem: the transformation only
> deforms the first and the last slice of the volume.
>
> Starting Registration
> 0 -0.580566
> 1 -0.57976
> 2 -0.579975
> 3 -0.579813
> 4 -0.580218
> 5 -0.580442
> (...)
> 793 -0.637725
> 794 -0.637952
> 795 -0.637915
> 796 -0.637942
> 797 -0.638316
> 798 -0.637498
> 799 -0.638617
>
> I've set the stepLength of the optimizer but I haven't achieved better
> metric values progress in each step of the registration. Also, I don't
> understand why the output image only is transformed in the first and the
> last slice.
>
> So, having in consideration that with LBFGSBOptimizer I have good
> results registering the brain phantom volume, I would like to know how
> can I tune this optimizer in order to work with MRI prostate images.
>
> If we need more information about my code, don't doubt to ask me.
>
> Thanks.
>
> Albert
>
> 2009/5/12 Luis Ibanez <luis.ibanez at kitware.com
> <mailto:luis.ibanez at kitware.com>>
>
> Hi Albert,
>
> It turned out in practice that the LBFGSBOptimizer is not as superior
> as it may have been assumed.
>
> Lately we have simply used the RegularStepGradientDescentOptimizer
> with reasonable results.
>
> See for example:
>
> Insight/Examples/Registration/DeformableRegistration15.cxx
>
> In general,
> any claims saying than some component is
>
> "The Best"
>
> should be taken with a lot of suspicion.
>
>
> Such claims are good only for publishing papers in traditional
> Journals and Conferences that do not exercise reproducibility.
> You can not rely on such sources when you are working on
> serious applications.
>
>
> Don't hesitate to experiment with other components of the
> registration framework.
>
> In many cases, the challenge is not so much about what components
> to use, but about how to fine-tune their parameters for the problem
> at hand.
>
>
> Please let us know what you find,
>
>
> Thanks
>
>
> Luis
>
>
> -------------------------
> On Tue, May 12, 2009 at 11:21 AM, Albert Gubern <bertkrek at gmail.com
> <mailto:bertkrek at gmail.com>> wrote:
> > Hi,
> >
> > I've modified the example DeformableRegistration8.cxx in order to
> do a 3D
> > DeformableRegistration. This example uses
> MattesMutualInformationMetric,
> > BSplineDeformableTransform and LBFGSBOptimizer.
> >
> > I tested the code with a brain phantom generated with Matlab. The
> original
> > volume is deformed using Matlab b-spline deformation based on
> this routine
> > http://www.mathworks.com/matlabcentral/fileexchange/20057, and I
> want to use
> > the deformable registration of ITK to recover the deformation.
> The next link
> > shows two checkerboard of one slice, before and after the succesful
> > registration:
> >
> http://img140.imageshack.us/img140/1831/phantomdeformableregist.png. The
> > original volume is set as the fixed image and the deformed
> phantom as the
> > moving.
> > - Mostra el text citat -
> >
> > The output of the execution is:
> >
> > Starting Registration
> > 0 -0.579387 0 0
> > 0 -0.581355 0 0
> > 0 -0.584345 0 0
> > 0 -0.584345 6.33911e-05 0
> > 1 -0.603649 6.33911e-05 0
> > 1 -0.603649 6.41689e-05 0
> > 2 -0.624884 6.41689e-05 0
> > 2 -0.624884 7.76054e-05 0
> > 3 -0.638071 7.76054e-05 0
> > 3 -0.638071 6.32524e-05 0
> > 4 -0.655438 6.32524e-05 0
> > 4 -0.655438 7.51525e-05 0
> > 5 -0.677776 7.51525e-05 0
> > 5 -0.677776 6.37494e-05 0
> > 6 -0.696669 6.37494e-05 0
> > 6 -0.696669 5.09743e-05 0
> > 7 -0.713613 5.09743e-05 0
> > 7 -0.713613 5.48518e-05 0
> > ... (60 iterations more)
> > 67 -0.854863 4.01611e-05 0
> > 67 -0.854863 4.01611e-05 0
> > 67 -0.854863 4.01611e-05 0
> > 67 -0.854863 4.01611e-05 0
> > Probe Tag Starts Stops Time (s)
> > Registration 1 1 3289.35
> >
> > Next step was to test the same code with prostate MRI images but the
> > registration doesn't work. The original volume is a central
> region of MRI to
> > focus the registration on the prostate
> > (http://img145.imageshack.us/img145/200/mrireal.png), and the same
> > deformation, that was applied to the phantom test, is used to
> deform the
> > original prostate. The goal of the registration is the same:
> recovering the
> > deformation. The next link is a checkerboard of one slice of the
> volume to
> > show that fixed and moving images look different enough
> > (http://img26.imageshack.us/img26/8905/im011.png).
> >
> > In this test the program the registration stops too early doing
> only few
> > iterations and the InfinityNormOfProjectedGradient is always zero:
> >
> > Starting Registration
> > 0 -0.742878 0 0
> > 0 -0.722791 0 0
> > 0 -0.721167 0 0
> > 0 -0.721134 0 0
> > 0 -0.733701 0 0
> > 0 -0.733701 0 0
> > 0 -0.742878 0 0
> > 0 -0.742878 0.000122748 0
> > Probe Tag Starts Stops Time (s)
> > Registration 1 1 97.3459
> >
> > I have tested the registration using different values of bins
> > (32,64,100,etc), % samples (100, 50, ...), using the original
> > (0.46875,0.46875,0.46875) and the unitary spacing, different
> number of grids
> > (from 5 to 50) and the parameters of the LBFGSBOptimizer are the
> following:
> >
> > double costFunctionconvergenceFactor = 1.e7;
> > double projectedGradientTolerance = 1e-6;
> > int maxNumberOfIterations = 500;
> > int maxNumberOfEvaluations = 500 ;
> > int maxNumberOfCorrections = 5;
> >
> > Among other tests, I've also changed the metric to
> MeanSquareMetric to know
> > if mattes mutual information metric is the problem or,
> separately, the fixed
> > and moving image have been binarized to reduce the information of
> each
> > image. The output has been the same.
> >
> > All the tests seem to show that the problem is the optimizer, but
> I don't
> > know how I can solve it because in some posts in the mailing list
> I've read
> > that it is the best optimizer for deformable registration. Should
> I change
> > it for another one (Regular or LBFGS)? Any other idea?
> >
> > Thanks in advance.
> >
> > Albert
> > _____________________________________
> > Powered by www.kitware.com <http://www.kitware.com>
> >
> > Visit other Kitware open-source projects at
> > http://www.kitware.com/opensource/opensource.html
> >
> > Please keep messages on-topic and check the ITK FAQ at:
> > http://www.itk.org/Wiki/ITK_FAQ
> >
> > Follow this link to subscribe/unsubscribe:
> > http://www.itk.org/mailman/listinfo/insight-users
> >
> >
>
>
>
>
> --
> Albert
More information about the Insight-users
mailing list