Add RetinaUNet model with synthetic example and unit tests#930
Open
mtuann wants to merge 2 commits intosunlabuiuc:masterfrom
Open
Add RetinaUNet model with synthetic example and unit tests#930mtuann wants to merge 2 commits intosunlabuiuc:masterfrom
mtuann wants to merge 2 commits intosunlabuiuc:masterfrom
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Contributor Information
tuanmn2tuanmn2@illinois.eduType of Contribution
Original Paper
https://proceedings.mlr.press/v116/jaeger20a/jaeger20a.pdf
Motivation
This PR adds a Retina U-Net style medical object detection model to
PyHealth.My goal here is to contribute a reusable
PyHealthmodel implementation thatcaptures the main architectural idea of the original paper: dense object
detection with auxiliary segmentation supervision. I intentionally kept the
scope model-centric and dataset-agnostic on the
PyHealthside. LIDC-specificdownload, preprocessing, and larger reproduction experiments stay in a separate
companion project so that this PR remains focused and easier to review.
Relevance To PyHealth
derived from a peer-reviewed healthcare AI paper.
pyhealth.modelswithout tying the contribution to one local dataset layoutor one machine-specific workflow.
High-Level Description
This PR adds:
RetinaUNetmodel underpyhealth.modelspass, embedding mode, and inference mode
configurations without requiring any real dataset
The example and tests are designed to be fast and self-contained. They do not
depend on local LIDC data and use synthetic tensors only. The main artifact for
review is the reusable
RetinaUNetmodel implementation; the example and testsexist to make the contribution easy to validate.
Files To Review
Main implementation:
pyhealth/models/retina_unet.pyModel registration:
pyhealth/models/__init__.pyTests:
tests/core/test_retina_unet.pyExample:
examples/lidc_nodule_detection_retina_unet.pyDocs:
docs/api/models.rstdocs/api/models/pyhealth.models.RetinaUNet.rstTesting Performed
Validated in a clean
uvenvironment with:pyhealth.modelspython -m unittest tests.core.test_retina_unet -vexamples/lidc_nodule_detection_retina_unet.pyObserved validation outcome:
comparison summary
Relation To The Reproduction Project
This PR comes out of a CS598 DL4H reproducibility project based on the Retina
U-Net paper. In the companion project repository, I integrated the model into
an LIDC-IDRI pipeline with reproducible preprocessing and controlled
experiments. That external project is useful validation context, but it is not
the contribution proposed here. The actual contribution in this PR is the
PyHealthmodel implementation itself, together with its tests,documentation, and lightweight synthetic ablation example.
Scope Limitations
evaluator rather than full 3D lesion-level matching
minimal example rather than a full dataset-specific benchmark pipeline
Notes For Reviewers
to be part of this pull request