Replies: 10 comments
-
Hi @aylward and @mjorgecardoso , I labeled this ticket as |
Beta Was this translation helpful? Give feedback.
-
we have been discussing a factory pattern which is similar to MedIO (as I understand it). Would you be happy to contribute the relevant logic into monai? we could continuously provide proper maintenance of this IO module. cc @ericspod @atbenmurray |
Beta Was this translation helpful? Give feedback.
-
@wyli, fully agree. The IO wrapper/factory pattern is something we want to have WITHIN monai and not as an external dependency, as it will be highly intertwined with the transformation and data representation stacks. @jond01, MONAI is trying to bring together and integrate multiple open source initiatives into the same stack. We are currently in the process of abstracting our IO stack to have some of the functionality you have in MedIO. It would be great to discuss the feasibility of merging the MedIO package (or parts of it) into MONAI. Given that MedIO has been developed by a single user, code re-licensing and integration would be possible. Would be great to have RSIP-Vision as one of the many formal contributors to MONAI. (see the Contributors section of https://monai.io) |
Beta Was this translation helpful? Give feedback.
-
Thanks for your quick responses. My original idea was integrating MedIO into MONAI just like you have integrated NiBabel. In MedIO we faced various issues that you would also face here when integrating multiple packages:
The above points are just few examples... I think that it should not be intertwined with other transforms in MONAI. For example, when reading you provide flags: |
Beta Was this translation helpful? Give feedback.
-
Hi Jonathan, One of the many aims within MONAI is to have a small dependency graph. Currently, it's only torch and numpy, and adding MedIO to the dependency tree would add MedIO and 5 other sub-dependencies. We are in the process of integrating python-ITK into our dependency tree, with several other backends as optional - thus the reason we want to have the IO backend wrapper within MONAI and not as an external dependency. There is a long requirement list for IO that the IO_working_group has collected that go significantly beyond several of the points you expose above, which will require deep integration into the rest of the MONAI codebase. This is why @wyli was suggesting the integration/donation of some of the logic and code into the project MONAI repository, all with appropriate recognition of contribution. |
Beta Was this translation helpful? Give feedback.
-
just wanted to add my understanding that MedIO looks very promising in unifying thirdparty IO interfaces, but at the moment it's also a bit risky for monai to rely on it because its roadmap/contributors' commitment/code quality assurance are unclear. On the other hand, would be very nice to see RSIP-Vision joining project monai and we'll have much lower R&D risks because monai has the open and active support from the community of researchers/engineers https://monai.io/about.html |
Beta Was this translation helpful? Give feedback.
-
I definitely understand your point @wyli and @mjorgecardoso. I think that the future IO part of monai can be useful for its own, and better be disentangled from monai's main repository. "monaio" can start from a fork of medio if you like (maybe even with the same name?). Regarding the dependencies in medio, they are minimal:
2-4 depends at most on numpy and packaging.
Edit: |
Beta Was this translation helpful? Give feedback.
-
Hi, Interesting idea! We talked about aspects of this in the I/O working group, and we encountered several challenges:
It seems like several of those challenges were also motivation for your work! From those, we came up with some guiding principles for what we want from an I/O solution: We are proposing an object factory mechanism that uses ITK and that can be extended to include other libraries on an experiment-by-experiment basis - much like what MedIO has proposed - and we will look at it for further inspiration. Also, the good news is that MONAI is already implementing an object factory mechanism for other purposes, and we will be able to build on that code for an object factory for IO, without introducing any additional dependencies. We hope to post the proposal in the next day or so. Would greatly appreciate your feedback on it, and perhaps some of the MedIO code base will help speed our development. Thank you! |
Beta Was this translation helpful? Give feedback.
-
Hi, it can probably work. We can contribute to your IO part according to the proposal (#856), let me know @wyli @mjorgecardoso. |
Beta Was this translation helpful? Give feedback.
-
thank you, would be great to have your contribution. |
Beta Was this translation helpful? Give feedback.
-
Dear MONAI members,
Your initiative looks very promising.
I noticed that you are currently working on the IO part of the project:
https://github.com/Project-MONAI/MONAI/wiki/IO-Working-Group-Meeting-Notes
We have recently released a python package medio whose objective is to facilitate the IO procedure for deep learning of medical images:
https://github.com/RSIP-Vision/medio
Medio uses ITK, NiBabel and PyDicom (including dicom-numpy for dicom series) in a uniform and consistent interface (metadata, orientations, ...).
I believe that it can really help here, what do you think?
Beta Was this translation helpful? Give feedback.
All reactions