uncbiag / uniGradICON

The official website for uniGradICON: A Foundation Model for Medical Image Registration
Apache License 2.0
64 stars 3 forks source link

Turning off Instance Optimization in unigradicon-register #4

Closed neel-dey closed 5 months ago

neel-dey commented 5 months ago

Hi @HastingsGreer and @marcniethammer,

Congrats on the very cool work! I wanted to try the binary on a multi-modality pair and the sense I get from #3 is that I should turn off instance optimization for that.

Something breaks in the CLI arg handling though so the unigradicon-register binary doesn't seem to work with --io_iterations 0.

Traceback (most recent call last):
  File "miniconda3/envs/unigradicon_demo/bin/unigradicon-register", line 8, in <module>
    sys.exit(main())
  File "miniconda3/envs/unigradicon_demo/lib/python3.9/site-packages/unigradicon/__init__.py", line 204, in main
    phi_AB, phi_BA = icon_registration.itk_wrapper.register_pair(net,preprocess(moving), preprocess(fixed), finetune_steps=int(args.io_iterations))
  File "miniconda3/envs/unigradicon_demo/lib/python3.9/site-packages/icon_registration/itk_wrapper.py", line 58, in register_pair
    raise Exception("To indicate no finetune_steps, pass finetune_steps=None")
Exception: To indicate no finetune_steps, pass finetune_steps=None

Passing --io_iterations None leads to:

Traceback (most recent call last):
  File "/data/vision/polina/users/dey/miniconda3/envs/unigradicon_demo/bin/unigradicon-register", line 8, in <module>
    sys.exit(main())
  File "/data/vision/polina/users/dey/miniconda3/envs/unigradicon_demo/lib/python3.9/site-packages/unigradicon/__init__.py", line 204, in main
    phi_AB, phi_BA = icon_registration.itk_wrapper.register_pair(net,preprocess(moving), preprocess(fixed), finetune_steps=int(args.io_iterations))
ValueError: invalid literal for int() with base 10: 'None'

The issue is that int(None) isn't possible so an extra if-statement converting 0 to None for finetune_steps or something similar should fix this.

Thanks, Neel

HastingsGreer commented 5 months ago

Thank you for the issue! You are right, there should be a special case for turning off instance optimization. I have begun a pull request to fix this.

https://github.com/uncbiag/uniGradICON/pull/5

marcniethammer commented 5 months ago

Neel, I think for #3 the issue was likely an orientation issue (see answers). We are working on fixing this in more generality and also to support similarity measures for instance optimization that are more appropriate for general multi-modal data (see #5).

lintian-a commented 5 months ago

Hi @neel-dey ,

We also provide a colab demo showing how to use uniGradICON. It shows the inference result without IO.

neel-dey commented 5 months ago

@HastingsGreer Fantastic, thanks! I'll close this issue as it's merged.

@marcniethammer That makes sense, I'll follow up more re: multi-modality in our email chain.

@lintian-a Thanks, this is very clearly laid out!