What are the valid input parameters of the different optimization algorithms available in SimpleITK?


I want to compare the performance of different optimization algorithms while registering two images. For this purpose, I want to know what are the valid input parameters (step size, function tolerance, number of iteration etc), that each optimizer, available in SimpleITK, can accept. I am using SimpleITK with Python. Where can I get this information?

Hello @debapriya,

This information is found in the ImageRegistrationMethod documentation SetOptimizerAs* methods.

Thank you @zivy . In order to test the Amoeba optimizer, I set the following parameters.

registration_method.SetOptimizerAsAmoeba(simplexDelta=1.00, numberOfIterations=10, withRestarts=False)

However, the optimization continued for 400 iterations, and finally stopped with the following error

Please tell me what is going wrong.

Can this be because of multi-resolution registration? How can I stop this optimization process after a fixed number of iterations?
What is an acceptable value of SimplexDelta?

Hello @debapriya,

The number of iterations is for each run of the optimizer. When using the multi-resolution approach the optimizer is re-run for each level. To see this effect, run the optimizer using a single level and set the number of iterations to a small number (e.g. 10).

The SimplexDelta value depends on the parameter space terrain and how far the initial parameter values are from the final ones (the initial simplex is defined using the initial parameter values and the SimplexDelta).