I’ve done the registration of microscopical images with affine transform using conjugate gradient line search. I observe small to a large variation in the results after several complete the same runs. Metric is Mattes Mutual Information (bins=50), sampling strategy - regular. Initialization is based on manual landmarks. Images are in the float16 format.
Questions are:
Where the randomness take place at the optimization procedure?
It sounds like you are using the ITKv4 registration frame work. Look for methods in the classes that allow for setting for “Seeds”. For example the itk::ImageRegistrationMethodv4::MetricSamplingReinitializeSeed method. By default the sampling seed is initialized from from wall clock to produce random results.
If you are seeing significant difference in your registration results based on the sampling, your registration in not robust. You many be optimizing to different local minima or not properly converging. Steps to improving robustness include, more samples, using a multi-scale approach, and ensuring you optimizer is using the appropriate scales and parameters.