Problem Statement: Weakly supervised 3D classification of multi-organ, multi-disease CT scans.
Data (proprietary to Duke University Medical Center): 1054 Diseased Lungs Cases (286 Pneumonia-Atelectasis, 279 Emphysema, 246 Nodules, 243 Mass); 577 Healthy Lungs Cases.
Note: The following repository currently serves as an archive. It is functional, but requires a full cleanup and directory setup. All updates to the implementation can be found here.
Directories
● Convert DICOM to NIfTI Volumes: preprocess/prime/DICOM_NIFTI.py
● Resample NIfTI Volume Resolutions: preprocess/prime/resampleRes.py
● Infer StFA/DyFA Segmentation Sub-Model (DenseVNet): python net_segment.py inference -c '../config.ini'
● Preprocess Full Dataset to Optimized I/O HDF5 Training Patch-Volumes: preprocess/prime/preprocess_alpha.py
● Preprocess Full Dataset to Optimized I/O HDF5 Deployment Whole-Volumes: preprocess/prime/preprocess_deploy.py
● Generate Data-Directory Feeder List: feed/prime/feed_metadata.py
● Train StFA Classification Sub-Model: train/prime/train_StFA.py
● Train DyFA Classification Sub-Model: train/prime/train_DyFA.py
● Deploy Model (Validation): deploy/prime/deployBinary.py
● Average Predictions for Same Patient: deploy/prime/average_predictions.py
● Calculate AUC: notebooks/binary_AUC.ipynb
Figure 1. Integrated model architecture for reusing segmentation feature maps in 3D binary classification. The segmentation sub-model is a DenseVNet, taking a variable input volume with a single channel and the classification sub-model is a 3D ResNet, taking an input volume patch of size [112,112,112] with 2 channels. Final output is a tensor with the predicted class probabilities.
Figure 2. From left-to-right: input CT volume (axial view), 3 out of 61 segmentation feature maps extracted from the pretrained DenseVNet model, at different resolutions, and their corresponding static aggregated feature maps (StFA) in the case of diseased lungs with atelectasis (top row), mass (middle row) and emphysema (bottom row).
Figure 3. ROC curves for each disease class against all normal cases and all disease classes against all normal cases for the independent (left), StFA (center) and DyFA (right) models for binary lung disease classification.