A deep learning system for thyroid ultrasound analysis — nodule segmentation across three benchmark datasets with a downstream malignancy classification module.
A hybrid encoder-decoder that fuses local convolutional features with long-range global context from a Swin Transformer backbone.
Input Ultrasound
│
┌────┴────────────────────────┐
│ Parallel Dual Encoder │
│ ├─ CNN Branch │ ← local texture & edge features
│ └─ Swin Transformer Branch │ ← global context via shifted windows
└────────────┬────────────────┘
│ Cross-Attention Fusion
┌─────┴─────┐
│ UNet++ │ ← dense skip connections
│ Decoder │
└─────┬─────┘
Segmentation Mask
A binary classifier (benign / malignant) built on segmentation-derived ROI features:
- Extracts morphological and texture features from the predicted nodule mask
- Multi-layer classifier head trained on biopsy-confirmed labeled cases
- Outputs malignancy probability with confidence score
All datasets use pixel-level segmentation masks. Augmentation includes random flips, rotations, elastic deformation, and contrast jitter.
Dice = 2 × |Pred ∩ GT| / (|Pred| + |GT|)
Additional metrics tracked:
thyroid-ai-project/
├── segmentation/
│ ├── TGT3_segmentation.ipynb # DualFusionSwinConvUNet++ on TGT3
│ ├── TN3K_segmentation.ipynb # DualFusionSwinConvUNet++ on TN3K
│ └── DDTI_segmentation.ipynb # DualFusionSwinConvUNet++ on DDTI
├── classification/
│ └── cancer_prediction.ipynb # Malignancy classification module
└── README.md