[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