---
title: Classification With Segmentation
emoji: 🏢
colorFrom: red
colorTo: red
sdk: gradio
sdk_version: 5.49.1
app_file: app.py
pinned: false
license: mit
---
# Classification With Segmentation
This project implements a complete chest X-ray analysis pipeline using:
**lung segmentation using UNet (Unet.ipynb)**
**Two binary EfficientNet-B3 classifiers (pneumonia classification.ipynb):**
- Normal vs Bacterial Pneumonia
- Normal vs Viral Pneumonia
**Intelligent decision fusion**
- If both classifiers fire, the model selects the dominant probability and returns a final diagnosis.
---
## Dataset
- For Unet [Lung Mask Image Dataset](https://www.kaggle.com/datasets/newra008/lung-mask-image-dataset)
- For binary EfficientNet-B3 classifiers [Pneumonia Multi-Class Dataset ](https://www.kaggle.com/datasets/kmljts/pneumonia-multiclass)
## Interactive Gradio Web App
- check out the live web app click [here](https://huggingface.co/spaces/Clocksp/classification_with_segmentation)
- For Models click [here](https://huggingface.co/spaces/Clocksp/classification_with_segmentation/tree/main)
### Includes
- Lung segmentation mask
- Masked classifier input
- Bacterial & viral probability scores
- Final diagnosis
- Segmentation overlay
- Static Test Samples Table at the bottom
---
## Features
### 1. Lung Segmentation (UNet)
The UNet model extracts lung regions from chest X-rays, removing background and irrelevant anatomical structures.
### 2. Masked Image Classification
Two EfficientNet-B3 classifiers operate only on segmented lung regions, leading to improved diagnostic accuracy.
### 3. Dual-Model Decision Logic
| Condition | Final Output |
|------------------------------|--------------------------|
| Both bacterial & viral probabilities are low | **NORMAL** |
| Bacterial probability high only | **BACTERIAL PNEUMONIA** |
| Viral probability high only | **VIRAL PNEUMONIA** |
| Both probabilities high | Chooses the **higher** probability |
### 4. Important Note on Viral vs Bacterial Overlap
Chest X-ray images of viral and bacterial pneumonia often look very similar, with overlapping radiological patterns such as:
- Diffuse opacities
- Patchy consolidations
- Similar lung distribution
Because of this natural similarity, perfect separation between viral and bacterial pneumonia is not guaranteed, and classifiers may show overlapping confidence values. A fallback rule chooses the class with the higher probability when both are high.
---
## Model Details
### UNet
- **Input:** 300 × 300
- **Output:** Lung segmentation mask
- **Purpose:** Improves classifier performance by isolating lung regions and removing irrelevant anatomy.
### EfficientNet-B3 Classifiers
Two separate binary classifiers are used:
- **Normal vs Bacterial**
- **Normal vs Viral**
This modular setup allows each pneumonia type to be diagnosed independently and increases robustness.
---
## Performance Metrics
### 1. UNet Lung Segmentation
The segmentation model achieves high spatial accuracy, ensuring downstream classifiers receive clean, lung-focused inputs.
| Metric | Score |
|------------------------------|---------|
| Accuracy | 0.9899 |
| Precision | 0.9828 |
| Recall | 0.9749 |
| F1 Score | 0.9788 |
| IoU (Intersection over Union) | 0.9585 |
| Dice Coefficient | 0.9788 |
### 2. Normal vs Bacterial Pneumonia Classifier (EfficientNet-B3)
#### Class-wise Performance
| Class | Precision | Recall | F1-Score | Support |
|---------------|-----------|--------|----------|---------|
| Normal (0) | 0.98 | 0.97 | 0.97 | 475 |
| Bacterial (1) | 0.98 | 0.99 | 0.99 | 834 |
#### Overall Metrics
| Metric | Score |
|---------------|-------|
| Accuracy | 0.98 |
| Macro Avg F1 | 0.98 |
| Weighted Avg F1 | 0.98 |
**Confusion Matrix:**
**ROC Curve:**
### 3. Normal vs Viral Pneumonia Classifier (EfficientNet-B3)
#### Class-wise Performance
| Class | Precision | Recall | F1-Score | Support |
|---------------|-----------|--------|----------|---------|
| Normal (0) | 0.99 | 0.99 | 0.99 | 475 |
| Viral (1) | 0.99 | 0.99 | 0.99 | 448 |
#### Overall Metrics
| Metric | Score |
|---------------|-------|
| Accuracy | 0.99 |
| Macro Avg F1 | 0.99 |
| Weighted Avg F1 | 0.99 |
**Confusion Matrix:**
**ROC Curve:**
---
## ⚠️ Important Interpretation Note
Despite strong quantitative performance, viral and bacterial pneumonia can present with highly overlapping radiological features, making them difficult to distinguish purely from chest X-ray images — even for trained radiologists.
**Therefore:**
- Some misclassification between **Viral ↔ Bacterial** is expected.
- The system applies a **fallback decision rule** when both probabilities are high.
- Outputs should **not** be used for any form of clinical diagnosis or medical decision-making.
---
## License
MIT License