Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hausdorff distance loss support #6993

Closed
imadtoubal opened this issue Sep 17, 2023 · 2 comments · Fixed by #6994
Closed

Hausdorff distance loss support #6993

imadtoubal opened this issue Sep 17, 2023 · 2 comments · Fixed by #6994

Comments

@imadtoubal
Copy link
Contributor

Hausdorff distance is widely used in evaluating medical image segmentation methods. Adding an objective/loss function directly to optimize this distance can be instrumental in optimizing this score [1].

Hausdorff Distance

An existing implementation is publicly available on GitHub by Patryk Rygiel, although it might take some engineering work to integrate within the MONAI framework.

I was able to train a 3D segmentation model successfully using MONAI's SwinUNETR with this implementation and I would like to contribute the code for this loss so that it's more widely available and easier to integrate with MONAI-based repositories.

References:
[1] Karimi, D., & Salcudean, S. E. (2019). Reducing the Hausdorff distance in medical image segmentation with convolutional neural networks. IEEE Transactions on medical imaging, 39(2), 499-513.

@imadtoubal imadtoubal mentioned this issue Sep 17, 2023
7 tasks
wyli pushed a commit that referenced this issue Sep 19, 2023
Integrating an existing implementation publicly available on GitHub by
Patryk Rygiel into the MONAI framework.

Fixes #6993.

### Description

Hausdorff distance is widely used in evaluating medical image
segmentation methods. Adding an objective/loss function directly to
optimize this distance can be instrumental in optimizing this score [1].

<center><img
src="https://upload.wikimedia.org/wikipedia/commons/2/21/Hausdorff_distance_sample.svg"
alt="Hausdorff Distance"></center>

An existing implementation is [publicly available on
GitHub](https://github.com/PatRyg99/HausdorffLoss) by [Patryk
Rygiel](https://github.com/PatRyg99), although it might take some
engineering work to integrate within the MONAI framework.

I was able to train a 3D segmentation model successfully using MONAI's
SwinUNETR with this implementation and I would like to contribute the
code for this loss so that it's more widely available and easier to
integrate with MONAI-based repositories.

**References**:
[1] Karimi, D., & Salcudean, S. E. (2019). [Reducing the Hausdorff
distance in medical image segmentation with convolutional neural
networks](https://ieeexplore.ieee.org/abstract/document/8767031?casa_token=OGugo3jEuXQAAAAA:y5fp0CuZiEWlbx8FS4XKHu43Wi_W7albLeIAjsnZ1c-IlTpJmEFJUgoMlKl_taSYuBpcPyCvtTMe).
IEEE Transactions on medical imaging, 39(2), 499-513.

### Types of changes
<!--- Put an `x` in all the boxes that apply, and remove the
not-applicable items -->
- [x] Non-breaking change (fix or new feature that would not break
existing functionality).
- [ ] Breaking change (fix or new feature that would cause existing
functionality to change).
- [x] New tests added to cover the changes.
- [x] Integration tests passed locally by running `./runtests.sh -f -u
--net --coverage`.
- [x] Quick tests passed locally by running `./runtests.sh --quick
--unittests --disttests`.
- [x] In-line docstrings updated.
- [x] Documentation updated, tested `make html` command in the `docs/`
folder.

---------

Signed-off-by: Imad Toubal <imad.toubal@gmail.com>
@imadtoubal
Copy link
Contributor Author

Looks like I have forgotten to include the parameter alpha in the constructor method docstring. Do you recommend using this issue to make a PR to fix that?

@wyli
Copy link
Contributor

wyli commented Oct 11, 2023

sure, thanks, please feel free to create PRs, if that's done in the next 10 hours we can still include it in v1.3 otherwise it'll be released in the future versions

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants