Downloads · 30 days
26
5% of all-time downloads
amal90888/unet-segmentation-model
unet-segmentation-model is a image segmentation model from amal90888. Use it for the image segmentation task on the model card, and read the license before you ship it in a product. It is set up for keras. The card lists the license as mit.
This UNet-based segmentation model is designed for automated segmentation of COVID-19 infected lung regions in CT scans. It enhances the classic U-Net with attention mechanisms to improve focus on infected regions.
Downloads · 30 days
26
5% of all-time downloads
All-time downloads
504
Public
Repo size
706 MB
Likes
2
Public
Click a slice to open those files.
.keras282 MB · 100%
From the Hugging Face model README
This UNet-based segmentation model is designed for automated segmentation of COVID-19 infected lung regions in CT scans. It enhances the classic U-Net with attention mechanisms to improve focus on infected regions.
[0,1][-1000, 1500]128 × 128 pixelslearning rate = 1e-4)| Metric | Non-Augmented Model | Augmented Model |
|---|---|---|
| Dice Coefficient | 0.8502 | 0.8658 |
| IoU (Mean) | 0.7445 | 0.8316 |
| ASSD (Symmetric Distance) | 0.3907 | 0.3888 |
| Hausdorff Distance | 8.4853 | 9.8995 |
| ROC AUC Score | 0.91 | 1.00 |
📌 Key Findings:
✔ Augmentation improved segmentation accuracy significantly
✔ Attention U-Net outperformed other segmentation models
import os
from huggingface_hub import hf_hub_download
from tensorflow.keras.models import load_model
from keras.saving import register_keras_serializable
import tensorflow.keras.backend as K
# Set Keras backend (optional)
os.environ["KERAS_BACKEND"] = "jax"
# Register and define missing functions
@register_keras_serializable()
def dice_coef(y_true, y_pred, smooth=1e-6):
y_true_f = K.flatten(y_true)
y_pred_f = K.flatten(y_pred)
intersection = K.sum(y_true_f * y_pred_f)
return (2. * intersection + smooth) / (K.sum(y_true_f) + K.sum(y_pred_f) + smooth)
@register_keras_serializable()
def gl_sl(*args, **kwargs):
pass # Placeholder function (update if needed)
# Download the model from Hugging Face
model_path = hf_hub_download(repo_id="amal90888/unet-segmentation-model", filename="unet_model.keras")
# Load the model with registered custom objects
unet = load_model(model_path, custom_objects={"dice_coef": dice_coef, "gl_sl": gl_sl}, compile=False)
# Recompile with fresh optimizer and correct loss function
from tensorflow.keras.optimizers import Adam
unet.compile(optimizer=Adam(learning_rate=1e-4), loss="binary_crossentropy", metrics=["accuracy", dice_coef])
print(" Model loaded and recompiled successfully!")