[Insight-users] DeformableRegistration4.cxx error?
Brecht Heyde
Brecht.Heyde at med.kuleuven.be
Mon Mar 21 08:43:29 EDT 2011
Hi Dawood,
Thanks for the suggestion. I reran the example and it seems to work just fine: the borders of the rat lungs seems to be mapped unto each other after registration.
Do you have any suggestions in tuning optimizer parameters in the context of B-spline registration?
Best regards,
Brecht
________________________________________
From: insight-users-bounces at itk.org [insight-users-bounces at itk.org] On Behalf Of Dawood Masslawi [masslawi at gmail.com]
Sent: 19 March 2011 15:04
To: Brecht Heyde
Cc: insight-users at itk.org
Subject: Re: [Insight-users] DeformableRegistration4.cxx error?
Hi Brecht,
The "DeformableRegistration13.cxx" example uses the RegularStepGradientDescent
optimizer for 2D images. Using the same settings should work for your code.
Good luck,
Dawood
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Hi all,
I forgot to mention that I found a similar post on the ITK user list back in 2009: http://itk-insight-users.2283740.n2.nabble.com/Problem-with-DeformableRegistration4-cxx-example-td3218635.html
Has anything been resolved since then? I'll try rerunning the example with a RegularStepGradientDescent optimizer.
Has anyone found any acceptable settings for the optimizer? Something along the lines of:
optimizer->MinimizeOn();
optimizer->SetMaximumStepLength(2.00);
optimizer->SetMinimumStepLength(0.001);
optimizer->SetNumberOfIterations(200);
Where and how would you start tuning this optimizer for this fairly large amount of parameters (already in 2D)?
Regards,
Brecht
________________________________________
From: Brecht Heyde
Sent: 18 March 2011 20:20
To: insight-users at itk.org<http://www.itk.org/mailman/listinfo/insight-users>
Cc: Brecht Heyde
Subject: DeformableRegistration4.cxx error?
Dear all,
I just tried running Examples/Registration/DeformableRegistration4.cxx/.
Is it normal that the stop condition of the LBFGS optimizer gives me an error: "vnl_lbfgs: Error. Netlib routine lbfgs failed."?
Also, I compared the differences after registration and they are still fairly large (see attachments)
Please find the output of the program below:
--
>DeformableRegistration4 ..\..\data\RatLungSlice1.mha ..\..\data\RatLungSlice2.mha ..\..\data\RatLungSlice2deformed.mha ..\..\data\differenceoutput.mha ..\..\data\differencebefore.mha ..\..\data\deformfield.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 S
EARCH: INFO= 3 POSSIBLE CAUSES: FUNCTION OR GRADIENT ARE INCORRECT OR INCORRECT TOLERANCES
vnl_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.1025
66, 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.0
483314, 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.000605
736, 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 28.9173
Probe Tag Starts Stops Memory (kB)
Registration 1 1 396
--
CMakeLists.txt
PROJECT( RegistrationExamples )
CMAKE_MINIMUM_REQUIRED( VERSION 2.8 )
# Find ITK
IF ( NOT EXISTS ${ITK_BINARY_DIR} )
SET( ITK_BINARY_DIR "" CACHE PATH "Path to ITK binary folder" )
MESSAGE( FATAL_ERROR "ITK binary directory ${ITK_BINARY_DIR} does not exist!" )
ELSE()
#Manually include ITKConfig.cmake and UseITK.cmake.
#This is also done if ITK is found automatically: IF(ITK_FOUND) includes FindITK.cmake from C:\CMake 2.8\share\cmake-2.8\Modules
#In FindITK.cmake ITKConfig.cmake and UseITK.cmake are included
MESSAGE ( STATUS "Including ITKConfig.cmake" )
INCLUDE ( ${ITK_BINARY_DIR}/ITKConfig.cmake )
MESSAGE ( STATUS "Including UseITK.cmake" )
INCLUDE ( ${ITK_BINARY_DIR}/UseITK.cmake )
ENDIF()
MESSAGE( STATUS "ITK binary directory: ${ITK_BINARY_DIR}" )
ADD_EXECUTABLE(DeformableRegistration4 DeformableRegistration4.cxx )
TARGET_LINK_LIBRARIES(DeformableRegistration4 ITKIO ITKNumerics ITKStatistics ITKAlgorithms ITKBasicFilters ITKFEM)
--
Does anyone see any problems here?
Thanks!
Best regards,
Brecht Heyde
More information about the Insight-users
mailing list