graph LR
BaseApplication["BaseApplication"]
SegmentationApplication["SegmentationApplication"]
ClassificationApplication["ClassificationApplication"]
LossSegmentation["LossSegmentation"]
LossClassification["LossClassification"]
LossAutoEncoder["LossAutoEncoder"]
UtilityFunctions["UtilityFunctions"]
SegmentationApplication -- "inherits from" --> BaseApplication
ClassificationApplication -- "inherits from" --> BaseApplication
SegmentationApplication -- "uses" --> LossSegmentation
ClassificationApplication -- "uses" --> LossClassification
LossSegmentation -- "depends on" --> UtilityFunctions
LossClassification -- "depends on" --> UtilityFunctions
LossAutoEncoder -- "depends on" --> UtilityFunctions
The NiftyNet application architecture is built around a core BaseApplication component, which establishes a standardized lifecycle for various medical imaging tasks. Specialized applications like SegmentationApplication and ClassificationApplication extend this base, tailoring the data pipeline and network integration for their specific domains. These applications interact with dedicated loss components, such as LossSegmentation, LossClassification, and LossAutoEncoder, which encapsulate the mathematical formulations for evaluating model performance. A shared UtilityFunctions component provides essential data preprocessing capabilities, which are leveraged by the loss functions to prepare data for computation. This modular design promotes reusability and clear separation of concerns, facilitating the development and extension of diverse medical imaging applications.
Defines the abstract interface and common lifecycle management (training, inference, evaluation states) for all NiftyNet applications. It ensures a standardized operational framework across different medical imaging tasks.
Related Classes/Methods:
Specializes BaseApplication to define the high-level control flow, data pipeline setup (samplers, aggregators), and network integration specific to segmentation tasks. It orchestrates the entire process from data input to model output, including the training and inference loops.
Related Classes/Methods:
Specializes BaseApplication to define the high-level control flow, data pipeline setup (samplers, aggregators), and network integration specific to classification tasks. It orchestrates the entire process from data input to model output, including the training and inference loops.
Related Classes/Methods:
Encapsulates the mathematical formulations for calculating the discrepancy between model predictions and ground truth for segmentation tasks. It provides various loss metrics tailored to different task types and prepares callable functions for use in the training loop.
Related Classes/Methods:
Encapsulates the mathematical formulations for calculating the discrepancy between model predictions and ground truth for classification tasks. It provides various loss metrics tailored to different task types and prepares callable functions for use in the training loop.
Related Classes/Methods:
Encapsulates the mathematical formulations for calculating the discrepancy between model predictions and ground truth for autoencoder tasks. It provides various loss metrics tailored to different task types and prepares callable functions for use in the training loop.
Related Classes/Methods:
Provides utility functions for data preprocessing, such as one-hot encoding of labels, required by loss functions before computation.
Related Classes/Methods: