Skip to content

Resolve the confusion about dimension order and orientation through their respective keyword arguments in LoadImage #7365

Open
@ibro45

Description

@ibro45

Is your feature request related to a problem? Please describe.

  • As a PyTorch user, I was surprised that MONAI does not follow PyTorch's dimension order convention (MONAI: WHD, PyTorch: DHW).

PyTorch 3D Conv docs:
image


  • I also thought that it is odd that the images are not represented in the way that a radiologist would look at them, with the patient facing up or down, instead of left or right. However, I understand that this is the convention that MONAI settled on. I will only be proposing a more transparent and flexible approach further below.
image
  • Finally, the reverse_indexing option in LoadImage is misleading - I tried it with NrrdReader, NibabelReader, and ITKReader, and it only worked with ITKReader. At least in theory for my case (not to clutter the post, I will upload the picture in the response).

Here are a few issues/discussions describing the confusion/differences/conventions:


Describe the solution you'd like
Similarly to how LoadImage has ensure_channel_first, it would be really transparent, flexible, and a non-breaking change to have:

  1. order/dim_order, set by default to WHD as per MONAI convention, but a user could change it to DWH or any other combination.
  2. orientation, can be set to RAS, LPS, etc. I am not sure right now if there is a consistent convention for different formats or if it varies. It could be implemented in a "non-breaking" way, similar to how LoadImage's reader is implemented, but it might be useful to have it consistent for all formats.
  3. [Optional] If 1. is implemented, reverse_indexing is probably unnecessary.

Additional context
Personally, even though I have been using MONAI for quite a while now, I always transpose the images so that: 1) they follow the PyTorch convention, 2) we see the axial slice (first dim after batch and channel dims) in the same way that a radiologist would look at it. I also orient the images LPS, but that's irrelevant rn.

The proposed approach may be particularly important for sharing models/MONAI Bundle - the dimension order or orientation used can be different between models and easily overlooked, rendering the weights almost useless if the data is not in the correct format. The proposed feature would make it more transparent as well as more easily documented by developers/sharers.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions