Coder Social home page Coder Social logo

Comments (6)

zivy avatar zivy commented on September 13, 2024

@subhajitchatu

  1. ITK and hence SimpleITK has a fixed set of optimizers. These work for most registration tasks and represent different algorithmic approaches to optimization (gradient, gradient-free, evolutionary). There are many more optimization algorithms out there as this is an independent (and very interesting) research domain.

  2. SimpleITK supports the ITKv4 registration framework and thus only the optimizers that are implemented there. The list of v4 optimizers can be found here. ITK still contains the v3 registration framework with its optimizers which include ones that are not in v4.

from simpleitk-notebooks.

subhajitchatu avatar subhajitchatu commented on September 13, 2024

Hi @zivy

It's very Interesting.

  1. It is not clear then why v3 registration optimizers are still there, if most of the work can be done using only v4 registration framework.

  2. As I can see there are two very useful optimizer in ITKv4 like MultiGradientOptimizerv4 , MultiStartOptimizerv4. I don't know whether these are implemented or not! But these are most interesting methods now a days. Anyway if these are also available in SimpleITK, please let me know.

  3. I am using SimpleITK in python 2.7, evolutionary methods are not showing up. Is there some version up-gradation required?

Thanks

from simpleitk-notebooks.

zivy avatar zivy commented on September 13, 2024

@subhajitchatu
The answer to question 1 is mostly historical reasons, part of the growth of ITK over the years.

The answer to question 2 is simply to go to the doxygen documentation and see the list of optimizers supported by simpleitk. This will always be the updated list.

Question 3, by evolutionary optimizers I meant the 1+1 optimizer which is supported in SimpleITK.

from simpleitk-notebooks.

subhajitchatu avatar subhajitchatu commented on September 13, 2024

@zivy
Thanks!
I thought all ITKv4 methods will be supported in SimpleITK. Thats why I was excited when I saw MultiGradientOptimizerv4 , MultiStartOptimizerv4 in ITKv4. Because the initial guess problem can be solved via MultiStartOptimizerv4.
Anyway 1+1 optimizer is not showing in my system's SimpleITK package. SimpleITK.py should have that function, even I did a "grep" in the SimpleITK directory , but couldn't able to to find . Thats why I asked you if there is version up-gradation required or not?

from simpleitk-notebooks.

zivy avatar zivy commented on September 13, 2024

@subhajitchatu

The multi start optimizer is essentially running the gradient descent multiple times based on multiple user initializations. This does not really solve the initialization challenge as the burden is still on the user to supply several initial transformations with the hope that one of them is close enough. If you want this feature added to SimpleITK, please create an issue requesting it.

The 1+1 optimizer was added in release 1.0. The ImageRegistrationMethod now has a SetOptimizerAsOnePlusOneEvolutionary method.

from simpleitk-notebooks.

subhajitchatu avatar subhajitchatu commented on September 13, 2024

Hi @zivy
Ok, I will surely create an issue, But I am also interested if SimpleITK could support multiple metric with weight parameter, because in many cases multiple metric usage is very helpful to avoid local minima or saddle point problem in optimization. I don't know how much accurate MultiGradientOptimizerv4 is in this sense. Any suggestion?

Thanks

from simpleitk-notebooks.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.