Skip to content

Latest commit

 

History

History
197 lines (144 loc) · 5.74 KB

File metadata and controls

197 lines (144 loc) · 5.74 KB

COVID-19 CT Scan Classification DenseNet PyTorch

Python PyTorch License Kaggle

📋 Table of Contents

🎯 Overview

This project implements deep learning models for automated COVID-19 detection from CT scan images using PyTorch. The notebook demonstrates two approaches:

  1. Custom CNN Architecture - Achieving 92% accuracy
  2. DenseNet Transfer Learning - Achieving 96% accuracy

Key Features

  • ✅ Binary classification (COVID-19 vs Non-COVID-19)
  • ✅ Transfer learning implementation
  • ✅ Data augmentation techniques
  • ✅ Model comparison and evaluation
  • ✅ Visualization of predictions and feature maps

📊 Dataset Information

SARS-CoV-2 CT Scan Dataset

The dataset contains CT scan images collected from real patients:

Dataset Structure:
├── COVID-19/          # CT scans from COVID-19 positive patients
│   └── ~1,252 images
└── Non-COVID/         # CT scans from healthy or other pneumonia patients
    └── ~1,229 images

Total Images: ~2,481 CT scans
Image Format: PNG
Image Size: Variable (resized to 224x224 for training)

Dataset Statistics

Metric Value
Total Images 2,481
COVID-19 Cases 1,252 (51%)
Non-COVID Cases 1,229 (49%)
Training Set 2108 (85%)
Validation Set 186 (7.5%)
Test Set 187 (7.5%)

Class Distribution

Class / Set Training Validation Test
COVID-19 Cases 1055 100 97
Non-COVID Cases 1053 86 90

📈 Performance Metrics

Model Comparison

Model Accuracy Precision Recall F1-Score
Custom CNN 92.0% 92.0% 92.0% 92.0%
DenseNet-69 96.0% 96.0% 96.0% 96.0%

DenseNet-69 Detailed Metrics

Classification Report:

Classification Report

Confusion Matrix

Confusion Matrix

📊 Data Visualization

Training History

Accuracy Over Epochs:

Model Accuracy

Loss Over Epochs:

Model Loss

🔧 Installation & Usage

Installation

# Clone the repository
git clone https://github.com/yourusername/covid19-ct-classification.git
cd covid19-ct-classification

# Create Virtual Environment
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install dependencies
pip install -r requirements.txt

📉 Results & Analysis

Key Findings

  1. DenseNet Outperforms CNN

    • 4% accuracy improvement over custom CNN
    • Better generalization on test set
    • Fewer false negatives (critical for medical diagnosis)
  2. Transfer Learning Benefits

    • Faster convergence (15 epochs vs 35 epochs)
    • Better feature extraction from pre-trained weights
    • More robust to small dataset size
  3. Error Analysis

    • Most false positives: Early-stage COVID cases
    • Most false negatives: Atypical CT presentations
    • Confusion mainly in borderline cases

Training Configuration

Hyperparameters:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Custom CNN:
  • Optimizer: AdamLearning Rate: 5e-5Batch Size: 16Epochs: 50

DenseNet-69:
  • Optimizer: AdamLearning Rate: 3e-5Batch Size: 16Epochs: 50 finished 27Weight Decay: 0.01LR Scheduler: ReduceLROnPlateau

Data Augmentation

Training Augmentations:
• Random Horizontal Flip (p=0.5)
• Random Vertical Flip (p=0.5)
• Random Rotation10°)
• Normalization (ImageNet stats)

🚀 Future Improvements

Short-term Goals

  • Implement ensemble methods (CNN + DenseNet)
  • Add Grad-CAM visualizations for interpretability
  • Experiment with other architectures (EfficientNet)
  • Increase dataset size through additional sources

Long-term Goals

  • Multi-class classification (COVID vs Pneumonia vs Normal)
  • 3D CNN for volumetric CT analysis
  • Real-time deployment as web application

📚 References

Datasets

  • SARS-CoV-2 CT Scan Dataset: Kaggle

Related Medical Projects

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

📞 Contact

For questions or collaboration opportunities: