[Insight-users] Deformable registration ITK 3.2 vs ITK 4.0

Alfredo Morales morales at creatis.insa-lyon.fr
Mon Feb 13 05:13:58 EST 2012


Hi,

I'm trying to make a deformable registration between two binary image in 
ITK 4.0 but I can't get a good result. I realized that the class 
BSplineDeformableTransform has been replaced by BSplineTransform in most 
of the examples in ITK 4.0, so I decided to evaluate if there is a 
change in the results between these versions. I made both compilations 
and run the example DeformableRegistratio4 using the specifies images in 
the Itk Software Guide 2.4.0 (RatLungSlice1 and RatLungSlice2).

I did the experiment and results are not the same, actually there are no 
iterations in the 4.0 version. However, when you see the output images 
of both versions they are quite similar but there is no way to compare 
them to the originals, they are both displaced to the right. Here you 
can see the results:

http://www.creatis.insa-lyon.fr/~morales/DeformableRegistration4_ITK3_2_y_4_0.jpg

Finally, those are my questions:

1. Is the LBFGS Optimizer working in the 4.0 version?
2. Do you have a suggestion for deformable register over 3D binary 
images?. I'm using Kappa as metric, LBFGSP as optimizer, Nearest 
Neighbor as interpolator and BSpline as transform.

This is the result with itk 4.0.0 (BSplineTransform):

----------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------

./DeformableRegistration4 RatLungSlice1.mha RatLungSlice2.mha 
RatLungSlice_Out_DR_4.mha RatLungSlice_DifOut_DR_4.mha 
RatLungSlice_DiffBef_DR_4.mha RatLungSlice_DeformField_DR_4.mha

Intial Parameters =
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0]

Starting Registration
*************************************************
   N=128   NUMBER OF CORRECTIONS=5       INITIAL VALUES F= 171.854   
GNORM= 14.6575
*************************************************
    I   NFN    FUNC        GNORM       STEPLENGTH
  IFLAG= -1  LINE SEARCH FAILED. SEE DOCUMENTATION OF ROUTINE MCSRCH 
ERROR RETURN OF LINE SEARCH: INFO= 3 POSSIBLE CAUSES: FUNCTION OR 
GRADIENT ARE INCORRECT OR INCORRECT TOLERANCESvnl_lbfgs: Error. Netlib 
routine lbfgs failed.
Optimizer stop condition = LBFGSOptimizer: Failure
Last Transform Parameters
[7.12913e-05, 0.000822686, 0.000319042, -8.33916e-05, 0.000348646, 
0.00626837, 0.00927091, 0.00168081, -0.000649114, 0.0198911, 0.0316427, 
0.00503731, -0.0194616, -0.0744717, -0.0639391, -0.0157125, -0.0114798, 
-0.107003, -0.0978446, -0.0187967, 0.0184709, -0.0447028, -0.0519268, 
-0.00646863, 0.00833133, 0.0253974, -0.000220162, -0.000899271, 
-0.000337357, 0.00812346, 0.00272128, 0.000125967, 5.83578e-05, 
-2.705e-05, 3.76008e-05, -1.37686e-06, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2.68391e-05, 
0.000799156, 0.00138885, 0.000489707, 0.000513742, 0.00228086, 
0.0071084, 0.00358335, 0.00282009, 0.00624571, 0.028578, 0.0085053, 
0.00725639, -0.0202794, -0.0441182, -0.058585, -0.030916, -0.0546482, 
-0.0856515, -0.0774424, -0.0453471, -0.0644134, -0.0462822, -0.0346081, 
-0.0409584, -0.056828, -0.0248994, -0.0167641, -0.0315894, -0.0262668, 
-0.00718102, -0.00137207, -0.00272928, -0.00153352, -0.000217907, 
-4.37687e-07, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0]
           Probe Tag    Starts    Stops             Time (s)
         Registration           1            1          0.179994
           Probe Tag    Starts    Stops           Memory (kB)
         Registration           1            1              6124


----------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------

This is the result with itk 3.2 (BSplineDeformableTranform):

----------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------

./DeformableRegistration4 RatLungSlice1.mha RatLungSlice2.mha 
RatLungSlice_Out_DR_4.mha RatLungSlice_DifOut_DR_4.mha 
RatLungSlice_DiffBef_DR_4.mha RatLungSlice_DeformField_DR_4.mha
Intial Parameters =
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0]

Starting Registration
*************************************************
   N=128   NUMBER OF CORRECTIONS=5       INITIAL VALUES F= 169.433   
GNORM= 16.0675
*************************************************
    I   NFN    FUNC        GNORM       STEPLENGTH
    1    2       139.836       9.070       0.062
    2    3       127.553      10.676       1.500
    3    4       113.837       8.462       1.500
    4    5        98.974       5.939       1.500
    5    6        94.611       4.260       1.500
    6    7        93.683       1.780       1.500
    7    8        92.602       1.161       1.500
    8    9        91.093       1.608       1.500
    9   10        90.869       1.485       1.500
   10   12        90.796       1.187       0.228
   11   14        90.717       0.954       0.220
   12   16        90.694       0.822       0.129
   13   18        90.666       0.720       0.125
  IFLAG= -1  LINE SEARCH FAILED. SEE DOCUMENTATION OF ROUTINE MCSRCH 
ERROR RETURN OF LINE SEARCH: INFO= 3 POSSIBLE CAUSES: FUNCTION OR 
GRADIENT ARE INCORRECT OR INCORRECT TOLERANCESvnl_lbfgs: Error. Netlib 
routine lbfgs failed.
Optimizer stop condition = LBFGSOptimizer: Failure
Last Transform Parameters
[0.011861, 0.0530738, -0.114476, -0.0014865, 0.0148372, -0.0549163, 
-0.00438914, 0, 0.102566, 0.502715, -0.762941, 0.35145, 0.153952, 
-0.63219, -0.0498668, 0, 0.00738199, 0.0666841, 0.570735, -0.0706879, 
-0.17164, -0.115005, -0.0396254, 0, 0.0192471, 0.09889, -0.943169, 
-0.647905, 0.172792, -0.181095, 0.0226301, 0, 0.050406, 0.190277, 
-0.870343, 0.320529, 0.489361, -0.130754, 0.0165127, 0, -0.00494977, 
0.0367683, -0.134814, -0.0234467, -0.487765, -0.12967, -0.00325786, 0, 
-0.00218239, -0.0164876, -0.00720033, 0.013605, -0.0421713, -0.00401046, 
-0.000156239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.000118737, -0.027066, 
-0.0382732, 0.0483314, 0.121524, 0.0467903, 0.000733309, 0, -0.0314756, 
-0.494522, -0.152103, 0.605314, 0.417874, 0.0194144, 0.00334922, 0, 
-0.00976682, 0.459453, 1.36226, 0.784408, -0.443754, -0.712014, 
-0.000740298, 0, 0.051106, -0.530244, -3.37043, -2.10846, 0.0149461, 
0.0297596, -0.00694551, 0, 0.0164421, -0.761362, -2.79346, -2.53847, 
-0.683093, 0.206363, -0.00512468, 0, 0.0233849, 0.154342, -0.42728, 
-1.65801, -1.25134, -0.0402723, 0.00227039, 0, 0.000605736, 0.00629161, 
-0.0126661, -0.176088, -0.174036, -0.00030687, 0.00118331, 0, 0, 0, 0, 
0, 0, 0, 0, 0]
           Probe Tag    Starts    Stops             Time (s)
         Registration           1            1            15.725

----------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------

Thank you,
Alfredo Morales Pinzón.


More information about the Insight-users mailing list