Skip to content

kriti2110/thyroid-ai-project

Repository files navigation

🫁 Thyroid AI: Segmentation & Cancer Prediction

A deep learning system for thyroid ultrasound analysis — nodule segmentation across three benchmark datasets with a downstream malignancy classification module.

Python PyTorch Jupyter OpenCV scikit-learn

Status Metric Datasets


Architecture

Segmentation — DualFusionSwinConvUNet++

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
Component Role
Multi-scale global context via shifted window attention
Fine-grained edge and texture features
Dense skip connections for spatial resolution recovery
Per-location gating of dual-branch contributions

Classification — Cancer Prediction Module

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

Datasets

Dataset Description Nodules
Thyroid ultrasound with fine-grained boundary annotations
Thyroid Nodule 3K — large-scale public benchmark ~3,000
Digital Database of Thyroid Ultrasound Images (Bucaramanga) 637

All datasets use pixel-level segmentation masks. Augmentation includes random flips, rotations, elastic deformation, and contrast jitter.


Evaluation

Primary metric: Dice

Dice = 2 × |Pred ∩ GT| / (|Pred| + |GT|)

Additional metrics tracked:

IoU Sensitivity Specificity Hausdorff


Repository Structure

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

Tech Stack

Python PyTorch OpenCV scikit-learn NumPy Matplotlib


Author

Kriti Raj — B.Tech CSE (AI/ML), KIIT University

GitHub LinkedIn

About

Thyroid nodule segmentation (DualFusionSwinConvUNet++) across TGT3, TN3K, DDTI datasets + malignancy classification

Resources

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages